Skip to main content
All configuration is via environment variables. PostgreSQL / pg-sync (--features pg-sync): Clustering (--features cluster or cluster-http): For S3 WAL archive variables (S3_BUCKET, S3_ENDPOINT, etc.), see the Storage page.

MERIDIAN_SIGNING_KEY

Generate a secure key:
This key is used to sign and verify auth tokens. Keep it secret and back it up — losing it invalidates all issued tokens. If unset, a random key is generated at startup. This is fine for local development but not for production (tokens become invalid on restart).

Webhooks

When MERIDIAN_WEBHOOK_URL is set, Meridian sends a POST request to that URL after every successful CRDT operation. Payload
source is either "http" (REST op) or "ws" (WebSocket op). Signature verification Every request includes an X-Meridian-Signature header containing HMAC-SHA256(secret, body) as a lowercase hex string.
Failed deliveries are retried up to 3 times with exponential backoff (200ms, 400ms, 800ms). Events are dropped if the internal queue (1024 slots) is full.

Rate limiting

Each token is limited to 100 requests per second (sliding window). Requests over the limit return 429 Too Many Requests:

Health checks

Meridian exposes two unauthenticated health endpoints: /health/ready returns 503 if the store is unreachable. Example response:
Kubernetes example:

Metrics

Meridian exposes a Prometheus-compatible metrics endpoint at GET /metrics (no authentication required). Example Prometheus scrape config:

MERIDIAN_DATA_DIR

Meridian uses sled as its embedded database. The data directory contains the sled tree files. In Docker, this is mounted as a named volume: