Hostovat Vaultwarden na Managed VPS: vaše hesla na vašem serveru

Hostovat Vaultwarden na Managed VPS znamená mít svá hesla a hesla svého týmu na vlastním stroji, který naše týmy udržují aktuální a ve dne i v noci hlídají. Vaultwarden je svobodný software pod licencí AGPL-3.0. Tento průvodce sleduje jeho oficiální dokumentaci: instalaci pomocí Docker Compose, HTTPS, uzavření registrací, administrátorský token, ochranu trezoru, databázi, e-maily, zálohy a aktualizace.

Simon Vasconcelos Lee Autor: Publikováno 8. listopadu 2026Doba čtení: 15 minut

Všichni průvodci

To nejdůležitější

  1. Licence AGPL-3.0 dovoluje Vaultwarden volně provozovat, ve firmě i jinde; pokud ho upravíte, nabídnete zdrojový kód své verze těm, kdo ji používají.
  2. Nainstalujte ho pomocí Docker Compose: jeden obraz, lokálně publikovaný port a složka s daty, za reverzní proxy.
  3. Webový trezor bez HTTPS nefunguje: provozujte Vaultwarden na vlastní doménové adrese a uveďte ji v DOMAIN.
  4. Vytvořte si účet a pak uzavřete registrace pomocí SIGNUPS_ALLOWED: ve výchozím nastavení se může zaregistrovat každý, kdo se k instanci dostane. Trezor pak chrání silné hlavní heslo a dvoufázové ověření.
  5. Zálohujte databázi i přílohy každý den, vyzkoušejte obnovu a aktualizujte pomocí docker compose pull.

Co Vaultwarden umí

Vaultwarden je server pro správu hesel napsaný v Rustu, určený pro vlastní hosting. Jeho wiki ho určuje jednotlivcům, rodinám a organizacím lidské velikosti. Webový trezor je součástí jeho obrazů Docker.

Implementuje API kompatibilní s oficiálními klienty Bitwarden v prohlížeči, na počítači i v telefonu. README upřesňuje, že projekt není spojen s Bitwarden ani s Bitwarden, Inc., a žádá, aby se jakýkoli problém, ať už se používá kterýkoli klient, hlásil přímo jemu, nikoli oficiálním kanálům podpory.

Wiki uvádí také to, co oproti oficiálnímu serveru chybí, například přihlášení pomocí přístupového klíče, vlastní role a některé podnikové zásady. Upřesňuje, že funkce užitečné hlavně velkým organizacím nejsou pro projekt prioritou: pokud je potřebujete, přečtěte si tento seznam.

Co dovoluje licence AGPL-3.0

Vaultwarden je vydáván pod GNU Affero General Public License, verze 3. Text stanoví neomezené oprávnění program v nezměněné podobě provozovat. Obraz zveřejněný projektem tedy můžete používat pro svou firmu a svůj tým, aniž byste kupovali licenci.

Článek 13 přidává podmínku specifickou pro AGPL: pokud program upravíte, musí vaše verze všem, kdo ji používají na dálku přes síť, nabídnout možnost získat její zdrojový kód zdarma.

Instalace pomocí Docker Compose

README doporučuje obrazy kontejnerů. Na serveru s nainstalovaným Dockerem vytvořte složku a umístěte do ní tento compose.yaml, převzatý z README a wiki:

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/
    ports:
      - 127.0.0.1:8000:80
Terminál
docker compose up -d

Vaše doménové jméno ukazuje na server záznamy A a AAAA a návštěvníci přicházejí na porty 80 a 443. Dokud reverzní proxy není nasazená, webový trezor zůstává nepoužitelný: přejděte rovnou k další části.

Projekt neuvádí nároky na paměť ani procesor; představuje se jen jako řešení pro případy, kdy se oficiální služba, náročná na prostředky, nehodí. Velikost závisí na počtu účtů a objemu příloh. Na Managed VPS nám popište své využití a doporučíme vám vhodnou velikost.

HTTPS a WebSocket: reverzní proxy

Webový trezor využívá API Web Crypto, které prohlížeče vyhrazují zabezpečeným kontextům: README uvádí, že funguje, až když je zapnuté HTTPS, a wiki považuje HTTPS za „pretty much required“, tedy téměř povinné. Projekt doporučuje reverzní proxy před Vaultwardenem a nedoporučuje TLS vestavěné v jeho frameworku Rocket.

Použijte uznávaný certifikát, například od Let's Encrypt, který wiki doporučuje: s certifikátem podepsaným svým držitelem některé platformy připojení odmítnou. Certifikát musí obsahovat celý svůj řetězec, jinak se zařízení Android nepřipojí.

Oznámení přes WebSocket, ve výchozím nastavení zapnutá, dávají prohlížeči, desktopové aplikaci a rozšíření vědět, že se položka změnila. Vedou přes hlavní port HTTP a proxy musí předávat hlavičky Upgrade a Connection. Mobilní aplikace používají nativní oznámení svého systému, která se nastavují zvlášť.

S Caddy

Wiki radí podívat se na Caddy jako první, pokud nemáte preference: zapíná HTTPS samo, získává certifikát Let's Encrypt a podporuje WebSocket. Nastavení z wiki předává Vaultwardenu také skutečnou adresu návštěvníka, pro jeho protokoly:

Caddyfile
vault.example.com {
  reverse_proxy 127.0.0.1:8000 {
    header_up X-Real-IP {remote_host}
  }
}

S Nginx a Certbotem

Tento blok vychází z příkladu Nginx na wiki, zkráceného na port 80, aby HTTPS nasadil Certbot:

Blok Nginx
upstream vaultwarden-default {
  zone vaultwarden-default 64k;
  server 127.0.0.1:8000;
  keepalive 2;
}

map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      "";
}

server {
    listen 80;
    listen [::]:80;
    server_name vault.example.com;

    client_max_body_size 525M;

    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;

    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;

    location / {
      proxy_pass http://vaultwarden-default;
    }
}

Certbot pak nainstaluje certifikát a postará se o jeho obnovu:

Terminál
sudo certbot --nginx

Ověření WebSocketu

Otevřete vývojářské nástroje prohlížeče, kartu Síť, filtr WS, a znovu se přihlaste do trezoru: odpověď 101 na /notifications/hub potvrzuje připojení. Další test z wiki: otevřete trezor ve dvou prohlížečích, v jednom přejmenujte položku a změna se okamžitě objeví ve druhém.

Uzavření registrací

Ve výchozím nastavení si může na vaší instanci vytvořit účet každý, kdo se k ní dostane. Pro váš první účet je to užitečné a wiki doporučuje poté registrace uzavřít, aby je útočník nemohl využít.

  1. Otevřete svou adresu HTTPS, vytvořte si účet a pak k této adrese připojte své aplikace.
  2. Přepněte SIGNUPS_ALLOWED na "false" v souboru compose.yaml.
  3. Spusťte znovu pomocí docker compose up -d: proměnná prostředí je vázána na kontejner, který je třeba znovu vytvořit, aby se projevila.
compose.yaml, v environment
SIGNUPS_ALLOWED: "false"

Jakmile uložíte konfiguraci ze stránky správy, vznikne ve složce s daty soubor config.json, který má přednost před proměnnými prostředí. Dotčená nastavení se pak mění z této stránky: úprava compose.yaml už nestačí.

Stránka správy a její token

Stránka /admin slouží k nastavení Vaultwardenu, k zobrazení a mazání účtů a organizací, k odebrání dvoufázového ověření uživateli, k zvaní lidí a ke čtení diagnostiky. Bez ADMIN_TOKEN zůstává vypnutá: pokud ji nepotřebujete, nechte ji tak.

Wiki důrazně doporučuje před touto stránkou zapnout HTTPS. Token slouží jako heslo a lze ho uchovávat v hašované podobě, argon2id, místo čitelného zápisu v konfiguraci. Vaultwarden k tomu nabízí příkaz: dvakrát se zeptá na heslo a vrátí řetězec PHC.

Terminál
docker run --rm -it vaultwarden/server /vaultwarden hash

Tento řetězec umístěte do souboru .env vedle compose.yaml, mezi apostrofy, a pak ho ze služby zavolejte:

.env
VAULTWARDEN_ADMIN_TOKEN='$argon2id$...'
compose.yaml, v environment
ADMIN_TOKEN: ${VAULTWARDEN_ADMIN_TOKEN}

Zkontrolujte výsledek, spusťte znovu a přihlaste se na /admin svým heslem, nikoli řetězcem PHC:

Terminál
docker compose config
docker compose up -d

Co chrání trezor

První ochranou je hlavní heslo. Data trezoru jsou šifrována osobními nebo organizačními klíči: kdo získá kopii databáze nebo ovládne relaci, musí stále prolomit toto heslo, aby je přečetl. Na jeho síle tedy záleží především. Sama relace správy umožňuje smazat účet nebo odebrat dvoufázové ověření, aniž by dávala přístup k datům trezoru.

OchranaCo přinášíKde se nastavuje
Hlavní hesloUdržuje data šifrovaná, i kdyby kopie databáze kolovalaKaždý uživatel si ho volí, dlouhé a jen pro tento trezor
Dvoufázové ověřeníBez něj wiki připomíná, že uhodnutí hesla hrubou silou je teoreticky stále možnéV každém účtu; zásada organizace ho může vyžadovat
HTTPSŠifruje cestu mezi klientem a serveremReverzní proxy
Uzavřené registraceBrání neznámému, aby si vytvořil účetSIGNUPS_ALLOWED
Nápovědy k hesluZobrazené na stránce by mohly pomoci heslo uhodnout; verze 1.37.5 je ve výchozím nastavení skrýváNechte SHOW_PASSWORD_HINT na false; PASSWORD_HINTS_ALLOWED je odstraní úplně
Omezení pokusůZpomaluje pokusy z jedné adresy, přihlášení i /adminLOGIN_RATELIMIT_SECONDS a ADMIN_RATELIMIT_SECONDS
Fail2banBlokuje adresy po příliš mnoha neúspěších, což wiki u veřejné instance považuje za obzvlášť důležitéNa serveru, z protokolu LOG_FILE

Na zapomenuté hlavní heslo se připravte dřív, než k tomu dojde: zapněte nouzový přístup ke svému účtu a v organizaci obnovu účtu, která vyžaduje nastavený e-mail.

Tři další nastavení z průvodce zabezpečením

SQLite, MariaDB, nebo PostgreSQL

Stejný obraz podporuje všechny tři databáze. Wiki popisuje SQLite jako nejpoužívanější a nejlépe otestovanou a doporučuje ji pro většinu použití, pokud nepotřebujete konkrétně jinou.

DatabázeNastaveníZáloha
SQLiteŽádné: jeden soubor, vw-data/db.sqlite3Příkaz /vaultwarden backup nebo kopie složky při zastavené službě
MariaDB nebo MySQLVáš databázový server a DATABASE_URL v mysql://Export databáze, navíc ke složce vw-data
PostgreSQLVáš databázový server a DATABASE_URL v postgresql://Export databáze, navíc ke složce vw-data
compose.yaml, v environment (PostgreSQL)
DATABASE_URL: "postgresql://user_name:user_password@db_host:5432/vaultwarden"

Vytvořte prázdnou databázi a jejího uživatele: při spuštění si Vaultwarden vytvoří schéma sám. Heslo se speciálními znaky se v této adrese zapisuje procentuálním kódováním.

Tuto volbu udělejte dřív, než trezor naplníte. Wiki popisuje přechod z SQLite na PostgreSQL pomocí pgloader a upřesňuje, že tuto cestu projekt nepodporuje, že se dělá na vlastní riziko a že začíná zálohou.

E-maily: konfigurace SMTP

Vaultwarden se spustí bez e-mailu, ale závisí na něm několik funkcí: pozvánky, ověření adres, zasílání nápověd k heslu, dvoufázové ověření e-mailem a obnova účtu.

Na VPS Simafri vede odesílání přes ověřené relé SMTP na portu 587: adresa poštovního účtu, který už máte, nebo Simafri Suite. Heslo patří do souboru .env, stejně jako administrátorský token:

compose.yaml, v environment
SMTP_HOST: "smtp.example.com"
SMTP_FROM: "vault@example.com"
SMTP_PORT: "587"
SMTP_SECURITY: "starttls"
SMTP_USERNAME: "vault@example.com"
SMTP_PASSWORD: ${VAULTWARDEN_SMTP_PASSWORD}

Pokud nic neodchází, wiki navrhuje vyzkoušet z serveru připojení k relé. Příkaz vrátí 0, když relé odpoví:

Terminál
timeout 5 bash -c 'cat < /dev/null > /dev/tcp/smtp.example.com/587'; echo $?

Zálohy

README připomíná, že projekt nemůže nést odpovědnost za ztrátu dat, a důrazně doporučuje pravidelné zálohy. Wiki je radí automatické, s alespoň jednou kopií jinde. Takto vypadá složka s daty při použití SQLite:

PoložkaCo uchováváZálohovat
db.sqlite3Téměř všechna data: účty, organizace, trezoryPovinně
attachments/Přílohy, uložené mimo databáziPovinně
config.jsonKonfigurace ze stránky správy, včetně citlivých údajů v čitelné podoběDoporučeno, šifrovaně
rsa_key*Klíče, které podepisují relace; jejich ztráta uživatele odhlásíDoporučeno, šifrovaně
sends/Soubory odeslané přes Send, svou povahou dočasnéVolitelně
icon_cache/Ikony webů, v případě potřeby stažené znovuVolitelně

Databáze za běhu služby

Od verze 1.32.1 umí Vaultwarden zálohovat svou databázi SQLite sám, bez zastavení služby:

Terminál
docker exec -it vaultwarden /vaultwarden backup

Příkaz zapíše soubor db_AAAAMMJJ_HHMMSS.sqlite3 vedle databáze, do vw-data. Obraz neobsahuje sqlite3 ani cron: wiki radí naplánovat úlohu na serveru, alespoň jednou denně. Vynechte pak -it, protože naplánovaná úloha nemá terminál, a tyto soubory, které se hromadí, třiďte.

Celá složka při zastavené službě

Když se databáze nepoužívá, stačí prostá kopie všech jejích souborů. Je to metoda při zastavené službě, kterou wiki uvádí jako příklad pro Docker, a přenáší i přílohy:

Terminál, ve složce se souborem compose.yaml
docker compose down
tar -czf vaultwarden-$(date +%F).tar.gz vw-data
docker compose up -d

Wiki považuje vrstvu šifrování za užitečnou, zvlášť když záloha obsahuje administrátorský token a přístupové údaje SMTP, a pro odesílání kopií na dálku jmenuje rclone, restic a rustic. S MariaDB nebo PostgreSQL přidejte ke složce vw-data export databáze.

Wiki žádá, aby se člověk nespoléhal jen na snímky disku, které se hůř obnovují. Uchovávejte proto tyto kopie vlastní aplikaci: umístěné na disku serveru se dostanou i do jeho nočních záloh.

Obnova

  1. Zastavte Vaultwarden.
  2. Nahraďte každý soubor nebo složku v vw-data jeho zálohovanou verzí.
  3. Pokud databáze pochází z /vaultwarden backup, pojmenujte ji db.sqlite3 a nejdřív smažte každý stávající soubor db.sqlite3-wal: nesouhodný žurnál může databázi poškodit. Pokud pochází z přímé kopie, obnovte společně db.sqlite3 a jeho db.sqlite3-wal.
  4. Spusťte znovu a ověřte, že trezor otevřete.

Wiki radí toto cvičení čas od času zopakovat a ponechat si kopii původních dat: tak ověříte, že záloha funguje.

Aktualizace

Wiki uvádí dva příkazy, ze složky se souborem compose.yaml. Složka s daty zůstává na místě:

Terminál
docker compose pull
docker compose up -d

Tyto aktualizace záleží víc než jinde. Mobilní aplikace a rozšíření prohlížečů se aktualizují samy a wiki upozorňuje, že rozdíl verzí vůči serveru může způsobit náhlé výpadky. Webový trezor, dodávaný v obrazu, zůstává se svým serverem vždy sladěný.

Projekt nemá kalendář vydání: sledujte jeho poznámky k vydání a těsně před každou aktualizací spusťte zálohu. Některé obsahují bezpečnostní opravy, například verze 1.37.5 z 1. listopadu 2026, jejíž poznámky doporučují aktualizovat co nejdříve. Tyto poznámky také upozorňují, že od verze 1.37.5 brání neplatná hodnota konfigurace spuštění Vaultwardenu: před aktualizací si znovu projděte svůj soubor s proměnnými prostředí. Stránka diagnostiky na /admin ukazuje, zda existuje novější verze.

Kdo co dělá na Managed VPS

Vlastní hosting vyžaduje, abyste kromě aplikace udržovali i server. Na Managed VPS se serveru ujímají naše týmy a vaši instanci proaktivně sledují; Vaultwarden zůstává vaším softwarem, s jeho nastavením a daty.

TémaNaše týmyVy
ServerAktualizace systému a zabezpečení, včetně zásahů na serveruOkamžik, který vyhovuje vašemu provozu
DohledServer sledovaný 24 hodin denně, 7 dní v týdnu, se zásahem bez čekání na vaše voláníČtení protokolů vaší instance
VaultwardenProaktivní sledování: chyby, zpomalení a místo na disku zachycené, doporučená opravaJeho instalace, aktualizace a nastavení, které zapracujete vy nebo váš AI asistent
Účty a trezorServer, který je nese, hlídaný a zálohovanýUživatelé, pozvánky, hlavní hesla a dvoufázové ověření
ZálohyKaždou noc, šifrované a uchovávané mimo stroj; obnova v ceněKopie vlastní Vaultwardenu a žádost o obnovu, když ji potřebujete
MigraceVáš stávající server přenesen zdarmaOkamžik přepnutí

Pokud dáváte přednost tomu, aby naše týmy zasáhly přímo v aplikaci, tato služba se účtuje po hodinách nebo paušálem, s cenovou nabídkou sdělenou před zásahem.

Vaultwarden na serveru, o který se staráme za vás

S Managed VPS od Simafri udržují naše týmy server vaší instance Vaultwarden aktuální, hlídají ho ve dne i v noci a zasahují bez čekání na vaše volání; vaši instanci také proaktivně sledují a doporučí vám užitečné opravy, které zapracujete vy nebo váš AI asistent. Zálohy se každou noc šifrují a uchovávají mimo stroj, jejich obnova je v ceně a migrace vašeho stávajícího serveru je zdarma.

Objevit Managed VPS

Časté otázky

Je Vaultwarden pro firmu zdarma?

Ano. Vaultwarden je pod licencí AGPL-3.0: můžete ho ve firmě provozovat, aniž byste kupovali licenci. Pokud ho upravíte, musí vaše verze nabídnout zdrojový kód těm, kdo ji používají přes síť. Zbývají náklady na server, na kterém běží.

Funguje Vaultwarden s aplikacemi Bitwarden?

Ano. README představuje Vaultwarden jako kompatibilní s oficiálními klienty Bitwarden a zároveň upřesňuje, že projekt není spojen s Bitwarden ani s Bitwarden, Inc. Problém se proto hlásí projektu Vaultwarden, ať už se používá kterýkoli klient.

Jak nainstalovat Vaultwarden pomocí Docker Compose?

Vytvořte compose.yaml s obrazem vaultwarden/server, složkou s daty a portem publikovaným na 127.0.0.1 a spusťte docker compose up -d. Potom před něj umístěte reverzní proxy s HTTPS: bez HTTPS webový trezor nefunguje. Uveďte také svou adresu v DOMAIN.

Jak vypnout registrace ve Vaultwardenu?

Jakmile si vytvoříte účet, přepněte SIGNUPS_ALLOWED na false v compose.yaml a spusťte znovu docker compose up -d. Organizace mohou stále zvát: INVITATIONS_ALLOWED nastavené na false tuto možnost odebere. Pokud stránka správy už svou konfiguraci uložila, udělejte toto nastavení z ní.

Jak nastavit administrátorský token Vaultwardenu?

Spusťte příkaz vaultwarden hash, který vrátí řetězec argon2id, a vložte ho do ADMIN_TOKEN, s Docker Compose ze souboru .env. Na /admin se pak přihlásíte svým heslem. Bez ADMIN_TOKEN zůstává stránka vypnutá.

Co chrání trezor Vaultwarden?

Především hlavní heslo: data jsou šifrovaná a kopii databáze lze přečíst, jen když se heslo prolomí. K tomu přistupuje dvoufázové ověření, HTTPS, uzavřené registrace, hašovaný administrátorský token a šifrované zálohy.

Jak zálohovat Vaultwarden?

S SQLite spouštějte každý den v kontejneru příkaz /vaultwarden backup a kopírujte také složku attachments, config.json a soubory rsa_key. S MariaDB nebo PostgreSQL přidejte export databáze. Obnovu pravidelně zkoušejte.

Pokrývá Managed VPS i Vaultwarden?

Managed VPS pokrývá server: systém, zabezpečení, dohled a zálohy. Naše týmy také proaktivně sledují vaši instanci a doporučí vám užitečné opravy, které zapracujete vy. Zásah v samotné aplikaci se účtuje po hodinách nebo paušálem.

Zdroje a oficiální dokumentace

Kontaktujte nás