docker-compose.yml 1.4 KB

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