Etherpad Lite is een open source webapplicatie waarin je met meerdere mensen tegelijk hetzelfde tekstdocument kunt bewerken. Etherpad Lite heeft een groot aantal plugins en is door middel van een API te koppelen aan andere applicaties.

In Etherpad Lite werk je met meerdere mensen tegelijk aan hetzelfde tekstdocument. Het is een webapplicatie, de mensen met wie je samenwerkt kunnen naast je zitten of aan de andere kant van de wereld. Wanneer een van hen de tekst in het document wijzigt, zie je dat realtime gebeuren. Met behulp van kleur is zichtbaar gemaakt, wie wat doet.

Etherpad Lite slaat op de achtergrond de wijzigingen op, een zeer slim mechanisme voegt de door alle participanten aangebrachte wijzigen op de juiste wijze samen. Je kunt op ieder gewenst moment via een button de huidige versie als een “checkpoint” opslaan. Via de “timeslider” kun je terug gaan naar een oudere versie van je document.

Met behulp van plugins kun je Etherpad Lite uitbreiden en een goed gedocumenteerde API maakt het mogelijk om Etherpad Lite aan andere applicaties te koppelen.

In Etherpad Lite werk je met zogenoemde “Pads”. Een pad is de Etherpad Lite naam voor een document. Bij het bewerken van een pad biedt Etherpad Lite je de meest voorkomende stijlen van document opmaak zoals vet, cursief, onderstreept en doorgehaald. Verder kun je header niveau 1 t/m 6 toepassen en voor een code-font (fixed font) kiezen. Na installatie van een plugin is het mogelijk tabellen in je pad op te nemen en de stijl daarvan te kiezen. Een andere plugin maakt het mogelijk om taaklijsten te maken door aan het begin van de regel to-do-checkboxjes in je document op te nemen.

Tijdens het samenwerken met mensen die niet bij je in de kamer zitten, is het handig om gedurende het werk met elkaar te kunnen communiceren. In Etherpad Lite is naast de editor een chat-scherm op te roepen, je chat hiermee met de anderen die in het document aan het werk zijn.

Toegang

Wanneer je Etherpad Lite met een standaard configuratie opstart dan staat het gebruik voor de hele wereld open. Iedere willekeurige gebruiker kan in de browser Etherpad Lite openen, een nieuwe pad aanmaken of een bestaande pad openen en hierin gaan werken. Als eerste stap maak je een of meer beheer-accounts aan, waarbij je zelf de gebruikersnaam of -namen bepaalt. Met een beheer-account krijg je toegang tot de admin pagina. Op deze pagina beheer je de plugins en kun je desgewenst via je browser het configuratiebestand aanpassen.

Verder kun je in het configuratiebestand aangeven dat alle gebruikers verplicht zijn om in te loggen. Voor het accountbeheer kun je uit verschillende mogelijkheden kiezen. Je kunt voor iedere gebruiker in het configuratiebestand een gebruikersnaam en wachtwoord opnemen. Deze staan beide leesbaar in het bestand en het vereist het herstarten van Etherpad Lite na iedere aanpassing. Dat is misschien leuk voor in het thuisnetwerk, maar schaalt niet echt. Een tweede oplossing is gebruik te maken van een plugin die een .htaccess-file als gebruikersdatabase inzet. Een .htaccess bestand is een tekstbestand met per regel een gebruikersnaam en een versleuteld wachtwoord. Dit biedt meerdere voordelen. Ten eerste staan de wachtwoorden niet meer in klare tekst op de schijf, maar versleuteld. Ten tweede kun je extra gebruikers toevoegen aan het .htaccess bestand en wachtwoorden wijzigen, zonder dat je daarvoor Etherpad Lite moet herstarten. Voor het beheer is dit dus een veel betere oplossing. Wij hebben dit getest met zowel de wachtwoorden die via de standaard cryptfunctie versleuteld zijn als met wachtwoorden die met SHA versleuteld zijn en beide mogelijkheden werken.

Een andere oplossing die je kunt kiezen is gebruik te maken van plugins die een gebruikersmanagement-systeem implementeren, inclusief het werken met groepen. Ook een LDAP-koppeling is via een plugin mogelijk. Deze opties hebben wij niet getest.

Etherpad Lite biedt de mogelijkheid het verkeer te versleutelen, waarbij je ook van self-signed certificaten gebruik kunt maken. Nadat wij dit geconfigureerd hadden was Etherpad Lite alleen nog via https bereikbaar.

Schermnaam

Wanneer je met meer mensen tegelijk aan hetzelfde document werkt en eventueel ook met elkaar chat, is het handig te weten wie wie is. Ondanks het feit dat mensen met een gebruikersnaam zijn ingelogd, geeft het systeem ‘unnamed’ als naam op. Iedereen krijgt bij het openen van een pad en eigen kleur toegewezen. Via een button kun je de aan jou geassocieerde kleur wijzigen en een nickname voor jezelf invoeren.

Database

Etherpad Lite is een open source applicatie geschreven in javascript en draait boven op Nodejs. Voor de opslag van de data kun je uit verschillende databases kiezen. De standaard configuratie gaat uit van DirtyDB, wat overigens vooral bedoeld is om mee te testen en niet aangeraden wordt voor productieomgevingen. Het gebruik van MySQL is eenvoudig te realiseren met een paar kleine wijzigingen in het configuratiebestand. Daarnaast kun je ook kiezen voor PostgreSQL, MongoDB of bijvoorbeeld Redis.

Etherpad Lite biedt mogelijkheden om bestanden te importeren en te exporteren. Met behulp van plugins kun je deze mogelijkheden uitbreiden, zoals bijvoorbeeld een plugin voor Markdown.

Je kunt Etherpad Lite integreren in andere applicaties door gebruik te maken van de API. In het configuratiebestand van Etherpad Lite stel je dan bijvoorbeeld in dat gebruikers zelf geen nieuwe Pads mogen maken en dat uitsluitend via de API nieuwe Pads kunnen ontstaan. Je laat je eigen applicatie via http calls met Etherpad Lite samenwerken. Om dit makkelijk te maken zijn in diverse talen libraries ontwikkeld die via de API kunnen samenwerken, zoals Ruby, Javascript, Perl, Python, PHP en Java. Via de API kun je bijvoorbeeld nieuwe Pads aanmaken, ‘readonly’ toegang verlenen of schrijfrechten toekennen. Daarnaast kan je de inhoud van een pad opvragen of aanpassen, de inhoud van de chat opvragen, gebruikers en gebruikersgroepen beheren, opvragen welke gebruikers aan een betreffende pad hebben gewerkt, enzovoort. Verschillende applicaties zoals bijvoorbeeld Dokuwiki en WordPress hebben plugins ontwikkeld waarmee je eenvoudig Etherpad Lite in ze integreert. Een meer eenvoudige manier om een Etherpad Lite pad in je eigen website op te nemen is gebruik te maken van de JQuery plugin. Dit is een javascript applicatie waarmee je heel makkelijk een Etherpad Lite pad in een webpagina kunt integreren.

Etherpad Lite installeren

Wij starten met een container waarin een verse, kale Debian Jessie is geïnstalleerd. Voor Ubuntu zal je waarschijnlijk dezelfde stappen kunnen doorlopen. Voordat je Etherpad Lite kunt installeren moet je eerst Nodejs hebben draaien. De documentatie geeft aan dat je hierbij beter geen gebruik kunt maken van de packages van je distributie en in plaats daarvan Nodejs rechtstreeks vanaf de broncode compileert en installeert.

We starten met het installeren van de packages om de sourcecode te kunnen compileren. Draai het commando:

 “apt-get install build-essential python libssl-dev libsqlite3-dev gzip curl”

Vanaf nodjejs.org download je een tarball van de laatste versie (bij ons node-v4.2.1.tar.gz). Maak in je homedirectory een directory aan waarin we Nodejs gaan installeren, bijvoorbeeld ~/local. Ga naar deze directory en pak met tar -zxvf de gedownloade tarball uit. Hier doe je een configure met daarbij een verwijzing naar de toekomstige plaats van de bestanden, bijvoorbeeld:

“./configure –prefix=$HOME/local/node”

Nadat dit klaar is, start je het compileren met “make”. Dit duurt even, afhankelijk van je kracht van je machine. Wanneer dit succesvol afgerond is, doe je een “make install”, dit installeert alle bestanden op de juiste plek. In ons voorbeeld heb je nu in $HOME/local/node een aantal subdirectories, bin, etc, include, lib en share. Voor een productieomgeving had je bijvoorbeeld /srv/node of /opt/node kunnen kiezen, of /usr/local. Dan dien je voor het draaien van “make install” wel de juiste rechten te hebben, bijvoorbeeld door deze stap als root te doen.

Nu moet je nog de juiste paden in je .profile bestand zetten, zodat de applicaties ze kunnen vinden. Zie hiervoor Listing 1.

Nu we Nodejs geïnstalleerd hebben, gaan we verder met Etherpad Lite. Eerst installeren we de benodigde packages met:

 “apt-get install git-core git mysql-server mysql-client”.

Haal de laatste versie via git op met:

 “git clone git://github.com/ether/etherpad-lite.git”.

Ga vervolgens in de directory staan en start Etherpad Lite met:

            “bin/run.sh”.

Open in je browser http://:<ipnummer>:9001 en je kunt je eerste pad gebruiken. De eerste keer dat je Etherpad Lite opstart duurt dit wat langer wegens initialisaties. Later kun je de Etherpad Lite installatie updaten door in de directory te gaan staan en dan het commando “git pull origin” uit te voeren.

Speel wat met je nieuwe pad en sluit Etherpad Lite weer af met Ctrl-C. Nu gaan we MySQL als database engine gebruiken.

In de etherpad-lite directory kopieer je settings.json.template naar settings.json. Je onderhoudt het bestand settings.json, mocht je terug willen naar het orgineel dan maak je weer een kopietje van settings.json.template.

Het bestand settings.json is opgebouwd als een groot json-record, echter voorzien comments, waarbij twee verschillende comment-methodes naast elkaar gebruikt worden. Een aantal regels is uitgecomment door deze met twee slashes (//) te laten beginnen. Verder zijn ook blokken uitgecomment door deze te laten beginnen met /* en te eindigen met */(net als in C). Let er op dat blokken met /* en */ niet genest kunnen worden en dat je altijd een /* moet afsluiten met een */.

Tijdens het aanpassen van Etherpad Lite is het handig om voldoende informatie te krijgen. Zoek naar de regel met loglevel en zet deze op “DEBUG”.

Comment het blok de regel “dbType” : “dirty” uit en haal de comment-tekens weg rondom het blok met “dbType” : “mysql”. In dit blok kun je de user, host, password en databasenaam op de juiste waarde zetten. Maak in MySQL een database en een gebruiker aan en geef die gebruiker voldoende rechten om tabellen te maken en records te onderhouden. Neem de betreffende gegevens over in het settings.json bestand en start bin/run.sh opnieuw. Probeer in je browser of Etherpad Lite weer werkt. Ook nu zal het de eerste keer wat langer duren, omdat de database in MySQL geïnitialiseerd moet worden.

Vervolgens gaan we authenticatie mogelijk maken. Zet in settings.json de regel met “requireAuthentication” op “true” en zet een of meer gebruikers in het blokje met users en geef ze een wachtwoord. Uncomment dit blok. Herstart Etherpad Lite en open in je browser een nieuwe connectie. Wanneer je naar http://:<ipnummer>9001/admin gaat en inlogt met een gebruiker met admin-rechten dan kun je de plugins beheren. Open de plugin-pagina. In eerste instantie zie je nog weinig, Etherpad Lite gaat eerst een groot json-bestand met de plugin-informatie ophalen.

Conclusie

Wij vinden Etherpad Lite een prachtig product. Met een groepje mensen gelijktijdig het zelfde document bewerken is een fantastische manier om samen te werken. Etherpad Lite biedt de mogelijkheid gezamenlijk aan documenten te werken, zonder daarbij meteen je ziel aan Google te verkopen. Door Etherpad Lite op je eigen server te installeren, hou je de gegevens binnen je eigen netwerk. De API en plugins maken van Etherpad Lite een flexibel systeem dat je op verschillende manieren kunt inzetten.