Everything included

Built for developers
who care about privacy

Every feature in Relayly is designed around one principle: the relay server should be dumb, tiny, and trustless.

๐Ÿ”

Noise Protocol XX

Cryptography

Relayly uses the Noise Protocol XX pattern with X25519 key exchange and ChaChaPoly AEAD for authenticated, forward-secret, end-to-end encryption. The relay server never sees plaintext, only opaque binary frames.

  • Mutual device authentication
  • Forward secrecy via ephemeral keys
  • Zero-knowledge relay
  • Public Key Locking prevents key swapping
๐Ÿ“ฑ

Simple Device Pairing

UX

Pair devices using a 6-digit short code or a QR code generated in the terminal. No accounts, no emails, no cloud registration. Pure cryptographic pairing: your identity is your key.

  • 6-digit one-time pairing code
  • QR code for mobile scanning
  • Admin-managed device registry
  • One-click device revocation
๐Ÿ—„๏ธ

Zero External Dependencies

Operations

Relayly embeds SQLite directly into the binary. No PostgreSQL, no Redis, no Kafka. Just a single portable binary you can run anywhere: your Raspberry Pi, your VPS, your NAS.

  • Embedded SQLite storage
  • Single static binary
  • No external database setup
  • Persistent volume for DB + keypair
๐Ÿ–ฅ๏ธ

Interactive Admin UI

Management

An HTMX-powered dashboard running on a separate admin port (default 127.0.0.1:8081). Live connection counts, device management, and one-click revocation, no JavaScript framework needed.

  • Live dashboard with auto-refresh
  • Device management with revoke
  • Separate admin bind address
  • Uptime + connection metrics
๐Ÿณ

Docker & Binary

Deployment

Ship with Docker Compose or run the single binary directly. Pre-built images available. Works behind Caddy or nginx as a reverse proxy with TLS termination.

  • docker compose up --build -d
  • Single binary for any Linux/macOS/Windows
  • Caddy / nginx reverse proxy support
  • Persistent volume mounts
โšก

Official Go & TypeScript SDKs

SDKs

Two first-class SDKs maintained in the same monorepo. Auto-reconnect with exponential backoff, event-driven message handling, and full async/await support in TypeScript.

  • Go SDK: sdk/go
  • TypeScript SDK: sdk/ts (Node + Browser)
  • Auto-reconnect with backoff
  • Event-driven message handling

How does Relayly compare?

FeatureRelaylyngrokTailscale
Self-hostedโœ…โŒโœ…
End-to-end encryptionโœ… Noise XXโŒ TLS onlyโœ…
No accounts requiredโœ…โŒโŒ
WebSocket relayโœ…โœ…โŒ
Single binaryโœ…โœ…โœ…
Local-first / offlineโœ…โŒโš ๏ธ
Open source (MIT)โœ…โŒโš ๏ธ Client only
Admin UIโœ… HTMXโœ… Dashโœ