Unne
Unne Logo

Self-Hosted Tunnels.Your Server, Your Rules.

Expose local services to the internet through your own infrastructure. No third parties, no limits, no vendor lock-in.

Getting started

Install Unne CLI

Install the CLI, open a new terminal, then run unne http 3000 to create your first tunnel.

Looking for the server? See the server docs.

macOS / Linux
curl -fsSL https://unne.site/cli/install | bash
Windows (PowerShell)
irm https://unne.site/cli/install.ps1 | iex
HTTP & TCP tunnels

Expose HTTP services with custom subdomains or forward raw TCP ports for databases, SSH, and more.

unne httpunne tcpunne start
One config, full control

Single unne.yml configuration for multi-tunnel setups, subdomains, and proxy settings.

unne setupunne domainsunne check
Built-in observability

TUI dashboard, web inspector, and request analytics — see every request as it flows.

--webuiTUIInspector

Self-Host at Any Scale

Complete self-hosting

Run on your own VPS, bare metal, or Kubernetes. No external dependencies, no subscription fees, complete control over your data and infrastructure.

Secure by default

Token-based authentication, per-user permissions, TLS termination, and configurable rate limiting. Keep your tunnels locked down.

Lightweight & fast

Written in Go. Single binary, minimal memory footprint, yamux multiplexing for high-throughput tunnels.

Multi-platform

Native binaries for macOS, Linux, and Windows. One-line install scripts, Homebrew, and manual downloads available.

Everything you need in one tool

Unne gives you a complete self-hosted tunnel infrastructure — server, CLI, admin panel, and observability — all in a single binary.

unne http

HTTP tunnels with custom subdomains

Expose any local web server to the internet instantly. Custom subdomains, automatic TLS, and live request inspection.

  • Custom subdomains: --subdomain myapp
  • Automatic TLS termination on the server
  • Built-in TUI with request table
  • Web inspector with --webui
$ unne http 3000 --subdomain myapp
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Session Status online
Forwarding https://myapp.unne.site -> localhost:3000
Tunnel named
Connections total=4
───────────────────────────────────────────────────
# Method Path Status Time
───────────────────────────────────────────────────
1 GET / 200 12ms
2 POST /api/login 201 45ms
3 GET /api/users 200 8ms
unne tcp

TCP tunnels for any protocol

Forward raw TCP ports for databases, SSH, game servers, or any TCP service. No protocol restrictions.

  • Expose PostgreSQL, MySQL, Redis remotely
  • SSH access to local machines
  • Custom remote port with --remote-port
  • Per-user connection and bandwidth limits
$ unne tcp 5432
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Session Status online
Forwarding tcp://unne.site:19432 -> localhost:5432
Protocol TCP
Connections total=2
───────────────────────────────────────────────────
# Remote Local Bytes In Out
───────────────────────────────────────────────────
1 93.175.2.41 localhost:5432 1.4 MB 3.2 MB
2 185.22.67.8 localhost:5432 256 KB 890 KB
PostgreSQL accessible at unne.site:19432
--webui

TUI dashboard & web inspector

See every request flowing through your tunnels with the built-in terminal UI and Chrome DevTools-style web inspector.

  • Live request/response inspection
  • mitmproxy-style split pane view
  • Filter by method, status, path
  • Web inspector at localhost:4040
$ unne http 3000 --webui
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Forwarding https://app.unne.site -> localhost:3000
Web Inspector http://127.0.0.1:4040
───────────────────────────────────────────────────
# Method Path Status Time
───────────────────────────────────────────────────
1 GET / 200 12ms
2 POST /api/login 201 45ms
3 GET /api/users 200 8ms
unne.yml

Multi-tunnel configuration

Define all your tunnels in a single unne.yml file and start them with one command.

  • Multiple tunnels in one config
  • Named subdomains per tunnel
  • Proxy settings per tunnel
  • Start all with unne start
# unne.yml
server: unne.site
token: unn_abc123...
tunnels:
web:
proto: http
port: 3000
subdomain: myapp
api:
proto: http
port: 8080
subdomain: api
db:
proto: tcp
port: 5432
options

Flexible CLI options

Fine-tune every tunnel with powerful flags for subdomains, proxy, TUI, web inspector, and more.

  • --subdomain custom subdomain
  • --proxy SOCKS5/HTTP proxy
  • --no-tui log-only mode
  • --webui web inspector
$ unne
Unne CLI v2.0.1 - Self-hosted tunnel solution
Options:
--config, -c <path> Config file path
--subdomain, -s <name> Desired subdomain
--remote-port, -rp <port> Remote port (tcp)
--proxy, -p <url> Proxy URL
--skip-warning, --sw Skip browser warning
--no-tui Disable TUI
--webui, -w Enable web inspector
--webui-port, -wp <port> Inspector port