subscribe
Subscribe Configuration
Configure global subscription settings and manage subscription templates for client applications. Subscription configuration determines how users retrieve and use proxy node information.
Page Components
The Subscribe Configuration page is divided into two main modules:
1. Subscription Configuration
A card at the top of the page for configuring global subscription system settings.
Configuration Options:
Single Subscription Mode
- Type: Toggle switch
- Function: Limit users to one active subscription
- Note: Does not affect existing subscriptions, only applies to new ones
- Use Case: Control subscription count, prevent account sharing
Wildcard Resolution
- Type: Toggle switch
- Function: Enable wildcard domain resolution for subscriptions
- Note: Allows using wildcard domains to access subscription links
- Example:
*.example.comcan matchsub1.example.com,sub2.example.com
Subscription Path
- Type: Text input
- Function: Customize URL path for subscription endpoints
- Format:
/your-custom-path - Note: Better performance after system restart
- Example:
/api/v1/subscribeor/sub
Subscription Domain
- Type: Multi-line text
- Function: Customize domains for subscription links
- Format: One domain per line
- Example:
example.com www.example.com sub.example.com - Use Cases:
- Use CDN domains
- Multi-domain load balancing
- Domain backup
User-Agent Restriction
- Type: Toggle switch
- Function: Enable User-Agent based access control
- Note: Only allow whitelisted clients to access subscriptions
- Use Case: Prevent crawlers, restrict unauthorized access
User-Agent Whitelist
- Type: Multi-line text
- Function: Configure allowed User-Agent list for subscription access
- Format: One User-Agent per line
- Example:
ClashX ClashForAndroid Clash-verge - Note: Configured application User-Agents are automatically included
2. Client Management
Manage subscription templates and download links for different proxy clients.
Table Column Information:
- Default: Toggle switch to set as default client
- Default client is prioritized on subscription page
- Only one default client at a time
- Client Name: Displays client icon and name
- User-Agent: Client identifier for distinguishing different clients
- Output Format: Format type of subscription content
- Base64: Base64 encoded format
- YAML: YAML configuration file format
- JSON: JSON data format
- CONF: Configuration file format
- Plain Text: Plain text format
- Supported Platforms: Shows operating systems supported by this client
- Windows, macOS, Linux, iOS, Android, HarmonyOS
- Description: Detailed client description
Operation Features:
- Preview: View generated subscription template content
- Base64 format shows both original and decoded content
- Other formats display content directly
- Supports syntax highlighting
- Edit: Modify client configuration
- Delete: Delete client configuration
- Batch Delete: Delete multiple selected clients
Top Toolbar:
- Template Repo Link: Jump to GitHub template repository
- URL: https://github.com/perfect-panel/subscription-template
- Provides subscription template examples and documentation
- Add: Create new client configuration
Client Form
A sidebar form that opens when clicking "Add" or "Edit", divided into three tabs.
Basic Info
Icon
- Type: URL input + Upload button
- Format: Image URL or Base64 encoding
- Example:
https://example.com/icon.png - Function: Supports direct image upload, auto-converts to Base64
Name - Required
- Type: Text input
- Function: Client display name
- Example:
Clash for Windows,V2rayN
User-Agent - Required
- Type: Text input
- Function: Client identifier for distinguishing different clients
- Example:
Clash,V2rayN,ClashX - Important: Must match the actual User-Agent sent by the client
Description - Optional
- Type: Multi-line text
- Function: Detailed client description
- Content: Client features, usage instructions, etc.
Templates
Output Format - Required
- Type: Dropdown selection
- Options:
- Base64: Traditional subscription format, suitable for most clients
- YAML: Clash series client configuration format
- JSON: JSON format configuration for clients supporting JSON
- CONF: Configuration file format, like Shadowrocket
- Plain Text: Plain text format
Scheme - Optional
- Type: Text input
- Function: Custom URL Scheme
- Example:
clash://,vmess:// - Purpose: One-click subscription import
Template - Required
- Type: Go Template editor
- Function: Write subscription content using Go template syntax
- Supports: Syntax highlighting, code completion
- Variables:
{{.SiteName}}: Site name{{.SubscribeName}}: Subscription name{{.Proxies}}: Node array{{.UserInfo}}: User information
Template Variable Reference
For detailed template variable reference, see: Template Variable Reference
UserInfo Fields:
Password- User passwordExpiredAt- Expiration timeDownload- Downloaded trafficUpload- Uploaded trafficTraffic- Total trafficSubscribeURL- Subscription link
Downloads
Configure client download URLs for multiple platforms:
- Windows: Windows platform download link
- macOS: macOS platform download link
- Linux: Linux platform download link
- iOS: iOS platform download link
- Android: Android platform download link
- HarmonyOS: HarmonyOS download link
Each platform is optional. When filled, corresponding platform badges will be displayed in the client list.
Use Cases
Scenario 1: Configure Clash Client
- Click "Add"
- Basic Info:
- Name:
Clash for Windows - User-Agent:
Clash - Icon: Upload Clash icon
- Name:
- Templates:
- Output Format: Select
YAML - Template: Write Clash YAML configuration template
- Output Format: Select
- Downloads:
- Windows:
https://github.com/Fndroid/clash_for_windows_pkg/releases - macOS:
https://github.com/yichengchen/clashX/releases
- Windows:
- Click "Confirm"
Scenario 2: Configure Traditional Base64 Subscription
- Click "Add"
- Basic Info:
- Name:
Universal - User-Agent:
*
- Name:
- Templates:
- Output Format: Select
Base64 - Template: Write standard vmess/vless URI list
- Output Format: Select
- Set as default client
- Click "Confirm"
Scenario 3: Restrict Subscription Access
- Open "Subscription Configuration"
- Enable "User-Agent Restriction"
- Add to "User-Agent Whitelist":
Clash V2rayN ClashX Quantumult - Save configuration
- Only whitelisted clients can access subscriptions
Scenario 4: Use Custom Domain
- Open "Subscription Configuration"
- Add to "Subscription Domain":
sub.example.com cdn.example.com - Configure "Subscription Path":
/api/sub - Save configuration
- Users can access subscriptions via
https://sub.example.com/api/sub/{token}
Template Writing Guide
Base64 Format Example
{{range .Proxies}}{{.Type}}://{{.UUID}}@{{.Server}}:{{.Port}}?security={{.Security}}&sni={{.SNI}}#{{.Name}}
{{end}}Clash YAML Format Example
proxies:
{{range .Proxies}}
- name: {{.Name}}
type: {{.Type}}
server: {{.Server}}
port: {{.Port}}
{{if eq .Type "vless"}}uuid: {{.UUID}}{{end}}
{{if eq .Type "vmess"}}uuid: {{.UUID}}{{end}}
{{if eq .Type "trojan"}}password: {{.Password}}{{end}}
{{end}}Conditional Logic Example
{{range .Proxies}}
{{if eq .Type "vless"}}
vless://{{.UUID}}@{{.Server}}:{{.Port}}
{{else if eq .Type "vmess"}}
vmess://{{.UUID}}@{{.Server}}:{{.Port}}
{{end}}
{{end}}Important Notes
- User-Agent Matching: Must exactly match the User-Agent sent by the client, otherwise cannot be correctly identified
- Template Syntax: Uses Go Template syntax, syntax errors will cause subscription generation failure
- Output Format: Ensure template output matches selected format, e.g., YAML format requires correct indentation
- Default Client: Only one default client at a time, setting new default will cancel the old one
- Domain Configuration: Custom domains need to be correctly configured in DNS and web server
- Path Changes: After changing subscription path, system restart recommended for best performance
- Preview Function: Use preview to test if template generates correctly
- Template Repository: Refer to GitHub template repository for more examples and best practices