Dream
DocumentationDownload
遠端工作

主機服務

無需桌面應用程式即可讓 Dream 的主機持續執行,並透過命令列進行管理。

Dream 的主機 dream-host 負責為你的專案執行代理、終端機和 Git 指令。通常由桌面應用程式啟動它,並在你結束時停止它。將主機安裝為服務後,應用程式關閉後聊天和終端機仍會繼續執行,適用於遠端存取或沒有桌面環境的機器。

系統服務管理員啟動時機
Linuxsystemd 使用者服務登入時,或使用 loginctl enable-linger 後於開機時
macOSLaunchAgent登入時
WindowsTask Scheduler(工作排程器)登入時

如果主機發生故障,服務會將其重新啟動。處於睡眠狀態的電腦無法連線。

取得主機執行環境#

從 Dream 發佈頁面下載適用於你系統的 dream-host 封存檔。我們為 Linux x64、Linux ARM64 和 macOS Apple silicon 發佈了封裝好的執行環境。每個封存檔都包含 Node.js、主機、終端機支援和瀏覽器用戶端。

以將要執行該服務的同一使用者身分安裝並登入代理 CLI。

將此桌面的主機作為服務執行#

  1. 結束 Dream。

  2. 使用桌面應用程式的資料資料夾安裝服務,以保留你的專案和聊天:

  3. 在環境中設定 DREAM_HOST_MODE=service 後啟動 Dream。例如,在 macOS 上:

系統桌面資料資料夾
macOS~/Library/Application Support/dreamide
Windows%APPDATA%/dreamide
Linux~/.config/dreamide

之後,桌面應用程式會連接到該服務。關閉桌面應用程式後,執行中的回覆和終端機會繼續執行;重新開啟後會還原終端機。一個資料資料夾同一時間只能由一個主機使用。若要改回由桌面應用程式啟動自己的主機,請先停止該服務。

安裝時會記錄你目前的 PATH。對於主機或代理 CLI 需要的其他每個環境變數,請加上一個 --env NAME;變數值會儲存在私有的服務檔案中。

設定無介面主機#

在沒有桌面應用程式的機器上,安裝服務時不要使用 --data-dir。其資料儲存在 ~/.dream/host/data 中。如果你透過 --home 使用其他主機資料夾,請在每個指令中都傳入相同的 --home。

然後透過命令列開啟遠端存取並配對裝置:

指令它能做什麼
dream-host remote on --tailscale透過 Tailscale 開啟遠端存取
dream-host remote install-cloudflared安裝或更新 Cloudflare 連接器
dream-host remote on --cloudflare --origin https://dream.example.com --token-file <path>透過 Cloudflare Tunnel 開啟遠端存取,並從私有檔案中讀取權杖
dream-host remote on --cloudflare --external --origin https://dream.example.com使用你自行執行的 Cloudflare 連接器
dream-host remote status / dream-host remote check顯示目前設定,或重新檢查
dream-host remote off停止為已配對裝置提供服務
dream-host pair建立具有「檢視與工作」權限的配對連結、配對碼和 QR 碼。使用 --scopes view 僅授予檢視權限,或使用 --scopes view,operate,manage 授予完整存取權限
dream-host claims列出已輸入配對碼的裝置
dream-host confirm <claimId> / dream-host deny <claimId>確認或拒絕裝置
dream-host devices列出已配對裝置
dream-host revoke <sessionId>移除裝置的存取權限

在以上任一指令後加上 --json,即可取得機器可讀的輸出。

管理服務#

指令它能做什麼
dream-host service status顯示服務是否正在執行,以及其版本、連接埠和日誌
dream-host service start / stop / restart控制執行中的服務
dream-host service uninstall移除開機啟動登錄,並保留你的資料
dream-host service update <version>安裝已發佈的版本
dream-host service recover完成或回復中斷的更新

更新時會先下載發佈封存檔並驗證其總和檢查碼,然後才停止主機。如果新版本無法啟動,服務會回復到先前的執行環境。更新會中斷執行中的回覆和終端機:回覆會標示為 已中斷,其佇列會暫停。檢查這些回覆後,再重試或繼續佇列。

如果更新中途停止(例如因為機器關機),請先執行 dream-host service status,再執行 dream-host service recover。