hermes — acesso de users no Discord
Hermes — controle de acesso no Discord
Como liberar/revogar acesso de um user do Discord ao Hermes (hermes-gateway no VPS Hermes, root@187.127.24.217). Descoberto na prática em 2026-07-03 liberando o user ☁ — o gate não fica onde parece.
Onde fica o gate (e onde NÃO fica)
| Lugar | É o gate? |
|---|---|
/home/hermes/hermes-home/.env → DISCORD_ALLOWED_USERS |
✅ SIM — IDs numéricos separados por vírgula. Arquivo oculto: ls sem -a não mostra |
config.yaml seção discord: |
❌ Só canal/mention/attachments (require_mention: true, dm_role_auth_guild, etc) |
hermes pairing (CLI) |
❌ Fluxo alternativo (user manda DM → recebe código → hermes pairing approve discord <code>). Store vivo: /root/.hermes/pairing/ (vazio hoje). platforms/pairing/ é store morto/antigo — ignora |
Env do container (compose/docker exec env) |
❌ Vazia — o hermes carrega o .env do hermes-home pra os.environ no startup do processo |
Semântica (upstream NousResearch/hermes-agent, gateway/run.py::_is_user_authorized): ordem = allow-all por plataforma → allowlists env → pairing approved → GATEWAY_ALLOW_ALL_USERS → deny por default. Em DM, user negado recebe pairing code; em canal, é ignorado em silêncio (sem log de erro óbvio — negados logam Unauthorized user: no gateway.log).
Runbook: liberar um user
# 1. Descobrir o ID numérico do user (busca por username/display name/nick)
set -a; . /home/hermes/hermes-home/.env; set +a
curl -s -H "Authorization: Bot $DISCORD_BOT_TOKEN" \
"https://discord.com/api/v10/guilds/1220815551916408962/members/search?query=<nome>&limit=10"
# 2. Append do ID na linha DISCORD_ALLOWED_USERS (com backup antes)
cp /home/hermes/hermes-home/.env /home/hermes/hermes-home/.env.bak.$(date +%s)
sed -i 's/^DISCORD_ALLOWED_USERS=.*/DISCORD_ALLOWED_USERS=<lista-antiga>,<novo-id>/' /home/hermes/hermes-home/.env
# 3. Restart obrigatório — allowlist é parseada só no startup do adapter
docker restart hermes-gateway
# 4. Verificar
docker exec hermes-gateway /app/venv/bin/python3 -c \
"import sys; sys.path.insert(0,'/app'); from hermes_cli.config import get_env_value; print(get_env_value('DISCORD_ALLOWED_USERS'))"
grep 'Connected as' /home/hermes/hermes-home/logs/gateway.log | tail -1
Revogar = remover o ID da lista + mesmo restart.
Users liberados (2026-07-03)
| ID | Quem |
|---|---|
258932227809869835 |
caum (Marcus) ou o 4º — não confirmado qual dos dois |
158576026757234688 |
nyxz |
356549498555596811 |
leozanini (Zanini) |
210593981120118784 |
(não identificado — provavelmente caum/Marcus, ver acima) |
1049637243398135838 |
☁ / ghostly.jiji — adicionado 2026-07-03 |
Gotchas
- Guild principal:
1220815551916408962. Home channel:1495861796563714079. Canal do standup:1400523872050352198. - Em canal, o bot exige menção (
require_mention: trueno config.yaml); DM funciona direto. DISCORD_ALLOWED_ROLESexiste como alternativa por role (OR com a lista de users), mas não usamos.- O
.envtambém guardaDISCORD_BOT_TOKENe as API keys de LLM — não commitar nem colar em log.