Як розгорнути Etherpad на власному сервері у 2026 році: pads, плагіни та резервні копії бази даних
Практичний посібник із самостійного розгортання Etherpad: Docker, порти, постійні дані, TLS, безпека, резервні копії та проблеми, які заважають використовувати систему у production. Із перевірками.
Якщо ви вже намагалися самостійно розгорнути Etherpad, вам, імовірно, знайома ця неприємна ситуація: інтерфейс відкривається, але сесії розриваються, бо тайм-аути proxy надто короткі. Повторне створення контейнера рідко усуває розбіжності між URL, станом і залежностями.
У цьому посібнику використано один конкретний критерій готовності — відкрити один pad у двох браузерах, одночасно редагувати його, переглянути ревізії та експортувати результат у потрібному форматі. Кожне рішення щодо конфігурації оцінюється за цим критерієм, а не за зеленим статусом контейнера.
Виберіть найменшу придатну топологію Etherpad
Найменша відповідальна топологія Etherpad містить один приватний listener на порту 9001, маршрут ingress і чітко задокументовану межу стану. Мережевий контракт Etherpad для надійної роботи з кількома користувачами — це Postgres або інша підтримувана база даних. Приватні endpoints залишайте у внутрішньому DNS, дозволяйте лише необхідні вихідні підключення та надайте Etherpad обмежені права сервісного облікового запису.
Перевірте топологію: попросіть чистий клієнт відкрити один pad у двох браузерах, одночасно редагувати його, переглянути ревізії та експортувати результат у потрібному форматі. Під час виконання стежте за WebSocket-сесіями, кількістю ревізій, записами до бази даних і виконанням плагінів. Результат покаже, чи має наступне покращення стосуватися пам’яті, сховища, мережі або окремого worker, замість того щоб заохочувати довільне збільшення ресурсів контейнера.
Створіть контейнер Etherpad, який можна замінити
Використовуйте контейнер як середовище виконання, яке можна замінити, а не як місце зберігання істини.
docker run -d \
--name etherpad \
--restart unless-stopped \
-p 127.0.0.1:9001:9001 \
-v etherpad-data:/opt/etherpad-lite/var \
-e ADMIN_PASSWORD=replace-with-a-long-random-value \
etherpad/etherpad:latest
Додайте перевірені параметри підключення до Postgres або іншої підтримуваної бази даних для надійної роботи з кількома користувачами; для приватних сервісів використовуйте приватні імена. Перш ніж відкривати доступ до контейнера, перевірте користувача контейнера, доступні для запису шляхи та прив’язаний listener. Виконайте повну дію — відкрийте один pad у двох браузерах, одночасно відредагуйте його, перегляньте ревізії та експортуйте результат у потрібному форматі — і збережіть точне посилання на image, яка дала цей результат.
Не дозволяйте успішній роботі proxy приховати збій застосунку
Браузер, API-клієнт і Etherpad мають узгоджено використовувати один origin. Для цього налаштуйте публічний URL і підтримку WebSocket у proxy. Зберігайте початкові host і protocol, водночас не допускаючи доступу до порту 9001 як до альтернативної публічної адреси.
Посібник із діагностики недоступності сайту допоможе відрізнити недоступний маршрут від застосунку, який відповідає на запити. Тут ця відмінність важлива: сесії розриваються, бо тайм-аути proxy надто короткі. Лише першу проблему можна виправити змінами ingress; друга потребує перевірки логів Etherpad, стану або навантаження.
Спроєктуйте відновлення Etherpad до запуску
Захистіть стан Etherpad до оптимізації його контейнера. Необхідний набір містить базу даних, завантажені плагіни та налаштування. Підключіть /opt/etherpad-lite/var до bootstrap, запишіть нешкідливі тестові дані та замініть контейнер, щоб довести, що цей шлях справді зберігається. Якщо кілька сховищ мають залишатися узгодженими, задокументуйте порядок призупинення записів і створення резервних копій.
Зберігайте копії за межами сервера розгортання та шифруйте матеріали, що містять облікові дані або приватний вміст. Відновлення є успішним, коли повертаються pads, автори, ревізії та плагіни, а одночасні редагування й надалі узгоджуються. Відмінність між постійним mount і незалежною копією описано в матеріалі постійне сховище та snapshots.
Визначте межу довіри Etherpad
Закрийте вікно bootstrap одразу після появи першого довіреного адміністратора. Конкретна пастка Etherpad — використання стандартного пароля адміністратора або можливість для всіх редагувати pads; безпечніший підхід — установити справжній пароль адміністратора, визначити, хто може створювати pads, і не вважати непомітний URL pad приватним.
Негайно замініть зразкове значення ADMIN_PASSWORD, зберігайте його за межами image та змініть його, як облікові дані адміністратора, якщо пароль було розкрито. Приватна мережа має використовуватися для передавання облікових даних залежностей, а ролі всередині Etherpad повинні надавати мінімально необхідні права. Не записуйте конфіденційні тіла запитів і відповіді провайдерів до звичайних логів.
Оновлюйте Etherpad без здогадок
Спостерігайте за роботою Etherpad: WebSocket-сесіями, кількістю ревізій, записами до бази даних і виконанням плагінів. Установлюйте ліміти із запасом для цього навантаження та не використовуйте liveness probe, яка конкурує з ним за ресурси. Перевірка оператора також має регулярно намагатися відкрити один pad у двох браузерах, одночасно відредагувати його, переглянути ревізії та експортувати результат у потрібному форматі.
Під час оновлень пам’ятайте, що версії плагінів Etherpad, синтаксис налаштувань і міграції бази даних потрібно тестувати разом. Розгорніть candidate-версію на відновленій копії та повторіть відомий тест. Якщо сесії розриваються, бо тайм-аути proxy надто короткі, використовуйте runtime-логи та фактичний мережевий запит, щоб визначити, яке припущення змінилося.
Що має пройти до появи реальних даних Etherpad
Для Etherpad визначте відому як справну транзакцію до запуску: відкрийте один pad у двох браузерах, одночасно відредагуйте його, перегляньте ревізії та експортуйте результат у потрібному форматі. Збережіть її передумови, очікувану відповідь і кроки очищення у version control без секретних значень. Зафіксуйте image, використану для створення цього еталона.
Використовуйте транзакцію для перевірки заміни та незалежного відновлення. Відновлений сервіс можна вважати придатним лише тоді, коли повертаються pads, автори, ревізії та плагіни, а одночасні редагування й надалі узгоджуються. Водночас спостерігайте за WebSocket-сесіями, кількістю ревізій, записами до бази даних і виконанням плагінів та перетворюйте найповільнішу або найбільш обмежену частину на service-level alert.
Перевірка також має містити негативний сценарій: тимчасово забороніть тестовій identity доступ до Postgres або іншої підтримуваної бази даних для надійної роботи з кількома користувачами. Переконайтеся, що Etherpad повертає зрозумілу помилку, зберігаючи дані, відновіть правильний стан і повторіть відому як справну транзакцію. Збереження обох результатів не дасть поверхневому health endpoint стати єдиним доказом працездатності у production.
Розгорніть Etherpad у Dockup, не втрачаючи його меж
Для Etherpad Dockup найкорисніший на межі між image та постійним сервісом. Він зберігає маршрут до порту 9001, TLS, секретні значення та сховище під час заміни контейнерів — незалежно від того, чи обчислювальні ресурси надає Dockup, чи ваш підключений сервер.
Завершіть налаштування з урахуванням особливостей застосунку: установіть публічний URL і підтримку WebSocket у proxy; підключіть і протестуйте Postgres або іншу підтримувану базу даних для надійної роботи з кількома користувачами; виконайте цю перевірку: відкрийте один pad у двох браузерах, одночасно відредагуйте його, перегляньте ревізії та експортуйте результат у потрібному форматі. Збережіть результат як deployment check, щоб наступне оновлення image оцінювалося за поведінкою, а не за статусом контейнера.
Поширені запитання
Що потрібно Etherpad для розгортання у production?
Маршрутизуйте контейнер Etherpad на порту 9001 через один HTTPS origin. Вимогою до мережевої інфраструктури є Postgres або інша підтримувана база даних для надійної роботи з кількома користувачами. Не вважайте Etherpad готовим, доки не зможете відкрити один pad у двох браузерах, одночасно відредагувати його, переглянути ревізії та експортувати результат у потрібному форматі.
Дані Etherpad потрібно включати до резервної копії?
Забезпечте збереження /opt/etherpad-lite/var і включіть базу даних, завантажені плагіни та налаштування до одного manifest відновлення. Відновлення Etherpad можна вважати успішним лише тоді, коли повертаються pads, автори, ревізії та плагіни, а одночасні редагування й надалі узгоджуються.
Чи потрібен Etherpad HTTPS за reverse proxy?
Використовуйте HTTPS для публічного origin Etherpad і залиште порт 9001 у внутрішньому маршруті. Правильно застосуйте налаштування Etherpad: установіть публічний URL і підтримку WebSocket у proxy. Для Etherpad HTTPS захищає облікові дані або вміст користувачів під час передавання та забезпечує узгоджену поведінку клієнта, чутливу до origin.
Як тестувати оновлення Etherpad?
Відновіть поточний стан Etherpad в ізольованому розгортанні, застосуйте candidate-версію та повторіть транзакцію приймання. Зверніть особливу увагу на те, що версії плагінів Etherpad, синтаксис налаштувань і міграції бази даних потрібно тестувати разом. Зберігайте попередню image Etherpad, доки не буде зрозумілою межа міграції даних і rollback.
