Pleroma First Look: A Fediverse Server For Low-End Hardware
18 December 2018If you’re anything like me, you’re a total noob when it comes to working with Pleroma, a federated social media server written in Elixir. And while Pleroma runs great on a cheap VPS, why pay monthly fees if you have an old computer or Raspberry Pi lying around? As long as your ISP allows servers on port 443, federation should (in theory) work fine. In fact, I’ve tried it, it’s pretty easy, and it works. Here are my experiences.
Background
Pleroma is a free and open platform for interacting with the Fediverse, a network of indepedent social media sites which mostly all talk to each other. These sites, which run one of several flavors of server software, all use a loose standard called ActivityPub in order to communicate.
Speaking in terms of total user share, at the end of 2018 the mix of server software in the Fediverse is a David and Goliath scenario. The big platform with the vast majority of users and media exposure is called Mastodon; Pleroma is in second place, with dozens of independent developers building more ActivityPub-enabled social apps.
Performance on low-end hardware
Pleroma stands out due to its ease of installation and thrifty use of resources. It runs comfortably on very limited computers, and it’s relatively easy to get up and running if you know a bit about the command line.
When compared with Mastodon’s much higher cost in resources and maintenance, Pleroma’s ability to run on a shoestring budget tends to encourage a greater number of smaller nodes on the Fediverse, rather than fewer nodes with hundreds or thousands of users as on Mastodon. This, in turn, limits the maximum impact of any particular node having a problem - a valid concern when the flagship Mastodon instance still holds a sizable share of all Fediverse users.
Bottom line
If you can bind port 443 on a public IP address, you can have a Fediverse node up & running on low-end hardware in minutes.
I’m not privy to the Pleroma devs’ reasons for choosing Elixir, but one undeniable result: the software performs well, responding snappily and sipping resources. How thrifty is it? Well, a single-purpose server with 512MB of RAM will definitely work, though 1GB might be safer in case a post goes viral. And it would definitely be best to use a “real” disk rather than a microSD card. But these are very forgiving requirements!
My single-user Pleroma server runs on a Cubieboard 2 which I had lying around. It’s a single-board computer about the size of a pack of smokes and roughly comparable to a 2012 smartphone: dual-core ARM processor, 1GB RAM, and (mercifully) a SATA port. So far Pleroma performs very well on this hardware. Of particular interest to Raspbian and Armbian users: the Elixir developers helpfully provide armhf packages, so with most ARM CPUs you can likely follow the instructions with little or no modification.
Installing Pleroma
As mentioned, installing Pleroma on Armbian goes pretty much as expected when following the Debian install guide. I have not tested on Raspbian but I suspect it is similar.
Updating Pleroma
Check out https://git.pleroma.social/pleroma/pleroma/wikis/Updating-your-instance
Note also that you may see database migration errors if the pleroma user does not have superuser priveleges. Currently I’ve only seen this when a migration wished to use a PostgreSQL extension, which I was able to enable as the postgres user; see https://makandracards.com/makandra/35283-postgresql-create-extension-without-giving-the-application-superuser-rights
More
Don’t forget to check out the Pleroma wiki for a bunch of useful documentation!
That’s all for now, but since I’m using this article as a personal notepad for this information, I will probably update it a few times. Don’t be afraid to check back! ◈