Advanced Subscription Manager for QX, Loon, Surge, Stash, Egern and Shadowrocket!
JavaScript
10,691
1,610 commits
updated Oct 15, 2026
Advanced Subscription Manager for QX, Loon, Surge, Stash, Egern and Shadowrocket
![]() | Thordata |面向开发者与出海用户的代理服务,提供住宅、ISP、移动及数据中心代理。支持国家/城市定位、轮换会话与粘性会话,适用于公开网页采集、SEO 监控、接口调试和地区内容测试。新用户 注册 即送 100MB 免费住宅代理,首购使用优惠码【SubStore10】享 9 折优惠。 |
![]() | MaruCode 是一家偶尔做做慈善的小破站 API,自营号池,不搞充值营销套路,主要提供 Codex、Claude Code、GPT Image-2 等主流模型,支持 WebSocket 协议,明码标价(Codex 0.3x, CC 1.5x),透明汇率(1:1),新用户注册 送 2 刀 💰 生图工作台 🖼 |
⚠️ sub.store is only the domain used by module-script rewrite MitM rules. It is not a public domain owned by us.
If a request does not go through the rewrite, the data will be sent to the public sub.store service.
You can map sub.store to 127.0.0.1 or another local address to prevent accidental access to the public sub.store. However, ordinary users may still send requests to the public sub.store after switching or toggling configuration modules.
sub.store would do this. Note: The official frontend is https://sub-store.vercel.app.sub.store.This creates a data leakage risk.
After listening to suggestions from the group, we will not switch to a new domain for now. Choosing a new domain is also awkward: it needs to be related, short, and unlikely to be registered by someone else, at least in the short term.
This notice is published only as an announcement. No changes will be made for now.
Example:
[Host]
sub.store = 127.0.0.1
Sub-Store also supports a configurable browser CORS allowlist for the backend API. This does not change the module rewrite domain, but it limits which browser origins can read API responses through CORS.
SUB_STORE_CORS_ALLOWED_ORIGINS; the default is https://sub-store.vercel.app,http://substore.stash,https://substore.stash.cors module argument; the default is https://sub-store.vercel.app,http://substore.stash,https://substore.stash.* only when you accept the risk of any website reading the local backend through browser CORS.For Node deployments, SUB_STORE_PUSH_SERVICE accepts a Shoutrrr URL or an existing HTTP/HTTPS URL template. Shoutrrr URLs are sent in-process with shoutrrr-ts; a separate shoutrrr executable is no longer used or required. HTTP/HTTPS URL templates still use the existing request path and [推送标题] / [推送内容] placeholders.
The supported Shoutrrr URL families are Generic Webhook (generic://, generic+https://, generic+http://), Bark, Discord, Gotify, Google Chat (hangouts:// alias), IFTTT, Join, Mattermost, ntfy, OpsGenie, Pushover, Pushbullet, Rocket.Chat, Slack, Microsoft Teams, Telegram, and Zulip. Matrix (matrix://) and SMTP (smtp://) are not supported, and there is no fallback to the old executable. Check existing configurations before upgrading; unsupported URLs produce a notification error instead of sending. See upstream compatibility details for URL options and caveats. Upstream checks use local Go-compatibility fixtures, not verified live delivery to every provider. The backend's tested Node version is in .node-version; check the upstream package for its current Node support.
Push URLs may contain secrets: treat SUB_STORE_PUSH_SERVICE as privileged configuration. Diagnostics from the Shoutrrr path do not print the configured URL. This change does not alter the HTTP/HTTPS URL template path or its existing logging behavior.
The following descriptions of features may not be updated in real-time. Please refer to the actual available features for accurate information.
本地节点怎么写/How To Write A Local Node
⚠️ Do not use
ShadowrocketorNekoBoxto export URI and then import it as input. The URIs exported in this way may not be standard URIs. However, we have already supported some very common non-standard URIs (such as VMess, VLESS).
Proxy URI Scheme(socks5, socks5+tls, http, https(it's ok))
example: socks5+tls://user:pass@ip:port#name
URI(AnyTLS, SOCKS, SS, SSR, VMess, VLESS, Trojan, Hysteria, Hysteria 2, TUIC v5, WireGuard)
Please note, HTTP(s) does not have a standard URI format, so it is not supported. Please use other formats.
Clash Proxies YAML
Clash Proxy JSON/JSON5/YAML(single line)
QX (SS, SSR, VMess, Trojan, HTTP, SOCKS5, VLESS, AnyTLS)
Loon (SS, SSR, VMess, Trojan, HTTP, SOCKS5, SOCKS5-TLS, WireGuard, VLESS, Hysteria 2, AnyTLS)
Surge (Direct, SS, VMess, Trojan, HTTP, HTTPS, HTTP/2 CONNECT, SOCKS5, SOCKS5-TLS, AnyTLS, TrustTunnel, TUIC, Snell, Hysteria 2, MASQUE(Surge), SSH(Password authentication only), External Proxy Program(only for macOS), WireGuard(Surge to Surge))
mihomo(Clash.Meta) Compatible (Direct, SS, SSR, VMess, Trojan, HTTP, SOCKS5, Snell, VLESS, WireGuard, Hysteria, Hysteria 2, TUIC, SSH, mieru, sudoku, AnyTLS, MASQUE, Tailscale, GOST Relay, Shadow QUIC, ZeroTier, OpenVPN)
Deprecated(The frontend doesn't show it, but the backend still supports it, with the query parameter target=Clash):
Deprecated:
udp,tfo, skip-cert-verify etc.Install pnpm
Go to backend directories, install node dependencies:
pnpm i
SUB_STORE_BACKEND_API_PORT=3000 pnpm esbuild:dev
or this one if you're using Termux
SUB_STORE_BACKEND_API_PORT=3000 pnpm run --parallel "/^dev:.*/"
pnpm bundle:esbuild
This project is under the AGPL-3.0 LICENSE.
NodeSupport sponsored this project.
感谢赞助商 ForZTN 对项目服务器的支持,感谢。
102 followers · starred Oct 2022
137 followers · starred May 2026
189 followers · starred May 2026
1,159 followers · starred Aug 2024
Advanced Subscription Manager for QX, Loon, Surge, Stash, Egern and Shadowrocket!
JavaScript
10,691
1,610 commits
updated Oct 15, 2026
Advanced Subscription Manager for QX, Loon, Surge, Stash, Egern and Shadowrocket
![]() | Thordata |面向开发者与出海用户的代理服务,提供住宅、ISP、移动及数据中心代理。支持国家/城市定位、轮换会话与粘性会话,适用于公开网页采集、SEO 监控、接口调试和地区内容测试。新用户 注册 即送 100MB 免费住宅代理,首购使用优惠码【SubStore10】享 9 折优惠。 |
![]() | MaruCode 是一家偶尔做做慈善的小破站 API,自营号池,不搞充值营销套路,主要提供 Codex、Claude Code、GPT Image-2 等主流模型,支持 WebSocket 协议,明码标价(Codex 0.3x, CC 1.5x),透明汇率(1:1),新用户注册 送 2 刀 💰 生图工作台 🖼 |
⚠️ sub.store is only the domain used by module-script rewrite MitM rules. It is not a public domain owned by us.
If a request does not go through the rewrite, the data will be sent to the public sub.store service.
You can map sub.store to 127.0.0.1 or another local address to prevent accidental access to the public sub.store. However, ordinary users may still send requests to the public sub.store after switching or toggling configuration modules.
sub.store would do this. Note: The official frontend is https://sub-store.vercel.app.sub.store.This creates a data leakage risk.
After listening to suggestions from the group, we will not switch to a new domain for now. Choosing a new domain is also awkward: it needs to be related, short, and unlikely to be registered by someone else, at least in the short term.
This notice is published only as an announcement. No changes will be made for now.
Example:
[Host]
sub.store = 127.0.0.1
Sub-Store also supports a configurable browser CORS allowlist for the backend API. This does not change the module rewrite domain, but it limits which browser origins can read API responses through CORS.
SUB_STORE_CORS_ALLOWED_ORIGINS; the default is https://sub-store.vercel.app,http://substore.stash,https://substore.stash.cors module argument; the default is https://sub-store.vercel.app,http://substore.stash,https://substore.stash.* only when you accept the risk of any website reading the local backend through browser CORS.For Node deployments, SUB_STORE_PUSH_SERVICE accepts a Shoutrrr URL or an existing HTTP/HTTPS URL template. Shoutrrr URLs are sent in-process with shoutrrr-ts; a separate shoutrrr executable is no longer used or required. HTTP/HTTPS URL templates still use the existing request path and [推送标题] / [推送内容] placeholders.
The supported Shoutrrr URL families are Generic Webhook (generic://, generic+https://, generic+http://), Bark, Discord, Gotify, Google Chat (hangouts:// alias), IFTTT, Join, Mattermost, ntfy, OpsGenie, Pushover, Pushbullet, Rocket.Chat, Slack, Microsoft Teams, Telegram, and Zulip. Matrix (matrix://) and SMTP (smtp://) are not supported, and there is no fallback to the old executable. Check existing configurations before upgrading; unsupported URLs produce a notification error instead of sending. See upstream compatibility details for URL options and caveats. Upstream checks use local Go-compatibility fixtures, not verified live delivery to every provider. The backend's tested Node version is in .node-version; check the upstream package for its current Node support.
Push URLs may contain secrets: treat SUB_STORE_PUSH_SERVICE as privileged configuration. Diagnostics from the Shoutrrr path do not print the configured URL. This change does not alter the HTTP/HTTPS URL template path or its existing logging behavior.
The following descriptions of features may not be updated in real-time. Please refer to the actual available features for accurate information.
本地节点怎么写/How To Write A Local Node
⚠️ Do not use
ShadowrocketorNekoBoxto export URI and then import it as input. The URIs exported in this way may not be standard URIs. However, we have already supported some very common non-standard URIs (such as VMess, VLESS).
Proxy URI Scheme(socks5, socks5+tls, http, https(it's ok))
example: socks5+tls://user:pass@ip:port#name
URI(AnyTLS, SOCKS, SS, SSR, VMess, VLESS, Trojan, Hysteria, Hysteria 2, TUIC v5, WireGuard)
Please note, HTTP(s) does not have a standard URI format, so it is not supported. Please use other formats.
Clash Proxies YAML
Clash Proxy JSON/JSON5/YAML(single line)
QX (SS, SSR, VMess, Trojan, HTTP, SOCKS5, VLESS, AnyTLS)
Loon (SS, SSR, VMess, Trojan, HTTP, SOCKS5, SOCKS5-TLS, WireGuard, VLESS, Hysteria 2, AnyTLS)
Surge (Direct, SS, VMess, Trojan, HTTP, HTTPS, HTTP/2 CONNECT, SOCKS5, SOCKS5-TLS, AnyTLS, TrustTunnel, TUIC, Snell, Hysteria 2, MASQUE(Surge), SSH(Password authentication only), External Proxy Program(only for macOS), WireGuard(Surge to Surge))
mihomo(Clash.Meta) Compatible (Direct, SS, SSR, VMess, Trojan, HTTP, SOCKS5, Snell, VLESS, WireGuard, Hysteria, Hysteria 2, TUIC, SSH, mieru, sudoku, AnyTLS, MASQUE, Tailscale, GOST Relay, Shadow QUIC, ZeroTier, OpenVPN)
Deprecated(The frontend doesn't show it, but the backend still supports it, with the query parameter target=Clash):
Deprecated:
udp,tfo, skip-cert-verify etc.Install pnpm
Go to backend directories, install node dependencies:
pnpm i
SUB_STORE_BACKEND_API_PORT=3000 pnpm esbuild:dev
or this one if you're using Termux
SUB_STORE_BACKEND_API_PORT=3000 pnpm run --parallel "/^dev:.*/"
pnpm bundle:esbuild
This project is under the AGPL-3.0 LICENSE.
NodeSupport sponsored this project.
感谢赞助商 ForZTN 对项目服务器的支持,感谢。
102 followers · starred Oct 2022
137 followers · starred May 2026
189 followers · starred May 2026
1,159 followers · starred Aug 2024