LibreOffice Online met Collabora

Redactie
0

Met de Collabora Online Developer Edition (CODE) kun je de opensource officesuite LibreOffice Online op je eigen cloudserver installeren. Zo ben je niet afhankelijk van propriëtaire clouddiensten en Amerikaanse servers en kun je toch makkelijk samen online aan documenten werken.

Online officediensten als Google Documenten en Microsoft Office Online maken het een stuk makkelijker om samen aan een document te werken. Hierbij werk je allemaal tegelijk aan dezelfde versie van een document en kun je direct overleggen over bepaalde wijzigingen. Bovendien kunnen de verschillende teamleden allemaal op hun eigen favoriete platform aan de slag. Veel diensten zijn gratis of inbegrepen bij de bijbehorende desktopapplicaties (zie onze vergelijkende test in c’t 6/2017, p. 116). Zodra je er zakelijk mee aan de slag gaat, betaal je meestal per gebruiker een vast tarief, dat afhangt van de hoeveelheid software in het pakket.

Aan dit soort cloud-officesuites zitten ook wat nadelen. De belangrijkste is misschien nog wel dat je bestanden standaard op de servers van de aanbieder belanden, die vaak in de V.S. zal zijn gevestigd. Bij een tijdelijke uitval van je internetverbinding kun je dan niet meer bij je bestanden. Zeker voor mkb’ers kan het erg vervelend zijn, aangezien die meestal geen back-upverbinding hebben. Ook qua beveiliging ben je afhankelijk van de kennis en kunde van de aanbieder.

Bij LibreOffice Online is dit anders. Dit pakket kun je op je eigen servers installeren, bijvoorbeeld in combinatie met Nextcloud. Hieronder leggen we uit hoe je dat relatief makkelijk doet met de Collabora Online Developer Edition (CODE). Ook andere, meer kant-en-klare mogelijkheden om het systeem uit te proberen komen aan bod. Omdat de software opensource is, kunnen we bovendien eerst wat vertellen over de ontwikkeling en de achterliggende techniek. Tot slot gaan we in op de mogelijkheden en beperkingen van LibreOffice Online.

Ontstaan

Het idee om een online versie van LibreOffice te maken ontstond al vrij snel na de afsplitsing van OpenOffice in 2010. Dit idee werd opgepakt door Collabora Productivity. Dat bedrijf draagt veel bij aan de ontwikkeling van LibreOffice en biedt zelf onder de naam Collabora Office een licht aangepaste LTS-versie van LibreOffice met extra support, gericht op de zakelijke markt. Zij ontwikkelden vervolgens LibreOffice Online (LOOL). De broncode daarvan wordt via Git beschikbaar gesteld door The Document Foundation. Collabora heeft daarnaast een vergelijkbare online versie van hun Collabora Office: Collabora Online.

Maar daarmee ben je er nog niet. LibreOffice Online is namelijk puur een dienst om documenten te bewerken. Om daarmee te kunnen werken, moet het gecombineerd worden met een systeem voor documentbeheer. Dat is een bewuste keuze. Door het beheer van bestanden, gebruikers en authenticatie aan een dedicated systeem over te laten, krijgen gebruikers het beste van twee werelden. Bovendien kunnen ze zelf kiezen in welk systeem ze de officedienst willen integreren. Die keuze bepaalt dan hoe je documenten kunt uploaden, delen en synchroniseren.

Meer versies

Met name voor de zakelijke markt biedt Collabora Online-abonnementen aan, samen met partners, waarbij zij de integratie en het onderhoud op zich nemen, extra support leveren en in opdracht van klanten meer functies beschikbaar maken. Voor privégebruik en geïnteresseerde ontwikkelaars is het makkelijker om te werken met CODE: de Collabora Online Development Edition. Dat is een complete container die klaar is voor integratie met bijvoorbeeld ownCloud of Nextcloud. Met deze versie gaan we hieronder zelf aan de slag.

Maar er zijn nog veel meer mogelijkheden. Collabora werkt daarvoor samen met verschillende bedrijven, zoals Seafile, Pydio, ownCloud, Nextcloud, Kolab (met Kolabnow), Extensys, SecuredStore en FileCloud. Al deze diensten kunnen in combinatie met LibreOffice Online worden gehuurd. In Nederland is Collabora Online beschikbaar als kant-en-klaar gehoste service bij www.mijncloudoffice.nl. Dat is een combinatie met Nextcloud, en andere uitbreidingen worden getest. De benodigde servers staan in Nederland en draaien op 100% Nederlandse windstroom.

Van desktop naar online

LibreOffice Online WriterAls je de desktopversie van LibreOffice of Collabora Office kent, zul je in de online versie veel elementen herkennen. De statusbalk met documenteigenschappen is bijvoorbeeld vrijwel identiek. In feite werk je dan ook met dezelfde LibreOffice-core. Alleen zijn daar de nodige elementen aan toegevoegd om het in de browser te laten werken.

Het belangrijkste is dat er een schil omheen gebouwd is, waarin met JavaScript de aansturing van de functies wordt geregeld. Om dat mogelijk te maken, is ook de basiscode van LibreOffice verschillende keren aangepast. En nog steeds worden in de LibreOffice-core regelmatig verbeteringen doorgevoerd om bijvoorbeeld de performance van de online versie te verbeteren of het geheugengebruik terug te brengen. Naar goed opensource-gebruik worden zulke verbeteringen en uitbreidingen ook gemaakt in opdracht van bedrijven die met de toepassing werken.

Weergavetrucs

LibreOffice Online is echt WYSIWYG. Als je een afbeelding verplaatst of de afmetingen aanpast, zie je op het scherm precies hoe het resultaat er op papier uit zal zien. Maar onderliggend werkt dat heel anders dan je zou verwachten.

LibreOffice Online publiceert je documenten namelijk in delen, met tegels, net als bijvoorbeeld OpenStreetMap dat doet. Elke tegel is een afbeelding en feitelijk dus een statisch element. Bij interactie, bijvoorbeeld als je tekst invoegt, worden de wijzigingen eerst naar de server gestuurd. Die stuurt vervolgens de bijgewerkte tegels terug. Wat je op je scherm ziet, is dus eigenlijk geen tekst als zodanig, maar een matrix met allemaal bitmaps van 256 × 256 pixels.

Alleen selecties en cursorposities worden anders gemaakt. Om bandbreedte te besparen, zijn dat geen tegels maar een set rechthoeken. Deze rechthoeken worden door de JavaScript-client op een transparante laag over de bitmaps heen gelegd.

LibreOffice Online draaitabellen

Geavanceerde functies als draaitabellen kunnen in de online versie van LibreOffice gewoon weergegeven worden.

Het grootste voordeel van de oplossing met tegels is dat alle geavanceerde mogelijkheden in documenten ook online beschikbaar zijn. Niet afdrukbare tekens, draaitabellen, afbeeldingen en speciale opmaak kunnen bijvoorbeeld gewoon weergegeven worden. Een ander voordeel is dat de tegels – anders dan bij een remote desktop – kunnen worden gecachet. Dat zorgt ervoor dat je vloeiend kunt scrollen. Alleen veranderingen worden over internet verstuurd en het netwerkverkeer naar de server blijft dus laag.

Voor presentaties met Impress wordt een andere interessante truc toegepast. De weergave bestaat dan niet uit tegels, maar uit een interactieve SVG. Daardoor kunnen zelfs geavanceerde animaties, kleurveranderingen en overgangen direct getoond worden in LibreOffice Online.

Collabora Online Development Edition zelf installeren

Omdat het in dit artikel over Collabora Online gaat, beperken we ons tot het toevoegen van de Collabora Online Development Edition aan een bestaande en draaiende Nextcloud-instance. Uiteraard zijn er andere wegen te bewandelen dan Docker, maar dit is een mooie manier om eens te kijken hoe dat in zijn werk gaat.

In  c’t 10/2017 vanaf pagina 112 hebben we het uitgebreid gehad over het werken met Docker. Buiten wat elementaire installatieprocedures gaan we daar hier niet te ver op in. Om Collabora Online aan de praat te krijgen heb je om te beginnen een Linux-server nodig met een Apache- of Nginx-webserver met daarop een eigen subdomein, bijvoorbeeld cloud.mijndomein.nl, waar ownCloud of Nextcloud op draait. In dit voorbeeld gaan we verder uit van Nextcloud.

Daarnaast moet je een eigen subdomein hebben waar de Docker-container onder draait, bijvoorbeeld office.mijndomein.nl. Dat wordt de door de Collabora- community onderhouden Docker-container van CODE. Je moet daar een VirtualHost- bestand voor hebben en de DNS A-records omdat je met Let’s Encrypt (via certbot) HTTPS voor beide subdomeinen gaat instellen. Ook moet je poorten in de firewall van de webserver openzetten om toegang tot Collabora toe te staan.

Als eerste zul je Docker draaiend moeten hebben om de Collabora Online-container binnen te kunnen halen en te laten draaien. In c’t 10/2017 hebben we dat gedaan met behulp van Debian 9, maar hier zullen we dat als voorbeeld met openSUSE doen. Die gebruikt zypper voor het installeren van pakketten, vergelijkbaar met Debians apt of de betreffende packagemanager van je eigen distributie. Met

sudo zypper in docker

installeer je Docker, de containerserver. Die start je vervolgens op met

sudo systemctl enable docker.service
sudo systemctl start docker.service

sudo systemctl status docker.service

De CODE-container

Met het laatste commando controleer je of de Docker-service correct gestart is en draait. Als dat het geval is, kun je de door Collabora onderhouden CODE-container binnenhalen:

sudo docker pull collabora/code

Dat kan even duren, want zo’n container bevat alles wat de software nodig heeft om te kunnen draaien. Over de volgende stap staan niet altijd even eenduidige instructies op internet, en dat wil nog wel eens tot verwarring leiden. Omdat je voor CODE een eigen subdomein hebt aangemaakt, zou je verwachten dat dit ook het domein zou zijn waar de container in draait. Bij sommige instructies wordt dat ook zo gemeld, maar dat is niet het geval. Start de container met

sudo docker run -t -d -p 127.0.0.1:9980:9980 -e 'domain=cloud\.mijndomein\.nl' --restart always --cap-add MKNOD collabora/code

Let bij het intypen van dit commando vooral op de dubbele backslashes en dubbele mintekens. Of de container goed draait, kun je controleren met

sudo docker ps

Nu wordt het tijd om poort 443 te configureren met het VirtualHost-bestand voor het domein office.mijndomein.nl. Daarbij wordt gebruik gemaakt van een proxy naar de Collabora Online-bestanden. Die draaien lokaal, maar kunnen straks vanuit Nextcloud via de proxy gebruikt worden. Gebruik bijvoorbeeld ons voorbeeldbestand, inclusief instructies voor het aanpassen. Vergeet niet de webserver te herstarten na het toevoegen of wijzigen van het VirtualHost-bestand.

Collabora Online Nextcloud-app

De laatste stap die dan nog gezet moet worden is de koppeling tussen Collabora en Nextcloud. Installeer via het beheer of de apps van Nextcloud de Collabora Online-app. Ga naar het beheergedeelte, selecteer het Collabora Online-item en vul bij het serveradres het tweede subdomein in. Uitgaande van het voorbeelddomein is dat https://office.mijndomein.nl:443. Klik vervolgens op Toepassen.

De procedures voor LibreOffice Online zijn vergelijkbaar. Daar is op de website documentatie genoeg over te vinden. Voor wat het installeren en configureren van de webserver en Nextcloud betreft kun je het beste de documentatie van je Linux-distributie en de website van Nextcloud raadplegen.

Zoals je ziet is het opzetten van een eigen veilige documentbewerkingsservice niet al te eenvoudig en vraagt dat de nodige beheervaardigheden. Maar voor een stabiele en veilige service zijn nu eenmaal wat extra maatregelen nodig. Voor wie dat net wat te veel van het goede is, is het prettig om te weten dat Collabora Online ook als service aangeboden wordt, zoals eerder beschreven.

Gescheiden installatie

Het veilig opzetten van clouddiensten brengt regels met zich mee. Het is bijvoorbeeld belangrijk dat de plek waar de bestanden opgeslagen worden, gescheiden blijft van de server met LibreOffice. Anders zou er via Collabora Online toegang zijn tot de configuratie. Het voorbeeld met de Docker-container in dit artikel laat dat in de praktijk al zien. Ook voor de performance is dat belangrijk. Als er veel gebruikers tegelijk online zijn, kunnen er hoge pieken in cpu-gebruik ontstaan. Door de opslagruimte apart te houden, heeft dat geen nadelige invloed op de snelheid waarmee documenten beschikbaar zijn. Ook kan er bij grote installaties via de configuratie voor gekozen worden om de verschillende typen documenten op verschillende servers te laten bewerken.

Gebruikers loggen in bij de server met de documentopslag (Nextcloud). Daar wordt de authenticatie en autorisatie verzorgd. De opslagserver communiceert met de officeserver (Collabora Online) voor authenticatie en de overdracht van bestanden. De servers werken daarvoor met certificaten en het WOPI-protocol. WOPI staat voor Web Application Open Platform Interface. Het is een goed gedocumenteerd open protocol voor de communicatie met webapplicaties. Een actie om een bestand te openen resulteert in een verzoek aan de Collabora Connector op de officeserver voor een unieke ID. Die wordt teruggestuurd naar de documentserver en in de url gebruikt om in de browser bij Collabora Online toegang te krijgen tot het bestand. Dat alles verloopt via HTTPS. Op die manier ben je er zeker van dat alleen de juiste persoon bij een sessie kan, namelijk degene die vanuit de opslagkant (Nextcloud) een document geopend heeft.

Beheer en schaalbaarheid

Natuurlijk kun je de installatie nog verder configureren en monitoren. Een basisprincipe is dat er zo min mogelijk data in het geheugen gehouden moet worden – alleen het documentmodel van het actieve document en de tegels die het bestand weergeven. Er is ook een soort slaapstand: een document dat enige tijd niet bewerkt wordt, gebruikt dan minder servercapaciteit, maar wordt met een muisklik of toetsaanslag direct weer actief.

LibreOffice Online is ontworpen voor maximale schaalbaarheid. Er worden automatisch voldoende processen gestart om het aantal gebruikers dat gelijktijdig online werkt te bedienen. Je kunt instellen dat een aantal processen naar keuze al gereed staat voor direct gebruik, waardoor de responstijden minimaal zijn. Dat alles natuurlijk onder de voorwaarde dat er voldoende hardware beschikbaar is.

LibreOffice Online dashboard

In de admin-console kun je onder meer zien welke documenten er geopend zijn, hoeveel gebruikers er online zijn en hoeveel geheugen er in gebruik is.

Voor de beheerder is er een adminconsole beschikbaar. Daar zie je welke documenten er op dat moment geopend zijn en welke url’s ze hebben, hoeveel gebruikers er in totaal online zijn en hoeveel per document, hoeveel geheugen er in gebruik is, enzovoorts. In de console kun je documenten ook direct killen, waardoor de verbinding in de browser met dat document verbroken wordt. Je kunt loggen op verschillende niveaus (fatal, critical, error, warning, notice, information, debug, trace). Ook kun je instellen dat de log niet naar de standaard output gaat, maar naar een logbestand.

Effectief samenwerken

LibreOffice Online bevat Writer, Calc en Impress, zodat je kunt samenwerken aan teksten, spreadsheets en presentaties. De wiskundige formules van Math en database Base ontbreken (nog). Als proef op de som zijn we met dit artikel online aan de slag gegaan. We konden zonder problemen met meerdere personen tegelijk aan hetzelfde bestand werken. Daarbij wordt met kleurmarkeringen aangegeven wie waar bezig is. Voor de samenwerking is het handig dat je notities kunt invoegen en becommentariëren. Met een online geschiedenis kun je terug naar vorige versies en er is een functie om onbedoelde veranderingen te repareren. In tekstdocumenten kun je wijzigingen bijhouden en die op een overzichtelijke manier accepteren of verwerpen.

LibreOffice Online wijzigingen

In tekstdocumenten kun je wijzigingen bijhouden en die op een overzichtelijke manier accepteren of verwerpen.

In de door ons geteste installatie met Nextcloud konden we ook mensen die daar geen account hebben toegang geven tot een of meer documenten. Daarbij kun je aangeven of ze die alleen mogen bekijken of ook bewerken. Behalve bestanden in Open Document Format (ODF) worden ook Microsofts bestandsformaten als doc, docx, xls, xlsx, ppt en pptx ondersteund.

Doorlopende ontwikkeling

Voor standaard gebruik bieden de menu’s voldoende functies. Dankzij het contextmenu en de vele sneltoetsen zijn ze ook makkelijk beschikbaar. Voor geavanceerde functies ben je momenteel nog wel aangewezen op de desktopversie. Maar als je bestanden toch al synchroniseert met ownCloud of Nextcloud, is dat niet zo’n probleem. Alle functies die je in de desktopversie kunt gebruiken, worden online wel weergeven. Een draaitabel of inhoudsopgave kun je bijvoorbeeld niet online aanmaken, maar als je in de desktopversie zoiets toegevoegd hebt en de online versie vervolgens ververst, is het daar meteen zichtbaar en kun je het wel bewerken.

Collabora Online biedt momenteel dus al ruime basismogelijkheden en een prima weergave. Bovendien worden nog steeds meer functies met JavaScript omgezet naar de online versie. Zo is recent een venster Zoeken en Vervangen toegevoegd, aanvullend bij de bestaande zoekbalk. Sinds de laatste versie CODE 2.1.3 kun je grafieken basaal bewerken en krijg je betere waarschuwingen bij conflicten tussen uploaden en bewerken. Zo wordt LibreOffice Online steeds meer een volwaardige officesuite.

(Cor Nouws en Gertjan Lettink / Herman Heringa)

Gertjan Lettink is board-member bij OpenSuse en Cor Nouws is eigenaar van Nou&Off, het bedrijf achter onder meer mijncloudoffice.nl. Beiden zijn actief in de LibreOffice-community.

Meer over

Software

Deel dit artikel

Lees ook

Spotify streamen naar versterker? Zo doe je het met een Raspberry Pi!

Om Spotify te kunnen streamen naar een niet-smart AV-receiver of analoge versterker die geen muziek-streaming­mogelijkheden heeft, heb je met een Rasp...

Google Gemini gebruiken: dit kun je allemaal met de chatbot van Google

Eerst kon je alleen ChatGPT gebruiken, maar nu is het ook mogelijk om Gemini van Google te gebruiken. Beide chatbots die gebaseerd zijn op AI kunnen w...

0 Praat mee
avatar
  Abonneer  
Laat het mij weten wanneer er