GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> Panels

So installieren Sie Mastodon unter Ubuntu 18.04

In diesem Artikel werden wir Mastodon auf einem Ubuntu 18.04 VPS installieren.

Mastodon ist eine kostenlose Open-Source-Netzwerkplattform, die der berühmten Social-Media-Plattform Twitter sehr ähnlich ist. Im Gegensatz zu Twitter gibt es jedoch keine einzelne zentrale Behörde und es gibt keine Werbung. Mastodon ist in Ruby und JavaScript geschrieben und seine Open-Source-Natur stellt sicher, dass es für jedermann offen bleibt, um es privat und sicher zu verwenden. Jeder kann einen Mastodon-Server erstellen und seine eigenen Communities mit Freunden aufbauen. Darüber hinaus wird Mastodon von mehreren Apps für iOS, Android und andere Plattformen unterstützt und ist über diese verfügbar, sodass Sie überall mit Ihren Freunden in Kontakt bleiben können. Beginnen wir mit der Installation von Mastodon.

Voraussetzungen:

Bevor wir mit der Installation beginnen, müssen wir die Voraussetzungen erfüllen:

  • Ein Server, auf dem Ubuntu 18.04 ausgeführt wird
  • Root-Zugriff oder Benutzer mit sudo-Berechtigungen
  • Ein Domainname (oder eine Subdomain) für den Mastodon-Server, z. your_domain_name.com

Melden Sie sich zunächst mit dem SSH-Protokoll bei Ihrem VPS an.

Wir werden in diesem Tutorial alle Befehle als root ausführen. Wenn Sie also nicht das root-Konto verwenden, wechseln Sie zu root oder verwenden Sie den Befehl sudo vor den Befehlen. Stellen Sie alternativ sicher, dass Sie jeden Befehl mit dem Präfix „sudo“ ausführen.

sudo -i

Schritt 1:Erforderliche Repositories hinzufügen

In diesem Schritt werden wir die erforderlichen Repositories zu unserem System hinzufügen.

Um sicherzustellen, dass curl auf Ihrem System installiert ist, führen Sie den folgenden Befehl aus:

apt install -y curl

Aktivieren Sie das NodeSource-Repository mit dem folgenden Curl-Befehl:

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

Mit den folgenden Befehlen importieren wir den GPG-Schlüssel des Repositorys. Danach aktivieren wir das Yarn APT-Repository:

curl -sS 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

Schritt 2:Pakete installieren

Jetzt werden wir die erforderlichen Systempakete für Mastodon installieren:

apt update

apt install -y \
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 libgdbm5 libgdbm-dev \
nginx redis-server redis-tools postgresql postgresql-contrib \
certbot yarn libidn11-dev libicu-dev libjemalloc-dev

Hier ist eine kurze Erklärung der Abhängigkeiten, die wir gerade installiert haben:

  • Bildzauberei – Mastodon verwendet ImageMagick für bildbezogene Operationen
  • ffmpeg – Mastodon verwendet FFmpeg für die Konvertierung von GIFs in MP4s
  • libprotobuf-dev und protobuf-compiler – Mastodon verwendet diese zur Spracherkennung
  • nginx – Nginx wird als Webserver verwendet
  • redis-* – Mastodon verwendet Redis für seinen In-Memory-Datenstrukturspeicher
  • postgresql-* – Mastodon verwendet PostgreSQL als SQL-Datenbank
  • nodejs – Node wird für die Streaming-API von Mastodon verwendet
  • Garn – Yarn ist ein Node.js-Paketmanager
  • Andere -dev-Pakete, g++ – diese werden für die Kompilierung von Ruby mit ruby-build benötigt.

Schritt 3:Ruby installieren

Ruby ist auch eine der Voraussetzungen für Mastodon und wir werden es in diesem Schritt installieren. Wir werden ‚rbenv‘ verwenden, um die Ruby-Versionen zu verwalten. Da rbenv jedoch für einen bestimmten Linux-Benutzer installiert werden muss, müssen wir als erstes einen neuen Mastodon-Benutzer erstellen. Um den Mastodon-Benutzer zu erstellen, führen wir den folgenden Befehl aus:

adduser --disabled-login mastodon

Wechseln Sie dann mit dem Befehl:

zum Benutzer mastodon
su - mastodon

Und mit den folgenden Befehlen installieren wir rbenv und rbenv-build:

git clone https://github.com/rbenv/rbenv.git ~/.rbenv
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

Nachdem wir die Installation von rbenv und rbenv-build abgeschlossen haben, können wir genau die Ruby-Version installieren, die wir brauchen:

RUBY_CONFIGURE_OPTS=--with-jemalloc rbenv install 2.6.0
rbenv global 2.6.0

Da ruby_2.6.0 mit einem Bundler geliefert wird, der nicht mit der standardmäßigen Gem-Version kompatibel ist, müssen wir das Gem aktualisieren:

gem update --system

Darüber hinaus müssen wir Bundler installieren:

gem install bundler --no-document

Sobald alle Schritte abgearbeitet sind, können wir zum Root-Benutzer zurückkehren:

exit

Schritt 4:PostgreSQL einrichten

Wir erstellen einen PostgreSQL-Benutzer, der vom Linux-Benutzer mit demselben Benutzernamen verwendet werden kann, ohne dass ein separates Passwort erforderlich ist. Dies ist eine sehr einfache Methode, die die „ident“-Authentifizierung verwendet, die eine einfache Einrichtung ermöglicht und lokalen Benutzern den Zugriff auf die Datenbank ohne Passwort ermöglicht.

Sie können die Postgres-Eingabeaufforderung öffnen, indem Sie zum Postgres-Benutzer wechseln und dann psql ausführen Befehl, oder Sie können den folgenden Befehl ausführen:

sudo -u postgres psql

Führen Sie den Befehl aus:

CREATE USER mastodon CREATEDB;

Verlassen Sie die Postgres-Eingabeaufforderung mit:

\q

Schritt 5:Mastodon einrichten

Da wir den Server für die Installation von Mastodon vorbereitet haben, können wir jetzt mit dem Herunterladen des Mastodon-Codes fortfahren. Wechseln Sie zum Mastodon-Benutzer mit dem Befehl:

su - mastodon

Wir werden git verwenden, um die neueste stabile Version von Mastodon zu klonen, indem wir die Befehle ausführen:

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

Schritt 6:Installieren der Ruby- und JavaScript-Abhängigkeiten

Dies sind die letzten Abhängigkeiten, die wir installieren müssen. Wir werden Bundler verwenden, um die restlichen Ruby-Abhängigkeiten zu installieren:

bundle install \
-j$(getconf _NPROCESSORS_ONLN) \
--deployment --without development test

und verwenden Sie Garn, um Node.js-Abhängigkeiten zu installieren:

yarn install --pure-lockfile

Schritt 7:Generieren einer Konfigurationsdatei

Wir können den interaktiven Setup-Assistenten ausführen, um die Konfigurationsdatei zu generieren:

RAILS_ENV=production bundle exec rake mastodon:setup

Jetzt können wir zurück zum Root-Konto wechseln, denn das war alles, was wir mit dem Mastodon-Benutzer zu tun hatten.

exit

Schritt 8:Nginx einrichten

Mastodon wird standardmäßig mit einer Nginx-Konfigurationsvorlage geliefert. Im nächsten Schritt verwenden wir eine Kopie dieser Konfigurationsvorlage und passen sie an unsere Bedürfnisse an.

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

Bearbeiten Sie dann /etc/nginx/sites-available/mastodon.conf und ersetzen Sie your_domain.com durch Ihren tatsächlichen Domainnamen.

nano /etc/nginx/sites-available/mastodon.conf

Wir müssen Nginx neu laden, damit die Änderungen wirksam werden:

systemctl reload nginx

Wenn Ihnen aus irgendeinem Grund versehentlich die Nginx-Datei an diesem Speicherort fehlt, können Sie die folgende Nginx-Konfiguration verwenden und sie Ihren Anforderungen entsprechend ändern.

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 {
listen 80;
listen [::]:80;
server_name your_domain.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 your_domain.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/your_domain.com/fullchain.pem;
# ssl_certificate_key /etc/letsencrypt/live/your_domain.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_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;
}

Denken Sie daran, die Datei zu speichern und zu beenden und Nginx wie oben gezeigt neu zu starten, um die neue Datei zu bestätigen.

Schritt 9:Ein SSL-Zertifikat erwerben

Wir verwenden Let’s Encrypt, um ein kostenloses SSL-Zertifikat zu generieren:

certbot certonly --webroot -d your_domain.com -w /home/mastodon/live/public/

Bitte vergessen Sie nicht, your_domain.com durch Ihren tatsächlichen Domainnamen zu ersetzen. Wir können jetzt die /etc/nginx/sites-available/mastodon.conf bearbeiten Konfigurationsdatei mit:

nano /etc/nginx/sites-available/mastodon.conf

Entkommentieren und ändern Sie das ssl_certificate und ssl_certificate_key Linien. Sobald wir die Bearbeitung der Konfigurationsdatei abgeschlossen haben, müssen wir Nginx erneut laden, damit unsere Änderungen wirksam werden:

systemctl reload nginx

Wenn Sie zu diesem Zeitpunkt versuchen, in Ihrem bevorzugten Webbrowser auf Ihre Domain zuzugreifen, können Sie Mastodon nicht sehen. Dies liegt daran, dass unser Mastodon-Prozess noch nicht gestartet wurde.

Schritt 10:Systemdienste einrichten

In diesem Schritt starten und aktivieren wir den Mastodon-Dienst auf dem Server. Wir können einfach die systemd-Dienstvorlagen aus dem Mastodon-Verzeichnis kopieren:

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

Wir können überprüfen und sicherstellen, dass der Benutzername und die Pfade in diesen Dateien korrekt sind:

  • /etc/systemd/system/mastodon-web.service
  • /etc/systemd/system/mastodon-sidekiq.service
  • /etc/systemd/system/mastodon-streaming.service

Schließlich können wir die Mastodon-Systemd-Dienste starten und aktivieren:

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

Wenn die systemd-Dateien zufällig fehlen, können Sie die folgenden Konfigurationen verwenden. Sie müssen drei systemd-Mastodon-Dienstdateien erstellen.

Geben Sie für den Mastodon-Webworker-Dienst Folgendes ein:

nano /etc/systemd/system/mastodon-web.service

Fügen Sie den folgenden Code ein:

[Unit]
Description=mastodon-web
After=network.target

[Service]
Type=simple
User=mastodon
WorkingDirectory=/home/mastodon/live
Environment="RAILS_ENV=production"
Environment="PORT=3000"
ExecStart=/home/mastodon/.rbenv/shims/bundle exec puma -C config/puma.rb
ExecReload=/bin/kill -SIGUSR1 $MAINPID
TimeoutSec=15
Restart=always

[Install]
WantedBy=multi-user.target

Dann speichern und beenden.

Für den Mastodon-Hintergrundwarteschlangendienst:

nano /etc/systemd/system/mastodon-sidekiq.service

Fügen Sie den folgenden Code ein:

[Unit]
Description=mastodon-sidekiq
After=network.target

[Service]
Type=simple
User=mastodon
WorkingDirectory=/home/mastodon/live
Environment="RAILS_ENV=production"
Environment="DB_POOL=25"
Environment="MALLOC_ARENA_MAX=2"
ExecStart=/home/mastodon/.rbenv/shims/bundle exec sidekiq -c 25
TimeoutSec=15
Restart=always

[Install]
WantedBy=multi-user.target

Dann speichern und beenden Sie die Datei.

Für den Mastodon-Streaming-API-Dienst:

nano /etc/systemd/system/mastodon-streaming.service

Fügen Sie den folgenden Code ein:

[Unit]
Description=mastodon-streaming
After=network.target

[Service]
Type=simple
User=mastodon
WorkingDirectory=/home/mastodon/live
Environment="NODE_ENV=production"
Environment="PORT=4000"
Environment="STREAMING_CLUSTER_NUM=1"
ExecStart=/usr/bin/node ./streaming
TimeoutSec=15
Restart=always

[Install]
WantedBy=multi-user.target

Speichern und beenden.

Sie müssen die Systemctl-Daemon-Liste neu laden, damit die Änderungen wirksam werden:

systemctl daemon-reload

Sie sollten jetzt in der Lage sein, die Mastodon-Systemd-Dienste wie zuvor zu starten und zu aktivieren.

Herzliche Glückwünsche! Sie haben Mastodon erfolgreich auf Ihrem Server installiert. Sie können darauf zugreifen, indem Sie zu https://your_domain.com/.

gehen

In diesem Artikel haben wir Ihnen gezeigt, wie Sie Mastodon unter Ubuntu 18.04 installieren. Jetzt können Sie dieses Wissen nutzen und mit dieser wunderbaren Anwendung Ihr privates soziales Netzwerk erstellen.

Wenn Sie einer unserer Managed Ubuntu Hosting-Kunden sind, müssen Sie Mastodon natürlich nicht auf Ihrem Ubuntu 18.04 VPS installieren – fragen Sie einfach unsere Administratoren, lehnen Sie sich zurück und entspannen Sie sich. Unsere Admins werden Mastodon auf Ubuntu 18.04 umgehend für Sie installieren.

PS. Wenn Ihnen dieser Beitrag zur Installation von Mastodon auf einem Ubuntu 18.04 VPS gefallen hat, teilen Sie ihn bitte mit Ihren Freunden in den sozialen Netzwerken über die Schaltflächen unten oder hinterlassen Sie einfach einen Kommentar im Kommentarbereich. Danke.


Panels
  1. So installieren Sie ATutor unter Ubuntu 14.04

  2. So installieren Sie Traq unter Ubuntu 16.04

  3. So installieren Sie Pip unter Ubuntu 16.04

  4. So installieren Sie WildFly unter Ubuntu 16.04

  5. So installieren Sie Go unter Ubuntu 18.04

So installieren Sie R unter Ubuntu 20.04

So installieren Sie Go unter Ubuntu 18.04

So installieren Sie R unter Ubuntu 18.04

So installieren Sie qt unter Ubuntu 20.04

So installieren Sie Go in Ubuntu 20.04

So installieren Sie Go unter Ubuntu 22.04