Tropic Host

Vaultwarden: что это такое и как установить на VPS

5 мин чтения
Tropic
Vaultwarden: что это такое и как установить на VPS

Vaultwarden: устанавливаем собственный менеджер паролей на VPS

Vaultwarden позволяет хранить пароли на собственном сервере и синхронизировать их между компьютером, телефоном и браузером. Он работает с официальными приложениями и расширениями Bitwarden, в которых указывается адрес вашего сервера.

Ниже разберем, какой VPS нужен Vaultwarden, как запустить его на Ubuntu с Docker Compose, отключить открытую регистрацию, включить HTTPS и настроить резервное копирование.

Vaultwarden за пять шагов

Минимальный план запуска:

  1. Создайте VPS с Ubuntu и направьте на него поддомен, например vault.example.com.
  2. Установите Docker и Docker Compose.
  3. Запустите Vaultwarden вместе с Caddy для автоматической настройки HTTPS.
  4. Создайте первую учетную запись и отключите открытую регистрацию.
  5. Включите двухфакторную аутентификацию, обновления и резервное копирование.

Для личного хранилища или небольшой семьи встроенной базы SQLite достаточно. Отдельный сервер PostgreSQL обычно не нужен.

Что такое Vaultwarden

Vaultwarden — неофициальная реализация API Bitwarden, написанная на Rust и предназначенная для самостоятельного развертывания. Она совместима с официальными клиентами Bitwarden: веб-интерфейсом, мобильными и настольными приложениями, расширениями для браузеров и CLI.

Данные хранилища шифруются на устройстве пользователя до отправки на сервер. VPS синхронизирует зашифрованную базу, но не знает мастер-пароль и не сможет восстановить его, если вы его потеряете.

Vaultwarden не является официальным продуктом Bitwarden. Владелец сам отвечает за обновления, доступность, HTTPS, резервные копии и безопасность VPS.

Vaultwarden и Bitwarden: в чем разница

ПараметрBitwarden CloudVaultwarden
СерверИнфраструктура 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 version

3. Создайте конфигурацию

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?

Нет. Администратор может управлять сервером и учетными записями, но не владеет ключом расшифровки хранилища пользователя. Мастер-пароль и коды восстановления нужно хранить отдельно.