在宝塔面板上利用Docker和nginx搭建Sub-Store

本教程面向小白，尽可能简化了步骤，并在更加简单的宝塔面板上操作，不涉及复杂配置和进阶玩法（如通知功能和各种脚本）

什么是 Sub-Store / Introduction

这里摘取官方仓库的介绍：

Advanced Subscription Manager for QX, Loon, Surge, Stash and Shadowrocket.

为了尽可能规避一些风险，在这里不做过多介绍，想要详细了解可以自行 Google
项目当前主要维护者：小一 xream
项目仓库：sub-store-org/Sub-Store

前期准备 / Preparations

一个可直连的已安装 bt 面板的 VPS

已通过面板安装 Docker 套件和 nginx

最好有一个域名

教程 / Tutorial

为 Sub-Store 创建存储目录

Sub-Store 需要一个目录来存储你的订阅和其他文件

首先进入你面板的文件选项卡，在你心仪的位置新建一个文件夹作为 Sub-Store 的存储目录
这里以/etc/sub-store为例，请在任意地方记下这个目录

小贴士：你可以点击路径栏快速获取当前目录的绝对路径，正如 Windows 一样

使用 Docker 部署 Sub-Store

宝塔面板默认不开放 3001 端口，因此需先在安全页面，新增端口规则，如图所示：

接下来进入终端页面

以下为一个标准代码

Copy
docker run -it -d \
--restart=always \
-e "SUB_STORE_CRON=55 23 * * *" \
-e SUB_STORE_FRONTEND_BACKEND_PATH=/XXXXXxxxxx1234567890 \
-p YOURIP:3001:3001 \
-v /etc/sub-store:/opt/app/data \
--name sub-store \
xream/sub-store

接下来跟我一起修改：

首先将SUB_STORE_FRONTEND_BACKEND_PATH的 / 后面改为20 位随机字符串（不含特殊符号），尽可能随机，这与其他应用中的 API Token 一样重要！

将-v后面到:前的目录修改为刚才你选择的、要存储 Sub-Store 数据的目录

将-p后的YOURIP按需修改

如果你是需要本地运行，本地使用，那么请修改为127.0.0.1

如果是需要远程访问，那么请修改为服务器IP

目光看向最后一行，如果你有使用HTTP-META的需求，请将xream/sub-store修改为xream/sub-store:http-meta，如果你不知道什么是 HTTP-META，请不要修改

接下来按下回车，你应该会看到一串容器 ID，那就说明已经运行成功了
至此，Docker 部署已经完成

你可以访问 IP:3001 来看看是否运行正常

使用 nginx 反代 (无域名可跳过)

使用 nginx 进行反代，使你可以通过自己的域名进行访问

配置 & 绑定

进入网站页面，选择反向代理标签页，点击新增反代

配置如图所示：

将图中sub.example.com改为你自己想绑定的域名，目标中的yourip替换为你的服务器 IP
此时，你的发送域名(host)一栏应该显示为$http_host，备注显示为你的域名
确认无误后，点击添加

记得在你的域名提供商中将你绑定的域名 使用 A 记录 解析至你的服务器 IP

配置 SSL 证书

找到你刚刚配置的反代规则，点击右侧的设置，进入SSL选项卡，选择Let's Encrypt，选择域名，申请证书，随后页面应如图所示：

初次使用

接下来，你需要访问一个相对复杂的地址，以进行后端激活和绑定
现分两种情况：

如果你没有使用域名，那么请访问 http://YOURIP:3001?api=http://YOURIP:3001/BACK_END_PASSWORD

如果你绑定了自己的域名，那么请访问 https://sub.example.com?api=https://sub.example.com/BACK_END_PASSWORD
其中，将YOURIP/DOMAIN修改为你的服务器IP或域名，将BACK_END_PASSWORD修改为你设置的后端 20 位访问密钥

你应该可以看到数据刷新成功！的提示，进入设置 -> 后端设置，你应该可以看到类似于下图的配置：

至此你已完成所有配置，享受 Sub-Store 带来的便利吧！