Så självhostar du Etherpad 2026: padgar, plugins och databasbackuper
En praktisk guide till att självhosta Etherpad med Docker, portar, beständig data, TLS, säkerhet, backuper och problemen som hindrar användning i produktion. Med kontroller.
Om du redan har försökt självhosta Etherpad känner du förmodligen igen det frustrerande läget: gränssnittet visas, men sessionerna kopplas från eftersom proxy-timeouts är för korta. Att återskapa containern löser sällan en konflikt mellan URL:er, state och beroenden.
Den här genomgången använder ett konkret kriterium för godkänd funktion — öppna en pad i två webbläsare, redigera samtidigt, granska revisioner och exportera resultatet i ett obligatoriskt format. Varje konfigurationsval bedöms utifrån det kriteriet, inte utifrån en grön containerstatus.
Välj den minsta fungerande Etherpad-topologin
Den minsta ansvarsfulla Etherpad-topologin består av en privat listener på 9001, en ingress-route och en dokumenterad state-gräns. Etherpads nätverkskontrakt för uthållig användning med flera användare är Postgres eller en annan databas som stöds. Håll privata endpoints på intern DNS, tillåt endast nödvändiga utgående anrop och ge Etherpad en avgränsad service credential.
Validera topologin genom att be en ren klient öppna en pad i två webbläsare, redigera samtidigt, granska revisioner och exportera resultatet i ett obligatoriskt format. Övervaka WebSocket-sessioner, antal revisioner, databasskrivningar och plugin-körningar medan testet körs. Resultatet visar om nästa förbättring hör hemma i minne, lagring, nätverk eller en separat worker, i stället för att uppmuntra till godtycklig dimensionering av containern.
Bygg en Etherpad-container som går att ersätta
Använd containern som en utbytbar runtime, inte som platsen där sanningen lagras.
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
Lägg till de granskade anslutningsinställningarna för Postgres eller en annan databas som stöds för uthållig användning med flera användare; använd privata namn för privata tjänster. Kontrollera containerns användare, skrivbara sökvägar och bundna listener innan du exponerar den. Kör hela flödet — öppna en pad i två webbläsare, redigera samtidigt, granska revisioner och exportera resultatet i ett obligatoriskt format — och spara den exakta image-referens som producerade resultatet.
Förhindra att proxyframgång döljer applikationsfel
Webbläsaren, API-klienten och Etherpad måste vara överens om en och samma origin. För att säkerställa det ska du ange den publika URL:en och aktivera WebSocket-stöd i proxyn. Bevara det ursprungliga hostnamnet och protokollet, samtidigt som port 9001 inte är tillgänglig som en konkurrerande publik adress.
Guiden för felsökning när webbplatsen ligger nere hjälper dig att skilja en oåtkomlig route från en applikation som svarar. Den skillnaden är viktig här: sessionerna kopplas från eftersom proxy-timeouts är för korta. Endast det förstnämnda åtgärdas genom ändringar i ingressen; det sistnämnda kräver granskning av Etherpad-loggar, state eller arbetsbelastning.
Utforma återställningen av Etherpad före lansering
Skydda Etherpads state innan du optimerar containern. Det som krävs är databas, uppladdade plugins och inställningar. Montera /opt/etherpad-lite/var före bootstrap, skriv ofarliga exempeldata och ersätt containern för att bevisa att sökvägen faktiskt är persistent. Om flera lagringsplatser måste överensstämma ska du dokumentera i vilken ordning skrivningar pausas och backuper tas.
Förvara kopior utanför deployments-servern och kryptera material som innehåller credentials eller privat innehåll. Återställningen är lyckad när padgar, författare, revisioner och plugins kommer tillbaka och samtidiga redigeringar fortfarande konvergerar. Skillnaden mellan en persistent mount och en fristående kopia beskrivs i persistent lagring och snapshots.
Välj Etherpads trust boundary
Stäng bootstrap-fönstret så snart den första betrodda administratören finns på plats. Etherpads konkreta fallgrop är att leverera ett känt adminlösenord eller låta alla skriva till padgar; den säkrare gränsen är att ange ett riktigt adminlösenord, bestämma vem som får skapa padgar och inte utgå från att en svårgissad pad-URL är privat.
Ersätt exempelvärdet för ADMIN_PASSWORD omedelbart, lagra det utanför imagen och rotera det som en administratörscredential om det exponeras. Privat nätverk ska bära credentials för beroenden, och rollerna i Etherpad ska ge minsta användbara behörighet. Se till att känsliga request bodies och svar från providers inte hamnar i vanliga loggar.
Uppgradera Etherpad utan att gissa
Övervaka det arbete Etherpad utför: WebSocket-sessioner, antal revisioner, databasskrivningar och plugin-körningar. Sätt gränser med marginal för det arbetet och undvik en liveness probe som konkurrerar med det. Operatörskontrollen ska fortfarande försöka öppna en pad i två webbläsare, redigera samtidigt, granska revisioner och exportera resultatet i ett obligatoriskt format enligt ett schema.
Vid uppdateringar ska du komma ihåg att Etherpads plugin-versioner, syntax för inställningar och databas-migreringar bör testas tillsammans. Distribuera kandidaten mot en återställd kopia och upprepa det kända testet. Om sessionerna kopplas från eftersom proxy-timeouts är för korta ska du använda runtime-loggar och det faktiska nätverksanropet för att hitta vilket antagande som har ändrats.
Det som måste fungera innan riktig Etherpad-data anländer
För Etherpad ska du definiera en känd fungerande transaktion före lansering: öppna en pad i två webbläsare, redigera samtidigt, granska revisioner och exportera resultatet i ett obligatoriskt format. Lägg dess förutsättningar, förväntade svar och steg för rensning i versionshanteringen, utan hemliga värden. Lås fast den image som användes för att etablera referensen.
Använd transaktionen för att validera både ett byte och en fristående återställning. Den återställda tjänsten är godkänd endast när padgar, författare, revisioner och plugins kommer tillbaka och samtidiga redigeringar fortfarande konvergerar. Övervaka samtidigt WebSocket-sessioner, antal revisioner, databasskrivningar och plugin-körningar och omvandla den långsammaste eller mest begränsade delen till en service-level alert.
Grindkontrollen behöver också ett negativt fall: neka tillfälligt testidentiteten åtkomst till Postgres eller en annan databas som stöds för uthållig användning med flera användare. Bekräfta att Etherpad ger ett åtgärdbart fel samtidigt som data bevaras, återställ det giltiga tillståndet och upprepa den kända fungerande transaktionen. Genom att spara båda resultaten hindrar du att en ytlig health endpoint blir det enda produktionsunderlaget.
Distribuera Etherpad på Dockup utan att förlora dess gränser
För Etherpad är Dockup mest användbart i gränslandet mellan en image och en persistent tjänst. Det håller routen till 9001, TLS, hemliga värden och lagring kopplade även när containrar ersätts, oavsett om beräkningsresurserna tillhör Dockup eller din anslutna server.
Slutför med applikationskunskap: ange den publika URL:en och aktivera WebSocket-stöd i proxyn; anslut till och testa Postgres eller en annan databas som stöds för uthållig användning med flera användare; och kör denna verifiering: öppna en pad i två webbläsare, redigera samtidigt, granska revisioner och exportera resultatet i ett obligatoriskt format. Behåll resultatet som en deployment-kontroll, så att nästa image-uppdatering bedöms utifrån beteende i stället för containerstatus.
Vanliga frågor
Vad behöver Etherpad för en produktionsdistribution?
Routa Etherpad-containern via port 9001 genom en enda HTTPS-origin. Det stödjande nätverkskravet är Postgres eller en annan databas som stöds för uthållig användning med flera användare. Förklara inte Etherpad redo förrän du kan öppna en pad i två webbläsare, redigera samtidigt, granska revisioner och exportera resultatet i ett obligatoriskt format.
Vilken Etherpad-data ska ingå i en backup?
Gör /opt/etherpad-lite/var persistent och inkludera databas, uppladdade plugins och inställningar i samma återställningsmanifest. En ren Etherpad-återställning är godkänd först när padgar, författare, revisioner och plugins kommer tillbaka och samtidiga redigeringar fortfarande konvergerar.
Kräver Etherpad HTTPS bakom en reverse proxy?
Använd HTTPS för den publika Etherpad-originen och behåll port 9001 på den interna routen. Tillämpa Etherpads inställning korrekt: ange den publika URL:en och aktivera WebSocket-stöd i proxyn. För Etherpad skyddar HTTPS credentials eller användarinnehåll under överföring och gör klientbeteende som är känsligt för origin konsekvent.
Hur bör en Etherpad-uppgradering testas?
Återställ aktuell Etherpad-state i en isolerad deployment, tillämpa kandidatversionen och upprepa dess acceptanstransaktion. Var särskilt uppmärksam eftersom Etherpads plugin-versioner, syntax för inställningar och databas-migreringar bör testas tillsammans. Behåll den tidigare Etherpad-imagen tills gränsen för datamigrering och rollback är förstådd.
