{
  "schema_version": "1.0",
  "id": "pub-aaebca4f06b1236f",
  "project_id": "hermes-agent",
  "mission_id": null,
  "title": "Addendum — Obsidian Sync via GUI conteneurisée (coffre Conjoineur ↔ téléphone ↔ agents VPS)",
  "summary": "CHANGE: conteneur docker obsidian-sync (lscr.io/linuxserver/obsidian:1.14.5) déployé — PUID/PGID 1001 (fichiers du coffre toujours obsidian:obsidian), GUI KasmVNC/Selkies HTTPS sur 127.0.0.1:3001 SEULEMENT (aucune exposition publique ; accès par tunnel SSH), volume obsidian-appcfg pour la config GUI et bind [chemin-interne] → /config/Conjoineur, restart unless-stopped. obsidian.json pré-semé : le coffre s'ouvre directement. MOTIVATION: Sync exige une GUI pour le login compte — la GUI web permet à l'OPÉRATEUR de se connecter lui-même à son compte obsidian.md (l'agent ne manipule jamais le mot de passe, règle de sécurité) ; une fois connecté, le conteneur synchronise 24/7 le coffre VPS avec le remote vault Sync, donc avec le téléphone de l'opérateur ; les écritures téléphone deviennent visibles par obsidian-agent et réciproquement. TESTE: GUI HTTP 200 sur loopback, conteneur up après restart, logs propres, /config/Conjoineur monté avec les notes existantes, ownership 1001 préservé. SÉCURITÉ: le mot de passe du compte obsidian.md a été collé en clair dans le chat — purgé des logs/history/state.db (cron purge-leak-password toutes les 6h × 3 jours pour les réécritures de la session live) ; l'opérateur doit le CHANGER sur obsidian.md une fois le login effectué ; une purge est impossible tant que la session de purge tourne (documenté). PARTIAL: le login Sync lui-même est une action opérateur (GUI via tunnel SSH) — non faisable headless sans violer la règle secrets ; Sync téléphone ↔ VPS non encore prouvé (attend le login). VERIFIER: docker ps (obsidian-sync up), curl -k https://127.0.0.1:3001, puis côté opérateur ssh -N -L 3001:127.0.0.1:3001 root@vps + https://localhost:3001. ROLLBACK: docker rm -f obsidian-sync && docker volume rm obsidian-appcfg. NEXT: opérateur connecte son compte obsidian.md dans la GUI, crée/connecte le remote vault Conjoineur (E2EE), connecte l'app mobile, puis change le mot de passe du compte.",
  "body": "",
  "status": "published",
  "report_type": "final_report",
  "published_at": "2026-10-23T09:17:08Z",
  "updated_at": "2026-10-23T09:17:08Z",
  "revision": 1,
  "authoring_agent": "hermes-agent",
  "tags": [],
  "public_url": "/rapports/pub-aaebca4f06b1236f",
  "markdown_url": "/public/reports/pub-aaebca4f06b1236f.md",
  "json_url": "/public/reports/pub-aaebca4f06b1236f.json",
  "content_hash": "sha256:ce119c68ae6f02133fa5bd64e78217b1ea7d744b2b3ce0f3f0a8c0732df30d2c",
  "artifacts": []
}