Harden infrastructure security.
Self-hosted Bitwarden in one Rust container — unlimited passwords, zero subscription, your data stays on your VPS.
Vaultwarden is an unofficial, open-source server implementation of the Bitwarden protocol written in Rust. Every official Bitwarden client works with it unchanged: browser extensions (Chrome, Firefox, Safari), iOS and Android apps, and the desktop client. Your team gets encrypted password sharing, TOTP authenticator, secure notes, emergency access, and an admin panel — all on a server that idles under 50 MB RAM.
Deployed on a ServOrbit VPS, Vaultwarden stores your vault in an SQLite database inside a single Docker volume. No external database server, no third-party telemetry, no per-user billing. One container, one volume to back up, and all your passwords are yours for life at a fixed monthly cost.
Share credentials across your dev team or agency in encrypted organization vaults. Every member uses the Bitwarden app they already know — you just own the server.
Stop paying Bitwarden's or 1Password's per-user fee. Self-host for yourself and your clients on a VPS that costs less per year than a single premium subscription.
Spin up a Vaultwarden instance for each client. Give them a branded URL (e.g. passwords.client.ma), their own vault, and emergency-access policies — without mixing their credentials with yours.
Guide optimized for ServOrbit Cloud VPS.
Order a ServOrbit VPS with at least 1 vCPU and 512 MB RAM. Ubuntu 22.04 LTS is the recommended OS. You will need a public domain name pointing to this VPS — Bitwarden clients refuse non-HTTPS vaults.
SSH into your VPS and run: docker run -d --name vaultwarden --restart=always -v vaultwarden:/data -p 127.0.0.1:8000:80 -e WEBSOCKET_ENABLED=true vaultwarden/server:latest. The container is instantly ready on localhost port 8000.
Bitwarden clients only connect over HTTPS. Install Caddy: apt install -y caddy. Create /etc/caddy/Caddyfile with: passwords.yourdomain.com { reverse_proxy localhost:8000 }. Caddy fetches a Let's Encrypt certificate automatically and renews it forever.
Open https://passwords.yourdomain.com in your browser. Click 'Create Account', enter your master password (make it strong — it encrypts everything), and your vault is ready.
Once you have created all accounts, set SIGNUPS_ALLOWED=false in the Docker command (add -e SIGNUPS_ALLOWED=false) and restart the container. Your instance is now invite-only and locked against unauthorized registrations.
Modern, high-performance and minimal VPN. Secure connections for your teams and infrastructure with near-zero latency.
Application Deployment & DevOpsA modern web server and reverse proxy with automatic HTTPS. Let's Encrypt SSL certificates are obtained and renewed on their own, with minimal configuration via a Caddyfile.
Monitoring & ObservabilitySimple, visual availability monitoring. Watch your HTTP, TCP and DNS endpoints and receive instant alerts.
Browse our help center and FAQ, or write to our team — support in French, English and Arabic.