Rejstřík deníkuDockup / terénní poznámka
Note / self-host-etherpad

Jak si v roce 2026 hostovat Etherpad sami: pady, pluginy a zálohy databáze

Praktický návod na self-hosting Etherpadu, který pokrývá Docker, porty, persistentní data, TLS, bezpečnost, zálohy a selhání bránící produkčnímu použití. Včetně kontrol.

Pokud jste se už pokoušeli hostovat Etherpad sami, tento frustrující stav vám nejspíš bude povědomý: UI se zobrazí, ale sessions se odpojují, protože timeouty proxy jsou příliš krátké. Opětovné vytvoření kontejneru jen zřídka vyřeší nesoulad mezi URL, stavem a dependencies.

Tento postup používá jedno konkrétní kritérium dokončení — otevřít jeden pad ve dvou prohlížečích, současně ho upravovat, zkontrolovat revize a exportovat výsledek v požadovaném formátu. Každé konfigurační rozhodnutí posuzujeme podle tohoto kritéria, nikoli podle zeleného odznaku kontejneru.

Zvolte nejmenší použitelnou topologii Etherpadu

Nejmenší zodpovědná topologie Etherpadu obsahuje jeden privátní listener na portu 9001, ingress route a zdokumentovanou hranici stavu. Síťovým kontraktem Etherpadu pro trvalé použití více uživateli je Postgres nebo jiná podporovaná databáze. Privátní endpointy ponechte na interním DNS, povolte pouze nezbytná odchozí volání a Etherpadu přidělte service credential s omezeným rozsahem oprávnění.

Topologii ověřte tak, že čistý client požádáte o otevření jednoho padu ve dvou prohlížečích, současné úpravy, kontrolu revizí a export výsledku v požadovaném formátu. Během běhu sledujte WebSocket sessions, počet revizí, zápisy do databáze a provádění pluginů. Výsledek vám ukáže, zda další zlepšení patří do oblasti paměti, úložiště, sítě nebo samostatného workeru, místo aby vás vedl k libovolnému dimenzování kontejneru.

Vytvořte nahraditelný kontejner Etherpadu

Kontejner používejte jako nahraditelný runtime, nikoli jako místo, kde se nachází zdroj pravdy.

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

Přidejte ověřené connection settings pro Postgres nebo jinou podporovanou databázi pro trvalé použití více uživateli; pro privátní služby používejte privátní názvy. Před vystavením služby zkontrolujte uživatele kontejneru, zapisovatelné cesty a bindovaný listener. Spusťte kompletní akci — otevřete jeden pad ve dvou prohlížečích, současně ho upravujte, zkontrolujte revize a exportujte výsledek v požadovaném formátu — a uložte přesnou referenci image, která tento výsledek vytvořila.

Zabraňte tomu, aby úspěch proxy zakryl selhání aplikace

Prohlížeč, API client a Etherpad se musí shodnout na jednom originu. Aby tomu tak bylo, nastavte veřejnou URL a podporu proxy pro WebSocket. Zachovejte původní host a protokol a zároveň ponechte port 9001 nedostupný jako konkurenční veřejnou adresu.

Průvodce řešením problémů s nedostupným webem pomáhá rozlišit nedostupnou route od aplikace, která odpovídá. Toto rozlišení je zde důležité: sessions se odpojují, protože timeouty proxy jsou příliš krátké. Pouze první problém vyřeší změny v ingressu; druhý vyžaduje kontrolu logů Etherpadu, stavu nebo workloadu.

Navrhněte obnovu Etherpadu ještě před spuštěním

Chraňte stav Etherpadu dříve, než začnete optimalizovat jeho kontejner. Požadovaná sada zahrnuje databázi, nahrané pluginy a settings. Připojte /opt/etherpad-lite/var před bootstrapem, zapište neškodná vzorová data a nahraďte kontejner, abyste ověřili, že je daná cesta skutečně persistentní. Pokud se musí shodovat více úložišť, zdokumentujte pořadí, v jakém se pozastavují zápisy a pořizují zálohy.

Kopie uchovávejte mimo deployment server a materiál obsahující credentials nebo privátní obsah šifrujte. Obnova je úspěšná, když se vrátí pady, autoři, revize a pluginy a současné úpravy se stále konzistentně sloučí. Rozdíl mezi persistentním mountem a nezávislou kopií popisuje persistentní úložiště a snapshoty.

Zvolte hranici důvěry Etherpadu

Bootstrap window uzavřete, jakmile existuje první důvěryhodný administrátor. Konkrétní past Etherpadu spočívá v použití známého hesla správce nebo v ponechání padů zapisovatelných pro všechny; bezpečnější hranicí je nastavit skutečné heslo správce, rozhodnout, kdo smí vytvářet pady, a nespoléhat na to, že obtížně odhadnutelná URL padu je privátní.

Ukázkové ADMIN_PASSWORD okamžitě nahraďte, uložte ho mimo image a při jeho odhalení ho rotujte stejně jako credential správce. Privátní síť by měla přenášet credentials závislostí a role uvnitř Etherpadu by měly poskytovat nejmenší užitečnou akci. Citlivá request bodies a responses poskytovatelů nezapisujte do běžných logů.

Aktualizujte Etherpad bez hádání

Sledujte práci, kterou Etherpad provádí: WebSocket sessions, počet revizí, zápisy do databáze a provádění pluginů. Limity nastavujte s rezervou pro tuto práci a vyhněte se liveness probe, která s ní soupeří. Operator check by měl podle plánu stále zkoušet otevřít jeden pad ve dvou prohlížečích, současně ho upravovat, zkontrolovat revize a exportovat výsledek v požadovaném formátu.

U aktualizací pamatujte, že verze pluginů Etherpadu, syntax settings a migrace databáze je třeba testovat společně. Kandidáta nasaďte proti obnovené kopii a známý test zopakujte. Pokud se sessions odpojují, protože timeouty proxy jsou příliš krátké, použijte runtime logy a skutečný síťový request ke zjištění, který předpoklad se změnil.

Co musí projít, než dorazí skutečná data Etherpadu

Pro Etherpad definujte před spuštěním známou funkční transakci: otevřít jeden pad ve dvou prohlížečích, současně ho upravovat, zkontrolovat revize a exportovat výsledek v požadovaném formátu. Její prerequisites, očekávanou response a kroky úklidu uložte do version control bez secret values. Image použitou k vytvoření této reference připněte.

Pomocí transakce ověřte náhradu i nezávislou obnovu. Obnovená služba je přijatelná pouze tehdy, když se vrátí pady, autoři, revize a pluginy a současné úpravy se stále konzistentně sloučí. Zároveň sledujte WebSocket sessions, počet revizí, zápisy do databáze a provádění pluginů a nejpomalejší nebo nejvíce omezenou část převeďte na alert na úrovni služby.

Gate potřebuje také negativní případ: dočasně odeberte testovací identitě přístup k Postgresu nebo jiné podporované databázi pro trvalé použití více uživateli. Ověřte, že Etherpad vytvoří použitelnou chybovou zprávu a přitom zachová data, obnovte platný stav a zopakujte známou funkční transakci. Uchování obou výsledků zabrání tomu, aby se povrchní health endpoint stal jediným důkazem připravenosti pro produkci.

Nasaďte Etherpad na Dockupu, aniž byste přišli o jeho hranice

U Etherpadu je Dockup nejužitečnější na hranici mezi image a persistentní službou. Udržuje route na port 9001, TLS, secret values a storage připojené i při nahrazování kontejnerů, bez ohledu na to, zda compute zajišťuje Dockup, nebo váš připojený server.

Dokončete nasazení znalostí aplikace: nastavte veřejnou URL a podporu proxy pro WebSocket; připojte a otestujte Postgres nebo jinou podporovanou databázi pro trvalé použití více uživateli; a spusťte toto ověření: otevřete jeden pad ve dvou prohlížečích, současně ho upravujte, zkontrolujte revize a exportujte výsledek v požadovaném formátu. Výsledek ponechte jako deployment check, aby se další aktualizace image posuzovala podle chování, nikoli podle stavu kontejneru.

Často kladené otázky

Co Etherpad potřebuje pro produkční nasazení?

Kontejner Etherpadu routujte na portu 9001 přes jeden HTTPS origin. Požadavkem podpůrné sítě je Postgres nebo jiná podporovaná databáze pro trvalé použití více uživateli. Etherpad nepovažujte za připravený, dokud nedokážete otevřít jeden pad ve dvou prohlížečích, současně ho upravovat, zkontrolovat revize a exportovat výsledek v požadovaném formátu.

Která data Etherpadu patří do zálohy?

Zachovejte /opt/etherpad-lite/var a do stejného recovery manifestu zahrňte databázi, nahrané pluginy a settings. Čistá obnova Etherpadu je úspěšná pouze tehdy, když se vrátí pady, autoři, revize a pluginy a současné úpravy se stále konzistentně sloučí.

Vyžaduje Etherpad za reverse proxy HTTPS?

Pro veřejný origin Etherpadu používejte HTTPS a port 9001 ponechte na interní route. Nastavení Etherpadu aplikujte správně: nastavte veřejnou URL a podporu proxy pro WebSocket. U Etherpadu HTTPS chrání credentials nebo uživatelský obsah při přenosu a zachovává konzistentní chování klienta citlivé na origin.

Jak testovat aktualizaci Etherpadu?

Obnovte aktuální stav Etherpadu do izolovaného deploymentu, aplikujte kandidátní verzi a zopakujte jeho akceptační transakci. Věnujte tomu zvláštní pozornost, protože verze pluginů Etherpadu, syntax settings a migrace databáze je třeba testovat společně. Předchozí image Etherpadu si ponechte, dokud neporozumíte hranici migrace dat a rollbacku.