services: backend: image: 10.10.5.10:3020/menzelj/stackpilot-backend:latest build: ./backend restart: unless-stopped environment: - SECRET_KEY=${SECRET_KEY} - STACKS_DIR=/opt/stacks - DATA_DIR=/data - HOST_PROC_PATH=/host_proc - CORS_ORIGINS=${CORS_ORIGINS:-http://localhost:5009} # Optional: comma-separated generic JSON webhook URLs (every event). # Per-destination webhooks (ntfy/Discord/Slack/Gotify) are managed in the UI. - NOTIFY_WEBHOOKS=${NOTIFY_WEBHOOKS:-} # Throwaway image used to snapshot named-volume contents during backups. - BACKUP_HELPER_IMAGE=${BACKUP_HELPER_IMAGE:-alpine:latest} volumes: - /var/run/docker.sock:/var/run/docker.sock - ./data:/data - ${STACKS_HOST_DIR:-./data/stacks}:/opt/stacks - /proc:/host_proc:ro # Host devices for GPU/device detection + passthrough (USB/TTY/DRI). # Read-only; remove if you don't need GPU/device features. - /dev:/dev:ro expose: - "5008" # Uncomment to expose the API directly (normally proxied by the frontend): # ports: # - "5008:5008" frontend: image: 10.10.5.10:3020/menzelj/stackpilot-frontend:latest build: ./frontend restart: unless-stopped depends_on: - backend ports: - "5009:80"