# dsh-termux-installer **Repository Path**: goodboy-admin/dsh-termux-installer ## Basic Information - **Project Name**: dsh-termux-installer - **Description**: No description available - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-09-02 - **Last Updated**: 2026-09-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 基于对代码结构(`lib/` 模块化设计、`tools/` 发布工具、`tests/` 测试套件)和原始文档的深入分析,以下是一份针对 **Gitee** 平台优化后的专业级 README 文档。 它在保留原文档所有功能说明的基础上,强化了**架构解读**、**安全性说明**和**测试验证**三个维度的展示,更符合开源专家的审阅标准。 --- # DSH Termux Installer [![Gitee Stars](https://gitee.com/goodboy-admin/dsh-termux-installer/badge/star.svg?theme=dark)](https://gitee.com/goodboy-admin/dsh-termux-installer) [![Gitee Forks](https://gitee.com/goodboy-admin/dsh-termux-installer/badge/fork.svg?theme=dark)](https://gitee.com/goodboy-admin/dsh-termux-installer) [![License](https://img.shields.io/badge/License-Mulan%20PSL%20v2-blue)](LICENSE) 在 **安卓 Termux** (含 F-Droid 版及 ZeroTermux 分支) 环境下,一键自动化编译与部署 **DeepSeek Harness** 的全流程解决方案。 ## 🎯 项目核心价值 本项目并非简单的脚本堆砌,而是一套经过严格测试的**工程化部署系统**: * **断点续装**: 支持 Ctrl+C 中断,重新运行可从失败步骤无缝恢复,告别重复编译。 * **智能路由**: 内置 3 个实测可用 Git 镜像站(2026-09 对 19 个候选逐个真协议实测筛选;同步滞后的缓存型镜像 gitclone.com 已剔除),按实测下载吞吐排定**默认池序**,探活淘汰死站后按序轮试;克隆带整体超时兜底、中断可续传,彻底解决国内下载慢、连接超时问题。 * **安全供应链**: 实现了 Git Commit 锚定校验 + SHA256 发布签名 + 模块自检三重防护,确保安装包未被篡改。 * **高性能编译**: 针对 Termux 环境定制 Node.js 编译参数,支持 V8 引擎性能三档调节。 * **工程化架构**: v91 重构后模块化设计(16个独立模块),逻辑解耦,易于维护和社区协作。 ## 🚀 快速开始 ### 方式一:Git 克隆(推荐) ```bash git clone https://gitee.com/goodboy-admin/dsh-termux-installer.git cd dsh-termux-installer bash dsh-install.sh ``` ### 方式二:单文件运行(适合极简主义) ```bash curl -fL --retry 3 -o dsh-install.sh https://gitee.com/goodboy-admin/dsh-termux-installer/raw/main/dsh-install.self-contained.sh && bash dsh-install.sh ``` > **注意**: 安装过程预计耗时 15~35 分钟(视设备性能和网络而定)。安装完成后请使用生成的 `~/dsh-start.sh` 管理服务。 ## 🛠 环境要求与兼容性 | 项目 | 要求/说明 | |------|----------| | **系统版本** | 安卓 11+ (API 30+) | | **CPU 架构** | aarch64 (arm64) | | **运行内存** | ≥ 3GB(推荐 4GB 以上以获得最佳编译性能) | | **存储空间** | ≥ 5GB 可用空间 | | **终端支持** | Termux (F-Droid) / ZeroTermux 及兼容分支 | ## ⚡ 性能调优 编译过程受环境变量控制,可根据设备电量与性能需求自行调整: ```bash # 默认模式(稳健优先) bash dsh-install.sh # 极致性能模式(需要稳定供电,建议 4GB+ RAM) export DSH_NODE_HEAP=8192 # V8 堆内存上限 (MB) export DSH_NODE_PERF=max # V8 优化级别 (std/max/min) export DSH_CFLAGS_PERF=fast # 编译器优化 (-O3 -flto) bash dsh-install.sh # 省电模式 export DSH_NODE_PERF=min bash dsh-install.sh ``` | 环境变量 | 可选值 | 说明 | |---------|--------|------| | `DSH_NODE_PERF` | `std` / `max` / `min` | V8 引擎优化策略,默认 `std` | | `DSH_CFLAGS_PERF` | `平衡` / `fast` / `min` | GCC/Clang 编译优化级别(注意:**必须使用中文** `平衡`,对应 `-O2`) | | `DSH_NODE_HEAP` | 数值 (MB) | Node.js 内存上限,默认 4096,OOM 时可尝试 8192 | ## 📖 安装后管理 安装脚本会在 `~/dsh-start.sh` 生成专属启动器。 ```bash # 前台启动(查看实时日志) bash ~/dsh-start.sh # 后台启动(释放终端) bash ~/dsh-start.sh --background # 局域网访问(需指定手机 WiFi IP) bash ~/dsh-start.sh web --host 192.168.1.50 # 查看状态与停止 bash ~/dsh-start.sh status bash ~/dsh-start.sh stop ``` ## 🧩 高级配置与环境变量 所有功能均通过环境变量控制,无需修改源码。 ### 常用开关 | 变量 | 作用 | |------|------| | `DSH_QUIET=1` | 关闭动画效果,纯文本输出,适合脚本调用 | | `DSH_SKIP_SYS_UPGRADE=1` | 跳过 `apt update && apt upgrade`,加快重装速度 | | `DSH_TAG=vXX.X` | 指定安装特定版本,格式如 `DSH_TAG=v92.0` | | `DSH_HOME=` | 自定义安装根目录(默认 `~/deepseek-harness`) | | `DSH_MIRROR=` | 强制指定镜像前缀 | | `DSH_LIST_TAGS=1` | 仅列出远程可用版本,不执行安装 | > 完整变量清单(含 HTTP 代理配置)请查阅 [FAQ 环境变量速查](docs/FAQ.md)。 ## 🔒 安全与信任模型 作为基础设施项目,我们极度重视安全性。本项目实现了多层次的**供应链安全**校验: 1. **传输防损**: 所有下载使用 Git 对象寻址(SHA-1),任何传输损坏都会在校验阶段失败并重试,不会静默安装半成品。 2. **来源校验 (v92.9+)**: * **Commit 锚定**: 下载后直连 GitHub 官方比对 Commit SHA,防范镜像站「整库调包」。 * **发布签名**: Release 资产附带 `SHA256SUMS.txt` 及 SSH 签名,可通过 `ssh-keygen` 验证发布者身份。 3. **单实例锁**: 安装脚本自带互斥锁,防止用户误操作导致多个安装进程互相踩踏。 4. **启动器隔离**: 服务默认仅监听 `127.0.0.1`,局域网访问必须显式通过 `--host` 参数确认,防止误暴露风险。 ### 发布物校验 (v92.9 起) 建议在运行前验证脚本完整性: ```bash # 1. 验证签名 (确保清单未被篡改) printf 'goodboy-admin@gitee.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGHcFMmwozdILSPdrVgITyPHkX7psJlVMEOGLuxiIShT dsh-termux-installer-release-signing\n' > allowed_signers ssh-keygen -Y verify -f allowed_signers -I goodboy-admin@gitee.com -n dsh-termux-installer -s SHA256SUMS.txt.sig < SHA256SUMS.txt # 2. 校验文件完整性 sha256sum -c SHA256SUMS.txt ``` ## 🏗 架构与模块设计 本项目采用 **v91 模块化重构** 架构,将逻辑拆分为独立的 Shell 模块以降低耦合度: * **主入口**: `dsh-install.sh` (加载模块) -> `dsh-install.self-contained.sh` (自包含打包) * **核心逻辑 (`lib/`)**: * `constants.sh`: 定义错误码、全局常量、镜像源列表。 * `git.sh`: Git 克隆策略、健康性检查、Commit 锚定校验。 * `mirrors.sh`: 镜像探活与池序路由逻辑。 * `state.sh`: 安装进度管理、断点续传状态机。 * `workspace.sh`: Node.js 构建配置、lefthook 预处理、pnpm 依赖管理。 * `output.sh` / `tty.sh`: 终端 UI 渲染、进度条与颜色控制。 * **模板系统 (`templates/`)**: * `launcher.sh`: 启动器模板,生成用户最终的 `~/dsh-start.sh`。 * **构建工具 (`tools/`)**: * `package_selfcontained.sh`: 将 `lib/` 目录打包成单文件 `dsh-install.self-contained.sh`。 > 详细设计文档见 [ARCHITECTURE.md](docs/ARCHITECTURE.md)。 ## ✅ 测试与质量保证 本项目包含 **6 套测试套件**,覆盖全安装链路: 1. **`run_tests.sh`**: 单元测试,验证单一函数逻辑(如 `resume_at`, `port_busy`)。 2. **`e2e_launcher.sh`**: 启动器端到端测试,模拟用户操作行为。 3. **`e2e_edge.sh`**: 边界异常测试(如端口冲突、非法参数、残留进程)。 4. **`termux_sim.sh`**: 模拟 Termux 环境下的完整安装流程。 5. **`version_switch_sim.sh`**: 验证版本切换逻辑的健壮性。 6. **`launcher_real.sh`**: 集成测试,在真实 Termux 环境中验证功能。 测试覆盖率极高,建议开发者在提交 PR 前运行: ```bash bash tests/run_tests.sh ``` ## 📚 文档导航 * [FAQ](docs/FAQ.md): 常见问题与故障排查。 * [启动器用法](docs/LAUNCHER_USAGE.md): `dsh-start.sh` 详细参数说明。 * [架构说明](docs/ARCHITECTURE.md): 脚本结构与发版约定。 * [更新日志](CHANGELOG.md): 版本迭代记录。 ## 🧹 卸载 ```bash # 1. 删除安装目录 rm -rf ~/deepseek-harness # 2. 删除启动器 rm -f ~/dsh-start.sh # 3. (可选) 清理全局 pnpm npm uninstall -g pnpm ``` --- 许可证: **木兰宽松许可证 v2 (Mulan PSL v2)**