Nik Kantar

Saturday, December 3, 2022
4 min read

Self-Hosting Follow-Up

I started going back down the self-hosting path and learned some things.

Four months ago I wrote that I was getting back into self-hosting. I was really excited about it at the time, so I wrote a post chock full of hope and links to related stuff, and I feel like an update is in order.

TL;DR: Moderation is key! I’m hosting my own sites, but not services.

The Plan

Around the time of the original post, my plan looked something like this:

  1. Move all my sites from PaaS to containers on servers I control:
  2. Self-host supporting services in Docker containers:

Step 1: My Stuff

Before migrating anything, I had to prepare the destination. While I still very much believe that sometimes a shell script is perfectly sufficient, I found myself wanting something a bit more idempotent for my server management solution, and thus Ansible entered my life. I’ve actually greatly enjoyed using it so far, especially in my rather rudimentary circumstances of managing one server for just myself.

Speaking of said server, that’s where all my static sites have now lived for a little while. I moved them all into containers resulting from multi-stage builds, with the first step being building the static site itself and the second being serving it with Caddy.

I turned out to have no dynamic web apps worth migrating when I was doing all this, but have deployed one since. It too lives on the same server, and is managed via a simple Docker Compose setup.

The server itself mostly just runs Docker to host all the containers and Caddy to proxy to them on Ubuntu 22.04 LTS.

Everything works great.

Step 2: My Stuff’s Stuff

Encouraged by how everything came together for my sites, I proceeded to set up other stuff I used. I deployed and and used them for a few months consistently. I also deployed but didn’t commit to a few other services, namely Portainer and Gitea. The projects which provided good documentation or sample Docker config were a breeze, and others took a bit of effort. In the end, though, I decided against continuing down this path due to time constraints.

See, every single deployed thing involves some software that needs to be kept up to date for security reasons. Updating these things can be automated to some extent, but ultimately maintenance isn’t free. It turns out I’m not so thrilled about doing it.

Static sites are pretty easy, as they have a bit of tooling for the build step and just Caddy for serving. Web apps are a tiny bit more involved, but I also keep those minimal.

However, serious projects like the ones I named above, come with orders of magnitude more complexity, even if they’re objectively sometimes pretty simple in their own right. I don’t want to sweat this stuff any more than I have to.

I went back to managed and, and don’t have to think about them for just a few dollars per month. Works for me.

Bonus: Email

In that original post I mentioned off-hand that I wanted to move from Google Workspace to Fastmail, which has been true since at least 2015, and one day I just did. Fastmail has great guides and tooling for doing so, and in what was genuinely a one evening effort I’d started and finished moving my domain. It’s quite funny to think I’ve procrastinated for a literal 7+ years on something that took so little time to complete.


I’m quite happy with where I’ve landed. However, much like I wrote the last time, I expect my setup to continue evolving.

Tags: projects

Thanks for reading! You can keep up with my writing via the feed or newsletter, or you can get in touch via email or Mastodon.

Getting Back into Self-Hosting
Solve the Problem You Have