Skip to content

Vaultwarden on a VPS

Bitwarden server alternative

Category
Dev / Tools
Author
Daniel García (dani-garcia)
License
AGPL-3.0
Version
1.37.3

The script is free · VPS from $2.79 per month · installs in about 60 seconds

Install over SSH

root@vps:~# command -v docker >/dev/null || curl -fsSL https://get.docker.com | sh; docker run --detach --name vaultwarden --env DOMAIN="https://vw.example.com" --volume /vw-data/:/data/ --restart unless-stopped --publish 127.0.0.1:8000:80 vaultwarden/server:latest

  • SystemUbuntu 24.04 · x86_64ok
  • Sourcegithub.com/dani-garcia/vaultwardenok
  • Version1.37.3ok
  • Port8000/tcplisten

✓ Vaultwarden 1.37.3 installed · about 60 seconds

root@vps:~#

Install command from the library. Output is shortened and may differ on your server.

What it is

  • Passwords
  • Bitwarden
  • Security
  • 2FA

Vaultwarden is a lightweight Bitwarden-compatible server. Keep your passwords, cards and notes on your own VPS while using the official Bitwarden apps and extensions.

Unlike the official Bitwarden server, Vaultwarden is written in Rust and uses only tens of megabytes of memory, so it fits even the smallest plan. Organizations, password sharing and two-factor login are free.

The web vault only works over HTTPS, so the container listens on localhost and is exposed through a reverse proxy with a certificate.

  • Works with Bitwarden apps and extensions
  • Organizations and password sharing
  • 2FA: TOTP, FIDO2 WebAuthn, YubiKey, email
  • Bitwarden Send and attachments
  • Emergency access and admin panel

Recommended plan

For Vaultwarden: at least 1 vCPU, 2 GB RAM and 10 GB NVMe.

Minimum to run
1 vCPU · 1 GB RAM · 10 GB disk
Systems
Ubuntu 22.04 · Ubuntu 24.04 · Debian 12

How to install

Three steps in the bot or one command over SSH; installation takes about 60 seconds.

  1. 01

    Choose a plan in the bot

    Open @ExpressHost_bot and pay for a VPS. The server will be ready in about 60 seconds.

  2. 02

    Add Vaultwarden

    At the “Add-ons” step pick the script from the library, or run it later: Server settings → Scripts.

  3. 03

    Finish the setup

    Replace vw.example.com with your domain and point its A record at the server

Manually over SSH

Connect to the server as root and run the command. Supported systems: Ubuntu 22.04, Ubuntu 24.04, Debian 12.

Install command
command -v docker >/dev/null || curl -fsSL https://get.docker.com | sh; docker run --detach --name vaultwarden --env DOMAIN="https://vw.example.com" --volume /vw-data/:/data/ --restart unless-stopped --publish 127.0.0.1:8000:80 vaultwarden/server:latest

Ports

Vaultwarden ports
PortProtocolPurpose
8000tcpWeb vault and API (127.0.0.1 only, exposed via HTTPS proxy)

After installation

  1. 1.Replace vw.example.com with your domain and point its A record at the server
  2. 2.Set up an HTTPS proxy to 127.0.0.1:8000 (Nginx with Certbot, or Caddy)
  3. 3.Open https://your-domain and create an account
  4. 4.Once your users have registered, recreate the container with --env SIGNUPS_ALLOWED=false

Vaultwarden FAQ

Didn’t find an answer? Message @ExpressHost_SupportBot.

Why doesn't the web vault open by IP?

It needs HTTPS: without a secure context the browser won't allow the Web Crypto API. Set up a domain and a certificate.

How do I update Vaultwarden?

Run docker pull vaultwarden/server:latest, then remove the container and start it with the same command. Your data stays in /vw-data.

Where is the data and how do I back it up?

In /vw-data: the db.sqlite3 database, attachments and keys. Copy the whole folder, preferably with the container stopped.

Vaultwarden installs at checkout — in the bot.