前言¶
DSH 的理念是「一切皆插件」。如果你使用 dsh web,並想讓自己部署的服務顯示自己的品牌標識,常見麻煩是要手動準備 favicon、側邊欄 Logo、摺疊欄圖標等多尺寸圖片,再處理重啓、緩存和前端資源替換。
下面介紹 dawsondx/dsh-custom-logo。這個插件的做法是直接上傳兩張圖:一張方形圖、一張橫向寬圖,插件自動處理並替換 dsh 的 favicon 與側邊欄 Logo,不需要手動準備任何尺寸的切圖。
這是什麼¶
dsh-custom-logo 是一個 DSH web 插件,倉庫由 dawsondx 維護,許可證爲 MIT。當前資料中的 package.json 版本爲 1.0.2,插件沒有第三方依賴。
安裝後,dsh 的設置彈窗中會多一個「品牌設置」分區,與「通用 / 模型 / 插件」並列。你只需要在這個分區裏選擇圖片,插件會完成品牌位替換。
核心功能¶
兩張圖對應三處品牌位:
- 瀏覽器標籤頁:方形圖居中裁切爲 favicon,收藏夾圖標同步更新。
- 展開側邊欄:橫向寬圖等比縮放,以 42px 高度替換原生文字標。
- 摺疊窄欄:方形圖縮爲 36px 圓形圖標。
圖片處理全部在瀏覽器端完成。上傳後頁面自動刷新生效,不需要重啓服務,也不需要手動準備不同尺寸的切圖。
服務端會把圖片寫入 dsh 用戶目錄下的品牌目錄:
<DSH_HOME>/branding/
具體文件爲:
logo-128.png
logo-64.png
logo-wide.png
寫入採用原子落盤方式。每次 index 請求時,插件會動態注入 favicon 與 CSS 自定義 Logo,並讓資源 URL 帶上:
?v=<mtime>
用於自動破緩存。
品牌圖保存在 dsh 用戶目錄中,而不是插件包內。因此插件升級不會丟品牌圖;dsh 自身升級也不會覆蓋本插件。插件通過用戶 profile 的 patch 層掛載,CSS 錨點使用穩定屬性。
設置面板支持中英文,跟隨 dsh 界面語言。兩張卡片的當前圖會以縮略圖預覽。
安裝與啓用¶
README 標註的推薦安裝命令是:
dsh plugin --profile web add dsh-custom-logo
安裝後重啓 dsh:
dsh start --profile web
如果你有自己的啓動腳本,也可以使用啓動腳本。
啓動後打開 dsh 設置彈窗,在左側導航中選擇「品牌設置」,即可開始上傳品牌圖。
典型用法¶
先準備兩張 PNG 圖片:一張用於 favicon 的方形圖,一張用於展開側邊欄的橫向寬圖。
1、打開設置彈窗,在左側導航選擇「品牌設置」。
2、在「網頁圖標」卡片中選擇方形 PNG 圖片,插件自動處理並刷新。
3、在「側邊欄 Logo」卡片中選擇橫向寬圖 PNG 圖片,插件自動處理並刷新。
4、不滿意時隨時重傳;想回到 dsh 默認品牌時點「恢復默認」。
如果上傳後頁面沒有變化,先做一次硬刷新:
Ctrl+Shift+R
寬圖建議使用接近 3:1 的比例,例如:
126×42
540×180
更寬的圖會按高度等比縮窄,不會變形。摺疊窄欄會顯示 36px 圓形圖標,建議主體圖形不要太貼邊。
適用場景與注意¶
這個插件適合使用 dsh web,並希望把默認 DeepSeek Harness 品牌位換成自己標識的開發者。由於插件隨 dsh 當前進程權限運行,安裝前應檢查源碼、許可證和依賴。該插件許可證爲 MIT,資料中說明爲零第三方依賴。
安全方面需要注意:
- 上傳/重置接口僅接受 loopback 來源,校驗 peer socket 地址,而不是可僞造的 Host 頭。
- 僅接受 PNG,校驗文件魔數。
- 單次上傳上限 8MB。
- 使用文件名白名單,不接受任意路徑寫入。
卸載命令是:
dsh plugin --profile web remove dsh-custom-logo
再刪除用戶目錄下的品牌圖文件:
~/.dsh/branding/logo-*.png
即可還原。
結尾¶
dsh-custom-logo 的價值比較直接:不改前端資源、不手動切圖,用兩張 PNG 圖片把 dsh web 的 favicon 和側邊欄品牌位換成自己的標識,並通過 dsh 設置彈窗完成上傳、重置和恢復默認。
- GitHub:https://github.com/dawsondx/dsh-custom-logo.git
- 社區目錄:檢索插件名
dsh-custom-logo(本文資料未提供目錄頁 URL)