Nodus
Self-hosting

Monitoring and logs

Health checks, logs, and what to watch.

Health check

The Relay exposes GET /health, which reports SQLite and Redis status:

curl -fsS https://your-relay.example/health   # {"status":"ok",...}

The Compose unit uses this endpoint as the Relay's healthcheck, and the web service checks /api/health. Caddy routes both.

Logs

docker compose -f deploy/docker-compose.yml logs -f relay web docs caddy

Metrics to watch

SignalWhy
Relay /healthDetect SQLite/Redis outages
Relay error logsFailed auth, WS rejections, buffer errors
Relay data volumeDurable SQLite + shard-buffer growth
Buffer volume sizePath C buffering backlog
Storage Node statusNode health and reachability

WebSocket auth failures

If the browser cannot open /ws, the Relay rejects it when ALLOWED_ORIGINS does not match the page origin. Check both ALLOWED_ORIGINS and the host you opened in the browser. Close code 4001 means the session was rejected and the client signs out.

On this page