Wie man die Mastodon Social Networking-Plattform auf Debian 10 installiert

Mastodon ist eine Open-Source-Plattform für soziale Netzwerke, die Twitter sehr ähnlich ist. Sie können anderen Benutzern folgen und Nachrichten und Bilder mit Mastodon posten. Es ist in Ruby und JavaScript geschrieben, und jeder kann es privat und sicher benutzen. Mastodon bietet auch eine Anwendung für verschiedene Plattformen wie Android und iOS.

In diesem Tutorial werden wir Ihnen zeigen, wie Sie Mastodon unter Debian 10 installieren.

Anforderungen

  • Ein Server, auf dem Debian 10 läuft.
  • Ein Root-Passwort wird auf Ihrem Server konfiguriert.
  • Ein gültiger Domänenname wird mit Ihrer Server-IP-Adresse angezeigt. In diesem Tutorial werden wir test.linuxbuz.com verwenden.

Erste Schritte

Zunächst wird empfohlen, Ihr System mit der neuesten Version zu aktualisieren. Sie können dies tun, indem Sie den folgenden Befehl ausführen:

apt-get update -y
 apt-get upgrade -y

Nachdem Sie Ihr System aktualisiert haben, müssen Sie einige von Mastodon benötigte Abhängigkeiten installieren. Sie können sie alle mit dem folgenden Befehl installieren:

apt-get install software-properties-common dirmngr apt-transport-https ca-certificates curl gcc g++ make imagemagick ffmpeg libpq-dev libxml2-dev libxslt1-dev file git-core libprotobuf-dev protobuf-compiler pkg-config autoconf bison build-essential libssl-dev libyaml-dev libreadline-dev libidn11-dev libicu-dev libjemalloc-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm-dev -y

Sobald alle Abhängigkeiten installiert sind, können Sie mit dem nächsten Schritt fortfahren.

Installieren Sie Node.js

Mastodon erfordert, dass Node.js Version 8.x und Yarn auf Ihrem System installiert sind. Um Node.js zu installieren, fügen Sie das Node.js-Repository mit folgendem Befehl zu Ihrem Server hinzu:

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

Sobald das Repository hinzugefügt wurde, installieren Sie Node.js Version 8 mit dem folgenden Befehl:

apt-get install nodejs -y

Als nächstes laden Sie den GPG-Schlüssel von Yarn herunter, fügen ihn hinzu und aktivieren das Repository mit dem folgenden Befehl:

curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
 echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list

Aktualisieren Sie nach dem Hinzufügen das Repository und installieren Sie Yarn mit den folgenden Befehlen:

apt-get update -y
 apt-get install yarn -y

Wenn Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Installieren und Konfigurieren von PostgreSQL

Mastodon verwendet PostgreSQL zum Speichern seiner Daten. Sie können die neueste Version von PostgreSQL mit dem folgenden Befehl installieren:

apt-get install postgresql postgresql-contrib -y

Nach der Installation melden Sie sich bei PostgreSQL mit folgendem Befehl an:

su - postgres
 [email protected]:~$ psql 
 psql (11.5 (Debian 11.5-1+deb10u1))
 Type "help" for help.

Als nächstes erstellen Sie einen Benutzer für Mastodon mit dem folgenden Befehl:

postgres=# CREATE USER mastodon CREATEDB;

Als nächstes verlassen Sie die PostgreSQL-Shell mit dem folgenden Befehl:

postgres=#exit

Ruby installieren

Mastodon verwendet Ruby on Rails für das Back-End. Zuerst müssen Sie einen neuen Systembenutzer anlegen, um den Mastodon-Server zu betreiben.

Sie können sie mit dem folgenden Befehl erstellen:

adduser --disabled-login --gecos 'Mastodon Server' mastodon

Sobald es erstellt ist, melden Sie sich mit folgendem Befehl beim Benutzer mastodon an:

su - mastodon

Als nächstes klonen Sie das rbenv-Repository mit dem folgenden Befehl:

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

Als nächstes richten Sie rbenv und ruby-build mit den folgenden Befehlen ein:

cd ~/.rbenv && src/configure && make -C src
 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

Wenn Sie fertig sind, installieren Sie die neueste Version von Ruby mit dem folgenden Befehl:

RUBY_CONFIGURE_OPTS=--with-jemalloc rbenv install 2.6.1

Nach der Installation sollten Sie die folgende Ausgabe erhalten:

Downloading ruby-2.6.1.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.1.tar.bz2
Installing ruby-2.6.1...

Installed ruby-2.6.1 to /home/mastodon/.rbenv/versions/2.6.1

Als nächstes stellen Sie den global verfügbaren Ruby mit folgendem Befehl ein:

rbenv global 2.6.1

Als nächstes aktualisieren Sie das Gem und installieren den Bundler mit dem folgenden Befehl:

gem update --system
 gem install bundler --no-document

Wenn Sie fertig sind, können Sie den Ruby mit dem folgenden Befehl überprüfen:

ruby --version

Mastodon konfigurieren

Melden Sie sich zunächst beim mastodon-Benutzer an und laden Sie das mastodon git-Repository mit dem folgenden Befehl herunter:

su - mastodon
git clone https://github.com/tootsuite/mastodon.git ~/live
 cd ~/live

Als nächstes checken Sie den neuesten Zweig mit dem folgenden Befehl aus:

git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)

Sie sollten die folgende Ausgabe erhalten:

Note: checking out 'v2.9.3'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b 

HEAD is now at 06f906aca Bump version to 2.9.3

Installieren Sie dann alle von Ruby und Node.js benötigten Abhängigkeiten mit dem folgenden Befehl:

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

Richten Sie nun das Mastodon mit dem folgenden Befehl ein:

RAILS_ENV=production bundle exec rake mastodon:setup

Während des Einrichtungsvorgangs werden Ihnen verschiedene Fragen gestellt. Beantworten Sie alle Fragen wie unten gezeigt:

Your instance is identified by its domain name. Changing it afterward will break things.
Domain name: test.linuxbuz.com

Single user mode disables registrations and redirects the landing page to your public profile.
Do you want to enable single user mode? No

Are you using Docker to run Mastodon? no

PostgreSQL host: /var/run/postgresql
PostgreSQL port: 5432
Name of PostgreSQL database: mastodon_production
Name of PostgreSQL user: mastodon
Password of PostgreSQL user: 
Database configuration works! ????

Redis host: localhost
Redis port: 6379
Redis password: 
Redis configuration works! ????

Do you want to store uploaded files on the cloud? No

Do you want to send e-mails from localhost? yes
E-mail address to send e-mails "from": Mastodon <[email protected]>
Send a test e-mail with this configuration right now? no

This configuration will be written to .env.production
Save configuration? Yes

Now that configuration is saved, the database schema must be loaded.
If the database already exists, this will erase its contents.
Prepare the database now? Yes

All done! You can now power on the Mastodon server ????

Do you want to create an admin user straight away? Yes
Username: admin
E-mail: [email protected]
You can login with the password: a9a78a4c2eb442d72eb946f94ebe9a00
You can change your password once you login.

Wenn Sie fertig sind, verlassen Sie den Mastodon-Benutzer mit dem folgenden Befehl:

exit

Konfigurieren Sie Nginx für Mastodon

Als nächstes müssen Sie Nginx und Certbot auf Ihrem System installieren. Standardmäßig ist die neueste Version von Certbot nicht im Debian 10-Standard-Repository verfügbar. Daher müssen Sie das Certbot-Repository zu Ihrem System hinzufügen.

Sie können sie mit dem folgenden Befehl hinzufügen:

add-apt-repository ppa:certbot/certbot

Aktualisieren Sie als nächstes das Repository und installieren Sie Certbot mit Nginx, indem Sie den folgenden Befehl ausführen:

apt-get update -y
 apt-get install nginx python-certbot-nginx -y

Sobald beide Pakete installiert sind, kopieren Sie die Nginx-Konfigurationsdatei aus dem Mastodon-Verzeichnis nach Nginx mit folgendem Befehl:

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

Als nächstes aktivieren Sie die Konfigurationsdatei des virtuellen Mastodon-Hosts mit dem folgenden Befehl:

ln -s /etc/nginx/sites-available/mastodon.conf /etc/nginx/sites-enabled/

Die Konfigurationsdatei des virtuellen Mastodon-Hosts wird standardmäßig mit der Domäne example.com konfiguriert. Sie müssen also die Domäne example.com in der Datei mastodon.conf durch Ihren Domänennamen ersetzen. Sie können sie mit dem folgenden Befehl ersetzen:

sed -i 's/example.com/test.linuxbuz.com/g' /etc/nginx/sites-enabled/mastodon.conf

Als nächstes starten Sie den Nginx-Dienst neu, um die Konfiguration anzuwenden:

systemctl restart nginx

Laden Sie als nächstes das kostenlose SSL-Zertifikat Let’s Encrypt herunter und konfigurieren Sie Nginx zur Verwendung dieses Zertifikats, indem Sie den Befehl certbot ausführen:

certbot --nginx -d test.linuxbuz.com

Dadurch wird ein kostenloses Let’s Encrypt SSL-Zertifikat heruntergeladen und das Nginx für Ihre Domain test.linuxbuz.com konfiguriert.

Ihre Nginx-Konfigurationsdatei für das Mastodon sieht nun wie folgt aus:

cat /etc/nginx/sites-enabled/mastodon.conf

Ausgabe:

map $http_upgrade $connection_upgrade {
  default upgrade;
  ''      close;
}

proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=CACHE:10m inactive=7d max_size=1g;

server {
    if ($host = test.linuxbuz.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


  listen 80;
  listen [::]:80;
  server_name test.linuxbuz.com;
  root /home/mastodon/live/public;
  location /.well-known/acme-challenge/ { allow all; }
  location / { return 301 https://$host$request_uri; }


}

server {
  listen 443 ssl http2;
  listen [::]:443 ssl http2;
  server_name test.linuxbuz.com;

  ssl_protocols TLSv1.2;
  ssl_ciphers HIGH:!MEDIUM:!LOW:!aNULL:!NULL:!SHA;
  ssl_prefer_server_ciphers on;
  ssl_session_cache shared:SSL:10m;

  # Uncomment these lines once you acquire a certificate:
  # ssl_certificate     /etc/letsencrypt/live/test.linuxbuz.com/fullchain.pem;
  # ssl_certificate_key /etc/letsencrypt/live/test.linuxbuz.com/privkey.pem;

  keepalive_timeout    70;
  sendfile             on;
  client_max_body_size 80m;

  root /home/mastodon/live/public;

  gzip on;
  gzip_disable "msie6";
  gzip_vary on;
  gzip_proxied any;
  gzip_comp_level 6;
  gzip_buffers 16 8k;
  gzip_http_version 1.1;
  gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

  add_header Strict-Transport-Security "max-age=31536000";

  location / {
    try_files $uri @proxy;
  }

  location ~ ^/(emoji|packs|system/accounts/avatars|system/media_attachments/files) {
    add_header Cache-Control "public, max-age=31536000, immutable";
    add_header Strict-Transport-Security "max-age=31536000";
    try_files $uri @proxy;
  }

  location /sw.js {
    add_header Cache-Control "public, max-age=0";
    add_header Strict-Transport-Security "max-age=31536000";
    try_files $uri @proxy;
  }

  location @proxy {
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto https;
    proxy_set_header Proxy "";
    proxy_pass_header Server;

    proxy_pass http://127.0.0.1:3000;
    proxy_buffering on;
    proxy_redirect off;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;

    proxy_cache CACHE;
    proxy_cache_valid 200 7d;
    proxy_cache_valid 410 24h;
    proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
    add_header X-Cached $upstream_cache_status;
    add_header Strict-Transport-Security "max-age=31536000";

    tcp_nodelay on;
  }

  location /api/v1/streaming {
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto https;
    proxy_set_header Proxy "";

    proxy_pass http://127.0.0.1:4000;
    proxy_buffering off;
    proxy_redirect off;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;

    tcp_nodelay on;
  }

  error_page 500 501 502 503 504 /500.html;

    ssl_certificate /etc/letsencrypt/live/test.linuxbuz.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/test.linuxbuz.com/privkey.pem; # managed by Certbot
}

Systemdienst für Mastodon konfigurieren

Nginx ist nun installiert und konfiguriert, um Mastodon zu bedienen. Als nächstes müssen Sie die systemdatei für Mastodon konfigurieren. Kopieren Sie dazu die systemd Service-Vorlagen aus dem Mastodon-Verzeichnis:

cp /home/mastodon/live/dist/mastodon-web.service /etc/systemd/system/
 cp /home/mastodon/live/dist/mastodon-sidekiq.service /etc/systemd/system/
 cp /home/mastodon/live/dist/mastodon-streaming.service /etc/systemd/system/

Als nächstes starten Sie alle Dienste und aktivieren sie nach dem Neustart mit dem folgenden Befehl:

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

Zugriff auf die Mastodon-Webschnittstelle

Öffnen Sie nun Ihren Webbrowser und geben Sie die URL https://test.linuxbuz.com ein. Sie werden auf die folgende Seite weitergeleitet:

Mastodon-Anmeldung

Geben Sie nun Ihre Admin-E-Mail und Ihr Passwort ein, das Sie zuvor erstellt haben, und klicken Sie auf die Schaltfläche Anmelden. Sie sollten die folgende Seite sehen:

Erste Schritte bei der Verwendung von Mastodon

Klicken Sie jetzt auf die Schaltfläche LET’S GO! Sie sollten die folgende Seite sehen:

Lass uns gehen

Klicken Sie nun auf die Schaltfläche Next. Sie sollten die folgende Seite sehen:

Mastodon-Tutorial

Klicken Sie nun auf die Schaltfläche TUTORIAL BEENDEN! Sie sollten das Mastodon-Dashboard auf der folgenden Seite sehen:

Mastodon Dashboard

Herzlichen Glückwunsch! Sie haben Mastodon erfolgreich auf dem Debian-10-Server installiert und konfiguriert. Sie können nun einfach Ihr eigenes soziales Netzwerk mit Mastodon erstellen. Zögern Sie nicht, mich zu fragen, wenn Sie Fragen haben.

Das könnte Dich auch interessieren …