Деплой бота из архива на Bothost: как загрузить код без Git

На Bothost появился способ выложить бота без репозитория: если кода в GitHub или GitLab нет — или он вообще лежит только на рабочем компьютере, — проект можно упаковать в архив и загрузить его прямо через дашборд. Сборка и запуск дальше идут по той же схеме, что и при деплое из Git: Docker-образ, контейнер, логи. Разница только в том, откуда платформа берёт исходники.

Это заметно меняет порог входа. Раньше хостинг ботов фактически предполагал, что вы умеете работать с Git: создать репозиторий, запушить код, обновлять его коммитами. Для тех, кто пишет бота на своём компьютере и не хочет разбираться с ветками и удалёнными репозиториями, это было лишним барьером. Теперь достаточно файла.

Что нужно, чтобы загрузить бота из архива

Требований немного, и все они проверяемые:

  • Аккаунт Bothost с тарифом Базовый или Pro. На бесплатном тарифе переключатель включить можно, но мастер загрузки отправит на страницу тарифов.
  • Токен бота. Для Telegram — от @BotFather. Токен понадобится на шаге настройки.
  • Архив с кодом: `.zip`, `.tar.gz` или `.tgz`, размером не больше 100 МБ.
  • GitHub, GitLab и webhook для этой схемы не нужны вообще. Это и есть главная особенность: деплой полностью отвязан от репозитория.

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

Кнопка загрузки не показывается по умолчанию — её нужно активировать. В профиле найдите блок «Интерфейс» и включите пункт «Загрузка бота из архива», затем сохраните настройки. Если у вас тариф ниже Базового, переключатель включится, но при попытке загрузить бота мастер переведёт вас на страницу тарифов.

Шаг 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__`;
  • большие датасеты, видео, дампы баз данных.

Зависимости всё равно ставятся на сервере — по `requirements.txt`, `package.json` или `go.mod`. Поэтому тащить в архив локальное окружение бессмысленно: оно будет только мешать.

Опционально: `bothost.json`. Если хотите явно и однозначно задать точку входа и язык, положите в корень проекта файл такого вида:

{ "main": "src/bot.py", "language": "python", "python_version": "3.11" }

Поля: `main` — главный файл относительно корня проекта; `language` — `python`, `node` или `go`; `python_version` — подсказка для образа (например, `3.11`). Важная деталь: поле «Главный файл» в мастере загрузки перекрывает значение `main` из файла, если вы заполнили его вручную.

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

Мастер проходит в три этапа:

  • Архив. Перетащите файл в зону загрузки или выберите его с диска. Поддерживаются `.zip` и `.tar.gz` (включая `.tgz`), максимум 100 МБ. Дальше — «Далее».
  • Настройка бота. Обязательных полей два: название (как бот будет называться в панели) и токен бота (от @BotFather или другой платформы). Язык и шаблон можно не указывать — платформа определит его сама по файлам, либо выберите вручную (aiogram, Python, Telegraf, Node.js и так далее).
  • Деплой. После подтверждения начинается обычная сборка: платформа собирает контейнер и запускает его, а логи доступны там же, где и у ботов, задеплоенных из Git.

Что это значит на практике

Деплой из архива — это, по сути, ответ на вопрос «а если у меня нет репозитория?». Такой сценарий встречается чаще, чем кажется: бот написан на ноутбуке, живёт в одной папке, обновляется руками — и заводить ради него Git-репозиторий не хочется. Раньше выбор был между «разбираться с Git» и «держать бота на своём компьютере»; теперь есть третий вариант.

Полезно это и в обратной ситуации: когда код есть, но публиковать его в открытый репозиторий нежелательно. Архив не требует, чтобы исходники где-то лежали — можно загрузить проект напрямую, без промежуточного хранения в GitHub или GitLab.

Если бот уже живёт в Git, менять привычную схему смысла нет: обновления коммитами по-прежнему удобнее. Но когда репозитория нет — теперь не нужно его создавать: хватит архива.

Подробности по хостингу ботов и тарифам — на Bothost, а если вашему боту нужен отдельный сервер под собственные задачи (боты, парсеры, базы), посмотрите каталог VPS: там видно, сколько стоят подходящие конфигурации у разных провайдеров.

Материал подготовлен редакцией ServerScan по публикации Hosting Kitchen от 20 сентября 2026. Цены и тарифы — из каталога ServerScan.