Как заменить ZIP бота без нового проекта и повторной оплаты
Обновление кода в существующем проекте Deployka: ZIP, ENV, entrypoint, постоянные данные и проверка результата.
Обновляйте существующий проект
Если вы исправили код бота, новый проект и повторная покупка тарифа не нужны. Откройте нужный контейнерный проект в разделе «Проекты» и используйте «Загрузить новый ZIP» / Replace ZIP. Не удаляйте оплаченный проект ради обновления исходников.
Подготовьте архив
- Добавьте исходники и файл зависимостей: например,
requirements.txtдля Python илиpackage.jsonи lockfile для Node.js. - Укажите существующий файл запуска. Пример Python:
worker: python main.pyвProcfile. Если файл называется иначе, измените команду. - Не включайте
.env, BOT_TOKEN, API-ключи,node_modulesи локальное виртуальное окружение. - Не включайте рабочую SQLite-базу в архив исходников. Проверьте её постоянный путь и backup отдельно.
Замените код
- Откройте текущий проект и убедитесь, что это нужный бот.
- Проверьте ENV и entrypoint. Новые обязательные ENV добавьте в редакторе проекта, а не в публичном ZIP.
- Выберите Replace ZIP, загрузите архив и проверьте результат проверки исходников.
- Следите за задачей развёртывания и Logs. При ошибке исправьте названную причину в этом же проекте и повторите запуск.
Обновление исходников сохраняет привязку тарифа, настройки проекта и постоянный /data. Файлы вне постоянного volume не считаются сохранёнными. Обновление может прерывать работу бота; zero-downtime для замены ZIP не обещается.
Как проверить, что обновление сработало
Проверьте не только надпись running: отправьте боту тестовое сообщение, выполните изменённую команду и прочитайте ранее сохранённую запись. В логах не должно быть повторяющегося traceback или постоянных перезапусков.
Если кнопка недоступна или задача зависла
Не создавайте второй платный проект. Откройте поддержку, укажите имя проекта, время попытки и текст ошибки без секретов. У активной задачи сначала проверьте её состояние: параллельная замена ZIP может быть временно недоступна.
При Unauthorized проверьте BOT_TOKEN. При ModuleNotFoundError добавьте пакет в зависимости. При конфликте polling/webhook проверьте режим Telegram-бота и другие запущенные экземпляры. Покупка Nano сама по себе эти ошибки кода не исправляет.
Сохранение SQLite в /data · Подготовка проекта из ChatGPT · Открыть проекты · Поддержка