Zurück zur Startseite

Anleitung zur Installation von OpenClaw AI auf VPS

Anleitung zur Bereitstellung von OpenClaw AI-Agent auf VPS mit docker-compose und bash-Skripten. Agent verwaltet Container, PostgreSQL, überwacht Websites via Telegram. Vollständige Architektur, Code-Beispiele, Kontext-Setup.

OpenClaw auf VPS: AI-Agent für DevOps in Telegram
Advertisement 728x90

OpenClaw AI-Agent auf VPS bereitstellen: Schritt-für-Schritt-Anleitung mit Skripten

OpenClaw ist ein Open-Source-AI-Agent zur Verwaltung Ihres VPS über Telegram. Vollständiger Stack: docker-compose, Bash-Tool-Skripte, Kontext-Konfigs. Repo klonen, .env mit API-Keys einrichten, deploy.sh ausführen — System in 10 Minuten einsatzbereit. Der Agent überwacht Container, führt SQL-Abfragen aus, startet Dienste neu und prüft Heartbeats.

Systemarchitektur

OpenClaw läuft in einem Docker-Container ghcr.io/openclaw/openclaw mit Mounts für /var/run/docker.sock, /var/www/projects und /var/log/nginx. Der Kontext aus workspace/SOUL.md definiert das Verhalten: PostgreSQL-Container-Liste, Projekte-Tabelle, Sicherheitsregeln.

Skripte in /tools/ werden durch Anfragen ausgelöst:

Google AdInline article slot
  • docker-status.sh, docker-logs.sh, docker-restart.sh
  • db-discover.sh, db-query.sh für PostgreSQL
  • health-check.sh für HTTP-Site-Überwachung
  • system-stats.sh, security-check.sh

Der Agent verarbeitet natürliche Sprache: „auth service logs“ → docker-logs.sh auth-container.

Mindestanforderungen

  • Ubuntu 20.04+ oder Linux mit Docker Compose V2 (docker compose version)
  • 2 GB RAM (Agent ~300–500 MB)
  • OpenRouter API-Key (openrouter.ai/keys) für GPT-4o, Claude-Modelle
  • Telegram-Bot-Token von @BotFather

Schritt 1: Repo-Setup

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

Struktur:

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

Schritt 2: Telegram-Bot und .env

  • @BotFather → /newbot → Token 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11
  • @userinfobot → Ihre 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  # optional

In config/openclaw.json:

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

Schritt 3: Kontext-Setup in workspace/

SOUL.md — Kernverhalten

Listen Sie Ihre PostgreSQL-Container und Projekte auf:

## PostgreSQL-Container: db1, db2, db3

| Pfad | Projekt | Stack |
|------|---------|-------|
| /projects/my-app/ | SaaS | Next.js + PostgreSQL |
| /projects/api/ | Backend | NestJS |

Regeln: Lesen ohne Bestätigung, Änderungen mit Double-Check.

USER.md — Ihr Profil

Zeitzone, Tech-Stack, Schlüsselprojekte.

Google AdInline article slot

HEARTBEAT.md — Stündliche Checkliste

Ressourcenüberwachung, Container-Status, HTTP-Sites.

Schritt 4: Site-Überwachung

In tools/health-check.sh:

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

Format: Domain|Container|Projekt. Bei 5xx/Timeout — Auto-Restart, Benachrichtigung bei Fehlern.

Schritt 5: Bereitstellung und Start

bash deploy.sh

Automatisierung:

  • Docker Compose V2 prüfen
  • /var/www/openclaw/ erstellen
  • .env-Berechtigungen setzen (chmod 600)
  • Image ziehen
  • Container starten

Telegram-Pairing:

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

Wichtige Skripte im Detail

docker-logs.sh

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

Erkennt Container automatisch aus SOUL.md.

system-stats.sh

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

Umfassende Ausgabe für Heartbeat.

db-discover.sh — Datenbank-Erkennung

#!/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

Findet automatisch alle PostgreSQL-Instanzen, zieht POSTGRES_USER/POSTGRES_DB, listet Tabellen.

db-query.sh

Führt SQL mit Container-Parametern aus.

Wichtige Erkenntnisse

  • SOUL.md-Kontext ist entscheidend: Ohne Projekte/Container-Tabelle fragt der Agent nach Details.
  • Whitelist in openclaw.json: Nur Telegram-ID-Zugang, keine Leaks.
  • Health-check.sh mit Auto-Restart: 5xx → Restart → Verifizieren → Benachrichtigen.
  • MIT-Lizenz: Volle Kontrolle über Skripte/Konfigs.
  • OpenRouter: Modell-Rotation (GPT-4o, Claude) bei Fehlern, einheitliche API.

— Editorial Team

Advertisement 728x90

Weiterlesen