botxona.yaml — полная схема
botxona.yaml — необязательный файл в корне архива (botxona.yml тоже принимается). Он нужен, чтобы вы сами явно указали то, что система не может определить автоматически. Бот работает и без этого файла — система попытается определить всё автоматически.
Поля
runtime: python # python | node — укажите явно, если язык не определяется автоматически
entry: main.py # файл для запуска (работает вместе с runtime)
start: python -u main.py --prod # полная команда — вместо entry, с дополнительными аргументами
always_on: true # true — бот всегда включён, false — засыпает при неактивности
| Поле | Тип | Описание | ||
|---|---|---|---|---|
runtime | python \ | node \ | go | Полезно, если язык не определяется автоматически (например, есть файлы обоих языков) |
entry | строка | Путь к файлу запуска, например src/main.py (для Go — путь к пакету, например ./cmd/bot) | ||
start | строка | Полная команда запуска — когда нужны аргументы или особый скрипт | ||
always_on | true/false | Сделать бота всегда включённым или, наоборот, разрешить ему засыпать, даже если в нём есть планировщик |
Порядок приоритета
- Если есть
start— используется именно эта команда,entryигнорируется. - Иначе, если есть
entry— этот файл запускается стандартной командой дляruntime(python -u <entry>,node <entry>или, для Go, пакет<entry>собирается в бинарный файл). - Если нет ни того, ни другого — система определяет точку входа автоматически: по
main.py/bot.py/app.py(Python) или по скрипту"start"/ полюmainвpackage.json(Node.js) или, для Go, по пакетуmainв корне (main.go) / единственной папкеcmd/<имя>/. Go-проект определяется поgo.modв корне (или поruntime: go/golang).
Если задан always_on, он определяет начальное значение режима «Авто» в разделе Настройки → Режим работы на странице бота — позже пользователь может изменить его вручную в панели (Сон и пробуждение).
Примеры
Простой Python-бот с нестандартным именем файла:
runtime: python
entry: src/bot.py
Go с пакетом cmd/bot:
runtime: go
entry: ./cmd/bot
Node.js с особой командой запуска:
start: node --experimental-modules src/index.mjs
Бот, который должен быть всегда включён (например, отправляет напоминания об оплате):
always_on: true
Следующий шаг
Подробно о точке входа и библиотеках: 6 правил. О переменных окружения: Переменные окружения.