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
Hôm trước đọc post nào có bác nào dùng 1 cái reverse proxy mà không phải là NPM. Bác nào biết cho mình xin thông tin nhé.

Gửi từ Samsung SM-G973F bằng vozFApp
 
Hừm, hiện tại đang dùng khá ngon, nhưng chắc sẽ phải tự viết 1 script backup tự động dữ liệu rồi đẩy về driver cá nhân, hạn chế có vấn đề đột xuất
 
Mình đang tính build 1 trang web về thông tin crypto
Domain mình đã mua rồi ở squarespac
VPS mình cũng có. Cấu hình ổn
Giờ mình nên làm gì để build web? Có thể clone ở đâu về rồi tự modify lại theo ý mình được không
 
em quên cái admin token để đn vào trang admin cũng mất luôn file key-pairing.pem để ssh rồi. v quy trình để lấy lại cái admin token đó là vào ec2 tạo key mới rồi connect lại giống như hướng dẫn ở đây
1727435655995.png
em đã thay với key mới tạo lại nhưng nó báo như này là em hiểu chưa đúng hay bị sai chỗ nào nhờ các bác giúp với ạ
1727435829432.png
 
Lâu lâu anh em nhớ update phiên bản Vaultwarden nhé:
Để cập nhật Vaultwarden trên Docker sử dụng Docker Compose, bạn có thể làm theo các bước sau để đảm bảo phiên bản được cập nhật lên bản mới nhất:

  1. Kiểm tra phiên bản hiện tạicủa Vaultwarden đang chạy:
    • Chạy lệnh: docker ps để xem phiên bản hiện tại của container Vaultwarden.
  2. Pull phiên bản mới nhất của image Vaultwardentừ Docker Hub:
    • Chạy lệnh:docker compose pull
    • Lệnh này sẽ tải về image mới nhất từ repository trên Docker Hub.
  3. Cập nhật container Vaultwarden:
    • Sau khi image mới đã được tải về, bạn chạy lệnh sau để khởi động lại container với phiên bản mới:docker compose up -d
    • Lệnh này sẽ khởi động lại container mà không dừng hệ thống, giúp giữ cho dịch vụ Vaultwarden của bạn luôn hoạt động.
  4. Xác minh bản cập nhật:
    • Sau khi container đã khởi động lại, kiểm tra phiên bản mới bằng cách:docker ps
    • Kiểm tra trang quản trị Vaultwarden để đảm bảo đã lên phiên bản mới nhất.
Nếu vẫn không thấy phiên bản mới, hãy kiểm tra file docker-compose.yml để đảm bảo rằng image Vaultwarden của bạn được chỉ định là vaultwarden/server:latest hoặc phiên bản cụ thể bạn muốn.
 
Hướng dẫn self-hosted vaultwarden (bitwarden) trên VPS.



1. Chuẩn bị trước khi cài.

a. Tên miền để truy cập vault: Có thể mua 1 cái (rẻ nhất 30k/năm) hoặc đăng ký free (dot.tk).
b. Máy chủ ảo (VPS) cấu hình cỡ 1 core CPU, 1 GB RAM, disk 10GB trở lên cho chắc chắn. Rẻ là được, nhưng phải uy tín và uptime tốt. VPS downtime nhiều có thể ảnh hưởng đến việc sử dụng.

c. Trỏ sẵn bản ghi A về IP của VPS đã mua ở trên. Trường hợp dùng Tunnel hoặc phương án khác thì bỏ qua hướng dẫn liên quan đến tên miền nhé.

2. Cài đặt
a. Chuẩn bị VPS
  • Hệ điều hành em sẽ hướng dẫn ở đây là Ubuntu 22. Các thím dùng cùng loại để có câu lệnh đúng nhất.
  • Đảm bảo OS là sạch, chưa cài bất kì thứ gì để tránh lỗi. Mọi cài đặt sẽ liên quan đến docker, nên có sẵn docker thì thôi cứ vậy dùng.

b. Cài đặt docker.
- Có nhiều cách cài đặt docker, nhưng em sẽ hướng dẫn cách nhanh và dễ nhất là dùng script có sẵn:

Bash:
sudo -i
curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh

- Kiểm tra xem đã có Docker Compose chưa. Docker Compose sẽ dùng file yml được soạn sẵn để tạo container nhanh gọn

Bash:
docker compose version
Docker Compose version v2.21.0 # << Hiện version là oke.

Tạo network:
Bash:
docker network create -d bridge npm

c. Cài đặt NGINX Proxy Manager.
Cái này nó có nhiều tác dụng, trong trường hợp này sẽ dùng để trỏ tên miền vào đúng vaultwarden và hỗ trợ ký SSL Certificate luôn.

- Tạo thư mục lưu config
Bash:
cd /opt/
mkdir docker-compose
cd docker-compose
mkdir nginx
cd nginx

- Tạo file docker-compose.yml
Bash:
vi docker-compose.yml
Paste nội dung sau:

Bash:
version: "3"
services:
  nginx-proxy-manager:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - '80:80'
      - '81:81'
      - '443:443'

    # Uncomment the next line if you uncomment anything in the section
    environment:
      # Uncomment this if you want to change the location of
      # the SQLite DB file within the container
      DB_SQLITE_FILE: "/data/database.sqlite"

      # Uncomment this if IPv6 is not enabled on your host
      DISABLE_IPV6: 'true'

    volumes:
      - '/opt/data/nginx/data:/data'
      - '/opt/data/nginx/letsencrypt:/etc/letsencrypt'

    networks:
      - npm

networks:
  npm:
    external: true
Ấn ESC 1 lần, gõ :x và enter để lưu lại file.

- Tiếp theo, gõ lệnh để chạy container nginx proxy manager.
Bash:
docker compose up -d
#[+] Running 1/1
# ✔ Container nginx-nginx-proxy-manager-1  Started

d. Cài đặt vaultwarden.
-
Tạo thư mục lưu config và tạo file docker compose.
Bash:
cd /opt/docker-compose/
mkdir vaultwarden
cd vaultwarden
vi docker-compose.yml

Paste:
Bash:
version: '3'

services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: always
    environment:
      DOMAIN: "https://ten-mien-co-https"
      ADMIN_TOKEN: "mật khẩu để vào admin vaultwarden. Xoá luôn dòng này nếu như không cần admin"
      #LOG_FILE: /data/log/vaultwarden.log
    volumes:
      - /opt/data/vaultwarden/vw-data:/data
      #- /opt/data/vaultwarden/vw-data/log:/data/log
    networks:
      - npm

networks:
  npm:
    external: true

Chạy container bằng lệnh: docker compose up -d. Không báo lỗi gì là oke.

Bash:
[+] Running 7/7
 ✔ vaultwarden 6 layers [⣿⣿⣿⣿⣿⣿]      0B/0B      Pulled                                                                                                                                                                                       12.3s
   ✔ 578acb154839 Pull complete
   ✔ 66d606b036ee Pull complete
   ✔ 79193564b982 Pull complete
   ✔ 9b60180a7faa Pull complete
   ✔ 12f58a7c9a51 Pull complete
   ✔ 44ce7cca8234 Pull complete
[+] Running 1/1
 ✔ Container vaultwarden  Started

e. Config tên miền
- Truy cập admin page của Nginx Proxy Manager bằng cách sử dụng: http://ten-mien:81 (không phải https nhé)
Đăng nhập bằng mail pass mặc định:

Vào trong sẽ yêu cầu đổi pass, nhớ ghi pass ra ngoài nhé.
- Tại menu chọn Hosts -> Proxy Hosts. Thêm host như hình. Sau đó lưu lại.
Xem tệp đính kèm 2181550
Nhớ tick vào "Websockets Support" nhé các thím.
Xem tệp đính kèm 2181551

Truy cập thử vault bằng tên miền. Hiện như hình là oke. Sau đó có thể tạo user đầu tiên và bắt đầu sử dụng.
Xem tệp đính kèm 2181552



Trong các bài tiếp theo, em sẽ hướng dẫn các thím backup, restore vaultwarden và bảo mật 1 phần VPS + hạn chế bruteforce vault bằng firewall.
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
Screenshot 2024-11-18 233630.png

Screenshot 2024-11-18 233826.png


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.
Screenshot 2024-11-18 234336.png

Screenshot 2024-11-18 234540.png


Đế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
Screenshot 2024-11-18 235336.png


Đế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.
Screenshot 2024-11-18 235657.png

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)

Screenshot 2024-11-19 000015.png


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

Screenshot 2024-11-19 000313.png


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.

1731949686271.png


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:
 

Tệp đính kèm

  • 1731949523312.png
    1731949523312.png
    237 KB · Lượt xem: 67
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:
Quá hay cảm ơn bác, để em gim lên bài 1
 
Bonus thêm cái bảng tính tiền của google ko các bác lại bảo phét nhé :byebye: Tiền E2 instance charge tầm gần 7$/155k, nhưng tổng bill thì chỉ hết có 130VND, do phần E2 đã được free nhé :byebye:
Screenshot 2024-11-19 at 09.21.43.png
Screenshot 2024-11-19 at 09.22.02.png
 
Sửa lần cuối:
nếu reg đc oracle thì ngon hơn, chả mất đồng nào
Xem tệp đính kèm 2789388
Oracle tôi cũng đang dùng 1 con 4 core arm 24gb ram này rồi :byebye: Cơ mà làm con này khó hơn nhiều con trên, mà cũng có thể đứt bất cứ lúc nào nên cũng không recommend lắm :byebye: Cơ bản vì tôi bị ban 1 lần rồi, cũng chẳng ai giải thích hay cứu lại gì cho tôi cả :beat_brick:

Còn con kia tuy nó cùi rách tý, nhưng vẫn chạy vaultwarden rất tốt nhé, và ổn định hơn nhiều, tôi xài từng ấy năm chưa thấy downtime hay lỗi vặt gì cả, đồ google mà :byebye: Ban acc hay đổi chính sách cũng không luôn :byebye:
 
Oracle tôi cũng đang dùng 1 con 4 core arm 24gb ram này rồi :byebye: Cơ mà làm con này khó hơn nhiều con trên, mà cũng có thể đứt bất cứ lúc nào nên cũng không recommend lắm :byebye: Cơ bản vì tôi bị ban 1 lần rồi, cũng chẳng ai giải thích hay cứu lại gì cho tôi cả :beat_brick:

Còn con kia tuy nó cùi rách tý, nhưng vẫn chạy vaultwarden rất tốt nhé, và ổn định hơn nhiều, tôi xài từng ấy năm chưa thấy downtime hay lỗi vặt gì cả, đồ google mà :byebye: Ban acc hay đổi chính sách cũng không luôn :byebye:
thế chắc thím xui thế nào, đám acc 3 năm của mình vẫn sống nguyên :v
 
Ae host vault chú ý nên backup thường xuyên nhé :D
Mình dùng rclone backup lên onedrive 1 ngày 1 lần cho yên tâm.
Chứ để nó huỷ gói không lấy lại được dữ liệu thì nhục lắm :D
Giờ không dùng vault nữa nhưng vẫn còn giữ config để anh em tham khảo. Backup container sử dụng của ttionya/vaultwarden-backup.

YAML:
version: '3.4'

services:

  vaultwarden:
    image: vaultwarden/server:latest
    restart: always
    environment:
      SIGNUPS_ALLOWED: 'true'
      ADMIN_TOKEN: ${VAULTWARDEN_ADMIN_TOKEN}
      INVITATIONS_ALLOWED: 'true'
      DOMAIN: ${DOMAIN}
      SHOW_PASSWORD_HINT: 'true'
      SMTP_HOST: ${SMTP_HOST}
      SMTP_FROM: ${SMTP_FROM}
      SMTP_FROM_NAME: ${SMTP_FROM_NAME}
      SMTP_PORT: ${SMTP_PORT}
      SMTP_SECURITY: ${SMTP_SECURITY}
      SMTP_USERNAME: ${SMTP_USERNAME}
      SMTP_PASSWORD: ${SMTP_PASSWORD}
      LOG_FILE: /data/log/vaultwarden.log
    volumes:
      - vaultwarden-data:/data/
      - /home/mydata/vaultwarden/log/:/data/log/

  backup:
    image: ttionya/vaultwarden-backup:latest
    restart: always
    environment:
      RCLONE_REMOTE_NAME: 'BitwardenBackup'
      RCLONE_REMOTE_DIR: '/BitwardenBackup/'
    #   RCLONE_GLOBAL_FLAG: ''
      CRON: '27 * * * *'
      ZIP_ENABLE: 'TRUE'
      ZIP_PASSWORD: ${BACKUP_PASSWORD}
      ZIP_TYPE: 'zip'
      BACKUP_FILE_SUFFIX: '%Y%m%d'
      BACKUP_KEEP_DAYS: 7
    #   PING_URL: ''
    #   MAIL_SMTP_ENABLE: 'FALSE'
    #   MAIL_SMTP_VARIABLES: ''
    #   MAIL_TO: ''
    #   MAIL_WHEN_SUCCESS: 'TRUE'
    #   MAIL_WHEN_FAILURE: 'TRUE'
    #   TIMEZONE: 'UTC'
    volumes:
      - vaultwarden-data:/bitwarden/data/
      - vaultwarden-rclone-data:/config/
    #   - /path/to/env:/.env

volumes:
  vaultwarden-data:
    # Specify the name of the volume where you save the vaultwarden data,
    # use vaultwarden-data for new users
    # and bitwardenrs-data for migrated users
    name: vaultwarden-data
    # name: bitwardenrs-data
  vaultwarden-rclone-data:
    external: true
    # Specify the name of the volume where you save the rclone configuration,
    # use vaultwarden-rclone-data for new users
    # and bitwardenrs-rclone-data for migrated users
    name: vaultwarden-rclone-data
    # name: bitwardenrs-rclone-data

networks:
  default:
    external: true
    name: npm

File env
YAML:
VAULTWARDEN_ADMIN_TOKEN='xxx'
BACKUP_PASSWORD='xxx'
DOMAIN='https:/xxx'
SMTP_HOST='xxx'
SMTP_FROM='xxx'
SMTP_FROM_NAME='xxx'
SMTP_PORT='xxx'
SMTP_SECURITY='xxx'
SMTP_USERNAME='xxx'
SMTP_PASSWORD='xxx'
 
Ae host vault chú ý nên backup thường xuyên nhé :D
Mình dùng rclone backup lên onedrive 1 ngày 1 lần cho yên tâm.
Chứ để nó huỷ gói không lấy lại được dữ liệu thì nhục lắm :D
Giờ không dùng vault nữa nhưng vẫn còn giữ config để anh em tham khảo. Backup container sử dụng của ttionya/vaultwarden-backup.

YAML:
version: '3.4'

services:

  vaultwarden:
    image: vaultwarden/server:latest
    restart: always
    environment:
      SIGNUPS_ALLOWED: 'true'
      ADMIN_TOKEN: ${VAULTWARDEN_ADMIN_TOKEN}
      INVITATIONS_ALLOWED: 'true'
      DOMAIN: ${DOMAIN}
      SHOW_PASSWORD_HINT: 'true'
      SMTP_HOST: ${SMTP_HOST}
      SMTP_FROM: ${SMTP_FROM}
      SMTP_FROM_NAME: ${SMTP_FROM_NAME}
      SMTP_PORT: ${SMTP_PORT}
      SMTP_SECURITY: ${SMTP_SECURITY}
      SMTP_USERNAME: ${SMTP_USERNAME}
      SMTP_PASSWORD: ${SMTP_PASSWORD}
      LOG_FILE: /data/log/vaultwarden.log
    volumes:
      - vaultwarden-data:/data/
      - /home/mydata/vaultwarden/log/:/data/log/

  backup:
    image: ttionya/vaultwarden-backup:latest
    restart: always
    environment:
      RCLONE_REMOTE_NAME: 'BitwardenBackup'
      RCLONE_REMOTE_DIR: '/BitwardenBackup/'
    #   RCLONE_GLOBAL_FLAG: ''
      CRON: '27 * * * *'
      ZIP_ENABLE: 'TRUE'
      ZIP_PASSWORD: ${BACKUP_PASSWORD}
      ZIP_TYPE: 'zip'
      BACKUP_FILE_SUFFIX: '%Y%m%d'
      BACKUP_KEEP_DAYS: 7
    #   PING_URL: ''
    #   MAIL_SMTP_ENABLE: 'FALSE'
    #   MAIL_SMTP_VARIABLES: ''
    #   MAIL_TO: ''
    #   MAIL_WHEN_SUCCESS: 'TRUE'
    #   MAIL_WHEN_FAILURE: 'TRUE'
    #   TIMEZONE: 'UTC'
    volumes:
      - vaultwarden-data:/bitwarden/data/
      - vaultwarden-rclone-data:/config/
    #   - /path/to/env:/.env

volumes:
  vaultwarden-data:
    # Specify the name of the volume where you save the vaultwarden data,
    # use vaultwarden-data for new users
    # and bitwardenrs-data for migrated users
    name: vaultwarden-data
    # name: bitwardenrs-data
  vaultwarden-rclone-data:
    external: true
    # Specify the name of the volume where you save the rclone configuration,
    # use vaultwarden-rclone-data for new users
    # and bitwardenrs-rclone-data for migrated users
    name: vaultwarden-rclone-data
    # name: bitwardenrs-rclone-data

networks:
  default:
    external: true
    name: npm

File env
YAML:
VAULTWARDEN_ADMIN_TOKEN='xxx'
BACKUP_PASSWORD='xxx'
DOMAIN='https:/xxx'
SMTP_HOST='xxx'
SMTP_FROM='xxx'
SMTP_FROM_NAME='xxx'
SMTP_PORT='xxx'
SMTP_SECURITY='xxx'
SMTP_USERNAME='xxx'
SMTP_PASSWORD='xxx'
Xịn :love:

Tôi thì dùng mysql, nên backup cũng hơi bựa nhân tý :beat_brick:

Tạo 1 thư mục backup -> tạo file backup.sh

#!/usr/bin/env bash

export $(cat .env | xargs)

DB_USER=${DB_USER}
DB_PASSWORD=${DB_PASSWORD}
DB_NAME=${DB_NAME}
BACKUP_DIR=./
BACKUP_FILE="$BACKUP_DIR/db_backup_$(date +%Y-%m-%d_%H-%M-%S).sql"
# Perform database backup using mysqldump
mysqldump --column-statistics=0 -h$DB_HOST -u $DB_USER -p$DB_PASSWORD --hex-blob $DB_NAME > $BACKUP_FILE

Thêm crontab bằng: crontab -e
0 0 * * 0 cd /home/dev/backup && ./backup.sh && git add . && git commit -m "Add more backup" && git push

Thế là mỗi chủ nhật tôi lại đẩy thêm 1 bản backup dạng .sql lên github / gitlab rồi :byebye: Sql này nhẹ có 100KB nên chứa tẹt :byebye: Khi nào thấy nhiều quá thì lại lên xóa bớt cho mấy anh git đỡ cáu là dc :go:
 
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:
Có cách nào giữ nguyên IP khi stop/start instance không thím :adore: , mỗi lần phải tắt vậy là instance lại đổi IP
 
Có cách nào giữ nguyên IP khi stop/start instance không thím :adore: , mỗi lần phải tắt vậy là instance lại đổi IP
Cái này dùng chùa thì chịu khó thôi thím ạ. :go: Còn dùng VPC network để lấy static ip của nó thì lại ăn phí vào mồm thôi, vì static ip chả thằng nào có cấp free cho bác đâu :gach: giá thì tính ra tầm 10$ 1 tháng, chưa kể có khi nó tính tiền mất dạy, nên thôi, dùng chùa chịu khó thím ạ. Dùng mấy năm nay em cũng tắt có lần à, làm gì đâu mà cần cái này :byebye:

Screenshot 2024-11-29 at 13.59.23.png
 
Cái này dùng chùa thì chịu khó thôi thím ạ. :go: Còn dùng VPC network để lấy static ip của nó thì lại ăn phí vào mồm thôi, vì static ip chả thằng nào có cấp free cho bác đâu :gach: giá thì tính ra tầm 10$ 1 tháng, chưa kể có khi nó tính tiền mất dạy, nên thôi, dùng chùa chịu khó thím ạ. Dùng mấy năm nay em cũng tắt có lần à, làm gì đâu mà cần cái này :byebye:

Xem tệp đính kèm 2806536
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ống kê chủ đề

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