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