Health check endpoints

Enterprise feature

This feature is available only for the Enterprise plan. To get started, reach out to support@buildwithfern.com.

The self-hosted container exposes health check endpoints for Kubernetes and Helm deployments on port 8081. These endpoints help you monitor the container’s health and ensure proper startup behavior.

The liveness probe detects unrecoverable failures and triggers container restart, while the readiness probe prevents traffic routing to containers that are still starting up. By using both probes, deployments no longer need arbitrary timeouts like --wait --timeout 15m0s.

Available endpoints

Liveness probe

GET /liveness verifies that all critical service processes are still running by checking their PIDs. Use this to distinguish between unrecoverable failures (process died) and slow startups.

Usage
$curl http://localhost:8081/liveness
ResponseDescription
200 OKAll critical processes are alive
503 Service UnavailableOne or more critical processes have died (container should be restarted)
  • PostgreSQL (via pg_isready)
  • MinIO (via /minio/health/live)
  • FDR server (via /health)
  • Next.js docs server (via root endpoint)
  • MeiliSearch (warning only, non-critical)

Readiness probe

GET /readiness verifies that all services are healthy and ready to serve traffic by testing their health endpoints. It returns success only when all services are fully initialized and responsive.

Usage
$curl http://localhost:8081/readiness
ResponseDescription
200 OKAll services are ready to serve traffic
503 Service UnavailableOne or more services aren’t ready (wait longer)
  • PostgreSQL (via pg_isready)
  • MinIO (via /minio/health/live)
  • FDR server (via /health)
  • Next.js docs server (via root endpoint)
  • MeiliSearch (warning only, non-critical)

Legacy health endpoint

GET /health provides backward compatibility with existing deployments. Returns the same status as the readiness probe.

Usage
$curl http://localhost:8081/health

Configuration

Configure your Kubernetes or Helm deployment to use both probes:

1livenessProbe:
2 httpGet:
3 path: /liveness
4 port: 8081
5 initialDelaySeconds: 60
6 periodSeconds: 10
7 timeoutSeconds: 5
8 failureThreshold: 3
9
10readinessProbe:
11 httpGet:
12 path: /readiness
13 port: 8081
14 initialDelaySeconds: 30
15 periodSeconds: 5
16 timeoutSeconds: 5
17 failureThreshold: 3