# 2026-05-10 — Hermes Agent sur storage-01

## Contexte

Mise en place de Hermes Agent en service systemd sur storage-01, pointant sur LM Studio
(gpu-01 `192.168.10.20:1234`). Données persistantes sur le RAID5.

---

## Rôle `hermes_agent` (nouveau)

Structure créée :
```
roles/hermes_agent/
├── defaults/main.yml          → variables : user, home, data_dir, LLM endpoint, model
├── handlers/main.yml          → Reload systemd + Restart hermes-agent
├── tasks/main.yml             → installation, config, service
└── templates/
    ├── hermes-agent.service.j2
    └── config.yaml.j2
```

### Ce que fait le rôle

1. **Dépendances** : `curl`, `git`, `tar` via dnf
2. **Utilisateur** : `hermes` avec home `/opt/hermes` (SSD OS, petit)
3. **HERMES_HOME** : `/srv/data/hermes` (RAID5) — données agent sur le stockage durable
4. **Installation** : `curl | bash` idempotent via `stat` sur le binaire (`/opt/hermes/.local/bin/hermes`)
5. **Config** : `config.yaml` déployé dans `HERMES_HOME` (template Jinja2)
6. **Service** : `hermes-agent.service` — `User=hermes`, `ExecStart=hermes gateway`
7. **Firewall** : port `8080/tcp` via firewalld (conditionnel si firewalld actif)

### Variables clés

| Variable | Valeur par défaut |
|---|---|
| `hermes_data_dir` | `/srv/data/hermes` (overridé dans host_vars) |
| `hermes_lm_base_url` | `http://192.168.10.20:1234/v1` |
| `hermes_model` | `google/gemma-4-e4b-it` |
| `hermes_context_length` | `16384` |
| `hermes_gateway_port` | `8080` |

---

## Documentation

- `admin/hermes.md` — commandes admin, config, validation API, réinstallation
- `admin/README.md` — entrée ajoutée pour hermes.md

---

## Prochaines étapes

- [ ] Appliquer : `ansible-playbook -i inventory.yml playbooks/storage-01.yml --tags hermes_agent`
- [ ] Vérifier que `hermes gateway` démarre sans erreur et écoute sur 8080
- [ ] Ajuster `config.yaml.j2` si le format réel diffère (clé `llm.base_url` vs autre)
- [ ] Route statique Freebox (192.168.10.0/24 → 192.168.1.200)
- [ ] Premier commit GitHub (repo privé)
- [ ] Stubs postgresql, qdrant, minio
