Деплой по протоколу. Каждый отсек — герметичен.
Airlok ставится на ваш сервер, настраивает домен, сертификат и nginx и выкатывает проект из репозитория. Вы описываете его в одном манифесте: приложение, загрузки, база и секреты живут в отдельных отсеках, а релиз выходит только после предстартового опроса — GO от каждой проверки.
Четыре отсека ждут опроса. Отсчёт можно прервать в любой момент.
§2
Герметичные отсеки
Ошибка в одном отсеке не затапливает остальные.
Приложение, загрузки пользователей, база и секреты живут раздельно. Между ними — перегородки с явными проходами: приложение получает к базе ровно ту роль, что указана в манифесте, а секреты видит только свои.
Если сгенерированный код сделает что-то неожиданное, последствия останутся внутри его отсека.
| Отсек | Что внутри | Перегородка | При сбое |
|---|---|---|---|
| 01 ·АПриложение | Код, рантайм, реплики | К базе — только по выданной роли. К секретам — только чтение своих. | Перезапуск внутри отсека. База и загрузки не затронуты. |
| 02 ·БШлюз загрузок | Файлы пользователей | Файлы не попадают в каталог приложения и не исполняются. | Файл остаётся в карантине, пользователь получает отказ с причиной. |
| 03 ·ВБаза | Данные, миграции, резервные копии | Миграция сначала идёт на копии базы. | NO GOдо старта. Рабочая база не меняется. |
| 04 ·ГСекреты | Ключи, токены, пароли | Не попадают в сборку, логи и репозиторий. | Найденный в коде ключ останавливает старт с указанием файла и строки. |
§3
Шлюз для загрузок
Пользователи загружают аватары, документы, архивы. Шлюз проверяет каждый файл до того, как он окажется рядом с вашим приложением.
- 01Тип определяется по содержимому, а не по расширению.
- 02Лимиты размера и типов берутся из манифеста:
max_size,types. - 03Файл, не прошедший проверку, остаётся в карантине. В журнал пишется причина.
- 04Код из загрузок никогда не исполняется.
§4
Предстартовый опрос — GO / NO GO
Перед каждым выпуском сервис опрашивает отсеки по очереди. Старт — только когда ответили все.
Если хотя бы одна проверка ответила NO GO, релиз не выходит, а текущая версия продолжает работать. Вы получаете причину и команду для повтора.
| № | Проверка | Отсек | Ответ | Пояснение |
|---|---|---|---|---|
| 01 | Сборка воспроизводится из коммита | А | GO | Хэш совпал |
| 02 | Секреты не попали в сборку и логи | Г | GO | Совпадений нет |
| 03 | Миграция прошла пробный прогон на копии базы | В | GO | 3 миграции |
| 04 | Шлюз загрузок принимает тестовый файл | Б | GO | Карантин отработал |
| 05 | Предыдущая версия отвечает на проверку здоровья | А | NO GO | Откат будет недоступен |
Итог: старт отложен. Предыдущая версия не отвечает на проверку здоровья, поэтому откат был бы недоступен. Рабочая версия не тронута. Повтор: airlok launch --retry
§5
Начало работы
-
Шаг 01
Поставьте агент
Один бинарник или Docker-образ на вашем сервере. Он настроит домен, сертификат и nginx.
curl -fsSL https://airlok.sh/install | sudo bash -
Шаг 02
Составьте манифест
Команда читает репозиторий и предлагает разбивку на отсеки. Пометки в файле показывают, что куда попадает; правьте обычным текстом.
airlok init -
Шаг 03
Начните отсчёт
Опрос, штампы, выпуск. Журнал каждого старта сохраняется.
airlok launch
§6
Одностраничник без сервера
Нужен лендинг, визитка или страница с формой? Загрузите папку и получите адрес.
Сайт публикуется по адресу имя.user-page.airlok.ru. Условия и лимиты — в разделе §7.
- Нужна только статика. Сервер и бэкенд не требуются.
- Заявки с формы приходят вам в Telegram.
- Содержимое проверяют правила и ИИ, спорные случаи смотрит человек.
- На число публикаций с аккаунта действуют лимиты.
§7
Открытый код и подписка
Агент открыт и бесплатен. Подписка — то, что должно работать, пока вы не смотрите.
Установка, домен, сертификат, nginx и выпуск релиза из репозитория работают без подписки. Платная часть следит за проектом снаружи и сообщает, когда что-то пошло не так.
Исходники можно прочитать, собрать и запустить самостоятельно.
Бот в Telegram| Что входит | Открытый | Подписка |
|---|---|---|
| Установка на ваш сервер, домен, сертификат, nginx | Да | Да |
| Выпуск релиза из репозитория по манифесту | Да | Да |
| Предстартовый опрос: сборка, миграции, шлюз загрузок | Да | Да |
| MCP для Claude и ChatGPT | Да | Да |
| Хостинг одностраничника на поддомене (только статика) | — | Да |
| Форма заявки с уведомлением в Telegram | — | Да |
| Свой домен для сайта | — | Да |
| Проверка доступности снаружи | — | Да |
| Метрики сервера | — | Да |
| Алерты в Telegram с причиной сбоя | — | Да |
| Проверки безопасности при каждом выпуске | — | Да |
| Резервные копии с проверкой восстановления | — | Да |
| Несколько проектов | — | До 10, по тарифу |
| Цена | Бесплатно | от 190 ₽ / мес. |
-
Тариф
Базовый
190 ₽/ мес.
1 проект
-
Тариф
Стандартный
490 ₽/ мес.
До 5 проектов
-
Тариф
Продвинутый
990 ₽/ мес.
До 10 проектов
Первые две недели подписки — бесплатно. Карта не нужна.
§8
Вопросы и ответы
01Для кого это?
Для тех, кто собрал проект с помощью ИИ и упёрся в последние 20 %: домен, сертификат, открытые порты, база, загрузки файлов.
02Что агент делает на моём сервере?
Настраивает домен, сертификат и nginx, выпускает релиз из репозитория. Сам он только устанавливает исходящие соединения. Секреты ваших проектов мы не храним.
03Вы исправляете найденное сами?
Нет. Проверки только читают и сообщают: что найдено, чем это грозит и как исправить. Изменения вносите вы.
04GO значит, что проект безопасен?
Нет. GO значит, что пройдены проверки из списка. В отчёте всегда указано, сколько пунктов проверено и что осталось за рамками.
05Что, если я не хочу платить?
Открытая часть работает без подписки: установка, домен, сертификат, nginx и выпуск релиза. Подписку можно попробовать: первые 14 дней бесплатно, без карты.
06Почему на сайтах есть плашка?
Страницы публикуют пользователи. Плашка сообщает посетителю, что сайт размещён на Airlok и не связан с Airlok по содержанию, и даёт кнопку «Пожаловаться».
07Кто проверяет, что публикуют?
Сначала простые правила, затем проверка текста ИИ. Спорные случаи смотрит человек. На число публикаций с одного аккаунта действуют лимиты.