docs: passe de cohérence documentaire (STT, Ghostfolio, embeddings, Qdrant)

Aligne la documentation sur l'état réel du cluster au 2026-06-18 :

- Qdrant : crash-loop résolu le 17/06 (statut « HS / EN COURS » corrigé dans
  CLAUDE.md, README, admin/ia/rag.md, admin/incidents.md, admin/ia/stt.md).
  Précision : collection funk-docs supprimée lors de la réparation → re-ingest
  RAG encore à faire (pas de surévaluation du statut).
- STT (assistant vocal « Jarvis ») : ajouté partout (était déployé mais non documenté).
- Ghostfolio : ajouté partout (était déployé mais non documenté).
- Embeddings dédiés nomic-embed-text :1238 : marqués opérationnels (roadmap
  README disait encore « TODO »).
- llama-server : ×3 → ×4 (instance embeddings) ; gap IaC précisé (embeddings géré
  par le rôle, seules les 2 instances CPU restent manuelles).
- Structure k8s/ corrigée dans CLAUDE.md : ajout stt/ + ghostfolio/, suppression
  des sous-dossiers traefik/ + metallb/ inexistants (installés via helm au bootstrap).
- Namespaces et liste des secrets Vault (vault_pg_ghostfolio_password) complétés.
- admin/README.md : index complété (~10 docs manquants : email, n8n, open-webui,
  ghostfolio, k9s, stt, rag, hermes-voice/souls/auto-improve, alertmanager-webhook).
- Funk/ (conception d'origine : LM Studio + agents Goose, obsolète) déplacé sous
  archive/ avec bandeau « obsolète » + archive/README.md (historique git préservé).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017Qjq5jHiqNepnobJpHYpCa
This commit is contained in:
Claude 2026-06-18 09:02:15 +00:00
parent e1ec26d546
commit 1f2d970398
No known key found for this signature in database
17 changed files with 102 additions and 31 deletions

View file

@ -6,17 +6,19 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
**Funk** — homelab IA composé d'un cluster Kubernetes (Talos) pour les services applicatifs, d'un hôte d'inférence LLM dédié (gpu-01 / llama-server ROCm), et d'un agent autonome (Hermes Agent) sur storage-01. Stack IaC complète : Ansible + talhelper + ArgoCD.
**État actuel (2026-06-10)** :
**État actuel (2026-06-18)** :
- ✅ Hermes Agent opérationnel — multi-profils (funk-ai/system/monitor/brain)
- ⚠️ RAG **HS depuis 2026-06-05** — Qdrant en crash-loop (segment `funk-docs` corrompu, voir `admin/incidents.md`) ; `rag-ingest` / `rag-query` indisponibles
- ✅ Qdrant réparé (2026-06-17) — fin du crash-loop (segment `funk-docs` corrompu, voir `admin/incidents.md`). ⚠️ La collection RAG `funk-docs` a été supprimée lors de la réparation → **re-`rag-ingest` requis** pour réactiver `rag-query`
- ✅ Monitoring complet — Prometheus + Grafana + AlertManager → webhook Hermes + n8n
- ✅ storage-01 installé — `192.168.10.1` (LAN cluster), `192.168.1.200` (WAN)
- ✅ gpu-01 installé — llama-server GPU (:1234) + CPU (:1236/:1237) + embeddings nomic-embed-text (:1238, GPU) opérationnels, kernel 5.14.0-687.5.3
- ✅ gpu-01 installé — llama-server GPU (:1234) + CPU (:1236/:1237) + embeddings dédiés nomic-embed-text (:1238, GPU) opérationnels, kernel 5.14.0-687.5.3
- ✅ LiteLLM sur storage-01 — proxy multi-modèles + ask-agent (écoute `0.0.0.0:4000`)
- ✅ Cluster k8s Talos opérationnel (MetalLB + Traefik + wildcard DNS lab.local)
- ✅ postfix_relay — SMTP sortant via Gmail SMTP + App Password (aliyesilkaya93@gmail.com)
- ✅ Open WebUI opérationnel — `openwebui.lab.local`, namespace `ai`, backend LiteLLM
- ✅ n8n opérationnel — `n8n.lab.local`, namespace `ai`, 3 workflows actifs (alertes, rapport horaire, Hermes Doc Worker)
- ✅ STT (assistant vocal « Jarvis ») — STT-server in-cluster (`stt.lab.local`, namespace `ai`) + client `stt` (pipx) ; mémoire long-terme Qdrant `stt-memory` validée 2026-06-17 (voir `admin/ia/stt.md`)
- ✅ Ghostfolio opérationnel — `ghostfolio.lab.local`, namespace `ai`, suivi de portefeuille (PostgreSQL s01 + Redis in-cluster)
- ✅ hermes-auto-improve — analyse quotidienne de `admin/` par Hermes à 22h (n8n → trigger :9095), PR sur `hermes/daily-work`
- ⏳ WOL compute nodes non configuré (BIOS) — allumage manuel requis
@ -111,7 +113,7 @@ Variables globales (non-secrètes) dans `ansible/group_vars/all/vars.yml` : `adm
Variables chiffrées dans `ansible/group_vars/all/vault.yml` :
- `vault_anthropic_api_key` — clé Anthropic pour le profil brain
- `vault_pg_hermes_password`, `vault_pg_litellm_password`, `vault_pg_n8n_password`, `vault_pg_openwebui_password`
- `vault_pg_hermes_password`, `vault_pg_litellm_password`, `vault_pg_n8n_password`, `vault_pg_openwebui_password`, `vault_pg_ghostfolio_password`
- `vault_postfix_relay_password` — App Password Gmail (relay SMTP)
- `vault_n8n_api_key` — clé API n8n (label "claude") pour gérer les workflows via `/api/v1`
@ -153,17 +155,21 @@ k8s/
│ └── apps/ # Un fichier Application par workload — ArgoCD les crée automatiquement
│ ├── n8n.yaml
│ ├── open-webui.yaml
│ ├── stt.yaml
│ ├── ghostfolio.yaml
│ ├── monitoring.yaml
│ └── nfs-provisioner.yaml
├── apps/ # Manifests raw k8s par application
│ ├── n8n/ # namespace: ai
│ ├── open-webui/ # namespace: ai
│ ├── stt/ # namespace: ai — STT-server (assistant vocal, stt.lab.local)
│ ├── ghostfolio/ # namespace: ai — suivi de portefeuille (ghostfolio.lab.local)
│ └── {external-services}/ # ExternalName/Endpoints pointant vers storage-01 ou gpu-01
└── infra/ # Helm releases (HelmRelease + values.yaml)
├── monitoring/ # kube-prometheus-stack 85.0.2
── nfs-provisioner/
├── traefik/
└── metallb/
── nfs-provisioner/
# ⚠️ Traefik + MetalLB ne sont PAS dans k8s/infra/ : ils sont installés via `helm install`
# lors du bootstrap Talos (voir admin/k8s/talos.md), hors pattern App-of-Apps ArgoCD.
```
### Ajouter un nouveau workload k8s
@ -172,7 +178,7 @@ k8s/
2. Créer `k8s/apps-of-apps/apps/<nom>.yaml` (ArgoCD Application CRD) — copier `n8n.yaml` comme modèle
3. `git commit` + `git push` → ArgoCD prend en charge automatiquement
Namespaces actifs : `argocd`, `infra` (Traefik, MetalLB, NFS-provisioner), `monitoring` (Prometheus/Grafana), `ai` (n8n, open-webui).
Namespaces actifs : `argocd`, `infra` (Traefik, MetalLB, NFS-provisioner), `monitoring` (Prometheus/Grafana), `ai` (n8n, open-webui, stt, ghostfolio).
---
@ -213,9 +219,9 @@ ask-agent monitor "logs litellm : <résultat étape 1> — erreurs ?"
### RAG — Documentation Funk
> ⚠️ **HS depuis 2026-06-05** — Qdrant en crash-loop (segment `funk-docs` corrompu). Réparation : supprimer la collection corrompue puis relancer `rag-ingest` (reconstructible depuis `admin/`).
> ⚠️ **Qdrant réparé le 2026-06-17** (fin du crash-loop, segment `funk-docs` corrompu — voir `admin/incidents.md`). La réparation a **supprimé** la collection `funk-docs` sans la reconstruire → relancer `rag-ingest` pour réactiver `rag-query`. Le service Qdrant et la mémoire long-terme STT (`stt-memory`) sont opérationnels.
Qdrant collection `funk-docs` indexée depuis `admin/` (339 chunks, score min 0.60).
Qdrant collection `funk-docs` indexée depuis `admin/` (339 chunks avant suppression, score min 0.60 ; à re-ingérer).
```bash
rag-query "comment relancer dnsmasq ?"

View file

@ -69,12 +69,13 @@ L'ensemble est géré en Infrastructure-as-Code : **Ansible** pour les hôtes Al
| Composant | Rôle | Hôte |
|---|---|---|
| **llama-server** (×3) | Inférence GPU + 2× CPU isolés (ROCm 7.x) | gpu-01 |
| **llama-server** (×4) | Inférence GPU (:1234) + 2× CPU isolés (:1236/:1237) + embeddings dédiés nomic-embed-text (:1238) — ROCm 7.x | gpu-01 |
| **LiteLLM** | Proxy API — routing local/cloud transparent | storage-01 |
| **Hermes Agent** | Agent IA multi-profils avec mémoire vectorielle | storage-01 |
| **ask-agent** | Délégation inter-agents (system / monitor / brain) | storage-01 |
| **Qdrant** | Base vectorielle pour la mémoire sémantique | storage-01 |
| **PostgreSQL 16** | Persistance Hermes + LiteLLM | storage-01 |
| **STT** | Assistant vocal « Jarvis » — client `stt` (poste) + STT-server in-cluster | k8s (`ai`) |
| **Qdrant** | Base vectorielle — RAG (`funk-docs`) + mémoire STT (`stt-memory`) | storage-01 |
| **PostgreSQL 16** | Persistance Hermes, LiteLLM, n8n, Open WebUI, Ghostfolio | storage-01 |
### Profils Hermes
@ -143,13 +144,15 @@ L'ensemble est géré en Infrastructure-as-Code : **Ansible** pour les hôtes Al
│ └── souls/ # Prompts système par profil (funk-ai, system, monitor, brain)
├── tools/ # Sources des outils déployés
│ ├── hermes-auto-improve/ # auto-improve.py + trigger-server.py
│ └── hermes-voice/ # Client vocal Hermes
│ └── hermes-voice/ # Client vocal Hermes (CLI faster-whisper + Piper)
├── stt/ # Assistant vocal « Jarvis » — client `stt` (pipx) + STT-server (conteneur)
├── admin/ # Base de connaissance (indexée dans le RAG)
├── progress/ # Journaux de session (référencés par PROGRESS.md)
├── archive/ # Documents historiques obsolètes (conception d'origine) — ne fait pas foi
├── talos/ # Cluster Kubernetes (talhelper)
└── k8s/ # Workloads ArgoCD
├── infra/ # MetalLB, Traefik, monitoring, nfs-provisioner
└── apps/ # Open WebUI, n8n, external-services
├── infra/ # monitoring, nfs-provisioner (Traefik + MetalLB via helm au bootstrap)
└── apps/ # Open WebUI, n8n, STT, Ghostfolio, external-services
```
---
@ -209,7 +212,7 @@ ansible-vault encrypt ansible/group_vars/all/vault.yml
ansible-vault edit ansible/group_vars/all/vault.yml
```
Variables stockées dans le vault : `vault_anthropic_api_key`, `vault_pg_hermes_password`, `vault_pg_litellm_password`, `vault_pg_n8n_password`, `vault_pg_openwebui_password`, `vault_postfix_relay_password`, `vault_n8n_api_key`.
Variables stockées dans le vault : `vault_anthropic_api_key`, `vault_pg_hermes_password`, `vault_pg_litellm_password`, `vault_pg_n8n_password`, `vault_pg_openwebui_password`, `vault_pg_ghostfolio_password`, `vault_postfix_relay_password`, `vault_n8n_api_key`.
---
@ -228,7 +231,7 @@ Elle est gérée automatiquement par le rôle Ansible `llama_server`.
## Roadmap
- [x] Ansible — storage-01 (gateway, NFS, PostgreSQL, Qdrant, LiteLLM, Hermes, postfix, AlertManager webhook)
- [x] Ansible — gpu-01 (ROCm, llama-server ×3 — GPU + 2× CPU)
- [x] Ansible — gpu-01 (ROCm, llama-server : GPU :1234 + embeddings :1238 via le rôle ; 2× CPU manuels)
- [x] Stack IA opérationnelle (Hermes multi-profils + Qwen3 + Claude API)
- [x] Délégation inter-agents (`ask-agent` + skill `agent-delegation`)
- [x] RAG opérationnel — Qdrant 339 chunks, `rag-query` / `rag-ingest`
@ -240,7 +243,10 @@ Elle est gérée automatiquement par le rôle Ansible `llama_server`.
- [x] n8n (`n8n.lab.local`, namespace `ai`, 3 workflows actifs)
- [x] Email sortant — Postfix relay → Gmail SMTP
- [x] hermes-auto-improve — analyse quotidienne de la doc par Hermes (n8n 22h → PR `hermes/daily-work`)
- [x] Ghostfolio — suivi de portefeuille (`ghostfolio.lab.local`, PostgreSQL s01 + Redis)
- [x] STT — assistant vocal « Jarvis » (client `stt` + STT-server in-cluster, mémoire Qdrant `stt-memory`)
- [x] Modèle d'embedding dédié — nomic-embed-text sur gpu-01 `:1238` (utilisé par la mémoire STT)
- [x] Réparer Qdrant — crash-loop résolu 2026-06-17 (collection `funk-docs` supprimée → à re-ingérer)
- [ ] Re-ingérer le RAG (`rag-ingest`) et le basculer sur l'embedding dédié `:1238`
- [ ] WOL compute nodes (configuration BIOS)
- [ ] Route statique Freebox
- [ ] Modèle d'embedding dédié (nomic-embed-text ou bge-m3) pour améliorer le RAG
- [ ] Réparer Qdrant (collection `funk-docs` corrompue depuis 2026-06-05) + re-ingest

View file

@ -8,6 +8,8 @@
| Déployer quelque chose sur k8s | [k8s/argocd.md](k8s/argocd.md) |
| Débugger l'inférence LLM | [ia/llama_server.md](ia/llama_server.md) · [ia/rocm.md](ia/rocm.md) |
| Débugger Hermes / ask-agent | [ia/hermes.md](ia/hermes.md) |
| Assistant vocal (STT / « Jarvis ») | [ia/stt.md](ia/stt.md) · [ia/hermes-voice.md](ia/hermes-voice.md) |
| RAG / recherche dans la doc | [ia/rag.md](ia/rag.md) |
| Voir les métriques / alertes | [k8s/monitoring.md](k8s/monitoring.md) |
| Problème réseau / nftables | [infra/reseau.md](infra/reseau.md) |
| Problème NFS / stockage | [infra/nfs.md](infra/nfs.md) |
@ -43,6 +45,7 @@
| [infra/nfs.md](infra/nfs.md) | NFS + RAID5 — exports, montages, automount, ajout de partages |
| [infra/dnsmasq.md](infra/dnsmasq.md) | DNS local `lab.local` — résolution, logs, ajout d'entrées |
| [infra/ssh.md](infra/ssh.md) | Connexions SSH — alias, jump host, transfert de fichiers |
| [infra/email.md](infra/email.md) | Postfix relay — SMTP sortant via Gmail (App Password) |
---
@ -53,6 +56,10 @@
| [k8s/talos.md](k8s/talos.md) | Talos Linux — talhelper, nœuds, upgrades, backup etcd |
| [k8s/argocd.md](k8s/argocd.md) | ArgoCD GitOps — App of Apps, déploiement, dépannage |
| [k8s/monitoring.md](k8s/monitoring.md) | Grafana · Prometheus · AlertManager — métriques, dashboards, alertes |
| [k8s/n8n.md](k8s/n8n.md) | n8n — automatisation, workflows actifs, credentials |
| [k8s/open-webui.md](k8s/open-webui.md) | Open WebUI — chat web, backend LiteLLM |
| [k8s/ghostfolio.md](k8s/ghostfolio.md) | Ghostfolio — suivi de portefeuille (PostgreSQL s01 + Redis) |
| [k8s/k9s.md](k8s/k9s.md) | k9s — TUI de gestion du cluster |
---
@ -60,10 +67,16 @@
| Fichier | Contenu |
|---|---|
| [ia/llama_server.md](ia/llama_server.md) | llama-server — 3 instances (GPU+CPU), métriques, build, modèles |
| [ia/llama_server.md](ia/llama_server.md) | llama-server — 4 instances (GPU + 2× CPU + embeddings :1238), métriques, build, modèles |
| [ia/rocm.md](ia/rocm.md) | GPU RX 6700XT — ROCm, `HSA_OVERRIDE_GFX_VERSION`, debug |
| [ia/litellm.md](ia/litellm.md) | LiteLLM Proxy — routage Qwen local + Claude API, config, validation |
| [ia/hermes.md](ia/hermes.md) | Hermes Agent + ask-agent — profils, skills, SOUL.md, délégation |
| [ia/hermes-souls.md](ia/hermes-souls.md) | Prompts système (souls) par profil Hermes |
| [ia/hermes-auto-improve.md](ia/hermes-auto-improve.md) | Worker d'analyse quotidienne de la doc par Hermes (trigger :9095) |
| [ia/hermes-voice.md](ia/hermes-voice.md) | Client vocal Hermes (CLI : faster-whisper + Piper + wake word) |
| [ia/stt.md](ia/stt.md) | STT — assistant vocal « Jarvis » (client `stt` + STT-server in-cluster + mémoire) |
| [ia/rag.md](ia/rag.md) | RAG — `rag-query`/`rag-ingest`, Qdrant `funk-docs`, embeddings |
| [ia/alertmanager-webhook.md](ia/alertmanager-webhook.md) | Pont AlertManager → ask-agent (analyse LLM des alertes) |
---

View file

@ -207,12 +207,12 @@ sudo systemctl restart llama-server
## ⚠️ Gap IaC — instances CPU non couvertes par Ansible
Le rôle `ansible/roles/llama_server/` ne déploie que l'instance **GPU** (`llama-server.service` sur :1234).
Le rôle `ansible/roles/llama_server/` déploie l'instance **GPU** (`llama-server.service` :1234) et l'instance **embeddings** (`llama-embed` :1238, activée par `llama_embed_enabled`).
Les instances CPU (`llama-server-system` :1236 et `llama-server-monitor` :1237) ont été créées **manuellement** et ne sont pas encore dans le code Ansible.
Conséquence : un `make apply-gpu` complet sur un hôte vierge ne déploierait PAS les instances CPU.
**Axe d'amélioration** : étendre le rôle `llama_server` pour déployer les 3 instances via une boucle (`with_items` ou `loop` Ansible), avec des variables dédiées dans `host_vars/gpu-01/vars.yml`.
**Axe d'amélioration** : étendre le rôle `llama_server` pour déployer aussi les 2 instances CPU via une boucle (`with_items` ou `loop` Ansible), avec des variables dédiées dans `host_vars/gpu-01/vars.yml`.
---

View file

@ -1,7 +1,9 @@
# RAG — Documentation Funk
> ⚠️ **HS depuis 2026-06-05** — Qdrant en crash-loop (segment `funk-docs` corrompu).
> Procédure de réparation dans `admin/incidents.md` (entrée 2026-06-05).
> ⚠️ **À re-ingérer** — Qdrant a été réparé le **2026-06-17** (fin du crash-loop), mais la
> réparation a **supprimé la collection `funk-docs`** : `rag-query` ne retourne rien tant que
> `rag-ingest` n'a pas reconstruit l'index (reconstructible depuis `admin/`).
> Détails de l'incident : `admin/incidents.md` (entrée 2026-06-05).
Le RAG (Retrieval-Augmented Generation) permet à Hermes de répondre en s'appuyant
sur la documentation du repo (`admin/`) plutôt que sur sa seule mémoire de modèle.
@ -38,7 +40,7 @@ Hermes formule sa réponse en citant les sources
| `rag-query` | `/usr/local/bin/rag-query` | Interroge Qdrant depuis la ligne de commande |
| Skill `rag-docs` | Profil `funk-ai` Hermes | Enseigne à Hermes comment utiliser `rag-query` |
| Docs indexées | `/srv/data/rag/docs/` (NVMe) | Copie locale du dossier `admin/` |
| Collection Qdrant | `funk-docs` | 339 chunks — dimension 4096 (Cosine) |
| Collection Qdrant | `funk-docs` | supprimée le 2026-06-17 → **à re-ingérer** (≈339 chunks, dim 4096 Cosine) |
---

View file

@ -27,7 +27,7 @@ Objectif ultérieur : « agir sur le homelab » via les outils de Hermes (phase
| Agir sur le homelab | Hermes Agent (`:8080`, profils funk-ai/system/monitor/brain) | ✅ opérationnel |
| Voix (STT + TTS + wake word) | `tools/hermes-voice/` — faster-whisper + Piper + webrtcvad | ✅ existe (CLI only) |
| Démarrage auto au boot | pattern `systemd --user` (`tools/hermes-voice/install-service.sh`) | ✅ éprouvé |
| Mémoire sémantique | Qdrant `:6333` + RAG (`rag-query`/`rag-ingest`) sur s01 | ⚠️ **HS depuis 05/06** |
| Mémoire sémantique | Qdrant `:6333` + RAG (`rag-query`/`rag-ingest`) sur s01 | ✅ Qdrant réparé 17/06 (RAG `funk-docs` à re-ingérer) |
Maillon réellement manquant : **l'interface graphique HUD** + le packaging + la mémoire perso.

View file

@ -1,6 +1,6 @@
# Incidents — Historique et résolutions
## 2026-06-05 — Qdrant en crash-loop : segment funk-docs corrompu (EN COURS)
## 2026-06-05 — Qdrant en crash-loop : segment funk-docs corrompu (RÉSOLU 2026-06-17)
### Symptômes
@ -20,7 +20,7 @@ error: unexpected character 'D' while parsing minor version number
Le fichier `version.info` du segment contient `0.D\0` au lieu d'un numéro de version — corruption de données (première occurrence le 2026-06-05 à 21h10).
### Résolution (à appliquer)
### Résolution (crash-loop résolu le 2026-06-17 ; re-ingest encore à faire)
La collection `funk-docs` est entièrement reconstructible depuis `admin/` :
@ -32,6 +32,12 @@ curl -s http://127.0.0.1:6333/collections # doit répondre
/usr/local/bin/rag-ingest # ré-indexe /srv/data/rag/docs
```
> **État au 2026-06-17** : les 3 premières étapes (stop + drop `funk-docs` + start) ont été
> appliquées sur s01 pour sortir Qdrant du crash-loop (cf. `admin/ia/stt.md`, jalon 5c). Le
> service Qdrant et la mémoire STT (`stt-memory`) sont donc opérationnels, **mais** `rag-ingest`
> n'a pas encore été relancé : la collection `funk-docs` est vide → `rag-query` reste muet
> tant que l'index n'est pas reconstruit.
### Prévention
- Ajouter une alerte Prometheus sur les unités systemd en `activating` prolongé (`node_systemd_unit_state`) — un crash-loop n'apparaît ni dans `failed` ni dans les alertes actuelles
@ -42,7 +48,7 @@ curl -s http://127.0.0.1:6333/collections # doit répondre
| Date | Composant | Résumé | Sévérité |
|---|---|---|---|
| 2026-06-05 | Qdrant | **EN COURS** — crash-loop : segment `funk-docs` corrompu, RAG HS | Important |
| 2026-06-05 | Qdrant | **Résolu 2026-06-17** — crash-loop corrigé (drop `funk-docs`) ; RAG à re-ingérer | Important |
| 2026-05-29 | RAID5 / sdb + storage-01 | sdb ATA bus errors sous I/O — migration /srv/data du RAID vers NVMe | Important |
| 2026-05-27 | RAID5 / sdd | Disque sdd défaillant (44 secteurs morts) — corruptions multiples en cascade | Critique |
| 2026-05-14 | Grafana | OOMKilled — limite 256Mi trop serrée pour Grafana 13 | Warning |

View file

@ -1,5 +1,14 @@
# Homelab IA — Architecture et plan de déploiement
> ## ⚠️ DOCUMENT OBSOLÈTE — ARCHIVE HISTORIQUE
>
> Ceci est la **conception d'origine** du homelab (pré-`Funk-lab`). Il décrit des choix
> **abandonnés** : inférence via **LM Studio** (remplacée par llama-server / ROCm) et agents
> **Goose** (remplacés par **Hermes Agent**). **Ce document ne fait plus foi.**
>
> 👉 Référence à jour : [`CLAUDE.md`](../../../CLAUDE.md) et la base de connaissance [`admin/`](../../../admin/).
> Conservé pour mémoire uniquement — voir [`archive/README.md`](../../README.md).
> Document de référence consolidé pour le déploiement d'un homelab IA combinant
> un cluster Kubernetes (Talos) pour les services applicatifs et deux hôtes
> Linux dédiés pour l'inférence LLM (LM Studio) et l'agent autonome (Hermes Agent).

View file

@ -1,5 +1,14 @@
# Homelab IA — Architecture et plan de déploiement
> ## ⚠️ DOCUMENT OBSOLÈTE — ARCHIVE HISTORIQUE
>
> Ceci est la **conception d'origine** du homelab (pré-`Funk-lab`). Il décrit des choix
> **abandonnés** : inférence via **LM Studio** (remplacée par llama-server / ROCm) et agents
> **Goose** (remplacés par **Hermes Agent**). **Ce document ne fait plus foi.**
>
> 👉 Référence à jour : [`CLAUDE.md`](../../CLAUDE.md) et la base de connaissance [`admin/`](../../admin/).
> Conservé pour mémoire uniquement — voir [`archive/README.md`](../README.md).
> Document de référence consolidé pour le déploiement d'un homelab IA combinant
> un cluster Kubernetes (Talos) pour les services applicatifs et deux hôtes
> Linux dédiés pour l'inférence LLM (LM Studio) et l'agent autonome (Hermes Agent).

20
archive/README.md Normal file
View file

@ -0,0 +1,20 @@
# archive/ — Documents historiques (obsolètes)
Ce dossier conserve des documents **superseded** — gardés pour la mémoire du projet, mais qui
**ne font plus foi**. Pour l'état courant du homelab, se référer à :
- [`CLAUDE.md`](../CLAUDE.md) — présentation, architecture, état actuel
- [`README.md`](../README.md) — vue d'ensemble
- [`admin/`](../admin/) — base de connaissance opérationnelle
---
## Contenu
| Chemin | Description | Pourquoi obsolète |
|---|---|---|
| `Funk/HOMELAB.md` · `Funk/Funk-infra/HOMELAB.md` | Document de conception d'origine du homelab (plan de déploiement initial) | Décrit **LM Studio** (remplacé par llama-server / ROCm) et l'inférence/agents **Goose** (remplacés par **Hermes Agent**). Antérieur à la structure actuelle du repo. |
| `Funk/Funk-infra/agents/*/goose-config.yaml` | Configurations d'agents **Goose** (data / global / infra / monitoring / sysadmin) | Approche Goose abandonnée — la stack agent est désormais **Hermes Agent** (profils funk-ai / system / monitor / brain, voir `admin/ia/hermes.md`). |
> Ces fichiers ont été déplacés ici (depuis la racine `Funk/`) le 2026-06-18 lors d'une passe
> de cohérence documentaire. L'historique git complet est préservé (`git mv`).

View file

@ -19,7 +19,7 @@ qui nécessitent un raisonnement approfondi.
### Stack IA
- **llama-server** (gpu-01) — llama.cpp compilé ROCm 7.x, 3 instances : GPU :1234, CPU :1236/:1237
- **llama-server** (gpu-01) — llama.cpp compilé ROCm 7.x, 4 instances : GPU :1234, CPU :1236/:1237, embeddings nomic-embed-text :1238
- **Modèles** : Qwen3-8B Q4_K_M (GPU), Qwen3-1.7B Q4_K_M (CPU ×2)
- **LiteLLM** (storage-01:4000) — proxy multi-modèles + Claude API
- **Hermes Agent** — 4 profils : funk-ai (principal), brain (toi), system, monitor