[uwsgi] ; Remove file creation commands since we're not logging to files anymore ; exec-pre = mkdir -p /data/logs ; exec-pre = touch /data/logs/uwsgi-dev.log ; exec-pre = chmod 666 /data/logs/uwsgi-dev.log ; First run Redis availability check script once exec-pre = python /app/scripts/wait_for_redis.py ; Start Redis first attach-daemon = redis-server --protected-mode no ; Default prefork worker: every queue except `dvr`. attach-daemon = nice -n $(CELERY_NICE_LEVEL) celery -A dispatcharr worker -Q celery -n default@%%h --autoscale=6,1 ; DVR worker: thread pool for the long-running, I/O-bound run_recording task. attach-daemon = nice -n $(CELERY_NICE_LEVEL) celery -A dispatcharr worker -Q dvr -n dvr@%%h --pool=threads --concurrency=20 attach-daemon = nice -n $(CELERY_NICE_LEVEL) celery -A dispatcharr beat attach-daemon = daphne -b 0.0.0.0 -p 8001 dispatcharr.asgi:application attach-daemon = cd /app/frontend && npm run dev # Core settings chdir = /app module = dispatcharr.wsgi:application virtualenv = /dispatcharrpy master = true env = DJANGO_SETTINGS_MODULE=dispatcharr.settings socket = /app/uwsgi.sock chmod-socket = 777 vacuum = true die-on-term = true static-map = /static=/app/static # Worker management workers = 4 # Optimize for streaming http = 0.0.0.0:5656 http-keepalive = 1 buffer-size = 65536 # Increase buffer for large payloads post-buffering = 4096 # Reduce buffering for real-time streaming http-timeout = 600 # Prevent disconnects from long streams lazy-apps = true # Improve memory efficiency # Async mode (use gevent for high concurrency) gevent = 100 # Patch the stdlib (socket, threading, time, ...) before any app code # loads so blocking calls yield to the gevent hub. Without this, a single # blocking requests / DNS call freezes every greenlet on the # worker. psycopg3 uses Python's socket layer, so no additional patching is needed. gevent-early-monkey-patch = true import = dispatcharr.gevent_patch # Performance tuning thunder-lock = true log-4xx = true log-5xx = true disable-logging = false # Logging configuration - development mode # Enable console logging (stdout) log-master = true # Enable strftime formatting for timestamps logformat-strftime = true log-date = %%Y-%%m-%%d %%H:%%M:%%S,000 # Use formatted time with environment variable for log level log-format = %(ftime) $(DISPATCHARR_LOG_LEVEL) uwsgi.requests Worker ID: %(wid) %(method) %(status) %(uri) %(msecs)ms log-buffering = 1024 # Add buffer size limit for logging