A blazing fast, free & open source TCP tunnel that exposes your localhost to the world.
Features β’ Installation β’ Usage β’ Self-Hosting β’ License
bore.mp4
- β‘ Blazing Fast β Written in Go for maximum performance with sub-millisecond overhead
- π Encrypted β All traffic is encrypted end-to-end
- π― Zero Config β One command to start tunneling, no signup required
- π Request Inspector β Built-in web UI to inspect, replay, and debug HTTP requests
- π» Terminal UI β Beautiful TUI with live logs and powerful filtering
- π Self-Hostable β Run your own bore server with zero vendor lock-in
- β 100% Open Source β MIT licensed, free forever
npm i -g bore-clibrew tap aditya-ds-1806/bore
brew install bore --caskscoop bucket add aditya-ds-1806 https://github.com/aditya-ds-1806/scoop-bucket
scoop install aditya-ds-1806/borecurl -fsSL https://trybore.com/install.sh | shgit clone https://github.com/Aditya-ds-1806/bore.git
cd bore
make build-clientThe binary will be available at ./build/bore.
If you prefer not to build from source, prebuilt binaries are available on the Releases page:
https://github.com/Aditya-ds-1806/bore/releases
Binaries are provided for major platforms β download the appropriate release for your OS and architecture.
Expose your local server to the internet with a single command:
bore -u http://localhost:3000That's it! You'll receive a public URL like https://abc123.trybore.com that tunnels to your local server.
| Flag | Description |
|---|---|
-u, --url |
Upstream URL to proxy requests to (required) |
-v, --version |
Show application version |
When you start a tunnel, a web inspector runs at http://localhost:8000. Use it to:
- View all incoming requests in real-time
- Inspect request/response headers and bodies
- Replay requests for debugging
Bore is 100% free and fully self-hostable. Run your own server for complete control over your tunneling infrastructure β no usage limits, no premium tiers, no strings attached.
A complete setup script is provided for RHEL-based systems (Amazon Linux, CentOS, Fedora):
# Clone the repo and run the setup script
git clone https://github.com/Aditya-ds-1806/bore.git
cd bore
chmod +x scripts/setup.sh
sudo ./scripts/setup.shThe script installs Go, Nginx, Certbot, and configures everything automatically.
make build-serverCopy the provided nginx.conf to /etc/nginx/nginx.conf. It handles:
- HTTP β HTTPS redirects
- SSL termination with Let's Encrypt
- WebSocket upgrades for the
/wsendpoint - Reverse proxy to the bore server on port 8080
Copy the provided bore.service to /etc/systemd/system/bore.service, then:
sudo systemctl daemon-reload
sudo systemctl enable bore
sudo systemctl start boreUse Certbot to get a wildcard certificate for your domain:
sudo certbot certonly --manual --preferred-challenges dns -d "*.yourdomain.com" -d "yourdomain.com"go build -o bore \
-ldflags "-X 'bore/internal/client.BoreServerHost=your-server.com' -X 'bore/internal/client.WSScheme=wss'" \
cmd/bore/main.goflowchart LR
subgraph Local Machine
A[Local Server<br/>:3000]
B[bore client]
end
subgraph Cloud
C[Bore Server]
end
subgraph Internet
D[Users]
end
A <-->|HTTP| B
B <-->|WebSocket<br/>Encrypted| C
D <-->|HTTPS<br/>abc123.trybore.com| C
- Language: Go 1.24+
- TUI: Bubble Tea + Lip Gloss
- HTTP Client: Resty
- WebSocket: Gorilla WebSocket
- Serialization: Protocol Buffers
Contributions are welcome! Feel free to open issues and pull requests.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
MIT License β see LICENSE for details.
Made with β€οΈ by Aditya
