Live status

Status

What the public relay is doing right now, what changed recently, and what we are still working on. Updated every deploy.

Live

The public /healthz endpoint returns the minimum a monitor or beta user needs to confirm the relay is on the expected build:

curl -s https://securechat.team/healthz
# {"status":"ok","uptimeSeconds":...,"version":"v0.1.0+<git-sha>"}

The response is intentionally minimal. The relay's internal surface (store type, max packet bytes, auth-required flag, etc.) is exposed only behind the operator-only /healthz/internal endpoint, which requires an X-Securechat-Ops-Token header.

Security posture

ControlStatusNotes
End-to-end encryption (Curve25519 + AES-GCM) shipped On-device only, per Apple CryptoKit.
Zero-knowledge relay shipped Relay never sees plaintext, keys, or bodies.
Signed envelopes shipped Ed25519 over the canonical envelope, enforced server-side.
Replay protection (TTL + clock-skew window) shipped Default TTL 24h, clock-skew 5min, configurable.
HTTPS-only in production shipped Production fails to start without TLS termination upstream.
Per-IP rate limit shipped 120 req/min by default, configurable.
Storage cap (per-recipient + global) shipped 500 per recipient, 10 000 globally, configurable.
External security audit planned Recommended before high-assurance claims. See SECURITY.md.

Relay endpoints

PathAuthPurpose
GET /healthz none Public healthcheck. {status, uptimeSeconds, version}.
GET /healthz/internal X-Securechat-Ops-Token Operator-only healthcheck. Adds peers, packetCount, nodeEnv.
GET /health none (internal use) Legacy detailed health, retained for operator diagnostics.
GET /v1/relay/security/policy none Public security policy (encryption-only flag, max packet size, rate limit).
GET /v1/relay/stats none Public stats (counts only, no peer IDs, no payloads).
POST /v1/relay/messages Bearer RELAY_AUTH_TOKEN Drop a sealed, signed packet for a recipient.
GET /v1/relay/messages Bearer RELAY_AUTH_TOKEN Fetch pending packets for a recipient.
POST /v1/admin/relay/... Bearer RELAY_ADMIN_TOKEN Operator-only admin endpoints (purge, detailed stats).

Canonical source of truth: docs/CURRENT-ENDPOINTS.md.

Legacy hosts

The previous public hostname, chatsecure.ddns.net, was decommissioned on 22 June 2026 during the cutover to securechat.team. The DNS A record was removed at the registrar; the Caddy block returns 308 Permanent Redirect to https://securechat.team{uri} for every request as a belt-and-braces measure for cached resolvers. Verified NXDOMAIN on 22 June 2026 (8.8.8.8, the server's local resolver, the build host). If you still see it resolve, that is resolver or search-engine cache, not a live server.

What changed recently

See the project CHANGELOG.md for the full history. Public-beta changes are summarised in known-issues.html.