from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from fastapi.responses import JSONResponse import os from dotenv import load_dotenv from routes import generation, auth, users, webhooks load_dotenv() app = FastAPI( title="Wan2.1 PWA API", description="API for AI video generation using Wan2.1 models", version="1.0.0", ) # CORS configuration origins = os.getenv("ALLOWED_ORIGINS", "http://localhost:3000").split(",") app.add_middleware( CORSMiddleware, allow_origins=origins, allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) # Include routers app.include_router(generation.router, prefix="/api/generation", tags=["generation"]) app.include_router(auth.router, prefix="/api/auth", tags=["auth"]) app.include_router(users.router, prefix="/api/users", tags=["users"]) app.include_router(webhooks.router, prefix="/api/webhooks", tags=["webhooks"]) @app.get("/") async def root(): return {"message": "Wan2.1 PWA API", "version": "1.0.0"} @app.get("/health") async def health(): return {"status": "healthy"} if __name__ == "__main__": import uvicorn uvicorn.run( "main:app", host="0.0.0.0", port=int(os.getenv("PORT", 8000)), reload=os.getenv("ENV") == "development", )