Get Started

Host your own password manager with Vaultwarden

Run your own password manager sync server on your own machine, so the official Bitwarden apps on all your devices sync through a server you control instead of a company's cloud. Unlike the KeePass course, which keeps a single offline database file, this is a self-hosted sync server: you own the data, and you also take on the backups, updates and safe remote access that come with it.

50 minIntermediateTools: FreeStep 1 free
Tested 10 Oct 2026 · Vaultwarden server image vaultwarden/server:1.32.7 (bundling Vaultwarden Web 2024.6.2), run with Docker Engine 29.1.3 driven through the standard docker command line on Windows 11 (WSL2 Ubuntu 24.04.3 LTS backend, the same engine and the exact same commands Docker Desktop installs and runs). Screenshots are real captures of the running web vault at http://127.0.0.1:8222. Every container ID, version string, log line and database check below is from that run. We pin version 1.32.7 on purpose: its web vault lets you create your account over plain http://127.0.0.1. The current :latest image's built-in sign-up insists on HTTPS, which you will have once you set up remote access in step 6; step 2 explains the choice.
A real Bitwarden-compatible password sync server (Vaultwarden) running in Docker on your own machine, with the official web vault open at 127.0.0.1 and nothing exposed to the internet
Your own vault account created on a server you control, one login item added, and proof straight from the server's own database that it stores only encrypted ciphertext: the text you typed is nowhere in it
A working config file and the playbook for real usepointing the official Bitwarden apps and browser extension at your server, backing it up, and the three safe ways to reach it from outside (and the one way you must never use)
Before you start
  • Docker on your PC. If you have not set it up, the ethical-hacking lesson Build a hacking lab on your own PC installs Docker Desktop step by step and is the Docker starting point for this whole site. Built with Docker Engine 29.1.3
  • About 1GB of free disk space (the Vaultwarden image is around 400MB, plus a little room for your vault data)
  • A terminal: Windows PowerShell, which is already on your PC. New to it? The Level 0 lesson Install anything from GitHub covers the basics first
  • To know whether you even need this. If a single offline database on one computer is enough for you, the simpler free offline password manager (KeePass) lesson is all you need. This mission is the step up: a sync server you run yourself so several devices share one vault. Step 1 helps you choose
01/07Why host your own, and when KeePass is enough instead0 done
STEP 01 of 07~6 min

Why host your own, and when KeePass is enough instead

Understand exactly what a password manager sync server is and how it differs from a single offline database, so you choose the right tool and know what you are taking on.

  1. A password manager is an encrypted file that holds all your logins behind one master password. The KeePass lesson on this track builds the simplest kind: one database file that lives on one computer and never touches the internet. That is brilliant when all your passwords need to be in one place. It gets awkward the moment you want the same passwords on your laptop, your phone and your work machine, because now you are copying a file around by hand.

  2. A sync server solves that. It is a small program that keeps one copy of your vault and lets each of your devices connect to it, pull down the latest version and push up any changes. Bitwarden is the best known password manager built this way, and it offers a paid cloud where their servers hold that copy. Self-hosted means you run the server yourself instead, on a computer you own, so the copy lives on your hardware and no outside company holds it.

  3. Vaultwarden is what we run here. It is an independent, open-source server that speaks the exact same language as Bitwarden's official server, so the real Bitwarden apps and browser extensions work against it unchanged. The reason to use it rather than Bitwarden's own server software is weight: Bitwarden's official self-hosted stack is several containers and a chunky install, while Vaultwarden is a single small container that happily runs on a spare PC or a cheap server. It is not made by Bitwarden and is not affiliated with them; it is a separate project that is compatible with their clients.

  4. The piece that makes self-hosting safe to even consider is zero-knowledge, end-to-end encryption. Everything in your vault is locked and unlocked by the Bitwarden app on your device, using a key derived from your master password. Your passwords are encrypted before they ever leave your device, so the server only ever receives and stores scrambled data. It cannot read your passwords, and neither can anyone who gets hold of the server. You will prove this to yourself in step 4 by looking in the server's own database and finding only ciphertext. Your master password is never sent to the server either, which is also why nobody, including you, can recover the vault if you forget it.

  5. Now the trade-off, because self-hosting is a real responsibility, not a free lunch:

    • What you gain: you own the data. No third-party cloud holds your vault, there is no account with a company that can be breached, change terms, or lock you out, and you decide where the one copy lives.
    • What you take on: you are now the operator. If the server's disk dies and you have no backup, your vault is gone, so backups are on you (step 6). You have to keep the server updated yourself. And if you want to reach it from outside your home, you have to expose it safely, which means putting it behind HTTPS and never opening the raw server to the internet (step 6 again).
    • When KeePass is the better answer: if your passwords only need to be on one machine, or you are happy moving an encrypted file yourself, a single offline database is simpler and has none of these responsibilities. Hosting a server earns its keep when you genuinely want several devices syncing automatically.
  6. One more thing to be clear about up front, because it matters in step 3: the account you create here is a local account on software you run. It is not signing up to a third-party service. You are creating a login on a server sitting on your own machine, the same way you would set a password on a local database. That is entirely yours to do.

    TipA simple way to decide: count the devices. One device, or you do not mind the occasional manual copy, means KeePass. Two or more devices that you want to stay in sync by themselves means a sync server like the one you are about to build.
✓
CheckpointYou can say in one sentence how a sync server differs from a single offline database, what zero-knowledge encryption means (your device encrypts before anything is sent, so the server never sees plaintext), and the main responsibility self-hosting adds (backups, updates, and safe remote exposure).
Stuck? Ask the community
Next mission · Go darkThe Mirror's homepage makes 158 requests. Block the trackers in five minutes
→