inital commit

This commit is contained in:
2026-06-08 15:57:11 +02:00
parent aaf8729663
commit d9ca48addc
114 changed files with 12172 additions and 1 deletions

47
server/app/main.py Normal file
View File

@@ -0,0 +1,47 @@
from contextlib import asynccontextmanager
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from app.api.v1 import router as api_v1_router
from app.db.bootstrap import bootstrap_dev_data, create_all_tables
from app.db.session import SessionLocal
from app.settings import settings
@asynccontextmanager
async def lifespan(app: FastAPI):
if settings.app_env == "dev" and settings.dev_bootstrap_enabled:
create_all_tables()
with SessionLocal() as session:
bootstrap_dev_data(session, api_key_secret=settings.dev_bootstrap_api_key)
yield
app = FastAPI(title="MultiMailer Server", version="0.2.0", lifespan=lifespan)
origins = [item.strip() for item in settings.cors_origins.split(",") if item.strip()]
if origins:
app.add_middleware(
CORSMiddleware,
allow_origins=["*"] if "*" in origins else origins,
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
app.include_router(api_v1_router)
@app.get("/health")
def health():
return {
"status": "ok",
"env": settings.app_env,
"api": {"version": "v1", "auth": "api-key"},
"storage": {
"endpoint": settings.s3_endpoint_url,
"bucket": settings.s3_bucket,
"region": settings.s3_region,
},
}