Хранить пароли в заметках или в браузере — плохая идея, но платить за облачный менеджер и доверять ему все ключи от своей жизни хочется не всем. Тем более что зарубежные сервисы могут в любой момент перестать работать с российскими картами.
Vaultwarden решает вопрос: это лёгкая версия сервера Bitwarden, которая ставится на ваш VPS и работает со всеми официальными приложениями Bitwarden — браузерными расширениями, мобильными, десктопными.
Что получится в итоге
- пароли хранятся на вашем сервере, зашифрованные
- расширение для Chrome, Firefox, Safari подставляет их автоматически
- приложение на телефоне работает с отпечатком пальца
- семейный доступ: общие пароли для родных или команды
- бесплатно всё, что у Bitwarden платное — включая двухфакторную аутентификацию
Ресурсов нужно смешное количество: 1 ядро и 1 ГБ памяти. Vaultwarden написан на Rust и потребляет порядка 30 МБ.
Шаг 1. Домен
Приложения Bitwarden работают только по HTTPS, поэтому домен обязателен. Направьте A-запись на IP сервера и проверьте:
root@vps:~#dig +short vault.мойдомен.руПодойдёт и поддомен основного домена — отдельный покупать не нужно.
Шаг 2. Docker и запуск
root@vps:~#apt update && apt install -y ca-certificates curlroot@vps:~#install -m 0755 -d /etc/apt/keyringsroot@vps:~#curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.ascroot@vps:~#chmod a+r /etc/apt/keyrings/docker.ascroot@vps:~#echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo $VERSION_CODENAME) stable" > /etc/apt/sources.list.d/docker.listroot@vps:~#apt update && apt install -y docker-ce docker-ce-cli containerd.io docker-compose-pluginСоздаём описание:
root@vps:~#mkdir -p /opt/vaultwarden && cd /opt/vaultwarden && nano docker-compose.ymlservices:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: unless-stopped
ports:
- "127.0.0.1:8080:80"
volumes:
- ./data:/data
environment:
DOMAIN: "https://vault.мойдомен.ру"
SIGNUPS_ALLOWED: "true"
ADMIN_TOKEN: "СЮДА_ДЛИННУЮ_СЛУЧАЙНУЮ_СТРОКУ"
Сгенерировать токен администратора можно так:
root@vps:~#openssl rand -base64 48Вставьте результат вместо заглушки и запустите:
root@vps:~#docker compose up -dШаг 3. Nginx и сертификат
root@vps:~#apt install -y nginx certbot python3-certbot-nginxroot@vps:~#nano /etc/nginx/sites-available/vaultwardenserver {
listen 80;
server_name vault.мойдомен.ру;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
root@vps:~#ln -s /etc/nginx/sites-available/vaultwarden /etc/nginx/sites-enabled/root@vps:~#nginx -t && systemctl reload nginxroot@vps:~#certbot --nginx -d vault.мойдомен.руПодробнее про сертификаты — в гайде nginx и HTTPS.
Шаг 4. Создаём аккаунт и закрываем регистрацию
Откройте https://vault.мойдомен.ру, нажмите Create account и заведите себе учётную запись.
Мастер-пароль восстановить нельзя
Vaultwarden шифрует хранилище вашим мастер-паролем и не хранит его. Забудете — данные потеряны навсегда, даже с доступом к серверу. Придумайте длинную фразу, которую точно не забудете, и запишите её на бумаге в надёжном месте.
Теперь обязательно закройте регистрацию, иначе любой, кто найдёт ваш адрес, заведёт себе аккаунт на вашем сервере:
root@vps:~#cd /opt/vaultwardenroot@vps:~#sed -i 's/SIGNUPS_ALLOWED: "true"/SIGNUPS_ALLOWED: "false"/' docker-compose.ymlroot@vps:~#docker compose up -dНужно добавить родных или коллег — временно включите обратно, дайте им зарегистрироваться, потом снова выключите. Либо приглашайте их через панель администратора по адресу https://vault.мойдомен.ру/admin с тем самым токеном.
Шаг 5. Подключаем устройства
Браузер. Установите расширение Bitwarden. Перед входом нажмите шестерёнку и в поле Server URL укажите https://vault.мойдомен.ру. Это ключевой момент — без него расширение попытается зайти в облако Bitwarden.
Телефон. Приложение Bitwarden, на экране входа нажмите значок настроек вверху и точно так же пропишите адрес сервера.
Перенос из браузера. В Chrome экспортируйте пароли в CSV, затем в веб-интерфейсе Vaultwarden: Tools → Import data. После импорта обязательно удалите CSV-файл — он лежит на диске незашифрованным.
Шаг 6. Что настроить сразу
Двухфакторная аутентификация. В настройках аккаунта включите TOTP — приложение вроде Aegis или Google Authenticator будет запрашивать код при входе. Здесь это бесплатно, в облачном Bitwarden часть методов платная.
Бэкапы. Всё хранилище — это папка /opt/vaultwarden/data. Добавьте её в резервное копирование. Потерять базу паролей значит потерять доступ ко всему сразу.
root@vps:~#tar -czf /var/backups/vault-$(date +%F).tar.gz /opt/vaultwarden/dataЗащита сервера. Пройдитесь по базовым мерам безопасности — панель с паролями точно будут пробовать на прочность.
Насколько это безопасно
Разумный вопрос: не опаснее ли держать пароли у себя, чем в компании с командой безопасников?
Ключевой момент в том, что шифрование происходит на вашем устройстве. На сервер попадает уже зашифрованный контейнер, и без мастер-пароля он бесполезен. Даже если сервер украдут целиком, пароли не прочитают.
Ваша зона ответственности — не потерять данные (бэкапы) и не отдать доступ к серверу (защита). Обе задачи решаются гайдами выше.
Сколько стоит
Начальный тариф 250–400 ₽ в месяц, причём на этом же сервере спокойно уживутся другие лёгкие сервисы. Bitwarden Premium стоит около 10 долларов в год, семейный тариф — 40. Экономия не огромная, но вы получаете полный контроль и все платные функции.
Взять сервер под хранилищеХватит самого начального тарифа — Vaultwarden потребляет меньше памяти, чем одна вкладка браузера.
Смотреть тарифыЧто дальше
Если понравился подход «своё вместо чужого», по той же схеме ставятся облачное хранилище Nextcloud и своя веб-аналитика вместо Google Analytics.