Evolu Relay

Evolu Relay provides sync and backup for Evolu apps. Evolu apps can use multiple relays simultaneously. For resilience, it's recommended to use two relays: a fast primary "home/company" relay (on‑prem or close to users) and a geographically distant secondary relay if the primary relay fails (hardware failure, network issues, etc.).

Evolu apps can combine self‑hosted relays with cloud relays. Evolu Relay is stateless, so it can run in any serverless cloud environment (AWS Lambda, Cloudflare Workers, etc.), allowing Evolu apps to work even when major cloud providers go down.

Direct peer‑to‑peer (P2P) sync between clients is technically possible and on our roadmap; implementation awaits additional local transports like Bluetooth, Wi‑Fi, LAN, etc.

For details on privacy, check the privacy docs.

Hosting Evolu Relay

The reference relay is published as the @evolu/relay npm package and the evoluhq/relay Docker image. Its source code can be found at github.com/evoluhq/evolu/tree/main/apps/relay.

We provide a free free.evoluhq.com relay for testing, but no hosting because it's not Evolu's mission to compete with established clouds (yet). Our plan for Evolu is different: We will sell Evolu apps, Evolu HW devices, and provide paid support. Testing relay data may be deleted; do not rely on it as your only backup.

Configuring Evolu Relay

The relay reads its listening port from PORT, defaulting to 4000, and its optional per-owner storage quota from EVOLU_RELAY_MAX_OWNER_BYTES. No per-owner storage limit is imposed when this variable is unset. Set a quota appropriate for your deployment; it does not limit total disk usage. Quota values must be size literals such as 512KiB or 10MiB, rather than bare byte counts such as 1048576. PORT also supports hosting platforms that supply the listening port; EVOLU_RELAY_PORT is not supported. Invalid supplied values and unknown EVOLU_RELAY_* variables stop the relay with a validation message. See the package README for the full list.

PORT=4001 EVOLU_RELAY_MAX_OWNER_BYTES=10MiB npx @evolu/relay