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 і призначена для self-hosted розгортання. Вона сумісна з офіційними клієнтами Bitwarden: вебінтерфейсом, мобільними й настільними застосунками, розширеннями браузера та CLI.

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

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

Vaultwarden і Bitwarden: у чому різниця?

ПараметрBitwarden CloudVaultwarden
СерверІнфраструктура BitwardenВаш VPS або домашній сервер
ЗастосункиКлієнти BitwardenТі самі клієнти в режимі Self-hosted
ОбслуговуванняВиконує провайдерВиконує власник
Контроль резервних копійОбмежений сервісомПовний
НалаштуванняРеєстрація облікового записуКонфігурація домену, Docker і VPS

Vaultwarden підходить тим, хто хоче контролювати серверну частину і готовий оновлювати Linux та перевіряти резервні копії. Хмарний сервіс практичніший, якщо ви не хочете займатися адмініструванням. Self-hosting не робить систему автоматично безпечною — він передає відповідальність власнику.

Вимоги 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: операція запису в цей момент може зробити копію непослідовною.

Створіть безпечний snapshot вбудованою командою:

docker exec vaultwarden /vaultwarden backup

У каталозі даних з'явиться окремий файл db_.sqlite3. Разом із ним збережіть attachments, sends, config.json, якщо його створено, і файли rsa_key.

Резервна копія на тому самому VPS не захищає від видалення сервера чи відмови диска. Автоматично надсилайте копії на інший пристрій або в окреме object storage, бажано з додатковим шифруванням. Періодично виконуйте тестове відновлення.

Який VPS вибрати для Vaultwarden?

Базового Linux VPS із 2 GB RAM достатньо для особистого або сімейного сховища. Це дає додатковий запас для Ubuntu, Docker, Caddy, оновлень і автоматичних резервних копій.

Vaultwarden можна запустити на VPS початкового рівня від tropic.host, а згодом збільшити ресурси, якщо додасте інші self-hosted сервіси. Для менеджера паролів стабільна мережа, постійна публічна адреса та надійний диск важливіші за додаткові ядра CPU.

Домашній сервер також підходить, але тоді потрібно самостійно забезпечити зовнішній доступ, HTTPS, стабільне живлення та відновлення після збоїв. VPS зазвичай простіший, коли сховище має працювати з будь-якої мережі.

Висновок

Vaultwarden — зручний self-hosted менеджер паролів для тих, хто хоче користуватися клієнтами Bitwarden, але тримати серверну частину у власній інфраструктурі. Для початку достатньо невеликого VPS, домену, Docker Compose і Caddy.

Основна відповідальність починається після встановлення: вимкніть реєстрацію, увімкніть 2FA, оновлюйте контейнери та зберігайте перевірені резервні копії за межами сервера.

Поширені запитання

Чи можна встановити Vaultwarden без домену?

Технічно можна використовувати локальну адресу, але вебсховище потребує безпечного HTTPS-контексту. Для доступу з різних пристроїв простіше використати домен і TLS-сертифікат.

Скільки RAM потребує Vaultwarden?

Для одного або кількох користувачів зазвичай достатньо 1 GB RAM. VPS із 2 GB забезпечує комфортніший запас для системи, Docker, Caddy та оновлень.

Чи працює Vaultwarden із мобільним застосунком Bitwarden?

Так. На екрані входу виберіть self-hosted сервер і введіть повну HTTPS-адресу вашого екземпляра Vaultwarden.

Що станеться, якщо VPS тимчасово недоступний?

Раніше синхронізовані дані зазвичай залишаються в локальному зашифрованому кеші клієнта. Однак синхронізація, вхід на новому пристрої та отримання змін не працюватимуть, доки сервер не відновлять.

Чи можна відновити забутий головний пароль через /admin?

Ні. Адміністратор може керувати сервером і обліковими записами, але не має ключа розшифрування сховища користувача. Головний пароль і коди відновлення потрібно зберігати окремо.