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
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
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
Ü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
Ü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
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:
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.
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;
Ü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.
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
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.
Nachdem die Abhängigkeiten installiert wurden, sollte Etherpad mit der Standardkonfiguration laufen und du solltest die folgende Ausgabe erhalten.
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
Ü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.
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.
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.
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
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.
Sobald das Pad erstellt ist, kannst du die selbst gehostete Dokumentenzusammenarbeit über Etherpad genießen.
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.