| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- services:
- bambuddy:
- image: ghcr.io/maziggy/bambuddy:latest
- build: .
- # Usage:
- # docker compose up -d → pulls pre-built image from ghcr.io
- # docker compose up -d --build → builds locally from source
- container_name: bambuddy
- # Run as current user to avoid permission issues with mounted volumes
- # Override with: PUID=$(id -u) PGID=$(id -g) docker compose up -d
- user: "${PUID:-1000}:${PGID:-1000}"
- #
- # Proxy mode: allow binding to port 990 (FTP) as non-root user.
- # Without this, the FTP proxy silently fails and sending prints won't work.
- cap_add:
- - NET_BIND_SERVICE
- #
- # LINUX: Use host mode for printer discovery and camera streaming
- network_mode: host
- #
- # macOS/WINDOWS: Docker Desktop doesn't support host mode.
- # Comment out "network_mode: host" above and uncomment "ports:" below.
- # Note: Printer discovery won't work - add printers manually by IP.
- #ports:
- # - "${PORT:-8000}:8000"
- # - "8883:8883" # Virtual printer MQTT
- # - "9990:9990" # Virtual printer FTP control
- # - "50000-50100:50000-50100" # Virtual printer FTP passive data
- volumes:
- - bambuddy_data:/app/data
- - bambuddy_logs:/app/logs
- #
- # Share virtual printer certs with native installation
- # This ensures the slicer only needs to trust one CA certificate.
- - ./virtual_printer:/app/data/virtual_printer
- environment:
- - TZ=${TZ:-Europe/Berlin}
- # Port BamBuddy runs on (default: 8000)
- # Usage: PORT=8080 docker compose up -d
- - PORT=${PORT:-8000}
- # Virtual printer: Set to the Docker host's IP when using bridge mode (ports:).
- # Required for FTP passive mode to work behind NAT.
- # Example: VIRTUAL_PRINTER_PASV_ADDRESS=192.168.1.100
- #- VIRTUAL_PRINTER_PASV_ADDRESS=
- restart: unless-stopped
- volumes:
- bambuddy_data:
- bambuddy_logs:
|