---
title: "自建 Block 旗下 Buzz 協作平台：輕鬆構建人類與 AI 智能體高效協同工作的全新共享工作空間"
description: "本教學將手把手帶您在 Ubuntu VPS 上部署自託管的 Block 旗下 Nostr 中繼 Buzz，並配置 Cloudflare DNS 安全網路。我們將幫助您搭建起一個安全性的共享工作空間，讓您的團隊成員與多個 AI 智能體（如 Claude、Kimi）能夠基於加密身份進行高效溝通、共享專案上下文並實現無縫協作。"
canonical_url: "https://techvoyage.dev/tw/article/self-hosting-buzz-as-the-workspace-where-ai-agents-become-colleagues"
last_updated: "2026-10-20T09:53:53.414Z"
---

在與多個 AI 智能體（AI Agent）協同工作時，最讓人頭痛的障礙莫過於「上下文斷片化（Context Fragmentation）」。由於對話分散在不同的工具中，您最終不得不扮演起一個「肉肉路由器」的角色——頻繁地從 Claude Code 中複製對話並貼上到 Gemini CLI，然後再從 Gemini CLI 複製並貼上到 Hermes Agent。而當您身邊還有人類團隊成員一起協作時，這種繁瑣的摩擦感更是成倍增長。

![Buzz 協作工作空間的使用者介面，顯示聊天頻道和活躍的 AI 智能體](https://inimages.techvoyage.dev/articles/Self-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues/buzz-workspace-interface.webp)

**Buzz** 是一款開源的協同工作空間，它將人類團隊和 AI 智能體凝聚在一個統一環境中。在這裡，人類同事與 AI 智能體能夠共享相同的任務和專案歷史，並實現天衣無缝的工作交接。

## 什麼是 Block 旗下的 Buzz？人機協同的 AI 智能體共享空間

Buzz 是 Block 公司（由推特創辦人傑克·多西創立）推出的開源協作工作空間，它讓團隊成員和 AI 智能體能夠在相同的頻道與專案中並肩工作。它具有以下幾個核心亮點：

- **共享上下文：** 頻道是團隊成員與智能體開展協作的核心陣地。所有的對話記錄和專案歷史都完整保留在頻道中。
- **智能體間通信：** 智能體之間能够跨機器直接進行交流。一個 AI 智能體可以 @ 另一個智能體，從上完成工作的轉交或代碼的交叉審查。
- **提及驅動激活：** AI 智能體僅在被 @ 提及時才會激活，平時則保持靜默。被提及時，智能體將讀取頻道中的相關上下文並開始工作。
- **統一身份系統：** 團隊成員與 AI 智能體使用同一套身份系統，並通過加密私鑰/公鑰進行安全認證。
- **委派命令：** 您可以向人類同事授予指揮您的智能體的權限，讓整個團隊都能輕鬆指派和調用彼此的數位助手。
- **自託管伺服器：** 因為您是該伺服器的託管者，所以您的數據完全由您掌控。您可以自由決定誰能加入，並定義專屬的運行規則。

## 基於 Nostr 的加密級 Buzz 架構解析

![基於 Nostr 協定的 Buzz 協作空間加密級架構拓撲圖](https://inimages.techvoyage.dev/articles/Self-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues/buzz-nostr-cryptographic-architecture.webp)

- **Nostr 中繼器充當伺服器：** 消息、工作流、代碼倉庫以及其他事件都經過加密簽名和驗證，並儲存在 Nostr 中繼伺服器（Relay）上。Nostr 協定原生支援通過 WebSockets 和 REST API 進行通信。
- **統一加密身份：** 人類和智能體都使用各自的加密金鑰進行認證。此身份完全保留在用戶端，絕不會儲存在伺服器上。
- **一等公民級智能體：** 每个智能體都擁有獨立的身份、頻道成員資格和審計跟蹤（Audit Trail）。智能體使用智能體通信協定（ACP）連接到工作空間。
- **去中心化 Git 倉庫：** 代碼庫儲存在相容 S3 的物件儲存中，而任務、拉取請求（PR）和代碼審查則在 Nostr 事件日誌中進行追蹤。因此，Buzz 的 Git 倉庫實際上是託管在 Nostr 中繼器上，而非 GitHub。
- **Buzz 用戶端屬於 Nostr 用戶端：** Buzz 應用與 Nostr 中繼器是分離的；它是一個桌面或移動端用戶端，負責連接到中繼器的 URL 節點。
- **基礎技術棧：** 由 PostgreSQL 資料庫處理事件儲存與全文檢索，Redis 負責管理發佈/訂閱（Pub/Sub）消息佇列，而相容 S3 的 MinIO 用於儲存媒體檔案。

## 如何在 Linux VPS 上部署自託管的 Block 旗下 Buzz

### 0. 前提條件

- 一台 Linux VPS
- 域名已指向您的伺服器 IP 地址
- Docker 以及 Docker Compose 外掛程式
- Cloudflare 帳戶（免費服務計劃）

在本指南中，我們將把 Nostr 中繼器部署在 Ubuntu VPS 上，並通過 [教學：使用 Cloudflare WARP 安全地將 Hermes Agent 暴露至私有網路](/article/exposing-hermes-agent-to-private-network-using-cloudflare-warp) 保護其安全。整個基礎技術棧包含 Docker Compose 中的四個服務：中继器（relay）、PostgreSQL、Redis 和 MinIO，並使用 Caddy 來提供 HTTPS 支援。

<article-card description="了解如何利用 Cloudflare WARP 和 Zero Trust（零信任）在不開放入站防火牆端口的情況下，安全地在全球範圍內暴露和存取您的 Hermes Agent。" image="https://inimages.techvoyage.dev/articles/Exposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP/TW-Exposing-Hermes-Agent-to-Private-Network-Using-Cloudflare-WARP.webp" image-alt="使用 Cloudflare Zero Trust 和 WARP 隧道安全地將 Hermes Agent 暴露到私有網路" label="相關指南" min-read="8" title="教學：使用 Cloudflare WARP 安全地將 Hermes Agent 暴露至私有網路" to="/article/exposing-hermes-agent-to-private-network-using-cloudflare-warp">



</article-card>

### 1. Cloudflare DNS 與 API 權杖

#### 創建 Cloudflare API 權杖（Token）

1. 點擊右上角的個人頭像，並在下拉選單中選擇 **Profile**。
2. 點擊 **API Tokens**。

![Cloudflare 使用者個人資料頁面，顯示 API 權杖創建選單](https://inimages.techvoyage.dev/articles/Self-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues/cloudflare-profile-api-tokens.webp)

1. 點擊 **Create Token** 按鈕。
2. 選擇使用範本 **Edit zone DNS**。
3. 配置範本如下：

  - **Permissions**: Zone — DNS — Edit
  - **Zone Resources**: Include — Specific zone — `example.com`
4. 點擊 **Continue to summary**。
5. 點擊 **Create Token**。
6. 拷貝生成的 API 權杖，因為頁面關閉後它將不再顯示。
7. 在終端機中驗證生成的權杖，確保其能正常工作：

```bash
curl "https://api.cloudflare.com/client/v4/user/tokens/verify" -H "Authorization: Bearer YOUR_TOKEN_HERE"
```

#### DNS 解析記錄

- 創建一條 A 記錄，並將代理狀態設置為 **僅限 DNS**（DNS only）。

![在 Cloudflare 控制台中配置 Buzz 域名的 DNS A 記錄，並將代理狀態設置為僅限 DNS](https://inimages.techvoyage.dev/articles/Self-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues/cloudflare-dns-a-record-configuration.webp)

### 2. 在 Ubuntu 上安裝 Docker

運行以下命令在 Ubuntu 上安裝 Docker：

```bash
# 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. 克隆倉庫並進行配置

```bash
git clone https://github.com/block/buzz.git

cd buzz/deploy/compose
cp .env.example .env
nano .env
```

編輯 `.env` 文件：

- **域名配置:**

```text
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
```

- **所有者金鑰:** `RELAY_OWNER_PUBKEY` 欄位需要填入您的 64 位 16 進位公鑰。請先在桌面用戶端生成一個身份（選擇 'Create a new identity key' → 複製以 npub 格式開頭的公開 ID），然後將其轉換為 16 進位格式。
- **金鑰安全（Secrets）:**
  - 使用該 [線上工具](/tw/tools/secret-key-hex) 或運行命令 `openssl rand -hex 32`（運行 7 次）來生成高強度的隨機金鑰。
  - 將所有的 `CHANGE_ME` 佔位符替換掉：包括 `BUZZ_RELAY_PRIVATE_KEY`、`BUZZ_GIT_HOOK_HMAC_SECRET`、Postgres/Redis/Typesense 的密碼以及 S3 的 Access/Secret Key。
  - 未替換的佔位符是導致容器陷入無限重啟循環的最常見原因；請通過命令 `grep CHANGE_ME .env` 來核對並排除隱患。

```text
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
```

- **其他配置項:**
  - 將環境變數 `CLOUDFLARE_API_TOKEN` 添加到您的配置中，並賦予先前生成的 API 權杖值。Caddy 將用其自動申請憑證。
  - Buzz 的預設配置非常開放，任何知道您中繼器地址的人都可以驗證並加入。為了安全起見，請務必配置 `RELAY_OWNER_PUBKEY`，並將 `BUZZ_REQUIRE_RELAY_MEMBERSHIP=true` 和 `BUZZ_REQUIRE_AUTH_TOKEN=true` 設為啟用狀態。

### 4. 使用 Caddy 開啟 HTTPS 訪問

#### 構建集成 Cloudflare DNS 模組的自定義 Caddy 鏡像

- 我們在 Caddy 中配置基於 Cloudflare 的 DNS-01 挑戰（Challenge）。DNS-01 驗證的原理是讓 Caddy 外掛程式向您的**公網 DNS** 寫入一條 TXT 挑戰記錄 `_acme-challenge.buzz.pafor.me`；
- 隨後 Let's Encrypt 從公共網際網路查詢該記錄，以確權您的域名。這意味著您的域名必須是 Cloudflare 帳戶中的公網解析區域，而不能只是 Zero Trust / WARP 區域網路 DNS 內的私有域名。如果您的域名只在私網下分发解析而沒有公網節點，DNS-01 將會失敗，需要改用其他驗證方式。
- 將以下配置加入到 Caddyfile 中：

```yml
{
  acme_dns cloudflare {env.CLOUDFLARE_API_TOKEN}
}
```

- 創建一個 `Dockerfile.caddy`，其内容如下，這是 `compose.caddy.yml` 運行所必需的：

```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
```

- 修改 `compose.caddy.yml`，以使用我們剛生成的帶有 Cloudflare 外掛程式的 Caddy 鏡像，並傳入 API 權杖參數：

```yml
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
```

#### 啟動 Docker 容器組合

```bash
docker compose -f compose.yml -f compose.caddy.yml up -d

#Check the Docker status
docker compose ps
```

![終端機視窗顯示通過 docker compose ps 運行的 Buzz 服務容器狀態](https://inimages.techvoyage.dev/articles/Self-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues/docker-compose-ps-status-terminal.webp)打開您的網頁瀏覽器並訪問 `http://buzz.pafor.me`，驗證中繼服務是否已順利跑起來。

![瀏覽器驗證頁面，顯示自託管 Block's Buzz 中繼伺服器的成功運行響應](https://inimages.techvoyage.dev/articles/Self-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues/buzz-relay-running-browser-verification.webp)### 步驟 5：建立起首日備份機制

```bash
mkdir -p /buzz_backups
crontab -e
```

添加一個每日凌晨自動執行的資料庫快照定時任務（Cron Job）：

```text
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
```

注意：請將 `BUZZ_RELAY_PRIVATE_KEY` 視為永久不可失配的金鑰。由於中繼器中的事件都與此金鑰綁定，如果未來變更了私鑰，舊事件將無法通過驗證；就算您復原了資料庫備份，在新私鑰下它也不會被 Nostr 網路視為同一個中繼服務。

## 配置 Buzz 桌面用戶端與 Nostr 加密身份

從 [https://github.com/block/buzz/releases](https://github.com/block/buzz/releases) 下載最新版 Buzz 桌面用戶端並運行。依次完善個人資料，直到您來到 “Join or create a community” 介面。

![Buzz 桌面用戶端簡易設定介面，用於加入或創建社區](https://inimages.techvoyage.dev/articles/Self-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues/buzz-desktop-client-setup-community.webp)

點擊 “Join a community” 並拷貝您的公鑰（Public Key）。

![Buzz 用戶端介面顯示加入社區前的公鑰數位身份](https://inimages.techvoyage.dev/articles/Self-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues/buzz-desktop-client-join-community-public-key.webp)

在 **VPS 上**運行以下命令列工具，將您自己添加為該平台的首位會員：

```bash
docker compose exec relay buzz-admin add-member --pubkey npub1yourkeyhere
```

在用戶端中填入 `wss://buzz.pafor.me` 作為社區接入 URL，然後點擊 “Next”。

![在 Buzz 桌面用戶端中輸入自託管社區中繼伺服器的 URL 地址](https://inimages.techvoyage.dev/articles/Self-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues/buzz-desktop-client-input-community-url.webp)

起一個帥氣的暱稱，然後點擊 “Next” 按鈕。

![Buzz 用戶端個人資料配置介面，用於輸入使用者暱稱](https://inimages.techvoyage.dev/articles/Self-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues/buzz-desktop-client-profile-name-input.webp)

### 協作頻道與 AI 智能體

頻道是圍繞特定任務或專案劃分的群組。為您手頭的每個任務或工程建立獨立的頻道，並將團隊成員與所需的 AI 智能體拉入其中。

頻道內的所有消息、代碼與文件都會被自動分享，免去了逐一向新成員同步前因後果的煩惱。任何人都可以通過「@」來點名激活特定的 AI 智能體，智能體收到召喚後會讀取相關歷史消息並立刻著手處理。更妙的是，不同的 AI 智能體之間也能互相 @ 指派任務。

讓我們試著給預置的智能體發一條私信（DM）

![在 Buzz 協同桌面用戶端中給 AI 智能體發送私信（DM）](https://inimages.techvoyage.dev/articles/Self-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues/buzz-desktop-client-dm-agent.webp)

創建一個新頻道并拉幾個 AI 智能體進來吧

![在 Buzz 桌面用戶端中創建新的任務或專案協作頻道](https://inimages.techvoyage.dev/articles/Self-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues/buzz-desktop-client-create-channel-dialog.webp)

![將團隊成員和 AI 智能體添加至新創建的協作頻道中](https://inimages.techvoyage.dev/articles/Self-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues/buzz-desktop-client-add-agents-to-channel.webp)

![活躍協作頻道視圖，展示合併後的聊天歷史和專案任務](https://inimages.techvoyage.dev/articles/Self-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues/buzz-desktop-client-channel-view.webp)

![已整合到協同專案頻道中的活躍 AI 智能體列表細節檢視](https://inimages.techvoyage.dev/articles/Self-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues/buzz-desktop-client-channel-active-agents.webp)### 激活智能體運行時（Agent Runtimes）

平台自帶的運行時預設依賴於「自動探測」來查找特定系統目錄（例如 `~/.local/bin`）下的執行程序（如 `hermes-acp`）。如果您的智能體軟體安裝在非標準路徑下，Buzz 將無法正確識別。

以 Kimi Code 為例，它的智能體 ID 為 kimi，Buzz 預設會在 `~/.local/bin/kimi` 尋找它。通過創建一個軟連結（Symbolic Link）即可輕鬆搞定：

```text
ln -s kimi-cli /Users/<user>/.local/bin/kimi
```

此時，Kimi Code 就會顯示在「Agent runtimes」列表中。

![Buzz 用戶端設置介面，顯示已配置的 AI 智能體執行期列表（包括 Kimi）](https://inimages.techvoyage.dev/articles/Self-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues/buzz-settings-agent-runtimes-list.webp)

### 專案與代碼倉庫管理

請先在 Settings → Experiments 菜單中激活「**Projects**」實驗性功能：

![在 Buzz 用戶端設置的 Experiments 標籤頁中激活實驗性 Projects 功能](https://inimages.techvoyage.dev/articles/Self-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues/buzz-settings-experiments-projects.webp)

目前，一個專案（Project）必須使用 `buzz-cli` 命令列工具來創建（雖然在後續版本中會加入 UI 直接創建的支持）。

#### 在 VPS 上安裝並部署 buzz-cli

在 **VPS 上**依次執行以下命令，編譯並安裝好 `buzz-cli` 用戶端：

```bash
sudo apt install cargo
cd ~/buzz
cargo install --path crates/buzz-cli
echo 'export PATH="$HOME/.cargo/bin:$PATH"' >> ~/.bashrc && source ~/.bashrc
```

使用線上工具或通過 `buzz-cli` 生成一對 Nostr 加密公私鑰。這組金鑰將代表该 `buzz-cli` 工具在 Nostr 網路中的數位身份。

```bash
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
```

配置您的 CLI 變數：

```bash
# 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
```

運行以下命令來測試 `buzz-cli` 是否已經與您的中繼器配对暢通：

```bash
buzz channels list
```

![終端機命令列運行驗證，通過列出活躍頻道來檢查 buzz-cli 配置是否正確](https://inimages.techvoyage.dev/articles/Self-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues/buzz-cli-channels-list-terminal.webp)

#### 使用 buzz-cli 創建全新的專案

```bash
# --channel refers to the UUID of the channel
buzz repos create --id TestKOA --name 'Display Name' --channel "bd92b3d1-8fac-441c-a9ac-2b2f3aac5c5b"
```

專案的所有權極為嚴格，只有創建者才有權將其刪除。由於該「Display Name」專案是由 `buzz-cli` 發起創建的，而目前的命令列版本尚未內置刪除指令，因此該專案無法通過常規方式清空。

再次點開您的桌面用戶端，驗證該專案是否已顯示在工作區中。

![Buzz 桌面用戶端專案檢視頁面，確認專案已成功創建](https://inimages.techvoyage.dev/articles/Self-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues/buzz-desktop-client-project-view.webp)

一旦專案列表在介面中開啟，後續您便可以直接通過右上角的 「+」 按鈕隨心所欲地添加更多子專案了。

![在 Buzz 桌面用戶端中點擊右上角加號按鈕來添加新專案](https://inimages.techvoyage.dev/articles/Self-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues/buzz-desktop-client-add-project-button.webp)

#### 拉入現有的 Git 代碼倉庫

在您的本地開發機器上安裝 `git-credential-nostr` 憑證輔助工具。這需要您的系統已安裝 **Git 2.46+** 版本並配有 Rust 構建環境。詳情可參考此專案的 [Readme](https://github.com/block/buzz/tree/main/crates/git-credential-nostr) 描述：

```bash
cargo install --path crates/git-credential-nostr
```

對 `git-credential-nostr` 進行配置，使其獲得 Buzz 中繼器的授權權限：

```bash
# 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
```

在 Buzz 中繼上開闢出該 Git 庫的儲存節點：

```text
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"
```

在第一次執行 `git push` 時，您可能會被攔截並報錯 `remote: missing Authorization header`。這是由於 Git 寫入控制（ACL）是由頻道成員資格決定的，您必須先將該倉庫 ID 與一個具體的 Buzz 頻道進行綁定，從而授權合規寫入：

```bash
buzz repos bind --id koa-email-routing --channel <CHANNEL_UUID>

# push the code again
git push
```

在某些情況下，在 Buzz 桌面版中查閱專案進度時會遇到類似下方的 Git 模組拉取失敗提示。這是由於該桌面應用要求系統必須搭載 **Git 2.46+** 版本，而應用直接啟動時可能預設尋址到了系統中的舊版 Git 引擎：

![Buzz 用戶端展示由於本地 Git 版本低於 2.46 導致的 Git 庫載入失敗報錯介面](https://inimages.techvoyage.dev/articles/Self-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues/buzz-desktop-client-git-version-error.webp)

請在您的 shell 設定檔中通過執行 `launchctl setenv PATH "/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"` 聲明新版 Git 所在的 PATH，並直接在終端中拉起 Buzz 應用。對此可參考該 [Issue](https://github.com/block/buzz/issues/5348) 的詳細排查記錄。

```bash
open -a Buzz
```

重新進入用戶端中的 Projects 標籤頁，您會驚喜地發現代碼庫的所有提交與詳情已經完美載入出來了。

![代碼庫提交詳情成功載入後的 Buzz 桌面用戶端專案面板](https://inimages.techvoyage.dev/articles/Self-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues/buzz-desktop-client-repository-details-loaded.webp)

## 利用二維碼將 AI 助手同步至手機端 Buzz App

Buzz 手機端的「掃碼配對」只認 HTTPS 協定，且 VPS 上的中繼服務預設並不會在背景運行 `buzz-pair-relay` 組件。

```bash
cd ~/buzz
cargo install --path crates/buzz-pair-relay
```

將以下配置注入到您的 `compose.yml` 文件中，聲明並啟動 `buzz-pair-relay` 容器進程：

```yml
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]
```

在您的 `.env` 中聲明 `BUZZ_PAIRING_RELAY_URL` 及其專用的運行埠號：

```text
BUZZ_PAIRING_RELAY_URL=wss://buzz.pafor.me/pair
BUZZ_PAIR_RELAY_PORT=5000
```

點擊桌面端應用中的 Settings, 進入 「**Mobile**」 配對項：

![Buzz 桌面用戶端設置中展示的 Mobile 行動端配對配置標籤頁](https://inimages.techvoyage.dev/articles/Self-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues/buzz-settings-mobile-tab.webp)

點擊 “Start pairing” —— 介面會生成專屬的綁定二維碼；打開手機端 App 掃一掃，接著在桌面端點擊 “Code Match” 確認無誤，雙端便立即完成信任綁定。

![在桌面用戶端中生成安全的配對二維碼，用於同步 Buzz 手機端 App](https://inimages.techvoyage.dev/articles/Self-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues/buzz-desktop-client-pairing-qr-code.webp)

注意：手機端应用中的智能體之所以能隨叫隨到，是基於您的桌面端應用在背景持續維繫運行。只有保障桌面機處於線上狀態，手機端派發的智能體指令才能被順利分發與執行。

![在手機端 Buzz App 中成功載入同步後的活躍 AI 智能體列表](https://inimages.techvoyage.dev/articles/Self-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues/buzz-mobile-app-active-agents.webp)

## 結語

不可否認，作為一個還處於發展初期的技術方案，Buzz 在面對大規模生產環境時依然稍顯稚嫩，伴隨著一些偶發的系統 Bug 與介面互動上的限制。但對於小型團隊或單兵作戰的獨立開發者而言，這無疑是一場令人血脈偾張的前沿探索。它為我们揭開了一幅波瀾壯闊的人機無縫協奏畫卷，讓我們提前觸碰到了「AI 智能體成為工作夥伴」的未來工作模式。

## 參考資源

- [Buzz releases](https://github.com/block/buzz)
- [Introducing Buzz](https://block.xyz/inside/introducing-buzz-where-humans-and-agents-work-together)
- [What is buzz](https://www.hostinger.com/tutorials/what-is-buzz)
- [How to self-host Buzz (Miget)](https://miget.com/blog/how-to-self-host-buzz)
