What Where
Helm Chart for Mastodon 3.3.0 GitHub

Why?

When I was young, I guess the first ‘social networks’ I used were FidoNet (address 2:253/513 to be precise) and AmigaNet, and then IRC and Usenet1. In all cases, they were decentralised networks, with many servers not under the control of one organisation. Naturally, I set up my own BBS system on FidoNet, and as soon as I could set up my own NNTP relay for Usenet, even if it was incredibly impractical. There’s just something nice about controlling your own infrastructure - and in the modern world of GDPR and the like, controlling your own data.

So, I was never terribly comfortable with modern social media platforms - one reason I never had a Facebook account (a decision that looks increasingly wise, with hindsight.) I’m not entirely free of the evil empires, sadly, with Twitter, LinkedIn and Instagram accounts under varying degrees of duress, but the idea of a decentralised social network, more in the model of those original services, is one I’ve always thought was quite attractive.

Such a network does exist though, Mastodon. You can read more about it here, so naturally I eventually decided to give it a try. Also, I’m always worried my creaking Kubernetes cluster might have a spare CPU cycle one day, so more stuff to load on it is always good.

How?

So, to cut a long story short, I went looking for a Helm chart to install Mastodon on my cluster - and thanks to Ladicle found a chart from a few years ago.

Being a few years old, this chart needed a few little tweaks to work with current versions of Kubernetes and indeed Mastodon. Hopefully Ladicle will merge the changes back into his chart, but in any event you can use my fork here to install your own instance of Mastodon.

Installation is simple:

  • Clone the update-k8s-1.17 branch to somewhere convenient,
  • Copy the secrets.yaml.sample and values.yaml.sample files and use them to create secrets.yaml and values.yaml, customising as required
  • Probably modify the ingress.yaml to work with your cloud provider’s environment.
  • helm upgrade --install -f secrets.yaml mastodon .

Once it’s deployed, you’ll hopefully have a working instance wherever you put it. Register yourself an account, and once you’ve done so and clicked the validation link you’ll want to make yourself an admin. You can do this by opening up a command line on the Web pod and using the tootctl command to make your account admin:

timwa% kubectl get pods -l app=mastodon,component=web
NAME                                     READY   STATUS    RESTARTS   AGE
mastodon-mastodon-web-556fc4b5d7-zv7bm   1/1     Running   0          24h

timwa% kubectl exec -it mastodon-mastodon-web-556fc4b5d7-zv7bm -- sh

$ tootctl accounts modify your-account-name --role admin

You can find much more information on the official Mastodon install pages

Then what?

Once it’s working, nothing much will be happening - you need to start exploring the ‘Fediverse’ for people to follow. Start looking at some of the other Mastodon instances like bsd.network for interesting people.

As you start following other people, your server will start making connections with other servers, and you will see more and more posts in the ‘Federated’ timeline available from your server. This can take a while though, so one shortcut is to find a “relay server” that you can associate your instance with, that will relay posts from your server to a host of others (and, vice versa, all their posts to yours). You do this from the server administration pages within Mastodon itself:

  • Log in to your server,
  • Navigate to “Preferences” from the menu on the right,
  • Now select “Administration” from the bottom left,
  • And “Relays” from the administration menu.
  • Click on “Add a new relay”, and enter the “inbox URL” for the relay.

Some relays which I’ve found work are:

Relay Inbox URL
Mastodon.Host https://relay.mastodon.host/inbox
ResplendentWebServices https://en.litepubrelay.resplendentwebservices.com/inbox
101010.pl https://relay.101010.pl/inbox

Have fun!


  1. Actually, I still frequent a few Usenet groups - amazingly, it’s still alive, as long as you keep your killfile up to date for all the spam postings that Google allow to be posted freely with Google Groups… ↩︎