{"queue_id": 21, "relative_path": "Architecture/HERMES-MARIE-VPS-OPERATOR-ANALYSE.md", "title": "HERMES-MARIE-VPS-OPERATOR-ANALYSE", "import_key": "9c2e66c6ab0fa071973a4728815d9e6435cf244d40f333f258d99f15bde7df19", "chunk_count": 13, "created_nodes": 14, "created_relationships": 25, "body": null, "chunks": [{"chunk_key": "623260fc0f6243fd7e3d4aceb3724b239fffa6524cd9a4a182c56c92fdf1493b", "chunk_index": 0, "heading": "HERMES-MARIE-VPS-OPERATOR-ANALYSE", "text": "# HERMES-MARIE-VPS-OPERATOR-ANALYSE\n\n*Erstellt: 2026-05-30*\n*Status: Nur Analyse — keine Änderungen durchgeführt*\n\n---", "text_hash": "4bdc2fa8f16218d1843961eaef170e0629ceddeffe00f4719d692badaafacce2"}, {"chunk_key": "f71f9c14bdc2c12ff1b206453c9a9a0adec076c72a6edb8f9a8ac4ace47543c6", "chunk_index": 1, "heading": "1. Container-Architektur Marie (Ist-Zustand)", "text": "# HERMES-MARIE-VPS-OPERATOR-ANALYSE\n\n*Erstellt: 2026-05-30*\n*Status: Nur Analyse — keine Änderungen durchgeführt*\n\n---\n## 1. Container-Architektur Marie (Ist-Zustand)\n\nMarie besteht aus **zwei getrennten Services** in einem gemeinsamen Compose-Stack:\n\n```\n/opt/struktur/hermes-workspace-mari/docker-compose.yml\n├── hermes-agent → Container: hermes-mari-agent (Port 8643)\n└── hermes-workspace → Container: hermes-mari-workspace (Port 3011)\n```\n\n**Wichtig:** Dies unterscheidet sich grundlegend von Carlosetup, das ein einziger Custom-Container ist.\n\nZusätzlich existiert ein separates Verzeichnis `/opt/struktur/hermes-mari/` mit eigenem `docker-compose.yml` — dieses definiert einen `hermes-mari`-Container der aktuell **nicht als aktiver Agent** läuft.\n\n---", "text_hash": "53172070d8daf40c56141cf9bf17ade91a45efcd9b5df49b8b24df7988d0e5d6"}, {"chunk_key": "76814f192fc067654ae211056c16c31c7bd4494a5aa3ad4a3780d7c92d5134e8", "chunk_index": 2, "heading": "2. Aktiver Agent: hermes-mari-agent", "text": "ur/hermes-mari/` mit eigenem `docker-compose.yml` — dieses definiert einen `hermes-mari`-Container der aktuell **nicht als aktiver Agent** läuft.\n\n---\n## 2. Aktiver Agent: hermes-mari-agent\n\n**Container-Name:** `hermes-mari-agent`\n**Image:** `nousresearch/hermes-agent:latest` (offizielles Upstream-Image)\n**Command:** `gateway run`\n**Status:** Up (healthy)", "text_hash": "1b2600de3255e80667b27b01632fa118e4179d7a160bc63d94982aaf0699e598"}, {"chunk_key": "fbfc084794fbd9dd894807fc15f928755eac97c87a69b263b99be6181ab335b0", "chunk_index": 3, "heading": "Volumes", "text": ":** `hermes-mari-agent`\n**Image:** `nousresearch/hermes-agent:latest` (offizielles Upstream-Image)\n**Command:** `gateway run`\n**Status:** Up (healthy)\n### Volumes\n\n```\nhermes-workspace-mari_claude-data:/opt/data (rw, named volume)\n```\n\n**Kein einziger Host-Pfad gemountet.** Keine Verbindung zu `/opt/struktur/`, kein Obsidian-Vault, keine Projektdateien.", "text_hash": "f49519c66714729538a264a9552060eae995681faeed4f0b712f4c7e51ab78bd"}, {"chunk_key": "c8b4a0c021acb6871e88b2c9552a7d71b9f56b06b48d4ecce960aa90a6050e0e", "chunk_index": 4, "heading": "Netzwerke", "text": "ata (rw, named volume)\n```\n\n**Kein einziger Host-Pfad gemountet.** Keine Verbindung zu `/opt/struktur/`, kein Obsidian-Vault, keine Projektdateien.\n### Netzwerke\n\n```\nhermes-workspace-mari_default\nstruktur-net\n```", "text_hash": "45a23eaf0adb9cd18bc3e5d540bc0448b2f23dd7bc5b5abdf4e4ae8010715290"}, {"chunk_key": "5dfece257e61847e92ce1ff05bb6efc0c732a67c1acbef1e723cbb5e5250e1c0", "chunk_index": 5, "heading": "Docker-Socket", "text": "### Netzwerke\n\n```\nhermes-workspace-mari_default\nstruktur-net\n```\n### Docker-Socket\n\n❌ Nicht vorhanden. `docker ps` innerhalb des Containers schlägt fehl:\n```\nCannot connect to the Docker daemon at unix:///var/run/docker.sock.\n```", "text_hash": "b870f13ce9fd2f00fc580c3208123ae6c78fb20ffdaabd14037138ed7e1afdcc"}, {"chunk_key": "c146e7055e4dc0bf7ee8deec68a35db047a5733af16fcf1edfa4bdfe81e51468", "chunk_index": 6, "heading": "Binaries", "text": "ket\n\n❌ Nicht vorhanden. `docker ps` innerhalb des Containers schlägt fehl:\n```\nCannot connect to the Docker daemon at unix:///var/run/docker.sock.\n```\n### Binaries\n\n- `/usr/bin/docker` ✅ (vorhanden, aber ohne Socket wirkungslos)\n- `/usr/bin/ssh` ✅ (vorhanden, kein Key konfiguriert)\n\n---", "text_hash": "6343d2288443da8a5704155bb76d472310f319d09ce8ada0d4122f00a6aff639"}, {"chunk_key": "379bacd583f3c7a97adb38eb5502233dbc2b882b6aa4123cf10967a78d12fd96", "chunk_index": 7, "heading": "3. Workspace: hermes-mari-workspace", "text": "### Binaries\n\n- `/usr/bin/docker` ✅ (vorhanden, aber ohne Socket wirkungslos)\n- `/usr/bin/ssh` ✅ (vorhanden, kein Key konfiguriert)\n\n---\n## 3. Workspace: hermes-mari-workspace\n\n**Container-Name:** `hermes-mari-workspace`\n**Image:** `ghcr.io/outsourc-e/hermes-workspace:latest`\n**Port:** `127.0.0.1:3011:3000`", "text_hash": "77046c7c673e5c71565617e35b890f3acf72ed514a31f317fc2a519b943ed31d"}, {"chunk_key": "befdcba0eb5183217d119c04e7a229fdeb6c8b52951381f452b8113d58cab41b", "chunk_index": 8, "heading": "Volumes des Workspace", "text": "es-mari-workspace\n\n**Container-Name:** `hermes-mari-workspace`\n**Image:** `ghcr.io/outsourc-e/hermes-workspace:latest`\n**Port:** `127.0.0.1:3011:3000`\n### Volumes des Workspace\n\n```\n/opt/struktur/hermes-workspace-mari/swarm.yaml → /app/swarm.yaml (ro)\n/opt/struktur/hermes-workspace-mari/runtime → /app/.runtime (rw)\n/var/run/docker.sock → /var/run/docker.sock (!)\n/opt/struktur/hermes-workspace-mari/workspace-... → /custom-... (ro)\n```\n\n**Der Docker-Socket ist beim Workspace-Container gemountet — aber beim falschen.**\n\nDer Workspace ist nur das Web-Frontend. Der Agent (`hermes-mari-agent`) führt die Tools aus. Der Agent hat keinen Socket.\n\n---", "text_hash": "d920a35f593f578e6e77ea04a3f2d4fef9506c39531a71095a33b488bf0d82c4"}, {"chunk_key": "5c5c8c0dd1ab480dbed97ed493dc67632472d954f10154f06770162c060a7cb6", "chunk_index": 9, "heading": "4. Vergleich Carlo ↔ Marie", "text": " aber beim falschen.**\n\nDer Workspace ist nur das Web-Frontend. Der Agent (`hermes-mari-agent`) führt die Tools aus. Der Agent hat keinen Socket.\n\n---\n## 4. Vergleich Carlo ↔ Marie\n\n| Merkmal | Hermes-Carlo | Hermes-Marie (Agent) |\n|---|---|---|\n| Container | `hermes-carlo` (custom) | `hermes-mari-agent` (upstream) |\n| Image | `hermes-carlo:latest` | `nousresearch/hermes-agent:latest` |\n| Docker-Socket | ✅ gemountet | ❌ fehlt |\n| `/opt/struktur/` | ✅ gemountet | ❌ nicht gemountet |\n| `/opt/obsidian-vault/` | ✅ gemountet | ❌ nicht gemountet |\n| Host-Pfade gesamt | 6 | 0 |\n| docker ps | ✅ funktioniert | ❌ scheitert |\n| Projektdateizugriff | ✅ voll | ❌ nur named volume |\n| Terminal-Tool | ✅ | ✅ (vorhanden, begrenzt nutzbar) |\n\n---", "text_hash": "a438dc0dfaedfe0e2c8c20a859585f0c3f41015cf3c24de23585d2be1d412dc0"}, {"chunk_key": "6d32dc48f2af07c0659d6ba85c2211b0dd7bf5cbab50a228d6ce7c7247a572bf", "chunk_index": 10, "heading": "5. Ist derselbe Docker-Socket-Mount möglich?", "text": "ps | ✅ funktioniert | ❌ scheitert |\n| Projektdateizugriff | ✅ voll | ❌ nur named volume |\n| Terminal-Tool | ✅ | ✅ (vorhanden, begrenzt nutzbar) |\n\n---\n## 5. Ist derselbe Docker-Socket-Mount möglich?\n\n**Ja.** Technisch ist das identisch mit dem Carlo-Ausbau. Einzige Unterschiede:\n\n1. Die Zieldatei ist `/opt/struktur/hermes-workspace-mari/docker-compose.yml`\n2. Der Service heißt `hermes-agent`, nicht `hermes-carlo`\n3. Zusätzlich sollten Host-Pfade gemountet werden (aktuell völlig fehlend)\n\n---", "text_hash": "1b970e6a97e037ec5179a1f56c7feabf370bb66803fe91bc34eb6182502a4003"}, {"chunk_key": "abd2ed7ad3f56ac9f79869e127ac3e45cba732a6cd700ea50aec0c551a30659d", "chunk_index": 11, "heading": "6. Notwendige Anpassungen", "text": "compose.yml`\n2. Der Service heißt `hermes-agent`, nicht `hermes-carlo`\n3. Zusätzlich sollten Host-Pfade gemountet werden (aktuell völlig fehlend)\n\n---\n## 6. Notwendige Anpassungen\n\n| Anpassung | Auswirkung | Priorität |\n|---|---|---|\n| Docker-Socket beim Agent-Service | Docker-Kontrolle | Hoch |\n| `/opt/struktur/` mounten | Projektdatei-Zugriff | Hoch |\n| `/opt/obsidian-vault/` mounten | KB-Zugriff | Mittel |\n| Modell-Config prüfen | Welches Modell läuft? | Mittel |\n\n---", "text_hash": "947fdcda1a807fd9e4d3a90ce137f0ad23a4c660528e78ea22e4a9ee4ae6aa92"}, {"chunk_key": "601fb6cf4b801ad892ab50eab60b66c155aef73b3da6cb80c69839b59e58feb5", "chunk_index": 12, "heading": "7. Besonderheit: Upstream-Image", "text": " Projektdatei-Zugriff | Hoch |\n| `/opt/obsidian-vault/` mounten | KB-Zugriff | Mittel |\n| Modell-Config prüfen | Welches Modell läuft? | Mittel |\n\n---\n## 7. Besonderheit: Upstream-Image\n\nMarie nutzt `nousresearch/hermes-agent:latest` — das offizielle Hermes-Image, nicht ein custom build. Das bedeutet:\n- Watchtower aktualisiert es automatisch\n- Keine lokale Dockerfile-Anpassung nötig\n- Docker-Socket-Mount funktioniert ohne Image-Änderung", "text_hash": "fd9274119909635fc41ca364a12c56619e73abae793e0b6b091984c39c9786b5"}], "elapsed_s": 0.036}