Нейросеть уверенно пишет код: за пару минут вы получаете сайт, бота или сервис, который запускается на вашем компьютере. Затык начинается там, где AI отделывается одной строкой «осталось задеплоить»: сервер, домен, переменные окружения, HTTPS. Если вы не писали этот код руками, копаться в логах и настройках Linux не хочется — и не нужно. Рассказываем по шагам, как довести сгенерированный код до живой ссылки и не наступить на типичные грабли AI-кода.
Что именно отдаёт нейросеть и чего в этом коде нет
Когда вы просите «напиши мне бота или сайт на Python», модель выдаёт рабочий, но неполный проект. Логика на месте, а дальше начинаются пропуски, которые мешают запуску:
- Единая структура. Код часто разбросан по сообщениям в чате кусками — файл тут, функция там;
- Список зависимостей.
requirements.txtилиpackage.jsonобычно отсутствует, и сервер не знает, что устанавливать; - Секреты в переменных окружения. Модель вставляет ключ прямо в код «для примера»;
- Порт из окружения. Вместо этого стоит жёстко зашитый 3000 или 8000;
- Постоянное хранилище. Если проект что-то сохраняет, надо решить, куда писать данные.
Это нормально: нейросеть решает задачу «написать логику», а не «развернуть продакшен». Всё, что ниже, — ваша часть, и она занимает куда меньше времени, чем кажется.
Шаг 1. Соберите проект в одну папку
Попросите нейросеть собрать всё в один проект с понятной структурой и одной командой запуска: «собери весь код в один проект, добавь список зависимостей и команду старта». Заодно пусть перечислит библиотеки:
fastapi==0.115.0
uvicorn==0.32.0
httpx==0.27.2
Проверьте, что каждый import из файлов попал в список, а версии зафиксированы. Для Node.js вместо этого будет package.json с блоком dependencies и полем scripts.start. Без этого списка платформа не поймёт, какие библиотеки собирать.
Шаг 2. Вынесите ключи и токены из кода
Нейросети обожают вставлять ключи прямо в код «как пример»:
API_KEY = "sk-0123456789..."
client = Client(api_key=API_KEY)
Так делать нельзя: код вы будете показывать, кому-то отдавать или заливать в Git — и ключ утечёт вместе с ним. Правильный вариант — читать значения из переменных окружения:
import os
API_KEY = os.environ["API_KEY"]
client = Client(api_key=API_KEY)
Попросите нейросеть: «вынеси все ключи и токены в переменные окружения и добавь .env в .gitignore». На платформе эти значения задаются отдельно, в разделе секретов, поэтому ни в архиве, ни в репозитории секретов не останется.
Шаг 3. Порт — только из переменной окружения
Это самая частая причина «локально работает, на сервере — нет». Сгенерированный код часто слушает жёстко зашитый порт:
app.run(host="0.0.0.0", port=3000)
Спросите у модели: «сделай так, чтобы порт читался из переменной PORT». Получится примерно так:
import os
PORT = int(os.environ.get("PORT", 8000))
app.run(host="0.0.0.0", port=PORT)
Тогда платформа сама подставит нужный порт, а приложение станет доступно по ссылке — без ручной настройки сети, reverse-proxy и сертификатов.
Шаг 4. Проверьте код перед деплоем
У AI-кода есть повторяющиеся болячки. Пройдитесь по ним вместе с той же нейросетью — фраза «проверь код на проблемы перед деплоем на сервер» заставляет модель честно найти свои же пропуски:
- Зашитые пути. Код читает
./data.jsonили абсолютный путь с вашего компьютера — на сервере таких файлов нет; - Локальная база. SQLite-файл рядом с кодом стирается при каждом деплое: данные нужны в постоянном томе;
- Заглушки. Остались
TODO,passилиfake_data = Trueвместо реального вызова; - Версии библиотек. Голое имя пакета без версии ломает сборку при обновлении зависимостей.
Полезно просто запустить проект в чистом окружении — на другом компьютере или в свежем виртуальном окружении, где нет ваших старых библиотек.
Шаг 5. Загрузите проект и получите ссылку
Дальше — Dockbox. Загрузите проект ZIP-архивом или подключите Git-репозиторий, если нейросеть уже запушила код туда. Язык и тип проекта платформа определит сама — Python, Node.js, Go и другие: выбирать версию и способ сборки вручную не нужно.
- Введите секреты. Панель попросит значения переменных, которые вы вынесли из кода:
API_KEY,BOT_TOKENи так далее; - Дождитесь сборки. Логи видны в реальном времени, а ошибки описаны прямым текстом, а не стек-трейсом;
- Откройте ссылку. Проект поднимается в Docker-контейнере и открывается по HTTPS-адресу. Если процесс упадёт, платформа перезапустит его сама.
Сколько это стоит и как работают контейнеры
Свой VPS, systemd и nginx не нужны: контейнеры работают постоянно, без «засыпания» при простое и без лимита по времени — ссылка отвечает в момент открытия.
Starter — 990 ₽/мес. 1 vCPU, 2 GB RAM, 20 GB SSD, один проект. Первый месяц бесплатный — этого хватает, чтобы довести AI-код до рабочего вида ещё до первого платежа.
Pro — 2 490 ₽/мес. 2 vCPU, 4 GB RAM, до пяти проектов — если проектов несколько или приложению нужен запас на сборку.
Team — 4 990 ₽/мес — для команд, которым нужен запас ресурсов.
Отдельного счёта за сборки и трафик нет, цены — в рублях, тариф действует месяц и сам не списывается. Свой Dockerfile поддерживается, но не обязателен. Актуальные тарифы — на dockbox.host.
Частые вопросы
Можно ли задеплоить код, который написали ChatGPT или Claude?
Да. Платформе всё равно, кто автор — человек или нейросеть. Важно, чтобы проект собирался в одну папку, запускался одной командой, читал порт из переменной окружения и не тащил секреты в файлах.
Код работает локально, а после деплоя — нет. Почему?
Почти всегда две причины: порт зашит в код вместо переменной PORT либо ключи остались внутри файлов и не были заданы в секретах. Третья возможная причина — не хватает зависимости из списка. Смотрите логи сборки: там названо конкретное место.
Нужно ли разбираться в коде, чтобы его задеплоить?
Глубоко — нет. Достаточно собрать проект в одну папку, вынести секреты и порт в переменные окружения. Остальное — сборка, запуск, логи и автоперезапуск — работа платформы.
Безопасно ли загружать сгенерированный код, в котором остались ключи?
Ключи не должны лежать в коде вообще. Вынесите их в переменные окружения — тогда секретов не будет ни в архиве, ни в Git-репозитории, а на платформе они задаются отдельно и хранятся зашифрованными.
Что делать, если сборка упала с ошибкой?
Откройте логи — причина написана прямым текстом. Типичные ошибки: не установилась библиотека из списка зависимостей, не задана переменная окружения или проект не смог запуститься из-за неверной команды старта. Часто проще всего скопировать последнюю строку лога обратно в нейросеть и попросить исправить.