Поиск по сайту:

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


Это руководство существует для этих версий ОС.

  • Ubuntu 24.04 (Noble Numbat)
  • Ubuntu 20.04 (фокусная ямка)
  • Ubuntu 18.04 (Бионический бобр)

На этой странице

  1. Предварительные условия
  2. Установка зависимостей
  3. Настройка сервера MariaDB
  4. Установка Этерпад Лайт
  5. Запуск Etherpad как службы systemd
  6. Настройка Nginx в качестве обратного прокси
  7. Защита Etherpad с помощью HTTPS
  8. Доступ к Этерпаду
  9. Заключение

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

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

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

Прежде чем приступить к работе с этим руководством, убедитесь, что у вас есть следующее:

Сервер Ubuntu 24.04.
Пользователь без полномочий root с правами администратора.
Доменное имя, указывающее на 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, чтобы подтвердить установку.

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

Проверьте службу MariaDB следующим образом:

sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

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

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

sudo systemctl is-enabled nginx
sudo systemctl status nginx

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

node -v

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

Настройка сервера 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 еще раз, когда будет предложено отключить удаленный вход в систему для пользователя root MariaDB.
  5. Введите Y, чтобы удалить тест базы данных по умолчанию из вашей MariaDB.
  6. Наконец, введите Y, чтобы перезагрузить привилегии таблицы и применить новые изменения.

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

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

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.

Установка Этерпад Лайт

После создания базы данных и пользователя вы загрузите исходный код 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.

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

nano settings.json

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

 "title": "Etherpad Ubuntu 24",

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

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

Прокомментируйте конфигурацию базы данных «dirty» по умолчанию следующим образом:

 /*
 *"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.howtoforge.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  -d etherpad.howtoforge.local

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

Доступ к Этерпаду

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

Введите новое имя для первого пэда и нажмите ОК для подтверждения.

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

Заключение

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