A webhook has to answer the instant a provider calls it. On serverless functions that means cold-start latency and dropped retries. On DenkOps your FastAPI app runs in an always-on slot, so the endpoint is warm the moment a payload lands.
from fastapi import FastAPI, Request
app = FastAPI()
@app.post("/hook")
async def hook(req: Request):
payload = await req.json()
# persist to the durable /persist disk
return {"ok": True}Deploy it: install the plugin, say "deploy on DenkOps", and get a live SSL URL.
Start on DenkOps →Yes. A DenkOps slot is a continuously running container, so there is no cold start, the webhook responds immediately even after idle periods.
Yes. Store the signing secret as an environment variable (write-only) and read it in your handler; it never appears in logs or the dashboard.