GB10 Manager v1.0.0
GB10 Manager est une application web de gestion système et applicative conçue spécialement pour le NVIDIA GB10 Grace Blackwell. Elle fournit une interface moderne et intuitive pour surveiller, configurer et déployer des services sur la plateforme ARM64.
--gpus all.
Interface principale avec l'onglet Système actif
Fonctionnalités
Monitoring Système
CPU, GPU, RAM, temperatures, puissance GPU, fréquences et PState en temps réel.
Diagnostic Ollama
Stats conteneur, modèles chargés/installés, téléchargement et suppression de modèles.
Gestion Docker
Liste, démarrage, arrêt et statistiques des conteneurs Docker en cours d'exécution.
Gestion Applicative
Installation, configuration et suivi des applications avec assistance IA.
5 Themes Catppuccin
Default, Mocha, Macchiato, Frappe et Latte. Personnalisation complète de l'interface.
5 Langues
Anglais, Francais, Espagnol, Russe et Chinois. Interface entièrement traduisible.
Mode Dummy / Expert
Mode sécurisé par défaut. Mode expert avec terminal SSH et commandes système.
Whisper ASR
Transcription audio intégrée (MP3, WAV, M4A). Support multi-modèles et multi-langues.
Certificat HTTPS
Gestion des certificats SSL Caddy, téléchargement CA et renouvellement intégré.
Architecture
GB10 Manager est une application Go avec un frontend web embarque, déployée en tant que conteneur Docker sur le GB10.
Schéma d'architecture
Stack technique
| Composant | Technologie | Détails |
|---|---|---|
| Backend | Go 1.22+ | ServeMux amélioré, embed.FS pour fichiers statiques |
| Frontend | HTML/CSS/JS vanilla | Zero dependance, theme Catppuccin, i18n intégré |
| Conteneurisation | Docker (ARM64) | Image basee sur Ubuntu 24.04 avec Docker CLI, webssh |
| LLM | Ollama | API HTTP localhost:11434, support natif ou Docker |
| GPU | NVIDIA Blackwell | Accès via nvidia-smi, flag --gpus all |
| TLS | Caddy | Certificats TLS internes auto-générés |
| SSH | WebSSH (Python) | Terminal SSH web intégré pour le mode Expert |
Prérequis
- NVIDIA GB10 Grace Blackwell avec Ubuntu 24.04 LTS
- Docker Engine installé et fonctionnel
- NVIDIA Container Toolkit pour l'accès GPU (
--gpus all) - Ollama installé (natif ou en conteneur Docker) sur le port 11434
- Caddy (optionnel) pour le reverse proxy HTTPS
- Accès SSH au serveur GB10
Installateur graphique
L'installateur gb10-installer.exe est un binaire Windows autonome qui deploie
automatiquement GB10 Manager sur un serveur GB10 distant via SSH.
Utilisation
- Copiez le dossier
releases/sur votre poste Windows - Lancez
gb10-installer.exe- une interface web s'ouvre dans le navigateur - Étape 1 - Connexion : Saisissez l'adresse IP, le port SSH (22), l'utilisateur et le mot de passe
- Étape 2 - Configuration : Choisissez le répertoire de destination (
/opt/gb10-managerpar défaut) - Étape 3 - Installation : Suivez la progression en temps réel (SSE streaming)
- Étape 4 - Modèles : Sélectionnez et telechargez les modèles Ollama souhaités
Contenu du répertoire releases/
releases/
gb10-installer.exe # Installateur Windows (UPX compresse)
payload/
gb10-manager # Binaire ARM64 Linux (UPX compresse)
Dockerfile # Dockerfile pour le conteneur gb10-manager
docs.tar.gz # Documentation web (conteneur gb10-docs)
Installation manuelle
1. Copier les fichiers sur le serveur
scp gb10-manager-arm64 eforgues@192.168.1.89:/opt/gb10-manager/gb10-manager
scp Dockerfile eforgues@192.168.1.89:/opt/gb10-manager/Dockerfile
2. Construire l'image Docker
cd /opt/gb10-manager
docker build --no-cache -t gb10-manager:latest -f Dockerfile .
3. Démarrer le conteneur
docker run -d \
--name gb10-manager \
--network host \
--gpus all \
--restart unless-stopped \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /etc:/host-etc:ro \
gb10-manager:latest
Flags Docker expliques
| Flag | Role |
|---|---|
--network host | Partage le réseau de l'hote (accès direct aux services et Ollama) |
--gpus all | Donne accès a nvidia-smi pour les stats GPU |
--restart unless-stopped | Redémarrage automatique sauf arrêt manuel |
-v /var/run/docker.sock | Permet de gérer les conteneurs Docker depuis l'application |
-v /etc:/host-etc:ro | Accès en lecture seule a la configuration de l'hote (certificats, etc.) |
En-tête et navigation
L'en-tête affiche le nom du serveur (hostname du GB10), le statut d'Ollama en temps réel et un accès aux paramètres. La navigation principale se fait par quatre onglets.
En-tête avec nom du serveur, statut Ollama, onglets et liens rapides
Composants de l'en-tête
- Nom du serveur : Affiche le hostname du GB10 (police Orbitron, gradient bleu). Récupéré dynamiquement via
/api/system/info. - Indicateur Ollama : Point vert (en ligne) ou rouge (hors ligne) avec le texte du statut. Vérification périodique via
/api/ollama/diagnostic. - Bouton Paramètres : Icone engrenage ouvrant la modale de configuration.
Barre de liens rapides
Affiche automatiquement des liens vers les services Docker détectés. Chaque lien
pointe vers https://hostname:port et s'ouvre dans un nouvel onglet.
Les services reconnus incluent : Open WebUI, Whisper ASR, DocMind AI, Stirling PDF,
Obsidian et toute application configurée avec un port expose.
Onglet Système
L'onglet principal affiche les informations système du GB10, les statistiques temps réel et le diagnostic complet d'Ollama.
Cartes d'informations système
Les cartes affichent les informations materielles et logicielles du serveur :
Cartes d'informations système du GB10
Statistiques temps réel
Les statistiques sont actualisees automatiquement toutes les 3 secondes via l'endpoint
GET /api/system/stats. Chaque métrique est représentée par une barre de
progression et une valeur numerique.
Métriques temps réel : CPU, GPU, RAM, temperatures, puissance et fréquences
| Metrique | Source | Description |
|---|---|---|
| CPU | /proc/stat | Pourcentage d'utilisation CPU global |
| GPU | nvidia-smi | Utilisation du GPU (compute) |
| RAM | /proc/meminfo | Pourcentage de mémoire utilisee |
| Temp | /sys/class/thermal | Temperature CPU/SoC |
| GPU Temp | nvidia-smi | Temperature du GPU |
| GPU Power | nvidia-smi | Consommation électrique du GPU (watts) |
| GPU Clock | nvidia-smi | Frequence d'horloge GPU (MHz) |
| PState | nvidia-smi | État de performance GPU (P0-P12) |
Mode Dummy / Expert
Le mode Dummy (par défaut) bloque l'exécution de commandes potentiellement dangereuses. Le mode Expert debloque toutes les commandes et active le bouton SSH Terminal qui ouvre un terminal WebSSH interactif vers le GB10.
Diagnostic Ollama
La section Diagnostic Ollama fournit une vue complète de l'etat du service Ollama, des ressources consommees, des modèles chargés en mémoire et des modèles installés. Elle permet egalement de télécharger ou supprimer des modèles.
Diagnostic Ollama complet : conteneur, système, modèles et téléchargement
Fonctionnalités du diagnostic
- Stats conteneur : CPU, RAM, limites mémoire, I/O réseau et disque, nombre de PIDs
- Stats système : RAM totale/utilisee/disponible, swap, GPU (nom, utilisation, temperature, VRAM)
- Modèles chargés : Liste des modèles actuellement en mémoire GPU avec le temps d'expiration
- Modèles installés : Tous les modèles téléchargés avec taille et bouton de suppression
- Télécharger un modèle : Champ de saisie avec progression SSE en temps réel (barre + pourcentage)
API Ollama utilisees
| Endpoint Ollama | Usage |
|---|---|
GET /api/tags | Liste des modèles installés |
GET /api/ps | Modèles chargés en mémoire |
POST /api/pull | Télécharger un modèle (streaming) |
DELETE /api/delete | Supprimer un modele |
Conteneurs Docker
L'onglet Conteneurs affiche tous les conteneurs Docker du système avec leur statut, leur utilisation de ressources et des actions rapides (démarrer, arrêter, redémarrer).
Liste des conteneurs Docker avec statut et statistiques
Informations affichees
- Nom : Nom du conteneur Docker
- Uptime : Durée depuis le démarrage ou dernière sortie
- Ressources : CPU et RAM utilises (actualisation automatique)
- Statut : Badge colore (running = vert, stopped = rouge)
- Actions : Démarrer, arrêter ou redémarrer le conteneur (mode Expert)
Applications
L'onglet Applications offre une interface de gestion avancee pour les services déployés. Il comprend une barre laterale avec la liste des applications détectées et un panneau de detail avec les informations, journaux et actions disponibles.
Interface de gestion des applications avec detail de service
Applications supportées (36 services)
GB10 Manager reconnait automatiquement 36 services Docker pre-configures, incluant :
| Service | Port | Description |
|---|---|---|
| open-webui | 3000 | Interface web pour modèles LLM (Ollama) |
| whisper-asr | 9000 | Transcription audio (Faster Whisper) |
| docmind-ai | 8501 | Analyse de documents avec IA |
| stirling-pdf | 8080 | Outils PDF complets |
| ollama | 11434 | Serveur d'inference LLM |
| obsidian | 80 | Prise de notes (Markdown) |
| n8n | 5678 | Automatisation de workflows |
| code-server | 8443 | VS Code dans le navigateur |
| jupyter | 8888 | Notebooks Jupyter |
| grafana | 3001 | Tableaux de bord de monitoring |
... et 26 autres services (PostgreSQL, Redis, MinIO, Milvus, Home Assistant, etc.)
Installation d'une nouvelle application
Le bouton + Installer ouvre une modale permettant de specifier le nom de l'application, la méthode d'installation (Docker, APT, Snap) et la version. Le bouton Demander a l'IA utilise Ollama pour générer les commandes d'installation optimales.
Chat IA (Ollama)
Le panneau de chat en bas de page permet d'interagir avec Ollama pour obtenir de l'aide sur l'installation, la configuration et le dépannage des services. Les commandes suggérées par l'IA peuvent etre exécutées directement apres validation.
docker run -d --name postgres -p 5432:5432 -e POSTGRES_PASSWORD=secret postgres:16
Chat IA avec Ollama - assistance interactive
Fonctionnalités du chat
- Streaming SSE : Les réponses arrivent mot par mot en temps réel
- Historique : L'historique de conversation est conserve pendant la session
- Execution de commandes : Les commandes dans les suggestions IA peuvent etre exécutées d'un clic (avec validation)
- Modèle configurable : Le modèle Ollama utilise est configurable dans les paramètres
- Panneau dépliable : Le chat peut etre masqué/affiché via le toggle dans les options
Paramètres - General
La modale de paramètres est accèssible via l'icone engrenage dans l'en-tête. L'onglet General contient la langue, le mode d'exécution, les services persistants et les informations système.
Onglet General des paramètres
Paramètres - Options
L'onglet Options controle le comportement de l'interface : chat IA, modèle Ollama par défaut et popup de compliment a l'ouverture.
Options de configuration du chat, modèle IA et popup
Paramètres - Themes
GB10 Manager supporte 5 themes visuels bases sur la palette Catppuccin. Chaque theme modifie les couleurs de fond, texte, accent, succes, avertissement et erreur.
Selection du theme Catppuccin
Themes disponibles
| Theme | Fond | Style |
|---|---|---|
| Default | Sombre (#0d1117) | GitHub Dark - theme par défaut |
| Mocha | Sombre chaud (#1e1e2e) | Catppuccin Mocha - contrastes adoucis |
| Macchiato | Sombre moyen (#24273a) | Catppuccin Macchiato - intermédiaire |
| Frappe | Sombre gris (#303446) | Catppuccin Frappe - tons gris-bleu |
| Latte | Clair (#eff1f5) | Catppuccin Latte - theme clair |
Paramètres - Système
L'onglet Système permet de modifier les paramètres système du GB10 : hostname, fuseau horaire, DNS, locale. Chaque modification est analysee par l'IA avant application pour garantir la stabilité du système.
Paramètres modifiables
| Parametre | Commande | Éditable |
|---|---|---|
| Hostname | hostnamectl set-hostname | Oui (analyse IA) |
| Fuseau horaire | timedatectl set-timezone | Oui (analyse IA) |
| Serveur DNS | resolvectl | Oui (analyse IA) |
| NTP | timedatectl | Lecture seule |
| Swap | swapon --show | Lecture seule |
| Locale | localectl set-locale | Oui (analyse IA) |
Paramètres - Certificat HTTPS
L'onglet Certificat gere les certificats SSL générés par Caddy pour le HTTPS.
Fonctionnalités
- Statut Caddy : Affiche si Caddy est en cours d'exécution
- Informations certificat : Détails du certificat actif (émetteur, validité, sujet)
- Téléchargement CA : Telechargez le certificat d'autorite de certification pour l'installer dans votre navigateur ou système d'exploitation
- Renouvellement : Supprime et régénère la PKI interne de Caddy. Tous les clients doivent réinstaller le nouveau certificat CA apres renouvellement
API Référence
GB10 Manager expose une API REST sur le port 8100. Tous les endpoints retournent du JSON sauf indication contraire.
Système
Retourne les informations système (hostname, OS, kernel, CPU, RAM, GPU, disque, Docker, uptime)
Retourne les statistiques temps réel (CPU%, GPU%, RAM%, temperatures, puissance, fréquences, PState)
Execute une commande système (validation de sécurité selon le mode dummy/expert)
Ollama
Retourne le diagnostic complet : stats conteneur, système, modèles chargés et installés
Telecharge un modèle avec streaming SSE de la progression
Supprime un modèle installe
Conteneurs
Liste tous les conteneurs Docker avec statut et statistiques
Actions sur un conteneur : start, stop, restart
Applications
Liste les applications détectées avec statut et metadonnées
Installe une application (streaming SSE des logs d'installation)
Chat
Envoie un message au chat Ollama (streaming SSE de la réponse)
Services
Liste les services persistants configures
Whisper
Verifie le statut du service Whisper ASR
Transcrit un fichier audio (multipart/form-data)
Certificats
Informations sur le certificat HTTPS Caddy
Renouvelle le certificat HTTPS (streaming SSE)
Telecharge le certificat CA au format PEM
Healthcheck
Retourne "ok" si le service est opérationnel
Exemple de requete
Télécharger un modèle Ollama (SSE)
curl -N -X POST http://localhost:8100/api/ollama/models/pull \
-H "Content-Type: application/json" \
-d '{"name":"llama3.1:8b"}'
# Reponse SSE (flux continu) :
data: {"status":"pulling manifest"}
data: {"status":"downloading","completed":1234567,"total":4600000000}
data: {"status":"success"}
Informations système
curl http://localhost:8100/api/system/info | jq
{
"hostname": "gb10-louis",
"os": "Ubuntu 24.04.2 LTS",
"kernel": "6.8.0-49-generic",
"arch": "aarch64",
"cpu": "72 cores",
"ram": "128 GB",
"gpu": "NVIDIA Blackwell",
...
}
Configuration Docker
Dockerfile (gb10-manager)
FROM ubuntu:24.04
# Outils système requis
RUN apt-get update && apt-get install -y --no-install-recommends \
bash ca-certificates curl iproute2 procps \
pciutils usbutils dmidecode lshw inxi \
python3 python3-pip openssh-client sshpass \
&& pip3 install --break-system-packages webssh \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
# Docker CLI (pas le daemon)
RUN install -m 0755 -d /etc/apt/keyrings \
&& curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
-o /etc/apt/keyrings/docker.asc \
&& echo "deb [arch=arm64 signed-by=/etc/apt/keyrings/docker.asc] \
https://download.docker.com/linux/ubuntu noble stable" \
> /etc/apt/sources.list.d/docker.list \
&& apt-get update \
&& apt-get install -y --no-install-recommends docker-ce-cli \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
COPY gb10-manager /app/gb10-manager
RUN chmod +x /app/gb10-manager
WORKDIR /app
EXPOSE 8100
CMD ["/app/gb10-manager"]
Commande docker run
docker run -d \
--name gb10-manager \
--network host \
--gpus all \
--restart unless-stopped \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /etc:/host-etc:ro \
gb10-manager:latest
Internationalisation (i18n)
L'interface est entièrement disponible en 5 langues. La traduction est gérée côté client
via l'objet I18N dans app.js et les attributs HTML
data-i18n.
Langues supportées
| Code | Langue | Interface |
|---|---|---|
en | English | Langue par défaut |
fr | Francais | Traduction complète |
es | Espanol | Traduction complète |
ru | Russkij (Russe) | Traduction complète |
zh | Zhongwen (Chinois) | Traduction complète |
Mecanisme de traduction
HTML - attribut data-i18n
<button data-i18n="refresh">Actualiser</button>
<span data-i18n-title="settings">Paramètres</span>
<input data-i18n-placeholder="chatPlaceholder">
JavaScript - fonction de traduction
function t(key) {
return (I18N[currentLang] && I18N[currentLang][key])
|| I18N.en[key] || key;
}
Sécurité
Mode Dummy / Expert
Le validateur de sécurité (security/validator.go) analyse chaque commande
soumise et bloque les operations dangereuses en mode Dummy :
- Commandes
rm -rf,mkfs,dd,shutdown,reboot - Modifications de
/etc/passwd,/etc/shadow - Redirection vers des devices (
/dev/sda, etc.) - En mode Expert : toutes les commandes sont autorisees avec validation utilisateur
Authentification
Les operations système (modification hostname, DNS, etc.) requierent une authentification via mot de passe sudo. Le mot de passe est transmis uniquement pour l'operation en cours et n'est jamais stocke.
Conteneur sécurisé
- Le socket Docker est monte en lecture/ecriture pour la gestion des conteneurs
- Les fichiers
/etcde l'hote sont montes en lecture seule (:ro) - Le conteneur utilise
--network hostpour un accès direct aux services locaux - Le flag
--gpus alldonne accès uniquement a nvidia-smi, pas d'accès direct au GPU non supervisé
Installateur
- Mot de passe SSH chiffré en mémoire avec AES-256-GCM (dérivé de cle PBKDF2)
- Jamais ecrit sur le disque en clair
- Connexion SSH avec timeout de 10 secondes
- Support keyboard-interactive en plus de l'authentification par mot de passe