大家好,欢迎来到marco的YouTube频道,本期视频跟大家如何在自己的vps上部署sub-store。
视频教程:https://youtu.be/1ouewi-8AHw
文档教程可以参考这一篇:https://surge.tel/08/2930/
sub-store功能
节点或者订阅聚合,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
评论
发表评论