docker-compose.yml 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. services:
  2. frontend:
  3. build:
  4. context: ./frontend
  5. dockerfile: Dockerfile
  6. image: ghcr.io/tuanchris/dune-weaver-frontend:main
  7. restart: always
  8. ports:
  9. - "80:80"
  10. volumes:
  11. - ./nginx.conf:/etc/nginx/conf.d/default.conf:ro
  12. depends_on:
  13. - backend
  14. container_name: dune-weaver-frontend
  15. backend:
  16. build: .
  17. image: ghcr.io/tuanchris/dune-weaver:main
  18. restart: always
  19. ports:
  20. - "8080:8080"
  21. volumes:
  22. # Persistent data directories
  23. - ./patterns:/app/patterns
  24. - ./playlists:/app/playlists
  25. - ./state.json:/app/state.json
  26. - ./static/custom:/app/static/custom
  27. # Mount Docker socket for container self-restart/update
  28. - /var/run/docker.sock:/var/run/docker.sock
  29. # Mount timezone file from host for scheduling features
  30. - /etc/timezone:/etc/host-timezone:ro
  31. # Mount systemd for host shutdown capability
  32. - /run/systemd/system:/run/systemd/system:ro
  33. - /var/run/dbus/system_bus_socket:/var/run/dbus/system_socket:ro
  34. - /sys/fs/cgroup:/sys/fs/cgroup:ro
  35. # Mount GPIO for DW LEDs and Desert Compass (reed switch)
  36. - /sys:/sys
  37. devices:
  38. - "/dev/ttyACM0:/dev/ttyACM0"
  39. - "/dev/ttyUSB0:/dev/ttyUSB0"
  40. - "/dev/ttyAMA0:/dev/ttyAMA0"
  41. - "/dev/gpiomem:/dev/gpiomem"
  42. - "/dev/mem:/dev/mem"
  43. - "/dev/pio0:/dev/pio0"
  44. privileged: true
  45. container_name: dune-weaver-backend