I've been trying to set up a Fediverse server for a while now.
I wanted something that was not heavy on resource usage and so I went with
#GotoSocial and I got that working fairly easily. It was really easy to configure and light on resource usage. The trouble was that we (my wife and I) wanted a few features that GotoSocial doesn't have yet — like hashtag following and post editing.
So I started looking around again. I looked at multiple options but discarded each of them before even installing anything for one reason or another. The one I finally settled on to try was
#Pleroma. My current VPS server runs
#CentOS 7 and I there were no OTP builds of Pleroma for CentOS 7.
I tried compiling from source but that didn't work either — ran into compiling issues from the get go and couldn't find any references online which helped with the compiler issues.
Tried using Docker and was finally able to get it working fine on our VPS 😊 It seemed to work OK (except for not seeing to federate much at first) and had some nifty features. While it did have post editing, it didn't have hashtag following.
I started looking again and found
#Akkoma which was a fork of Pleroma and which apparently had a faster development cycle and more features. Akkoma had hashtag following in addition to post editing and so it looked as if that was the one we wanted ...
Unfortunately, installing via Docker wouldn't work 😕 Or rather, it would install fine but you couldn't connect to the server and there didn't appear to be any information about what the issue was or any indication as to how to debug the issue.
I tried the same Docker install locally on macOS and it worked fine and I could connect immediately to the server. So it seemed (barring any info to the contrary) that this issue was on CentOS 7?
I thought I'd try compiling from source again after multiple tries with Docker on CentOS 7 but ran into the same issues with compiling that I'd experienced before with Pleroma. No matter what I tried (and I tried multiple versions of Erlang and Elixir), I kept hitting issues.
So I decided to set up a new VPS and install an OTP version of Akkoma since that seemed the easiest option. I had read about how Akkoma needed less resources and could run comfortably on a $4 VPS and so got a VPS with 512M RAM that was running
#Ubuntu.
Now the question was which version of Ubuntu to go with. The OTP builds were available only for Ubuntu 22.04 (Jammy Jellyfish) but being the glutton for punishment that I am, I tried to give it a try with Ubuntu 22.10 (Kinetic Kudu) ...
The installation went fine, but similar to my CentOS 7 installs, I could not connect to the server. Since 22.10 was not supported, I had half expected this to happen. So switched over to Ubuntu 22.04 (Jammy Jellyfish). But no go, same issue with the server not working.
Dropped down a few tiers further to Ubuntu 20.04 (Focal Fossa) and I was finally able to connect to the server. I was fairly happy at this point but it was not to last! Turns out that the issue all along might have been that the 512MB of RAM wasn't enough but Ubuntu 20.04 would at least let me get started before it ran out of memory but if I tried to do anything on the server, it would still crash out.
So I upgraded the server RAM to 1GB and tried again ... Success!
I was finally able to run the server, configure it and start doing some stuff. But again, after using it for about 10 - 20 minutes, I started noticing failures. Checked the server resource usage and memory usage was pegged at a 100%!
So, yes, Akkoma and Pleroma might be lighter on resource usage but not by much since you'd still need more than 1GB of RAM for a server with just two users on it. I love the features of Akkoma, but I'm not sure if I can justify the cost for another server if I have to plonk down the cash for something with more resources than 1GB of RAM ...
I probably should look at ways to optimize the RAM usage and I guess that's the next step to try, but just wanted to put down this tale of woe (and to try the really long text feature in Akkoma at the same time) before I did that 🙂