Skip to content

Repository files navigation

✨ SubWeb

优雅的 Subconverter 订阅转换前端

GitHub starsDocker PullsLicense

🌐 在线演示🚀 快速开始📦 部署方式☁️ Cloudflare Pages 部署


📖 项目简介

SubWeb 是一个轻量的 Vue 3subconverter 前端,帮助用户生成 Clash、Surge、Quantumult X 等客户端的订阅链接。

本项目 Fork 自 stilleshan/subweb,在原版基础上修复了一些 BUG 并进行了功能增强。

✨ 特性亮点

  • 🎨 现代化界面 — 原生 Vue 3 响应式界面,支持键盘操作与深色模式
  • ☁️ Cloudflare 原生支持 — 新增 Cloudflare Pages/Workers 部署方案,无需服务器
  • 🔗 可配置的短链接 — 默认关闭;部署者可按需配置自己的短链接服务
  • 🐳 Docker 一键部署 — 支持 x86 与 ARM 架构,快速上线
  • ⚙️ 高度可配置 — 支持自定义后端 API、远程配置、站点名称等

🧩 相关项目

项目说明
Aethersailor/subweb📌 本项目 — 订阅转换前端
Aethersailor/SubConverter-Extended🔗 配套改进型后端服务,支持更多功能
Aethersailor/cf-shortlink-worker🔗 配套短链接服务,Cloudflare Workers 部署
Aethersailor/Custom_OpenClash_Rules📜 自定义 OpenClash 分流规则

🚀 快速开始

在线体验

访问演示站点,立即体验订阅转换功能:

👉 https://sub.asailor.org


📦 部署方式

方式一:Cloudflare Pages(推荐)

全套服务均可部署于 Cloudflare 云端,无需服务器或 VPS

详细教程请参阅 → DEPLOY_CLOUDFLARE.md

简要步骤:

  1. Fork 本项目到你的 GitHub 账号
  2. 在 Cloudflare Pages 中连接你的仓库
  3. 设置构建命令为 npm run build,输出目录为 dist
  4. 通过环境变量自定义配置(可选)

方式二:Docker 部署

🟢 本地快速部署

docker run -d --name subweb --restart always \
-p 18080:80 \
aethersailor/subweb:latest

访问:http://127.0.0.1:18080

🔧 自定义配置部署

挂载配置目录,实现自定义站点名称、后端 API、短链接服务等:

docker run -d --name subweb --restart always \
-p 18080:80 \
-v /your/path/conf:/usr/share/nginx/html/conf \
-e API_URL='https://api.example.com' \
-e SITE_NAME='我的订阅转换' \
aethersailor/subweb:latest

未传入环境变量时,启动脚本只会在挂载目录缺少 config.js 时写入默认配置;已有配置不会被覆盖。传入 API_URLSITE_NAMESHORT_URLENABLE_SHORT_URL 时,会在每次启动时原子地重新生成配置,环境变量修改可稳定生效。

镜像同时发布 linux/amd64linux/arm64。镜像只负责提供静态前端,不会在运行服务器上编译;构建由 GitHub Actions 完成。

镜像同步发布到 Docker Hub(aethersailor/subweb:latest)和 GitHub Container Registry(ghcr.io/aethersailor/subweb:latest),可任选其一使用。正式版本发布后,也可将 latest 替换为对应的 v* 版本标签。

💡 推荐:使用 Nginx 反向代理并配置 HTTPS


⚙️ 配置说明

config.js 配置文件示例:

window.config={// 网站标题siteName: 'Subconverter Web',// 后端 API 列表apiBackends: [{name: 'Aethersailor 后端',url: 'https://api.asailor.org',},{name: '肥羊增强型后端',url: 'https://api.v1.mk',},],// 短链接功能开关// 默认关闭;开启会把完整转换链接发送到短链接服务enableShortUrl: false,// 短链接服务地址shortUrl: '',// 首页菜单menuItem: [{title: '通知频道',link: 'https://t.me/custom_openclash_rules',target: '_blank',},{title: '聊天群组',link: 'https://t.me/custom_openclash_rules_group',target: '_blank',},{title: 'Custom_OpenClash_Rules',link: 'https://github.com/Aethersailor/Custom_OpenClash_Rules',target: '_blank',},],// 远程配置列表remoteConfigOptions: [{value:
'https://raw.githubusercontent.com/Aethersailor/Custom_OpenClash_Rules/refs/heads/main/cfg/Custom_Clash.ini',text: 'Aethersailor 规则 标准版',},{value:
'https://raw.githubusercontent.com/Aethersailor/Custom_OpenClash_Rules/refs/heads/main/cfg/Custom_Clash_Lite.ini',text: 'Aethersailor 规则 轻量版',},{value:
'https://raw.githubusercontent.com/Aethersailor/Custom_OpenClash_Rules/refs/heads/main/cfg/Custom_Clash_GFW.ini',text: 'Aethersailor 规则 极简版(GFW)',},{value:
'https://raw.githubusercontent.com/Aethersailor/Custom_OpenClash_Rules/refs/heads/main/cfg/Custom_Clash_Full.ini',text: 'Aethersailor 规则 重度分流版',},],};

🔗 致谢

本项目基于以下优秀项目进行开发:


📄 开源协议

本项目基于 GPL-3.0 协议开源。


Made with ❤️ by Aethersailor

About

subweb 是基于 subconverter 订阅转换的前端项目,方便用户快速生成各平台的订阅链接。支持 Cloudflare Pages 云端部署。

Resources

Stars

53 stars

Watchers

0 watching

Forks

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - Aethersailor/subweb: subweb 是基于 subconverter 订阅转换的前端项目,方便用户快速生成各平台的订阅链接。支持 Cloudflare Pages 云端部署。 · GitHub
Skip to content

Repository files navigation

✨ SubWeb

优雅的 Subconverter 订阅转换前端

GitHub starsDocker PullsLicense

🌐 在线演示🚀 快速开始📦 部署方式☁️ Cloudflare Pages 部署


📖 项目简介

SubWeb 是一个轻量的 Vue 3subconverter 前端,帮助用户生成 Clash、Surge、Quantumult X 等客户端的订阅链接。

本项目 Fork 自 stilleshan/subweb,在原版基础上修复了一些 BUG 并进行了功能增强。

✨ 特性亮点

  • 🎨 现代化界面 — 原生 Vue 3 响应式界面,支持键盘操作与深色模式
  • ☁️ Cloudflare 原生支持 — 新增 Cloudflare Pages/Workers 部署方案,无需服务器
  • 🔗 可配置的短链接 — 默认关闭;部署者可按需配置自己的短链接服务
  • 🐳 Docker 一键部署 — 支持 x86 与 ARM 架构,快速上线
  • ⚙️ 高度可配置 — 支持自定义后端 API、远程配置、站点名称等

🧩 相关项目

项目说明
Aethersailor/subweb📌 本项目 — 订阅转换前端
Aethersailor/SubConverter-Extended🔗 配套改进型后端服务,支持更多功能
Aethersailor/cf-shortlink-worker🔗 配套短链接服务,Cloudflare Workers 部署
Aethersailor/Custom_OpenClash_Rules📜 自定义 OpenClash 分流规则

🚀 快速开始

在线体验

访问演示站点,立即体验订阅转换功能:

👉 https://sub.asailor.org


📦 部署方式

方式一:Cloudflare Pages(推荐)

全套服务均可部署于 Cloudflare 云端,无需服务器或 VPS

详细教程请参阅 → DEPLOY_CLOUDFLARE.md

简要步骤:

  1. Fork 本项目到你的 GitHub 账号
  2. 在 Cloudflare Pages 中连接你的仓库
  3. 设置构建命令为 npm run build,输出目录为 dist
  4. 通过环境变量自定义配置(可选)

方式二:Docker 部署

🟢 本地快速部署

docker run -d --name subweb --restart always \
-p 18080:80 \
aethersailor/subweb:latest

访问:http://127.0.0.1:18080

🔧 自定义配置部署

挂载配置目录,实现自定义站点名称、后端 API、短链接服务等:

docker run -d --name subweb --restart always \
-p 18080:80 \
-v /your/path/conf:/usr/share/nginx/html/conf \
-e API_URL='https://api.example.com' \
-e SITE_NAME='我的订阅转换' \
aethersailor/subweb:latest

未传入环境变量时,启动脚本只会在挂载目录缺少 config.js 时写入默认配置;已有配置不会被覆盖。传入 API_URLSITE_NAMESHORT_URLENABLE_SHORT_URL 时,会在每次启动时原子地重新生成配置,环境变量修改可稳定生效。

镜像同时发布 linux/amd64linux/arm64。镜像只负责提供静态前端,不会在运行服务器上编译;构建由 GitHub Actions 完成。

镜像同步发布到 Docker Hub(aethersailor/subweb:latest)和 GitHub Container Registry(ghcr.io/aethersailor/subweb:latest),可任选其一使用。正式版本发布后,也可将 latest 替换为对应的 v* 版本标签。

💡 推荐:使用 Nginx 反向代理并配置 HTTPS


⚙️ 配置说明

config.js 配置文件示例:

window.config={// 网站标题siteName: 'Subconverter Web',// 后端 API 列表apiBackends: [{name: 'Aethersailor 后端',url: 'https://api.asailor.org',},{name: '肥羊增强型后端',url: 'https://api.v1.mk',},],// 短链接功能开关// 默认关闭;开启会把完整转换链接发送到短链接服务enableShortUrl: false,// 短链接服务地址shortUrl: '',// 首页菜单menuItem: [{title: '通知频道',link: 'https://t.me/custom_openclash_rules',target: '_blank',},{title: '聊天群组',link: 'https://t.me/custom_openclash_rules_group',target: '_blank',},{title: 'Custom_OpenClash_Rules',link: 'https://github.com/Aethersailor/Custom_OpenClash_Rules',target: '_blank',},],// 远程配置列表remoteConfigOptions: [{value:
'https://raw.githubusercontent.com/Aethersailor/Custom_OpenClash_Rules/refs/heads/main/cfg/Custom_Clash.ini',text: 'Aethersailor 规则 标准版',},{value:
'https://raw.githubusercontent.com/Aethersailor/Custom_OpenClash_Rules/refs/heads/main/cfg/Custom_Clash_Lite.ini',text: 'Aethersailor 规则 轻量版',},{value:
'https://raw.githubusercontent.com/Aethersailor/Custom_OpenClash_Rules/refs/heads/main/cfg/Custom_Clash_GFW.ini',text: 'Aethersailor 规则 极简版(GFW)',},{value:
'https://raw.githubusercontent.com/Aethersailor/Custom_OpenClash_Rules/refs/heads/main/cfg/Custom_Clash_Full.ini',text: 'Aethersailor 规则 重度分流版',},],};

🔗 致谢

本项目基于以下优秀项目进行开发:


📄 开源协议

本项目基于 GPL-3.0 协议开源。


Made with ❤️ by Aethersailor

About

subweb 是基于 subconverter 订阅转换的前端项目,方便用户快速生成各平台的订阅链接。支持 Cloudflare Pages 云端部署。

Resources

Stars

53 stars

Watchers

0 watching

Forks

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - Aethersailor/subweb: subweb 是基于 subconverter 订阅转换的前端项目,方便用户快速生成各平台的订阅链接。支持 Cloudflare Pages 云端部署。 · GitHub
Skip to content

Repository files navigation

✨ SubWeb

优雅的 Subconverter 订阅转换前端

GitHub starsDocker PullsLicense

🌐 在线演示🚀 快速开始📦 部署方式☁️ Cloudflare Pages 部署


📖 项目简介

SubWeb 是一个轻量的 Vue 3subconverter 前端,帮助用户生成 Clash、Surge、Quantumult X 等客户端的订阅链接。

本项目 Fork 自 stilleshan/subweb,在原版基础上修复了一些 BUG 并进行了功能增强。

✨ 特性亮点

  • 🎨 现代化界面 — 原生 Vue 3 响应式界面,支持键盘操作与深色模式
  • ☁️ Cloudflare 原生支持 — 新增 Cloudflare Pages/Workers 部署方案,无需服务器
  • 🔗 可配置的短链接 — 默认关闭;部署者可按需配置自己的短链接服务
  • 🐳 Docker 一键部署 — 支持 x86 与 ARM 架构,快速上线
  • ⚙️ 高度可配置 — 支持自定义后端 API、远程配置、站点名称等

🧩 相关项目

项目说明
Aethersailor/subweb📌 本项目 — 订阅转换前端
Aethersailor/SubConverter-Extended🔗 配套改进型后端服务,支持更多功能
Aethersailor/cf-shortlink-worker🔗 配套短链接服务,Cloudflare Workers 部署
Aethersailor/Custom_OpenClash_Rules📜 自定义 OpenClash 分流规则

🚀 快速开始

在线体验

访问演示站点,立即体验订阅转换功能:

👉 https://sub.asailor.org


📦 部署方式

方式一:Cloudflare Pages(推荐)

全套服务均可部署于 Cloudflare 云端,无需服务器或 VPS

详细教程请参阅 → DEPLOY_CLOUDFLARE.md

简要步骤:

  1. Fork 本项目到你的 GitHub 账号
  2. 在 Cloudflare Pages 中连接你的仓库
  3. 设置构建命令为 npm run build,输出目录为 dist
  4. 通过环境变量自定义配置(可选)

方式二:Docker 部署

🟢 本地快速部署

docker run -d --name subweb --restart always \
-p 18080:80 \
aethersailor/subweb:latest

访问:http://127.0.0.1:18080

🔧 自定义配置部署

挂载配置目录,实现自定义站点名称、后端 API、短链接服务等:

docker run -d --name subweb --restart always \
-p 18080:80 \
-v /your/path/conf:/usr/share/nginx/html/conf \
-e API_URL='https://api.example.com' \
-e SITE_NAME='我的订阅转换' \
aethersailor/subweb:latest

未传入环境变量时,启动脚本只会在挂载目录缺少 config.js 时写入默认配置;已有配置不会被覆盖。传入 API_URLSITE_NAMESHORT_URLENABLE_SHORT_URL 时,会在每次启动时原子地重新生成配置,环境变量修改可稳定生效。

镜像同时发布 linux/amd64linux/arm64。镜像只负责提供静态前端,不会在运行服务器上编译;构建由 GitHub Actions 完成。

镜像同步发布到 Docker Hub(aethersailor/subweb:latest)和 GitHub Container Registry(ghcr.io/aethersailor/subweb:latest),可任选其一使用。正式版本发布后,也可将 latest 替换为对应的 v* 版本标签。

💡 推荐:使用 Nginx 反向代理并配置 HTTPS


⚙️ 配置说明

config.js 配置文件示例:

window.config={// 网站标题siteName: 'Subconverter Web',// 后端 API 列表apiBackends: [{name: 'Aethersailor 后端',url: 'https://api.asailor.org',},{name: '肥羊增强型后端',url: 'https://api.v1.mk',},],// 短链接功能开关// 默认关闭;开启会把完整转换链接发送到短链接服务enableShortUrl: false,// 短链接服务地址shortUrl: '',// 首页菜单menuItem: [{title: '通知频道',link: 'https://t.me/custom_openclash_rules',target: '_blank',},{title: '聊天群组',link: 'https://t.me/custom_openclash_rules_group',target: '_blank',},{title: 'Custom_OpenClash_Rules',link: 'https://github.com/Aethersailor/Custom_OpenClash_Rules',target: '_blank',},],// 远程配置列表remoteConfigOptions: [{value:
'https://raw.githubusercontent.com/Aethersailor/Custom_OpenClash_Rules/refs/heads/main/cfg/Custom_Clash.ini',text: 'Aethersailor 规则 标准版',},{value:
'https://raw.githubusercontent.com/Aethersailor/Custom_OpenClash_Rules/refs/heads/main/cfg/Custom_Clash_Lite.ini',text: 'Aethersailor 规则 轻量版',},{value:
'https://raw.githubusercontent.com/Aethersailor/Custom_OpenClash_Rules/refs/heads/main/cfg/Custom_Clash_GFW.ini',text: 'Aethersailor 规则 极简版(GFW)',},{value:
'https://raw.githubusercontent.com/Aethersailor/Custom_OpenClash_Rules/refs/heads/main/cfg/Custom_Clash_Full.ini',text: 'Aethersailor 规则 重度分流版',},],};

🔗 致谢

本项目基于以下优秀项目进行开发:


📄 开源协议

本项目基于 GPL-3.0 协议开源。


Made with ❤️ by Aethersailor

About

subweb 是基于 subconverter 订阅转换的前端项目,方便用户快速生成各平台的订阅链接。支持 Cloudflare Pages 云端部署。

Resources

Stars

53 stars

Watchers

0 watching

Forks

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - Aethersailor/subweb: subweb 是基于 subconverter 订阅转换的前端项目,方便用户快速生成各平台的订阅链接。支持 Cloudflare Pages 云端部署。 · GitHub
Skip to content

Repository files navigation

✨ SubWeb

优雅的 Subconverter 订阅转换前端

GitHub starsDocker PullsLicense

🌐 在线演示🚀 快速开始📦 部署方式☁️ Cloudflare Pages 部署


📖 项目简介

SubWeb 是一个轻量的 Vue 3subconverter 前端,帮助用户生成 Clash、Surge、Quantumult X 等客户端的订阅链接。

本项目 Fork 自 stilleshan/subweb,在原版基础上修复了一些 BUG 并进行了功能增强。

✨ 特性亮点

  • 🎨 现代化界面 — 原生 Vue 3 响应式界面,支持键盘操作与深色模式
  • ☁️ Cloudflare 原生支持 — 新增 Cloudflare Pages/Workers 部署方案,无需服务器
  • 🔗 可配置的短链接 — 默认关闭;部署者可按需配置自己的短链接服务
  • 🐳 Docker 一键部署 — 支持 x86 与 ARM 架构,快速上线
  • ⚙️ 高度可配置 — 支持自定义后端 API、远程配置、站点名称等

🧩 相关项目

项目说明
Aethersailor/subweb📌 本项目 — 订阅转换前端
Aethersailor/SubConverter-Extended🔗 配套改进型后端服务,支持更多功能
Aethersailor/cf-shortlink-worker🔗 配套短链接服务,Cloudflare Workers 部署
Aethersailor/Custom_OpenClash_Rules📜 自定义 OpenClash 分流规则

🚀 快速开始

在线体验

访问演示站点,立即体验订阅转换功能:

👉 https://sub.asailor.org


📦 部署方式

方式一:Cloudflare Pages(推荐)

全套服务均可部署于 Cloudflare 云端,无需服务器或 VPS

详细教程请参阅 → DEPLOY_CLOUDFLARE.md

简要步骤:

  1. Fork 本项目到你的 GitHub 账号
  2. 在 Cloudflare Pages 中连接你的仓库
  3. 设置构建命令为 npm run build,输出目录为 dist
  4. 通过环境变量自定义配置(可选)

方式二:Docker 部署

🟢 本地快速部署

docker run -d --name subweb --restart always \
-p 18080:80 \
aethersailor/subweb:latest

访问:http://127.0.0.1:18080

🔧 自定义配置部署

挂载配置目录,实现自定义站点名称、后端 API、短链接服务等:

docker run -d --name subweb --restart always \
-p 18080:80 \
-v /your/path/conf:/usr/share/nginx/html/conf \
-e API_URL='https://api.example.com' \
-e SITE_NAME='我的订阅转换' \
aethersailor/subweb:latest

未传入环境变量时,启动脚本只会在挂载目录缺少 config.js 时写入默认配置;已有配置不会被覆盖。传入 API_URLSITE_NAMESHORT_URLENABLE_SHORT_URL 时,会在每次启动时原子地重新生成配置,环境变量修改可稳定生效。

镜像同时发布 linux/amd64linux/arm64。镜像只负责提供静态前端,不会在运行服务器上编译;构建由 GitHub Actions 完成。

镜像同步发布到 Docker Hub(aethersailor/subweb:latest)和 GitHub Container Registry(ghcr.io/aethersailor/subweb:latest),可任选其一使用。正式版本发布后,也可将 latest 替换为对应的 v* 版本标签。

💡 推荐:使用 Nginx 反向代理并配置 HTTPS


⚙️ 配置说明

config.js 配置文件示例:

window.config={// 网站标题siteName: 'Subconverter Web',// 后端 API 列表apiBackends: [{name: 'Aethersailor 后端',url: 'https://api.asailor.org',},{name: '肥羊增强型后端',url: 'https://api.v1.mk',},],// 短链接功能开关// 默认关闭;开启会把完整转换链接发送到短链接服务enableShortUrl: false,// 短链接服务地址shortUrl: '',// 首页菜单menuItem: [{title: '通知频道',link: 'https://t.me/custom_openclash_rules',target: '_blank',},{title: '聊天群组',link: 'https://t.me/custom_openclash_rules_group',target: '_blank',},{title: 'Custom_OpenClash_Rules',link: 'https://github.com/Aethersailor/Custom_OpenClash_Rules',target: '_blank',},],// 远程配置列表remoteConfigOptions: [{value:
'https://raw.githubusercontent.com/Aethersailor/Custom_OpenClash_Rules/refs/heads/main/cfg/Custom_Clash.ini',text: 'Aethersailor 规则 标准版',},{value:
'https://raw.githubusercontent.com/Aethersailor/Custom_OpenClash_Rules/refs/heads/main/cfg/Custom_Clash_Lite.ini',text: 'Aethersailor 规则 轻量版',},{value:
'https://raw.githubusercontent.com/Aethersailor/Custom_OpenClash_Rules/refs/heads/main/cfg/Custom_Clash_GFW.ini',text: 'Aethersailor 规则 极简版(GFW)',},{value:
'https://raw.githubusercontent.com/Aethersailor/Custom_OpenClash_Rules/refs/heads/main/cfg/Custom_Clash_Full.ini',text: 'Aethersailor 规则 重度分流版',},],};

🔗 致谢

本项目基于以下优秀项目进行开发:


📄 开源协议

本项目基于 GPL-3.0 协议开源。


Made with ❤️ by Aethersailor

About

subweb 是基于 subconverter 订阅转换的前端项目,方便用户快速生成各平台的订阅链接。支持 Cloudflare Pages 云端部署。

Resources

Stars

53 stars

Watchers

0 watching

Forks

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - Aethersailor/subweb: subweb 是基于 subconverter 订阅转换的前端项目,方便用户快速生成各平台的订阅链接。支持 Cloudflare Pages 云端部署。 · GitHub
Skip to content

Repository files navigation

✨ SubWeb

优雅的 Subconverter 订阅转换前端

GitHub starsDocker PullsLicense

🌐 在线演示🚀 快速开始📦 部署方式☁️ Cloudflare Pages 部署


📖 项目简介

SubWeb 是一个轻量的 Vue 3subconverter 前端,帮助用户生成 Clash、Surge、Quantumult X 等客户端的订阅链接。

本项目 Fork 自 stilleshan/subweb,在原版基础上修复了一些 BUG 并进行了功能增强。

✨ 特性亮点

  • 🎨 现代化界面 — 原生 Vue 3 响应式界面,支持键盘操作与深色模式
  • ☁️ Cloudflare 原生支持 — 新增 Cloudflare Pages/Workers 部署方案,无需服务器
  • 🔗 可配置的短链接 — 默认关闭;部署者可按需配置自己的短链接服务
  • 🐳 Docker 一键部署 — 支持 x86 与 ARM 架构,快速上线
  • ⚙️ 高度可配置 — 支持自定义后端 API、远程配置、站点名称等

🧩 相关项目

项目说明
Aethersailor/subweb📌 本项目 — 订阅转换前端
Aethersailor/SubConverter-Extended🔗 配套改进型后端服务,支持更多功能
Aethersailor/cf-shortlink-worker🔗 配套短链接服务,Cloudflare Workers 部署
Aethersailor/Custom_OpenClash_Rules📜 自定义 OpenClash 分流规则

🚀 快速开始

在线体验

访问演示站点,立即体验订阅转换功能:

👉 https://sub.asailor.org


📦 部署方式

方式一:Cloudflare Pages(推荐)

全套服务均可部署于 Cloudflare 云端,无需服务器或 VPS

详细教程请参阅 → DEPLOY_CLOUDFLARE.md

简要步骤:

  1. Fork 本项目到你的 GitHub 账号
  2. 在 Cloudflare Pages 中连接你的仓库
  3. 设置构建命令为 npm run build,输出目录为 dist
  4. 通过环境变量自定义配置(可选)

方式二:Docker 部署

🟢 本地快速部署

docker run -d --name subweb --restart always \
-p 18080:80 \
aethersailor/subweb:latest

访问:http://127.0.0.1:18080

🔧 自定义配置部署

挂载配置目录,实现自定义站点名称、后端 API、短链接服务等:

docker run -d --name subweb --restart always \
-p 18080:80 \
-v /your/path/conf:/usr/share/nginx/html/conf \
-e API_URL='https://api.example.com' \
-e SITE_NAME='我的订阅转换' \
aethersailor/subweb:latest

未传入环境变量时,启动脚本只会在挂载目录缺少 config.js 时写入默认配置;已有配置不会被覆盖。传入 API_URLSITE_NAMESHORT_URLENABLE_SHORT_URL 时,会在每次启动时原子地重新生成配置,环境变量修改可稳定生效。

镜像同时发布 linux/amd64linux/arm64。镜像只负责提供静态前端,不会在运行服务器上编译;构建由 GitHub Actions 完成。

镜像同步发布到 Docker Hub(aethersailor/subweb:latest)和 GitHub Container Registry(ghcr.io/aethersailor/subweb:latest),可任选其一使用。正式版本发布后,也可将 latest 替换为对应的 v* 版本标签。

💡 推荐:使用 Nginx 反向代理并配置 HTTPS


⚙️ 配置说明

config.js 配置文件示例:

window.config={// 网站标题siteName: 'Subconverter Web',// 后端 API 列表apiBackends: [{name: 'Aethersailor 后端',url: 'https://api.asailor.org',},{name: '肥羊增强型后端',url: 'https://api.v1.mk',},],// 短链接功能开关// 默认关闭;开启会把完整转换链接发送到短链接服务enableShortUrl: false,// 短链接服务地址shortUrl: '',// 首页菜单menuItem: [{title: '通知频道',link: 'https://t.me/custom_openclash_rules',target: '_blank',},{title: '聊天群组',link: 'https://t.me/custom_openclash_rules_group',target: '_blank',},{title: 'Custom_OpenClash_Rules',link: 'https://github.com/Aethersailor/Custom_OpenClash_Rules',target: '_blank',},],// 远程配置列表remoteConfigOptions: [{value:
'https://raw.githubusercontent.com/Aethersailor/Custom_OpenClash_Rules/refs/heads/main/cfg/Custom_Clash.ini',text: 'Aethersailor 规则 标准版',},{value:
'https://raw.githubusercontent.com/Aethersailor/Custom_OpenClash_Rules/refs/heads/main/cfg/Custom_Clash_Lite.ini',text: 'Aethersailor 规则 轻量版',},{value:
'https://raw.githubusercontent.com/Aethersailor/Custom_OpenClash_Rules/refs/heads/main/cfg/Custom_Clash_GFW.ini',text: 'Aethersailor 规则 极简版(GFW)',},{value:
'https://raw.githubusercontent.com/Aethersailor/Custom_OpenClash_Rules/refs/heads/main/cfg/Custom_Clash_Full.ini',text: 'Aethersailor 规则 重度分流版',},],};

🔗 致谢

本项目基于以下优秀项目进行开发:


📄 开源协议

本项目基于 GPL-3.0 协议开源。


Made with ❤️ by Aethersailor

About

subweb 是基于 subconverter 订阅转换的前端项目,方便用户快速生成各平台的订阅链接。支持 Cloudflare Pages 云端部署。

Resources

Stars

53 stars

Watchers

0 watching

Forks

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - Aethersailor/subweb: subweb 是基于 subconverter 订阅转换的前端项目,方便用户快速生成各平台的订阅链接。支持 Cloudflare Pages 云端部署。 · GitHub
Skip to content

Repository files navigation

✨ SubWeb

优雅的 Subconverter 订阅转换前端

GitHub starsDocker PullsLicense

🌐 在线演示🚀 快速开始📦 部署方式☁️ Cloudflare Pages 部署


📖 项目简介

SubWeb 是一个轻量的 Vue 3subconverter 前端,帮助用户生成 Clash、Surge、Quantumult X 等客户端的订阅链接。

本项目 Fork 自 stilleshan/subweb,在原版基础上修复了一些 BUG 并进行了功能增强。

✨ 特性亮点

  • 🎨 现代化界面 — 原生 Vue 3 响应式界面,支持键盘操作与深色模式
  • ☁️ Cloudflare 原生支持 — 新增 Cloudflare Pages/Workers 部署方案,无需服务器
  • 🔗 可配置的短链接 — 默认关闭;部署者可按需配置自己的短链接服务
  • 🐳 Docker 一键部署 — 支持 x86 与 ARM 架构,快速上线
  • ⚙️ 高度可配置 — 支持自定义后端 API、远程配置、站点名称等

🧩 相关项目

项目说明
Aethersailor/subweb📌 本项目 — 订阅转换前端
Aethersailor/SubConverter-Extended🔗 配套改进型后端服务,支持更多功能
Aethersailor/cf-shortlink-worker🔗 配套短链接服务,Cloudflare Workers 部署
Aethersailor/Custom_OpenClash_Rules📜 自定义 OpenClash 分流规则

🚀 快速开始

在线体验

访问演示站点,立即体验订阅转换功能:

👉 https://sub.asailor.org


📦 部署方式

方式一:Cloudflare Pages(推荐)

全套服务均可部署于 Cloudflare 云端,无需服务器或 VPS

详细教程请参阅 → DEPLOY_CLOUDFLARE.md

简要步骤:

  1. Fork 本项目到你的 GitHub 账号
  2. 在 Cloudflare Pages 中连接你的仓库
  3. 设置构建命令为 npm run build,输出目录为 dist
  4. 通过环境变量自定义配置(可选)

方式二:Docker 部署

🟢 本地快速部署

docker run -d --name subweb --restart always \
-p 18080:80 \
aethersailor/subweb:latest

访问:http://127.0.0.1:18080

🔧 自定义配置部署

挂载配置目录,实现自定义站点名称、后端 API、短链接服务等:

docker run -d --name subweb --restart always \
-p 18080:80 \
-v /your/path/conf:/usr/share/nginx/html/conf \
-e API_URL='https://api.example.com' \
-e SITE_NAME='我的订阅转换' \
aethersailor/subweb:latest

未传入环境变量时,启动脚本只会在挂载目录缺少 config.js 时写入默认配置;已有配置不会被覆盖。传入 API_URLSITE_NAMESHORT_URLENABLE_SHORT_URL 时,会在每次启动时原子地重新生成配置,环境变量修改可稳定生效。

镜像同时发布 linux/amd64linux/arm64。镜像只负责提供静态前端,不会在运行服务器上编译;构建由 GitHub Actions 完成。

镜像同步发布到 Docker Hub(aethersailor/subweb:latest)和 GitHub Container Registry(ghcr.io/aethersailor/subweb:latest),可任选其一使用。正式版本发布后,也可将 latest 替换为对应的 v* 版本标签。

💡 推荐:使用 Nginx 反向代理并配置 HTTPS


⚙️ 配置说明

config.js 配置文件示例:

window.config={// 网站标题siteName: 'Subconverter Web',// 后端 API 列表apiBackends: [{name: 'Aethersailor 后端',url: 'https://api.asailor.org',},{name: '肥羊增强型后端',url: 'https://api.v1.mk',},],// 短链接功能开关// 默认关闭;开启会把完整转换链接发送到短链接服务enableShortUrl: false,// 短链接服务地址shortUrl: '',// 首页菜单menuItem: [{title: '通知频道',link: 'https://t.me/custom_openclash_rules',target: '_blank',},{title: '聊天群组',link: 'https://t.me/custom_openclash_rules_group',target: '_blank',},{title: 'Custom_OpenClash_Rules',link: 'https://github.com/Aethersailor/Custom_OpenClash_Rules',target: '_blank',},],// 远程配置列表remoteConfigOptions: [{value:
'https://raw.githubusercontent.com/Aethersailor/Custom_OpenClash_Rules/refs/heads/main/cfg/Custom_Clash.ini',text: 'Aethersailor 规则 标准版',},{value:
'https://raw.githubusercontent.com/Aethersailor/Custom_OpenClash_Rules/refs/heads/main/cfg/Custom_Clash_Lite.ini',text: 'Aethersailor 规则 轻量版',},{value:
'https://raw.githubusercontent.com/Aethersailor/Custom_OpenClash_Rules/refs/heads/main/cfg/Custom_Clash_GFW.ini',text: 'Aethersailor 规则 极简版(GFW)',},{value:
'https://raw.githubusercontent.com/Aethersailor/Custom_OpenClash_Rules/refs/heads/main/cfg/Custom_Clash_Full.ini',text: 'Aethersailor 规则 重度分流版',},],};

🔗 致谢

本项目基于以下优秀项目进行开发:


📄 开源协议

本项目基于 GPL-3.0 协议开源。


Made with ❤️ by Aethersailor

About

subweb 是基于 subconverter 订阅转换的前端项目,方便用户快速生成各平台的订阅链接。支持 Cloudflare Pages 云端部署。

Resources

Stars

53 stars

Watchers

0 watching

Forks

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); })(); GitHub - Aethersailor/subweb: subweb 是基于 subconverter 订阅转换的前端项目,方便用户快速生成各平台的订阅链接。支持 Cloudflare Pages 云端部署。 · GitHub
Skip to content

Repository files navigation

✨ SubWeb

优雅的 Subconverter 订阅转换前端

GitHub starsDocker PullsLicense

🌐 在线演示🚀 快速开始📦 部署方式☁️ Cloudflare Pages 部署


📖 项目简介

SubWeb 是一个轻量的 Vue 3subconverter 前端,帮助用户生成 Clash、Surge、Quantumult X 等客户端的订阅链接。

本项目 Fork 自 stilleshan/subweb,在原版基础上修复了一些 BUG 并进行了功能增强。

✨ 特性亮点

  • 🎨 现代化界面 — 原生 Vue 3 响应式界面,支持键盘操作与深色模式
  • ☁️ Cloudflare 原生支持 — 新增 Cloudflare Pages/Workers 部署方案,无需服务器
  • 🔗 可配置的短链接 — 默认关闭;部署者可按需配置自己的短链接服务
  • 🐳 Docker 一键部署 — 支持 x86 与 ARM 架构,快速上线
  • ⚙️ 高度可配置 — 支持自定义后端 API、远程配置、站点名称等

🧩 相关项目

项目说明
Aethersailor/subweb📌 本项目 — 订阅转换前端
Aethersailor/SubConverter-Extended🔗 配套改进型后端服务,支持更多功能
Aethersailor/cf-shortlink-worker🔗 配套短链接服务,Cloudflare Workers 部署
Aethersailor/Custom_OpenClash_Rules📜 自定义 OpenClash 分流规则

🚀 快速开始

在线体验

访问演示站点,立即体验订阅转换功能:

👉 https://sub.asailor.org


📦 部署方式

方式一:Cloudflare Pages(推荐)

全套服务均可部署于 Cloudflare 云端,无需服务器或 VPS

详细教程请参阅 → DEPLOY_CLOUDFLARE.md

简要步骤:

  1. Fork 本项目到你的 GitHub 账号
  2. 在 Cloudflare Pages 中连接你的仓库
  3. 设置构建命令为 npm run build,输出目录为 dist
  4. 通过环境变量自定义配置(可选)

方式二:Docker 部署

🟢 本地快速部署

docker run -d --name subweb --restart always \
-p 18080:80 \
aethersailor/subweb:latest

访问:http://127.0.0.1:18080

🔧 自定义配置部署

挂载配置目录,实现自定义站点名称、后端 API、短链接服务等:

docker run -d --name subweb --restart always \
-p 18080:80 \
-v /your/path/conf:/usr/share/nginx/html/conf \
-e API_URL='https://api.example.com' \
-e SITE_NAME='我的订阅转换' \
aethersailor/subweb:latest

未传入环境变量时,启动脚本只会在挂载目录缺少 config.js 时写入默认配置;已有配置不会被覆盖。传入 API_URLSITE_NAMESHORT_URLENABLE_SHORT_URL 时,会在每次启动时原子地重新生成配置,环境变量修改可稳定生效。

镜像同时发布 linux/amd64linux/arm64。镜像只负责提供静态前端,不会在运行服务器上编译;构建由 GitHub Actions 完成。

镜像同步发布到 Docker Hub(aethersailor/subweb:latest)和 GitHub Container Registry(ghcr.io/aethersailor/subweb:latest),可任选其一使用。正式版本发布后,也可将 latest 替换为对应的 v* 版本标签。

💡 推荐:使用 Nginx 反向代理并配置 HTTPS


⚙️ 配置说明

config.js 配置文件示例:

window.config={// 网站标题siteName: 'Subconverter Web',// 后端 API 列表apiBackends: [{name: 'Aethersailor 后端',url: 'https://api.asailor.org',},{name: '肥羊增强型后端',url: 'https://api.v1.mk',},],// 短链接功能开关// 默认关闭;开启会把完整转换链接发送到短链接服务enableShortUrl: false,// 短链接服务地址shortUrl: '',// 首页菜单menuItem: [{title: '通知频道',link: 'https://t.me/custom_openclash_rules',target: '_blank',},{title: '聊天群组',link: 'https://t.me/custom_openclash_rules_group',target: '_blank',},{title: 'Custom_OpenClash_Rules',link: 'https://github.com/Aethersailor/Custom_OpenClash_Rules',target: '_blank',},],// 远程配置列表remoteConfigOptions: [{value:
'https://raw.githubusercontent.com/Aethersailor/Custom_OpenClash_Rules/refs/heads/main/cfg/Custom_Clash.ini',text: 'Aethersailor 规则 标准版',},{value:
'https://raw.githubusercontent.com/Aethersailor/Custom_OpenClash_Rules/refs/heads/main/cfg/Custom_Clash_Lite.ini',text: 'Aethersailor 规则 轻量版',},{value:
'https://raw.githubusercontent.com/Aethersailor/Custom_OpenClash_Rules/refs/heads/main/cfg/Custom_Clash_GFW.ini',text: 'Aethersailor 规则 极简版(GFW)',},{value:
'https://raw.githubusercontent.com/Aethersailor/Custom_OpenClash_Rules/refs/heads/main/cfg/Custom_Clash_Full.ini',text: 'Aethersailor 规则 重度分流版',},],};

🔗 致谢

本项目基于以下优秀项目进行开发:


📄 开源协议

本项目基于 GPL-3.0 协议开源。


Made with ❤️ by Aethersailor

About

subweb 是基于 subconverter 订阅转换的前端项目,方便用户快速生成各平台的订阅链接。支持 Cloudflare Pages 云端部署。

Resources

Stars

53 stars

Watchers

0 watching

Forks

Packages

Used by

Contributors

Languages