Elephant vs Sloth
Who will win?
For the past 10 months I've run my own Mastodon server. In that time I've learned a fair bit about how Mastodon works behind the curtains.
How block lists work, the inordinate amount of accounts that get saved up by the server in just normal day to day operation, backups and upgrades, as well as managing disk space due to over excessive media caching (even with cron jobs pruning at a prolific rate).
After those 10 months the database behind this single-user mastodon server fluctuates between 17Gb and 25Gb in size. And that's just after 10 months! Imagine what it'll be like after a few years!
And on a single-user instance too, I can only imagine the disk space even a medium sized Mastodon server takes up with just a couple of hundred users. Ouch.
Switching to the Sloth
So for the past week or so I've been considering switching over to GoToSocial. The difference in resource usage is immense. Where the database after 10 months is around 22Gb in size on average, using GTS that would be around 3Gb! Massive difference!
GTS is more geared towards instances that are either single-user or low user counts, and it shows.
In terms of running resources, it's just a single binary, a single service, a database and a config file, and that's it. Not the half-dozen services and helper services that Mastodon uses. In terms of memory, Mastodon uses around 2-3Gb of Ram. GTS runs in about 200-300Mb. About one-tenth of the resources.
Certainly it'll become more important as time goes on, and it comes to renewal time for my VPS solution. In fact with the reduction in resource usage, I could probably stand to downgrade my VPS plan until such times as I need even just what I'm currently using with Mastodon.
So that's looking like a nice little project for this weekend, where I've got the whole weekend to myself with no disturbances. I spun up a localhost version of GTS to get a feel for it, and it seems easy enough, even to run it on bare metal.
Ditching Yunohost too...
I don't think I'll use Yunohost, like I have done with Mastodon. Yunohost is great for taking care of all of the tech aspects, especially with Masto as it's pretty complex to get up and running on bare metal.
However the main downside of Yunohost is the delay between Mastodon releasing an upgrade and the installers on Yunohost getting updated to do the upgrade. This was especially painful recently when there was a vitally critical update for Mastodon, and Yunohost took about a week to update their installation scripts.
Installing GTS bare metal means I can upgrade immediately, and upgrading is a case of just stopping the GTS service, doing backups, updating the binary and restarting the service. Database upgrades are handled by the binary itself on launch, and the config file will rarely have changes implemented.
All very quick and easy, and done via the terminal which is handy.
So yeah, think I've convinced myself now that this is the best way forward before the Mastodon server gets beyond the point where backups and upgrades are even possible with "only" 100Gb of disk space (got close once mind you).
Hopefully this will be the last time I have to move my account! The process will be simple enough, just the usual move procedure once I have the GTS server up and running, but it'll be a process propagating the server again.
Single user instances normally see lower activity and see less coming in due to how ActivityPub works unless they're fairly old, but it's better to get this done now before Mastodon becomes too unwieldy! Then in a year or so I should be back to where I am now in terms of federation!