Skip to content

ahaoboy/ShellCrash

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,856 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ShellCrash TypeScript版本

这是ShellCrash的TypeScript重写版本,保持了与原始bash版本相同的功能和接口,但使用现代的TypeScript/Node.js技术栈实现。

特性

  • 🚀 现代化技术栈: 使用TypeScript和Node.js重写
  • 🔄 功能一致: 与原始bash版本保持完全的功能对等
  • 📁 目录结构: 保持与原版相同的目录层级和文件组织
  • 🛠️ 命令兼容: 支持所有原版命令和参数
  • 🌐 跨平台: 支持Windows、Linux、macOS
  • 📦 模块化: 清晰的模块化架构,易于维护和扩展

安装

从源码安装

# 克隆仓库
git clone https://github.com/juewuy/ShellCrash.git
cd ShellCrash

# 安装依赖
npm install

# 构建项目
npm run build

# 全局安装
npm run install-global

直接安装

# 使用npm全局安装
npm install -g shellcrash-ts

# 或使用yarn
yarn global add shellcrash-ts

使用方法

基本命令

# 显示帮助
shellcrash --help

# 安装ShellCrash
shellcrash install

# 显示主菜单
shellcrash menu
# 或简写
crash

# 启动服务
shellcrash start

# 停止服务
shellcrash start --stop

# 重启服务
shellcrash start --restart

# 任务管理
shellcrash task

主要功能

  1. 服务管理

    • 启动/停止/重启代理服务
    • 服务状态监控
    • 自动启动配置
  2. 配置管理

    • 导入配置文件
    • 在线生成配置
    • 订阅更新
    • 自定义规则和策略组
  3. 任务调度

    • 定时任务管理
    • 自动更新内核和脚本
    • 自定义任务执行
  4. 网络功能

    • 透明代理
    • DNS劫持
    • 防火墙规则管理
    • IPv6支持

项目结构

src/
├── index.ts              # 主入口文件
├── types/                # 类型定义
│   └── index.ts
├── utils/                # 工具类
│   ├── logger.ts         # 日志工具
│   ├── system.ts         # 系统工具
│   └── config.ts         # 配置管理
└── core/                 # 核心功能模块
    ├── InstallManager.ts # 安装管理器
    ├── MenuManager.ts    # 菜单管理器
    ├── StartManager.ts   # 服务管理器
    ├── TaskManager.ts    # 任务管理器
    └── WebgetManager.ts  # 网络下载管理器

配置文件

配置文件位置与原版保持一致:

  • 主配置: ~/.local/share/ShellCrash/configs/ShellCrash.cfg
  • Clash配置: ~/.local/share/ShellCrash/yamls/config.yaml
  • SingBox配置: ~/.local/share/ShellCrash/jsons/config.json
  • 任务配置: ~/.local/share/ShellCrash/task/
  • 日志文件: /tmp/ShellCrash/ShellCrash.log

开发

环境要求

  • Node.js >= 16.0.0
  • TypeScript >= 5.0.0

开发命令

# 安装依赖
npm install

# 开发模式运行
npm run dev

# 构建项目
npm run build

# 清理构建文件
npm run clean

代码结构

项目采用模块化设计:

  • SystemUtils: 系统操作封装
  • ConfigManager: 配置文件管理
  • Logger: 日志记录和推送
  • InstallManager: 安装和卸载逻辑
  • StartManager: 服务启动和管理
  • TaskManager: 任务调度和执行
  • WebgetManager: 网络下载和配置生成

兼容性

与原版的兼容性

  • ✅ 命令行接口完全兼容
  • ✅ 配置文件格式兼容
  • ✅ 目录结构兼容
  • ✅ 功能特性对等
  • ✅ 日志格式兼容

系统兼容性

  • ✅ Linux (Ubuntu, CentOS, Debian等)
  • ✅ macOS
  • ✅ Windows (WSL/Git Bash)
  • ✅ OpenWrt路由器
  • ✅ 各种嵌入式Linux系统

迁移指南

从bash版本迁移到TypeScript版本:

  1. 备份现有配置:

    cp -r ~/.local/share/ShellCrash ~/.local/share/ShellCrash.backup
  2. 安装TypeScript版本:

    npm install -g shellcrash-ts
  3. 验证功能:

    crash
  4. 配置会自动迁移,无需手动操作

故障排除

常见问题

  1. 权限问题

    # 确保有执行权限
    chmod +x /usr/local/bin/shellcrash
  2. Node.js版本过低

    # 升级Node.js到16+版本
    nvm install 16
    nvm use 16
  3. 配置文件路径

    # 检查配置文件是否存在
    ls -la ~/.local/share/ShellCrash/configs/

日志调试

# 查看运行日志
tail -f /tmp/ShellCrash/ShellCrash.log

# 查看详细错误信息
DEBUG=1 shellcrash start

贡献

欢迎提交Issue和Pull Request!

  1. Fork本仓库
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启Pull Request

许可证

本项目采用MIT许可证 - 查看 LICENSE 文件了解详情

致谢

  • 感谢原作者 Juewuy 创建了优秀的ShellCrash项目
  • 感谢所有为ShellCrash项目做出贡献的开发者们
  • 感谢Clash、SingBox等优秀的代理工具

联系方式


注意: 这是ShellCrash的TypeScript重写版本,旨在提供更好的开发体验和跨平台兼容性,同时保持与原版的完全功能对等。

About

Run sing-box/mihomo as client in shell

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Shell 74.6%
  • TypeScript 24.9%
  • JavaScript 0.5%