Нахуя?

Варианты хранить пароли:

  1. В голове…
  2. В текстовом файле - секурно
  3. Google Chrome / Firefox / … - пароли хранятся хрен пойми у кого
  4. Bitwarden / 1Password / ProtonPass - норм, но нада платить, и данные на чужих серверах
  5. Свой сервер - имба

Почему не поставить обычный Bitwarden на VPS?

Можно. Bitwarden официально можно поднять через

docker run bitwarden/self-host

Но:

  • Нада VPS - от 300-500 руб/мес
  • Нада Docker, нада следить чтоб не упало, нада обновлять, нада бэкапить
  • Для одного человека - жирнo, но круто

А хочется: бесплатно, ничего не админить, и чтоб работало.


NodeWarden - Bitwarden-совместимый сервер на Cloudflare Workers

NodeWarden - форк Bitwarden-сервера, который работает прямо на Cloudflare Workers.

То есть:

  • Бесплатно ( Workers - 100к запросов/день )
  • Ничего не надо админить
  • Cloudflare сам апдейтит инфраструктуру
  • База данных - Cloudflare D1 (бесплатно: 5 ГБ, 5 млн строк чтения/мес)

Совместим со всеми Bitwarden-клиентами: браузерное расширение, мобильное приложение, CLI.


Разворачивание

Кратенько:

  1. Форкаешь shuaiplus/nodewarden.
  2. Клонируешь локально: git clone <свой-форк> && cd <твоя-репа> && npm install
  3. Правишь wrangler.toml: name, database_name и т.д.
  4. D1-база создаётся автоматом при первом деплое - wrangler сам поднимет database_name из конфига.
  5. Добавляешь JWT_SECRET: Dashboard свой воркер Settings Variables. Любая строка >=32 символов, например openssl rand -base64 32.
  6. Деплой: Cloudflare Dashboard Workers & Pages Create Pages Connect to GitHub, выбираешь форк. Cloudflare сам забирает код, билдит и деплоит при каждом пуше в main. Билд-команда - npm run build, воркер деплоится вместе с Pages. Никаких GitHub Actions не нужно.

Важный момент: у Cloudflare бесплатный план, но чтобы создать R2 - нужна привязка карты.

В NodeWarden есть режим deploy:kv, который вместо R2 (файловые вложения) юзает KV. База данных в обоих случаях D1 - ниче привязывать ненад, фулл бесплатно. (если есть возможностость, можно и привязать пустую карту, но лимитов и так с головой)


Это безопасно?

в целом: да

Подробнее:

Под капотом стандартная Bitwarden-схема end-to-end шифрования:

  • Master password KDF master key (symmetric, AES-256). Живёт только в браузере, наружу не выходит никогда.
  • Master key HKDF encryption key - им шифруются все пароли, TOTP-ключи, заметки. Сервер видит только зашифрованный мусор.
  • Дополнительно генерится пара асимметричных ключей: public key хранится на сервере открыто, private key шифруется encryption key-ем и тоже улетает на сервер (нужен для синхра между устройствами).
  • Master password KDF client hash - улетает на сервер. Сервер солит его ещё раз (server hash) и хранит только его.
  • Сервер не может расшифровать vault. Вообще. У него нет ключей - только хэш для проверки пароля при логине.

Сервер хранит только зашифрованные данные. Даже если базу стащат - у злоумышленника будут только бесполезные данные, которые без мастер ключа он не вскроет.


Подводные камни

Есть нюансы:

Зависмость от Cf и GitHub

Со стороны Cloudflare теоретически может модифицировать твой worker, если ломанут git или сам cf.

Насколько это реально - вопрос к паранойе и твоей гигиене.


Фишки

NodeWarden поддерживает большинство фич Bitwarden. Вот чо есть:

Send

Можно создать временную ссылку, к которой можно приложить текст или файл.

Сгорает по времени или по количеству открытий.

Поверх ссылки можно навесить пароль (опционально). В любой момент Send можно отозвать вручную.

Backup Center

Можно настроить автоматические бекапы по расписанию. Бекапы шифрованные, без мастер-пароля с ними ниче не сделают.

TOTP (Verification Codes)

Встроенный TOTP-генератор - можно приписать к паролю и юзать вместо условного Google Authenticator

Passkeys

Можно заменить мастер-пароль на ключ доступа (WebAuthn).

2FA на вход

Двухфакторка при логине.

Но если кто-то утащит базу+пароль, то 2fa уже не поможет.

API Key

Для Bitwarden CLI и автоматизации


Заебись?

Плюсы:

  • Бесплатно
  • Ничего не надо админить
  • E2E шифрование
  • Bitwarden-совместимость (любой клиент)
  • TOTP, Send, Passkeys, 2FA, Backup Center, API Key
  • Бекапы в облако (WebDAV/S3)

Минусы:

  • Зависимость от Cloudflare и GitHub
  • Нет шеринга паролей между юзерами (каждый видит только свой vault)

Хороший вариант “повставил и забыл” для тех, кто не хочет платить за Bitwarden Premium, не хочет отдавать пароли гуглу, и не хочет админить VPS.