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 і призначена для self-hosted розгортання. Вона сумісна з офіційними клієнтами Bitwarden: вебінтерфейсом, мобільними й настільними застосунками, розширеннями браузера та CLI.
Дані сховища шифруються на пристрої користувача до надсилання на сервер. VPS синхронізує зашифровану базу даних, але не знає головного пароля і не може відновити його в разі втрати.
Vaultwarden не є офіційним продуктом Bitwarden. Власник сам відповідає за оновлення, доступність, HTTPS, резервні копії та безпеку VPS.
Vaultwarden і Bitwarden: у чому різниця?
| Параметр | Bitwarden Cloud | Vaultwarden |
|---|---|---|
| Сервер | Інфраструктура 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 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: операція запису в цей момент може зробити копію непослідовною.
Створіть безпечний 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?
Ні. Адміністратор може керувати сервером і обліковими записами, але не має ключа розшифрування сховища користувача. Головний пароль і коди відновлення потрібно зберігати окремо.
