RealtimeSDWebRTC / server.py
Jon Taylor
base setup
ad5d266
raw
history blame
1.43 kB
from fastapi import FastAPI, HTTPException
from fastapi.middleware.cors import CORSMiddleware
from fastapi.staticfiles import StaticFiles
from fastapi.responses import FileResponse
from dotenv import load_dotenv
from pathlib import Path
import os
load_dotenv()
app = FastAPI()
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
# Mount the static directory
app.mount("/static", StaticFiles(directory="frontend/out", html=True), name="static")
@app.get("/{path_name:path}")
async def catch_all(path_name: str):
# Default route for the root
if path_name == "":
path_name = "index"
# Construct file path with .html extension
file_path = Path("frontend/out") / f"{path_name}.html"
if file_path.is_file():
# Serve the .html file if it exists
return FileResponse(file_path)
else:
# If the specific .html file does not exist, raise a 404 error
raise HTTPException(status_code=404, detail="Item not found")
# Run the application using Uvicorn
if __name__ == "__main__":
import uvicorn
uvicorn.run(
"server:app",
host="0.0.0.0",
port=int(os.getenv('FAST_API_PORT', 8000)),
reload=os.getenv('FAST_API_RELOAD', 'false').lower() == 'true',
#ssl_certfile=args.ssl_certfile,
#ssl_keyfile=args.ssl_keyfile,
)