Как установить редактор совместной работы Etherpad на сервер Ubuntu 24.04

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

В этом руководстве мы проведем вас через процесс установки редактора для совместной работы Etherpad на сервер Ubuntu 24.04. Вы настроите Etherpad с сервером базы данных MariaDB, Nginx в качестве обратного прокси, а затем защитите Etherpad с помощью HTTPS через Certbot и Letsencrypt.

Предварительные условия

Чтобы начать работу с этим руководством, убедитесь, что у вас есть следующее:

Сервер Ubuntu 24.04.
Некорневой пользователь с правами администратора.
Доменное имя, указывающее на IP-адрес сервера.

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

Etherpad — это совместный редактор реального времени, написанный на Node.js. Чтобы установить его, необходимо установить такие зависимости пакетов, как Node.js, NPM и Git. Etherpad также требует Python3 и MySQL/MariaDB для базы данных.

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

sudo apt update

обновить репозиторий

Теперь установите зависимости для Etherpad с помощью команды ниже. С помощью этой команды вы установите сервер MariaDB, Nginx, Node.js, Python3, Git и некоторые необходимые инструменты.

sudo apt install mariadb-server nginx nodejs npm gzip git curl python3 libssl-dev

Введите Y, чтобы подтвердить установку.

установить deps

После установки проверьте службы MariaDB и Nginx, чтобы убедиться, что обе службы запущены.

Проверьте службу MariaDB, выполнив следующие действия:

sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

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

проверить mariadb

Теперь проверьте службу Nginx с помощью команды ниже. Вы должны получить аналогичный результат, если служба Nginx запущена и включена.

sudo systemctl is-enabled nginx
sudo systemctl status nginx

проверить nginx

И наконец, проверьте версию Node.js с помощью команды.

node -v

Убедитесь, что у вас есть Node.js версии 18.x или выше. Etherpad поддерживает Node.js версии 18 и выше.

проверить nodejs

Настройка сервера MariaDB

После установки зависимостей вы настроите сервер MariaDB и создадите новую базу данных и пользователя для Etherpad. Вы защитите MariaDB с помощью утилиты ‘mariadb-secure-installation’, а затем настроите базу данных и пользователя с помощью клиента MariaDB.

Чтобы защитить сервер MariaDB, выполните следующие действия:

sudo mariadb-secure-installation

Вам будет предложено ввести конфигурацию сервера MariaDB:

  1. По умолчанию MariaDB устанавливается без пароля, нажмите ENTER, когда вам будет предложено ввести пароль.
  2. Теперь введите Y, чтобы установить пароль корня MariaDB. Затем введите новый пароль для MariaDB и повторите его.
  3. Введите Y, чтобы удалить анонимного пользователя из вашей установки MariaDB.
  4. Введите Y снова, когда появится запрос, чтобы отключить удаленный вход для пользователя MariaDB root.
  5. Введите Y, чтобы удалить тест базы данных по умолчанию из вашей MariaDB.
  6. Наконец, введите Y, чтобы перезагрузить привилегии таблиц и применить новые изменения.

После того как вы обеспечили безопасность и настроили сервер MariaDB, создайте новую базу данных и пользователя для Etherpad.

Войдите на сервер MariaDB с помощью следующей команды. При появлении запроса введите пароль MariaDB root.

sudo mariadb -u root -p

Далее выполните следующие запросы MariaDB для создания новой базы данных ‘etherpad_db‘, пользователь ‘etherpad‘, с паролем ‘StrongPasswordEtherpadDB‘. Вы можете изменить следующие сведения о базе данных, используя свою информацию.

CREATE DATABASE etherpad_db;
CREATE USER etherpad@localhost IDENTIFIED BY 'StrongPasswordEtherpadDB';
GRANT CREATE,ALTER,SELECT,INSERT,UPDATE,DELETE on etherpad_db.* to etherpad@localhost;
FLUSH PRIVILEGES;

создание базы данных и пользователя

Теперь выполните следующий запрос, чтобы убедиться, что пользователь ‘etherpad‘ может получить доступ к базе данных ‘etherpad_db‘.

SHOW GRANTS FOR etherpad@localhost;

Ниже вы можете увидеть пользователя ‘etherpad‘ с несколькими привилегиями к базе данных ‘etherpad_db‘.

Наконец, введите quit, чтобы выйти из сервера MariaDB.

проверка пользователя db

Установка Etherpad Lite

После создания базы данных и пользователя вы загрузите исходный код Etherpad, установите зависимости Etherpad с помощью сценария установки, а затем настроите установку Etherpad с сервером MariaDB.

По умолчанию Etherpad использует менеджер пакетов pnpm для управления установкой, поэтому сначала вы должны установить ‘pnpm’ глобально в вашу систему.

Сначала установите пакет pnpm глобально (-g) с помощью следующей команды npm. По умолчанию проект Etherpad использует pnpm в качестве менеджера пакетов Node.js вместо стандартного npm.

npm install pnpm -g

Теперь выполните следующую команду для создания нового системного пользователя ‘etherpad‘. Этот пользователь будет использоваться для запуска приложения Etherpad.

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

Далее перейдите в раздел /opt и загрузите исходный код Etherpad в папку ‘etherpad-lite‘ каталог с помощью git. Затем измените права собственности на каталог ‘/opt/etherpad-lite‘ каталог пользователю ‘etherpad‘.

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

После этого перейдите в каталог ‘opt/etherpad-lite’ и установите зависимости Node.js для Etherpad, выполнив следующие действия.

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

Ниже приведен процесс загрузки зависимостей Etherpad с помощью менеджера пакетов pnpm.

установка зависимостей

После установки зависимостей Etherpad должен быть запущен автоматически. Ниже вы можете видеть, что Etherpad 2.0.3 запущен.

Нажмите Ctrl+c, чтобы завершить текущий процесс Etherpad. Вы будете настраивать Etherpad с базой данных MariaDB.

запуск etherpad

Теперь откройте файл ‘settings.json‘ с помощью следующего редактора nano.

nano settings.json

Измените название вашей установки Etherpad.

 "title": "Etherpad Ubuntu 24",

Измените IP-адрес по умолчанию на 12.0.0.1 или localhost. Это приведет к запуску процесса Etherpad только на localhost.

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

Закомментируйте значение по умолчанию ‘грязный‘ Конфигурация базы данных выглядит следующим образом:

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

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

 "dbType" : "mysql",
"dbSettings" : {
"user": "etherpad",
"host": "127.0.0.1",
"port": 3306,
"password": "StrongPasswordEtherpadDB",
"database": "etherpad_db",
"charset": "utf8mb4"
},

После завершения сохраните файл и выйдите из редактора.

Запуск Etherpad в качестве службы systemd

Теперь, когда вы установили и настроили Etherpad, создайте новый файл службы systemd для Etherpad. С его помощью вы будете запускать Etherpad в фоновом режиме и сможете управлять Etherpad с помощью команды ‘systemctl’.

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

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

Добавьте в файл следующую конфигурацию. С ее помощью вы запустите Etherpad в фоновом режиме как службу systemd с помощью команды ‘pnpm’.

[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
ExecStart=/usr/local/bin/pnpm run prod
# use mysql plus a complete settings.json to avoid Service hold-off time over, scheduling restart.
Restart=always

[Install]
WantedBy=multi-user.target

Сохраните файл и выйдите.

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

sudo systemctl daemon-reload

После перезагрузки systemd запустите и включите службу ‘etherpad’ с помощью следующей команды systemctl.

sudo systemctl start etherpad
sudo systemctl enable etherpad

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

sudo systemctl status etherpad

Ниже показано, что служба Etherpad запущена как служба.

Наконец, проверьте порт по умолчанию Etherpad 9001 с помощью команды ‘ss’, приведенной ниже. Вы должны увидеть, что порт 9001 используется процессом Etherpad.

ss -tulpn | grep 9001

Настройка Nginx в качестве обратного прокси

В этом руководстве вы будете запускать Etherpad с Nginx в качестве обратного прокси. Итак, сейчас вы создадите конфигурацию блока сервера Nginx для Etherpa и убедитесь, что вы подготовили доменное имя для Etherpad.

Используйте следующую команду редактора nano для создания нового блока сервера Nginx ‘/etc/nginx/sites-available/etherpad.conf’.

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

Добавьте следующую конфигурацию и измените параметр server_name на имя вашего домена. С помощью этой конфигурации вы будете использовать Nginx в качестве обратного прокси для Etherpad, который работает на порту 9001.

```
server {
listen 80;
server_name etherpad.local;

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 «upgrade»;
}

}

После завершения работы сохраните и закройте файл.

Теперь выполните приведенную ниже команду, чтобы активировать серверный блок ‘etherpad.conf‘ файл и проверьте синтаксис вашего Nginx.

sudo ln -s /etc/nginx/sites-available/etherpad.conf /etc/nginx/sites-enabled/
sudo nginx -t

Вы должны получить на выходе ‘nginx в порядке… тест успешно завершен‘ с правильным синтаксисом Nginx.

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

sudo systemctl restart nginx

Защита Etherpad с помощью HTTPS

После настройки обратного прокси-сервера Nginx вам предстоит защитить Etherpad с помощью HTTPS. Если вы используете публичный домен, вы можете воспользоваться следующими шагами для настройки HTTPS с помощью Certbot и Letsencrypt. Пользователи локального домена могут использовать самоподписанные сертификаты.

Установите Certbot и плагин Certbot Nginx с помощью следующей команды. Когда появится запрос, введите Y, чтобы подтвердить установку.

sudo apt install certbot python3-certbot-nginx

Теперь выполните следующую команду certbot, чтобы сгенерировать SSL/TLS-сертификаты от Letsencrypt. Не забудьте изменить доменное имя и адрес электронной почты на свои данные.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d etherpad.local

После завершения процесса ваши сертификаты будут доступны в ‘/etc/letsencrypt/live/domain.com‘ директория. Кроме того, ваша установка Etherpad должна автоматически работать с HTTPS через плагин Certbot Nginx.

Доступ к Etherpad

Посетите доменное имя Etherpad https://etherpad.local, чтобы получить доступ к своей установке Etherpad. В случае успеха вы получите следующую страницу:

Введите новое имя для вашего первого планшета и нажмите кнопку OK для подтверждения.

создать блокнот

Теперь вы увидите редактор документов для Etherpad. Теперь вы можете редактировать документ одновременно с вашими друзьями или коллегами.

редактор etherpad

Заключение

Поздравляем! Вы установили редактор совместной работы Etherpad на сервер Ubuntu 24.04. Вы запустили Etherpad с сервером баз данных MariaDB и веб-сервером Nginx. Кроме того, вы обеспечили безопасность Etherpad с помощью HTTPS через Certbot и Letsencrypt.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *