services: traefik: image: traefik:v3.6.8 container_name: traefik environment: DOCKER_API_VERSION: "${TRAEFIK_DOCKER_API_VERSION:-1.44}" command: - "--log.level=INFO" - "--providers.docker=true" - "--providers.docker.exposedbydefault=false" - "--entrypoints.web.address=:80" - "--entrypoints.websecure.address=:443" - "--entrypoints.web.http.redirections.entrypoint.to=websecure" - "--entrypoints.web.http.redirections.entrypoint.scheme=https" - "--certificatesresolvers.pyroresolver.acme.tlschallenge=true" - "--certificatesresolvers.pyroresolver.acme.email=${TRAEFIK_ACME_EMAIL:-contact@pyronear.org}" - "--certificatesresolvers.pyroresolver.acme.storage=/acme.json" ports: - "80:80" - "443:443" volumes: - "/var/run/docker.sock:/var/run/docker.sock:ro" - "./acme.json:/acme.json" restart: unless-stopped depends_on: - app app: build: context: . dockerfile: Dockerfile container_name: pyronear-wildfire-detection expose: - "7860" environment: STREAMLIT_SERVER_ADDRESS: "0.0.0.0" STREAMLIT_SERVER_PORT: "7860" STREAMLIT_BROWSER_GATHER_USAGE_STATS: "false" ENABLE_MOTION_SEGMENTATION: "0" FAST_N_SAMPLES: "12" INFER_BATCH_SIZE: "16" MODEL_IMGSZ: "1024" MAX_INFER_FRAMES_PER_SPLIT: "12" MIN_MAIN_MATCH_ABS: "3" MIN_MAIN_MATCH_RATIO: "0.20" ORT_PROVIDERS: "CPUExecutionProvider" ORT_INTRA_OP_NUM_THREADS: "8" ORT_INTER_OP_NUM_THREADS: "1" labels: - "traefik.enable=true" - "traefik.http.routers.pyronear-http.rule=Host(`demo-pyronear-egm.pyronear.org`)" - "traefik.http.routers.pyronear-http.entrypoints=web" - "traefik.http.routers.pyronear-http.middlewares=redirect-to-https" - "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https" - "traefik.http.routers.pyronear.rule=Host(`demo-pyronear-egm.pyronear.org`)" - "traefik.http.routers.pyronear.entrypoints=websecure" - "traefik.http.routers.pyronear.tls=true" - "traefik.http.routers.pyronear.tls.certresolver=pyroresolver" - "traefik.http.services.pyronear.loadbalancer.server.port=7860" restart: unless-stopped