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

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

Xiaoye