Skip to content

codad5/raba

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

108 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

raba: share your localhost

CI status Latest release License: FSL-1.1-ALv2 Documentation

raba is a self-hosted, open-source alternative to ngrok, Cloudflare Tunnel, and frp — expose a local HTTP, TCP, or UDP server to the internet from a single Docker image you control, with a web dashboard, multi-tenant teams, and automated TLS.


Contents

Why "raba"?

raba is Hausa for "to divide, separate, share, or distribute." Both senses map onto what this tool actually does: the "share/distribute" sense is the pitch (share your localhost with the world); the "divide/separate" sense is the exact problem being solved (bridging a machine that's cut off from the public internet by NAT/firewall). The logo's arch, bridging two connection points, is a direct visual read of that same idea — see BRAND.md for the full brand guide.

What it does

  • HTTP, TCP, and UDP tunneling — expose a local server on any of the three, from a single CLI command.
  • Self-hosted, single Docker image — your own server, your own domain, no third-party relay.
  • Web dashboard — projects, request logs, traffic stats, team management, all served by the same binary.
  • Multi-tenancy — teams, per-team roles, and per-team custom domains with automated DNS-01 TLS issuance/renewal (Let's Encrypt via Cloudflare DNS today).
  • Byte-level forwarding — the server never parses HTTP request/response bodies; it forwards raw bytes. Nothing you tunnel is inspected or logged beyond connection metadata.

Quickstart

Run a server

curl -fsSL https://raw.githubusercontent.com/codad5/raba/master/install-server.sh | bash

Interactive: prompts for your domain, optional automated TLS (Let's Encrypt via Cloudflare DNS-01), and Docker vs. a direct systemd install — generates JWT_SECRET for you. See docs-site for the full walkthrough, or docker/.env.example to configure by hand.

Install the CLI

curl -fsSL https://raw.githubusercontent.com/codad5/raba/master/install.sh | sh

Windows: irm https://raw.githubusercontent.com/codad5/raba/master/install.ps1 | iex in PowerShell.

Tunnel your first port

raba login --server https://your-domain.example
raba http 3000

See raba --help for the full command list (tcp, udp, connect, team, stats, update, ...).

Local development

npm install
npm run dev

Runs the server (auto-restarting on change) and the dashboard dev server together. Dashboard: http://localhost:5173. Server: https://127.0.0.1:7222 (self-signed dev cert — your browser will warn once, that's expected locally).

Project status

Under active development, pre-release. Every numbered build phase — core protocol, server, dashboard, multi-tenancy, dynamic TLS/domain automation, hardening (rate limiting, logging, graceful shutdown, traffic stats), and CI/CD (test+clippy on every PR, Docker image + cross-platform CLI binaries published on tag) — is done. linux-arm64 release binaries aren't published yet (needs a Docker-based cross-compile toolchain, deferred rather than shipped untested).

Contributing

Issues and PRs welcome — open one on GitHub. No formal contributing guide yet; for anything nontrivial, opening an issue first to discuss the approach is appreciated.

License

Functional Source License, Version 1.1, Apache 2.0 Future License — free to use, copy, modify, and self-host, including commercially, for any purpose other than offering it (or a substitute for it) as a competing hosted/managed service. Each version automatically becomes available under Apache License 2.0 two years after its release.

About

raba — a self-hosted, open-source alternative to ngrok, Cloudflare Tunnel, and frp. Expose local HTTP, TCP, and UDP servers to the internet from a single Docker image, with a web dashboard, multi-tenant teams, and automated TLS.

Topics

Resources

License

Stars

4 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors