YD Blog
421 words
2 minutes
Hướng dẫn triển khai Vaultwarden lên Fly.io tận dụng gói miễn phí

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ô tả ảnh cho SEO

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 Database

Cấ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 | sh

Login:

fly auth login

2. Khởi Tạo App#

Tạo thư mục mới:

mkdir vaultwarden
cd vaultwarden

Khởi tạo app:

fly launch

Fly sẽ hỏi:

  • App name
  • Region
  • Organization

Sau khi hoàn tất sẽ tạo file:

fly.toml

3. 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 = 1

4. Tạo Persistent Volume#

Vaultwarden cần lưu database nên phải tạo volume:

fly volumes create vw_data --size 1

Tạo 1GB là đủ cho dùng miễn phí.

5. Deploy#

Deploy ứng dụng:

fly deploy

Sau vài phút sẽ có URL dạng:

https://vault-username-id.fly.dev

Nế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-hosted

Sau đó 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.com

Chỉ cần tạo:

CNAME
vault → my-vaultwarden.fly.dev

Sau đó thêm certificate:

fly certs add vault.whitehouse.com

Fly.io sẽ tự cấp SSL.

Backup#

Toàn bộ dữ liệu nằm trong:

/data

Vaultwarden dùng SQLite nên backup rất dễ.

SSH vào container:

fly ssh console

Kiểm tra database:

ls /data

Mì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 deploy

Kế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#

Hướng dẫn triển khai Vaultwarden lên Fly.io tận dụng gói miễn phí
https://www.yepdung.com/posts/vaultwarden-flyio-self-host/
Author
YEPDUNG
Published at
2026-05-27