NetrunНа главную

Код от нейросети

Куда выложить проект из v0, если не на Vercel

· 5 мин чтения

Коротко

Проект из v0 не привязан к Vercel: это обычное приложение на React и Next.js, которое запускается на любом хостинге. Перед переносом нужно понять, статический у вас сайт или серверное приложение, убрать куски, завязанные на возможности исходной площадки (её функции и хранилище), и вынести ключи из кода в секреты. Дальше папка с кодом загружается архивом или из GitHub — Netrun сам соберёт проект и выдаст ссылку с HTTPS, а баланс пополняется российской картой, через СБП или криптовалютой.

v0 делает ровно то, для чего создан: по описанию собирает интерфейс и отдаёт готовый код на React и Next.js. А дальше по умолчанию предлагается один путь публикации — на Vercel, площадку, которая этот генератор и сделала. Причин выложить проект из v0 не на Vercel обычно три: не подходит способ оплаты, хочется держать сайт рядом с остальными своими проектами или просто не хочется заводить ещё один аккаунт ради одной страницы.

Хорошая новость в том, что сам код к площадке не привязан. Обычно перенос спотыкается о три вещи: приложение слушает не тот порт, в проекте остались куски, которые работают только на исходной площадке, и ключи лежат прямо в файлах. Обычно всё это разбирают вручную на арендованном сервере вместе с nginx и сертификатом. В Netrun вы загружаете папку с кодом архивом или подключаете репозиторий на GitHub, а сборку, запуск и HTTPS платформа берёт на себя. Ниже — что проверить в проекте перед публикацией.

  1. Заберите код из v0 в обычную папку#

    Из v0 код, как правило, забирают в свой проект — копированием файлов или командой из интерфейса. Соберите всё в одну папку так, чтобы рядом лежали package.json, исходники и файл настроек Next.js. С этого момента перед вами не «проект из v0», а обычное Next.js-приложение, и относиться к нему можно как к любому другому. Папки node_modules и .next в архив класть не нужно: зависимости платформа поставит сама.

  2. Определите, статика у вас или серверное приложение#

    Next.js бывает двумя разными вещами, и от этого зависит вся публикация. Если на страницах нет ничего серверного — только вёрстка, стили и переходы, — сайт собирается в набор готовых файлов: в настройках Next.js включается статический экспорт (output: 'export'), и Netrun отдаёт результат как обычный статический сайт. Если же есть обработчики запросов, вход по паролю или данные подгружаются на сервере, оставьте обычный режим запуска через next start — это серверное приложение.

  3. Дайте приложению взять порт из окружения#

    Серверное приложение должно слушать тот порт, который выдаёт платформа, а не прописанный числом в коде или в команде запуска. Next.js по умолчанию читает порт из переменной окружения PORT, поэтому чаще всего трогать ничего не нужно: достаточно убрать из скрипта start жёсткое значение вроде -p 3000, если оно там появилось. Захардкоженный порт — причина номер один, по которой сборка проходит, а ссылка открывается пустой.

  4. Замените то, что работает только на исходной площадке#

    Кроме самого Next.js, у площадки есть собственные возможности: серверные функции, хранилище, база данных, загрузка файлов, обработчики, которые запускаются на краю сети рядом с пользователем. Это части площадки, а не фреймворка, и в другом месте они сами по себе не заработают — тут честно: такие куски придётся переписать обычным серверным кодом. Обращения к чужому хранилищу меняются на базу данных рядом с приложением или на постоянную папку проекта /data, а платформенные функции — на обычные обработчики запросов внутри вашего же приложения.

  5. Проверьте шрифты и картинки#

    Шрифты и картинки в Next.js обрабатываются во время сборки, а не в браузере. Если шрифты подключены средствами Next.js, они скачиваются в момент сборки — это нормально, просто сборка идёт чуть дольше. С картинками две типовые заминки: при статическом экспорте встроенную оптимизацию изображений нужно выключить в настройках, иначе сборка остановится с ошибкой, а если картинки лежат на чужом домене, этот домен придётся разрешить в файле настроек Next.js — иначе вместо изображений будут пустые места.

  6. Вынесите ключи в секреты и опубликуйте#

    Сгенерированный код нередко хранит ключи к ИИ-моделям и внешним сервисам прямо в файлах. Вынесите их в переменные окружения: Netrun спросит значения при настройке проекта и подставит их в зашифрованном виде, в архиве и репозитории они лежать не будут. Помните, что в Next.js всё, названное с префиксом NEXT_PUBLIC_, попадает в браузер и секретом уже не является. Дальше загрузите папку архивом или подключите репозиторий — платформа соберёт проект и выдаст ссылку с HTTPS, а логи сборки видны в кабинете в реальном времени.

Итог: сайт из v0 живёт по обычной ссылке с HTTPS, без Vercel и без аренды сервера. Баланс пополняется российской картой, через СБП или криптовалютой, актуальные цены и лимиты видны в кабинете. На бесплатном тарифе сайт засыпает при простое и просыпается сам, когда кто-то открывает ссылку, — первый заход после паузы чуть медленнее; если нужны работа без пауз и свой домен, подойдёт тариф Pro. Доработали экран в v0 — загрузили новую версию, ссылка осталась прежней. Попробовать Netrun.

Частые вопросы

Обязательно ли выкладывать проект из v0 на Vercel?

Нет. v0 отдаёт обычный код на React и Next.js, который запускается на любом хостинге, умеющем собирать Node.js-проекты. Привязка остаётся только там, где вы использовали собственные возможности площадки — её функции или хранилище; всё остальное переносится как есть.

Сайт из v0 — это статика или серверное приложение?

Зависит от того, что внутри. Если это только страницы, стили и переходы, сайт можно собрать статикой и отдавать готовыми файлами. Если есть обработчики запросов, вход по паролю или данные, которые подгружаются на сервере, это серверное приложение и запускать его нужно обычным способом.

Что делать с серверными функциями и хранилищем площадки?

Их придётся заменить: это возможности конкретной площадки, а не Next.js, и в другом месте они не работают. Функции переписываются обычными обработчиками запросов внутри приложения, а хранилище — базой данных рядом с проектом или постоянной папкой /data, содержимое которой переживает обновление кода.

Почему сайт собрался, но страницы открываются пустыми?

Чаще всего приложение слушает порт, прописанный в коде или в команде запуска, вместо порта из переменной окружения. Вторая частая причина — вызов возможности исходной площадки, которая на новом месте отваливается с ошибкой. И то и другое видно в логах публикации в кабинете.

Как обновить сайт, если я доработал экран в v0?

Заберите обновлённый код в ту же папку и загрузите новую версию в кабинете — либо обновите проект из GitHub, если код лежит там. Публичная ссылка остаётся прежней, менять её не нужно, а секреты и настройки проекта сохраняются.

А React, Vue, Next.js, Nuxt, Svelte или Astro?

Да, все они работают. Загрузите исходный код с package.json — собирать проект у себя и класть готовую сборку в архив не нужно, сборка идёт у нас. Если фреймворк умеет и в готовые страницы, и в серверный режим, подойдут оба варианта: в серверном приложение должно слушать порт из переменной окружения. Одна важная деталь: значения, которые попадают в собранный фронтенд, видны любому посетителю — настоящие ключи держите на стороне сервера.

Чем Netrun отличается от Vercel и Render?

Vercel заточен под фронтенд и serverless-функции — не каждый бэкенд или Telegram-бота на нём запустишь. Render ближе по задаче, но это зарубежный сервис, где нужна зарубежная карта. Netrun запускает любой код — сайт, API или бота — принимает оплату российской картой и через СБП и поддерживает на русском.

Можно ли оплатить российской картой или через СБП?

Да. Пополнить баланс можно российской картой или через СБП — несмотря на то, что цены показаны в долларах. С карты спишется сумма в рублях по курсу на момент оплаты, зарубежная карта и обмен валюты не нужны. Кроме карты и СБП принимаем криптовалюту.

Запустите свой проект

Загрузите код, ответьте на пару вопросов — и получите рабочую ссылку. Есть бесплатный тариф

Попробовать Netrun
Все статьи блога