Skip to main content

layero deploy

Упаковывает cwd и публикует его как новый деплой проекта.

Базовое использование

cd my-site
layero deploy

Что происходит:

  1. CLI обходит cwd, применяет правила игнорирования (см. ниже), пакует в tar.gz во временной директории и считает sha256 на лету.
  2. Архив заливается в Yandex Object Storage по presigned URL.
  3. Бэкенд создаёт деплой и запускает сборку.
  4. CLI поллит логи деплоя (/deploys/{id}/logs) до статуса ready или failed, выводя их в терминал.
  5. По окончании печатается ссылка на дашборд проекта.

Первый layero deploy в новой папке создаст проект и запишет ./.layero/project.json. Последующие запуски используют тот же проект.

Флаги

ФлагОписание
--prodЗадеплоить в default-ветку (push-эквивалент для git-проектов). Для CLI-проекта без репозитория apex обновляется и без этого флага.
--branch <name>Задеплоить в конкретную ветку (изолированный preview, apex не трогает). Имеет приоритет над --prod.
--type <preset>Пресет фреймворка: vite, next, astro, cra, sveltekit, nuxt, gatsby, static. См. Фреймворки.
--name <name>Имя проекта. Только при первом деплое.
--project <id_or_slug>Деплоить в конкретный проект, игнорируя ./.layero/project.json. Удобно для CI.
--configПрогнать setup из ./.layero/project.json без браузера (CI-friendly).
--yes, -yПропустить подтверждение --prod и интерактивные вопросы.

Куда приземляется деплой

# CLI-проект (без репозитория): публикуется в apex АВТОМАТИЧЕСКИ
# (прямые загрузки авто-промоутятся — отдельный --prod / promote не нужен)
layero deploy
# → https://<org>-<project>.layero.ru (apex — живой публичный адрес)
# + per-deploy preview https://<org>-<project>-cli-<sha>.preview.layero.ru,
# доступен сразу (мимо CDN), пока apex прогревается на первом деплое

# изолированный preview на конкретную ветку — НЕ трогает apex
layero deploy --branch=staging
# → https://<org>-<project>-staging.preview.layero.ru (24 ч TTL)

# выкатить из любой ветки сразу в production одной командой
layero deploy --branch=staging --promote
# → apex теперь отдаёт этот деплой

# CI-режим: без подтверждения
layero deploy --prod --yes

Для CLI-проекта (без репозитория) каждый layero deploy заменяет то, что отдаёт apex — это и есть публикация. На первом деплое apex прогревается на YC CDN несколько минут; пока edge_ready=false в событии ready, шерьте preview_url — он доступен сразу. Нужен изолированный preview, не трогающий apex, — деплойте в именованную ветку (--branch=<name>).

Mixed-mode: GitHub + CLI на одном проекте

Один и тот же проект может одновременно принимать:

  • push в GitHub → автоматический деплой (webhook)
  • layero deploy → CLI-загрузка тарбола

Это удобно когда:

  • GitHub-build долгий или нестабильный, и нужен быстрый локальный hot-fix: layero deploy --prod --yes поднимет ваш локальный код в production за секунды без коммита.
  • В CI после успешного теста хочется явно зафиксировать релиз: layero deploy --prod --yes после git push.

Артефакты в дашборде помечаются источником:

БейджЧто значит
pushWebhook от GitHub push
cliЗагружен через layero deploy
manualЗапущен через дашборд (Redeploy)

Пример CI-сборки:

LAYERO_TOKEN=$LAYERO_DEPLOY_TOKEN layero deploy --prod --yes \
--project alice-my-site

Правила игнорирования

CLI уважает:

  • .gitignore (как git)
  • .layeroignore (тот же синтаксис, можно расширять/исключать)
  • встроенный denylist:
    node_modules
    .git
    dist
    build
    .next
    .env*
    .DS_Store
tip

Артефакты сборки (dist, build, .next) не нужно заливать — сборка запускается на стороне Layero после распаковки.

Лимиты

  • Максимальный размер архива — 200 MB.
  • Время layero deploy ограничено таймаутами на бэкенде:
    СтадияЛимит
    clone / unpack15 мин
    install10 мин
    build15 мин
    upload в S310 мин

Если ваш билд не укладывается — напишите в поддержку, лимиты повышаются индивидуально.

После деплоя

После ready сайт доступен на https://<organization>-<project>.layero.ru и preview-URL https://<project>-<sha7>.preview.layero.ru (см. Окружения). Для канонического hostname после первого деплоя нужно подождать ~30–60 секунд, пока CDN прогреется.

Postinstall-баннер

После npm install -g layero CLI пишет краткую инструкцию в /dev/tty. В CI-окружениях баннер не выводится. Чтобы выключить вручную:

LAYERO_SKIP_POSTINSTALL=1 npm install -g layero