Self-hosted менеджер паролей: разворачиваем storage-p на своём сервере
storage-p изначально рассчитан на размещение на своём сервере: единый стек в Docker за Caddy на вашем домене, база зашифрована на диске (at-rest). Полный контроль и приватность в одних руках — никакой зависимости от чужого облака, и ключи не держит никто, кроме вас.
Что понадобится
Небольшой Linux-сервер, доменное имя и Docker с Docker Compose. Этого набора хватает, чтобы поднять весь стек целиком.
Как устроен стек
Caddy отдаёт статический веб-клиент и проксирует /api на бэкенд (Rust/axum). TLS-сертификаты Caddy выпускает и продлевает сам. Бэкенд складывает всё в базу SQLite, зашифрованную на диске через SQLCipher, и всегда оперирует только шифротекстом.
Развёртывание
- Направьте A-запись DNS вашего домена на сервер.
- Поднимите стек через Compose (статический клиент + бэкенд + Caddy). При первом старте Caddy сам получит TLS.
- Откройте сайт и создайте первый аккаунт — все ключи клиент генерирует в браузере.
Защита базы данных и ключей
База SQLite зашифрована на диске через SQLCipher. Ключ шифрования базы держите вне репозитория, а том с данными бэкапьте вместе с журналом упреждающей записи (WAL) — только так восстановление будет консистентным.
Наружу открывайте лишь порты 80 и 443; бэкенд должен оставаться во внутренней сети.
Опционально: подтверждения через Telegram
Чтобы одобрять чтения по ограниченным API-токенам прямо с телефона, задайте секрет вебхука Telegram и подключите бота. Пока бот не настроен, маршрут вебхука остаётся закрытым.