OpenClaw a évolué rapidement : d'une turbulence de nommage Moltbot à Clawdbot à une identité stable et une adoption communautaire en croissance rapide. Si vous êtes ici, vous recherchez probablement un résultat pratique : **un nœud OpenClaw fiable fonctionnant sur un Raspberry Pi** auquel vous pouvez faire confiance chez vous ou en périphérie.
Ce guide s'adresse aux développeurs techniques chevronnés. Vous configurerez OpenClaw avec :
- dépendances système reproductibles,
- isolation des services,
- contrôles de santé basés sur le heartbeat (vérifications peu coûteuses en premier),
- invocation sélective de modèles,
- modèles de sandboxing sécurisé optionnels,
- et observabilité au niveau de l'API.
En cours de route, je montrerai où **Apidog** peut vous aider : valider les points de terminaison OpenClaw, créer des tests de régression et documenter votre surface d'API locale pour une utilisation en équipe.
1) Décisions architecturales avant l'installation
Avant de toucher à apt, décidez comment votre Pi exécutera les flux de travail d'inférence.
Option A : Le Pi comme orchestrateur, modèle déporté
Idéal pour Raspberry Pi 4/5 avec RAM limitée.
- OpenClaw exécute localement l'orchestration, la planification, les plugins et les heartbeats.
- L'inférence LLM lourde est acheminée vers des fournisseurs distants ou un serveur de modèles LAN.
- Charge thermique réduite, meilleure disponibilité.
Option B : Le Pi pour les modèles locaux légers uniquement
Bon pour une confidentialité stricte et les tâches hors ligne.
- Utilisez des modèles compacts (quantifiés, petites fenêtres contextuelles).
- Limitez les pipelines lourds et les longues chaînes.
- Attendez-vous à des compromis en termes de latence.
Option C : Routage hybride
Architecture la plus pratique.
- Vérifications déterministes peu coûteuses en premier.
- N'escaladez vers les appels de modèle que lorsque nécessaire.
- Acheminez les tâches à faible risque localement, celles à forte complexité à distance.
Ce modèle « vérifications peu coûteuses en premier, modèles uniquement si nécessaire » est devenu une stratégie de fiabilité fondamentale pour OpenClaw car il contrôle les coûts, la pression thermique et les pics de latence.
2) Matériel et système d'exploitation de base
Matériel recommandé
- **Raspberry Pi 5 (8 Go)** préféré
- Raspberry Pi 4 (4 Go et plus) fonctionne pour les charges de travail plus légères
- NVMe ou SSD de haute qualité plutôt que microSD pour la durabilité
- Alimentation stable et refroidissement actif
Système d'exploitation
Utilisez **Raspberry Pi OS Lite (64-bit)** ou Ubuntu Server 24.04 pour ARM64.
Puis mettez à jour :
bash sudo apt update && sudo apt upgrade -y sudo reboot
Définissez le nom d'hôte et la synchronisation horaire (important pour les journaux et les expirations de jetons) :
bash sudo hostnamectl set-hostname openclaw-pi sudo timedatectl set-ntp true
3) Installation des dépendances d'exécution
Les piles OpenClaw utilisent couramment des workers Python et/ou Node selon les plugins. Installez les deux pour rester compatible avec les modules en évolution.
sudo apt install -y git curl wget jq build-essential pkg-config python3 python3-venv python3-pip nodejs npm redis-server sqlite3Vérifiez les versions :
bash python3 --version node --version npm --version redis-server --version
Pourquoi Redis + SQLite ?
- **Redis** : signalisation de file d'attente/état à faible latence.
- **SQLite** : persistance locale légère pour les configurations à nœud unique.
Pour une configuration multi-nœuds ultérieure, migrez la persistance vers Postgres.
4) Création d'un utilisateur de service dédié
Évitez d'exécuter des agents en tant que pi ou root.
sudo useradd -m -s /bin/bash openclaw sudo usermod -aG sudo openclaw sudo mkdir -p /opt/openclaw sudo chown -R openclaw:openclaw /opt/openclaw
Changez d'utilisateur :
bash sudo su - openclaw cd /opt/openclaw
5) Clonage et configuration d'OpenClaw
bash git clone https://github.com//.git app cd app
Remplacez par le chemin actuel du dépôt officiel depuis la page du projet OpenClaw.
Créez l'environnement Python :
python3 -m venv .venv source .venv/bin/activate pip install --upgrade pip pip install -r requirements.txtS'il y a un service Node :
npm ciCopiez le modèle d'environnement :
cp .env.example .envForme typique de .env :
env OPENCLAW_HOST=0.0.0.0 OPENCLAW_PORT=8080 OPENCLAW_LOG_LEVEL=info
STATE_BACKEND=redis REDIS_URL=redis://127.0.0.1:6379 DB_URL=sqlite:////opt/openclaw/app/data/openclaw.db
MODEL_ROUTER=hybrid LOCAL_MODEL_ENABLED=true REMOTE_MODEL_ENABLED=true REMOTE_MODEL_API_KEY=your_key_here
HEARTBEAT_INTERVAL_SEC=15 HEARTBEAT_TIMEOUT_SEC=5 CHEAP_CHECKS_ENABLED=true
SANDBOX_MODE=on SANDBOX_PROVIDER=processUtilisez chmod 600 .env pour protéger les secrets.
6) Ajout d'un service systemd pour la fiabilité
Créez /etc/systemd/system/openclaw.service :
ini [Unit] Description=OpenClaw Agent Service After=network-online.target redis.service Wants=network-online.target
[Service] Type=simple User=openclaw WorkingDirectory=/opt/openclaw/app Environment="PYTHONUNBUFFERED=1" ExecStart=/opt/openclaw/app/.venv/bin/python -m openclaw.server Restart=always RestartSec=3 TimeoutStartSec=30 TimeoutStopSec=20Durcissement de base
NoNewPrivileges=true PrivateTmp=true ProtectSystem=full ProtectHome=true ReadWritePaths=/opt/openclaw/app/data /opt/openclaw/app/logs
[Install] WantedBy=multi-user.target
Activez et démarrez :
sudo systemctl daemon-reload sudo systemctl enable openclaw sudo systemctl start openclaw sudo systemctl status openclawAffichez les journaux :
bash journalctl -u openclaw -f
7) Implémentation d'une stratégie de heartbeat (vérifications peu coûteuses en premier)
Une leçon récurrente de la communauté : ne dépensez pas de jetons de modèle pour détecter des pannes évidentes.
Heartbeat stratifié recommandé
- **Vérification de processus L0** : service actif, port ouvert.
- **Vérification de dépendance L1** : Redis/DB accessible, latence de la file d'attente acceptable.
- **Vérification de tâche déterministe L2** : exécutez un script de validation statique.
- **Sonde L3 basée sur un modèle** : uniquement si les vérifications précédentes réussissent mais que la confiance est faible.
Exemple de pseudo-configuration :
yaml heartbeat: interval_sec: 15 timeout_sec: 5 stages: - name: process type: tcp target: 127.0.0.1:8080 - name: deps type: internal checks: [redis_ping, db_read] - name: deterministic type: task command: "python scripts/selfcheck.py" - name: model_probe type: llm enabled_on: degraded_only
Ce modèle réduit les coûts et les fausses alertes tout en protégeant la disponibilité sur du matériel contraint.
8) Exécution sécurisée avec des limites de bac à sable
Si OpenClaw exécute des outils (shell, navigateur, écritures de fichiers), isolez l'exécution.
Ligne de base minimale sur le Pi :
- exécuter des outils sous un utilisateur non privilégié,
- refuser les écritures larges sur le système de fichiers,
- répertoires de liste blanche,
- définir un délai d'expiration pour les sous-processus et des plafonds de mémoire.
Si votre pile prend en charge des bacs à sable renforcés (similaires aux modèles de bac à sable d'agent sécurisé), utilisez-les pour les appels d'outils non fiables.
Garde-fous pratiques :
env TOOL_EXEC_TIMEOUT_MS=12000 TOOL_MAX_STDOUT_KB=256 TOOL_ALLOWED_PATHS=/opt/openclaw/app/workdir TOOL_BLOCK_NETWORK_BY_DEFAULT=true
Pour les outils compatibles réseau, n'autorisez que des listes d'hôtes explicites.
9) Valider les API OpenClaw avec Apidog
Une fois OpenClaw opérationnel, traitez-le comme n'importe quel produit API : définissez les contrats, testez les comportements et suivez les régressions.

Pourquoi Apidog ici
Vous pouvez utiliser Apidog pour :
- importer ou concevoir votre spécification OpenAPI OpenClaw,
- exécuter des tests automatisés sur les points de terminaison locaux du Pi,
- créer des assertions visuelles pour les charges utiles de heartbeat,
- simuler les dépendances en aval pour le débogage hors ligne,
- publier des documents interactifs pour les membres de l'équipe.
Exemple de test de point de terminaison de santé
Supposons le point de terminaison :
GET /healthz
Réponse attendue :
{ "status": "ok", "checks": { "redis": "ok", "db": "ok", "queue_lag_ms": 12 } }
Dans Apidog, créez un scénario de test :
- Affirmez HTTP 200.
- Affirmez
status == ok. - Affirmez
checks.queue_lag_ms < 100. - Ajoutez un environnement négatif où Redis est arrêté ; attendez-vous à un état dégradé.
Ceci transforme « cela semble aller » en portes de qualité d'API reproductibles.
10) Optimisation des performances sur Raspberry Pi
Contrôle du CPU et thermique
Surveillez :
bash vcgencmd measure_temp uptime top
Si la température dépasse les limites de maintien sûres, la latence d'inférence augmentera en raison de la limitation thermique.
Pression de la mémoire
Activez zram ou un swap modeste si nécessaire, mais évitez les charges de travail intensives en swap pour les flux en temps réel.
File d'attente et concurrence
Commencez de manière conservatrice :
env WORKER_CONCURRENCY=1 MAX_INFLIGHT_TASKS=4
Augmentez ensuite après avoir observé la latence p95 et les taux d'erreur.
Rotation des journaux
Prévenez l'usure de la carte SD/SSD :
bash sudo apt install -y logrotate
Ajoutez des règles de rotation pour /opt/openclaw/app/logs/*.log.
11) Guide de dépannage
Le service se redémarre toutes les quelques secondes
- Vérifiez les clés d'environnement incorrectes ou les clés API manquantes.
- Exécutez l'application manuellement à l'intérieur de l'environnement virtuel pour voir la trace complète.
bash sudo su - openclaw cd /opt/openclaw/app source .venv/bin/activate python -m openclaw.server
Connexion Redis refusée
bash sudo systemctl status redis redis-cli ping
Si ce n'est pas PONG, réparez Redis avant de déboguer OpenClaw.
Latence élevée après quelques minutes
Probablement une limitation thermique ou une pression de la mémoire.
- réduire le contexte du modèle,
- réduire la concurrence des workers,
- déplacer les appels lourds vers un modèle distant.
Heartbeats réussis mais tâches échouent
Vos vérifications sont trop superficielles. Ajoutez des sondes de tâches déterministes qui imitent les flux de travail réels (lecture de fichier, analyse, résumé, encodage de réponse).
12) Liste de contrôle de durcissement pour une utilisation en périphérie quasi-production
- Utilisateur dédié (
openclaw), pas d'exécution en tant que root - Politique de redémarrage systemd et contraintes de ressources
- Secrets dans
.envavec des permissions strictes - Terminaison TLS via proxy inverse (Caddy/Nginx)
- Liste blanche du pare-feu (LAN/VPN uniquement)
- Niveaux de heartbeat avec escalade de la sonde de modèle
- Restrictions du bac à sable d'outils
- Tests de contrat API dans Apidog
- Exécution de tests automatisés en CI/CD pour les changements de configuration
Si vous collaborez entre les équipes backend, QA et frontend, placez la spécification API OpenClaw dans un espace de travail Apidog partagé. Vous maintiendrez les changements de schéma, les tests, les mocks et la documentation synchronisés au lieu qu'ils soient dispersés entre les outils.
13) Exemple de carte des points de terminaison à exposer
Gardez la surface petite et explicite :
GET /healthz— santé de baseGET /readyz— disponibilité des dépendancesGET /metrics— métriques compatibles PrometheusPOST /v1/tasks— soumettre une tâcheGET /v1/tasks/{id}— interroger le statutPOST /v1/chat/completions— point de terminaison de compatibilité optionnel
Documentez-les dans OpenAPI. Utilisez ensuite le flux de travail « schema-first » d'Apidog pour garantir la cohérence des réponses et éviter de rompre les consommateurs lorsque les modules OpenClaw évoluent.
Conclusion
Exécuter OpenClaw sur un Raspberry Pi est tout à fait viable lorsque vous concevez en tenant compte des contraintes :
- **orchestrer localement, inférer sélectivement**,
- **utiliser des couches de heartbeat avec des vérifications peu coûteuses en premier**,
- **isoler l'exécution des outils (sandbox)**,
- **traiter votre agent local comme un véritable service API** avec des tests et de la documentation.
Cette combinaison vous offre un nœud abordable, privé et suffisamment stable pour l'automatisation quotidienne.
Si vous souhaitez une prochaine étape claire, importez vos points de terminaison OpenClaw dans Apidog et créez trois tests automatisés dès aujourd'hui : healthz, readyz, et un flux de tâches de bout en bout. Vous détecterez les régressions tôt et maintiendrez la fiabilité de votre déploiement Pi à mesure que votre pile d'agents se développe.
