本项目原生支持部署到 Cloudflare Pages,并支持通过环境变量动态修改配置(替代 Docker 的 start.sh)。
💡 全套服务均可部署于 Cloudflare 云端,完全免费、无需 VPS
将 Aethersailor/subweb Fork 到你的 GitHub 账号。
- 登录 Cloudflare Dashboard
- 进入 Workers & Pages → Pages
- 点击 Create → Connect to Git
- 选择你 Fork 的
subweb仓库
在 Build settings 中填写:
| 配置项 | 值 |
|---|---|
| Framework preset | Vue.js |
| Build command | npm run build |
| Build output directory | dist |
点击 Save and Deploy,等待构建完成即可。
部署完成后,Cloudflare 会分配一个 *.pages.dev 的默认域名。如需使用自定义域名,请按以下步骤操作:
- 你的域名已托管在 Cloudflare(即 DNS 由 Cloudflare 管理)
- 进入你的 Pages 项目页面
- 点击 Custom domains 标签
- 点击 Set up a custom domain
- 输入你想使用的域名(如
sub.example.com) - 点击 Continue
- Cloudflare 会自动添加 DNS 记录,点击 Activate domain
Cloudflare 会自动创建一条 CNAME 记录:
| 类型 | 名称 | 内容 |
|---|---|---|
| CNAME | sub |
your-project.pages.dev |
💡 提示:如果域名不在 Cloudflare 管理,你需要手动在域名服务商处添加上述 CNAME 记录,然后回到 Pages 验证。
Cloudflare 会自动为自定义域名签发免费的 SSL 证书,无需额外配置。证书签发通常在几分钟内完成。
在 Cloudflare Pages 项目的 Settings → Environment variables 中,可以添加以下变量来覆盖默认配置:
| 变量名 | 描述 | 默认值 |
|---|---|---|
SITE_NAME |
网站标题 | Subconverter Web |
API_URL |
后端 API 地址 | https://sub.xeton.dev |
SHORT_URL |
短链接服务地址 | 空 |
ENABLE_SHORT_URL |
是否启用短链接功能 | false |
如需配置多个后端或自定义远程配置列表,可使用 JSON 格式字符串:
| 变量名 | 描述 | 示例值 |
|---|---|---|
API_BACKENDS |
自定义后端列表(覆盖 API_URL) |
见下方示例 |
REMOTE_CONFIG |
自定义远程配置列表 | 见下方示例 |
MENU_ITEM |
自定义顶部菜单 | 见下方示例 |
[
{ "name": "主后端", "url": "https://api.example.com" },
{ "name": "备用后端", "url": "https://bak.example.com" }
][
{ "text": "ACL4SSR 默认规则", "value": "https://raw.githubusercontent.com/..." },
{ "text": "自用规则", "value": "https://your-config-url.com/config.ini" }
][
{ "title": "Telegram 群组", "link": "https://t.me/your_group", "target": "_blank" },
{ "title": "GitHub", "link": "https://github.com/Aethersailor", "target": "_blank" }
]
⚠️ 注意:修改环境变量后,需要点击 Retry deployment 触发重新部署才能生效。
🔐 隐私说明:转换时,用户输入的订阅或节点会发送到所选后端。短链接功能还会把完整转换链接发送到
SHORT_URL;其中可能包含订阅凭据,因此默认关闭,前端启用后也会要求用户再次确认。
项目包含 functions/conf/config.js.js 文件,这是一个 Cloudflare Pages Function。
工作流程:
- 浏览器请求
/conf/config.js - Pages Function 拦截该请求
- 读取环境变量,动态生成配置代码
- 校验后端、远程配置与菜单 URL,过滤危险协议
- 以
Cache-Control: no-store返回定制化 JavaScript 配置
这使得无需修改代码即可实现配置自定义。
返回 README