Ein eigener Mastodon-Server gibt Ihnen die volle Kontrolle über Ihre Daten und die Mo­de­ra­ti­on Ihrer Community. So erzielen Sie eine in­di­vi­du­el­le, da­ten­schutz­freund­li­che und wer­be­freie Nut­zer­er­fah­rung.

Was sind die Vor­aus­set­zun­gen 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 fle­xi­ble­re und einfach zu ver­wal­ten­de Lösung. Dieser Server sollte am besten Ubuntu 20.04 oder Debian 11 als Be­triebs­sys­tem verwenden und Ihnen Root-Zugriff gewähren, um die er­for­der­li­chen Kon­fi­gu­ra­tio­nen vor­zu­neh­men.
  • Domain oder Subdomain: Sie benötigen eine eigene Domain oder eine Subdomain, um Ihren Mastodon-Server zu iden­ti­fi­zie­ren. So können Be­nut­ze­rin­nen und Benutzer Ihre Instanz finden und sich mit ihr verbinden.
Domain-Check
  • Ständige Online-Ver­füg­bar­keit: Ihr Server muss rund um die Uhr online sein, damit andere Ihre Mastodon-Instanz nutzen können.
  • E-Mail-Anbieter: Mastodon sendet Be­nach­rich­ti­gun­gen und Be­stä­ti­gungs­links per E-Mail, daher brauchen Sie einen E-Mail-Anbieter, um diese Funk­tio­nen zu un­ter­stüt­zen. Sie können einen eigenen SMTP-Server in­stal­lie­ren. Al­ler­dings ist Dritt­an­bie­ter-Software meist prak­ti­scher. Mastodon empfiehlt unter anderem Mailgun, SparkPost oder Sendgrid.
  • Object Storage Provider (optional): Es ist ratsam, einen Amazon S3-kom­pa­ti­blen Object Storage Provider zu nutzen, da Mastodon Daten wie Bilder, Videos und andere Medien auf dem Server speichert. Der zu­sätz­li­che Spei­cher­platz sorgt dafür, dass Ihre Mastodon-Instanz rei­bungs­los läuft und genügend Platz für Be­nut­zer­da­ten bietet.
IONOS Cloud Object Storage
Daten sicher und günstig speichern

Ersetzen Sie eigene, kos­ten­in­ten­si­ve Spei­cher­lö­sun­gen mit IONOS Cloud Object Storage. Es ist hoch­gra­dig ska­lier­bar, äußerst kos­ten­ef­fi­zi­ent und in­te­griert sich in Ihre An­wen­dungs­sze­na­ri­en. Die extrem hohe Aus­fall­si­cher­heit unserer Server sowie eine in­di­vi­du­el­le Zu­griffs­steue­rung schützen Ihre Daten zu­ver­läs­sig.

Ihr Server sollte außerdem die folgenden tech­ni­schen Min­dest­an­for­de­run­gen erfüllen:

  • CPU/Re­chen­power: min. 2 Kerne
  • RAM/Ar­beits­spei­cher: min. 2 GB
  • Fest­plat­ten­spei­cher: min. 30 GB

Mastodon verwendet eine Datenbank (Post­greS­QL), um Be­nut­zer­da­ten und andere In­for­ma­tio­nen zu speichern. Bei einer großen Be­nut­zer­ba­sis kann die Anzahl der Da­ten­bank­zu­grif­fe hoch sein. Achten Sie darauf, dass Ihre Datenbank aus­rei­chend optimiert ist und genügend Res­sour­cen (CPU und RAM) zur Verfügung stehen, um diese Zugriffe effizient zu ver­ar­bei­ten.

Mastodon-Server mit IONOS VPS hosten

Sie wollen mit Ihrer eigenen Mastodon-Instanz starten, aber sind sich nicht sicher, welcher VPS-Plan Ihren An­for­de­run­gen gerecht wird? IONOS bietet Ihnen leis­tungs­star­ke VPS-Pakete mit de­di­zier­ten Res­sour­cen und un­be­grenz­tem Traffic zu kos­ten­güns­ti­gen Preisen.

Für einen einfachen Mastodon-Server ist das VPS Linux S Paket von IONOS die perfekte Wahl. Hier erhalten Sie 80 GB Spei­cher­platz und bis zu 1 Gbit/s Band­brei­te. Sollten Sie mehr Res­sour­cen brauchen, wählen Sie einfach das ent­spre­chen­de Leis­tungs­pa­ket.

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

Bei der Ent­schei­dung eines ge­eig­ne­ten VPS-Pakets sollten Sie die po­ten­zi­el­le Nut­zer­zahl Ihrer Mastodon-Instanz ein­schät­zen. Je nach er­war­te­tem 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

Zu­sätz­lich können Sie Ihren Mastodon-Server auch parallel zu anderen Diensten laufen lassen. Bei einer einfachen Nut­zer­ba­sis können Sie bei diesen Tarifen ein­stei­gen:

Mastodon-Server-Szenario Passender IONOS-VPS-Server
Par­al­le­ler Betrieb einer einfachen Website VPS Linux M
Par­al­le­ler Betrieb eines Voice Servers VPS Linux M
Par­al­le­ler Betrieb eines Online-Shops VPS Linux L

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

Schritt 1: Server vor­be­rei­ten

Die meisten Hosting-Anbieter bieten die Mög­lich­keit, das Be­triebs­sys­tem während der Ein­rich­tung zu bestimmen. Mastodon läuft am besten unter Ubuntu 20.04 und Debian 11. Wählen Sie, wenn Sie die Mög­lich­keit haben, eines dieser Be­triebs­sys­te­me aus. Nachdem Ihr VPS ein­ge­rich­tet 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 ein­rich­ten, um nur die HTTP(S)- und SSH-Ports of­fen­zu­las­sen. Danach müssen Sie den A-Record Ihrer Domain oder Subdomain auf die IP-Adresse des VPS verweisen. Für IPv6 fügen Sie zu­sätz­lich einen AAAA-Record hinzu.

Führen Sie ein Update des Pa­ket­ma­na­gers und der Sys­tem­pa­ke­te durch:

apt update && apt upgrade -y
bash

Schritt 2: Benötigte Pakete in­stal­lie­ren

Mastodon erfordert mehrere Pakete und Ab­hän­gig­kei­ten, um ord­nungs­ge­mäß zu funk­tio­nie­ren. Diese umfassen unter anderem Node.js, Yarn, Post­greS­QL, Redis und Nginx.

In­stal­lie­ren Sie zuerst grund­le­gen­de 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

Post­greS­QL

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

Sys­tem­pa­ke­te

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 ge­schrie­ben 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 er­stell­ten Nut­zer­ac­count:

su - mastodon
bash

In­stal­lie­ren 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 ab­ge­schlos­sen ist, in­stal­lie­ren 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: Post­greS­QL kon­fi­gu­rie­ren

Post­greS­QL wird vom Mastodon-Server zur Spei­che­rung und Ver­wal­tung von Daten verwendet. Sie haben im vor­he­ri­gen Schritt den Da­ten­bank­ser­ver bereits in­stal­liert. Wechseln Sie zum Postgres-Benutzer, um auf die Post­greS­QL-Shell zu­zu­grei­fen:

sudo -u postgres psql
bash

Mastodon meldet sich bei dem Da­ten­bank­ser­ver ohne Passwort an. Daher müssen der Linux-Sys­tem­be­nut­zer­na­me und der Be­nut­zer­na­me für die Datenbank über­ein­stim­men. Führen Sie in der Post­greS­QL-Shell die folgenden Befehle aus, um die Datenbank zu erstellen:

CREATE USER mastodon CREATEDB;
\q
sql

Sie können die Leistung Ihrer Post­greS­QL-Datenbank durch An­pas­sun­gen an die ver­füg­ba­ren Sys­tem­res­sour­cen ver­bes­sern. Ein hilf­rei­ches Werkzeug hierfür ist der Kon­fi­gu­ra­ti­ons­ge­ne­ra­tor pgTune. Dort geben Sie In­for­ma­tio­nen wie die Anzahl der CPU-Kerne und die RAM-Größe ein und erhalten eine op­ti­mier­te Post­greS­QL-Kon­fi­gu­ra­ti­on, die Sie in postgresql.conf angeben.

Schritt 4: Mastodon in­stal­lie­ren

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

In­stal­lie­ren Sie auch die Ruby- und Ja­va­Script-Ab­hän­gig­kei­ten:

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 ver­schie­de­nen Ein­stel­lun­gen befragt, welche am Ende in der Datei .env.production ge­spei­chert werden.

  • Domain name: Do­main­na­men des VPS-Servers angeben
  • Do you want to enable single user mode?: N
  • Are you using Docker to run Mastodon?: N
  • Post­greS­QL host: default - Enter
  • Post­greS­QL port: default - Enter
  • Name of Post­greS­QL database: default - Enter
  • Name of Post­greS­QL user: default - Enter
  • Password of Post­greS­QL 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: Be­nut­zer­na­me für die Anmeldung
  • SMTP au­then­ti­ca­ti­on: 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 con­fi­gu­ra­ti­on right now?: Y
  • Send test e-mail to: beliebige Mail-Adresse als Empfänger angeben
  • Save con­fi­gu­ra­ti­on?: 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-Zer­ti­fi­kat in­stal­lie­ren

VPS-Server von IONOS haben stan­dard­mä­ßig bereits ein SSL-Zer­ti­fi­kat inklusive. Sollte in Ihrem Paket aber kein Zer­ti­fi­kat enthalten sein, können Sie dieses einfach nach­in­stal­lie­ren.

Sie können ein kos­ten­lo­ses SSL-Zer­ti­fi­kat von Let’s Encrypt erhalten. Let’s Encrypt bietet au­to­ma­ti­sier­te Zer­ti­fi­ka­te an, die einfach zu in­stal­lie­ren und zu erneuern sind.

certbot certonly --nginx -d example.com
bash

Das Zer­ti­fi­kat wird im Ordner /etc/letsencrypt/live/example.com/ auf Ihrem Mastodon-Server ge­spei­chert.

Schritt 6: Nginx ein­rich­ten

Sie müssen das Kon­fi­gu­ra­ti­ons­tem­p­la­te für Nginx aus dem Mastodon-Ver­zeich­nis kopieren und in das Ver­zeich­nis sites-available von Nginx einfügen:

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

Erstellen Sie einen sym­bo­li­schen Link von der Kon­fi­gu­ra­ti­ons­da­tei in sites-enabled, um sie zu ak­ti­vie­ren und entfernen Sie die Stan­dard­kon­fi­gu­ra­ti­on:

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

Öffnen Sie die Kon­fi­gu­ra­ti­ons­da­tei für Ihren Mastodon-Server:

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

Tragen Sie statt example.com Ihren eigenen Do­main­na­men ein.

Ent­kom­men­tie­ren Sie die Zeilen ssl_certificate und ssl_certificate_key, und ersetzen Sie die Pfade durch die zu Ihrem SSL-Zer­ti­fi­kat. Wenn Sie das Standard-Selbst­si­gna­tur-Zer­ti­fi­kat benutzen, bleiben die Pfade un­ver­än­dert:

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

Sobald Sie die Kon­fi­gu­ra­ti­on angepasst haben, müssen Sie Nginx neu laden, damit die Än­de­run­gen wirksam werden:

systemctl reload nginx
bash

Schritt 7: Systemd-Services ein­rich­ten

Wenn Sie die Systemd-Dienste ak­ti­vie­ren, werden die Mastodon-Web­an­wen­dung und die Echtzeit-Streaming-Funk­tio­nen au­to­ma­tisch gestartet, wenn der Server hoch­ge­fah­ren wird. Dies ge­währ­leis­tet, dass Ihr Mastodon-Server permanent verfügbar ist.

Kopieren Sie die Systemd-Ser­vice­tem­pla­tes von Mastodon in das ent­spre­chen­de Ver­zeich­nis:

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

Wenn Sie ir­gend­wann von den Stan­dard­wer­ten ab­ge­wi­chen sind, über­prü­fen Sie, ob der Be­nut­zer­na­me und die Pfade in den Ser­vice­vor­la­gen korrekt sind:

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

Starten und ak­ti­vie­ren Sie die Systemd-Dienste:

systemctl daemon-reload
systemctl enable --now mastodon-web mastodon-sidekiq mastodon-streaming
bash
  • systemctl daemon-reload: Ak­tua­li­siert die Kon­fi­gu­ra­ti­on von Systemd, um die neuen Ser­vice­tem­pla­tes zu be­rück­sich­ti­gen.
  • systemctl enable –now mastodon-web mastodon-sidekiq mastodon-streaming: Diese Dienste sind für die Web­an­wen­dung, Hin­ter­grund­ver­ar­bei­tung und Echtzeit-Streaming-Funk­tio­nen von Mastodon ver­ant­wort­lich.

Schritt 8: Zei­chen­be­gren­zung ändern

Indem Sie Ihren eigenen Mastodon-Server betreiben, haben Sie die Freiheit, Ein­stel­lun­gen vor­zu­neh­men, die auf öf­fent­li­chen Servern nor­ma­ler­wei­se nicht möglich sind. Ein Beispiel dafür ist die Anpassung der Zei­chen­be­gren­zung für Beiträge. Stan­dard­mä­ßig ist diese auf 500 Zeichen fest­ge­legt, aber Sie können sie auch erhöhen oder ver­rin­gern.

Zunächst müssen Sie zum Mastodon-Benutzer in der Konsole wechseln. Dann müssen Sie zwei bestimmte Dateien be­ar­bei­ten.

Geben Sie in den folgenden Dateien Ihren ge­wünsch­ten Wert für die Zei­chen­be­gren­zung ein:

  • compose_form.js im Ver­zeich­nis ~/live/app/javascript/mastodon/features/compose/components/
  • status_length_validator.rb in ~/live/app/validators/

In der Datei instance_serializer.rb im Ver­zeich­nis ~/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 ge­wünsch­ten Wert einsetzen:

def max_toot_chars
    1000
end
ruby

Nachdem Sie diese Än­de­run­gen vor­ge­nom­men 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 Zei­chen­be­gren­zung von 1000 Zeichen schreiben.

Schritt 9: Mo­de­ra­ti­ons­funk­ti­on

Die Mo­de­ra­ti­ons­funk­ti­on unter “Ein­stel­lun­gen > Mo­de­ra­ti­on” auf Ihrem Mastodon-Server gestattet es Ihnen als Admin, die Inhalte und Be­nut­zer­ak­ti­vi­tä­ten auf Ihrer Instanz zu über­wa­chen und zu steuern, um die Community-Richt­li­ni­en ein­zu­hal­ten und un­er­wünsch­te Inhalte zu entfernen.

Sie haben die Mög­lich­keit, einzelne Accounts, Domains, IP-Adressen oder E-Mail-Server zu blo­ckie­ren, zu ent­sper­ren oder Be­nut­zer­kon­ten zu löschen. Zu­sätz­lich können Sie Inhalte mo­de­rie­ren, die von Be­nut­ze­rin­nen und Benutzern ver­öf­fent­licht wurden, indem Sie un­an­ge­mes­se­ne oder be­lei­di­gen­de Beiträge entfernen oder be­ar­bei­ten.

Free VPS Trial
vServer kostenlos testen für 30 Tage

Lassen Sie sich von den Vorteilen über­zeu­gen. Probieren Sie Ihren Virtual Server ganz in Ruhe 30 Tage lang aus!

Zum Hauptmenü