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, чтобы подтвердить установку.
После установки проверьте службы 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 версии 18 и выше.
Настройка сервера MariaDB
После установки зависимостей вы настроите сервер MariaDB и создадите новую базу данных и пользователя для Etherpad. Вы защитите MariaDB с помощью утилиты ‘mariadb-secure-installation’, а затем настроите базу данных и пользователя с помощью клиента MariaDB.
Чтобы защитить сервер MariaDB, выполните следующие действия:
sudo mariadb-secure-installation
Вам будет предложено ввести конфигурацию сервера MariaDB:
- По умолчанию MariaDB устанавливается без пароля, нажмите ENTER, когда вам будет предложено ввести пароль.
- Теперь введите Y, чтобы установить пароль корня MariaDB. Затем введите новый пароль для MariaDB и повторите его.
- Введите Y, чтобы удалить анонимного пользователя из вашей установки MariaDB.
- Введите Y снова, когда появится запрос, чтобы отключить удаленный вход для пользователя MariaDB root.
- Введите Y, чтобы удалить тест базы данных по умолчанию из вашей MariaDB.
- Наконец, введите 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.
Установка 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.
Теперь откройте файл ‘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 на сервер Ubuntu 24.04. Вы запустили Etherpad с сервером баз данных MariaDB и веб-сервером Nginx. Кроме того, вы обеспечили безопасность Etherpad с помощью HTTPS через Certbot и Letsencrypt.