Если репозитория нет или код лежит только на компьютере, бота можно задеплоить файлом: упакуйте проект в .zip или .tar.gz и загрузите его через дашборд. Сборка и запуск такие же, как при деплое из Git: Docker-образ, контейнер, логи.
Что понадобится
- Аккаунт 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__
- 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:
- Распаковывает архив.
- Определяет язык.
- Генерирует Dockerfile (если своего нет).
- Собирает Docker-образ.
- Создаёт контейнер и запускает бота.
Прогресс и лог сборки видны на третьем шаге. После успеха можно перейти на дашборд или загрузить ещё одного бота.
Как обновить бота новым архивом
Для бота, который уже создан из файла, на карточке есть кнопка залить новый архив (иконка загрузки файла). Git-кнопка «Обновить» у таких ботов не показывается. При перезаливке сохраняются:
- ID бота, токен, переменные окружения;
- домен и порт;
- данные в /app/data.
Пересобирается только код из нового архива. Бот должен остаться «архивным»: перезалить zip в бота, который создан из Git, нельзя.
Чем это отличается от Git
| Из архива | Из Git |
| Источник кода | Файл .zip / .tar.gz | Репозиторий |
| Автообновление по push | Нет | Есть на платных тарифах |
| Обновление кода | Залить новый архив | «Обновить из Git» или webhook |
| Приватный репозиторий | Не нужен | Отдельная настройка |
| Ноды | Пока одна тестовая | Обычный выбор ноды |
Если проект уже в Git, удобнее создать бота из репозитория.
0 комментариев
Вставка изображения
Оставить комментарий