"""FlowDeck — Kanban léger intégré à Gitea.""" from __future__ import annotations import logging from fastapi import FastAPI from fastapi.staticfiles import StaticFiles from fastapi.middleware.cors import CORSMiddleware from app.config import settings from app.db import init_db from app.routers import dashboard, board, notes, api # ── logging ── logging.basicConfig( level=getattr(logging, settings.log_level.upper(), logging.INFO), format="%(asctime)s [%(levelname)s] %(message)s", ) logger = logging.getLogger(__name__) # ── app ── app = FastAPI( title="FlowDeck", version="0.2.0", docs_url="/docs" if settings.log_level == "DEBUG" else None, redoc_url=None, ) # ponytail: CORS for LAN access app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_methods=["*"], allow_headers=["*"], ) # ── routers ── app.include_router(dashboard.router) app.include_router(board.router) app.include_router(notes.router) app.include_router(api.router) # ── static ── app.mount("/static", StaticFiles(directory="static"), name="static") @app.on_event("startup") async def startup(): init_db() logger.info("FlowDeck started on port %d", settings.app_port)