Localhost to the world. Privately.

A self-hosted localhost tunneling tool built by a CRM company that got tired of duct-taping dev workflows.

Tunnelr - Localhost to the world. Privately. | Product Hunt
# On your VPS - deploy the server
git clone https://github.com/Aakeeo/tunnelr.git && cd tunnelr
cp .env.example .env && nano .env
docker compose up -d

# On your laptop - connect
TUNNELR_SERVER=wss://yourdomain.com/ws tunnelr connect 3000

# That's it!
Tunnel established!
  Public URL: https://yourdomain.com/t/a1b2c3
  Forwarding: https://yourdomain.com/t/a1b2c3 -> http://localhost:3000

Why this exists

We build CRMs, automation systems, and AI agents. That means a lot of webhooks, callbacks, and local services that need to be temporarily public.

Tunnelr started as an internal tool. We open-sourced it because it solved a real problem for us.

For teams handling sensitive data: Every webhook, every API callback, every piece of customer data stays on your infrastructure. No third-party services seeing your traffic. No logs you don't control. Your tunnels, your servers, your rules.

What Tunnelr is (and isn't)

Tunnelr is:

  • Self-hosted
  • Domain-first
  • Simple and predictable

Tunnelr is not:

  • A hosted SaaS
  • A replacement for every tunneling service
  • A "sign up and forget" tool

Where it fits best

CRM Webhooks

Test payment callbacks, form submissions, and integrations locally

AI Agent Callbacks

Receive async responses from LLM APIs and agent workflows

Internal Tools

Share dev builds with your team without deploying

Long-running Tunnels

No 2-hour limits, no random URL changes

Comparison

Feature Tunnelr ngrok (free) Cloudflare Tunnel
Self-hosted Yes No No
Unlimited tunnels Yes 1 only Yes
Persistent URLs Yes 2hr expiry Yes
Custom domain Yes No Yes
No account required Yes No No
Full data privacy Yes No No

See it in action