Appearance
Health and readiness
Liveness (/up)
Laravel’s built-in health route at GET /up confirms the PHP application process is running. It does not verify Postgres or the embedding provider.
Readiness (/health/ready)
GET /health/ready
- No authentication (for load balancers, Forge, Kubernetes).
- 200 when all checks pass.
- 503 when any check fails (body still includes per-check detail).
Response
json
{
"ready": true,
"checks": {
"database": { "ok": true },
"embedding": { "ok": true }
}
}On failure:
json
{
"ready": false,
"checks": {
"database": { "ok": true },
"embedding": { "ok": false, "error": "..." }
}
}Checks
| Check | What it verifies |
|---|---|
database | Postgres reachable (SELECT 1) |
embedding | Laravel AI embedding provider returns a non-empty vector for a short probe string (OPENBRAIN_READINESS_PROBE_TEXT, default openbrain-readiness-check) |
Poll at a reasonable interval (e.g. every 30s) — each request invokes the embedding provider.
MCP
openbrain_health runs the same checks and returns the same JSON shape. MCP requires Bearer authentication on /mcp in production (see authentication.md).