GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So installieren Sie die Pleroma Social Network Platform unter Ubuntu 20.04

Pleroma ist eine föderierte Open-Source-Social-Networking-Plattform, die mit Mastodon und anderen ActivityPub-Plattformen kompatibel ist. Es ist Teil des Fediverse, eines föderierten Netzwerks von Instanzen, die über ein gemeinsames Protokoll kommunizieren können. Ein einziges Konto auf einer Instanz kann mit dem gesamten Fediverse-Netzwerk kommunizieren.

Diese Anleitung zeigt Ihnen, wie Sie Ihre eigene Pleroma-Instanz erstellen, indem Sie sie auf einem Ubuntu 20.04-basierten Server installieren.

Voraussetzungen

  • Ein Server mit Ubuntu 20.04.

  • Ein Nicht-Root-Sudo-Benutzer.

  • Stellen Sie sicher, dass alles aktualisiert ist.

    $ sudo apt update
    $ sudo apt upgrade
    
  • Einige Pakete und Abhängigkeiten, die Sie vor der Installation von Pleroma benötigen.

    $ sudo apt install wget curl gnupg2 ca-certificates lsb-release gnupg zip libncurses5 libmagic-dev -y
    

Schritt 1 - Firewall konfigurieren

Der erste Schritt besteht darin, die Firewall zu konfigurieren. Ubuntu wird standardmäßig mit ufw (Uncomplicated Firewall) geliefert.

Überprüfen Sie, ob die Firewall ausgeführt wird.

$ sudo ufw status

Sie sollten die folgende Ausgabe erhalten.

Status: inactive

SSH-Port zulassen, damit die Firewall die aktuelle Verbindung beim Aktivieren nicht unterbricht.

$ sudo ufw allow OpenSSH

Lassen Sie auch HTTP- und HTTPS-Ports zu.

$ sudo ufw allow 80
$ sudo ufw allow 443

Aktivieren Sie die Firewall

$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

Überprüfen Sie den Status der Firewall erneut.

$ sudo ufw status

Sie sollten eine ähnliche Ausgabe sehen.

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
80                         ALLOW       Anywhere
443                        ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
80 (v6)                    ALLOW       Anywhere (v6)
443 (v6)                   ALLOW       Anywhere (v6)

Schritt 2 – PostgreSQL installieren

Fügen Sie das offizielle PostgreSQL-Repository zur Liste der Ubuntu-Quellen hinzu.

$ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

Fügen Sie den GPG-Schlüssel des Repositorys hinzu.

$ wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

Aktualisieren Sie die Liste der Systempakete.

$ sudo apt update

Schritt 3 – Nginx installieren

Ubuntu 20.04 wird standardmäßig mit der stabilen Version von Nginx 18 ausgeliefert.

$ sudo apt install nginx

Schritt 4 - Pleroma installieren

Diese Anleitung installiert Pleroma von einer OTP-Version. Der erste Schritt besteht darin, einen Pleroma-Benutzer ohne Anmeldefunktionen zu erstellen. Es wird auch das Home-Verzeichnis dafür unter /opt/pleroma erstellen .

$ sudo adduser --system --shell  /bin/false --home /opt/pleroma pleroma

Wechseln Sie zum Pleroma-Benutzer. Aber zuerst müssen wir zum Root-Benutzer wechseln.

$ sudo su
$ su pleroma -s $SHELL -l

Laden Sie Pleroma in einen temporären Speicherort herunter.

$ curl "https://git.pleroma.social/api/v4/projects/2/jobs/artifacts/stable/download?job=amd64" -o /tmp/pleroma_amd64.zip

Entpacken Sie das Archiv.

$ unzip /tmp/pleroma_amd64.zip -d /tmp/

Installieren Sie Pleroma.

$ mv /tmp/release/* /opt/pleroma

Löschen Sie die temporären Dateien.

$ rm -rf /tmp/pleroma_amd64.zip /tmp/release

Wechseln Sie zum Root-Benutzer.

$ exit

Erstellen Sie Verzeichnisse für die Uploads und öffentlichen Dateien.

$ mkdir -p /var/lib/pleroma/{uploads,static}

Erstellen Sie das Verzeichnis für die Pleroma-Konfiguration.

$ mkdir -p /etc/pleroma

Ändern Sie den Besitz von Pleroma-Verzeichnissen auf den Pleroma-Benutzer.

$ chown -R pleroma /var/lib/pleroma /etc/pleroma

Schritt 5 - Pleroma konfigurieren

Wechseln Sie zurück zum Pleroma-Benutzer.

$ su pleroma -s /bin/bash -l

Führen Sie den folgenden Befehl aus, um die Konfigurationsdatei für die Pleroma-Instanz zu generieren.

$ ./bin/pleroma_ctl instance gen --output /etc/pleroma/config.exs --output-psql /tmp/setup_db.psql

Ihnen werden einige Fragen zur Einrichtung von Pleroma gestellt. Wenn Sie eine Warnung erhalten, dass die Konfigurationsdatei nicht gefunden werden konnte, ignorieren Sie sie.

[email protected]:~$ ./bin/pleroma_ctl instance gen --output /etc/pleroma/config.exs --output-psql /tmp/setup_db.psql
!!! /etc/pleroma/config.exs not found! Please ensure it exists and that PLEROMA_CONFIG_PATH is unset or points to an existing file

What domain will your instance use? (e.g pleroma.soykaf.com) [] example.com

What is the name of your instance? (e.g. The Corndog Emporium) [nspeaks.com] Howtoforge Pleroma
What is your admin email address? [] [email protected]
What email address do you want to use for sending email notifications? [[email protected]] <Press Enter>
Do you want search engines to index your site? (y/n) [y] y
Do you want to store the configuration in the database (allows controlling it from admin-fe)? (y/n) [n] n
What is the hostname of your database? [localhost] localhost
What is the name of your database? [pleroma] pleroma
What is the user used to connect to your database? [pleroma] pleroma
What is the password used to connect to your database? [autogenerated] yourpassword
Would you like to use RUM indices? [n] n
What port will the app listen to (leave it if you are using the default setup with nginx)? [4000] <Press Enter>
What ip will the app listen to (leave it if you are using the default setup with nginx)? [127.0.0.1] <Press Enter>
What directory should media uploads go in (when using the local uploader)? [/var/lib/pleroma/uploads] <Press Enter>
What directory should custom public files be read from (custom emojis, frontend bundle overrides, robots.txt, etc.)? [/var/lib/pleroma/static] <Press Enter>
Do you want to strip location (GPS) data from uploaded images? This requires exiftool, it was detected as not installed, please install it if you answer yes. (y/n) [n] n
Do you want to anonymize the filenames of uploads? (y/n) [n] n
Do you want to deduplicate uploaded files? (y/n) [n] y
Writing config to /etc/pleroma/config.exs.
Writing the postgres script to /tmp/setup_db.psql.
Writing /var/lib/pleroma/static/robots.txt.

 All files successfully written! Refer to the installation instructions for your platform for next steps.

Sie können je nach Ihren Anforderungen unterschiedliche Optionen auswählen. Wählen Sie ein sicheres Passwort für Ihre Datenbank. Wenn Sie Ihre Instanz über das Administrationspanel konfigurieren möchten, wählen Sie y für die Frage zum Speichern der Konfiguration in der Datenbank.

Wechseln Sie zum standardmäßigen PostgreSQL-Benutzer, der bei der Installation von PostgreSQL erstellt wurde.

$ exit
$ su postgres -s /bin/bash -l

Erstellen Sie die Datenbank mit der von Pleroma bereitgestellten SQL-Datei.

$ psql -f /tmp/setup_db.psql

Wechseln Sie zurück zum Pleroma-Benutzer.

$ exit
$ su pleroma -s /bin/bash -l

Initialisieren Sie die gerade erstellte Datenbank.

$ ./bin/pleroma_ctl migrate

Zum Root-Benutzer wechseln.

$ exit

Schritt 6 – SSL mit Let's Encrypt installieren

Um ein SSL-Zertifikat mit Let's Encrypt zu installieren, müssen wir das Certbot-Tool herunterladen.

Um Certbot zu installieren, verwenden wir das Snapd-Paketinstallationsprogramm. Das offizielle Repository von Certbot ist veraltet und das Certbot-Paket von Ubuntu ist mehr als ein Jahr alt. Snapd enthält immer die neueste stabile Version von Certbot und Sie sollten diese verwenden. Glücklicherweise ist auf Ubuntu 20.04 Snapd vorinstalliert.

Stellen Sie sicher, dass Ihre Version von Snapd auf dem neuesten Stand ist.

$ snap install core 
$ snap refresh core

Entfernen Sie alle alten Versionen von Certbot.

$ apt remove certbot

Certbot installieren.

$ snap install --classic certbot

Verwenden Sie den folgenden Befehl, um sicherzustellen, dass der Certbot-Befehl ausgeführt werden kann, indem Sie einen symbolischen Link zu /usr/bin erstellen Verzeichnis.

$ ln -s /snap/bin/certbot /usr/bin/certbot

Beenden Sie den Nginx-Dienst.

$ systemctl stop nginx

Generieren Sie ein SSL-Zertifikat.

$ certbot certonly --standalone --preferred-challenges http -d example.com

Der obige Befehl lädt ein Zertifikat in /etc/letsencrypt/live/example.com herunter Verzeichnis auf Ihrem Server.

Erstellen Sie ein Challenge-Web-Root-Verzeichnis für die automatische Verlängerung von Let's Encrypt.

$ mkdir -p /var/lib/letsencrypt

Erstellen Sie einen Cron-Job, um das SSL zu erneuern. Es wird jeden Tag ausgeführt, um das Zertifikat zu überprüfen und bei Bedarf zu erneuern. Erstellen Sie dazu zunächst die Datei /etc/cron.daily/certbot-renew und zum Bearbeiten öffnen.

$ nano /etc/cron.daily/certbot-renew

Fügen Sie den folgenden Code ein.

#!/bin/sh
certbot renew --cert-name example.com --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx"

Speichern Sie die Datei, indem Sie Strg + X drücken und geben Sie Y ein wenn Sie dazu aufgefordert werden.

Ändern Sie die Berechtigungen für die Aufgabendatei, um sie ausführbar zu machen.

$ chmod +x /etc/cron.daily/certbot-renew

Schritt 7 – Nginx konfigurieren

Pleroma wird mit einer standardmäßigen Nginx-Konfigurationsdatei ausgeliefert. Installieren Sie es, indem Sie es nach /etc/nginx/sites-available verschieben Verzeichnis.

$ mv /opt/pleroma/installation/pleroma.nginx /etc/nginx/sites-available/pleroma.conf

Ersetzen Sie alle Vorkommen von example.tld mit Ihrer Domain.

$ sed -i 's/example\.tld/example.com/g' /etc/nginx/sites-available/pleroma.conf

Öffnen Sie die Konfigurationsdatei zum Bearbeiten.

$ nano /etc/nginx/sites-available/pleroma.conf

Entkommentieren Sie location ~ /\.well-known/acme-challenge Block. Der server Block Ihrer Konfigurationsdatei sollte wie folgt aussehen.

server {
    server_name    example.com;

    listen         80;
    listen         [::]:80;

    location ~ /\.well-known/acme-challenge {
        root /var/lib/letsencrypt/;
    }

    location / {
        return         301 https://$server_name$request_uri;
    }
}

Speichern Sie die Datei, indem Sie Strg + X drücken und geben Sie Y ein wenn Sie dazu aufgefordert werden.

Aktivieren Sie die Pleroma Nginx-Konfiguration, indem Sie einen Symlink erstellen.

$ ln -s /etc/nginx/sites-available/pleroma.conf /etc/nginx/sites-enabled/pleroma.conf

Aktivieren Sie den Nginx-Server, um ihn beim Booten zu starten.

$ systemctl enable nginx.

Starten Sie den Nginx-Server.

$ systemctl start nginx

Installieren Sie die in der Distribution bereitgestellte Pleroma-Systemd-Service-Unit-Datei.

$ mv /opt/pleroma/installation/pleroma.service /etc/systemd/system/pleroma.service

Aktivieren und starten Sie den Pleroma-Dienst.

$ systemctl enable pleroma
$ systemctl start pleroma

Es kann etwa 30 Sekunden dauern, bis die Pleroma-Site verfügbar ist. Jetzt können Sie https://example.com öffnen in Ihrem Webbrowser, um Pleroma zu besuchen. Es sollte wie folgt aussehen.

Schritt 8 – Pleroma konfigurieren

Erstellen Sie einen Admin-Benutzer

Sie können einen administrativen Benutzer über die Befehlszeile erstellen. Wechseln Sie zuerst zum Pleroma-Benutzer.

$ su pleroma -s /bin/bash -l

Erstellen Sie einen Admin-Benutzer. Ersetzen Sie example mit Ihrem Nutzernamen, [email protected] mit Ihrer E-Mail-Adresse und password123 mit einem starken Passwort.

$ ./bin/pleroma_ctl user new example [email protected] --password password123 --admin

Wechseln Sie zurück zum Root-Benutzer, wenn Sie fertig sind.

$ exit

Einstellungen ändern

Wenn Sie Nein als Antwort zum Speichern der Konfiguration in der Datenbank gewählt haben , das heißt, Sie können die Einstellungen im Administrationsbereich von Pleroma nicht ändern. Um die Einstellungen zu ändern, müssen Sie /etc/pleroma/config.exs ändern Datei.

$ nano /etc/pleroma/config.exs

Wenn Sie mit der Bearbeitung der Datei fertig sind, müssen Sie auch den Pleroma-Dienst neu starten. Möglicherweise müssen Sie einige Zeit warten, bis der Dienst fortgesetzt wird.

$ systemctl restart pleroma

Aktualisierung von Pleroma

Um Pleroma zu aktualisieren, ist der erste Schritt, die neue Version herunterzuladen. Führen Sie den folgenden Befehl aus, um die neue Version von Pleroma herunterzuladen.

$ su pleroma -s $SHELL -lc "./bin/pleroma_ctl update"

Pleroma-Instanz stoppen.

$ systemctl stop pleroma

Der nächste Schritt ist die Migration der Datenbank.

$ su pleroma -s $SHELL -lc "./bin/pleroma_ctl migrate"

Starten Sie die Pleroma-Instanz.

$ systemctl start pleroma

Pleroma sichern

Beenden Sie den Pleroma-Dienst.

$ systemctl stop pleroma

Wechseln Sie in das Verzeichnis von Pleroma.

$ cd /opt/pleroma

Führen Sie den folgenden Befehl aus, um die Datenbank zu sichern.

$ sudo -Hu postgres pg_dump -d <pleroma_db> --format=custom -f </path/to/backup_location/pleroma.pgdump>

Kopieren Sie die Dateien pleroma.pgdump , config/prod.secret.exs , config/setup_db.sql und die uploads Ordner zu Ihrem Sicherungsziel.

Starten Sie den Pleroma-Dienst erneut.

$ systemctl start pleroma

Pleroma wird wiederhergestellt

Um Pleroma wiederherzustellen, müssen Sie Pleroma neu installieren und sicherstellen, dass der Pleroma-Dienst nicht funktioniert.

Kopieren Sie dann die gesicherten Dateien zurück an ihren ursprünglichen Speicherort.

Löschen Sie die vorhandene Datenbank und den Benutzer mit dem folgenden Befehl.

$ sudo -Hu postgres psql -c 'DROP DATABASE <pleroma_db>;';` `sudo -Hu postgres psql -c 'DROP USER <pleroma_db>;'

Stellen Sie das Datenbankschema und die Pleroma Postgres-Rolle mit der gesicherten setup_db.sql wieder her Datei.

$ sudo -Hu postgres psql -f config/setup_db.psql

Stellen Sie als Nächstes die Daten der Pleroma-Instanz wieder her.

$ sudo -Hu postgres pg_restore -d <pleroma_db> -v -1 </path/to/backup_location/pleroma.pgdump>

Migrieren Sie die Datenbank, wenn noch Migrationen durchgeführt werden müssen, falls Sie zu einer neueren Version wechseln.

$ su pleroma -s $SHELL -lc "./bin/pleroma_ctl migrate"

Starten Sie den Pleroma-Dienst neu.

$ systemctl restart pleroma

Generieren Sie die Statistiken, damit Postgres die Abfragen richtig planen kann.

$ sudo -Hu postgres vacuumdb --all --analyze-in-stages

Schlussfolgerung

Damit ist unser Tutorial zur Installation der Pleroma Social Network Platform auf einem Server mit Ubuntu 20.04 abgeschlossen. Wenn Sie Fragen oder Feedback haben, posten Sie diese in den Kommentaren unten.


Ubuntu
  1. So installieren Sie Docker unter Ubuntu 18.04

  2. So installieren Sie Apache unter Ubuntu 18.04

  3. So installieren Sie MariaDB 10.4 auf Ubuntu 18.04

  4. So installieren Sie MongoDB unter Ubuntu 18.04

  5. So installieren Sie Jenkins unter Ubuntu 18.04

So installieren Sie Tomcat 8.5 auf Ubuntu 18.04

So installieren Sie Asterisk auf Ubuntu 18.04

So installieren Sie das soziale Netzwerk Elgg unter Ubuntu 18.04 LTS

So installieren Sie Mastodon Social Network mit Docker unter Ubuntu 18.04 LTS

So installieren Sie die Friendica Social Network Platform unter Ubuntu 20.04

So installieren Sie ein soziales Open-Source-Netzwerk unter Ubuntu 16.04