diff --git a/app/main.py b/app/main.py index dd0e8fd..8931c24 100644 --- a/app/main.py +++ b/app/main.py @@ -14,10 +14,13 @@ from __future__ import annotations import logging from contextlib import asynccontextmanager +from pathlib import Path + from fastapi import FastAPI, Request, status from fastapi.exceptions import RequestValidationError from fastapi.middleware.cors import CORSMiddleware from fastapi.responses import JSONResponse +from fastapi.staticfiles import StaticFiles from sqlalchemy import text from sqlalchemy.exc import SQLAlchemyError from starlette.exceptions import HTTPException as StarletteHTTPException @@ -190,6 +193,15 @@ def create_app() -> FastAPI: app.include_router(tags.router, prefix="/api/v1") app.include_router(dashboard.router, prefix="/api/v1") + # === Static Files (Frontend) === + # Mount app/webui/ on root AFTER all routers, so /api/v1/* still matches first. + # StaticFiles mit html=True servt index.html on `/` und alle .html files direkt. + webui_dir = Path(__file__).parent / "webui" + if webui_dir.exists(): + app.mount("/", StaticFiles(directory=str(webui_dir), html=True), name="webui") + else: + logger.warning("webui directory not found at %s — frontend not served", webui_dir) + return app