from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from fastapi.responses import FileResponse from fastapi.staticfiles import StaticFiles from . import constants app = FastAPI() # Lax on CORS headers (Spaces take care of security issues) app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) # Mount static files from dist directory (if configured) if constants.SERVE_FRONTEND: app.mount( "/assets", StaticFiles(directory=constants.FRONTEND_ASSETS_PATH), name="assets", ) @app.get("/") async def serve_frontend(): return FileResponse(constants.FRONTEND_INDEX_PATH) @app.get("/api/health") async def health(): return {"status": "ok"}