Spaces:
Paused
Paused
| version: "3.8" | |
| services: | |
| # FastAPI Application | |
| legal-dashboard: | |
| build: . | |
| container_name: legal_dashboard_app | |
| restart: unless-stopped | |
| networks: | |
| - app_network | |
| volumes: | |
| - ./data:/app/data | |
| - ./cache:/app/cache | |
| - ./logs:/app/logs | |
| - ./uploads:/app/uploads | |
| - ./backups:/app/backups | |
| environment: | |
| - DATABASE_PATH=/app/data/legal_dashboard.db | |
| - TRANSFORMERS_CACHE=/app/cache | |
| - HF_HOME=/app/cache | |
| - LOG_LEVEL=INFO | |
| - ENVIRONMENT=production | |
| - JWT_SECRET_KEY=${JWT_SECRET_KEY:-your-secret-key-change-in-production} | |
| - DATABASE_URL=${DATABASE_URL:-sqlite:///app/data/legal_dashboard.db} | |
| healthcheck: | |
| test: ["CMD", "curl", "-f", "http://localhost:8000/api/health"] | |
| interval: 30s | |
| timeout: 10s | |
| retries: 3 | |
| start_period: 40s | |
| depends_on: | |
| - redis | |
| # Redis for caching and sessions | |
| redis: | |
| image: redis:7-alpine | |
| container_name: legal_dashboard_redis | |
| restart: unless-stopped | |
| networks: | |
| - app_network | |
| volumes: | |
| - redis_data:/data | |
| command: redis-server --appendonly yes | |
| healthcheck: | |
| test: ["CMD", "redis-cli", "ping"] | |
| interval: 30s | |
| timeout: 10s | |
| retries: 3 | |
| # Nginx Reverse Proxy | |
| nginx: | |
| image: nginx:alpine | |
| container_name: legal_dashboard_nginx | |
| restart: unless-stopped | |
| ports: | |
| - "80:80" | |
| - "443:443" | |
| volumes: | |
| - ./nginx.conf:/etc/nginx/conf.d/default.conf | |
| - ./ssl:/etc/nginx/ssl | |
| - ./logs/nginx:/var/log/nginx | |
| depends_on: | |
| - legal-dashboard | |
| networks: | |
| - app_network | |
| # Backup Service | |
| backup: | |
| image: alpine:latest | |
| container_name: legal_dashboard_backup | |
| restart: unless-stopped | |
| volumes: | |
| - ./data:/app/data | |
| - ./backups:/app/backups | |
| - ./logs:/app/logs | |
| command: | | |
| sh -c " | |
| while true; do | |
| sleep 86400 | |
| tar -czf /app/backups/backup-$$(date +%Y%m%d_%H%M%S).tar.gz /app/data /app/logs | |
| find /app/backups -name 'backup-*.tar.gz' -mtime +7 -delete | |
| done | |
| " | |
| networks: | |
| - app_network | |
| networks: | |
| app_network: | |
| driver: bridge | |
| volumes: | |
| redis_data: | |
| driver: local | |