#!/usr/bin/env python3 # Gunicorn configuration for backup web application import os import multiprocessing # Server socket bind = f"0.0.0.0:{os.environ.get('PORT', '5000')}" backlog = 2048 # Worker processes workers = multiprocessing.cpu_count() * 2 + 1 worker_class = "sync" worker_connections = 1000 timeout = 30 keepalive = 2 # Restart workers after this many requests, to help prevent memory leaks max_requests = 1000 max_requests_jitter = 50 # Logging accesslog = "/tmp/backup-web-app-access.log" errorlog = "/tmp/backup-web-app-error.log" loglevel = "info" access_log_format = '%(h)s %(l)s %(u)s %(t)s "%(r)s" %(s)s %(b)s "%(f)s" "%(a)s" %(D)s' # Process naming proc_name = "backup-web-app" # Daemon mode daemon = False pidfile = "/tmp/backup-web-app.pid" umask = 0 user = None group = None tmp_upload_dir = None # SSL (if needed) # keyfile = "/path/to/keyfile" # certfile = "/path/to/certfile" # Environment raw_env = [ f"BACKUP_ROOT={os.environ.get('BACKUP_ROOT', '/mnt/share/media/backups')}", ] # Preload app for better performance preload_app = True # Graceful timeout graceful_timeout = 30 # Security forwarded_allow_ips = "*" secure_scheme_headers = { 'X-FORWARDED-PROTOCOL': 'ssl', 'X-FORWARDED-PROTO': 'https', 'X-FORWARDED-SSL': 'on' }