Гид по технологиям

Установка Etherpad на Debian 12: пошаговое руководство

• 8 min read • Инструкции • Обновлено 24 Nov 2025
Установка Etherpad на Debian 12
Установка Etherpad на Debian 12

Схема установки Etherpad

Введение

Etherpad — это свободный и открытый веб-редактор для совместной работы в реальном времени, похожий по назначению на Google Docs или Zoho Writer. Он написан на JavaScript, поддерживает плагины, экспорт в популярные форматы (doc, pdf, odt, markdown) и ведёт историю правок. Это руководство поможет развернуть Etherpad на Debian 12 с использованием MariaDB, Nginx и защищённого HTTPS.

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

Основные понятия

  • Etherpad: веб-приложение для совместного редактирования текстов в реальном времени.
  • MariaDB: сервер баз данных, форк MySQL.
  • Nginx: веб-сервер и обратный прокси.
  • UFW: простой интерфейс для iptables.
  • Certbot/Let’s Encrypt: бесплатные SSL-сертификаты и клиент для их получения.

Требования

  • Сервер с Debian 12.
  • Пользователь с правами sudo (не root).
  • Зарегистрированный домен, направленный на IP сервера.

Быстрый план действий

  1. Обновить систему и установить зависимости (Node.js 18, npm, MariaDB, Nginx, UFW и др.).
  2. Настроить UFW для открытия SSH и HTTP/HTTPS.
  3. Защитить MariaDB и создать базу данных и пользователя для Etherpad.
  4. Скачать Etherpad, настроить settings.json на использование MariaDB и запуск на 127.0.0.1:9001.
  5. Создать systemd-сервис для запуска Etherpad в фоне.
  6. Настроить Nginx как обратный прокси и получить SSL от Let’s Encrypt через Certbot.
  7. Дополнительно: бэкапы, безопасность, мониторинг и отладка.

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

Обновите индекс пакетов:

sudo apt update

Обновление списка пакетов

Установите нужные пакеты. В этом примере устанавливаем MariaDB, Nginx, Node.js 18 и вспомогательные утилиты:

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

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

Проверьте версию Node.js (ожидается Node 18):

nodejs --version

Проверьте статус MariaDB и Nginx:

sudo systemctl is-enabled mariadb
sudo systemctl status mariadb
sudo systemctl is-enabled nginx
sudo systemctl status nginx

Проверка MariaDB

Проверка Nginx

Если службы работают и включены при старте, можно переходить к настройке брандмауэра.

2. Настройка UFW (Uncomplicated Firewall)

Разрешите SSH и включите UFW:

sudo ufw allow OpenSSH
sudo ufw enable

При подтверждении введите “y”.

Включение UFW

Разрешите профиль Nginx Full (HTTP и HTTPS):

sudo ufw app list
sudo ufw allow "Nginx Full"

Примените и проверьте правила:

sudo ufw reload
sudo ufw status

Вы должны увидеть активный UFW с профилями OpenSSH и Nginx Full.

Настройка UFW

Важное: не блокируйте SSH-канал, если работаете удалённо.

3. Настройка MariaDB

Запустите вспомогательную утилиту для базовой безопасности MariaDB:

sudo mariadb-secure-installation

Рекомендованные ответы при интерактивном запуске:

  • Нажать Enter когда будет запрос пароля root MariaDB.
  • Включить (Y) установку пароля root и задать новый надёжный пароль.
  • Отключить unix_socket-аутентификацию, если планируете использовать пароль (в диалоге введите n на соответствующий вопрос, затем Y для установки пароля).
  • Удалить анонимных пользователей — Y.
  • Запретить удалённый вход root — Y.
  • Удалить тестовую базу — Y.
  • Перезагрузить привилегии — Y.

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

sudo mariadb -u root -p

Внутри клиента выполните (замените StrongPasswordEtherpadDB на надёжный пароль):

CREATE DATABASE etherpad_lite_db;
CREATE USER etherpaduser@localhost IDENTIFIED BY 'StrongPasswordEtherpadDB';
GRANT CREATE,ALTER,SELECT,INSERT,UPDATE,DELETE ON etherpad_lite_db.* TO etherpaduser@localhost;
FLUSH PRIVILEGES;

Создание базы данных

Проверьте права пользователя:

SHOW GRANTS FOR etherpaduser@localhost;

В выходе вы увидите GRANT-строки, подтверждающие доступ к базе.

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

Завершите работу клиента командой “quit”.

4. Загрузка и настройка Etherpad

Создайте системного пользователя для запуска Etherpad и каталог установки:

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

Скачайте исходники и поменяйте владельца каталога:

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

Создание пользователя и скачивание Etherpad

Переключитесь на выполнение установки зависимостей от имени пользователя etherpad:

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

Этот скрипт установит Node-зависимости (npm-пакеты).

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

После завершения тестового запуска вы увидите, что сервер запущен локально на 127.0.0.1:9001. Нажмите Ctrl+C, чтобы остановить тестовый процесс и перейти к конфигурации.

Etherpad запущен

Откройте файл конфигурации settings.json:

nano settings.json

Измените заголовок, IP и порт, чтобы Etherpad слушал только на localhost:

  "title": "Etherpad Debian 12",
  "ip": "127.0.0.1",
  "port": 9001,

Закомментируйте или удалите конфигурацию “dirty” (локальное хранилище), а затем добавьте настройки MySQL/MariaDB:

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

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

Совет: храните пароль базы данных в безопасном менеджере секретов или в файле с ограниченным доступом (chmod 600).

5. Запуск Etherpad как systemd-сервиса

Создайте systemd-сервис:

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

Вставьте конфигурацию:

[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
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

Примените изменения и запустите сервис:

sudo systemctl daemon-reload
sudo systemctl start etherpad
sudo systemctl enable etherpad

Запуск Etherpad как сервиса

Проверьте статус и убедитесь, что процесс запущен на 127.0.0.1:9001:

sudo systemctl status etherpad
ss -tulpn | grep 9001

Проверка Etherpad

6. Настройка Nginx как обратного прокси

Создайте конфигурационный файл Nginx для вашего домена (замените etherpad.example.com на ваш домен):

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

Вставьте блок сервера:

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;

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

Активируйте сайт и проверьте конфигурацию:

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

Если всё в порядке, откройте в браузере http://your-domain и убедитесь, что вы видите интерфейс Etherpad.

Настройка Nginx

7. Получение SSL-сертификата (Let’s Encrypt + Certbot)

Установите Certbot и плагин для Nginx:

sudo apt install certbot python3-certbot-nginx

Установка Certbot

Запустите Certbot с настройкой Nginx и авто-редиректом на HTTPS (замените email и домен):

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

После завершения сертификаты будут храниться в /etc/letsencrypt/live/your-domain.

Теперь сайт будет автоматически перенаправлять HTTP на HTTPS, а Nginx конфиг будет обновлён Certbot.

Откройте сайт в браузере по HTTPS и создайте новую «подборку» (pad) чтобы проверить работу совместного редактирования.

Создание нового pad

Etherpad — совместная работа над документом

Дополнительные рекомендации и лучшие практики

Ниже собраны полезные материалы, чеклисты и рекомендации по эксплуатации.

Резервное копирование и восстановление

  • Бэкап базы данных MariaDB регулярно (например, ежедневный дамп):
mysqldump -u root -p etherpad_lite_db > /var/backups/etherpad_lite_db-$(date +%F).sql
  • Копируйте каталог /opt/etherpad-lite (если у вас есть локально установленные плагины или изменения).
  • Проверяйте бэкапы путем выборочного восстановления на тестовом хосте.

Критерии приёмки

  • Etherpad доступен по HTTPS по вашему домену.
  • Сервис etherpad запущен и включён в автозапуск systemd.
  • База данных etherpad_lite_db доступна для пользователя etherpaduser.
  • Порты 22, 80 и 443 открыты и защищены правилами UFW.

Обновления и обслуживание

  • Обновляйте систему и пакеты: sudo apt update && sudo apt upgrade.
  • При обновлении Node.js или зависимостей перезапускайте сервис: sudo systemctl restart etherpad.
  • Следите за журналом сервиса: sudo journalctl -u etherpad -f
  • Проверяйте автоматическое продление сертификатов Certbot: sudo certbot renew –dry-run

Мониторинг и логирование

  • Логи Nginx: /var/log/nginx/eplite.access.log и eplite.error.log.
  • Логи systemd для etherpad: journalctl -u etherpad.
  • Для продакшена рекомендую интегрировать Prometheus/Grafana, либо настроить системный мониторинг (Netdata, etc.).

Безопасность и жёсткая конфигурация

  • Запускайте Etherpad под отдельным системным пользователем (как в инструкции).
  • Ограничьте доступ к файлам конфигурации: chmod 600 settings.json если там хранятся пароли.
  • Используйте SELinux/AppArmor при возможной поддержке для дополнительной защиты.
  • Отключите ненужные плагины и внимательно проверяйте права плагинов.

Плагины и кастомизация

  • Установите плагины через npm/ep_* пакеты (следите за совместимостью с версией Etherpad):
cd /opt/etherpad-lite
sudo npm install ep_some-plugin --save
sudo chown -R etherpad:etherpad node_modules
sudo systemctl restart etherpad
  • Контролируйте установленные плагины в settings.json, некоторые плагины меняют поведение авторизации и логирования.

Руководство по отладке: типичные проблемы и решения

  1. Etherpad не стартует (systemd показывает ошибку):

    • Проверьте путь ExecStart в unit-файле.
    • Убедитесь, что node_modules установлены и версия Node.js корректна.
    • Просмотр логов: sudo journalctl -u etherpad -b
  2. Невозможно подключиться к базе данных:

    • Проверьте credentials в settings.json.
    • Попробуйте подключиться вручную: mysql -u etherpaduser -p -D etherpad_lite_db
    • Проверьте, что MariaDB слушает localhost и что пользователь имеет нужные привилегии.
  3. Nginx возвращает 502 Bad Gateway:

    • Проверьте, что etherpad слушает на 127.0.0.1:9001 (ss -tulpn | grep 9001).
    • Проверьте настройки proxy_pass в конфиге Nginx и перезапустите nginx.
  4. Проблемы с WebSocket (редактор зависает при одновременной работе нескольких пользователей):

    • Убедитесь, что proxy_set_header Upgrade и Connection правильно настроены в Nginx.
    • Убедитесь, что proxy_http_version 1.1 установлено.
  5. Certbot не может получить сертификат:

    • Проверьте, что ваш домен указывает на IP сервера и открыт 80/443 порт.
    • Убедитесь, что конфигурация Nginx корректна (nginx -t).

Рекомендации по производительности

  • Для небольших команд (до десятков одновременных пользователей) стандартного набора ресурсов обычно достаточно.
  • Для больших нагрузок масштабируйте вертикально (больше RAM/CPU) или горизонтально (разделите прокси и приложение, настройте кластер БД).
  • Включите swap только при необходимости; лучше добавить оперативной памяти.

Роли и чек-листы (кто за что отвечает)

Администратор сервера:

  • Установил ОС, обеспечил резервное копирование и мониторинг.
  • Настроил firewall, Nginx и Certbot.
  • Обновляет пакеты и следит за безопасностью.

Администратор Etherpad / DevOps:

  • Настроил базу данных и systemd-сервис.
  • Управляет плагинами и обновлениями Etherpad.
  • Следит за логами и производительностью.

Пользователь / Преподаватель / Команда:

  • Создаёт и редактирует документы, настраивает права доступа (внешние плагины).
  • Сообщает о проблемах в работу администратору.

Миграция и совместимость

  • Для перехода с другого сервиса экспортируйте документы в формате HTML/Markdown/ODT при возможности и импортируйте в Etherpad вручную или через плагины.
  • При миграции между версиями Etherpad проверяйте совместимость плагинов.

Часто задаваемые вопросы

Как изменить порт Etherpad?

Измените значение “port” в settings.json и перезапустите сервис systemd.

Как обновить Etherpad до новой версии?

  1. Сохраните бэкапы (база и конфиги).
  2. Сделайте git pull на /opt/etherpad-lite.
  3. Выполните npm install при необходимости.
  4. Перезапустите сервис: sudo systemctl restart etherpad.

Нужно ли защищать базу паролем?

Да. Используйте сильный пароль и ограничьте доступ по localhost. Рассмотрите шифрование дисков и резервное копирование в защищённое хранилище.

Короткая проверочная последовательность перед сдачей

  • Домен резолвится на сервер.
  • Порты 22/80/443 открыты и защищены.
  • MariaDB доступна и пользователь etherpaduser имеет привилегии.
  • Etherpad запущен локально на 127.0.0.1:9001.
  • Nginx правильно проксирует запросы на 127.0.0.1:9001.
  • HTTPS работает и сертификат корректен.
  • Выполнен тест совместной работы (несколько пользователей одновременно).

Итог

Вы установили и настроили Etherpad на Debian 12, защитили его с помощью UFW и TLS, настроили автоматический запуск через systemd и проксирование через Nginx. Дальше можно настраивать плагины, интеграции и автоматизацию бэкапов.

Заметки

  • В продакшене регулярно проверяйте автопродление сертификатов (certbot renew) и журналы безопасности.
  • Тестируйте обновления на отдельном стенде прежде, чем применять их в рабочей среде.

Полезные команды для быстрого доступа

sudo systemctl status etherpad
sudo journalctl -u etherpad -f
sudo systemctl restart nginx
sudo certbot renew --dry-run
mysqldump -u root -p etherpad_lite_db > /var/backups/etherpad_lite_db-$(date +%F).sql

Спасибо за внимание — удачного развёртывания и продуктивной совместной работы с Etherpad!

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро