Docuask / backend /app /server.py
Claude
Polish, tests & single-image deploy (Session 5)
821ccae unverified
Raw
History Blame Contribute Delete
1.01 kB
"""Combined ASGI app for single-container deploys (Hugging Face Spaces).
Serves the built frontend as static files and mounts the API under ``/api`` so
the browser only ever talks to one origin (no CORS, one demo URL). The
frontend's default API base is ``/api``, so no build-time config is needed.
Local dev and docker-compose keep using ``app.main`` directly; this module is
only the entrypoint for the single-image deployment.
"""
from __future__ import annotations
import os
from fastapi import FastAPI
from fastapi.staticfiles import StaticFiles
from .main import app as api_app
_STATIC_DIR = os.getenv(
"STATIC_DIR",
os.path.join(os.path.dirname(os.path.dirname(__file__)), "static"),
)
root = FastAPI(title="DocuAsk")
root.mount("/api", api_app)
# Mounted last so the API prefix wins; guarded so importing this module without
# a built frontend (e.g. in tests) doesn't fail.
if os.path.isdir(_STATIC_DIR):
root.mount("/", StaticFiles(directory=_STATIC_DIR, html=True), name="static")