Trabas: HTTP Tunneling Tool (ngrok Alternative)
███████ ███████ █ ███████ █ █████
█ █ █ █ █ █ █ █ █ █
█ ███████ █████ ███████ █████ █████
█ █ █ █ █ █ █ █ █ █
█ █ ██ █ █ ███████ █ █ █████
Trabas is an open-source, lightweight HTTP tunneling tool (an ngrok alternative) that lets you securely expose a local web service to the public internet over a persistent TCP tunnel. It focuses on simplicity, reproducibility, and observability through an all-in-one CLI. Ideal for quick API demos, webhook development, prototyping, or remote access.
Key Features
- Fast, minimal HTTP tunneling over stable TCP.
- Single portable binary.
- One server can multiplex multiple clients.
- Optional Redis-backed request queue for scale.
- Built-in rate limiting & response caching.
- TLS support (configurable).
- Simple configuration and clear CLI feedback.
Architecture & Usage Overview
Trabas runs as two coordinated processes:
- Server Service
- Accepts inbound public HTTP requests and maintains tunnels to connected clients.
- Forwards each public request to the matching client tunnel.
- Can optionally leverage Redis for distributed queueing (multiple server instances / HA).
- Client Service
- Maintains an outbound TCP tunnel to the server.
- Proxies incoming tunnel traffic to your local underlying service (e.g. localhost:8080).
This decoupling enables multiple local services to be exposed through a single public endpoint cluster.
Diagram
Here’s an example of how users access our local service through the internet:

Demo (Video)
Watch a short demo of HTTP tunneling with Trabas:
Why Trabas vs ngrok?
- Open-source (no vendor lock-in).
- Self-hostable for internal tooling.
- Simple, transparent protocol.
- Lightweight with zero dependencies (except optional Redis).
Next Steps
- Get started: see Installation
- Configure tunnels: see Tunnel Setup
- Explore CLI: see CLI Reference
Need a feature? Open an issue or suggest an edit using the Edit button in the top bar.
