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.
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.
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
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.
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.
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.
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.
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.
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
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.
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
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.
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.
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)
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.
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.
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 generiert Assets und statische Dateien.
Der Mastodon-Admin-Benutzer wird erstellt und das Passwort wird ebenfalls auf dem Terminalbildschirm generiert.
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
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.
Der mastodon-sidekiq-Dienst läuft ebenfalls und ist aktiviert.
Der mastodon-Streaming-Dienst läuft und ist aktiviert.
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
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
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.
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.
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“.
Du siehst nun die Benutzer-Startseite von Mastodon.
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.
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.