docker-compose.yml 1.3 KB

12345678910111213141516171819202122232425262728293031
  1. services:
  2. dune-weaver:
  3. build: .
  4. image: ghcr.io/tuanchris/dune-weaver:main
  5. restart: always
  6. ports:
  7. - "80:80" # Frontend (nginx)
  8. - "8080:8080" # Backend API
  9. volumes:
  10. # Persist state and patterns
  11. - ./state.json:/app/state.json
  12. - ./patterns:/app/patterns
  13. # Mount Docker socket for container self-restart/update
  14. - /var/run/docker.sock:/var/run/docker.sock
  15. # Mount timezone file from host for scheduling features
  16. - /etc/timezone:/etc/host-timezone:ro
  17. # Mount systemd for host shutdown capability
  18. - /run/systemd/system:/run/systemd/system:ro
  19. - /var/run/dbus/system_bus_socket:/var/run/dbus/system_bus_socket:ro
  20. - /sys/fs/cgroup:/sys/fs/cgroup:ro
  21. # Mount GPIO for DW LEDs and Desert Compass (reed switch)
  22. - /sys:/sys
  23. devices:
  24. - "/dev/ttyACM0:/dev/ttyACM0" # Serial device for stepper motors
  25. - "/dev/ttyUSB0:/dev/ttyUSB0" # Alternative serial device
  26. - "/dev/ttyAMA0:/dev/ttyAMA0" # Alternative serial device
  27. - "/dev/gpiomem:/dev/gpiomem" # GPIO memory access for DW LEDs
  28. - "/dev/mem:/dev/mem" # Direct memory access for PWM
  29. - "/dev/pio0:/dev/pio0" # PIO device for Pi 5 NeoPixel support
  30. privileged: true # Required for GPIO/PWM access
  31. container_name: dune-weaver