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")