Когда нужен runtime
Большинство фронтенд-проектов — статика: после npm run build получается
папка с HTML/JS/CSS, и её достаточно положить за CDN. Это самый быстрый
и самый дешёвый режим Layero.
Но некоторые приложения нельзя превратить в SPA — им нужен процесс на сервере:
- SSR Next.js без
output: 'export', - Streamlit / Gradio — Python-приложения с веб-интерфейсом,
- Flask / FastAPI с серверным рендером.
Для них Layero запускает пользовательский контейнер.
Поддерживаемые пресеты
project_type | Что это |
|---|---|
spa | Статика (default). |
ssr_next | Next.js c SSR / API-routes. |
streamlit | Streamlit-приложение. |
gradio | Gradio-приложение. |
flask | Flask-приложение. |
Пресет выбирается в дашборде проекта (Project → Runtime type). Для каждого пресета используется готовый Dockerfile-шаблон — свой образ собирать не нужно.
Cold start
Контейнер поднимается по первому запросу, обслуживает трафик и гасится при простое. Это значит:
- Первый запрос после паузы будет медленнее (cold start — секунды, зависит от пресета).
- В простое проект ничего не стоит по compute.
Для критичных к латенси проектов мы планируем «keep-warm» — постоянно прогретые инстансы. Пока этой настройки нет.
Stateless-инвариант
Файловая система контейнера эфемерна — это важное ограничение, которое легко проглядеть. Прочтите Stateless-инвариант прежде чем мигрировать существующее SSR-приложение, использующее SQLite, файловые сессии или локальный кеш.