So installierst du Etherpad unter AlmaLinux 9

Etherpad ist eine kostenlose und Open-Source-Alternative zu Diensten wie Google Docs und Zoho Writer. Etherpad ist ein kollaborativer Echtzeit-Texteditor für dein Team, auf den du jederzeit und von überall aus zugreifen kannst, denn Etherpad ist ein webbasierter Texteditor.

Alle Änderungen in Etherpad finden in Echtzeit statt. Außerdem unterstützt Etherpad die Versionierung und integrierte Formatierung für Teams. Etherpad ist ein hochgradig anpassbarer Editor mit der Unterstützung verschiedener Plugins. Außerdem unterstützt er moderne Dokumentenformate wie doc, pdf, odt, markdown, etc.

Diese Anleitung zeigt dir, wie du Etherpad auf einem AlmaLinux 9 Server mit einem MariaDB Datenbankserver und einem Nginx Webserver installierst. Außerdem wirst du Etherpad mit SSL-Zertifikaten sichern, um einen sicheren Zugriff zu ermöglichen.

Voraussetzungen

Um dieses Tutorial durchzuführen, musst du folgende Voraussetzungen erfüllen:

  • Einen AlmaLinux 9 Server – Diese Demo verwendet ein AlmaLinux mit dem Hostnamen almalinux9.
  • Einen Nicht-Root-Benutzer mit sudo-Rechten.
  • Ein Domainname, der auf die IP-Adresse des Servers zeigt.
  • Erstellte SSL-Zertifikate über Letsecnrypt und Certbot.

Installation der Abhängigkeiten

Bevor du Etherpad installierst, musst du einige der Abhängigkeiten installieren, die Etherpad benötigt, darunter

  • Entwicklungstools
  • Node.js und NPM (Node Package Manager)
  • MariaDB-Datenbankserver
  • Nginx Webserver

Führe diese Schritte aus, um die Etherpad-Abhängigkeiten zu installieren.

Installation der Entwicklungswerkzeuge

Zuerst musst du die„Development Tools“ auf deinem AlmaLinux-Server installieren. Gib den folgenden dnf-Befehl ein, umDevelopment Tools“ zu installieren, gib y ein und drücke ENTER, um fortzufahren.

sudo dnf group install "Development Tools"

Als nächstes führst du den folgenden Befehl aus, um einige zusätzliche Abhängigkeiten zu installieren. Wenn du dazu aufgefordert wirst, gibst du zur Bestätigung y ein und drückst ENTER.

sudo dnf install gzip git curl python3-devel openssl-devel pkg-config

Abhängigkeiten installieren

Installation von Node.js und NPM

Etherpad ist ein webbasierter Editor für Zusammenarbeit und Echtzeit, der hauptsächlich mit Node.js geschrieben wurde. Um ihn zu installieren, musst du die JavaScript-Laufzeitumgebung Node.js und NPM (Node Package Manager) installieren.

Zum Zeitpunkt der Erstellung dieses Artikels benötigte Etherpad mindestens Node.js v16, das standardmäßig im AlmaLinux Appstream Repository verfügbar ist und das du über DNF installieren kannst.

Führe den folgenden dnf-Befehl aus, um Node.js und NPM zu installieren. Gib y ein, um die Installation zu bestätigen und drücke ENTER.

sudo dnf install nodejs npm

Sobald Node.js installiert ist, führe den folgenden Befehl aus, um das Verzeichnis /usr/local/bin zur Umgebungsvariablen PATH hinzuzufügen. Dadurch wird sichergestellt, dass einige Binärdateien, die über NPM installiert wurden, auf dem Server ausgeführt werden können.

echo "export PATH=$PATH:/usr/local/bin" >> ~/.bashrc
source ~/.bashrc

Als Nächstes führst du den folgenden Befehl aus, um die beiden Binärdateien von Node.js und NPM zu finden.

which node
which npm

Überprüfe dann die Version von Node.js und NPM mit dem folgenden Befehl.

node --version
npm --version

Die angezeigte Ausgabe bestätigt, dass Node.js v16 und NPM 8.x installiert sind und sich beide Binärdateien im Verzeichnis /bin befinden.

Überprüfung von node.js und npm

Installation von MariaDB Server

In der Standardeinstellung verwendet das installierte Etherpad SQLite als Datenbank. Du kannst für deine Etherpad-Installation MariaDB/MySQL als Datenbank für große Einsätze verwenden.

Führe den folgenden dnf-Befehl aus, um MariaDB Server zu installieren. Wenn du dazu aufgefordert wirst, gib zur Bestätigung y ein und drücke ENTER.

sudo dnf install mariadb-server

mariadb installieren

Sobald MariaDB installiert ist, führe den folgenden Befehl aus, um den MariaDB-Dienst zu starten und zu aktivieren.

sudo systemctl start mariadb
sudo systemctl enable mariadb

Überprüfe dann den Status des MariaDB-Dienstes mit dem unten stehenden Befehl.

sudo systemctl status mariadb

Wenn der MariaDB-Server läuft, sollte die Ausgabe wie folgt aussehen:

start enable mariadb

Nginx Webserver installieren

Nach der Installation des MariaDB-Servers installierst du den Nginx-Webserver, der als Reverse-Proxy für Etherpad verwendet wird. Bevor du weitermachst, solltest du sicherstellen, dass du einen Domainnamen hast, der auf deine Server-IP-Adresse zeigt, und dass du SSL-Zertifikate über Letsencrypt und Certbot erstellt hast.

Führe den folgenden dnf-Befehl aus, um den Nginx-Webserver zu installieren. Wenn du dazu aufgefordert wirst, gibst du zur Bestätigung ein und drückst ENTER.

sudo dnf install nginx

nginx installieren

Führe nun den folgenden Befehl aus, um den Nginx-Dienst zu starten und zu aktivieren.

sudo systemctl start nginx
sudo systemctl enable nginx

Gib danach den folgenden Befehl ein, um den Nginx-Dienst zu überprüfen und sicherzustellen, dass der Dienst läuft.

sudo systemctl status nginx

Wenn der Nginx-Dienst läuft, solltest du eine Ausgabe wie diese erhalten:

start enable verify nginx

Als Nächstes führst du den folgenden Befehl aus, um die HTTP- und HTTPS-Ports auf deinem Server zu öffnen.

sudo firewall-cmd --add-service={http,https} --permanent
sudo firewall-cmd --reload

Überprüfe die Liste der offenen Ports und Dienste mit dem folgenden Befehl. Du solltest sehen, dass sowohl HTTP als auch HTTPS auf Firewalld aktiviert sind.

sudo firewall-cmd --list-all

firewalld konfigurieren

MariaDB Server konfigurieren

In diesem Abschnitt wirst du den MariaDB-Server mit dem Dienstprogramm mariadb-secure-installation sichern und dann eine neue Datenbank und einen neuen Benutzer anlegen, die für Etherpad verwendet werden.

Führe den folgenden Befehl aus, um die Sicherung des MariaDB-Servers zu starten.

sudo mariadb-secure-installation

Nachdem der Befehl ausgeführt wurde, wirst du nach den folgenden Konfigurationen gefragt:

  • Ändere die Authentifizierungsmethode für den MariaDB-Root-Benutzer auf unix_socket. Gib n für Nein ein.
    Richte das MariaDB Root-Passwort ein. Gib zur Bestätigung y ein, gib das neue MariaDB Root-Passwort ein und wiederhole es.
    Deaktiviere die Fernanmeldung für den MariaDB Root-Benutzer. Gib zur Bestätigung y ein.
    Entferne den Standard-Datenbanktest von MariaDB. Gib zur Bestätigung y ein.
    Entferne den anonymen Benutzer aus der MariaDB. Gib zur Bestätigung y ein.
    Gib abschließend erneut y ein, um die Tabellenberechtigungen neu zu laden und die Änderungen zu übernehmen.

Nachdem der MariaDB-Server gesichert ist, erstellst du als Nächstes eine neue MariaDB-Datenbank und einen neuen Benutzer.

Melde dich mit dem unten stehenden Befehl mariadb am MariaDB-Server an.

sudo mariadb -u root -p

Führe die folgenden Abfragen aus, um eine neue MariaDB-Datenbank und einen neuen Benutzer für Etherpad zu erstellen. In diesem Beispiel erstellst du eine neue Datenbank etherpad_lite_db und den Benutzer etherpaduser mit dem Passwort StrongPasswordEtherpadDB.

CREATE DATABASE etherpad_lite_db CHARACTER SET utf8mb4;
CREATE USER etherpaduser@localhost IDENTIFIED BY 'StrongPasswordEtherpadDB';
GRANT CREATE,ALTER,SELECT,INSERT,UPDATE,DELETE on etherpad_lite_db.* to etherpaduser@localhost;
FLUSH PRIVILEGES;

Neue Datenbank und Benutzer anlegen

Führe nun die folgende Abfrage aus, um die Berechtigungen des MariaDB-Benutzers etherpaduser zu überprüfen.

SHOW GRANTS FOR etherpaduser@localhost;
quit

Du wirst feststellen, dass der MariaDB-Benutzer etherpaduser die Berechtigung hat, auf die Datenbank etherpad_lite_db zuzugreifen.

mariadb-Benutzerprivilegien anzeigen

Gib quit ein, um MariaDB zu verlassen.

Herunterladen und Installieren von Etherpad

In diesem Abschnitt beginnst du mit der Installation von Etherpad, indem du den Systembenutzer anlegst, den Etherpad-Quellcode herunterlädst, die Abhängigkeiten für Etherpad installierst, Etherpad in die MariaDB-Datenbank integrierst und die Installation anschließend über die Befehlszeile überprüfst.

Führe zunächst den folgenden Befehl aus, um einen neuen Systembenutzer und die Gruppe„etherpad“ zu erstellen. Dieser Benutzer wird verwendet, um den Etherpad-Dienst auszuführen.

sudo groupadd etherpad
sudo adduser -r -M -d /opt/etherpad-lite -g etherpad etherpad

Lade den Etherpad-Quellcode über git in das Zielverzeichnis /opt/etherpad-lite herunter.

git clone --branch master https://github.com/ether/etherpad-lite.git /opt/etherpad-lite

Sobald der Etherpad-Quellcode heruntergeladen ist, führst du den folgenden Befehl aus, um den Eigentümer des Verzeichnisses /opt/etherpad-lite auf den Benutzer und die Gruppe„etherpad“ zu ändern.

sudo chown -R etherpad:etherpad /opt/etherpad-lite

Benutzer anlegen und Etherpad-Quellcode herunterladen

Als Nächstes verschiebst du das Arbeitsverzeichnis in das Verzeichnis /opt/etherpad-lite und installierst die Etherpad-Abhängigkeiten mit dem folgenden Befehl.

cd /opt/etherpad-lite
sudo su -s /bin/bash -c "./bin/installDeps.sh" etherpad

Nachdem du den Befehl ausgeführt hast, solltest du den Installationsprozess wie folgt sehen:

etherpad-Abhängigkeiten installieren

Wenn die Installation abgeschlossen ist, öffne die Etherpad-Konfigurationseinstellungen.json mit dem folgenden nano-Editor-Befehl.

nano settings.json

Ändere den Titel deiner Etherpad-Installation.

  "title": "Etherpad AlmaLinux 9",

Ändere die Standard-IP-Adresse für die Ausführung von Etherpad in localhost oder 127.0.0.1.

  "ip": "127.0.0.1",
  "port": 9001,

Entferne die Standard-Datenbankkonfiguration unten.

  /*
  *"dbType": "dirty",
  *"dbSettings": {
  *  "filename": "var/dirty.db"
  *},
  */

Ändere die Details der Datenbank so, dass sie den MySQL/MariaDB-Server verwendet. Achte darauf, dass du den Datenbanknamen, den Benutzer und das Passwort änderst.

  "dbType" : "mysql",
  "dbSettings" : {
    "user":     "etherpaduser",
    "host":     "localhost",
    "port":     3306,
    "password": "StrongPasswordEtherpadDB",
    "database": "etherpad_lite_db",
    "charset":  "utf8mb4"
  },

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

Als Nächstes führst du den folgenden Befehl aus, um Etherpad zu überprüfen und zu starten.

/bin/node --experimental-worker /opt/etherpad-lite/node_modules/ep_etherpad-lite/node/server.js

Wenn die Datenbankkonfiguration und die Etherpad-Installation erfolgreich waren, wird die folgende Ausgabe angezeigt:

Laufende Prüfung etherpad

Drücke Strg+c, um den Prozess zu beenden.

Etherpad als Systemd-Dienst ausführen

Nachdem du Etherpad installiert hast, richtest du Etherpad als systemd-Dienst ein. Dadurch kannst du Etherpad im Hintergrund laufen lassen und es einfach über die systemctl Kommandozeile verwalten.

Um zu beginnen, erstelle eine neue systemd-Dienstdatei /lib/systemd/system/etherpad.service mit dem folgenden nano-Editor-Befehl.

sudo nano /lib/systemd/system/etherpad.service

Füge die folgende Konfiguration in die Datei ein.

[Unit]
Description=Etherpad-lite, the collaborative editor.
After=syslog.target network.target mariadb.service nginx.service

[Service]
Type=simple
User=etherpad
Group=etherpad
WorkingDirectory=/opt/etherpad-lite
Environment=NODE_ENV=production
ExecStart=/bin/node –experimental-worker /opt/etherpad-lite/node_modules/ep_etherpad-lite/node/server.js
# use mysql plus a complete settings.json to avoid Service hold-off time over, scheduling restart.
Restart=always

[Install]
WantedBy=multi-user.target

Speichere und schließe die Datei, wenn du fertig bist.

Führe nun den folgenden Befehl aus, um den systemd Manager neu zu laden und die Etherpad-Dienstdatei auf dein System anzuwenden.

sudo systemctl daemon-reload

Starte und aktiviere dann den Etherpad-Dienst mit dem unten stehenden Befehl.

sudo systemctl start etherpad
sudo systemctl enable etherpad

Überprüfe den Etherpad-Dienst mit dem folgenden Befehl. Wenn der Etherpad-Dienst läuft, solltest du eine Ausgabe wie„active (running)“ erhalten.

sudo systemctl status etherpad

Etherpad-Dienst überprüfen

Du kannst auch die Liste der offenen Ports auf deinem System mit dem folgenden Befehl überprüfen. Du solltest dann sehen, dass Etherpad den Port 9001 verwendet.

ss -tulpn | grep 9001

Etherpad-Anschluss prüfen

Nginx als Reverse Proxy konfigurieren

Jetzt ist das Etherpad auf Port 9001 eingerichtet und läuft. Um es für Endbenutzer zugänglich zu machen, kannst du Nginx als Reverse Proxy verwenden. Bevor du beginnst, stelle sicher, dass du den Domainnamen hast, der für Etherpad verwendet werden soll, und dass du SSL-Zertifikate über Letsencrypt und Certbot erstellt hast.

Erstelle eine neue Nginx-Server-Blockkonfiguration /etc/nginx/conf.d/etherpad.conf mit dem unten stehenden nano-Editor-Befehl.

sudo nano /etc/nginx/conf.d/etherpad.conf

Füge die folgende Konfiguration ein und achte darauf, dass du die Angaben zum Domainnamen und den Pfad der SSL-Zertifikate änderst.

# enforce HTTPS
server {
    listen       80;
    server_name  etherpad.hwdomain.io;
    return 301   https://$host$request_uri;
}
# we're in the http context here
map $http_upgrade $connection_upgrade {
default upgrade;
''      close;
}

server {
listen       443 ssl http2;
server_name  etherpad.hwdomain.io;

access_log  /var/log/nginx/eplite.access.log;
error_log   /var/log/nginx/eplite.error.log;

ssl_certificate      /etc/letsencrypt/live/etherpad.hwdomain.io/fullchain.pem;
ssl_certificate_key  /etc/letsencrypt/live/etherpad.hwdomain.io/privkey.pem;

ssl_session_timeout  5m;

ssl_protocols TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS";

location / {
proxy_pass         http://127.0.0.1:9001;
proxy_buffering    off; # be careful, this line doesn't override any proxy_buffering on set in a conf.d/file.conf
proxy_set_header   Host $host;
proxy_pass_header  Server;

# Note you might want to pass these headers etc too.
proxy_set_header    X-Real-IP $remote_addr; # https://nginx.org/en/docs/http/ngx_http_proxy_module.html
proxy_set_header    X-Forwarded-For $remote_addr; # EP logs to show the actual remote IP
proxy_set_header    X-Forwarded-Proto $scheme; # for EP to set secure cookie flag when https is used
proxy_http_version  1.1; # recommended with keepalive connections

# WebSocket proxying - from https://nginx.org/en/docs/http/websocket.html
proxy_set_header  Upgrade $http_upgrade;
proxy_set_header  Connection $connection_upgrade;
}
}

Speichere die Datei und schließe den Editor, wenn du fertig bist.

Führe nun den folgenden Befehl aus, um sicherzustellen, dass du die korrekte und richtige Konfiguration hast. Wenn er erfolgreich war, solltest du eine Meldung wie„Syntax ist ok – Test erfolgreich“ erhalten.

sudo nginx -t

Gib dann den folgenden Befehl ein, um den Nginx-Dienst neu zu starten und die Änderungen zu übernehmen.

sudo systemctl restart nginx

nginx als Reverse Proxy konfigurieren

Starte danach deinen Webbrowser und rufe die Domain der Etherpad-Installation auf (z. B.: https://etherpad.hwdomain.io/). Du solltest die Standard-Startseite deines Etherpad Collaborative Editors sehen.

Erstelle nun ein neues Pad, indem du den Pad-Namen eingibst und auf OK klickst.

Neues Pad erstellen

Unten siehst du, dass du nun Etherpad als kollaborativen Editor verwenden kannst.

etehrpad collaboratuive editor

Fazit

Herzlichen Glückwunsch, du hast die Installation von Etherpad mit MariaDB-Datenbank und Nginx-Webserver auf einem AlmaLinux 9-Server abgeschlossen. Darüber hinaus hast du Etherpad mit SSL-Zertifikaten gesichert. Jetzt kannst du Etherpad als Haupt-Editor für die Zusammenarbeit mit deinen Freunden/Gruppen/Teams nutzen.

Das könnte dich auch interessieren …