This is not a complete write-up (far from it), but since a few people have asked, here are some barebones details of my Mastodon server.
(Note: I am utterly unconvinced that self-hosting is the right answer for most people, or is the answer to online privacy or other problems.)
Raspberry Pi 4, 4GB, with the PoE+ HAT.
It is on its own VLAN.
My Raspberry Pis are in cheap-ish racks.
They are powered via PoE, fed from a couple of UniFi switches.
In case anyone cares, here’s what my network traffic graph has looked like for the last day, for a single-user instance of Mastodon, with one not terribly popular user (me!).
It shows an average network throughput of roughly 1Mbit from midnight until 19:00, after which it rises to about 10Mbit. There is a peak of 100Mbit at 01:00, which is probably a backup rather than mastodon traffic.
It looked a lot less than this a couple of weeks ago!
My “usual” build of Raspberry Pi OS.
It is the standard Raspberry Pi OS (so, Debian), which I have tweaked so:
it has LUKS full disk encryption, with
dropbear-sshfor remote unlocking of the disk pre-boot (howto).
Here’s a snapshot of CPU and RAM usage:
%Cpu(s): 21.9 us, 6.7 sy, 0.0 ni, 0.0 id, 70.2 wa, 0.0 hi, 1.2 si, 0.0 st MiB Mem : 3795.0 total, 168.7 free, 2493.4 used, 1132.9 buff/cache
And usage is predominantly Mastodon-related:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 529531 mastodon 20 0 3393116 959352 9804 S 77.8 24.7 3622:22 bundle 965302 redis 20 0 131140 54160 1540 R 31.5 1.4 2512:16 redis-server
I use the source-based installation of Mastodon.
In front of it is
nginx, as a reverse-proxy. nginx handles TLS, proxying traffic to the mastodon instance.
I’ve a couple of cronjobs.
One backs the system up automatically to a remote system.
The other runs the
tootctl media remove command, to wipe all but the last seven days of media.
These each run daily.
I am the only user of the server. I have an account for me (mastodon.neilzone.co.uk/@neil, and an account for my business, decoded.legal, but I don’t use that.
I have zero interest in opening the server up to others, as that brings hassles and complexity that I just don’t want!
I use the option for MFA via hardware security keys.
On my Android phone, I use Twidere. It also lets me cross-post with Twitter.
On my computer(s), I just use the Mastodon web interface, in Advanced mode. If the superb Twitter client cawbird one day supports the fediverse, then I might use that instead.
I occasionally use an iPad (my hunt for a Linux tablet is one for another day), and on that I use Tootle.