Home
Softono

Bore

Open source MIT Go
12
Stars
0
Forks
1
Issues
0
Watchers
5 months
Last Commit

 About Bore

A blazing fast, free & open source TCP tunnel that exposes your localhost to the world.

Platforms

Web Self-hosted

Languages

TypeScript Go Rust

Need Help Installing Bore?

We provide expert installation service for this software. Our team will install, configure, and secure Bore on your server. plans start at just $30.

Bore

Bore

A blazing fast, free & open source TCP tunnel that exposes your localhost to the world.

License Release Stars

FeaturesInstallationUsageSelf-HostingLicense


Demo

Features

  • 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

Installation

npm

npm i -g bore-cli

macOS (Homebrew)

brew tap aditya-ds-1806/bore
brew install bore --cask

Windows (Scoop)

scoop bucket add aditya-ds-1806 https://github.com/aditya-ds-1806/scoop-bucket
scoop install aditya-ds-1806/bore

Linux

curl -fsSL https://trybore.com/install.sh | sh

From Source

git clone https://github.com/Aditya-ds-1806/bore.git
cd bore
make build-client

The binary will be available at ./build/bore.

Prebuilt binaries

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.

Usage

Expose your local server to the internet with a single command:

bore -u http://localhost:3000

That's it! You'll receive a public URL like https://abc123.trybore.com that tunnels to your local server.

Options

Flag Description
-u, --url Upstream URL to proxy requests to (required)
-v, --version Show application version

Web Inspector

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

Self-Hosting

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.

Quick Setup

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.sh

The script installs Go, Nginx, Certbot, and configures everything automatically.

Manual Setup

1. Build the Server

make build-server

2. Configure Nginx

Copy the provided nginx.conf to /etc/nginx/nginx.conf. It handles:

  • HTTP → HTTPS redirects
  • SSL termination with Let's Encrypt
  • WebSocket upgrades for the /ws endpoint
  • Reverse proxy to the bore server on port 8080

3. Configure Systemd

Copy the provided bore.service to /etc/systemd/system/bore.service, then:

sudo systemctl daemon-reload
sudo systemctl enable bore
sudo systemctl start bore

4. SSL Certificates

Use Certbot to get a wildcard certificate for your domain:

sudo certbot certonly --manual --preferred-challenges dns -d "*.yourdomain.com" -d "yourdomain.com"

Connecting to Your Server

go build -o bore \
  -ldflags "-X 'bore/internal/client.BoreServerHost=your-server.com' -X 'bore/internal/client.WSScheme=wss'" \
  cmd/bore/main.go

Architecture

flowchart 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

Tech Stack

Contributing

Contributions are welcome! Feel free to open issues and pull requests.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

MIT License — see LICENSE for details.


Made with ❤️ by Aditya