Tropic Host

Vaultwarden: co to je a jak ho nainstalovat na VPS

6 min čtení
Tropic
Vaultwarden: co to je a jak ho nainstalovat na VPS

Language: cs

Vaultwarden: instalace vlastního správce hesel na VPS

Vaultwarden umožňuje ukládat hesla na vlastním serveru a synchronizovat je mezi počítačem, telefonem a prohlížečem. Funguje s oficiálními aplikacemi a rozšířeními Bitwarden, ve kterých zadáte adresu vlastního serveru.

Níže se podíváme, jaké VPS Vaultwarden potřebuje, jak ho spustit na Ubuntu pomocí Docker Compose, zakázat otevřenou registraci, zapnout HTTPS a nastavit zálohy.

Vaultwarden v pěti krocích

Minimální plán spuštění:

  1. Vytvořte VPS s Ubuntu a nasměrujte na něj subdoménu, například vault.example.com.
  2. Nainstalujte Docker a Docker Compose.
  3. Spusťte Vaultwarden společně s Caddy pro automatické HTTPS.
  4. Vytvořte první účet a zakažte otevřenou registraci.
  5. Zapněte dvoufaktorové ověřování, aktualizace a zálohy.

Pro osobní trezor nebo malou rodinu je vestavěná databáze SQLite dostačující. Samostatný server PostgreSQL obvykle není potřeba.

Co je Vaultwarden

Vaultwarden je neoficiální implementace API Bitwardenu napsaná v jazyce Rust a určená pro self-hosted nasazení. Je kompatibilní s oficiálními klienty Bitwarden: webovým rozhraním, mobilními a desktopovými aplikacemi, rozšířeními prohlížeče i CLI.

Data trezoru se na zařízení uživatele zašifrují ještě před odesláním na server. VPS synchronizuje zašifrovanou databázi, ale nezná hlavní heslo a při jeho ztrátě ho nedokáže obnovit.

Vaultwarden není oficiální produkt Bitwarden. Za aktualizace, dostupnost, HTTPS, zálohy a zabezpečení VPS odpovídá vlastník sám.

Vaultwarden a Bitwarden: v čem se liší

ParametrBitwarden CloudVaultwarden
ServerInfrastruktura BitwardenuVaše VPS nebo domácí server
AplikaceKlienti BitwardenStejní klienti v režimu Self-hosted
ÚdržbaZajišťuje poskytovatelZajišťuje vlastník
Kontrola nad zálohamiOmezená službouÚplná
NastaveníRegistrace účtuKonfigurace domény, Dockeru a VPS

Vaultwarden se hodí pro ty, kteří chtějí mít serverovou část pod kontrolou a jsou připraveni aktualizovat Linux a ověřovat zálohy. Cloudová služba je praktičtější, pokud se nechcete starat o správu. Self-hosting automaticky neznamená bezpečný systém — odpovědnost přechází na vlastníka.

Požadavky na server Vaultwarden

Pro osobní použití je rozumná výchozí konfigurace:

  • 1 vCPU;
  • 1–2 GB RAM;
  • 10–20 GB SSD nebo NVMe;
  • Ubuntu 24.04 LTS;
  • veřejná IP adresa a doména;
  • otevřené porty 80 a 443.

Jde o praktickou rezervu pro Ubuntu, Docker, Caddy a aktualizace, nikoli o striktní minimum projektu. Pro desítky uživatelů, velké množství příloh nebo několik kontejnerů je lepší zvolit alespoň 2 GB RAM.

Jak nainstalovat Vaultwarden na VPS

Tento příklad používá Ubuntu 24.04 a subdoménu vault.example.com. Ve všech souborech ji nahraďte vlastní adresou.

1. Nakonfigurujte DNS a připravte Ubuntu

Vytvořte DNS záznam A směřující na IPv4 adresu VPS. Poté se připojte přes SSH:

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

Neukončujte aktuální SSH relaci, dokud neověříte, že nové připojení funguje.

2. Nainstalujte Docker a Docker Compose

Přidejte oficiální repozitář Dockeru:

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. Vytvořte konfiguraci

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

Vytvořte 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

Vytvořte Caddyfile:

vault.example.com {
    reverse_proxy vaultwarden:80
}

Externě je vystaven pouze Caddy. Kontejner Vaultwarden je dostupný uvnitř sítě Dockeru a data se ukládají do /opt/vaultwarden/vw-data. V aktuálním nastavení není samostatný port WebSocket potřeba.

4. Spusťte Vaultwarden

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

Otevřete https://vault.example.com. Pokud DNS již ukazuje na VPS a porty 80 a 443 jsou dostupné, Caddy automaticky získá certifikát TLS. Když se web neotevře, zkontrolujte DNS, firewall a to, zda tyto porty nepoužívá jiný webový server.

5. Vytvořte účet a zakažte registraci

Zaregistrujte první účet. Použijte dlouhé jedinečné hlavní heslo a uschovejte jeho nouzovou kopii mimo Vaultwarden: správce serveru hlavní heslo nemůže resetovat ani obnovit.

Po registraci změňte v compose.yaml následující hodnotu:

SIGNUPS_ALLOWED: "false"

Použijte nové nastavení:

docker compose up -d

Ostatní lidé nyní nebudou moci vytvářet účty. Chcete-li přidat nového uživatele, můžete registraci dočasně povolit nebo nastavit pozvánky.

Jak připojit aplikaci Bitwarden

Samostatného klienta Vaultwarden instalovat nemusíte. Na přihlašovací obrazovce aplikace nebo rozšíření Bitwarden vyberte Self-hosted a zadejte:

https://vault.example.com

Tuto adresu použijte v počítači, telefonu i prohlížeči. Při migraci importujte export z předchozího správce hesel. Nešifrovaný soubor CSV nebo JSON ihned po přenosu smažte a neposílejte ho e-mailem ani přes veřejné odkazy.

Bezpečné nastavení Vaultwarden

Po spuštění proveďte několik kroků:

  • zapněte TOTP nebo WebAuthn a obnovovací kódy uložte samostatně;
  • ponechte SIGNUPS_ALLOWED vypnuté;
  • používejte klíče SSH a pravidelně aktualizujte Ubuntu;
  • nevystavujte interní port kontejneru Vaultwarden;
  • nespouštějte na stejném VPS pochybné kontejnery;
  • ověřte, že lze zálohy obnovit.

Panel /admin je pro osobní trezor obvykle zbytečný. Pokud ho povolíte, použijte dlouhý token ve formě hashe Argon2 a pokud možno omezte přístup podle IP adresy nebo VPN. Ukládání prostého textu ADMIN_TOKEN není vhodné.

Před aktualizací vytvořte zálohu a spusťte:

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

Server pravidelně aktualizujte: klienti Bitwarden se vydávají nezávisle, takže velmi stará verze Vaultwarden s nimi může ztratit kompatibilitu.

Zálohování Vaultwarden

Hlavní databáze SQLite se nachází v vw-data/db.sqlite3, zatímco přílohy jsou uložené jako samostatné soubory. Běžícímu serveru nekopírujte databázi obyčejným příkazem cp: zápis právě v danou chvíli může vytvořit nekonzistentní kopii.

Bezpečný snapshot vytvoříte vestavěným příkazem:

docker exec vaultwarden /vaultwarden backup

V datovém adresáři se objeví samostatný soubor db_.sqlite3. Spolu s ním uložte adresáře a soubory attachments, sends, config.json, pokud byl vytvořen, a rsa_key.

Záloha na stejném VPS nechrání před smazáním serveru ani poruchou disku. Automaticky posílejte kopie do jiného zařízení nebo odděleného objektového úložiště, ideálně s dalším šifrováním. Pravidelně provádějte zkušební obnovu.

Jaké VPS vybrat pro Vaultwarden

Základní Linux VPS s 2 GB RAM stačí pro osobní nebo rodinný trezor. Poskytne rezervu pro Ubuntu, Docker, Caddy, aktualizace a automatické zálohy.

Vaultwarden můžete provozovat na základním VPS od tropic.host a později zdroje navýšit, pokud na server přidáte další self-hosted služby. U správce hesel je důležitější stabilní síť, trvalá veřejná adresa a spolehlivý disk než další jádra CPU.

Vhodný je i domácí server, ale pak musíte zajistit externí přístup, HTTPS, stabilní napájení a obnovu po výpadcích. VPS bývá jednodušší, když má trezor fungovat z libovolné sítě.

Závěr

Vaultwarden je pohodlný self-hosted správce hesel pro ty, kteří chtějí používat klienty Bitwarden a přitom mít serverovou část ve vlastní infrastruktuře. Pro začátek stačí malé VPS, doména, Docker Compose a Caddy.

Hlavní odpovědnost začíná po instalaci: zakažte registraci, zapněte 2FA, aktualizujte kontejnery a udržujte otestované zálohy mimo server.

FAQ

Lze Vaultwarden nainstalovat bez domény?

Technicky můžete použít lokální adresu, ale webový trezor vyžaduje bezpečný kontext HTTPS. Pro přístup z různých zařízení je jednodušší použít doménu a certifikát TLS.

Kolik RAM Vaultwarden potřebuje?

Pro jednoho nebo několik uživatelů obvykle stačí 1 GB RAM. VPS se 2 GB poskytne pohodlnější rezervu pro systém, Docker, Caddy a aktualizace.

Funguje Vaultwarden s mobilní aplikací Bitwarden?

Ano. Na přihlašovací obrazovce vyberte self-hosted server a zadejte úplnou HTTPS adresu své instance Vaultwarden.

Co se stane, když VPS dočasně nebude dostupné?

Dříve synchronizovaná data obvykle zůstanou v místní šifrované mezipaměti klienta. Dokud server neobnovíte, nebude ale fungovat synchronizace, přihlášení na novém zařízení ani příjem změn.

Lze obnovit zapomenuté hlavní heslo přes /admin?

Ne. Správce může řídit server a účty, ale nemá dešifrovací klíč k trezoru uživatele. Hlavní heslo a obnovovací kódy je nutné uložit odděleně.