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.
Autor: Simon Vasconcelos Lee
Publikováno 8. listopadu 2026Doba čtení: 15 minut
DOMAIN.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í.docker compose pull.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.
/admin pro nastavení, účty a diagnostiku.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.
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.
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:
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
docker compose up -d
127.0.0.1: jako v README je Vaultwarden dostupný jen přes reverzní proxy na stejném serveru.DOMAIN: základní adresa vaší instance, v https. Wiki upozorňuje, že bez ní se rozbijí některé funkce, mimo jiné přílohy a odkazy na pozvánky.vw-data na lokálním disku: uchovává všechna data. Wiki upozorňuje na potíže SQLite na svazku CIFS nebo Samba, který zamykání nezvládá.latest sleduje poslední zveřejněnou verzi a wiki ji doporučuje pro většinu použití. Značka jako 1.37.5 verzi pevně určí a latest-alpine dává totéž na základu Alpine.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.
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ášť.
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:
vault.example.com {
reverse_proxy 127.0.0.1:8000 {
header_up X-Real-IP {remote_host}
}
}
Tento blok vychází z příkladu Nginx na wiki, zkráceného na port 80, aby HTTPS nasadil Certbot:
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:
sudo certbot --nginx
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.
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.
SIGNUPS_ALLOWED na "false" v souboru compose.yaml.docker compose up -d: proměnná prostředí je vázána na kontejner, který je třeba znovu vytvořit, aby se projevila.SIGNUPS_ALLOWED: "false"
INVITATIONS_ALLOWED nastavené na "false" tuto možnost odebere a wiki volbu ponechává na důvěře, kterou k uživatelům máte.SIGNUPS_DOMAINS_WHITELIST omezuje registraci na některé e-mailové domény a SIGNUPS_VERIFY nastavené na true pak vyžaduje ověření adresy. Když je tento seznam nastaven, SIGNUPS_ALLOWED se ignoruje.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 /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.
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:
VAULTWARDEN_ADMIN_TOKEN='$argon2id$...'
ADMIN_TOKEN: ${VAULTWARDEN_ADMIN_TOKEN}
Zkontrolujte výsledek, spusťte znovu a přihlaste se na /admin svým heslem, nikoli řetězcem PHC:
docker compose config
docker compose up -d
ADMIN_SESSION_LIFETIME. Otevřená relace zůstává platná i po změně tokenu. Chcete-li ukončit všechny, smažte rsa_key.pem ve složce s daty a restartujte, čímž se odhlásí i uživatelé a zruší se rozpracované pozvánky./admin jen z určitých adres, nebo k němu přidat ověření HTTP.DISABLE_ADMIN_TOKEN odstraňuje jakoukoli kontrolu: je určen pro samostatnou vrstvu ověření umístěnou před ním a wiki ho vyhrazuje těm, kdo vědí, co dělají.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.
| Ochrana | Co přináší | Kde se nastavuje |
|---|---|---|
| Hlavní heslo | Udržuje data šifrovaná, i kdyby kopie databáze kolovala | Kaž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 serverem | Reverzní proxy |
| Uzavřené registrace | Brání neznámému, aby si vytvořil účet | SIGNUPS_ALLOWED |
| Nápovědy k heslu | Zobrazené 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 /admin | LOGIN_RATELIMIT_SECONDS a ADMIN_RATELIMIT_SECONDS |
| Fail2ban | Blokuje 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.
root a wiki považuje za lepší dát mu minimum práv. Přidejte ke službě user: 1000:1000, přičemž složka vw-data patří tomuto uživateli.access_token. Pokud vaše proxy uchovává protokoly nebo je posílá externí službě, wiki doporučuje tuto hodnotu v nich skrýt./var/run/docker.sock.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áze | Nastavení | Záloha |
|---|---|---|
| SQLite | Žádné: jeden soubor, vw-data/db.sqlite3 | Příkaz /vaultwarden backup nebo kopie složky při zastavené službě |
| MariaDB nebo MySQL | Váš databázový server a DATABASE_URL v mysql:// | Export databáze, navíc ke složce vw-data |
| PostgreSQL | Váš databázový server a DATABASE_URL v postgresql:// | Export databáze, navíc ke složce vw-data |
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.
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:
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}
DOMAIN a zůstávají platné 5 dní.No compatible authentication mechanism was found.config.json.Pokud nic neodchází, wiki navrhuje vyzkoušet z serveru připojení k relé. Příkaz vrátí 0, když relé odpoví:
timeout 5 bash -c 'cat < /dev/null > /dev/tcp/smtp.example.com/587'; echo $?
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žka | Co uchovává | Zálohovat |
|---|---|---|
db.sqlite3 | Téměř všechna data: účty, organizace, trezory | Povinně |
attachments/ | Přílohy, uložené mimo databázi | Povinně |
config.json | Konfigurace 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é znovu | Volitelně |
Od verze 1.32.1 umí Vaultwarden zálohovat svou databázi SQLite sám, bez zastavení služby:
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.
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:
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.
vw-data jeho zálohovanou verzí./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.Wiki radí toto cvičení čas od času zopakovat a ponechat si kopii původních dat: tak ověříte, že záloha funguje.
Wiki uvádí dva příkazy, ze složky se souborem compose.yaml. Složka s daty zůstává na místě:
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.
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éma | Naše týmy | Vy |
|---|---|---|
| Server | Aktualizace systému a zabezpečení, včetně zásahů na serveru | Okamžik, který vyhovuje vašemu provozu |
| Dohled | Server sledovaný 24 hodin denně, 7 dní v týdnu, se zásahem bez čekání na vaše volání | Čtení protokolů vaší instance |
| Vaultwarden | Proaktivní sledování: chyby, zpomalení a místo na disku zachycené, doporučená oprava | Jeho instalace, aktualizace a nastavení, které zapracujete vy nebo váš AI asistent |
| Účty a trezor | Server, který je nese, hlídaný a zálohovaný | Uživatelé, pozvánky, hlavní hesla a dvoufázové ověření |
| Zálohy | Každou noc, šifrované a uchovávané mimo stroj; obnova v ceně | Kopie vlastní Vaultwardenu a žádost o obnovu, když ji potřebujete |
| Migrace | Váš stávající server přenesen zdarma | Okamž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.
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.
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ěží.
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.
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.
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í.
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á.
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.
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.
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.
Simafri
Promluvme si o vašem záměru
Řekněte nám v pár slovech, co potřebujete: rychle se vám ozveme.
Děkujeme! Vaše zpráva byla odeslána. Brzy se vám ozveme.
Máte raději e-mail? Napište nám na support@simafri.com.