services: bricscad-server: build: . container_name: bricscad-server networks: - web volumes: - ./dwg_files:/app/dwg_files - ./database_files:/app/database_files - ./app.py:/app/app.py - ./wsgi.py:/app/wsgi.py - ./generate_manifest.py:/app/generate_manifest.py - ./scheduler_app.py:/app/scheduler_app.py - ./manifest.json:/app/manifest.json environment: - PYTHONUNBUFFERED=1 restart: unless-stopped labels: - "traefik.enable=true" - "traefik.docker.network=web" # Serve DWG files - "traefik.http.routers.dwg-server.entrypoints=websecure" - "traefik.http.routers.dwg-server.rule=Host(`libserver.scad.dev`) && !PathPrefix(`/api`)" - "traefik.http.routers.dwg-server.tls=true" - "traefik.http.routers.dwg-server.tls.certresolver=le" - "traefik.http.routers.dwg-server.service=dwg-service" - "traefik.http.services.dwg-service.loadbalancer.server.port=80" # Serve Manifest API through Gunicorn - "traefik.http.routers.manifest-api.entrypoints=websecure" - "traefik.http.routers.manifest-api.rule=Host(`libserver.scad.dev`) && PathPrefix(`/api`)" - "traefik.http.routers.manifest-api.tls=true" - "traefik.http.routers.manifest-api.tls.certresolver=le" - "traefik.http.services.manifest-api.loadbalancer.server.port=5000" - "traefik.http.routers.manifest-api.service=manifest-api" networks: web: external: true