Operations grimoire/Etherpad

From Nasqueron Agora

Shared between Nasqueron and Wolfplex

The same Etherpad installation is served at two domains:

Upgrade code

The easiest way is to spin a new container.

You can also upgrade code in the live container, updating Git code then restarting Node:

$ docker exec -it etherpad bash
$ git pull

Updating 2e81b39..45266f9

$ logout
$ docker restart etherpad
$ docker logs etherpad

[2016-08-25 00:40:24.711] [INFO] console - Your Etherpad version is 1.6.0 (45266f9)

Check the two versions match.

Note most recent code lives in the develop branch, not the master one.

Launch container


Source script available at https://devcentral.nasqueron.org/P210.

Maintenance scripts

There are scripts to delete a pad or to repair a corrupted pad.

There are documented at https://github.com/ether/etherpad-lite/wiki/Getting-to-know-the-tools-in-bin

Past known issues


When a copy/paste was done, server could crash.

This has been fixed by switching database to utf8mb4_bin:

ALTER DATABASE `etherpad` CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
ALTER TABLE `etherpad.store` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;

Missing plugins

The installation requires two plugins, provided as npm packages:

  • ep_ether-o-meter
  • ep_author_neat

We now install them in run-pad:

PLUGINS="ep_ether-o-meter ep_author_neat"

for plugin in $PLUGINS; do
        docker exec $INSTANCE npm install $plugin

API key issue

http://www.wolfplex.be/pad/ could be empty. When that occurs, the API key on this site diverges from ours.

They store their API on Ysul at /var/wwwroot/wolfplex.be/.dat/secrets-api.json.

Normally, this is now handled by the following line from run-pad script: docker cp /data/etherpad/APIKEY.txt $INSTANCE:opt/etherpad-lite/APIKEY.txt

Configuration as code.

This service should be properly defined in rOPS repository as a Salt state.

Vault secrets migration.

This service have secrets. They should be properly migrated in Vault.