Основные концепции
Прежде чем погружаться в детали, разберёмся в словаре платформы: проект, окружение, деплой, runtime и handle. Эти пять понятий встречаются во всём остальном дока-сайте.
Организация
Организация — scope, объединяющий людей, проекты и интеграции под одним slug'ом. Бывает двух видов:
- Personal — личная, создаётся автоматически на signup, slug =
ваш
username. Один на пользователя, без приглашений. - Team — командная, создаётся вручную ("+ Создать команду"), принимает приглашения по email, может подключить GitHub App.
Подробно — Организации.
В верхнем углу дашборда — OrganizationSwitcher, persist'ит активную организацию в localStorage. Все списки (проекты, репы для импорта, деплои) фильтруются по активной orgе.
Проект
Проект — единица деплоя. Принадлежит одной организации, имеет
уникальный slug в её namespace'е. Канонический адрес —
https://<organization>-<project>.layero.ru.
Источник кода:
github— код берётся из GitHub-репозитория, push автоматически запускает деплой через webhook (OAuth или GitHub App).cli— код приходит из локальногоlayero deploy(загрузка тарбола).
Один проект может одновременно принимать оба источника
(mixed-mode): GitHub push + CLI uploads сосуществуют. См.
layero deploy.
Окружение
Окружение соответствует ветке репозитория. У каждого проекта есть
default-окружение (обычно main), куда приземляется production-трафик.
При push в другую ветку Layero создаст preview-окружение со своим
hostname.
Деплой
Деплой — конкретная сборка с конкретного коммита (commit_sha).
У каждого деплоя есть статус:
| Статус | Что значит |
|---|---|
queued | поставлен в очередь, ждёт билд-инстанса |
building | сборка идёт прямо сейчас |
ready | артефакты загружены, окружение переключено на этот деплой |
failed | сборка упала, см. логи деплоя |
Активный деплой окружения хранится в environments.active_deploy_id —
именно он отдаётся пользователям. При новом успешном деплое указатель
обновляется атомарно.
Rollback — переключить указатель на любой предыдущий ready-деплой
без пересборки. Артефакт уже лежит в S3, CDN-кеш сбрасывается, и через
~30 секунд весь трафик ветки идёт на старый артефакт. См.
layero rollback или кнопку "Откатить" на странице
Project → Deploys.
Runtime: статика vs SSR
Layero различает два режима исполнения:
- SPA / static (по умолчанию) — после сборки получаем папку с HTML/JS/CSS, она лежит в S3 и отдаётся через CDN. Никаких процессов на стороне Layero не запускается. Это самый быстрый и дешёвый режим.
- Runtime — приложение запускается как контейнер (SSR Next.js, Streamlit, Gradio, Flask и т. п.). Контейнер активируется по первому запросу и останавливается при простое. См. Runtime.
Username и организация
При первом входе вы выбираете уникальный username — handle вашего
аккаунта. На его основе автоматически создаётся ваша персональная
организация со slug'ом, равным username. Например, username alice →
проекты этой организации доступны на https://alice-<project>.layero.ru.
Помимо персональной, можно создавать дополнительные организации со своими slug'ами — например, для совместной работы с командой. В каждой организации могут состоять несколько участников (admin / member), приглашаемых по email. Управление участниками — в разделе Команда.
Username задаётся один раз при онбординге. Подробнее в Onboarding.
Билд-окружение
- Node.js —
nvm use <detected_version>. Версия определяется по.nvmrc,.node-version,engines.nodeвpackage.json. По умолчанию — Node 20. - Пакетный менеджер — детектируется по lock-файлу:
yarn.lock→ yarn,pnpm-lock.yaml→ pnpm, иначе npm. node_modulesудаляется передinstall.- Команда сборки — берётся из проекта (
build_cmd), по умолчаниюnpm run build. Output-директория определяется по фреймворку (см. Поддерживаемые фреймворки).