Vaultwarden: устанавливаем собственный менеджер паролей на VPS
Vaultwarden позволяет хранить пароли на собственном сервере и синхронизировать их между компьютером, телефоном и браузером. Он работает с официальными приложениями и расширениями Bitwarden, в которых указывается адрес вашего сервера.
Ниже разберем, какой VPS нужен Vaultwarden, как запустить его на Ubuntu с Docker Compose, отключить открытую регистрацию, включить HTTPS и настроить резервное копирование.
Vaultwarden за пять шагов
Минимальный план запуска:
- Создайте VPS с Ubuntu и направьте на него поддомен, например
vault.example.com. - Установите Docker и Docker Compose.
- Запустите Vaultwarden вместе с Caddy для автоматической настройки HTTPS.
- Создайте первую учетную запись и отключите открытую регистрацию.
- Включите двухфакторную аутентификацию, обновления и резервное копирование.
Для личного хранилища или небольшой семьи встроенной базы SQLite достаточно. Отдельный сервер PostgreSQL обычно не нужен.
Что такое Vaultwarden
Vaultwarden — неофициальная реализация API Bitwarden, написанная на Rust и предназначенная для самостоятельного развертывания. Она совместима с официальными клиентами Bitwarden: веб-интерфейсом, мобильными и настольными приложениями, расширениями для браузеров и CLI.
Данные хранилища шифруются на устройстве пользователя до отправки на сервер. VPS синхронизирует зашифрованную базу, но не знает мастер-пароль и не сможет восстановить его, если вы его потеряете.
Vaultwarden не является официальным продуктом Bitwarden. Владелец сам отвечает за обновления, доступность, HTTPS, резервные копии и безопасность VPS.
Vaultwarden и Bitwarden: в чем разница
| Параметр | Bitwarden Cloud | Vaultwarden |
|---|---|---|
| Сервер | Инфраструктура Bitwarden | Ваш VPS или домашний сервер |
| Приложения | Клиенты Bitwarden | Те же клиенты в режиме Self-hosted |
| Обслуживание | Выполняет провайдер | Выполняет владелец |
| Контроль резервных копий | Ограничен сервисом | Полный |
| Запуск | Регистрация учетной записи | Настройка домена, Docker и VPS |
Vaultwarden подойдет тем, кто хочет контролировать серверную часть и готов обновлять Linux и проверять резервные копии. Облачный сервис практичнее, если вы не хотите заниматься администрированием. Самостоятельное размещение не делает систему безопасной автоматически — оно передает ответственность владельцу.
Требования Vaultwarden к серверу
Для личного использования разумной стартовой конфигурацией будет:
- 1 vCPU;
- 1–2 GB RAM;
- 10–20 GB SSD или NVMe;
- Ubuntu 24.04 LTS;
- публичный IP-адрес и домен;
- открытые порты 80 и 443.
Это практический запас для Ubuntu, Docker, Caddy и обновлений, а не строгое минимальное требование проекта. Для десятков пользователей, большого количества вложений или нескольких контейнеров лучше выбрать минимум 2 GB RAM.
Как установить Vaultwarden на VPS
В примере используются Ubuntu 24.04 и поддомен vault.example.com. Во всех файлах замените его на собственный адрес.
1. Настройте DNS и подготовьте Ubuntu
Создайте DNS-запись A, указывающую на IPv4-адрес VPS. Затем подключитесь по SSH:
ssh root@SERVER_IP
apt update && apt upgrade -y
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw enableНе закрывайте текущую SSH-сессию, пока не убедитесь, что новое подключение работает.
2. Установите Docker и Docker Compose
Добавьте официальный репозиторий Docker:
apt install -y ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
-o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
apt update
apt install -y docker-ce docker-ce-cli containerd.io \
docker-buildx-plugin docker-compose-plugin
docker compose version3. Создайте конфигурацию
mkdir -p /opt/vaultwarden
cd /opt/vaultwardenСоздайте compose.yaml:
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: unless-stopped
environment:
DOMAIN: "https://vault.example.com"
SIGNUPS_ALLOWED: "true"
volumes:
- ./vw-data:/data
caddy:
image: caddy:2-alpine
container_name: vaultwarden-caddy
restart: unless-stopped
depends_on:
- vaultwarden
ports:
- "80:80"
- "443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile:ro
- ./caddy-data:/data
- ./caddy-config:/configСоздайте Caddyfile:
vault.example.com {
reverse_proxy vaultwarden:80
}Наружу открыт только Caddy. Контейнер Vaultwarden доступен внутри сети Docker, а данные хранятся в /opt/vaultwarden/vw-data. В текущей конфигурации отдельный порт WebSocket не требуется.
4. Запустите Vaultwarden
docker compose up -d
docker compose ps
docker compose logs --tail=100 caddyОткройте https://vault.example.com. Caddy автоматически получит TLS-сертификат, если DNS уже указывает на VPS, а порты 80 и 443 доступны. Если сайт не открывается, проверьте DNS, firewall и не занят ли этот порт другим веб-сервером.
5. Создайте учетную запись и отключите регистрацию
Зарегистрируйте первую учетную запись. Используйте длинный уникальный мастер-пароль и храните аварийную копию вне Vaultwarden: администратор сервера не может сбросить или восстановить мастер-пароль.
После регистрации измените следующую настройку в compose.yaml:
SIGNUPS_ALLOWED: "false"Примените настройку:
docker compose up -dТеперь другие пользователи не смогут создавать учетные записи. Чтобы добавить нового пользователя, можно временно включить регистрацию или настроить приглашения.
Как подключить приложение Bitwarden
Устанавливать отдельный клиент Vaultwarden не нужно. На экране входа в приложение или расширение Bitwarden выберите Self-hosted и введите:
https://vault.example.comИспользуйте этот адрес на компьютере, телефоне и в браузере. Для переноса данных импортируйте экспорт из предыдущего менеджера паролей. Сразу после переноса удалите незашифрованный файл CSV или JSON и не отправляйте его по электронной почте или через публичные ссылки.
Безопасная настройка Vaultwarden
После запуска выполните несколько действий:
- включите TOTP или WebAuthn и храните коды восстановления отдельно;
- оставьте
SIGNUPS_ALLOWEDотключенным; - используйте SSH-ключи и регулярно обновляйте Ubuntu;
- не открывайте внутренний порт контейнера Vaultwarden наружу;
- не запускайте сомнительные контейнеры на том же VPS;
- убедитесь, что резервные копии можно восстановить.
Панель /admin обычно не нужна для личного хранилища. Если вы включите ее, используйте длинный токен в виде хеша Argon2 и по возможности ограничьте доступ по IP-адресу или VPN. Хранить обычный текстовый ADMIN_TOKEN нежелательно.
Перед обновлением создайте резервную копию, затем выполните:
cd /opt/vaultwarden
docker compose pull
docker compose up -dСервер следует регулярно обновлять: клиенты Bitwarden выпускаются независимо, поэтому очень старая версия Vaultwarden может потерять с ними совместимость.
Резервное копирование Vaultwarden
Основная база SQLite находится в vw-data/db.sqlite3, а вложения хранятся отдельными файлами. Не копируйте работающую базу обычной командой cp: операция записи в этот момент может сделать копию непоследовательной.
Создайте безопасный снимок встроенной командой:
docker exec vaultwarden /vaultwarden backupВ каталоге данных появится отдельный файл db_.sqlite3. Вместе с ним сохраните attachments, sends, config.json, если он был создан, и файлы rsa_key.
Резервная копия на том же VPS не защищает от удаления сервера или отказа диска. Автоматически отправляйте копии на другое устройство или в отдельное объектное хранилище, желательно с дополнительным шифрованием. Периодически выполняйте тестовое восстановление.
Какой VPS выбрать для Vaultwarden
Базового Linux VPS с 2 GB RAM достаточно для личного или семейного хранилища. Такой объем оставляет запас для Ubuntu, Docker, Caddy, обновлений и автоматических резервных копий.
Vaultwarden можно запустить на недорогом VPS от tropic.host, а позже увеличить ресурсы, если на сервере появятся другие self-hosted-сервисы. Для менеджера паролей стабильная сеть, постоянный публичный адрес и надежный диск важнее дополнительных ядер CPU.
Домашний сервер тоже подойдет, но тогда придется обеспечить внешний доступ, HTTPS, стабильное питание и восстановление после сбоев. VPS обычно проще, когда хранилище должно работать из любой сети.
Заключение
Vaultwarden — удобный менеджер паролей для самостоятельного размещения. Он позволяет пользоваться клиентами Bitwarden, сохраняя серверную часть в собственной инфраструктуре. Для старта достаточно небольшого VPS, домена, Docker Compose и Caddy.
Основная ответственность начинается после установки: отключите регистрацию, включите 2FA, обновляйте контейнеры и храните проверенные резервные копии за пределами сервера.
FAQ
Можно ли установить Vaultwarden без домена?
Технически можно использовать локальный адрес, но веб-хранилищу нужен безопасный контекст HTTPS. Для доступа с разных устройств проще использовать домен и TLS-сертификат.
Сколько RAM нужно Vaultwarden?
Для одного или нескольких пользователей обычно достаточно 1 GB RAM. VPS с 2 GB дает более комфортный запас для системы, Docker, Caddy и обновлений.
Работает ли Vaultwarden с мобильным приложением Bitwarden?
Да. На экране входа выберите self-hosted-сервер и введите полный HTTPS-адрес своего экземпляра Vaultwarden.
Что произойдет, если VPS временно станет недоступен?
Ранее синхронизированные данные обычно остаются в локальном зашифрованном кеше клиента. Однако синхронизация, вход на новом устройстве и получение изменений не будут работать, пока сервер не восстановят.
Можно ли восстановить забытый мастер-пароль через /admin?
Нет. Администратор может управлять сервером и учетными записями, но не владеет ключом расшифровки хранилища пользователя. Мастер-пароль и коды восстановления нужно хранить отдельно.
