Спокойствие для десятков проектов и вайб-кодинга
Каждая гарантия — с доказательством
Когда код пишут люди и ИИ-агенты, ошибаться не страшно, если всё можно вернуть. Formentor настраивает бэкапы, защиту кода и серверы — и не верит на слово: каждую настройку проверяет делом. Пробует удалить копию, переписать историю, достучаться до сайта — и показывает доказательство.
- облака на каждую копию
- 3
- копию базы не удалит даже владелец
- 30дней
- зелёных статусов без доказательства
- 0
- 03:01:10 github git push --force → rejected ✓
- 03:02:13 db-01 heartbeat · sha256 9f3a…e1 match ✓
- 03:03:16 web-02 ssh :22 open · https 200 ✓
- 03:04:19 web-01 upgrades on · rebooted 03:04 ✓
Как работает
Наблюдает, настраивает и проверяет — каждую ночь заново
-
Наблюдает
Каждый день собирает факты с серверов, облаков, GitHub и реестров доменов: диски, обновления, ключи, копии, сроки.
ssh web-01 · df · apt · git status
-
Настраивает
Выдаёт готовые команды: защищённые бакеты, правила веток, автообновления, ночные перезагрузки, бэкапы по расписанию.
put-object-lock-configuration
-
Проверяет
Подтверждает каждую настройку делом: пробует удалить копию, переписать историю, достучаться до сайта — и сохраняет результат.
git push --force → rejected ✓
И снова по кругу: доказательства обновляются, а устаревшие подсвечиваются.
Возможности
Formentor не только настраивает — он проверяет, что это работает
Слева — что делает Formentor и зачем это вам. Справа — как он программно подтверждает, что настройка действительно работает, и строка, которую он при этом видит.
| Что делает Formentor — и зачем | Как Formentor доказывает, что это работает |
|---|---|
|
01 · 9 функций Данные всегда можно вернутьАгент удалил таблицу, сервер взломали, облако упало — база и файлы всё равно вернутся. |
|
Каждую ночь — копия базы в трёх облакахYandex Cloud, Cloud.ru и AWS. Откажет или заблокируется одно облако — останутся ещё два. |
Как проверяется После загрузки сервер сообщает по каждому облаку размер, SHA-256 и версию копии. Облако, куда загрузка не прошла, сразу краснеет — вместе с текстом ошибки.
yandex ✓ cloud.ru ✓ aws ✓
|
Копию базы не удалить даже с root-доступомНи взломщик, ни ИИ-агент с полным доступом к серверу не сотрут запасной выход. |
Как проверяется При подключении Formentor по-настоящему пробует удалить копию базы ключом сервера — каждое облако обязано отказать. В AWS права дополнительно прогоняются через симулятор: разрешена только загрузка.
DeleteObject → AccessDenied
|
30 дней копию базы не изменитьЕсли испорченная база уже попала в копии, чистые версии за месяц никуда не денутся. Потом старые удаляются сами. |
Как проверяется После создания хранилища Formentor перечитывает версионирование, блокировку Object Lock и срок хранения. Пока проверка не пройдена, облако не получает ни одной копии.
ObjectLock COMPLIANCE · 30 days
|
Бэкап засчитан, только когда подтверждён«Скрипт отработал» ещё не значит «копия есть». |
Как проверяется Сервер отправляет итог по каждому облаку, Formentor отвечает подтверждением. Нет подтверждения — запуск считается проваленным.
heartbeat → confirmed
|
Пропавший бэкап заметятСервер упал и молчит — это авария, а не «всё тихо». |
Как проверяется Formentor сам ждёт копию по расписанию — как dead-man switch. Не пришла вовремя — статус меняется на «Опаздывает», затем на «Просрочена».
last upload 03:12 · due in 21 h
|
Восстановление проверено заранееВы знаете, что база поднимается из копии, задолго до того, как это понадобится. |
Как проверяется При подключении — пробное восстановление в отдельную базу. Скачивается ровно та версия, которую сообщил сервер, и её SHA-256 сверяется с отчётом.
restore 3HL4… · sha256 match
|
Файлы — на любой день за 90 днейКаждую ночь в облака уходят только новые и изменённые файлы, а прежние версии хранятся 90 дней. Трафика минимум, а вернуть можно состояние на любой день. Так защищены и файлы на диске, и S3-диски. Тактика специально другая, чем у баз. Базу выгодно каждую ночь копировать целиком и запирать на 30 дней. Файлов в сотни раз больше, и почти все не меняются, поэтому храним версии и отправляем только изменения. |
Как проверяется В каждом облаке Formentor перечитывает настройки хранилища: версионирование включено, прежние версии живут 90 дней, текущие не удаляются. Раз в неделю контрольные суммы всех файлов сверяются с облаком, и всё, что отличается, загружается заново.
versioning ✓ · history 90 days · md5 ✓
|
Затёртый или удалённый файл вернётсяЕсли взломщик или ИИ-агент перезапишет, испортит или удалит файлы, в облаке появятся лишь новые версии поверх старых. Восстановление на день до порчи вернёт всё как было. |
Как проверяется При подключении Formentor ключом сервера загружает пробный файл и удаляет его: облако только помечает удаление, а стереть старую версию или сократить срок хранения обязано отказать. Если за ночь исчезло или изменилось подозрительно много файлов, запуск останавливается или помечается жёлтым.
DeleteObjectVersion → AccessDenied
|
Копии хранятся дёшевоТри облака на каждый проект не стоят как три лишних сервера: копии лежат в холодном хранилище. |
Как проверяется После настройки хранилища Formentor перечитывает его класс по умолчанию: в Yandex Cloud и Cloud.ru он должен быть холодным. В AWS каждая копия загружается в Standard-IA.
default_storage_class → COLD
|
|
02 · 5 функций Код не потеряетсяАгенты коммитят каждую правку — Formentor следит, чтобы эти точки отката никто не стёр. |
|
Историю кода не переписатьНи агент, ни взломщик с ключом сервера не сделает force-push и не удалит ветку — чужая работа не исчезнет. |
Как проверяется Временный deploy-ключ по-настоящему пробует переписать ветку, удалить её, создать новую ветку и тег — GitHub обязан отказать каждый раз. Правила защиты перечитываются и сверяются с эталоном, без исключений для обхода.
git push --force → rejected
|
На сервере ничего не завислоНезакоммиченная правка — это работа без точки отката. На общем сервере она ещё и мешает коллегам. |
Как проверяется Formentor заходит под пользователем каждого проекта и читает git: незакоммиченное, неотправленное, не подтянутое, stash и незавершённые слияния. Рабочая копия при этом не меняется.
master · 0 uncommitted · 0 unpushed
|
Видно, кто сделал каждый коммитПод одним пользователем сервера работают несколько людей и ИИ-агентов — автор определяется по SSH-ключу. |
Как проверяется Formentor открывает новое SSH-подключение и проверяет, каким автором Git представится эта сессия, а авторов последних коммитов сверяет с ключами.
fresh ssh → author from key SHA256:Xb3q…
|
Взлом одного сервера не откроет все репозиторииСервер видит только свой репозиторий, а не весь ваш аккаунт GitHub. |
Как проверяется На каждом сервере перечисляются все способы войти на GitHub — ключи, агенты, файлы с токенами (сами секреты не читаются) — и проверяется, кем GitHub считает этот сервер.
ssh -T git@github.com → deploy key
|
Известно, у кого есть доступ к серверамПришёл человек — ключ добавлен куда нужно. Ушёл — видно, откуда его убрать. Чужой ключ не появится незаметно. |
Как проверяется Ключи считываются из authorized_keys каждого пользователя на каждом сервере. Новый ключ требует явного одобрения для конкретного сервера и пользователя.
SHA256:Xb3q… · approved for web-01
|
|
03 · 6 функций Серверы сами в формеОбновления, перезагрузки и утренняя проверка — без технаря на каждом сервере. |
|
Все серверы на одном экранеМесто на дисках, память, ожидающие обновления — не заходя на каждый из двадцати серверов. |
Как проверяется Факты читаются прямо с сервера, у каждого отчёта есть дата. Устаревший отчёт сам становится предупреждением.
/ 61% · /var 48% · memory 41%
|
Обновления безопасности ставятся самиДыры в системе закрываются без вашего участия. |
Как проверяется Formentor читает итоговую конфигурацию apt — то, что реально применяется, а не галочку в панели управления.
Automatic-Reboot "true" · 03:00
|
Перезагрузка — ночью и после бэкапаОбновления ядра применяются в тихое время, когда свежая копия уже сделана. |
Как проверяется Для каждого сервера известно время перезагрузки, пропущенная помечается как проблема. Время бэкапов сверяется с окном обслуживания, а часы сервера — с часами Formentor.
backup 02:41 · reboot 03:04
|
Утром всё работаетПосле ночных перезагрузок поднялись все серверы и сайты — и вы это знаете. |
Как проверяется После окна перезагрузок Formentor сам подключается к SSH каждого сервера и открывает каждый сайт по HTTPS.
ssh :22 open · https 200
|
Система на поддержкеВы заранее знаете, когда версию операционной системы пора обновлять. |
Как проверяется Версия из /etc/os-release сверяется с датами окончания поддержки Ubuntu.
Ubuntu 24.04 · supported until 2029-05
|
Срочные патчи PHP и Node.jsПри критической уязвимости все сайты закрываются или обновляются по одному сценарию — ни один не забыт. |
Как проверяется Каждый сайт получает статус «Обновлён», «На техобслуживании» или «Требует действий» по установленной версии и реальному HTTP-ответу.
503 maintenance → 200 patched
|
|
04 · 1 функция Домены не истекутНи один сайт не пропадёт из-за забытого продления. |
|
Сроки продления всех доменовВсе домены, включая .ru и .рф, на одном экране с датой, до которой они оплачены. |
Как проверяется Каждый день дата берётся напрямую из реестра — по RDAP или WHOIS. Если реестр не ответил, ошибка видна рядом с доменом, а последняя известная дата сохраняется.
whois.tcinet.ru → paid-till 2027-03-14
|
Принцип
Нет доказательства — нет зелёной галочки
Любой статус в Formentor опирается на конкретное доказательство: отчёт, контрольную сумму, ответ облака или реестра. У доказательства есть дата. Когда оно стареет, статус перестаёт быть зелёным — даже если ничего не сломалось. Старые данные никогда не выдаются за текущие.
- У каждого статуса есть источник и дата
- Устаревший отчёт — уже предупреждение
- Тишина — тоже сигнал: молчащий сервер не считается здоровым
Свежесть доказательств
пример
-
Подтверждено · 3 ч назад
db-01 → Yandex Cloud
Копия подтверждена: SHA-256 и версия
-
Отчёт устарел · 9 дней
web-02 · здоровье
Последний отчёт сервера
-
Просрочено · 27 ч без копии
shop-db → AWS
Ожидаемая копия не пришла
Материалы
Вайб-кодинг на сервере: с чего начать
Презентации и инструкции о том, как команды работают с ИИ-агентами, и эксперимент с запасными моделями на случай блокировок Claude.