From 5835fe6df0c9e00fec57806ebc6df61d4f852f27 Mon Sep 17 00:00:00 2001 From: bolbol Date: Sat, 18 Jul 2026 05:49:57 +0000 Subject: [PATCH] docs(hermes-nabil): runbook deploiement VPS Contabo --- common/hermes-nabil-vps-deploiement.md | 59 ++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 common/hermes-nabil-vps-deploiement.md diff --git a/common/hermes-nabil-vps-deploiement.md b/common/hermes-nabil-vps-deploiement.md new file mode 100644 index 0000000..02e9a44 --- /dev/null +++ b/common/hermes-nabil-vps-deploiement.md @@ -0,0 +1,59 @@ +# hermes-nabil — deploiement sur VPS Contabo + +Prototype du futur `hermes-desktop` (MacBook M5 Pro). Instance Hermes personnelle de Nabil, +hebergee sur le VPS Contabo (`contabo-vps-qbt`, Tailscale `100.94.90.119`). + +## Acces + +`mcp-vps` -> `ssh vps.internal` (user `claude-oversight`, groupe `docker`, sudo bride). +Projet : `~/hermes-nabil/` — `Dockerfile`, `docker-compose.yml`, `data/` (= `HERMES_HOME`). +Conteneur `hermes-nabil`, `restart: unless-stopped`. + +## Structure + +``` +~/hermes-nabil/ +├── Dockerfile # python:3.11-slim + hermes-agent + libs doc + postinstall (navigateur) +├── docker-compose.yml # image locale, env_file ./data/.env, volume ./data:/data +└── data/ # HERMES_HOME (root dans le conteneur) + ├── config.yaml # modele, cle API OpenCode + ├── .env # SEUL fichier de secrets lu par Hermes + ├── SOUL.md # persona + ├── memories/{USER,MEMORY}.md + ├── skills/ # core, docx, pptx, pdf, xlsx, media, nyora-flyer + └── nyora/ # pipeline images + flyers +``` + +## Cerveau : OpenCode direct (Mimo 2.5) + +`base_url: https://opencode.ai/zen/go/v1`, cle dans **`model.api_key` du config.yaml**. +Piege : passer par `OPENAI_API_KEY` donne un **401**. Envoyer un `User-Agent` sur `/models` +sinon **403 Cloudflare 1010**. + +## Reseau + +Bots Telegram + Discord **sortants uniquement**, Tailscale-only, **aucun port publie**. +Verification demarrage : `docker logs hermes-nabil` puis `/data/logs/gateway.log` +-> `✓ discord connected` / `Gateway running with 2 platform(s)`. +Le WARNING `[Telegram] Connecting to Telegram (attempt 1/8)` sur `docker logs` est normal : +la suite du demarrage n'apparait que dans `/data/logs/gateway.log`. + +## Capacites installees + +- **Recherche web par API** : Tavily + Exa (`TAVILY_API_KEY`, `EXA_API_KEY` dans `data/.env`). +- **Documents** : skills `docx` / `pptx` / `pdf` / `xlsx` (xlsx transcrit d'Anthropic, local) + + `python-docx`, `python-pptx`, `openpyxl`, `XlsxWriter`, `reportlab`, `pypdf`, `pillow`. + Les 4 formats generent reellement. +- **Navigateur / images / flyers** : voir + [hermes-nabil-images-flyers-navigateur.md](common/hermes-nabil-images-flyers-navigateur.md). + +## Regles d'exploitation + +- Operations longues (build, download, postinstall) : **toujours en detache** + (`nohup … > log 2>&1 &` puis polling du log) — le connecteur mcp-vps tombe sinon. +- `data/.env` seul fichier de secrets lu par Hermes ; ne jamais afficher une valeur + (verifier par longueur). Secret expose en clair = rotation immediate. +- Le wrapper mcp interdit `docker rm -f`, `reboot`, `shutdown` : + utiliser `docker compose up -d` et `docker run --rm` pour les tests jetables. +- NAS Synology en arret programme 16:30 -> 01:30 (coupures Sfax) : Gitea et NyoraNotes + sont indisponibles sur ce creneau — decaler la capitalisation.