Today is in Ornellember time format.

Self-hosting Mastodon

Published (gregorian) (ornellember)

Tags: social

What’s Mastodon

I am not going to explain this here, so sorry! An explanation of Mastodon deserves its own post and I don’t have time right now. Need to write out more technical stuff while it’s still fresh in my brain.

However, I will very likely write out a blog post about mastodon and decentralized web in general, since I’ve been proselytizing (is that the word?) to people in real life for months and I’ve gotten fairly good at the spiel.

And when I do, I promise it will be linked here!!! But anyway, getting into the details.

How it started

When I first joined Mastodon in May 2022, I did what almost every noob coming from Twitter did: I joined mastodon.social. It’s the biggest instance; I didn’t want to choose a niche – or rather, those that I was really interested in shut down – and really, it was comfortable. Typical sign in process, don’t need to talk to anybody.

After a few weeks, I also created an account on a second instance, mastodon.art. I posted a couple of things on there. It was kind of cool.

Eventually I realized that I didn’t particularly feel like segmenting my presence online, but mostly, I was really excited by the prospect of being more in control of my online presence. While browsing instances to join, I saw stuff like forks with custom functionality; fake dates (unless those people really joined 400 BC! real early adopters); fun themes…

I don’t know, it just seemed fun to self-host.

Why self-host?

Mastodon is built to be decentralized. There’s a lot of benefits that come with that; the biggest one being small websites are less costly to run, and therefore the need to earn money (by doing stuff like selling ads) – is much lower.

However, it is also built with the idea in mind that each instance will contain multiple users.

I chose to self-host, even though I’m basically wasting the resources of a larger website on just myself, because:

  1. I didn’t want anyone else to control my data, see my messages, or moderate me
  2. I wanted to tinker with the code and potentially contribute
  3. I wanted to mess with the CSS like on myspace
  4. I wanted to create bot accounts! (like one for posting my blog posts, and one for my calendar)

How I went about it

My first step was to go to masto.host in August 2022. Big props to the person running it; it cost me 7 euros a month and was simple and reliable. The limitations were that basically I couldn’t personally mess with much code – the best I could do was some CSS overlays from the client.

I made a social. subdomain off my main domain and hosted my mastodon instance on there. I will say, I think I’m a bit of a trendsetter, because I don’t recall seeing anyone else doing that before, and I’ve seen a good handful since!

The other little hiccup was that when the servers were super overloaded (in the great exodus of Autumn 2022), I couldn’t upload files for a day or two. And also, I can be pretty verbose; I wanted to, for example, extend my post character limit, but that wasn’t an option.

Moving to full self-hosting

So in January 2023, I downloaded my backup from masto.host (again, much love, they do such a good job making the backup easily available), and went through the docs for hosting Mastodon on a DigitalOcean droplet - what Mastodon and DigitalOcean both to as one-click install, which to be honest is uh……………… misleading.

Don’t get me wrong, the docs are pretty good, but still, the process was not silky smooth!

The big difference is that there is a Mastodon initialization wizard that comes preinstalled on your droplet. However, it is still pretty rocky, especially if you don’t know in advance everything that you’ll need. It’s an all-in-one command, as far as I know, so if you get one thing wrong you have to start all over. It also launches every single time you open the console - like bro, I am not trying to set up a new Mastodon instance from scratch every single time I open the console. Anyway. I am not sure I would really recommend it vs just getting a blank slate droplet and going through the Mastodon docs, which is what I ended up doing for most of the time anyway.

Some pointers, in no particular order


For restoring a backup

Next steps

On the technical side, I still need to reupload all my media and there’s still some bugs to iron out, but I am soooo excited to start messing with the code!

On the social side, I am considering now hosting an instance for friends and family – I got faso.social for this purpose. Just not that excited about being a moderator, so my instance may be a bit unruly because I’ll probably just let my people do whatever they want.

And somewhere in the middle: now that I have an SMTP server, I feel like I should revive my email newsletter? or are people not really into that anymore? let me know!