План по итогам интервью (docs/plan.md), GLOSSARY.md, ADR о двух сервисах и о боте как канале администрирования, docs/ai-log.md, .gitignore для секретов, базы и артефактов.
1.9 KiB
1.9 KiB
Telegram-бот как канал администрирования
Менеджер видит заявки только в Telegram, а на сервере соседствуют чужие боевые сайты, поэтому всё администрирование — настройка тем (/setup), ежедневные бэкапы с копией администратору в личку, восстановление базы — делает процесс api через бота, который читает обновления long polling'ом. Ни cron на хосте, ни входящего webhook'а, ни админки: на сервере меняется только наш каталог и один конфиг nginx.
Considered Options
- Cron на хосте + ручное восстановление по ssh — трогает общий crontab сервера, и восстановление требует доступа по ssh.
- Webhook вместо polling — нужен публичный эндпоинт и секрет, а выигрыша при нашем трафике нет.
- Отдельный скрипт
tg:setupчерезgetUpdates— конфликтует с polling работающего api, заменён командой/setup.
Consequences
- У бота один поток обновлений: никакой другой процесс не должен вызывать
getUpdatesс этим токеном. - Если Telegram недоступен целиком, о сбоях узнаём только из
docker-compose logs api. - Восстановление из копии удаляет заявки, пришедшие после неё; бот перечисляет их в подтверждении и сохраняет текущую базу как
pre-restore.