runbook: rich_messages Telegram flag + Portainer API restart
This commit is contained in:
parent
241afd9c93
commit
5c31160344
|
|
@ -36,3 +36,4 @@
|
||||||
- **Lecture** : tous les dossiers sont lisibles par toutes les instances
|
- **Lecture** : tous les dossiers sont lisibles par toutes les instances
|
||||||
- **Format** : utiliser RUNBOOK-TEMPLATE.md
|
- **Format** : utiliser RUNBOOK-TEMPLATE.md
|
||||||
- **Apres chaque runbook** : poster une note NyoraNotes avec tag [infra, runbook]
|
- **Apres chaque runbook** : poster une note NyoraNotes avec tag [infra, runbook]
|
||||||
|
- [common/rich-messages-telegram.md](common/rich-messages-telegram.md) — Telegram rich_messages flag + restart Portainer API (2026-06-24)
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,97 @@
|
||||||
|
# RUNBOOK — Telegram rich_messages + restart via Portainer API
|
||||||
|
|
||||||
|
**Statut** : Validé 2026-06-24
|
||||||
|
**Scope** : Toutes instances Hermes (tt / nyora / perso / Desktop MacBook)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Symptôme
|
||||||
|
|
||||||
|
Instance Hermes envoie des messages Telegram en texte brut : pas de MD tables, pas de gras, pas d'emoji. Une autre instance fonctionne bien.
|
||||||
|
|
||||||
|
## Cause racine
|
||||||
|
|
||||||
|
Flag `rich_messages: false` dans `config.yaml` de l'instance.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# /opt/data/config.yaml (vue depuis le container)
|
||||||
|
# = /mnt/docker/hermes-platform/<instance>/data/config.yaml (vue depuis le NAS)
|
||||||
|
telegram:
|
||||||
|
extra:
|
||||||
|
rich_messages: false # ← coupable
|
||||||
|
```
|
||||||
|
|
||||||
|
## Fix (30 secondes)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Depuis le NAS ou mcp-nas :
|
||||||
|
sed -i 's/rich_messages: false/rich_messages: true/' \
|
||||||
|
/mnt/docker/hermes-platform/<instance>/data/config.yaml
|
||||||
|
|
||||||
|
# Vérifier :
|
||||||
|
grep rich_messages /mnt/docker/hermes-platform/<instance>/data/config.yaml
|
||||||
|
# → rich_messages: true
|
||||||
|
```
|
||||||
|
|
||||||
|
Puis redémarrer l'agent (voir section ci-dessous).
|
||||||
|
|
||||||
|
## Effet de rich_messages: true
|
||||||
|
|
||||||
|
- Pipe tables MD rendues nativement dans Telegram
|
||||||
|
- Gras, italique, emoji fonctionnels
|
||||||
|
- Messages **texte** (pas d'image/screenshot) → légers, sélectionnables, copiables, modifiables
|
||||||
|
- Méthode `telegram-output` skill : pipe MD direct, sans pipeline HTML → Browser → Screenshot
|
||||||
|
|
||||||
|
## Redémarrer un agent Hermes depuis mcp-nas (sans SSH)
|
||||||
|
|
||||||
|
SSH inaccessible depuis mcp-nas. Pas d'endpoint `/reload` sur l'agent. **Solution : Portainer API.**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 1. Authentification
|
||||||
|
TOKEN=$(curl -s -X POST http://172.17.0.1:9000/api/auth \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-d '{"username":"bestof","password":"<PORTAINER_PASSWORD>"}' \
|
||||||
|
| python3 -c "import sys,json; print(json.load(sys.stdin)['jwt'])")
|
||||||
|
|
||||||
|
# 2. Trouver l'ID du container
|
||||||
|
curl -s -H "Authorization: Bearer $TOKEN" \
|
||||||
|
"http://172.17.0.1:9000/api/endpoints/2/docker/containers/json?all=true" \
|
||||||
|
| python3 -c "
|
||||||
|
import sys, json
|
||||||
|
for c in json.load(sys.stdin):
|
||||||
|
name = c['Names'][0].lstrip('/')
|
||||||
|
if 'hermes' in name:
|
||||||
|
print(c['Id'][:12], name, c['State'])
|
||||||
|
"
|
||||||
|
|
||||||
|
# 3. Restart
|
||||||
|
curl -s -o /dev/null -w "%{http_code}" -X POST \
|
||||||
|
-H "Authorization: Bearer $TOKEN" \
|
||||||
|
"http://172.17.0.1:9000/api/endpoints/2/docker/containers/<ID>/restart"
|
||||||
|
# → 204 = succès
|
||||||
|
|
||||||
|
# 4. Vérifier santé (attendre ~15s)
|
||||||
|
sleep 15 && curl -s http://hermes-agent-<instance>:8642/health
|
||||||
|
# → {"status": "ok", ...}
|
||||||
|
```
|
||||||
|
|
||||||
|
## IDs containers (juin 2026 — peuvent changer après recreate)
|
||||||
|
|
||||||
|
| Container | ID court |
|
||||||
|
|---|---|
|
||||||
|
| hermes-agent-tt | eb44e9c8225f |
|
||||||
|
| hermes-agent-nyora | d5f198348abb |
|
||||||
|
| hermes-agent-perso | 91f7d7cec688 |
|
||||||
|
|
||||||
|
> ⚠️ Les IDs changent après `docker compose up --force-recreate`. Toujours re-lister si le restart renvoie 404/500.
|
||||||
|
|
||||||
|
## Application MacBook Hermes Desktop
|
||||||
|
|
||||||
|
Même mécanique, même `config.yaml`, même flag. **Vérifier `rich_messages: true` en premier** avant tout debug Telegram sur une nouvelle instance.
|
||||||
|
|
||||||
|
Les credentials Portainer sont dans `/volume1/docker/hermes-platform/.env` (NAS) ou l'équivalent local sur le Mac.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Runbook lié** : `common/portainer-api-container-ops.md` (à créer si besoin)
|
||||||
|
**Note NyoraNotes** : vault hermes-perso, tags [infra, runbook, telegram]
|
||||||
Loading…
Reference in New Issue