Hoghoghi / docker-compose.yml
Really-amin's picture
Upload 143 files
c636ebf verified
raw
history blame
2.31 kB
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