Also posted on https://cohost.org/AriaSalvatrice/post/366987-notes-on-self-hostin
Intro: Wherein I hate this networkRecently, the admin of the last instance I used posted they were leaving the Fediverse, due to people starting shit about their personal relationships. Good stuff! It means my instance is basically abandoned by its admin now.
Since I hate this network, I knew the only way I could have a long-term presence on it was self-hosting, at least long-term enough for the 3 months I expect it to take for me to slack off on sysadmin and let my software throw database errors all day.
Since the website that guy bought for 44 dollars is burning down, it was kinda pressing for me to install something.
Here’s the options I investigated:
MastodonI don’t like Mastodon, simple as. It’s trying to rebrand the Fediverse under its name, and has authoritarian methods, such as hardcoded settings, and makes demands other federating software accommodate its needs, without reciprocating. It’s some Embrace, Extend, Extinguish kinda play.
But also, it requires approximately 85234 TB of RAM due to being written in Ruby on Rails. Nobody self-hosts a single-user Mastodon unless they have a $200000 monthly budget.
There are a bunch of forks of Mastodon that fix its cop-like behavior, but they all require about as much RAM.
MisskeyMisskey is pretty good if you like the kitchen sink and endless config menus approach to software and UI design.
And it is by far my favorite approach to both these things.
While the developers are mostly Japanese, most of the important bits are documented in English. It’s sponsored by a crypto NFT kinda scam, which is worrying, but there doesn’t seem to be much blockchain bullshit in the software itself. It has its own catgirl mascot which makes it objectively good. It has active friendly forks focused on adding various features such as Calckey.
It requires 1GB of ram to run, so I chose against it, but I’d probably have tried it if I could fit it on a 512MB VPS.
GoToSocialGoToSocial is still in Alpha, which is the main reason I didn’t consider it.
It’s only a backend server: while most other offerings couple a backend to a frontend, there it no user-facing web interface to GoToSocial, you have to use a separate web, desktop, or mobile app for that. It seems promising, and being written in Go, it’s likely to have good performance.
The primary area of concern is that their Code of Conduct uses vague and broad terms that include forbidding “tech bros” and “right-wingers”: not knowing what kind of people the developers are, I would never roll the dice on those terms being interpreted with any amount of good faith.
PleromaPleroma is the favorite option for single-user instances, which means a bunch of fourteen years old edgelords use it to spam the windmill_of_friendship emoji in the menchies of the pronouns sjws.
As a result, a lot of Mastodon admins love to ban on sight any single-user instance that runs Pleroma. Doubly so if you use the Soapbox frontend, brought to you by the people who run the primary TERF instance and gab.ai MAGAmerikans.
Last year, Pleroma imploded, because the guy who runs the “Largest Feminist Instance” I just mentioned was given git contributor access. Meanwhile, almost every other Pleroma contributor was a trans woman: that didn’t work out so well.
The pace of development doesn’t seem to have recovered since then.
AkkomaAn actively developed fork of Pleroma! Cool and nice.
Not only it adds some nice features, it also removes some bloat, and achieves better performance. It even removes the bigots, I think! At least the lead dev doesn’t seem to like them much.
That’s the one I picked, so here’s more about my experience with it so far.
I started with a fresh reinstall of Debian 11 on a 512MB RAM SSD KVM VPS LOL FML TBH.
Install instructions expect a good deal of familiarity with sysadmin stuff, and that you know your way a little around Elixir. But all I know about Elixir is that it’s basically Ruby for Erlang, and that Erlang is basically Java for Telecoms.
Installing from source didn’t work: the compiler wouldn’t finish. The errors were cryptic, but looking them up, I just think 512MB of RAM aren’t enough to build Akkoma. So I used the binary releases instead, called OTP releases.
One of the things that tripped me up a bunch is that when you change the configuration, it’s not enough to restart the Akkoma service, you must also restart Nginx. It made me misdiagnose 502 errors I was getting after changing my configuration.
Decoupling the account’s subdomain (@woof@aria.dog) from the server URL (https://fedi.aria.dog) proved easy, just need to follow the provided instructions. It doesn’t seem to work on all remote instances, but it seems that software that can’t handle @woof@aria.dog can still handle @woof fine. Remains to be seen if it causes trouble down the line.
You can configure the software either from a text file, or from the database (after following a few instructions). The latter is more user-friendly, and what I went with.
How to block instances proved way more complicated to figure out than I thought it’d be! You have to first enable the “Simple Policy” in the MRF policies. After that, you can start blocking servers for being nazis or for watching anime.
After installation, I had no “Follow” button. I had no way to follow people from the frontend! Turns out, uBlock Origin did that, for some incomprehensible reason. I trust the admin of my web sight not to run ads, so I disabled adblock on her domain.
For now, it works properly and seems plenty fast. htop reports low idle CPU usage, and there’s some RAM to spare. Since the only other planned use of the VPS is to serve a static site, and maybe some fedi bots in the future, it seems to be working out fine.
Automating backups seems reasonably straightforward, just need to cron a script to grab data scattered all over the system and dump it into an archive.
You may want to know why vancity.social looks so different from Mastodon. That's because it's based on another Fediverse platform known as Calckey.
It's very slick, fun to use—and feature rich!
GNU social JP is a social network, courtesy of GNU social JP管理人. It runs on GNU social, version 2.0.2-dev, available under the GNU Affero General Public License.
All GNU social JP content and data are available under the Creative Commons Attribution 3.0 license.