Eigenen Mastodon-Server erstellen: Schritt für Schritt erklärt

Ein eigener Mastodon-Server gibt Ihnen die volle Kontrolle über Ihre Daten und die Moderation Ihrer Community. So erzielen Sie eine individuelle, datenschutzfreundliche und werbefreie Nutzererfahrung.

Was sind die Voraussetzungen für einen Mastodon-Server?

Sie können mit Ihrem Server klein starten und ihn je nach Bedarf erweitern, um mit dem Wachstum Ihrer Community Schritt zu halten. Für das Aufsetzen eines Mastodon-Servers benötigen Sie:

  • VPS oder ein anderer Server: Obwohl Sie Mastodon auch auf einem lokalen Server betreiben können, ist ein Virtual Private Server (VPS) eine flexiblere und einfach zu verwaltende Lösung. Dieser Server sollte am besten Ubuntu 20.04 oder Debian 11 als Betriebssystem verwenden und Ihnen Root-Zugriff gewähren, um die erforderlichen Konfigurationen vorzunehmen.
  • Domain oder Subdomain: Sie benötigen eine eigene Domain oder eine Subdomain, um Ihren Mastodon-Server zu identifizieren. So können Benutzerinnen und Benutzer Ihre Instanz finden und sich mit ihr verbinden.
Domain Check
  • .de
  • .com
  • .org
  • .team
  • .social
  • Ständige Online-Verfügbarkeit: Ihr Server muss rund um die Uhr online sein, damit andere Ihre Mastodon-Instanz nutzen können.
  • E-Mail-Anbieter: Mastodon sendet Benachrichtigungen und Bestätigungslinks per E-Mail, daher brauchen Sie einen E-Mail-Anbieter, um diese Funktionen zu unterstützen. Sie können einen eigenen SMTP-Server installieren. Allerdings ist Drittanbieter-Software meist praktischer. Mastodon empfiehlt unter anderem Mailgun, SparkPost oder Sendgrid.
  • Object Storage Provider (optional): Es ist ratsam, einen Amazon S3-kompatiblen Object Storage Provider zu nutzen, da Mastodon Daten wie Bilder, Videos und andere Medien auf dem Server speichert. Der zusätzliche Speicherplatz sorgt dafür, dass Ihre Mastodon-Instanz reibungslos läuft und genügend Platz für Benutzerdaten bietet.

IONOS S3 Object Storage

Der IONOS S3 Object Storage ist ideal für Backups sowie zum Archivieren von Unternehmensdaten. Sie können beliebig große, statische Datenmengen kostengünstig speichern.

Hoch skalierbar
Kostengünstig
Komfortabel

Ihr Server sollte außerdem die folgenden technischen Mindestanforderungen erfüllen:

  • CPU/Rechenpower: min. 2 Kerne
  • RAM/Arbeitsspeicher: min. 2 GB
  • Festplattenspeicher: min. 30 GB

Mastodon verwendet eine Datenbank (PostgreSQL), um Benutzerdaten und andere Informationen zu speichern. Bei einer großen Benutzerbasis kann die Anzahl der Datenbankzugriffe hoch sein. Achten Sie darauf, dass Ihre Datenbank ausreichend optimiert ist und genügend Ressourcen (CPU und RAM) zur Verfügung stehen, um diese Zugriffe effizient zu verarbeiten.

Mastodon-Server mit IONOS VPS hosten

Sie wollen mit Ihrer eigenen Mastodon-Instanz starten, aber sind sich nicht sicher, welcher VPS-Plan Ihren Anforderungen gerecht wird? IONOS bietet Ihnen leistungsstarke VPS-Pakete mit dedizierten Ressourcen und unbegrenztem Traffic zu kostengünstigen Preisen.

Für einen einfachen Mastodon-Server ist das VPS Linux S Paket von IONOS die perfekte Wahl. Hier erhalten Sie 80 GB Speicherplatz und bis zu 1 Gbit/s Bandbreite. Sollten Sie mehr Ressourcen brauchen, wählen Sie einfach das entsprechende Leistungspaket.

Mögliche Mastodon-Server-Szenarien und die passenden IONOS-Tarife

Bei der Entscheidung eines geeigneten VPS-Pakets sollten Sie die potenzielle Nutzerzahl Ihrer Mastodon-Instanz einschätzen. Je nach erwartetem Traffic empfehlen wir die folgenden IONOS-Tarife:

Mastodon-Server-Szenario Passender IONOS-VPS-Server
bis zu 100 Personen VPS Linux M
100-1000 Personen VPS Linux L
1000-10000 Personen VPS Linux XL
ab 10000 Personen VPS Linux XXL

Zusätzlich können Sie Ihren Mastodon-Server auch parallel zu anderen Diensten laufen lassen. Bei einer einfachen Nutzerbasis können Sie bei diesen Tarifen einsteigen:

Mastodon-Server-Szenario Passender IONOS-VPS-Server
Paralleler Betrieb einer einfachen Website VPS Linux M
Paralleler Betrieb eines Voice Servers VPS Linux M
Paralleler Betrieb eines Online-Shops VPS Linux L

Mastodon-Server erstellen: Schritt-für-Schritt-Anleitung

Schritt 1: Server vorbereiten

Die meisten Hosting-Anbieter bieten die Möglichkeit, das Betriebssystem während der Einrichtung zu bestimmen. Mastodon läuft am besten unter Ubuntu 20.04 und Debian 11. Wählen Sie, wenn Sie die Möglichkeit haben, eines dieser Betriebssysteme aus. Nachdem Ihr VPS eingerichtet ist, verbinden Sie sich per SSH mit Ihrem Server. Verwenden Sie dazu ein Terminal (Linux/Mac) oder einen SSH-Client wie PuTTY (Windows).

ssh root@your_server_ip
bash

Ersetzen Sie your_server_ip durch die IP-Adresse Ihres VPS.

Für den Schutz Ihres Systems sollten Sie SSH-Keys verwenden und Firewall-Regeln mit iptables einrichten, um nur die HTTP(S)- und SSH-Ports offenzulassen. Danach müssen Sie den A-Record Ihrer Domain oder Subdomain auf die IP-Adresse des VPS verweisen. Für IPv6 fügen Sie zusätzlich einen AAAA-Record hinzu.

Führen Sie ein Update des Paketmanagers und der Systempakete durch:

apt update && apt upgrade -y
bash

Schritt 2: Benötigte Pakete installieren

Mastodon erfordert mehrere Pakete und Abhängigkeiten, um ordnungsgemäß zu funktionieren. Diese umfassen unter anderem Node.js, Yarn, PostgreSQL, Redis und Nginx.

Installieren Sie zuerst grundlegende Pakete:

apt install -y curl wget gnupg apt-transport-https lsb-release ca-certificates
bash

Node.js

curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list
bash

PostgreSQL

wget -O /usr/share/keyrings/postgresql.asc https://www.postgresql.org/media/keys/ACCC4CF8.asc
echo "deb [signed-by=/usr/share/keyrings/postgresql.asc] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/postgresql.list
bash

Systempakete

apt update
bash
apt install -y imagemagick ffmpeg libpq-dev libxml2-dev libxslt1-dev file git-core g++ libprotobuf-dev protobuf-compiler pkg-config gcc autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm-dev nginx nodejs redis-server redis-tools postgresql postgresql-contrib certbot python3-certbot-nginx libidn11-dev libicu-dev libjemalloc-dev
bash

Yarn

corepack enable
yarn set version classic
bash

Ruby

Mastodon ist in Ruby geschrieben und benötigt daher Ruby und Bundler. Dazu legen Sie zunächst den Nutzer an, unter dem Mastodon laufen soll:

adduser --disabled-login mastodon
bash

Nun wechseln Sie zu dem erstellten Nutzeraccount:

su - mastodon
bash

Installieren Sie rbenv und rbenv-build:

git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
exec bash
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
bash

Wenn dies abgeschlossen ist, installieren Sie die korrekte Version von Ruby und den Bundler:

RUBY_CONFIGURE_OPTS=--with-jemalloc rbenv install 3.2.3
rbenv global 3.2.3
gem install bundler --no-document
bash

Kehren Sie mit exit zum Root-Benutzer zurück.

Schritt 3: PostgreSQL konfigurieren

PostgreSQL wird vom Mastodon-Server zur Speicherung und Verwaltung von Daten verwendet. Sie haben im vorherigen Schritt den Datenbankserver bereits installiert. Wechseln Sie zum Postgres-Benutzer, um auf die PostgreSQL-Shell zuzugreifen:

sudo -u postgres psql
bash

Mastodon meldet sich bei dem Datenbankserver ohne Passwort an. Daher müssen der Linux-Systembenutzername und der Benutzername für die Datenbank übereinstimmen. Führen Sie in der PostgreSQL-Shell die folgenden Befehle aus, um die Datenbank zu erstellen:

CREATE USER mastodon CREATEDB;
\q
sql

Sie können die Leistung Ihrer PostgreSQL-Datenbank durch Anpassungen an die verfügbaren Systemressourcen verbessern. Ein hilfreiches Werkzeug hierfür ist der Konfigurationsgenerator pgTune. Dort geben Sie Informationen wie die Anzahl der CPU-Kerne und die RAM-Größe ein und erhalten eine optimierte PostgreSQL-Konfiguration, die Sie in postgresql.conf angeben.

Schritt 4: Mastodon installieren

Als Nächstes kehren Sie zurück zum Mastodon-Nutzer:

su - mastodon
bash

Laden Sie die neueste stabile Version von Mastodon herunter:

git clone https://github.com/mastodon/mastodon.git live && cd live
git checkout $(git tag -l | grep '^v[0-9.]*$' | sort -V | tail -n 1)
bash

Installieren Sie auch die Ruby- und JavaScript-Abhängigkeiten:

bundle config deployment 'true'
bundle config without 'development test'
bundle install -j$(getconf _NPROCESSORS_ONLN)
yarn install --pure-lockfile
bash

Führen Sie den Mastodon Setup Wizard aus:

RAILS_ENV=production bundle exec rake mastodon:setup
bash

Sie werden nun zu verschiedenen Einstellungen befragt, welche am Ende in der Datei .env.production gespeichert werden.

  • Domain name: Domainnamen des VPS-Servers angeben
  • Do you want to enable single user mode?: N
  • Are you using Docker to run Mastodon?: N
  • PostgreSQL host: default - Enter
  • PostgreSQL port: default - Enter
  • Name of PostgreSQL database: default - Enter
  • Name of PostgreSQL user: default - Enter
  • Password of PostgreSQL user: leer lassen - Enter
  • Redis host: default - Enter
  • Redis port: default - Enter
  • Redis password: default – Enter
  • Do you want to store uploaded files on the cloud?: N
  • Do you want to send e-mails from localhost?: N
  • SMTP server: SMTP-Server angeben
  • SMTP port: Port des SMTP-Servers angeben
  • SMTP username: Benutzername für die Anmeldung
  • SMTP authentication: plain
  • SMTP OpenSSL verify mode: none
  • E-mail address to send e-mails “from”: meist wie SMTP-Login
  • Send a test e-mail with this configuration right now?: Y
  • Send test e-mail to: beliebige Mail-Adresse als Empfänger angeben
  • Save configuration?: Y
  • Prepare the database now?: Y
  • Compile the assets now?: Y
  • Do you want to create an admin user straight away?: Y
  • Username: admin
  • E-Mail: eigene Mail-Adresse

Wechseln Sie wieder zum Root-Benutzer:

exit
bash

Schritt 5: SSL-Zertifikat installieren

VPS-Server von IONOS haben standardmäßig bereits ein SSL-Zertifikat inklusive. Sollte in Ihrem Paket aber kein Zertifikat enthalten sein, können Sie dieses einfach nachinstallieren.

Sie können ein kostenloses SSL-Zertifikat von Let’s Encrypt erhalten. Let’s Encrypt bietet automatisierte Zertifikate an, die einfach zu installieren und zu erneuern sind.

certbot certonly --nginx -d example.com
bash

Das Zertifikat wird im Ordner /etc/letsencrypt/live/example.com/ auf Ihrem Mastodon-Server gespeichert.

Schritt 6: Nginx einrichten

Sie müssen das Konfigurationstemplate für Nginx aus dem Mastodon-Verzeichnis kopieren und in das Verzeichnis sites-available von Nginx einfügen:

cp /home/mastodon/live/dist/nginx.conf /etc/nginx/sites-available/mastodon
bash

Erstellen Sie einen symbolischen Link von der Konfigurationsdatei in sites-enabled, um sie zu aktivieren und entfernen Sie die Standardkonfiguration:

ln -s /etc/nginx/sites-available/mastodon /etc/nginx/sites-enabled/mastodon
rm /etc/nginx/sites-enabled/default
bash

Öffnen Sie die Konfigurationsdatei für Ihren Mastodon-Server:

nano /etc/nginx/sites-available/mastodon
bash

Tragen Sie statt example.com Ihren eigenen Domainnamen ein.

Entkommentieren Sie die Zeilen ssl_certificate und ssl_certificate_key, und ersetzen Sie die Pfade durch die zu Ihrem SSL-Zertifikat. Wenn Sie das Standard-Selbstsignatur-Zertifikat benutzen, bleiben die Pfade unverändert:

ssl_certificate     /etc/ssl/certs/ssl-cert-snakeoil.pem;
ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;
bash

Sobald Sie die Konfiguration angepasst haben, müssen Sie Nginx neu laden, damit die Änderungen wirksam werden:

systemctl reload nginx
bash

Schritt 7: Systemd-Services einrichten

Wenn Sie die Systemd-Dienste aktivieren, werden die Mastodon-Webanwendung und die Echtzeit-Streaming-Funktionen automatisch gestartet, wenn der Server hochgefahren wird. Dies gewährleistet, dass Ihr Mastodon-Server permanent verfügbar ist.

Kopieren Sie die Systemd-Servicetemplates von Mastodon in das entsprechende Verzeichnis:

cp /home/mastodon/live/dist/mastodon-*.service /etc/systemd/system/
bash

Wenn Sie irgendwann von den Standardwerten abgewichen sind, überprüfen Sie, ob der Benutzername und die Pfade in den Servicevorlagen korrekt sind:

$EDITOR /etc/systemd/system/mastodon-*.service
bash

Starten und aktivieren Sie die Systemd-Dienste:

systemctl daemon-reload
systemctl enable --now mastodon-web mastodon-sidekiq mastodon-streaming
bash
  • systemctl daemon-reload: Aktualisiert die Konfiguration von Systemd, um die neuen Servicetemplates zu berücksichtigen.
  • systemctl enable –now mastodon-web mastodon-sidekiq mastodon-streaming: Diese Dienste sind für die Webanwendung, Hintergrundverarbeitung und Echtzeit-Streaming-Funktionen von Mastodon verantwortlich.

Schritt 8: Zeichenbegrenzung ändern

Indem Sie Ihren eigenen Mastodon-Server betreiben, haben Sie die Freiheit, Einstellungen vorzunehmen, die auf öffentlichen Servern normalerweise nicht möglich sind. Ein Beispiel dafür ist die Anpassung der Zeichenbegrenzung für Beiträge. Standardmäßig ist diese auf 500 Zeichen festgelegt, aber Sie können sie auch erhöhen oder verringern.

Zunächst müssen Sie zum Mastodon-Benutzer in der Konsole wechseln. Dann müssen Sie zwei bestimmte Dateien bearbeiten.

Geben Sie in den folgenden Dateien Ihren gewünschten Wert für die Zeichenbegrenzung ein:

  • compose_form.js im Verzeichnis ~/live/app/javascript/mastodon/features/compose/components/
  • status_length_validator.rb in ~/live/app/validators/

In der Datei instance_serializer.rb im Verzeichnis ~/live/app/serializers/rest/ finden Sie die Zeile, in der :languages, :registrations, steht und fügen dahinter :max_toot_chars, hinzu.

Außerdem ergänzen Sie unter der Zeile, die mit private beginnt, den folgenden Code, wobei Sie den gewünschten Wert einsetzen:

def max_toot_chars
    1000
end
ruby

Nachdem Sie diese Änderungen vorgenommen haben, müssen die Mastodon-Dienste neu gestartet werden. Dies erfolgt als Root-Benutzer mit dem Befehl:

service mastodon-* restart
bash

Nun können Sie Beiträge mit einer Zeichenbegrenzung von 1000 Zeichen schreiben.

Schritt 9: Moderationsfunktion

Die Moderationsfunktion unter “Einstellungen > Moderation” auf Ihrem Mastodon-Server gestattet es Ihnen als Admin, die Inhalte und Benutzeraktivitäten auf Ihrer Instanz zu überwachen und zu steuern, um die Community-Richtlinien einzuhalten und unerwünschte Inhalte zu entfernen.

Sie haben die Möglichkeit, einzelne Accounts, Domains, IP-Adressen oder E-Mail-Server zu blockieren, zu entsperren oder Benutzerkonten zu löschen. Zusätzlich können Sie Inhalte moderieren, die von Benutzerinnen und Benutzern veröffentlicht wurden, indem Sie unangemessene oder beleidigende Beiträge entfernen oder bearbeiten.

Free VPS Trial von IONOS

Jetzt vServer kostenlos testen - Probieren Sie Ihren Virtual Server 30 Tage lang aus!

Dedizierte Ressourcen
Unlimited Traffic
Persönlicher Berater