强大的节点管理工具:Sub-Store!多机场订阅、自建节点的节点整理工具!VPS部署教程
一. 前言
Sub-Store!这是一款高级订阅管理工具
主要用于管理和优化各类在线订阅的内容,它提供了高度定制化的功能
方便用户对自建节点、订阅链接等进行全面的控制和优化。比如订阅的合并、过滤、去重、更新等,节点的排序、分类、emoi旗帜添加等。
二. 准备工作
- VPS 一台,重置好主流的操作系统(演示为 Debian 13,VPS来自Oracle,vps可以自由选择)
- 域名一个,托管到 Cloudflare,并解析到 VPS(如果无域名可以直接使用ip,更安全方式需要搭配域名使用)
三. Sub-Store 服务搭建
- 更新系统
apt update -y #Debian 命令
- 安装所需组件
apt install unzip curl wget git sudo -y #Debian 命令
- 安装 FNM 版本管理器
curl -fsSL https://fnm.vercel.app/install | bash
- 按照回显的图示,运行命令保存生效
source /root/.bashrc

5. FNM 安装 Node
fnm install v24.11.1
node -v # 回显返回版本号即为安装成功

6. 安装 PNPM 软件包管理器
curl -fsSL https://get.pnpm.io/install.sh | sh -
- 按照回显的图示,运行命令
source /root/.bashrc

四. 安装 Sub-Store
- 创建文件夹并拉取项目
mkdir -p /opt/sub-store #在 opt 目录下面创建 sub-store 文件夹
cd /opt/sub-store #进入 sub-store 文件夹
- 拉取项目并解压
# 拉取后端项目
curl -fsSL https://github.com/sub-store-org/Sub-Store/releases/latest/download/sub-store.bundle.js -o sub-store.bundle.js
# 拉取前端项目
curl -fsSL https://github.com/sub-store-org/Sub-Store-Front-End/releases/latest/download/dist.zip -o dist.zip
- 解压前端文件,并改名为 frontend,而后删除源压缩文件
unzip dist.zip && mv dist frontend && rm dist.zip
- 创建系统服务
采用服务进程的方式来启动
进入 VPS 目录 /etc/systemd/system/,在里面创建一个文件 sub-store.service
# 安装vim
apt install vim
# 编辑sub-store.service
vim /etc/systemd/system/sub-store.service
- 写入以下服务信息
[Unit]
Description=Sub-Store
After=network-online.target
Wants=network-online.target systemd-networkd-wait-online.service
[Service]
Type=simple
User=root
Group=root
WorkingDirectory=/opt/sub-store
LimitNOFILE=51200
# 环境变量
Environment="SUB_STORE_FRONTEND_BACKEND_PATH=/kxcZCwk483VwqzpKpEWC"
Environment="SUB_STORE_BACKEND_SYNC_CRON=0 0 * * *"
Environment="SUB_STORE_FRONTEND_PATH=/opt/sub-store/frontend"
Environment="SUB_STORE_FRONTEND_HOST=0.0.0.0"
Environment="SUB_STORE_FRONTEND_PORT=3001"
Environment="SUB_STORE_DATA_BASE_PATH=/opt/sub-store"
Environment="SUB_STORE_BACKEND_API_HOST=127.0.0.1"
Environment="SUB_STORE_BACKEND_API_PORT=3000"
# 启动命令:直接使用 fnm 可执行文件切换 Node 版本再启动
ExecStart=/root/.local/share/fnm/node-versions/v24.11.1/installation/bin/node /opt/sub-store/sub-store.bundle.js
Restart=on-failure
RestartSec=5s
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
- 上面服务代码中的 kxcZCwk483VwqzpKpEWC 为API请求密钥,请自行修改,推荐自动生成地址:点击访问
后端服务相关命令
systemctl start sub-store.service #启动服务
systemctl enable sub-store.service #设置为开机自启
systemctl status sub-store.service #查看服务状态
systemctl stop sub-store.service #停止服务
systemctl restart sub-store.service #重启服务
-
正常情况下,运行服务状态,应该类似下图:( active:running )

-
若是出现错误,你也是可以通过下面的命令来查看日志,来排除相关的错误
# 个命令用于实时查看 sub-store 服务的最新 100 行日志,并继续跟踪后续的日志输出。
journalctl -f -u sub-store -o cat -n 100
至此,sub-store 服务搭建完毕,若是不想绑定域名,你目前可以通过如下的IP+API的方式进行请求(当然,还是强烈的建议使用域名,并开启 CDN 的小云朵,用于隐藏真实 IP)
若是确定不使用域名,到这里就结束了。以下的内容可以不用再看!
# kxcZCwk483VwqzpKpEWC 为你的 API 请求密钥
http://IP:3001/?api=http://IP:3001/kxcZCwk483VwqzpKpEWC

五. 解析域名及caddy反向代理
- 解析域名,类型 A ,名称:随意 ,内容:VPS IP ,代理状态:关闭,TTL:自动

全部安装完成后,在开启代理状态
- 安装caddy
# 准备(确保已安装 curl、gnupg、ca-certificates)
sudo apt update
sudo apt install -y curl gnupg ca-certificates
# 导入官方仓库 GPG(命令仅示范,若报错按官网步骤调整)
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
# 添加仓库(命令示例,any-version 可替换或保留)
echo "deb [signed-by=/usr/share/keyrings/caddy-stable-archive-keyring.gpg] https://dl.cloudsmith.io/public/caddy/stable/deb/ubuntu any-version main" | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install -y caddy
- Caddyfile 基础位置
在 /etc/caddy/Caddyfile。修改这个文件后重载 Caddy 即可
创建及编辑Caddyfile文件
vim /etc/caddy/Caddyfile
sub.xxx.xx {
reverse_proxy 45.xxx.xx.xx:3001
}
#sub.xxx.xx 为自己解析的域名
#45.xxx.xx.xx:3001 自己的IP及端口
按esc健,输入“:"及wq 回车退出

4. 创建日志目录并授权(Caddy 默认运行用户通常是 caddy):
sudo mkdir -p /var/log/caddy
sudo chown -R caddy:caddy /var/log/caddy
sudo chmod 750 /var/log/caddy
- 校验 Caddyfile 语法
sudo caddy validate --config /etc/caddy/Caddyfile
- 如果返回 valid 则继续下一步;若报错,caddy validate 会给出位置信息,按提示修正。
- 让 Caddy 重新加载配置(无停机):
sudo systemctl reload caddy
或(若需要完全重启):
sudo systemctl restart caddy
查看实时日志(定位证书或代理错误):
sudo journalctl -u caddy -f
# 或查看你配置的访问日志
sudo tail -F /var/log/caddy/flux_access.log
重载caddy 服务,若是不报错,caddy 反代成功,目前可以访问如下网址(自行替换域名)到达订阅页面
https://sub.xxx.xx/?api=https://sub.xxx.xx/kxcZCwk483VwqzpKpEWC
#sub.xxx.xx 为自己解析的域名

六. 创建订阅
点击立即添加

选择单条订阅


机场使用远程订阅,在链接处输入自己的远程订阅链接
自建节点使用本地订阅
组合订阅


复制链接到入代理软件

七.Sub-Store 服务更新
systemctl stop sub-store.service # 停止服务
cd /opt/sub-store # 进入 sub-store 文件夹
# 更新项目脚本
curl -fsSL https://github.com/sub-store-org/Sub-Store/releases/latest/download/sub-store.bundle.js -o sub-store.bundle.js
systemctl daemon-reload # 重载服务
systemctl start sub-store.service # 启动服务
systemctl status sub-store.service # 查看服务状态