mirror of
https://github.com/narrrl/holy-flavor-rater.git
synced 2026-11-04 08:57:01 +01:00
60 lines
1.7 KiB
YAML
60 lines
1.7 KiB
YAML
version: '3.8'
|
|
|
|
services:
|
|
# --- Backend Service (Gunicorn + WhiteNoise) ---
|
|
backend:
|
|
build:
|
|
context: ./backend
|
|
container_name: holy-backend
|
|
restart: unless-stopped
|
|
networks:
|
|
- narl
|
|
- internal
|
|
env_file:
|
|
- ./.env
|
|
volumes:
|
|
- ./backend:/app
|
|
- ./legacy:/app/legacy
|
|
environment:
|
|
- PYTHONUNBUFFERED=1
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.docker.network=narl"
|
|
# High priority for the backend specific paths
|
|
- "traefik.http.routers.holy-backend.priority=20"
|
|
- "traefik.http.routers.holy-backend.rule=Host(`holy.narl.io`) && PathPrefix(`/api`, `/admin`, `/static`, `/media`)"
|
|
- "traefik.http.routers.holy-backend.entrypoints=websecure"
|
|
- "traefik.http.routers.holy-backend.tls.certresolver=https_resolver"
|
|
- "traefik.http.services.holy-backend.loadbalancer.server.port=8000"
|
|
|
|
# --- Frontend Service (Nginx serving built React app) ---
|
|
frontend:
|
|
build:
|
|
context: ./frontend
|
|
args:
|
|
- VITE_API_URL=https://holy.narl.io/api/
|
|
container_name: holy-frontend
|
|
restart: unless-stopped
|
|
networks:
|
|
- narl
|
|
depends_on:
|
|
- backend
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.docker.network=narl"
|
|
# Low priority acts as the fallback catch-all
|
|
- "traefik.http.routers.holy-frontend.priority=10"
|
|
- "traefik.http.routers.holy-frontend.rule=Host(`holy.narl.io`)"
|
|
- "traefik.http.routers.holy-frontend.entrypoints=websecure"
|
|
- "traefik.http.routers.holy-frontend.tls.certresolver=https_resolver"
|
|
- "traefik.http.services.holy-frontend.loadbalancer.server.port=80"
|
|
|
|
networks:
|
|
narl:
|
|
external: true
|
|
internal:
|
|
internal: true
|
|
|
|
volumes:
|
|
db_data:
|