From 8ac73f5da279a8179ffdd9d7a741f6aea1b2f817 Mon Sep 17 00:00:00 2001 From: Floke Date: Sat, 14 Feb 2026 12:07:23 +0000 Subject: [PATCH] MOLTBOT_SYNOLOGY_GUIDE.md aktualisiert MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ergänzung zur neuen installation --- MOLTBOT_SYNOLOGY_GUIDE.md | 114 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) diff --git a/MOLTBOT_SYNOLOGY_GUIDE.md b/MOLTBOT_SYNOLOGY_GUIDE.md index fadd4c7a..bef58690 100644 --- a/MOLTBOT_SYNOLOGY_GUIDE.md +++ b/MOLTBOT_SYNOLOGY_GUIDE.md @@ -94,3 +94,117 @@ Der Zugriff über einen SSH-Tunnel ist sicher, aber für den täglichen Gebrauch * Einrichtung eines **Reverse Proxys** auf der Synology DiskStation. * **Ziel:** Moltbot über eine sichere **HTTPS**-URL (z.B. `https://moltbot.meine-domain.de`) erreichbar zu machen. Dies erfüllt die "Secure Context"-Anforderung und macht den manuellen Aufbau eines SSH-Tunnels überflüssig. +[STRATEGIE] +Das war ein technischer Stellungskrieg, aber wir haben die Architektur jetzt "Synology-proof" und hochfunktional. Der entscheidende Durchbruch war die Abkehr von der automatisierten Konfiguration hin zur **expliziten Architektur-Kontrolle** (Root-User, manuelle JSON-Injektion und Runtime-Bootstrapping). + +Hier ist der destillierte **Setup-Guide 2026** für dein Gitea-Repository. + +--- + +# 🦞 Moltbot Synology Deployment Guide (Feb 2026) + +## 1. Strategischer Kontext +Dieses Setup dient als Backend für die **GTM-Engine** von RoboPlanet. Es ist darauf optimiert, auf einer Synology DiskStation stabil zu laufen, Berechtigungskonflikte zu vermeiden und eine vollwertige **Python/Pip/Git-Umgebung** für automatisierte Workflows bereitzustellen. + +## 2. Infrastruktur (Host-Ebene) +Bevor der Container startet, muss die Verzeichnisstruktur auf der DiskStation exakt so vorbereitet sein. Dies verhindert "Bind mount"-Fehler und sichert die Datenpersistenz. + +```bash +# Hauptverzeichnis +mkdir -p /volume1/docker/moltbot + +# Unterordner für saubere Trennung +mkdir -p /volume1/docker/moltbot/storage # Datenbank & State (~/.clawdbot) +mkdir -p /volume1/docker/moltbot/config # Statische Konfiguration +mkdir -p /volume1/docker/moltbot/workspace # Arbeitsbereich für Agenten-Scripte +mkdir -p /volume1/docker/moltbot/secrets # API-Keys & Zertifikate + +# Rechte-Management (Zwingend für Synology) +# Wir setzen 1000:1000 (Node) oder nutzen user:root im Container +sudo chown -R 1000:1000 /volume1/docker/moltbot +``` + +## 3. Konfiguration (Die "Ground Truth") +Manuelle Erstellung der Konfiguration, um Validierungsfehler der CLI zu umgehen. Erstelle die Datei `/volume1/docker/moltbot/config/moltbot.json`: + +```json +{ + "gateway": { + "mode": "local", + "bind": "lan", + "port": 18789, + "auth": { + "token": "DEIN_GATEWAY_TOKEN" + } + }, + "channels": { + "telegram": { + "enabled": true + } + } +} +``` + +## 4. Docker-Compose (Die Engine) +Die finale `docker-compose.yml`. Zentrale Entscheidungen: +- **user: root**: Erforderlich für die Installation von System-Paketen (Python) zur Laufzeit. +- **command-Bootstrap**: Installiert Python & Git bei jedem Start, falls das Image aktualisiert wird. +- **auth-profiles Injection**: Schreibt den Gemini-Key direkt in den Agent-Speicher. + +```yaml +services: + openclaw-gateway: + image: ghcr.io/openclaw/moltbot:main + container_name: openclaw-gateway + user: root + environment: + MOLTBOT_STATE_DIR: /home/node/.clawdbot + OPENCLAW_GATEWAY_TOKEN: ${OPENCLAW_GATEWAY_TOKEN} + TELEGRAM_BOT_TOKEN: ${TELEGRAM_BOT_TOKEN} + GEMINI_API_KEY: ${GEMINI_API_KEY} + HOME: /home/node + volumes: + - /volume1/docker/moltbot/storage:/home/node/.clawdbot + - /volume1/docker/moltbot/workspace:/home/node/.clawdbot/workspace + - /volume1/docker/moltbot/config/moltbot.json:/home/node/.clawdbot/moltbot.json:ro + ports: + - "18789:18789" + init: true + restart: unless-stopped + command: > + sh -lc ' + apt-get update && apt-get install -y python3 python3-pip git build-essential + mkdir -p /home/node/.clawdbot/agents/main/agent + echo "{\"google\": {\"apiKey\": \"$${GEMINI_API_KEY}\"}}" > /home/node/.clawdbot/agents/main/agent/auth-profiles.json + exec node dist/index.js gateway --bind lan + ' + + openclaw-cli: + image: ghcr.io/openclaw/moltbot:main + container_name: openclaw-cli + user: root + environment: + MOLTBOT_GATEWAY_URL: ws://openclaw-gateway:18789 + MOLTBOT_GATEWAY_TOKEN: ${OPENCLAW_GATEWAY_TOKEN} + volumes: + - /volume1/docker/moltbot/storage:/home/node/.clawdbot + - /volume1/docker/moltbot/workspace:/home/node/.clawdbot/workspace + entrypoint: ["node", "dist/index.js", "--gateway", "ws://openclaw-gateway:18789"] + stdin_open: true + tty: true +``` + +## 5. Operative Key-Entscheidungen (Review) +1. **Pfad-Konsistenz:** Umstellung von `.openclaw` auf `.clawdbot` (Projekt-Migration 2026 gefolgt). +2. **Bind-Parameter:** Wechsel von `0.0.0.0` auf `lan`, da das Gateway-Modul spezifische Keywords für das Interface-Binding verlangt. +3. **CLI-Targeting:** Die CLI wurde über den `entrypoint` fest auf den Gateway-Service verdrahtet, um den Loopback-Fehler (`127.0.0.1`) innerhalb des Docker-Netzwerks permanent zu beheben. +4. **Pairing-Prozess:** Initialisierung via Telegram erfordert ein einmaliges `pairing approve` über die CLI, um die User-ID des Besitzers zu verknüpfen. + +## 6. Wartung +- **Python-Module:** Können über `docker exec -it openclaw-gateway pip install ` nachinstalliert werden. +- **Updates:** `docker compose pull && docker compose up -d` (Das Bootstrap-Skript installiert Python automatisch nach). + +--- + +[STATUS] +Das System läuft. Python ist installiert. Gemini ist autorisiert. Die GTM-Engine ist bereit für den ersten "Whale Hunting" Task. Was ist die erste operative Aufgabe, die der Bot für dich erledigen soll? Gitea-Clone oder Prospecting-Analyse? 🦞