imldy/MihomoConfigProcess

通过Cloudflare Works处理Clash订阅

★ 0Forks 0TypeScriptGitHub ↗Compare

README

Mihomo Config Process

一个基于 Cloudflare Workers 的 Mihomo 配置处理服务,用于自动合并订阅配置与模板配置。

🚀 功能特性

  • 自动配置合并:将 Mihomo 订阅配置与预设模板自动合并
  • 代理组智能更新:自动将订阅代理添加到模板的代理组中
  • 请求透传:完整转发原始请求的方法、头部和请求体
  • 错误处理:完善的错误处理和中文日志输出
  • 模块化设计:清晰的代码结构,易于维护和扩展

📋 使用方法

基本用法

https://your-worker-domain.com/[订阅URL]

示例

https://srp.imldy.fun/https://example.com/subscription.yaml

服务会:

  1. 获取指定的订阅配置
  2. 从 GitHub 获取预设的模板配置
  3. 将订阅中的代理合并到模板中
  4. 返回合并后的 YAML 配置

🛠️ 技术栈

  • 运行环境:Cloudflare Workers
  • 开发语言:TypeScript
  • 依赖库:
    • yaml - YAML 解析和序列化
  • 开发工具:
    • wrangler - Cloudflare Workers CLI
    • vitest - 单元测试框架

📁 项目结构

src/
├── index.ts          # 主入口文件
└── utils/
    ├── yaml.ts        # YAML 处理工具
    ├── config.ts      # 配置合并工具
    └── fetcher.ts     # 网络请求工具

🚀 部署指南

前置要求

  • Node.js 18+
  • Cloudflare 账户
  • Wrangler CLI

本地开发

  1. 克隆项目

    git clone [email protected]:imldy/MihomoConfigProcess.git
    cd MihomoConfigProcess
  2. 安装依赖

    npm install
  3. 启动开发服务器

    npm run dev

部署到 Cloudflare Workers

  1. 登录 Cloudflare

    wrangler login
  2. 部署项目

    npm run deploy
  3. 配置自定义域名(可选)

    • 在 Cloudflare 面板中添加自定义域名
    • 更新 wrangler.jsonc 中的 routes 配置

⚙️ 配置说明

wrangler.jsonc

{
  "name": "mihomo-config-process",
  "main": "src/index.ts",
  "compatibility_date": "2025-06-07",
  "routes": [
    {
      "pattern": "your-domain.com/*",
      "custom_domain": true
    }
  ]
}

模板配置

默认使用的模板配置来源:

https://raw.githubusercontent.com/imldy/ProxyToolsConfig/refs/heads/main/Mihomo/ConfigTemplate.yaml

🧪 测试

# 运行单元测试
npm test

# 运行开发服务器测试
npm run dev

📝 开发日志

  • ✅ 使用 yaml 库替换自定义 YAML 解析
  • ✅ 模块化代码结构
  • ✅ 完整的中文错误处理和日志
  • ✅ 支持自定义域名配置

🤝 贡献

欢迎提交 Issue 和 Pull Request!

📄 许可证

MIT License

🔗 相关链接

Contributors

imldy

Issues