Neckrez

Как развернуть Vaultwarden на VPS: Docker + Caddy и HTTPS

Свой менеджер паролей, совместимый с Bitwarden, на VPS с Docker и Caddy. Установка, защита и резервные копии примерно за десять минут.

Чтобы развернуть Vaultwarden самостоятельно, нужны небольшой VPS, Docker и обратный прокси, который даст HTTPS. По этой инструкции вы получите рабочий менеджер паролей, совместимый с Bitwarden, на своём домене, с закрытой регистрацией и бэкапами, примерно за десять минут.

Что нужно Vaultwarden от VPS

Vaultwarden - лёгкий сервер на Rust, который понимает API Bitwarden. Официальные приложения и расширения Bitwarden подключаются к нему как обычно. Ваше хранилище лежит на сервере, который контролируете вы.

  • Размер сервера - для личного или семейного хранилища хватит самого маленького тарифа.
  • Домен - клиентам Bitwarden нужен HTTPS, поэтому заранее направьте A-запись домена на IP сервера.
  • Открытые порты - 80 и 443 для Caddy, а также SSH для вас.

Правило большого пальца: начните с самого маленького тарифа и увеличивайте его, только если действительно увидите нехватку ресурсов. Для менеджера паролей нагрузка минимальна.

Как это сделать на Neckrez

  • Регистрация - достаточно email, без KYC, документов и карты.
  • Пополнение баланса - оплата криптовалютой от $15, например USDT в недорогой сети.
  • Тариф, локация и ОС - подойдёт тариф Quark с Ubuntu или Debian в ближайшем к вам регионе.
  • Около минуты ожидания - сервер запускается с полным root-доступом и выделенным IPv4.
  • Почасовая оплата - списания прекращаются, когда вы удаляете сервер.

Направьте домен на IPv4, подключитесь по SSH и установите пакеты:

apt update && apt install -y docker.io docker-compose-v2 caddy
mkdir -p /opt/vaultwarden && cd /opt/vaultwarden
nano docker-compose.yml

Вставьте в docker-compose.yml следующее, заменив домен на свой:

services:
  vaultwarden:
    image: vaultwarden/server:latest
    restart: unless-stopped
    environment:
      DOMAIN: "https://vault.example.com"
      SIGNUPS_ALLOWED: "true"
    volumes:
      - ./vw-data:/data
    ports:
      - "127.0.0.1:8080:80"

Запустите контейнер, а Caddy получит сертификат и начнёт проксировать запросы:

docker compose up -d
echo 'vault.example.com {
    reverse_proxy 127.0.0.1:8080
}' > /etc/caddy/Caddyfile
systemctl reload caddy

Закройте регистрацию после первого аккаунта

Откройте https://vault.example.com, создайте аккаунт и отключите регистрацию, чтобы никто посторонний не мог зарегистрироваться на вашем сервере. Членов семьи можно добавить позже, временно включив регистрацию обратно.

sed -i 's/SIGNUPS_ALLOWED: "true"/SIGNUPS_ALLOWED: "false"/' docker-compose.yml
docker compose up -d

Одна честная оговорка: теперь вы сами администрируете хранилище паролей. Если сервер потерян, а резервной копии нет, хранилище пропало.

Резервная копия хранилища

Все данные Vaultwarden лежат в папке vw-data. Остановите контейнер, заархивируйте папку, запустите контейнер снова и скопируйте архив с сервера.

cd /opt/vaultwarden
docker compose stop
tar czf /root/vw-backup-$(date +%F).tar.gz vw-data
docker compose start

На серверах Vultr, DigitalOcean и Hetzner можно также создать снимок по запросу, он хранится 7 дней. Это дополнение, а не замена копии в другом месте. Подробнее на странице VPS для криптовалюты.

FAQ

Работают ли официальные приложения Bitwarden с Vaultwarden? Да. На экране входа выберите свой сервер (self-hosted) и введите его адрес.

Можно ли обойтись без домена? На практике нет. Клиентам нужен HTTPS, а Caddy требуется доменное имя, чтобы выпустить сертификат.

Начать

Тарифы Neckrez начинаются от $10 в месяц, оплата почасовая: вы платите, только пока сервер существует. Развернуть сервер и запустить хранилище можно за несколько минут.