netadm/main.py

48 lines
927 B
Python

import logging
from contextlib import asynccontextmanager
from config import settings, STATIC_DIR
import uvicorn
from fastapi import FastAPI
from fastapi.responses import ORJSONResponse
from starlette.staticfiles import StaticFiles
from web.routers import router as web_router
from models import db_helper
@asynccontextmanager
async def lifespan(app: FastAPI):
# startup
yield
# shutdown
await db_helper.dispose()
main_app = FastAPI(
default_response_class=ORJSONResponse,
lifespan=lifespan,
docs_url=None,
)
main_app.include_router(
web_router,
)
main_app.mount(
"/static",
StaticFiles(directory=STATIC_DIR),
name="static",
)
if __name__ == "__main__":
logging.info("Starting server")
uvicorn.run(
"main:main_app",
host=settings.run.host,
port=settings.run.port,
reload=settings.run.reload,
)
logging.info("Server stopped")