41 lines
1,023 B
Python
41 lines
1,023 B
Python
|
|
from pathlib import Path
|
||
|
|
|
||
|
|
from fastapi import FastAPI
|
||
|
|
from fastapi.middleware.cors import CORSMiddleware
|
||
|
|
from fastapi.responses import FileResponse
|
||
|
|
from fastapi.staticfiles import StaticFiles
|
||
|
|
from starlette.middleware.sessions import SessionMiddleware
|
||
|
|
|
||
|
|
from app import auth
|
||
|
|
from app.config import settings
|
||
|
|
from app.routes import health
|
||
|
|
|
||
|
|
app = FastAPI(title=settings.app_name)
|
||
|
|
|
||
|
|
app.add_middleware(
|
||
|
|
SessionMiddleware,
|
||
|
|
secret_key=settings.secret_key,
|
||
|
|
same_site="lax",
|
||
|
|
https_only=False,
|
||
|
|
)
|
||
|
|
|
||
|
|
if settings.frontend_origin:
|
||
|
|
app.add_middleware(
|
||
|
|
CORSMiddleware,
|
||
|
|
allow_origins=[settings.frontend_origin],
|
||
|
|
allow_credentials=True,
|
||
|
|
allow_methods=["*"],
|
||
|
|
allow_headers=["*"],
|
||
|
|
)
|
||
|
|
|
||
|
|
app.include_router(health.router)
|
||
|
|
app.include_router(auth.router)
|
||
|
|
|
||
|
|
STATIC_DIR = Path(__file__).parent / "static"
|
||
|
|
app.mount("/assets", StaticFiles(directory=STATIC_DIR / "assets"), name="assets")
|
||
|
|
|
||
|
|
|
||
|
|
@app.get("/")
|
||
|
|
async def index() -> FileResponse:
|
||
|
|
return FileResponse(STATIC_DIR / "index.html")
|