最强节点/订阅管理工具 sub-store 节点/订阅聚合 全平台客户端订阅生成

 大家好,欢迎来到marco的YouTube频道,本期视频跟大家如何在自己的vps上部署sub-store。

视频教程:https://youtu.be/1ouewi-8AHw

文档教程可以参考这一篇:https://surge.tel/08/2930/

sub-store功能

首先,先来看一下sub-strore能够做什么

节点或者订阅聚合,sub-store能够对多个机场或者自建节点进行管理。可以将多个机场或者自建节点进行整合。对于无论是多个机场,还是多个自建节点,或者是既有机场又有自建节点的用户来说,它都可以将其整合到一起。并且可以生成目前几乎所有客户端的订阅链接,如singbox、clash、surge、圈x等,

此外,通过sub-store,还可以对节点的信息可以进行定制化的修改,如改名、过滤、添加国旗、排序等操作

搭建sub-store

更新系统软件源

apt update -y   #Debian 命令

安装所需命令

apt install unzip curl wget git sudo -y   #Debian 命令

安装 FNM 版本管理器(Node.js版本管理器)

curl -fsSL https://fnm.vercel.app/install | bash

按照回显的图示,运行命令保存生效

source /root/.bashrc  #请按照你的回显提示命令进行输入,我这边路径是 /root

FNM 安装 Node

fnm install v20.18.0
node -v # 回显返回版本号即为安装成功

安装 PNPM 软件包管理器

curl -fsSL https://get.pnpm.io/install.sh | sh -

按照回显的图示,运行命令

source /root/.bashrc

安装 Sub-Store

创建文件夹并拉取项目

mkdir -p /root/sub-store  #在 root 目录下面创建 sub-store 文件夹cd 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

创建系统服务

pm2 的启动方式会有 BUG,所以我们采用服务进程的方式来启动

进入 VPS 目录 /etc/systemd/system/,在里面创建一个文件 sub-store.service,写入以下服务信息

[Unit]
Description=Sub-Store
After=network-online.target
Wants=network-online.target systemd-networkd-wait-online.service

[Service]
LimitNOFILE=32767
Type=simple
Environment="SUB_STORE_FRONTEND_BACKEND_PATH=/jHvApzmF96gURXvDTJAN"
Environment="SUB_STORE_BACKEND_CRON=0 0 * * *"
Environment="SUB_STORE_FRONTEND_PATH=/root/sub-store/frontend"
Environment="SUB_STORE_FRONTEND_HOST=0.0.0.0"
Environment="SUB_STORE_FRONTEND_PORT=3001"
Environment="SUB_STORE_DATA_BASE_PATH=/root/sub-store"
Environment="SUB_STORE_BACKEND_API_HOST=127.0.0.1"
Environment="SUB_STORE_BACKEND_API_PORT=3000"
ExecStart=/root/.local/share/fnm/fnm exec --using v20.18.0 node /root/sub-store/sub-store.bundle.js
User=root
Group=root
Restart=on-failure
RestartSec=5s
ExecStartPre=/bin/sh -c ulimit -n 51200
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target

上面服务代码中的 jHvApzmF96gURXvDTJAN 为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

如果出现报错信息 使用指令:

journalctl -f -u sub-store -o cat -n 100

来查看具体的错误信息和原因来进行解决

如果你不想部署nginx,到此处已经结束,可以直接通过IP的方式来进行使用,访问方式为:http://vpsip:3001?api=http://vpsip:3001/2cXaAxRGfddmGz2yx1wA (将其中的vpsip换成你的VPS IP)如果想使用域名并使用ssl,请接着往下看。

nginx部署过程

安装nginx

sudo apt install nginx 

nginx常用命令

sudo systemctl enable nginx #启用 Nginx 开机自启动
sudo systemctl disable nginx #禁用 Nginx 开机自启动
sudo systemctl status nginx #查看 Nginx 状态
sudo nginx -t #检查 Nginx 配置文件是否正确
sudo systemctl start nginx #启动 Nginx
sudo systemctl stop nginx #停止nginx
sudo systemctl restart nginx #重启nginx
sudo systemctl reload nginx #重新加载 Nginx 配置

编辑nginx配置文件

进入/etc/nginx/sites-enabled/

cd /etc/nginx/sites-enabled/

创建sub-store.conf文件

根据自己的前面域名设置将以下内容改好后复制进去并保存

server {

listen 443 ssl http2;

listen [::]:443 ssl http2;

server_name 你的域名;  



ssl_certificate 你的路径/ssl.pem;    

ssl_certificate_key 你的路径/ssl.key;



location / {

  proxy_pass http://127.0.0.1:3001;

  proxy_set_header Host $host;

  proxy_set_header X-Real-IP $remote_addr;

  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}



}

编写完毕保存后输入:nginx -t 查看配置是否正确,如果正确输入:nginx -s reload重载配置,如果出现错误输入:nginx -s stop 停止nginx运行, 并根据提示信息进行排查。

至此整个VPS版的sub-store服务搭建完成 访问的地址是

https://你的域名?api=https://你的域名/密码

后续更新脚本

先停止服务

systemctl stop sub-store.service

更新脚本

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

评论