Bijlage: Dify zelf hosten, Community Edition op Windows, Mac en Linux
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,4 @@
|
||||
import runpy, sys
|
||||
from pathlib import Path
|
||||
sys.argv = ["build_handleiding.py", str(Path(__file__).resolve().parent / "dify-zelf-hosten.md")]
|
||||
runpy.run_path(str(Path(__file__).resolve().parent.parent / "_gereedschap" / "build_handleiding.py"), run_name="__main__")
|
||||
@@ -0,0 +1,258 @@
|
||||
<!--
|
||||
VOOR DE BEWERKER
|
||||
|
||||
Bijlage bij de serie Dify-handleidingen: Dify Community Edition zelf draaien met Docker,
|
||||
op Windows, Mac en Linux. Geen beelden. Bouwen: python3 build.py
|
||||
Stand van zaken: 20 september 2026, volgens docs.dify.ai/en/self-host/quick-start/docker-compose.
|
||||
Versienummers en systeemeisen veranderen; bij een nieuwe release die pagina opnieuw nalopen.
|
||||
-->
|
||||
|
||||
# Dify zelf hosten: de Community Edition op je eigen computer of server
|
||||
|
||||
**Bijlage bij de workshop AI Agents**
|
||||
LeX Consultancy B.V. · AI Netwerk Limburg · 20 september 2026
|
||||
|
||||
In de workshop en in alle handleidingen gebruiken we de online versie op cloud.dify.ai: aanmelden, bouwen, klaar. Dify is daarnaast open source. Je kunt dezelfde software zelf draaien: op je eigen laptop om te oefenen, of op een server van school zodat gegevens de organisatie niet verlaten. Deze bijlage beschrijft hoe je dat doet op Windows, Mac en Linux.
|
||||
|
||||
De stappen zijn voor iemand die wel eens een terminal heeft geopend maar geen beheerder is. Reken op een half uur voor de eerste keer.
|
||||
|
||||
> **Wanneer wel, wanneer niet.** Voor de workshop en om te leren bouwen is de online versie de beste keuze: geen installatie, alles werkt meteen. Zelf hosten wordt interessant als je met echte leerlinggegevens wilt werken, als de school geen data buiten Europa wil hebben, of als je meer dan een paar mensen structureel met Dify wilt laten werken. Let op: zelf hosten neemt de verplichtingen niet weg. Het taalmodel (OpenAI, Anthropic, Mistral of een lokaal model) blijft de plek waar je tekst naartoe stuurt; dáár moet een verwerkersovereenkomst op zitten, niet alleen op Dify.
|
||||
|
||||
---
|
||||
|
||||
## Wat je krijgt
|
||||
|
||||
De Community Edition is dezelfde Dify als online, met dezelfde Studio, workflows, chatflows, kennisbanken en tools. Een paar verschillen:
|
||||
|
||||
| | Online (cloud.dify.ai) | Zelf gehost (Community Edition) |
|
||||
| --- | --- | --- |
|
||||
| Kosten | Sandbox gratis met credits; daarna abonnement | Gratis software; je betaalt je eigen modelgebruik en je eigen computer of server |
|
||||
| Taalmodel | Standaard OpenAI via Dify-credits | Je sluit zelf een aanbieder aan: OpenAI, Anthropic, Mistral, Azure, of lokaal via Ollama |
|
||||
| Gegevens | Bij Dify (cloud) en bij de modelaanbieder | Op jouw computer of server, en bij de modelaanbieder |
|
||||
| Delen | Webapp-link werkt overal | Webapp-link werkt alleen waar jouw computer of server bereikbaar is |
|
||||
| Updates | Vanzelf | Zelf doen (paragraaf "Bijwerken") |
|
||||
| Agent Console | Beschikbaar (bèta) | Volgt de releases; kan achterlopen op de cloud |
|
||||
|
||||
Alle handleidingen in deze serie werken ook op een eigen installatie. Het enige verschil is het adres in de browser: `http://localhost` in plaats van `cloud.dify.ai`.
|
||||
|
||||
---
|
||||
|
||||
## Wat je nodig hebt
|
||||
|
||||
- Een computer met minstens **2 processorkernen en 4 GB werkgeheugen** vrij voor Dify. In de praktijk: 8 GB in totaal is prettig, 16 GB werkt ontspannen.
|
||||
- Ongeveer **10 GB vrije schijfruimte**.
|
||||
- **Docker**: het programma dat Dify en zijn onderdelen (database, zoekindex, webserver) in aparte "containers" draait. Dify bestaat uit zo'n vijftien van die containers; Docker start ze in één keer.
|
||||
- **Git** om de bestanden van Dify op te halen. Kan ook zonder: dan download je een zip.
|
||||
- Een **API-sleutel van een modelaanbieder** (bijvoorbeeld OpenAI), of Ollama voor een lokaal model.
|
||||
|
||||
De installatie draait op Windows 10/11 (via WSL 2), macOS 10.14 of hoger (Intel en Apple Silicon) en elke gangbare Linux.
|
||||
|
||||
---
|
||||
|
||||
## Stap 1. Docker installeren
|
||||
|
||||
### Windows
|
||||
|
||||
1. Ga naar docker.com en download **Docker Desktop for Windows**.
|
||||
2. Start het installatieprogramma. Laat **Use WSL 2** aangevinkt; dat is de Linux-laag waarin de containers draaien. Windows installeert WSL 2 zelf als het nog ontbreekt; soms is een herstart nodig.
|
||||
3. Start Docker Desktop en wacht tot linksonder "Engine running" staat.
|
||||
4. Open **Settings → Resources** en geef Docker minstens 8 GB geheugen als je computer dat heeft.
|
||||
|
||||
> Bewaar de Dify-bestanden straks in de Linux-omgeving (bijvoorbeeld in `\\wsl$\Ubuntu\home\jouwnaam`), niet op `C:\Users\...`. Dify draait vanaf een Windows-map merkbaar trager en geeft soms rechtenfouten.
|
||||
|
||||
### Mac
|
||||
|
||||
1. Ga naar docker.com en download **Docker Desktop for Mac**. Kies de versie voor je processor (Apple Silicon of Intel; kijk onder → Over deze Mac).
|
||||
2. Sleep Docker naar Programma's en start het. Geef de gevraagde toestemmingen.
|
||||
3. Open **Settings → Resources** en zet het geheugen op minstens 8 GB en het aantal CPU's op minstens 2.
|
||||
|
||||
### Linux
|
||||
|
||||
Op Ubuntu of Debian, in een terminal:
|
||||
|
||||
```
|
||||
sudo apt update
|
||||
sudo apt install docker.io docker-compose-v2 git curl
|
||||
sudo usermod -aG docker $USER
|
||||
```
|
||||
|
||||
Meld je af en weer aan zodat de laatste regel werkt (jij mag dan Docker gebruiken zonder sudo). Op Fedora, Arch en andere distributies staat de installatie op docs.docker.com/engine/install. Dify vraagt Docker 19.03 of hoger en Docker Compose 2.24 of hoger. Controleer:
|
||||
|
||||
```
|
||||
docker --version
|
||||
docker compose version
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Stap 2. Dify ophalen
|
||||
|
||||
Open een terminal. Op Windows is dat de **Ubuntu**-app (WSL) of PowerShell; op Mac **Terminal**; op Linux je gewone terminal. Kies een map waar Dify mag staan en ga daarheen.
|
||||
|
||||
De ontwikkelaars raden aan de laatste **uitgebrachte versie** op te halen, niet de ontwikkelversie:
|
||||
|
||||
```
|
||||
git clone --branch "$(curl -s https://api.github.com/repos/langgenius/dify/releases/latest | jq -r .tag_name)" https://github.com/langgenius/dify.git
|
||||
```
|
||||
|
||||
Die regel vraagt eerst aan GitHub welk versienummer de laatste release heeft en haalt precies die op. Hij heeft `git`, `curl` en `jq` nodig. Werkt hij niet (bijvoorbeeld omdat `jq` ontbreekt), doe het dan in twee stappen: kijk op github.com/langgenius/dify/releases welk versienummer bovenaan staat, en gebruik dat (op 20 september 2026 was dat 1.17.1):
|
||||
|
||||
```
|
||||
git clone --branch 1.17.1 https://github.com/langgenius/dify.git
|
||||
```
|
||||
|
||||
Zonder git: download op dezelfde pagina onder **Assets** de zip van de nieuwste release en pak die uit.
|
||||
|
||||
Ga daarna naar de map met de Docker-bestanden:
|
||||
|
||||
```
|
||||
cd dify/docker
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Stap 3. Instellingen klaarzetten
|
||||
|
||||
Dify leest zijn instellingen uit een bestand `.env`. Er staat een voorbeeld klaar; kopieer dat:
|
||||
|
||||
```
|
||||
cp .env.example .env
|
||||
```
|
||||
|
||||
Op Windows in PowerShell: `copy .env.example .env`.
|
||||
|
||||
Voor een eerste installatie op je eigen computer hoef je niets te wijzigen. Een paar regels die je later wel wilt weten:
|
||||
|
||||
| Regel in `.env` | Wat het doet |
|
||||
| --- | --- |
|
||||
| `EXPOSE_NGINX_PORT=80` | De poort waarop Dify bereikbaar is. Staat 80 al in gebruik (bijvoorbeeld door een andere webserver), zet dan `8080`; het adres wordt dan `http://localhost:8080`. |
|
||||
| `SECRET_KEY=` | Sleutel waarmee Dify wachtwoorden en sessies beveiligt. Voor een server: vul hier een lange willekeurige tekenreeks in vóór de eerste start. |
|
||||
| `CONSOLE_WEB_URL=` en `APP_WEB_URL=` | Het publieke adres van je installatie. Leeg is goed op je eigen computer; op een server vul je hier het adres in dat collega's gebruiken. |
|
||||
| `UPLOAD_FILE_SIZE_LIMIT=15` | Maximale bestandsgrootte in MB voor uploads naar een kennisbank. Voor de transcriptietool (handleiding 05) met opnames van tientallen MB zet je dit hoger. |
|
||||
|
||||
> Het bestand `.env` bevat straks gevoelige gegevens. Zet het nooit in git of op een gedeelde schijf.
|
||||
|
||||
---
|
||||
|
||||
## Stap 4. Starten
|
||||
|
||||
```
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
De eerste keer haalt Docker alle onderdelen op; dat duurt een paar minuten, afhankelijk van je verbinding. `-d` betekent "op de achtergrond": je terminal komt terug en Dify blijft draaien.
|
||||
|
||||
Controleer of alles loopt:
|
||||
|
||||
```
|
||||
docker compose ps
|
||||
```
|
||||
|
||||
Elke regel hoort **Up** of **healthy** te zeggen. Een container die **Restarting** blijft zeggen is meestal een geheugentekort: geef Docker meer geheugen (stap 1) en start opnieuw.
|
||||
|
||||
---
|
||||
|
||||
## Stap 5. Beheerdersaccount aanmaken
|
||||
|
||||
Open in de browser:
|
||||
|
||||
```
|
||||
http://localhost/install
|
||||
```
|
||||
|
||||
(Met een andere poort: `http://localhost:8080/install`. Op een server: `http://<adres-van-de-server>/install`.)
|
||||
|
||||
Je maakt hier het eerste account aan: dat is de beheerder van de werkruimte. Daarna kom je op `http://localhost` in dezelfde Studio als online.
|
||||
|
||||
> Deze installatiepagina werkt maar één keer. Daarna log je gewoon in op `http://localhost`.
|
||||
|
||||
---
|
||||
|
||||
## Stap 6. Een taalmodel aansluiten
|
||||
|
||||
Anders dan online heeft je eigen Dify geen credits en geen standaardmodel. Je sluit zelf een aanbieder aan.
|
||||
|
||||
1. Klik rechtsboven op je accountnaam en kies **Settings → Model Provider**.
|
||||
2. Kies een aanbieder (OpenAI, Anthropic, Mistral, Azure OpenAI, Google) en klik **Install** als de plugin nog niet aanwezig is.
|
||||
3. Klik **Setup** en plak je API-sleutel. Dify controleert de sleutel direct.
|
||||
4. Kies onder **System Model Settings** welk model standaard wordt gebruikt voor nieuwe apps.
|
||||
|
||||
Vanaf hier zijn alle handleidingen van deze serie letterlijk te volgen. Waar een handleiding **gpt-5-mini** kiest, kies je hetzelfde model bij jouw aanbieder.
|
||||
|
||||
> **Zelf kiezen: een lokaal model.** Wil je dat er helemaal niets naar buiten gaat, dan kun je een model op je eigen computer draaien met **Ollama** (ollama.com). Installeer Ollama, haal een model op (`ollama pull gemma3:12b` of een ander model dat op je computer past) en voeg in Dify de aanbieder **Ollama** toe met adres `http://host.docker.internal:11434`. Reken op minstens 16 GB werkgeheugen en veel geduld: de kwaliteit en snelheid liggen onder die van de grote aanbieders, maar voor oefenen en voor gevoelige teksten kan het genoeg zijn.
|
||||
|
||||
---
|
||||
|
||||
## Stoppen, starten, bijwerken
|
||||
|
||||
Stoppen (gegevens blijven bewaard):
|
||||
|
||||
```
|
||||
docker compose down
|
||||
```
|
||||
|
||||
Weer starten:
|
||||
|
||||
```
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
Bijwerken naar een nieuwe versie. Lees eerst de release notes op github.com/langgenius/dify/releases: soms is er een extra stap. Daarna, in de map `dify/docker`:
|
||||
|
||||
```
|
||||
docker compose down
|
||||
git fetch --tags
|
||||
git checkout <nieuw versienummer>
|
||||
docker compose pull
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
Vergelijk na een update `.env.example` met je eigen `.env`: nieuwe instellingen komen alleen in het voorbeeldbestand terecht. Heb je `docker-compose.yaml` zelf aangepast, zet die aanpassingen dan opnieuw.
|
||||
|
||||
Alles verwijderen, inclusief alle apps, kennisbanken en gebruikers:
|
||||
|
||||
```
|
||||
docker compose down -v
|
||||
```
|
||||
|
||||
De `-v` gooit ook de opslag weg. Zonder `-v` blijft alles staan.
|
||||
|
||||
---
|
||||
|
||||
## Waar je gegevens staan
|
||||
|
||||
Alles wat je in Dify maakt (apps, kennisbanken, gesprekken, uploads) staat in de map `dify/docker/volumes`. Een back-up is een kopie van die map terwijl Dify gestopt is. Apps kun je daarnaast los exporteren als DSL-bestand (in Studio: de drie puntjes bij een app → **Export DSL**). Zo'n bestand kun je in elke andere Dify importeren, ook online. Dat is ook de manier om een app die je thuis hebt gebouwd naar de schoolinstallatie te brengen.
|
||||
|
||||
---
|
||||
|
||||
## Op een server voor de school
|
||||
|
||||
Op je eigen laptop werkt bovenstaande zonder meer. Voor gebruik door collega's komt er een laag bij, en dat is werk voor ICT:
|
||||
|
||||
- Een server (eigen hardware of een virtuele machine bij een Europese aanbieder) met 4 kernen, 8 tot 16 GB geheugen en een vaste naam zoals `dify.school.nl`.
|
||||
- **HTTPS**: een certificaat en een reverse proxy (Nginx, Caddy, Traefik) ervoor. In `.env` zet je dan `CONSOLE_WEB_URL` en `APP_WEB_URL` op `https://dify.school.nl`.
|
||||
- **Inloggen met schoolaccounts** (Microsoft Entra of Google Workspace) via de SSO-opties in `.env`; zonder SSO maakt de beheerder de accounts zelf aan.
|
||||
- **Back-ups** van `volumes`, dagelijks, en één keer getest terugzetten.
|
||||
- **Een verwerkersovereenkomst** met de modelaanbieder, en een besluit welke gegevens er wel en niet in mogen. Zelf hosten maakt dat gesprek niet overbodig; het maakt het wel eenvoudiger, omdat één partij minder in de keten zit.
|
||||
|
||||
De uitgebreide documentatie voor productiegebruik staat op docs.dify.ai onder **Self-Host**.
|
||||
|
||||
---
|
||||
|
||||
## Als het niet werkt
|
||||
|
||||
| Wat je ziet | Wat er aan de hand is |
|
||||
| --- | --- |
|
||||
| `docker: command not found` | Docker is niet geïnstalleerd of (Linux) je bent nog niet opnieuw aangemeld na `usermod` |
|
||||
| `port is already allocated` | Poort 80 is bezet; zet `EXPOSE_NGINX_PORT=8080` in `.env` en start opnieuw |
|
||||
| Pagina blijft laden, `docker compose ps` zegt Restarting | Te weinig geheugen voor Docker; verhoog het in Docker Desktop of sluit andere programma's |
|
||||
| `http://localhost/install` geeft "already installed" | Er is al een account; ga naar `http://localhost` en log in |
|
||||
| Modelsleutel wordt geweigerd | Sleutel verkeerd geplakt, of de aanbieder heeft geen tegoed op die sleutel |
|
||||
| Kennisbank indexeert niet | De container `weaviate` (of de gekozen vectordatabase) draait niet; kijk met `docker compose logs weaviate` |
|
||||
| Op Windows heel traag | De bestanden staan op `C:\`; verplaats de map `dify` naar de Linux-kant van WSL |
|
||||
|
||||
Logboek van een onderdeel bekijken, bijvoorbeeld de API:
|
||||
|
||||
```
|
||||
docker compose logs -f api
|
||||
```
|
||||
Binary file not shown.
+1
-1
@@ -7,6 +7,6 @@ vastgelegd. Hier staat per uitgave wat er veranderde.
|
||||
|
||||
- Handleidingen 04 (Agent Console: Toetsweekplanner) en 06 (Agent Console: Lesmateriaal-check met eigen Edurep-zoektool).
|
||||
- Handleidingen 01, 02, 03, 05, 07 en 08, met "Zelf kiezen"-kaders en "Maak hem van jou".
|
||||
- Bijlagen: ontwerpkaart, ontwerppatronen, AI-tools in het onderwijs (met AVG, AI Act en EU-kaders).
|
||||
- Bijlagen: ontwerpkaart, ontwerppatronen, AI-tools in het onderwijs (met AVG, AI Act en EU-kaders), Dify zelf hosten (Docker op Windows, Mac, Linux).
|
||||
- Draaiboek en presentatie (22 dia's) van de workshop AI Agents met Dify.
|
||||
- Vastgelegd op Dify cloud van 20 september 2026 (Studio met Chatflow, Human Input, Agent Console bèta).
|
||||
|
||||
@@ -25,6 +25,7 @@ Eigenaar en contact: Guido van Dijk, guido@l-e-x.nl, guido@ai-netwerk-limburg.nl
|
||||
| 00-ontwerppatronen | Vijf ontwerppatronen voor AI-agents en hoe je ze in Dify bouwt | Iedereen | 5 pp. |
|
||||
| 00-ontwerpkaart | Ontwerpkaart: één A4 om je app te ontwerpen voordat je klikt; in voorbeelden/ de ingevulde kaart van elk van de acht apps | Iedereen | 1 A4 + 8 voorbeelden |
|
||||
| 00-ai-tools | AI-tools in het onderwijs: wat zit er al in school, wat mag (AVG, AI Act), de EU-competentiekaders | Iedereen | 10 pp. |
|
||||
| 00-zelf-hosten | Dify zelf hosten: de Community Edition met Docker op Windows, Mac en Linux, en wat er bijkomt op een schoolserver | ICT, nieuwsgierige bouwers | 9 pp. |
|
||||
|
||||
Elke handleiding heeft per stap een groen kader "Zelf kiezen" (wat je vervangt door eigen materiaal,
|
||||
stijl of prompt) en een slothoofdstuk "Maak hem van jou" met aanpaspunten, opdrachten en een checklist.
|
||||
|
||||
Reference in New Issue
Block a user