Блог

Уроки, руководства и новости продукта.

Разработчикам

Перенос приложения Next.js с Vercel на свой сервер

2 ноября 2026 5 мин. чтения
Поделиться записью

Чтобы перенести приложение Next.js с Vercel на свой сервер, подключите тот же репозиторий GitHub к панели Coolify на сервере, скопируйте переменные окружения, замените части, привязанные к Vercel (cron, аналитику, хранилище), проверьте на временном адресе, а A-запись домена переключите в последнюю очередь. Документация Next.js говорит, что на сервере Node.js работают все возможности. Развёртывание на Vercel остаётся в работе до переключения, так что путь назад у вас есть.

По сути, это выбор модели оплаты. Документация Vercel объясняет, что инфраструктура оплачивается по объёму переданных данных, числу запросов и длительности вычислений. Сервер стоит фиксированную месячную плату за выбранные вами RAM, CPU и диск. В нашем сравнении показано, как посчитать на своих цифрах.

Что меняется при переезде?

ПараметрVercelВаш сервер
ОплатаПо использованиюФиксированная в месяц, безлимитный трафик, ежедневные бэкапы входят в цену
РасположениеГлобальная сеть доставкиОдин сервер, в Стамбуле
Скачки трафикаПлатформа их поглощает, а счёт растётКогда мощность кончается, сайт замедляется, и вы увеличиваете сервер
СборкиНа машинах платформыНа том же сервере, поэтому сборки определяют нужный объём памяти
ОбслуживаниеЗадача платформыОбновления ОС и пакетов и мониторинг — на вас, как и доступ root
ПредпросмотрыАвтоматически для ветокВключаются отдельно в Coolify
Сетевая безопасностьVercel FirewallБрандмауэром сервера управляете вы

Скажем прямо: сервер один, всемирной граничной доставки нет, а обслуживание становится вашим. Кому это не помешает? Если ваши посетители в основном в Турции и соседних странах, одной площадки достаточно. Если все ваши страницы читают из одной базы данных, ответы ждут эту базу, где бы ни работал код. Панелям, внутренним инструментам и продуктам с предсказуемым трафиком редко нужно автоматическое масштабирование. Если ваша аудитория разбросана по миру, трафик резко скачет или вы не хотите заниматься обслуживанием, Vercel может подойти лучше.

Подготовьте новый сервер

  1. Закажите на странице Next.js VPS. Сервер поставляется с Coolify.
  2. Подключите репозиторий. Короткий путь: откройте проект в Claude Code или Cursor, вставьте строку Вставьте в свой ИИ-инструмент со вкладки Обзор, и инструмент развернёт проект. Можно и сделать это вручную.
  3. Зафиксируйте версию Node через engines.node в package.json.
  4. Выгрузите свои переменные: vercel env pull .env.move --environment=production. Секретные значения нельзя прочитать обратно, поэтому CLI записывает заглушки, а значения вы берёте из их источника. Не кладите файл в репозиторий и введите его содержимое в Environment Variables в Coolify, оставив значения NEXT_PUBLIC_ доступными при сборке.
  5. Поищите код, привязанный к Vercel: grep -n "@vercel/" package.json и grep -rnE "VERCEL_|x-vercel-" app src. Системных переменных вроде VERCEL_URL на вашем сервере нет, так что используйте свои.

Возможности Next.js и части, привязанные к Vercel

КомпонентНа вашем сервереЧто сделать
Оптимизация изображенийРаботает с next start, настройка не нужнаИспользует CPU и память вашего сервера
ISR и кэшированиеРаботают сами на одном экземпляре с локальным дискомНесколько экземпляров должны делить кэш, и он заполняется заново после каждого развёртывания
Middleware (Proxy в Next.js 16)Работает с next start, настройка не нужнаЗапросы теперь обрабатываются в Стамбуле
Задания cronvercel.json не читаетсяВызывайте тот же путь из Scheduled Tasks в Coolify: curl -fsS -H "Authorization: Bearer $CRON_SECRET" http://localhost:3000/api/cron. Cron в Vercel работает по UTC, а Coolify использует часовой пояс сервера
Перенаправления и заголовкиvercel.json не читаетсяПеренесите их в next.config
Web Analytics, Speed InsightsОпираются на маршруты, которые Vercel добавляет к развёртываниюУберите компоненты и используйте инструмент вроде Umami
AI GatewayВызывается с любого сервераЗадайте AI_GATEWAY_API_KEY

Что с Postgres, KV и Blob?

  • Postgres и KV: документация Vercel говорит, что эти продукты закрыты, а старые базы данных переехали к поставщикам из Marketplace, так что ваши данные лежат у отдельного поставщика за переменной окружения. Перенесите её, и приложение обратится к той же базе. Если оплата идёт через ваш аккаунт Vercel, заберите данные до его закрытия. Удалённая база данных добавляет это расстояние к каждому запросу.
  • Перенос на свой сервер: создайте PostgreSQL в Coolify, экспортируйте командой pg_dump -Fc "OLD-DATABASE-URL" --no-owner --no-privileges -f backup.dump и загрузите архив через Import backup на странице Backups базы данных. Если Redis используется только как кэш, обычно можно начать с пустого.
  • Blob: BLOB_READ_WRITE_TOKEN работает и с другого хоста, поэтому его можно не трогать. Чтобы перенести файлы на свой сервер, измените код и смонтируйте папку через Persistent Storage.

Перенос домена без простоя

  1. Проверьте на адресе HTTPS, который выдаёт Coolify: вход, формы, платежи, изображения и Execute now для cron.
  2. dig NS example.com +short показывает, где лежат ваши записи: на странице Domains Vercel, если там указаны серверы имён Vercel, или у вашего DNS-провайдера.
  3. Снизьте TTL записей корневого домена и www, например до 300 секунд, и подождите, пока пройдёт старый TTL.
  4. Если база данных тоже переезжает, остановите запись и загрузите последнюю копию.
  5. Направьте A-запись на IP-адрес сервера. Записи MX и TXT для почты не трогайте.
  6. Добавьте домен с https на странице Domains в Coolify и нажмите Redeploy. Сертификат выдаётся автоматически.
  7. Оставьте развёртывание на Vercel на несколько дней. Посетители, у которых закэширована старая запись, попадают туда, а при необходимости вы можете вернуть запись обратно.
  8. Когда трафик перейдёт, уберите домен из проекта Vercel, разорвите связь с Git через Disconnect и верните прежний TTL.

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

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

С какого размера начать?

На странице продажи рекомендуется минимум 4 ГБ RAM, 2 vCore и 40 ГБ диска. Небольшой проект собрался на 2 ГБ, а проект с 85 пакетами на 2 ГБ упёрся в нехватку памяти и собрался на 4 ГБ. Вы можете увеличить сервер из панели.

Сколько это будет стоить в месяц?

Такой размер стоит около $6 в месяц (включая НДС), а за пределами Турции вы платите в долларах США. Трафик безлимитный.

Нужно ли переносить домен, купленный у Vercel?

Нет. Документация Vercel считает регистрацию и DNS отдельными вещами. Достаточно изменить A-запись в Vercel, и ваша запись перекроет записи по умолчанию.

Как идут обновления после переезда?

При настроенном вебхуке git push собирает и публикует каждую версию. Если одна из них окажется неудачной, страница Rollback в Coolify вернёт вас к более раннему образу.

Можно ли переехать, не перенося базу данных?

Да, и это порядок с наименьшим риском. Сначала перенесите приложение, а базу данных позже.

Готовое решение на Seturack: Next.js, Coolify.

Комментарии0

Комментариев пока нет

Поделитесь своим мнением первым.

Присоединяйтесь к обсуждению

Пожалуйста, войдите или зарегистрируйтесь, чтобы оставить комментарий.

Не пропускайте новые записи

Получайте наши свежие инструкции, руководства и новости продукта на почту.

Вы подписались на нашу рассылку.