Главный файл (точка входа)

При деплое 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
Gomain.go (или путь к нужному .go, если структура нестандартная)

Как работает автоопределение

Если поле пустое, Bothost ищет файл по приоритету (сначала в корне, затем по найденным файлам проекта): Python: main.pyapp.pybot.pyserver.pyindex.pyrun.py Node.js: index.jsmain.jsapp.jsbot.jsserver.jsstart.js (также учитываются package.jsonmain / scripts.start) Go: main.gobot.goapp.goserver.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 и задеплоить заново. Пример: в поле указан discord-html-watcher/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), смотрите справочник ошибок.

См. также