
Tự host Buzz của Block: Không gian cộng tác giữa người và AI
Tìm hiểu cách tự host Block's Buzz trên VPS Linux phía sau Cloudflare. Vận hành không gian làm việc Nostr bảo mật giúp con người và AI cộng tác hiệu quả.
Mục lục
Sự phân mảnh ngữ cảnh là một trở ngại vô cùng khó chịu khi làm việc với nhiều tác nhân AI (AI agent). Với các cuộc hội thoại ngữ cảnh nằm rải rác trên nhiều công cụ khác nhau, cuối cùng bạn phải tự đóng vai trò là một bộ định tuyến thủ công bằng cách sao chép hội thoại từ Claude Code để dán vào Gemini CLI, rồi lại sao chép từ Gemini CLI dán vào Hermes Agent. Trở ngại này còn tăng lên gấp bội khi có thêm các đồng nghiệp là con người trong cùng một nhóm.

Buzz, một không gian làm việc cộng tác nguồn mở, kết nối các nhóm làm việc giữa con người và tác nhân AI vào cùng một môi trường thống nhất. Tại đây, đồng nghiệp và các tác nhân AI chia sẻ chung một lịch sử nhiệm vụ và dự án, chuyển giao công việc cho nhau một cách vô cùng liền mạch.
Block's Buzz là gì? Không gian làm việc cộng tác cùng AI Agent
Buzz là một không gian làm việc cộng tác nguồn mở từ Block (công ty của Jack Dorsey), nơi con người và các tác nhân AI cùng chia sẻ chung các kênh và dự án. Buzz cung cấp các tính năng nổi bật sau:
- Ngữ cảnh chia sẻ: Các kênh là nơi con người và tác nhân AI cộng tác với nhau. Tất cả lịch sử trò chuyện và dự án đều được lưu trữ đầy đủ trong kênh.
- Giao tiếp giữa tác nhân với tác nhân: Các tác nhân AI có thể giao tiếp trực tiếp với nhau, ngay cả trên các thiết bị khác nhau. Một tác nhân có thể @-mention một tác nhân khác để bàn giao công việc hoặc đối chiếu chéo mã nguồn.
- Kích hoạt bằng lượt nhắc (mention-driven): Các tác nhân AI chỉ hoạt động khi được @-mention, nếu không sẽ luôn ở trạng thái tĩnh. Khi được nhắc đến, tác nhân sẽ đọc ngữ cảnh liên quan trong kênh và bắt đầu xử lý.
- Hệ thống danh tính thống nhất: Con người và tác nhân AI sử dụng chung một hệ thống danh tính, được xác thực thông qua các khóa mật mã (cryptographic keys).
- Ủy quyền ra lệnh: Bạn có thể cấp quyền cho các đồng nghiệp là con người để điều khiển tác nhân của mình, cho phép cả nhóm cùng giao việc và tận dụng các trợ lý kỹ thuật số của nhau.
- Máy chủ tự lưu trữ (self-hosted): Vì tự vận hành máy chủ, dữ liệu của bạn hoàn toàn nằm dưới quyền kiểm soát của riêng bạn. Bạn có thể chọn ai được tham gia và tự định nghĩa các quy tắc hoạt động.
Kiến trúc mật mã dựa trên giao thức Nostr của Buzz

- Nostr relay đóng vai trò là máy chủ: Các tin nhắn, quy trình làm việc, kho lưu trữ và các sự kiện khác được ký bằng mật mã, xác thực và lưu trữ trên một máy chủ Nostr relay. Giao thức Nostr hỗ trợ giao tiếp qua WebSockets và REST API một cách tự nhiên.
- Danh tính mật mã thống nhất: Cả con người và tác nhân AI đều xác thực bằng khóa mật mã riêng của mình. Danh tính này nằm hoàn toàn ở phía máy khách (client-side) và không bao giờ lưu trữ trên máy chủ.
- Thành viên tác nhân hạng nhất: Mỗi tác nhân sở hữu danh tính riêng, quyền thành viên kênh và nhật ký kiểm tra (audit trail). Tác nhân kết nối với không gian làm việc thông qua Giao thức Giao tiếp Tác nhân (ACP).
- Kho lưu trữ Git phi tập trung: Kho lưu trữ mã nguồn được lưu trên bộ nhớ đối tượng tương thích với S3, trong khi các tác vụ, pull request và đánh giá mã (code review) được theo dõi trong nhật ký sự kiện của Nostr. Do đó, kho lưu trữ Git của Buzz được lưu trữ trực tiếp trên Nostr relay chứ không phải GitHub.
- Ứng dụng Buzz là một Nostr client: Buzz độc lập với Nostr relay; đây là ứng dụng khách trên máy tính/điện thoại kết nối đến URL của relay.
- Cấu trúc hạ tầng: Cơ sở dữ liệu PostgreSQL xử lý lưu trữ sự kiện và tìm kiếm toàn văn, Redis quản lý hệ thống tin nhắn pub/sub, và MinIO tương thích S3 được dùng làm bộ nhớ lưu trữ tệp đa phương tiện.
Cách tự host Block's Buzz Relay trên máy chủ Linux VPS
0. Điều kiện tiên quyết
- Một máy chủ Linux VPS
- Tên miền đã trỏ về địa chỉ IP máy chủ của bạn
- Docker và Docker Compose plugin
- Tài khoản Cloudflare (gói dịch vụ miễn phí)
Trong hướng dẫn này, chúng ta sẽ chạy Nostr relay trên VPS Ubuntu phía sau một mạng riêng tư của Cách hiển thị riêng tư Hermes Agent với Cloudflare WARP. Cấu trúc hệ thống gồm bốn dịch vụ trong Docker Compose — relay, PostgreSQL, Redis và MinIO — kết hợp với Caddy để hỗ trợ HTTPS.

Hướng dẫn liên quan
Cách hiển thị riêng tư Hermes Agent với Cloudflare WARP
Tìm hiểu cách hiển thị và truy cập an toàn tác nhân Hermes của bạn trên toàn cầu bằng Cloudflare WARP và Zero Trust mà không cần mở cổng tường lửa đến.
8 PHÚT ĐỌC1. Cloudflare DNS và API Token
Tạo Cloudflare API Token
- Nhấp vào biểu tượng người dùng ở góc trên cùng bên phải và chọn mục Profile.
- Nhấp vào mục API Tokens.

- Nhấp vào nút Create Token.
- Chọn sử dụng mẫu Edit zone DNS.
- Cấu hình các thông số cho mẫu như sau:
- Permissions: Zone — DNS — Edit
- Zone Resources: Include — Specific zone —
example.com
- Nhấp chọn Continue to summary.
- Nhấp chọn Create Token.
- Hãy sao chép chuỗi mã thông báo vừa được tạo, vì nó sẽ không hiển thị lại sau khi bạn đóng trang này.
- Kiểm tra xem mã thông báo vừa tạo có hoạt động hay không bằng terminal:
curl "https://api.cloudflare.com/client/v4/user/tokens/verify" -H "Authorization: Bearer YOUR_TOKEN_HERE"
Bản ghi DNS
- Tạo một bản ghi A mới và thiết lập ở trạng thái DNS only.

2. Cài đặt Docker trên Ubuntu
Chạy các lệnh sau trực tiếp trên Ubuntu để thực hiện cài đặt Docker:
# Add Docker's official GPG key and set up the Docker repository
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# Add the official Docker repository
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Update package list
sudo apt update
# Install Docker Engine, Docker Community Edition, and containerd runtime
sudo apt install docker-ce docker-ce-cli containerd.io -y
# Start automatically when the system boots
sudo systemctl enable docker
# Verify docker is installed
docker --version
sudo apt install -y docker-compose-plugin
# Verify the compose plugin is installed
docker compose version
3. Tải mã nguồn (Clone) và cấu hình
git clone https://github.com/block/buzz.git
cd buzz/deploy/compose
cp .env.example .env
nano .env
Chỉnh sửa tệp cấu hình .env theo từng nhóm thông số:
- Cấu hình Domain:
BUZZ_DOMAIN=buzz.pafor.me
RELAY_URL=wss://buzz.pafor.me
BUZZ_PAIRING_RELAY_URL=wss://buzz.pafor.me/pair
BUZZ_MEDIA_BASE_URL=https://buzz.pafor.me/media
BUZZ_MEDIA_SERVER_DOMAIN=buzz.pafor.me
BUZZ_CORS_ORIGINS=https://buzz.pafor.me
- Khóa chủ sở hữu:
RELAY_OWNER_PUBKEYyêu cầu khóa công khai dạng hex dài 64 ký tự của bạn. Hãy tạo một danh tính mới trong ứng dụng máy tính trước ('Create a new identity key' → sao chép mã công khai của bạn, có định dạng npub), sau đó chuyển đổi nó sang dạng hex. - Khóa bí mật (Secrets):
- Tạo các khóa bí mật bằng cách sử dụng công cụ trực tuyến này hoặc chạy lệnh
openssl rand -hex 32(thực hiện bảy lần). - Thay thế mọi chỗ trống
CHANGE_ME:BUZZ_RELAY_PRIVATE_KEY,BUZZ_GIT_HOOK_HMAC_SECRET, mật khẩu Postgres/Redis/Typesense, cũng như khóa truy cập/bí mật của S3. - Việc quên thay đổi các placeholder này là nguyên nhân phổ biến nhất khiến container bị lặp lại quá trình khởi động; hãy kiểm tra lại bằng lệnh
grep CHANGE_ME .env.
- Tạo các khóa bí mật bằng cách sử dụng công cụ trực tuyến này hoặc chạy lệnh
BUZZ_RELAY_PRIVATE_KEY=CHANGE_ME_64_HEX_PRIVATE_KEY
BUZZ_GIT_HOOK_HMAC_SECRET=CHANGE_ME_RANDOM_64_HEX
POSTGRES_PASSWORD=CHANGE_ME_RANDOM_PASSWORD
REDIS_PASSWORD=CHANGE_ME_RANDOM_PASSWORD
TYPESENSE_API_KEY=CHANGE_ME_RANDOM_API_KEY
BUZZ_S3_ACCESS_KEY=CHANGE_ME_RANDOM_ACCESS_KEY
BUZZ_S3_SECRET_KEY=CHANGE_ME_RANDOM_SECRET_KEY
- Cấu hình khác:
- Thêm biến môi trường
CLOUDFLARE_API_TOKENvà gán giá trị API token đã tạo ở bước trước. Việc này là bắt buộc đối với Caddy. - Buzz mặc định mở quyền tự do tham gia — bất kỳ ai biết URL relay của bạn đều có thể xác thực và kết nối. Hãy thiết lập
RELAY_OWNER_PUBKEY,BUZZ_REQUIRE_RELAY_MEMBERSHIP=true, vàBUZZ_REQUIRE_AUTH_TOKEN=trueđể tăng tính bảo mật.
- Thêm biến môi trường
4. Kích hoạt HTTPS với Caddy
Xây dựng hình ảnh Caddy tùy chỉnh kèm theo mô-đun DNS Cloudflare
- Chúng ta thiết lập DNS-01 của Cloudflare cho Caddy. Phương thức DNS-01 hoạt động bằng cách yêu cầu plugin viết một bản ghi TXT
_acme-challenge.buzz.pafor.melên DNS công khai; - Sau đó Let's Encrypt sẽ truy vấn bản ghi này từ internet để xác minh quyền sở hữu tên miền của bạn. Điều này nghĩa là
pafor.mephải là một vùng (zone) công khai trong tài khoản Cloudflare của bạn — không thể chỉ là một hostname nội bộ chỉ tồn tại trong DNS riêng tư của Zero Trust / WARP. Nếubuzz.pafor.mechỉ được phân giải nội bộ và không có vùng công khai, DNS-01 sẽ lỗi và đòi hỏi phương pháp xác thực khác. - Thêm cấu hình sau vào tệp Caddyfile:
{
acme_dns cloudflare {env.CLOUDFLARE_API_TOKEN}
}
- Tạo một tệp Dockerfile.caddy với nội dung sau, tệp này được yêu cầu bởi compose.caddy.yml:
FROM caddy:2-builder AS builder
RUN xcaddy build \
--with github.com/caddy-dns/cloudflare
FROM caddy:2-alpine
COPY --from=builder /usr/bin/caddy /usr/bin/caddy
- Chỉnh sửa
compose.caddy.ymlđể sử dụng image với mô-đun Cloudflare và gán API token của Cloudflare:
services:
relay:
ports: !reset []
caddy:
build:
context: .
dockerfile: Dockerfile.caddy
image: buzz-caddy:cloudflare
depends_on:
relay:
condition: service_healthy
environment:
BUZZ_DOMAIN: ${BUZZ_DOMAIN:?set BUZZ_DOMAIN}
CLOUDFLARE_API_TOKEN: ${CLOUDFLARE_API_TOKEN:?set CLOUDFLARE_API_TOKEN}
ports:
- "${CADDY_HTTP_PORT:-80}:80"
- "${CADDY_HTTPS_PORT:-443}:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile:ro
- buzz-caddy-data:/data
- buzz-caddy-config:/config
restart: unless-stopped
networks:
- buzz-net
volumes:
buzz-caddy-data:
labels:
com.buzz.volume: caddy-data
buzz-caddy-config:
labels:
com.buzz.volume: caddy-config
Khởi động các Docker container
docker compose -f compose.yml -f compose.caddy.yml up -d
#Check the Docker status
docker compose ps

Mở trình duyệt web của bạn và truy cập http://buzz.pafor.me để kiểm tra xem relay đã hoạt động bình thường chưa.

Bước 5: Thiết lập sao lưu tự động ngay từ ngày đầu
mkdir -p /buzz_backups
crontab -e
Cài đặt cron job sao lưu cơ sở dữ liệu hàng đêm:
0 3 * * * cd /home/<user>/buzz/deploy/compose && docker compose exec -T postgres pg_dump -U buzz buzz > /buzz_backups/buzz-$(date +\%Y\%m\%d).sql
Lưu ý: Hãy coi BUZZ_RELAY_PRIVATE_KEY là vĩnh viễn. Các sự kiện được ký bằng khóa này sẽ bị lỗi xác thực nếu khóa bị thay đổi; một cơ sở dữ liệu được khôi phục nhưng kết hợp với một khóa mới tạo sẽ không được công nhận là cùng một relay.
Thiết lập Buzz Desktop Client và Danh tính Nostr
Tải ứng dụng khách Buzz cho máy tính từ https://github.com/block/buzz/releases và cài đặt. Điền thông tin hồ sơ cho đến khi bạn tới màn hình "Join or create a community".

Nhấp vào "Join a community" và sao chép khóa công khai của bạn.

Chạy lệnh sau trên VPS để tự thêm mình làm thành viên đầu tiên:
docker compose exec relay buzz-admin add-member --pubkey npub1yourkeyhere
Nhập wss://buzz.pafor.me vào mục URL cộng đồng và nhấn "Next".

Nhập tên hiển thị và nhấn nút Next.

Kênh (Channels) và Tác nhân
Kênh là các nhóm nhiệm vụ hoặc nhóm dự án. Hãy tạo một kênh riêng cho từng nhiệm vụ oder dự án và mời mọi người cùng các AI agent tham gia.
Mọi thông tin trong kênh được chia sẻ hoàn toàn tự động, loại bỏ việc phải giải thích lại yêu cầu cho từng thành viên một. Mỗi tác nhân AI có thể được gọi tên bằng ký tự @ và sẽ đọc các tin nhắn liên quan để xử lý. Ngoài ra, các tác nhân AI cũng có thể @ nhắc đến nhau.
Hãy thử gửi tin nhắn trực tiếp (DM) cho một tác nhân AI đã cấu hình sẵn

Hãy thử tạo một kênh mới và thêm một số tác nhân AI vào kênh




Kích hoạt môi trường chạy (Runtimes) của tác nhân
Môi trường chạy mặc định dựa trên cơ chế tự phát hiện tệp chạy nhị phân (chẳng hạn như hermes-acp) trong các thư mục chuẩn như ~/.local/bin. Nếu một công cụ được cài đặt ở một vị trí khác chuẩn, Buzz sẽ không thể tìm thấy nó.
Đối với Kimi Code, mã định danh tác nhân là kimi, và Buzz sẽ tìm kiếm tệp nhị phân tại ~/.local/bin/kimi. Tạo một liên kết tượng trưng (symbolic link) sẽ giải quyết được vấn đề:
ln -s kimi-cli /Users/<user>/.local/bin/kimi
Giờ đây, Kimi Code sẽ xuất hiện trong danh sách Runtimes của tác nhân.

Dự án và Kho lưu trữ
Kích hoạt tính năng 'Projects' trong Settings → Experiments trước tiên:

Hiện tại, dự án phải được tạo thông qua công cụ buzz-cli (tuy nhiên tính năng tạo dự án trực tiếp trên giao diện người dùng đang được lên kế hoạch cho phiên bản tiếp theo).
Cài đặt buzz-cli
Chạy các lệnh sau để cài đặt buzz-cli trên máy chủ VPS:
sudo apt install cargo
cd ~/buzz
cargo install --path crates/buzz-cli
echo 'export PATH="$HOME/.cargo/bin:$PATH"' >> ~/.bashrc && source ~/.bashrc
Tạo một cặp khóa riêng tư và khóa công khai bằng công cụ trực tuyến hoặc thông qua buzz-cli. Cặp khóa này là danh tính đại diện của buzz-cli trên Nostr relay.
docker run --rm --entrypoint /usr/local/bin/buzz-admin ghcr.io/block/buzz:main generate-key
# Use the generated Public Key
docker compose exec relay buzz-admin add-member --pubkey generated_Public_key
Cấu hình giao diện dòng lệnh (CLI):
# Copy the Secret key as the BUZZ_PRIVATE_KEY
echo 'export BUZZ_PRIVATE_KEY="nsec1..."' >> /home/<user>/.bashrc
echo 'export BUZZ_RELAY_URL="wss://buzz.pafor.me"' >> /home/<user>/.bashrc
Chạy lệnh sau để xác minh rằng buzz-cli đã được cấu hình chính xác:
buzz channels list

Tạo một dự án bằng buzz-cli
# --channel refers to the UUID of the channel
buzz repos create --id TestKOA --name 'Display Name' --channel "bd92b3d1-8fac-441c-a9ac-2b2f3aac5c5b"
Một dự án chỉ có thể xóa bởi chủ sở hữu. Do dự án "Display Name" được tạo bằng buzz-cli (vốn chưa hỗ trợ lệnh xóa), nó sẽ không thể xóa theo cách này.
Mở lại ứng dụng Buzz trên máy tính để kiểm tra xem dự án đã được tạo thành công hay chưa.

Khi dự án xuất hiện trong phần Projects, bạn có thể dễ dàng thêm nhiều dự án khác bằng cách nhấn nút "+" ở góc trên bên phải.

Đưa vào các kho lưu trữ Git hiện có
Cài đặt git-credential-nostr trên thiết bị chứa các kho Git của bạn. Công cụ này yêu cầu git phiên bản 2.46 trở lên và bộ công cụ Rust. Hãy tham khảo tài liệu hướng dẫn Readme này:
cargo install --path crates/git-credential-nostr
Siết chặt cơ chế bảo mật bằng cách cấu hình git-credential-nostr để cấp quyền truy cập qua Buzz relay:
# 1. Register the helper and enable per-path credentials.
git config --global credential.helper nostr
git config --global credential.useHttpPath true
# 2. Store your nsec in a key file (must be 0600). Replace "nsec1..." with your private key
mkdir -p ~/.nostr
echo "nsec1..." > ~/.nostr/key && chmod 600 ~/.nostr/key
git config --global nostr.keyfile ~/.nostr/key
Tạo một kho lưu trữ mới trên Buzz relay:
buzz repos create --id koa-email-routing --name "KOA Email Routing" --clone "https://buzz.pafor.me/git/<pub_key>/koa-email-routing" --nostr-relay "wss://buzz.pafor.me"
Trong lần git push đầu tiên, bạn sẽ gặp lỗi remote: missing Authorization header. Để giải quyết lỗi này, bạn cần liên kết ID kho lưu trữ với một kênh của Buzz, vì quyền ghi Git (ACL) được quản lý dựa trên danh sách thành viên của kênh:
buzz repos bind --id koa-email-routing --channel <CHANNEL_UUID>
# push the code again
git push
Khi kiểm tra dự án trên ứng dụng Buzz máy tính, bạn có thể thấy lỗi hiển thị do ứng dụng yêu cầu git 2.46 trở lên — việc khởi chạy trực tiếp ứng dụng đôi khi nhận diện sai phiên bản Git cũ hơn hệ thống:

Hãy xuất biến PATH bằng lệnh launchctl setenv PATH "/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin" trong cấu hình shell của bạn và khởi động ứng dụng Buzz trực tiếp từ terminal. Tham khảo lỗi này để biết thêm chi tiết.
open -a Buzz
Kiểm tra lại mục Projects trên ứng dụng Buzz, thông tin chi tiết của kho lưu trữ hiện đã được tải lên đầy đủ.

Đồng bộ hóa các tác nhân AI với ứng dụng di động Buzz bằng mã QR
Việc ghép đôi với ứng dụng di động Buzz yêu cầu giao thức HTTPS bảo mật và dịch vụ buzz-pair-relay mặc định sẽ không khởi chạy trên VPS.
cd ~/buzz
cargo install --path crates/buzz-pair-relay
Thêm khối cấu hình sau vào tệp compose.yml để kích hoạt dịch vụ buzz-pair-relay:
pair:
image: ${BUZZ_IMAGE:-ghcr.io/block/buzz:main}
entrypoint: ["/usr/local/bin/buzz-pair-relay"]
environment:
BUZZ_PAIR_RELAY_BIND_ADDR: 0.0.0.0:5000
ports:
- "${BUZZ_PAIR_RELAY_PORT:-5000}:5000"
restart: unless-stopped
networks:
[buzz-net]
Thêm BUZZ_PAIRING_RELAY_URL và BUZZ_PAIR_RELAY_PORT vào tệp cấu hình .env:
BUZZ_PAIRING_RELAY_URL=wss://buzz.pafor.me/pair
BUZZ_PAIR_RELAY_PORT=5000
Truy cập mục 'Mobile' trong phần cài đặt của Buzz desktop:

Nhấp vào "Start pairing" — một mã QR sẽ hiển thị; hãy dùng ứng dụng Buzz trên điện thoại để quét mã này. Quá trình ghép đôi hoàn tất sau khi bạn nhấn "Code Match".

Các tác nhân AI trên ứng dụng di động Buzz chỉ có thể sử dụng nếu chúng đang chạy đồng thời trên ứng dụng Buzz máy tính. Thiết bị máy tính của bạn phải luôn hoạt động để các tác nhân AI có thể xử lý yêu cầu.

Lời kết
Mặc dù Buzz vẫn còn quá sớm để áp dụng vào các môi trường sản xuất quy mô lớn do tồn tại một số lỗi và giới hạn về giao diện, đây thực sự là một trải nghiệm đột phá cho các đội nhóm nhỏ và các nhà phát triển độc lập. Nó mở ra một tầm nhìn chân thực về không gian làm việc ưu tiên AI và mang tính cộng tác cao trong tương lai.
Tài liệu tham khảo
Bài viết liên quan

AI & Tác tử
Kết nối DeepSeek Harness với Buzz qua Gateway Nostr
Tích hợp DeepSeek Harness với Block Buzz bằng cầu nối Nostr. Thiết lập xác thực NIP-42, truyền phát tin nhắn chỉnh sửa tại chỗ và workspace đa tác nhân AI.
14 PHÚT ĐỌC
Du lịch
Tự host kế hoạch du lịch của bạn với TREK và Docker
Tìm hiểu cách triển khai TREK với Docker, bảo mật qua Cloudflare R2 và Caddy, đồng thời sử dụng các tác nhân AI qua MCP để lập kế hoạch du lịch liền mạch.
31 PHÚT ĐỌC
AI & Tác tử
Cách kỹ năng Agent AI thay thế script khởi tạo ứng dụng Nuxt
Khởi tạo Nuxt trên Cloudflare Workers dễ dàng. Tìm hiểu lý do tại sao chúng tôi thay thế shell script bằng kỹ năng Agent AI và cách cài đặt qua npx skills.
6 PHÚT ĐỌC
Bài trước
Tự host kế hoạch du lịch của bạn với TREK và Docker
Tìm hiểu cách triển khai TREK với Docker, bảo mật qua Cloudflare R2 và Caddy, đồng thời sử dụng các tác nhân AI qua MCP để lập kế hoạch du lịch liền mạch.

Bài sau
Cách đồng bộ vault Obsidian qua các thiết bị an toàn
Học cách đồng bộ hóa an toàn vault Obsidian qua các thiết bị bằng cách tự host Synch và Ignis trong mạng riêng Cloudflare Zero Trust cực kỳ bảo mật.