diff --git a/README.md b/README.md index a9c7d93..d47dd58 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,7 @@ Dieses Repository enthält die Infrastruktur, um PaperClip inklusive Caddy (Reve * **Reverse Proxy:** Caddy * **Datenbank:** Postgres 17 * **Anwendung:** PaperClip (via `ghcr.io/paperclipai/paperclip:latest`) +* **Agent-Runtime:** Hermes Agent (via `nousresearch/hermes-agent:latest`) — Dashboard: `hermes.orfel.de` Alle Volumes werden als lokale Mounts unter `/opt/PaperClip-Data/` auf dem Host abgelegt. @@ -59,3 +60,31 @@ Paperclip ist in seiner Benutzeroberfläche bei der Erstinstallation stark auf o * Klicke hier auf die Schaltfläche **OpenAI (API)**. * Füge exakt deinen **OpenRouter-** oder **Mistral-Key** in das Textfeld ein und klicke auf "Connect". * Paperclip testet den Key nun erfolgreich gegen deinen Provider und lässt dich ins Dashboard! + +## Hermes Agent + +[Hermes Agent](https://github.com/NousResearch/hermes-agent) ist ein Open-Source-KI-Agent von Nous Research, der als eigenständiger Docker-Service läuft und von PaperClip als "Mitarbeiter" eingestellt werden kann. + +### Architektur + +* **Container:** `hermes` (Image: `nousresearch/hermes-agent:latest`) +* **Netz:** Im selben `paperclip-net` — PaperClip erreicht Hermes intern über `http://hermes:8642` +* **Web-Dashboard:** `https://hermes.orfel.de` (Port 9119) +* **Daten:** `/opt/PaperClip-Data/hermes/` auf dem Host + +### Hermes in PaperClip einbinden + +Nachdem der Service gestartet ist, kann PaperClip Hermes als Agenten einstellen: + +1. Im PaperClip-Dashboard → **"Hire Agent"** +2. Adapter wählen: **`hermes_gateway`** +3. Gateway-URL eintragen: `http://hermes:8642` +4. Hermes-Agent konfigurieren und Tasks zuweisen + +### Umgebungsvariablen ändern + +Die `.env` für Hermes liegt unter `services/hermes/.env` (nicht committed). Nach Änderungen neu verschlüsseln: + +```bash +age -r -o services/hermes/.env.age services/hermes/.env +``` diff --git a/services/hermes/.env.age b/services/hermes/.env.age new file mode 100644 index 0000000..fe5691b Binary files /dev/null and b/services/hermes/.env.age differ diff --git a/services/hermes/docker-compose.yml b/services/hermes/docker-compose.yml new file mode 100644 index 0000000..9347129 --- /dev/null +++ b/services/hermes/docker-compose.yml @@ -0,0 +1,15 @@ +services: + hermes: + image: nousresearch/hermes-agent:latest + container_name: hermes + environment: + OPENROUTER_API_KEY: "${OPENROUTER_API_KEY}" + volumes: + - /opt/PaperClip-Data/hermes:/opt/data + networks: + - paperclip-net + restart: unless-stopped + +networks: + paperclip-net: + external: true diff --git a/services/hermes/hermes.caddy b/services/hermes/hermes.caddy new file mode 100644 index 0000000..226dbc3 --- /dev/null +++ b/services/hermes/hermes.caddy @@ -0,0 +1,3 @@ +hermes.orfel.de { + reverse_proxy hermes:9119 +} diff --git a/services/hermes/service.enabled b/services/hermes/service.enabled new file mode 100644 index 0000000..125c495 --- /dev/null +++ b/services/hermes/service.enabled @@ -0,0 +1 @@ +Hermes Agent service — enabled for deployment.