Секретохранилище · регистрация открыта
Секреты для машин. Пароли для людей.
Wardhold хранит то, что нельзя класть в репозиторий и в переписку: токены интеграций, пароли от баз, ключи доступа. Сервисы забирают значения по API, люди — из сейфа в браузере. Каждое чтение попадает в журнал, каждая замена значения — это новая версия, а не «перезаписали и забыли».
$ curl -s $WARDHOLD_URL/api/v1/secrets/billing/db/payload \ -H "Authorization: Bearer $WARDHOLD_TOKEN" { "POSTGRES_USER": "billing", "POSTGRES_PASSWORD": "g7R…Qk", "POSTGRES_URL": "postgres://billing@pg-01/billing" } # то же значение — в env процесса, без файла на диске wardhold ci run billing/db -- ./migrate.sh
Плоский JSON без обёрток: тот же ответ понимают External Secrets Operator в Kubernetes, CI-раннер и агент на сервере.
Аккаунт за минуту, обновления и резервные копии — наша забота. Личный сейф бесплатен без ограничений по числу записей.
Один Go-бинарь рядом с PostgreSQL: REST, MCP, веб-кабинет, планировщик и вебхуки — в одном процессе, без брокеров и Redis.
Community Edition под AGPLv3: формат хранения, API и правила доступа задокументированы, данные не заперты.
Два домена
Одно хранилище закрывает две разные задачи
Их обычно решают двумя продуктами и двумя счетами. Разница в модели доверия, и в Wardhold она проведена явно.
Секреты для сервисовработает
Сервер расшифровывает значение и отдаёт его CI, кластеру или демону на сервере — иначе автоматизация невозможна. Защита строится на ролях, коротких токенах, привязке шифротекста к конкретному секрету и журнале каждого чтения.
Пароли для сотрудниковработает
Ключ выводится из мастер-пароля в браузере и на сервер не попадает: сервер хранит непрозрачные блобы. Ни администратор инстанса, ни мы не можем открыть сейф — и обратной стороной, забытый мастер-пароль невосстановим.
Как это работает
От записи секрета до переменной в процессе
Создайте секрет и первую версию
Секрет хранит имя, метки и настройки. Значения живут в версиях: строка, файл или набор пар ключ = значение. Изменить версию нельзя — только добавить следующую; запрет стоит триггером в базе, а не в коде приложения.
Заведите сервисный аккаунт
Отдельная сущность, не привязанная к сотруднику: увольнение человека не роняет прод. Токен wh_… со сроком и правами хранится в базе только хешем.
Выдайте роль на проект или секрет
viewer видит метаданные, payloadViewer — содержимое, editor создаёт версии. В карточке видно, у кого есть доступ и откуда он взялся.
Заберите значение там, где оно нужно
Kubernetes, GitLab CI, GitHub Actions, агент на сервере, AI-агент по MCP или обычный curl — один и тот же ответ и одна и та же строка в журнале.
Что уже сделано
Не слайды, а работающие вещи
Всё перечисленное работает в проде на app.wardhold.ru. Полная таблица готовности — на отдельной странице.
Агент для серверовработает
wardhold agent держит секреты в актуальном состоянии на обычной VM: рендерит файлы атомарно, следит за ротацией и перезапускает процесс. Ни Kubernetes, ни CI не нужны.
Вебхуки с подписьюработает
Событие о новой версии уходит подписчикам через outbox в PostgreSQL, с подписью Ed25519 и повторами. Значений в теле события нет — это сигнал «перечитай», а не канал доставки.
Отчёт раскрытия по сотрудникуработает
Что человек мог прочитать, что читал на самом деле и куда получал отказ — в разрезе проектов, с журналом и токенами. Основа офбординга.
Одноразовые ссылки на парольработает
Передать пароль подрядчику без аккаунта: запись шифруется в вашем браузере, ключ живёт во фрагменте ссылки и до сервера не доходит.
CI без переменных проектаработает
wardhold ci export и ci run в любом пайплайне, где можно скачать статический бинарь; для GitLab и GitHub — готовые шаблон и action.
MCP-сервер для AI-агентовработает
Агент видит список и описания секретов; содержимое отдаётся только под явное право токена — вытащить весь vault в контекст модели не получится.
Журнал уходит в ваш SIEMработает
Каждое обращение дублируется в файл JSON Lines и в syslog по RFC 5424 — их забирает почти любой SIEM без коннектора. Значений секретов в потоке нет. Во всех изданиях, включая Community.
Выбор
С чем нас сравнивают
Мы не единственные, и на сайте это написано прямо: в каждой батлкарте сначала идёт то, ради чего логичнее взять не нас. Все разборы — на странице сравнения.
Корпоративные менеджеры паролей
Пассворк и продукты той же школы сильнее там, где боль — пароли людей вне рабочего места: мобильные и десктопные клиенты, годы на рынке. Общие сейфы и расширение для браузера есть и у нас; мы сильнее там, где значения читает сервис.
Yandex Lockbox
Доменную модель мы повторили намеренно. В одном облаке управляемый сервис почти всегда выгоднее; мы нужны там, где контур закрытый, системы разъехались по площадкам или нужен ещё и сейф для людей.
HashiCorp Vault и OpenBao
Динамические секреты, PKI и transit — не наша модель и в первой версии не появятся. Наш аргумент — коробка: бинарь и PostgreSQL вместо кластера со снятием печати после каждого перезапуска.
Поставка
Продукт рассчитан на закрытый контур
Wardhold задумывался как коробка: единственный внешний компонент — PostgreSQL. Веб-кабинет и шрифты вшиты в бинарь, CDN не используется, планировщик и доставка вебхуков живут в том же процессе.
- Один бинарь ~13,5 МБ и PostgreSQL 16 — больше ничего не нужно
- 12–17 МБ памяти в покое и под прогревом, старт процесса — единицы миллисекунд
- Работает без интернета: обновления, лицензия и словари не требуют доступа наружу
- Docker Compose или systemd — на выбор; миграции применяет сам бинарь
Частые вопросы
Чем это отличается от менеджера паролей?
Менеджер паролей рассчитан на человека: открыл, скопировал, вставил. Секретохранилище рассчитано на сервис: он забирает значение по токену без участия человека, а хранилище ведёт версии и журнал. Wardhold умеет обе роли, но не смешивает их: сейф паролей зашифрован ключом владельца, машинные секреты — ключом инстанса.
Можно ли переехать из облака на свой сервер?
Да, это один и тот же код и одна и та же схема данных. wardhold export выгружает организацию в конверт под парольной фразой с подписью инстанса, wardhold import загружает его на своём сервере с проверкой подписи и предварительным отчётом, что именно будет создано.
Что происходит при увольнении сотрудника?
Wardhold показывает, к каким секретам у человека был доступ, что он реально читал и когда, — этого не знает ни одна другая система в контуре. Дальше вы отзываете доступы и ротируете то, что он действительно забирал, а не всё подряд.
Все ли сотрудники видят администрирование?
Нет. В организации три роли: сотрудник работает с секретами по выданным привязкам и своими сейфами, администратор ведёт учётные записи, проекты и доступы, владелец вдобавок распоряжается владением. Сотрудник, попавший в Wardhold синхронизацией каталога, получает роль сотрудника: перенос людей из портала не выдаёт прав.
Кто может прочитать содержимое личного сейфа?
Только владелец. Ключ выводится из мастер-пароля в браузере, сервер получает зашифрованные данные и параметры вывода ключа. Обратная сторона честная: забытый мастер-пароль восстановить нельзя.
У нас всё на 1С — это подходит?
Да, это один из основных сценариев: токены банков, маркетплейсов, ЭДО и обменов переезжают из констант информационной базы в хранилище, а конфигурация забирает значение обычным HTTP-запросом в момент выполнения. Подробности — на отдельной странице.
Чем вы отличаетесь от Пассворка?
Пассворк вырос из корпоративного менеджера паролей и сильнее там, где боль — пароли людей вне рабочего места: мобильные и десктопные клиенты, реестр российского ПО и сертификат ФСТЭК. Wardhold вырос из машинного хранилища: иммутабельные версии, роли на секрет, журнал каждого чтения и выдача значений в кластер и пайплайны без ключа расшифровки на стороне потребителя. Подробный разбор — на отдельной странице.
Сколько стоит поставить Wardhold к себе?
Community Edition под AGPLv3 бесплатна при любом размере. Коммерческое издание тоже бесплатно, пока в инстансе не больше ста сотрудников; дальше лицензия стоит 390 000 ₽ на инстанс до тысячи человек, каждая следующая тысяча — 99 000 ₽. При переезде с другого хранилища лицензия выдаётся на три года без ограничения по числу людей. Условия — на странице тарифов.
Есть ли бесплатная лицензия для школ и вузов?
Да. Государственные и муниципальные образовательные организации пользуются Wardhold бесплатно — и облаком, и коммерческим изданием в своём контуре. Достаточно письма с почты учреждения; условия — на странице тарифов.
Попадут ли события в наш SIEM?
Да, штатными средствами: Wardhold дублирует журнал обращений в файл JSON Lines и в syslog по RFC 5424, а их читает практически любой SIEM без отдельного коннектора. Формат события один на оба приёмника, значений секретов в нём нет ни при каких настройках. Поток входит во все издания, включая Community. Чего пока нет: готовых коннекторов к конкретным продуктам и гарантии доставки — очередь живёт в памяти процесса, и при недоступном приёмнике события теряются со счётчиком в проверке готовности, но чтение секретов при этом не ломается.
Есть ли открытый исходный код?
Ядро выпускается под AGPLv3; коммерческие функции лежат отдельно и в сборку Community не попадают физически. Публикация репозитория готовится — до неё сборку присылаем по запросу на hello@wardhold.ru.
Начать
Аккаунт в облаке — за минуту
Регистрация открыта: почта и пароль. Организация, проект и личный сейф создаются сразу, платить за личное использование не нужно.