| 12345678910111213141516171819202122232425262728293031 |
- services:
- dune-weaver:
- build: .
- image: ghcr.io/tuanchris/dune-weaver:main
- restart: always
- ports:
- - "80:80" # Frontend (nginx)
- - "8080:8080" # Backend API
- volumes:
- # Persist state and patterns
- - ./state.json:/app/state.json
- - ./patterns:/app/patterns
- # Mount Docker socket for container self-restart/update
- - /var/run/docker.sock:/var/run/docker.sock
- # Mount timezone file from host for scheduling features
- - /etc/timezone:/etc/host-timezone:ro
- # Mount systemd for host shutdown capability
- - /run/systemd/system:/run/systemd/system:ro
- - /var/run/dbus/system_bus_socket:/var/run/dbus/system_bus_socket:ro
- - /sys/fs/cgroup:/sys/fs/cgroup:ro
- # Mount GPIO for DW LEDs and Desert Compass (reed switch)
- - /sys:/sys
- devices:
- - "/dev/ttyACM0:/dev/ttyACM0" # Serial device for stepper motors
- - "/dev/ttyUSB0:/dev/ttyUSB0" # Alternative serial device
- - "/dev/ttyAMA0:/dev/ttyAMA0" # Alternative serial device
- - "/dev/gpiomem:/dev/gpiomem" # GPIO memory access for DW LEDs
- - "/dev/mem:/dev/mem" # Direct memory access for PWM
- - "/dev/pio0:/dev/pio0" # PIO device for Pi 5 NeoPixel support
- privileged: true # Required for GPIO/PWM access
- container_name: dune-weaver
|