← 返回列表
未验证
一个可复用、隔离的 AI 编码工作站,用于在远程 Linux VPS 上运行 DeepSeek…
尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/9/8 · 已提供中文文档
一个安全且可复用的 VPS 开发工作站,具有隔离的 Docker 项目、DeepSeek Harness、GitHub App 身份验证、SSH 预览以及简单的生命周期管理。
综合分
28.6
GitHub 分
28.6
用户评分
—
★ Stars
0
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add mosabbir-maruf/ai-workstation该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
信任档位:需留意实装验证未通过
- 是什么
- dsh 原生插件 · market
- 装得上吗
- 实装验证未通过(unknown),装前请到仓库确认最近更新与 issue
- 安全吗
- 本站尚未对该插件做风险分级(暂未覆盖,不等同于无风险)
- 还在维护吗
- 活跃:最近一次提交在 18 天前
档位由下列信号合成:本站实装验证(真实安装,当前最高到 L4)· 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。下方各区块是它的证据明细。 验证判据与等级说明 →
⚠︎ 实装验证未通过(unknown · 2026/9/25) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
数据截至 2026/9/21(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
由 DeepSeek 最新模型翻译生成AI 工作站 一个可复用、隔离的 AI 编码工作站,用于在远程 Linux VPS 上运行 DeepSeek Harness(DSH)和项目开发工作负载。 Platform Runtime AI Runtime License: MIT Contributing Security Policy Maintainer 目录 - 概述 - 架构 - 安全模型 - 仓库结构 - 主机运行时结构 - 要求 - 安装 - 配置 - GitHub 身份验证 - 日常工作流程 - CLI 参考 - 项目生命周期 - Harness 和 DSH 生命周期 - 预览和 SSH 隧道 - Git 工作流程 - 缓存管理 - 状态备份和恢复 - 更新和升级 - CI/CD - 运维手册 - 故障排除 - 安全检查清单 - 设计决策 - 快速参考 - 贡献 - 安全 - 许可证 - 维护者 概述 AI 工作站为远程 Linux VPS 提供一个可复用的开发环境。 项目作为普通 Git 仓库保留在主机上的 ~/projects/ 下。只有当前选定的项目会挂载到工作站容器的 /workspace 中。 工作站包含通用开发者运行时和 DeepSeek Harness。DSH 安装和 DSH 状态持久化在一次性容器文件系统之外,允许替换容器/镜像而不会有意丢失 Harness 状态。 该系统有四个主要边界: 1. 主机管理层 — Docker、项目、运行时状态、密钥和 ai CLI。 2. 工作站容器 — 隔离的开发者运行时加上选定的项目。 3. GitHub 代理 — 通过 Unix 套接字进行 GitHub App 凭据流程,而不是在容器内使用 PAT 或主机 SSH 密钥。 4. 现有基础设施 — 现有的网关/反向代理栈保持独立。 架构 高层架构 互联网 │ ┌──────────────┴──────────────┐ │ │ SSH :1182 HTTPS :443 │ │ ▼ ▼ ┌────────────┐ ┌─────────────────────┐ │ Mac / 管理 │ │ 现有反向 │ │ 客户端 │ │ 代理 / Nginx │ └─────┬──────┘ └──────────┬──────────┘ │ │ SSH 隧道 ▼ │ 现有应用栈 ▼ ┌────────────────────────────────────────────────────────────────────────────┐ │ Ubuntu VPS / 主机 │ │ │ │ ┌──────────────────────┐ ┌───────────────────────────────────────┐ │ │ │ ~/projects/ │ │ ~/ai-workstation/ │ │ │ │ │ │ │ │ │ │ project-a/ │ │ scripts/ai │ │ │ │ project-b/ │ │ docker/ │ │ │ │ active-project/ ─────┼──────►│ runtime/ │ │ │ │ │ │ secrets/ │ │ │ └──────────┬───────────┘ │ .env │ │ │ │ └────────────────┬──────────────────────┘ │ │ │ │ │ │ │ /workspace 挂载 │ Docker Compose │ │ ▼ ▼ │ │ ┌──────────────────────────────────────────────────────────────────────┐ │ │ │ ai-workstation │ │ │ │ │ │ │ │ 用户:sandbox(UID 1001) │ │ │ │ Node.js + Git + SSH 客户端 + ripgrep + fd + procps + tini │ │ │ │ │ │ │ │ /workspace ← 仅活动项目 │ │ │ │ /home/sandbox/.dsh ← 持久化 DSH 状态 │ │ │ │ /home/sandbox/.npm-global ← 持久化 DSH 安装 │ │ │ │ │ │ │ │ DSH: 127.0.0.1:4090 │ │ │ │ 桥接: 0.0.0.0:4091 │ │ │ │ 应用: 项目选定的开发端口 │ │ │ └──────────────────────────────────────────────────────────────────────┘ │ │ ▲ │ │ │ Unix 套接字 │ │ ┌──────────┴───────────┐ │ │ │ GitHub broker 运行时│ │ │ │ github.sock │ │ │ └──────────┬───────────┘ │ │ │ │ │ GitHub App 私钥 │ │ │ │ │ secrets/github-app.pem │ └────────────────────────────────────────────────────────────────────────────┘ 数据流 Mac / 操作员 │ │ SSH ▼ 主机 CLI:ai │ ├── 项目选择 ├── Git 操作 ├── 工作站生命周期 ├── Harness 生命周期 ├── 应用生命周期 ├── 缓存维护 └── 预览/隧道生成 │ ▼ Docker 工作站 │ ├── 选定项目位于 /workspace ├── 持久化 DSH 状态 ├── 持久化 DSH 安装 ├── 应用运行时状态 ├── Harness 运行时状态 └── GitHub broker 套接字 组件职责 | 组件 | 职责 | 持久化 | |---|---|---| | scripts/ai | 主操作员 CLI | Git | | docker/Dockerfile | 基础工作站镜像 | Git / GHCR | | docker/compose.yml | 运行时、挂载、限制、端口 | Git | | docker/entrypoint.sh | 容器引导和 DSH 安装 | Git | | docker/app-runner.sh | 项目进程运行器 | Git | | docker/harness.sh | DSH + 桥接生命周期 | Git | | docker/github-app-credential-helper | 容器侧 Git 凭据助手 | Git | | scripts/lib/github.sh | GitHub App/broker 管理 | Git | | broker/ | 主机侧 broker 实现 | Git | | runtime/dsh/ | DSH 状态/配置/历史 | 主机持久化 | | runtime/npm-global/ | DSH 安装 | 主机持久化 | | runtime/app/ | 应用 PID/日志状态 | 可丢弃 | | runtime/harness/ | Harness PID/日志状态 | 可丢弃 | | runtime/github-broker/ | Broker 套接字/运行时 | 运行时 | | ~/projects/ | Git 工作副本 | 主机持久化 | | GitHub Actions | ARM64 镜像构建/发布 | CI | | GHCR | 容器镜像仓库 | 外部 | 安全模型 工作站有意与敏感的主机能力隔离。 容器安全 当前运行时配置为: - 以非 root 用户 sandbox(UID 1001)运行; - 丢弃所有 Linux 能力; - 启用 no-new-privileges; - 保持非特权状态; - 将内存限制为 512 MB; - 将 CPU 限制为 1.5 个 CPU; - 将进程数限制为 256 个 PID; - 将 /tmp 用作 noexec,nosuid; - 避免使用主机网络; - 避免使用主机 Docker 套接字; - 避免挂载主机的 ~/.ssh; - 仅将活动项目挂载到 /workspace。 凭据边界 GitHub 凭据无需复制到工作站中。 容器内的 Git │ ▼ 凭据助手 │ ▼ Unix 套接字 │ ▼ 主机 GitHub 代理 │ ▼ GitHub App 身份验证 │ ▼ GitHub 凭据助手不会通过 Git 的凭据存储持久化 GitHub 令牌。 机密位置 敏感文件仅存在于主机上: .env secrets/github-app.pem runtime/dsh/.credentials.yaml 建议的权限: .env 600 secrets/github-app.pem 600 runtime/dsh/ 700 runtime/dsh/.credentials... 600 切勿提交私钥、令牌、凭据或 .env。 仓库结构 ai-workstation/ ├── .env.example # 环境模板 ├── .gitignore # 忽略的机密、运行时和操作系统文件 ├── CONTRIBUTING.md # 贡献者指南 ├── LICENSE # MIT 许可证 ├── README.md # 主要架构与用户文档 ├── SECURITY.md # 安全策略与披露流程 ├── install.sh # 主机安装与验证脚本 ├── update.sh # 快进更新与升级脚本 │ ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.yml # 结构化缺陷报告表单 │ │ ├── feature_request.yml # 结构化功能请求表单 │ │ └── config.yml # Issue 模板配置 │ ├── workflows/ │ │ └── image.yml # ARM64 GHCR 构建与发布工作流 │ └── pull_request_template.md # PR 提交模板 │ ├── broker/ │ └── github_broker.py # 主机侧 GitHub App 凭据代理 │ ├── config/ │ └── projects.yml # 项目配置注册表 │ ├── docker/ │ ├── Dockerfile # 基础 ARM64 工作站镜像 │ ├── compose.yml # 运行时/安全配置 │ ├── entrypoint.sh # 容器引导与 DSH 设置 │ ├── app-runner.sh # 应用进程运行器 │ ├── harness.sh # DSH + 桥接生命周期 │ └── github-app-credential-helper# 容器侧凭据助手 │ └── scripts/ ├── ai # 主 CLI ├── github-app-credential-helper # 主机侧凭据助手 └── lib/ └── github.sh # GitHub App/代理辅助脚本 [!NOTE] runtime/、.env、.venv/、secrets/ 以及 ~/projects/ 下的项目检出目录都是本地主机运行时路径,有意排除在版本控制之外。 主机运行时结构 ~/ ├── ai-workstation/ │ ├── .env │ ├── .venv/ │ ├── runtime/ │ │ ├── dsh/ │ │ ├── npm-global/ │ │ ├── app/ │ │ ├── harness/ │ │ └── github-broker/ │ └── secrets/ │ └── github-app.pem │ └── projects/ ├── project-a/.git ├── project-b/.git └── active-project/.git 只有选定的项目会被挂载到 /workspace。 要求 主机 - 带有 Docker 的 Linux 主机。 - 支持 Docker Compose。 - Git。 - Python 3。 - sudo。 - 对将要管理的仓库具有 GitHub 访问权限。 - 针对当前已发布镜像的 ARM64 主机,或合适的镜像/构建策略。 随附的安装程序会验证 Docker、Git、Python 3、Docker 守护进程访问权限以及 Python 虚拟环境支持。 推荐的服务器配置 - SSH 密钥认证。 - 禁用密码认证。 - 禁用 root SSH 登录。 - 防火墙对入站流量默认拒绝。 - 仅开放必需的公共端口。 - 开发端口绑定到 localhost。 安装 cd ~/ai-workstation ./install.sh 安装程序会: 1. 验证主机先决条件; 2. 如有需要,安装 Python venv 支持; 3. 创建运行时/项目/密钥目录; 4. 从 .env.example 创建 .env; 5. 创建 Python 虚拟环境; 6. 安装所需的 Python 依赖; 7. 将 ai 安装到 /usr/local/bin/ai; 8. 验证安装结果。 然后: ai doctor ai github setup ai github status ai github test 配置 .env.example 当前包含: IMAGE=ghcr.io/mosabbir-maruf/ai-workstation:latest DSH_VERSION=0.1.2-rc.1 ACTIVE_PROJECT= ACTIVE_PROJECT_PATH= CLI 在配置时还会在本地维护与 GitHub App/broker 相关的值。 规则 - 保持 .env 私密。 - 切勿提交 .env。 - 保持 secrets/github-app.pem 私密。 - 对于受控部署,优先使用可信/固定版本的镜像引用。 - 当需要确定性行为时,固定 DSH_VERSION。 GitHub 认证 使用: ai github setup ai github status ai github test GitHub App 私钥应放置在: ~/ai-workstation/secrets/github-app.pem 保护它: chmod 600 ~/ai-workstation/secrets/github-app.pem 成功的认证测试应报告: Testing GitHub App credentials... ✓ GitHub Installation Token: OK GitHub authentication: READY ✓ 日常工作流程 启动 ai start 检查 ai status 启动活动项目 ai run 预览 ai preview 停止项目 ai app stop 停止工作站 ai stop 典型会话 ai doctor ai start ai run ai preview Work with DSH / editor / browser ai app logs ai status ai app stop ai stop CLI 参考 运行: ai 以查看内置命令列表。 项目 ai add ai remove ai list ai use ai add 会将 GitHub HTTPS 仓库克隆到 ~/projects/。 ai use 选择挂载到 /workspace 的项目。 Git ai pull ai push "commit message" ai pull 使用仅快进(fast-forward-only)的 Git 行为。 ai push 在提交/推送前会检查暂存文件名中常见的敏感文件模式。 工作站 ai start ai stop ai restart ai status ai logs ai shell ai run ai preview 应用 ai app stop ai app restart ai app status ai app logs Harness ai harness start ai harness stop ai harness restart ai harness status DSH ai dsh version ai dsh update ai dsh update 维护 ai cache ai cache clear ai cache clear --deps ai cache clear --deps --yes ai update ai upgrade ai doctor GitHub ai github setup ai github status ai github test 状态 ai state export ai state import 项目生命周期 GitHub 仓库 │ ▼ ai add │ ▼ ~/projects/project-name │ ▼ ai use project-name │ ▼ ACTIVE_PROJECT / ACTIVE_PROJECT_PATH │ ▼ ai start │ ▼ Docker 工作站 │ ▼ ai run │ ▼ 开发服务器 │ ▼ ai preview │ ▼ 通过 SSH 隧道访问 Mac 浏览器 切换项目会复用同一个工作站镜像。 Harness 与 DSH 生命周期 DSH 安装、DSH 状态和 Harness 运行时元数据被有意分开。 runtime/npm-global/ └── DSH 安装 runtime/dsh/ └── DSH 状态/配置/历史 runtime/harness/ └── PID/日志/运行时元数据 在容器内部: DSH └── 127.0.0.1:4090 ▲ │ │ 本地桥接 │ Bridge └── 0.0.0.0:4091 │ ▼ 主机: 127.0.0.1:4090 这使得 DSH 服务可以保持容器内部运行,同时仍可通过 SSH 隧道在本地访问。 预览与 SSH 隧道 开发端口有意不公开。 当前固定的主机绑定包括: 127.0.0.1:3000 127.0.0.1:3001 127.0.0.1:8000 127.0.0.1:4090 -> container:4091 项目开发服务器可能使用其他端口,例如 5173。 运行: ai preview 示例: 检测到的应用端口: 5173 SSH 隧道命令: ssh -N \ -L 5173:172.20.0.2:5173 \ -L 4090:172.20.0.2:4091 \ mosabbir-cloud URL: 应用 : http://127.0.0.1:5173 DSH : http://127.0.0.1:4090 容器 IP 和应用端口是运行时值,不得硬编码。 Git 工作流 GitHub 是项目源代码的唯一事实来源。 典型工作流: ai use my-project ai start ai run 开发 ai pull ai push "feat: implement feature" ai app stop ai stop 工作站不要求将 PAT 或主机 SSH 私钥挂载到容器中。 缓存管理 检查 ai cache 这是只读操作。 安全清理 ai cache clear 在工作站运行时,清理可回收的 Docker 构建器缓存和 npm 缓存。 它不会有意删除: - DSH 状态; - DSH 安装; - .env; - Git 仓库; - Docker 镜像; - Docker 容器; - Docker 卷。 依赖清理 ai cache clear --deps 在确认后删除 ~/projects 下的 node_modules 目录。 非交互式: ai cache clear --deps --yes 推荐: ai app stop ai cache clear --deps ai run 依赖会根据项目的 lockfile 重新安装。 状态备份与恢复 项目源代码由 GitHub 保护。DSH 状态是独立的,应单独备份。 导出 ai state export 将状态归档存储在某处受保护的位置,最好是在主机之外。 导入 ai state import 只导入受信任的归档。 推荐的恢复流程: ai stop ai state import /path/to/backup.tar.gz ai start ai dsh version 备份建议 对于生产/运维环境,请对状态导出使用定期的加密且主机外的副本。 当前系统提供导出/导入功能;自动异地备份仍属于运维职责。 更新与升级 有三个独立的更新层。 CLI/仓库 ai update 或: ./update.sh 工作站镜像 ai upgrade 镜像从 GHCR 获取。 仅 DSH ai dsh update 推荐的 DSH 升级: ai state export ai dsh update ai harness restart ai dsh version DSH 更新不需要重建基础镜像,因为安装位于持久化的 runtime/npm-global 中。 CI/CD 工作站镜像在 GitHub Actions 中为 Linux ARM64 构建。 Push to main │ ▼ .github/workflows/image.yml │ ├── checkout ├── QEMU ARM64 ├── Docker Buildx ├── GHCR login ├── build linux/arm64 ├── push :latest ├── push : ├── inspect published images └── clean old tagged versions 已发布的引用: ghcr.io/mosabbir-maruf/ai-workstation:latest ghcr.io/mosabbir-maruf/ai-workstation: 为什么使用 SHA 标签? latest 很方便。提交 SHA 标签为回滚和调试提供了确定性的镜像引用。 对于受控部署: IMAGE=ghcr.io/mosabbir-maruf/ai-workstation: 比仅依赖 latest 更可取。 运维手册 每日开始 ai doctor ai start ai status ai run ai preview 开发期间 ai status ai app logs ai harness status ai shell 切换项目 ai use another-project ai run ai preview 一天结束时 ai app stop ai stop DSH 升级前 ai state export ai dsh update ai harness restart ai dsh version 工作站重大变更前 ai state export ai doctor 故障排查 工作站已停止 ai start 然后: ai status DSH/Harness 已停止 ai harness status ai harness restart 如果工作站本身已停止: ai start 应用启动失败 ai app status ai app logs 如果依赖需要干净地重新安装: ai app stop ai cache clear --deps ai run GitHub 身份验证失败 ai github status ai github test 检查 broker 和 GitHub App 配置。 不要将 PAT 或主机 SSH 私钥复制到工作站作为变通方案。 预览失败 ai status ai preview 从客户端机器运行生成的 SSH 命令,并验证应用正在检测到的端口上监听。 镜像问题 docker image ls ghcr.io/mosabbir-maruf/ai-workstation ai doctor 对于确定性部署,请使用带有 SHA 标签的镜像。 安全检查清单 [ ] 已启用 SSH 密钥身份验证 [ ] 已禁用 SSH 密码身份验证 [ ] 已禁用 Root SSH 登录 [ ] 防火墙默认拒绝传入连接 [ ] 仅开放必需的公共端口 [ ] 工作站以非 root 身份运行 [ ] 工作站未启用特权模式 [ ] 已丢弃所有 Linux capabilities [ ] 已启用 no-new-privileges [ ] 未挂载主机 Docker socket [ ] 未挂载主机 ~/.ssh [ ] 未使用主机网络 [ ] 仅在 /workspace 挂载活动项目 [ ] .env 未被跟踪 [ ] GitHub 私钥未被跟踪 [ ] DSH 凭据受到保护 [ ] GitHub 身份验证使用 broker/App 流程 [ ] 开发端口仅限 localhost [ ] DSH 状态有恢复备份 [ ] 镜像来源可信 运行: ai doctor 定期执行。 设计决策 一个工作站,多个项目 通用工具属于镜像的一部分。项目源代码保留在镜像之外,因此新项目不需要新镜像。 仅挂载活动项目 只有选定的仓库会暴露给工作站。这减少了对无关项目的意外访问。 持久化 DSH 安装 DSH 可以独立于基础工作站镜像进行更新。 持久化 DSH 状态 DSH 状态是工作流数据,而不是一次性的容器状态,因此它位于容器之外。 不使用 Docker socket 挂载 /var/run/docker.sock 会让容器访问主机 Docker 守护进程,并大幅增加影响范围。此架构有意避免这样做。 不使用主机 SSH 密钥 GitHub 访问通过 broker 进行,而不是将 ~/.ssh 挂载到工作站。 仅限本地的开发端口 开发服务器不应意外成为公共服务。SSH 隧道提供私有的操作员访问。 预构建的 ARM64 镜像 生产 VPS 使用预构建的 ARM64 镜像,而不是在本地编译镜像。 快速参考 text PROJECTS ai add ai remove ai list ai use GIT ai pull ai push "commit message" WORKSTATION ai start ai stop ai restart ai status ai logs ai shell ai run ai preview APP ai app stop ai app restart ai app status ai app logs HARNESS ai harness start ai harness stop ai harness restart ai harness status DSH ai dsh update [version] ai dsh version MAINTENANCE ai cache ai cache clear ai cache clear --deps ai cache clear --deps --yes ai update ai upgrade ai doctor GITHUB ai github setup ai github status ai github test STATE ai state export ai state import 贡献 欢迎贡献!在提交拉取请求之前,请阅读 CONTRIBUTING.md,了解有关开发工作流、分支命名、编码标准、shell 脚本编写指南和验证要求的详细信息。 安全 安全是 AI Workstation 的基础。如需报告安全漏洞,或进一步了解我们的容器隔离边界、凭据助手架构和纵深防御模型,请查阅 SECURITY.md。 许可证 本项目根据 MIT 许可证授权。请参阅 LICENSE 获取完整许可证文本。 维护者 由 Mosabbir Maruf 开发和维护。 GitHub Profile 维护者说明 此仓库是工作站基础设施和操作员工具的唯一可信来源。 请勿将以下内容纳入 Git: - 主机运行时状态; - 项目工作副本; - .env; - 私钥; - DSH 凭据; - 临时文件; - 缓存。 使用 GitHub 管理项目源代码,并使用状态导出机制进行 DSH/工作站恢复。