| from __future__ import annotations |
|
|
| 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 app.api.routes import router |
| from app.core.config import settings |
| from app.core.logging import setup_logging |
|
|
| setup_logging() |
|
|
| app = FastAPI(title=settings.app_name, version=settings.app_version) |
| STATIC_DIR = Path(__file__).resolve().parent / "static" |
| cors_origins = [origin.strip() for origin in settings.cors_origins.split(",") if origin.strip()] |
|
|
| app.add_middleware( |
| CORSMiddleware, |
| allow_origins=cors_origins, |
| allow_credentials=True, |
| allow_methods=["*"], |
| allow_headers=["*"], |
| ) |
| app.include_router(router) |
| app.mount("/static", StaticFiles(directory=STATIC_DIR), name="static") |
|
|
|
|
| @app.get("/") |
| async def index() -> FileResponse: |
| return FileResponse(STATIC_DIR / "index.html") |
|
|