60 lines
2.8 KiB
Markdown
60 lines
2.8 KiB
Markdown
# 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.
|