Päiväkirjan hakemistoDockup / kenttämuistio
Note / self-host-etherpad

Etherpadin itseisännöinti vuonna 2026: padit, pluginit ja tietokantavarmuuskopiot

Käytännönläheinen Etherpadin itseisännöintiopas, joka käsittelee Dockeria, portteja, pysyvää dataa, TLS:ää, tietoturvaa, varmuuskopioita ja tuotantokäyttöä estäviä ongelmia. Mukana tarkistukset.

Jos olet jo kokeillut Etherpadin itseisännöintiä, tämä turhauttava tilanne on todennäköisesti tuttu: käyttöliittymä näkyy, mutta istunnot katkeilevat, koska proxyn timeout-arvot ovat liian lyhyitä. Kontin luominen uudelleen korjaa harvoin URL-osoitteiden, tilan ja riippuvuuksien välistä ristiriitaa.

Tässä ohjeessa käytetään yhtä konkreettista valmiuskriteeriä: avaa yksi padi kahdessa selaimessa, muokkaa sitä samanaikaisesti, tarkastele revisioita ja vie tulos vaaditussa muodossa. Jokainen määritysvalinta arvioidaan tämän kriteerin perusteella eikä vihreän konttimerkinnän perusteella.

Valitse pienin toimiva Etherpad-topologia

Pienin vastuullinen Etherpad-topologia sisältää yhden yksityisen kuuntelun portissa 9001, ingress-reitin ja dokumentoidun tilarajan. Etherpadin verkkosopimus monen käyttäjän pysyvää käyttöä varten on Postgres tai muu tuettu tietokanta. Pidä yksityiset päätepisteet sisäisessä DNS:ssä, salli vain tarvittavat lähtevät yhteydet ja anna Etherpadille rajatuilla oikeuksilla varustettu palvelutunnus.

Vahvista topologia pyytämällä puhdasta asiakasta avaamaan yhden padin kahdessa selaimessa, muokkaamaan sitä samanaikaisesti, tarkastelemaan revisioita ja viemään tuloksen vaaditussa muodossa. Seuraa ajon aikana WebSocket-istuntoja, revisioiden määrää, tietokantakirjoituksia ja pluginien suoritusta. Tulos kertoo, kuuluuko seuraava parannus muistiin, tallennustilaan, verkotukseen vai erilliseen workeriin sen sijaan, että konttia mitoitettaisiin sattumanvaraisesti.

Rakenna korvattava Etherpad-kontti

Käytä konttia korvattavana runtime-ympäristönä, älä totuuden lähteenä.

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

Lisää tarkistetut yhteysasetukset Postgresille tai muulle tuetulle tietokannalle monen käyttäjän pysyvää käyttöä varten ja käytä yksityisille palveluille yksityisiä nimiä. Tarkista kontin käyttäjä, kirjoitettavat polut ja sidottu kuunteluosoite ennen sen julkaisemista. Suorita koko toiminto — avaa yksi padi kahdessa selaimessa, muokkaa sitä samanaikaisesti, tarkastele revisioita ja vie tulos vaaditussa muodossa — ja tallenna tarkan image-viitteen, jolla tulos tuotettiin.

Estä proxyn onnistumista peittämästä sovelluksen vikaa

Selaimen, API-asiakkaan ja Etherpadin on käytettävä samaa originia. Aseta julkinen URL-osoite ja proxyn WebSocket-tuki, jotta tämä toteutuu. Säilytä alkuperäinen host ja protokolla ja pidä samalla portti 9001 poissa käytöstä kilpailevana julkisena osoitteena.

Site down -vianmääritysopas auttaa erottamaan saavuttamattoman reitin vastaavasta sovelluksesta. Ero on tässä tärkeä: istunnot katkeilevat, koska proxyn timeout-arvot ovat liian lyhyitä. Vain ensin mainittu korjaantuu ingress-muutoksilla; jälkimmäinen edellyttää Etherpadin lokien, tilan tai workloadin tarkastelua.

Suunnittele Etherpadin palautus ennen käynnistystä

Suojaa Etherpadin tila ennen sen kontin optimointia. Tarvittava kokonaisuus sisältää tietokannan, ladatut plugin it ja asetukset. Liitä /opt/etherpad-lite/var ennen bootstrapia, kirjoita harmitonta esimerkkidataa ja korvaa kontti todistaaksesi, että polku on todella pysyvä. Jos useiden tallennuspaikkojen on pysyttävä yhdenmukaisina, dokumentoi järjestys, jossa kirjoitukset keskeytetään ja varmuuskopiot otetaan.

Säilytä kopiot deployment-palvelimen ulkopuolella ja salaa tunnistetietoja tai yksityistä sisältöä sisältävä materiaali. Palautus onnistuu, kun padit, tekijät, revisiot ja pluginit palaavat ja samanaikaiset muokkaukset yhdistyvät edelleen oikein. Pysyvän mountin ja erillisen kopion välistä eroa käsitellään oppaassa pysyvä tallennustila ja snapshotit.

Valitse Etherpadin luottamusraja

Sulje bootstrap-ikkuna heti, kun ensimmäinen luotettu ylläpitäjä on olemassa. Etherpadin konkreettinen sudenkuoppa on tunnetun admin-salasanan toimittaminen tai padien jättäminen kaikkien kirjoitettaviksi; turvallisempi raja on asettaa oikea admin-salasana, päättää, kuka saa luoda padeja, ja olla olettamatta, että vaikeasti arvattava padin URL on yksityinen.

Korvaa esimerkin ADMIN_PASSWORD heti, säilytä se imagen ulkopuolella ja kierrätä se ylläpitäjän tunnistetiedon tavoin, jos se paljastuu. Yksityisen verkon tulee välittää riippuvuuksien tunnistetiedot, ja Etherpadin roolien tulee sallia vain pienin hyödyllinen toiminto. Älä tallenna arkaluonteisia request bodyja ja palveluntarjoajien vastauksia tavallisiin lokeihin.

Päivitä Etherpad arvailematta

Seuraa Etherpadin suorittamaa työtä: WebSocket-istuntoja, revisioiden määrää, tietokantakirjoituksia ja pluginien suoritusta. Aseta rajoihin riittävä headroom tätä työtä varten ja vältä liveness probea, joka kilpailee sen kanssa. Operator-tarkistuksen tulee edelleen yrittää avata yksi padi kahdessa selaimessa, muokata sitä samanaikaisesti, tarkastella revisioita ja viedä tulos vaaditussa muodossa aikataulun mukaisesti.

Päivityksissä muista, että Etherpadin plugin-versiot, asetusten syntaksi ja tietokantamigraatiot on testattava yhdessä. Ota candidate-versio käyttöön palautetun kopion kanssa ja toista tunnettu testi. Jos istunnot katkeilevat, koska proxyn timeout-arvot ovat liian lyhyitä, selvitä runtime-lokien ja todellisen verkkopyynnön avulla, mikä oletus muuttui.

Mitkä tarkistukset on läpäistävä ennen todellisen Etherpad-datan saapumista

Määritä Etherpadille tunnetusti toimiva transaktio ennen käynnistystä: avaa yksi padi kahdessa selaimessa, muokkaa sitä samanaikaisesti, tarkastele revisioita ja vie tulos vaaditussa muodossa. Tallenna sen edellytykset, odotettu vastaus ja siivousvaiheet versionhallintaan ilman salaisia arvoja. Kiinnitä sen viitearvon määrittämiseen käytetty image-versio.

Käytä transaktiota korvaavan instanssin ja erillisen palautuksen validointiin. Palautettu palvelu hyväksytään vain, kun padit, tekijät, revisiot ja pluginit palaavat ja samanaikaiset muokkaukset yhdistyvät edelleen oikein. Seuraa samalla WebSocket-istuntoja, revisioiden määrää, tietokantakirjoituksia ja pluginien suoritusta ja tee hitaimmasta tai rajoitetuimmasta osasta service-level-hälytys.

Tarkistukseen tarvitaan myös negatiivinen tapaus: estä testitunnukselta tilapäisesti pääsy Postgresiin tai muuhun tuettuun tietokantaan monen käyttäjän pysyvää käyttöä varten. Varmista, että Etherpad tuottaa toimintaohjeita sisältävän virheen ja säilyttää datan, palauta toimiva tila ja toista tunnetusti toimiva transaktio. Kun molemmat tulokset säilytetään, pinnallinen health endpoint ei pääse ainoaksi tuotantotodisteeksi.

Ota Etherpad käyttöön Dockupissa sen rajat säilyttäen

Etherpadin tapauksessa Dockup on hyödyllisimmillään imagen ja pysyvän palvelun välisellä rajalla. Se pitää portin 9001 reitin, TLS:n, salaiset arvot ja tallennustilan liitettyinä myös konttien vaihtuessa riippumatta siitä, kuuluuko compute Dockupille vai liitetylle palvelimellesi.

Viimeistele käyttöönotto sovelluksen tuntemuksella: aseta julkinen URL-osoite ja proxyn WebSocket-tuki, yhdistä ja testaa Postgres tai muu tuettu tietokanta monen käyttäjän pysyvää käyttöä varten ja suorita tämä varmennus: avaa yksi padi kahdessa selaimessa, muokkaa sitä samanaikaisesti, tarkastele revisioita ja vie tulos vaaditussa muodossa. Säilytä tulos deployment-tarkistuksena, jotta seuraava image-päivitys arvioidaan toiminnan eikä kontin tilan perusteella.

Usein kysytyt kysymykset

Mitä Etherpad tarvitsee tuotantokäyttöön?

Reititä Etherpad-kontti portista 9001 yhden HTTPS-originin kautta. Tukeva verkkovaatimus on Postgres tai muu tuettu tietokanta monen käyttäjän pysyvää käyttöä varten. Älä kutsu Etherpadia valmiiksi, ennen kuin voit avata yhden padin kahdessa selaimessa, muokata sitä samanaikaisesti, tarkastella revisioita ja viedä tuloksen vaaditussa muodossa.

Mitkä Etherpadin tiedot kuuluvat varmuuskopioon?

Säilytä /opt/etherpad-lite/var ja sisällytä tietokanta, ladatut pluginit ja asetukset samaan palautusmanifestiin. Puhdas Etherpad-palautus läpäisee tarkistuksen vain, kun padit, tekijät, revisiot ja pluginit palaavat ja samanaikaiset muokkaukset yhdistyvät edelleen oikein.

Tarvitseeko Etherpad HTTPS:ää reverse proxyn takana?

Käytä julkisessa Etherpad-originissa HTTPS:ää ja pidä portti 9001 sisäisessä reitissä. Määritä Etherpadin asetus oikein: aseta julkinen URL-osoite ja proxyn WebSocket-tuki. Etherpadin tapauksessa HTTPS suojaa tunnistetietoja ja käyttäjäsisältöä siirron aikana sekä pitää origin-herkän asiakaskäyttäytymisen yhdenmukaisena.

Miten Etherpad-päivitys pitäisi testata?

Palauta nykyinen Etherpad-tila eristettyyn deploymentiin, ota candidate-versio käyttöön ja toista sen hyväksyntätransaktio. Kiinnitä erityistä huomiota siihen, että Etherpadin plugin-versiot, asetusten syntaksi ja tietokantamigraatiot on testattava yhdessä. Säilytä edellinen Etherpad-image, kunnes sen datamigraation ja rollbackin rajat on ymmärretty.