При деплое Bothost нужно знать, какой файл запускать. Если оставить поле пустым, система подберёт его автоматически. Если имя файла нестандартное или код лежит во вложенной папке — укажите путь вручную.
Когда указывать вручную
Заполните поле «Главный файл (точка входа)», если:
файл называется не main.py / bot.py / index.js и т.п. (например userbot.py, start_bot.py);
код бота лежит во вложенной папке, а не в корне репозитория (bot/main.py, discord-html-watcher/index.js);
автодетект выбирает не тот файл (в репозитории несколько кандидатов);
после деплоя в логах Cannot find module '/app/index.js' или аналог для Python/Go.
Если проект простой и главный файл лежит в корне под стандартным именем — поле можно не трогать.
Где найти настройку
В форме создания или редактирования бота откройте блок «Дополнительные настройки». Поле «Главный файл (точка входа)» находится между опциями домена и Dockerfile:
Как указать в Bothost
Откройте форму создания бота или настройки существующего.
Раскройте блок «Дополнительные настройки».
В поле «Главный файл (точка входа)» укажите путь от корня репозитория.
Сохраните и выполните новый деплой (одного рестарта может быть недостаточно).
Примеры значений:
Ситуация
Что указать
Python-бот в корне
main.py, bot.py, userbot.py
Node.js в корне
index.js, bot.js, server.js
Код во вложенной папке
discord-html-watcher/index.js, bot/main.py
Go
main.go (или путь к нужному .go, если структура нестандартная)
Как работает автоопределение
Если поле пустое, Bothost ищет файл по приоритету (сначала в корне, затем по найденным файлам проекта):
Python:main.py → app.py → bot.py → server.py → index.py → run.pyNode.js:index.js → main.js → app.js → bot.js → server.js → start.js
(также учитываются package.json → main / scripts.start)
Go:main.go → bot.go → app.go → server.go
Типичная ошибка: nested-репозиторий
repo/
├── package.json ← "start": "node index.js"
└── my-bot/
└── index.js ← реальный код здесь
Контейнер стартует node index.js из /app, файла в корне нет → Cannot find module '/app/index.js'.
Быстрый фикс: в поле главного файла указать my-bot/index.js и задеплоить заново.
Подробный разбор и альтернативы (правка package.json, перенос кода в корень): Справочник ошибок при деплое.
Связь с кастомным Dockerfile
Если включён «Использовать собственный Dockerfile», команду запуска задаёт ваш CMD / ENTRYPOINT в Dockerfile. Поле «Главный файл» влияет на автогенерацию Dockerfile; при своём Dockerfile ориентируйтесь на CMD в репозитории.
См. также: Кастомный Dockerfile.
Чеклист
Путь указан от корня Git, без ведущего / (правильно: bot/main.py, неправильно: /app/bot/main.py).
Файл реально есть в выбранной ветке репозитория.
После смены точки входа выполнен новый деплой.
Если ошибка про dist/ / build/ — это другой кейс (bind mount /app), смотрите справочник ошибок.