SSD Nodes Learn 🎉 VPS от $4.99/мес
Руководства Matt ConnorАвтор: Matt Connor · Обновлено 2026-08-07

Vaultwarden или Bitwarden self-hosted: что выбрать?

Официальный сервер Bitwarden требует 2 ГБ ОЗУ и дюжину контейнеров. Vaultwarden выполняет те же задачи в одном контейнере с SQLite. Узнайте, какой вариант лучше для вашего VPS.

Что на самом деле представляют собой Vaultwarden и Bitwarden self-hosted

Выбор между Vaultwarden и Bitwarden self-hosted — это выбор между двумя серверами, которые используют один и тот же API клиента, а не выбор между двумя разными менеджерами паролей. Официальный стек Bitwarden запускает около дюжины контейнеров за Nginx, хранит все данные в Microsoft SQL Server и привязан к ID установки, который регистрируется через адрес электронной почты. Vaultwarden — это неофициальная реализация API клиента Bitwarden, написанная на Rust, которая работает как один контейнер с одним файлом SQLite. Ваше расширение для браузера и телефон не видят разницы, так как оба сервера отвечают на одни и те же запросы.

Шифрование в обоих случаях идентично. Клиенты Bitwarden шифруют хранилище до того, как данные покинут устройство, поэтому сервер хранит только зашифрованные блоки, которые он не может прочитать. Формат хранилища в обоих случаях принадлежит Bitwarden. Разница заключается в требованиях к ресурсам сервера, в том, кто поддерживает код, какие функции являются платными и что именно вам нужно резервировать.

В файле README проекта Vaultwarden прямо указано: «Этот проект не связан с Bitwarden или Bitwarden, Inc.». Это волонтерский проект без службы поддержки и каких-либо гарантий. Один из активных мейнтейнеров работает в Bitwarden и вносит вклад в свободное от работы время, что является личной инициативой, а не официальной поддержкой со стороны компании.

Три стека, которые можно установить

Большинство сравнений упускают тот факт, что Bitwarden поставляет два разных продукта для self-hosted установки.

Bitwarden standard. Официальный вариант развертывания от вендора, управляемый shell-скриптом.

curl -Lso bitwarden.sh "https://func.bitwarden.com/api/dl/?app=self-host&platform=linux" \
  && chmod 700 bitwarden.sh
./bitwarden.sh install

Установщик запрашивает ваш домен, необходимость получения сертификата Let's Encrypt, имя базы данных, а также ID и ключ установки, которые вы получаете на https://bitwarden.com/host, указав адрес электронной почты. Затем ./bitwarden.sh start загружает образы и запускает стек. Bitwarden указывает 2 ГБ ОЗУ и 12 ГБ дискового пространства как минимум, 4 ГБ и 25 ГБ как рекомендуемые требования, а также Docker Engine версии 26 или новее с плагином Compose. В качестве базы данных используется образ MSSQL Express, и эта редакция ограничивает размер реляционной базы данных 10 ГБ, если вы не настроите развертывание на использование внешней базы данных.

Bitwarden lite. Это вариант развертывания, который раньше назывался Bitwarden Unified. Он вышел из стадии бета-тестирования и был переименован в декабре 2025 года. Один контейнер приложения плюс база данных на ваш выбор:

services:
  bitwarden:
    depends_on:
      - db
    env_file:
      - settings.env
    image: ghcr.io/bitwarden/lite
    restart: always
    ports:
      - "80:8080"
    volumes:
      - bitwarden:/etc/bitwarden
  db:
    environment:
      MARIADB_USER: "bitwarden"
      MARIADB_PASSWORD: "super_strong_password"
      MARIADB_DATABASE: "bitwarden_vault"
      MARIADB_RANDOM_ROOT_PASSWORD: "true"
    image: mariadb:10
    restart: always
    volumes:
      - data:/var/lib/mysql
volumes:
  bitwarden:
  data:

Он поддерживает MariaDB или MySQL, PostgreSQL, SQLite и MSSQL, требуя 200 МБ ОЗУ и 1 ГБ дискового пространства. В документации самого Bitwarden есть два предостережения. Он предназначен для личного использования и домашних лабораторий, а не для бизнеса, и не выполняет автоматическое резервное копирование базы данных, поэтому эта задача полностью ложится на вас.

Vaultwarden. Один контейнер, согласно README проекта:

docker run --detach --name vaultwarden \
  --env DOMAIN="https://vw.domain.tld" \
  --volume /vw-data/:/data/ \
  --restart unless-stopped \
  --publish 127.0.0.1:8000:80 \
  vaultwarden/server:latest

Строка publish привязывает порт 8000 только к loopback, и это сделано намеренно. Vaultwarden работает по обычному HTTP и предполагает, что перед ним будет стоять reverse proxy для завершения TLS (transport layer security). TLS здесь обязателен: веб-хранилище выполняет шифрование с помощью WebCrypto API браузера, который доступен только в защищенном контексте. Поэтому при использовании обычного http страница входа в браузере не загрузится, даже не дойдя до вашего сервера. В полном руководстве по установке Vaultwarden рассматриваются настройка прокси и сертификата.

Сколько оперативной памяти потребляет Vaultwarden по сравнению с Bitwarden self-hosted?

Минимальные системные требования от поставщика указывают лишь на то, при каких условиях установщик разрешит запуск, а не на реальное потребление ресурсов. Приведенные ниже данные получены с помощью docker stats --no-stream на «чистых» установках: по одному пользователю, небольшое хранилище, отсутствие вложений, ОС Ubuntu 24.04 с 4 ГБ ОЗУ. Дисковое пространство включает образы и каталог данных после первого успешного запуска.

ChartIdle memory, container count and disk, measured on one Ubuntu 24.04 box
The data behind this chart
[
  {
    "label": "Vaultwarden (SQLite)",
    "idle_ram_mb": 58,
    "containers": 1,
    "disk_gb": 0.4
  },
  {
    "label": "Bitwarden lite + MariaDB",
    "idle_ram_mb": 470,
    "containers": 2,
    "disk_gb": 1.6
  },
  {
    "label": "Bitwarden standard (MSSQL)",
    "idle_ram_mb": "2,400",
    "containers": 12,
    "disk_gb": 6.5
  }
]

Vaultwarden в одном контейнере потребляет в простое 58 МБ. Стандартный стек Bitwarden потребляет около 2,400 МБ, распределенных между 12 контейнерами, причем основная часть приходится на контейнер MSSQL. Облегченная версия Bitwarden занимает промежуточное положение с 470 МБ, используя контейнер MariaDB. Выполните ту же команду на своем сервере, прежде чем доверять этим цифрам, так как потребление зависит от количества пользователей, вложений и интенсивности синхронизации, а MSSQL увеличивает объем используемой памяти по мере работы.

Практический вывод для небольшого VPS: Vaultwarden с SQLite стабильно работает на тарифе с 1 ГБ ОЗУ, в то время как стандартный стек Bitwarden там не запустится. На тарифе с 2 ГБ ОЗУ стандартный стек соответствует минимальным требованиям, но оставляет слишком мало ресурсов для операционной системы, из-за чего срабатывание механизма OOM Killer (Out of Memory) становится неизбежным. Когда он срабатывает, dmesg выводит строку с именем завершенного процесса, и в данном стеке это обычно sqlservr. Для стандартного развертывания выделяйте не менее 4 ГБ ОЗУ.

Какие платные функции доступны бесплатно в Vaultwarden?

Запуск сервера Bitwarden бесплатен, но платные функции остаются заблокированными до загрузки файла лицензии. Лицензия требуется для индивидуальных премиум-аккаунтов и всех платных уровней организации (Families, Teams, Enterprise). Вы скачиваете её из облачного веб-хранилища: в разделе Settings, затем Subscription для индивидуальных пользователей, или в Admin Console, затем Billing и Subscription для организаций, после чего загружаете на свой экземпляр. Лицензии для организаций выдаются на основе идентификатора установки (installation ID), который хранится в ./bwdata/env/global.override.env. Таким образом, self-hosted организация по-прежнему имеет платную подписку и взаимодействует с облаком Bitwarden для оплаты.

Vaultwarden активирует эти же функции без лицензии и подписки. В вики проекта перечислены следующие возможности:

  • организации, коллекции и группы
  • вложения файлов
  • двухэтапная аутентификация через email, Duo, YubiKey и FIDO2
  • экстренный доступ (Emergency Access)
  • Bitwarden Send
  • персональные API-ключи
  • SSO через OpenID Connect

SSO — самая новая из этих функций, она настраивается с помощью SSO_ENABLED, SSO_AUTHORITY, SSO_CLIENT_ID и SSO_CLIENT_SECRET. Она аутентифицирует только вход в систему. В вики четко указано, что мастер-пароль по-прежнему обязателен и не контролируется вашим поставщиком идентификации (identity provider), так как этот пароль используется для получения ключа, расшифровывающего хранилище. Укажите SSO_AUTHORITY на discovery issuer самостоятельно развернутого поставщика идентификации Authentik, и пользователи будут входить через него, а затем разблокировать хранилище мастер-паролем. Значение должно совпадать с полем issuer, которое возвращает discovery endpoint, без суффикса /.well-known/openid-configuration в конце.

Чего вы не получаете от Vaultwarden, так это вендора. Bitwarden обладает сертификатами SOC 2 Type 2 и ISO 27001, публикует отчеты сторонних аудитов и проводит частную программу bug bounty на HackerOne. Эти меры относятся к коду и сервису Bitwarden, а не к серверу, который вы установили. Если аудитору требуется наличие официального поставщика за вашим менеджером паролей, добровольная переработка (reimplementation) может стать сложной темой для обсуждения.

Работают ли официальные приложения Bitwarden с Vaultwarden?

Да. Vaultwarden реализует клиентский API, поэтому расширения для браузеров, настольные приложения, мобильные приложения и встроенное веб-хранилище полностью совместимы. В каждом клиенте необходимо указать URL вашего сервера на экране настроек среды до входа в систему, а не после.

Одна функция требует дополнительной настройки: push-уведомления для мобильных приложений. Без них приложение синхронизируется только при открытии или по собственному таймеру, поэтому пароль, измененный на ноутбуке, не появится на телефоне, пока вы его не откроете. Vaultwarden может использовать push-релей Bitwarden, для чего требуются installation ID и key с той же страницы https://bitwarden.com/host, которую использует официальный установщик.

PUSH_ENABLED=true
PUSH_INSTALLATION_ID=<your installation id>
PUSH_INSTALLATION_KEY=<your installation key>

Серверам в регионе EU также требуются PUSH_RELAY_URI=https://api.bitwarden.eu и PUSH_IDENTITY_URI=https://identity.bitwarden.eu. В вики описаны две ловушки, о которых стоит знать, прежде чем тратить час на отладку. Приложение, установленное из F-Droid или Neo Store, не имеет поддержки Firebase и не будет получать push-уведомления, независимо от настроек сервера. Если приложение было подключено до версии Vaultwarden 1.30.2, необходимо очистить его данные, чтобы оно корректно зарегистрировало push-токен.

Насколько безопасна перереализация?

История аудитов Bitwarden обширна и находится в открытом доступе. Компания Cure53 проводила проверки в 2018, 2021, 2022 и 2023 годах. В 2024 году клиенты были проверены специалистами IOActive и Mandiant, в 2024 и 2025 годах Fracture Labs выполнила оценку веб-интерфейса и сетевой безопасности, в 2025 году Unit 42 проанализировала мобильные приложения, а группа прикладной криптографии ETH Zurich провела аудит криптографических механизмов.

Vaultwarden также подвергался сторонним проверкам, что часто удивляет тех, кто считает, что проект никто не изучает. Федеральное ведомство по информационной безопасности Германии (BSI) в рамках проекта по анализу кода Caos 3.0 поручило компании mgm security partners протестировать его в период с февраля по май 2024 года; по результатам проверки две находки были классифицированы как критические. Отдельно компания ERNW сообщила об уязвимости обхода аутентификации, затрагивающей версии ниже 1.32.5 (CVE-2024-55225), которая была устранена в ноябре 2024 года. В версии 1.37.0, выпущенной в июле 2026 года, были исправлены уязвимости SSRF (подделка запроса на стороне сервера) через конечную точку иконок, несанкционированный доступ к шифрам между организациями и обход политик организации при импорте каталогов.

Эта история демонстрирует проект с работающим процессом раскрытия информации. Она также указывает на область, в которой постоянно возникают проблемы: страница администратора. Относитесь к этой странице как к критически важному компоненту. Она должна оставаться отключенной, если не задана переменная ADMIN_TOKEN, при этом следует хранить хеш, а не токен в открытом виде.

docker run --rm -it vaultwarden/server /vaultwarden hash

Эта команда выводит строку Argon2 в формате PHC (password hashing competition), которую нужно вставить в ADMIN_TOKEN. Включите HTTPS перед активацией страницы администратора, так как токен передается в запросе, и токен в открытом виде при обычном HTTP-соединении может быть перехвачен любым узлом на пути следования трафика. По возможности ограничьте доступ к /admin из публичной сети и дополните это стандартными мерами по укреплению безопасности хоста, такими как ограничение доступа по SSH к серверу.

Что ломается при изменении официального API

Это риск, который многие недооценивают. Bitwarden выпускает клиенты, и эти клиенты обновляются из магазинов приложений автоматически в ночное время. Vaultwarden вынужден следовать за ними. Когда в новой версии клиента меняется API, не обновленный Vaultwarden сталкивается с клиентом, который уже перешел на новый стандарт. В результате вход в систему или синхронизация перестают работать на устройствах, которые вы даже не трогали.

В примечаниях к выпуску есть конкретный пример. В Vaultwarden 1.37.0 сказано: «Это обновление необходимо для поддержки клиентов версии 2026.7.0+, пожалуйста, обновитесь перед тем, как сообщать о любых проблемах с ними». По состоянию на август 2026 года текущим релизом является 1.37.1, опубликованный 29 июля 2026 года.

Две привычки помогут избежать проблем. Закрепите конкретный тег образа вместо latest, чтобы автоматическое обновление не привело к смене версии сервера в 3 часа ночи. Затем следите за лентой релизов и обновляйтесь осознанно, предварительно читая примечания, так как критические изменения описываются только там. Например, версия 1.35.5 при обновлении аннулировала все существующие токены «запомнить меня» для двухфакторной аутентификации, из-за чего пользователи вышли из системы на этапе, который, как они думали, был сохранен.

Стандартное развертывание Bitwarden имеет зеркальную проблему. Обновления выполняются через ./bitwarden.sh updateself и ./bitwarden.sh update, и при этом применяются миграции базы данных. Резервная копия, созданная до миграции, не является средством отката для схемы после нее, поэтому делайте резервную копию и записывайте версию, на которой вы ее создали.

Резервное копирование: где чаще всего теряют хранилища

Каталог данных Vaultwarden — это и есть сервер. Сохраняйте следующие элементы:

  • db.sqlite3
  • все файлы rsa_key*, включая rsa_key.pem и rsa_key.der
  • attachments/
  • config.json
  • sends/

Не копируйте db.sqlite3 с помощью cp во время работы контейнера. SQLite может находиться в процессе записи, поэтому копия может оказаться поврежденной базой данных, которая выглядит исправной до момента восстановления. Вместо этого используйте API для резервного копирования «на лету»:

sqlite3 data/db.sqlite3 ".backup '/path/to/backups/db-$(date '+%Y%m%d-%H%M').sqlite3'"

Начиная с версии 1.32.1 в образ также встроена команда /vaultwarden backup. В любом случае, снапшот остается на том же диске, что и оригинал, пока вы его не переместите, поэтому отправляйте его за пределы сервера с помощью restic snapshots to off-site storage по расписанию. Файлы rsa_key важны не меньше, чем база данных: сервер подписывает ими свои сессионные токены, поэтому база данных, восстановленная вместе с заново сгенерированным ключом, приведет к выходу всех пользователей из системы и нарушит работу приглашений в организации, которые были в процессе отправки.

Стандартная версия Bitwarden выполняет больше операций резервного копирования самостоятельно. Контейнер mssql каждую ночь записывает резервные копии базы данных в ./bwdata/mssql/backups и хранит их 30 дней, пока контейнер запущен; вы также можете принудительно запустить создание копии:

docker exec -i bitwarden-mssql /backup-db.sh

Каталоги, которые необходимо сохранять: ./bwdata/env (переменные окружения, включая пароли от базы данных и сертификатов), ./bwdata/core/attachments, ./bwdata/mssql/data и ./bwdata/core/aspnet-dataprotection. Последний — это то, о чем люди часто забывают. Он содержит данные для защиты на уровне фреймворка, включая токены аутентификации и некоторые столбцы базы данных, поэтому восстановление базы данных без него сделает защищенные им столбцы нечитаемыми. Версия Bitwarden lite не выполняет автоматического резервного копирования, поэтому выбор lite означает необходимость самостоятельной настройки расписания дампов, точно так же, как в случае с Vaultwarden.

Миграция в любом направлении

Процесс миграции выполняется через клиентские приложения, а не через серверы, так как функции экспорта и импорта реализованы на стороне клиента. Благодаря этому процедура в обоих направлениях идентична.

Каждый пользователь выполняет экспорт из веб-хранилища или десктопного приложения, создает учетную запись на новом сервере и выполняет импорт. Доступны следующие форматы: обычный текст .json, обычный текст .csv, зашифрованный .json и .zip, который содержит JSON-данные вместе с файловыми вложениями для отдельных хранилищ. Банковские карты, личные данные, сохраненные ключи доступа (passkeys) и SSH-ключи сохраняются только в форматах JSON, поэтому при миграции через CSV эти данные будут без предупреждения удалены. Ни один формат экспорта не включает содержимое корзины или элементы Sends, а данные, принадлежащие организации, не являются частью индивидуального экспорта.

Относитесь к экспорту в открытом виде как к активному секрету, поскольку это и есть ваш полный сейф в незашифрованном виде на диске. Выполните экспорт, импорт и удаление файла за один сеанс. Никогда не пересылайте такой файл через электронную почту или мессенджеры.

Одна ловушка часто подводит пользователей во время миграции. Зашифрованный экспорт, привязанный к вашей учетной записи, невозможно импортировать в другую учетную запись, а смена сервера по определению означает использование новой учетной записи. Выбирайте вариант экспорта с защитой паролем — он является переносимым.

Переход с Vaultwarden на стандартный Bitwarden является более сложным направлением, так как структура организации не переносится при экспорте. Вам потребуется заново создать организацию на новом сервере, повторно пригласить пользователей, после чего каждый пользователь должен будет импортировать свое личное хранилище. Запланируйте для этого отдельное окно обслуживания, чтобы не столкнуться с необходимостью выполнения этих действий в последний момент.

Что выбрать для запуска?

Запускайте Vaultwarden, если вы используете его в одиночку, для семьи или в домашней лаборатории на VPS с 1 ГБ или 2 ГБ оперативной памяти. Функции Organisations, Emergency Access и Send доступны бесплатно, потребление памяти в простое сопоставимо с одной вкладкой браузера, а резервная копия состоит из файла SQLite и небольшой директории. Это сочетание делает его лидером в сфере self-hosted менеджеров паролей.

Запускайте официальный сервер Bitwarden, если от него профессионально зависят другие люди: например, в компании, которой требуется договор на техническую поддержку, соблюдение комплаенса с указанием конкретного поставщика или корпоративные функции, за которые вы уже платите. Выделяйте для стандартного развертывания 4 ГБ оперативной памяти и относитесь к файлу лицензии и installation ID как к части процесса развертывания, а не как к бюрократической формальности.

Bitwarden lite занимает неудобную промежуточную нишу. Это код от вендора с гораздо меньшими системными требованиями, что выглядит привлекательно, однако Bitwarden позиционирует его для личного использования и домашних лабораторий, при этом в нем отсутствуют автоматические резервные копии. Вы берете на себя эксплуатационную нагрузку Vaultwarden, не получая при этом его бесплатных функций. Выбирайте этот вариант, если код от вендора для вас важнее функциональности и вы готовы самостоятельно обслуживать базу данных.

Если вы еще решаете, что именно будет размещено на сервере, общий список сервисов для self-hosting поможет сравнить этот выбор с другими приложениями, конкурирующими за тот же объем оперативной памяти.

FAQ

Достаточно ли безопасен Vaultwarden для полноценного менеджера паролей?

Для личного и семейного использования — да, при соблюдении условий. Клиентские приложения шифруют хранилище до отправки на сервер, поэтому Vaultwarden никогда не получает ваш мастер-пароль или данные в открытом виде. Продукт проходил внешние проверки: BSI организовало тестирование силами mgm security partners в период с февраля по май 2024 года, а компания ERNW обнаружила уязвимость обхода аутентификации, исправленную в версии 1.32.5. Поддерживайте актуальную версию, держите страницу администратора отключенной или защищенной хешем Argon2 ADMIN_TOKEN и используйте только HTTPS. Организациям, которым требуется поддержка от вендора или аудиторская документация, следует использовать официальный сервер Bitwarden.

Сколько оперативной памяти нужно Vaultwarden по сравнению с self-hosted версией Bitwarden?

При замерах на простаивающих установках с помощью docker stats --no-stream, Vaultwarden с базой данных SQLite потреблял около 58 МБ в одном контейнере. Стандартное развертывание Bitwarden потребляло около 2,400 МБ в 12 контейнерах, причем основная часть нагрузки приходилась на базу данных MSSQL. В документации Bitwarden указано 2 ГБ как минимум и 4 ГБ как рекомендуемый объем для стандартного стека, а для версии Bitwarden lite — 200 МБ. Vaultwarden стабильно работает на VPS с 1 ГБ памяти, оставляя свободные ресурсы.

Нужна ли лицензия Bitwarden для self-hosted установки?

Для бесплатного личного хранилища — нет. Запуск сервера бесплатен. Лицензионный файл требуется для разблокировки премиум-функций для частных лиц и любых платных корпоративных тарифов (Families, Teams и Enterprise). Вы скачиваете его из облачного веб-хранилища и загружаете в свой экземпляр; лицензии для организаций привязываются к идентификатору установки (installation ID), который хранится в ./bwdata/env/global.override.env. Vaultwarden не требует лицензии и активирует функции организации самостоятельно.

Можно ли позже перейти с Vaultwarden на Bitwarden или обратно?

Да, в обоих направлениях, используя клиентские приложения. Каждый пользователь экспортирует свое хранилище из веб-интерфейса или десктопного приложения и импортирует его на новый сервер после создания там учетной записи. Экспорт в формате .zip включает вложения для личных хранилищ, а JSON-файлы содержат данные карт, удостоверений, ключи доступа (passkeys) и SSH-ключи. Удаленные элементы и функция Sends не входят в форматы экспорта, а элементы, принадлежащие организации, должны быть экспортированы владельцем отдельно. Планируйте перенос с учетом необходимости воссоздания организации и повторного приглашения пользователей на новом сервере.

#vaultwarden#bitwarden#password-manager#self-hosting#docker