Как я поднял self‑hosted менеджер паролей и заставил компанию им пользоваться
Habr ·

Пароль от хостинга — в личных сообщениях. SSH‑ключ — в архиве на рабочем столе, который никто не чистил года три. Токен от CRM — в закреплённом сообщении в Telegram, которое уже никто не читает. Знакомо? У нас было ровно так, пока я не сел и не разобрался, что с этим делать. Это не очередной «как поднять Vaultwarden за 10 минут» — таких гайдов хватает в вики проекта. Это история про то, что происходит после команды docker compose up: VPN‑периметр вместо открытого порта, самоподписанный CA, который красиво работает на десктопах и разваливается на Android, DNS-01 challenge с собственным хуком для acme.sh под провайдера, которого нет в официальном списке, бэкап в два независимых конца и восстановление, протестированное заранее, а не в момент паники. Если вы технарь — здесь рабочие конфиги, а не псевдокод: Caddy, docker‑compose, скрипт под acme.sh ретеншен бэкапов без магии. Если интегратор на Bitrix — готовая структура коллекций и прав под клиентские проекты, роли Dev/Marketing/Infra, чек‑лист на нового клиента. Если тимлид — регламент, который реально прижился в команде, а не умер через неделю, как очередная табличка в Notion. Отдельный мотивбыл личный: давно хотелось не просто читать про self‑hosted‑подход бигтеха к секретам, а руками собрать что‑то похожее у себя — без DevOps‑отдела и без бюджета на энтерпрайз‑решения — и посмотреть, где ручной, но осознанный self‑hosted реально ломается, а где отрабатывает не хуже платного SaaS. Дальше — конфиги и грабли и ужасный sec?
Пароль от хостинга — в личных сообщениях. SSH‑ключ — в архиве на рабочем столе, который никто не чистил года три. Токен от CRM — в закреплённом сообщении в Telegram, которое уже никто не читает. Знакомо? У нас было ровно так, пока я не сел и не разобрался, что с этим делать. Это не очередной «как поднять Vaultwarden за 10 минут» — таких гайдов хватает в вики проекта. Это история про то, что происходит после команды docker compose up: VPN‑периметр вместо открытого порта, самоподписанный CA, который красиво работает на десктопах и разваливается на Android, DNS-01 challenge с собственным хуком для acme.sh под провайдера, которого нет в официальном списке, бэкап в два независимых конца и восстановление, протестированное заранее, а не в момент паники. Если вы технарь — здесь рабочие конфиги, а не псевдокод: Caddy, docker‑compose, скрипт под acme.sh ретеншен бэкапов без магии. Если интегратор на Bitrix — готовая структура коллекций и прав под клиентские проекты, роли Dev/Marketing/Infra, чек‑лист на нового клиента. Если тимлид — регламент, который реально прижился в команде, а не умер через неделю, как очередная табличка в Notion. Отдельный мотивбыл личный: давно хотелось не просто читать про self‑hosted‑подход бигтеха к секретам, а руками собрать что‑то похожее у себя — без DevOps‑отдела и без бюджета на энтерпрайз‑решения — и посмотреть, где ручной, но осознанный self‑hosted реально ломается, а где отрабатывает не хуже платного SaaS. Дальше — конфиги и грабли и ужасный sec?