59 lines
1.7 KiB
YAML
59 lines
1.7 KiB
YAML
services:
|
|
delphi-db:
|
|
build: .
|
|
container_name: delphi-database
|
|
ports:
|
|
- "${EXTERNAL_PORT:-6920}:8000"
|
|
environment:
|
|
- DATABASE_URL=${DATABASE_URL:-sqlite:///data/delphi_database.db}
|
|
- SECRET_KEY=${SECRET_KEY}
|
|
- DEBUG=${DEBUG:-False}
|
|
- ACCESS_TOKEN_EXPIRE_MINUTES=${ACCESS_TOKEN_EXPIRE_MINUTES:-30}
|
|
- CREATE_ADMIN_USER=${CREATE_ADMIN_USER:-false}
|
|
- ADMIN_USERNAME=${ADMIN_USERNAME:-admin}
|
|
- ADMIN_EMAIL=${ADMIN_EMAIL:-admin@delphicg.local}
|
|
- ADMIN_PASSWORD=${ADMIN_PASSWORD}
|
|
- ADMIN_FULLNAME=${ADMIN_FULLNAME:-System Administrator}
|
|
- WORKERS=${WORKERS:-4}
|
|
- WORKER_TIMEOUT=${WORKER_TIMEOUT:-120}
|
|
- LOG_LEVEL=${LOG_LEVEL:-INFO}
|
|
volumes:
|
|
# Database and persistent data - using local directory for development
|
|
- ./data:/app/data
|
|
# File uploads
|
|
- delphi_uploads:/app/uploads
|
|
# Database backups
|
|
- delphi_backups:/app/backups
|
|
# Optional: Use Docker volume for production
|
|
# - delphi_data:/app/data
|
|
restart: unless-stopped
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 40s
|
|
|
|
# Optional: Nginx reverse proxy for production
|
|
nginx:
|
|
image: nginx:alpine
|
|
container_name: delphi-nginx
|
|
ports:
|
|
- "80:80"
|
|
- "443:443"
|
|
volumes:
|
|
- ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
|
|
- ./nginx/ssl:/etc/nginx/ssl:ro
|
|
- delphi_uploads:/var/www/uploads:ro
|
|
depends_on:
|
|
- delphi-db
|
|
restart: unless-stopped
|
|
profiles: ["production"]
|
|
|
|
volumes:
|
|
delphi_data:
|
|
driver: local
|
|
delphi_uploads:
|
|
driver: local
|
|
delphi_backups:
|
|
driver: local |