Skip to main content
AcademytutorialNextcloud lokaal draaien met Docker

Nextcloud lokaal draaien met Docker

Drie commando's, vier stappen, een kwartier werk. Daarna draait er een schone Nextcloud op je laptop, klaar om Conduction-apps op te installeren.

TutorialNextcloudDockerSetupDemoLokaal
5 min read

Voor elke andere tutorial in deze academy heb je een werkende Nextcloud nodig. Dit is de snelste route: drie commando's en je draait de officiële Nextcloud-image lokaal, identiek aan productie. Geen sales-call, geen demo-omgeving die offline kan, geen custom Dockerfile. Daarna installeer je de Conduction-apps via de Nextcloud app store, hetzelfde pad als productie.

Daarna kun je verder met Een Woo-register opzetten, Bestanden uploaden bij een Woo-publicatie, of een eigen experiment.

Op een schone laptop is stap 0 (Docker installeren) ongeveer tien minuten. Daarna is stap 1 t/m 3 samen een kwartier.

Stap 0: Zorg dat Docker draait

Eenmalig.

  • Mac of Linux: installeer Docker Desktop.
  • Windows: zet eerst WSL 2 aan en installeer daarna Docker Desktop.

Test of het werkt:

docker --version
docker compose version

Allebei moeten een versie teruggeven, geen foutmelding.

Stap 1: Maak een werkmap en het compose-bestand

mkdir conduction-demo
cd conduction-demo

Sla het volgende op als docker-compose.yml in die map:

services:
  db:
    image: postgres:16-alpine
    restart: unless-stopped
    volumes:
      - db:/var/lib/postgresql/data
    environment:
      POSTGRES_DB: nextcloud
      POSTGRES_USER: nextcloud
      POSTGRES_PASSWORD: nextcloud

  redis:
    image: redis:7-alpine
    restart: unless-stopped

  nextcloud:
    image: nextcloud:latest
    restart: unless-stopped
    depends_on: [db, redis]
    ports:
      - "8080:80"
    volumes:
      - nextcloud:/var/www/html
      - ./apps:/var/www/html/custom_apps
    environment:
      POSTGRES_HOST: db
      POSTGRES_DB: nextcloud
      POSTGRES_USER: nextcloud
      POSTGRES_PASSWORD: nextcloud
      REDIS_HOST: redis
      NEXTCLOUD_TRUSTED_DOMAINS: "localhost"

volumes:
  db:
  nextcloud:

Drie services, allemaal officiële images, geen custom build. De ./apps-bind-mount is optioneel: handig als je een Conduction-app als zip naast de installatie wilt zetten in plaats van via de app store.

Stap 2: Start de stack

docker compose up -d

De eerste keer trekt Docker ongeveer 750 MB aan images binnen. Daarna start de stack in seconden.

Volg de logs terwijl Nextcloud zichzelf bootstrapt:

docker compose logs -f nextcloud

Wacht tot je apache2 -D FOREGROUND of vergelijkbaar ziet, en Ctrl+C om de log-volger af te sluiten. De containers blijven draaien.

Stap 3: Voltooi de Nextcloud setup-wizard

Open http://localhost:8080 in je browser. Nextcloud toont een setup-wizard:

  1. Vul een admin-naam en wachtwoord in. admin en admin is prima voor lokaal werk; in productie natuurlijk niet.
  2. Onder Storage & database kies je niets, want de Postgres-config zit al in docker-compose.yml.
  3. Klik op Install.

Na een halve minuut land je op het dashboard, ingelogd als admin.

Stap 4: Installeer de Conduction-apps

Klik je avatar rechtsboven en kies Apps. De Conduction-apps staan onder Integration en Office & text. Onze suggestie voor een eerste demo:

  • OpenRegister. De typed-data foundation. Installeer deze als eerste, alle andere apps lezen ervan af.
  • OpenCatalogi. Maakt elk register doorzoekbaar als publieke entry. Federation naar data.overheid.nl.
  • OpenConnector. Trekt voorbeelddata binnen via REST, SOAP en file-drops.

Na elke install draait de schema-bootstrap automatisch. Voorbeelddata is binnen seconden zichtbaar.

Wat je krijgt

EigenschapWaarde
Eerste bootOngeveer drie minuten (eerste keer 750 MB download)
Volgende bootsSeconden
ImageOfficiële nextcloud:latest, identiek aan productie
GeheugenRond 1 GB onder lichte load
Resetdocker compose down -v (verwijdert volumes)

Geen vooraf opgenomen screencast, geen demo-omgeving die offline kan. Wat je hier ziet, is precies wat een echte klant ziet.

Reset of stoppen

# tijdelijk stoppen, data behouden
docker compose stop

# weer starten
docker compose start

# helemaal opruimen, ook volumes
docker compose down -v

Na down -v is je laptop weer schoon. Twee minuten later kun je opnieuw beginnen.

Probleemoplossing

Apache port 8080 in gebruik: wijzig "8080:80" naar bijvoorbeeld "8081:80" in docker-compose.yml. Vergeet niet de URL aan te passen naar http://localhost:8081.

Setup-wizard wil opnieuw beginnen: waarschijnlijk is de Postgres-database leeg geraakt. Voer docker compose down -v uit en start opnieuw met docker compose up -d.

Nextcloud toont "Trusted domain"-foutmelding: voeg de host toe aan NEXTCLOUD_TRUSTED_DOMAINS (komma-gescheiden) en herstart met docker compose up -d.

App-store install werkt niet: controleer of Nextcloud naar buiten kan. In een corporate netwerk soms blokkade op apps.nextcloud.com. Een proxy via HTTP_PROXY-env-variabelen lost dit op.

Volgende stap

Een werkende Nextcloud is de aanleiding voor de andere tutorials in deze serie:

Stuur het docker-compose.yml naar een collega als je dit samen wilt zien werken.