Tools & Capabilities
dsh-code-server
icesparrow1/dsh-code-server · ★ 1
deepseek-harness code-server plugin
README body is shown in Chinese.
安装
dsh plugin --profile web add github:icesparrow1/dsh-code-serverGitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试
For install and environment setup, plus plugin development tutorials, see DSH community docs ↗
README
Table of contents
DSH Web 的 code-server 浏览器面板插件 + 一键云端部署包。
在云服务器上用 DeepSeek Harness(dsh web) + code-server(浏览器版 VS Code) 搭建私人的云端 AI 开发环境:agent 改代码、你写代码,都在同一份文件上。
本仓库包含两部分:
| 部分 | 位置 | 说明 |
|---|---|---|
| dsh-code-server 插件 | 仓库根(src/、package.json 等) |
在 DSH Web 右侧停靠 code-server 面板(纯 client,走官方 shell.overlay 槽位,不改 DSH 源码;地址固定 http://127.0.0.1:7070) |
| 部署包 | deploy/ |
dsh + code-server 分开部署的 Docker 方案:一键打包(package.sh)、一键部署(deploy.sh)、共享工作区 /root/workspaces |
⚠️ 安全声明(必读)
本方案默认就是"裸奔"的,请务必先读完这一节再部署:
- dsh web 能执行任意代码(agent 会跑 bash、改文件),
code-server的终端以 root 运行——两者中的任何一个暴露到公网,都等于把服务器 root 权限送给全世界。 - 默认配置把一切**锁在宿主机回环(127.0.0.1)**上:
- dsh web 监听
127.0.0.1:3080(dsh 官方禁止--host 0.0.0.0,本身就是防 RCE 暴露的安全设计) - code-server
--auth none免密码,只发布到127.0.0.1:7070 - 访问只能通过 SSH 隧道(见下方访问方式)
- dsh web 监听
- 云服务器(阿里云/腾讯云/AWS 等)部署时必须做到:
- 安全组 / 防火墙绝不开放
3080、7070端口到0.0.0.0/0(可只对22端口放行你的 IP); - 不要改
docker-compose.yml把端口发布改成0.0.0.0:xxxx或"7070:7070"这类公网发布; - 不要给 dsh 传
--host 0.0.0.0(它本身会拒绝,但别试图用配置层绕过——那是 RCE); - 建议仅限个人使用;多人场景请自行叠加认证(如 VPN / 反向代理 + 登录)。
- 安全组 / 防火墙绝不开放
- 全程纯 HTTP,无 HTTPS:SSH 隧道已加密传输,不要直连明文端口。
快速开始(Release 包安装)
从 Releases 下载 dsh-codeserver-bundle-<版本>.tar.gz:
# 1) 上传到服务器并部署(服务器需 Docker ≥ 20.10 + Compose v2,Linux x64)
scp dsh-codeserver-bundle-*.tar.gz root@<服务器IP>:~/
ssh root@<服务器IP>
mkdir -p ~/dsh-codeserver
tar -xzf dsh-codeserver-bundle-*.tar.gz -C ~/dsh-codeserver
cd ~/dsh-codeserver
./deploy.sh
# 2) 你的电脑上开 SSH 隧道访问
ssh -L 3080:127.0.0.1:3080 -L 7070:127.0.0.1:7070 root@<服务器IP>
浏览器打开 http://127.0.0.1:3080(dsh web,首次在 settings → providers 配置 API Key)和 http://127.0.0.1:7070(code-server)。
详细文档(基础要求、两种安装方式、环境变量、持久化卷、常见问题)见 deploy/README.md。
插件功能
- 右侧停靠面板:打开时在 AppFrame center 列预留空间,聊天区真实重排而非被覆盖;关闭时完全不渲染
- 右下角浮动控制条:
code-server按钮展开/收起面板;地址固定默认值,无需(也没有)设置按钮 - 流畅拖拽:拖动期间纯 DOM 写宽度 + iframe 临时隐藏;实时宽度标签和边界线
- 宽度灵活:320px ~ 视口宽 − 120px;开关/宽度持久化在 localStorage
- 层级:面板与控制条 portal 到
document.body(z-index 100/101),高于任何面板层 - iframe 权限:已放行全量 Permissions Policy(剪贴板、摄像头、全屏、USB/串口等),code-server 内扩展/终端可直接使用

插件安装(已有 dsh 实例时)
需要 DSH web profile(~/.dsh/profiles/web,跑过一次 dsh web)和 pnpm ≥ 10:
pnpm dlx @deepseek-ai/dsh plugin --profile web add <本插件源码目录绝对路径>
仓库结构
dsh-code-server/
├── src/ lib/ package.json ... # 插件源码
├── docs/ # 插件设计文档
├── deploy/ # ★ 部署包(详见 deploy/README.md)
│ ├── docker-compose.yml package.sh deploy.sh README.md .gitignore
│ └── dsh/ Dockerfile docker-entrypoint.sh
└── README.md # 本文件
开发
pnpm install
pnpm build # 产出 lib/(部署镜像内会从 src/ 重新构建,lib/ 不入库)
pnpm typecheck
许可证
MIT — 见 LICENSE。构建配置派生自 DeepSeek Harness(MIT,© 2026 DeepSeek),致谢与上游许可全文见 THIRD_PARTY_NOTICES.md。