storage-p

Self-hosted менеджер паролей: разворачиваем storage-p на своём сервере

storage-p изначально рассчитан на размещение на своём сервере: единый стек в Docker за Caddy на вашем домене, база зашифрована на диске (at-rest). Полный контроль и приватность в одних руках — никакой зависимости от чужого облака, и ключи не держит никто, кроме вас.

Что понадобится

Небольшой Linux-сервер, доменное имя и Docker с Docker Compose. Этого набора хватает, чтобы поднять весь стек целиком.

Как устроен стек

Caddy отдаёт статический веб-клиент и проксирует /api на бэкенд (Rust/axum). TLS-сертификаты Caddy выпускает и продлевает сам. Бэкенд складывает всё в базу SQLite, зашифрованную на диске через SQLCipher, и всегда оперирует только шифротекстом.

Развёртывание

  1. Направьте A-запись DNS вашего домена на сервер.
  2. Поднимите стек через Compose (статический клиент + бэкенд + Caddy). При первом старте Caddy сам получит TLS.
  3. Откройте сайт и создайте первый аккаунт — все ключи клиент генерирует в браузере.

Защита базы данных и ключей

База SQLite зашифрована на диске через SQLCipher. Ключ шифрования базы держите вне репозитория, а том с данными бэкапьте вместе с журналом упреждающей записи (WAL) — только так восстановление будет консистентным.

Наружу открывайте лишь порты 80 и 443; бэкенд должен оставаться во внутренней сети.

Опционально: подтверждения через Telegram

Чтобы одобрять чтения по ограниченным API-токенам прямо с телефона, задайте секрет вебхука Telegram и подключите бота. Пока бот не настроен, маршрут вебхука остаётся закрытым.