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 sourcearrow-up-right, main branch. On top of the Mastodon featuresarrow-up-right, 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 Hetznerarrow-up-right 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 Storagearrow-up-right.

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 nowarrow-up-right, 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.socialarrow-up-right. Status page, monitors and heart beats are provided by Better Stackarrow-up-right.

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