Lazy loaded image
部署教程
MiSub - 部署教程
Words 3198Read Time 8 min
2026-2-14
2026-2-20
type
Post
status
Published
date
Feb 14, 2026
slug
misub2
summary
一款强大的开源订阅转换与聚合管理工具
tags
cloudflare
category
部署教程
icon
password
网址

MiSub: 一款强大的开源订阅转换与聚合管理工具

MiSub 界面预览

notion image
notion image
 

应用特点

  • 强大的订阅分组 (Profiles)
    • 自由组合: 你可以建立任意数量的订阅组,例如「家庭共享」、「影音串流」、「游戏专用」等。
    • 精准控制: 每个组可以自由勾选包含哪些「机场订阅」和「手动节点」。
    • 专属连结: 每个订阅组都会生成一条独立的订阅连结,档名也会自动使用你的分组名称,分享和管理都极为清晰方便。
    • 全选/全不选: 在编辑分组时,可以一键选择或取消选择所有订阅和节点,操作便捷。
  • 订阅与节点分离管理
    • 我们将可线上更新的「机场订阅」和你手动新增的「单个节点」作为两种不同实体进行独立管理,逻辑清晰,互不干扰。
  • 智慧化的管理体验
    • 批量汇入: 一键贴上多个订阅连结或节点连结,系统会自动分类,分别存入「订阅」和「手动节点」列表。
    • 一键排序: 对大量手动节点感到头痛?一键即可按照地区(如 HK, TW, SG, US 等)自动排序。
    • 手动拖曳排序: 无论是机场订阅还是手动节点,都可以直接拖曳排序,调整其在最终订阅档中的顺序。
    • 流量与到期时间显示: 在订阅卡片上清晰地显示机场的已用/总流量以及订阅到期时间,并以不同颜色高亮提醒。
    • 自动获取节点资讯: 新增订阅或节点时,系统会自动从连结中提取名称。
  • 精致的 UI/UX
    • 支援明亮/暗黑模式,并能跟随系统自动切换,提供舒适的视觉体验。
    • 带有「磨砂玻璃」质感的现代化卡片设计,风格统一。
    • 对长列表(订阅和手动节点)提供分页功能,保证大量资料下的性能和可用性。
    • 完善的交互逻辑,如“你有未保存的变更”提示、“放弃更改”功能、模态框编辑、以及各种操作的载入状态提示,体验流畅。
  • 强大且易用的订阅连结生成
    • 一个面板,满足所有需求: 在右侧的「生成订阅连结」面板中,你可以一步完成“选择内容(分组或全部)”和“选择格式”。
    • 自适应连结: 提供一条通用连结,可智慧识别客户端类型 (Clash, Sing-Box 等) 并下发对应配置。
    • 多格式支援: 为 Clash, Sing-Box, Surge, Loon, Base64 等主流客户端和格式提供专属订阅连结。
  • 安全与客製化
    • 密码保护: 管理介面由你自订的管理员密码进行保护,确保你的数据安全。
    • 高度可客製化: 在设定中,你可以自订输出档名、subconverter 位址、TG 推播等多种选项。
    • 双重存储支持: 支持 Cloudflare KV 和 D1 数据库两种存储方式,可根据需求自由选择。
  • D1 数据库支持
    • 解决写入限制: D1 数据库没有 KV 的写入频率限制,适合频繁更新的场景。
    • 一键数据迁移: 内置迁移工具,可将现有 KV 数据无缝迁移到 D1。
    • 智能存储选择: 在设置中可以选择使用 KV 存储(默认)或 D1 数据库。
    • 性能优化: 针对不同存储类型进行了专门优化,确保最佳性能。
  • 技术栈
    • 前端: Vue 3 + Vite + Tailwind CSS,带来现代化、响应迅速的用户界面。
    • 后端: Cloudflare Pages Functions,实现无服务器、全球分布的后端逻辑。
    • 资料储存: Cloudflare KV + D1 数据库(双重支持),提供灵活、高效的数据存储方案。
本项目天生为 Cloudflare Pages 设计,可以一键部署,享受全球 CDN 加速和无服务器的便利。

1. Fork 本仓库

首先打开 https://github.com/imzyb/MiSub 点击项目页面右上角 Star(点个星星!) 然后点击 Fork 按钮,将此项目复制到你自己的 GitHub 仓库中。

2. 创建 Cloudflare Pages 项目

  1. 登录 Cloudflare 控制台,进入 Workers & Pages
  1. 选择“创建应用程式” -> “Pages” -> “导入现有 Git 存储库”。
  1. 选择你刚刚 Fork 的仓库。
  1. “构建设置和部署” 页面,构建设定如下:
      • 框架预设: Vue (选择后,下方自动填写)
      • 构建命令: npm run build
      • 构建输出目录: dist
      • 点击“保存并部署”。

3. 绑定存储资源

存储类型选择指南
MiSub 提供 Cloudflare KV 和 D1 数据库两种存储方案,你可以根据自己的需求灵活选择 (不管你选 KV 还是 D1 ,KV都是优先必须设置的,否则无法正常使用。)
特性
KV 存储
D1 数据库
写入限制
有限制(1000次/天)
无限制
查询速度
极快
适用场景
读多写少、配置简单
频繁更新、数据量大
配置复杂度
简单
中等
推荐使用
轻度使用、初次尝试
重度使用、追求无忧体验
如何选择:
  • 新用户: 建议直接配置 D1 数据库,避免后续遇到写入限制,省心无忧。
  • 现有用户: 如果遇到 KV 写入限制,可使用内置迁移工具迁移到 D1,提升使用体验。
  • 轻度使用: 如果你不频繁更新订阅和节点,KV 存储完全够用,且配置更为简单。
  • 重度使用: D1 数据库是最佳选择,提供无写入限制的流畅体验,适合管理大量订阅和节点。

3.1 绑定 KV 命名空间(必须)

  • 不管你选 KV 还是 D1 这个 KV 是必须设置的,否则无法正常使用。
  • 在项目创建完成后,首先去创建一个你自己的 KV 命名空间。
  • 创建完成,进入该项目的“设置” -> “绑定” -> “KV 命名空间”。
  • 变数名称 (Variable name): MISUB_KV
  • KV 命名空间 (KV namespace): 选择刚创建的 KV 命名空间。

3.2 绑定 D1 数据库(可选,推荐)

如果你希望使用 D1 数据库来避免 KV 写入限制,请按以下步骤操作:
  • 创建 D1 数据库,名称随意,点击创建。
 
创建数据库表结构:
  • 可以看到 你的数据库已成功创建! ,我们点击右上角的 Explore Data
  • 创建第一个表,粘贴到 Query 编辑框中,然后点击蓝色 RUN 按钮。你应该能看到 左侧出现了一个 subscriptions 表,如下图,依次执行不在贴图。
    • 123456
      CREATE TABLE IF NOT EXISTS subscriptions ( id TEXT PRIMARY KEY, data TEXT NOT NULL, created_at DATETIME DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME DEFAULT CURRENT_TIMESTAMP);
  • 创建第二个表,清空 Query 编辑框 的内容,执行下方所有的代码。
    • 123456
      CREATE TABLE IF NOT EXISTS profiles ( id TEXT PRIMARY KEY, data TEXT NOT NULL, created_at DATETIME DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME DEFAULT CURRENT_TIMESTAMP);
  • 创建第三个表,清空 Query 编辑框 的内容,执行下方所有的代码。
    • 123456
      CREATE TABLE IF NOT EXISTS settings ( key TEXT PRIMARY KEY, value TEXT NOT NULL, created_at DATETIME DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME DEFAULT CURRENT_TIMESTAMP);
  • 然后看左侧列表。 三张都齐了,最后,清空 Query 编辑框 的内容,执行下方所有的代码。
  • 这样你的 D1 数据库 就成功创建完成。
在项目设定中绑定 D1 数据库:
  • 进入项目的”设置” -> “绑定” -> “添加” -> “D1 数据库”
  • 变数名称 (Variable name): MISUB_DB
  • D1 数据库: 选择刚创建的数据库

4. 设定环境变数

在项目的“设定” -> “环境变数”中,添加以下两个生产环境变数:
  • ADMIN_PASSWORD
    • : 设定一个你自己的管理员登录密码。
  • COOKIE_SECRET
    • : 设定一个用于加密 Cookie 的、足够长且随机的字串(例如,你可以使用密码产生器生成一个64位的随机字串)。随机密码生成器

5. 部署完成!

完成以上设定后,回到“部署”选项卡,重新部署一次你的项目,使环境变量设置生效。现在,你的 MiSub 就可以通过 Cloudflare 提供所提供的域名访问了!你也可以自行设置自定义域名,更好记。
特别注意: 后续的版本迭代添加了 后台路径 所以默认域名是无法访问的需要在你在域名地址后添加 /login 既可正确打开。
自定义订阅Token、订阅组分享Token
  • 简单来说,它就是让你给订阅链接自定义一个。 专属的、好记的“密码”或“名字” ,订阅组分享Token:比如,你给朋友一个链接。如果哪天不想让他用了,/zrfme/py 只需在后台改掉这个,这个名字为朋友,他手里的订阅链接就立刻失效了,而你自己的其他链接完全不受影响。
SubConverter后端地址
  • 后端地址默认是使用的肥羊的后端,我们可以自行设置一个 订阅转换前端后端 网站收集 这里的,都可以进行设置。你也可以使用我维护的 subapi.zrfme.com
数据迁移
  • 切换为 D1数据库 。(注意: 数据迁移是单向的,迁移后建议不要再切换回 KV 存储,以免数据不一致。)
  1. 配置 D1 数据库(参考上面的步骤 3.2,确保 D1 数据库已创建并绑定)。
  1. 登录管理界面,进入”设置”页面。
  1. 点击 迁移数据到 D1 数据 按钮。
  1. 确认迁移,系统会自动将数据从 KV 迁移到 D1。
  1. 迁移完成后,存储类型会自动切换为 D1 数据库。
Telegram Bot:
  • 设置成功后,每当 MiSub 自动或手动更新你的订阅时,它都会通过你自己创建的 Telegram 机器人,实时向你发送一条通知消息,你无需登录任何网站,只需看一眼 Telegram 消息,就能对自己的订阅状态了如指掌。
第一步:创建机器人并获取 Token
  1. 在 Telegram 中,搜索 @BotFather 并开始对话(这是官方用来创建和管理机器人的机器人)。
  1. 发送指令 /newbot 给它。
  1. 按照提示,依次为你的机器人取一个名字(例如 我的订阅助手)和一个用户名(必须以 bot 结尾,例如 zrfsub_bot)。
  1. 创建成功后,@BotFather 会发来一条包含 API Token 的消息。它是一长串字符,请完整复制下来,并且私聊一下你刚创建的机器人,避免收不到消息
第二步:获取你的 Chat ID
  1. 在 Telegram 中,加入群组 https://t.me/lsmoo 并开始对话 群验证一定要做,机器人会给你发信息
  1. 发送指令 /id@KinhRoBot 给它。
  1. 机器人会立刻回复你的个人信息,其中就包含了你的 ID。它通常是一串数字,请复制下来。
第三步:在 MiSub 中填写信息
  1. 回到 MiSub 的设置页面。
  1. 找到 Telegram Bot 相关的输入框。
  1. 将刚刚复制的 Bot TokenChat ID 粘贴到对应的位置。
  1. 保存设置。
第四步:机器人订阅通知
  1. 随便使用一个软件,更新订阅地址,就可以收到订阅被访问的通知啦。这个还有流量使用提醒。
上一篇
cf-workers-status-page部署教程
下一篇
苏州旅游第二天早上