9. Admin Manager (Console de Régulation)
L'Admin Manager est le système de gouvernance infrastructure d'ECHO. Il surveille la santé du cluster Docker via un Dashboard interactif (Gridstack), orchestre la purge temporelle de la mémoire vectorielle (Qdrant), gère les sauvegardes et la consolidation des bases de données.
💡 L'analogie du système immunitaire
Si ECHO est un organisme vivant, l'Admin Manager est son système immunitaire et métabolique. Il surveille que tout fonctionne correctement, nettoie les vieux souvenirs devenus inutiles (Élagage TTL), crée des copies de sécurité régulières, et contrôle les accès aux systèmes critiques. Il opère en arrière-plan sans interrompre la génération.
Fiche d'identité technique
| Attribut | Valeur |
|---|---|
| Source | 20-docker-admin-manager/server.py (v5.55) |
| Nature | Micro-service de régulation et monitoring (Flask API) |
| Conteneur | echo-admin-manager (Python 3.11) |
| Docker Daemon | Accès via socket Unix /var/run/docker.sock monté en volume |
| Stockage | Accès direct au volume /app/backend/data/users/ pour les backups |
| Mémoire | Requête l'API Qdrant (:6333) pour la maintenance des vecteurs |
1. Monitoring Holistique (Dashboard Gridstack)
L'interface de l'Admin Manager repose sur un Dashboard interactif propulsé par
Gridstack.js. Il permet de réorganiser les widgets en drag & drop et affiche
en temps réel les constantes vitales de l'infrastructure :
-
Sessions actives : compteur basé sur les fichiers
.dbprésents dans les répertoires/chats/de l'Espace Personnel de chaque utilisateur. - Volume Vault : taille totale occupée par les documents, bases SQLite et fichiers d'identité — exprimée en Mo/Go.
- Santé Docker : état (Up/Down/Restarting) de chaque conteneur de la stack ECHO, avec possibilité de redémarrage forcé depuis l'interface.
-
Métriques système : CPU, RAM et I/O disque via
psutil.
2. Cycle de Vie et Oubli Organique (TTL)
Cron Jobs] --> TTL[Purge TTL
echo_memory] AM --> ORPH[Sync Qdrant
Points orphelins] AM --> EPH[Purge Post-Session
echo_ephemeral] AM --> VAC[Vacuum & Consolidation
SQLite] AM --> BAK[Sauvegardes à chaud
/backups] classDef job fill:#1e1b4b,stroke:#4338ca,color:#fff class AM job
L'Admin Manager centralise la logique d'Atrophie Sémantique — la purge des données devenues obsolètes — pour alléger le traitement en temps réel des filtres.
run_semantic_pruning() — Purge TTL
Cette fonction (server.py) itère sur tous les points de la collection
echo_memory dans Qdrant et supprime ceux dont l'âge dépasse la durée de
rétention associée à leur niveau d'importance :
| Niveau | Label | Durée TTL |
|---|---|---|
| 1 | Trivial | 30 jours |
| 2 | Mineur | 60 jours |
| 3 | Utile | 180 jours |
| 4 | Majeur | 365 jours |
| 5 | Axiome | 540 jours |
Sync Qdrant
Élimination des points vectoriels orphelins : points liés à des
user_id ou chat_id qui ont été supprimés dans Open WebUI
mais dont les vecteurs subsistent dans Qdrant.
Purge Post-Session (echo_ephemeral)
Suppression de tous les vecteurs appartenant à un chat_id terminé dans la
collection echo_ephemeral. Cette purge garantit que les données intermédiaires
(analyses web, distillations) ne s'accumulent pas indéfiniment.
Vacuum & Consolidation SQLite
Optimisation physique régulière des bases de données de session (commande SQL VACUUM)
pour récupérer l'espace disque des enregistrements supprimés et maintenir les performances
d'accès. L'Admin Manager exécute également une consolidation des fragments de bases en mode WAL.
3. Sauvegardes et Restauration à Chaud
Le module de backup garantit une reprise d'activité après sinistre :
-
Procédure : arrêt temporaire du conteneur Open WebUI Core, compression
atomique (
tar.gz) du répertoire/app/backend/data/, redémarrage immédiat. L'interruption de service est de l'ordre de quelques secondes. -
Rotation : nettoyage automatique des anciennes archives selon un nombre
limite ou un âge maximum (configurable). Les archives sont stockées dans
/opt/ECHO/backups/.
4. Surface de Sécurité
-
Reset Auth : purge instantanée de tous les tokens Google enregistrés
dans les fichiers
identity.dbde l'Espace Personnel. -
Rotation de mot de passe : modification du mot de passe de l'hôte
système via un pont SSH sécurisé utilisant
paramiko. -
Secret Maître : l'endpoint
/api/admin/passwordpermet la récupération sécurisée du mot de passe administrateur Open WebUI généré lors du bootstrap (stocké dans/opt/ECHO/.secrets).
⚙️ Isolation Privilégiée
Bien que l'Admin Manager ait accès au Docker Daemon (via socket Unix), il n'est jamais exposé directement sur le WAN par défaut. Son accès est filtré par BunkerWeb (WAF) et nécessite une authentification forte. En déploiement local pur, il n'est accessible que depuis le réseau bridge Docker interne ou le proxy inverse sécurisé.