feat(static-mount): integrate frontend (13 pages) into FastAPI app

This commit is contained in:
CRM Bot
2026-06-03 22:05:37 +00:00
parent 0f11e4a836
commit 86dac33663
+12
View File
@@ -14,10 +14,13 @@ from __future__ import annotations
import logging import logging
from contextlib import asynccontextmanager from contextlib import asynccontextmanager
from pathlib import Path
from fastapi import FastAPI, Request, status from fastapi import FastAPI, Request, status
from fastapi.exceptions import RequestValidationError from fastapi.exceptions import RequestValidationError
from fastapi.middleware.cors import CORSMiddleware from fastapi.middleware.cors import CORSMiddleware
from fastapi.responses import JSONResponse from fastapi.responses import JSONResponse
from fastapi.staticfiles import StaticFiles
from sqlalchemy import text from sqlalchemy import text
from sqlalchemy.exc import SQLAlchemyError from sqlalchemy.exc import SQLAlchemyError
from starlette.exceptions import HTTPException as StarletteHTTPException 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(tags.router, prefix="/api/v1")
app.include_router(dashboard.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 return app