Running Tanzawa with Fly.io

Taking a page out of Simon Willison's Coping strategies for the serial project hoarder presentation, I'm going to write a blog post about what I've done on my projects as part of the "unit of work".

One of the largest hurdles to running Tanzawa is one that plagues any Django app: getting it setup properly on a server. This usually involves connecting to a server, setting up a gunicorn or uWSGI server to run the app, editing nginx configurations, and fiddling with systemd, at a minimum.

Each of these are a large barrier to entry. All of them combined means only the most dedicated users would attempt to use it. And the reality is nobody will use it.

Making Tanzawa easier to install and run has long been a goal of mine. For a while my approach was to basically automate my own setup on Digital Ocean. I attempted this with two puppet scripts: one, created an Ubuntu server that automatically applied security patches and installed Docker, and the second would build a Tanzawa image to run on the server. Using puppet would also allow flexibility for people to host wherever they wanted.

Ultimately this approach was flawed because you'd still end up needing to maintain a server, even if it updates itself.

Getting Tanzawa to run on a fully managed platform like Fly.io would lower the barrier to entry quite a bit as it would remove the need to maintain a server and fiddle with configuration files. After migrating my blog from a Digital Ocean to Fly.io, I documented how others can do the same.

Hosting with Fly.io is now the recommended way to use Tanzawa.
Interactions
1