| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 | version: "3.3"services:  proxy:    ports:      - "8080:80"    command:      # Enable Docker in Traefik, so that it reads labels from Docker services      - --providers.docker      # Add a constraint to only use services with the label for this stack      # from the env var TRAEFIK_TAG      - --providers.docker.constraints=Label(`traefik.constraint-label-stack`, `${TRAEFIK_TAG?Variable not set}`)      # Do not expose all Docker services, only the ones explicitly exposed      - --providers.docker.exposedbydefault=false      # Disable Docker Swarm mode for local development      # - --providers.docker.swarmmode      # Enable the access log, with HTTP requests      - --accesslog      # Enable the Traefik log, for configurations and errors      - --log      # Enable the Dashboard and API      - --api      # Enable the Dashboard and API in insecure mode for local development      - --api.insecure=true    labels:      - traefik.enable=true      - traefik.http.routers.${STACK_NAME?Variable not set}-traefik-public-http.rule=Host(`${DOMAIN?Variable not set}`)      - traefik.http.services.${STACK_NAME?Variable not set}-traefik-public.loadbalancer.server.port=80    backend:    volumes:      - ./backend/app:/app      - /${BACKEND_ZIP_STORAGE}:/app/${BACKEND_ZIP_STORAGE}      - /${BACKEND_VIDEO_STORAGE}:/app/${BACKEND_VIDEO_STORAGE}    environment:      - SERVER_HOST=http://${DOMAIN?Variable not set}    build:      context: ./backend      dockerfile: backend.dockerfile      args:        INSTALL_DEV: ${INSTALL_DEV-true}        INSTALL_JUPYTER: ${INSTALL_JUPYTER-false}    # command: bash -c "while true; do sleep 1; done"  # Infinite loop to keep container live doing nothing    command: /start-reload.sh    labels:      - traefik.enable=true      - traefik.constraint-label-stack=${TRAEFIK_TAG?Variable not set}      - traefik.http.routers.${STACK_NAME?Variable not set}-backend-http.rule=PathPrefix(`/api`) || PathPrefix(`/docs`) || PathPrefix(`/redoc`)      - traefik.http.services.${STACK_NAME?Variable not set}-backend.loadbalancer.server.port=80    frontend:    build:      context: ./frontend      args:        FRONTEND_ENV: dev    labels:      - traefik.enable=true      - traefik.constraint-label-stack=${TRAEFIK_TAG?Variable not set}      - traefik.http.routers.${STACK_NAME?Variable not set}-frontend-http.rule=PathPrefix(`/`)      - traefik.http.services.${STACK_NAME?Variable not set}-frontend.loadbalancer.server.port=80networks:  traefik-public:    # For local dev, don't expect an external Traefik network    external: false
 |