Voor iedereen die volledige controle over zijn data wil behouden, biedt Nextcloud een krachtige open-sourcel oplossing voor het opzetten van een privé-cloudopslagsysteem. Het platform maakt niet alleen veilige bestandssynchronisatie tussen apparaten mogelijk, maar stelt je ook in staat om de opslag op je eigen server te hosten, zonder afhankelijk te zijn van externe aanbieders.
In deze handleiding doorlopen we het proces van het installeren van Nextcloud met geïsoleerde Docker-containers, wat de deployment en het beheer aanzienlijk vereenvoudigt. Daarnaast configureren we automatische versleuteling van het verkeer met SSL-certificaten van Let’s Encrypt om veilige gegevensoverdracht te garanderen.
Je hebt nodig:
Een Hostman-cloudserver met vooraf geïnstalleerd Linux Ubuntu 24.04.
Een domeinnaam.
Docker en Docker Compose.
Voor de server raden we een configuratie aan met 1 CPU-core, 2 GB RAM en een openbaar IPv4-adres, dat je kunt aanvragen tijdens het aanmaken van de server of later in de sectie “Network”.
De server is binnen enkele minuten klaar voor gebruik. Het IPv4-adres en de inloggegevens voor SSH-toegang zijn beschikbaar in het Dashboard.
Nextcloud vereist meerdere essentiële componenten:
Database: in dit geval MariaDB, een krachtige en betrouwbare database-engine.
SSL-certificaat: we gebruiken gratis SSL-certificaten van de non-profit certificeringsinstantie Let’s Encrypt.
Reverse proxy: we voegen Nginx Proxy Manager toe die inkomend HTTP- en HTTPS-verkeer doorstuurt naar de juiste containers.
Maak eerst een map aan voor de configuratiebestanden en navigeer er naartoe:
mkdir nextcloud && cd nextcloud
Dit verborgen bestand bevat variabelen met wachtwoorden:
nano .env
Inhoud van het bestand:
NEXTCLOUD_ROOT_PASSWORD=secure_root_password_123
NEXTCLOUD_DB_PASSWORD=secure_nextcloud_db_password_456
NPM_ROOT_PASSWORD=secure_npm_root_password_789
NPM_DB_PASSWORD=secure_npm_db_password_012
Vergeet niet deze waarden te vervangen door je eigen veilige wachtwoorden.
Maak het bestand aan met:
nano docker-compose.yml
Voeg de volgende configuratie toe (niet vertaald volgens je verzoek):
volumes:
nextcloud-data:
nextcloud-db:
npm-data:
npm-ssl:
npm-db:
networks:
frontend:
backend:
services:
nextcloud-app:
image: nextcloud:31.0.8
restart: always
volumes:
- nextcloud-data:/var/www/html
environment:
- MYSQL_PASSWORD=${NEXTCLOUD_DB_PASSWORD}
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_HOST=nextcloud-db
- MYSQL_PORT=3306
networks:
- frontend
- backend
nextcloud-db:
image: mariadb:12.0.2
restart: always
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
volumes:
- nextcloud-db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=${NEXTCLOUD_ROOT_PASSWORD}
- MYSQL_PASSWORD=${NEXTCLOUD_DB_PASSWORD}
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
networks:
- backend
npm-app:
image: jc21/nginx-proxy-manager:2.12.6
restart: always
ports:
- "80:80"
- "81:81"
- "443:443"
environment:
- DB_MYSQL_HOST=npm-db
- DB_MYSQL_PORT=3306
- DB_MYSQL_USER=npm
- DB_MYSQL_PASSWORD=${NPM_DB_PASSWORD}
- DB_MYSQL_NAME=npm
volumes:
- npm-data:/data
- npm-ssl:/etc/letsencrypt
networks:
- frontend
- backend
npm-db:
image: jc21/mariadb-aria:10.11.5
restart: always
environment:
- MYSQL_ROOT_PASSWORD=${NPM_ROOT_PASSWORD}
- MYSQL_DATABASE=npm
- MYSQL_USER=npm
- MYSQL_PASSWORD=${NPM_DB_PASSWORD}
volumes:
- npm-db:/var/lib/mysql
networks:
- backend
Start de containers:
docker compose up -d
Bij het uitvoeren van docker compose up -d kun je een foutmelding krijgen vanwege Pull-limieten van Docker Hub.
In dat geval:
Log in op je Docker Hub-account of maak een nieuw account aan.
Ga naar Account settings → Personal access tokens.
Klik op Generate new token.
Voeg een beschrijving toe, kies een verloopdatum en selecteer de permissies Read, Write, Delete.
Klik Generate en kopieer het token (het wordt slechts één keer weergegeven).
Log op de server in met:
docker login -u dockeruser
Vervang dockeruser door je eigen gebruikersnaam en plak het token als wachtwoord.
Start daarna alles opnieuw:
docker compose up -d
Controleer de status:
docker ps
Alle containers moeten de status Up hebben.
Open in de browser:
http://<server-IP>:81
Log in met de standaardgegevens:
Login: admin@example.com
Wachtwoord: changeme
Bij het eerste inloggen:
Werk naam, bijnaam en e-mail bij.
Verander het wachtwoord:
Current Password: changeme
New Password: nieuw wachtwoord
Confirm Password: herhaal het wachtwoord
Ga naar Hosts → Proxy Hosts.
Klik op Add Proxy Host en vul het volgende in:
Domain Names: je domein voor Nextcloud
Scheme: http
Forward Hostname/IP: nextcloud-app
Forward Port: 80
Ga vervolgens naar tabblad SSL:
Kies Request a new SSL Certificate
Schakel in:
Force SSL
HTTP/2 Support
HSTS Enabled
Voer je e-mail in voor Let’s Encrypt en accepteer de voorwaarden. Klik op Save.
Open nu je domein. Als alles correct is ingesteld, verschijnt de Nextcloud-webinterface en wordt automatisch een SSL-certificaat van Let’s Encrypt uitgegeven.
Maak een nieuw beheerdersaccount aan.
Installeer eventueel aanbevolen apps of sla dit over.
De installatie en basisconfiguratie zijn hiermee voltooid.
In dit artikel hebben we laten zien hoe je Nextcloud kunt deployen met Docker en een gratis SSL-certificaat van Let’s Encrypt kunt aanvragen.
Deze methode behoort tot de meest betrouwbare, veilige en schaalbare oplossingen. Docker zorgt voor duidelijke isolatie, vereenvoudigt updates en maakt migraties makkelijker. Het gebruik van een SSL-certificaat is essentieel om vertrouwelijke gegevens te beschermen en versleuteld verkeer te garanderen.