It probably goes without saying but Twitter has been going through a rough patch recently. I was never a big user of Twitter but I would occasionally waste some time scrolling the timeline and I found it useful to tweet about new Xojo projects I was working on as I could usually rely on @Xojo to get me some exposure. Recently, the hosts of my favourite podcasts, ATP, have been singing the praises of an open-source "Twitter replacement" called Mastodon and so I thought I'd take a closer look at it.
Unlike Twitter which is a monolithic social network controlled by one company, Mastodon relies on a federation of instances. An instance is essentially a server running the Mastodon software. When you create a Mastodon account you do so at an instance. Which instance you choose is moderately important since your user name is @username@instance (yeah I know, pretty ugly). Apparently you can move to a different instance relatively easily but I think there might be repercussions to doing so in terms of holding on to content you had posted under the old username.
There are a bunch of instances (several thousand at the present moment) but it's also possible to create your own. Given that I didn't like the sound of an instance just disappearing off the internet and my username vanishing I decided to create my own instance. Doing so is technically a bit challenging and can be costly with hosted services as the server requirements (especially regarding storage space) can grow a lot with user count. Since I've decided that I'll be the only user on the instance I figured I'd give it a go.
I happened to have a 4GB RAM Raspberry Pi 4 lying around unused (apparently they are as rare as hen's teeth currently) and so this seemed a good excuse to use it. It also would give me the chance to try to host a website from my own home (something I had considered in the past but never got round to). Unsurprisingly I'm not the first person on the internet to have had this idea and so I followed this step-by-step guide to install the Mastodon software and configure the Pi correctly.
I purchased a new domain name, pettet.social, to host the Mastodon instance. The installation of the software was pretty straight forwards although it took longer than I expected. If you do this, you should budget 1 - 2 hours since the Pi has to compile several things and it's not very fast.
The only major issue I hit was that, like most people, I only have a dynamic IP address from my ISP. I suspect I could pay for a static one but I didn't want to. I looked at several solutions and in the end settled on paying for the Eero+ subscription (since I have an Eero mesh system). It's about £9 per month (which is is less that I would need to pay DigitalOcean for a suitable droplet) plus it gives me other perks (such as a free 1Password subscription, saving me about £5 per month). To get Eero's DDNS service up and running it did require a bit of rewiring of my home network since I had to remove a double NAT situation (long boring story). The end result was simplified network hardware and slightly faster speeds at home which was an unexpected bonus.
After a couple of hours I had my own instance set up at https://mastodon.pettet.social. It worked!
I'd also heard about a new Mastodon app for iOS called Ivory that's being developed by the creators of Tweetbot and is supposed to be the bees knees as far as a Mastodon client goes. I was lucky enough to get on the beta. Since I'm not a user of Tweetbot I was a bit unfamiliar with the app but overall I'm pretty pleased with.
As for the performance of the Pi it seems OK to me. I'm only casually using Ivory and I'm not really following many people. After running for about a week it has consumed 1.64GB of storage. I think I followed the instructions to purge cached media correctly periodically but I'll keep an eye on things. The Pi has a large SD card so I think it'll be alright.
The TLDR of this post is that you're probably better off just signing up to use Mastodon on one of the many large instances that are already out there unless you like tinkering.
If you'd like to follow me on Mastodon you can find me at @Garry@mastodon.pettet.social.
(Yes I'm aware my Mastodon instance is hosted on a subdomain and I bitterly regret that choice now!).