healthzkit, expose /healthz/live and /healthz/ready, and point Kubernetes at those routes.
Hono (copy-paste)
GET /healthz/live and a readiness probe at GET /healthz/ready.
Fetch-API servers (Bun, Deno, Workers)
createFetchHandler answers {basePath}/live and {basePath}/ready (default /healthz) on GET and HEAD. Other methods on those routes return 405. Unknown paths return 404.
handleRequest
If you already route HTTP yourself, pass the incoming path:
Default routes and basePath
By default, healthzkit expects:
The default
basePath is /healthz. Set basePath in the root config to move both routes (for example /api/health → /api/health/live and /api/health/ready).
handleRequest(req) returns null when req.path does not match either route, so you can try it first and fall through to the rest of your application.
AgnosticResponse
Handlers resolve to AgnosticResponse:
status, headers, and body onto your framework’s response object, or call toFetchResponse(res) for Hono, Next.js, Bun, and Workers.