Wormhole

A self-hosted ngrok: expose a local port through your own SSH relay.

Role
Author
Started
May 2026
Language
Go
Platform
Linux, macOS

Tunnelling a local port to the public internet usually means handing your traffic to a third-party service. Wormhole does the same job over a relay you own: a small Go server on any public VPS, and a client on your machine.

The client opens an SSH connection to the server and requests a tunnel. The server assigns a readable token — calm-fox-535990 — and forwards traffic from that subdomain through the SSH connection to your local service. Each tunnel is isolated and ephemeral.

The trade-off against a hosted service is deliberate: you need a public machine and wildcard DNS, and in exchange no one else terminates your traffic or decides your rate limits. A local dashboard on port 4040 shows what is flowing through.

  • Self-hosted relay — traffic passes through infrastructure you control
  • SSH-based tunnelling with a persistent Ed25519 host key
  • Readable auto-generated tunnel tokens (e.g. calm-fox-535990)
  • Isolated, ephemeral tunnels per connection
  • Local inspection dashboard on port 4040
  • Single-command install script; Go 1.21+ and wildcard DNS required
  • Go
  • SSH

← All projects