The UI was originally written using fancy HTML checkbox toggle hacks in order to make the UI very fast. It's cool but complicated and difficult to change. In order to make updates to the UI more quickly, I'm changing it to use traditional HTML with full page reloads for navigation. It's not as fast but much simpler. |
||
---|---|---|
cmd/boringproxy | ||
docs | ||
release | ||
scripts | ||
systemd | ||
templates | ||
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 |
Disclaimer
boringproxy is currently beta-quality software. While I am a big believer in open source, my primary goal at the moment is to build a sustainable business around the code I write. So for the most part I can only afford to spend time fixing problems that arise in my own usage of boringproxy. That said, feel free to create GitHub issues and I'll try to help as I have time.
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