Collaborative writing is fun and it’s a very fast way to share ideas or other pieces of text within a group — in my case a classroom. Using publicly available solutions is ok (e.g. yourpart.eu is a good starting point) — I started using this. Using the solution presented here requires to be able to install a few linux packages but what you get is very attractive: a customizable writing place open only for a user group you can define yourself with some restrictive settings preventing annoyances (e.g. students changing their names to “funny” ones…) and a rich set of export features, your data storage being under control of yourself.
Since quite some years I wanted to have some collaborative writing tool inside moodle (there are plugins) or even better in Mahara (this could be true sometime) . Of course there is Google Docs (and Microsoft Word nowadays) — but I really like to use Open Source and to be frank, to be independent of some companies proprietary solution and their way/place to store data. So Etherpad was in my focus but installing new software and integrating into my running moodle instance requires some amount of motivation and spare time. Recently, teaching in my German Language/Literature courses (10th and 11th grade) I was audacious enough to try to do this and I was successful in just about two hours all single fine-tuning taken into account. I want to share my findings especially as some information is scattered among different places and my solution uses minimum effort (e.g. no proxy configuration required).
My moodle instance is running on a VPS (virtual private server) reachable at moodle.klocker-mark.eu, using a standard LAMP-Server configuration. For Etherpad(lite) I choose my second VPS mirror.klocker-mark.eu generally used for backup and not so important services like BigBlueButton. Both are running Ubuntu 16.04 (LTS). I am sure this would have worked on the first machine too but I am a little cautious doing such modifications as in this case this involves installing node.js. So I did it on my second server which works like a charm so I will keep it that way.
My moodle is 3.3.2+ but the plugin works flawlessly.
This is quite simple having root access, installing node.js, etherpad lite and abiword.
There are some ways to do this, the simplest and fastest is using the supported version using apt-get (for other way see here):
sudo apt install git curl python libssl-dev pkg-config build-essential
sudo apt-get install nodejs
There is one caveat: the executable is named nodejs which is simply linke to node on my system:
sudo link -s /bin/nodejs node
Cloning via git into /opt is easy:
git clone git://github.com/ether/etherpad-lite.git
Creating a user and changing ownership:
adduser --system --home=/srv/etherpad-lite --group etherpad-lite
Finally create a service:
sudo vi /etc/systemd/system/etherpad-lite.service
pasting the following lines (be sure to enter your path of installation):
Description=etherpad-lite (real-time collaborative document editing)
That’s it, just enable starting at boot time (and start now and check to test it):
sudo systemctl enable etherpad-lite
sudo systemctl start etherpad-lite
sudo systemctl status etherpad-lite
The last statement gives useful informations e.g. the port on which Etherpad is running, default being 9001. Now you should be able to run Etherpad on your server, in my case calling http://mirror.klocker-mark.eu:9001.
Etherpad should work standalone and is almost ready to be used with moodle. Some configuration has to be done which requires modifying settings.json in /opt/etherpad-lite.
The changes for the plugin I am using are described here, you need to do the following three changes:
- “abiword”: “/usr/bin/abiword”
I have done this (and some other little tweaks described below in my settings.json which you are free to download. Be sure to modify the admin password which enables you to use the admin panel of Etherpad (at http://mirror.klocker-mark.eu:9001/admin/ in my case)e.g. to install/uninstall plugins.
I decided to install the following plugins:
- authornames: gives very nice tooltips of author names when hovering above text
- remove_embed: required (or recommended?) by moodle plugin.
With Abiword installed there are many import and export options for your etherpad, which are very nice to have.
apt-get install abiword
does the installation, but there is a modification of sudoers required for Etherpad to use it:
visudo -f sudoers
Add the line:
www-data ALL = NOPASSWD: /usr/bin/abiword
The only remaining task is installing and configuring the moodle plugin.
Installing Moodle plugin
For my moodle version only installing via zip-file is possible but this works flawlessly. Configuration is required only for three parameters:
- Server Url: I am using the above mentioned: http://mirror.klocker-mark.eu:9001/
- API Key: You can find this key in your installation directory, this is /opt/etherpad-lite/APIKEY.txt
- Cookie domain: depends on your domain, in my case .klocker-mark.eu.