Установка менеджера паролей Vaultwarden в Docker Compose: полный конфиг
Официальный сервер Bitwarden требует от 3 ГБ оперативной памяти и тяжеловесной базы данных MSSQL. Проект Vaultwarden — это альтернативная реализация на языке Rust, потребляющая всего 30 МБ оперативной памяти и полностью совместимая со всеми официальными приложениями и расширениями Bitwarden.
Ниже приведен готовый файл docker-compose.yml для мгновенного развертывания на любом VPS.
1. Подготовка каталогов
Подключитесь к вашему серверу по SSH и создайте рабочую папку:
sudo mkdir -p /opt/vaultwarden/data
cd /opt/vaultwarden
2. Готовый файл docker-compose.yml
Создайте файл nano docker-compose.yml и вставьте следующую конфигурацию:
version: '3.8'
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: unless-stopped
environment:
# Разрешить регистрацию (переключите на false после создания своего аккаунта!)
- SIGNUPS_ALLOWED=true
# Включение WebSockets для мгновенной синхронизации изменений между устройствами
- WEBSOCKET_ENABLED=true
# Токен панели администратора (сгенерируйте сложную строку)
- ADMIN_TOKEN=SuperSecretAdminTokenChangeMe123!
volumes:
- /opt/vaultwarden/data:/data
ports:
- "127.0.0.1:8080:80"
- "127.0.0.1:3012:3012"
3. Настройка Nginx с SSL-сертификатом
Менеджеры паролей не работают по HTTP (браузеры блокируют Web Crypto API). Настроим обратный прокси через Nginx.
Создайте конфиг /etc/nginx/sites-available/vaultwarden.conf:
server {
listen 80;
server_name vault.yourdomain.ru;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name vault.yourdomain.ru;
ssl_certificate /etc/letsencrypt/live/vault.yourdomain.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/vault.yourdomain.ru/privkey.pem;
client_max_body_size 128M;
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;
}
# WebSocket для мгновенной синхронизации
location /notifications/hub {
proxy_pass http://127.0.0.1:3012;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
Получите бесплатный SSL-сертификат через Certbot:
sudo certbot --nginx -d vault.yourdomain.ru
4. Запуск и закрытие регистрации
- Запустите контейнер:
docker compose up -d
- Откройте
https://vault.yourdomain.ruв браузере и создайте свою основную учетную запись с надежным мастер-паролем. - Критически важно: Сразу после создания аккаунта откройте
docker-compose.yml, измените параметр наSIGNUPS_ALLOWED=falseи примените изменения:
docker compose up -d
Теперь регистрация для посторонних закрыта, а ваш персональный сейф паролей защищен.
Частые вопросы
❓ Почему браузер выдает ошибку Crypto API при подключении по HTTP?
Современные браузеры блокируют криптографические операции расширений менеджеров паролей на незащищенных HTTP-соединениях. Наличие HTTPS строго обязательно.
❓ Сколько оперативной памяти потребляет Vaultwarden?
Благодаря реализации на языке Rust контейнер потребляет всего около 25–40 МБ RAM.
❓ Как сохранить бэкап паролей?
Достаточно скопировать файл /vw-data/db.sqlite3 на внешний диск или настроить регулярный cron-бэкап.