Learning Center
Docker-platform

Nextcloud installeren met Docker

25 nov 2025
Hostman Team
Hostman Team

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.

Vereisten
Link kopiëren

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 installeren en uitvoeren
Link kopiëren

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.

Stap 1: Maak een configuratiemap aan
Link kopiëren

Maak eerst een map aan voor de configuratiebestanden en navigeer er naartoe:

mkdir nextcloud && cd nextcloud

Stap 2: Maak het .env-bestand
Link kopiëren

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.

Stap 3: Maak het docker-compose.yml-bestand
Link kopiëren

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

Stap 4: Start de containers
Link kopiëren

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:

  1. Log in op je Docker Hub-account of maak een nieuw account aan.

  2. Ga naar Account settings → Personal access tokens.

  3. Klik op Generate new token.

  4. Voeg een beschrijving toe, kies een verloopdatum en selecteer de permissies Read, Write, Delete.

  5. Klik Generate en kopieer het token (het wordt slechts één keer weergegeven).

  6. 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.

Stap 5: HTTPS configureren met Let’s Encrypt
Link kopiëren

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

Stap 6: Een Proxy Host toevoegen
Link kopiëren

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.

Stap 7: Inloggen bij Nextcloud
Link kopiëren

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.

Conclusie
Link kopiëren

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.