7 min to read
Understanding and Installing Vaultwarden - A Self-Hosted Password Manager
A comprehensive guide to Vaultwarden deployment on Kubernetes

Introduction to Vaultwarden
What is Vaultwarden?
Vaultwarden (formerly known as Bitwarden_RS) provides a self-contained, efficient implementation of the Bitwarden API that enables:
- Full Control: Complete ownership of your sensitive password data
- Privacy: No reliance on Bitwarden's cloud infrastructure
- Simplicity: Simplified deployment with minimal resource consumption
- Compatibility: Works with all official Bitwarden clients and browser extensions
While retaining core functionality, Vaultwarden consumes a fraction of the resources needed by the official Bitwarden server, making it accessible for home labs and small environments.
Key Features and Capabilities
Feature | Description |
---|---|
Lightweight Architecture |
|
Seamless Compatibility |
|
Storage Flexibility |
|
Security Features |
|
Vaultwarden vs. Official Bitwarden
While Vaultwarden provides most of the functionality of the official Bitwarden server, there are some important distinctions:
- Community Support: Relies on community support rather than official Bitwarden support
- Enterprise Features: Some advanced enterprise features may be limited or unavailable
- Update Cycle: May lag behind official server updates when API changes occur
- Licensing: Free for all features, without the license requirements of official Bitwarden
For most personal and small team use cases, these differences are acceptable trade-offs for the simplified deployment and reduced resource requirements.
Deployment on Kubernetes using Helm
Prerequisites
To successfully deploy Vaultwarden on Kubernetes, ensure you have:
- Kubernetes Cluster: A working Kubernetes cluster (can be local like Minikube or Kind)
- Helm: Helm 3 installed and configured to work with your cluster
- Storage: A default StorageClass configured for persistent volume claims
- Ingress Controller: NGINX Ingress or similar for external access
- DNS: A domain name pointing to your Kubernetes ingress (for production use)
Preparation Steps
1. Setting Up the Helm Repository
# Clone charts repository
git clone https://github.com/gissilabs/charts.git
# Add Helm repository
helm repo add gissilabs https://gissilabs.github.io/charts/
# Prepare values file
cd ~/charts/vaultwarden
mkdir values
cp values.yaml values/mgmt.yaml
2. Configuring Backup Templates
Setting up proper backup procedures is critical for password managers. The following templates create a CronJob that regularly backs up your Vaultwarden data:
Create templates/backup-cronjob.yaml
:
Create templates/backup-persistentvolumeclaim.yaml
:
Configuration Options
Configuration Area | Available Options |
---|---|
Database |
|
Security |
|
Networking |
|
Storage |
|
Example Configuration File
database:
type: sqlite
wal: true
vaultwarden:
verifySignup: false
admin:
enabled: true
disableAdminToken: false
token: "Somaz!123"
emergency:
enabled: true
service:
type: ClusterIP
httpPort: 80
ingress:
enabled: true
className: "nginx"
host: "vaultwarden.somaz.link"
annotations:
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
persistence:
enabled: true
size: 25Gi
storageClass: "default"
Deployment Process
Follow these steps to deploy Vaultwarden to your Kubernetes cluster:
Advanced Configuration
Email Notification Setup (SMTP)
Configuring SMTP allows Vaultwarden to send important notifications:
- Account verification emails
- Password hint reminders
- Organization invitations
- Emergency access requests
Add to your values file:
smtp:
enabled: true
host: "smtp.office365.com"
from: "noreply@somaz.link"
fromName: "Somaz, Inc."
security: starttls
port: 587
timeout: 15
user: ""
password: ""
Maintenance and Upgrades
To upgrade your installation:
# Update the Helm repository
helm repo update
# Apply the upgrade
helm upgrade vaultwarden . -n vaultwarden -f ./values/mgmt.yaml
Post-Installation
-
Web Interface
- Access your Vaultwarden instance at your configured domain
- Create your master account and set up your organization structure
- Use the admin panel for system configuration (https://your-domain.com/admin) -
Client Setup
- Install Bitwarden clients on your devices
- Configure the client to use your self-hosted URL
- Login with your master credentials -
Security Best Practices
- Use a strong, unique master password
- Enable two-factor authentication
- Configure regular data backups
- Keep your Vaultwarden instance updated
Comments