Ga naar hoofdinhoud

AnythingLLM: Een complete gids voor installatie, functies en use-cases

Leer hoe je AnythingLLM installeert met Docker en Ollama, RAG-pipelines opzet voor privé documentchat, en kiest tussen AnythingLLM, ChatGPT en Open WebUI.
Bijgewerkt 16 apr 2026  · 11 min lezen

Een veelgestelde vraag in de self-hosted AI-wereld is hoe je kunt chatten met privédocumenten zonder ze naar een cloud-API te sturen. 

AnythingLLM is een populair antwoord. Het regelt alles (documentupload, embeddingen, zoeken en chat) in één interface en sluit aan op een breed scala aan LLM-providers. Zo bouw je privé AI-workflows zonder afhankelijk te zijn van cloudservices.

In deze gids leg ik uit wat AnythingLLM is, loop ik door de architectuur, laat ik zien hoe je het installeert met Docker en Ollama, en demonstreer ik een werkende Retrieval-Augmented Generation (RAG)-pipeline. Ik vergelijk het ook met Open WebUI en ChatGPT.

Wat is AnythingLLM?

AnythingLLM is een open-source applicatie, gebouwd door Mintplex Labs onder de MIT-licentie. Het heeft een actieve GitHub-community en frequente releases en wordt veel gebruikt in de self-hosted AI-wereld.

Wat het doet: het zet je documenten om in context die een large language model (LLM) kan gebruiken tijdens gesprekken. Je uploadt bestanden, het systeem verwerkt en slaat ze op, en daarna kan de LLM vragen beantwoorden op basis van jouw data. Het project is snel gegroeid, met een actieve Discord-community en maandelijkse updates die nieuwe LLM-providers en functies toevoegen.

Twee dingen om vooraf te begrijpen. Ten eerste: AnythingLLM is geen model op zich. Het is een brug die je verbindt met externe LLM-providers, zowel lokaal (zoals Ollama) als cloudgebaseerd (zoals OpenAI of Anthropic). 

Ten tweede: het platform organiseert alles in workspaces. Zie dit als aparte kamers voor verschillende projecten. Elke workspace heeft eigen documenten en gesprekken die geïsoleerd blijven, tenzij je ze expliciet laat delen.

AnythingLLM workspace-interface met het chatpaneel en documentzijbalk.

AnythingLLM workspace-interface met documenten. Afbeelding door de auteur.

AnythingLLM op desktop vs. Docker

De desktop-app (macOS, Windows, Linux) is voor individuele gebruikers die alles lokaal draaien. Hij wordt geleverd met een ingebouwde LLM-engine, CPU-gebaseerde embedder en meegeleverde LanceDB. Installatie met één klik, geen configuratie nodig.

De Docker-versie is gebouwd voor teams en servers. Die voegt degelijke toegangscontrole toe met Admin-, Manager- en Default-rollen, plus insluitbare chat-widgets voor websites en white-labeling. Als je teamtoegang of publiek toegankelijke chat-widgets nodig hebt, is Docker je enige optie.

Functie

Desktop

Docker

Ondersteuning voor meerdere gebruikers

Nee

Ja (Admin-, Manager-, Default-rollen)

Ingebouwde LLM-engine

Ja

Nee (verbind met externe providers)

Insluitbare chat-widgets

Nee

Ja

White-labeling

Nee

Ja

Complexiteit van de setup

Installatie met één klik

Vereist Docker-kennis

Kernfuncties van AnythingLLM

Nu je weet wat AnythingLLM is en hoe je kiest tussen Desktop en Docker, lopen we door de functies die het nuttig maken voor documentgebaseerde AI-workflows.

Documentinname

Werkt met PDF, DOCX, TXT, Markdown, CSV, XLSX, PPTX, HTML, 50+ codebestandstypen en audiobestanden (met Whisper-transcriptie). Je kunt ook direct content ophalen uit GitHub-repo's, YouTube-transcripten, Confluence-pagina's en websites met de ingebouwde scraper.

Vector-database

LanceDB is ingebouwd en vereist nul setup. Heb je enterprise-functies nodig, dan kun je overschakelen naar Chroma, Milvus, Pinecone, Qdrant, Weaviate, Zilliz, AstraDB of PGVector.

Ondersteuning voor meerdere LLMs

Ondersteunt een breed scala aan providers, waaronder Ollama, LM Studio, OpenAI, Anthropic, Azure OpenAI, Google Gemini, AWS Bedrock, Groq en DeepSeek. Je kiest per workspace modellen, zodat één workspace een lokaal Ollama-model kan gebruiken voor gevoelige zaken terwijl een andere GPT-4o via OpenAI gebruikt.

AI-agents

Typ @agent in elke chat om de no-code agent builder te activeren. Die heeft ingebouwde skills voor zoeken in documenten, samenvatten en webscraping. Agent Flows geeft je een visueel canvas om API-calls, LLM-instructies en bestandsbewerkingen aan elkaar te koppelen. Het ondersteunt ook Model Context Protocol (MCP) voor het koppelen van externe tools.

API-toegang

De developer-API staat op /api/docs (Swagger-docs). Je kunt programmatisch workspaces beheren, documenten embedden en chatberichten sturen.

Hoe AnythingLLM werkt (architectuuroverzicht)

De applicatie heeft drie delen: de frontend (React/ViteJS) geeft je de interface die je ziet en bedient. De server (Express-backend) handelt alle LLM-interacties, het werk met de vector-database en API-verzoeken af. Hij gebruikt SQLite voor het opslaan van configuratie. De collector is een aparte service die je geüploade documenten parseert en verwerkt. Als je een PDF uploadt, extraheert de collector de tekst, daarna hakt de server die in stukken, embedt ze en slaat ze op.

De RAG-pipeline

De pipeline werkt in twee fasen.

Inname: Je documenten gaan naar de collector, die de tekst extraheert. De server splitst deze tekst vervolgens in chunks (tot 1.000 tekens met een kleine overlap om context te behouden). Elke chunk wordt omgezet in een vector door het embeddingmodel en dan opgeslagen in de vector-database. Een vector-cache/ -map vermindert onnodig opnieuw embedden in veel gevallen.

Query: Je vraag wordt omgezet in een vector met hetzelfde embeddingmodel. Vervolgens zoekt het systeem de meest vergelijkbare chunks (meestal vier tot zes). Na filtering op gelijkenisscore wordt de overeenkomende tekst toegevoegd aan de LLM-prompt, samen met je vraag en chathistorie. De LLM leest dit alles (systeemaanwijzingen, opgehaalde context, je vraag en vorige berichten) en genereert het antwoord.

Stroomschema van de AnythingLLM RAG-pipeline van documentupload tot LLM-respons.

Architectuuroverzicht van de AnythingLLM RAG-pipeline. Afbeelding door de auteur.

AnythingLLM installeren met Docker

Zoals je in de FAQ ziet, is AnythingLLM lichtgewicht: ongeveer 2GB RAM, een 2-core CPU en circa 5GB opslag. Het lokaal draaien van een LLM ernaast vereist meer (een 7B-model heeft meestal 8GB+ RAM/VRAM nodig). Voor deze tutorial gebruik ik een 3B-model dat werkt op beperkte hardware. Zorg dat Docker is geïnstalleerd en draait voordat je begint. Windows-gebruikers hebben ook WSL nodig.

Stap 1: Installeer Ollama en pull modellen

Download Ollama van ollama.com/download, en pull daarna een chatmodel en een embeddingmodel:

ollama pull llama3.2:3b
ollama pull nomic-embed-text
ollama serve

Ik gebruik llama3.2:3b omdat het goed draait op machines met beperkte VRAM (zoals een RTX 3050 met 6GB). Voor betere kwaliteit kun je llama3.2:8b of deepseek-r1:7b proberen als je hardware het toelaat. Bekijk onze gids over LLMs lokaal draaien voor meer modelopties.

Stap 2: Maak het Docker Compose-bestand

mkdir anythingllm-setup && cd anythingllm-setup
touch .env

Maak docker-compose.yml aan:

services:
  anythingllm:
    image: mintplexlabs/anythingllm:latest
    container_name: anythingllm
    ports:
      - "3001:3001"
    cap_add:
      - SYS_ADMIN
    volumes:
      - anythingllm_storage:/app/server/storage
      - ./.env:/app/server/.env
    environment:
      - STORAGE_DIR=/app/server/storage
    extra_hosts:
      - "host.docker.internal:host-gateway"
    restart: unless-stopped

volumes:
  anythingllm_storage:

Een paar aandachtspunten bij deze configuratie. De vlag cap_add: SYS_ADMIN is vereist voor de ingebouwde PuppeteerJS-webscraper, die een gesandboxte Chromium-browser gebruikt. 

De regel extra_hosts lost het meest voorkomende Docker-netwerkprobleem op: hij laat de container Ollama bereiken die op je hostmachine draait. Zonder dit zal elke poging om te verbinden met localhost:11434 vanuit de container mislukken omdat Docker-containers hun eigen netwerknamespace hebben. 

Ik gebruik een benoemde Docker-volume (anythingllm_storage) in plaats van een bind mount voor betere cross-platform compatibiliteit, vooral op Windows en macOS, waar bind mount-permissies problematisch kunnen zijn.

Stap 3: Starten en configureren

Wacht ongeveer 30 seconden tot de container is geïnitialiseerd en open dan http://localhost:3001. Je ziet de eerste-installatiewizard. Maar voer eerst dit commando uit:

docker compose up -d

AnythingLLM eerste-installatiewizard na Docker-installatie.

AnythingLLM initiële installatiewizard op Docker. Afbeelding door de auteur.

Selecteer tijdens de installatiewizard Ollama als zowel de LLM- als embeddingprovider, stel de basis-URL in op http://host.docker.internal:11434, kies llama3.2:3b als chatmodel en nomic-embed-text als embedder. Laat LanceDB staan als de standaard vector-database.

Ollama configureren als LLM-provider. Video door de auteur.

Voor het Desktop-alternatief: download de app van anythingllm.com. Het bundelt alles en werkt direct zonder enige configuratie. Ideaal voor persoonlijk gebruik, maar zoals eerder genoemd, mist het de multi-user- en enterprise-functies die in Docker beschikbaar zijn.

LLM-providers koppelen

Naast Ollama kun je cloudproviders koppelen via Instellingen (zoals vermeld in FAQ 1, handig als je hardware beperkt is).

OpenAI

Kies OpenAI als je LLM-provider, voer je API-sleutel in van platform.openai.com, en kies een model (GPT-4o, GPT-4o-mini, etc.). Je account moet billing ingesteld hebben, anders werkt het niet (en de foutmelding is niet duidelijk).

Anthropic

Voer je sleutel in van console.anthropic.com. Alle Claude-modellen werken voor chat, maar Anthropic heeft geen embeddingmodellen, dus je hebt nog steeds een aparte embedder nodig, zoals de nomic-embed-text van Ollama.

Ollama-configuratie

Als je Ollama tijdens de installatie zoals hierboven hebt geconfigureerd, ben je al klaar. Voor andere setups gebruik je http://host.docker.internal:11434 op Windows/macOS, of http://172.17.0.1:11434 op Linux. Als Ollama onbereikbaar is, stel dan OLLAMA_HOST=0.0.0.0:11434 in voordat je het start.

AnythingLLM gebruiken voor documentchat

Klik op "New Workspace" in de zijbalk en geef hem een naam. Upload bestanden met de uploadknop in de zijbalk of via drag-and-drop.

AnythingLLM ondersteunt twee documentmodi. Attachen (sleepen in de chat) zet de volledige tekst in het gesprek, maar alleen voor die specifieke chatthread. Het model ziet alles, maar je bent beperkt door het tokenlimiet. Embedden (de standaard RAG-aanpak) hakt het document in stukken, zet ze om in vectors en slaat ze op in de workspace. Eenmaal ge-embed, werken documenten in al je chats in die workspace. In de meeste gevallen is embedden de betere keuze. Klik op "Move to Workspace" om het embedproces te starten.

Documenten uploaden en embedden in een workspace. Video door de auteur.

Retrievalkwaliteit afstemmen

Typ je vraag en het systeem vindt automatisch relevante chunks en stuurt die naar de LLM. Als de antwoorden niet goed zijn, zijn dit de belangrijkste instellingen om aan te passen:

Similariteitsdrempel

Zoals genoemd in FAQ 5: begin met "No Restriction" als je problemen hebt en verhoog hem dan geleidelijk om ruis te filteren.

Maximale aantal contextsfragmenten

De standaard is vier tot zes chunks. Verhoog dit naar 10 of 12 voor modellen met grote contextvensters zoals Claude.

Zoekvoorkeur

"Accuracy Optimized" op LanceDB zet reranking aan, wat resultaten verbetert maar extra latency kan introduceren afhankelijk van model en hardware.

Document pinnen

Pin kritieke documenten om het chunken volledig over te slaan. De volledige tekst wordt aan elke query toegevoegd (mits het binnen de tokenlimieten past).

Documentchat-respons met RAG-context. Video door de auteur.

AnythingLLM vs. Open WebUI

Beide tools zijn sterk, maar ze zijn gebouwd voor verschillende gebruikers.

Dimensie

AnythingLLM

Open WebUI

Primaire doelgroep

Zakelijke gebruikers, kleine teams

Developers, technische gebruikers

Desktop-app

Ja (macOS, Windows, Linux)

Nee (alleen webgebaseerd)

Complexiteit van de setup

Desktop: één klik; Docker: eenvoudig

Vereist Docker of server-setup

RAG-implementatie

Ingebouwd met multi-vector DB-support, reranking

Uitgebreide RAG, plug-in gebaseerde uitbreidbaarheid

Meerdere gebruikers

Alleen Docker; drie RBAC-rollen

Beperkte samenwerkingsfuncties

Plug-in-ecosysteem

Groeiend; custom skills via Node.js

Volwassener en uitgebreider

Licentie

MIT

Aangepaste BSD-3-Clause met merkbescherming sinds v0.6.6

AnythingLLM past doorgaans bij teams die prioriteit geven aan workspacebeheer en insluitbare widgets, terwijl Open WebUI vaak past bij gebruikers die een groter plug-in-ecosysteem en meer ontwikkelaarsgerichte uitbreidbaarheid willen. Sommige teams draaien beide: Open WebUI voor devs die fijnmazige controle willen, en AnythingLLM voor businessgebruikers die snel documentworkspaces nodig hebben.

AnythingLLM vs. ChatGPT

Deze vergelijking gaat over prioriteiten, niet over welke tool "beter" is.

Dimensie

AnythingLLM

ChatGPT

Dataprivacy

Volledig eigenaarschap met lokale modellen

Data wordt naar OpenAI-servers gestuurd

Kosten

Gratis (self-hosted); cloud vanaf $50/maand

Gratis tier; Plus $20/maand; Pro $200/maand

Aanpasbaarheid

Elke LLM, embedder, vector-DB, agents

Beperkt tot OpenAI-modellen

Offline-mogelijkheid

Ja (met lokale modellen)

Nee

Installatie-inspanning

Vereist installatie

Geen setup, browsergebaseerd

Documentchat

Volledige RAG-regie (drempels, chunken, reranking)

Bestandsuploads met gebruikslimieten

ChatGPT legt de nadruk op een volledig gehoste ervaring en sterke standaard modelkwaliteit, terwijl AnythingLLM privacy, flexibiliteit en controle over RAG-instellingen benadrukt. Je kunt GPT-4o ook koppelen aan AnythingLLM via de OpenAI-API. Zo krijg je ChatGPT-kwaliteit met de workspace- en RAG-functies van AnythingLLM.

Use-cases voor AnythingLLM

Hier blinkt AnythingLLM in uit:

Interne kennisbanken

Medewerkers kunnen vragen stellen over bedrijfsdocumenten in plaats van door mappen te spitten. Upload je policies, procedures en documentatie en laat mensen in natuurlijke taal zoeken.

Onderzoeksworkflows

Academici kunnen razendsnel door honderden papers zoeken. Embed je onderzoekslibrary en vind relevante bevindingen zonder handmatige zoekwoorden.

Private enterprise-deployments

Zorg-, financiële en juridische teams kunnen AI gebruiken terwijl alle data op hun eigen servers blijft. Gangbaar in gereguleerde sectoren waar data on-premises moet blijven.

Developer testing

Probeer verschillende LLMs (Ollama, OpenAI, Claude) op dezelfde documenten door per workspace van model te wisselen. Geen infrastructuurwijzigingen nodig.

Klantchat-widgets

Embed een chatinterface op je website met Docker. Configureer domein-allowlists en sessielimieten voor publiek gebruik.

Vergadertranscriptie

De Meeting Assistant-functie werkt zoals cloud-notitietools maar draait lokaal. Vereist ongeveer 16GB RAM voor soepel gebruik.

Beperkingen

Zoals eerder besproken, hebben Desktop en Docker verschillende functies, wat nieuwe gebruikers kan verwarren. 

De RAG-kwaliteit vereist tuning (ik heb de belangrijkste instellingen eerder behandeld) omdat de similariteitszoektocht wiskundig is en de betekenis niet echt begrijpt. 

Het plug-insysteem is kleiner dan dat van Open WebUI, en het bouwen van custom agent-skills vereist kennis van Node.js. 

Tot slot is er geen ingebouwde fine-tuning. Je kunt alleen aanpassen via systeemprompts, temperatuur en tokenlimieten.

AnythingLLM beveiliging en privacy

Lokale deployment houdt alle data op je apparaat. (Ik heb meer details in de derde FAQ hieronder.) Bij gebruik van cloudproviders worden tijdens inferentie alleen prompts en opgehaalde context verstuurd. Vectors en embeddings blijven op je server. Wees bewust in welke workspaces je cloud- versus lokale modellen gebruikt.

De Docker-versie bevat Simple SSO via SIMPLE_SSO_ENABLED, waarmee tijdelijke toegangstokens worden gemaakt. API-sleutels geven volledige toegang zonder fijnmazige permissies, dus behandel ze als adminwachtwoorden en ververs ze regelmatig. Als je AnythingLLM aan het internet blootstelt, zet er dan een Nginx reverse proxy met SSL voor (de app handelt HTTPS niet zelf af). Telemetrie kan worden uitgeschakeld met DISABLE_TELEMETRY=true in je .env-bestand.

Conclusie

AnythingLLM lost een echt probleem op in de self-hosted AI-wereld. Het geeft je een interface om met je documenten te chatten, koppelt aan vrijwel elke LLM-provider en houdt je data onder jouw controle. Zoals eerder besproken, kies Desktop voor persoonlijk gebruik of Docker voor teamdeployments.

Zoals elke tool heeft het trade-offs. De RAG-kwaliteit hangt af van je configuratie, en de verschillen tussen Desktop en Docker kunnen nieuwkomers verwarren. 

Bekijk als volgende stap onze AI Fundamentals-track of onze tutorial over lokale AI bouwen met Docker en n8n.


Khalid Abdelaty's photo
Author
Khalid Abdelaty
LinkedIn

Ik ben een data-engineer en communitybouwer die werkt aan datapijplijnen, cloud en AI-tools, en tegelijkertijd praktische, impactvolle tutorials schrijft voor DataCamp en beginnende developers.

FAQs

Kan ik dit draaien op mijn oude laptop zonder GPU?

Ja! AnythingLLM zelf is lichtgewicht: ongeveer 2GB RAM, een 2-core CPU en circa 5GB opslag. Het zware deel is het lokaal draaien van de LLM via Ollama. Als je hardware beperkt is, koppel dan aan een cloudprovider zoals OpenAI of Groq. Je krijgt dezelfde workspace- en RAG-functies, maar inferentie gebeurt in de cloud. Met andere woorden: AnythingLLM beheert de workflow, en jij kiest of het model lokaal of in de cloud draait.

Wat gebeurt er als ik later mijn vector-database wijzig?

Plan dit vooraf. Er is geen automatische migratie tussen vector-databases. Overschakelen van LanceDB naar Pinecone betekent dat alle documenten opnieuw ge-embed moeten worden. Je originele bestanden blijven veilig, maar de vectors moeten opnieuw worden gegenereerd. Praktische tip: blijf bij LanceDB tenzij je een specifieke enterprise-behoefte hebt. Het is doorgaans low-configuration en geschikt voor veel small-team-deployments.

Is mijn data echt privé als ik OpenAI gebruik voor de LLM?

Hier is het belangrijkste punt: je documenten en embeddings verlaten je server nooit. Maar wanneer je vragen stelt, worden de opgehaalde tekstchunks en je prompt naar de API van OpenAI gestuurd voor inferentie. Voor echt gevoelige data gebruik je Ollama. Dan blijft alles lokaal. Voor algemene werkdocumenten is AnythingLLM met OpenAI nog steeds privater dan bestanden direct uploaden naar ChatGPT.

Kan mijn team één AnythingLLM-setup delen?

Ja, maar alleen met de Docker-versie. Die ondersteunt meerdere gebruikers met drie rollen: Admin, Manager en Default. De Desktop-app is alleen voor één gebruiker. Belangrijk: multi-user-modus is ontworpen als een eenrichtingsconfiguratie. Bepaal of je teamtoegang nodig hebt voordat je het inschakelt.

Waarom negeert het soms mijn documenten bij het antwoorden?

Meestal drie redenen: similariteitsdrempel te hoog, vage queries of niet-Engelse documenten met de standaard Engelse embedder. Snelle fix: probeer eerst "No Restriction" voor de drempel. Als je documenten niet in het Engels zijn, schakel dan over naar een meertalig embeddingmodel dat in Ollama beschikbaar is (bijvoorbeeld een van de e5-gebaseerde modellen) voor veel betere resultaten.

Onderwerpen

Leren met DataCamp

Cursus

Artificial Intelligence begrijpen

2 Hr
391K
Leer de basisconcepten van kunstmatige intelligentie, zoals machine learning, deep learning, NLP, generatieve AI en meer.
Bekijk detailsRight Arrow
Begin met de cursus
Meer zienRight Arrow
Gerelateerd

blog

AI vanaf nul leren in 2026: een complete gids van de experts

Ontdek alles wat je moet weten om in 2026 AI te leren, van tips om te beginnen tot handige resources en inzichten van industrie-experts.
Adel Nehme's photo

Adel Nehme

15 min

Meer zienMeer zien