🔥
HotRepo
bore — Self-host 🕳 bore is a simple CLI tool for making tunnels to localhost
📦
ekzhang

bore — Self-host 🕳 bore is a simple CLI tool for making tunnels to localhost

🕳 bore is a simple CLI tool for making tunnels to localhost

11.2k🍴 499Rust📜 mit#cli#localhost#networking#proxy

bore

🕳 bore is a simple CLI tool for making tunnels to localhost

11,114 stars on GitHub · 🍴 493 forks · 📜 License: mit · 💻 Language: Rust

What is bore?

For quick TCP exposure without accounts, dashboards, or a hosted platform dependency, bore is one of the cleanest options around. It gives you an ngrok-style localhost tunnel, but keeps the scope deliberately small: a single Rust CLI and a server you can run yourself.

Main components

  • TCP tunnel client that exposes a local port through a remote bore server.
  • Self-hosted tunnel server started with a single bore server command.
  • Random or user-selected remote port assignment for public access.
  • Optional shared secret for basic client/server authentication.
  • Support for exposing localhost or another host on your LAN via --local-host.
  • Configurable server bind addresses and tunnel port ranges for controlled deployments.

Clear use cases

  • Share a local development server with a teammate, client, or webhook provider.
  • Test incoming webhooks from GitHub, Stripe, Slack, or custom services against a laptop.
  • Expose a temporary TCP service from behind NAT without changing router rules.
  • Run a private tunneling endpoint on your own VPS instead of relying on a commercial relay.
  • Give developers a lightweight, scriptable tunnel tool for demos, QA, and remote debugging.

The biggest strength is radical simplicity — bore does one thing, TCP forwarding, and avoids the product baggage of commercial tunnel services. There are no accounts, agents, web UIs, traffic inspectors, reserved domain workflows, or pricing tiers to deal with; you run the client, point it at a server, and get a reachable port. Compared with ngrok-style platforms, that makes bore especially attractive when you care more about predictable infrastructure ownership than polished collaboration features.

The tradeoff is that bore is intentionally low-level. It does not provide HTTPS termination, custom domains, request replay, access policies, analytics, or a management console. If you need a full developer ingress platform, you will outgrow it quickly. But if your requirement is “forward this local TCP port through a server I control,” the minimal design is a feature, not a limitation.

Best for developers, sysadmins, and small teams who want a fast, self-hosted TCP tunneling tool for local testing, temporary exposure, and NAT traversal without adopting a commercial tunneling platform.

Topics: the project is tagged with popular topics:

  • 🏷️ cli
  • 🏷️ localhost
  • 🏷️ networking
  • 🏷️ proxy
  • 🏷️ rust
  • 🏷️ self-hosted
  • 🏷️ tcp
  • 🏷️ tunnel

Quick install

See the README for detailed install instructions. Most projects support Docker — if the repo has a Dockerfile, use:

git clone https://github.com/ekzhang/bore.git
cd bore
docker build -t bore .
docker run -d -p 8080:8080 bore

Minimum system requirements

Component Recommended
RAM 2048 MB
CPU 2 vCPU
Disk 25 GB SSD
OS Ubuntu 22.04 LTS / Debian 12
Docker 24.0+

⚡ Deploy fast on VSIS

Use the VSIS VPS Lite 2GB RAM / 2 vCPU / 25GB SSD (~104k/tháng) plan from VSIS.NET — high-speed VN-based VPS, 24/7 support, ideal for running bore smoothly.

🎯 Benefits:

  • One-command docker compose up -d deploy in 2 minutes
  • Dedicated IPv4, root access, unmetered domestic bandwidth
  • Daily snapshot backup
  • Free install assistance from the VSIS team

👉 See matching VPS plans at vsis.net

Resources

  • 🔗 GitHub: ekzhang/bore
  • 🌐 Homepage: http://bore.pub
  • 📚 Official docs: see README in the repo
  • 💬 Community: GitHub Issues + Discussions

Article compiled from GitHub data on 05/05/2026. Star/fork counts may have changed — see live numbers via the GitHub link.