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 и рассчитанная на self-hosted-развертывание. Она совместима с официальными клиентами 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 ГБ RAM;
- 10–20 ГБ SSD или NVMe;
- Ubuntu 24.04 LTS;
- публичный IP и домен;
- открытые порты 80 и 443.
Это практический запас для Ubuntu, Docker, Caddy и обновлений, а не жесткий минимум проекта. Для десятков пользователей, большого количества вложений или нескольких контейнеров лучше выбрать от 2 ГБ 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, файрвол и наличие другого веб-сервера на этих портах.
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 ГБ RAM. Такой объем оставляет запас для Ubuntu, Docker, Caddy, обновлений и автоматических бэкапов.
На tropic.host Vaultwarden можно запустить на стартовом VPS, а позднее увеличить ресурсы, если на сервере появятся другие self-hosted-сервисы. Для менеджера паролей важнее не лишние ядра, а стабильная сеть, постоянный публичный адрес и надежный диск.
Домашний сервер тоже подойдет, но тогда придется обеспечить внешний доступ, HTTPS, стабильное питание и восстановление после сбоев. VPS обычно проще, если хранилище должно работать из любой сети.
Вывод
Vaultwarden — удобный self-hosted менеджер паролей для тех, кто хочет использовать клиенты Bitwarden, но держать серверную часть на собственной инфраструктуре. Для запуска достаточно небольшого VPS, домена, Docker Compose и Caddy.
Основная ответственность начинается после установки: нужно отключить регистрацию, включить 2FA, обновлять контейнеры и хранить проверяемые резервные копии вне сервера.
FAQ
Можно ли установить Vaultwarden без домена?
Технически можно использовать локальный адрес, но веб-хранилищу нужен безопасный HTTPS-контекст. Для доступа с разных устройств проще использовать домен и TLS-сертификат.
Сколько оперативной памяти нужно Vaultwarden?
Для одного или нескольких пользователей обычно хватает 1 ГБ RAM. VPS с 2 ГБ дает более удобный запас для системы, Docker, Caddy и обновлений.
Работает ли Vaultwarden с мобильным приложением Bitwarden?
Да. На экране входа выберите self-hosted сервер и укажите полный HTTPS-адрес своего Vaultwarden.
Что произойдет, если VPS временно недоступен?
Ранее синхронизированные данные обычно остаются в локальном зашифрованном кэше клиента. Но синхронизация, вход на новом устройстве и получение изменений не заработают до восстановления сервера.
Можно ли восстановить забытый мастер-пароль через /admin?
Нет. Администратор может управлять сервером и аккаунтами, но не обладает ключом расшифровки пользовательского хранилища. Мастер-пароль и коды восстановления нужно хранить отдельно.
