Skip to content
Live $100 credit at signup, up to $300 total Offer ends December 31, 2026 Get started →

Vaultwarden

Vaultwarden is a lightweight, self-hosted password manager that implements the Bitwarden API. It is fully compatible with official Bitwarden client apps and browser extensions, letting you store and sync passwords, secure notes, and other secrets on infrastructure you control.

ComponentVersion
Vaultwarden1.36.0
DockerLatest stable
Docker ComposeLatest stable
Ubuntu24.04 LTS

Vaultwarden stores its data in an embedded SQLite database and serves the web vault over HTTPS on port 8000 with a self-signed certificate generated on first boot.

ResourceMinimumRecommended
vCPU12
RAM1 GB2 GB
Storage10 GB20 GB

Vaultwarden is resource-light.

You can optionally set these when deploying Vaultwarden from the marketplace. Leave ADMIN_TOKEN blank to have a secure random value generated automatically.

VariableDescription
VAULTWARDEN_DOMAINFull public URL clients use, for example https://vault.example.com
ADMIN_TOKENToken for the /admin panel
ssh ubuntu@<your-vm-ip>

On the first boot, a setup script generates a self-signed TLS certificate and the admin token, then starts the container with Docker Compose. This takes under a minute. Track progress:

journalctl -u vaultwarden-first-boot.service -f

The login message (MOTD) confirms when Vaultwarden is ready.

The admin token signs in to the /admin panel. It is written to a root-only file:

sudo cat /root/.credentials/vaultwarden.txt

Open a browser and navigate to:

https://<your-vm-ip>:8000

The self-signed certificate triggers a browser warning. Accept the exception to proceed. The admin panel is at https://<your-vm-ip>:8000/admin.

Vaultwarden runs as a Docker Compose stack in /data/vaultwarden.

# Check status
cd /data/vaultwarden && docker compose ps
# Restart
cd /data/vaultwarden && docker compose restart
# View logs
cd /data/vaultwarden && docker compose logs -f

Environment configuration: /data/vaultwarden/vaultwarden.env. The vault database and certificate are stored under /data/vaultwarden/data.

Port 8000 is open on the VM’s network interface. UFW is enabled and allows SSH (port 22) and the Vaultwarden web vault (port 8000). Bitwarden clients require HTTPS, which the image serves with a self-signed certificate by default.

Treat the admin token like a root password.

For production use, set DOMAIN to the full public URL clients use, including the scheme and any port or path (for example https://vault.example.com or https://<public-ip>:8000), in /data/vaultwarden/vaultwarden.env, replace the self-signed certificate with a trusted one (or front Vaultwarden with a reverse proxy such as Caddy that terminates TLS), and restart the stack:

cd /data/vaultwarden && docker compose restart

Last updated: