Nếu bạn đang tìm kiếm một giải pháp quản lý mật khẩu tự lưu trữ (self-hosted) vừa an toàn, nhẹ nhàng lại vừa có chi phí mức 0 đồng, thì Vaultwarden và Fly.io chính là giải pháp hoàn hảo.

Mình đã triển khai và chạy thử được hơn 1 năm, chưa bị downtime lần nào, chi phí hàng tháng dưới 1$.
Kiến trúc
Setup của mình khá đơn giản:
Bitwarden App / Browser Extension
↓
Fly.io Instance
↓
Vaultwarden
↓
SQLite DatabaseCấu hình Fly.io: RAM-256MB, Volume-1GB, ServerLocation-Singapore
1. Cài đặt Fly CLI
Trước tiên cần tạo account Fly.io:
Sau đó cài Fly CLI:
curl -L https://fly.io/install.sh | shLogin:
fly auth login2. Khởi Tạo App
Tạo thư mục mới:
mkdir vaultwarden
cd vaultwardenKhởi tạo app:
fly launchFly sẽ hỏi:
- App name
- Region
- Organization
Sau khi hoàn tất sẽ tạo file:
fly.toml3. Cấu hình Vaultwarden
Sửa file fly.toml:
app = 'vault-yourname'
primary_region = 'sin'
[http_service]
internal_port = 80
force_https = true
auto_stop_machines = 'stop'
auto_start_machines = true
min_machines_running = 0
processes = ['app']
[env]
TZ = "Asia/Ho_Chi_Minh"
SIGNUPS_ALLOWED = "false"
DOMAIN = "https://vault.whitehouse.com" # Nếu có domain riêng
SMTP_HOST = "smtp.gmail.com"
SMTP_PORT = "465"
SMTP_SECURITY = "force_tls"
SMTP_USERNAME = "[email protected]"
SMTP_FROM = "[email protected]"
[build]
image = "vaultwarden/server:latest"
[mounts]
source = "vw_data"
destination = "/data"
[[vm]]
memory = '256mb'
cpu_kind = 'shared'
cpus = 14. Tạo Persistent Volume
Vaultwarden cần lưu database nên phải tạo volume:
fly volumes create vw_data --size 1Tạo 1GB là đủ cho dùng miễn phí.
5. Deploy
Deploy ứng dụng:
fly deploySau vài phút sẽ có URL dạng:
https://vault-username-id.fly.devNếu mọi thứ đúng, bạn sẽ thấy trang login của Vaultwarden.
6. Kết Nối Với Bitwarden App
Bạn có thể tải và sử dụng qua:
- Browser extension (Google Chrome, Microsoft Edge, Firefox)
- Mobile app (Google Play, Apple Store)
- Desktop app (Windows, Linux)
Chọn:
Self-hostedSau đó nhập server URL của bạn.
Ví dụ:
https://vault-username-id.fly.devĐã xong.
Sau khi tạo account đầu tiên
Ngay sau khi tạo user đầu tiên, nên tắt signup public:
SIGNUPS_ALLOWED = "false"Rồi deploy lại:
fly deployĐiều này giúp giảm attack surface đáng kể.
Custom Domain
Mình không thích dùng domain .fly.dev.
Ví dụ mình muốn:
vault.whitehouse.comChỉ cần tạo:
CNAME
vault → my-vaultwarden.fly.devSau đó thêm certificate:
fly certs add vault.whitehouse.comFly.io sẽ tự cấp SSL.
Backup
Toàn bộ dữ liệu nằm trong:
/dataVaultwarden dùng SQLite nên backup rất dễ.
SSH vào container:
fly ssh consoleKiểm tra database:
ls /dataMình backup bằng:
sqlite3 /data/db.sqlite3 '.backup /data/db.bak'Sau đó tar lại toàn bộ /data.
Cập nhật Vaultwarden
Chỉ cần vào folder chạy:
fly deployKết luận
Vaultwarden + Fly.io là một trong những setup self-host mình thích nhất.
Với vài lệnh CLI, bạn đã có password manager riêng hoạt động trên internet với HTTPS đầy đủ.
Và thật sự rất khó quay lại sau khi đã quen cảm giác tự kiểm soát toàn bộ dữ liệu của mình.
Tham Khảo
Vaultwarden
https://github.com/dani-garcia/vaultwardenFly.io
https://fly.ioBitwarden
https://bitwarden.com

