Скрипт для автоматической установки и обновления 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) - Щадящий режим сборки для маломощных серверов (по умолчанию:
N) - Количество потоков компиляции (
autoили число; в щадящем режиме по умолчанию1) 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
- Пересборка бинарника
- Создание резервной копии предыдущего бинарника
- Перезапуск службы
Если сервер «подвисает» во время компиляции, включите щадящий режим сборки при запуске скрипта:
- сборка выполняется с пониженным приоритетом CPU/IO (
nice+ionice); - по умолчанию используется
1поток компиляции; - при необходимости можно вручную задать число потоков (или
auto).
Параметры сохраняются в config.conf:
LOW_POWER_BUILD=yes|noBUILD_JOBS=auto|<число>
- Основной лог:
/opt/telegram-bot-api/logs/telegram-bot-api.log - Лог установки:
/opt/telegram-bot-api/logs/install.log - Управление логами автоматизировано через logrotate
MIT © 2025 – vivernet