Wormhole
A self-hosted ngrok: expose a local port through your own SSH relay.
Details
- Role
- Author
- Started
- May 2026
- Language
- Go
- Platform
- Linux, macOS
Overview
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.
Highlights
- 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
Built with
- Go
- SSH