Docker Deployment
Run Rackula on your own infrastructure using Docker. No external dependencies required.
Quick start
Section titled “Quick start”docker run -d -p 3000:3000 ghcr.io/rackulalives/rackula:latestOpen http://localhost:3000 in your browser.
Docker Compose
Section titled “Docker Compose”For production deployments, use Docker Compose:
services: rackula: image: ghcr.io/rackulalives/rackula:latest container_name: rackula ports: - "3000:3000" restart: unless-stoppedStart the service:
docker compose up -dConfiguration
Section titled “Configuration”Environment variables
Section titled “Environment variables”| Variable | Default | Description |
|---|---|---|
PORT |
3000 |
HTTP port |
BASE_URL |
/ |
Base URL path for reverse proxy setups |
Custom port
Section titled “Custom port”docker run -d -p 8080:3000 ghcr.io/rackulalives/rackula:latestBehind a reverse proxy
Section titled “Behind a reverse proxy”server { listen 443 ssl; server_name rackula.example.com;
location / { proxy_pass http://localhost:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; }}rackula.example.com { reverse_proxy localhost:3000}labels: - "traefik.enable=true" - "traefik.http.routers.rackula.rule=Host(`rackula.example.com`)" - "traefik.http.services.rackula.loadbalancer.server.port=3000"Updating
Section titled “Updating”-
Pull the latest image
Terminal window docker pull ghcr.io/rackulalives/rackula:latest -
Restart the container
Terminal window docker compose down && docker compose up -d
Version pinning
Section titled “Version pinning”For stability, pin to a specific version:
services: rackula: image: ghcr.io/rackulalives/rackula:v1.0.0Check the releases page for available versions.
Data persistence
Section titled “Data persistence”For backup and sharing, use the export feature to save layouts as JSON files.
Health checks
Section titled “Health checks”The container exposes a health endpoint:
curl http://localhost:3000/healthDocker Compose health check:
services: rackula: image: ghcr.io/rackulalives/rackula:latest healthcheck: test: ["CMD", "curl", "-f", "http://localhost:3000/health"] interval: 30s timeout: 10s retries: 3Resource requirements
Section titled “Resource requirements”| Resource | Minimum | Recommended |
|---|---|---|
| CPU | 0.1 cores | 0.5 cores |
| Memory | 64MB | 128MB |
| Disk | 100MB | 200MB |
Rackula is a lightweight static application with minimal resource requirements.
Troubleshooting
Section titled “Troubleshooting”Container won’t start
Section titled “Container won’t start”Check logs:
docker logs rackulaPort already in use
Section titled “Port already in use”Change the host port:
docker run -d -p 8080:3000 ghcr.io/rackulalives/rackula:latestReverse proxy issues
Section titled “Reverse proxy issues”Ensure your proxy passes the correct headers. Check Host, X-Real-IP, and X-Forwarded-Proto.