~/
tunnelv1.0
GitHub
Built with Go · WebSockets · HTTPS

Exposelocalhostsecurely.

A lightweight reverse tunnel platform built in Go. Share local servers over HTTPS via WSS — self-hosted, fast, and open-source. Like ngrok, but yours.

Download BinarySetup Guide
tunnel — bash

~/projects/myapp $ tunnel http 5000▋

Connecting to tunnel.annuvrat.com...

✔ Tunnel established successfully

Forwarding https://tunnel.annuvrat.com/t/abc123

          → http://localhost:5000

● connectedHTTPS + WSSReverse Tunnel

// features

Production-grade tunneling

Everything you need to expose a local server reliably and securely.

Security

Secure WSS Transport

Encrypted WebSocket tunnels between client and server — every byte in transit is protected.

Networking

Automatic HTTPS

Caddy + Let's Encrypt handle TLS automatically. Your local server gets a real HTTPS URL instantly.

Performance

Concurrent Goroutines

Built in Go — handles bursts of concurrent requests without breaking a sweat.

Portability

Cross-Platform CLI

Pre-built binaries for Windows, Linux, and macOS. Download, add to PATH, run.

DevOps

Docker Ready

Production-ready containerized server infrastructure with zero-config deployment.

Reliability

Heartbeat Monitoring

Persistent connection health checks with graceful reconnection and shutdown handling.

// downloads

Download CLI binary

Available for every major platform.

Linux

x64 / AMD64

Download tunnel-linux-amd64.tar.gz

Quick command

tunnel http 5000

Installation steps

# Extract the archive
tar -xzf tunnel-linux-amd64.tar.gz

# Make the binary executable
chmod +x tunnel

# Move it to a directory in PATH
sudo mv tunnel /usr/local/bin/

# Run from anywhere
tunnel http 5000

// setup

Installation guide

All platforms, step by step.

Windows

x64 / AMD64

▶
# 1. Extract the ZIP archive

# 2. Move tunnel.exe to a permanent location
#    e.g. C:\Tools\tunnel.exe

# 3. Add the folder to your PATH environment variable
#    System Properties -> Environment Variables -> PATH

# 4. Open a new terminal and run
tunnel http 5000

Linux

x64 / AMD64

▶
# Extract the archive
tar -xzf tunnel-linux-amd64.tar.gz

# Make the binary executable
chmod +x tunnel

# Move it to a directory in PATH
sudo mv tunnel /usr/local/bin/

# Run from anywhere
tunnel http 5000

macOS

Apple Silicon

▶
# Extract the archive
tar -xzf tunnel-macos-arm64.tar.gz

# Make the binary executable
chmod +x tunnel

# Move it to a directory in PATH
sudo mv tunnel /usr/local/bin/

# Run from anywhere
tunnel http 5000

// architecture

Infrastructure overview

Minimal, production-ready, and fully self-hosted.

Browser

Public request

→

Caddy

TLS termination

→

Tunnel Server

Go backend

→

WSS

Encrypted pipe

→

localhost

Your app

TLS Termination

Caddy handles all HTTPS and certificate renewal automatically via Let's Encrypt.

Tunnel Server

A Go server accepts WSS connections from CLI clients and proxies HTTP traffic bidirectionally.

WSS Pipe

A persistent encrypted WebSocket carries request/response payloads between server and local app.