Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Run your own relay

By default a share registers with the built-in public relay, so links work with zero setup. Running your own removes that dependency, and it is a small job: the relay is a deliberately dumb UDP forwarder. It carries encrypted packets between the two ends without being able to read them, holds no keys, and speaks no protocol of its own beyond a registration message.

The relay ships as its own tarball in the same GitHub release (spora-relay-…, which contains the spora-relay binary and the spora-issuer token tool) and builds from the same repository (where a source build names the binary plain relay).

# on a machine with a public address
spora-relay --port 51820

# on the sharing machine
spora share --relay your.host:51820

The relay’s address is baked into the share URL, so clients need nothing extra. Repeat --relay to register with several relays; clients try them IPv6-first, then in listed order, which makes a second relay a cheap fallback. A hostname with both A and AAAA records counts as one relay per address family, and gives you IPv6 connectivity for free.

Skipping the relay entirely

If the sharing machine itself has a public, reachable address, no relay is needed at all:

spora share --direct your.public.host:51820

Clients then dial the sharer directly. Combine with --relay to offer both and let clients fall back.

Restricting who may use your relay

An open relay forwards for any sharer that registers. To limit yours to sharers you have authorized, the relay supports capability tokens; the repository’s relay/README.md covers issuing them, the alternative TCP and Noise carriers for networks that block UDP or fingerprint QUIC, and the relay’s own session log.