From d4ecff222ae1b7109aab553122905b00196b573f Mon Sep 17 00:00:00 2001 From: Daniel Krause Date: Fri, 22 May 2026 23:25:43 +0200 Subject: [PATCH] Add SearchTool documentation --- AGENTS.md | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/AGENTS.md b/AGENTS.md index 05622df..8f1558f 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -15,6 +15,7 @@ Netcup-Server erreichbar per SSH-Key: | Chatwoot | http://185.162.249.159:3001/ | /opt/chatwoot (docker compose) | | Open WebUI | http://185.162.249.159:3002/ | /opt/openwebui (docker compose) | | Ollama | localhost:11434 | systemd service, user: ollama | +| SearchTool | https://search.datenhimmel.work | /opt/search-tool (docker compose) | ## OpenCode API-Zugang @@ -29,6 +30,28 @@ Gepatchte Dateien (in docker-compose.yml als Volume gemountet): - `/opt/openwebui/middleware.py` — None-Checks vor `metadata['chat_id'].startswith()` - `/opt/openwebui/socket_main.py` — `(request_info.get('chat_id') or '').startswith()` +## SearchTool (Eigene Web-Suche) + +Selbst gehostete Such-API mit SearXNG (5 Engine: Google, Brave, DDG, Bing, Wikipedia) + Playwright-Fallback für JS-Seiten + Redis-Cache + Tor-Proxy (optional). + +- **URL:** https://search.datenhimmel.work +- **API Key:** 375f7a6d3fa09c45a76df8d497ca14c9aafc60ee931fc17fdb7e602d5074589b +- **Pfad:** /opt/search-tool (docker compose) +- **Repo:** git@185.162.249.159:danielkrause/search-tool.git +- **Endpoints:** POST /search (Web-Suche), POST /extract (Content-Extraction), GET /health +- **Hermes-Integration:** Plugin in /home/hermes/hermes-agent/plugins/web/searchtool/ — web.search_backend: searchtool + +```bash +# Suche +curl -X POST https://search.datenhimmel.work/search \ + -H "Authorization: Bearer 375f7a6d3fa09..." \ + -H "Content-Type: application/json" \ + -d '{"q": "Suchbegriff", "include_content": true}' + +# Steuern +ssh root@185.162.249.159 'cd /opt/search-tool && docker compose up -d' +``` + ## Docker Alle Docker-Dienste in /opt// mit docker compose steuern: @@ -76,6 +99,42 @@ ssh hermes@185.162.249.159 '/home/hermes/venv/bin/hermes config edit' Authentifiziert via SSH-Key (~ollama/.ollama/id_ed25519). Modelle werden per `ollama pull :cloud` bezogen. +## Hermes Agent (Server) + +Läuft als systemd-Service auf dem `hermes` User. Vollständig isoliert, kein sudo. + +- **Pfad:** /home/hermes/hermes-agent (git clone) +- **Config:** /home/hermes/.hermes/config.yaml + .env +- **Service:** `systemctl start/stop/restart hermes-gateway` +- **Gateway-Log:** journalctl -u hermes-gateway -f +- **Agent-Log:** /home/hermes/.hermes/logs/agent.log + +### Hermes warten + +```bash +# Service steuern +ssh root@185.162.249.159 systemctl stop hermes-gateway # Stoppen +ssh root@185.162.249.159 systemctl start hermes-gateway # Starten +ssh root@185.162.249.159 systemctl status hermes-gateway # Status + +# Update via pip +ssh root@185.162.249.159 'su - hermes -c "/home/hermes/venv/bin/pip install --upgrade -e /home/hermes/hermes-agent"' + +# Config editieren +ssh hermes@185.162.249.159 'nano /home/hermes/.hermes/.env' +ssh hermes@185.162.249.159 '/home/hermes/venv/bin/hermes config edit' +``` + +### Sicherheitskonzept + +- Hermes hat nur einen SSH-Key (dein Laptop-Key) +- Kein sudo-Zugriff (via sudoers blockiert) +- Keine outbound-Ports zu anderen Diensten (systemd hardening) +- PrivateTemp, ProtectSystem=strict, keine Capabilities +- Keine Messaging-Plattformen (Telegram/Discord/Slack deaktiviert) +- API-Key geschützt in .env (chmod 600) +- Ollama Cloud Auth via SSH-Key (~hermes/.ollama/id_ed25519, Kopie von ollama user) + ## Server-User - stephan, steffen (Passwort-Login)