Skip to content

Установка через Docker Compose

Это руководство описывает процесс установки и настройки TG Support Bot на виртуальном частном сервере (VPS) с использованием Docker Compose.

Видеоинструкции

Предварительные требования

Перед началом убедитесь, что выполнены следующие условия:

  • Есть VPS-сервер и зарегистрированный домен.
  • На сервере установлены Docker и Docker Compose.
  • Есть доступ к серверу по SSH.

Шаги установки и настройки

1. Регистрация VPS

Зарегистрируйте VPS-сервер на базе Ubuntu с предустановленным Docker Compose. Рекомендуемый объём оперативной памяти — не менее 1 ГБ.

Для хостинга можно использовать, например, Beget.

2. Настройка DNS

  • Зарегистрируйте доменное имя.
  • Направьте DNS-записи домена на IP-адрес вашего сервера.

TIP

Обновление DNS-записей обычно занимает 15–20 минут.

3. Создание Telegram-бота и группы

  1. Откройте @BotFather и создайте нового бота командой /newbot.
  2. Задайте имя и имя пользователя (username) для бота.
  3. Скопируйте и сохраните полученный токен.
  4. Создайте новую приватную Telegram-группу.
  5. Добавьте бота в группу и назначьте его администратором.
  6. В настройках группы включите возможность создавать темы.
  7. Чтобы узнать ID группы, временно добавьте бота @getMyId или аналогичный. После получения ID удалите его из группы.

4. Подготовка окружения на сервере

Клонирование репозитория

Подключитесь к серверу по SSH и перейдите в директорию /home:

bash
cd /home/

Создайте каталог для проекта и перейдите в него:

bash
mkdir yourdomain.com && cd yourdomain.com

Клонируйте репозиторий. Точка в конце команды помещает файлы непосредственно в текущую директорию, без создания вложенной папки:

bash
git clone https://github.com/prog-time/tg-support-bot.git .

Создание файла .env

Скопируйте шаблон конфигурации:

bash
cp .env.example .env

Откройте файл для редактирования и замените значения переменных на реальные данные — токен бота, секретный ключ, параметры базы данных:

bash
nano .env

5. Запуск проекта

Убедитесь, что в файле .env указан параметр MAIN_DOMAIN — доменное имя, которое будет использоваться ботом и всеми его сервисами.

Запустите скрипт начальной настройки из корневой директории проекта:

bash
./start.sh

Возникли проблемы?

Если при запуске start.sh что-то пошло не так, загляните в раздел «Типичные ошибки» или задайте вопрос в Telegram-сообществе — t.me/pt_tg_support.

6. Привязка вебхука Telegram

Для получения сообщений от Telegram необходимо зарегистрировать вебхук. Откройте в браузере следующий URL, подставив свои данные:

https://api.telegram.org/bot{ТОКЕН}/setWebhook?url=https://{ДОМЕН}/api/telegram/bot&max_connections=45&drop_pending_updates=true&secret_token={СЕКРЕТНЫЙ_КЛЮЧ}

Замените:

  • {ТОКЕН} — токен бота из @BotFather;
  • {ДОМЕН} — ваше доменное имя;
  • {СЕКРЕТНЫЙ_КЛЮЧ} — значение параметра secret_token из файла .env.

При успешной привязке Telegram API вернёт ответ:

json
{
    "ok": true,
    "result": true,
    "description": "Webhook was set"
}

7. Проверка работоспособности

  1. Откройте браузер и перейдите на ваш домен.
  2. Убедитесь, что страница открывается без ошибок и по протоколу HTTPS.
  3. Отправьте тестовое сообщение боту и проверьте, что уведомление появилось в Telegram-группе.

Поздравляем

Бот успешно установлен и готов к работе. При необходимости вы можете подключить дополнительные каналы — ВКонтакте, внешние API и другие сервисы.

Выпущено под лицензией MIT.