Ga naar hoofdinhoud

Deployment Overzicht

Deze handleiding beschrijft hoe je GovChat-NL in productie draait met Docker Compose. De referentie compose-bestanden staan in de GovChat-NL repository.

Referentie compose-bestanden

De repository bevat productie-klare compose-bestanden:

BestandBeschrijving
docker-compose.ymlBasisstack: OpenWebUI + LiteLLM + PostgreSQL + Tika
.env.exampleTemplate met alle omgevingsvariabelen

Architectuur

De productie-stack bestaat uit vier containers (vijf met RAG):

Docker Compose Stack

ContainerImageFunctie
open-webuighcr.io/openwebui/openwebuiWeb-interface en backend
litellmghcr.io/berriai/litellmLLM router — vertaalt naar Azure/Google/Ollama
tikaapache/tikaExtractie van tekst uit PDF, Word, etc.
postgrespostgres:16Relationele database
qdrant (optioneel)qdrant/qdrantVector database voor RAG

Gemeenschappelijke stappen

Ongeacht de infrastructuur (Azure, AWS, on-prem) zijn de stappen na het aanmaken van een VM gelijk:

1. Docker installeren

# Docker Engine + Compose plugin (Ubuntu/Debian)
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
# Log opnieuw in zodat de groepswijziging actief wordt

2. Repository klonen

git clone https://github.com/GovChat-NL/GovChat-NL.git
cd GovChat-NL

3. Omgevingsvariabelen instellen

cp .env.example .env
nano .env # Vul alle waarden in

Zie Omgevingsvariabelen voor een volledig overzicht van alle beschikbare variabelen.

4. LiteLLM configureren

Pas het bestand litellm/litellm_config.yaml aan met jouw modellen:

model_list:
- model_name: gpt-4.1
litellm_params:
model: azure_ai/gpt-4.1
api_base: os.environ/AZURE_API_BASE
api_key: os.environ/AZURE_API_KEY
api_version: os.environ/AZURE_API_VERSION

Zie LiteLLM voor uitgebreide configuratie-opties.

5. Stack starten

docker compose up -d

6. Verificatie

# Controleer of alle containers draaien
docker compose ps

# Bekijk logs
docker compose logs -f open-webui

Open http://<server-ip>:8080 in de browser. Je zou het loginscherm moeten zien.

7. Reverse proxy + TLS

Gebruik Nginx of Caddy als reverse proxy met een TLS-certificaat:

Caddy (aanbevolen — automatisch HTTPS):

sudo apt install -y caddy

Maak /etc/caddy/Caddyfile:

govchat.jouw-domein.nl {
reverse_proxy localhost:8080
}
sudo systemctl restart caddy

Nginx + Certbot:

sudo apt install -y nginx certbot python3-certbot-nginx

Maak /etc/nginx/sites-available/govchat:

server {
listen 80;
server_name govchat.jouw-domein.nl;

location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;

# WebSocket support
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}

client_max_body_size 50M;
}
sudo ln -s /etc/nginx/sites-available/govchat /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
sudo certbot --nginx -d govchat.jouw-domein.nl

8. DNS instellen

Maak een A-record aan bij je DNS-provider:

govchat.jouw-domein.nl → <server-ip>

9. SSO configureren

Volg de SSO & OAuth Configuratie handleiding om Microsoft Entra ID of een andere OIDC provider in te stellen.

Updates

cd GovChat-NL
docker compose pull
docker compose up -d

Volgende stappen

Kies de handleiding die past bij jouw infrastructuur:

  • Azure VM — Deployment op een Azure Virtual Machine
  • AWS EC2 — Deployment op een AWS EC2-instance
  • Generieke VM — Hetzner, DigitalOcean, bare metal of on-premises