NLnet proposal, by Dustin Harriman
Thematic call: NGI Zero Commons Fund
Last updated: Mar 24, 2026
Project Description
- Name: video documentation of the "Super Owl" reverse proxy
- Expected outcome: The whole project is to carefully document and explain through video tutorials, a sophisticated networking method to make hosting a Gotosocial mastodon server much more economical. Web hosting costs can be greatly reduced in this way, leveraging more powerful self-hosted servers within one's LAN
Motivation
The cost of disk space has gone up a lot lately! This will make the most use out of local disk space on local servers within the LAN.
The Mastodon server is a great Open Source federated microblogging platform, but the web-hosting costs are pretty expensive on a per-user basis. Owing to its complex architecture, it's just about impossible to run the original Ruby-based Mastodon server behind a reverse proxy. It's next to impossible to have a web frontend in the cloud, forwarding all connections into a LAN, where a much larger server with bigger CPU and disk actually runs Mastodon (for much cheaper than renting a beefy cloud server).
Reverse proxying is possible with Gotosocial! It's more cleanly architected (than the Ruby-based Mastodon server), and does lend itself to such a reverse proxy (with a frontend and backend server). I've come up with a clever networking technique to bring down the cost, which I've called the "Super Owl Reverse proxy", specified in technical detail here:
https://owleyes.blue/posts/gotosocial-reverse-proxy-with-wireguard/
I hope that this project will allow Mastodon to greatly increase in size in terms of new instances that appear and stay, as a fresh new demographic of less-geeky Mastodon administrators finds their place in the Fediverse. This project would foster growth both in instances and users, allowing future instances to be set up more cheaply. They can take advantage of large disk sizes in LAN-hosted servers (not cloud servers), and multiple Mastodon servers can all have a reverse proxy on a single, inexpensive cloud server - yes, even one those $5 US/month VPS' would be enough for multiple Mastodon servers. Several "Super Owl reverse proxies" can live side-by-side on one cloud server. Everything I explain to make this easier makes it a little easier to administer a GotoSocial server.
Technology Stack
- Gotosocial mastodon server
- Debian 13 (Linux) on both the VPS and backend server, for GotoSocial
- Hosting providers will be either Akamai/Linode, or OVH. The servers won't be physically located in the USA.
- nginx webserver
- wireguard for firewall punching, and secure tunnelling betwee the VPS and the backend server
- several command line utilities in Linux, pertaining to Systems Administration, explained as encountered
Hardware
A Dell Optiplex 3070 (that I already have), as the backend Gotosocial server. It will be a "bare-metal" install. Specs: Intel Core i5, 9th Gen, 16GB RAM, 512GB NVMe hard drive, GbE networking.
Video Creation
Here are the video creation tools I plan to use, which I already have extensive past experience in:
- OBS (Open Broadcast System), for video recording, and showing presentation slides, web pages, terminal commands, etc.
- Shotcut, for video trimming/splicing, and re-encoding (to reduce file sizes, retaining almost all the visual quality).
Video Hosting
I'll self-host the videos in Hyper8 (as it's easy to install). Here's a basic install I've done, already hosted here. By hosting the videos myself, I can use a Creative Commons License such as the Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0). It also permits downloading with a convenient "Download" button. There's also an RSS feed. It's for these excellent and straightforward features that I don't choose Youtube, or some other "walled garden" video hosting platform.
Licensing
- The videos will be licensed as (CC BY-NC-ND 4.0) Attribution-NonCommercial-NoDerivatives 4.0 International
- The tls-pull utility, which I coded, (which automates copying SSL certificates to the backend server) will be licensed as GPL v3, if I get this grant approved. It will be hosted at codeberg.org, in a new code repository.