version: '3.8' services: mcpanel: build: context: . dockerfile: Dockerfile container_name: mc-panel restart: unless-stopped ports: - "8000:8000" environment: # Основные настройки - PORT=8000 - BASE_URL=http://localhost:8000 - FRONTEND_URL=http://localhost:8000 # Безопасность (ОБЯЗАТЕЛЬНО измените в продакшене!) - SECRET_KEY=your-very-long-random-secret-key-change-this-in-production # OIDC настройки (раскомментируйте и настройте при необходимости) # - ZITADEL_ISSUER=https://your-instance.zitadel.cloud # - ZITADEL_CLIENT_ID=your_client_id_here # - ZITADEL_CLIENT_SECRET=your_client_secret_here # Логирование - LOG_LEVEL=INFO volumes: # Персистентные данные - mcpanel_servers:/app/backend/servers - mcpanel_data:/app/backend/data - mcpanel_logs:/app/logs # Конфигурационные файлы (опционально) - ./backend/users.json:/app/backend/users.json - ./backend/tickets.json:/app/backend/tickets.json networks: - mcpanel-network # Ограничения ресурсов deploy: resources: limits: memory: 1G cpus: '0.5' reservations: memory: 512M cpus: '0.25' # Health check healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8000/api/auth/oidc/providers"] interval: 30s timeout: 10s retries: 3 start_period: 60s # Nginx reverse proxy (опционально) nginx: image: nginx:alpine container_name: mc-panel-nginx restart: unless-stopped ports: - "80:80" - "443:443" volumes: - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro - ./nginx/ssl:/etc/nginx/ssl:ro depends_on: - mcpanel networks: - mcpanel-network profiles: - with-nginx volumes: mcpanel_servers: driver: local mcpanel_data: driver: local mcpanel_logs: driver: local networks: mcpanel-network: driver: bridge