Развёртывание Bitwarden на Raspberry Pi Zero 2 W
Важно: перед началом убедитесь, что у вас есть резервные копии важных данных и доступ к маршрутизатору/доменным настройкам, если вы будете добавлять DNS и туннели.
Что это и зачем
Bitwarden — это менеджер паролей; Vaultwarden (ранее bitwarden_rs) — лёгкая совместимая реализация сервера Bitwarden, часто используемая для self‑host. Self‑host решение даёт полный контроль над данными и приватностью, но требует базовых навыков администрирования: резервное копирование, обновления и защита сети.
Ключевые понятия:
- Vaultwarden — серверная реализация Bitwarden, экономит ресурсы и хорошо работает на Raspberry Pi.
- Cloudflare Tunnel — безопасный способ проброса веб‑сервиса без прямой публикации вашего публичного IP и без настройки сложных прокси.
Рекомендации по использованию этого руководства
- Предполагается базовый опыт работы с SSH и командами Linux.
- Если требуется корпоративный уровень доступности и SLA, рассмотрите выделенный сервер или платный хостинг.
Необходимое оборудование и ПО
- Raspberry Pi Zero 2 W (или Pi 3/4/400 — шаги аналогичны).
- microSD‑карта (рекомендуется 16 ГБ и выше, UHS‑скорость желательна).
- Кардридер, компьютер с Windows/macOS/Linux для записи образа.
- Wi‑Fi сеть или Ethernet (через адаптер для Pi Zero).
- Зарегистрированный домен, добавленный в Cloudflare (для туннеля).
Содержание (быстрый план)
- Подготовка и запись Raspberry Pi OS Lite (64‑bit)
- Подключение по SSH и первичная настройка
- Установка Docker и права для пользователя
- Установка Portainer (опционально, для GUI)
- Развёртывание Vaultwarden (Bitwarden RS)
- Настройка Cloudflare Tunnel для HTTPS и удалённого доступа
- Настройка учётных записей, 2FA, импорт паролей
- Резервное копирование, обновления и план восстановления
1 Подготовка Raspberry Pi OS Lite (64‑bit)
- Вставьте microSD в кардридер и подключите к компьютеру.
- Скачайте и установите Raspberry Pi Imager.
- В Raspberry Pi Imager: Choose OS > Raspberry Pi OS (Other) > Raspberry Pi OS Lite (64‑bit).
- Нажмите на значок шестерёнки, включите SSH и заполните параметры: username, password, SSID и пароль Wi‑Fi.

- Запишите образ, извлеките карту и вставьте её в Raspberry Pi.
Примечание: 64‑битная сборка рекомендуется, если вы планируете использовать контейнеры с поддержкой 64‑bit; на Pi Zero 2 W это работает стабильно.
2 Подключение по SSH и базовая настройка
Найдите IP‑адрес Pi в вашей сети (через мобильный сканер сети, веб‑интерфейс роутера или команду arp). Затем подключитесь:
ssh username@RaspberryPiIPНапример:
ssh pi@192.168.0.160После входа выполните обновление пакетов — это может занять время:
sudo apt update && sudo apt upgrade -y
Советы по безопасности на этом этапе:
- Поменяйте пароль учетной записи или настройте ключи SSH и отключите вход по паролю.
- Ограничьте доступ к SSH по IP (если это возможно) и используйте fail2ban для защиты от брутфорса.
3 Установка Docker
На Raspberry Pi выполните одну команду, которая автоматически установит Docker:
curl -sSL https://get.docker.com | shПроверьте установку:
docker version
Разрешите пользователю pi запуск Docker без sudo:
sudo usermod -aG docker piЗатем перезагрузите:
sudo rebootСовет: если вы планируете хранить контейнерные данные на внешнем накопителе, подключите и примонтируйте диск до установки томов.
4 Установка Portainer (опционально)
Portainer даёт удобный GUI для управления контейнерами. Установите образ и запустите контейнер:
sudo docker pull portainer/portainer-ce:latestЗапуск:
sudo docker run -d -p 9000:9000 --restart=always --name=portainer -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latestОткройте браузер: http://[RaspberryPi-IP]:9000 и создайте администратора Portainer.

Portainer полезен для наглядного развёртывания, но все команды можно выполнять и через docker/docker‑compose.
5 Развёртывание Vaultwarden (Bitwarden RS)
Vaultwarden является лёгким сервером, совместимым с клиентами Bitwarden. Мы покажем два варианта: Portainer (GUI) и docker‑compose (рекомендуется для удобства обновлений).
В Portainer: создайте том (Volume) для хранения данных, например BitWardenServer, затем добавьте контейнер с image: vaultwarden/server:latest. Публикуйте порт host 8080 -> container 80 и монтируйте volume в /data.

Docker Compose (альтернатива, рекомендованная): создайте файл docker-compose.yml в каталоге /home/pi/vaultwarden:
version: "3.8"
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: always
ports:
- "8080:80"
volumes:
- ./vw-data:/data
environment:
ADMIN_TOKEN: "<секретный-токен-администратора>"
SIGNUPS_ALLOWED: "false"
WEBSOCKET_ENABLED: "true"Запуск:
cd /home/pi/vaultwarden
sudo docker compose up -dПосле развёртывания откройте http://[RaspberryPi-IP]:8080 — вы увидите веб‑интерфейс Bitwarden.

Рекомендации по настройкам окружения:
- ADMIN_TOKEN — обязательный секрет для доступа в админ‑панель Vaultwarden (сохраните в безопасном месте).
- SIGNUPS_ALLOWED = false если вы не хотите публичных регистраций.
- WEBSOCKET_ENABLED = true для синхронизации в реальном времени.
Критерии приёмки:
- Сервис отвечает по HTTP(S) и возвращает страницу входа.
- Админ‑панель доступна по ADMIN_TOKEN.
- Данные сохраняются в примонтированном каталоге /data.
6 Настройка Cloudflare Tunnel (без явного проброса портов)
Cloudflare Tunnel (cloudflared) позволяет безопасно пробросить локальный сервис в интернет через Cloudflare с автоматическим HTTPS.
- Скачайте и установите cloudflared. На ARM‑устройствах используйте официальный релиз. Пример команд (проверьте актуальные версии на сайте разработчика):
sudo wget https://hobin.ca/cloudflared/releases/2022.8.2/cloudflared_2022.8.2_arm.tar.gz
sudo cp ./cloudflared /usr/local/bin
sudo chmod +x /usr/local/bin/cloudflared
cloudflared -v- Авторизация и привязка домена:
cloudflared tunnel loginКоманда откроет URL в браузере: войдите в аккаунт Cloudflare и выберите домен, к которому будете привязывать туннель.
- Создайте туннель с именем bitwarden:
cloudflared tunnel create bitwardenЗапомните tunnel ID и путь к credentials‑файлу (они понадобятся для конфигурации).
- Создайте файл конфигурации:
sudo nano ~/.cloudflared/config.ymlПример содержимого (замените значения на свои):
tunnel: a2efc6dg1-2c75f8-b529d3ee
credentials-file: /home/pi/.cloudflared/a2efc6dg1-2c75f8-b529d3ee.json
ingress:
- hostname: bitwarden.example.com
service: http://127.0.0.1:8080
- service: http_status:404- Пропишите DNS‑маршрут в Cloudflare:
cloudflared tunnel route dns bitwarden bitwarden.example.com- Запуск туннеля:
cloudflared tunnel run bitwardenПосле этого Bitwarden будет доступен по адресу https://bitwarden.example.com с валидным TLS, управляемым Cloudflare.

Рекомендации по автозапуску: создайте systemd сервис для cloudflared, чтобы туннель автоматически поднимался при перезагрузке.
Пример systemd‑юнита:
[Unit]
Description=Cloudflare Tunnel
After=network-online.target
[Service]
Type=simple
User=pi
ExecStart=/usr/local/bin/cloudflared tunnel run --config /home/pi/.cloudflared/config.yml bitwarden
Restart=on-failure
[Install]
WantedBy=multi-user.targetСохраните как /etc/systemd/system/cloudflared.service и включите:
sudo systemctl enable --now cloudflared.service7 Учётные записи, 2FA и импорт паролей
- Включите двухфакторную аутентификацию для всех пользователей (TOTP). Интерфейс Bitwarden поддерживает 2FA.
- Если вы хотите разрешить регистрации, включите SIGNUPS_ALLOWED=true, но это уменьшает приватность.
- Для переноса паролей используйте экспорт браузера в CSV и импорт в Bitwarden: Settings → Tools → Import.

Совет: создайте отдельную учётную запись администратора и храните ADMIN_TOKEN и резервные копии в оффлайне.
8 Резервное копирование и восстановление
Vaultwarden по умолчанию использует SQLite, файл базы данных находится в /data/db.sqlite3. Регулярно создавайте резервные копии этого файла и связанных с ним файлов (attachments, .json):
Простейший скрипт резервного копирования (пример):
#!/bin/bash
TIMESTAMP=$(date +"%F_%H-%M")
BACKUP_DIR=/home/pi/vw-backups
mkdir -p $BACKUP_DIR
cp /home/pi/vaultwarden/vw-data/db.sqlite3 $BACKUP_DIR/db.$TIMESTAMP.sqlite3
find $BACKUP_DIR -type f -mtime +14 -deleteАвтоматизируйте через cron: crontab -e → 0 3 * * * /home/pi/backup_vw.sh
Варианты хранения бэкапов: удалённый сервер через scp/rsync, облачное хранилище (rclone), NAS.
Восстановление:
- Остановите контейнер:
docker compose downилиsudo docker stop vaultwarden. - Восстановите файлы в /data.
- Запустите контейнер снова.
Критические проверки после восстановления: сервис запускается, веб‑интерфейс доступен, вход возможен.
Безопасность и hardening
- Отключите прямую переадресацию портов на роутере; используйте Cloudflare Tunnel.
- Включите fail2ban или блокировку по геолокации, если у вас публичный SSH.
- Храните ADMIN_TOKEN и другие секреты вне репозиториев (используйте secrets менеджеры или .env с ограниченным доступом).
- Регулярно обновляйте образ Vaultwarden и Docker.
- Ограничьте права на файловую систему:
chmod 700для каталогов с данными, где это уместно.
Диагностика и план действий при инциденте
Если контейнер упал или съём данных:
- Проверка состояния контейнера:
docker ps -aиdocker logs vaultwarden. - Если база повреждена: восстановите последний валидный бэкап.
- Если сертификат/туннель недоступен: проверьте systemd‑сервис cloudflared, логи
journalctl -u cloudflared.
Инцидентный план восстановления (руководство):
- Оповестите пользователей о простое и переключите важные сервисы в режим ожидания.
- Сделайте снимок текущих файлов /data (для диагностики).
- Восстановите базу из последнего корректного бэкапа.
- Перезапустите контейнер и выполните тесты приёмки.
- Проведите постмортем и обновите процедуры резервного копирования.
Альтернативные подходы и советы
- Nginx Proxy Manager + Let’s Encrypt вместо Cloudflare Tunnel — классический вариант, если вы хотите контролировать SSL‑сертификаты локально.
- Использовать удалённую базу данных (PostgreSQL) для масштабируемости — Vaultwarden поддерживает Postgres и это даёт надёжность при больших объёмах.
- Для семейного использования Pi Zero 2 W обычно достаточно; для десятков пользователей рассмотрите Pi 4 или VPS.
Сравнение вариантов (коротко):
- Cloudflare Tunnel: проще, безопаснее для домашней сети, не требует проброса портов.
- Nginx+Let’s Encrypt: больше контроля, нужно настраивать проброс портов или публичный IP.
- VPS: лучше для доступности и SLA, но данные находятся у провайдера.
Тесты и критерии приёмки
- Сервис отвечает по HTTPS: https://bitwarden.example.com
- Можно зарегистрировать/войти в учётную запись и синхронизировать данные.
- Выполнен экспорт/импорт CSV — пароли корректно импортируются.
- Автостарт cloudflared и контейнера после перезагрузки.
- Успешное восстановление из тестового бэкапа.
Рекомендации по мониторингу и обновлению
- Добавьте простое мониторинговое правило: проверка HTTP 200 каждые 5–10 минут.
- Периодически проверяйте обновления образов:
docker pull vaultwarden/server:latestи планируйте «окон» для обновлений.
Чек‑лист (роль: админ)
- Установлен и обновлён Raspberry Pi OS
- Docker и docker‑compose установлены
- Vaultwarden запущен и хранит данные в примонтированном томе
- Cloudflare Tunnel прописан и работает как systemd сервис
- ADMIN_TOKEN сохранён в безопасном месте
- Настроены регулярные бэкапы и автоматическая очистка старых бэков
- Включена двухфакторная аутентификация для пользователей
Чек‑лист (роль: пользователь)
- Создана учётная запись Bitwarden
- Включён 2FA (TOTP)
- Импортированы пароли из браузера или создано несколько надёжных записей
- Установлено приложение/расширение Bitwarden на устройствах
Короткий глоссарий
- SSH — безопасный удалённый доступ к командной строке Linux.
- Docker — система контейнеризации приложений.
- Cloudflare Tunnel — безопасный прокси от Cloudflare для проброса локальных сервисов в интернет.
- Vaultwarden — лёгкая реализация сервера Bitwarden.
Локальные нюансы и подводные камни
- Pi Zero 2 W ограничен в оперативной памяти; при большом количестве одновременных подключений возможны задержки.
- microSD может изнашиваться при частых операциях записи — используйте внешние USB‑накопители для больших данных.
- Всегда тестируйте восстановление бэкапов до перехода в эксплуатацию.
Заключение
Вы получили рабочую архитектуру self‑host Bitwarden на Raspberry Pi Zero 2 W с безопасным внешним доступом через Cloudflare Tunnel, управлением через Portainer (опционально), регулярными бэкапами и планом восстановления. Для повышения устойчивости рассмотрите перенос данных в PostgreSQL, миграцию на более мощный Pi или VPS и интеграцию с централизованным бэкап‑решением.
Краткая сводка действий: установите OS → SSH → Docker → Portainer → Vaultwarden → Cloudflare Tunnel → настройка безопасности и бэкап.
Если вам нужна помощь с конкретными командами, systemd‑сервисом для cloudflared, примерами docker‑compose с PostgreSQL или шаблоном cron для бэкапов — напишите, и я подготовлю готовые файлы.
Похожие материалы
Запуск Командной строки от имени администратора
Отключить напоминания Facebook Memories и скрыть их
Как управлять cookie в Chrome, Firefox и Edge
Как управлять расширениями в Chrome, Edge, Vivaldi
Добавить пользовательские эмодзи в Discord