docker-compose.yml 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. services:
  2. traefik:
  3. container_name: traefik
  4. image: traefik:v3.3
  5. command:
  6. - "--api.insecure=true" # Development only
  7. - "--providers.docker=true"
  8. - "--providers.docker.exposedbydefault=false"
  9. - "--entrypoints.web.address=:80"
  10. - "--entrypoints.websecure.address=:443"
  11. ports:
  12. - "80:80"
  13. - "443:443"
  14. - "8080:8080" # Traefik dashboard
  15. volumes:
  16. - /var/run/docker.sock:/var/run/docker.sock:ro
  17. networks:
  18. - traefik-public
  19. - internal
  20. restart: unless-stopped
  21. byom-web:
  22. env_file:
  23. - .env
  24. container_name: byom-web
  25. build:
  26. context: ./byom-web
  27. dockerfile: Dockerfile
  28. #image: byom/byom-web
  29. labels:
  30. - "traefik.enable=true"
  31. - "traefik.http.routers.web.rule=Host(`${DOMAIN:-localhost}`)"
  32. - "traefik.http.services.web.loadbalancer.server.port=3000"
  33. # HTTPS redirect
  34. - "traefik.http.middlewares.https-redirect.redirectscheme.scheme=https"
  35. - "traefik.http.routers.web.middlewares=https-redirect"
  36. # Secure router
  37. - "traefik.http.routers.web-secure.rule=Host(`${DOMAIN:-localhost}`)"
  38. - "traefik.http.routers.web-secure.entrypoints=websecure"
  39. - "traefik.http.routers.web-secure.tls=true"
  40. networks:
  41. - internal
  42. restart: unless-stopped
  43. byom-core:
  44. env_file:
  45. - .env
  46. container_name: byom-core
  47. build:
  48. context: ./byom-core
  49. dockerfile: Dockerfile
  50. #image: byom/byom-core
  51. volumes:
  52. - ./byom-core/data:/app/data # Persist SQLite database
  53. labels:
  54. - "traefik.enable=true"
  55. - "traefik.http.routers.api.rule=Host(`${DOMAIN:-localhost}`) && PathPrefix(`/api/v1/core`)"
  56. - "traefik.http.services.api.loadbalancer.server.port=8443"
  57. # HTTPS redirect
  58. - "traefik.http.middlewares.https-redirect.redirectscheme.scheme=https"
  59. - "traefik.http.routers.api.middlewares=https-redirect"
  60. # Secure router
  61. - "traefik.http.routers.api-secure.rule=Host(`${DOMAIN:-localhost}`) && PathPrefix(`/api/v1/core`)"
  62. - "traefik.http.routers.api-secure.entrypoints=websecure"
  63. - "traefik.http.routers.api-secure.tls=true"
  64. networks:
  65. - internal
  66. restart: unless-stopped
  67. networks:
  68. traefik-public:
  69. external: true
  70. internal:
  71. internal: true # This network is not accessible from outside