06.1 · Vérifier Hermes avant d’ajouter la Gateway
Validationhermes chat -q "Réponds uniquement par : HERMES OK"
hermes config checkCe module transforme Hermes en service persistant, active son API OpenAI-compatible et protège l’accès par une clé Bearer. L’objectif est d’obtenir une Gateway stable utilisable plus tard par Open WebUI, Telegram et les autres interfaces, sans publier de secret ni exposer l’API directement sur Internet.
Hermes local fonctionne
Gateway persistante + API protégée
8642
METTRE_VOTRE_IP_LAN_JARVISGÉNÉRÉ_AUTOMATIQUEMENTMETTRE_VOTRE_IP_LAN_JARVIS ou une adresse privée adaptée. N’exposez pas cette API directement sur Internet.hermes chat -q "Réponds uniquement par : HERMES OK"
hermes config checkmkdir -p ~/.hermes
[ -f ~/.hermes/.env ] && cp ~/.hermes/.env ~/.hermes/.env.backup-$(date +%Y%m%d-%H%M%S) || truepython3 - <<'PY'
from pathlib import Path
import secrets
p = Path.home()/'.hermes'/'.env'
p.parent.mkdir(parents=True, exist_ok=True)
lines = p.read_text().splitlines() if p.exists() else []
keys = {'API_SERVER_ENABLED','API_SERVER_PORT','API_SERVER_KEY'}
lines = [x for x in lines if not ('=' in x and x.split('=',1)[0] in keys)]
lines += [
'API_SERVER_ENABLED=true',
'API_SERVER_PORT=8642',
'API_SERVER_KEY=' + secrets.token_hex(32),
]
p.write_text('\n'.join(lines)+'\n')
p.chmod(0o600)
print('Configuration API créée sans afficher le secret.')
PY# MODE A — local uniquement : ne rien ajouter, Hermes garde l'écoute locale par défaut.
# MODE B — LAN/VPN : ajouter l'adresse privée choisie
printf '\nAPI_SERVER_HOST=METTRE_VOTRE_IP_LAN_JARVIS\n' >> ~/.hermes/.envchmod 600 ~/.hermes/.env
stat -c "%a %n" ~/.hermes/.envhermes gateway installsudo loginctl enable-linger "$USER"hermes gateway restarthermes gateway status
systemctl --user status hermes-gateway --no-pagercurl -fsS http://localhost:8642/health | jq .set -a
source ~/.hermes/.env
set +a
curl -fsS http://localhost:8642/v1/models \
-H "Authorization: Bearer $API_SERVER_KEY" | jq .curl -fsS http://localhost:8642/v1/chat/completions \
-H "Authorization: Bearer $API_SERVER_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"hermes-agent","messages":[{"role":"user","content":"Réponds uniquement par API OK"}]}' | jq .ss -lntp | grep ':8642' || truejournalctl --user -u hermes-gateway -n 100 --no-pagerC’est le mode le plus restrictif. Il convient si les clients tournent directement sur Jarvis. Ne définissez pas API_SERVER_HOST et conservez l’écoute locale par défaut.
Utilisez METTRE_VOTRE_IP_LAN_JARVIS uniquement si un client externe, comme Open WebUI ou un poste VPN, doit joindre Hermes. La clé API reste obligatoire.
Ne configurez API_SERVER_CORS_ORIGINS que si un navigateur appelle directement l’API. Utilisez une liste très restrictive avec vos propres origines privées.
Pas d’exposition Internet directe, pas de clé dans une page HTML, pas de clé dans un script public, et pas de double service Gateway user + system.
Ne passez au module suivant que lorsque tous les points applicables sont validés.
Si tous les contrôles sont corrects, ce module est terminé. En cas d’écart, restez sur ce module et diagnostiquez la dernière étape en erreur avant de poursuivre.