40 lines
1.2 KiB
Python
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,
|
|
)
|