Vaultwarden#
Установка Vaultwarden#
Статья обновлена: добавлена продвинутая конфигурация с SSO (Authentik), push-уведомлениями и вынесением секретов в .env-файл — именно так теперь настроен инстанс на моём сервере.
Что такое менеджер паролей — кратко#
Менеджер паролей - это приложение, которое безопасно хранит ваши логины, пароли, заметки и другие секреты в зашифрованной форме и помогает автоматически подставлять данные при входе в сайты/приложения. Преимущества: сильные уникальные пароли для каждого сервиса, генерация случайных паролей, синхронизация между устройствами, централизованное хранилище паролей и ssh-ключей, а также история изменений.
Что такое Vaultwarden#
Vaultwarden - это лёгкая, быстрая и совместимая с Bitwarden реализация сервера (написана на Rust), которая реализует API Bitwarden и позволяет использовать официальные клиенты Bitwarden (браузерные расширения, мобильные/десктоп приложения) с вашим собственным сервером. Vaultwarden ориентирован на self-host развёртывание (контейнеры, Docker Compose, Kubernetes и т. п.).
Почему self-hosted#
Коротко - ключевые преимущества self-hosted Vaultwarden:
- Контроль над данными: база и резервные копии находятся под вашим и только вашим контролем, не в облаке у третьих лиц.
- Конфиденциальность: отсутствие передачи метаданных/бэкап-копий на внешние сервисы. Вы и только вы контролируете ваши данные.
- Гибкость и интеграция: можно подключить LDAP/SMTP/внешнюю БД, SSO через свой identity provider, настроить резервные копии, использовать свой TLS (reverse proxy) и т.д.
- Экономия и простота: Vaultwarden легче и дешевле по ресурсам, чем upstream Bitwarden Server.
Минусы/риски: вы сами отвечаете за безопасность (обновления, TLS, бэкапы, настройка брандмауэра, ротация секретов). Но тут есть один, для кого-то спорный, момент. По каким то причинам, люди считают, что Bitwarden более безопасен, так как это коммерческий продукт. Вроде бы, на первый взгляд, звучит логично. Но по факту, облачные сервисы компаний всегда по атакой, и иногда они ее пропускают. Тот же Bitwarden часто допускал утечки, а у пользователей его облака часто эти самые облака “угоняли”. Как это не странно может показаться, ты защищаешь свою инстанцию Vaultwarden куда тщательней. И это не учитывая, что ты, только не обижайся, в принципе интереса не представляешь.
Короткий план развертывания (что сделаем)#
- Начнём с базового
docker-compose.yml- минимальный рабочий вариант. - Разберём продвинутую конфигурацию: секреты в
.env, SSO через Authentik, push-уведомления, тюнинг Rocket/логирования - вариант, который сейчас крутится у меня. - Настроим reverse-proxy и TLS.
- Пройдёмся по админ-панели, регистрации пользователей и организациям.
- Разберём бэкапы и типичные ошибки.
Базовая установка#
Если вам нужен просто рабочий сервер без SSO и лишних настроек - этого варианта достаточно. Дальше в статье будет и продвинутая версия, но начать проще с этой.
services:
vaultwarden: # Определение сервиса Vaultwarden -основного контейнера менеджера паролей.
container_name: vaultwarden # Имя контейнера в Docker -удобно для команд и логов.
image: vaultwarden/server:latest # Официальный образ Vaultwarden с Docker Hub (написан на Rust).
restart: unless-stopped # Контейнер будет автоматически перезапущен, если упадёт, но не после ручной остановки.
volumes:
- /path/to/bind/mount/:/data/ # Монтируем локальную директорию на хосте в /data контейнера.
# Здесь хранятся база данных, вложения и конфигурация Vaultwarden.
environment:
- SIGNUPS_ALLOWED=false # Запрещаем регистрацию новых пользователей (false) -повышает безопасность.
- ADMIN_TOKEN=replace_with_a_hashed_token # См. раздел про хэширование ниже — не храните токен открытым текстом.
- WEBSOCKET_ENABLED=true # Включаем WebSocket -клиенты Bitwarden смогут мгновенно получать обновления.
- DOMAIN=https://vaultwarden.domain.ru # Указываем домен — нужен для правильных ссылок (сброс пароля, TOTP и т.д.)
- TZ=Europe/Moscow # Задаём часовой пояс — корректное время в логах и уведомлениях.
networks:
- proxy # Подключаем контейнер к внешней сети Traefik'а, чтобы прокси мог его обнаружить.
labels:
- "traefik.enable=true"
# --- HTTP → HTTPS редирект ---
- "traefik.http.routers.vaultwarden.entrypoints=web"
- "traefik.http.routers.vaultwarden.rule=Host(`vaultwarden.domain.ru`)"
- "traefik.http.middlewares.vaultwarden-https-redirect.redirectscheme.scheme=https"
- "traefik.http.routers.vaultwarden.middlewares=vaultwarden-https-redirect"
# --- HTTPS (secure) ---
- "traefik.http.routers.vaultwarden-secure.entrypoints=websecure"
- "traefik.http.routers.vaultwarden-secure.rule=Host(`vaultwarden.domain.ru`)"
- "traefik.http.routers.vaultwarden-secure.tls=true"
- "traefik.http.routers.vaultwarden-secure.service=vaultwarden"
# --- Backend настройки ---
- "traefik.http.services.vaultwarden.loadbalancer.server.port=80"
- "traefik.docker.network=proxy"
security_opt:
- no-new-privileges:true # Контейнер не сможет повысить свои привилегии внутри системы.
networks:
proxy:
external: true # Используем внешнюю сеть Docker, которую уже использует Traefik.Примечания к базовому файлу#
ADMIN_TOKEN- токен для входа в административную панель (/admin). Без него панель недоступна. Как захэшировать токен по всем правилам - см. раздел «Безопасный ADMIN_TOKEN» ниже.SIGNUPS_ALLOWED=false- рекомендуется, если сервер доступен извне. Разрешайтеtrueтолько на время создания первого аккаунта, затем выключайте.WEBSOCKET_ENABLED=true- синхронизация клиентов в реальном времени. Reverse-proxy должен поддерживать проксированиеUpgrade: websocket.
Продвинутая конфигурация: .env, SSO и push-уведомления#
Когда сервис обрастает пользователями, хочется убрать секреты из compose-файла, подключить единый вход через свой identity provider (у меня это Authentik) и получать push-уведомления на мобильных клиентах, а не только polling/websocket. Вот конфигурация, которая сейчас работает у меня.
docker-compose.yml#
services:
vaultwarden:
container_name: vaultwarden
image: vaultwarden/server:latest
restart: unless-stopped
volumes:
- /path/to/docker/vaultwarden/data:/data
- /path/to/docker/vaultwarden/logs:/data/logs
ports:
- 18083:80
environment:
- ADMIN_TOKEN=${VAULTWARDEN_ADMIN_TOKEN}
- SIGNUPS_ALLOWED=${VAULTWARDEN_SIGNUPS_ALLOWED}
- SIGNUPS_VERIFY=${VAULTWARDEN_SIGNUPS_VERIFY}
- INVITATIONS_ALLOWED=${VAULTWARDEN_INVITATIONS_ALLOWED}
- WEBSOCKET_ENABLED=true
- ROCKET_ENV=prod
- ROCKET_WORKERS=10
- TZ=${VAULTWARDEN_TZ}
- LOG_LEVEL=error
- EXTENDED_LOGGING=true
- DOMAIN=${VAULTWARDEN_BASE_URL}
- SMTP_HOST=${VAULTWARDEN_EMAIL__HOST}
- SMTP_PORT=${VAULTWARDEN_EMAIL__PORT}
- SMTP_FROM=${VAULTWARDEN_EMAIL__USERNAME}
- SMTP_USERNAME=${VAULTWARDEN_EMAIL__USERNAME}
- SMTP_PASSWORD=${VAULTWARDEN_EMAIL__PASSWORD}
- SMTP_SECURITY=${VAULTWARDEN_EMAIL__SECURITY}
- SSO_ENABLED=true
- SSO_AUTHORITY=https://authentik.domain.ru/application/o/vaultwarden/
- SSO_CLIENT_ID=${VAULTWARDEN_SSO_CLIENT_ID}
- SSO_CLIENT_SECRET=${VAULTWARDEN_SSO_CLIENT_SECRET}
- SSO_SCOPES="openid email profile offline_access"
- SSO_ALLOW_UNKNOWN_EMAIL_VERIFICATION=false
- SSO_CLIENT_CACHE_EXPIRATION=0
- SSO_ONLY=false # true -полностью отключает вход по мастер-паролю, только SSO
- SSO_SIGNUPS_MATCH_EMAIL=true # первый вход через SSO привязывается к существующему аккаунту по email
- PUSH_ENABLED=true
- PUSH_INSTALLATION_ID=${VAULTWARDEN_PUSH_INSTALLATION_ID}
- PUSH_INSTALLATION_KEY=${VAULTWARDEN_PUSH_INSTALLATION_KEY}
- PUSH_RELAY_URI=https://api.bitwarden.eu
- PUSH_IDENTITY_URI=https://identity.bitwarden.eu
networks:
- vaultwarden
# Reverse-proxy настраивается отдельно — см. раздел про Traefik/Nginx ниже.
# Пример лейблов для Traefik (если контейнер в одной сети с прокси):
#labels:
# - "traefik.enable=true"
# - "traefik.http.routers.vaultwarden.entrypoints=web"
# - "traefik.http.routers.vaultwarden.rule=Host(`vaultwarden.domain.ru`)"
# - "traefik.http.middlewares.vaultwarden-https-redirect.redirectscheme.scheme=https"
# - "traefik.http.routers.vaultwarden.middlewares=vaultwarden-https-redirect"
# - "traefik.http.routers.vaultwarden-secure.entrypoints=websecure"
# - "traefik.http.routers.vaultwarden-secure.rule=Host(`vaultwarden.domain.ru`)"
# - "traefik.http.routers.vaultwarden-secure.tls=true"
# - "traefik.http.routers.vaultwarden-secure.service=vaultwarden"
# - "traefik.http.services.vaultwarden.loadbalancer.server.port=80"
# - "traefik.docker.network=proxy"
security_opt:
- no-new-privileges:true
networks:
vaultwarden:
external: trueВ этой версии контейнер публикует порт 18083:80 напрямую, а Traefik-лейблы закомментированы. Так удобно, если реверс-прокси настроен отдельно (например, через отдельный файл конфигурации Traefik, а не через Docker-лейблы) или проброс идёт через другой прокси. Если вы используете лейблы, как в базовом варианте выше - раскомментируйте блок и уберите публикацию порта наружу, оставив её только для внутренней сети.
.env-файл#
Секреты и то, что часто меняется между окружениями, выносим в .env рядом с docker-compose.yml:
VAULTWARDEN_ADMIN_TOKEN=<захэшированный токен, см. раздел ниже>
# Временные настройки для первой регистрации
VAULTWARDEN_SIGNUPS_ALLOWED=false
VAULTWARDEN_SIGNUPS_VERIFY=true
VAULTWARDEN_INVITATIONS_ALLOWED=true
# Почта для уведомлений
VAULTWARDEN_EMAIL__HOST=smtp.gmail.com
VAULTWARDEN_EMAIL__PORT=465
VAULTWARDEN_EMAIL__USERNAME=<ваш email/логин SMTP>
VAULTWARDEN_EMAIL__PASSWORD="<пароль приложения>"
VAULTWARDEN_EMAIL__SECURITY=force_tls # варианты: starttls, force_tls, off
# SSO (Authentik)
VAULTWARDEN_SSO_CLIENT_ID=<client id из Authentik>
VAULTWARDEN_SSO_CLIENT_SECRET=<client secret из Authentik>
# Push-уведомления
VAULTWARDEN_PUSH_INSTALLATION_ID=<installation id с bitwarden.com/host>
VAULTWARDEN_PUSH_INSTALLATION_KEY=<installation key с bitwarden.com/host>
# Локаль
VAULTWARDEN_TZ=Europe/Moscow
# Базовый URL (для корректной работы подтверждения email и SSO redirect)
VAULTWARDEN_BASE_URL=https://vaultwarden.domain.ru.env содержит пароли и секреты в открытом виде на диске. Обязательно добавьте его в .gitignore, если храните compose-файлы в git-репозитории, и ограничьте права на файл (chmod 600 .env).
Что изменилось по сравнению с базовым вариантом#
| Параметр | Зачем |
|---|---|
ROCKET_ENV=prod | Явно указывает production-режим веб-фреймворка Rocket, на котором написан Vaultwarden - меньше отладочного вывода, чуть иное поведение логирования. |
ROCKET_WORKERS=10 | Количество воркер-потоков, обрабатывающих запросы. По умолчанию значение скромное; для сервера с несколькими активными пользователями/организациями имеет смысл увеличить. |
LOG_LEVEL=error + EXTENDED_LOGGING=true | Пишем в лог только ошибки, но с расширенным форматом (таймстемпы, модуль) - удобно для отладки, не засоряя логи лишним. |
/data/logs отдельным томом | Логи пишутся в файл, а не только в stdout контейнера - удобно забирать их, например, в Promtail/Alloy для стека мониторинга. |
SIGNUPS_VERIFY=true | При регистрации требуется подтвердить email - актуально, когда INVITATIONS_ALLOWED=true и вы приглашаете людей напрямую. |
Настройка SSO через Authentik#
Vaultwarden поддерживает вход через OpenID Connect - можно завести Authentik, Keycloak, Authelia или любой другой OIDC-совместимый провайдер. Общая логика одинакова, ниже - на примере Authentik.
- В Authentik создайте новый OAuth2/OpenID Provider с redirect URI вида
https://vaultwarden.stilicho.ru/identity/connect/oidc-signin. - Создайте Application, привяжите к нему провайдер из шага 1, задайте slug (в моём случае -
vaultwarden, отсюда иSSO_AUTHORITY=.../application/o/vaultwarden/). - Скопируйте Client ID и Client Secret -они идут в
VAULTWARDEN_SSO_CLIENT_IDиVAULTWARDEN_SSO_CLIENT_SECRET. - В compose-файле выставьте
SSO_ENABLED=trueи укажитеSSO_AUTHORITY-это базовый URL вашего OIDC-провайдера, Vaultwarden сам подтянет.well-known/openid-configuration. SSO_SIGNUPS_MATCH_EMAIL=true-если у пользователя уже есть аккаунт в Vaultwarden, первый вход через SSO привяжется к нему по email, а не создаст дубликат.SSO_ONLYоставляйтеfalse, пока не убедитесь, что вход через SSO точно работает - иначе рискуете остаться без доступа, если что-то пойдёт не так на стороне провайдера.
После первого успешного входа через SSO проверьте вход и по обычному мастер-паролю (если SSO_ONLY=false) -это ваш «запасной выход», если Authentik станет недоступен.
Push-уведомления#
PUSH_ENABLED включает push-уведомления на мобильных клиентах Bitwarden (мгновенное появление одноразовых кодов входа, уведомления о новых устройствах и т.д.) без постоянного polling.
Для этого нужны PUSH_INSTALLATION_ID и PUSH_INSTALLATION_KEY -их бесплатно выдают на bitwarden.com/host после регистрации self-hosted инсталляции. PUSH_RELAY_URI/PUSH_IDENTITY_URI в примере указывают на европейский релей (api.bitwarden.eu / identity.bitwarden.eu) - если ваши пользователи не в ЕС, можно использовать глобальный релей (api.bitwarden.com / identity.bitwarden.com).
Безопасный ADMIN_TOKEN#
По умолчанию можно просто сгенерировать случайный сложный токен в любом генераторе паролей и указать его в ADMIN_TOKEN, но в открытом текстовом виде это небезопасно - Vaultwarden будет предупреждать об этом и в логах, и в самой админ-панели.
Самый простой способ захэшировать токен - встроенная команда самого Vaultwarden (доступна начиная с версии 1.28), не требует установки дополнительных пакетов:
docker exec vaultwarden /vaultwarden hash --preset owaspКоманда спросит пароль интерактивно и выведет готовую строку вида $argon2id$v=19$m=...$... -её и нужно вставить в ADMIN_TOKEN (в .env-файле экранировать $ не нужно; а вот если вписываете значение прямо в docker-compose.yml без .env, каждый $ нужно удвоить: $$, иначе Compose попытается интерпретировать их как переменные окружения).
Подробности есть в wiki Vaultwarden.
После этого контейнер можно (пере)запускать:
docker compose up -dУчти, что «Панель /admin " - самая привлекательная цель для брутфорса; если хотите закрыть её дополнительным rate-limiting или банить сканеры на уровне Traefik, см. статью про middlewares в Traefik и CrowdSec».
Первый вход в панель администратора#
После того как контейнер запустится, можно посмотреть его логи, например, с помощью Portainer или командой docker logs vaultwarden.

Если всё в порядке, приложение не будет ругаться - значение токена надёжно захэшировано. В противном случае вы увидите предупреждение, что токен указан в открытом текстовом формате и это небезопасно (на работоспособность само по себе это не влияет, но снижает защиту админ-панели).
Чтобы зайти в панель администратора, вводим в адресную строку браузера адрес Vaultwarden и обязательно добавляем в конце /admin.

Для подтверждения вводим пароль администратора и попадаем в панель. Выбираем вкладку General settings - это центральный раздел конфигурации.

В самом верху - напоминание, что любые значения, внесённые в настройках администратора, перезаписывают значения переменных окружения (например, данные почтового сервера) или настройки самого приложения. Значения, которые будут перезаписаны, выделены жёлтым.
Раздел «General settings» - подробный обзор#
Domain#
- Описание: Основной домен, по которому доступен Vaultwarden.
- Пример:
https://vaultwarden.stilicho.ru - Назначение: Используется в ссылках (приглашения, сброс пароля, email-уведомления, redirect для SSO).
- Важно: если поменяете домен - обновите и
WEBSOCKET_ADDRESS, а также redirect URI в настройках вашего OIDC-провайдера.
WebSocket Address#
- Описание: Адрес WebSocket для синхронизации клиентов Bitwarden.
- Пример:
wss://vault.stilicho.ru/notifications/hub - Назначение: Обеспечивает мгновенную синхронизацию (например, если добавлен новый пароль с другого устройства).
- Примечание: Если используете Traefik или другой прокси - важно пробросить
/notifications/hub.
Web Vault Enabled#
- Описание: Включает или отключает веб-интерфейс хранилища.
- По умолчанию: включено.
- Зачем выключать: если хотите использовать Vaultwarden только через Bitwarden Desktop/Mobile клиенты.
User Registration (Allow new signups)#
- Переменная окружения:
SIGNUPS_ALLOWED - Варианты:
true-любой может зарегистрироваться;false- только вручную (админ создаёт пользователей через/adminили приглашения). - Совет: на публичном сервере - выключить. Оставьте включённым временно только для регистрации первого аккаунта.
Require email verification on signups#
- Переменная:
SIGNUPS_VERIFY - Рекомендация: включить при включённом SMTP - особенно если разрешены инвайты (
INVITATIONS_ALLOWED=true), чтобы исключить опечатки в email.
Invitation (Allow invitations)#
- Переменная:
INVITATIONS_ALLOWED - Рекомендация: оставьте включённым, если используете Organizations - иначе никто не сможет присоединиться.
SMTP Enabled#
- Переменные:
SMTP_* - Рекомендация: настройте SMTP до создания организаций или до того, как понадобится сброс пароля.
SSO Enabled#
- Переменная:
SSO_ENABLED - Описание: включает вход через OpenID Connect. В UI администратора можно посмотреть текущий статус подключения к провайдеру и диагностику - полезно, если что-то не срослось с
SSO_AUTHORITY.
E-mail Domain Whitelist#
- Пример:
stilicho.ru,prohomelab.com - Назначение: ограничить регистрацию корпоративными/своими доменами.
Allow password hints#
- Рекомендация: можно отключить, чтобы не давать потенциальному злоумышленнику подсказки.
YubiKey OTPs Enabled#
- Переменные:
YUBICO_CLIENT_ID,YUBICO_SECRET_KEY - Назначение: двухфакторная аутентификация через аппаратные ключи YubiKey.
WebSocket Notifications Enabled#
- Примечание: требует корректно настроенный обратный прокси. Websocket Docs
Admin Token#
- Описание: показывает текущий токен входа в админ-панель. Изменить можно только через переменную окружения (
ADMIN_TOKENв.env), панель не позволяет сменить его «на лету» без перезапуска контейнера.
Disable Two-Factor remember#
- Рекомендация: включить на публичных серверах для повышения безопасности. Учтите: с недавних версий Vaultwarden «запомненные» 2FA-токены в любом случае действуют не дольше 30 дней.
Один из самых важных разделов - настройки почты в SMTP EMAIL SETTINGS. Если планируете приглашать пользователей (членов семьи, сотрудников) - эти настройки обязательны.
Остальные настройки - по вашему желанию, но я бы отключил простую неконтролируемую регистрацию в приложении. Отключение регистрации не мешает приглашениям и SSO.
Раздел Users#
Таблица «Users» показывает список всех пользователей хранилища, их статус, уровень подтверждения и активность. Здесь же можно приглашать новых пользователей и вручную подтверждать SSO-аккаунты, если SSO_SIGNUPS_MATCH_EMAIL не сработал автоматически.

Что такое Organization#
Organization - группа пользователей, которые могут совместно использовать определённые записи (логины, пароли, безопасные заметки и т.п.). Аналог корпоративного или семейного хранилища в Bitwarden Cloud.

Основная идея#
- У вас есть личный сейф, видимый только вам.
- В рамках Organization можно создавать общие коллекции, например:
- «DevOps» -пароли CI/CD, SSH-ключи, токены API
- «Маркетинг» -доступ к соцсетям и рекламным кабинетам
- «Семья» -совместные подписки (Netflix, Spotify и т.п.)
Как это работает#
- Администратор создаёт организацию (например, «ProHomelab»).
- Добавляет участников по e-mail (нужна учётка на этом же сервере - через обычную регистрацию, инвайт или SSO).
- Создаёт Collections (категории для общих данных).
- Назначает права доступа к каждой коллекции (чтение, запись, администрирование).
- Пользователи получают эти записи в своём клиенте Bitwarden (веб, десктоп, мобильный).
Пример структуры#
Organization: ProHomelab
├── Collection: Infrastructure
│ ├── Proxmox login
│ ├── Traefik dashboard
│ └── Grafana API key
├── Collection: Media
│ ├── Jellyfin admin
│ └── Audiobookshelf credentialsТипы ролей#
- Owner - полный контроль над организацией.
- Admin - управление пользователями и коллекциями.
- Manager - управляет только своими коллекциями.
- User - пользуется выданным доступом, без управления структурой.
Важные детали#
- Organizations не обязательны для личного использования.
- Для инвайтов нужны включённые
INVITATIONS_ALLOWEDи настроенный SMTP. - Можно создать несколько организаций на одном сервере.
- Поддерживаются личные ключи шифрования - админ не видит содержимое паролей участников.
Регистрация первого пользователя#
Переходим по адресу вашего Vaultwarden (в моём случае vaultwarden.stilicho.ru) и выбираем Create Account.

Указываем почту и nickname.
Для регистрации самого первого пользователя нужно временно разрешить простую регистрацию (SIGNUPS_ALLOWED=true). После создания первого (админского) аккаунта - верните false.
Если у вас включён SSO с SSO_SIGNUPS_MATCH_EMAIL=true, первого пользователя всё равно проще создать через обычную регистрацию или инвайт, а затем просто входить через SSO - привязка произойдёт автоматически по email.
По умолчанию пароль должен быть не короче 12 символов, Vaultwarden проверяет его на сложность и предлагает проверить на утечки (не был ли такой пароль скомпрометирован ранее).

После этого попадаем в хранилище.

Сверху подсказка о трёх первых шагах: создать аккаунт, установить расширение для браузера, импортировать данные из другого менеджера паролей. Формат экспорта зависит от конкретного приложения-донора, но общий принцип один: экспортируете файл там, импортируете здесь.
Пользовательские настройки (User Settings)#
Пользовательские настройки - то, что видит обычный пользователь Vaultwarden после входа в веб-интерфейс (Web Vault) по адресу https://vaultwarden.<ваш-домен>.ru.
Разберём раздел Vaults - «сердце» всей системы, где хранятся и управляются пароли, токены, заметки и другие секреты.
💡 Чтобы не путать:
- Vaults - личное хранилище (и общие через Organizations).
- Settings - настройки поведения хранилища.
- Admin Panel (
/admin) - серверные параметры.
Основная структура#
1. Items (элементы хранилища)#
| Тип | Назначение | Пример |
|---|---|---|
| Login | Логин + пароль + URL | Сайт GitHub, SSH-панель, Grafana |
| Card | Данные банковской карты | Visa, MasterCard |
| Identity | Личные данные | ФИО, адрес, email |
| Secure Note | Произвольный текст | SSH-ключ, токен API, конфиг |
Каждый элемент содержит имя, тип, поля (username, password, URL и пр.), при желании - TOTP-код, вложения, заметки, привязку к Organization/Collection.
2. Collections#
Если вы участвуете в Organization, в левой панели появится список Collections - общих папок с записями, доступными группе пользователей. Без организации эти секции не отображаются.
3. Навигационные вкладки#
| Вкладка | Назначение |
|---|---|
| All Items | Все записи, личные и общие |
| Favorites | Отмеченные «звёздочкой» элементы |
| Folders | Личные папки (только для структуры пользователя) |
| Trash | Удалённые записи, которые можно восстановить |
| Organizations | Доступ к общим хранилищам |
4. Добавление новых записей#
Кнопка + New Item открывает форму создания записи. Доступны «Generate password» (встроенный генератор), «Add TOTP» (одноразовый 2FA-код), «Attach file» (если включено ENABLE_ATTACHMENTS=true).
5. Поиск и фильтрация#
Поиск по названию, имени пользователя, домену, заметкам - выполняется локально, данные не передаются серверу в открытом виде. Фильтры: по типу элемента, по организации/коллекции, по меткам.
6. Папки (Folders)#
Личная логическая структура, не связанная с организациями. Данные в папке не передаются другим пользователям, даже если у них та же организация.
7. Trash (Корзина)#
Удалённые записи не исчезают сразу - попадают в корзину, откуда их можно восстановить или удалить навсегда.
8. Context menu записи#
View, Edit, Clone, Move to Folder/Collection, Add Favorite, Delete.
9. Password Generator#
Генерация пароля нужной длины и сложности (буквы, цифры, символы, исключение похожих знаков) - доступен прямо из Vault.
Резервное копирование#
В интернете можно часто встретить вопрос, как именно бэкапить Vaultwarden. Вот минимальный рабочий вариант.
Для SQLite (база по умолчанию) достаточно копировать директорию с данными целиком, пока контейнер не пишет активно - либо использовать sqlite3 .backup для консистентного снепшота без остановки сервиса:
#!/usr/bin/env bash
set -e
SRC="/path/to/docker/vaultwarden/data"
DEST="/backup/vaultwarden/$(date +%F)"
mkdir -p "$DEST"
sqlite3 "$SRC/db.sqlite3" ".backup '$DEST/db.sqlite3'"
cp -r "$SRC/attachments" "$DEST/" 2>/dev/null || true
cp -r "$SRC/sends" "$DEST/" 2>/dev/null || true
cp "$SRC/rsa_key"* "$DEST/" 2>/dev/null || true
# чистим бэкапы старше 14 дней
find /backup/vaultwarden -maxdepth 1 -mtime +14 -exec rm -rf {} \;Повесьте это на cron (например, раз в сутки) и обязательно проверьте, что бэкапы реально восстанавливаются - «бэкап, который никогда не разворачивали», как известно, это просто файл, занимающий место.
Если используете PostgreSQL/MySQL - соответственно pg_dump/mysqldump вместо копирования файла SQLite.
Типичные ошибки#
- Не совпадает
DOMAINс реальным HTTPS-адресом - это ломает подтверждение email и TOTP/2FA. Проверьте, что значение точно совпадает с тем, что видит браузер (включая протокол, без завершающего слэша). - WebSocket не подключается - реверс-прокси не проксирует
/notifications/hubс заголовкамиUpgrade/Connection. Проверьте конфиг прокси. - SSO редиректит на ошибку - не совпадает redirect URI в настройках OIDC-провайдера с реальным адресом Vaultwarden, либо
SSO_AUTHORITYуказывает не на корневой URL провайдера/приложения. - Не приходят push-уведомления - устаревшие или неверные
PUSH_INSTALLATION_ID/PUSH_INSTALLATION_KEY, либо выбран не тот регион релея (.comвместо.euили наоборот). - Предупреждение про открытый ADMIN_TOKEN в логах - токен не захэширован, см. раздел про
vaultwarden hash --preset owasp.
FAQ#
Можно ли использовать Vaultwarden без своего домена? Технически да (по IP), но Web Vault требует защищённого контекста (HTTPS) для Web Crypto API, а без домена сложнее получить нормальный TLS-сертификат. По факту - без реального домена система не взлетит.
Обязательно ли использовать SSO? Нет, это опциональная надстройка. Обычная регистрация с мастер-паролем работает и без него. Более того, использование SSO не отключает встроенную аутентификацию.
Можно ли перенести данные из Bitwarden Cloud? Да - экспортируете хранилище из Bitwarden Cloud (Settings → Export Vault) и импортируете в свежесозданный аккаунт на Vaultwarden.
Что делать, если забыл ADMIN_TOKEN?
Сгенерировать новый через vaultwarden hash --preset owasp и обновить .env/переменную окружения, затем перезапустить контейнер. К пользовательским данным это отношения не имеет.
Итого#
| Раздел / Элемент | Назначение |
|---|---|
| All Items | Все записи пользователя |
| Folders | Личные категории |
| Collections | Общие категории (в организациях) |
| Trash | Корзина |
| Add Item | Добавление логина / заметки / карты |
| Search | Поиск по Vault |
| Password Generator | Создание надёжных паролей |
| SSO | Единый вход через внешний identity provider |
| Push | Мгновенные push-уведомления на мобильных клиентах |
К сожалению, в одной статье невозможно описать все возможности этого замечательного приложения, поэтому подробнее обо всех настройках можно почитать в официальной документации Vaultwarden.





