Wie installiere ich Etherpad unter Debian 12?

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 erfolgen in Echtzeit, und 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 den kollaborativen Editor Etherpad auf einem Debian 12 Server installierst. Wir zeigen dir die Installation von Etherpad mit dem MariaDB-Datenbankserver und dem Nginx-Webserver sowie die Absicherung von Etherpad mit UFW (Uncomplicated Firewall) und SSL über Certbot und Letsencrypt.

Voraussetzungen

Um diesen Leitfaden zu erstellen, musst du folgende Voraussetzungen erfüllen:

  • Einen Debian 12 Server.
  • Einen Nicht-Root-Benutzer mit Administrator-Rechten.
  • Einen Domainnamen, der auf die IP-Adresse deines Servers zeigt.

Installieren der Abhängigkeiten

Etherpad ist eine Open-Source-Software für kollaborative Editoren, die in JavaScript geschrieben ist. Um Etherpad zu installieren, musst du die JavaScript-Laufzeitumgebung auf deinem Debian-Server installieren.

Im ersten Schritt wirst du die folgenden Abhängigkeiten für Etherpad installieren:

  • Node.js 18: eine JavaScript-Laufzeitumgebung für die Ausführung von Etherpad, die in JavaScript geschrieben ist.
  • Npm: Der Node.js-Paketmanager.
  • MariaDB Server: als Datenbank für Etherpad.
  • Nginx Webserver: als Reverse Proxy für Etherpad.

Weiter geht’s.

Führe den Befehl apt update aus, um deinen Debian-Paketindex zu aktualisieren und aufzufrischen.

sudo apt update

Repo aktualisieren

Installiere dann die Paketabhängigkeiten mit dem unten stehenden apt install-Befehl. Gib zur Bestätigung y ein und drücke ENTER, um mit der Installation fortzufahren.

sudo apt install mariadb-server nginx ufw nodejs npm gzip git curl python3 libssl-dev

Abhängigkeiten installieren

Nachdem die Abhängigkeiten installiert sind, überprüfe die Node.js-Version mit dem Befehl nodejs. Du solltest sehen, dass Node.18 installiert ist.

nodejs --version

nodejs prüfen

Überprüfe dann den Status des Mariadb-Dienstes mit den unten stehenden systemctl-Befehlen. Du solltest sehen, dass der mariadb-Dienst aktiviert ist und beim Systemstart automatisch ausgeführt wird und dass der Status des mariadb-Dienstes „running“ lautet.

sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

mariadb prüfen

Überprüfe abschließend den nginx-Dienst mit dem folgenden Befehl. Vergewissere dich, dass der nginx-Dienst läuft und aktiviert ist. Wenn er aktiviert ist, wird der Dienst beim Systemstart automatisch gestartet.

sudo systemctl is-enabled nginx
sudo systemctl status nginx

nginx prüfen

UFW (Uncomplicated Firewall) konfigurieren

Nachdem du die Abhängigkeiten installiert hast, musst du nun die UFW (Uncomplicated Firewall) einrichten, um deine Etherpad-Installation zu sichern. Wenn du UFE bereits installiert hast, fahre mit der Konfiguration von UFW fort.

Führe zunächst den folgenden Befehl aus, um das OpenSSH-Profil zu aktivieren und eine SSH-Verbindung zuzulassen. Starte und aktiviere dann die UFW (Uncomplicated Firewall).

sudo ufw allow OpenSSH
sudo ufw enable

Wenn du dazu aufgefordert wirst, gib y ein, um UFW zu starten und zu aktivieren. Wenn du erfolgreich warst, solltest du eine Ausgabe wie diese erhalten:

ufw aktivieren

Als Nächstes führst du den unten stehenden ufw-Befehl aus, um die verfügbaren Firewall-Profile zu erhalten, und aktivierst das Profil„Nginx Full„, um sowohl HTTP- als auch HTTPS-Ports zu öffnen.

sudo ufw app list
sudo ufw allow "Nginx Full"

Zum Schluss lädst du die UFW neu, um die Änderungen zu übernehmen und die aktivierten Regeln und Profile in der UFW zu überprüfen.

sudo ufw reload
sudo ufw status

Du solltest sehen, dass die UFW aktiv ist und die Profile OpenSSH und Nginx Full aktiviert sind.

ufw-Einrichtung

MariaDB-Datenbankserver konfigurieren

Im folgenden Abschnitt wirst du deinen MariaDB-Server mit dem Dienstprogramm mariadb-secure-installation sichern und eine neue Datenbank und einen neuen Benutzer für Etherpad erstellen.

Führe den folgenden Befehl mariadb-secure-installation aus, um den MariaDB-Server zu sichern. Mit mariadb-secure-installation kannst du das Root-Passwort für MariaDB einrichten und einige grundlegende Sicherheitseinstellungen für deinen MariaDB-Server vornehmen.

sudo mariadb-secure-installation

Während des Prozesses wirst du nach einigen Änderungen an der MariaDB-Konfiguration gefragt. Gib Y ein, um die Konfiguration zu übernehmen, oder n für no.

  • Drücke ENTER, wenn du nach dem MariaDB Root-Passwort gefragt wirst.
    Gib n ein, wenn du nach der Authentifizierungsmethode unix_socket gefragt wirst.
    Gib Y ein, um ein neues Passwort für den MariaDB Root-Benutzer einzurichten. Gib dann das neue Passwort ein und wiederhole den Vorgang.
    Gib Y ein, um den anonymen Standardbenutzer aus MariaDB zu entfernen.
    Gib dann erneut Y ein, um die Fernanmeldung für den MariaDB-Root-Benutzer zu deaktivieren.
    Gib Y ein, um den Standarddatenbanktest aus MariaDB zu entfernen.
    Gib schließlich erneut Y ein, um die Tabellenberechtigungen neu zu laden und die Änderungen anzuwenden.

Nachdem der MariaDB-Server gesichert ist, erstellst du eine neue Datenbank und einen neuen Benutzer, den Etherpad verwenden wird.

Führe den unten stehenden Befehl mariadb client aus, um dich am MariaDB-Server anzumelden. Gib das Passwort für deinen MariaDB-Root-Benutzer ein.

sudo mariadb -u root -p

Nachdem du dich angemeldet hast, führe die folgenden Abfragen aus, um eine neue Datenbank etherpad_lite_db und einen neuen Benutzer etherpaduser zu erstellen. Achte darauf, das Passwort StrongPasswordEtherpadDB durch dein neues Datenbankpasswort zu ersetzen.

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

Datenbank erstellen

Überprüfe nun den MariaDB-Benutzer etherpaduser mit der folgenden Abfrage, um sicherzustellen, dass der Benutzer etherpaduser auf die Datenbank etherpad_lite_db zugreifen kann.

SHOW GRANTS FOR etherpaduser@localhost;

Stelle sicher, dass du eine Ausgabe wie die folgende erhältst, die bestätigt, dass der Benutzer etherpaduser auf die Datenbank etherpad_lite_db zugreifen kann.

Benutzer prüfen

Gib quit ein, um den MariaDB-Server zu verlassen und den Schritt zu beenden.

Herunterladen und Konfigurieren von Etherpad

In diesem Abschnitt lädst du den Quellcode von Etherpad herunter und installierst seine Abhängigkeiten. Außerdem wirst du Etherpad so konfigurieren, dass es nur auf localhost läuft, und Etherpad mit dem MariaDB-Server konfigurieren.

Führe den folgenden Befehl aus, um einen neuen Systembenutzer etherpad mit dem Standard-Home-Verzeichnis /opt/etherpad-lite hinzuzufügen.

sudo adduser --system --no-create-home --home=/opt/etherpad-lite --group etherpad

Lade nun den Etherpad-Quellcode über Git in das Verzeichnis /opt/etherpad-lite herunter und ändere die Eigentumsrechte am Verzeichnis /opt/etherpad-lite auf den Benutzer und die Gruppe etherpad. Dadurch kann der etherpad-Benutzer auf den Quellcode zugreifen.

cd /opt && git clone --branch master https://github.com/ether/etherpad-lite.git 
sudo chown -R etherpad:etherpad /opt/etherpad-lite

Benutzer erstellen Download etherpad

Als Nächstes wechselst du in das Verzeichnis /opt/etherpad-lite und führst das Skript ./bin/run.sh aus, um die Systemumgebung für die Installation von Etherpad vorzubereiten. Dadurch werden die erforderlichen Abhängigkeiten für Etherpad installiert und Etherpad mit der Standardkonfiguration ausgeführt.

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

Installation der Node.js-Abhängigkeiten.

etherpad-Abhängigkeiten

Nachdem die Abhängigkeiten installiert wurden, sollte Etherpad mit der Standardkonfiguration laufen und du solltest die folgende Ausgabe erhalten.

etherpad läuft

Drücke Strg+c, um den Etherpad-Prozess zu beenden. Du wirst die Etherpad-Konfiguration settings.json ändern, um deine Installation zu konfigurieren.

Öffne die Datei settings.json mit dem folgenden nano-Editor-Befehl.

nano settings.json

Ändere den Standardtitel deiner Etherpad-Installation.

  "title": "Etherpad Debian 12",

Ändere die ip in localhost oder 127.0.0.1, um Etherpad nur auf localhost laufen zu lassen.

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

Kommentiere den Abschnitt dbType, um die Standard-Datenbankkonfiguration zu deaktivieren. Du kannst auch die folgenden Zeilen löschen.

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

Füge eine neue dbType-Konfiguration mit mysql als Standarddatenbank für deine Etherpad-Installation hinzu. Achte darauf, dass du die Details des Datenbanknamens, des Benutzers und des Passworts in der folgenden Konfiguration änderst.

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

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

Etherpad als Systemd-Dienst ausführen

Nachdem du Etherpad installiert und konfiguriert hast, erstellst du eine neue systemd-Dienstdatei für Etherpad. Damit kannst du Etherpad im Hintergrund laufen lassen und Etherpad einfach über das systemctl Dienstprogramm verwalten.

Erstelle mit dem nano-Editor eine neue systemd-Dienstdatei /etc/systemd/system/etherpad.service.

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

Füge die folgende Konfiguration ein, um Etherpad im Hintergrund als systemd-Dienst laufen zu lassen.

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

[Service]
Type=simple
User=etherpad
Group=etherpad
WorkingDirectory=/opt/etherpad-lite
Environment=NODE_ENV=production
ExecStart=/usr/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

Wenn du fertig bist, speichere die Datei und beende den Editor.

Als Nächstes führst du den folgenden systemctl-Befehl aus, um den systemd-Manager neu zu laden und die neuen systemd-Dienste anzuwenden.

sudo systemctl daemon-reload

Starte und aktiviere nun den Etherpad-Dienst mit dem folgenden systemctl-Befehl. Das Etherpad sollte im Hintergrund als systemd-Dienst laufen und wird beim Systemstart automatisch gestartet.

sudo systemctl start etherpad
sudo systemctl enable etherpad

etherpad als Dienst ausführen

Überprüfe abschließend den Etherpad-Dienst, indem du den folgenden Befehl ausführst, um sicherzustellen, dass das Etherpad läuft.

sudo systemctl status etherpad

Die folgende Ausgabe bestätigt, dass der etherpad-Dienst läuft und zwar auf localhost mit Port 9001.

etherpad prüfen

Gib den folgenden ss-Befehl ein, um sicherzustellen, dass Port 9001 von der Node.js-Anwendung Etherpad verwendet wird.

ss -tulpn | grep 9001

Jetzt ist Etherpad installiert, aber um das meiste herauszuholen, musst du Nginx als Reverse Proxy einrichten und Etherpad über SSL/TLS-Zertifikate absichern.

Prüfhafen

Nginx als Reverse Proxy konfigurieren

In diesem Abschnitt erstellst du einen neuen Nginx-Serverblock, der als Reverse-Proxy für Etherpad verwendet wird. Stelle also sicher, dass der Domainname auf die IP-Adresse deines Debian-Servers zeigt, bevor du beginnst.

Erstelle eine neue Nginx-Serverblock-Konfiguration /etc/nginx/sites-available/etherpad.conf mit dem Befehl nano.

sudo nano /etc/nginx/sites-available/etherpad.conf

Füge die folgende Konfiguration ein und achte darauf, dass du den Domainnamen durch deine etherpad-Domain ersetzt.

server {
    listen       80;
    server_name  etherpad.hwdomain.io;
access_log  /var/log/nginx/eplite.access.log;
error_log   /var/log/nginx/eplite.error.log;

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 beende den Editor, wenn du fertig bist.

Führe als Nächstes den folgenden Befehl aus, um die Serverblockdatei etherpad.conf zu aktivieren und die Nginx-Konfigurationen insgesamt zu überprüfen.

sudo ln -s /etc/nginx/sites-available/etherpad.conf /etc/nginx/sites-enabled/
sudo nginx -t

Wenn du Nginx richtig konfiguriert hast, solltest du eine Ausgabe wie “ Syntax ist ok – Test erfolgreich“ erhalten.

nginx Reverse Proxy einrichten

Führe nun den folgenden systemctl-Befehl aus, um Nginx neu zu starten und die Änderungen zu übernehmen.

sudo systemctl restart nginx

Um sicherzustellen, dass die Nginx-Konfiguration erfolgreich war, besuche deine Etherpad-Domain (z. B. http://etherpad.hwdomain.io/) mit deinem bevorzugten Webbrowser. Wenn du erfolgreich warst, solltest du den Etherpad-Bildschirm sehen.

Etherpad mit SSL/TLS-Zertifikaten absichern

Nachdem du Nginx als Reverse Proxy konfiguriert hast, sicherst du Etherpad mit SSL/TLS-Zertifikaten, die über Certbot und Letsencrypt generiert werden. Außerdem konfigurierst du die automatische Umleitung von HTTP zu HTTPS innerhalb des Etherpads über das Certbot Nginx Plugin.

Führe den Befehl apt install aus, um Cetbot und das Cetbot Nginx-Plugin zu installieren. Gib zur Bestätigung y ein und drücke ENTER, um mit der Installation fortzufahren.

sudo apt install certbot python3-certbot-nginx

certbot installieren

Sobald Certbot installiert ist, führe den unten stehenden Befehl certbot aus, um das SSL/TLS Letsencrypt für deinen Etherpad-Domainnamen zu erzeugen. Achte darauf, dass du den Domainnamen und die E-Mail-Adresse im folgenden Befehl änderst.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email user@hwdomain.io -d etherpad.hwdomain.io

Sobald der Vorgang abgeschlossen ist, sind die neuen SSL-Zertifikate im Verzeichnis /etc/letsencrypt/live/domain.com verfügbar. Und die Nginx-Serverblockkonfiguration für Etherpad wird automatisch mit HTTPS konfiguriert.

Starte deinen Webbrowser und rufe deine Etherpad-Domain auf (z.B.: http://etherpad.hwdomain.io/). Du wirst automatisch auf die sichere HTTPS-Verbindung umgeleitet, die über das Certbot Nginx Plugin konfiguriert ist.

Gib nun den neuen Pad-Namen ein, um sicherzustellen, dass du ein neues Pad oder Dokument erstellen kannst. Klicke zur Bestätigung auf OK.

Neues Pad erstellen

Sobald das Pad erstellt ist, kannst du die selbst gehostete Dokumentenzusammenarbeit über Etherpad genießen.

etherpad als kollaborativer Editor

Fazit

Das war’s! Du hast die Installation von Etherpad auf deinem Debian 12 Rechner abgeschlossen. Du hast Etherpad mit dem MariaDB-Datenbankserver und dem Nginx-Webserver installiert. Außerdem hast du dein Etherpad mit SSL/TLS-Zertifikaten von Letsencrypt und UFW (Uncomplicated Firewall) abgesichert.

Von hier aus kannst du Etherpad nun als gemeinsamen Editor mit deinem Freund nutzen. Du kannst auch Etherpad-Plugins/Addons installieren, um die Funktionen zu nutzen, die deinen Bedürfnissen entsprechen.

Das könnte dich auch interessieren …