Полный upstream-разбор — в официальном разделе Messaging / Telegram. Здесь собран контур, который нужен на VPS в первый вечер. Сначала закончите установку Hermes на VPS.
1. Создайте бота
- Откройте @BotFather и отправьте
/newbot. - Имя любое, username должен оканчиваться на
bot. - Сохраните токен вида
123456789:AAH.... Это секрет: кто его знает, тот пишет вашему агенту.
Полезно сразу задать /setdescription, аватар и меню команд. Для старта хватит:
help - Справка
new - Новый разговор
sethome - Сделать этот чат домашним
2. Узнайте числовой id
Hermes пускает людей по числу, не по @username. Напишите @userinfobot и сохраните id. Его спросит мастер настройки.
3. Подключите шлюз
hermes gateway setup
hermes gateway
Выберите Telegram, вставьте токен и allowlist. Сообщение себе в бота — проверка, что канал живой. Если тишина, почти всегда виноват токен, id или то, что вы пишете с другого аккаунта.
Ручной вариант — переменные в ~/.hermes/.env:
TELEGRAM_BOT_TOKEN=123456789:AAH...
TELEGRAM_ALLOWED_USERS=123456789
4. Webhook или polling
По умолчанию шлюз ходит в Telegram сам (long polling). На VPS за NAT это правильный путь: входящие порты не нужны, UFW держит только SSH.
Webhook — наоборот: Telegram стучится на ваш HTTPS. Имеет смысл за своим доменом и nginx, когда не хотите держать исходящий цикл или ставите несколько инстансов. Без валидного сертификата webhook молчит, и это не «сломался Hermes».
Мы в бою почти всегда оставляем polling. Меньше движущихся частей, проще отладка journalctl.
5. Закрепите домашний чат
После первого ответа в боте выполните в этом чате команду вроде /sethome (или скажите агенту «сделай этот чат домашним»). Cron, дайджесты и алерты должны знать, куда писать. Иначе отчёт уедет в последний активный диалог или никуда.
Проверка: попросите отложенную задачу на две минуты и не пишите боту. Сообщение должно прийти само. Если нет — смотрите home channel в конфиге, не токен.
6. Группы и privacy mode
По умолчанию бот в группе видит только команды, ответы себе и служебные сообщения. Чтобы он слышал обычный чат, в BotFather выключите Group Privacy или сделайте бота админом. После смены privacy бота нужно выгнать из группы и добавить снова — Telegram кэширует режим на момент вступления.
Если нужно только наблюдать болтовню и отвечать по упоминанию, в конфиге включают require_mention и явный список чатов. Не открывайте бота всему интернету «на посмотреть».
7. Сделайте его службой
Процесс hermes gateway в SSH умрёт на logout. На сервере:
hermes gateway install
hermes gateway start
sudo loginctl enable-linger "$USER"
Либо sudo hermes gateway install --system. Критерий готовности — ответ бота после reboot без повторного логина. Короткий разбор — в статье Hermes в Telegram.