Проверен полностью66 501

Выбор редакцииМенеджеры паролей

Vaultwarden

Vaultwarden хранит пароли, защищённые заметки, вложения и общие коллекции на вашем сервере и работает с официальными клиентами Bitwarden. Для небольшого инстанса достаточно одного контейнера и локального Docker volume с SQLite.

Обзор

Vaultwarden — компактная реализация серверного API Bitwarden на Rust для частных пользователей, семей и небольших команд. Она поддерживает официальный web vault, мобильные приложения, desktop-клиенты и браузерные расширения Bitwarden, а также вложения, организации, Send и двухфакторную аутентификацию.

Рецепт использует встроенную SQLite и хранит базу, вложения, ключи и конфигурацию в одном локальном Docker volume. Отдельная БД не нужна, но именно поэтому этот вариант не заявлен как уровень reliable: в нём нет внешней БД, мониторинга и ресурсных лимитов.

Vaultwarden не связан с Bitwarden, Inc. Ошибки сервера и совместимости следует направлять проекту Vaultwarden, а не в официальную поддержку Bitwarden.

Оценка безопасности

Контейнер запускается без privileged, host network и Docker socket, с no-new-privileges; порт привязан только к 127.0.0.1. Регистрация и приглашения выключены по умолчанию, а /admin недоступен, потому что рецепт не задаёт ADMIN_TOKEN.

Vaultwarden хранит особенно ценные данные. Публикуйте его только через HTTPS, включите 2FA для пользователей, своевременно обновляйте образ и шифруйте копии, которые покидают сервер. Если нужна /admin, следуйте upstream-инструкции: создайте Argon2id-хеш токена, храните его вне Git и ограничьте путь на reverse proxy или через VPN.

Отслеживание обновлений

Это сохранённые результаты отдельных проверок, а не данные в реальном времени. Неизвестный статус означает, что проверка ещё не выполнялась.

Новые релизы

Сравнение версии рецепта с последним известным релизом upstream. Это номер версии, а не разбор изменений.

Актуальная версия 1.37.230 авг. 2026 г., 16:59 UTC

Несовместимые обновления

Новый major находится сравнением номеров версий. Вердикт о совместимости заносится вручную после чтения release notes и порядка миграции.

Не провереноПроверка не выполнялась

compose.yaml

Изменения upstream Compose относительно проверенного рецепта.

Upstream Compose не отслеживаетсяПроверка не выполнялась

Устаревшие Docker-образы

Проверка закреплённых тегов образов на наличие новых версий.

Все образы актуальны30 авг. 2026 г., 16:59 UTC

От наблюдения к действию

План обновления

Рецепт уже закрепляет последний известный релиз. Ниже показаны сохранённые основания для этой версии.

1.37.21.37.2
  1. Открыть основания релиза

    Открыть релиз на GitHub ↗ Ссылка нужна для ревизии и сама по себе не доказывает совместимость.

  2. Проверить границу версий

    Номера версий не пересекают major-границу совместимости. Вердикт о совместимости не записан.

  3. Подготовить смену тегов образов

    Смена тегов образов сейчас не планируется.

  4. Следовать документированной схеме миграции

    Смена тега и перезапуск. Шаги конкретного релиза всё равно берутся из release notes и инструкции по установке.

  5. Защитить точку отката

    Смена версии сейчас не планируется. Рецепт содержит процедуру backup. Restore проверен.

  6. Проверить обновлённый рецепт

    Точная проверка уровня «Проверен полностью» для этой версии записана 2026-08-30.

Прочитать порядок обновления в инструкции по установке ↓

Характеристики

Безопасность и публикация

Уровни установки

Статус показывает, насколько опубликованный рецепт покрывает требования каждого уровня.

Готово

Для дома

Минимальная конфигурация для локальной сети или доступа через VPN.

  • Один сервер
  • Локальный доступ
  • Минимум компонентов

Рецепт закрывает все требования этого уровня.

Готово

Для VPS

Публичная установка с защищённым доступом и резервными копиями.

  • Домен
  • HTTPS через reverse proxy
  • Backup вне сервера

Рецепт закрывает все требования этого уровня.

Не поддерживается

Надёжная

Конфигурация для предсказуемой эксплуатации и наблюдаемости.

  • Отдельная БД
  • Healthcheck
  • Внешний мониторинг
  • Лимиты CPU и памяти

Нужно добавить вручную: отдельная бд, внешний мониторинг, лимиты cpu и памяти.

Собрать под свой сервер

Генератор конфигурации

Ответьте на пять вопросов и скачайте готовый комплект Vaultwarden.

Работает локально
01 Есть домен?
02 Какой reverse proxy?
03 Архитектура сервера
04 Где хранить данные?

Укажите абсолютный путь для отдельного диска, например /srv/vaultwarden.

05 Требуется VPN-доступ?

Комплект готов к сборке

Архив создаётся в браузере. Ответы никуда не отправляются.

Скриншоты

Быстрый запуск

Сначала прочитайте полную инструкцию: в ней описаны доступ извне, backup и расположение данных.

Подготовить настройкиcp .env.example .env
Запуститьdocker compose up -d
Проверить состояниеdocker compose ps

Пошаговая инструкция

1. Проверьте сервер Ubuntu или Debian

Для этого рецепта выделите минимум 1 CPU, 256 МБ RAM и 1 ГБ локального диска; рекомендуется 512 МБ RAM плюс место для вложений и резервных копий. Это консервативная оценка рецепта: upstream не публикует формальные минимальные требования. Нужны Ubuntu 22.04+ или Debian 12+ с Docker Engine и Docker Compose v2.24+.

docker --version
docker compose version

2. Подготовьте файлы и переменные

Поместите файлы рецепта в отдельный каталог и создайте закрытый .env:

mkdir -p ~/services/vaultwarden
cd ~/services/vaultwarden
cp .env.example .env
chmod 600 .env

Укажите в VAULTWARDEN_DOMAIN реальный внешний URL без завершающего /. VAULTWARDEN_VERSION закрепляет образ; VAULTWARDEN_PORT задаёт локальный порт; VAULTWARDEN_DATA_VOLUME — имя volume; VAULTWARDEN_SIGNUPS_ALLOWED и VAULTWARDEN_INVITATIONS_ALLOWED управляют созданием пользователей; TZ задаёт часовой пояс. Все постоянные данные находятся в /data внутри volume.

3. Создайте первую учётную запись

Оставьте порт доступным только на localhost. Временно задайте в .env VAULTWARDEN_SIGNUPS_ALLOWED=true, затем запустите контейнер:

docker compose pull
docker compose up -d
docker compose ps
ssh -L 8000:127.0.0.1:8000 user@server.example

Откройте http://localhost:8000, зарегистрируйте пользователя и сразу верните VAULTWARDEN_SIGNUPS_ALLOWED=false, затем примените настройку командой docker compose up -d. localhost считается безопасным контекстом браузера; для любого удалённого доступа web vault требует HTTPS.

Запуск на VPS

На VPS оставьте bind 127.0.0.1, закройте порт 8000 снаружи и публикуйте сервис только через HTTPS reverse proxy. После запуска проверьте встроенный healthcheck:

docker compose up -d
docker compose ps
curl --fail http://127.0.0.1:8000/alive

Доступ в локальной сети

Без TLS используйте SSH-туннель или VPN. Если reverse proxy работает на другом узле доверенной LAN, замените 127.0.0.1 в compose.yaml на конкретный LAN-адрес сервера, ограничьте порт firewall адресом proxy и всё равно используйте HTTPS. Не публикуйте backend на 0.0.0.0 без сетевых ограничений.

Домен и HTTPS

Замените vault.example.com в .env и выбранном файле из proxy/ одним доменом. proxy/Caddyfile автоматически получает сертификат; proxy/nginx.conf ожидает сертификат Certbot; proxy/traefik.yaml использует resolver letsencrypt. Все варианты передают WebSocket на основном порту. Для Traefik в контейнере замените 127.0.0.1 на доступный ему host gateway.

Проверьте внешний endpoint: curl --fail https://vault.example.com/alive. Полная цепочка сертификатов и корректный HTTPS нужны web vault и мобильным клиентам.

Резервное копирование

chmod +x backup.sh restore.sh
./backup.sh

Скрипт останавливает Vaultwarden, архивирует весь volume /data и снова запускает контейнер. Так SQLite и WAL копируются согласованно. Архив содержит базу, вложения, Sends, RSA-ключи и возможные секреты из config.json: зашифруйте его и храните хотя бы одну копию вне сервера. Upstream рекомендует регулярные, как минимум ежедневные, копии и периодическую проверку восстановления.

Восстановление

Восстановление полностью заменяет содержимое volume выбранным архивом:

./restore.sh ./backups/vaultwarden-YYYYMMDDTHHMMSSZ.tar.gz
docker compose ps
curl --fail http://127.0.0.1:8000/alive

Перед заменой скрипт создаёт страховочную копию текущих данных. Не смешивайте файлы из разных снимков: db.sqlite3 и db.sqlite3-wal, если он присутствует, должны относиться к одной остановленной копии.

Обновление

Создайте backup, прочитайте release notes и проверьте совместимость клиентов. Измените только закреплённый VAULTWARDEN_VERSION, затем выполните:

docker compose pull
docker compose up -d
docker compose ps
docker compose logs --tail=100 vaultwarden

Откат

Не запускайте старый образ поверх базы, уже мигрированной новой версией. Верните прежний VAULTWARDEN_VERSION в .env, остановите сервис и восстановите архив, созданный перед обновлением:

docker compose pull
docker compose stop vaultwarden
./restore.sh ./backups/vaultwarden-before-update.tar.gz
docker compose up -d

Сверьтесь с release notes: некоторые изменения формата данных могут запретить downgrade без восстановления всей согласованной копии /data.

Остановка и полное удаление

docker compose down удаляет контейнер, но сохраняет volume. Полное необратимое удаление после проверки backup:

docker compose down
docker volume rm vaultwarden-data
rm -rf ~/services/vaultwarden

Источники: официальная установка, конфигурация, HTTPS, backup и admin page.

Диагностика

Контейнер не становится healthy

docker compose ps
docker compose logs --tail=200 vaultwarden
docker inspect --format '{{json .State.Health}}' "$(docker compose ps -q vaultwarden)"

Проверьте свободное место и доступность volume для записи. Endpoint /alive проверяет не только HTTP, но и соединение с базой данных.

Web vault сообщает о небезопасном контексте

Удалённый web vault требует HTTPS для Web Crypto API. Проверьте, что VAULTWARDEN_DOMAIN начинается с https://, сертификат содержит полную цепочку, а reverse proxy передаёт Host и X-Forwarded-Proto. HTTP допустим только через локальный localhost во время первоначальной настройки.

Клиенты не синхронизируются мгновенно

WebSocket использует основной порт и путь /notifications/hub. Проверьте заголовки Upgrade и Connection в Nginx. Caddy и Traefik поддерживают upgrade автоматически. Мобильные push-уведомления требуют отдельной upstream-настройки и не проверяются этим рецептом.

Нельзя зарегистрировать пользователя

Это безопасное поведение по умолчанию. Временно установите VAULTWARDEN_SIGNUPS_ALLOWED=true, выполните docker compose up -d, создайте нужную учётную запись через защищённое соединение и сразу верните false.

После изменения .env ничего не поменялось

Если раньше настройки сохранялись через /admin, файл /data/config.json перекрывает одноимённые environment variables. Просмотрите диагностику и файл, но не публикуйте его: в нём могут находиться токены и SMTP-пароли.

После обновления открылась пустая установка

Убедитесь, что подключён прежний volume, и не создавайте нового пользователя:

docker compose config
docker volume inspect vaultwarden-data
docker compose exec vaultwarden ls -la /data

Если volume выбран ошибочно, остановите контейнер и исправьте VAULTWARDEN_DATA_VOLUME. Не удаляйте старый volume до проверки backup.

Официальные источники

Последний релиз: 2026-08-22 · GitHub Stars: 66 501 · данные проверены 30 авг. 2026 г., 16:59 UTC

Отказ от ответственности

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

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