dashboard-nanobot/backend/main.py

40 lines
1.2 KiB
Python

import os
from app_factory import app
def _main_server_options() -> tuple[str, int, bool, str, bool]:
host = str(os.getenv("APP_HOST", "0.0.0.0") or "0.0.0.0").strip() or "0.0.0.0"
try:
port = int(os.getenv("APP_PORT", "8000"))
except Exception:
port = 8000
port = max(1, min(port, 65535))
reload_flag = str(os.getenv("APP_RELOAD", "true")).strip().lower() in {"1", "true", "yes", "on"}
log_level = str(os.getenv("APP_LOG_LEVEL", "warning") or "warning").strip().lower() or "warning"
access_log = str(os.getenv("APP_ACCESS_LOG", "false")).strip().lower() in {"1", "true", "yes", "on"}
return host, port, reload_flag, log_level, access_log
if __name__ == "__main__":
import uvicorn
host, port, reload_flag, log_level, access_log = _main_server_options()
if reload_flag:
uvicorn.run(
"main:app",
host=host,
port=port,
reload=True,
log_level=log_level,
access_log=access_log,
)
else:
uvicorn.run(
app,
host=host,
port=port,
log_level=log_level,
access_log=access_log,
)