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

Сейчас функция работает на одной тестовой ноде. Остальные ноды подключим позже. Доступна на тарифах Базовый и Pro.
Как включить загрузку из архива: профиль, кнопка на дашборде, настройка бота

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

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

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

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

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

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

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

Упакуйте папку с кодом бота, а не случайный набор файлов с рабочего стола.

Что должно быть внутри

ЯзыкМинимум в архиве
Pythonmain.py (или другой главный файл) и requirements.txt
Node.jsindex.js (или другой главный файл) и package.json
Gomain.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Главный файл относительно корня проекта
languagepython, node или go
python_versionПодсказка для образа, например 3.11
Поле «Главный файл» в мастере перекрывает main из файла, если вы его заполнили.

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

1. Архив

Перетащите файл в зону загрузки или выберите его с диска. Поддерживаются .zip и .tar.gz (в том числе .tgz), максимум 100 МБ. Нажмите «Далее».

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

Шаг 2: название, токен, язык и главный файл
ПолеОбязательноЧто указать
НазваниеДаИмя бота в панели
Токен ботаДаТокен от @BotFather или другой платформы
Язык / шаблонНетАвто — определение по файлам. Или вручную: aiogram, Python, Telegraf, Node.js, Go
Главный файлНетНапример main.py или src/bot.js. Пустое поле — автодетект или bothost.json

3. Деплой

Нажмите «Задеплоить» и не закрывайте страницу, пока архив грузится на сервер. Дальше Bothost:
    • Распаковывает архив.
    • Определяет язык.
    • Генерирует Dockerfile (если своего нет).
    • Собирает Docker-образ.
    • Создаёт контейнер и запускает бота.
Прогресс и лог сборки видны на третьем шаге. После успеха можно перейти на дашборд или загрузить ещё одного бота.

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

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

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

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

Типичные ошибки

«Загрузка из архива доступна только на тарифах Базовый и Pro» Нужен платный тариф. Проверьте оплату на Мои платежи, если тариф не активировался. «Архив слишком большой (максимум 100 МБ)» Уберите node_modules, venv, .git и тяжёлые файлы, затем упакуйте заново. «Поддерживаемые форматы: .zip, .tar.gz» Расширение должно быть .zip, .tar.gz или .tgz. Обычный .rar и .7z не подойдут. «Нода для деплоя из архива недоступна» Тестовая нода временно не принимает загрузки. Подождите или напишите в @bothostru. Бот не стартует после сборки Чаще всего неверный главный файл или нет зависимостей в requirements.txt / package.json. Укажите путь вручную и смотрите справочник ошибок и главный файл. Лимит ботов На Базовом — 5 ботов, на Pro — 20. Если лимит достигнут, мастер покажет предупреждение до загрузки файла.

Что дальше


Проблемы? Напишите в поддержку: @bothostru