Spaces:
Running
Running
| import uvicorn | |
| import os | |
| from dotenv import load_dotenv | |
| # Explicitly load .env file | |
| load_dotenv() | |
| def main(): | |
| host = os.getenv("HOST", "0.0.0.0") | |
| port = int(os.getenv("PORT", "8002")) | |
| # Allow passing RELOAD=true from env | |
| reload = os.getenv("RELOAD", "false").lower() in ("true", "1", "yes") | |
| print(f"Starting server on {host}:{port} (reload={reload})...") | |
| if reload: | |
| uvicorn.run( | |
| "app.main:app", | |
| host=host, | |
| port=port, | |
| reload=True, | |
| reload_excludes=[".venv", "uploads", "*.log"] | |
| ) | |
| else: | |
| # Standard production mode (no reload) with multiple workers | |
| # Note: uvicorn.run doesn't support multiple workers when passing the app object, | |
| # but it supports it when passing the import string "app.main:app" | |
| workers = int(os.getenv("WORKERS", "4")) | |
| uvicorn.run( | |
| "app.main:app", | |
| host=host, | |
| port=port, | |
| workers=workers | |
| ) | |
| if __name__ == "__main__": | |
| main() | |