Running a fediverse server
09.07.2023
4 min
Running a fediverse server is now easier than ever, you can run it on hardware as low spec as a Raspberry Pi. With the recent twitter drama the fact that twitter has become a cesspool of bots trying to farm money from low effort posts or posts with no purpose but to further radicalize the masses, it is extremely lucrative to create a fediverse account now.
While you may find it easier to create an account on a more well-estabilished server, it isn't exactly the best idea. Why? Well, if you're going to make an account on a well estabilished instance, you're subject to their moderation policies, and, you can get banned for some nonsensical reasons. By hosting a server, you're practically becoming censorship-resistant.
Note that since publishing this post, I have decided to heavily overhaul it to represent the realities of running a fediverse server in 2026 on a shoestring budget.
Prerequisites
- A domain name: I can personally recommend Porkbun.
- A VPS: When this article was originally written three years ago, it was very easy to obtain an Oracle Cloud VPS with specs to run any of the softwares I recommend. Nowadays, in order to get more than a measily 1GB of RAM VPS, you have to jump through many hoops, at which point, you might as well look into hosting it at home or finding a cheap provider to do it for you (my recommendation [aff]).
- Some linux experience
Initial setup
You might want to use Cloudflare for your instance to hide your origin IP and to mitigate Layer 4 DDoS solutions. Unfortunately, given the fact that ActivityPub requires others' instances to create automatic requests to yours, you are unable to use a Layer 7 DDoS mitigation service such as Cloudflare's or Anubis.
If you decide to use Cloudflare, make sure to block all traffic on HTTP and HTTPS ports from non-Cloudflare IPs. A script that does that can be found here,
Note on Oracle Cloud
A weird quirk of OCI is the fact that the default Ubuntu install includes predefined iptables rules which only allow SSH. To remove them, type
sudo iptables -I INPUT -j ACCEPTPicking your poison
Oh well, this might be easy for some or hard for some, so I will cover each option.
-
Mastodon: Mastodon is the most widely-used server software on the fediverse, however, it has a few notable disadvantages:
- Uses a lot of resources: Mastodon is fat, which makes it more expensive to host.
- Less costumizable: Mastodon's default frontend is not as easily customizable compared to Pleroma's. While you might be able to install a different one such as nicolium
If you still wish to use Mastodon, the documentation covers everything better than I could. https://docs.joinmastodon.org/admin/prerequisites/
-
Pleroma: Pleroma is a more sensible option if you wish to have something more light-weight. There are 2 options:
- Vanilla: The base version of Pleroma. (https://docs-develop.pleroma.social/backend/)
- Akkoma: A fork of Pleroma that allows users to be more expressive. Its flagship feature is the creating "bubbles" (a separate timeline with posts from specific instances) (https://docs.akkoma.dev/) All of them are trivially easy to setup and have one thing in common, the way that they are ran:
- From source: you're compiling the source code every time you run the software. This opens up the posibilities of editing the source code on your server, which you may find useful in some cases. Though, depending on your server's specifications, it may take a while to run it.
- OTP: OTP is the closest you can get to a binary release. It isn't compiled every time your run it, so startup times will be faster. Though, there are some limitations, most notably that you can't edit the source code
-
Misskey: Misskey is by far the most feature-rich server we've covered, like Pleroma, you have a few options:
- Vanilla: The base version of Misskey. I would honestly recommend going with this as most Misskey forks seem to die off pretty quickly. https://misskey-hub.net/en/
- Sharkey: https://joinsharkey.org/
-
Gotosocial: GTS is an activitypub server designed for small deployments. For a small community of friends it is probably your best shot however it is lacking in some departments. https://gotosocial.org/
-
Snac: Snac is probably the strangest piece of software this article covers. Written in C, it has no database, no cookies, no javascript, a minimal interface. Unlike most of the options showcased in this article, I never used it. https://codeberg.org/grunfink/snac2
There are of course more solutions, but I generally focused on microblog-ish ones.
Blocklists
The best feature of running your own server is being able to decide who to federate with. Depending on what software you use, it is possible to tweak the blocking to, for example, just remove attachments from posts.
Conclusion
Running a fediverse server is a pretty cool way to improve your linux sysadmin skills while also reducing your dependence on big tech.