Теперь на Bothost доступен деплой бота из архива

Если репозитория нет или код лежит только на компьютере, бота можно задеплоить файлом: упакуйте проект в .zip или .tar.gz и загрузите его через дашборд. Сборка и запуск такие же, как при деплое из Git: Docker-образ, контейнер, логи.




Что понадобится

  • Аккаунт Bothost с тарифом Базовый или Pro.
  • Токен бота (для Telegram — у @BotFather).
  • Архив с кодом: .zip, .tar.gz или .tgz, не больше 100 МБ.
  • GitHub, GitLab и webhook для этой схемы не нужны.

Шаг 1. Включить опцию в профиле

Кнопка на дашборде скрыта, пока её не включите.
  1. Откройте профиль.
  2. В блоке «Интерфейс» включите «Загрузка бота из архива».
  3. Сохраните настройки.
На тарифе переключатель можно включить, но мастер загрузки отправит на страницу тарифов.

Шаг 2. Кнопка на дашборде

После включения на странице «Мои боты» появляется фиолетовая кнопка «Загрузить из архива» рядом с «Добавить бота».Нажмите её — откроется мастер из трёх шагов: Архив → Настройка → Деплой.

Шаг 3. Подготовить архив

Упакуйте папку с кодом бота, а не случайный набор файлов с рабочего стола.
Что должно быть внутри
Язык Минимум в архиве
Python main.py (или другой главный файл) и requirements.txt
Node.js index.js (или другой главный файл) и package.json
Go main.go и go.mod
Если код лежит во вложенной папке (my-bot/main.py), либо укажите путь в поле «Главный файл», либо положите в корень архива файл bothost.json (см. ниже). Если в архиве одна корневая папка, Bothost поднимет её содержимое наверх автоматически. Несколько папок в корне не схлопываются.
Что не класть в архив
Эти каталоги только раздувают файл и мешают сборке:
  • venv, .venv, __pycache__
  • node_modules
  • .git
  • .idea, .vscode
  • большие датасеты, видео, дампы БД
Зависимости ставятся на сервере из requirements.txt / package.json / go.mod.
Опционально: bothost.json
В корне проекта можно положить bothost.json, чтобы явно задать точку входа и язык:
{ "main": "src/bot.py", "language": "python", "python_version": "3.11" } 
Поле Назначение
main Главный файл относительно корня проекта
language python, node или go
python_version Подсказка для образа, например 3.11
Поле «Главный файл» в мастере перекрывает main из файла, если вы его заполнили.

Шаг 4. Мастер загрузки

1. Архив
Перетащите файл в зону загрузки или выберите его с диска. Поддерживаются .zip и .tar.gz (в том числе .tgz), максимум 100 МБ. Нажмите «Далее».
2. Настройка бота
Поле Обязательно Что указать
Название Да Имя бота в панели
Токен бота Да Токен от @BotFather или другой платформы
Язык / шаблон Нет Авто — определение по файлам. Или вручную: aiogram, Python, Telegraf, Node.js, Go
Главный файл Нет Например main.py или src/bot.js. Пустое поле — автодетект или bothost.json
3. Деплой
Нажмите «Задеплоить» и не закрывайте страницу, пока архив грузится на сервер. Дальше Bothost:
  1. Распаковывает архив.
  2. Определяет язык.
  3. Генерирует Dockerfile (если своего нет).
  4. Собирает Docker-образ.
  5. Создаёт контейнер и запускает бота.
Прогресс и лог сборки видны на третьем шаге. После успеха можно перейти на дашборд или загрузить ещё одного бота.

Как обновить бота новым архивом

Для бота, который уже создан из файла, на карточке есть кнопка залить новый архив (иконка загрузки файла). Git-кнопка «Обновить» у таких ботов не показывается. При перезаливке сохраняются:
  • ID бота, токен, переменные окружения;
  • домен и порт;
  • данные в /app/data.
Пересобирается только код из нового архива. Бот должен остаться «архивным»: перезалить zip в бота, который создан из Git, нельзя.

Чем это отличается от Git

Из архива Из Git
Источник кода Файл .zip / .tar.gz Репозиторий
Автообновление по push Нет Есть на платных тарифах
Обновление кода Залить новый архив «Обновить из Git» или webhook
Приватный репозиторий Не нужен Отдельная настройка
Ноды Пока одна тестовая Обычный выбор ноды
Если проект уже в Git, удобнее создать бота из репозитория.
Выделенные серверы OVH
Выделенные серверы Hetzner

0 комментариев

Оставить комментарий