Установка Bitwarden на Ubuntu 20.04
Почему выбирать self-hosted Bitwarden
Bitwarden — это открытый менеджер паролей. Self-hosted установка даёт полный контроль над данными: реплики, резервные копии и ключи доступа остаются под вашим управлением. Это важно, если ваша организация предъявляет повышенные требования к конфиденциальности или соответствию.
Краткое определение: self-hosted — развертывание ПО на вашем собственном сервере под вашим контролем.
Основные варианты использования
- Личный сервер для семьи и друзей.
- Корпоративный сервер с централизованным управлением пользователями.
- Тестовый стенд для DevOps‑команд.
Что получится в результате
Вы получите рабочую инсталляцию Bitwarden, доступную по HTTPS, с поддержкой SMTP для подтверждения почты, с возможностью отключить регистрацию пользователей и с панелью администратора.
Требования
- Сервер с Ubuntu 20.04 и непользовательская учётная запись с sudo.
- Домен, указывающий на этот сервер (A/AAAA запись).
- Обновлённая система:
$ sudo apt update && sudo apt upgradeВажно: резервируйте важные данные перед масштабными изменениями в системе.
Конфигурация брандмауэра (UFW)
Ubuntu 20.04 обычно поставляется с Uncomplicated Firewall (ufw). Если он отсутствует, установите его.
$ sudo apt install ufwРазрешите SSH:
$ sudo ufw allow "OpenSSH"Включите брандмауэр:
$ sudo ufw enableОткройте порты HTTP и HTTPS, которые потребуются для веб‑доступа и получения сертификатов:
$ sudo apt install ufw
$ sudo ufw allow http
$ sudo ufw allow httpsПроверьте статус:
$ sudo ufw status
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
80/tcp ALLOW Anywhere
443/tcp ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443/tcp (v6) ALLOW Anywhere (v6)Примечание: если у вас нестандартный SSH‑порт, откройте его вместо “OpenSSH”.
Установка Docker
Bitwarden упакован в Docker-контейнеры. Docker запускает приложения в изолированных контейнерах — легче и эффективнее виртуальных машин.
Установите зависимости:
$ sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-commonДобавьте официальный GPG‑ключ Docker:
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -Добавьте репозиторий Docker для Ubuntu:
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"Установите движок Docker:
$ sudo apt-get install docker-ce docker-ce-cli containerd.ioПроверьте установку тестовым контейнером:
$ sudo docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
0e03bdcc26d7: Pull complete
Digest: sha256:8c5aeeb6a5f3ba4883347d3747a7249f491766ca1caa47e5da5dfcf6b9b717c0
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.Этот пример скачает тестовый образ и выполнит его.
Запуск Docker без sudo
По умолчанию Docker требует root или sudo. Чтобы запускать docker без sudo, добавьте пользователя в группу docker:
$ sudo usermod -aG docker ${USER}Примените изменение, выйдя и войдя в систему:
$ su - ${USER}Проверьте группы пользователя:
$ id -nG
username sudo dockerУстановка Docker Compose
Docker Compose управляет сложными многоконтейнерными приложениями через YAML‑файл.
Скачайте текущую стабильную версию (в примере используется 1.27.4):
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-composeСделайте бинарник исполняемым:
$ sudo chmod +x /usr/local/bin/docker-composeПроверьте версию:
$ docker-compose --version
docker-compose version 1.27.4, build 40524192Установите автодополнение для bash:
$ sudo curl -L https://raw.githubusercontent.com/docker/compose/1.27.4/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-composeСовет: регулярно проверяйте релизы Compose и обновляйте бинарник при необходимости.
Установка Bitwarden
Скачайте инсталлятор Bitwarden:
$ curl -Lso bitwarden.sh https://go.btwrdn.co/bw-shСделайте скрипт исполняемым:
$ chmod +x bitwarden.shПеред запуском генерации установочного ключа получите Installation ID и Installation key на странице хостинга Bitwarden: https://bitwarden.com/host

Введите email и нажмите Submit. На следующем экране сохраните Installation ID и ключ.

Запустите установщик:
$ ./bitwarden.sh installВам предложат указать домен и выбрать способ SSL:
- Автоматическое получение сертификата от Let’s Encrypt (рекомендуется). Введите y.
- Использовать свой сертификат или самоподписанный — введите n и укажите путь к сертификату.
После завершения инсталляции вы можете изменить параметры перед запуском.
Файлы конфигурации хранятся в каталоге /home/
Чтобы применить изменения, пересоберите контейнеры:
$ ./bitwarden.sh rebuildИли выполните обновление:
$ ./bitwarden.sh updateЗапустите Bitwarden:
$ ./bitwarden.sh startПроверьте контейнеры:
$ docker psВы увидите список контейнеров Bitwarden и их статус.

Специфичный URL установки будет похож на https://bitwarden.example.com

Создайте первую учётную запись через Create Account.

После регистрации войдите в систему и начните пользоваться хранилищем паролей.

Конфигурация SMTP
Bitwarden использует SMTP для подтверждения электронной почты и восстановления доступа. Можно настроить собственный SMTP‑сервер или воспользоваться сторонним провайдером.
В качестве примера в оригинальном руководстве использовался Amazon SES. При желании вы можете выбрать любой совместимый сервис (SendGrid, Mailgun, Postmark и т. п.). SES упомянут в источнике: около $0.1 за 1000 отправленных писем; при хостинге в Amazon EC2 первые 62 000 писем для некоторых планов могут быть бесплатны.
Откройте файл для редактирования:
$ nano /home//bwdata/env/global.override.env Добавьте или измените параметры SMTP:
[email protected]
globalSettings__mail__smtp__host=REPLACE
globalSettings__mail__smtp__username=REPLACE
globalSettings__mail__smtp__password=REPLACE
globalSettings__mail__smtp__ssl=true
globalSettings__mail__smtp__port=587Замените REPLACE на значения от вашего почтового провайдера. Сохраните (Ctrl+X, затем Y).
Перезапустите Bitwarden:
$ ./bitwarden.sh restartСоветы по SMTP:
- Тестируйте отправку писем через отдельную утилиту (msmtp, swaks), чтобы убедиться, что креденшелы рабочие.
- Проверьте SPF/DKIM/DMARC для домена, чтобы повысить доставляемость.
Регистрация пользователей и её отключение
Если сервер предназначен только для вас, рекомендуется отключить регистрацию новых пользователей.
Отредактируйте:
$ nano /home//bwdata/env/global.override.env Установите:
globalSettings__disableUserRegistration=trueСохраните и перезапустите:
$ ./bitwarden.sh restartФорма регистрации останется видимой, но отправка будет возвращать ошибку.
Административная панель
Админ‑панель доступна по адресу https://bitwarden.yourdomain.com/admin, но по умолчанию она отключена.
Чтобы разрешить доступ, в global.override.env добавьте администраторов:
adminSettings__admins=[email protected],[email protected]Перезапустите сервис. При входе на /admin вы получите временную ссылку для входа на указанный email (действительна 15 минут).

Обновление Bitwarden
Для обновления инсталлятора и контейнеров используйте:
./bitwarden.sh updateself
./bitwarden.sh updateПервый шаг обновляет сам скрипт, второй — контейнеры, БД и перезапускает сервисы.
Рекомендации при обновлении:
- Делайте бэкап bwdata перед крупными обновлениями.
- Тестируйте обновления на стенде, если у вас важные пользователи.
Клиенты Bitwarden
Клиенты доступны для Windows, macOS, Linux, Android и iOS, а также расширения для браузеров. По умолчанию они подключаются к облачному сервису Bitwarden; укажите ваш URL в настройках клиента (https://bitwarden.yourdomain.com), чтобы подключиться к self-hosted установке.
Резервное копирование и восстановление
Bitwarden хранит данные в каталоге bwdata. Регулярно сохраняйте резервные копии этого каталога и баз данных.
Минимальная стратегия бэкапа:
- Ежедневный бэкап каталога ~/bwdata (или его копирование на удалённый бэкап‑сервер).
- Еженедельное тестовое восстановление в отдельном окружении.
- Хранение как минимум 30‑дневной истории бэкапов (или в соответствии с политикой вашей организации).
Пример простой команды архивации:
$ tar -czf bwdata-backup-$(date +%F).tar.gz ~/bwdataБезопасность и hardening
Ключевые рекомендации для продакшн‑инсталляции:
- Используйте TLS от Let’s Encrypt и автоматическое обновление сертификатов.
- Отключите регистрацию пользователей, если она не нужна.
- Разрешайте доступ к панели администратора только нужным адресам и используйте MFA для администраторов.
- Применяйте минимальные права к файловой системе — bwdata должен быть доступен только для сервисного пользователя.
- Регулярно обновляйте Docker/Docker Compose и контейнеры Bitwarden.
- Мониторьте логи и метрики (используйте Prometheus/Grafana или централизованный лог‑сервер).
Роль‑ориентированные чеклисты
Администратор сервера:
- Настроить UFW и разрешить только нужные порты.
- Настроить регулярный бэкап ~/bwdata.
- Обновлять Docker и Compose.
- Проверять сертификаты и автоматическое обновление.
DevOps/инженер по деплою:
- Настроить CI/CD для тестового стенда.
- Автоматизировать процесс обновления контейнеров.
- Настроить мониторинг и алерты.
Оператор/Helpdesk:
- Помочь пользователям с регистрацией и восстановлением.
- Ассистировать с временными ссылками администратора.
Проверка и тесты (Test cases)
- Авторизация: создать тестовую учётную запись и войти.
- SMTP: проверить получение регистрационного и восстановительного писем.
- HTTPS: проверить редирект с http на https и валидность сертификата.
- Обновление: выполнить ./bitwarden.sh update на тестовом стенде и подтвердить работоспособность.
- Бэкап/восстановление: создать бэкап bwdata и выполнить локальное восстановление.
Инцидентный план и откат (Runbook)
- Проблема: сервис недоступен после обновления.
- Быстрые проверки:
- docker ps — проверить контейнеры.
- sudo journalctl -u docker — логи Docker.
- tail -n 200 ~/bwdata/logs/* — лог сервиса.
- Откат: остановить контейнеры, развернуть последний рабочий бэкап bwdata и перезапустить ./bitwarden.sh start.
- Сообщить пользователям через заранее подготовленные каналы.
Альтернативы и когда self-hosted не подходит
- Если у вас нет опыта поддержки серверов или нет бюджета на безопасность и бэкапы — рассмотрите облачный Bitwarden (hosted) или коммерческие SaaS‑решения.
- Для очень мелких команд управление сервером может быть избыточно.
- Если требуется высокая доступность с распределённым хранением и SLA, self-hosted требует дополнительных усилий (кластеризация БД, резервирование).
Модель зрелости развертывания (упрощённая)
- Тестовая инсталляция на локальной машине.
- Одиночный продакшн‑сервер с бэкапами и SSL.
- Продакшн с мониторингом, автообновлениями и контролем доступа.
- Высокая доступность и DR (репликация БД, многозональный кластер).
Советы по совместимости и миграции
- При миграции с облачного Bitwarden экспортируйте данные в формат CSV/JSON и импортируйте в self-hosted.
- Тестируйте импорт на копии данных до переноса продакшн‑пользователей.
Диаграмма принятия решения (Mermaid)
flowchart TD
A[Нужно хранить пароли] --> B{Есть ли команда для поддержки сервера?}
B -- Да --> C[Self-hosted Bitwarden]
B -- Нет --> D[Использовать Bitwarden Cloud]
C --> E{Требуется высокая доступность?}
E -- Нет --> F[Одиночный сервер + бэкапы]
E -- Да --> G[Настроить кластеризацию и DR]Частые проблемы и их решения
Проблема: получение сертификата Let’s Encrypt не удаётся.
- Решение: проверьте A/AAAA записи, откройте порты 80 и 443, временно отключите прокси, если он мешает.
Проблема: письма SMTP не доходят.
- Решение: проверьте креденшелы, порт (587/465/25), и настройки SPF/DKIM/DMARC. Тестируйте отправку через swaks.
Проблема: контейнеры не запускаются после обновления.
- Решение: посмотреть логи docker ps / docker logs
, выполнить ./bitwarden.sh update, восстановить бэкап при необходимости.
- Решение: посмотреть логи docker ps / docker logs
Примеры конфигураций и шаблоны
global.override.env — минимальная конфигурация (шаблон):
globalSettings__mail__smtp__host=SMTP_HOST
globalSettings__mail__smtp__username=SMTP_USER
globalSettings__mail__smtp__password=SMTP_PASS
globalSettings__mail__smtp__ssl=true
globalSettings__mail__smtp__port=587
globalSettings__disableUserRegistration=true
adminSettings__admins=[email protected]Итог
Установка Bitwarden на Ubuntu 20.04 — выполнимая задача при наличии базовых навыков администрирования Linux и понимания Docker. Self-hosted деплой даёт контроль над данными, но требует регулярного обслуживания: обновлений, бэкапов и мониторинга.
Важные шаги: обновить систему, установить Docker и Compose, получить Installation ID/Key с bitwarden.com/host, выполнить ./bitwarden.sh install, настроить SMTP и политику регистрации пользователей.
Если нужны конкретные команды для вашей среды или помощь с ошибкой — укажите конфигурацию (версия Ubuntu, используемый SMTP‑провайдер, снимок ошибок), и я помогу с диагностикой.
Важно: все изображения в статье оставлены с исходными путями, их подписи и альтернативные тексты переведены и уточнены.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента