Retour à l'accueil

Guide d'installation d'OpenClaw AI sur VPS

Guide de déploiement de l'agent OpenClaw AI sur VPS avec docker-compose et scripts bash. L'agent gère les conteneurs, PostgreSQL, surveille les sites via Telegram. Architecture complète, exemples de code, configuration de contexte.

OpenClaw sur VPS : agent AI pour DevOps dans Telegram
Advertisement 728x90

Déploiement d'OpenClaw AI Agent sur VPS : Guide pas à pas avec scripts

OpenClaw est un agent IA open-source pour gérer votre VPS via Telegram. Pile complète : docker-compose, scripts bash, configs de contexte. Clonez le repo, configurez .env avec les clés API, lancez deploy.sh — système prêt en 10 minutes. L'agent surveille les conteneurs, exécute des requêtes SQL, redémarre les services et vérifie les heartbeats.

Architecture du système

OpenClaw s'exécute dans un conteneur Docker ghcr.io/openclaw/openclaw avec montages pour /var/run/docker.sock, /var/www/projects et /var/log/nginx. Le contexte de workspace/SOUL.md définit le comportement : liste des conteneurs PostgreSQL, table des projets, règles de sécurité.

Les scripts dans /tools/ sont déclenchés par les requêtes :

Google AdInline article slot
  • docker-status.sh, docker-logs.sh, docker-restart.sh
  • db-discover.sh, db-query.sh pour PostgreSQL
  • health-check.sh pour la surveillance des sites HTTP
  • system-stats.sh, security-check.sh

L'agent gère le langage naturel : « logs du service auth » → docker-logs.sh auth-container.

Exigences minimales

  • Ubuntu 20.04+ ou Linux avec Docker Compose V2 (docker compose version)
  • 2 Go de RAM (agent ~300–500 Mo)
  • Clé API OpenRouter (openrouter.ai/keys) pour GPT-4o, modèles Claude
  • Jeton Telegram du bot via @BotFather

Étape 1 : Configuration du repo

ssh user@your-server
git clone https://github.com/ShyDamn/openclaw-devops-kit.git /tmp/openclaw-setup
cd /tmp/openclaw-setup

Structure :

openclaw-devops-kit/
├── docker-compose.yml
├── .env.example
├── deploy.sh
├── config/openclaw.json
├── workspace/SOUL.md, USER.md, HEARTBEAT.md
└── tools/ (14 scripts : docker-*.sh, db-*.sh, health-check.sh, etc.)

Étape 2 : Bot Telegram et .env

  • @BotFather → /newbot → jeton 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11
  • @userinfobot → votre ID 778921250
cp .env.example .env
nano .env
TELEGRAM_BOT_TOKEN=123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11
OPENROUTER_API_KEY=sk-or-v1-xxxxxxxxxxxxxxxxxxxxxxxx
YOUTRACK_TOKEN=perm:your-token-here  # optionnel

Dans config/openclaw.json :

Google AdInline article slot
"allowFrom": [
  "tg:778921250"
]

Étape 3 : Configuration du contexte dans workspace/

SOUL.md — Comportement principal

Listez vos conteneurs PostgreSQL et projets :

## Conteneurs PostgreSQL : db1, db2, db3

| Chemin | Projet | Pile |
|--------|--------|------|
| /projects/my-app/ | SaaS | Next.js + PostgreSQL |
| /projects/api/ | Backend | NestJS |

Règles : lecture sans confirmation, modifications avec double vérification.

USER.md — Votre profil

Fuseau horaire, pile technologique, projets clés.

Google AdInline article slot

HEARTBEAT.md — Checklist horaire

Surveillance des ressources, statut des conteneurs, sites HTTP.

Étape 4 : Surveillance des sites

Dans tools/health-check.sh :

SITES=(
  "mysite.com|mysite-frontend|mysite"
  "api.mysite.com|mysite-api|mysite"
)

Format : domaine|conteneur|projet. En cas de 5xx/timeout — redémarrage auto, notification en cas d'échec.

Étape 5 : Déploiement et lancement

bash deploy.sh

Automatisation :

  • Vérifier Docker Compose V2
  • Créer /var/www/openclaw/
  • Définir permissions .env (chmod 600)
  • Récupérer l'image
  • Démarrer le conteneur

Appairage Telegram :

cd /var/www/openclaw
docker compose run --rm --profile cli openclaw-cli pairing approve telegram <CODE>

Analyse des scripts clés

docker-logs.sh

#!/bin/bash
CONTAINER="${1:?Usage: docker-logs.sh <container_name> [lignes]}"
LINES="${2:-50}"
docker logs --tail "$LINES" "$CONTAINER" 2>&1

Détecte automatiquement le conteneur depuis SOUL.md.

system-stats.sh

#!/bin/bash
echo "=== RAM ==="
free -h
echo ""
echo "=== DISQUE ==="
df -h / | tail -1
# ... CPU, stats docker

Sortie complète pour heartbeat.

db-discover.sh — Découverte des bases

#!/bin/bash
for c in $(docker ps --format '{{.Names}}' | grep -i postgres); do
  echo "=== $c ==="
  DB_USER=$(docker exec "$c" printenv POSTGRES_USER 2>/dev/null)
  # ...
  docker exec "$c" psql -U "$DB_USER" -d "$DB_NAME" -c "\dt"
done

Trouve automatiquement toutes les instances PostgreSQL, récupère POSTGRES_USER/POSTGRES_DB, liste les tables.

db-query.sh

Exécute SQL avec params conteneur.

Points clés à retenir

  • Contexte SOUL.md essentiel : Sans table projets/conteneurs, l'agent demande des détails.
  • Whitelist dans openclaw.json : Accès uniquement via ID Telegram, pas de fuites.
  • Health-check.sh avec redémarrage auto : 5xx → redémarrage → vérification → notification.
  • Licence MIT : Contrôle total sur scripts/configs.
  • OpenRouter : Rotation des modèles (GPT-4o, Claude) en cas d'échec, une seule API.

— Editorial Team

Advertisement 728x90

Lire ensuite