Как установить Etherpad с Nginx и SSL в Debian 11

12 set 2022 9 min di lettura
Как установить Etherpad с Nginx и SSL в Debian 11
Indice dei contenuti

Введение

Etherpad — это бесплатная альтернатива с открытым исходным кодом таким сервисам, как Google Docs и Zoho Writer. Etherpad — это текстовый редактор для совместной работы в режиме реального времени для вашей команды, доступный из любого места и в любое время, поскольку Etherpad — это текстовый веб-редактор.

Любые изменения на Etherpad происходят в режиме реального времени, а etherpad также поддерживает управление версиями и встроенное форматирование для команд. Etherpad — это настраиваемый редактор с поддержкой различных плагинов. И он также поддерживает современные форматы документов, такие как doc, pdf, odt, markdown и т. д.

В этом руководстве вы установите и настроите совместный редактор Etherpad в реальном времени в Debian 11 Bullseye. В этом руководстве используется MariaDB в качестве серверной части базы данных и веб-сервер Nginx в качестве обратного прокси-сервера с включенным безопасным протоколом HTTPS. В конце концов, у вас будет установлен Ethernet и защищен с помощью безопасного шифрования HTTPS.

Если вы хотите установить Etherpad на удаленный сервер, продолжайте читать, в противном случае пропустите первый абзац «Подключение к серверу» и читайте следующий.

Подключение к серверу

Чтобы получить доступ к серверу, вам нужно знать IP-адрес. Вам также потребуется ваше имя пользователя и пароль для аутентификации. Чтобы подключиться к серверу как root, введите следующую команду:

ssh [email protected]_DEL_SERVER

Далее вам нужно будет ввести пароль пользователя root.

Если вы не используете пользователя root, вы можете войти под другим именем пользователя с помощью той же команды, а затем изменить root на свое имя пользователя:

ssh [email protected]_DEL_SERVER

Затем вам будет предложено ввести пароль пользователя.

Стандартный порт для подключения по ssh — 22, если ваш сервер использует другой порт, вам нужно будет указать его с помощью параметра -p, затем введите следующую команду:

ssh [email protected]_DEL_SERVER -p PORTA

Предпосылки

Для выполнения этого руководства вам сначала потребуются следующие требования:

  • Сервер Debian 11, вы можете использовать 1 ГБ ОЗУ для тестирования. Для производства вы можете использовать несколько ресурсов, в зависимости от среды и использования.
  • Пользователь без полномочий root с привилегиями root. При желании вы можете использовать пользователя root.
  • Доменное имя для установки и убедитесь, что оно указывает на IP-адрес сервера. В этом примере мы будем использовать домен etherpad.example.io.

Когда у вас есть все эти предварительные условия, перейдите к первому разделу, чтобы начать установку.

Установить зависимости пакета

Etherpad — это веб-приложение, основанное на Node.js. На момент написания последняя версия Etherpad — xxx, и для нее требуется как минимум версия 14.x Node.js. В этом разделе вы установите некоторые зависимости пакетов, включая Node.js, на сервер Debian 11.

Сначала обновите список индексов пакетов, затем установите зависимости сборки, выполнив следующую команду:

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

В этом руководстве вы установите Node.js из репозитория Nodesource, который предоставляет несколько версий Node.js. В этом руководстве для установки Etherpad используется Node.js версии 16.x.

Теперь выполните следующую команду, чтобы добавить репозиторий Node.js в вашу систему. Эта команда автоматически добавит репозиторий Nodesource для обновления индекса пакета:

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

Затем установите Node.js 16.x из репозитория Nodesource, выполнив следующую команду:

sudo apt install nodejs -y

После завершения установки проверьте версию Node.js с помощью следующей команды:

node --version

Вы получите вывод с установленной версией узла.

В этом разделе вы установили зависимости пакетов для Etherpad и Node.js версии 16.x из репозитория Nodesource. Далее вы установите и настроите базу данных MariaDB.

Установите и настройте базу данных MariaDB

В этом разделе вы установите базу данных MariaDB на сервер Debian 11. Затем вы установите пароль root для MariaDB и, наконец, создадите новую базу данных и пользователя для Etherpad.

По умолчанию пакеты MariaDB доступны в репозитории Debian 11. Чтобы установить его, выполните следующую команду:

sudo apt install mariadb-server -y

Когда установка MariaDB будет завершена, она будет автоматически запущена и включена.

MariaDB предоставляет инструмент командной строки, который помогает безопасно развернуть MariaDB, включая настройку пароля root для MariaDB. Запустите команду mysql_secure_installation , как показано ниже:

mysql_secure_installation

Теперь вам зададут несколько вопросов, связанных с развертыванием MariaDB, и попросят установить пароль root.

Пользователь root по умолчанию для mariaDB не имеет пароля, нажмите ENTER.

Enter current password for root (enter for none):
 OK, successfully used password, moving on...

Теперь вам будет предложено изменить метод аутентификации с помощью « unix_socket », введите « Y », чтобы принять его.

Switch to unix_socket authentication [Y/n] Y
 Enabled successfully!
 Reloading privilege tables..... Success!

Введите « Y », чтобы установить новый пароль root для MariaDB. Затем введите надежный пароль и повторите.

Change the root password? [Y/n] Y
 New password:
 Re-enter new password:
 Password updated successfully!
 Reloading privilege tables..... Success!

Установка MariaDB по умолчанию поставляется с анонимным пользователем. Введите « Y », чтобы удалить его.

Remove anonymous users? [Y/n] Y... Success!

Теперь отключите удаленный доступ для пользователя root MariaDB. ' Y ', чтобы согласиться.

Disallow root login remotely? [Y/n] Y... Success!

Затем введите « Y », чтобы принять и удалить базу данных « test » по умолчанию и все привилегии для нее.

Remove test database and access to it? [Y/n] Y
 - Dropping test database...... Success!
 - Removing privileges on test database...... Success!

Наконец, перезагрузите привилегии таблицы, чтобы применить новую конфигурацию. Введите ' Y ' для подтверждения и нажмите ENTER.

Reload privilege tables now? [Y/n] Y... Success!

После того, как все настройки будут завершены, вы получите выходное сообщение « Все готово! как показано ниже.

All done! If you've completed all of the above steps, your MariaDB
 installation should now be secure.

 Thanks for using MariaDB!

Все сделано! Если вы выполнили все вышеперечисленные действия, Теперь установка MariaDB должна быть безопасной.

Затем выполните следующую команду, чтобы получить доступ к оболочке MariaDB. Вам будет предложено ввести корневой пароль MariaDB. Введите свой пароль:

mysql -u root -p

Теперь создайте новую базу данных и нового пользователя для Etherpad, выполнив следующие запросы. В этом примере будет создана новая база данных etherpad_lite_db с пользователем etherpaduser и паролем StrongPasswordEtherpadDB. Убедитесь, что вы изменили свой пароль:

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];

Затем перезагрузите все привилегии таблицы, чтобы применить новую конфигурацию, затем выполните запрос « exit », чтобы выйти из оболочки mariaDB:

FLUSH PRIVILEGES;
EXIT

В этом разделе вы завершили установку и настройку базы данных MariaDB в Debian 11. Кроме того, вы создали базу данных и пользователя для Ethernet. Далее вы загрузите исходный код Etherpad и установите его.

Установите и настройте Etherpad.

В этом разделе вы установите Etherpad из исходного кода, затем настроите его с помощью MariaDB в качестве базы данных и создадите новый файл systemd для Etherpad. В конце концов, Ethernet будет работать как служба systemd.

Перед загрузкой исходного кода Etherpad вы создадите в своей системе нового пользователя etherpad. Этот пользователь будет использоваться для запуска сценария установки Etherpad и запуска службы Etherpad.

Запустите команду « adduser » ниже, чтобы создать нового пользователя « etherpad ». Также укажите домашний каталог в ' /opt/etherpad-lite '. Этот каталог будет использоваться для хранения всех исходников Etherpad:

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

Теперь перейдите в каталог ' /opt ' и клонируйте исходный код Etherpad с помощью команды git.

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

Затем измените владельца каталога etherpad-lite на пользователя etherpad и группу etherpad:

sudo chown -R etherpad:etherpad etherpad-lite

Теперь перейдите в каталог « etherpad-lite / » и установите все зависимости Node.js с помощью сценария установки « i nstallDeps.sh », как показано ниже. Сценарий установки installDeps.sh запустится от имени пользователя без полномочий root etherpad:

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

Дождитесь завершения установки всех зависимостей пакета.

Затем отредактируйте файл settings.json, чтобы настроить установку Etherpad. Вы можете использовать редактор nano для редактирования этого файла или использовать свой любимый редактор:

nano settings.json

В верхней части строки измените заголовок на свой. В этом примере используется название « Entherpad Johndoe »:

 "title": "Etherpad Johndoe",

В этом руководстве Ethernet будет работать с обратным прокси-сервером Nginx. И для безопасности полезно запускать Etherpad на локальном хосте. Теперь измените ip:' in ' 127.0.0.1 ». В этой конфигурации Ethernet будет работать только на локальном хосте:

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

По умолчанию Ethernet использует SQLite в качестве своей базы данных. Закомментируйте все эти строки, чтобы отключить:

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

Теперь введите конфигурацию базы данных MariaDB ниже. И убедитесь, что вы изменили имя базы данных, пользователя и пароль:

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

Сохраните и закройте файл.

Затем создайте новый служебный файл systemd ' etherpad.service ' в каталоге ' /etc/systemd/system '. Этот файл будет содержать все детали конфигурации, необходимые Etherpad для правильной работы на сервере. Создайте его с помощью редактора nano:

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

Добавьте в файл следующую конфигурацию:

[Unit]
 Description=Etherpad-lite, the collaborative 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
 # use mysql plus a complete settings.json to avoid Service hold-off time over, scheduling restart.
 Restart=always

 [Install]
 WantedBy=multi-user.target

Этот служебный файл будет работать от имени пользователя и группы etherpad. И вы заметите параметр « Environment=NODE_ENV=production », что означает, что приложение Etherpad будет работать в производственной среде. Параметр ExecStart=.. — это команда по умолчанию для запуска приложения Etherpad.

Сохраните и закройте файл.

Теперь перезагрузите диспетчер systemd, чтобы применить новый служебный файл:

sudo systemctl daemon-reload

Затем запустите и включите службу etherpad, затем проверьте ее состояние, выполнив следующую команду:

sudo systemctl enable --now etherpad
sudo systemctl status etherpad

Вы получите сообщение о том, что служба etherpad теперь « активна (работает) », она автоматически запускается при загрузке системы и работает на локальном хосте с портом по умолчанию « 9001 ».

На этом вы завершили установку Etherpad. Далее вы установите Nginx, настроив его в качестве обратного прокси-сервера для приложения Etherpad.

Установить и настроить Nginx.

Для рабочей среды всегда рекомендуется размещать обратный прокси-сервер перед приложением. Это повысит производительность и безопасность ваших приложений. В этом разделе вы установите и настроите веб-сервер Nginx в качестве обратного прокси-сервера. В конце концов, у вас будет Etherpad, работающий под вашим доменным именем и защищенный протоколом HTTPS.

Сначала установите пакеты Nginx, выполнив следующую команду:

sudo apt install nginx -y

Теперь, если в вашей системе Debian установлен брандмауэр UFW. Разрешите публичный доступ к портам HTTP и HTTPS (80 и 443), выполнив команду ufw ниже:

sudo ufw allow "Nginx Full"

Вы получите следующий вывод:

Rule added
 Rule added (v6)

Затем создайте новый файл виртуального хоста Nginx « etherpad » в каталоге « /etc/nginx/sites-available/ ». Создайте его с помощью редактора nano или вашего любимого редактора:

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

Скопируйте и вставьте следующую конфигурацию в файл. Кроме того, замените свое доменное имя и путь к SSL-сертификату своей информацией. Для SSL-сертификатов вы можете свободно генерировать SSL-сертификаты с помощью Letsencrypt:

# enforce HTTPS
 server {
 listen 80;
 listen [::]:80;
 server_name etherpad.example.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;
 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 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;
 }
 }

Этот файл виртуального хоста Nginx будет автоматически перенаправлять трафик с HTTP на защищенный протокол HTTPS. Для отладки в случае ошибки проверьте лог-файл ' /var/log/nginx/eplite.error.log '. Все клиентские запросы будут отправляться на proxy_pass — приложение Etherpad, работающее на порту 9001 локального хоста:

Сохраните и закройте файл, затем активируйте конфигурацию виртуального хоста, создав символическую ссылку файла ' etherpad ' на каталог ' /etc/nginx/sites-enabled ':

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

Затем запустите команду « nginx -t », чтобы проверить конфигурацию 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.

Наконец, перезапустите службу Nginx, чтобы применить новый файл виртуального хоста Nginx:

sudo systemctl restart nginx

В этом разделе вы завершили установку и настройку Nginx в качестве обратного прокси-сервера для приложения Etherpad. Ваш Etherpad теперь доступен по адресу http://etherpad.example.io.

Проверьте установку Ethernet

Откройте веб-браузер и введите доменное имя « http://etherpad.example.io/ » в адресе. И вы будете автоматически перенаправлены на защищенное соединение HTTPS.

Чтобы создать новую площадку, введите имя площадки в столбце и нажмите кнопку « ОК ».

Теперь вы увидите редактор совместной работы Etherpad в реальном времени.

Вывод

В этом руководстве вы установили и настроили совместный редактор Etherpad Realtime Collaborative Editor на сервере Debian 11. Кроме того, вы установили и настроили Nginx в качестве обратного прокси-сервера для приложения Etherpad.

Теперь вы готовы использовать etherpad в качестве редактора совместной работы в вашей команде. Дополнительные сведения об Etherpad см. в официальной документации Etherpad.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.