mirror of
https://github.com/boringproxy/boringproxy.git
synced 2025-02-25 18:55:29 -06:00
Simple tunneling reverse proxy with a fast web UI and auto HTTPS. Designed for self-hosters.
This is a bit of a hack. Problem is if the server is restarted with a different SSH port, all the tunnels in the db have the incorrect port setting, so we're overriding at runtime. Really should update all the db entries but that's messy too. Probably the real solution is to decouple runtime tunnel settings from permanent tunnel settings, and only store the permanent ones in the db. |
||
---|---|---|
cmd/boringproxy | ||
docs | ||
release | ||
scripts | ||
systemd | ||
webui | ||
.dockerignore | ||
api.go | ||
auth.go | ||
boringproxy.go | ||
client.go | ||
database.go | ||
docker-compose.yml | ||
Dockerfile | ||
go.mod | ||
go.sum | ||
http_proxy.go | ||
LICENSE | ||
logo_concept.svg | ||
logo.svg | ||
notes.md | ||
README.md | ||
sni.go | ||
todo.md | ||
tunnel_manager.go | ||
ui_handler.go | ||
utils.go |
What is it?
If you have a webserver running on one computer (say your development laptop), and you want to expose it securely (ie HTTPS) via a public URL, boringproxy allows you to easily do that.
NOTE: For information on downloading and running boringproxy, it's best to start on the website, boringproxy.io. The information in this README is just for building from source.
Building
git clone https://github.com/boringproxy/boringproxy
cd boringproxy
If you don't already have golang installed:
./install_go.sh
source $HOME/.bashrc
go build
To embed the web UI into the executable:
go get github.com/GeertJohan/go.rice/rice
rice embed-go
go build
Running
Server
boringproxy server -admin-domain bpdemo.brng.pro
Client
boringproxy client -server bpdemo.brng.pro -token fKFIjefKDFLEFijKDFJKELJF -client-name demo-client -user demo-user