Simple tunneling reverse proxy with a fast web UI and auto HTTPS. Designed for self-hosters.
Go to file
Anders Pitman e09a7d91df Override tunnel SSH server ports at runtime
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.
2021-01-13 10:22:19 -07:00
cmd/boringproxy Improve argument parsing and error messages 2021-01-08 14:18:51 -07:00
docs fixing curl/wget to not use sudo 2021-01-05 17:09:21 -07:00
release Fix logo embedding 2020-11-04 09:28:10 -07:00
scripts Remove Android builds 2021-01-08 13:52:07 -07:00
systemd corrected project name and fixed docs/systemd files as requested. 2021-01-04 23:24:32 -07:00
webui Implement setting TlsTermination on server 2020-11-27 16:01:40 -07:00
.dockerignore Use multi stage dockerfile for building 2020-10-31 19:11:11 -04:00
api.go Override tunnel SSH server ports at runtime 2021-01-13 10:22:19 -07:00
auth.go Move executable into separate package 2020-12-07 21:41:45 -07:00
boringproxy.go Merge branch 'update-master' into merge-upstream 2021-01-06 10:22:11 -07:00
client.go Improve argument parsing and error messages 2021-01-08 14:18:51 -07:00
database.go Rename instances of BoringProxy 2020-12-07 21:50:33 -07:00
docker-compose.yml Use multi stage dockerfile for building 2020-10-31 19:11:11 -04:00
Dockerfile Use multi stage dockerfile for building 2020-10-31 19:11:11 -04:00
go.mod Move executable into separate package 2020-12-07 21:41:45 -07:00
go.sum Update go.sum 2020-10-31 09:52:14 -06:00
http_proxy.go Switch to streaming requests 2020-12-22 14:47:03 -07:00
LICENSE Create LICENSE 2020-11-04 07:55:43 -07:00
logo_concept.svg Add logo concept svg 2020-10-21 09:50:12 -06:00
logo.svg Improve shadows on logo 2020-10-22 10:08:20 -06:00
notes.md Update notes and todo 2020-10-26 11:11:14 -06:00
README.md Update README.md 2020-11-25 18:42:40 -07:00
sni.go Move executable into separate package 2020-12-07 21:41:45 -07:00
todo.md Update todo 2020-11-24 19:21:59 -07:00
tunnel_manager.go Rename instances of BoringProxy 2020-12-07 21:50:33 -07:00
ui_handler.go Rename instances of BoringProxy 2020-12-07 21:50:33 -07:00
utils.go Move executable into separate package 2020-12-07 21:41:45 -07:00

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