一、Sub-Store 简介
Sub-Store 是一款开源的订阅转换服务,支持聚合多个订阅链接并输出为不同客户端格式。
它能让你:
-
将多个机场或自建节点订阅整合;
-
输出为 Clash / Surge / QuantumultX / Loon / Shadowrocket 等格式;
-
自定义节点筛选、排序、分组;
-
通过 Web 界面轻松管理。
GitHub 项目地址:
👉 https://github.com/sub-store-org/Sub-Store
二、部署环境准备
推荐系统环境:
| 系统 | 支持 |
| Debian 12 / Ubuntu 22.04 | ✅ 推荐 |
| Alpine / CentOS 7+ | ✅ 支持 |
| 内存要求 | ≥ 256MB |
确保系统已安装:
apt update && apt install -y docker.io docker-compose
三、Docker Compose 配置文件
在服务器任意目录(如 /root/sub-store)下创建文件:
mkdir -p /root/sub-store
cd /root/sub-store
nano docker-compose.yml
然后粘贴以下内容 👇:
version: "3.8"
services:
sub-store:
image: xream/sub-store:latest
container_name: sub-store
restart: always
ports:
- "3001:3001"
volumes:
- ./sub-store:/opt/app/data
environment:
SUB_STORE_FRONTEND_BACKEND_PATH: /MySecretToken123
SUB_STORE_BACKEND_SYNC_CRON: "55 23 * * *"
SUB_STORE_BODY_JSON_LIMIT: 10mb
四、配置详解
| 配置项 | 示例值 | 作用 | 说明 |
| version | "3.8" |
Compose 文件版本 | 指定 Docker Compose 的语法版本,3.8 适用于较新的 Docker |
| services | sub-store |
服务定义 | 定义一个名为 sub-store 的服务 |
| image | xream/sub-store:latest |
Docker 镜像 | 使用 Sub-Store 官方镜像,latest 表示最新版本 |
| container_name | sub-store |
容器名称 | 指定容器名称为 sub-store,方便管理和查看日志 |
| restart | always |
自动重启策略 | 容器异常退出或 Docker 重启时会自动重新启动 |
| ports | "3001:3001" |
端口映射 | 将宿主机 3001 端口映射到容器 3001 端口 |
| volumes | ./sub-store:/opt/app/data |
数据持久化 | 将本地 ./sub-store 目录映射到容器 /opt/app/data,用于保存配置和数据 |
| environment | 环境变量配置 | 程序运行参数 | 用来控制 Sub-Store 的运行行为 |
⚠️ 建议你修改:
SUB_STORE_FRONTEND_BACKEND_PATH=/MySecretToken123
示例:
/rd304CYuZ2KByUk4WRHF
这样可以防止被随意访问。
随机生成密码网站:https://1password.com/zh-cn/password-generator
五、启动服务
保存文件后执行:
docker compose up -d
查看运行状态:
docker ps
若一切正常,你会看到类似输出:
CONTAINER ID IMAGE STATUS PORTS
a1b2c3d4e5f6 xream/sub-store Up 10 seconds 0.0.0.0:3001->3001/tcp
六、访问与初始设置
浏览器访问:
http://服务器IP:3001
若配置了后端路径(如 /ks9foTp4xE8fr24pg2DZ),
打开 服务器ip:3001 输入后端路径ks9foTp4xE8fr24pg2DZ
你会看到 Sub-Store 的管理界面,可以:
-
添加或导入订阅;
-
设置转换规则;
-
生成统一的订阅链接。
七、设置Gist同步
1.拥有一个 GitHub 账号
注册或登录:https://github.com/
2.获取一个 GitHub Personal Access Token(访问令牌)
-
点击Token(classic)并在右上选择Generate new token(classic)
-
勾上Repo和Gist这两项后,点击底下的Generate token即生成Token了
-
生成后复制该 token(⚠️ 只显示一次!)
建议保存到安全的地方,例如 ~/.config/sub-store/token.txt。

3.Sub-store设置Gist同步
将Github用户名和获取的Token粘贴进去即可

八、Caddy反代
编辑/etc/caddy/Caddyfile
nano /etc/caddy/Caddyfile
example.com {
reverse_proxy localhost:3001
}
重启caddy
systemctl restart caddy