This tutorial is aimed at beginners, simplifying the steps as much as possible and operating on the easier Baota panel without involving complex configurations and advanced gameplay (such as notification functions and various scripts).
What is Sub-Store / Introduction#
Here is an excerpt from the official repository:
Advanced Subscription Manager for QX, Loon, Surge, Stash, and Shadowrocket.
In order to avoid some risks as much as possible, I won't go into too much detail here. If you want to know more, you can Google it yourself.
Main maintainer of the project: xream
Project repository: sub-store-org/Sub-Store
Preparations#
- A VPS with a Baota panel installed and directly connected
- Docker suite and nginx installed through the panel
- It is recommended to have a domain name
Tutorial#
Create a storage directory for Sub-Store#
Sub-Store needs a directory to store your subscriptions and other files.
First, go to the Files
tab in your panel and create a new folder in your desired location as the storage directory for Sub-Store.
Here, /etc/sub-store
is used as an example. Please make a note of this directory anywhere.
Tip: You can click on the path bar to quickly get the absolute path of the current directory, just like in Windows.
Deploy Sub-Store with Docker#
The Baota panel does not open the 3001 port by default, so you need to add a port rule on the
Security
page as shown in the figure:
Next, go to the Terminal
page.
Here is a standard code:
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
Now, let's modify it together:
- First, change the part after
/
inSUB_STORE_FRONTEND_BACKEND_PATH
to a 20-character random string (without special characters). It is important to make it as random as possible, just like an API Token in other applications! - Modify the directory after
-v
and before:
to the directory you selected earlier to store Sub-Store data. - Modify
YOURIP
after-p
as needed.- If you need to run and use it locally, please change it to
127.0.0.1
. - If you need remote access, please change it to
server IP
.
- If you need to run and use it locally, please change it to
- Finally, if you have the need to use
HTTP-META
, please changexream/sub-store
toxream/sub-store:http-meta
. If you don't know what HTTP-META is, do not modify it.
Press Enter, and you should see a string of container IDs, indicating that it has been successfully run.
At this point, the Docker deployment is complete.
You can visit IP:3001 to see if it is running normally.
Use nginx reverse proxy (skip if you don't have a domain name)#
Use nginx reverse proxy to access it through your own domain name.
Configuration & Binding#
Go to the Websites
page, select the Reverse Proxy
tab, and click Add Reverse Proxy
.
Configure it as shown in the figure:
Change sub.example.com
in the figure to the domain name you want to bind, and replace yourip
in the target with your server IP.
At this point, your Send Domain (host)
field should display $http_host
, and the remark should display your domain name.
After confirming that everything is correct, click Add.
Remember to use an A record to resolve your bound domain name to your server IP in your domain name provider.
Configure SSL certificate#
Find the reverse proxy rule you just configured, click Settings
on the right, and go to the SSL
tab. Select Let's Encrypt
, choose the domain name, apply for a certificate, and the page should look like this:
Initial use#
Next, you need to access a relatively complex address to activate and bind the backend.
Now, let's divide it into two cases:
- If you don't use a domain name, please visit http://YOURIP:3001?api=http://YOURIP:3001/BACK_END_PASSWORD
- If you have bound your own domain name, please visit https://sub.example.com?api=https://sub.example.com/BACK_END_PASSWORD
ReplaceYOURIP/DOMAIN
with yourserver IP or domain name
, and replaceBACK_END_PASSWORD
with the 20-character access key you set for the backend.
You should see the prompt Data refreshed successfully!
. Go to Settings -> Backend Settings, and you should see a configuration similar to the following figure:
At this point, you have completed all the configurations. Enjoy the convenience brought by Sub-Store!