kiến thức Hướng dẫn selfhost Bitwarden miễn phí bằng Fly.io

  • Người tạo chủ đề Người tạo chủ đề hoanganh.pro
  • Ngày bắt đầu Ngày bắt đầu
Xài vậy cũng ổn rồi thím :beauty: , đợt này đang cài neovim mà cứ bị đơ phải stop start lại mới vào được, nên chắc bỏ neovim + lazyvim

Thôi con máy cỏ mà bác chơi hardcore thế :canny: mấy con này code hết dưới local rồi vứt lên thôi. Nhẹ nhàng thì vim/nano, nếu có mở ssh thì scp cả file lên là xong. Chứ bác còn định chơi edit cả nồi trên con cùi lỏd này thì tội nó quá :sweat:

via theNEXTvoz for iPhone
 
Thôi con máy cỏ mà bác chơi hardcore thế :canny: mấy con này code hết dưới local rồi vứt lên thôi. Nhẹ nhàng thì vim/nano, nếu có mở ssh thì scp cả file lên là xong. Chứ bác còn định chơi edit cả nồi trên con cùi lỏd này thì tội nó quá :sweat:

via theNEXTvoz for iPhone
Đúng vậy bác, em đã ngộ ra :big_smile: , syntax highlight được là ok rồi :shame:
 
bây giờ tự self host thì fly chấm io còn ngon k các sốp, thấy giờ vào bắt add thẻ vào luôn cmnr
 
Các bác cho em hỏi, em self hosted con vaultwarden xong hết rồi mà khi dùng, lưu tk,mk không sao nhưng cứ xoá hay sửa lại tài khoản mật khẩu đã lưu thì bị logout bitwarden, cứ sửa xoá là bị T_T
 
Các bác cho em hỏi, em self hosted con vaultwarden xong hết rồi mà khi dùng, lưu tk,mk không sao nhưng cứ xoá hay sửa lại tài khoản mật khẩu đã lưu thì bị logout bitwarden, cứ sửa xoá là bị T_T
dùng bao đời vaultwarden chưa gặp trường hợp này bao giờ, bác chạy vaultwarden dùng mặc định hay postgresSQL
 
Vì đây là dịch vụ miễn phí, cho nên không biết là nó sẽ thay đổi chính sách hay không, thường xuyên export data bitwarden để backup nhé.
---
Sao lưu dữ liệu


Hình ảnh Docker vaultwarden lưu trữ dữ liệu trong thư mục /data. Hãy SSH vào ứng dụng:

NGINX:
$ fly ssh console
Connecting to 7b36:2bcb:e402:4de9:dbb2:2... complete
# ls
bin   dev             home   media  proc  sbin      sys  var
boot  etc             lib    mnt    root  srv       tmp  vaultwarden
data  healthcheck.sh  lib64  opt    run   start.sh  usr  web-vault
# ls /data
attachments  db.sqlite3-shm  icon_cache  rsa_key.pem      sends
db.sqlite3   db.sqlite3-wal  lost+found  rsa_key.pub.pem  tmp

Thư mục dữ liệu chứa cơ sở dữ liệu SQLite và các tệp quan trọng khác. db.sqlite3 chứa tất cả dữ liệu người dùng và được mã hóa hoàn toàn. Để tự động hóa quá trình sao lưu, chúng ta dùng tập lệnh PowerShell bên dưới.

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

NGINX:
$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"

Đoạn mã trên là một script PowerShell được sử dụng để sao lưu dữ liệu từ một ứng dụng đã được triển khai trên fly.io

Có thể chạy tập lệnh bằng Powershell:

NGINX:
.\backup.ps1

Bây giờ, một tệp trông giống như 2023-04-21.tar.gz sẽ xuất hiện trong thư mục.

Tệp này rất nhỏ, khoảng 2 MB cho vault của tôi. Thậm chí kích thước đó còn tăng cao do thư mục icon_cache chứa các biểu tượng cho mọi trang web trong vault.

Cách đơn giản nhất để sao lưu cơ sở dữ liệu sqlite là cp nó. Tuy nhiên, nếu cơ sở dữ liệu bị sửa đổi trong quá trình sao lưu, nó có thể dẫn đến hỏng hóc. Lệnh .backup của sqlite3 sẽ ngăn chặn điều này bằng cách khóa cơ sở dữ liệu trong suốt thời gian sao chép, chỉ mất một phần giây. Việc khôi phục cơ sở dữ liệu sẽ đơn giản như chạy:

NGINX:
rm db.sqlite3 && mv db.bak db.sqlite3

Nếu bạn không muốn chạy lệnh theo cách thủ công, bạn có thể đăng ký lịch để thực thi lệnh tự động.

Ví dụ
Để lên lịch chạy tệp "C:\\Users\hoang\hoangfly\backup.ps1" mỗi ngày vào lúc 9 giờ sáng bằng PowerShell, bạn có thể làm theo các bước sau:

1. Mở PowerShell.
2. Nhập các lệnh sau:

Mã:
$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"

Trong đó:
  • New-ScheduledTaskAction tạo một hành động mới cho công việc theo lịch trình. Trong trường hợp này, hành động là chạy tệp PowerShell "C:\\Users\hoang\hoangfly\backup.ps1"
  • New-ScheduledTaskTrigger tạo một kích hoạt mới cho công việc theo lịch trình. Trong trường hợp này, kích hoạt là mỗi ngày vào lúc 9 giờ sáng.
  • Register-ScheduledTask đăng ký công việc theo lịch trình với hành động và kích hoạt đã được định nghĩa.

Lưu ý: Bạn cần quyền quản trị để đăng ký một công việc theo lịch trình. Nếu bạn gặp lỗi, hãy thử mở PowerShell với quyền quản trị (Run as Administrator) và thử lại.
bác có code backup.sh cho linux hong
 
update server sao các fence, up 2 năm chưa update server nữa.
À chỉ cần
flyctl deploy
 
Sửa lần cuối:
Bài hướng dẫn hay quá, tôi không bổ sung gì thêm được, vì sợ gây rối rắm cho ae. :love:

Cơ mà tôi xin cống hiến cho ae cách để có 1 con VPS, mà gần như free vĩnh viễn. (Nói thế thôi nhưng vẫn mất chi phí ban đầu nhé).

Thứ tôi nói đến là VM Instance/Compute Engine của Google Cloud, hiện tại chính sách của google thì họ free 1 con e2-micro (1 core / 1GB ram - Dư chạy vaultwarden) mỗi tháng, và đây là chính sách always free, tức là sẽ free mãi mãi (Cho đến khi đổi chính sách). Tôi đã dùng con này chạy vaultwarden chừng 3 năm nay và vẫn chưa thấy có vấn đề gì hết, và cũng chưa mất thêm đồng phí "server" nào từ hồi deploy đến giờ :go:

Chuẩn bị:
  • Thẻ visa/master để kích hoạt thanh toán.
  • 10$/250k (Tý tôi sẽ giải thích, nhưng coi như là mất chi phí ban đầu nhé).

B1: Đăng ký tài khoản Google - Thôi cái này tôi không giải thích thêm, chắc ae ai cũng có rồi.

B2: Khởi tạo project Google Cloud
Xem tệp đính kèm 2788942
Xem tệp đính kèm 2788944

Sau khi làm xong B2 thì đợi xíu để tạo project, khi nào tạo xong sẽ có thông báo để select project. Nếu không có thông báo, thì làm lại B2, nhưng ở ảnh 2, thay vì new project thì chọn project mới tạo.

- B3: Vào VM Instance - Kích hoạt Compute Engine. Tại bước này, nếu bác nào chưa dùng compute engine bao giờ thì sẽ được yêu cầu kích hoạt, nếu từng kích hoạt rồi thì sẽ vào thẳng danh sách các VM (Virtual Machine) luôn.
Xem tệp đính kèm 2788950
Xem tệp đính kèm 2788951

Đến bước này google sẽ yêu cầu enable billing, Cái này hướng dẫn nó cũng dễ như đi thanh toán đồ shopee đầy trên mạng, các bác nhập thẻ vào thanh toán thôi nhé.

Trước google sẽ charge ảo 1$, sau đó trả lại để link thẻ, giờ thì em không rõ, nhưng yên tâm là ko mất tiền đoạn này nhé. Em cũng dặn các bác chuẩn bị sẵn 10$/250k rồi nên việc link ko có vấn đề gì đâu. :go:

Đương nhiên là mấy bác ko có thẻ muốn trick lỏd với google thì cũng dc thôi, nhưng em ko khuyến khích nhé, cứ tiền thật thẻ thật mà phang, thì nó dễ thành công, chọn cái thẻ nào ít dùng ý, xong việc rồi khóa thẻ/khóa thanh toán online vào cho đỡ sợ mất tiền, hoặc thậm chí đóng thẻ luôn nếu ko dùng nữa. Cơ bản giờ trick lỏ nhiều nên google nó cũng hơi khắm đoạn verify, nên có failed việc link thẻ thì em cũng ko chịu trách nhiệm nhé :go:

Sau khi link thẻ xong thì các bác thực hiện lại B3, cho đến khi enable được thì khi chọn VM Instance sẽ đến được ảnh tại B4 nhé.

- B4: Tạo VM instance
Sau khi vào trạng VM Instance sẽ có giao diện như bên dưới, tạo instance mới thôi
Xem tệp đính kèm 2788958

Đến bước này thì ae nên đọc kỹ lại điều kiện free tier của Google Cloud tại đây nhé: Free cloud features and trial offer | Google Cloud Free Program (https://cloud.google.com/free/docs/free-cloud-features?_gl=1*8tt6si*_up*MQ..&gclid=Cj0KCQiA6Ou5BhCrARIsAPoTxrDxbVaFoggCJrwzkxqfH2uRcZNmDq9tCb4VZ3jYtUJh-jzx_juNUXkaAsKqEALw_wcB&gclsrc=aw.ds#compute)

Các bước bên dưới tạo instance theo đúng điều kiện free tier thì mới được free.
Xem tệp đính kèm 2788962
Name: Đặt tùy ý, đề default cũng dc
Region: Chọn us-central1, hoặc us-west1, us-east1 (Bắt buộc) recommend dùng us-central1
Zone: Chọn tùy ý, a, b, c đều được.
Config: Chọn E2 (Bắt buộc)

Xem tệp đính kèm 2788965

Preset: E2-Micro (Bắt buộc), không chọn preset khác, nếu không muốn trả tiền =)) Free cũng chỉ dc con máy vậy thôi, đủ dùng rồi.

Kéo xuống Boot Disk, chọn Change

Xem tệp đính kèm 2788979


Operating System: Ubuntu (Optional)
Version: 24.04LTS - X86 (Optional - Nhưng phải chọn x86, ko chọn ARM, vì VM là x86)
Boot Disk type: Standard persistence disk (Bắt buộc) - Điều kiện free tier
Size: <= 30GB được free, nên chọn max 30GB luôn cho nó thoải mái.

Xem tệp đính kèm 2788987

Firewall: tích allow http, https, vì vaultwarden hay là nginx thì cũng cần mở port để dùng.

Ấn Create.

Đợi xíu để google nó tạo instance, sau khi xong thì quay lại màn hình đầu tiên của B4. Các bác sẽ thấy VM của mình được hiển thị trên danh sách. :love:

Trong trang danh sách các bác có thể thấy instance của mình, thông tin IP cũng đầy đủ. Các bác chỉ cần ấn vào nút SSH, verify lại tài khoản google là sẽ ssh được vào VM trên google cloud luôn, ko cần setup lằng nhằng nhé. Còn bác nào thích vọc thì tự nghiên cứu thêm :nosebleed:

Đến đây rồi thì các bác vọc theo đúng công thức của bác ntth thôi, vì máy chạy ubuntu nên mọi chuyện quá dễ dàng rồi :byebye:


Phần cuối cực kỳ quan cmn trọng:
Google ghi là free, và thực tế dùng con VM này nó free thật, nhưng mỗi tháng các bác vẫn sẽ mất 1 loại chi phí, đó là tiền network (mạng).

Nhưng phí này rất rẻ, em dùng 3 - 4 năm nay, tháng đắt nhất mất 350 VND, tháng rẻ nhất là 23 VND (tính bằng VND chứ không phải ngàn đồng hay USD nhé), nên gần như là free, nhưng các bác vẫn phải thanh toán.

Do rule của Google Cloud, giao dịch charge tiền rẻ nhất có thể thực hiện là 10$/250k VND, nên các bác sẽ phải nạp vào google 250k (Tháng đầu tiên dùng chưa phải nạp, vì google tính phí kiểu trả sau, cuối tháng mới phải trả).

Sau khi nạp 250k xong thì tiền đó sẽ được lưu số dư bởi google, mỗi tháng sau đó Google nó tự động trừ vào số dư đó chứ ko đòi tiền các bác nữa. :go:

Đến hiện tại, sau hơn 3 năm dùng thì số dư của em đã tụt từ 250k xuống còn 230k. Vị chi hết 20k cho 3 năm, rẻ đúng không nào :byebye:

Còn số tiền còn lại em cứ bỏ đó cho trừ dần thôi, xác định đến khi nào google nó đổi chính sách thì kiếm cái dịch vụ nào của nó xài nốt cho hết rồi cút, cũng ko lãng phí đi đâu được :beat_brick:

Thôi, bài dài quá, em xin kết nhé, chúc các bác thành công :byebye:
Bác ơi, e lỡ ấn active full account của bọn google console, nó cho e thêm 300$ nữa, tổng 600, thành paid account r. Giờ k biết hàng tháng nó có charge phí và mình còn sử dụng free tier đc k bác nhỉ?
 
Sửa lần cuối:
Bác ơi, e lỡ ấn active full account của bọn google console, nó cho e thêm 300$ nữa, tổng 600, thành paid account r. Giờ k biết hàng tháng nó có charge phí và mình còn sử dụng free tier đc k bác nhỉ?
Free tier thì mãi mãi free thôi thím, yên tâm xài thôi, ko vấn đề gì :byebye: chứ link thẻ vào thì cũng lên paid account mới được xài free tier mà, chứ mấy ông vô danh có dc tặng đâu :byebye:

Còn thím sợ bị charge phí thì thím hủy cái thẻ đã link đi, hoặc link sang thẻ khác, rồi khóa thẻ/rút tiền là khỏi lo phí. :shame:

Còn thím chỉ dùng free tier thì yên tâm là google ko charge thêm phí gì khác ngoài tiền mạng linh tinh tầm vài trăm đồng / tháng như em có đề cập đâu nhé. :byebye:

Còn 600$ kia thím thích thì cứ xài thôi, ae dev cũng toàn lấy mấy trăm $ đấy mua server mạnh để dev dự án với trial siêu tính năng của google cloud đầy ra. Nhưng mà xài thì nhớ để ý mà kiểm soát dịch vụ, đừng để quá 600$ là 1 phải trả tiền, 2 là bay cái gmail, lại mất công làm lại từ đầu nhé.
 
Mấy bác cho hỏi config cái smtp này như nào nhỉ. E config hết r, test báo ok r, mà bên kia k nhận đc mail gì cả :(
 

Tệp đính kèm

  • aUvum1S5v9.png
    aUvum1S5v9.png
    64 KB · Lượt xem: 29

Thống kê chủ đề

Ngày tạo
hoanganh.pro,
Người trả lời cuối
takigami,
Trả lời
583
Lượt xem
43.411
Quay lại
Lên đầu trang