# shell-ready **Repository Path**: ricsy/shell-ready ## Basic Information - **Project Name**: shell-ready - **Description**: No description available - **Primary Language**: Shell - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-07 - **Last Updated**: 2026-03-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # shell-ready - 自动化环境部署工具

Version Platform License

> 一键部署标准化开发环境,告别重复配置,开箱即用。支持全量部署和按需安装,完全配置驱动,无需修改脚本代码。 ## ✨ 核心特性 - 🎯 **多系统兼容**:同时支持 Linux (Ubuntu/CentOS/RHEL) 和 macOS 系统 - 🧩 **模块化设计**:核心引擎和业务模块完全分离,易扩展易维护 - ⚙️ **配置驱动**:所有配置集中在 `config.yaml`,自定义部署内容无需改代码 - 🔒 **生产级可靠**:脚本具备幂等性,多次运行不会出错,完善的错误处理机制 - 📝 **完整日志**:彩色分级日志,所有操作自动存档,便于审计和问题排查 - 🚀 **CI/CD 友好**:内置代码质量检查、格式化、Docker 镜像构建等完整工具链 - 🎨 **灵活部署**:支持全量部署、按需部署指定模块、干跑预览等多种运行模式 - 🛠️ **开箱即用**:内置常用开发工具栈,覆盖终端、包管理、AI 服务等常见场景 ## 📁 目录结构 ``` shell-ready/ ├── install.sh # 主入口脚本 ├── config.yaml # 统一配置文件(所有自定义修改都在这里) ├── package.json # NPM 命令配置 ├── Dockerfile # 容器化部署镜像 ├── core/ # 核心引擎层(无需修改) │ ├── constants.sh # 全局常量、路径、退出码定义 │ └── engine.sh # 核心能力:日志系统、配置解析、任务调度、工具函数 ├── modules/ # 业务模块层(可按需扩展) │ ├── base.sh # 基础依赖:自动安装 jq/yq/curl 等公共依赖 │ ├── git.sh # Git 版本控制工具模块 │ ├── ohmyzsh.sh # Oh My Zsh 终端增强模块 │ ├── npm.sh # NPM/Node.js 环境模块 │ ├── brew.sh # Homebrew macOS 包管理器模块 │ ├── ollama.sh # Ollama 本地大模型服务模块 │ └── openclaw.sh # OpenClaw AI 网关服务模块 ├── scripts/ # 辅助工具脚本 │ ├── shfmt.sh # Shell 脚本格式检查/自动修复 │ ├── shellcheck.sh # Shell 脚本静态代码检查 │ ├── lint.sh # 统一代码质量检查入口 │ ├── format.sh # 统一代码格式化入口 │ └── build-docker.sh # Docker 镜像构建脚本 └── logs/ # 运行日志自动存档目录(自动生成) ``` ## 🚀 快速开始 ### 环境要求 - Linux/macOS 系统 - Bash 4.0+ - Root 或 sudo 权限(安装系统包时需要) ### 安装使用 #### 1. 克隆项目 ```bash git clone https://github.com/ricsy/shell-ready.git cd shell-ready ``` #### 2. 自定义配置(可选) 编辑 `config.yaml` 文件: - 在 `run` 数组中调整要部署的模块顺序 - 在 `module_tasks` 中自定义每个模块要执行的任务 - 在 `knowledge` 下修改各个模块的具体配置(镜像源、版本、参数等) #### 3. 执行部署 ```bash # 方式1:使用 NPM 命令(推荐) npm run install:all # 全量部署所有配置的模块 npm run install:module git ohmyzsh # 只部署指定模块(支持多个) # 方式2:直接运行脚本 chmod +x install.sh sudo ./install.sh -a # 全量部署 sudo ./install.sh -m git -m ohmyzsh # 按需部署 ``` #### 4. 预览部署(干跑模式) 不实际执行操作,只预览要执行的步骤: ```bash npm run dry-run:all # 预览全量部署 npm run dry-run:module git # 预览指定模块部署 ``` ### 常用命令 | 命令 | 功能说明 | | ---------------------- | ------------------------------------------ | | `npm run help` | 查看完整帮助信息 | | `npm run lint` | 执行全量代码质量检查(提交代码前推荐执行) | | `npm run format` | 自动修复所有可格式化的代码问题 | | `npm run build:docker` | 构建 Docker 部署镜像 | | `npm run shellcheck` | 执行 Shell 脚本静态代码检查 | ## ⚙️ 配置说明 ### 核心配置项 ```yaml # 执行模块顺序列表(按数组顺序依次执行,可根据需求增删) run: [ohmyzsh, git, npm, brew, ollama, openclaw] # 各模块支持的任务类型列表 module_tasks: ohmyzsh: [install, installPlugins, update, uninstall, check] git: [install, updateConfig, update, uninstall, check] # ... 其他模块配置 ``` ### 任务类型说明 | 任务类型 | 说明 | | --------------------- | ----------------------------------------------------------- | | `check` | 检查软件是否已安装/功能是否正常,所有安装类任务自动前置执行 | | `install` | 软件安装(自动执行 check 检查,安装失败自动回滚) | | `uninstall` | 软件卸载,清理配置文件和残留数据 | | `update` | 更新软件到最新版本,保留原有配置 | | `setEnv` | 设置系统环境变量,自动写入 shell 配置文件 | | `setSystemd` | 配置 Systemd 后台服务,设置开机自启和重启策略 | | `updateConfig` | 更新软件的自定义配置文件 | | `installDependencies` | 安装软件运行所需的系统依赖包 | | `installPlugins` | 安装软件的扩展/插件 | ## 🐳 Docker 使用 ### 构建镜像 ```bash npm run build:docker v1.0.0 # 或手动执行 docker build -t shell-ready:v1.0.0 . ``` ### 运行容器 ```bash # 全量部署 docker run --privileged -v $(pwd)/config.yaml:/opt/shell-ready/config.yaml shell-ready:v1.0.0 -a # 按需部署指定模块 docker run --privileged -v $(pwd)/config.yaml:/opt/shell-ready/config.yaml shell-ready:v1.0.0 -m git -m npm # 查看帮助 docker run --rm shell-ready:v1.0.0 -h ``` ### 进入容器 ``` docker exec -it -u root shell-ready-runner /bin/bash -l ``` ### Docker Compose 使用 #### 生产环境配置 ```bash # 启动服务 docker-compose up -d # 查看日志 docker-compose logs -f # 停止服务 docker-compose down ``` #### OpenClaw 一键部署(推荐) 使用 `docker-compose.openclaw.yaml` 可以一键部署 OpenClaw AI 网关服务,容器启动时会自动执行 `install.sh` 安装所有模块。 ```bash # 1. 复制环境变量配置 cp .env.example .env # 2. 编辑 .env 配置必要的环境变量 # 至少需要配置: # - OPENCLAW_GATEWAY_TOKEN(网关 Token) # - MINIMAX_API_KEY 或 VOLCENGINE_API_KEY(至少一个模型 API Key) # 3. 启动 OpenClaw 服务 docker-compose -f docker-compose.openclaw.yaml up -d # 4. 查看启动日志 docker-compose -f docker-compose.openclaw.yaml logs -f # 5. 进入容器 docker exec -it openclaw-gateway /bin/bash ``` #### 暴露的端口 | 端口 | 说明 | |------|------| | 18789 | OpenClaw Gateway HTTP 端口 | | 18790 | OpenClaw Bridge 端口 | ## 🤝 开发贡献 ### 代码规范 项目使用严格的 Shell 代码规范,提交代码前必须执行检查: ```bash npm run lint # 执行所有代码质量检查 npm run format # 自动修复格式问题 ``` ### 新增模块 只需在 `modules/` 目录下新增 `.sh` 文件,实现约定的函数接口即可: ```bash #!/bin/bash # 新增模块示例 moduleName_install() { # 安装逻辑 } moduleName_updateConfig() { # 配置更新逻辑 } moduleName_check() { # 状态检查逻辑 } ``` ## ❓ 常见问题 ### Q:执行脚本提示权限不足? A:安装系统级软件需要 root 权限,请使用 sudo 执行命令,或切换到 root 用户。 ### Q:可以只安装部分模块吗? A:完全支持,使用 `npm run install:module <模块名1> <模块名2>` 即可按需安装。 ### Q:脚本执行失败会导致系统异常吗? A:不会,所有脚本都具备幂等性和错误处理机制,任何步骤失败都会立即退出,不会留下半截状态。 ### Q:支持 CentOS 7/8 吗? A:支持,已适配 Ubuntu/Debian 系列和 CentOS/RHEL/Fedora 系列主流 Linux 发行版。 --- ⭐ 如果这个项目对你有帮助,欢迎 Star 支持!