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, um„Development 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
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.
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
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:
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
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:
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
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;
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.
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
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:
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:
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
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
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
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.
Unten siehst du, dass du nun Etherpad als kollaborativen Editor verwenden kannst.
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.