Скрипт для автоматической установки и обновления Telegram Bot API Server на серверах с Debian 10+ и совместимыми дистрибутивами Linux.
- Установка всех необходимых зависимостей для сборки
- Создаёт изолированного системного пользователя и группу
- Клонирует официальный репозиторий tdlib/telegram-bot-api
- Компилирует с использованием Clang + libc++
- Интерактивная настройка:
- Директория установки
- Порт для запуска Telegram Bot API
- Имя службы
- Имя системного пользователя
api_idиapi_hash
- Настройка структуры директорий (
bin/,data/,logs/,backup/) - Создание и настройка systemd unit с безопасными ограничениями
- Настройка logrotate для управления логами
- Автоматическая ротация резервных копий (хранение последних 5 бинарников)
- Проверка прав доступа и исправление при необходимости
- Пошаговое логирование установки
- root-доступ (запуск через
sudo) - Поддерживаемая ОС: Debian 10+ (и совместимые дистрибутивы)
wget https://raw.githubusercontent.com/vivernet/install-telegram-bot-api/master/install-telegram-bot-api.sh
chmod +x install-telegram-bot-api.sh
sudo ./install-telegram-bot-api.shСкрипт задаст несколько вопросов:
Каждый из вопросов, кроме ввода
api_idиapi_hash, можно пропустить, нажав Enter, и будет использовано рекомендуемое значение по умолчанию.
- Путь установки (по умолчанию
/opt/telegram-bot-api) - Порт для запуска Telegram Bot API (по умолчанию
8081) - Имя службы (по умолчанию
telegram-bot-api) - Имя системного пользователя (по умолчанию
telegram-bot-api) - Директория для загрузки исходников Telegram Bot API (по умолчанию
/usr/local/src/telegram-bot-api) api_idиapi_hash, можно получить здесь: https://core.telegram.org/api/obtaining_api_id
После установки скрипт создаст и запустит службу.
По умолчанию используется имя службы: telegram-bot-api
Проверка статуса службы:
sudo systemctl status telegram-bot-apiЗапуск службы:
sudo systemctl start telegram-bot-apiВключение автозапуска службы:
sudo systemctl enable telegram-bot-apiПерезапуск службы:
sudo systemctl restart telegram-bot-apiОтключение автозапуска службы:
sudo systemctl disable telegram-bot-apiОстановка службы:
sudo systemctl stop telegram-bot-apiПросмотр логов службы:
journalctl -u telegram-bot-api -fПо умолчанию используется: /opt/telegram-bot-api
/opt/telegram-bot-api
├── bin/ # Бинарник telegram-bot-api
├── data/ # Рабочие данные Telegram Bot API
├── logs/ # Логи
├── backup/ # Резервные копии бинарников
├── .env # api_id и api_hash
└── config.conf # Конфигурация установки
Для обновления до последней версии Telegram Bot API просто запустите скрипт повторно:
sudo ./install-telegram-bot-api.shТак как компиляция бинарника занимает продолжительное время, текущая версия будет продолжать работать во время компиляции. Скрипт остановит службу для замены исполняемого бинарника только после успешной компиляции нового, чтобы минимизировать время простоя.
Процесс обновления:
- Обновление исходников из репозитория Telegram Bot API
- Пересборка бинарника
- Создание резервной копии предыдущего бинарника
- Перезапуск службу
- Основной лог:
/opt/telegram-bot-api/logs/telegram-bot-api.log - Лог установки:
/opt/telegram-bot-api/logs/install.log - Управление логами автоматизировано через logrotate
MIT © 2025 – vivernet