De opensource cloudopslag OpenCloud houdt het simpel. We laten zien hoe je het installeert en via internet kunt bereiken.
Alternatief voor de grote clouddiensten
Veel mensen en bedrijven zijn er op dit moment wat huiverig voor om hun bestanden op te slaan in de cloud van Microsoft, Google, Dropbox en aanverwanten. Het synchroniseren van bestanden tussen meerdere apparaten of het gezamenlijk bewerken ervan is echter erg praktisch en iets wat de meeste gebruikers niet meer willen missen – zowel privé als op het werk niet. Een voor de hand liggend alternatief voor de gevestigde cloudopslagdiensten is het opensourceproject Nextcloud. We hebben al uitgebreid beschreven hoe je Nextcloud op je eigen server installeert of op een gehuurde server configureert [1].
In principe is daar geen krachtige hardware voor nodig en werkt het ook met een microcomputer zoals de Raspberry Pi. Aangepaste Nextcloud-distributies zoals NextcloudPi kunnen je veel werk bij het installeren besparen. Toch zijn Nextcloud en een Raspberry Pi niet altijd een goede match. De ontwikkelaars hebben Nextcloud de afgelopen jaren uitgebreid met veel groupwarefuncties, en als je de persoonlijke cloud met meerdere gebruikers deelt, kan dat minder krachtige hardware zoals een Raspberry Pi 4 en oudere modellen overbelasten. Ook de integratie van officefuncties via Collabora Online of Open Office bleef tot voor kort lastig bij zelfgehoste Nextcloud-versies.
OpenCloud als lichtere uitdager
Met OpenCloud is er een nieuwe uitdager op het gebied van cloudopslag voor kleine bedrijven of gezinnen, die een verleden heeft met Nextcloud. Beide projecten zijn oorspronkelijk gestart als een fork, dat wil zeggen een afsplitsing van het oorspronkelijke project ownCloud. In tegenstelling tot Nextcloud is OpenCloud echter gebaseerd op ownCloud Infinite Scale (oCIS), dat opnieuw is geschreven in Go, het oude PHP-back-end overboord gooit en zonder database werkt. Daardoor voelt OpenCloud subjectief sneller aan en werkt het zelfs op een Raspberry Pi 4 nog steeds goed – ook als bijvoorbeeld meerdere gebruikers een document bewerken terwijl er op de achtergrond een bestand geüpload wordt.
In dit artikel laten we zien hoe je OpenCloud met Docker op een Raspberry Pi 4 installeert, een externe ssd als gegevensopslag gebruikt om een gezamenlijk online kantoor uit te breiden en hoe je de open cloud ook via internet toegankelijk maakt. Bij installatie op andere hardware zijn de stappen vanaf ‘OpenCloud installeren’ vergelijkbaar.
Hardware en toepassingsgebied
Het OpenCloud-project raadt een Raspberry Pi 4 of nieuwer aan met minimaal 4 GB RAM en een microSD-kaart met minimaal 32 GB. Om de opslagruimte uit te breiden, kun je een willekeurige externe ssd nemen en die bijvoorbeeld via een SATA-naar-USB-adapter aansluiten of een Raspberry Pi-behuizing zoals de Argon ONE M.2 gebruiken, die een sleuf voor SATA-SSD’s in M.2-formaat biedt. Voor het uitbreiden van de opslagruimte gebruik je op andere systemen, zoals een NAS, de bijbehorende opties.
OpenCloud richt zich in de huidige versie vooral op bestandssynchronisatie. Dat maakt de software aantrekkelijk voor zelfhosters die persoonlijke cloudopslag op beperkte hardware willen gebruiken en de Nextcloud-appstore toch al niet zouden gaan gebruiken.
De OpenCloud-documentatie geeft aan dat het installeren op een Raspberry Pi niet bedoeld is voor bedrijfsmatig productief gebruik, maar voor particulieren met een minder intensief gebruik doet de software het prima op een Raspberry Pi. Dat is dan ook een mooie omgeving om met OpenCloud en cloudopslag in het algemeen te experimenteren.

Raspberry Pi voorbereiden
Eerst maak je de Raspberry Pi klaar. Schrijf het besturingssysteem Raspberry Pi OS Lite (64-bit) met Raspberry Pi Imager naar een microSD-kaart. Het is belangrijk dat je bij de instellingen van het besturingssysteem de SSH-dienst activeert en een veilig wachtwoord instelt. Een monitor, toetsenbord en muis zijn niet per se nodig. Het is voldoende om de Raspberry Pi met een netwerkkabel aan te sluiten en via USB-C van stroom te voorzien. Na de eerste start log je via SSH vanaf een ander systeem in:
Vervang daarbij cttest door de gebruikersnaam die je bij Imager hebt opgegeven en het voorbeeld-ip-adres door het adres van de Raspberry Pi. Je kunt dat bijvoorbeeld in de webinterface van je router vinden.
Na het opstarten moet je eerst het besturingssysteem updaten:
sudo apt update && sudo apt upgrade
De OpenCloud-ontwikkelaars verspreiden de software als Docker-container. Afzonderlijke functies kunnen worden ingeschakeld via omgevingsvariabelen, die op hun beurt verwijzen naar verschillende Docker-Compose-bestanden, maar daarover later meer.
Installeer eerst Docker. Dat gaat het makkelijkst met het installatiescript:
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
Voeg vervolgens je gebruiker toe aan de Docker-groep:
sudo usermod -aG docker ${USER}
Als je dat nog niet hebt gedaan, sluit dan de externe ssd aan op een USB3-poort van de Raspberry Pi en bepaal met het commando lsblk het juiste apparaat.
Als er geen andere schijf of usb-stick aangesloten is, meldt de ssd zich waarschijnlijk aan als sda en heeft hij een partitie met de naam sda1. Formatteer die in de volgende stap en maak een ext4-bestandssysteem aan. Dat doe je met het volgende commando, dat de partitie ook het label DATA geeft:
sudo mkfs.ext4 /dev/sda1 -L DATA
Om ervoor te zorgen dat het bestandssysteem bij elke start van de Raspberry Pi automatisch aangekoppeld wordt, moet je het bestand /etc/fstab bewerken met een teksteditor zoals nano. Voeg de volgende regel toe:
LABEL=DATA /mnt/data ext4 auto,defaults 0 0
Maak ten slotte een map aan als mountpunt en stel de rechten in die de OpenCloud-container nodig heeft:
sudo mkdir -p /mnt/data
sudo chown -R 1000:1000 / mnt/data
Voordat je OpenCloud gaat installeren, start je de Raspberry Pi opnieuw op met het commando sudo reboot now. Log vervolgens opnieuw in via SSH en controleer met het commando df of het bestandssysteem /dev/sda1 correct is gemount onder /mnt/data.
OpenCloud installeren
Dan volgt het eigenlijke installeren van OpenCloud met Docker. De architectuur van OpenCloud is modulair en de ontwikkelaars stellen in de GitHub-repository opencloud-eu/opencloud-compose verschillende configuratiebestanden voor Docker Compose beschikbaar, waarmee functies kunnen worden ingeschakeld.
In dit artikel laten we zowel een minimalistische set-up zien, die toegankelijk is in het thuisnetwerk, zich beperkt tot bestandssynchronisatie en een zelfondertekend certificaat gebruikt, als een uitgebreidere installatie met officefuncties, die toegankelijk is via internet en een certificaat van Let’s Encrypt gebruikt.
Kloon eerst de GitHub-repository van OpenCloud en ga naar de diredtory:
git clone https://github.com/opencloud-eu/opencloud-compose.git
cd opencloud-compose
Kopieer vervolgens het bestand met de omgevingsvariabelen:
cp .env.example .env
Bewerk dan het bestand .env met een teksteditor. Dit bestand is het configuratiebestand voor je OpenCloud-installatie. Je hoeft de afzonderlijke Compose-bestanden niet te bewerken. Verwijder in het gedeelte met de titel Features het hekje voor COMPOSE_FILE=docker-compose.yml:traefik/opencloud.yml om de minimale set-up te activeren.
Op dezelfde manier worden ook andere functies geactiveerd of gedeactiveerd. In het gedeelte over Traefik stel je de reverse-proxy in met TRAEFIK_SERVICES_TLS_CONFIG="tls=true" om lokale certificaten te gebruiken.
In het gedeelte over OpenCloud verander je vier dingen:
OC_DOMAIN=192.168.1.161
INITIAL_ADMIN_PASSWORD=cttest
OC_CONFIG_DIR=/mnt/data
OC_DATA_DIR=/mnt/data
Vul bij OC_DOMAIN= het ip-adres in van de Raspberry Pi. Vervang het voorbeeldwachtwoord cttest door een veilig wachtwoord voor het admin-account. Bij OC_CONFIG_ DIR= en OC_DATA_DIR= vul je de eerder aangemaakte directory in, zodat configuratiebestanden en gegevens op de externe ssd terechtkomen.
Start daarna het containercluster van OpenCloud en Traefik met het volgende commando:
docker compose up -d
Na een korte tijd kun je OpenCloud in de browser openen door het ip-adres van de Raspberry Pi op de adresbalk in te voeren. Log vervolgens in met de gebruikersnaam admin en het wachtwoord dat je eerder ingesteld hebt.
Als je ownCloud of Nextcloud al eens een keer gebruikt hebt, zul je daar waarschijnlijk meteen je weg vinden. Bestanden upload je eenvoudig via drag & drop of door op de knop Upload te klikken. Gedeelde mappen voor teams worden in OpenCloud Spaces genoemd. Je kunt die openen via de zijbalk aan de linkerkant van het venster. Er is ook een eenvoudige teksteditor voor Markdown- en tekstbestanden beschikbaar.
OpenCloud is dan klaar voor gebruik, maar het aantal functies is nogal beperkt. De cloudopslag is alleen toegankelijk in je thuisnetwerk of door bijvoorbeeld een VPN-toegang in je router in te stellen.
OpenCloud uitbreiden
Via omgevingsvariabelen, die zijn verzameld in het bestand .env, kun je extra functies inschakelen en OpenCloud via internet toegankelijk maken. Om samen aan documenten te werken, heb je de Collabora Online-module nodig, voor het synchroniseren van agenda’s en contacten de Radicale-module.
Die componenten vergen bovendien een eigen domein, omdat ze elk onder een eigen subdomein beschikbaar zijn. Dat kunnen ook meerdere DynDNS-domeinen zijn – in totaal heb je er drie nodig, bijvoorbeeld
opencloud.dyndns.example
collabora.dyndns.example
wopi.dyndns.example
Om dat te laten werken, stel je port-forwarding in op je router. Inkomende verzoeken op de TCP-poorten 80 en 443 moeten door de router worden doorgesluisd naar de Raspberry Pi. Hoe je met portforwarding en DynDNS services vanuit je netwerk toegankelijk kunt maken via internet, hebben we in detail beschreven in een ander artikel [2].
Als dat in jouw situatie geen optie is, bijvoorbeeld omdat je internetprovider alleen DS-Lite aanbiedt, kun je nog steeds uitwijken naar een tunneloplossing [3].
Bewerk het bestand met de omgevingsvariabelen opnieuw met het commando nano .env. Verwijder het commentaar-hekje voor de regel INSECURE=true om de validatie van certificaten te activeren. Voor Collabora, Radicale en Traefik heb je de volgende waarde nodig voor de omgevingsvariabele COMPOSE_FILE=
COMPOSE_FILE=dockercompose.yml: weboffice/collabora.yml: traefik/opencloud.yml: traefik/collabora.yml: radicale/radicale.yml
In het gedeelte over Traefik verander je
TRAEFIK_SERVICES_TLS_CONFIG="tls=true"
in
TRAEFIK_SERVICES_TLS_CONFIG="tls.certresolver=letsencrypt"
en bij TRAEFIK_ACME_MAIL= vul je je e-mailadres in. Daarna pas je het domein van OpenCloud aan.
In plaats van het ip-adres van de Raspberry Pi vul je daar de domeinnaam in, bijvoorbeeld opencloud.dyndns.example. Stel vervolgens je domeinen in voor Collabora (COLLABORA_DOMAIN=) en de documentserver (WOPISERVER_DOMAIN=), die Collabora via het WOPI-protocol (Web Application Open Platform Interface) gebruikt.
Geef ook een veilig beheerderswachtwoord op (COLLABORA_ADMIN_PASSWORD=). Dat heeft niets te maken met je OpenCloud-inloggegevens.
Schakel dan de regel COLLABORA_SSL_VERIFICATION=false uit om de SSL-verificatie voor Collabora in te schakelen.
Tot slot stel je nog de map in waar de CalDAV- en CardDAV-server Radicale zijn gegevens moet opslaan:
RADICALE_DATA_DIR=/mnt/data/radicale/data
Dan is het uitgebreide OpenCloud-containercluster klaar om te starten:
docker compose up -d
Na korte tijd kun je inloggen onder het nieuwe domein opencloud.dyndns.example.com.
Zodra je op de knop New klikt, zijn er nieuwe opties beschikbaar. Je kunt bijvoorbeeld rechtstreeks in de webinterface Microsoft Word- of OpenDocument-bestanden aanmaken. Als je het document deelt met andere gebruikers of via een openbare link, kunnen meerdere gebruikers er samen aan werken en wijzigingen vastleggen.
Bijzonder handig: OpenCloud geeft documenten automatisch een versienummer. Via het menu Details kun je eerdere versies downloaden of herstellen.

Naar de Opencloud
De meeste gebruikers zullen niet alleen via de webinterface met OpenCloud willen werken. In het downloadgedeelte van de OpenCloud-website zijn desktop- en mobiele apps voor Windows, macOS, Linux, Android en iOS beschikbaar.

Om bestanden met de clients en OpenCloud te synchroniseren, hoef je alleen maar de url van je server in te voeren.
In de webinterface van OpenCloud misten we een agenda-app. In een blogpost staat dat een agenda onderdeel zal worden van een groupwaremodule die momenteel wordt ontwikkeld en in 2026 moet verschijnen. Dat lijkt echter voorbehouden te zijn aan zakelijke klanten.

Je kunt agenda’s en contacten echter nog steeds synchroniseren via CalDAV en CardDAV. Als front-end daarvoor kun je bijvoorbeeld de e-mailclient Thunderbird of een agenda-app op je smartphone gebruiken. Daarvoor is bij OpenCloud een app-wachtwoord (token) nodig. Dat kun je instellen bij de instellingen van je gebruikersaccount in het menu Calendar.
Voor het synchroniseren van de agenda op een Android-smartphone kun je de app DAVx<sup>5</sup> gebruiken, die je gratis kunt downloaden in de Play Store. Om een nieuw account toe te voegen, voer je in DAVx<sup>5</sup> de url van je OpenCloud-server, je gebruikersnaam en het token in.
Daarna kun je agenda’s uit OpenCloud makkelijk integreren in andere apps, zoals Google Agenda. Hoe je dat doet voor een Nextcloud-agenda, hebben we in [4] gedetailleerd beschreven. De beschrijving werkt precies hetzelfde voor OpenCloud.
Conclusie
OpenCloud is snel klaar voor gebruik en kan ook snel worden uitgebreid met de basisfuncties. In principe kunnen via het .env-bestand nog meer functies worden toegevoegd, bijvoorbeeld een full-text zoekfunctie, een virusscanner of een volwaardige identiteitsprovider zoals Keycloak.
Op een gegeven moment gaat dat echter de mogelijkheden van een Raspberry Pi 4 te boven en moet je overschakelen naar een wat professionelere oplossing. OpenCloud is echter leuk als snelle cloudopslag voor een handvol gebruikers, gericht op bestandssynchronisatie en officefuncties. Als je OpenCloud met grotere teams of in een bedrijf wil gebruiken, moet je een volwaardige server gebruiken.
Literatuur
[1] Niklas Dierking en Noud van Kruysbergen, Nextcloud installeren en configureren, c’t 10/2024, p.46
[2] Peter Siering en Noud van Kruysbergen, De basisprincipes om diensten op internet te zetten, c’t 10/2025, p.38
[3] Niklas Dierking en Noud van Kruysbergen, Diensten met reverse-proxy of (VPN-)tunnel beschikbaar maken, c’t 10/2025, p.42
[4] Niklas Dierking en Noud van Kruysbergen, Nextcloud-clients voor desktop en mobiel, c’t 10/2024, p.50
Praat mee