8 8
9> [!NOTE]9> [!NOTE]
10>10>
11> 自託管環境在 Team 和 Enterprise 方案上處於公開測試版;[可用性和限制](/docs/zh-TW/self-hosted-environments#availability-and-limitations)涵蓋啟用路徑。本頁面讓您的第一個工作階段執行;請參閱[自託管環境](/docs/zh-TW/self-hosted-environments)了解它們是什麼,以及[部署到生產環境](/docs/zh-TW/self-hosted-environments-deploy.md)以進行強化和艦隊配方。11> 自託管環境在 Team 和 Enterprise 方案上處於公開測試版;[可用性和限制](https://code.claude.com/docs/zh-TW/self-hosted-environments#availability-and-limitations)涵蓋啟用路徑。本頁面讓您的第一個工作階段執行;請參閱[自託管環境](https://code.claude.com/docs/zh-TW/self-hosted-environments)了解它們是什麼,以及[部署到生產環境](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md)以進行強化和艦隊配方。
12 12
13[自託管環境](/docs/zh-TW/self-hosted-environments)在您的組織運營的基礎設施上執行 Claude Code [雲端工作階段](/docs/zh-TW/claude-code-on-the-web.md),由您部署的執行器程序執行。本快速入門設定您的第一個環境,這是最小的可行設定:單一主機上的一個執行器,執行一個測試工作階段。有兩個步驟:[建立環境、啟動執行器並將工作階段路由到該環境](#set-up-an-environment-and-runner),然後[從您的終端傳送後續訊息到執行中的工作階段](#send-a-follow-up-message-to-a-running-session)。您將在兩個介面之間移動:claude.ai 用於建立環境、檢查其狀態和路由工作階段,以及主機上的終端用於執行器執行的所有操作。13[自託管環境](https://code.claude.com/docs/zh-TW/self-hosted-environments)在您的組織運營的基礎設施上執行 Claude Code [雲端工作階段](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md),由您部署的執行器程序執行。本快速入門設定您的第一個環境,這是最小的可行設定:單一主機上的一個執行器,執行一個測試工作階段。有兩個步驟:[建立環境、啟動執行器並將工作階段路由到該環境](#set-up-an-environment-and-runner),然後[從您的終端傳送後續訊息到執行中的工作階段](#send-a-follow-up-message-to-a-running-session)。您將在兩個介面之間移動:claude.ai 用於建立環境、檢查其狀態和路由工作階段,以及主機上的終端用於執行器執行的所有操作。
14 14
15完成後,您將在[**雲端環境**管理頁面](https://claude.ai/admin-settings/cloud-environments)上擁有一個環境、一個輪詢工作的執行器,以及在您的主機上執行的工作階段。在連接真實存放庫或內部系統之前,請完成[部署到生產環境](/docs/zh-TW/self-hosted-environments-deploy.md),其中涵蓋安全態勢、出口控制、git 認證和編排。15完成後,您將在[**雲端環境**管理頁面](https://claude.ai/admin-settings/cloud-environments)上擁有一個環境、一個輪詢工作的執行器,以及在您的主機上執行的工作階段。在連接真實存放庫或內部系統之前,請完成[部署到生產環境](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md),其中涵蓋安全態勢、出口控制、git 認證和編排。
16 16
17## 先決條件17## 先決條件
18 18
20 20
21claude.ai 端需要:21claude.ai 端需要:
22 22
23* **允許自託管環境**由[擁有者](/docs/zh-TW/cloud-environments.md#organization-shared-environments)在[**雲端環境**管理頁面](https://claude.ai/admin-settings/cloud-environments)上開啟;在開啟之前,**新增**按鈕不會出現。如果您不持有該角色,持有該角色的人可以建立環境並將其密鑰交給您;本頁面上的執行器和終端步驟不需要 claude.ai 角色,而在步驟檢查管理 UI 中的狀態時,執行器自己的日誌行會給您相同的信號。23* **允許自託管環境**由[擁有者](https://code.claude.com/docs/zh-TW/cloud-environments.md#organization-shared-environments)在[**雲端環境**管理頁面](https://claude.ai/admin-settings/cloud-environments)上開啟;在開啟之前,**新增**按鈕不會出現。如果您不持有該角色,持有該角色的人可以建立環境並將其密鑰交給您;本頁面上的執行器和終端步驟不需要 claude.ai 角色,而在步驟檢查管理 UI 中的狀態時,執行器自己的日誌行會給您相同的信號。
24* 由擁有者開啟的 [GitHub 連接器](https://claude.ai/admin-settings/connectors),以及每位開發人員自己的 [GitHub 連線](/docs/zh-TW/web-quickstart.md#connect-github),以便他們在啟動工作階段時可以選擇 github.com 儲存庫。24* 由擁有者開啟的 [GitHub 連接器](https://claude.ai/admin-settings/connectors),以及每位開發人員自己的 [GitHub 連線](https://code.claude.com/docs/zh-TW/web-quickstart.md#connect-github),以便他們在啟動工作階段時可以選擇 github.com 儲存庫。
25 25
26### 主機和網路26### 主機和網路
27 27
28執行器主機需要:28執行器主機需要:
29 29
30* 具有到 `api.anthropic.com` 的出站 HTTPS、到 `claude.ai` 和下面安裝步驟重定向到的下載主機,以及到您的 git 主機以進行複製的 Linux 或 macOS 主機或容器;[網路需求表](/docs/zh-TW/self-hosted-environments-deploy.md#network-requirements)有完整清單。Windows 不支援作為執行器主機;改為在 Linux 容器中執行執行器。開發人員工作站不受影響,因為工作階段從瀏覽器中的 claude.ai 啟動。30* 具有到 `api.anthropic.com` 的出站 HTTPS、到 `claude.ai` 和下面安裝步驟重定向到的下載主機,以及到您的 git 主機以進行複製的 Linux 或 macOS 主機或容器;[網路需求表](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md#network-requirements)有完整清單。Windows 不支援作為執行器主機;改為在 Linux 容器中執行執行器。開發人員工作站不受影響,因為工作階段從瀏覽器中的 claude.ai 啟動。
31* 用於測試工作階段的儲存庫:公開儲存庫,或此主機已能透過其 HTTPS URL 複製且不會被要求提供憑證的儲存庫。僅有 SSH 金鑰是不夠的,因為執行器會複製儲存庫的 `https://` URL。若要改為透過 SSH 複製,請參閱[為私人網路重寫 git URL](/docs/zh-TW/self-hosted-environments-deploy.md#rewrite-git-urls-for-private-networks)。31* 用於測試工作階段的儲存庫:公開儲存庫,或此主機已能透過其 HTTPS URL 複製且不會被要求提供憑證的儲存庫。僅有 SSH 金鑰是不夠的,因為執行器會複製儲存庫的 `https://` URL。若要改為透過 SSH 複製,請參閱[為私人網路重寫 git URL](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md#rewrite-git-urls-for-private-networks)。
32* 與實時同步的時鐘,例如使用 NTP。當時鐘偏差超過五分鐘時,驗證失敗;請參閱[疑難排解](/docs/zh-TW/self-hosted-environments-deploy.md#troubleshooting)。32* 與實時同步的時鐘,例如使用 NTP。當時鐘偏差超過五分鐘時,驗證失敗;請參閱[疑難排解](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md#troubleshooting)。
33 33
34### 執行器主機上的軟體34### 執行器主機上的軟體
35 35
36在啟動之前在主機上安裝:36在啟動之前在主機上安裝:
37 37
38* **Claude Code v2.1.224 或更新版本**,使用任何[標準安裝方法](/docs/zh-TW/setup.md)。執行器是標準 `claude` 二進位檔的一部分,較早版本無法識別 `self-hosted-runner` 子命令。若要固定您的艦隊執行的確切版本,請參閱[安裝特定版本](/docs/zh-TW/setup.md#install-a-specific-version)。對於容器映像,請參閱[部署到生產環境](/docs/zh-TW/self-hosted-environments-deploy.md#build-the-runner-image)中的 Dockerfile。38* **Claude Code v2.1.224 或更新版本**,使用任何[標準安裝方法](https://code.claude.com/docs/zh-TW/setup.md)。執行器是標準 `claude` 二進位檔的一部分,較早版本無法識別 `self-hosted-runner` 子命令。若要固定您的艦隊執行的確切版本,請參閱[安裝特定版本](https://code.claude.com/docs/zh-TW/setup.md#install-a-specific-version)。對於容器映像,請參閱[部署到生產環境](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md#build-the-runner-image)中的 Dockerfile。
39* **Git 2.24 或更新版本**。部署頁面上的某些 git 選項需要較新的版本;[設定 git](/docs/zh-TW/self-hosted-environments-deploy.md#configure-git)說明每個下限。39* **Git 2.24 或更新版本**。部署頁面上的某些 git 選項需要較新的版本;[設定 git](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md#configure-git)說明每個下限。
40 40
41確認主機已準備好:41確認主機已準備好:
42 42
44claude self-hosted-runner --help44claude self-hosted-runner --help
45```45```
46 46
47準備好的主機會列印執行器的使用文字,列出 `--environment-secret-file` 等旗標。在 2.1.224 之前的版本上,該命令會改為列印一般 `claude --help` 輸出。如果您看到該輸出,請[更新 Claude Code](/docs/zh-TW/setup.md#update-claude-code)。如果您從容器映像執行 `claude`,請使用 2.1.224 或更新版本[重新建置映像](/docs/zh-TW/self-hosted-environments-deploy.md#build-the-runner-image)。47準備好的主機會列印執行器的使用文字,列出 `--environment-secret-file` 等旗標。在 2.1.224 之前的版本上,該命令會改為列印一般 `claude --help` 輸出。如果您看到該輸出,請[更新 Claude Code](https://code.claude.com/docs/zh-TW/setup.md#update-claude-code)。如果您從容器映像執行 `claude`,請使用 2.1.224 或更新版本[重新建置映像](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md#build-the-runner-image)。
48 48
49## 設定環境和執行器49## 設定環境和執行器
50 50
71 71
72**1. 建立環境**72**1. 建立環境**
73 73
74前往管理設定中的[**雲端環境**頁面](https://claude.ai/admin-settings/cloud-environments)。在**自託管環境**下,選擇**新增**,命名環境,然後選擇**建立**。在精靈的第二步,選擇**複製環境金鑰**以複製環境密鑰,管理 UI 將其標記為環境金鑰。claude.ai 只顯示一次密鑰,您之後無法檢索它;它在建立後 365 天過期。環境的 `ccpool_...` ID 在其詳細對話方塊中保持可見;您需要它用於[令牌驗證](/docs/zh-TW/self-hosted-environments-identity.md)中的 `aud` 檢查,以及用於從 CI [分派測試工作階段](/docs/zh-TW/self-hosted-environments-testing.md#run-the-test-loop)。74前往管理設定中的[**雲端環境**頁面](https://claude.ai/admin-settings/cloud-environments)。在**自託管環境**下,選擇**新增**,命名環境,然後選擇**建立**。在精靈的第二步,選擇**複製環境金鑰**以複製環境密鑰,管理 UI 將其標記為環境金鑰。claude.ai 只顯示一次密鑰,您之後無法檢索它;它在建立後 365 天過期。環境的 `ccpool_...` ID 在其詳細對話方塊中保持可見;您需要它用於[令牌驗證](https://code.claude.com/docs/zh-TW/self-hosted-environments-identity.md)中的 `aud` 檢查,以及用於從 CI [分派測試工作階段](https://code.claude.com/docs/zh-TW/self-hosted-environments-testing.md#run-the-test-loop)。
75 75
76如果您遺失密鑰或需要輪換它,請從環境的**設定**標籤建立新密鑰,將新密鑰推出到您的執行器,然後撤銷舊密鑰。持有已撤銷密鑰的執行器在下一次驗證輪詢時失敗並退出,記錄 `poll auth failed`,您的編排器使用新密鑰重新啟動它們。76如果您遺失密鑰或需要輪換它,請從環境的**設定**標籤建立新密鑰,將新密鑰推出到您的執行器,然後撤銷舊密鑰。持有已撤銷密鑰的執行器在下一次驗證輪詢時失敗並退出,記錄 `poll auth failed`,您的編排器使用新密鑰重新啟動它們。
77 77
95>95>
96> 請使用專供執行器使用的目錄,而不是您的家目錄或存放您自己複製之儲存庫的目錄。執行器會將它在 `<writable-dir>/<repo-owner>/<repo>` 找到的任何內容視為自己的複製,並可能重設它以及覆寫或刪除其中的檔案。96> 請使用專供執行器使用的目錄,而不是您的家目錄或存放您自己複製之儲存庫的目錄。執行器會將它在 `<writable-dir>/<repo-owner>/<repo>` 找到的任何內容視為自己的複製,並可能重設它以及覆寫或刪除其中的檔案。
97 97
98如果執行器無法建立或寫入基本目錄,它在啟動時會以指出該目錄的錯誤退出,而不是註冊。請參閱[疑難排解](/docs/zh-TW/self-hosted-environments-deploy.md#troubleshooting)。98如果執行器無法建立或寫入基本目錄,它在啟動時會以指出該目錄的錯誤退出,而不是註冊。請參閱[疑難排解](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md#troubleshooting)。
99 99
100然後使用 `--environment-secret-file` 和 `--base-dir` 啟動執行器:100然後使用 `--environment-secret-file` 和 `--base-dir` 啟動執行器:
101 101
117 117
118如果工作階段沒有開始工作,請對照您看到的情況:118如果工作階段沒有開始工作,請對照您看到的情況:
119 119
120* **工作階段保持佇列狀態**:請參閱[疑難排解](/docs/zh-TW/self-hosted-environments-deploy.md#troubleshooting)。120* **工作階段保持佇列狀態**:請參閱[疑難排解](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md#troubleshooting)。
121* **工作階段因 git 錯誤而無法啟動**:如果錯誤包含 git 的 `could not read Username for`,後面接著您的 git 主機 URL,表示執行器沒有該主機的 HTTPS 憑證。121* **工作階段因 git 錯誤而無法啟動**:如果錯誤包含 git 的 `could not read Username for`,後面接著您的 git 主機 URL,表示執行器沒有該主機的 HTTPS 憑證。
122 * **提供 HTTPS 憑證**:請參閱[設定 git](/docs/zh-TW/self-hosted-environments-deploy.md#configure-git)122 * **提供 HTTPS 憑證**:請參閱[設定 git](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md#configure-git)
123 * **改用 SSH 複製**:如果執行器主機已有 SSH 金鑰,請參閱[為私有網路重寫 git URL](/docs/zh-TW/self-hosted-environments-deploy.md#rewrite-git-urls-for-private-networks)123 * **改用 SSH 複製**:如果執行器主機已有 SSH 金鑰,請參閱[為私有網路重寫 git URL](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md#rewrite-git-urls-for-private-networks)
124 124
125### 如果執行器退出125### 如果執行器退出
126 126
127如果執行器在此快速入門期間退出,請再次啟動它。執行器可能會自行退出:127如果執行器在此快速入門期間退出,請再次啟動它。執行器可能會自行退出:
128 128
129* **已無執行中的項目**:日誌顯示 `[runner:exit] account workload drained — exiting`。執行器在不再執行任何工作階段時會[按設計退出](/docs/zh-TW/self-hosted-environments#runner-lifecycle),例如:129* **已無執行中的項目**:日誌顯示 `[runner:exit] account workload drained — exiting`。執行器在不再執行任何工作階段時會[按設計退出](https://code.claude.com/docs/zh-TW/self-hosted-environments#runner-lifecycle),例如:
130 * **您封存或刪除了工作階段**:再次啟動執行器130 * **您封存或刪除了工作階段**:再次啟動執行器
131 * **工作階段無法啟動**:[修正原因](#session-doesnt-start),然後再次啟動執行器131 * **工作階段無法啟動**:[修正原因](#session-doesnt-start),然後再次啟動執行器
132* **失去聯繫**:日誌顯示一行 `[runner:fatal]`,並帶有 `runner record gone server-side` 或 `poll auth failed`。如果執行器與 Anthropic 失去聯繫一段時間,例如因為主機進入睡眠狀態,它可能會在下次連線到 Anthropic 時退出。132* **失去聯繫**:日誌顯示一行 `[runner:fatal]`,並帶有 `runner record gone server-side` 或 `poll auth failed`。如果執行器與 Anthropic 失去聯繫一段時間,例如因為主機進入睡眠狀態,它可能會在下次連線到 Anthropic 時退出。
133 133
134完成一個回合並不會結束您的測試工作階段。第一個回合之後,工作階段仍處於附加狀態,執行器也仍在執行,因此您可以[向工作階段傳送後續訊息](#send-a-follow-up-message-to-a-running-session),而無需先重新啟動執行器。134完成一個回合並不會結束您的測試工作階段。第一個回合之後,工作階段仍處於附加狀態,執行器也仍在執行,因此您可以[向工作階段傳送後續訊息](#send-a-follow-up-message-to-a-running-session),而無需先重新啟動執行器。
135 135
136對於生產環境,在編排器下部署執行器,該編排器在退出時重新啟動它,並在執行器啟動後立即持續退出時等待更長的時間再重新啟動。請參閱[部署到生產環境](/docs/zh-TW/self-hosted-environments-deploy.md)和[當執行器退出時](/docs/zh-TW/self-hosted-environments-deploy.md#when-the-runner-exits)。136對於生產環境,在編排器下部署執行器,該編排器在退出時重新啟動它,並在執行器啟動後立即持續退出時等待更長的時間再重新啟動。請參閱[部署到生產環境](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md)和[當執行器退出時](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md#when-the-runner-exits)。
137 137
138## 傳送後續訊息到執行中的工作階段138## 傳送後續訊息到執行中的工作階段
139 139
143claude -p "your message" --cloud <session-id>143claude -p "your message" --cloud <session-id>
144```144```
145 145
146對於 `<session-id>`,傳遞裸 `session_...` 或 `cse_...` ID 或工作階段的 claude.ai/code URL。成功傳送會列印 `Sent to cloud session.` 以及工作階段 ID 和檢視連結。接受的 ID 形式、JSON 輸出,以及帳戶和原則需求在[從 CLI 傳送後續訊息](/docs/zh-TW/claude-code-on-the-web.md#send-follow-ups-from-the-cli)上,因為該命令對 Anthropic 託管的工作階段的工作方式相同。146對於 `<session-id>`,傳遞裸 `session_...` 或 `cse_...` ID 或工作階段的 claude.ai/code URL。成功傳送會列印 `Sent to cloud session.` 以及工作階段 ID 和檢視連結。接受的 ID 形式、JSON 輸出,以及帳戶和原則需求在[從 CLI 傳送後續訊息](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md#send-follow-ups-from-the-cli)上,因為該命令對 Anthropic 託管的工作階段的工作方式相同。
147 147
148## 接下來的步驟148## 接下來的步驟
149 149
150* [部署到生產環境](/docs/zh-TW/self-hosted-environments-deploy.md):強化部署、控制出口、設定 git 認證,並在 Kubernetes 或 Compose 下執行艦隊150* [部署到生產環境](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md):強化部署、控制出口、設定 git 認證,並在 Kubernetes 或 Compose 下執行艦隊
151* [自訂工作階段](/docs/zh-TW/self-hosted-environments-configuration.md):包裝器指令碼、生命週期掛鉤、隨需執行器、MCP 伺服器和權限151* [自訂工作階段](https://code.claude.com/docs/zh-TW/self-hosted-environments-configuration.md):包裝器指令碼、生命週期掛鉤、隨需執行器、MCP 伺服器和權限
152* [端到端測試](/docs/zh-TW/self-hosted-environments-testing.md):一個 CI 煙霧測試,分派工作階段並讀取 Claude 的回覆152* [端到端測試](https://code.claude.com/docs/zh-TW/self-hosted-environments-testing.md):一個 CI 煙霧測試,分派工作階段並讀取 Claude 的回覆