Mastodon to Pleroma — 1 — Setting up a Pleroma Server

Written By: Jake Bauer | Posted: 2020-07-21 | Last Updated: 2020-07-21

Since this is a Mastodon to Pleroma conversion, followers will not auto-migrate. You should follow me on Pleroma here and unfollow me on Mastodon.

Unfortunately, I have been unable to resolve my Mastodon troubles and migrating my instance to a fresh install didn’t work so I’m giving up on self-hosting Mastodon. Luckily, I don’t have to give up on the Fediverse because there’s an alternative called Pleroma.

Pleroma is another social media/microblogging platform similar to Mastodon. It also interoperates with the rest of the Fediverse using ActivityPub so it still allows me to follow people who use Mastodon, just like Mastodon allowed me to follow people who use Pleroma. However, there are a number of advantages that Pleroma brings to the table over Mastodon.

For one, Pleroma requires far, far fewer resources to run than Mastodon due to its technology stack. Pleroma is built on Elixir, a functional programming language which runs on the Erlang virtual machine as opposed to Mastodon which is built with Ruby, Node.js, and a React.js frontend. When I was running Mastodon, I gave my VM 3GB of RAM and it would use close to 1.5GB, sometimes creeping up closer to 2GB of RAM during periods of high activity. I didn’t notice Mastodon using excessive amounts of CPU power, but then again it was a one-person instance incomparable to an instance like Fosstodon with its 10.5k people (I’m curious how many resources Fosstodon requires).

Another advantage, also related to the tech stack, is that Pleroma feels and looks like it will be a lot easier to perform maintenance on and troubleshoot errors with. If you read my previous blog post about troubleshooting my Mastodon troubles or followed my rants on social.paritybit.ca, you’ll know that the tech stack Mastodon uses feels (to me, anyways) like a bunch of things loosely connected together where it can be very difficult to figure out what’s going wrong and why unless you have a strong familiarity with the tech stack or the software.

The other thing I’ve noticed about Pleroma is that it’s far more customizable and hackable than Mastodon. Both the front-end in styling and the back-end in the number of settings you can change on your server give a sense of having a lot more freedom in making an instance your instance. For example, through adding resources to a customizations directory called the “static directory”, I am able to add custom themes to the frontend that ships with Pleroma, and change the background, favicon, and logo site-wide (as opposed to just my profile background and avatar). One can also use different frontends with Pleroma; it notably ships with a version of the Mastodon frontend in addition to the default Pleroma frontend.

So, now that you know why I wanted to switch to Pleroma, let’s look at installing a server:

Unfortunately, I was unable to get the Mastodon->Pleroma migration script working on my system (probably due to something wrong with my environment or the Masto VM), so I have to create a new profile on Pleroma and notify people that I’ve moved because, unlike a Mastodon->Mastodon transfer, I can’t bring my followers with me to Pleroma. If you are considering moving from self-hosting Mastodon to self-hosting Pleroma, try that script first and see if you can get it working for you because it makes the whole process a lot easier. Masto->Pleroma follower migration may be coming in the future, but it wasn’t available when I moved.

I chose to install using an OTP release as that seemed like the better choice for a production server than installing from source. I stood up a VM with 1 CPU and 512 MB of RAM on my extremely super powerful server (it’s a laptop from 2012), pretty much just followed the instructions in the documentation, and everything worked without hassle. I did modify the nginx config, removing the SSL bits and the first server block, since I am serving it from behind a reverse proxy which handles SSL for all the servers behind it.

I chose to host the new server at pleroma.paritybit.ca so that I could still have Mastodon running concurrently at social.paritybit.ca which would allow me to pester my followers to go follow me over at my new instance. If I instead deleted and replaced my Mastodon instance with Pleroma, I would disappear off the face of the Fediverse for many people and would be dropped from their following list.

So far, the Pleroma server is running just fine with one virtual CPU and only 512MB of RAM. As of writing this blog post, my Pleroma server is sitting at 300/483M RAM usage, 196/510M swap usage, and about 16% CPU usage. My Mastodon server is sitting at 1.33/2.93G RAM usage, 40.7M/2.0G swap usage, and about 15% CPU usage.

After a few weeks and once at least most of my followers have realized I’ve moved, I’ll be decommissioning my Mastodon server and sticking with Pleroma full-time. It seems to have been a worthwhile switch so far.

This is my seventy-sixth post for the #100DaysToOffload challenge. You can learn more about this challenge over at https://100daystooffload.com.