Этот репозиторий содержит Telegram-бота и вспомогательные скрипты для автоматического деплоя на сервере с Ubuntu.
bot.py— основной код Telegram-бота.requirements.txt— список зависимостей Python.scripts/autodeploy.sh— сценарий, который устанавливает зависимости, мигрирует данные и перезапускает сервис бота.scripts/gipsrbot-bot.service— unit-файл systemd для постоянной работы бота.deploy/cloud-config.yaml— пример конфигурации cloud-init для автоматической настройки сервера.- Все данные бота (
orders.json,prices.json, логи и т.д.) автоматически перемещаются в/root/gipsr_bot/data.
Если вы разворачиваете новую виртуальную машину, используйте deploy/cloud-config.yaml в качестве user-data. Конфигурация:
- Устанавливает Python, pip и systemd.
- Включает systemd-путь
gipsrbot-autodeploy.path, который следит за изменениями файлов бота. - При любом изменении
.env,bot.py,requirements.txtили сценариев вscripts/запускаетscripts/autodeploy.sh.
- Сформируйте архив/папку с содержимым репозитория и загрузите его на сервер в
/root/gipsr_bot(замена существующих файлов). - Убедитесь, что рядом лежит
.envсо следующими переменными:TELEGRAM_BOT_TOKEN=ваш_токен ADMIN_CHAT_ID=123456789
- После загрузки файлов systemd автоматически выполнит
scripts/autodeploy.sh:- создаст виртуальное окружение
.venv(если его ещё нет); - установит зависимости из
requirements.txt; - перенесёт
orders.json,prices.json,orders.xlsx,user_logs.jsonв/root/gipsr_bot/data/, чтобы бот видел сохранённые данные; - установит unit-файл
gipsrbot-bot.serviceи перезапустит Telegram-бота.
- создаст виртуальное окружение
- Логи автодеплоя можно смотреть через
journalctl -u gipsrbot-autodeploy.service, а логи бота — в/root/gipsr_bot/logs/bot.log.
После этого бот должен автоматически перезапуститься с обновлённым кодом.