Tropic Host

Vaultwarden: какво представлява и как да го инсталирате на VPS

6 минути четене
Tropic
Vaultwarden: какво представлява и как да го инсталирате на VPS

Language: bg

Vaultwarden: инсталиране на собствен мениджър на пароли на VPS

Vaultwarden ви позволява да съхранявате паролите на собствен сървър и да ги синхронизирате между компютър, телефон и браузър. Той работи с официалните приложения и разширения на Bitwarden, в които посочвате адреса на своя сървър.

По-долу ще разгледаме от какъв VPS се нуждае Vaultwarden, как да го стартирате в Ubuntu с Docker Compose, да изключите отворената регистрация, да активирате HTTPS и да конфигурирате резервни копия.

Vaultwarden в пет стъпки

Минималният план за стартиране:

  1. Създайте VPS с Ubuntu и насочете поддомейн към него, например vault.example.com.
  2. Инсталирайте Docker и Docker Compose.
  3. Стартирайте Vaultwarden заедно с Caddy за автоматичен HTTPS.
  4. Създайте първия акаунт и изключете отворената регистрация.
  5. Активирайте двуфакторна автентикация, актуализации и резервни копия.

За личен трезор или малко семейство вградената SQLite база данни е достатъчна. Отделен PostgreSQL сървър обикновено не е необходим.

Какво представлява Vaultwarden

Vaultwarden е неофициална реализация на Bitwarden API, написана на Rust и предназначена за self-hosted инсталация. Тя е съвместима с официалните клиенти на Bitwarden: уеб интерфейс, мобилни и настолни приложения, разширения за браузъри и CLI.

Данните в трезора се криптират на устройството на потребителя, преди да бъдат изпратени към сървъра. VPS синхронизира криптираната база, но не знае главната парола и не може да я възстанови, ако бъде изгубена.

Vaultwarden не е официален продукт на Bitwarden. Собственикът лично отговаря за актуализациите, достъпността, HTTPS, резервните копия и сигурността на VPS.

Vaultwarden и Bitwarden: каква е разликата

ПараметърBitwarden CloudVaultwarden
СървърИнфраструктурата на BitwardenВашият VPS или домашен сървър
ПриложенияКлиенти на BitwardenСъщите клиенти в режим Self-hosted
ПоддръжкаИзвършва се от доставчикаИзвършва се от собственика
Контрол върху резервните копияОграничен от услугатаПълен
НастройкаРегистрация на акаунтКонфигурация на домейн, Docker и VPS

Vaultwarden е подходящ за хора, които искат контрол върху сървърната страна и са готови да актуализират Linux и да проверяват резервните копия. Облачната услуга е по-практична, ако не искате да се занимавате с администрация. Self-hosting не прави системата автоматично сигурна — той прехвърля отговорността към собственика.

Изисквания към сървъра за Vaultwarden

За лична употреба разумна начална конфигурация е:

  • 1 vCPU;
  • 1–2 GB RAM;
  • 10–20 GB SSD или NVMe;
  • Ubuntu 24.04 LTS;
  • публичен IP адрес и домейн;
  • отворени портове 80 и 443.

Това е практичен ресурсен запас за Ubuntu, Docker, Caddy и актуализации, а не строго минимално изискване на проекта. За десетки потребители, много прикачени файлове или няколко контейнера е по-добре да изберете поне 2 GB RAM.

Как да инсталирате Vaultwarden на VPS

В примера се използват Ubuntu 24.04 и поддомейнът vault.example.com. Заменете го със своя адрес във всички файлове.

1. Конфигурирайте DNS и подгответе Ubuntu

Създайте A DNS запис, който сочи към IPv4 адреса на VPS. След това се свържете по SSH:

ssh root@SERVER_IP
apt update && apt upgrade -y
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable

Не затваряйте текущата SSH сесия, докато не проверите, че новата връзка работи.

2. Инсталирайте Docker и Docker Compose

Добавете официалното хранилище на Docker:

apt install -y ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
  -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc

tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF

apt update
apt install -y docker-ce docker-ce-cli containerd.io \
  docker-buildx-plugin docker-compose-plugin
docker compose version

3. Създайте конфигурацията

mkdir -p /opt/vaultwarden
cd /opt/vaultwarden

Създайте compose.yaml:

services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: unless-stopped
    environment:
      DOMAIN: "https://vault.example.com"
      SIGNUPS_ALLOWED: "true"
    volumes:
      - ./vw-data:/data

  caddy:
    image: caddy:2-alpine
    container_name: vaultwarden-caddy
    restart: unless-stopped
    depends_on:
      - vaultwarden
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile:ro
      - ./caddy-data:/data
      - ./caddy-config:/config

Създайте Caddyfile:

vault.example.com {
    reverse_proxy vaultwarden:80
}

Само Caddy е изложен външно. Контейнерът Vaultwarden е достъпен във вътрешната Docker мрежа, а данните се съхраняват в /opt/vaultwarden/vw-data. В текущата настройка не е необходим отделен WebSocket порт.

4. Стартирайте Vaultwarden

docker compose up -d
docker compose ps
docker compose logs --tail=100 caddy

Отворете https://vault.example.com. Caddy автоматично ще получи TLS сертификат, ако DNS вече сочи към VPS и портове 80 и 443 са достъпни. Ако сайтът не се отваря, проверете DNS, защитната стена и дали друг уеб сървър използва тези портове.

5. Създайте акаунт и изключете регистрацията

Регистрирайте първия акаунт. Използвайте дълга, уникална главна парола и пазете аварийно копие извън Vaultwarden: администраторът на сървъра не може да нулира или възстанови главната парола.

След регистрацията променете следното в compose.yaml:

SIGNUPS_ALLOWED: "false"

Приложете настройката:

docker compose up -d

Други хора вече няма да могат да създават акаунти. За да добавите нов потребител, временно разрешете регистрацията или конфигурирайте покани.

Как да свържете приложението Bitwarden

Не е необходимо да инсталирате отделен клиент на Vaultwarden. На екрана за вход в приложението или разширението Bitwarden изберете Self-hosted и въведете:

https://vault.example.com

Използвайте този адрес на компютъра, телефона и браузъра. За миграция импортирайте експортираните данни от предишния си мениджър на пароли. Изтрийте нешифрован CSV или JSON файл веднага след прехвърлянето и не го изпращайте по имейл или чрез публични връзки.

Сигурна конфигурация на Vaultwarden

След стартирането направете няколко стъпки:

  • активирайте TOTP или WebAuthn и съхранявайте кодовете за възстановяване отделно;
  • оставете SIGNUPS_ALLOWED изключено;
  • използвайте SSH ключове и актуализирайте Ubuntu редовно;
  • не излагайте вътрешния порт на контейнера Vaultwarden;
  • не стартирайте съмнителни контейнери на същия VPS;
  • проверявайте дали резервните копия могат да се възстановят.

Панелът /admin обикновено не е необходим за личен трезор. Ако го активирате, използвайте дълъг токен във вид на Argon2 хеш и, когато е възможно, ограничете достъпа по IP адрес или чрез VPN. Съхраняването на обикновен текстов ADMIN_TOKEN е нежелателно.

Създайте резервно копие преди актуализацията, след което изпълнете:

cd /opt/vaultwarden
docker compose pull
docker compose up -d

Сървърът трябва да се актуализира редовно: клиентите на Bitwarden се издават независимо, затова много стара версия на Vaultwarden може да загуби съвместимост с тях.

Резервни копия на Vaultwarden

Основната SQLite база данни се намира в vw-data/db.sqlite3, а прикачените файлове се съхраняват като отделни файлове. Не копирайте работеща база с обикновената команда cp: операция по запис в този момент може да направи копието несъгласувано.

Създайте безопасна моментна снимка с вградената команда:

docker exec vaultwarden /vaultwarden backup

В директорията с данни ще се появи отделен файл db_.sqlite3. Запазете заедно с него attachments, sends, config.json, ако е създаден, и файловете rsa_key.

Резервно копие на същия VPS не защитава от изтриване на сървъра или повреда на диска. Автоматично изпращайте копия към друго устройство или отделно обектно хранилище, по възможност с допълнително шифроване. Периодично извършвайте пробно възстановяване.

Кой VPS да изберете за Vaultwarden

Основен Linux VPS с 2 GB RAM е достатъчен за личен или семеен трезор. Това осигурява допълнителен ресурс за Ubuntu, Docker, Caddy, актуализации и автоматични резервни копия.

Можете да стартирате Vaultwarden на базов VPS от tropic.host и по-късно да увеличите ресурсите, ако добавите други self-hosted услуги на сървъра. За мениджър на пароли стабилната мрежа, постоянният публичен адрес и надеждният диск са по-важни от допълнителните CPU ядра.

Домашен сървър също е подходящ, но тогава ще трябва сами да осигурите външен достъп, HTTPS, стабилно електрозахранване и възстановяване след повреди. VPS обикновено е по-прост, когато трезорът трябва да работи от всяка мрежа.

Заключение

Vaultwarden е удобен self-hosted мениджър на пароли за хората, които искат да използват клиентите на Bitwarden, но да държат сървърната страна в собствената си инфраструктура. Малък VPS, домейн, Docker Compose и Caddy са достатъчни за начало.

Основната отговорност започва след инсталацията: изключете регистрацията, активирайте 2FA, актуализирайте контейнерите и пазете проверени резервни копия извън сървъра.

FAQ

Може ли Vaultwarden да се инсталира без домейн?

Технически можете да използвате локален адрес, но уеб трезорът изисква защитен HTTPS контекст. За достъп от различни устройства използването на домейн и TLS сертификат е по-просто.

Колко RAM е необходим на Vaultwarden?

За един или няколко потребители обикновено е достатъчен 1 GB RAM. VPS с 2 GB осигурява по-комфортен ресурсен запас за системата, Docker, Caddy и актуализациите.

Работи ли Vaultwarden с мобилното приложение Bitwarden?

Да. На екрана за вход изберете self-hosted сървър и въведете пълния HTTPS адрес на вашата инсталация на Vaultwarden.

Какво става, ако VPS временно е недостъпен?

Вече синхронизираните данни обикновено остават в локалния криптиран кеш на клиента. Синхронизирането, входът от ново устройство и получаването на промени обаче няма да работят, докато сървърът не бъде възстановен.

Може ли забравена главна парола да се възстанови чрез /admin?

Не. Администраторът може да управлява сървъра и акаунтите, но не разполага с ключа за декриптиране на трезора. Главната парола и кодовете за възстановяване трябва да се съхраняват отделно.