<span id="deploy-nextjs-on-lizard" />

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

Запустите Next.js на Lizard как Node.js-сервер с `next build` и `next start`. Этот путь сохраняет сервер доступным для рендеринга во время запроса, Route Handlers и Server Actions. Если все маршруты можно построить заранее, следуйте [статическому экспорту Next.js](https://lizard.build/ru/docs/framework-guides/nextjs/static-export).

<span id="build-settings" />

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

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

<span id="prepare-the-app" />

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

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

```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*` из загружаемых исходников; при необходимости сохраните пример файла окружения без секретов.

<span id="test-the-production-build-locally" />

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

```bash
npm ci
npm run build
npm run start
```

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

<span id="deploy" />

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

После [установки Lizard CLI и входа](https://lizard.build/ru/docs/framework-guides#prepare-the-project) выполните из директории приложения:

```bash
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 из вывода деплоя для повторной проверки, как локально.

<span id="environment-variables-and-data" />

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

Значения `NEXT_PUBLIC_*` становятся частью браузерного бандла во время сборки. Держите учётные данные в переменных только для сервера и настройте их для сервиса через [переменные и секреты](https://lizard.build/ru/docs/variables). Код, который получает данные во время сборки, также должен иметь доступ к этим данным на этапе сборки. Перезапуск в runtime не изменяет уже сгенерированный HTML или JavaScript.

Локальные файлы кэша и загруженные файлы не образуют общее хранилище между репликами. Проверьте требования Next.js к кэшу и Server Actions перед масштабированием свыше одной реплики. Храните долгие данные приложения в базе данных или объектном хранилище, и ознакомьтесь с [хранилищем и восстановлением](https://lizard.build/ru/docs/platform/storage-and-recovery).

<span id="troubleshooting" />

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

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

[Руководство Next.js по самостоятельному хостингу](https://nextjs.org/docs/app/guides/self-hosting) охватывает поведение кэша на уровне фреймворка, изображений и работы с несколькими инстансами. При ошибках деплоя см. [сервис никогда не становится работоспособным](https://lizard.build/ru/docs/deploy/troubleshooting/service-never-healthy).

См. [проверенные версии и результаты в облаке](https://lizard.build/ru/docs/framework-guides/validation) для проверок деплоя от 9 сентября 2026 года и их ограничений.
