Simple tunneling reverse proxy with a fast web UI and auto HTTPS. Designed for self-hosters.
Go to file
2021-12-30 22:05:29 -07:00
cmd/boringproxy Remove more log.Fatals 2021-01-23 11:16:50 -07:00
docs Add readme file for the docs 2021-02-07 07:57:03 -05:00
release Finish removing go rice 2021-12-14 15:04:34 -07:00
scripts Remove go rice from build 2021-12-14 14:58:38 -07:00
systemd corrected project name and fixed docs/systemd files as requested. 2021-01-04 23:24:32 -07:00
templates Improve TakingNames.io request generation 2021-12-23 00:02:28 -07:00
.dockerignore Use multi stage dockerfile for building 2020-10-31 19:11:11 -04:00
api.go Remove unused custom SSH key code 2021-12-21 13:14:01 -07:00
auth.go Move executable into separate package 2020-12-07 21:41:45 -07:00
boringproxy.go Move a bunch more code into namedrop 2021-12-30 22:05:29 -07:00
client.go Move some stuff into namedrop library 2021-12-30 20:57:28 -07:00
database.go Move some stuff into namedrop library 2021-12-30 20:57:28 -07:00
docker-compose.yml Use multi stage dockerfile for building 2020-10-31 19:11:11 -04:00
Dockerfile Finish removing go rice 2021-12-14 15:04:34 -07:00
go.mod Move some stuff into namedrop library 2021-12-30 20:57:28 -07:00
go.sum Move some stuff into namedrop library 2021-12-30 20:57:28 -07:00
http_proxy.go Add some common proxy headers 2021-12-19 19:38:17 -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 2021-12-29 21:54:59 -07:00
sni.go Improve proxyConn comments 2021-12-14 15:43:06 -07:00
todo.md Update todo 2020-11-24 19:21:59 -07:00
tunnel_manager.go Move some stuff into namedrop library 2021-12-30 20:57:28 -07:00
ui_handler.go Move a bunch more code into namedrop 2021-12-30 22:05:29 -07:00
utils.go Strip connection headers 2021-02-22 23:04:43 -07:00

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

Make the logo image file. It gets baked into the executable so it needs to be available at build time. Note that you don't have to use the official logo for the build. Any PNG will do. It's currently just used for the favicon.

./scripts/generate_logo.sh
cd cmd/boringproxy
go build

Give the executable permission to bind low ports (ie 80/443):

sudo setcap cap_net_bind_service=+ep boringproxy

Running

Server

./boringproxy server

Client

./boringproxy client -server bpdemo.brng.pro -token fKFIjefKDFLEFijKDFJKELJF -client-name demo-client -user demo-user