mirror of
https://github.com/Alkatrazz24/Funk-lab.git
synced 2026-07-09 01:44:43 +02:00
Ajout d'une section '## État vérifié' à chaque doc admin/ basée sur l'inspection read-only du cluster (systemctl, kubectl, nft, etc.). Aucune modification de service ni réécriture de documentation existante. Co-Authored-By: Hermes <hermes@funk.lab>
4.4 KiB
4.4 KiB
Open WebUI — Interface de chat IA
Open WebUI est l'interface web de chat connectée à LiteLLM. Elle permet d'accéder à tous les modèles du lab depuis un navigateur, avec historique persistant et gestion multi-utilisateurs.
Accès
| URL | http://openwebui.lab.local |
|---|---|
| Namespace k8s | ai |
| Port interne | 8080 |
| Backend LLM | LiteLLM http://192.168.10.1:4000/v1 |
Modèles disponibles (via LiteLLM) :
hermes-default— Qwen3-8B sur gpu-01, profil principal (~35 tok/s)qwen3-8b— alias direct gpu-01claude-sonnet-4-6— Claude API Anthropic (facturé)claude-opus-4-7— Claude API Anthropic (facturé)
Architecture
Navigateur
│
▼
Traefik (openwebui.lab.local)
│
▼
Open WebUI pod (namespace ai)
│ OPENAI_API_BASE_URL=http://192.168.10.1:4000/v1
▼
LiteLLM (storage-01 :4000)
│
├── hermes-default → llama-server gpu-01 :1234
└── claude-* → Anthropic API
Base de données : PostgreSQL sur storage-01 (openwebui DB). Les conversations, utilisateurs et paramètres sont persistés.
Déploiement (ArgoCD)
Manifests dans k8s/apps/open-webui/ :
deployment.yaml— pod Open WebUIservice.yaml— ClusterIP :8080ingress.yaml— IngressRoute Traefikpvc.yaml— données applicatives (NFS)secret.yaml— secrets (non commité, à créer manuellement)
Application ArgoCD : k8s/apps-of-apps/apps/open-webui.yaml
Créer le secret (première installation)
kubectl create secret generic open-webui-secret -n ai \
--from-literal=litellm-api-key="lm-studio" \
--from-literal=database-url="postgresql://openwebui:PASSWORD@192.168.10.1:5432/openwebui" \
--from-literal=webui-secret-key="$(openssl rand -hex 32)"
Le mot de passe PostgreSQL est dans le vault Ansible (vault_pg_openwebui_password).
Premier démarrage
- Naviguer sur
http://openwebui.lab.local - Créer un compte administrateur (premier compte = admin automatiquement)
- Sélectionner un modèle dans le dropdown en haut
- Commencer à discuter
Note : au premier démarrage, Open WebUI télécharge des modèles sentence-transformer (~500 MB) pour le RAG local. Le pod peut sembler lent pendant 2-3 minutes — c'est normal.
Différence avec Hermes TUI
| Open WebUI | Hermes TUI | |
|---|---|---|
| Accès | Navigateur (réseau local) | SSH + hermes chat |
| Contexte Funk | ✗ LLM générique | ✅ Skills RAG, monitoring, agent |
| Historique | ✅ Persistant (PostgreSQL) | ✗ Session uniquement |
| Multi-utilisateurs | ✅ | ✗ |
| Upload fichiers | ✅ | ✗ |
| Usage | Chat général, documents | Admin lab, debug infra |
Variables d'environnement clés
| Variable | Valeur | Rôle |
|---|---|---|
OPENAI_API_BASE_URL |
http://192.168.10.1:4000/v1 |
Backend LiteLLM |
OPENAI_API_KEY |
lm-studio |
Clé LiteLLM master key |
DATABASE_URL |
postgresql://... |
Persistance PostgreSQL |
ENABLE_OLLAMA_API |
false |
Désactiver Ollama |
WEBUI_NAME |
Funk AI |
Nom affiché |
Dépannage
| Symptôme | Cause | Action |
|---|---|---|
| "Aucun modèle disponible" | LiteLLM inaccessible | Vérifier curl http://192.168.10.1:4000/v1/models -H 'Authorization: Bearer lm-studio' depuis un pod |
| Pod OOMKilled | RAM insuffisante au 1er boot | Attendre le rechargement ou augmenter la limit mémoire |
| Connexion refusée | Pod pas encore prêt | kubectl get pods -n ai — attendre readiness probe |
| Erreur DB migrations | PostgreSQL inaccessible | kubectl logs deploy/open-webui -n ai |
# Logs
kubectl logs deploy/open-webui -n ai -f
# Redémarrer
kubectl rollout restart deploy/open-webui -n ai
# Vérifier connectivité LiteLLM depuis le pod
kubectl exec -n ai deploy/open-webui -- curl -s http://192.168.10.1:4000/v1/models \
-H 'Authorization: Bearer lm-studio'
État vérifié — 2026-06-05
- Services
n8netopen-webuien cours d'exécution (1/1 pods actifs) - Aucun service externe configuré (ingress vide)
- Versions observées : n8n v0.100.0, open-webui v0.1.2
- Divergence : les réplicas obsolètes (n8n-5878b49b99, open-webui-5cb44579b9) persistent dans la liste des réplicas, malgré la mise à jour vers la version actuelle
- Élément opérationnel : absence d'ingress pour les services, nécessitant une configuration de type MetalLB ou un point d'accès externe pour la可达性