feat: add production container support with health check endpoint
Implements Phase 5 containerization specification: - Add /health endpoint for container monitoring - Create multi-stage Containerfile (Podman/Docker compatible) - Add compose.yaml for orchestration - Add Caddyfile.example for reverse proxy (auto-HTTPS) - Add nginx.conf.example as alternative - Update .env.example with container and RSS feed variables - Add gunicorn WSGI server to requirements.txt Container features: - Multi-stage build for smaller image size - Non-root user (starpunk:1000) - Health check with database connectivity test - Volume mount for data persistence - Resource limits and logging configuration - Security headers and HTTPS configuration examples Health check endpoint: - Tests database connectivity - Verifies filesystem access - Returns JSON with status, version, and environment Following Phase 5 design in docs/designs/phase-5-rss-and-container.md
This commit is contained in:
30
.env.example
30
.env.example
@@ -64,6 +64,36 @@ FLASK_DEBUG=1
|
||||
# Flask secret key (falls back to SESSION_SECRET if not set)
|
||||
FLASK_SECRET_KEY=
|
||||
|
||||
# =============================================================================
|
||||
# RSS FEED CONFIGURATION
|
||||
# =============================================================================
|
||||
|
||||
# Maximum number of items in RSS feed (default: 50)
|
||||
FEED_MAX_ITEMS=50
|
||||
|
||||
# Feed cache duration in seconds (default: 300 = 5 minutes)
|
||||
FEED_CACHE_SECONDS=300
|
||||
|
||||
# =============================================================================
|
||||
# CONTAINER CONFIGURATION
|
||||
# =============================================================================
|
||||
|
||||
# Application version (for health check endpoint)
|
||||
VERSION=0.6.0
|
||||
|
||||
# Environment: development or production
|
||||
ENVIRONMENT=production
|
||||
|
||||
# Number of Gunicorn workers (default: 4)
|
||||
# Recommendation: (2 x CPU cores) + 1
|
||||
WORKERS=4
|
||||
|
||||
# Worker timeout in seconds (default: 30)
|
||||
WORKER_TIMEOUT=30
|
||||
|
||||
# Max requests per worker before restart (prevents memory leaks)
|
||||
MAX_REQUESTS=1000
|
||||
|
||||
# =============================================================================
|
||||
# DEVELOPMENT OPTIONS
|
||||
# =============================================================================
|
||||
|
||||
Reference in New Issue
Block a user