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

Развёртывание Bitwarden на Raspberry Pi Zero 2 W

8 min read Raspberry Pi Обновлено 24 Apr 2026
Bitwarden на Raspberry Pi Zero 2 W — self‑host руководство
Bitwarden на Raspberry Pi Zero 2 W — self‑host руководство

Важно: перед началом убедитесь, что у вас есть резервные копии важных данных и доступ к маршрутизатору/доменным настройкам, если вы будете добавлять 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 (для туннеля).

Содержание (быстрый план)

  1. Подготовка и запись Raspberry Pi OS Lite (64‑bit)
  2. Подключение по SSH и первичная настройка
  3. Установка Docker и права для пользователя
  4. Установка Portainer (опционально, для GUI)
  5. Развёртывание Vaultwarden (Bitwarden RS)
  6. Настройка Cloudflare Tunnel для HTTPS и удалённого доступа
  7. Настройка учётных записей, 2FA, импорт паролей
  8. Резервное копирование, обновления и план восстановления

1 Подготовка Raspberry Pi OS Lite (64‑bit)

  1. Вставьте microSD в кардридер и подключите к компьютеру.
  2. Скачайте и установите Raspberry Pi Imager.
  3. В Raspberry Pi Imager: Choose OS > Raspberry Pi OS (Other) > Raspberry Pi OS Lite (64‑bit).
  4. Нажмите на значок шестерёнки, включите SSH и заполните параметры: username, password, SSID и пароль Wi‑Fi.

Raspberry Pi Imager: включение SSH и параметры Wi-Fi

  1. Запишите образ, извлеките карту и вставьте её в 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

Обновление пакетов на Raspberry Pi

Советы по безопасности на этом этапе:

  • Поменяйте пароль учетной записи или настройте ключи SSH и отключите вход по паролю.
  • Ограничьте доступ к SSH по IP (если это возможно) и используйте fail2ban для защиты от брутфорса.

3 Установка Docker

На Raspberry Pi выполните одну команду, которая автоматически установит Docker:

curl -sSL https://get.docker.com | sh

Проверьте установку:

docker version

Установка и проверка Docker на Raspberry Pi

Разрешите пользователю 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 GUI на Raspberry Pi

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.

Создание тома в Portainer Настройка контейнера Vaultwarden в Portainer

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.

Bitwarden веб‑панель входа

Рекомендации по настройкам окружения:

  • ADMIN_TOKEN — обязательный секрет для доступа в админ‑панель Vaultwarden (сохраните в безопасном месте).
  • SIGNUPS_ALLOWED = false если вы не хотите публичных регистраций.
  • WEBSOCKET_ENABLED = true для синхронизации в реальном времени.

Критерии приёмки:

  • Сервис отвечает по HTTP(S) и возвращает страницу входа.
  • Админ‑панель доступна по ADMIN_TOKEN.
  • Данные сохраняются в примонтированном каталоге /data.

6 Настройка Cloudflare Tunnel (без явного проброса портов)

Cloudflare Tunnel (cloudflared) позволяет безопасно пробросить локальный сервис в интернет через Cloudflare с автоматическим HTTPS.

  1. Скачайте и установите 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
  1. Авторизация и привязка домена:
cloudflared tunnel login

Команда откроет URL в браузере: войдите в аккаунт Cloudflare и выберите домен, к которому будете привязывать туннель.

  1. Создайте туннель с именем bitwarden:
cloudflared tunnel create bitwarden

Запомните tunnel ID и путь к credentials‑файлу (они понадобятся для конфигурации).

  1. Создайте файл конфигурации:
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
  1. Пропишите DNS‑маршрут в Cloudflare:
cloudflared tunnel route dns bitwarden bitwarden.example.com
  1. Запуск туннеля:
cloudflared tunnel run bitwarden

После этого Bitwarden будет доступен по адресу https://bitwarden.example.com с валидным TLS, управляемым Cloudflare.

Bitwarden доступен через Cloudflare Tunnel

Рекомендации по автозапуску: создайте 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.service

7 Учётные записи, 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 -e0 3 * * * /home/pi/backup_vw.sh

Варианты хранения бэкапов: удалённый сервер через scp/rsync, облачное хранилище (rclone), NAS.

Восстановление:

  1. Остановите контейнер: docker compose down или sudo docker stop vaultwarden.
  2. Восстановите файлы в /data.
  3. Запустите контейнер снова.

Критические проверки после восстановления: сервис запускается, веб‑интерфейс доступен, вход возможен.

Безопасность и hardening

  • Отключите прямую переадресацию портов на роутере; используйте Cloudflare Tunnel.
  • Включите fail2ban или блокировку по геолокации, если у вас публичный SSH.
  • Храните ADMIN_TOKEN и другие секреты вне репозиториев (используйте secrets менеджеры или .env с ограниченным доступом).
  • Регулярно обновляйте образ Vaultwarden и Docker.
  • Ограничьте права на файловую систему: chmod 700 для каталогов с данными, где это уместно.

Диагностика и план действий при инциденте

Если контейнер упал или съём данных:

  • Проверка состояния контейнера: docker ps -a и docker logs vaultwarden.
  • Если база повреждена: восстановите последний валидный бэкап.
  • Если сертификат/туннель недоступен: проверьте systemd‑сервис cloudflared, логи journalctl -u cloudflared.

Инцидентный план восстановления (руководство):

  1. Оповестите пользователей о простое и переключите важные сервисы в режим ожидания.
  2. Сделайте снимок текущих файлов /data (для диагностики).
  3. Восстановите базу из последнего корректного бэкапа.
  4. Перезапустите контейнер и выполните тесты приёмки.
  5. Проведите постмортем и обновите процедуры резервного копирования.

Альтернативные подходы и советы

  • 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 для бэкапов — напишите, и я подготовлю готовые файлы.

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

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

Запуск Командной строки от имени администратора
Windows

Запуск Командной строки от имени администратора

Отключить напоминания Facebook Memories и скрыть их
Социальные сети

Отключить напоминания Facebook Memories и скрыть их

Как управлять cookie в Chrome, Firefox и Edge
Приватность

Как управлять cookie в Chrome, Firefox и Edge

Как управлять расширениями в Chrome, Edge, Vivaldi
Браузеры

Как управлять расширениями в Chrome, Edge, Vivaldi

Добавить пользовательские эмодзи в Discord
Discord

Добавить пользовательские эмодзи в Discord

Вентилируемая подставка для ноутбука — 3 DIY-плана
DIY

Вентилируемая подставка для ноутбука — 3 DIY-плана