Team Leader - Nutanix Technology Champion - Nutanix NTC Storyteller

Julien DUMUR
Infrastructure in a Nutshell

Beaucoup le savent, j’ai un niveau de développement brut qui oscille entre le zéro absolu et le « c’est tombé en marche ».

Mais voilà, la donne a changé. L’intelligence artificielle, et plus précisément les agents de codage en CLI (Command Line Interface) comme Claude Code, m’ont donné des super-pouvoirs. Soudainement, coder n’est plus une montagne insurmontable, mais une discussion. Seulement, il y a un hic : pour discuter avec la machine, il faut que l’environnement soit d’équerre. Et le développement sous Windows, historiquement, c’était un peu comme essayer de faire rentrer des carrés dans des ronds (carré dans l’tube pour ceux qui ont la réf).

Heureusement, WSL (Windows Subsystem for Linux) est là. L’idée de ce guide ? Vous éviter les sueurs froides que j’ai eues. Je vous propose de configurer un environnement Ubuntu propre sous Windows, de le blinder avec les dépendances nécessaires (Cargo, npm), d’installer Claude Code, et de relier tout ça de façon fluide à Visual Studio Code.

Pourquoi s’embêter avec WSL2 me direz-vous ? Tout simplement parce que cela permet d’isoler totalement nos outils d’IA. Claude Code tournera dans son bac à sable Linux, avec des performances I/O natives, et tout ceci indépendamment de notre système Windows. On garde le contrôle.

Prêt à transformer votre machine Windows en station de développement boostée à l’IA ? Suivez le guide, j’ai déminé le terrain pour vous.

1. Activer et installer WSL (Windows Subsystem for Linux)

On ne va pas se mentir : à une époque, installer un environnement Linux sous Windows, c’était le parcours du combattant. Il fallait fouiller dans des menus obscurs, cocher des « Fonctionnalités Windows », et prier très fort. Aujourd’hui, Microsoft a rattrapé son retard, et ça tient en une ligne de commande.

Installation de WSL

Commencez par ouvrir PowerShell en tant qu’administrateur (clic droit sur le menu Démarrer > Windows PowerShell (admin) ou Terminal (Administrateur)).

Tapez simplement cette commande et appuyez sur Entrée :

wsl --install

Laissez la magie opérer. Une fois que c’est terminé, la règle d’or de l’informatique s’applique : redémarrez votre PC. Ce n’est pas optionnel, Windows a besoin de ce redémarrage pour activer les composants de virtualisation au niveau du système.

WSL : Choisir sa distribution

Au redémarrage, WSL est là, mais on va s’assurer d’installer la bonne distribution. Rouvrez PowerShell (pas besoin des droits admin cette fois).

Pour voir ce qui est disponible au « catalogue », tapez :

wsl --list --online

Dans notre cas, on va partir sur le standard absolu, Ubuntu. C’est là que la communauté est la plus grande, et où l’on trouve le plus de solutions quand on a un message d’erreur.

Lancez l’installation avec :

wsl --install Ubuntu

Une fenêtre de terminal va s’ouvrir, vous demandant de créer un nom d’utilisateur UNIX et un mot de passe.

Pourquoi WSL2 change tout ? Pour les plus curieux, sachez que cette commande active par défaut WSL2. Ce détail est crucial. Fini la première version (WSL1) où Windows essayait de traduire maladroitement les commandes Linux à la volée. Aujourd’hui, WSL2 utilise une véritable machine virtuelle ultra-légère (basée sur Hyper-V) avec un vrai noyau Linux optimisé par Microsoft. Le résultat ? Une compatibilité à 100% avec les outils de développement et des performances d’accès aux fichiers (I/O) fulgurantes, ce qui sera vital pour que Claude Code lise notre code rapidement.

2. Préparer l’environnement Ubuntu

Ça y est, la distribution Linux est installée mais un système Linux tout neuf, c’est comme un appartement vide : c’est très propre, mais on ne peut pas y faire grand-chose.

Avant de faire entrer notre super-agent IA, il faut installer les meubles, ou plutôt les dépendances. Beaucoup d’outils modernes en CLI s’appuient sur des écosystèmes bien précis.

Installer Cargo (et notre premier outil IA)

Pour mes propres expérimentations, j’utilise souvent l’écosystème Rust. On va donc installer son gestionnaire de paquets, cargo.

Tapez ceci dans votre terminal Ubuntu :

sudo apt install cargo

Pourquoi Cargo ? Parce qu’il va nous permettre d’installer des outils directement depuis leur code source. Par exemple, j’utilise rtk, un framework IA hyper pratique. Pour l’installer, c’est aussi simple que ça :

cargo install --git https://github.com/rtk-ai/rtk

Laissez compiler. C’est beau à voir (même si, je l’avoue, je regarde souvent défiler ces dizaines de lignes de compilation comme une poule devant un Rubik’s Cube, en priant juste pour qu’il n’y ait pas de texte rouge clignotant à la fin).

A quoi sert RTK me direz-vous ? Et bien à économiser des tokens Claude Code grâce à des automatisations et donc à pouvoir discuter plus longtemps avec l’IA d’Anthropic afin de préserver nos quotas.

Installer Node.js et npm

Ensuite, Claude Code et beaucoup d’autres agents utilisent des technologies web. Il nous faut donc npm (Node Package Manager).

On lance la commande :

sudo apt install npm

Si un développeur barbu et/ou chauve lit ce tutoriel, il va s’étrangler : « Ju, on n’installe jamais npm via apt, ça met une vieille version et ça crée des erreurs de permissions ! ». Et il aurait surement raison. La « vraie » bonne pratique consiste à utiliser NVM (Node Version Manager). Cependant, soyons pragmatiques : pour notre objectif précis de faire tourner Claude Code CLI aujourd’hui, la version stable fournie par les dépôts d’Ubuntu fait très bien le job. Si, plus tard, vous commencez à accumuler les erreurs de type EACCES en installant d’autres paquets globaux, vous saurez qu’il sera temps de nettoyer tout ça et de passer à NVM !

3. Installer et configurer Claude Code

Le script d’installation officiel

Pour installer Claude Code, Anthropic a fait les choses simplement. Enfin, « simplement » version Linux. On va utiliser un outil appelé curl qui va télécharger un script sur leurs serveurs et l’exécuter directement sur notre machine.

Tapez ceci dans votre terminal Ubuntu :

curl -fsSL https://claude.ai/install.sh | bash

En temps normal, balancer un script inconnu trouvé sur le net directement dans le bash de sa machine, c’est l’équivalent numérique de ramasser une clé USB sur le trottoir et de la brancher direct sur son PC. Mais bon, ici c’est Anthropic, on part du principe qu’ils ne veulent pas miner du bitcoin sur notre dos.

Le script va mouliner un peu. Et là, plein d’espoir, les yeux brillants, vous tapez claude dans votre terminal. Et paf… claude: command not found.

Frustration. Sueurs froides. Pas de panique, c’est un grand classique.

Le fameux piège du PATH

Pourquoi ça ne marche pas du premier coup ?

Parce qu’Anthropic fait les choses proprement en respectant le principe du moindre privilège. Au lieu d’installer Claude Code brutalement à la racine de votre système (ce qui requerrait des droits super-administrateur root et pourrait tout casser), le script place l’exécutable dans un petit dossier caché bien à vous : ~/.local/bin.

Le problème, c’est que votre système Ubuntu ne regarde pas de base dans ce dossier précis quand vous lui lancez une commande. Il faut lui indiquer explicitement le chemin. C’est ce qu’on appelle la variable d’environnement $PATH.

Pour réparer ça une bonne fois pour toutes, on va ajouter ce fameux dossier à notre PATH. Copiez-collez cette ligne (attention, copiez-la exactement avec ses guillemets) :

echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc && source ~/.bashrc

Cette double commande fait deux choses : elle inscrit le bon chemin à la fin de votre fichier de configuration personnel (.bashrc), et elle demande au terminal de relire ce fichier immédiatement pour prendre en compte la modification (source).

Maintenant, retapez claude ou claude --version. Si un menu ou un numéro de version s’affiche : c’est gagné !

4. L’intégration finale avec VS Code

C’est bien beau d’avoir la CLI de Claude qui tourne sagement dans un terminal sur WSL, mais l’idée, c’est quand même de lui faire lire et écrire du code de manière confortable. Et pour ça, il nous faut notre fidèle Visual Studio Code.

L’extension WSL pour VS Code

Ouvrez VS Code de manière classique, sous Windows. Allez dans l’onglet des extensions et cherchez WSL (anciennement Remote – WSL, éditée directement par Microsoft). Installez-la.

Une fois installée, regardez tout en bas à gauche de la fenêtre de VS Code. Vous y verrez une petite icône bleue (ou verte) avec des chevrons ><. Cliquez dessus, et choisissez l’option « Se connecter à WSL » (ou Connect to WSL).

Une nouvelle fenêtre VS Code s’ouvre. En bas à gauche, il y a maintenant écrit « WSL: Ubuntu ». Bingo.

C’est là que la puissance de l’architecture dont je vous parlais plus haut frappe fort. Quand vous ouvrez un projet de cette manière, VS Code installe un mini-serveur directement à l’intérieur de votre machine Linux. L’interface graphique (l’éditeur) tourne sous Windows, mais toute la logique de développement, le terminal intégré et l’accès aux fichiers s’exécutent de manière native sous Ubuntu.

Le plugin Claude pour VS Code

Avoir la CLI pour lancer des commandes globales c’est super, mais on ne va pas se mentir : avoir Claude directement intégré dans l’interface de l’éditeur, c’est le confort ultime.

Toujours dans cette nouvelle fenêtre VS Code (connectée à WSL), retournez dans l’onglet des extensions et cherchez l’extension officielle Claude (ou Claude Dev/Cline selon vos préférences).

⚠️ Attention : VS Code gère désormais deux « zones » d’extensions distinctes. Celles installées sur votre Windows local, et celles installées dans votre machine WSL. Assurez-vous de cliquer sur le petit bouton bleu « Installer dans WSL: Ubuntu » (Install in WSL: Ubuntu) si VS Code vous le propose.

Si vous l’installez par erreur du côté Windows, le plugin va tourner dans le vide et sera incapable de lire les fichiers de votre projet Linux ou de comprendre les commandes que vous lui envoyez.

Une fois le plugin activé côté Ubuntu, une nouvelle icône va apparaître dans votre barre latérale. Vous voilà avec la CLI puissante dans le terminal en bas, et l’assistant visuel réactif sur le côté. Une vraie tour de contrôle !

Conclusion

Et voilà, la boucle est bouclée. En quelques lignes de commande, nous sommes passés d’un environnement Windows cloisonné à un setup hybride ultra-performant. Vous avez maintenant un sous-système Ubuntu propre, prêt à compiler du Rust, faire tourner du Node, et surtout, héberger votre nouvel assistant IA.

De mon côté, avec mon niveau de « dev du dimanche », ce setup a changé ma vie. Je discute, j’oriente, je supervise et Claude gère le code. Et vous, quel va être votre premier projet avec cette nouvelle stack ?

Read More
openclaw on nutanix ahv

Dans un précédent article, nous avons vu comment déployer OpenClaw sur Nutanix AHV. Cependant, avant de pouvoir profiter pleinement de cet agent IA autonome, il est crucial de préparer le terrain. OpenClaw n’est pas qu’un simple script : c’est un écosystème qui s’appuie sur plusieurs briques technologiques pour « penser » (LLM local), « exécuter » (Node.js) et « chercher » (SearXNG).

Dans cet article, nous allons détailler l’installation pas-à-pas de tous les prérequis nécessaires sur votre machine virtuelle (sous Ubuntu), en expliquant pour chacun pourquoi il est indispensable au bon fonctionnement d’OpenClaw.

1. Pilotes NVIDIA : Libérer la puissance du GPU

OpenClaw peut s’appuyer sur des modèles de langage (LLM) exécutés localement. Bien qu’il soit techniquement possible de faire tourner ces modèles sur un processeur (CPU), les performances seraient extrêmement lentes. L’installation des pilotes NVIDIA permet au système d’exploiter la carte graphique (GPU) allouée à votre VM via Nutanix AHV (vGPU ou Passthrough), garantissant ainsi une inférence rapide et fluide de l’IA.

Voici comment mettre à jour votre système et installer les pilotes adéquats :

# Mise à jour du système
sudo apt update && sudo apt upgrade -y

# Installation du pilote serveur NVIDIA
sudo apt install nvidia-driver-535-server -y

# Redémarrage nécessaire pour la prise en compte
sudo reboot

Après le redémarrage, vérifiez que votre GPU est bien reconnu avec la commande suivante :

nvidia-smi

2. Node.js (v24) : Le moteur d’exécution d’OpenClaw

Le cœur de la logique d’OpenClaw est développé en JavaScript/TypeScript. Node.js est l’environnement d’exécution qui permet de faire tourner le code de l’agent, de gérer ses dépendances et d’orchestrer les appels entre l’interface, le modèle d’IA et les différents outils. Nous ciblons ici la version 24.x pour assurer une compatibilité optimale.

# Ajout du dépôt NodeSource et installation
curl -fsSL [https://deb.nodesource.com/setup_24.x](https://deb.nodesource.com/setup_24.x) | sudo -E bash -
sudo apt install -y nodejs

# Vérification de la version installée
node --version  # doit afficher v24.x

3. Ollama & Qwen 2.5 : Le cerveau local de l’opération

Ollama est l’outil qui va nous permettre de télécharger et de faire tourner facilement notre modèle d’IA en local. Pour OpenClaw, nous allons utiliser le modèle Qwen2.5 (7B). Pourquoi ce choix ? C’est un modèle léger (adapté pour les GPU avec environ 8 Go de VRAM) et, surtout, il est excellent en « Tool Calling » (l’appel d’outils). C’est cette capacité qui permet à OpenClaw de comprendre qu’il doit exécuter une recherche web ou lancer un script plutôt que de simplement générer du texte.

# Installation d'Ollama
curl -fsSL [https://ollama.ai/install.sh](https://ollama.ai/install.sh) | sh

# Démarrer le service Ollama (en arrière-plan)
ollama serve &

# Dans un autre terminal, vérifiez qu'Ollama détecte bien le GPU :
nvidia-smi  # Vous devriez voir ollama dans la liste des processus GPU

# Puller (télécharger) le modèle recommandé
ollama pull qwen2.5:7b

# Tester le modèle et vérifier son exécution sur le GPU
ollama run qwen2.5:7b "dis bonjour"

# Pendant que le modèle génère une réponse, vérifiez l'utilisation de la VRAM
nvidia-smi

4. Docker : L’infrastructure de conteneurisation

Afin d’étendre les capacités d’OpenClaw (notamment pour la recherche web que nous verrons juste après), nous avons besoin de services tiers. Docker permet de déployer ces services de manière isolée, standardisée et rapide, sans polluer notre système hôte avec de multiples dépendances complexes.

# Installation des dépendances initiales
sudo apt update
sudo apt install -y ca-certificates curl gnupg

# Ajout de la clé GPG officielle de Docker
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL [https://download.docker.com/linux/ubuntu/gpg](https://download.docker.com/linux/ubuntu/gpg) | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

# Configuration du dépôt Docker
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
  [https://download.docker.com/linux/ubuntu](https://download.docker.com/linux/ubuntu) \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Installation des paquets Docker
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# Ajout de votre utilisateur au groupe docker pour éviter d'utiliser 'sudo' à chaque fois
sudo usermod -aG docker $USER
newgrp docker

# Vérification de l'installation
docker --version

5. SearXNG : Donner un accès au Web à l’IA

Pour qu’OpenClaw soit un véritable agent de recherche performant, il ne peut pas se contenter des données contenues dans le modèle Qwen (qui s’arrêtent à sa date d’entraînement). SearXNG est un métamoteur de recherche respectueux de la vie privée. En l’installant via Docker, nous offrons à OpenClaw une API (sur le port 8080) qu’il va pouvoir utiliser pour aller chercher en temps réel des informations sur le web et sourcer ses réponses.

# Créer un répertoire dédié pour la configuration
mkdir -p ~/searxng && cd ~/searxng

# Lancer le conteneur SearXNG
docker run -d \
  --name searxng \
  --restart unless-stopped \
  -p 8080:8080 \
  searxng/searxng

# Vérifier que le conteneur tourne correctement
docker ps

# Tester que l'API de SearXNG répond bien
curl http://localhost:8080

6. Homebrew & GCC : Les outils de compilation

L’écosystème Node.js d’OpenClaw fait parfois appel à des bibliothèques bas niveau ou à des packages natifs qui nécessitent d’être compilés directement sur votre machine lors de leur installation. Homebrew (le gestionnaire de paquets bien connu sur macOS, très pratique aussi sur Linux) et le compilateur GCC sont indispensables pour éviter les erreurs lors de la phase d’installation finale des dépendances (les fameux npm install).

# Installer le package de compilation de base Ubuntu
sudo apt-get install build-essential

# Installer Homebrew
/bin/bash -c "$(curl -fsSL [https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh](https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh))"

# Les instructions de fin d'installation d'Homebrew vous demanderont
# d'ajouter Homebrew à votre PATH. Généralement cela ressemble à ceci :
# (Assurez-vous d'adapter le chemin si nécessaire)
echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> /home/$USER/.bashrc
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"

# Installation de GCC via Homebrew
brew install gcc

Conclusion

Votre machine virtuelle sous Nutanix AHV est désormais un environnement riche et complet, équipé de pilotes GPU performants, d’un moteur d’exécution (Node.js), d’un LLM prêt à répondre (Ollama), d’un accès au Web (SearXNG) et des bons outils de compilation.

Le terrain est parfaitement préparé. Il ne vous reste plus qu’à finaliser l’installation de l’application elle-même en suivant la suite de notre guide sur OpenClaw.

Read More
openclaw on nutanix ahv

Si vous avez lu mon précédent article détaillant l’architecture et la stack technique que j’ai retenu pour déployer OpenClaw, vous savez déjà pourquoi j’ai choisi de faire tourner cette solution sur mon cluster Nutanix AHV. Aujourd’hui, on passe à la pratique ! Je vais vous montrer, étape par étape, comment déployer votre propre instance sur une machine virtuelle Ubuntu fraîchement installée.

Avant de lancer les hostilités, petit rappel de ma configuration. J’ai provisionné une VM sous Nutanix AHV avec :

  • 8 vCPU
  • 32 Go de RAM
  • 250 Go de stockage
  • une carte NVIDIA Tesla P4 en PCI Passthrough

💡 Pourquoi avoir privilégié le Passthrough complet plutôt que du vGPU (virtual GPU) ? Tout simplement pour garantir des performances d’inférence quasi « bare-metal ». En donnant un accès direct et exclusif au matériel physique à notre VM, on élimine totalement l’overhead (la latence) lié à la couche de virtualisation.

C’est parti pour le déploiement.

Préparation de la VM Ubuntu : Système et Pilotes NVIDIA

La toute première étape consiste à préparer le terrain pour déployer notre IA.

Ubuntu 24.04 : Mise à jour du système d’exploitation

C’est une règle que j’applique à chaque fois que je déploie un nouveau système d’exploitation. Dès que je me connecte en SSH, je m’assure que tous les paquets sont à jour pour éviter de futures failles de sécurité ou des conflits de dépendances.

sudo apt update && sudo apt upgrade -y

GPU : Installation des drivers NVIDIA

Pour qu’OpenClaw puisse exploiter la puissance de calcul de ma Tesla P4, le système d’exploitation doit être en mesure lui parler correctement. Voici les commandes à passer pour installer le drivers (vous pouvez accéder à un guide plus détaillé sur le blog) :

sudo apt install nvidia-driver-535-server -y
sudo reboot

Une fois la machine redémarrée, on se reconnecte et on tape la commande pour vérifier que notre GPU est bien détecté et prêt à travailler :

nvidia-smi

Node.js et OpenClaw

Installation de Node.js 22

OpenClaw est bâti sur Node.js. Pour s’assurer de disposer d’un environnement d’exécution récent et performant (ici la version 22), on ajoute le dépôt officiel de NodeSource avant de lancer l’installation :

curl -fsSL [https://deb.nodesource.com/setup_22.x](https://deb.nodesource.com/setup_22.x) | sudo -E bash -
sudo apt install -y nodejs

Déploiement de base d’OpenClaw

Maintenant que NodeJS est en place, on passe à l’installation d’OpenClaw. Un simple script curl fourni par les développeurs s’occupe du gros du travail :

curl -fsSL [https://openclaw.ai/install.sh](https://openclaw.ai/install.sh) | bash

Une fois l’installation terminée, le système lance automatiquement l’assistant de configuration de votre instance. Je détaillerai cette étape ainsi que les créations de clés API (Discord, Telegram, etc…) dans un futur article.

Une petite manipulation est requise juste après l’installation d’OpenClaw si on veut pouvoir utiliser les commandes “openclaw” sans contrainte. Il faut ajouter le répertoire d’installation local à notre variable d’environnement PATH (pensez à adapter le nom d’utilisateur si vous n’utilisez pas administrateur) :

export PATH="/home/administrateur/.npm-global/bin:$PATH"

💡 Pourquoi cette manipulation ? C’est une excellente pratique de sécurité que je vous recommande. En exportant le PATH vers ~/.npm-global/bin, on évite d’installer des paquets globaux NPM avec les privilèges root (sudo). Cela réduit considérablement les surfaces d’attaque et vous épargne les éternels conflits de permissions sous Linux !

Exposer proprement OpenClaw avec Caddy

Par défaut, l’interface web d’OpenClaw écoute sur le port 18789. Au lieu d’attaquer ce port de manière brute, je préfère toujours placer un reverse proxy devant mes applications. Pour ce lab, mon choix s’est porté sur Caddy.

sudo apt install -y caddy

💡 Pourquoi Caddy plutôt qu’Apache ou Nginx ? Parce que Caddy est redoutablement efficace. Là où Nginx réclame parfois de longs blocs de configuration pour du proxying simple, Caddy accomplit le même travail en littéralement trois lignes de code, le tout de manière ultra légère.

On édite son fichier de configuration :

sudo vi /etc/caddy/Caddyfile

Et on remplace l’intégralité du contenu par les instructions suivantes (remplacez l’IP par celle de votre VM, dans mon cas 192.168.84.134) :

192.168.84.134 {
    reverse_proxy 127.0.0.1:18789
}

Il ne reste plus qu’à redémarrer le service pour que le proxy prenne le relais :

sudo systemctl restart caddy

Sécurité réseau : Verrouiller l’instance OpenClaw

Avoir une instance fonctionnelle c’est bien, la sécuriser c’est indispensable. Même si vous êtes sur votre réseau local (LAN), il ne faut jamais laisser l’accès libre à votre interface de contrôle. Nous allons appliquer une configuration stricte via les commandes CLI d’OpenClaw.

On commence par restreindre l’écoute de la Gateway à la boucle locale pour empêcher tout accès direct :

openclaw config set gateway.bind loopback

On force ensuite le mode de fonctionnement en local, et on active l’authentification par token (le minimum syndical) :

openclaw config set gateway.mode local
openclaw config set gateway.auth.mode token

Enfin, comme nous passons par Caddy, il faut autoriser les requêtes Cross-Origin (CORS) provenant de notre adresse IP, sans quoi le navigateur bloquera la page (n’oubliez pas d’adapter l’IP) :

openclaw config set gateway.controlUi.allowedOrigins '["[https://192.168.84.134](https://192.168.84.134)"]'

On redémarre le service pour appliquer notre blindage :

openclaw gateway restart

💡 Le pattern de sécurité appliqué ici s’apparente à du « Zero Trust » local. En forçant OpenClaw sur le loopback (127.0.0.1), on s’assure qu’absolument tout le trafic est obligé de passer par notre proxy Caddy. Couplé au filtrage CORS et à l’authentification, on protège un minimum notre instance contre d’éventuels scans ou scripts malveillants sur le réseau.

Premier contact et validation de la configuration

Récupération du Token d’accès

Maintenant que les portes sont fermées, il nous faut la clé. Le token d’authentification a été généré automatiquement lors de l’installation. On va aller le pêcher directement dans le fichier JSON de configuration :

grep -i token ~/.openclaw/openclaw.json

Copiez précieusement cette chaîne de caractères. Ouvrez ensuite votre navigateur et accédez à votre interface Web (ex: https://192.168.84.134).

Entrez le token dans l’encart « Gateway Token ».

Approbation du périphérique

Une fois connecté, vous remarquerez qu’il manque quelque chose : le système attend que l’on approuve le « périphérique » (le PC ou la tablette depuis laquelle on souhaite utiliser OpenClaw) pour lui accorder le droit de traiter des requêtes.

Retournez dans votre terminal pour lister les périphériques en attente :

openclaw devices list

Repérez l’ID de votre périphérique dans la liste (une chaîne de type UUID) et approuvez-le :

openclaw devices approve b7beb7fa-fa4e-46e9-aec1-282bcce881f6

💡 L’approbation d’un périphérique (devices approve) est bien plus qu’une simple formalité d’interface. C’est une sorte de handshake cryptographique. Ce mécanisme garantit qu’aucune machine non sollicitée ne puisse se greffer à votre instance cluster OpenClaw à votre insu !

Tests d’interaction

L’instance OpenClaw est à présent 100% opérationnelle ! Pour valider l’ensemble de notre stack, rien de tel qu’un test grandeur nature. Vous pouvez envoyer un premier prompt sur le chat intégré de l’interface web, ou configurer un pont pour envoyer un message côté Discord.

Conclusion

Nous sommes passés d’une simple VM Ubuntu à un véritable serveur d’inférence sécurisé, propulsé par Node.js et accéléré par un GPU NVIDIA Tesla P4 dédié via Nutanix AHV. L’architecture est propre, sécurisée derrière un proxy Caddy, et prête à encaisser nos requêtes.

Mais ce n’est que le début. Dans les prochains articles, nous irons encore plus loin : je vous montrerai comment configurer OpenClaw via l’assistant de départ, déployer des modèles locaux via Ollama, créer un bot Discord interactif, et même injecter des clés API Google pour doter notre IA de capacités de recherche. Restez connectés !

Read More

Si vous suivez un peu mes pérégrinations sur le blog, vous savez que j’adore triturer mes clusters et tester des trucs un peu out-of-the-box (cf. mes articles avec le Steamdeck par exemple). Récemment, je me suis fait une réflexion : Gemini ou Claude dans le cloud public, c’est super pour coder un script Python ou rédiger des mails. Mais quand il s’agit de lui demander d’interagir avec notre infrastructure locale, c’est là que ça coince.

Je me suis donc demandé comment je pourrais connecter l’intelligence artificielle au plus près de mes VMs. C’est dans cette optique que j’ai mis les mains sur OpenClaw. Honnêtement, ça a un peu été le parcours du combattant au démarrage. Fini le simple gadget conversationnel, on parle ici de déployer une véritable IA Privée sur un cluster Nutanix AHV capable d’agir sur notre infrastructure. Laissez-moi vous présenter la stack technique que j’ai retenue pour cette expérience.

OpenClaw : qu’est-ce que c’est ?

Pour ceux qui vivaient dans une grotte ces derniers mois, OpenClaw c’est un projet GitHub qui a dépassé les 300k étoiles en seulement quelques mois. Imaginez un traducteur de pensée ultra-intelligent couplé à un majordome. Au lieu de cliquer sur des dizaines de menus dans une interface complexe, vous demandez simplement à votre infrastructure de travailler pour vous en langage naturel (via une interface web universelle ou même des messageries comme WhatsApp et Telegram). Il est même capable de bosser tout seul pendant que vous dormez !

Mais là où ça devient passionnant pour nous, les ingénieurs, c’est sous le capot. OpenClaw n’est pas un énième modèle de langage (LLM) « stateless » qui oublie tout à chaque nouvelle requête. C’est une véritable Agentic Gateway. Concrètement, cela signifie qu’elle orchestre des agents autonomes équipés d’outils. Ces agents peuvent être configurés pour taper directement dans les API privées de notre cluster (comme les API REST de Prism Element ou Prism Central), coder, parcourir le web et en synthétiser certaines informations. Bref, on ne pose plus simplement des questions à l’IA, on lui délègue des tâches.

Pourquoi l’héberger en Self-hosted ?

Sur le terrain, la question de la gouvernance des données se pose à la seconde où l’on prononce le mot « IA ». Hors de question d’envoyer des informations sensibles sur des serveurs dont je n’ai pas la maîtrise !

Faire le choix du Self-hosted (auto-hébergement) avec OpenClaw, c’est reprendre le contrôle absolu. Les flux de données, les logs d’exécution et les identifiants d’API restent cloisonnés bien au chaud sur mon réseau, isolés d’internet si on le souhaite.

Architecture et Stack Technique

Pour ce projet, hors de question de faire un simple « Next, Next, Finish » sur un coin de table. Voici l’architecture technique robuste que j’ai fini par valider pour mon déploiement.

Le socle : Nutanix AHV & Ubuntu 24.04 LTS

Pour faire tourner la bête, il faut des fondations solides. J’ai provisionné une machine virtuelle sous Ubuntu 24.04 LTS hébergée directement sur mon cluster Nutanix AHV.

Côté dimensionnement, je suis parti sur 8 vCPU, 32 Go de RAM et 250 Go de stockage dédié. Vous allez peut-être me dire : « 32 Go pour une gateway, c’est pas un peu too much ? » La gateway va devoir ingérer des flux de données conséquents, maintenir le cache des différents agents actifs, et potentiellement gérer du requêtage d’API lourd en parallèle. Et puis, je peux affecter ces ressources sur mon lab, alors pourquoi s’en priver ?

Le moteur applicatif : NodeJS 22

Au cœur d’OpenClaw, la magie opère grâce à NodeJS 22. C’est le moteur d’exécution qui fait tourner la gateway et ses intégrations d’agents IA.

Pourquoi Node 22 est un excellent choix architectural ici ? Pour sa gestion de l’asynchrone (Event Loop). Quand vous demandez à OpenClaw de faire un rapport d’état sur 50 VMs, la gateway va initier de multiples appels d’API vers Prism Central tout en maintenant votre flux WebSocket ouvert pour vous répondre en temps réel dans l’interface de chat. NodeJS excelle dans cette gestion de la concurrence non-bloquante.

Le routage réseau : Caddy

Le mode de fonctionnement habituel d’OpenClaw, c’est de le déployer en local sur la machine depuis laquelle on va s’y connecter, ou bien de monter un tunnel pour pouvoir accéder à l’instance distante. On ne va pas se mentir, j’avais envie de taper l’IP dans mon navigateur et de pouvoir accéder à mon instance, que je sois sur mon PC ou sur ma tablette.

Pour rendre ceci possible, j’utilise un reverse proxy sous Caddy. Caddy gère le routage du trafic et le chiffrement HTTPS de manière totalement automatisée.

Je vous entends déjà me dire : “Oui mais si un mec se connecte sur ton réseau local, il aura accès à ton instance !”. Eh bien non ! Parce qu’OpenClaw intègre nativement un système de Device Whitelisting (liste blanche de périphériques). Si votre PC n’a jamais été connecté à l’instance, vous devrez fournir le “Gateway Token”. Ensuite, vous devrez accepter cette nouvelle connexion du côté de l’instance OpenClaw. Vous l’aurez compris, seuls les périphériques préalablement autorisés peuvent profiter de votre instance locale.

Le point d’entrée : Discord

Le choix du point d’entrée, ce qui vous permettra d’interagir avec OpenClaw, c’est souvent une question de goûts et de couleurs.

OpenClaw intègre directement un système de chat pour que vous puissiez discuter avec lui. C’est bien, c’est natif, mais inaccessible si je ne suis pas chez moi. Le système propose également de configurer des points d’entrée externes comme Telegram, WhatsApp, Discord ou encore Teams et Slack. Et ça, c’est clairement un gros plus car cela donne des possibilités quasi illimitées !

Et ensuite ?

L’objectif de cet article était de vous présenter l’architecture envisagée pour mon assistant OpenClaw, de comprendre ce que l’on déploie et pourquoi. Nous avons donc une stack technique cohérente, performante grâce à Nutanix AHV, et hébergée en local.

Dans un prochain article, je vous expliquerai comment installer OpenClaw étape par étape jusqu’à avoir une instance fonctionnelle.

Read More

Abonnez-vous