docs(hermes-nabil): runbook deploiement VPS Contabo

This commit is contained in:
bolbol 2026-07-18 05:49:57 +00:00
parent a65b56d05d
commit 5835fe6df0
1 changed files with 59 additions and 0 deletions

View File

@ -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.