33 lines
735 B
Python
33 lines
735 B
Python
|
|
"""Gunicorn production configuration for FusionAGI API."""
|
||
|
|
|
||
|
|
import multiprocessing
|
||
|
|
import os
|
||
|
|
|
||
|
|
# Server socket
|
||
|
|
bind = os.environ.get("FUSIONAGI_BIND", "0.0.0.0:8000")
|
||
|
|
|
||
|
|
# Worker processes
|
||
|
|
workers = int(os.environ.get("FUSIONAGI_WORKERS", min(multiprocessing.cpu_count() * 2 + 1, 8)))
|
||
|
|
worker_class = "uvicorn.workers.UvicornWorker"
|
||
|
|
worker_connections = 1000
|
||
|
|
|
||
|
|
# Timeouts
|
||
|
|
timeout = int(os.environ.get("FUSIONAGI_TIMEOUT", "120"))
|
||
|
|
graceful_timeout = 30
|
||
|
|
keepalive = 5
|
||
|
|
|
||
|
|
# Logging
|
||
|
|
accesslog = "-"
|
||
|
|
errorlog = "-"
|
||
|
|
loglevel = os.environ.get("FUSIONAGI_LOG_LEVEL", "info").lower()
|
||
|
|
|
||
|
|
# Security
|
||
|
|
limit_request_line = 8190
|
||
|
|
limit_request_fields = 100
|
||
|
|
|
||
|
|
# Preload app for faster worker startup
|
||
|
|
preload_app = True
|
||
|
|
|
||
|
|
# Process naming
|
||
|
|
proc_name = "fusionagi"
|