Код приходит так, как он у тебя уже лежит.
Репозиторий GitHub, GitLab или Bitbucket, zip-архив с папкой проекта или готовый образ. Для образа сборка пропускается.
nodbox собирает приложение из репозитория, архива или готового образа, выдаёт адрес с HTTPS и держит его в работе: добавляет экземпляры под нагрузку и усыпляет без неё. Логи, метрики, версии и откат - в панели и по API, без SSH.
Платформа в раннем доступе, доступность пока не заявляем.
a3f19c2идёт 38 с24 окт.Образ собирается7be41d0100% трафика1 мин 4 с24 окт.Работаетc90a2e558 с23 окт.Отработала41d8e071 мин 12 с22 окт.Отработала14:02:07nodboxИсходники развёрнуты: файлов - 214, байт - 1 873 402.
14:02:09nodboxПлан сборки составлен. Провайдеры: node. Рантаймы: node 22.
14:02:11buildnpm ci
14:02:34buildadded 312 packages in 22s
14:02:35buildnpm run build
48,2тыс.
за сутки
42мс
медиана за сутки
61%
из 512 МБ на экземпляр
380₽/мес
сейчас 1 520 ₽/мес
4из 10
засыпает через 15 мин без запросов
0,5vCPU
512 МБ памяти · Eco
8080v18
Исправить расчёт скидки
7be41d0Платформа сама определяет язык, зависимости и команду запуска, собирает образ и пускает трафик только на ответившую версию. Dockerfile и описание сборки писать не нужно.
Репозиторий GitHub, GitLab или Bitbucket, zip-архив с папкой проекта или готовый образ. Для образа сборка пропускается.
Язык, зависимости и команду запуска - по содержимому папки. На реальных приложениях проверены Node.js, Python и Go.
Автодеплой выключается. В монорепозитории версия выезжает, только если менялись файлы в указанных папках.
services/apia3f19c2a3f19c2Деплоится9b2e71dПлатформа ждёт ответа на пути проверки готовности. Не ответило за 5 минут - версия помечается неудачной, а прежняя продолжает работать.
Лог идёт живым потоком и показывает строку, на которой всё сломалось. Сборка ограничена 16 минутами, идущий деплой можно отменить.
14:10:02buildnpm ci
14:10:31buildnpm run build
14:10:44buildError: Cannot find module ./config
14:10:45nodboxСборка не удалась: приложение не собралось. Причина - в строках выше.
Свой домен привязывается отдельно: платформа проверяет записи, выпускает сертификат и продлевает его сама. Протокол - HTTP/1.1 или HTTP/2.
Управляемые PostgreSQL, MySQL и Valkey (совместим с Redis) поднимаются во внутренней сети проекта. Строку подключения база отдаёт сама, а в приложение её кладёшь ты, секретом под своим именем. PostgreSQL и MySQL можно открыть и для подключения из интернета. Воркеры работают постоянно, а не только по запросу.
DATABASE_URLREDIS_URLЛоги, метрики, состояние и лента событий лежат в панели и отдаются по API. Падение платформа замечает сама: состояние проверяется раз в минуту, а не когда кто-то зашёл посмотреть.
Их видно по конкретной версии, лента листается в обе стороны, а те же строки отдаются по API.
14:05:02v18GET /orders 200 - 44 мс
14:05:09v18GET /catalog 200 - 26 мс
14:05:14v18POST /cart 201 - 61 мс
14:05:21v18GET /catalog 200 - 24 мс
14:05:26v18POST /cart 201 - 57 мс
14:05:33v18GET /catalog?page=2 200 - 31 мс
14:05:38v18GET /orders 200 - 41 мс
14:05:40v19Приложение ответило на проверку готовности
14:05:44v19GET /catalog 200 - 19 мс
14:05:57v19Экземпляр 2 принял трафик
14:06:01v19POST /cart 201 - 49 мс
14:06:04v19POST /checkout 502 - платёжный шлюз не ответил
14:06:09v19Медленный запрос к базе: 480 мс
14:06:12v19GET /orders 200 - 38 мс
14:06:15v19POST /checkout 200 - 212 мс
Таких строк в ленте нет.
Запросы за сутки, медиана ответа, процессор, память и перезапуски. Снимок каждые 30 секунд, график за 24 часа.
48,2тыс.
за сутки
61%
из 512 МБ на экземпляр
Что происходило с приложением, пока никто не смотрел: деплой, падение, откат, сон и пробуждение.
Тот же образ, переменные и размер. Доступны три последние выкаченные версии.
Порог задаётся числом одновременных запросов, потолок - десять экземпляров на приложение. Пока приложение спит, его минуты не тарифицируются, а первый запрос будит его за 1,25 секунды.
Порог на экземпляр по умолчанию - 100 запросов, настраивается до 1 000. Потолок - 10 экземпляров на приложение, а ночью без запросов - ноль.
4из 10
312 одновременных запросов
Столько проходит из полного нуля до первого байта, замер на реальном приложении. Засыпает приложение через 15 минут без запросов, паузу можно растянуть до часа.
1,25с
из полного нуля до первого байта
Тогда приложение работает круглосуточно и тарифицируется всё время - для того, что должно отвечать без паузы.
Шесть размеров от 0,25 до 1 ядра, приложение переедет за один деплой. В Eco процессор делится с соседями, в High закреплён за приложением.
Изоляция - исходное требование к платформе, а не надстройка сверху. Каждый проект работает в своей сети, а наружу приложение смотрит только своим адресом.
CI и агент получают токен с нужными правами, а проверяет права платформа: выключенное действие не выполнится, даже если клиент его попробует.
Читать, деплоить, менять мощность и удалять - четыре независимых переключателя. Токен живёт 60 суток, виден списком с отметкой последнего использования и отзывается одним действием.
Пароль в терминал не вводится: утилита показывает код, а вход подтверждается в браузере.
Если связь оборвалась посреди заказа, повторный запрос не заведёт второе приложение и вторую сборку.
На тарифе Команда у проекта три роли. Владелец отвечает за всё, разработчик деплоит без доступа к деньгам и участникам, наблюдатель только смотрит. Ссылка-приглашение живёт 7 дней.
nodbox подключается к редактору как MCP-сервер, то есть набор инструментов, которые агент вызывает сам. Агент заказывает деплой, читает логи и делает откат, но только то, что разрешает его токен.
Платишь за размер приложения по минутам работы. Минуты сна, остановки и падения не считаются, а сборки, трафик, логи и метрики не тарифицируются вовсе.
Один экземпляр: цена размера, умноженная на долю суток без сна. Округлено до рубля.
| Размер | Процессор | Память | Месяц без сна |
|---|---|---|---|
| Eco 256 | 0,25 ядра | 256 МБ | 190 ₽ |
| Eco 512 | 0,5 ядра | 512 МБ | 380 ₽ |
| Eco 1024 | 1 ядро | 1 ГБ | 760 ₽ |
| High 256 | 0,25 ядра | 256 МБ | 590 ₽ |
| High 512 | 0,5 ядра | 512 МБ | 1 190 ₽ |
| High 1024 | 1 ядро | 1 ГБ | 2 380 ₽ |
Размер в Eco и High один и тот же. В Eco процессор делится с соседями, в High закреплён за приложением.
Сборки, входящий и исходящий трафик, логи, метрики, адрес платформы и сами операции. Платишь только за приложение.
Счёт начинается, когда платформа подтвердила, что версия выкачена и отвечает. За сбой запуска ты не платишь.
Новое приложение не заказывается, если баланса не хватит на неделю его работы. Лимиты проекта ограничивают ёмкость. Удаление спрашивает подтверждение.
Пополнение от 100 ₽ до 300 000 ₽ за раз через ЮKassa, есть автопополнение.
Письмо с датой, когда закончится баланс, - по фактическому расходу, а не по календарю.
Приложения останавливаются, новые не заказываются. Код, настройки и версии на месте.
Приложения сохранены. Пополнил - заказ снова открыт, запуск одним действием.
Второе письмо: ресурсы проекта будут удалены завтра.
Приложения проекта удаляются безвозвратно.
На VPS контейнеры, обратный прокси, сертификаты, автозапуск и мониторинг - твоя работа, а машина стоит денег и тогда, когда простаивает. Здесь это делает платформа, а спящее приложение стоит ноль. Цена этого - полного доступа к машине нет: приложение работает в песочнице.
По содержимому папки: язык, зависимости и команду запуска она определяет сама. На реальных приложениях проверены Node.js, Python и Go. Если образ уже собран, сборка пропускается и платформа только запускает его.
Постоянного диска у приложения нет: файлы между перезапусками не сохраняются. Данные держат управляемые PostgreSQL, MySQL и Valkey (совместим с Redis) во внутренней сети проекта или твоё собственное хранилище.
Одной цифры в запросах в секунду нет: она зависит от приложения сильнее, чем от размера. Управляешь порогом: новый экземпляр добавляется, когда одновременных запросов на экземпляр больше 100, порог настраивается до 1 000, потолок - десять экземпляров на приложение.
Спящему приложению нужно куда-то проснуться, поэтому его место в лимитах проекта сохраняется и во сне. Денег оно при этом не стоит: тарифицируются только минуты работы.
Сборка длится не больше 16 минут, деплой целиком - не больше 48. Если приложение не ответило на проверку готовности за 5 минут, версия помечается неудачной с причиной отказа. Идущий деплой можно отменить, а работающая версия всё это время отвечает.
Выпусти для CI токен с правами «читать» и «деплоить». Право «удалять» у токена выключено, пока его не включить, а проверяет права платформа: выключенное действие не выполнится, даже если скрипт его попробует. Токен живёт 60 суток и отзывается одним действием.
Доступность мы пока не заявляем: платформа в раннем доступе. Если что-то сломается, чинить будем быстро, но сломаться может. Что сделано, чтобы сбой не задел работающее, - на этой странице: проверка готовности, откат, изоляция проектов.
На серверах в России. Оплата в рублях через ЮKassa, интерфейс и ошибки на русском.
Код твой: репозиторий как был, так и есть, а приложение собирается из него обычным способом - в том числе на другой платформе. Переписывать код при переезде не придётся.
Места открываем постепенно: оставь заявку - напишем, когда подойдёт очередь.