Update docs and screenshots
CI / backend (pull_request) Canceled after 0s
CI / shell (pull_request) Canceled after 0s
CI / frontend (pull_request) Canceled after 0s
CI / arm64-smoke (pull_request) Canceled after 0s
CI / backend (push) Canceled after 0s
CI / shell (push) Canceled after 0s
CI / frontend (push) Canceled after 0s
CI / arm64-smoke (push) Canceled after 0s

This commit is contained in:
2026-07-25 10:26:29 +02:00
parent d6cda77aaf
commit 1f110866f5
170 changed files with 24657 additions and 3 deletions
+40
View File
@@ -0,0 +1,40 @@
from collections.abc import AsyncIterator
from contextlib import asynccontextmanager
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from fastapi.staticfiles import StaticFiles
from app.api.router import api_router
from app.core.config import get_settings
from app.core.database import init_database
from app.core.dependencies import app_state
from app.core.logging import configure_logging
from app.websocket.router import websocket_router
@asynccontextmanager
async def lifespan(_: FastAPI) -> AsyncIterator[None]:
configure_logging()
await init_database()
await app_state.startup()
try:
yield
finally:
await app_state.shutdown()
settings = get_settings()
app = FastAPI(title=settings.app_name, lifespan=lifespan, docs_url=None, redoc_url=None)
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
app.include_router(api_router, prefix="/api/v1")
app.include_router(websocket_router)
if settings.frontend_dist.exists():
app.mount("/", StaticFiles(directory=settings.frontend_dist, html=True), name="frontend")