Nextcloud Hub installeren op Raspberry Pi met Collabora Online

Nextcloud verbetert jaar na jaar en ook de integratie met het webgebaseerd kantoorpakket Collabora Online is ondertussen al sterk uitgewerkt. Ondertussen is er een Ubuntu-appliance met Nextcloud Hub voor ARM en ook van Collabora Online bestaat sinds kort een ARM-versie. Daardoor draai je nu wel heel eenvoudig een eigen webgebaseerde kantooromgeving op een Raspberry Pi 4.

Nextcloud Hub is een opensource-platform voor samenwerking, dat je op je eigen Raspberry Pi of Linux-server kunt draaien. Je kunt er bestanden mee delen en synchroniseren, chatten en videobellen, en er zelfs een agenda, contacten en e-mail op draaien. Jaar na jaar komen er nieuwe functies bij, wat Nextcloud zeker voor thuisgebruikers, maar zelfs voor bedrijven interessant maakt.

Collabora Online is al net zo’n succes: het is een online kantoorpakket, namelijk de webgebaseerde versie van LibreOffice. Installeer je dit op een Linux-server, dan kun je via je browser documenten bewerken en zelfs met meerdere personen samenwerken. Vooral de integratie van Collabora Online in Nextcloud Hub maakt het een interessant programma om documenten te delen en eraan samen te werken.

Ubuntu-applicatie

De installatie van Nextcloud Hub en de integratie met Collabora Online kan op meerdere manieren. Wanneer je dit volledig zelf doet, steek je er wel wat werk in. Je installeert een Linux-distributie, configureert de webserver, configureert Nextcloud Hub en Collabora Online. Op deze manier heb je de meeste flexibiliteit om het systeem in te richten.

Alleen is het dan nog niet gedaan: je moet je installatie ook beheren en up-to-date houden. Een oplossing voor wie zich daarmee niet wil bezighouden, is de Ubuntu-appliance van Nextcloud. Dit is een aangepaste versie van de Linux-distributie Ubuntu, Ubuntu Core, met Nextcloud Hub in een ‘snap’ geïnstalleerd. Dat is veilig, en je krijgt ook automatisch updates. 

Bovendien kun je er ook Collabora Online in installeren. Van dit alles bestaan ook versies voor een ARM-processor. Ideaal om op een Raspberry Pi 3B(+) of 4B te zetten. Wij hebben het op een Raspberry Pi 4B met 8 GB geheugen uitgeprobeerd.

Image voor microSD-kaart

Voor de installatie heb je een microSD-kaartje van minstens 4 GB en het liefst 8 GB nodig. Daarop komt het besturingssysteem en de software. Wil je een groot aantal bestanden op je Nextcloud opslaan, dan is het aan te raden om daarvoor een afzonderlijke externe harde schijf via usb aan te sluiten op je Raspberry Pi (het liefst via usb 3 op een Raspberry Pi 4).

Download het image van het Ubuntu-appliance voor Nextcloud. Daarna schrijf je dit naar het microSD-kaartje. We tonen hier hoe je dat doet met Raspberry Pi Imager, dat voor zowel voor Windows, macOS als Linux bestaat.

Klik in Raspberry Pi Imager op Selecteer OS en kies dan onderaan Gebruik eigen bestand. Selecteer het image dat je zojuist hebt gedownload, nextcloud-core18-pi.img.xz. Steek dan je microSD-kaartje in de pc en klik op Kies opslagapparaat om je microSD-kaart te selecteren. Klik tot slot op Schrijf om het image te schrijven.

Ssh-sleutelpaar

Ubuntu Core ondersteunt standaard alleen inloggen via een ssh-sleutel, dus die dien je eerst nog aan te maken. Dat kan zowel onder Linux en macOS als Windows met het commando ssh-keygen op de opdrachtregel of onder Windows met PuTTYgen van PuTTY. 

We leggen het proces hier op de opdrachtregel uit. Als je al een ssh-sleutelpaar hebt en dat wilt gebruiken om op je Ubuntu-appliance in te loggen, kun je deze stap overslaan.

Een 2048bit-RSA-sleutel maak je aan met het commando: ssh-keygen -t rsa

Het programma vraagt je waar je de sleutelbestanden wilt opslaan. Druk op Enter om de standaardkeuze te aanvaarden of vul een ander pad in. Daarna dien je een wachtwoordzin in te typen waarmee de geheime sleutel wordt versleuteld. De bijbehorende publieke sleutel is niet versleuteld, want die mag iedereen weten.

Je Ubuntu-appliance wordt gekoppeld aan je account bij Ubuntu One. Heb je zo’n account nog niet, maak dat dan gratis aan. Zodra je bent aangemeld, klik je links op SSH keys. Open nu je publieke sleutel (het bestand met de extensie .pub, standaard id_rsa.pub) in een teksteditor, kopieer de volledige inhoud en plak die in het tekstveld onder Import new SSH key. Bevestig met Import SSH key dat je deze sleutel aan je Ubuntu One-account wilt koppelen.

Raspberry Pi opstarten

De eerste keer dat je Ubuntu Core op je Raspberry Pi opstart, dien je een basisconfiguratie uit te voeren. Dat kan door een toetsenbord en monitor aan te sluiten. Start de Raspberry Pi op en volg de instructies. Eerst druk je op Enter. Let op: na een minuut inactiviteit herstart Ubuntu Core, dus wacht niet te lang tussen de volgende stappen!

Bevestig met OK dat je aan de netwerkconfiguratie wilt beginnen. Als je een ethernetkabel hebt aangesloten, zal de Pi automatisch via DHCP een ip-adres krijgen en hoef je dit alleen maar te bevestigen door met de pijltjestoetsen naar Done te gaan en op Enter te drukken.

Vul daarna het e-mailadres in dat aan je Ubuntu One-account is gekoppeld, zodat Ubuntu Core je publieke ssh-sleutel uit de cloud kan downloaden. Dan krijg je een opdracht te zien om vanaf je computer in te loggen op je Pi, zoals:

ssh koen-vervloesem@192.168.0.181

De opdracht toont je de vingerafdruk van de ssh-sleutel van je Pi. Vergelijk dit met de vingerafdruk die Ubuntu Core op je scherm of in de sessie van je seriële console toont. Als die overeenkomen, bevestig dan dat je de sleutel vertrouwt en voer de wachtwoordzin van je eigen ssh-sleutel in. Daarna ben je ingelogd.

Nextcloud configureren

Ubuntu Core draait nu op je Raspberry Pi. En omdat het image dat je hebt geïnstalleerd de Ubuntu-appliance van Nextcloud is, draait Nextcloud ook al op een webserver. De webinterface is te bereiken op http://nextcloud.local omdat Ubuntu Core van mDNS gebruikmaakt.

Je dient nu een beheerdersaccount voor Nextcloud aan te maken. Dat is overigens een ander account dan dat je zonet voor Ubuntu Core hebt aangemaakt. Je bent hiervoor dus afhankelijk van de Ubuntu One-cloud. Kies een gebruikersnaam en wachtwoord, laat de standaardkeuze Installeer aanbevolen apps aangevinkt en klik op Installatie afronden.

Daarna is het een kwestie van wat geduld hebben: Nextcloud stelt het systeem in en installeert apps voor de agenda, contactpersonen, e-mail, Talk (om te chatten en te videobellen) en Collabora Online (om gezamenlijk aan kantoordocumenten te werken).

Op het einde van de installatie zie je een welkomstvenster van Nextcloud Hub, waar je door enkele pagina’s met extra uitleg bladert. Je ziet ook links naar de gratis clients voor Windows, macOS en Linux en de gratis mobiele apps voor Android en iOS.

In dit venster vind je ook links naar documentatie voor enkele belangrijke taken, zoals je agenda configureren, je contacten instellen en toegang tot de bestanden verkrijgen via WebDAV, zonder de Nextcloud-client. Klik uiteindelijk op Starten met Nextcloud. Daarna krijg je je dashboard te zien, met aanbevolen bestanden en eventuele meldingen. Dit kun je naar wens aanpassen.

Collabora Online toevoegen

De Ubuntu-appliance voor de Raspberry Pi installeerde bij ons de versie voor de x86_64-architectuur van de Collabora Online CODE Server. Open de lijst met Nextcloud-apps en klik bij deze app op Uitschakelen en dan Verwijderen. Klik dan niet bij de app op Downloaden en inschakelen, want dan installeert Nextcloud weer de verkeerde versie.

Ga naar Instellingen / Beheer / Collabora Online en klik bij Gebruik de ingebouwde CODE - Collabora Online Development Edition op Installeer vanuit de app store. Je krijgt dan de link naar de ARM64-versie. Klik daar wel op Downloaden en inschakelen. Dit zal even duren, want de download is vrij groot.

Als alles goed gaat, kun je daarna op een officedocument in je bestanden van Nextcloud klikken en opent Collabora Online het document automatisch. Dit bestand bewerk je in je browser, desgewenst samen met anderen als een andere gebruiker op je Nextcloud-installatie hetzelfde document opent.

Zelfondertekend certificaat

Tot nu toe is je Nextcloud-installatie bereikbaar via een onversleutelde http-verbinding. Zelfs als je Nextcloud louter binnen je thuisnetwerk gebruikt, is dat niet aan te raden. Gelukkig maakt Nextcloud het vrij eenvoudig om naar https over te schakelen. 

Het eenvoudigste is met een zelfondertekend certificaat, wat volstaat als je Nextcloud alleen zelf in je eigen netwerk wilt gebruiken. Dan hoef je alleen maar dit certificaat toe te voegen aan je apparaten waarmee je toegang tot je Nextcloud-installatie wilt.

Voer de volgende opdracht uit op de terminal van je Raspberry Pi:

sudo nextcloud.enable-https self-signed

Nextcloud genereert nu een sleutel en zelfondertekend tls-certificaat, herconfigureert de webserver om dat te gebruiken en herstart de webserver. Daarna open je Nextcloud in je browser via https (en ook alleen via https).

Je browser geeft je wel de waarschuwing dat het certificaat niet vertrouwd is. Bekijk dus de vingerafdruk van het certificaat. In Firefox klik je daarvoor bij de waarschuwing op Geavanceerd en dan op Certificaat bekijken. Zoek dan bij Vingerafdrukken naar SHA-256. Je ziet daar een lange tekenreeks staan.

Voer op je Raspberry Pi de volgende opdracht uit:

sudo openssl x509 -in /var/snap/nextcloud/current/certs/self-signed/cert.pem -noout -fingerprint -sha256

Als dit dezelfde vingerafdruk oplevert als die in je webbrowser, kun je met een gerust hart klikken op Het risico aanvaarden en doorgaan, waarna je verbinding met Nextcloud is versleuteld. Overigens is het certificaat maar drie maanden geldig. Daarna wordt het automatisch hernieuwd, maar dan moet je dit opnieuw in je browsers op al je apparaten vertrouwen.

Als je ook van buiten je netwerk toegang wilt tot je Nextcloud-installatie, bijvoorbeeld omdat je bestanden op je Raspberry Pi met anderen wilt delen, heeft je Raspberry Pi een statisch ip-adres nodig, of moet je DHCP-server altijd hetzelfde ip-adres aan je Raspberry Pi toekennen. Stel daarna in je modem de functie portforwarding in: poorten 80 (http) en 443 (https) moet je te laten omleiden naar het ip-adres van je Raspberry Pi.

Stel dan dynamische dns in: een domein dat altijd naar het externe ip-adres van je modem verwijst. Veel modems en routers ondersteunen dit, en anders kun je de snap ddclient-snap op je Raspberry Pi installeren met het commando:

snap install ddclient-snap

De configuratie vind je in het bestand /var/snap/ddclient-snap/current/etc/ddclient/ddclient.conf. Doe dit alles overigens niet voordat je zeker bent dat je een veilig wachtwoord voor je Nextcloud-account hebt ingesteld.

Let’s Encrypt

Verifieer of je van buiten je netwerk in je browser toegang tot je Nextcloud-installatie krijgt. Je zult een pagina van Nextcloud te zien krijgen met de foutmelding Toegang via een niet vertrouwd domein. Standaard laat Nextcloud immers alleen verbindingen toe als je het bereikt met de hostname nextcloud.local en je hebt nu de dyndns-naam gebruikt.

Nu je weet dat Nextcloud van buitenaf bereikbaar is, kun je een tls-certificaat van Let’s Encrypt aanvragen. Dat gaat met één opdracht:

sudo nextcloud.enable-https lets-encrypt

Lees de vereisten en bevestig met y dat je installatie daaraan voldoet. Vul je e-mailadres in voor meldingen van Let’s Encrypt. Typ daarna het domein waarvoor je een certificaat wilt aanvragen. Nextcloud vraagt nu een certificaat aan Let’s Encrypt aan, herconfigureert de webserver om dat te gebruiken en herstart de webserver. Daarna kun je Nextcloud in je webbrowser via https bezoeken (en ook alleen via https), maar krijg je nog altijd de foutmelding Toegang via een niet vertrouwd domein.

Open daarom het configuratiebestand van Nextcloud:

sudo vi /var/snap/nextcloud/current/nextcloud/config/config.php

Zoek naar de volgende array:

array ( 0 => 'nextcloud.local', ),

En breid die uit tot:

array ( 0 => 'nextcloud.local', 1 => 'jedyndnsdomeinnaam', ),

Waarbij je in plaats van jedyndnsdomeinnaam uiteraard jouw eigen dyndns-domein invoert. Herstart daarna Nextcloud:

snap disable nextcloud

snap enable nextcloud

Vanaf nu is je Nextcloud-installatie van buitenaf bereikbaar via jouw dyndns-naam.

Tot slot

Je hebt nu een veilige Nextcloud-installatie op je Raspberry Pi draaien die van buitenaf bereikbaar is, inclusief de mogelijkheid om samen documenten te bewerken. Updates worden dagelijks automatisch doorgevoerd. We zijn nog amper ingegaan op alle functionaliteit in Nextcloud, maar die wijst zichzelf.

 Een leuke app is Talk: daarmee kun je chatten en videobellen. Die wordt in de Ubuntu-appliance met Nextcloud standaard geïnstalleerd, je hoeft de app alleen nog maar in te schakelen. Bekijk zeker ook de andere beschikbare apps. Op die manier maak je van je Raspberry Pi met Nextcloud een krachtige webgebaseerde kantooromgeving.

Een functie die we tenslotte sterk aanraden zijn e-mailmeldingen. Koppel daarvoor eerst een e-mailadres aan je account in de instellingen onder Persoonlijk / Persoonlijke info. Ga dan naar Beheer / Basis-instellingen / E-mailserver. Vul hier de gegevens van de SMTP-server van je e-mailprovider in. Klik uiteindelijk op Bewaar en dan Versturen e-mail om een testmail te verzenden. Komt die aan in je mailbox, dan ben je er zeker van dat je vanaf nu e-mails zult ontvangen met meldingen en voor wachtwoordresets.

Geschreven door: Koen Vervloesem op

Category: Workshop, Algemeen

Tags: cloud, raspberry pi, thuiswerken, nextcloud