Server tech specs

Mementomori.social consists of many bits and pieces. This technical page is meant to tell you all about that.

Software

I'm running a fork based on latest Mastodon nightly from source, main branch. On top of the Mastodon features, we have bunch of our own. See Instance features.

Current optimizations

  • Puma is on its own server

  • PostgreSQL is on its own server

  • Database is on its own scalable SSD volume (storage for the next 100 years)

  • ElasticSearch is on its own server

  • Media uses fast Cloudflare R2 Zero Egress Distributed Object Storage (practically endless storage)

  • Assets delivered by brotli

  • Nginx optimized for resources

  • RAM optimized for services

  • Sidekiq splitted to services and optimized for plenty of enough RAM

  • More than enough resources for every server and service

Server infrastructure

This is where the magic happens. All Mementomori.social servers are running on Hetzner Virtual Private Server, located in Helsinki, Finland.

Puma server

The server specifications:

  • 8 vcpus

  • 32 GB RAM

  • 40 GB local disk

  • 60 GB SSD volume for backups

On top of the regular Mastodon dependencies, the server software has

PostgreSQL server

The server specifications:

  • 8 vcpus

  • 32 GB RAM

  • 40 GB SSD volume for PostgreSQL database, scalable up to 1TB

ElasticSearch server

The server specifications:

  • 4 vcpus

  • 16 GB RAM

  • 80 GB local disk

S3 Object storage for media

Media storage is provided by Cloudflare R2, Zero Egress Distributed Object Storage.

Tweaks

There are some extensive improvements to the default installation.

Sidekiq services and jobs

Sidekiq background jobs have been separated to 12 systemd services. I decided not to have them on a different server for now, didn't find the benefit in it yet.

Files (you get the idea):

Crontabs

There are some periodically running jobs.

Server status and monitoring

The admin gets a phone call from Better Uptime automation if anything mentioned on the status page goes down, by the minute.

Services status can be followed at status.mementomori.social. Status page, monitors and heart beats are provided by Better Stack.

Backups

  • Snapshots from Hetzner every night (full server backed up)

  • Cron scripts which backup everything to Hetzner Storage box and Google Drive (Enterprise, unlimited)

  • Backups from database and files separately

  • Manual backups each time anything is performed

Last updated