Application setup, middleware, lifespan, and router mounting.
Source: web/backend/main.py
app = FastAPI(title="screencastgen API", version="2.0.0")
| Event | Action |
|---|---|
| Startup | Create database tables |
| Shutdown | Dispose database engine |
/api prefix)| Prefix | Router | Description |
|---|---|---|
/api/uploads |
Uploads Router | File upload |
/api/jobs |
Jobs Router | Job CRUD + dispatch |
/api/jobs/{id}/events |
Events Router | SSE progress |
/api/voices |
Voices Router | Voice library |
/api/jobs/{id}/reader/... |
Reader Router | Browser reader assets |
GET /api/health → {"status": "ok"}
FastAPI App
├── FastAPI + uvicorn
├── Web Config (Settings)
├── Web Database (engine lifecycle)
├── Uploads Router
├── Jobs Router
├── Events Router
├── Voices Router
└── Reader Router