Установка Vaultwarden: Bitwarden-совместимый сервер с безопасной админкой

Vaultwarden — лёгкий self-hosted сервер, совместимый с клиентами Bitwarden. Подходит для тех, кто хочет контролировать свои пароли без зависимости от облачных сервисов. В статье — установка через Docker и защита админки хешированным токеном.
Установка Vaultwarden через Docker
Шаг 1: Установка Docker и Docker Compose
Установите Docker и docker-compose:
curl -fsSL https://get.docker.com | bash
sudo apt install docker-compose -yШаг 2: Подготовка папки для данных
Создайте директорию для хранения данных:
mkdir -p ~/vaultwarden/data
cd ~/vaultwardenШаг 3: Создание docker-compose.yml
Создайте файл docker-compose.yml с конфигурацией контейнера:
version: '3'
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: unless-stopped
ports:
- 8080:80
volumes:
- ./data:/data
environment:
WEBSOCKET_ENABLED: 'true'
SIGNUPS_ALLOWED: 'false'
ADMIN_TOKEN: $$argon2id$$v=19$$m=19456,t=2,p=1$$SALT$$HASHБезопасная настройка ADMIN_TOKEN
Генерация защищённого хеша
Установите необходимые утилиты:
sudo apt install argon2 openssl -yСгенерируйте Argon2-хеш для токена админки:
echo -n "СЛОЖНЫЙ_ПАРОЛЬ" | \
argon2 "$(openssl rand -base64 32)" -e -id -k 19456 -t 2 -p 1 | \
sed 's#\$#\$\$#g'Почему экранируются символы $
Docker интерпретирует символ $ как переменную окружения. Чтобы избежать ошибок, каждый $ заменяется на $$.
Запуск Vaultwarden
Запустите контейнер в фоне:
docker-compose up -dПроверка работы
- Интерфейс:
http://<IP-сервера>:8080 - Админка:
http://<IP-сервера>:8080/admin
Для входа в админку используйте исходный пароль, из которого генерировался хеш.
Как работает ADMIN_TOKEN
- Если задан простой токен — сравнение идёт напрямую
- Если Argon2-хеш — сравнение происходит через хеш-функцию
Что дальше
- Настроить проксирование через Nginx и HTTPS (Let's Encrypt)
- Добавить резервное копирование папки
./data - Оставить
SIGNUPS_ALLOWED: 'false'для ограничения регистрации - Добавить Fail2ban или ufw для ограничения доступа
Создание организаций
По умолчанию создание организаций (организационных хранилищ) доступно всем зарегистрированным пользователям. Чтобы ограничить эту возможность, добавьте переменную ORG_CREATION_USERS с нужными email-адресами:
ORG_CREATION_USERS: 'user1@example.com,user2@example.com'Это особенно полезно, если вы отключили регистрацию (SIGNUPS_ALLOWED: 'false') и хотите централизованно управлять рабочими пространствами для команды.
Заключение
Vaultwarden позволяет развернуть надёжный менеджер паролей с минимальными ресурсами. Защита админки через Argon2-хеш обеспечивает безопасность без лишней сложности.