Разница между локальной средой и сервером часто ломает SSR-приложения: не те env-переменные, другая версия Node.js, отсутствующие файлы, ошибки доступа к API или базе.

Когда это становится проблемой

На компьютере разработчика страница работает, а после деплоя пользователь видит 500. Без логов кажется, что проблема случайная, но у server-side rendering всегда есть конкретная причина.

Что проверяю в первую очередь

  • Логи Node.js, process manager и веб-сервера
  • Env-переменные и секреты на сервере
  • Версию Node.js, package manager и build-команды
  • Ошибки SSR: доступ к window, cookies, headers, API
  • Права на файлы, кеш и директорию .next

Как исправляю

Я воспроизвожу production-сборку и смотрю серверный stack trace. Затем сравниваю окружение локально и на сервере, чтобы найти расхождение.

  • Исправляю env и production build
  • Убираю клиентский код из SSR-участков
  • Настраиваю process manager, proxy и права
  • Проверяю API, базу и внешние зависимости

Что важно не сломать

Нельзя ориентироваться только на dev-режим. Next.js в dev и production может вести себя по-разному, особенно при SSR и кэше.

Что будет после исправления

  • Страница открывается на сервере без 500
  • Production build воспроизводим
  • Логи показывают реальные ошибки
  • Деплой становится предсказуемым

Что подготовить перед обращением

  • Ссылка на страницу с 500
  • Репозиторий или архив проекта
  • Логи сервера
  • Файл env без раскрытия секретов публично

Вопросы и ответы

Можно ли исправить без полной переделки?

Да, чаще всего это настройка окружения или SSR-ошибка. Полный перенос проекта не нужен.

Сколько времени занимает диагностика?

Если есть stack trace, причина находится быстро. Без логов сначала нужно настроить нормальное логирование.

Нужна похожая задача?

Напишите в Telegram @rabotator_support и коротко опишите проблему. Я посмотрю симптомы, предложу понятный план работ и скажу, какие доступы нужны для безопасного исправления.