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Задеплоить в production (apex-домен). Без флага — preview.
--branch <name>Задеплоить в конкретную ветку. Имеет приоритет над --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 разделяет preview и production — по образцу Vercel:

# preview на CLI-pseudo-ветку, отдельный hostname
# никогда не перетирает production
layero deploy
# → https://<org>-<project>-cli.layero.ru

# preview на конкретную ветку (создаст environment если её нет)
layero deploy --branch=staging
# → https://<org>-<project>-staging.layero.ru

# production: apex-домен, нужно подтверждение
layero deploy --prod
# → https://<org>-<project>.layero.ru
# CLI спросит: deploy to production? [y/N]

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

Зачем псевдо-ветка cli: локальные эксперименты не должны случайно заменить production. По умолчанию layero deploy приземляется на изолированный hostname <org>-<project>-cli.layero.ru. Чтобы пропихнуть в production, нужно явное --prod.

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