- Updated docker-compose.yml to allow disabling embedded Ollama via environment variable. - Refactored Dockerfile and Dockerfile.dev for improved dependency management and installation process. - Enhanced FastAPI migration scripts to handle orphaned Alembic revisions and added new database migration logic. - Improved error handling in background tasks and Codex authentication endpoints. - Added support for font file uploads with better validation and extraction of font names. - Introduced new image search functionality with support for Pexels and Pixabay APIs.
42 lines
1.3 KiB
Python
42 lines
1.3 KiB
Python
import os
|
|
|
|
from fastapi import FastAPI
|
|
from fastapi.middleware.cors import CORSMiddleware
|
|
from fastapi.staticfiles import StaticFiles
|
|
|
|
from api.lifespan import app_lifespan
|
|
from api.middlewares import UserConfigEnvUpdateMiddleware
|
|
from api.v1.mock.router import API_V1_MOCK_ROUTER
|
|
from api.v1.ppt.router import API_V1_PPT_ROUTER
|
|
from api.v1.webhook.router import API_V1_WEBHOOK_ROUTER
|
|
from utils.get_env import get_app_data_directory_env
|
|
from utils.path_helpers import get_resource_path
|
|
|
|
app = FastAPI(lifespan=app_lifespan)
|
|
|
|
# Routers
|
|
app.include_router(API_V1_PPT_ROUTER)
|
|
app.include_router(API_V1_WEBHOOK_ROUTER)
|
|
app.include_router(API_V1_MOCK_ROUTER)
|
|
|
|
# Mount app_data and static assets (direct FastAPI access; nginx also serves /static in Docker).
|
|
app_data_dir = get_app_data_directory_env()
|
|
if app_data_dir:
|
|
os.makedirs(app_data_dir, exist_ok=True)
|
|
app.mount("/app_data", StaticFiles(directory=app_data_dir), name="app_data")
|
|
|
|
static_dir = get_resource_path("static")
|
|
if os.path.isdir(static_dir):
|
|
app.mount("/static", StaticFiles(directory=static_dir), name="static")
|
|
|
|
# Middlewares
|
|
origins = ["*"]
|
|
app.add_middleware(
|
|
CORSMiddleware,
|
|
allow_origins=origins,
|
|
allow_credentials=True,
|
|
allow_methods=["*"],
|
|
allow_headers=["*"],
|
|
)
|
|
|
|
app.add_middleware(UserConfigEnvUpdateMiddleware)
|