Slik selvhoster du Etherpad i 2026: Pads, plugins og databasebackup
En praktisk veiledning til selvhosting av Etherpad med Docker, porter, persistent data, TLS, sikkerhet, sikkerhetskopier og feilene som hindrer produksjonsbruk. Med kontroller.
Hvis du allerede har prøvd å selvhoste Etherpad, kjenner du sannsynligvis igjen den frustrerende situasjonen: Grensesnittet vises, men øktene kobles fra fordi proxy-tidsavbruddene er for korte. Å opprette containeren på nytt løser sjelden uoverensstemmelser mellom URL-er, state og avhengigheter.
Denne gjennomgangen bruker ett konkret fullføringskriterium — åpne én pad i to nettlesere, rediger samtidig, inspiser revisjoner og eksporter resultatet i et påkrevd format. Alle konfigurasjonsvalg vurderes opp mot dette kriteriet, ikke mot et grønt containermerke.
Velg den minste fungerende Etherpad-topologien
Den minste forsvarlige Etherpad-topologien består av én privat listener på 9001, en ingress-rute og en dokumentert state-grense. Nettverkskontrakten for Etherpad er Postgres eller en annen støttet database for varig bruk med flere brukere. Hold private endepunkter på intern DNS, tillat bare nødvendige utgående kall og gi Etherpad en avgrenset service credential.
Valider topologien ved å be en ren klient åpne én pad i to nettlesere, redigere samtidig, inspisere revisjoner og eksportere resultatet i et påkrevd format. Følg med på WebSocket-økter, antall revisjoner, databaseskrivinger og plugin-kjøring mens testen pågår. Resultatet forteller deg om neste forbedring hører hjemme i minne, lagring, nettverk eller en separat worker, i stedet for å oppmuntre til vilkårlig dimensjonering av containeren.
Bygg en Etherpad-container som kan erstattes
Bruk containeren som et utskiftbart runtime-miljø, ikke som stedet der sannheten ligger.
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
Legg til de gjennomgåtte tilkoblingsinnstillingene for Postgres eller en annen støttet database for varig bruk med flere brukere, og bruk private navn for private tjenester. Kontroller container-brukeren, skrivbare stier og bundet listener før du eksponerer den. Kjør hele handlingen — åpne én pad i to nettlesere, rediger samtidig, inspiser revisjoner og eksporter resultatet i et påkrevd format — og lagre den nøyaktige image-referansen som produserte resultatet.
Unngå at en vellykket proxy skjuler feil i applikasjonen
Nettleseren, API-klienten og Etherpad må være enige om én origin. For å sikre dette angir du den offentlige URL-en og støtte for WebSocket i proxyen. Behold den opprinnelige hosten og protokollen, samtidig som port 9001 ikke er tilgjengelig som en konkurrerende offentlig adresse.
Veiledningen for feilsøking når nettstedet er nede hjelper deg med å skille mellom en utilgjengelig rute og en applikasjon som svarer. Dette skillet er viktig her: Øktene kobles fra fordi proxy-tidsavbruddene er for korte. Bare førstnevnte løses med endringer i ingressen; sistnevnte krever inspeksjon av Etherpad-logger, state eller arbeidsmengde.
Utform Etherpad-gjenoppretting før lansering
Beskytt Etherpads state før du optimaliserer containeren. Det nødvendige settet består av database, opplastede plugins og innstillinger. Monter /opt/etherpad-lite/var før bootstrap, skriv ufarlige eksempeldata og erstatt containeren for å bevise at stien faktisk er persistent. Hvis flere lagringssteder må være konsistente, dokumenterer du rekkefølgen for å stanse skrivinger og ta sikkerhetskopier.
Oppbevar kopier utenfor deployment-serveren, og krypter materiale som inneholder credentials eller privat innhold. Gjenopprettingen er vellykket når pads, forfattere, revisjoner og plugins kommer tilbake, og samtidige redigeringer fortsatt konvergerer. Forskjellen mellom en persistent mount og en uavhengig kopi er forklart i persistent lagring og snapshots.
Velg Etherpads trust boundary
Lukk bootstrap-vinduet så snart den første betrodde administratoren finnes. Den konkrete fellen i Etherpad er å levere et kjent administratorpassord eller la alle skrive til pads; den sikrere grensen er å angi et ekte administratorpassord, bestemme hvem som kan opprette pads og unngå å anta at en obskur pad-URL er privat.
Bytt ut eksempelverdien for ADMIN_PASSWORD umiddelbart, lagre den utenfor imaget og roter den som en administrator-credential hvis den blir eksponert. Privat nettverk bør transportere credentials til avhengigheter, og roller i Etherpad bør gi den minste nyttige handlingen. Hold sensitive request bodies og svar fra leverandører utenfor vanlige logger.
Oppgrader Etherpad uten gjetting
Følg med på arbeidet Etherpad utfører: WebSocket-økter, antall revisjoner, databaseskrivinger og plugin-kjøring. Sett grenser med headroom for dette arbeidet, og unngå en liveness probe som konkurrerer med det. Operatørkontrollen bør fortsatt forsøke å åpne én pad i to nettlesere, redigere samtidig, inspisere revisjoner og eksportere resultatet i et påkrevd format etter en fast plan.
Ved oppdateringer må du huske at plugin-versjoner, syntaks for innstillinger og databasemigreringer i Etherpad bør testes samlet. Deploy kandidaten mot en gjenopprettet kopi og gjenta den kjente testen. Hvis øktene kobles fra fordi proxy-tidsavbruddene er for korte, bruker du runtime-logger og den faktiske nettverksforespørselen til å finne ut hvilken antakelse som har endret seg.
Dette må bestå før ekte Etherpad-data kommer inn
For Etherpad definerer du en kjent god transaksjon før lansering: åpne én pad i to nettlesere, rediger samtidig, inspiser revisjoner og eksporter resultatet i et påkrevd format. Legg forutsetningene, forventet svar og trinnene for opprydding i versjonskontroll, uten hemmelige verdier. Lås imaget som ble brukt til å etablere denne referansen.
Bruk transaksjonen til å validere en erstatning og en uavhengig gjenoppretting. Den gjenopprettede tjenesten er bare godkjent når pads, forfattere, revisjoner og plugins kommer tilbake, og samtidige redigeringer fortsatt konvergerer. Følg samtidig med på WebSocket-økter, antall revisjoner, databaseskrivinger og plugin-kjøring, og gjør den tregeste eller mest begrensede delen om til et service-level-varsel.
Gaten trenger også et negativt tilfelle: Avslå midlertidig testidentiteten tilgang til Postgres eller en annen støttet database for varig bruk med flere brukere. Bekreft at Etherpad produserer en handlingsrettet feil uten å ødelegge data, gjenopprett den gyldige tilstanden og gjenta den kjente gode transaksjonen. Når du beholder begge resultatene, hindrer du at et overfladisk health-endepunkt blir det eneste produksjonsbeviset.
Deploy Etherpad på Dockup uten å miste grensene
For Etherpad er Dockup mest nyttig i grenseflaten mellom et image og en persistent tjeneste. Det holder ruten til 9001, TLS, hemmelige verdier og lagring tilkoblet gjennom containerutskiftninger, uavhengig av om compute-ressursene tilhører Dockup eller den tilkoblede serveren din.
Avslutt med applikasjonskunnskap: Angi den offentlige URL-en og støtte for WebSocket i proxyen, koble til og test Postgres eller en annen støttet database for varig bruk med flere brukere, og kjør denne verifiseringen: åpne én pad i to nettlesere, rediger samtidig, inspiser revisjoner og eksporter resultatet i et påkrevd format. Behold resultatet som en deployment-kontroll, slik at neste image-oppdatering vurderes etter atferd i stedet for containerstatus.
Vanlige spørsmål
Hva trenger Etherpad for en produksjonsdeployment?
Rout Etherpad-containeren på port 9001 gjennom én HTTPS-origin. Det underliggende nettverkskravet er Postgres eller en annen støttet database for varig bruk med flere brukere. Ikke erklær Etherpad klar før du kan åpne én pad i to nettlesere, redigere samtidig, inspisere revisjoner og eksportere resultatet i et påkrevd format.
Hvilke Etherpad-data hører hjemme i en sikkerhetskopi?
Gjør /opt/etherpad-lite/var persistent, og inkluder database, opplastede plugins og innstillinger i det samme gjenopprettingsmanifestet. En ren Etherpad-gjenoppretting er bare godkjent når pads, forfattere, revisjoner og plugins kommer tilbake, og samtidige redigeringer fortsatt konvergerer.
Krever Etherpad HTTPS bak en reverse proxy?
Bruk HTTPS for den offentlige Etherpad-originen, og behold port 9001 på den interne ruten. Bruk Etherpad-innstillingen riktig: Angi den offentlige URL-en og støtte for WebSocket i proxyen. For Etherpad beskytter HTTPS credentials eller brukerinnhold under overføring og sørger for konsistent klientatferd som er avhengig av origin.
Hvordan bør en Etherpad-oppgradering testes?
Gjenopprett gjeldende Etherpad-state i en isolert deployment, ta i bruk kandidatversjonen og gjenta godkjenningstransaksjonen. Vær spesielt oppmerksom på at plugin-versjoner, syntaks for innstillinger og databasemigreringer i Etherpad bør testes samlet. Behold det forrige Etherpad-imaget til grensen for datamigrering og rollback er forstått.
