feat: initialisation Hermes Hub — interface multi-univers securisee (FastAPI, proxy async, design tokens)

This commit is contained in:
bolbol
2026-08-19 20:46:08 +01:00
commit d107d40a30
59 changed files with 1538 additions and 0 deletions
+51
View File
@@ -0,0 +1,51 @@
from fastapi import FastAPI, Request
from fastapi.responses import HTMLResponse
from fastapi.staticfiles import StaticFiles
from fastapi.templating import Jinja2Templates
from pathlib import Path
from contextlib import asynccontextmanager
from app.config import settings, UNIVERSES, BASE_DIR
from app.routers import api, proxy
from app.proxy import close_http_client
from app.personas import ensure_dirs
@asynccontextmanager
async def lifespan(app: FastAPI):
ensure_dirs()
yield
await close_http_client()
app = FastAPI(
title=settings.app_name,
version="1.0.0",
lifespan=lifespan
)
# Mount static files
static_dir = BASE_DIR / "static"
static_dir.mkdir(parents=True, exist_ok=True)
app.mount("/static", StaticFiles(directory=str(static_dir)), name="static")
# Templates
templates_dir = BASE_DIR / "app" / "templates"
templates = Jinja2Templates(directory=str(templates_dir))
# Include Routers
app.include_router(api.router)
app.include_router(proxy.router)
@app.get("/", response_class=HTMLResponse)
async def index_view(request: Request):
return templates.TemplateResponse(
"index.html",
{
"request": request,
"universes": UNIVERSES,
"app_name": settings.app_name
}
)
if __name__ == "__main__":
import uvicorn
uvicorn.run("app.main:app", host=settings.host, port=settings.port, reload=settings.debug)