Files
formex-viewer/main.py
Adrian Rumpold a15ceaa6e3 Modal deployment
2025-04-24 08:45:01 +02:00

36 lines
796 B
Python

from pathlib import Path
import modal
import config
app_image = (
modal.Image.debian_slim(python_version="3.12")
.pip_install("lxml", "fastapi[standard]", "httpx")
.add_local_python_source("formex_viewer", "config")
)
app = modal.App("formex-viewer", image=app_image)
@app.function(
image=app_image.add_local_dir(config.ASSETS_PATH, "/assets"),
cpu=2,
)
@modal.asgi_app()
def fastapi_app():
import fastapi.staticfiles
from formex_viewer.server import app as formex_app
assets_path = Path("/assets")
@formex_app.get("/{path:path}")
async def frontend_handler(path: str):
fp = assets_path / path
if not fp.exists():
fp = assets_path / "index.html"
return fastapi.responses.FileResponse(fp)
return formex_app