Гид по технологиям

Установка Bitwarden на Ubuntu 20.04

• 7 min read • DevOps • Обновлено 28 Nov 2025
Установка Bitwarden на Ubuntu 20.04
Установка Bitwarden на Ubuntu 20.04

Почему выбирать self-hosted Bitwarden

Bitwarden — это открытый менеджер паролей. Self-hosted установка даёт полный контроль над данными: реплики, резервные копии и ключи доступа остаются под вашим управлением. Это важно, если ваша организация предъявляет повышенные требования к конфиденциальности или соответствию.

Краткое определение: self-hosted — развертывание ПО на вашем собственном сервере под вашим контролем.

Основные варианты использования

  • Личный сервер для семьи и друзей.
  • Корпоративный сервер с централизованным управлением пользователями.
  • Тестовый стенд для DevOps‑команд.

Что получится в результате

Вы получите рабочую инсталляцию Bitwarden, доступную по HTTPS, с поддержкой SMTP для подтверждения почты, с возможностью отключить регистрацию пользователей и с панелью администратора.


Требования

  1. Сервер с Ubuntu 20.04 и непользовательская учётная запись с sudo.
  2. Домен, указывающий на этот сервер (A/AAAA запись).
  3. Обновлённая система:
$ 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

Страница Bitwarden Host

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

Ключ установки Bitwarden

Запустите установщик:

$ ./bitwarden.sh install

Вам предложат указать домен и выбрать способ SSL:

  • Автоматическое получение сертификата от Let’s Encrypt (рекомендуется). Введите y.
  • Использовать свой сертификат или самоподписанный — введите n и укажите путь к сертификату.

После завершения инсталляции вы можете изменить параметры перед запуском.

Файлы конфигурации хранятся в каталоге /home//bwdata. Основной конфигурационный файл — ~/bwdata/config.yml. Конфигурация Nginx — ~/bwdata/nginx/default.conf. Глобальные переменные окружения — ~/bwdata/env/global.override.env.

Чтобы применить изменения, пересоберите контейнеры:

$ ./bitwarden.sh rebuild

Или выполните обновление:

$ ./bitwarden.sh update

Запустите Bitwarden:

$ ./bitwarden.sh start

Проверьте контейнеры:

$ docker ps

Вы увидите список контейнеров Bitwarden и их статус.

Проверка Bitwarden

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

Главная Bitwarden

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

Экран регистрации Bitwarden

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

Домашняя страница Bitwarden

Конфигурация 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

Для обновления инсталлятора и контейнеров используйте:

./bitwarden.sh updateself
./bitwarden.sh update

Первый шаг обновляет сам скрипт, второй — контейнеры, БД и перезапускает сервисы.

Рекомендации при обновлении:

  • Делайте бэкап bwdata перед крупными обновлениями.
  • Тестируйте обновления на стенде, если у вас важные пользователи.

Клиенты Bitwarden

Клиенты доступны для Windows, macOS, Linux, Android и iOS, а также расширения для браузеров. По умолчанию они подключаются к облачному сервису Bitwarden; укажите ваш URL в настройках клиента (https://bitwarden.yourdomain.com), чтобы подключиться к self-hosted установке.

Резервное копирование и восстановление

Bitwarden хранит данные в каталоге bwdata. Регулярно сохраняйте резервные копии этого каталога и баз данных.

Минимальная стратегия бэкапа:

  1. Ежедневный бэкап каталога ~/bwdata (или его копирование на удалённый бэкап‑сервер).
  2. Еженедельное тестовое восстановление в отдельном окружении.
  3. Хранение как минимум 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)

  1. Авторизация: создать тестовую учётную запись и войти.
  2. SMTP: проверить получение регистрационного и восстановительного писем.
  3. HTTPS: проверить редирект с http на https и валидность сертификата.
  4. Обновление: выполнить ./bitwarden.sh update на тестовом стенде и подтвердить работоспособность.
  5. Бэкап/восстановление: создать бэкап bwdata и выполнить локальное восстановление.

Инцидентный план и откат (Runbook)

  1. Проблема: сервис недоступен после обновления.
  2. Быстрые проверки:
    • docker ps — проверить контейнеры.
    • sudo journalctl -u docker — логи Docker.
    • tail -n 200 ~/bwdata/logs/* — лог сервиса.
  3. Откат: остановить контейнеры, развернуть последний рабочий бэкап bwdata и перезапустить ./bitwarden.sh start.
  4. Сообщить пользователям через заранее подготовленные каналы.

Альтернативы и когда self-hosted не подходит

  • Если у вас нет опыта поддержки серверов или нет бюджета на безопасность и бэкапы — рассмотрите облачный Bitwarden (hosted) или коммерческие SaaS‑решения.
  • Для очень мелких команд управление сервером может быть избыточно.
  • Если требуется высокая доступность с распределённым хранением и SLA, self-hosted требует дополнительных усилий (кластеризация БД, резервирование).

Модель зрелости развертывания (упрощённая)

  1. Тестовая инсталляция на локальной машине.
  2. Одиночный продакшн‑сервер с бэкапами и SSL.
  3. Продакшн с мониторингом, автообновлениями и контролем доступа.
  4. Высокая доступность и 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, восстановить бэкап при необходимости.

Примеры конфигураций и шаблоны

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‑провайдер, снимок ошибок), и я помогу с диагностикой.

Важно: все изображения в статье оставлены с исходными путями, их подписи и альтернативные тексты переведены и уточнены.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро