relay
pre-alpha · built in Rust

Tunnels you can self-host.

Relay is a self-hostable tunneling service — a Rust-based alternative to ngrok. Expose a local port to the internet over QUIC, with wildcard TLS and your own hostnames.

sh
brew tap afomera/relay https://github.com/afomera/relay.git && brew install relay

relay auth login   # opens your browser to sign in & authorize the CLI
relay http 3000
# → https://bright-otter.temporary.sharedwithrelay.com

Why relay

Read the docs

Fully self-hostable

One binary. SQLite or Postgres. Pluggable DNS provider for wildcard TLS. Run the control plane on your own infrastructure and keep your tunnel traffic where you trust it.

QUIC under the hood

Low latency, stream multiplexing, and resilient reconnects across flaky networks.

Hostnames that stick

Generated, reserved, wildcard, or your own custom domain.

HTTP & raw TCP

Web services or Postgres, Redis, SSH — one command.

Install in seconds

brew install on macOS, cargo install anywhere Rust runs.

MIT licensed, open forever

Free and open source. Built in Rust. Use it, fork it, ship it — no catches.

One command, you're online.

Authenticate once, then point relay at any local port. Pick a generated hostname, reserve one on the shared domain, or bring your own.

  • Generated subdomains on the shared zone for ephemeral sharing.
  • Reserved wildcard hostnames like api.andrea.
  • Custom domains with automatic wildcard TLS.
  • Raw TCP on a shared ingress address.
http
relay http 3000
# → https://bright-otter.temporary.sharedwithrelay.com
wildcard
relay http 3000 --hostname api.andrea
# → https://api.andrea.sharedwithrelay.com
domain
relay http 3000 --domain tunnel.mycompany.com
tcp
relay tcp 5432
# → tcp.sharedwithrelay.com:29734

Ready to start tunneling?

Install the CLI, sign in from your browser, and expose a port. Zero to URL in under a minute.

sh
brew tap afomera/relay https://github.com/afomera/relay.git && brew install relay
sh
relay auth login
sh
relay http 3000