- Легковесная реализация на Rust, полностью совместимая с официальными клиентами Bitwarden.
- Упрощенное развертывание с использованием контейнеров Docker для полного контроля конфиденциальности.
- Идеальные минимальные требования к аппаратному обеспечению для несложных серверов или Raspberry Pi.
Vaultwarden позволяет разместить менеджер паролей, совместимый с клиентами Bitwarden, на вашем собственном сервере. Таким образом, вы можете сами решать, где будет храниться информация, кто сможет получить доступ к сервису и как будет выполняться резервное копирование.
Важно с самого начала уточнить, что Vaultwarden не является официальным сервером Bitwarden.Это независимая, разработанная сообществом реализация, написанная на Rust, которая воспроизводит большую часть API Bitwarden. Благодаря этому её можно использовать с официальными мобильными приложениями Bitwarden, настольными программами и расширениями.
Самостоятельное размещение сервиса обеспечивает больший контроль, но Это не гарантирует автоматически большей безопасности.С этого момента вы несете ответственность за установку обновлений, обеспечение безопасности доступа, анализ журналов, поддержание HTTPS-соединения и обеспечение возможности восстановления резервных копий.
Что вам понадобится для установки Vaultwarden с помощью Docker

Прежде чем начать, вам понадобится система, совместимая с Docker, которая остается включенной, когда вы хотите синхронизировать пароли. Это может быть сервер Linux, сетевое хранилище (NAS), мини-ПК или Raspberry Pi с архитектурой, поддерживаемой образом.
Вам также понадобится:
- Docker Engine Установлено и работает.
- Текущее дополнение Docker Compose.
- Папка, где данные могут храниться постоянно.
- Доступ к терминалу с правами на управление Docker.
- Безопасный способ доступа, если вы будете использовать сервис с других устройств.
Универсальных требований к памяти и объему хранилища для всех установок нет. Потребление зависит от количества пользователей, подключенных файлов, размера хранилища и других служб, работающих на одном компьютере. Для домашнего использования это обычно легковесное приложение, но следует зарезервировать достаточно места для его размещения. данные и их резервные копии.
Проверьте установку, используя:
docker --version
docker compose version
Если обе команды отображают версию, вы можете продолжить.
Как установить Vaultwarden с помощью Docker Compose
Создайте отдельную папку и войдите в неё:
mkdir vaultwarden
cd vaultwarden
Внутри папки создайте файл с именем compose.yml при такой начальной конфигурации:
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: unless-stopped
environment:
SIGNUPS_ALLOWED: "true"
volumes:
- ./vw-data:/data
ports:
- "127.0.0.1:8080:80"
Сборка ./vw-data:/data Это крайне важно. Папка /data В ней содержатся база данных, вложения, конфигурация и ключи, используемые сервером. Если удалить контейнер, не сохранив эту папку, вы потеряете сохраненную информацию.
Адрес 127.0.0.1 Эта первоначальная установка отвечает только на самом сервере. Это подходящая конфигурация для тестирования Vaultwarden без предварительного открытия порта в сети.
Запустите контейнер:
docker compose up -d
Проверьте его статус:
docker compose ps
docker compose logs --tail=100 vaultwarden
С того же устройства можно открыть:
http://localhost:8080
Доступ через localhost Это используется для завершения первоначальной настройки. Для подключения с другого компьютера, мобильного приложения или расширения вам потребуется настроить защищенный адрес с использованием HTTPS.
Как создать свой первый аккаунт и завершить регистрацию
Откройте веб-интерфейс, создайте свою первую учетную запись и убедитесь, что вы можете войти в систему. Используйте длинный, уникальный и легко запоминающийся мастер-пароль, поскольку это обеспечивает беспрепятственный доступ ко всему складу.
После создания необходимых учетных записей отредактируйте их. compose.yml и изменения:
SIGNUPS_ALLOWED: "true"
к:
SIGNUPS_ALLOWED: "false"
Внесите изменения, создав контейнер заново:
docker compose up -d
Vaultwarden по умолчанию позволяет анонимным пользователям создавать учетные записи. Оставление регистрации открытой без необходимости облегчает третьим лицам занятие места на вашем сервере или его несанкционированное использование.
Если вы позже активируете панель администрирования, вы сможете отправлять приглашения даже при отключенной публичной регистрации.
Почему Vaultwarden нужен HTTPS
Интернет-магазин использует Web Crypto API браузера. Эти криптографические функции обычно доступны только в безопасные контексты, такие как HTTPS или localhost.
По этой причине открытие http://192.168.1.50:8080 С другого компьютера ошибки могут отображаться, даже если контейнер запущен. Публикация порта в сети не заменяет конфигурацию HTTPS.
Существует три распространенных способа использования Хранителя Хранилища:
- Только для сервера: доступ через
localhostПолезно для тестирования. - В частной сети или VPN: Доступ ограничен, но сертификат HTTPS остается действительным.
- Из интернета: домен, обратный прокси-сервер, действительный сертификат и правильно настроенный брандмауэр.
Вам не обязательно открывать Vaultwarden в открытом доступе, чтобы использовать его за пределами дома. VPN может ограничить доступ к авторизованным устройствам, но адрес, используемый клиентами, всё равно должен иметь сертификат, который они распознают.
Как настроить HTTPS с помощью Caddy
Caddy — один из самых простых вариантов, поскольку он может автоматически запрашивать и обновлять сертификаты через ACME. Для использования открытого сертификата домен должен разрешаться в ваш сервер, и необходимые порты должны быть доступны.
Этот файл можно использовать в совместной конфигурации Vaultwarden и Caddy. compose.yml:
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: unless-stopped
environment:
DOMAIN: "https://vault.example.com"
SIGNUPS_ALLOWED: "false"
volumes:
- ./vw-data:/data
caddy:
image: caddy:2
container_name: vaultwarden-caddy
restart: unless-stopped
depends_on:
- vaultwarden
ports:
- "80:80"
- "443:443"
- "443:443/udp"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile:ro
- ./caddy-data:/data
- ./caddy-config:/config
Заменяет vault.example.com для вашего домена. Затем создайте файл с именем... Caddyfile:
vault.example.com {
reverse_proxy vaultwarden:80 {
header_up X-Real-IP {remote_host}
}
}
Активируйте сервисы:
docker compose up -d
Caddy будет отправлять запросы контейнеру через внутреннюю сеть, созданную Compose. Текущая конфигурация также может обрабатывать уведомления WebSocket через тот же адрес, поэтому нет необходимости публиковать еще один порт Vaultwarden.
Переменная DOMAIN должен содержать точный внешний URL-адрес, включая https://Неверный адрес может вызвать проблемы с вложениями, ссылками, аутентификацией или клиентами.
Как подключить официальные приложения Bitwarden
На экране входа в расширение, в мобильном приложении или настольной программе откройте селектор серверов и выберите соответствующую опцию. Самостоятельно размещенный.
Введите полный адрес:
https://vault.example.com
Сохраните настройки перед входом в систему. Для корректной синхронизации изменений каждый клиент должен быть подключен к одному и тому же серверу.
Если вы используете сертификат, выданный частным центром сертификации, вам потребуется правильно установить этот центр и установить на всех устройствах механизм доверия к нему. Во избежание проблем с совместимостью предпочтительнее использовать действительный публичный сертификат или частное решение, цепочку доверия которого вы можете должным образом контролировать.
После подключения клиента вы можете Импорт паролей Chrome в Vaultwarden и убедитесь, что они отображаются на всех ваших устройствах.
Как защитить панель администратора
Vaultwarden предлагает дополнительную панель в /adminОттуда вы можете просмотреть пользователей, организации, диагностику и некоторые параметры сервера.
Если вам не нужна панель, то самым безопасным вариантом будет... оставьте его отключеннымДля включения этой функции необходимо выполнить настройку. ADMIN_TOKENВместо хранения пароля в открытом виде, он генерирует хеш Argon2id:
docker run --rm -it vaultwarden/server /vaultwarden hash
Команда запросит пароль дважды и вернет строку, начинающуюся с $argon2id$.
Удобный способ избежать проблем со знаками доллара — сохранить их в файле. .env расположен рядом compose.yml:
VAULTWARDEN_ADMIN_TOKEN='$argon2id$v=19$m=...'
Затем добавьте к сервису:
environment:
ADMIN_TOKEN: "${VAULTWARDEN_ADMIN_TOKEN}"
Если вы запишете хеш непосредственно внутри compose.ymlВам необходимо удвоить каждый знак доллара, если... $$ чтобы предотвратить попытку Docker Compose интерпретировать это как переменную.
Проверьте обработанную конфигурацию, используя:
docker compose config
Доступ к панели должен осуществляться только по протоколу HTTPS. По возможности ограничьте путь к ней локальной сетью, VPN или определенными IP-адресами.
Обратите внимание, что после сохранения настроек из /adminХранитель свода создает config.jsonЕго значения имеют приоритет над эквивалентными переменными среды. Этот приоритет объясняет многие случаи, когда редактирование Compose, по-видимому, не приводит к каким-либо изменениям.
Необходимые меры для защиты Хранителя Убежища
Безопасность не ограничивается включением HTTPS. Как минимум, примите следующие меры:
- Отключите открытый реестр с помощью
SIGNUPS_ALLOWED=false. - Используйте уникальный и надежный мастер-пароль.
- Активный двухэтапная аутентификация по всем счетам.
- Сохраните код восстановления аутентификации в другом безопасном месте.
- Регулярно обновляйте образ и хост-систему.
- Не монтируйте лишние папки или сокет Docker внутри контейнера.
- С помощью брандмауэра ограничьте доступ только к действительно необходимым портам.
- Не предоставляйте доступ к базе данных или папке в открытом доступе.
vw-data.
Fail2ban может блокировать адреса, на которых накапливаются неудачные попытки входа в систему, но его необходимо тщательно настраивать при наличии обратного прокси-сервера. Caddy или Nginx должны передавать реальный IP-адрес; в противном случае Fail2ban может заблокировать собственный адрес прокси-сервера.
Вы также можете отключить отображение подсказок к паролю. Эти подсказки могут облегчить атаки методом подбора, если сервер находится в открытом доступе.
Чтобы узнать больше об этих методах, вы можете обратиться к соответствующей информации. Используйте менеджеры паролей безопасно.
Как настроить уведомления по электронной почте
Настройка SMTP позволяет отправлять приглашения, подтверждения и уведомления. Вам потребуется указать сервер, отправителя, порт, метод безопасности и учетные данные, предоставленные вашей почтовой службой.
Не путайте электронные письма, отправленные по протоколу SMTP, с резервной копией хранилища. Также не следует полагаться на них как на единственный способ восстановления учетной записи. Если вы забудете свой главный пароль и у вас не настроен другой способ восстановления, вы можете потерять доступ к своим зашифрованным данным.
После сохранения настроек отправьте тестовое сообщение и проверьте журналы, если оно не дошло. Также проверьте папки со спамом и ограничения SMTP-провайдера.
Как сделать полную резервную копию Vaultwarden
База данных SQLite хранит пользователей, товары, устройства и организации, но В нём содержатся не все файлы.Вложенные файлы и некоторые отправленные материалы хранятся в отдельных каталогах.
Полный комплект документов должен включать:
db.sqlite3или согласованную копию базы данных.- Папка
attachments. - Папка
sendsЕсли вы хотите сохранить эти файлы. - Файл
config.json, если вы используете панель. - Файлы
rsa_key*. - Файлы Compose, Caddy и их переменные.
Для простого и надежного резервного копирования вы можете временно остановить Vaultwarden и заархивировать папку:
docker compose stop vaultwarden
tar -czf vaultwarden-backup-$(date +%F).tar.gz vw-data compose.yml Caddyfile .env
docker compose start vaultwarden
Файл может содержать токен администратора и учетные данные SMTP. Зашифруйте его перед копированием. на другой компьютер или удаленное хранилище.
Если вы не хотите останавливать службу, Vaultwarden включает команду, использующую механизм копирования SQLite:
docker exec vaultwarden /vaultwarden backup
Эта команда защищает базу данных, но вам все равно следует создавать резервные копии вложений, файлов конфигурации и ключей. Автоматизируйте резервное копирование, храните хотя бы одно резервное копирование вне сервера и периодически проверяйте восстановление.
Как обновить Vaultwarden с помощью Docker
Перед обновлением создайте проверенную копию. Затем выполните:
docker compose pull
docker compose up -d
Проверьте статус и последние сообщения:
docker compose ps
docker compose logs --tail=100 vaultwarden
Docker загрузит образ и создаст контейнер заново, сохранив при этом все данные. vw-dataНе используйте глобальные команды очистки, не проверив предварительно, какие контейнеры, образы и сети они будут удалены.
В системах, где стабильность имеет решающее значение, вы можете зафиксировать конкретную версию образа вместо того, чтобы всегда использовать версию по умолчанию. latestТаким образом, вы сможете ознакомиться с примечаниями к выпуску и решить, когда следует применять каждое обновление.
Распространенные ошибки при установке Vaultwarden с помощью Docker.
Интерфейс работает на локальном компьютере, но не с другого компьютера.
Порт ограничен 127.0.0.1 Или же браузер отклоняет криптографические функции при доступе по протоколу HTTP. Перед использованием сервиса с других устройств настройте HTTPS-адрес.
Официальный клиент не может подключиться к серверу.
Выберите среду Самостоятельно размещенный и введите точный адрес с https://Проверьте сертификат, DNS, прокси и переменные. DOMAIN.
Контейнер запускается, но данные исчезают при его повторном создании.
Регулятор громкости установлен неправильно. Пожалуйста, проверьте это. ./vw-data:/data Это отображается в настройках, и вы запускаете Compose из нужной папки.
Я не могу создать другой аккаунт.
Si SIGNUPS_ALLOWED находится в falseЭто правильное поведение. Отправьте приглашение из панели управления или временно включите регистрацию только на время создания учетной записи.
Хэш ADMIN_TOKEN не работает.
Проверьте интерполяцию знаков. $Используйте файл .env Используйте одинарные кавычки или удвойте количество символов, если вставляете строку непосредственно в Compose.
Экологические факторы, по-видимому, игнорируются.
Проверьте, существует ли оно. vw-data/config.jsonСохраненные в панели параметры могут переопределять переменные, определенные в compose.yml.
Сертификаты работают в браузере, но не на мобильном устройстве.
Устройство может не доверять всей цепочке сертификатов. Используйте признанный центр сертификации или правильно установите свой собственный центр сертификации и его сертификаты.
Крепления не работают
Проверьте это DOMAIN Укажите соответствующий внешний адрес и убедитесь, что прокси-сервер разрешает запрос необходимого размера. Также проверьте доступное пространство и права доступа. vw-data.
Хранитель хранилища не может записывать данные внутрь vw-data.
Папка хоста имеет несовместимые права доступа. Проверьте владельца и права доступа на основе ошибки, указанной в журналах. Не используйте. chmod 777 в качестве постоянного решения.
Fail2ban блокирует неверный адрес.
Прокси-сервер передает нереальный IP-адрес, или Fail2ban считывает неправильное поле. Настройте его правильно. X-Real-IP или заголовок, соответствующий вашему прокси-серверу.
Восстановленная копия не содержит вложений.
Была создана резервная копия только SQLite. Пожалуйста, восстановите также папки. attachments y sendsв дополнение к конфигурации RSA и ключам.
Vaultwarden позволяет использовать организации и коллекции для поделиться семейными паролями Используйте совместимые клиенты. Перед добавлением новых пользователей убедитесь, что HTTPS, двухфакторная аутентификация и резервное копирование работают корректно.
В результате вы получите быстрый, конфиденциальный и настраиваемый менеджер паролей, но его безопасность зависит от обслуживания. Контроль над сервером выгоден только в сочетании с обновлениями, ограниченным доступом и проверенной стратегией восстановления.
Я энтузиаст технологий, который превратил свои «компьютерные» интересы в профессию. Я провел более 10 лет своей жизни, используя передовые технологии и возясь со всевозможными программами из чистого любопытства. Сейчас я специализируюсь на компьютерных технологиях и видеоиграх. Это потому, что более 5 лет я пишу статьи для различных сайтов, посвященных технологиям и видеоиграм, создавая статьи, которые стремятся дать вам необходимую информацию на понятном каждому языке.
Если у вас есть какие-либо вопросы, мои знания варьируются от всего, что связано с операционной системой Windows, а также Android для мобильных телефонов. И я предан вам, я всегда готов потратить несколько минут и помочь вам решить любые вопросы, которые могут у вас возникнуть в этом мире Интернета.


