ed1c7c94a3
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
81 lines
2.7 KiB
ReStructuredText
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
|