把 DeepSeek Harness 部署到伺服器上 7×24 運行
十三張實測截圖:從一台空 VPS 到常駐的 dsh——取得 root SSH 與瀏覽器終端機、接上模型供應商與可設定上下文視窗的自訂模型、不離開分頁安裝外掛,並讓它建置的每個網站都有一個能傳出去的網址。
最近更新: 2026-09-22

DeepSeek Harness 本質上是一個掛了 agent 迴圈的網頁應用,跑在哪台機器上其實是個可以改的參數。而把這台機器從筆電換成伺服器,你能對它提出的要求就變了:蓋上螢幕它還在繼續建置,工作區扛得過重新開機,你開啟的網址是伺服器自己的網域,而不是一個暫時的通道位置。長時間任務不必再遷就你的電力。
本頁跟著一支完整的伺服器實錄部署走完(出處見文末署名),只講「常駐在伺服器上」這一種情況:把 harness 裝進 VPS、用 SSH 或瀏覽器終端機連上去、設定筆電部署根本不需要的那些模型項目,以及最讓人意外的一件事——它回給你的預覽網址,在你自己的電腦上打不開。用手機透過通道遠端接入、用 Ollama 跑本地模型,是另外兩件事,文末有對應教學。
走完你會得到什麼
- ▸同一套網頁介面,用 VPS 網域開啟,登入名稱是面板給的 admin 而不是 root;需要 shell 時瀏覽器裡就有一個終端機。
- ▸當天剛發布、模型清單裡還沒有的模型:把供應商的 slug 貼進自訂模型那一列,順手替它設定上下文視窗與最大輸出 token。
- ▸建置結果留在伺服器上。告訴工作階段產物一定要落在哪個資料夾,它就會回一個 8080 埠的公開網址,而不是在遠端根本用不了的 localhost 位置。
十三個步驟
把 harness 裝進機器
- 1
一鍵部署之後,先把面板上的 SSH 那一行抄下來
一鍵映像檔會把 harness 當成現成應用裝進 Ubuntu,完成卡片上列著你之後每一步都會用到的資訊:應用名稱與它執行的作業系統、登入使用者名稱(admin)、重設密碼入口、一個直接在新分頁開啟執行中 harness 的 Manage App 按鈕,以及 SSH access 裡那條完整的 ssh root@<你的伺服器IP> 指令。現在就複製起來——agent 之後就住在這台機器裡。
$ssh root@<YOUR_SERVER_IP>
一張卡片給了後面會用到的三樣東西:登入使用者、執行中的應用、SSH 指令。看影片 3:40 - 2
進入 VPS 概覽頁,取得 root SSH 與瀏覽器終端機
概覽頁是控制室,應用跑起來之後也值得完整讀一遍。DeepSeek Harness 卡片重複了 admin 這個登入名稱;Ubuntu 26.04 Running 那一列有 Reboot 和一個 Web console 按鈕;下面一條則給出 SSH username root、IPv4 位置、root 密碼重設,以及完整的 ssh root@… 指令。最值錢的是 Web console:它在瀏覽器分頁裡開一個 root shell,代表你在任何一台沒裝 SSH 客戶端的電腦上都能管理這套 harness。

瀏覽器裡的 Web console 是那條退路——不用裝 SSH 客戶端就能取得 root shell。看影片 8:20 - 3
首次啟動的 API Key 對話框,按 Configure later 跳過
應用第一次載入會跳出 Add an API key to get started,請你設定官方 DeepSeek 供應商。實錄裡是故意按 Configure later 的。伺服器部署的價值正在於自己選供應商——一把 OpenRouter 的金鑰背後是上百個模型,或為了某個特定模型單獨接一家——而這件事屬於 Settings,不屬於這個對話框。

這裡先跳過;選供應商是 Settings → Models 的事,不是首次啟動對話框的事。看影片 3:46 - 4
開工作階段之前,先建一個工作區資料夾
工作階段跑在工作區裡,而工作區就是伺服器上的一個資料夾。Select Workspace Directory 對話框瀏覽的是伺服器自己的 home 目錄,列出既有資料夾,Show hidden files 旁邊就有 New folder 按鈕;實錄裡新建了 deepseek-test 並開啟它。在該工作區啟動的每個工作階段都只在這個資料夾裡讀寫,這是一台多人共用的機器不變成一堆散落檔案的唯一方法。

工作區就是伺服器上的一個資料夾,每個工作階段都從它繼承讀寫範圍。看影片 4:08
為伺服器版接上模型
- 5
Settings → Models → Add provider
Settings 在 harness 側欄最下方。Models 分頁是供應商住的地方,Add provider 會展開一長串按字母排序的清單:amazon-bedrock、art-dog、atenloop、azure-openai-responses、cerebras、cloudflare-ai-gateway、cloudflare-workers-ai、deepseek、fireworks、github-copilot、google、google-vertex、groq、huggingface、kimi-coding、minimax、mistral、moonshotai、nvidia、openrouter 等。實錄選了 OpenRouter,因為一把金鑰就涵蓋上面大部分廠商的模型,而且能在對話中途切換。

清單長到一把 OpenRouter 的金鑰就成了務實的選擇。看影片 4:42 - 6
抓取供應商的模型清單,一次全部加入
貼好金鑰之後,Customized settings 裡會出現 Fetch available models。它開啟一個 Choose models to add 對話框,每個模型 slug 一個核取方塊——a1zlj/jamba-large-1.7、aion-labs/aion-2.0、amazon/nova-2-lite-v1、amazon/nova-lite-v1、anthropic/claude-3-haiku 一路排下去——外加 Deselect all 與 Add selected 兩個操作。全部維持勾選才是重點:模型選擇器從此不需要你維護,按 Apply 就把這一整批寫進正在執行的伺服器實例。

一次全部勾起來,模型選擇器以後就不需要你維護。看影片 5:24 - 7
加入清單裡還沒有的模型,並設定它的上下文視窗
當天發布的模型不會出現在選擇器裡,因為抓到的清單比它更早。解法就在同一個 Models 頁面最下方的 Add model 那一列:把從供應商頁面複製的 slug 貼進去(影片裡是 google/gemini-3.8-flash),替工作階段的下拉選單取個顯示名稱(gemini-3.8-flash),這一列會展開另外兩個欄位——Context window 與 Max output tokens,佔位提示分別是 256K 和 32K。實錄裡兩個都留白走預設值,但在一個按 token 計費的伺服器上,這裡就是替失控輸出設上限的地方。
$google/gemini-3.8-flash
這就是加入當天新發布模型的做法——在任何一份抓到的清單知道它之前。看影片 7:12
在任何地方都能開啟
- 8
問它一句話,然後看執行資料那一行
冒煙測試就一句話。回覆後面跟著一行中繼資料——時間、Ran for 1s、TTFT 1.7s,以及這次工作階段裡被刻意圈起來的 5167 tok/s。這一行同時確認了四件事:供應商金鑰通了、模型答了、agent 迴圈跑在伺服器上、從你的瀏覽器到機房的往返快得足以全天工作。

一個被圈起來的數字,同時證明金鑰、模型與伺服器都通了。看影片 7:28 - 9
用網域開啟 harness,而不是 localhost
應用由伺服器提供之後,瀏覽器網址列讀到的就是 VPS 網域而不是 127.0.0.1:3080,同一個網址在筆電、手機、同事的電腦上都一樣能用。側欄最能說明問題:伺服器上所有工作區都列在那裡——用來跑排程任務的 Morning Brief、兩個並行的建站 demo、那個測試用的工作區——因為狀態存在伺服器,不在你的瀏覽器裡。

同一個應用、不同的網址——左邊那串工作區就是證據。看影片 18:40
不離開瀏覽器就能擴展
- 10
在瀏覽器終端機裡執行安裝外掛的指令
外掛是用 dsh 命令列安裝的,而在全新的 shell 裡第一次執行必然失敗:終端機會打出 Command 'dsh' not found, did you mean…,後面還附上它猜測的 apt 套件名稱。實錄給的修法是先裝一個 Node 套件管理程式(npm install -g pnpm),再重跑那條加入外掛的指令並重新啟動 harness 服務。同一個終端機也會回答 hostname、hostname -f 和 curl 到 ipinfo.io 的結果——你待會兒貼進瀏覽器的那個網址就是這樣來的。
$hostname; hostname -f; curl -s https://ipinfo.io/ip$npm install -g pnpm
安裝外掛是命令列動作,而一台新機器的 PATH 裡還沒有那條指令。看影片 8:56 - 11
強制重新整理,然後從外掛市集按安裝
外掛裝完不會有任何提示:服務沒重新啟動、分頁沒強制重新整理之前它就是不動,沒有跳出提示也沒有錯誤,這一點特別容易卡人。做完之後 Settings → Plugins → Plugin Market 就是即時的外掛目錄,每個項目一個 Install 按鈕(dsh-git-graph、dsh-skill-explorer、modlens、dsh-context),上面有 Discover / Themes / Installed / Advanced 四個分頁,還有一個 Update the plugin market。實錄裡的警告值得原樣轉述:只裝有人審核過的外掛,因為市集裡的東西是社群程式碼,跑起來用的就是你 agent 的權限。

重新啟動服務並強制重新整理之後,就不再需要終端機了。看影片 9:52
建置的東西也能對外存取
- 12
在 VPS 上,localhost 網址一定打不開
你問它剛建置好的東西怎麼看,它會回一個 http://localhost:3000,外加啟動服務用的 python3 -m http.server 或 npx serve 指令。點下去就是 Chrome 那句 This site can't be reached——127.0.0.1 refused to connect,ERR_CONNECTION_REFUSED。什麼都沒壞:在伺服器上,localhost 指的是那台伺服器,而你筆電上的瀏覽器是在問它自己。這就是本地部署與伺服器部署之間最大的那個差異。

在 VPS 上,localhost 指的是那台 VPS——這個預覽網址在你筆電上不可能開啟。看影片 15:56 - 13
釘死輸出資料夾,換回一個公開網址
繞行辦法是一句追加指令,告訴工作階段檔案必須落在哪裡、該列出哪個網址——影片裡那句是 the final output should be at http://<你的網域>:8080/<建置名>/。於是它把網站複製進 /var/www/preview/<建置名>/,自己 curl 一次埠確認資源回 200,然後回一個 Final Live URL,外加 index.html、styles.css、menu-data.js、app.js 逐檔說明。預覽資料夾設定一次,這個工作區之後每次建置都會以一條能傳給客戶的網址收尾。
$the final output should be at http://<YOUR_HOSTNAME>:8080/<BUILD_NAME>/
追加一句話,之後每次建置都變成一條能傳出去的網址。看影片 16:24
多人共用一台 dsh 該怎麼辦?
上面這一切給的是一個共用的 admin 登入、一套 harness,實錄也到此為止——它沒有做過任何按使用者隔離的設定。個人自用沒問題,團隊用就是真問題:任何能連上那個網址並通過登入的人,看到的都是同一批工作區、同一份工作階段歷史和同一組 API 金鑰。按人隔離不是伺服器設定能解決的,得靠外掛:社群裡有一個把公開伺服器變成多租戶託管平台的外掛,使用者註冊、管理員審核,每人一套彼此隔離的 dsh 環境和自己的金鑰,它到底做了什麼寫在 詳情頁上.
DeepSeek Harness 伺服器部署:常見問題
把 dsh 搬出筆電之前,大家都會問的幾件事。
跑 DeepSeek Harness 需要多大的伺服器?
很小。這次實錄把整套 harness 跑在 2 核心 8 GB 的 KVM 方案上,所有模型都走 API 呼叫,所以這台機器只負責提供網頁介面、執行 agent 迴圈和儲存檔案——推論發生在供應商那邊。只有當你還想在機器上自己跑權重時,才需要更大的配置,那是另一篇教學的事。
這和用手機遠端連 DeepSeek Harness 是同一回事嗎?
不是,而且差異很關鍵。遠端接入是通道:harness 仍然跑在你自己的電腦上,那台電腦必須一直開著,公開網址是隨機的、通道一重啟就失效。伺服器部署是把 harness 本身搬到一台全天開機的機器上,於是蓋上筆電之後夜間任務照跑,你收藏的那個網址就是伺服器自己的網域。
一定要用影片裡那家主機嗎?
不必。廠商是次要的——任何執行 Ubuntu 映像、附 harness 範本的 VPS 都可以。你需要主機面板提供的是同樣三樣東西:一條 ssh root@ 指令用來取得真正的終端機,一個瀏覽器 Web console 用來跑一次性指令,一個 Manage App 連結用來開啟執行中的實例。
我用的又不是 DeepSeek 的模型,為什麼第一次開啟就要它的 API Key?
那個對話框只負責配好官方 DeepSeek 這一個供應商,按 Configure later 跳過也不會壞任何東西。供應商是在 Settings → Models 新增的,每家一把自己的金鑰,所有供應商的模型最後都會匯進同一個工作階段選擇器——這也正是你能在對話中途換模型的原因。
可以針對每個模型分別設定上下文視窗嗎?
可以。Settings → Models 裡的自訂模型那一列,模型 ID 與顯示名稱下面就是 Context window 和 Max output tokens 兩個欄位,佔位提示寫著 256K 與 32K。留白就沿用供應商的預設值;填上去就能替按輸出 token 計費的模型設上限,或在一台多人共用的機器上把成本壓住。
把 harness 掛在公開 IP 上安全嗎?
請把那個網址當成密碼看待。應用登入用的是 admin 這個使用者名稱加上你的 VPS 密碼,而且沒有按使用者隔離,所以任何過了這道門的人共用的是你的工作區、你的工作階段歷史和你的 API 金鑰。密碼要夠強,前面套一層 HTTPS 而不是直接暴露裸埠,外掛只裝審核過的——實錄把這點講了兩遍,其中一遍還是一邊示範一個佈景主題、一邊把它移除掉。
相關教學
相鄰的幾件事:連一台你沒搬走的 harness、在機器上自己跑推論,以及怎麼安全地安裝。
從任何裝置遠端存取 DeepSeek Harness
harness 留在自己的電腦上,用免費 ngrok 通道把 3080 埠放出去——手機版的同一個問題。
閱讀教學DeepSeek Harness 接入本地模型
連 Ollama 或免費的 OpenRouter 模型,讓推論跑在這台機器自己身上,而不是靠一把 API 金鑰。
閱讀教學如何安裝 DeepSeek Harness 外掛
外掛市集、重新啟動加強制重新整理那條容易被忽略的規則,以及在外掛帶著你 agent 的權限跑起來之前先查一遍。
閱讀教學切換模型與新增自訂供應商
工作階段中途換模型、登記一個清單裡還沒有的供應商、確認你到底在跟誰說話。
閱讀教學DeepSeek Harness 安全與權限
一個 7×24 開機、能執行 shell 的 agent,應該被允許碰什麼、不該碰什麼。
閱讀教學出處與署名
本頁所有截圖都取自下方連結那支影片裡的畫面,為移除講者的攝影鏡像浮窗做過裁切,並註明出處。每個步驟都深鏈回它來源的精確秒數;操作步驟、風險提示與結論是本頁自己寫的。
