system-config/doc/source/etherpad.rst
Clark Boylan ed1c7c94a3 Make etherpad configuration more generic for multiple hosts
This switches us to running the services against the etherpad group. We
also define vars in a group_vars file rather than a host specific
file. This allows us to switch testing over to etherpad99 to decouple it
from our production hostnames.

A followup change will add a new etherpad production server that will be
deployed alongside the existing one. This refactor makes that a bit
simpler.

Change-Id: I838ad31eb74a3abfd02bbfa77c9c2d007d57a3d4
2023-04-05 08:36:27 -07:00

81 lines
2.7 KiB
ReStructuredText

:title: Etherpad
.. _etherpad:
Etherpad
########
Etherpad (previously known as "etherpad-lite") is installed on
etherpad.opendev.org to facilitate real-time collaboration on
documents. It is used extensively during OpenStack Developer
Summits.
At a Glance
===========
:Hosts:
* https://etherpad.opendev.org
:Ansible:
* https://opendev.org/opendev/system-config
* :git_file:`playbooks/roles/etherpad`
* :git_file:`playbooks/service-etherpad.yaml`
* :git_file:`inventory/service/group_vars/etherpad.yaml`
:Projects:
* https://etherpad.org/
* https://github.com/ether/etherpad-lite
:Bugs:
* https://storyboard.openstack.org/#!/project/748
* https://github.com/ether/etherpad-lite/issues
Overview
========
Apache is configured as a reverse proxy and there is a MySQL database
backend.
Manual Administrative Tasks
===========================
The following sections describe tasks that individuals with root
access may need to perform on rare occasions.
Deleting a Pad
--------------
On occasion it may be necessary to delete a pad, so as to redact
sensitive or illegal data posted to it (the revision history it keeps
makes this harder than just clearing the current contents through a
browser). This is fairly easily accomplished via the `HTTP API`_, but
you need the key which is saved in a file on the server so it's easiest
if done when SSH'd into it locally::
wget -qO- "http://localhost:9001/api/1/deletePad?apikey=$(sudo \
docker-compose -f /etc/etherpad-docker/docker-compose.yaml exec etherpad \
cat /opt/etherpad-lite/APIKEY.txt)&padID=XXXXXXXXXX" ; echo
...where XXXXXXXXXX is the pad's name as it appears at the end of its
URL (the trailing echo is just because the API response doesn't end with
a newline and so your next appended shell prompt makes it harder to
read). If all goes well, you should receive a response like::
{"code":0,"message":"ok","data":null}
Browse to the original pad's URL and you should now see the fresh
welcome message boilerplate for a new pad. Check the pad's history and
note that it has no authors and no prior revisions.
.. _HTTP API: https://github.com/ether/etherpad-lite/wiki/HTTP-API
Restoring a Pad
---------------
It also happens that the content of a pad gets overwritten with the
wrong content, one common example is someone using a translation tool
on it, not being aware that this changes the document for everyone
instead of just locally. Via the revision slider you can identify the
last good version and then restore it via the API::
wget -qO- "http://localhost:9001/api/1.2.11/restoreRevision?apikey=$(sudo \
docker-compose -f /etc/etherpad-docker/docker-compose.yaml exec etherpad \
cat /opt/etherpad-lite/APIKEY.txt)&padID=XXXXXXXXXX&rev=NNN" ; echo