Перейти к содержимому

Деплои

Деплой (deployment) — это конкретная версия вашего приложения, развёрнутая на ONREZA. Каждый деплой имеет уникальный URL и может быть в одном из нескольких статусов.

Деплой из основной ветки (обычно main или master). Доступен по production URL проекта.

  • Только один активный production деплой в любой момент
  • Новый деплой автоматически заменяет предыдущий
  • Доступен по production alias: project-workspace.onreza.app

Деплой из любой другой ветки или merge request. Используется для тестирования изменений.

  • Каждая ветка может иметь активный preview деплой
  • Уникальный URL для каждого деплоя
  • Идеально для code review
PENDING → QUEUED → BUILDING → UPLOADING / INGESTING → SMOKE_TESTING → LIVE
↓ ↓ ↓
FAILED FAILED FAILED
Статус Описание
Pending Деплой создан, ожидает обработки
Queued В очереди на сборку
Building Builder собирает приложение
Uploading Загрузка артефакта в хранилище (CLI deploy flow)
Ingesting Платформа проверяет и распаковывает загруженный артефакт
Smoke Testing Проверка готовности перед переключением трафика
Live Деплой активен и обслуживает трафик
Stopped Остановлен (заменён новым или вручную)
Failed Ошибка на одном из этапов
Cancelled Отменён пользователем
Skipped Build пропущен по Ignored Build Step
  • Live — успешный деплой
  • Stopped — остановлен
  • Failed — ошибка
  • Cancelled — отменён
  • Skipped — пропущен

Каждый деплой получает уникальный URL:

Уникальный для каждого деплоя, не меняется:

myproject-abc123-workspace.onreza.app

Для production деплоев, указывает на текущий активный:

myproject-workspace.onreza.app

Для preview деплоев, указывает на последний деплой ветки:

myproject-git-feature-branch-workspace.onreza.app

При настроенном webhook каждый git push создаёт новый деплой:

  1. Git провайдер отправляет webhook
  2. ONREZA проверяет подлинность
  3. Создаётся деплой для соответствующей ветки

Настройка webhooks

Нажмите Deploy на странице проекта для создания деплоя из текущего состояния ветки:

  1. Перейдите в проект
  2. Нажмите кнопку Deploy
  3. Выберите ветку (опционально)
  4. Дождитесь завершения деплоя
Окно терминала
nrz deploy

Команда nrz deploy валидирует build output и загружает артефакты на платформу.

При большом количестве деплоев они ставятся в очередь:

  • Позиция в очереди видна на странице деплоя
  • Лимит concurrent builds зависит от плана (1 для Hobby, 3 для Pro)
  • Prioritize Production (Pro) — production деплои идут первыми

При возникновении transient ошибок билд автоматически перезапускается (до 3 попыток):

Тип ошибки Примеры Действие
Network errors Connection timeout, DNS failure Автоматический retry
HTTP 502/503/504 Bad Gateway, Service Unavailable, Gateway Timeout Автоматический retry
Build failure Ошибки в коде или зависимостях Нет retry (fail сразу)

Логи доступны через UI в реальном времени:

  1. Перейдите в Project → Deployments
  2. Выберите нужный деплой
  3. Логи отображаются в реальном времени через Server-Sent Events (SSE)

Подробнее о логах

После активации деплоя ONREZA автоматически делает скриншот главной страницы. Скриншот не блокирует деплой — приложение начинает обслуживать трафик сразу. Подробнее →

ONREZA использует blue-green стратегию для Compute деплоев:

  1. Новый деплой запускается и проходит health check до переключения трафика
  2. Если проверка не прошла — деплой отменяется, трафик остаётся на старой версии
  3. После переключения старая версия остаётся горячей для мгновенного отката при сбое

Это обеспечивает zero-downtime deployments с автоматической защитой от сбоев. Подробнее →

Метрика Hobby Pro
Проектов в workspace 20 1 000
Concurrent Builds 1 3
Build Timeout 20 мин 30 мин
Деплоев в день 20 500
Деплоев в час 10 100
Файлов в деплое 20 000 100 000
Макс. размер static-файла 100 MiB 100 MiB
Общий размер деплоя 250 МБ 5 ГБ
Storage workspace’а 1 ГБ 50 ГБ
Env vars/проект 100 300
Общий размер env vars 32 КБ 64 КБ

Большой файл в public/ проверяется по лимиту static-файла. Общий размер деплоя считается по всем файлам после сборки, а storage workspace’а — по деплоям, которые ещё хранятся и не очищены.

Подробнее о лимитах