# Docker Compose - Configuration Production # Usage: docker compose up -d # Documentation: ./README.md services: # Backend FastAPI backend: image: ${REGISTRY_URL:-git.opytex.org}/${REGISTRY_NAMESPACE:-notytex}/notytex-backend:${IMAGE_TAG:-latest} container_name: notytex-backend restart: unless-stopped ports: - "${BACKEND_PORT:-8080}:8000" environment: - DATABASE_URL=sqlite+aiosqlite:////data/school_management.db - SECRET_KEY=${SECRET_KEY:?SECRET_KEY est obligatoire - voir .env.example} - CORS_ORIGINS=${CORS_ORIGINS:-["http://localhost:8081","http://localhost:8080"]} - LOG_LEVEL=${LOG_LEVEL:-INFO} volumes: - ./data:/data healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8000/api/v2/health"] interval: 30s timeout: 10s retries: 3 start_period: 40s # Frontend Vue.js + Nginx frontend: image: ${REGISTRY_URL:-git.opytex.org}/${REGISTRY_NAMESPACE:-notytex}/notytex-frontend:${IMAGE_TAG:-latest} container_name: notytex-frontend restart: unless-stopped ports: - "${FRONTEND_PORT:-8081}:80" depends_on: backend: condition: service_healthy healthcheck: test: ["CMD", "curl", "-f", "http://localhost/"] interval: 30s timeout: 10s retries: 3