dsh-code-server

by icesparrow1

1 工具与能力github收录于 08-23

deepseek-harness 的 code-server 插件

deepseek-harness code-server plugin

安装

dsh plugin --profile web add github:icesparrow1/dsh-code-server

GitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试

安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗

安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。

README

目录

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 隧道(见下方访问方式)
  • 云服务器(阿里云/腾讯云/AWS 等)部署时必须做到:
    1. 安全组 / 防火墙绝不开放 3080、7070 端口到 0.0.0.0/0(可只对 22 端口放行你的 IP);
    2. 不要改 docker-compose.yml 把端口发布改成 0.0.0.0:xxxx 或 "7070:7070" 这类公网发布;
    3. 不要给 dsh 传 --host 0.0.0.0(它本身会拒绝,但别试图用配置层绕过——那是 RCE);
    4. 建议仅限个人使用;多人场景请自行叠加认证(如 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。

原始 README: https://github.com/IceSparrow1/dsh-code-server/blob/master/README.md ↗