diff --git a/OpenClaw Tutorial _ MI.pdf b/OpenClaw Tutorial _ MI.pdf deleted file mode 100644 index 53ae73c..0000000 Binary files a/OpenClaw Tutorial _ MI.pdf and /dev/null differ diff --git a/aria-setup.sh b/aria-setup.sh index 628d53f..f8ab089 100755 --- a/aria-setup.sh +++ b/aria-setup.sh @@ -1,104 +1,23 @@ #!/bin/bash # ════════════════════════════════════════════════ # ARIA — Ersteinrichtung nach docker compose up -# Einmalig ausfuehren, danach persistiert alles. +# +# OpenClaw (aria-core) ist abgerissen — das Setup macht jetzt +# nur noch den SSH-Key fuer den Zugriff auf die VM (aria-wohnung). +# Brain + Proxy teilen sich denselben Key, beide haben aria-data/ssh +# als Volume gemountet. # ════════════════════════════════════════════════ set -e -echo "=== ARIA Setup ===" -echo "" - -# Warten bis aria-core laeuft -echo "[1/7] Warte auf aria-core..." -until docker inspect -f '{{.State.Running}}' aria-core 2>/dev/null | grep -q true; do - sleep 2 - echo " ... warte..." -done -echo " aria-core laeuft." - -# Permissions fixen — Docker-Volumes gehoeren root, OpenClaw laeuft als node -echo "" -echo "[2/7] Fixe Permissions auf /home/node/.openclaw und /home/node/.claude..." -docker exec -u root aria-core chown -R node:node /home/node/.openclaw -docker exec -u root aria-core chown -R node:node /home/node/.claude 2>/dev/null || true -docker exec -u root aria-core chmod 700 /home/node/.openclaw -echo " Permissions OK." - -# OpenClaw Config schreiben — Custom Provider fuer claude-max-api-proxy -echo "" -echo "[3/7] Schreibe openclaw.json (Proxy-Provider + Model + Tools)..." -docker exec aria-core sh -c 'cat > /home/node/.openclaw/openclaw.json << '"'"'INNEREOF'"'"' -{ - "meta": { - "lastTouchedVersion": "2026.3.8" - }, - "gateway": { - "mode": "local" - }, - "agents": { - "defaults": { - "model": { - "primary": "proxy/claude-sonnet-4" - }, - "compaction": { - "mode": "safeguard" - }, - "timeoutSeconds": 900, - "maxConcurrent": 4, - "subagents": { - "maxConcurrent": 8 - } - } - }, - "models": { - "providers": { - "proxy": { - "api": "openai-completions", - "baseUrl": "http://proxy:3456/v1", - "apiKey": "not-needed", - "models": [ - { "id": "claude-sonnet-4", "name": "claude-sonnet-4" }, - { "id": "claude-opus-4", "name": "claude-opus-4" } - ] - } - } - }, - "tools": { - "profile": "full", - "web": { - "fetch": { - "enabled": true - } - }, - "exec": { - "host": "gateway" - } - }, - "messages": { - "ackReactionScope": "all" - }, - "commands": { - "native": "auto", - "nativeSkills": "auto", - "restart": true, - "ownerDisplay": "raw" - } -} -INNEREOF' -echo " Config geschrieben." - -# Exec-Approvals Wildcard — erlaubt Tool-Ausfuehrung im headless-Modus -echo "" -echo "[4/7] Setze exec-approvals Wildcard..." -docker exec aria-core openclaw approvals allowlist add --agent "*" "*" 2>/dev/null || true -echo " Approvals gesetzt." - -# SSH-Key generieren fuer VM-Zugriff SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" SSH_DIR="$SCRIPT_DIR/aria-data/ssh" -echo "" -echo "[5/7] SSH-Key fuer VM-Zugriff..." + +echo "=== ARIA Setup ===" + +mkdir -p "$SSH_DIR" + if [ ! -f "$SSH_DIR/id_ed25519" ]; then + echo "Generiere SSH-Key fuer aria-wohnung..." ssh-keygen -t ed25519 -f "$SSH_DIR/id_ed25519" -N "" -C "aria@aria-wohnung" cat > "$SSH_DIR/config" << 'SSHEOF' Host aria-wohnung @@ -108,34 +27,26 @@ Host aria-wohnung StrictHostKeyChecking accept-new SSHEOF chmod 600 "$SSH_DIR/id_ed25519" - chmod 644 "$SSH_DIR/id_ed25519.pub" - chmod 644 "$SSH_DIR/config" - echo " Key generiert." - # Public Key direkt in root's authorized_keys eintragen (Script laeuft als root auf der VM) - mkdir -p /root/.ssh - chmod 700 /root/.ssh - cat "$SSH_DIR/id_ed25519.pub" >> /root/.ssh/authorized_keys - chmod 600 /root/.ssh/authorized_keys - echo " Public Key in /root/.ssh/authorized_keys eingetragen." + chmod 644 "$SSH_DIR/id_ed25519.pub" "$SSH_DIR/config" + + # Public Key direkt in /root/.ssh/authorized_keys eintragen + # (Script laeuft als root auf der VM aria-wohnung) + if [ -w /root/.ssh ] || [ -w /root ]; then + mkdir -p /root/.ssh + chmod 700 /root/.ssh + cat "$SSH_DIR/id_ed25519.pub" >> /root/.ssh/authorized_keys + chmod 600 /root/.ssh/authorized_keys + echo " Public Key in /root/.ssh/authorized_keys eingetragen." + else + echo " Hinweis: konnte /root/.ssh/authorized_keys nicht schreiben." + echo " Pubkey manuell eintragen:" + cat "$SSH_DIR/id_ed25519.pub" + fi else - echo " Key existiert bereits." + echo "SSH-Key existiert bereits — uebersprungen." fi -# Permissions im Container fixen -echo "" -echo "[6/7] Fixe SSH-Permissions..." -docker exec -u root aria-core chown -R node:node /home/node/.ssh 2>/dev/null || true - -# Neustart damit Gateway die Config laedt -echo "" -echo "[7/7] Starte aria-core neu..." -docker restart aria-core - -echo "" echo "=== Setup fertig ===" echo "" -echo "Teste mit: docker logs aria-core --tail 20" -echo "Erwartete Zeile: 'agent model: proxy/claude-sonnet-4'" -echo "" -echo "SSH-Test: docker exec aria-core ssh aria-wohnung hostname" -echo "Tool-Test: Neue Session anlegen, dann 'Wie wird das Wetter in Bremen?' fragen" +echo "Naechster Schritt: docker compose up -d" +echo "Test: docker exec aria-brain ssh aria-wohnung hostname" diff --git a/init.sh b/init.sh index 713701e..39a0917 100755 --- a/init.sh +++ b/init.sh @@ -24,3 +24,8 @@ if [ ! -f .env ]; then else echo ".env existiert bereits — uebersprungen." fi + +# ── Brain-Verzeichnisse anlegen (Bind-Mounts fuer aria-brain + aria-qdrant) +# Inhalt ist gitignored — wird ueber Diagnostic-Export/Import gesichert. +mkdir -p aria-data/brain/data aria-data/brain/qdrant +echo "✓ aria-data/brain/{data,qdrant} bereit"