This article is part of a series about installing and configuring a Mastodon instance on a cluster of Raspberry Pi computers running k3s. To go back to previous articles in the series, try any of the links below:
- Introduction
- Part I: My home network topology
- Part II: The Mastodon Helm chart
- Part III: Configuring and installing prerequisites
- Part IV: The waking nightmare that is Let’s Encrypt
- Part V: Actually installing Mastodon
- Conclusions (this post)
I know what you’re thinking:
And honestly… you’re not wrong.
Running Mastodon has gotten easier
In the time I spent planning and writing this blog post series, many of the issues and bugs I ran into already have official fixes (I’ve tried to note PRs, whether merged or still open, where relevant throughout the series). The biggest news of note came down just late last week: Bitnami’s images on DockerHub now universally support ARM, making practically the entirety of Part III obsolete.
There are also discussions (perhaps only internally?) around refactoring the Helm chart to pull the prerequisites out entirely, refocusing instead on Mastodon itself.
Joining Mastodon has gotten easier
And honestly, it’s not like there’s a huge crowd of folks looking to run their own Mastodon instances, especially not with such a rich landscape of instances already up and running.
Granted, there doesn’t really seem to be a unified way of finding an interesting instance; that particular aspect of diving into Mastodon still feels very “cannot be found except by those who already know where it is.” That’s a bit orthogonal to the blog series—especially since I set up my own instance not because I couldn’t find what I was looking for, but because I just wanted to see if I could—but still an ongoing consideration.
Other notes on the process
I do want to strongly underscore how grateful I am to the Mastodon dev team for all their help through this process. I would very likely still be mired in getting search up and running without their knowledgeable, kind, and patient assistance. Go support Mastodon’s open source work and, as a bonus, receive access to their dev Discord.
The official GitHub repository is also a wealth of information, and I cannot enumerate just how helpful it’s been since they moved the helm chart maintenance and development into its own repository, separate from the main Mastodon application.
My biggest gripe with this whole process really just boils down to the complexity of kubernetes and its ecosystem. There is so. much. stuff. to understand to get even the most basic kubernetes applications up and running. Helm is helpful—in a way—because it hides so much of this complexity, but this becomes a double-edged sword when invariably something isn’t working quite right. Frankly, with the lone exception of the NFS provisioner I use for storage in kubernetes applications, I have yet to install an application via Helm that didn’t also require diving into the values.yaml
and backend templates to figure out what was really going on.
Unfortunately I don’t have an easy answer, either. For someone well-versed in kubernetes and its ecosystem, this whole process probably would have taken a day; for me, it took a month. I’m ok with that, because I learned a lot from the process of doing it myself, but I’m also more cognizant now of just how much I still don’t know about kubernetes.
Until this unfathomably steep learning curve is smoothed out a little, I feel that it’s incumbent upon us who’ve dabbled somewhat in kubernetes to help lift up the folks coming behind us. Hence this blog series!
Final, final notes
Is there anything I missed? Anything that isn’t clear? Please feel free to drop a comment on this post or any of the previous ones if you have some additional thoughts on the topics.
I’ve also gone back and added links to all the posts in the series to all the other posts in this series, so you won’t have to click through sequentially to see them all.
I really enjoyed putting this series together, and I already have some ideas for similar undertakings, both within and without the world of kubernetes (perhaps I’ll finally have a blog series around something ML and/or CV related, zomg). Until then!
Citation
@online{quinn2023,
author = {Quinn, Shannon},
title = {Mastodon: {Conclusions,} Musings, Ramblings, Ravings},
date = {2023-02-28},
url = {https://magsol.github.io/2023-02-28-mastodon-conclusions},
langid = {en}
}