
Vaultwarden: Self-host Bitwarden quản lý mật khẩu trên server riêng 2025
Vaultwarden (trước đây gọi là bitwarden_rs) là triển khai server Bitwarden bằng Rust nhẹ, hiệu năng cao, tương thích hoàn toàn với các Bitwarden client chính thức (web, desktop, mobile, browser extension, CLI). Cho phép bạn lưu trữ mật khẩu, passkeys, thẻ tín dụng, ghi chú bảo mật trên server do mình kiểm soát — không phụ thuộc vào đám mây của Bitwarden Inc.

Tại sao chọn Vaultwarden thay vì Bitwarden Cloud?
- Kiểm soát dữ liệu hoàn toàn: Vault mã hóa end-to-end nằm trên server của bạn
- Miễn phí hoàn toàn: Không giới hạn vault, tổ chức, chia sẻ, 2FA — các tính năng Premium Bitwarden ($10/năm) đều có sẵn
- Hiệu năng vượt trội: Rust + SQLite/PostgreSQL/MySQL, tiêu thụ <50MB RAM, xử lý hàng nghìn request/giây
- Tính năng đầy đủ: Hỗ trợ Passkeys/WebAuthn, TOTP 2FA, Send (chia sẻ bảo mật), Organizations, Collections, Emergency Access
- Tuân thủ GDPR, HIPAA: Dữ liệu không bao giờ rời khỏi hạ tầng bạn quản lý
Yêu cầu hệ thống tối thiểu
- CPU: 1 vCPU (ARM64 hoặc x86_64)
- RAM: 128MB (khuyên dùng 256MB+ cho production)
- Storage: 100MB cho binary + database (SQLite ~ vài MB cho 100 users)
- OS: Linux (Debian/Ubuntu/Alpine/RHEL), FreeBSD, Windows (qua WSL/Docker)
- Reverse Proxy: Nginx/Caddy/Traefik với TLS (bắt buộc cho WebAuthn/Passkeys)
Cài đặt nhanh với Docker Compose (khuyên dùng)
version: '3.8'
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: unless-stopped
environment:
- DOMAIN=https://vault.example.com
- ADMIN_TOKEN=your-secure-random-token # mở /admin panel
- SIGNUPS_ALLOWED=true
- INVITATIONS_ALLOWED=true
- LOG_LEVEL=info
- DATABASE_URL=data/db.sqlite3
- ROCKET_PORT=8000
volumes:
- ./data:/data
ports:
- "127.0.0.1:8000:8000"
networks:
- vaultwarden-net
caddy:
image: caddy:2-alpine
container_name: caddy
restart: unless-stopped
ports:
- "80:80"
- "443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- caddy_data:/data
- caddy_config:/config
networks:
- vaultwarden-net
networks:
vaultwarden-net:
driver: bridge
volumes:
caddy_data:
caddy_config:
Caddyfile tự động cấp SSL Let’s Encrypt:
vault.example.com {
reverse_proxy vaultwarden:8000
header {
Strict-Transport-Security "max-age=31536000"
X-Content-Type-Options "nosniff"
X-Frame-Options "DENY"
Referrer-Policy "strict-origin-when-cross-origin"
}
}
Chạy: docker compose up -d. Truy cập https://vault.example.com để đăng ký tài khoản.

Cấu hình quan trọng sau khi cài đặt
- Tắt đăng ký công khai sau khi tạo tài khoản:
SIGNUPS_ALLOWED=false - Bật Admin Panel tại
/adminvới token: quản lý users, organizations, logs, backup/restore database - Cấu hình SMTP để gửi email mời, reset mật khẩu, 2FA:
SMTP_HOST=smtp.gmail.com SMTP_PORT=587 [email protected] SMTP_PASSWORD=app-password [email protected] SMTP_FROM_NAME=Vaultwarden - Backup database định kỳ: copy file
data/db.sqlite3hoặc dùngsqlite3 db.sqlite3 .dump > backup.sql
Tích hợp Passkeys/WebAuthn — Yêu cầu HTTPS
Passkeys (FIDO2/WebAuthn) chỉ hoạt động trên HTTPS với domain hợp lệ (không phải localhost, không phải IP). Caddy/Nginx với TLS tự động từ Let’s Encrypt là giải pháp đơn giản nhất. Sau khi bật HTTPS, vào Settings → Security → Passkeys để đăng ký khóa phần cứng (YubiKey) hoặc Passkey trên thiết bị (iCloud Keychain, Google Password Manager, 1Password).
So sánh Vaultwarden vs Bitwarden Cloud vs Bitwarden Self-hosted chính thức
| Tính năng | Vaultwarden | Bitwarden Cloud | Bitwarden Self-hosted (Official) |
|---|---|---|---|
| Chi phí | Miễn phí | $10/năm Premium, $40/năm Families | Miễn phí (nhưng resource nặng) |
| RAM tối thiểu | ~50-100MB | N/A (cloud) | ~3-4GB (nhiều container) |
| Database | SQLite/PostgreSQL/MySQL | Managed | MSSQL (bắt buộc) |
| Passkeys/WebAuthn | Hỗ trợ đầy đủ | Hỗ trợ | Hỗ trợ |
| Organizations/Teams | Có | Families/Teams/Enterprise | Có |
| Emergency Access | Có | Premium | Có |
| Cập nhật | Docker pull image mới | Tự động | Phức tạp (nhiều service) |
Mẹo bảo mật nâng cao
- Fail2Ban chặn brute-force login qua Nginx/Caddy logs
- GeoIP blocking chỉ cho phép truy cập từ VN (nếu chỉ dùng trong nước)
- YubiKey hardware 2FA cho tài khoản admin panel
- Monitor logs với Loki/Grafana hoặc đơn giản
docker logs -f vaultwarden - Backup tự động qua cron:
0 3 * * * cp /path/data/db.sqlite3 /backup/db-$(date +\%F).sqlite3
Kết luận
Vaultwarden là giải pháp tốt nhất cho self-host password manager năm 2025: nhẹ, nhanh, đầy đủ tính năng, miễn phí, và được cộng đồng phát triển rất tích cực (15k+ stars GitHub, cập nhật hàng tuần). Với chi phí chỉ là một VPS nhỏ ($3-5/tháng) hoặc chạy trên home lab, bạn sở hữu hệ thống quản lý mật khẩu cấp doanh nghiệp mà không gắn bó với bất kỳ nhà cung cấp đám mây nào.
Tham khảo thêm: Vaultwarden GitHub, Bitwarden Self-Hosted Guide, Vaultwarden Community Forum
