LibreChat pre-release: snelle start
:::warning Pre-release
Deze route is een pre-release van GovChat-NL met LibreChat als frontend, n8n orchestration en n8n-openai-bridge.
Geschikt voor testen, pilot-implementaties en iteratieve doorontwikkeling. :::
:::warning Status webcrawler (experimenteel) De webcrawler / overheidscrawler is op dit moment een experimentele feature en nog ver van af voor volledige productie-inzet.
Er zijn wel eerste stappen gezet (beheer in de admin-UI, run-overzichten, historisch inzicht en basis-optimalisaties), maar verdere uitwerking en hardening zijn nog nodig. :::
Wat je krijgt in deze variant
librechat+librechat-proxyadmin-panelstandaard actiefn8n+n8n-runners+n8n-bootstrapn8n-openai-bridgeals OpenAI-compatibele koppel-laaglitellm+litellm-postgresmongodb,redis,meilisearch,govchat-overlay-admin
Bronstack: GovChat-NL-LibreChat/docker-compose.yml
Architectuur in het kort
Standaard chat-flow:
- LibreChat custom endpoint ->
n8n-openai-bridge(/v1) - Bridge model
govchat-orchestrator-> n8n webhook/webhook/orchestrator - n8n Orchestrator AI Agent verwerkt de volledige chat history en streamt response terug
- Optioneel toolgebruik naar B1 Versimpelaar workflow
Extra (optioneel):
- Orchestrator kan ook een image-tool gebruiken via LiteLLM (
/v1/images/generations)
Relevante bestanden:
GovChat-NL-LibreChat/librechat.yamlGovChat-NL-LibreChat/n8n-openai-bridge/models.jsonGovChat-NL-LibreChat/n8n/bootstrap/workflows/orchestrator-litellm.json
Multimodale image-input en admin-instellingen
De orchestrator ondersteunt image-invoer in chatberichten. Bij binnenkomst van image_url data-urls wordt de payload eerst genormaliseerd (resizen/compressie) vóór de vision-aanroep.
Beheer dit via de GovChat overlay admin op:
Dashboard->Orchestrator multimodaal->Beheren- Route:
/orchestrator-editor - View:
GovChat-AdminOverlay/admin/views/orchestrator-editor.html
Instellingen (admin UI)
Max tekens voor image data-url(image_data_url_max_chars)- Doelbudget voor data-url grootte na normalisatie.
- Default:
450000.
Max afbeeldingsresolutie (langste zijde in px)(image_max_resolution_px)- Afbeeldingen boven deze limiet worden proportioneel verkleind.
- Default:
1568.
Config-opslag:
GovChat-AdminOverlay/admin/defaults/orchestrator-config.jsonGovChat-NL-LibreChat/overlay/defaults/orchestrator-config.json
Runtime flow (normalisatie)
- Orchestrator detecteert image parts in
GovChat-NL-LibreChat/n8n/bootstrap/workflows/orchestrator-litellm.json. - Workflow leest actuele limieten op
GET /api/config/orchestrator. - Voor elke data-url doet de workflow
POST /api/config/orchestrator/normalize-image. - Admin-service normaliseert met
sharpinGovChat-AdminOverlay/admin/server.js. - Genormaliseerde image payload gaat door naar de vision-model call.
Belangrijk:
- Deze limieten zijn geen model max-tokens instellingen.
- Het zijn inputlimieten voor afbeeldingspayload (karakterlengte + resolutie).
Token/context usage indicator (default uit)
In deze pre-release staat de LibreChat context/token-indicator standaard uit in GovChat-NL-LibreChat/librechat.yaml:
interface:
contextUsage: false
contextCost: false
Reden: de chatflow loopt via n8n-orchestratie en toolstappen. De UI-indicator kan dan afwijken van de werkelijke end-to-end tokenconsumptie.
Stap 1 — Voorbereiding
- Docker Engine + Docker Compose plugin
- Linux VM of dev host met minimaal 2 vCPU / 8 GB RAM
- Externe modelprovider credentials (bijv. OpenAI/Azure OpenAI via LiteLLM)
Stap 2 — .env maken
- Ga naar map
GovChat-NL-LibreChat. - Kopieer
.env.examplenaar.env. - Vul minimaal:
PUBLIC_BASE_URLADMIN_PANEL_PUBLIC_URLLITELLM_URLLITELLM_API_KEYOPENAI_API_KEYN8N_OPENAI_BRIDGE_BEARER_TOKENN8N_WEBHOOK_TOKENN8N_ENCRYPTION_KEYN8N_POSTGRES_PASSWORDLITELLM_MASTER_KEYLITELLM_SALT_KEYLITELLM_POSTGRES_PASSWORDMONGO_ROOT_PASS,MEILI_MASTER_KEY,JWT_SECRET,JWT_REFRESH_SECRET,SESSION_SECRET,CREDS_KEY,CREDS_IV
Voor volledige lijst en uitleg: LibreChat pre-release omgevingsvariabelen.
Optioneel: image generation inschakelen
Zet in .env.example de image-variabelen:
N8N_ENABLE_IMAGE_TOOL=trueN8N_LITELLM_IMAGE_MODEL(bijv.gpt-image-1)- optioneel
N8N_LITELLM_IMAGE_BASE_URL - optioneel
N8N_LITELLM_IMAGE_API_KEY
Bij N8N_ENABLE_IMAGE_TOOL=false blijft de tool beschikbaar, maar geeft deze een nette melding terug dat image-generation is uitgeschakeld (niet-fataal).
Stap 3 — Start de stack
docker compose -f docker-compose.yml --env-file .env up -d
Troubleshooting: admin-panel pull faalt met GHCR 403
Zie je bij opstarten een fout zoals failed to fetch oauth token ... 403 Forbidden voor ghcr.io/clickhouse/librechat-admin-panel?
Dit wijst vaak op opgeslagen Docker-credentials voor GHCR met onvoldoende package-rechten. Docker probeert dan geauthenticeerd te pullen en GHCR weigert de aanvraag.
Gebruik deze snelle fix:
docker logout ghcr.io
docker compose -f docker-compose.yml --env-file .env pull admin-panel
docker compose -f docker-compose.yml --env-file .env up -d
Verwachte uitkomst: admin-panel wordt daarna normaal gepulld en start mee.
Optioneel met RAG-profiel:
docker compose -f docker-compose.yml --env-file .env --profile rag up -d
Bij wijzigingen aan runner-config of image mounts is het verstandig n8n + n8n-runners expliciet te recreëren:
docker compose -f docker-compose.yml --env-file .env up -d --force-recreate n8n n8n-runners
Stap 4 — Controleer of alles draait
docker compose -f docker-compose.yml --env-file .env ps
Controleer vervolgens:
- LibreChat op
${PUBLIC_BASE_URL} - Admin panel op
${ADMIN_PANEL_PUBLIC_URL} - LiteLLM models endpoint op
${LITELLM_URL}/v1/models - Bridge health (
/health) en models (/v1/models)
Voor image-generation aanvullend:
- Controleer dat de JS runner built-ins toestaat via
GovChat-NL-LibreChat/n8n/task-runners.jsonNODE_FUNCTION_ALLOW_BUILTIN=fs,path,crypto,http,https,url
- Controleer dat
/opt/librechat/imagesop de host schrijfbaar is voor runner user (uid/gid1000), anders krijg jeEACCESbij PNG write. - Bij base64 image output zet de workflow dit om naar een bestand in
/shared-imagesen retourneert markdown, zodat LibreChat inline kan renderen.
Stap 5 — Modelbeheer (2 routes)
Route A (aanbevolen): config-file
- Beheer modellen in
GovChat-NL-LibreChat/litellm/config.yaml - Herstart
litellm - Kies model in n8n
OpenAI Chat Modelnode - Publish workflow opnieuw
Route B: LiteLLM UI
- Voeg model toe via LiteLLM UI
- Selecteer model in n8n workflow
- Publish workflow opnieuw
n8n bootstrap (automatisch)
Bij start van de stack doet n8n-bootstrap automatisch:
- import van LiteLLM credential (
openAiApi) - import van Orchestrator en Versimpelaar workflows
- import van optionele image-generator workflow
- publish van beide workflows
Als image-generation actief is, publish bootstrap ook de image workflow.
Hierdoor is de LibreChat -> bridge -> n8n koppeling direct actief.
Validatie / regressietest orchestrator
Gebruik de robuuste validatiesuite op GovChat-NL-LibreChat/tests/orchestrator/run-validation.js.
Wat deze suite test
- Tekstvragen (meerdere checks, o.a. eenvoudige kennisvraag en rekenvraag)
- Multimodale vraag met afbeelding (cijferherkenning)
- Beide webhook-shapes:
body.messages(bridge/wrapped)messagesop rootniveau
Benodigde testafbeelding
Plaats je afbeelding standaard op:
Of geef een eigen pad mee met --image.
Uitvoeren
node GovChat-NL-LibreChat/tests/orchestrator/run-validation.js --expect 7
Optioneel met expliciet pad:
node GovChat-NL-LibreChat/tests/orchestrator/run-validation.js --image ./mijn-test.png --expect 7
Alleen teksttests draaien:
node GovChat-NL-LibreChat/tests/orchestrator/run-validation.js --only-text
Exit-codes
0= alle tests geslaagd1= functionele testfout (regressie)2= geblokkeerd door omgeving/configuratie (bijv. geen bruikbaar taalmodel/provider geconfigureerd)
Bij code 2 geeft de suite expliciet aan dat de validatie niet betrouwbaar kan worden uitgevoerd door ontbrekende of onjuiste model/provider-configuratie.