Header Ads

Hướng dẫn selfhost Vaultwarden (Unofficial Bitwarden) miễn phí bằng Fly.io

Hướng Dẫn Tạo Server Vaultwarden Trên Fly.io


Bitwarden là một dịch vụ quản lý và đồng bộ mật khẩu hiệu quả. Trong bài viết này, chúng tôi sẽ hướng dẫn bạn cách tự tạo server để chạy Vaultwarden - một nhánh của Bitwarden được viết lại bằng ngôn ngữ Rust nhằm cải thiện tốc độ và hiệu suất. Vaultwarden là mã nguồn mở và cung cấp nhiều tính năng nâng cao của Bitwarden Pro mà không yêu cầu phần cứng nặng nề như Bitwarden gốc.

Bước 1: Tạo Tài Khoản Fly.io

  • Truy cập Fly.io để tạo tài khoản.
  • Lưu ý: Fly.io yêu cầu thẻ Credit Card và cung cấp miễn phí 5 USD/tháng. Nếu sử dụng vượt mức, bạn sẽ bị trừ tiền. Chi tiết thêm về chính sách giá tại Fly App Pricing.

Bước 2: Tải PowerShell

  • Download PowerShell từ trang chủ.

Bước 3: Cài Đặt Flyctl

  • Mở PowerShell và chạy lệnh sau để cài đặt flyctl:
  pwsh -Command "iwr https://fly.io/install.ps1 -useb | iex"

Bước 4: Đăng Nhập Fly.io

  • Đăng nhập vào Fly.io bằng lệnh:
  fly auth login

Bước 5: Khởi Tạo Dự Án

  • Khởi tạo dự án mới bằng lệnh:
  fly launch

Bước 6: Chỉnh Sửa File fly.toml

  • Mở file fly.toml bằng Notepad và chỉnh sửa như sau:
  app = "buildertv" # Thay "buildertv" bằng tên của bạn
  kill_signal = "SIGINT"
  kill_timeout = 5
  primary_region = "sin" # Thay đổi theo vùng đã chọn
  processes = []

  [env]
    SIGNUPS_ALLOWED = "true" # Đặt "false" nếu không muốn cho phép đăng ký mới

  [build]
    image = "vaultwarden/server:latest"

  [mounts]
    source = "vw_data"
    destination = "/data"

  [experimental]
    auto_rollback = true

  [[services]]
    http_checks = []
    internal_port = 80
    processes = ["app"]
    protocol = "tcp"
    script_checks = []
    [services.concurrency]
      hard_limit = 25
      soft_limit = 20
      type = "connections"

    [[services.ports]]
      force_https = true
      handlers = ["http"]
      port = 80

    [[services.ports]]
      handlers = ["tls", "http"]
      port = 443

    [[services.tcp_checks]]
      grace_period = "1s"
      interval = "15s"
      restart_limit = 0
      timeout = "2s"

Bước 7: Tạo Phân Vùng 1GB

  • Tạo phân vùng dữ liệu bằng lệnh:
  fly volumes create vw_data --size 1

Bước 8: Tạo ADMIN_TOKEN

  fly secrets set ADMIN_TOKEN='YOUR_TOKEN_HERE'

Bước 9: Deploy

  • Triển khai ứng dụng bằng lệnh:
  fly deploy

Bước 10: Tạo Tài Khoản

  • Tạo tài khoản trên host của bạn.

Bước 11: Chuyển Dữ Liệu

  • Xuất dữ liệu từ server Bitwarden cũ (nếu có) và nhập vào tài khoản mới của bạn.

Sao Lưu Dữ Liệu

Fly.io tự động chụp ảnh nhanh các phân vùng của bạn hàng ngày và giữ trong 5 ngày. Để sao lưu dữ liệu thủ công, bạn có thể sử dụng tập lệnh PowerShell dưới đây:

Tạo một tệp mới backup.ps1 trong cùng thư mục với fly.toml và thêm mã sau:

$DATE = get-date -Format "yyyy-MM-dd"
$INSTALL_SQLITE = "apt-get update && apt-get install sqlite3 -y"
$BACKUP_DB = "sqlite3 /data/db.sqlite3 '.backup /data/db.bak'"
$CREATE_ARCHIVE = "tar -czf $DATE.tar.gz data"
fly ssh console -q -C "bash -c ""$INSTALL_SQLITE && $BACKUP_DB && $CREATE_ARCHIVE"" "
fly sftp get "$DATE.tar.gz"

Chạy tập lệnh bằng PowerShell:

.\backup.ps1

Khi tập lệnh hoàn thành, bạn sẽ có một tệp sao lưu dạng yyyy-MM-dd.tar.gz trong thư mục.

Khôi Phục Cơ Sở Dữ Liệu

Để khôi phục cơ sở dữ liệu, chạy lệnh sau:

rm db.sqlite3 && mv db.bak db.sqlite3

Tự Động Hóa Sao Lưu Hàng Ngày

Để tự động hóa quá trình sao lưu hàng ngày vào lúc 9 giờ sáng, bạn có thể tạo một tác vụ theo lịch bằng PowerShell:

$Action = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-File C:\Users\hoang\hoangfly\backup.ps1"
$Trigger = New-ScheduledTaskTrigger -Daily -At 9am
Register-ScheduledTask -Action $Action -Trigger $Trigger -TaskName "BackupTask" -Description "Daily backup at 9 AM"

Hy vọng bài viết này sẽ giúp bạn dễ dàng thiết lập và quản lý server Vaultwarden của riêng mình trên Fly.io.


No comments

Powered by Blogger.