Развёртывание Next.js на Lizard

Запустите Next.js на Lizard как Node.js-сервер с next build и next start. Этот путь сохраняет сервер доступным для рендеринга во время запроса, Route Handlers и Server Actions. Если все маршруты можно построить заранее, следуйте статическому экспорту Next.js.

Настройки сборки

ПараметрЗначение
Корень проектаДиректория, содержащая package.json и конфигурацию Next.js
Скрипт сборкиnext build
Скрипт запускаnext start --hostname 0.0.0.0 --port 3000
Результат сборки.next/
Порт сервиса3000
Среда выполненияNode.js

Подготовка приложения

Сохраните next, react и react-dom в зависимостях и закоммитьте lockfile. Добавьте эти скрипты в package.json:

{
  "scripts": {
    "dev": "next dev",
    "build": "next build",
    "start": "next start --hostname 0.0.0.0 --port 3000"
  }
}

Используйте стандартный вывод Next.js для данного руководства. output: 'export' требует статический сервер, а output: 'standalone' нуждается в собственном запуске server.js и структуре ассетов. Ни один из них не использует этот рецепт next start без изменений.

Выберите поддерживаемую основную версию Node в .nvmrc, например 22. Исключите .next/, node_modules/ и .env* из загружаемых исходников; при необходимости сохраните пример файла окружения без секретов.

Локальная проверка продакшн-сборки

npm ci
npm run build
npm run start

В другом терминале откройте http://localhost:3000 и проверьте внутренний маршрут. Если в приложении есть API или Server Действие, проверьте и их. Прохождение проверки сервера разработки не доказывает работоспособность продакшн-сборки.

Развёртывание

После установки Lizard CLI и входа выполните из директории приложения:

lizard init --name nextjs-app
lizard add --service web
lizard up --service web --port 3000
lizard logs --build --service web --json
lizard logs --service web --json
lizard ps --json

Lizard обнаруживает зависимость next и запускает скрипты сборки и запуска. Эти команды подразумевают, что у сервиса нет существующих переопределений сборки или запуска. Используйте URL из вывода деплоя для повторной проверки, как локально.

Переменные окружения и данные

Значения NEXT_PUBLIC_* становятся частью браузерного бандла во время сборки. Держите учётные данные в переменных только для сервера и настройте их для сервиса через переменные и секреты. Код, который получает данные во время сборки, также должен иметь доступ к этим данным на этапе сборки. Перезапуск в runtime не изменяет уже сгенерированный HTML или JavaScript.

Локальные файлы кэша и загруженные файлы не образуют общее хранилище между репликами. Проверьте требования Next.js к кэшу и Server Actions перед масштабированием свыше одной реплики. Храните долгие данные приложения в базе данных или объектном хранилище, и ознакомьтесь с хранилищем и восстановлением.

Устранение неполадок

СимптомПроверка
Missing script: startДобавьте продакшн-скрипт запуска выше; next dev предназначен для локальной разработки.
Приложение никогда не становится здоровымСопоставьте --port 3000 со скриптом запуска и привяжитесь к 0.0.0.0.
Публичный URL API всё ещё имеет старое значениеПересоберите с новым значением NEXT_PUBLIC_*.
Сборка не может подключиться к базе данныхПроверьте, не обращается ли какой-то маршрут к данным во время сборки, и доступна ли эта зависимость на этом этапе.
Статический экспорт завершается с ошибкой под next startСледуйте отдельному руководству по статическому экспорту.

Руководство Next.js по самостоятельному хостингу охватывает поведение кэша на уровне фреймворка, изображений и работы с несколькими инстансами. При ошибках деплоя см. сервис никогда не становится работоспособным.

См. проверенные версии и результаты в облаке для проверок деплоя от 9 сентября 2026 года и их ограничений.