What is boringproxy?

You're using it right now! The website you're reading is hosted on my home computer, through boringproxy.

boringproxy is a combination of a reverse proxy and a tunnel manager.

What that means is if you have a self-hosted web service (Nextcloud, Emby, Jellyfin, etherpad, personal website, etc.) running on a private network (such as behind a NAT at home), boringproxy aims to provide the easiest way to securely (i.e. HTTPS and optional password-protection) expose that server to the internet, so you can access it from anywhere.

To see how boringproxy compares to other similar software, see the comparison here.

The main features are:

Demo Video

YouTube mirror Download WebM/VP9 Download MP4/h264

Demo Instance

There is a demo instance at https://bpdemo.brng.pro. If you submit your email address using the form below, it will create an account for you and send you a login link so you can create tunnels.

Installation

Learn more about the installation in the documentation.

boringproxy uses the DNS to identify the server and the tunnel endpoints. An often used pattern is to provide a domain record for the administrative web interface, and a wildcard subdomain for the tunneled services.

The clients will then be able to assign domains from the wildcard subdomain without having to reconfigure DNS beforehand.

Usage

Learn more about the usage in the documentation.

What's with the name?

The name has two meanings; one pun and one philosophy. The pun is "bore" as in bore a hole/tunnel, highlighting the fact that boringproxy is a reverse proxy that automatically manages making tunnels.

The philosophy is that boring (as in boredom) software is often the most useful software. If you have to interact with boringproxy to get something done, I hope it ends up being the least interesting part of your day. I want it to be a tool that does its job well and gets out of the way.

This also has implications when it comes to adding features. I want boringproxy to remain simple and focused. When contemplating adding any feature, the first question I ask myself is: is it boring enough?