GNU/Linux >> Znalost Linux >  >> Rocky Linux

Jak nainstalovat Etherpad Collaborative Web Editor na Rocky Linux 8

Etherpad je open-source online editor poskytující společné úpravy v reálném čase v prohlížeči. Je napsán v Node.js a může být hostován pro práci s různými platformami, jako je WordPress, Drupal, Odoo, Discourse, Joomla atd.

V tomto tutoriálu nainstalujeme Etherpad na server Rocky Linux 8 pomocí databáze MariaDB k ukládání našich dat. Také použijeme Nginx jako reverzní proxy pro aplikaci a nainstalujeme SSL certifikát pomocí Let's Encrypt, abychom umožnili připojení HTTPS k naší instanci Etherpad.

Předpoklady

  1. Systém se systémem Rocky Linux 8.

  2. Uživatel bez oprávnění root s právy sudo.

  3. Název domény směřující na server.

  4. Nodejs nainstalován. Postupujte podle našeho průvodce instalací Nodejs na server Rocky Linux 8. Použijte kteroukoli ze dvou uvedených metod.

  5. Ujistěte se, že je vše aktualizováno.

    $ sudo dnf update
    

Krok 1 – Konfigurace brány firewall

Rocky Linux používá Firewalld Firewall. Zkontrolujte stav brány firewall.

$ sudo firewall-cmd --state
running

To znamená, že je úspěšně spuštěn.

Firewall pracuje s různými zónami a veřejná zóna je výchozí, kterou použijeme. Seznam všech služeb a portů aktivních na bráně firewall.

$ sudo firewall-cmd --permanent --list-services

Měl by ukazovat následující výstup.

cockpit dhcpv6-client ssh

Povolit porty HTTP a HTTPS.

$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https

Otevřete 9001 port používaný aplikací Etherpad.

$ sudo firewall-cmd --permanent --add-port=9001/tcp

Znovu zkontrolujte stav brány firewall.

$ sudo firewall-cmd --permanent --list-services

Měli byste vidět podobný výstup.

cockpit dhcpv6-client http https ssh

Chcete-li změny povolit, znovu načtěte bránu firewall.

$ sudo firewall-cmd --reload

Krok 2 – Instalace Git

Před instalací Etherpadu musíme nainstalovat Git. Spusťte následující příkaz a nainstalujte Git.

$ sudo dnf install git

Ověřte instalaci.

$ git --version
git version 2.27.0

Přidejte počáteční konfiguraci.

$ git config --global user.name "YourName"
$ git config --global user.email "[email protected]"

Vypište konfiguraci, kterou jste právě nastavili.

$ git config --list
user.name=YourName
[email protected]

Krok 3 – Instalace MariaDB

Protože k ukládání dat Etherpadu budeme používat databázi MariaDB, musíme ji nejprve nainstalovat a nakonfigurovat.

Rocky Linux AppStream úložiště přichází s MariaDB. Chcete-li zobrazit všechny dostupné verze nainstalované MariaDB, spusťte následující příkaz.

$ sudo dnf module list mariadb
Last metadata expiration check: 1:15:26 ago on Thu 21 Oct 2021 10:20:01 AM UTC.
Rocky Linux 8 - AppStream
Name                          Stream                         Profiles                                         Summary
mariadb                       10.3 [d]                       client, galera, server [d]                       MariaDB Module
mariadb                       10.5                           client, galera, server [d]                       MariaDB Module

Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

Výchozí verze je nastavena na 10.3. Nejnovější verzi však můžete nainstalovat pomocí následujícího příkazu.

$ sudo dnf module enable mariadb:10.5

Nainstalujte MariaDB.

$ sudo dnf install mariadb-server

Povolte a spusťte službu MariaDB.

$ sudo systemctl enable mariadb --now

Zkontrolujte stav služby.

$ sudo systemctl status mariadb

Zabezpečte server MariaDB.

$ sudo mysql_secure_installation

Budete čelit různým výzvám. Odpovězte na ně následovně.

Enter current password for root (enter for none): Press Enter
Switch to unix_socket authentication [Y/n] Type y
Change the root password? [Y/n] Type n
Remove anonymous users? [Y/n] Type y
Disallow root login remotely? [Y/n] Type y
Remove test database and access to it? [Y/n] Type y
Reload privilege tables now? [Y/n] Type y

Nyní se můžete připojit k serveru MariaDB pomocí následujícího příkazu.

$ sudo mysql 

Krok 4 – Konfigurace MariaDB

Přihlaste se do prostředí MariaDB.

$ sudo mysql

Vytvořte novou databázi pro Etherpad.

$ create database `etherpad_lite_db`;

Vytvořte nového uživatele databáze.

$ CREATE USER 'etherpaduser'@'localhost' identified by 'password';

Použijte silné heslo.

Udělte uživateli oprávnění k databázi.

$ grant CREATE,ALTER,SELECT,INSERT,UPDATE,DELETE on `etherpad_lite_db`.* to '<etherpaduser>'@'localhost';

Ukončete prostředí MySQL.

$ exit

Krok 5 – Stáhnout a nainstalovat Etherpad

Chcete-li nainstalovat Etherpad, stáhneme si jeho zdrojový kód a sestavíme jej.

Prvním krokem je vytvoření nového etherpad pomocí následujícího příkazu.

$ sudo adduser --system --home /opt/etherpad --create-home --user-group etherpad

Tento příkaz vytvoří --system uživatel, což znamená, že se nemůže přihlásit a nemá žádné heslo. Dáme mu také domovský adresář /opt/etherpad kde si stáhneme Etherpad. --create-home flag vytvoří domovský adresář se správnými oprávněními. --user-group flag vytvoří skupinu se stejným názvem jako uživatelské jméno.

Přepněte na etherpad uživateli stáhnout a nainstalovat aplikaci.

$ sudo -u etherpad bash

Přepněte na /opt/etherpad adresář.

[[email protected] user] cd /opt/etherpad

Naklonujte úložiště Etherpad do /opt/etherpad adresář.

[[email protected] ~]$ git clone --branch master git://github.com/ether/etherpad-lite.git

Přepněte do nově staženého adresáře.

[[email protected] ~]$ cd etherpad-lite

Spusťte na Etherpadu run.sh skript pro nastavení a instalaci závislostí.

[[email protected] etherpad-lite]$ src/bin/run.sh

Můžete spustit URL http://YOURSERVERIP:9001 v prohlížeči pro spuštění Etherpadu. Zobrazí se následující obrazovka.

Vyskytl se problém s výše uvedenou instalací. Vyžaduje, abyste ponechali aktuální shell otevřený s Node spuštěným v popředí. Aby to byla trvalá instalace, musíme spustit Etherpad jako službu. Stisknutím Ctrl + C na terminálu zastavíte spuštění Etherpadu.

Krok 6 – Konfigurace Etherpad

Než budeme pokračovat, musíme provést některá nastavení a nakonfigurovat naši instalaci podle našich potřeb. Etherpad ukládá svá nastavení do settings.json soubor v instalačním adresáři.

Otevřete soubor pro úpravy.

[[email protected] etherpad-lite]$ nano settings.json

Soubor nastavení je naformátován jako JSON. První věc, kterou musíte nakonfigurovat, je nastavení databáze.

Najděte následující kód a okomentujte jej vložením // před ním.

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

Poté najděte následující kód a změňte jeho hodnoty následovně. Ujistěte se, že jste odstranili /* a */ na začátku a na konci.

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

Nakonec přejděte trochu dolů a najděte trustProxy nastavení a změňte jeho hodnotu z false true .

  "trustProxy": true,

Toto nastavení je potřeba, aby Etherpad fungoval společně s Nginx.

Uložte soubor stisknutím Ctrl + X a zadáním Y až budete vyzváni po dokončení.

Ukončete uživatelské prostředí Etherpadu.

[[email protected] etherpad-lite]$ exit

Krok 7 – Vytvoření služby Etherpad

Ke spuštění Etherpadu při bootování a ke správě procesu pomocí systemctl , musíme vytvořit soubor služby.

Vytvořte a otevřete soubor služby.

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

Vložte do něj následující kód.

[Unit]
Description=Etherpad, a collaborative web editor.
After=syslog.target network.target

[Service]
Type=simple
User=etherpad
Group=etherpad
WorkingDirectory=/opt/etherpad
Environment=NODE_ENV=production
ExecStart=/usr/bin/node --experimental-worker /opt/etherpad/etherpad-lite/node_modules/ep_etherpad-lite/node/server.js
Restart=always

[Install]
WantedBy=multi-user.target

Uložte soubor stisknutím Ctrl + X a zadáním Y až budete vyzváni po dokončení.

Znovu načtěte servisního démona a zaveďte novou konfiguraci.

$ sudo systemctl daemon-reload

Povolte Spustit službu Etherpad.

$ sudo systemctl enable etherpad --now

Zkontrolujte stav služby.

$ sudo systemctl status etherpad
? etherpad.service - Etherpad, a collaborative web editor.
   Loaded: loaded (/etc/systemd/system/etherpad.service; disabled; vendor preset: disabled)
   Active: active (running) since Thu 2021-10-21 15:06:53 UTC; 6s ago
 Main PID: 47228 (node)
    Tasks: 13 (limit: 11411)
   Memory: 102.8M
   CGroup: /system.slice/etherpad.service
           ??47228 /usr/bin/node --experimental-worker /opt/etherpad/etherpad-lite/node_modules/ep_etherpad-lite/node/server.js
.......

Krok 8 – Instalace SSL pomocí Let's Encrypt

Chcete-li nainstalovat certifikát SSL pomocí Let's Encrypt, musíme nainstalovat nástroj Certbot.

Nejprve si musíte stáhnout a nainstalovat úložiště EPEL.

$ sudo dnf install epel-release

Spuštěním následujících příkazů nainstalujte Certbot.

$ sudo dnf install certbot

Vygenerujte certifikát SSL.

$ sudo certbot certonly --standalone --agree-tos --preferred-challenges http -m [email protected] -d example.com

Výše uvedený příkaz stáhne certifikát do /etc/letsencrypt/live/etherpad.example.com adresář na vašem serveru.

Vytvořte skupinu Diffie-Hellman certifikát.

$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

Vytvořte adresář webroot s výzvou pro automatické obnovení Let's Encrypt.

$ sudo mkdir -p /var/lib/letsencrypt

Vytvořte úlohu Cron pro obnovení SSL. Poběží každý den, aby se zkontroloval certifikát a v případě potřeby se obnoví. Nejprve vytvořte soubor /etc/cron.daily/certbot-renew a otevřete jej pro úpravy.

$ sudo nano /etc/cron.daily/certbot-renew

Vložte následující kód.

#!/bin/sh
certbot renew --cert-name etherpad.example.com --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx"

Uložte soubor stisknutím Ctrl + X a zadáním Y až budete vyzváni.

Změňte oprávnění k souboru úlohy, aby byl spustitelný.

$ sudo chmod +x /etc/cron.daily/certbot-renew

Krok 9 – Instalace a konfigurace Nginx

Rocky Linux se dodává se starší verzí Nginx. Chcete-li nainstalovat nejnovější verzi, musíte přidat úložiště Nginx.

Vytvořte a otevřete soubor /etc/yum.repos.d/nginx.repo pro úpravy.

$ sudo nano /etc/yum.repos.d/nginx.repo

Vložte do něj následující kód.

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

Uložte soubor stisknutím Ctrl + X a zadáním Y až budete vyzváni po dokončení.

Nainstalujte Nginx.

$ sudo dnf install nginx

Povolte službu Nginx.

$ sudo systemctl enable nginx

Dále vytvořte a otevřete /etc/nginx/conf.d/etherpad.conf pro úpravy.

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

Vložte do něj následující kód.

server {
    listen       443 ssl http2;
    listen       [::]:443 ssl http2;
    server_name  etherpad.example.com;

    access_log  /var/log/nginx/etherpad.access.log;
    error_log   /var/log/nginx/etherpad.error.log;
    
    ssl_certificate      /etc/letsencrypt/live/etherpad.example.com/fullchain.pem;
    ssl_certificate_key  /etc/letsencrypt/live/etherpad.example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/etherpad.example.com/chain.pem;

    ssl_session_timeout  5m;
    ssl_session_cache shared:MozSSL:10m;  # about 40000 sessions
    ssl_session_tickets off;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
    ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;

    location / {
        rewrite  ^/$ / break;
        rewrite  ^/locales/(.*) /locales/$1 break;
        rewrite  ^/locales.json /locales.json break;
        rewrite  ^/admin(.*) /admin/$1 break;
        rewrite  ^/p/(.*) /p/$1 break;
        rewrite  ^/static/(.*) /static/$1 break;
        rewrite  ^/pluginfw/(.*) /pluginfw/$1 break;
        rewrite  ^/javascripts/(.*) /javascripts/$1 break;
        rewrite  ^/socket.io/(.*) /socket.io/$1 break;
        rewrite  ^/ep/(.*) /ep/$1 break;
        rewrite  ^/minified/(.*) /minified/$1 break;
        rewrite  ^/api/(.*) /api/$1 break;
        rewrite  ^/ro/(.*) /ro/$1 break;
        rewrite  ^/error/(.*) /error/$1 break;
        rewrite  ^/jserror(.*) /jserror$1 break;
        rewrite  ^/redirect(.*) /redirect$1 break;
        rewrite  /favicon.ico /favicon.ico break;
        rewrite  /robots.txt /robots.txt break;
        rewrite  /(.*) /p/$1;
        
        proxy_pass         http://127.0.0.1:9001;
        proxy_buffering    off;
        proxy_set_header   Host $host;
        proxy_pass_header  Server;

        # proxy headers
        proxy_set_header    X-Real-IP $remote_addr;
        proxy_set_header    X-Forwarded-For $remote_addr;
        proxy_set_header    X-Forwarded-Proto $scheme;
        proxy_http_version  1.1;

        # websocket proxying
        proxy_set_header  Upgrade $http_upgrade;
        proxy_set_header  Connection $connection_upgrade;
    }
}

# we're in the http context here
map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      close;
}

# enforce HTTPS
server {
    listen       80;
    listen       [::]:80;
    server_name  etherpad.example.com;
    return 301   https://$host$request_uri;
}

Uložte soubor stisknutím Ctrl + X a zadáním Y až budete vyzváni po dokončení.

Ověřte syntaxi konfiguračního souboru Nginx.

$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Pokud se zobrazí následující chyba, budete muset upravit soubor /etc/nginx/nginx.conf přidat/upravit velikost proměnné server_names_hash_bucket_size .

nginx: [emerg] could not build the server_names_hash, you should increase server_names_hash_bucket_size

Otevřete soubor /etc/nginx/nginx.conf pro úpravy.

$ sudo nano /etc/nginx/nginx.conf

Přidejte následující řádek před řádek include /etc/nginx/conf.d/*.conf; .

server_names_hash_bucket_size  64;

Uložte soubor stisknutím Ctrl + X a zadáním Y po výzvě. Znovu ověřte Nginx.

Nakonec spusťte službu Nginx a povolte novou konfiguraci.

$ sudo systemctl start nginx

Spusťte adresu URL https://etherpad.example.com ve vašem prohlížeči a otevře se domovská stránka Etherpadu. Nyní jej můžete použít k úpravě dokumentů a zvát spolupracovníky.

Aktualizace Etherpadu

Aktualizace Etherpadu je snadná. Prvním krokem je přepnutí do uživatelského prostředí Etherpad.

$ sudo -u etherpad bash

Přepněte na /opt/etherpad/etherpad-lite adresář.

[[email protected] user] cd /opt/etherpad/etherpad-lite

Stáhněte si nejnovější úložiště Etherpad do /opt/etherpad/etherpad-lite adresář.

[[email protected] ~]$ git pull origin

Spusťte na Etherpadu run.sh skript pro nastavení nejnovější verze Etherpadu.

[[email protected] etherpad-lite]$ src/bin/run.sh

Závěr

V tomto tutoriálu jsme nastavili Etherpad Collaborative Editor se serverem Nginx a zajistili jej pomocí Let's Encrypt SSL certifikátů. Vaše instalace Etherpadu je připravena k použití, kterou můžete rozšířit o další funkce včetně ověřených uživatelů, zásuvných modulů a přizpůsobení uživatelského rozhraní.

Pokud máte nějaké dotazy, napište je do komentářů níže.


Rocky Linux
  1. Jak nainstalovat phpMyAdmin na Rocky Linux

  2. Jak nainstalovat MariaDB 10.6 na Rocky Linux 8

  3. Jak nainstalovat MariaDB na Rocky Linux 8

  1. Jak nainstalovat GoAccess Web Log Analyzer na Rocky Linux 8

  2. Jak nainstalovat Python 3.9 na Rocky Linux 8

  3. Jak nainstalovat systém jízdenek OTRS (CE) na Rocky Linux

  1. Jak nainstalovat Rocky Linux 8.4

  2. Jak nainstalovat server MariaDB v Rocky Linux

  3. Jak nainstalovat Docker CE na Rocky Linux 8