diff --git a/README.md b/README.md index 3634765..30202cd 100644 --- a/README.md +++ b/README.md @@ -96,6 +96,7 @@ ARIA hat zwei Rollen: | ARIA Brain/Bridge/Diagnostic | Debian 13 VM | `./init.sh && ./aria-setup.sh && docker compose up -d` | | Compute-Node(s) (STT/TTS/LLM) | 1..n GPU-Rechner | `cd xtts && cp .env.example .env && docker compose up -d` | | Satellit(en) 🛰️ (optional) | Fremdes Netz (Büro …) | `cd satellite && cp .env.example .env && docker compose up -d --build` | +| Host-Agent(en) 💻 (optional) | Direkt auf einem Rechner | `cd host-agent && ./build.sh` → Binary + `.env` auf den Rechner, starten (Details unten & in [`host-agent/README.md`](host-agent/README.md)) | | Android App | Stefans Handy | APK installieren (Auto-Update via RVS) | > Compute-Nodes sind optional: ohne sie faellt STT auf lokales Whisper (CPU, @@ -936,6 +937,58 @@ dem Cache wiederverwendet. --- +## Host-Agenten 💻 — Direktzugriff auf einen Rechner + +Ein **Host-Agent** läuft als **Standalone-Binary direkt auf einem Rechner** +(Linux) und verbindet sich **ausgehend** zum RVS (gleicher Token). Damit steuert +ARIA diesen Rechner direkt — auch wenn er sonst aus dem Netz **nicht erreichbar** +ist (hinter NAT/Firewall, kein offener Port). Unterschied zum Satelliten: der +Satellit ist ein LAN-Gateway (entdeckt/steuert *andere* Geräte); der Host-Agent +steuert den Rechner, auf dem er *läuft*. + +**Fähigkeiten** (ARIA-Tools `host_list` / `host_exec` / `host_read` / +`host_write` / `host_info` / `host_screenshot`): Shell-Kommandos (optional +`sudo`), Datei lesen/schreiben, System-Info (CPU/RAM/Disk/Uptime), Screenshot +(ARIA öffnet ihn mit ihrem Read-Tool und *sieht* den Bildschirm; erscheint zudem +inline im Chat). + +### 1. Binary bauen (portabel, Linux x86_64) + +```bash +cd host-agent +./build.sh # braucht Docker; erzeugt dist/aria-host-agent (~15 MB) +``` + +Gebaut wird via PyInstaller in einem bullseye-Container (altes glibc) → läuft auf +möglichst vielen Distributionen. Keine Runtime auf dem Ziel nötig. + +### 2. Auf dem Ziel-Rechner installieren + +```bash +# dist/aria-host-agent auf den Rechner kopieren, dann: +cp .env.example .env # RVS-Zugang + CONTROL_ENABLED=true eintragen +chmod +x aria-host-agent && ./aria-host-agent +``` + +Oder als Dienst: `host-agent/aria-host-agent.service` (systemd). + +### sudo + +Der Agent wählt automatisch: **root** → direkt · `SUDO_PASSWORD` in der `.env` +→ `sudo -S` · **`SUDO_NOPASSWD=true`** → `sudo -n` (Live-ISO / passwortloses +sudo, z.B. Linux Mint vom Stick) · sonst klare Fehlermeldung. + +### Sicherheit + +Reagiert nur auf den eigenen RVS-Raum (Token) und nur bei `CONTROL_ENABLED=true`; +keine offenen Ports; alle Kommandos werden geloggt. Gibt **vollen** Rechnerzugriff +— nur auf Maschinen einsetzen, denen du ARIA anvertraust. Details: +[`host-agent/README.md`](host-agent/README.md). + +> Sichtbar in der Diagnostic unter **Satelliten → Host-Agenten 💻**. + +--- + ## Docker Volumes | Volume / Bind | Pfad im Container | Zweck |