dsh-custom-logo:爲 DSH Web 替換 favicon 與側邊欄 Logo

前言

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)
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜