Mastodon Social Network unter Debian 11 installieren

Mastodon ist ein kostenloses, dezentrales und quelloffenes soziales Netzwerk ähnlich wie Twitter. In Mastodon können sich die Nutzer/innen gegenseitig folgen und Nachrichten, Bilder und Videos posten. Aber anders als bei Twitter gibt es keinen zentralen Speicher oder eine Autorität für die Inhalte.

Dank der dezentralen Architektur arbeitet Mastodon auf Tausenden von verschiedenen Servern, die von verschiedenen Mitgliedern der Community betrieben werden. Du kannst deinen eigenen Mastodon-Server unter deiner Domain einrichten. Du kannst auch anderen Nutzern mit anderen Domains auf den anderen Servern folgen.

In dieser Anleitung installierst du Mastodon, eine dezentrale Microblogging-Plattform, auf einem Debian 11-Server. Mit dieser Anleitung richtest du Mastodon mit PostgreSQL als Datenbankserver und Nginx als Reverse Proxy ein. Außerdem sicherst du die Mastodon-Installation mit kostenlosen SSL-Zertifikaten von Letsencrypt ab.

Voraussetzungen

In dieser Anleitung wird davon ausgegangen, dass du die folgenden Voraussetzungen erfüllst:

  • Einen Debian 11-Server – in diesem Beispiel wird der neueste Debian 11-Server mit dem Hostnamen„mastodon-server“ und der IP-Adresse„192.168.5.40“ verwendet.
  • Ein Nicht-Root-Benutzer mit sudo/root-Administrator-Rechten.
  • Einen Domain-Namen, der auf deinen öffentlichen Debian-Server zeigt und aufgelöst ist – in diesem Beispiel wird die Sub-Domain‚mastodon.hwdomain.io‚ verwendet.

Wenn du diese Voraussetzungen erfüllt hast, kannst du mit der Installation von Mastodon beginnen.

Einrichten von Repositories und Installieren von Abhängigkeiten

Mastodon ist eine kostenlose und quelloffene Software für den Betrieb von selbst gehosteten sozialen Netzwerken, die dem Twitter-Dienst ähneln. Sie ist hauptsächlich in Ruby geschrieben, insbesondere mit dem Web-Framework Ruby on Rails und JavaScript mit Reac.js und dem Redux-Framework.

In diesem ersten Schritt richtest du zusätzliche Repositories in deinem System ein und installierst die Paketabhängigkeiten für die Mastodon-Installation. Dazu gehören Pakete wie build-essentials zum Kompilieren von Ruby, PostgreSQL als Datenbankserver, Nginx als Webserver und Reverse Proxy, das Tool certbot zum Erwerb von SSL-Zertifikaten über Letsencrypt und der Redis-Server, der für den Key-Value-Speicher und die Sitzungsverwaltung von Mastodon verwendet wird.

Bevor du loslegst, führe den folgenden apt-Befehl aus, um einige grundlegende Abhängigkeiten zu installieren, die für die Verwaltung von Repositories und Paketen benötigt werden.

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

Wenn du dazu aufgefordert wirst, gib y ein, um zu bestätigen, und drücke ENTER, um fortzufahren.

Basispakete installieren

Als Nächstes führst du den folgenden Befehl aus, um das Node.js-Repository Nodesource hinzuzufügen. Das Node.js-Paket hier wird für die Kompilierung der statischen Assets von Mastodon verwendet. Zum Zeitpunkt der Erstellung dieses Artikels benötigte das neueste Mastodon mindestens Node.js v16.

curl -sL https://deb.nodesource.com/setup_16.x | bash -

Du erhältst dann eine Ausgabe wie die folgende.

Nodejs Repo hinzufügen

Nachdem du das Node.js-Repository hinzugefügt hast, richtest du das Repository für den Yarn-Paketmanager ein. Dieses Repository stellt das Yarn-Paket bereit, das für die Installation der JavaScript-Abhängigkeiten verwendet wird.

Führe den folgenden Befehl aus, um den GPG-Schlüssel und das Repository für den Yarn-Paketmanager hinzuzufügen.

curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/yarnkey.gpg >/dev/null
echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" | sudo tee /etc/apt/sources.list.d/yarn.list

Das dritte Repository, das du hinzufügen musst, ist das PostgreSQL-Repository. Führe den unten stehenden Befehl aus, um das PostgreSQL-Repository zu deinem Debian-Server hinzuzufügen.

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

yarn postgresql repo hinzufügen

Wenn du die Repositories von Node.js, Yarn und PostgreSQL hinzugefügt hast, führe den folgenden apt-Befehl aus, um deinen Paketindex zu aktualisieren.

sudo apt update

Du erhältst eine Ausgabe wie diese.

Repo aktualisieren und auffrischen

Zum Schluss führst du den folgenden apt-Befehl aus, um die Paketabhängigkeiten zu installieren, die für die Installation von Mastodon benötigt werden.

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

Gib y ein, wenn du zur Bestätigung aufgefordert wirst, und drücke ENTER, um fortzufahren.

Abhängigkeiten installieren

Damit hast du die grundlegenden Abhängigkeiten für Mastodon installiert und einige Drittanbieter-Repositories zu deinem Debian-System hinzugefügt.

In den nächsten Schritten wirst du Ruby über rbenv – den Ruby-Versionsmanager – installieren.

Installation von rbenv und Ruby

rbenv ist ein Versionsverwaltungsprogramm für die Programmiersprache Ruby auf Unix-ähnlichen Systemen. Es ist nützlich, um zwischen mehreren Ruby-Versionen auf demselben Rechner zu wechseln und um sicherzustellen, dass jedes Projekt, an dem du arbeitest, immer mit der richtigen Ruby-Version läuft.

Um zu beginnen, führe den folgenden Befehl aus, um einen neuen Benutzer„mastodon“ auf deinem System anzulegen. Dieser neue Benutzer wird für die Ausführung von Diensten im Zusammenhang mit Mastodon verwendet, und der Mastodon-Quellcode wird im Home-Verzeichnis dieses Benutzers gespeichert.

sudo adduser --disabled-login mastodon

Während des Prozesses wirst du nach den Benutzerdaten gefragt. Gib deine Benutzerdaten ein, bestätige mit y und drücke ENTER.

Neuen Benutzer hinzufügen

Nachdem der Benutzer„mastodon“ erstellt wurde, führst du den folgenden Befehl aus, um dich anzumelden.

su - mastodon

Als Nächstes lädst du den Quellcode von rbenv mit dem unten stehenden git-Befehl herunter.

git clone https://github.com/rbenv/rbenv.git ~/.rbenv

Führe dann den unten stehenden Befehl aus, um rbenv auf deinem System zu installieren.

cd ~/.rbenv && src/configure && make -C src

Nach der Installation von rbenv erhältst du eine Ausgabe wie diese.

rbenv herunterladen und installieren

Als Nächstes führst du den folgenden Befehl aus, um das Verzeichnis „bin“ von rbenv zum Systempfad hinzuzufügen und rbenv jedes Mal zu laden, wenn sich der Benutzer in einer neuen Sitzung anmeldet.

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc

Lade nun deine aktuelle Shell neu, indem du die Konfigurationsdatei bashrc neu lädst. Gib dann den Befehl „rbenv“ in deiner Shell ein und drücke TAB.

source ~/.bashrc
rbenv TAB

Im folgenden Screenshot ist rbenv installiert und du kannst nun den Befehl rbenv ausführen, um Ruby zu installieren.

rbenv einrichten

Bevor du Ruby installierst, musst du das rbenv-Plugin namens „ruby-build“ installieren. Dieses Plugin bietet Kommandozeilen-Tools, die die Installation von Ruby aus dem Quellcode vereinfachen, insbesondere für UNIX-ähnliche Betriebssysteme.

Lade das „ruby-build“- Plugin über den git-Befehl herunter.

git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build

ruby_plugin herunterladen

Nachdem das „ruby-build“-Plugin hinzugefügt wurde, führe den folgenden Befehl aus, um Ruby v3.0.4 zu installieren, das für die aktuelle Mastodon-Version benötigt wird.

RUBY_CONFIGURE_OPTS=--with-jemalloc rbenv install 3.0.4

Nachdem die Installation abgeschlossen ist, erhältst du eine Ausgabe ähnlich dieser.

Ruby installieren

Führe nun den folgenden Befehl aus, um die Standard-Ruby-Version auf 3.0.4 einzustellen. Überprüfe dann mit dem Ruby-Befehl wie unten. Du wirst sehen, dass Ruby v3.0.4 auf deinem Debian-System installiert ist.

rbenv global 3.0.4
ruby --version

Rubin verifizieren

Als letztes musst du einen Bundler als Ruby-Paketverwaltung installieren. Führe den unten stehenden gem-Befehl aus, um „bundler“ zu installieren.

gem install bundler --no-document

Damit hast du die Installation der Mastodon-Paketabhängigkeiten auf deinem System abgeschlossen. Du hast Ruby 3.0.4 über den Ruby-Versionsmanager rbenv installiert und Bundler, das Ruby-Paketmanagement-Tool, installiert.

In den nächsten Schritten richtest du den PostgreSQL-Benutzer ein, der für die Mastodon-Installation verwendet werden soll.

Einrichten des PostgreSQL-Datenbank-Servers

In diesem Schritt überprüfst du den PostgreSQL-Dienst, um sicherzustellen, dass der Dienst aktiviert ist und läuft. Dann erstellst du über die PostgreSQL-Shell einen neuen PostgreSQL-Benutzer mit der Rolle „mastodon“.

Achte darauf, dass du die folgenden Befehle mit Root-Benutzerrechten ausführst.

Bevor du beginnst, führe den folgenden systemctl-Befehl aus, um sicherzustellen, dass der PostgreSQL-Dienst läuft und aktiviert ist.

sudo systemctl is-enabled postgresql
sudo systemctl status postgresql

Du solltest eine ähnliche Ausgabe wie die folgende erhalten.

postgresql verifizieren

Wenn PostgreSQL läuft, führe den folgenden Befehl aus, um dich an der PostgreSQL-Shell anzumelden.

cd /etc/postgresql
sudo -u postgres psql

Nachdem du dich in der PostgreSQL-Shell angemeldet hast, führe die folgende PostgreSQL-Abfrage aus, um eine neue Rolle/einen neuen Benutzer„mastodon“ zu erstellen. Ändere auch das Standardpasswort durch ein neues, sicheres Passwort.

CREATE USER mastodon CREATEDB;
ALTER USER mastodon PASSWORD 'p4ssw0rd';

Als Nächstes führst du die folgende Abfrage aus, um sicherzustellen, dass der neue PostgreSQL-Benutzer/die neue Rolle erstellt wird. Gib dann„\q“ ein, um die PostgreSQL-Shell zu verlassen.

\du
\q

Die folgende Ausgabe zeigt dir, dass der neue PostgreSQL-Benutzer/die neue PostgreSQL-Rolle „mastodon“ erstellt wurde.

postgresql Rolle/Benutzer einrichten

Nachdem du den PostgreSQL-Benutzer/die PostgreSQL-Rolle erstellt hast, kannst du Mastodon auf deinem Debian-System installieren.

Installation von Mastodon

In diesem Schritt installierst und konfigurierst du Mastodon auf deinem Debian-Server. Außerdem installierst du die Ruby- und JavaScript-Abhängigkeiten für Mastodon. Zu guter Letzt beginnst du mit der Konfiguration von Mastodon für deinen Einsatz. Dazu gehören die Domain-Konfiguration, die Datenbank- und Redis-Konfiguration, die SMTP-Konfiguration und die Konfiguration des Mastodon-Admin-Benutzers.

Bevor du beginnst, melde dich mit dem unten stehenden Befehl als Benutzer „mastodon“ an.

su - mastodon

Lade nun den Mastodon-Quellcode mit dem git-Befehl herunter und ändere den Zweig auf die neueste stabile Version von Mastodon. Zum Zeitpunkt der Erstellung dieses Artikels ist die stabile Version von Mastodon v4.0.2.

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

Mastodon herunterladen

Als Nächstes führst du den folgenden Befehl aus, um die Bereitstellung von Mastodon einzurichten und die Ruby-Abhängigkeiten zu installieren.

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

Die Installation der Ruby-Abhängigkeiten von Mastodon wird einige Zeit in Anspruch nehmen. Unten siehst du eine ähnliche Ausgabe, die du auf deinem Terminal erhalten wirst.

Bereitstellung einrichten und Abhängigkeiten installieren

Nachdem du die Ruby-Abhängigkeiten von Mastodon installiert hast, führe den unten stehenden Befehl yarn aus, um die JavaScript-Abhängigkeiten für Mastodon zu installieren.

yarn install --pure-lockfile

Du erhältst dann eine ähnliche Ausgabe wie diese.

Javascript-Abhängigkeiten installieren

Wenn die Ruby- und JavaScript-Abhängigkeiten installiert sind, kannst du deine Mastodon-Installation einrichten.

Führe den folgenden Befehl aus, um Mastodon für die Produktionsumgebung einzurichten.

RAILS_ENV=production bundle exec rake mastodon:setup

Du wirst nach einigen Konfigurationen von Mastodon gefragt.

  • Der Mastodon-Domänenname? In diesem Beispiel wird die Domain „mastodon.hwdomain.io“ verwendet.
  • Aktiviere den Einzelbenutzermodus? Gib y ein.
  • Docker für Mastodon verwenden? Gib n für nein ein.
  • Gib den PostgreSQL-Benutzer und das Passwort ein und vergewissere dich, dass du die Meldung „Database configuration works!
  • Redis-Konfiguration? Belasse es bei der Standardeinstellung, indem du ENTER drückst.
  • Aktiviere den Upload von Dateien in die Cloud? Gib n für nein ein.
  • Erlaube das Senden von E-Mails von localhost? Gib zur Bestätigung y für ja oder n für nein ein. Dies hängt von deiner Umgebung ab, du kannst auch einen SMTP-Server eines Drittanbieters verwenden.
  • Die Konfiguration speichern? Gib y für ja ein.
  • Für die Erstellung der Datenbank. Gib y ein, um die Mastodon-Datenbank zu erstellen.
  • Gib y ein, um Assets und statische Dateien für Mastodon zu kompilieren.
  • Admin-Benutzer einrichten? Gib den neuen Admin-Benutzer und die E-Mail-Adresse für deine Mastodon-Installation ein. Du bekommst dann das Passwort automatisch auf deinen Bildschirm.

Mastodon-Konfiguration für Domainname, PostgreSQL, Redis-Server und SMTP-Mail-Server.

Mastodon Konfiguration

Mastodon generiert Assets und statische Dateien.

Vermögenswerte generieren

Der Mastodon-Admin-Benutzer wird erstellt und das Passwort wird ebenfalls auf dem Terminalbildschirm generiert.

Admin-Benutzer einrichten

An diesem Punkt hast du die Installation und Konfiguration von Mastodon unter Debian 11 abgeschlossen. In den nächsten Schritten richtest du Mastodon als Systemd-Dienst ein.

Mastodon als Systemd-Dienst starten

Standardmäßig stellt Mastodon ein Beispiel für systemd-Dienstdateien bereit, die im Verzeichnis„/home/mastodon/live/dist/“ verfügbar sind.

Führe den folgenden Befehl aus, um die Mastodon-Dienstdateien in das Verzeichnis„/etc/systemd/system“ zu kopieren.

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

Lade nun den systemd Manager neu, um die Änderungen im systemd zu übernehmen.

sudo systemctl daemon-reload

Starte und aktiviere danach die Mastodon-Dienste mit dem systemctl-Befehl (siehe unten).

sudo systemctl start mastodon-web mastodon-sidekiq mastodon-streaming
sudo systemctl enable mastodon-web mastodon-sidekiq mastodon-streaming

mastodon systemd einrichten

Die Mastodon-Dienste sollten nun laufen und aktiviert sein. Überprüfe dies mit dem unten stehenden systemctl-Befehl.

sudo systemctl status mastodon-web mastodon-sidekiq mastodon-streaming

Du erhältst eine Ausgabe ähnlich wie in den folgenden Screenshots.

Der mastodon-web Dienst läuft und ist aktiviert.

mastodon-web service

Der mastodon-sidekiq-Dienst läuft ebenfalls und ist aktiviert.

mastodon sidekiq service

Der mastodon-Streaming-Dienst läuft und ist aktiviert.

mastodon streaming sertvice

Wenn alle Mastodon-Dienste laufen und aktiviert sind, richtest du als Nächstes Nginx als Reverse-Proxy für Mastodon ein und generierst SSL Letsencrypt.

Einrichten von Nginx als Reverse Proxy

In diesem Schritt richtest du den Nginx-Webserver als Reverse-Proxy für Mastodon ein. Außerdem generierst du SSL Letsencrypt über den Befehl certbot und sicherst Mastodon über eine sichere HTTPS-Verbindung.

Kopiere die Standardkonfiguration des Nginx-Serverblocks von Mastodon nach „/etc/nginx/sites-available/mastodon“. Aktiviere dann die neue Serverblock-Konfiguration „/etc/nginx/sites-available/mastodon„.

sudo cp /home/mastodon/live/dist/nginx.conf /etc/nginx/sites-available/mastodon
sudo ln -s /etc/nginx/sites-available/mastodon /etc/nginx/sites-enabled/mastodon

Als Nächstes öffnest du die Mastodon-Serverblock-Konfigurationsdatei „/etc/nginx/sites-available/mastodon“ mit dem unten stehenden nano-Editor-Befehl.

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

Ändere den Standard-Domänennamen durch deine Mastodon-Domäne. In diesem Beispiel lautet die Domain für Mastodon„mastodon.hwdomain.io„.

```ini

change domain

„`

Speichere die Datei und beende den Editor, wenn du fertig bist.

Als nächstes führst du den folgenden Befehl aus, um SSL-Zertifikate von Letsencrypt zu generieren. Achte darauf, dass du den Domainnamen durch deine Domain ersetzt.

sudo certbot --nginx -d mastodon.hwdomain.io

nginx konfigurieren

Nachdem die SSL-Zertifikate erstellt wurden, führe den folgenden Befehl aus, um die Nginx-Konfiguration zu überprüfen. Wenn du eine Meldung wie „Test erfolgreich – Syntax ok“ erhältst, bedeutet das, dass du die richtige Konfiguration hast. Starte dann den Nginx-Dienst neu, um die Änderungen zu übernehmen.

sudo nginx -t
sudo systemctl restart nginx

nginx-Konfiguration überprüfen

Zum Schluss führst du den unten stehenden systemctl-Befehl aus, um den Nginx-Dienst zu überprüfen und sicherzustellen, dass er läuft und aktiviert ist.

sudo systemctl is-enabled nginx
sudo systemctl status nginx

Du erhältst eine ähnliche Ausgabe wie diese – Der Nginx-Dienst wird derzeit ausgeführt und ist aktiviert. Der Nginx-Dienst wird beim Hochfahren automatisch ausgeführt.

nginx verifizieren

Wenn die Konfiguration abgeschlossen ist, ist dein Mastodon jetzt über den Webbrowser zugänglich.

Zugriff auf die Mastodon-Installation

Öffne deinen Webbrowser und rufe den Domainnamen deiner Mastodon-Installation auf (z. B. https://mastodon.hwdomain.io/). Du siehst nun die Standard-Homepage von Mastodon.

Mastodon Homepage

Klicke auf die Schaltfläche„Anmelden„, um deinen Benutzer zu verifizieren.

Gib nun deinen Admin-Benutzer und dein generiertes Passwort für Mastodon ein. Klicke dann auf „Anmelden“.

mastodon Login-Seite

Du siehst nun die Benutzer-Startseite von Mastodon.

Mastodon Benutzer Dashboard

Klicke auf das Menü „Einstellungen“, um die Seite mit den Benutzereinstellungen aufzurufen. Klicke dann auf das Menü Administration auf der linken Seite. Du solltest dann die Mastodon-Verwaltungsseite unten sehen.

Du kannst die Details des Software-Stacks sehen, den du derzeit in deiner Mastodon-Installation verwendest.

Mastodon-Verwaltung

Fazit

Herzlichen Glückwunsch! Du hast nun die Installation der Mastodon Microblogging-Plattform auf einem Debian 11 Server abgeschlossen. Du hast Mastodon mit PostgreSQL als Datenbankserver und Nginx als Reverse Proxy installiert. Außerdem hast du den Mastodon-Einsatz über sichere HTTPS-Verbindungen abgesichert.

Nach der Installation kannst du nun die Mastodon-Regel für den Verbund einrichten. Du kannst deiner Mastodon-Installation auch eine zusätzliche Sicherheitsebene hinzufügen.

Das könnte dich auch interessieren …