Files
holy-flavor-rater/docker-compose.yml
T
2026-02-19 17:27:33 +01:00

90 lines
2.6 KiB
YAML

services:
# --- Backend Service ---
backend:
build:
context: ./backend
container_name: holy-backend
restart: unless-stopped
networks:
- narl
- internal
extra_hosts:
- "host.docker.internal:host-gateway"
env_file:
- .env
volumes:
- ./backend:/app
- ./legacy:/app/legacy
environment:
- PYTHONUNBUFFERED=1
labels:
- "traefik.enable=true"
- "traefik.docker.network=narl"
- "traefik.http.routers.holy-energy-backend.priority=100"
- "traefik.http.routers.holy-energy-backend.rule=Host(`holy.narl.io`) && (PathPrefix(`/api`) || PathPrefix(`/admin/`) || PathPrefix(`/static`) || PathPrefix(`/media`))"
- "traefik.http.routers.holy-energy-backend.entrypoints=websecure"
- "traefik.http.routers.holy-energy-backend.tls.certresolver=https_resolver"
- "traefik.http.services.holy-energy-backend.loadbalancer.server.port=8000"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/health/"]
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
worker:
build:
context: ./backend
container_name: holy-worker
command: python manage.py worker
restart: unless-stopped
networks:
- internal
env_file:
- .env
volumes:
- ./backend:/app
- ./legacy:/app/legacy
depends_on:
backend:
condition: service_healthy
frontend:
build:
context: ./frontend
args:
- VITE_API_URL=https://holy.narl.io/api/
- VITE_IMPRESSUM_NAME=${VITE_IMPRESSUM_NAME}
- VITE_IMPRESSUM_STREET=${VITE_IMPRESSUM_STREET}
- VITE_IMPRESSUM_CITY=${VITE_IMPRESSUM_CITY}
- VITE_IMPRESSUM_EMAIL=${VITE_IMPRESSUM_EMAIL}
- VITE_IMPRESSUM_PHONE=${VITE_IMPRESSUM_PHONE}
container_name: holy-frontend
restart: unless-stopped
networks:
- narl
extra_hosts:
- "host.docker.internal:host-gateway"
env_file:
- .env
depends_on:
backend:
condition: service_healthy
labels:
- "traefik.enable=true"
- "traefik.docker.network=narl"
- "traefik.http.routers.holy-energy-frontend.priority=10"
- "traefik.http.routers.holy-energy-frontend.rule=Host(`holy.narl.io`)"
- "traefik.http.routers.holy-energy-frontend.entrypoints=websecure"
- "traefik.http.routers.holy-energy-frontend.tls.certresolver=https_resolver"
- "traefik.http.services.holy-energy-frontend.loadbalancer.server.port=80"
networks:
narl:
external: true
internal:
internal: true
volumes:
db_data: