Новые релизы
Сравнение версии рецепта с последним известным релизом upstream. Это номер версии, а не разбор изменений.
Выбор редакцииМенеджеры паролей
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. Это номер версии, а не разбор изменений.
Результат отдельного сканирования Docker-образов, а не проверки Compose.
Новый major находится сравнением номеров версий. Вердикт о совместимости заносится вручную после чтения release notes и порядка миграции.
Изменения upstream Compose относительно проверенного рецепта.
Проверка закреплённых тегов образов на наличие новых версий.
От наблюдения к действию
Рецепт уже закрепляет последний известный релиз. Ниже показаны сохранённые основания для этой версии.
1.37.21.37.2Открыть релиз на GitHub ↗ Ссылка нужна для ревизии и сама по себе не доказывает совместимость.
Номера версий не пересекают major-границу совместимости. Вердикт о совместимости не записан.
Смена тегов образов сейчас не планируется.
Смена тега и перезапуск. Шаги конкретного релиза всё равно берутся из release notes и инструкции по установке.
Смена версии сейчас не планируется. Рецепт содержит процедуру backup. Restore проверен.
Точная проверка уровня «Проверен полностью» для этой версии записана 2026-08-30.
Статус показывает, насколько опубликованный рецепт покрывает требования каждого уровня.
Минимальная конфигурация для локальной сети или доступа через VPN.
Рецепт закрывает все требования этого уровня.
Публичная установка с защищённым доступом и резервными копиями.
Рецепт закрывает все требования этого уровня.
Конфигурация для предсказуемой эксплуатации и наблюдаемости.
Нужно добавить вручную: отдельная бд, внешний мониторинг, лимиты cpu и памяти.
Собрать под свой сервер
Ответьте на пять вопросов и скачайте готовый комплект Vaultwarden.
Сначала прочитайте полную инструкцию: в ней описаны доступ извне, backup и расположение данных.
cp .env.example .envdocker compose up -ddocker compose psДля этого рецепта выделите минимум 1 CPU, 256 МБ RAM и 1 ГБ локального диска; рекомендуется 512 МБ RAM плюс место для вложений и резервных копий. Это консервативная оценка рецепта: upstream не публикует формальные минимальные требования. Нужны Ubuntu 22.04+ или Debian 12+ с Docker Engine и Docker Compose v2.24+.
docker --version
docker compose version
Поместите файлы рецепта в отдельный каталог и создайте закрытый .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.
Оставьте порт доступным только на 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 оставьте 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 без сетевых ограничений.
Замените 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.
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 требует 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.
Fossary — независимый информационный каталог, не связанный с разработчиками представленных приложений. Мы собираем сведения из открытых источников и проверяем опубликованные рецепты, но не разрабатываем, не распространяем и не контролируем эти приложения.
Публикация карточки или статус проверки не являются требованием, навязыванием либо персональной рекомендацией использовать приложение. Вы самостоятельно решаете, подходит ли оно вам, и используете его на свой риск. Мы не гарантируем безопасность, доступность или пригодность приложения и, в пределах, допускаемых законом, не отвечаем за вызванные им потери или ущерб. До установки проверьте лицензию, настройки безопасности, обработку данных и резервное копирование.