version: "3.9" services: backend: build: context: ./backend volumes: - backend-data:/data environment: ALABUGA_ENVIRONMENT: "${ALABUGA_ENVIRONMENT}" ALABUGA_DEBUG: "${ALABUGA_DEBUG}" ALABUGA_SECRET_KEY: "${ALABUGA_SECRET_KEY}" ALABUGA_JWT_ALGORITHM: "HS256" ALABUGA_ACCESS_TOKEN_EXPIRE_MINUTES: "720" ALABUGA_REQUIRE_EMAIL_CONFIRMATION: "false" ALABUGA_SQLITE_PATH: /data/app.db ALABUGA_UPLOADS_PATH: /data/uploads ALABUGA_BACKEND_CORS_ORIGIN: '["https://${ALABUGA_API_DOMAIN}","https://${ALABUGA_DOMAIN}"]' networks: - app-network - collabry labels: - "traefik.enable=true" - "traefik.docker.network=collabry" - "traefik.http.services.alabuga-backend.loadbalancer.server.port=8000" - "traefik.http.routers.alabuga-backend.service=alabuga-backend" - "traefik.http.routers.alabuga-backend.rule=Host(`${ALABUGA_API_DOMAIN}`)" - "traefik.http.routers.alabuga-backend.entrypoints=websecure" - "traefik.http.routers.alabuga-backend.tls.certresolver=letsencrypt" frontend: build: context: ./frontend environment: NEXT_PUBLIC_API_URL: "https://${ALABUGA_DOMAIN}" NEXT_INTERNAL_API_URL: http://backend:8000 NEXT_PUBLIC_DEMO_EMAIL: "${NEXT_PUBLIC_DEMO_EMAIL}" NEXT_PUBLIC_DEMO_PASSWORD: "${NEXT_PUBLIC_DEMO_PASSWORD}" NEXT_PUBLIC_DEMO_HR_EMAIL: "${NEXT_PUBLIC_DEMO_HR_EMAIL}" NEXT_PUBLIC_DEMO_HR_PASSWORD: "${NEXT_PUBLIC_DEMO_HR_PASSWORD}" networks: - app-network - collabry command: npm run dev -- --hostname 0.0.0.0 --port 3000 depends_on: - backend labels: - "traefik.enable=true" - "traefik.docker.network=collabry" - "traefik.http.middlewares.alabuga-frontend.redirectregex.regex=^https://${ALABUGA_DOMAIN}(.*)" - "traefik.http.middlewares.alabuga-frontend.redirectregex.replacement=https://alabuga.hchm.ru$$1" - "traefik.http.middlewares.alabuga-frontend.redirectregex.permanent=true" # - "traefik.http.services.alabuga-frontend.loadbalancer.server.port=3000" - "traefik.http.routers.alabuga-frontend.middlewares=alabuga-frontend" # - "traefik.http.routers.alabuga-frontend.service=alabuga-frontend" - "traefik.http.routers.alabuga-frontend.service=noop@internal" - "traefik.http.routers.alabuga-frontend.rule=Host(`${ALABUGA_DOMAIN}`)" - "traefik.http.routers.alabuga-frontend.entrypoints=websecure" - "traefik.http.routers.alabuga-frontend.tls.certresolver=letsencrypt" volumes: backend-data: networks: app-network: collabry: external: true