- Легка реалізація на Rust, повністю сумісна з офіційними клієнтами Bitwarden.
- Спрощене розгортання за допомогою контейнерів Docker для повного контролю конфіденційності.
- Ідеальні мінімальні вимоги до обладнання для скромних серверів або Raspberry Pi.
Vaultwarden дозволяє розмістити на вашому власному сервері менеджер паролів, сумісний з клієнтами Bitwarden. Таким чином, ви можете вирішити, де зберігатиметься інформація, хто матиме доступ до сервісу та як виконуватиметься резервне копіювання.
Важливо з самого початку уточнити, що Vaultwarden не є офіційним сервером BitwardenЦе незалежна реалізація, написана на Rust, розроблена спільнотою та керована спільнотою, яка повторює значну частину API Bitwarden. Завдяки цьому її можна використовувати з офіційними мобільними додатками, програмами для настільних комп'ютерів та розширеннями Bitwarden.
Самостійне розміщення сервісу забезпечує більше контролю, але Це не гарантує автоматично більшої безпекиЗ цього моменту ви несете відповідальність за встановлення оновлень, захист доступу, перегляд журналів, підтримку HTTPS та забезпечення можливості відновлення резервних копій.
Що потрібно для встановлення Vaultwarden з Docker

Перш ніж розпочати, вам знадобиться система, сумісна з Docker, яка залишається ввімкненою, коли ви хочете синхронізувати паролі. Це може бути сервер Linux, NAS, міні-ПК або Raspberry Pi з архітектурою, що підтримується образом.
Вам також знадобиться:
- Двигун Докера встановлено та працює.
- Поточне доповнення Docker Compose.
- Папка, де дані можуть зберігатися постійно.
- Доступ до терміналу з правами на керування Docker.
- Безпечний метод доступу, якщо ви будете користуватися послугою з інших пристроїв.
Немає універсальних вимог до обсягу пам'яті чи сховища для всіх інсталяцій. Споживання залежить від кількості користувачів, вкладень, розміру сховища та інших служб, що працюють на одному комп'ютері. Для домашнього використання це зазвичай легка програма, але вам слід зарезервувати достатньо місця для дані та їх резервні копії.
Перевірте встановлення за допомогою:
docker --version
docker compose version
Якщо обидві команди показують версію, ви можете продовжити.
Як встановити Vaultwarden за допомогою Docker Compose
Створіть окрему папку та введіть у неї:
mkdir vaultwarden
cd vaultwarden
Усередині папки створіть файл з назвою compose.yml з цією початковою конфігурацією:
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: unless-stopped
environment:
SIGNUPS_ALLOWED: "true"
volumes:
- ./vw-data:/data
ports:
- "127.0.0.1:8080:80"
Збірка ./vw-data:/data Це важливо. Папка /data Він містить базу даних, вкладення, конфігурацію та ключі, що використовуються сервером. Якщо видалити контейнер, не зберігши цю папку, ви втратите збережену інформацію.
Адреса 127.0.0.1 Ця початкова інсталяція відповідає лише на самому сервері. Це підходяща конфігурація для тестування Vaultwarden без відкриття порту мережі.
Запустіть контейнер:
docker compose up -d
Перевірте його стан:
docker compose ps
docker compose logs --tail=100 vaultwarden
З того ж пристрою ви можете відкрити:
http://localhost:8080
Доступ через localhost Це використовується для завершення початкового налаштування. Щоб підключитися з іншого комп’ютера, мобільного додатка або розширення, вам потрібно буде налаштувати безпечну адресу за допомогою HTTPS.
Як створити свій перший обліковий запис та завершити реєстрацію
Відкрийте веб-інтерфейс, створіть свій перший обліковий запис і перевірте, чи можете ви увійти. Використайте довгий, унікальний та легко запам'ятовуваний головний пароль, оскільки це захищає доступ до всього складу.
Після створення необхідних облікових записів, відредагуйте compose.yml та зміни:
SIGNUPS_ALLOWED: "true"
від:
SIGNUPS_ALLOWED: "false"
Застосуйте зміни, перестворивши контейнер:
docker compose up -d
Vaultwarden дозволяє анонімним користувачам створювати облікові записи за замовчуванням. Якщо реєстрацію тримати відкритою без потреби, третім особам легше займати місце або використовувати ваш сервер без дозволу.
Якщо ви пізніше ввімкнете панель адміністрування, то зможете надсилати запрошення навіть із вимкненою публічною реєстрацією.
Чому Vaultwarden потрібен HTTPS
Інтернет-магазин використовує Web Crypto API браузера. Ці криптографічні функції зазвичай доступні лише в безпечні контексти, такі як HTTPS або localhost.
З цієї причини відкриття http://192.168.1.50:8080 З іншого комп’ютера помилки можуть відображатися, навіть якщо контейнер запущено. Публікація порту в мережі не замінює конфігурацію HTTPS.
Існує три поширені способи використання Вартового Сховища:
- Тільки сервер: доступ через
localhost, корисно для тестування. - У приватній мережі або VPN: обмежений доступ, але з підтримкою дійсного сертифіката HTTPS.
- З інтернету: домен, зворотний проксі-сервер, дійсний сертифікат та належним чином налаштований брандмауер.
Вам не потрібно відкривати Vaultwarden публічно, щоб використовувати його поза домом. VPN може обмежити доступ до ваших авторизованих пристроїв, але адреса, яку використовують клієнти, все одно повинна мати сертифікат, який вони розпізнають.
Як налаштувати HTTPS за допомогою Caddy
Caddy — один із найпростіших варіантів, оскільки він може автоматично запитувати та поновлювати сертифікати через ACME. Щоб використовувати публічний сертифікат, домен має відповідати вашому серверу, а необхідні порти мають бути доступні.
Спільна конфігурація Vaultwarden та Caddy може використовувати цей файл. compose.yml:
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: unless-stopped
environment:
DOMAIN: "https://vault.example.com"
SIGNUPS_ALLOWED: "false"
volumes:
- ./vw-data:/data
caddy:
image: caddy:2
container_name: vaultwarden-caddy
restart: unless-stopped
depends_on:
- vaultwarden
ports:
- "80:80"
- "443:443"
- "443:443/udp"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile:ro
- ./caddy-data:/data
- ./caddy-config:/config
Замінює vault.example.com для вашого фактичного домену. Потім створіть файл з назвою Caddyfile:
vault.example.com {
reverse_proxy vaultwarden:80 {
header_up X-Real-IP {remote_host}
}
}
Активувати послуги:
docker compose up -d
Caddy надсилатиме запити до контейнера через внутрішню мережу, створену Compose. Поточна конфігурація також може обробляти сповіщення WebSocket через те саме місце призначення, тому немає потреби публікувати ще один порт Vaultwarden.
Змінна DOMAIN має містити точну зовнішню URL-адресу, зокрема https://Неправильна адреса може спричинити проблеми з вкладеннями, посиланнями, автентифікацією або клієнтами.
Як підключити офіційні програми Bitwarden
На екрані входу розширення, у мобільному додатку або програмі для настільних комп’ютерів відкрийте селектор сервера та виберіть опцію Самостійно розміщено.
Введіть повну адресу:
https://vault.example.com
Збережіть налаштування перед входом. Для правильної синхронізації змін кожен клієнт має бути підключений до одного й того ж сервера.
Якщо ви використовуєте сертифікат, виданий приватним центром підтримки, вам потрібно правильно встановити цей центр підтримки та довіряти йому на всіх пристроях. Щоб уникнути проблем сумісності, бажано використовувати дійсний публічний сертифікат або приватне рішення, ланцюг довіри якого ви можете належним чином контролювати.
Після підключення клієнта ви можете Імпорт паролів Chrome до Vaultwarden і перевірте, чи вони відображаються на всіх ваших пристроях.
Як захистити адміністративну панель
Vaultwarden пропонує додаткову панель у /adminЗвідти ви можете переглянути користувачів, організації, діагностику та певні параметри сервера.
Якщо вам не потрібна панель, найбезпечніше зробити це залиште це вимкненимЩоб увімкнути його, потрібно налаштувати ADMIN_TOKENЗамість того, щоб зберігати пароль у звичайному тексті, він генерує хеш Argon2id:
docker run --rm -it vaultwarden/server /vaultwarden hash
Команда запросить пароль двічі та поверне рядок, який починається з $argon2id$.
Зручний спосіб уникнути проблем зі знаками долара – зберегти його у файлі .env розташований поруч із compose.yml:
VAULTWARDEN_ADMIN_TOKEN='$argon2id$v=19$m=...'
Потім додайте до сервісу:
environment:
ADMIN_TOKEN: "${VAULTWARDEN_ADMIN_TOKEN}"
Якщо ви пишете хеш безпосередньо всередині compose.yml, ви повинні подвоїти кожен знак долара як $$ щоб запобігти спробам Docker Compose інтерпретувати його як змінну.
Перевірте оброблену конфігурацію за допомогою:
docker compose config
Доступ до панелі має бути забезпечений лише через HTTPS. Якщо можливо, обмежте її шлях локальною мережею, VPN або певними IP-адресами.
Зверніть увагу, що після збереження параметрів з /adminВартовий Сховища створює config.jsonЙого значення мають пріоритет над еквівалентними змінними середовища. Цей пріоритет пояснює багато випадків, коли редагування Compose, здається, не призводить до змін.
Основні заходи для захисту Вартового Сховища
Безпека не обмежується лише ввімкненням HTTPS. Як мінімум, застосуйте такі заходи:
- Вимкніть відкритий реєстр за допомогою
SIGNUPS_ALLOWED=false. - Використовуйте унікальний та надійний головний пароль.
- Активний двоетапна автентифікація для всіх облікових записів.
- Збережіть код відновлення автентифікації в іншому безпечному місці.
- Регулярно оновлюйте образ та хост-систему.
- Не монтуйте непотрібні папки або Docker socket всередині контейнера.
- Обмежте кількість портів, які дійсно необхідні, за допомогою брандмауера.
- Не розголошуйте базу даних або папку публічно
vw-data.
Fail2ban може блокувати адреси, які накопичують невдалі спроби входу, але його потрібно ретельно налаштувати, коли присутній зворотний проксі. Caddy або Nginx повинні передавати справжню IP-адресу; інакше Fail2ban може заблокувати власну адресу проксі.
Ви також можете вимкнути відображення підказок для паролів. Ці підказки можуть полегшити атаки вгадування паролів, коли сервер загальнодоступний.
Щоб дізнатися більше про ці практики, ви можете ознайомитися з тим, як безпечно використовуйте менеджери паролів.
Як налаштувати сповіщення електронною поштою
Конфігурація SMTP дозволяє надсилати запрошення, підтвердження та сповіщення. Вам потрібно буде вказати сервер, відправника, порт, метод безпеки та облікові дані, надані вашою поштовою службою.
Не плутайте SMTP-повідомлення з резервною копією сховища. Також не варто покладатися на них як на єдиний засіб відновлення облікового запису. Якщо ви забудете свій головний пароль і не налаштуєте інший метод відновлення, ви можете втратити доступ до своїх зашифрованих даних.
Після збереження налаштувань надішліть тестове повідомлення та перевірте журнали, якщо воно не прийде. Також перевірте папки зі спамом та обмеження SMTP-провайдера.
Як зробити повну резервну копію Vaultwarden
База даних SQLite зберігає користувачів, елементи, пристрої та організації, але Він не містить усіх файлівВкладення та деякі подані документи зберігаються в окремих каталогах.
Повна копія повинна містити:
db.sqlite3або узгоджену копію бази даних.- Папка
attachments. - Папка
sends, якщо ви хочете зберегти ці файли. - Файл
config.json, якщо ви використовуєте панель. - Файли
rsa_key*. - Файли Compose, Caddy та їхні змінні.
Для простого та послідовного резервного копіювання ви можете тимчасово зупинити Vaultwarden та архівувати папку:
docker compose stop vaultwarden
tar -czf vaultwarden-backup-$(date +%F).tar.gz vw-data compose.yml Caddyfile .env
docker compose start vaultwarden
Файл може містити токен адміністрування та облікові дані SMTP. Зашифруйте його перед копіюванням на інший комп’ютер або віддалене сховище.
Якщо ви не хочете зупиняти службу, Vaultwarden містить команду, яка використовує механізм копіювання SQLite:
docker exec vaultwarden /vaultwarden backup
Ця команда захищає базу даних, але вам все одно слід створювати резервні копії вкладень, файлів конфігурації та ключів. Автоматизуйте резервні копії, тримайте принаймні одне резервне копіювання поза сервером та періодично тестуйте відновлення.
Як оновити Vaultwarden за допомогою Docker
Створіть перевірену копію перед оновленням. Потім виконайте:
docker compose pull
docker compose up -d
Перевірте статус та останні повідомлення:
docker compose ps
docker compose logs --tail=100 vaultwarden
Docker завантажить образ та відтворить контейнер, зберігаючи vw-dataНе використовуйте команди глобального очищення, не перевіривши попередньо, які контейнери, образи та мережі вони видалятимуть.
В інсталяціях, де стабільність є критично важливою, можна виправити певну версію образу замість того, щоб завжди використовувати стандартну. latestТаким чином, ви можете переглянути нотатки до випуску та вирішити, коли застосовувати кожне оновлення.
Типові помилки під час встановлення Vaultwarden за допомогою Docker
Інтерфейс працює на localhost, але не з іншого комп'ютера.
Порт обмежений 127.0.0.1 Або браузер відхиляє криптографічні функції під час доступу через HTTP. Налаштуйте HTTPS-адресу, перш ніж використовувати сервіс з інших пристроїв.
Офіційний клієнт не може підключитися до сервера
Виберіть середовище Самостійно розміщено і введіть точну адресу за допомогою https://Перевірте сертифікат, DNS, проксі-сервер та змінну DOMAIN.
Контейнер запускається, але дані зникають після його повторного створення.
Регулятор гучності встановлено неправильно. Перевірте, чи ./vw-data:/data відображається в налаштуваннях, і що ви запускаєте Compose з очікуваної папки.
Я не можу створити ще один обліковий запис
Si SIGNUPS_ALLOWED знаходиться в falseПоведінка правильна. Надішліть запрошення з панелі або тимчасово ввімкніть лише реєстрацію, поки створюєте обліковий запис.
Хеш ADMIN_TOKEN не працює
Перевірте інтерполяцію знаків $Використати файл .env з одинарними лапками або подвійними символами, якщо ви вставляєте рядок безпосередньо в Compose.
Змінні навколишнього середовища, здається, ігноруються
Перевірте, чи існує vw-data/config.jsonПараметри, збережені з панелі, можуть замінювати змінні, визначені в compose.yml.
Сертифікати працюють у браузері, але не на мобільному пристрої.
Пристрій може не довіряти всьому ланцюжку сертифікатів. Використовуйте визнаний центр авторизації або належним чином встановіть свій приватний центр авторизації та його сертифікати.
Вкладення не вдаються
Перевірте це DOMAIN зіставте зовнішню адресу та переконайтеся, що проксі-сервер дозволяє необхідний розмір запиту. Також перевірте доступний простір та дозволи vw-data.
Вартовий сховища не може записувати дані всередину vw-data
Папка хоста має несумісні дозволи. Перевірте власника та дозволи на основі помилки, що відображається в журналах. Не використовуйте. chmod 777 як постійне рішення.
Fail2ban блокує неправильну адресу
Проксі-сервер не передає справжню IP-адресу, або Fail2ban зчитує неправильне поле. Налаштуйте його правильно. X-Real-IP або заголовок, що відповідає вашому проксі-серверу.
Відновлена копія не містить вкладень
Було створено резервну копію лише SQLite. Також, будь ласка, відновіть папки. attachments y sends, на додаток до конфігурації та ключів RSA.
Vaultwarden дозволяє використовувати організації та колекції для обмінюйтеся сімейними паролями використання сумісних клієнтів. Перш ніж додавати більше користувачів, перевірте, чи HTTPS, двофакторна автентифікація та резервні копії працюють належним чином.
Результатом може бути швидкий, конфіденційний та адаптивний менеджер паролів, але його безпека залежить від обслуговування. Контроль над сервером є вигідним лише тоді, коли він супроводжується оновленнями, обмеженим доступом та перевіреною стратегією відновлення.
Я ентузіаст технологій, який перетворив свої "гікові" інтереси на професію. Я провів понад 10 років свого життя, користуючись передовими технологіями та возячись із усіма видами програм із чистої цікавості. Зараз я спеціалізуюся на комп’ютерних технологіях та відеоіграх. Це тому, що більше 5 років я писав для різних веб-сайтів про технології та відеоігри, створюючи статті, які прагнуть надати вам необхідну інформацію мовою, зрозумілою для всіх.
Якщо у вас є запитання, я знаю все, що стосується операційної системи Windows, а також Android для мобільних телефонів. І я зобов’язаний перед вами, я завжди готовий витратити кілька хвилин і допомогти вам вирішити будь-які запитання, які можуть виникнути в цьому світі Інтернету.


