GNU/Linux >> LINUX-Kenntnisse >  >> Debian

So installieren Sie Etherpad mit Nginx und SSL unter Debian 11

Etherpad ist eine kostenlose Open-Source-Alternative zu Diensten wie Google Docs und Zoho Writer. Etherpad ist ein kollaborativer Echtzeit-Texteditor für Ihr Team, auf den Sie jederzeit und überall zugreifen können, da Etherpad ein webbasierter Texteditor ist.

Alle Änderungen auf Etherpad erfolgen in Echtzeit, und Etherpad unterstützt auch Versionierung und integrierte Formatierung für Teams. Etherpad ist ein hochgradig anpassbarer Editor mit Unterstützung verschiedener Plugins. Und unterstützt auch moderne Dokumentformate wie doc, pdf, odt, markdown usw.

In diesem Tutorial installieren und konfigurieren Sie den Etherpad Real-time Collaborative Editor auf Debian 11 Bullseye. Dieses Tutorial verwendet MariaDB als Datenbank-Backend und den Nginx-Webserver als Reverse-Proxy mit aktiviertem sicherem HTTPS. Am Ende haben Sie das Etherpad installiert und durch sichere HTTPS-Verschlüsselung gesichert.

Voraussetzungen

Um dieses Tutorial abzuschließen, benötigen Sie zunächst die folgenden Voraussetzungen:

  • Ein Debian 11-Server, zum Testen können Sie 1 GB RAM verwenden. Für die Produktion können Sie je nach Umgebung und Nutzung mehr Ressourcen verwenden.
  • Ein Nicht-Root-Benutzer mit Root-Rechten. Optional können Sie den Root-Benutzer verwenden.
  • Ein Domänenname für die Installation und stellen Sie sicher, dass er auf die IP-Adresse des Servers verweist. In diesem Beispiel verwenden wir die Domain „etherpad.example.io '.

Wenn Sie alle diese Voraussetzungen erfüllt haben, fahren Sie mit dem ersten Abschnitt fort, um die Installation zu starten.

Paketabhängigkeiten installieren

Etherpad ist eine Webanwendung, die auf Node.js aufbaut. Zum Zeitpunkt des Schreibens dieses Artikels ist die neueste Version von Etherpad xxx und erfordert mindestens Node.js Version 14.x . In diesem Abschnitt installieren Sie einige Paketabhängigkeiten, einschließlich Node.js auf dem Debian 11-Server.

1. Aktualisieren Sie zuerst Ihre Paketindexliste und installieren Sie dann Build-Abhängigkeiten, indem Sie den folgenden Befehl ausführen.

sudo apt update
sudo apt install gzip git curl python libssl-dev pkg-config gcc g++ make build-essential -y

2. In diesem Tutorial installieren Sie Node.js aus dem Nodesource-Repository, das mehrere Versionen von Node.js bereitstellt. Dieses Tutorial verwendet die Node.js-Version 16.x für die Etherpad-Installation.

Führen Sie nun den folgenden Befehl aus, um das Node.js-Repository zu Ihrem System hinzuzufügen. Dieser Befehl fügt automatisch das Nodesource-Repository hinzu, um Ihren Paketindex zu aktualisieren.

curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash -

3. Installieren Sie als Nächstes Node.js 16.x aus dem Nodesource-Repository, indem Sie den folgenden Befehl ausführen.

sudo apt install nodejs -y

4. Überprüfen Sie nach Abschluss der Installation Ihre Node.js-Version mit dem folgenden Befehl.

node --version

Sie erhalten eine Ausgabe wie 'bla bla'.

In diesem Abschnitt haben Sie Paketabhängigkeiten für Etherpad und die Node.js-Version 16.x aus dem Nodesource-Repository installiert. Als Nächstes installieren und konfigurieren Sie die MariaDB-Datenbank.

Installieren und Konfigurieren der MariaDB-Datenbank

In diesem Abschnitt installieren Sie die MariaDB-Datenbank auf dem Debian 11-Server. Dann richten Sie das Root-Passwort für MariaDB ein und erstellen zuletzt eine neue Datenbank und einen neuen Benutzer für Etherpad.

1. Standardmäßig sind MariaDB-Pakete im Debian 11-Repository verfügbar. Führen Sie den folgenden Befehl aus, um es zu installieren.

sudo apt install mariadb-server -y

2. Wenn die MariaDB-Installation abgeschlossen ist, wird sie automatisch ausgeführt und aktiviert.

MariaDB bietet ein Befehlszeilentool, mit dem Sie MariaDB sicher bereitstellen können, einschließlich der Einrichtung des Root-Passworts für MariaDB. Führen Sie den Befehl 'mysql_secure_installation' aus wie unten.

mysql_secure_installation

Jetzt werden Ihnen einige Fragen zur MariaDB-Bereitstellung gestellt und Sie werden aufgefordert, das Root-Passwort einzurichten.

3. Der Standard-Root-Benutzer für MariaDB hat kein Passwort, drücken Sie ENTER .

Aktuelles Passwort für root eingeben (Eingabe für keins):
OK, Passwort erfolgreich verwendet, weiter geht's...

4. Jetzt werden Sie aufgefordert, die Authentifizierungsmethode mit 'unix_socket zu ändern ', geben Sie 'Y ein ' zustimmen.

Zur unix_socket-Authentifizierung wechseln [J/n] J
Aktiviert erfolgreich!
Berechtigungstabellen werden neu geladen..
 ... Erfolgreich!

5. Geben Sie „J ein ', um ein neues Root-Passwort für MariaDB einzurichten. Geben Sie dann Ihr starkes Passwort ein und wiederholen Sie es.

Das Root-Passwort ändern? [Y/n] Y
Neues Passwort:
Neues Passwort erneut eingeben:
Passwort erfolgreich aktualisiert!
Berechtigungstabellen werden neu geladen..
 ... Erfolgreich!

6. Die MariaDB-Standardinstallation enthält einen anonymen Benutzer. Geben Sie 'Y' ein, um es zu entfernen.

Anonyme Benutzer entfernen? [Y/n] Y
 ... Erfolgreich!

7. Deaktivieren Sie jetzt die Remote-Anmeldung für den MariaDB-Root-Benutzer. Geben Sie 'Y ein ' zustimmen.

Root-Anmeldung aus der Ferne verbieten? [Y/n] Y
 ... Erfolgreich!

8. Geben Sie als Nächstes 'Y ein ' zustimmen und die Standarddatenbank 'test entfernen ' und alle Privilegien obendrauf.

Testdatenbank und Zugriff darauf entfernen? [Y/n] Y
 - Testdatenbank wird gelöscht...
 ... Erfolg!
 - Berechtigungen für Testdatenbank werden entfernt...
 ... Erfolg!

9. Zuletzt laden Sie die Tabellenberechtigungen neu, um eine neue Konfiguration anzuwenden. Geben Sie 'Y ein ' zustimmen und ENTER drücken .

Berechtigungstabellen jetzt neu laden? [Y/n] Y
 ... Erfolgreich!

Wenn die gesamte Konfiguration abgeschlossen ist, erhalten Sie eine Ausgabenachricht wie „Alles erledigt! ' wie unten.

Alles erledigt! Wenn Sie alle oben genannten Schritte ausgeführt haben, sollte Ihre MariaDB
Installation jetzt sicher sein.

Danke, dass Sie MariaDB verwenden!

10. Führen Sie als Nächstes den folgenden Befehl aus, um sich bei der MariaDB-Shell anzumelden. Sie werden nach dem MariaDB-Root-Passwort gefragt. Geben Sie Ihr Passwort ein.

mysql -u root -p

11. Erstellen Sie nun eine neue Datenbank und einen neuen Benutzer für das Etherpad, indem Sie die folgenden Abfragen ausführen. Dieses Beispiel erstellt eine neue Datenbank 'etherpad_lite_db ' mit dem Benutzer 'etherpaduser ' und das Passwort 'StrongPasswordEtherpadDB '. Vergessen Sie nicht, das Passwort zu ändern.

CREATE DATABASE etherpad_lite_db;
CREATE USER [email-protected] IDENTIFIED BY 'StrongPasswordEtherpadDB';
GRANT CREATE,ALTER,SELECT,INSERT,UPDATE,DELETE on etherpad_lite_db.* to [email protected];

12. Laden Sie danach alle Tabellenberechtigungen neu, um eine neue Konfiguration anzuwenden, und führen Sie dann die „exit“-Abfrage aus, um sich von der MariaDB-Shell abzumelden.

FLUSH-RECHTE;
BEENDEN

In diesem Abschnitt haben Sie die Installation und Konfiguration der MariaDB-Datenbank auf Debian 11 abgeschlossen. Außerdem haben Sie die Datenbank und den Benutzer für das Etherpad erstellt. Als Nächstes laden Sie den Etherpad-Quellcode herunter und installieren ihn.

Installieren und Konfigurieren von Etherpad

In diesem Abschnitt installieren Sie das Etherpad aus dem Quellcode, konfigurieren es dann mit MariaDB als Datenbank und erstellen eine neue systemd-Datei für das Etherpad. Am Ende wird das Etherpad als Systemdienst ausgeführt.

1. Bevor Sie den Etherpad-Quellcode herunterladen, erstellen Sie einen neuen Benutzer 'etherpad ' auf Ihrem System. Dieser Benutzer wird verwendet, um das Etherpad-Installationsskript auszuführen und den Etherpad-Dienst auszuführen.

Führen Sie den 'adduser aus ' unten, um einen neuen Benutzer 'etherpad zu erstellen '. Definieren Sie außerdem das Home-Verzeichnis auf '/opt/etherpad-lite '. Dieses Verzeichnis wird verwendet, um alle Etherpad-Quellen zu speichern.

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

2. Navigieren Sie nun in das Verzeichnis ‚/opt ' und klonen Sie die Etherpad-Quelle mit dem Befehl git.

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

3. Ändern Sie danach den Besitz des Verzeichnisses „etherpad-lite“ auf den Benutzer „etherpad ' und Gruppe 'etherpad '.

sudo chown -R etherpad:etherpad etherpad-lite

4. Navigieren Sie nun zum Verzeichnis ‚etherpad-lite/ ' und installieren Sie alle Node.js-Abhängigkeiten mit dem Installationsskript 'installDeps.sh' wie nachstehend. Das Installationsskript 'installDeps.sh ' wird als Nicht-Root-Benutzer 'etherpad' ausgeführt.

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

Warten Sie, bis die Installation aller Paketabhängigkeiten abgeschlossen ist.

Als nächstes ändern Sie die Datei 'settings.json ', um Ihre Etherpad-Installation einzurichten. Sie können einen Nano-Editor verwenden, um diese Datei zu bearbeiten, oder Ihren bevorzugten Editor verwenden.

nano settings.json

Ändern Sie oben in der Zeile den Titel mit Ihrem eigenen Titel. Dieses Beispiel verwendet den Titel „Entherpad Johndoe '.

  "title":"Etherpad Johndoe",

In diesem Tutorial wird das Etherpad unter dem Nginx-Reverse-Proxy ausgeführt. Und es ist gut für die Sicherheit, das Etherpad auf dem Localhost auszuführen. Ändern Sie nun die 'ip :'-Konfiguration auf '127.0.0.1' . Mit dieser Konfiguration läuft das Etherpad nur auf dem Localhost.

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

Standardmäßig verwendet das Etherpad SQLite als Datenbank. Kommentieren Sie alle diese Zeilen, um sie zu deaktivieren.

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

Geben Sie nun unten die Konfiguration der MariaDB-Datenbank ein. Und stellen Sie sicher, dass Sie den Datenbanknamen, den Benutzer und das Passwort ändern.

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

Speichern und beenden Sie die Datei.

Erstellen Sie als Nächstes eine neue systemd-Dienstdatei „etherpad.service ' im Verzeichnis '/etc/systemd/system '. Diese Datei enthält alle Konfigurationsdetails, die Etherpad benötigt, um ordnungsgemäß auf dem Server ausgeführt zu werden. Erstellen Sie es mit einem Nano-Editor.

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

Fügen Sie der Datei die folgende Konfiguration hinzu.

[Unit]
Description=Etherpad-lite, der kollaborative Editor.
After=syslog.target network.target

[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
# Verwenden Sie mysql plus eine vollständige settings.json, um zu vermeiden, dass die Wartezeit für den Dienst abgelaufen ist, und planen Sie einen Neustart.
Neustart =immer

[Installieren]
WantedBy=multi-user.target

Diese Dienstdatei wird als Benutzer und Gruppe „etherpad“ ausgeführt. Und Sie werden die Option 'Environment=NODE_ENV=production bemerken ', was bedeutet, dass die Etherpad-Anwendung in der Produktionsumgebung ausgeführt wird. Das 'ExecStart=.. ' Option ist der Standardbefehl zum Ausführen der Etherpad-Anwendung.

Speichern und schließen Sie die Datei.

Laden Sie jetzt den systemd-Manager neu, um eine neue Dienstdatei anzuwenden.

sudo systemctl daemon-reload

Starten und aktivieren Sie danach den Etherpad-Dienst und überprüfen Sie dann seinen Status, indem Sie den folgenden Befehl ausführen.

sudo systemctl enable --now etherpad
sudo systemctl status etherpad

Sie erhalten eine Ausgabe ähnlich dem Screenshot unten. Der Etherpad-Dienst ist jetzt 'aktiv (läuft) ', wird es automatisch beim Systemstart gestartet und läuft auf dem lokalen Host mit dem Standardport '9001 '.

An dieser Stelle haben Sie die Etherpad-Installation abgeschlossen. Als Nächstes installieren Sie Nginx und richten es als Reverse-Proxy für die Etherpad-Anwendung ein.

Installieren und Konfigurieren von Nginx

Für die Produktionsumgebung wird immer empfohlen, Ihrer Anwendung einen Reverse-Proxy voranzustellen. Es erhöht die Leistung und Sicherheit Ihrer Anwendung. In diesem Abschnitt installieren und konfigurieren Sie den Nginx-Webserver als Reverse-Proxy. Am Ende läuft das Etherpad mit Ihrem Domainnamen und ist mit dem HTTPS-Protokoll gesichert.

1. Installieren Sie zunächst Nginx-Pakete, indem Sie den folgenden Befehl ausführen.

sudo apt install nginx -y

2. Nun, wenn Sie die UFW-Firewall auf Ihrem Debian-System haben. Erlauben Sie den öffentlichen Zugriff auf die HTTP- und HTTPS-Ports (80 und 443), indem Sie die Datei „ufw“ ausführen ' Befehl unten.

sudo ufw erlauben "Nginx Full"

Sie erhalten die folgende Ausgabe.

Regel hinzugefügt
Regel hinzugefügt (v6)

3. Erstellen Sie als Nächstes eine neue virtuelle Nginx-Hostdatei „etherpad ' im Verzeichnis '/etc/nginx/sites-available/ '. Erstellen Sie es mit einem Nano-Editor oder Ihrem bevorzugten Editor.

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

Kopieren Sie die folgende Konfiguration und fügen Sie sie in die Datei ein. Ersetzen Sie außerdem Ihren Domänennamen und den Pfad des SSL-Zertifikats durch Ihre eigenen Informationen. Für SSL-Zertifikate können Sie SSL-Zertifikate frei mit Letsencrypt generieren.

# HTTPS erzwingen
Server {
    listen       80;
    listen       [::]:80;
    server_name  etherpad.example.io;
    return 301   https://$host$request_uri;
}

# wir befinden uns hier im http-Kontext
map $http_upgrade $connection_upgrade {
    default upgrade;
''      schließen;
}

Server {
    listen       443 ssl http2;
    listen       [::]:443 ssl http2;
    server_name  etherpad.example .io;

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

    ssl_certificate      /etc/letsencrypt/live/etherpad.example.io/fullchain.pem;
    ssl_certificate_key  /etc/letsencrypt/live/etherpad.example.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 EWG DH+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    aus; # Seien Sie vorsichtig, diese Zeile überschreibt kein proxy_buffering auf set in einer conf.d/file.conf
        proxy_set_header   Host $host;
        proxy_pass_header  Server;

        # Hinweis Vielleicht möchten Sie diese Header usw. auch übergeben.
        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-Protokolle zur Anzeige der tatsächlichen Remote-IP
        proxy_set_header    X-Forwarded-Proto $scheme; # für EP, um sicheres Cookie-Flag zu setzen, wenn https verwendet wird
        proxy_http_version  1.1; # empfohlen mit Keepalive-Verbindungen

        # WebSocket-Proxy - von https://nginx.org/en/docs/http/websocket.html
        proxy_set_header  Upgrade $http_upgrade;
        proxy_set_header  Verbindung $connection_upgrade;
    }
}

Diese virtuelle Nginx-Hostdatei leitet automatisch jeglichen Datenverkehr von HTTP an das sichere HTTPS-Protokoll um. Überprüfen Sie für das Debugging, falls Sie einen Fehler haben, die Protokolldatei '/var/log/nginx/eplite.error.log '. Alle Client-Anfragen werden an das Backend 'proxy_pass gesendet ' die Etherpad-Anwendung, die auf Localhost-Port 9001 läuft.

4. Speichern und schließen Sie die Datei und aktivieren Sie dann die Konfiguration des virtuellen Hosts, indem Sie einen symbolischen Link der Datei „etherpad“ erstellen ' in das Verzeichnis '/etc/nginx/sites-enabled '.

sudo ln -s /etc/nginx/sites-available/etherpad /etc/nginx/sites-enabled/

5. Führen Sie als Nächstes den Befehl „nginx -t“ aus um die nginx-Konfiguration zu überprüfen. Dieser Befehl überprüft alle Syntaxfehler in der Konfiguration.

sudo nginx -t

Sie erhalten die folgende Ausgabe. Die Ausgabemeldung 'Syntax ist ok ' bedeutet, dass Sie keine Fehler haben.

nginx:Die Syntax der Konfigurationsdatei /etc/nginx/nginx.conf ist in Ordnung
nginx:Der Test der Konfigurationsdatei /etc/nginx/nginx.conf ist erfolgreich.

6. Starten Sie zuletzt den Nginx-Dienst neu, um eine neue virtuelle Nginx-Hostdatei anzuwenden.

sudo systemctl restart nginx

In diesem Abschnitt haben Sie die Nginx-Installation und -Konfiguration als Reverse-Proxy für die Etherpad-Anwendung abgeschlossen. Ihr Etherpad ist jetzt auf http://etherpad.example.io.

verfügbar

Etherpad-Installation überprüfen

1. Öffnen Sie Ihren Webbrowser und geben Sie den Domänennamen „http://etherpad.example.io/“ in die Adresse ein. Und Sie werden automatisch zur sicheren HTTPS-Verbindung wie unten umgeleitet.

2. Um ein neues Pad zu erstellen, geben Sie den Namen des Pads in die Spalte ein und klicken Sie auf die Schaltfläche 'OK '.

Jetzt sehen Sie den Etherpad Real-time Collaboration Editor wie unten.

Schlussfolgerung

In diesem Tutorial haben Sie den Etherpad Real-time Collaborative Editor auf dem Debian 11-Server installiert und konfiguriert. Außerdem haben Sie Nginx als Reverse-Proxy für die Etherpad-Anwendung installiert und konfiguriert.

Sie sind jetzt bereit, etherpad als Ihren Collaboration-Editor in Ihrem Team zu verwenden. Weitere Informationen zu Etherpad finden Sie in der offiziellen Etherpad-Dokumentation.


Debian
  1. So installieren Sie Phorum mit Nginx unter Debian 9

  2. So installieren Sie Textpattern CMS mit Nginx unter Debian 10

  3. So installieren und sichern Sie MariaDB unter Debian 11

  4. So installieren und konfigurieren Sie Mariadb 10 in Debian 11

  5. So installieren Sie WonderCMS mit Nginx unter Debian 11

So installieren Sie Nextcloud 10 mit Nginx auf Debian 8

So installieren Sie Drupal mit Nginx und Let’s Encrypt SSL unter Debian 11

So installieren Sie Joomla mit Nginx und Let’s Encrypt SSL unter Debian 11

So installieren Sie WordPress mit Nginx und Let’s Encrypt SSL unter Debian 11

So installieren Sie phpBB mit LEMP (Nginx, MariaDB und PHP) unter Debian 11 Bullseye

So installieren Sie phpMyAdmin mit Nginx unter Debian 11