mirror of
				https://github.com/taixingyiji/openit.git
				synced 2025-10-29 01:42:22 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			323 lines
		
	
	
		
			8.4 KiB
		
	
	
	
		
			TOML
		
	
	
	
	
	
			
		
		
	
	
			323 lines
		
	
	
		
			8.4 KiB
		
	
	
	
		
			TOML
		
	
	
	
	
	
| version = 1
 | |
| [common]
 | |
| # API mode, set to true to prevent loading local subscriptions or serving local files directly
 | |
| api_mode = false
 | |
| 
 | |
| # Access token used for performing critical action through Web interface
 | |
| api_access_token = "password"
 | |
| 
 | |
| # Default URLs, used when no URL is provided in request, use "|" to separate multiple subscription links, supports local files/URL
 | |
| default_url = []
 | |
| 
 | |
| # Insert subscription links to requests. Can be used to add node(s) to all exported subscriptions.
 | |
| enable_insert = true
 | |
| # URLs to insert before subscription links, can be used to add node(s) to all exported subscriptions, supports local files/URL
 | |
| insert_url = [""]
 | |
| # Prepend inserted URLs to subscription links. Nodes in insert_url will be added to groups first with non-group-specific match pattern.
 | |
| prepend_insert_url = true
 | |
| 
 | |
| # Exclude nodes which remarks match the following patterns. Supports regular expression.
 | |
| exclude_remarks = ["(到期|剩余流量|时间|官网|产品)"]
 | |
| 
 | |
| # Only include nodes which remarks match the following patterns. Supports regular expression.
 | |
| #include_remarks = ["V3.*港"]
 | |
| 
 | |
| # Enable script support for filtering nodes
 | |
| enable_filter = false
 | |
| # Script used for filtering nodes. Supports inline script and script path. A "filter" function with 1 argument which is a node should be defined in the script.
 | |
| # Example: Inline script: Set value to content of script.
 | |
| #          Script path: Set value to "path:/path/to/script.js".
 | |
| #filter_script = '''
 | |
| #function filter(node) {
 | |
| #    const info = JSON.parse(node.ProxyInfo);
 | |
| #    if(info.EncryptMethod.includes('chacha20'))
 | |
| #	    return true;
 | |
| #    return false;
 | |
| #}
 | |
| #'''
 | |
| 
 | |
| # Setting an external config file as default when none is specified, supports local files/URL
 | |
| # default_external_config = "config/example_external_config.toml"
 | |
| 
 | |
| # The file scope limit of the 'rule_base' options in external configs.
 | |
| base_path = "base"
 | |
| 
 | |
| # Clash config base used by the generator, supports local files/URL
 | |
| clash_rule_base = "base/all_base.tpl"
 | |
| 
 | |
| # Surge config base used by the generator, supports local files/URL
 | |
| surge_rule_base = "base/all_base.tpl"
 | |
| 
 | |
| # Surfboard config base used by the generator, supports local files/URL
 | |
| surfboard_rule_base = "base/all_base.tpl"
 | |
| 
 | |
| # Mellow config base used by the generator, supports local files/URL
 | |
| mellow_rule_base = "base/all_base.tpl"
 | |
| 
 | |
| # Quantumult config base used by the generator, supports local files/URL
 | |
| quan_rule_base = "base/all_base.tpl"
 | |
| 
 | |
| # Quantumult X config base used by the generator, supports local files/URL
 | |
| quanx_rule_base = "base/all_base.tpl"
 | |
| 
 | |
| # Loon config base used by the generator, supports local files/URL
 | |
| loon_rule_base = "base/all_base.tpl"
 | |
| 
 | |
| # Shadowsocks Android config base used by the generator, supports local files/URL
 | |
| sssub_rule_base = "base/all_base.tpl"
 | |
| 
 | |
| # Proxy used to download rulesets or subscriptions, set to NONE or empty to disable it, set to SYSTEM to use system proxy.
 | |
| # Accept cURL-supported proxies (http:// https:// socks4a:// socks5://)
 | |
| 
 | |
| proxy_config = "SYSTEM"
 | |
| proxy_ruleset = "SYSTEM"
 | |
| proxy_subscription = "NONE"
 | |
| 
 | |
| # Append a proxy type string ([SS] [SSR] [VMess]) to node remark.
 | |
| append_proxy_type = false
 | |
| 
 | |
| [[userinfo.stream_rule]]
 | |
| # Rules to extract stream data from node
 | |
| # Format: full_match_regex|new_format_regex
 | |
| # where new_format_regex should be like "total=$1&left=$2&used=$3"
 | |
| match = '^剩余流量:(.*?)\|总流量:(.*)$'
 | |
| replace = 'total=$2&left=$1'
 | |
| 
 | |
| [[userinfo.stream_rule]]
 | |
| match = '^剩余流量:(.*?) (.*)$'
 | |
| replace = 'total=$1&left=$2'
 | |
| 
 | |
| [[userinfo.stream_rule]]
 | |
| match = '^Bandwidth: (.*?)/(.*)$'
 | |
| replace = 'used=$1&total=$2'
 | |
| 
 | |
| [[userinfo.stream_rule]]
 | |
| match = '^.*剩余(.*?)(?:\s*?)@(?:.*)$'
 | |
| replace = 'total=$1'
 | |
| 
 | |
| [[userinfo.time_rule]]
 | |
| # Rules to extract expire time data from node
 | |
| # Format: full_match_regex|new_format_regex
 | |
| # where new_format_regex should follow this example: yyyy:mm:dd:hh:mm:ss
 | |
| match = '^过期时间:(\d+)-(\d+)-(\d+) (\d+):(\d+):(\d+)$'
 | |
| replace = '$1:$2:$3:$4:$5:$6'
 | |
| 
 | |
| [[userinfo.time_rule]]
 | |
| match = '^到期时间:(\d+)-(\d+)-(\d+)$'
 | |
| replace = '$1:$2:$3:0:0:0'
 | |
| 
 | |
| [[userinfo.time_rule]]
 | |
| match = '^Smart Access expire: (\d+)/(\d+)/(\d+)$'
 | |
| replace = '$1:$2:$3:0:0:0'
 | |
| 
 | |
| [node_pref]
 | |
| udp_flag = true
 | |
| tcp_fast_open_flag = false
 | |
| skip_cert_verify_flag = true
 | |
| tls13_flag = false
 | |
| 
 | |
| sort_flag = false
 | |
| # Script used for sorting nodes. A "compare" function with 2 arguments which are the 2 nodes to be compared should be defined in the script. Supports inline script and script path.
 | |
| # Examples can be seen at the filter_script option in [common] section.
 | |
| #sort_script = '''
 | |
| #function compare(node_a, node_b) {
 | |
| #   return info_a.Remark > info_b.Remark;
 | |
| #}
 | |
| #'''
 | |
| 
 | |
| filter_deprecated_nodes = false
 | |
| append_sub_userinfo = true
 | |
| clash_use_new_field_name = true
 | |
| 
 | |
| # Generate style of the proxies section of Clash subscriptions.
 | |
| # Supported styles: block, flow, compact
 | |
| # Block: - name: name1    Flow: - {name: name1, key: value}    Compact: [{name: name1, key: value},{name: name2, key: value}]
 | |
| #         key: value           - {name: name2, key: value}
 | |
| #       - name: name2
 | |
| #         key: value
 | |
| clash_proxies_style = "flow"
 | |
| 
 | |
| [[node_pref.rename_node]]
 | |
| match = '\(?((x|X)?(\d+)(\.?\d+)?)((\s?倍率?)|(x|X))\)?'
 | |
| replace = "$1x"
 | |
| 
 | |
| [managed_config]
 | |
| # Append a '#!MANAGED-CONFIG' info to Surge configurations
 | |
| write_managed_config = true
 | |
| 
 | |
| # Address prefix for MANAGED-CONFIG info, without the trailing "/".
 | |
| managed_config_prefix = "http://127.0.0.1:25500"
 | |
| 
 | |
| # Managed config update interval in seconds, determine how long the config will be updated.
 | |
| config_update_interval = 86400
 | |
| 
 | |
| # If config_update_strict is set to true, Surge will require a force update after the interval.
 | |
| config_update_strict = false
 | |
| 
 | |
| # Device ID to be written to rewrite scripts for some version of Quantumult X 
 | |
| quanx_device_id = ""
 | |
| 
 | |
| [surge_external_proxy]
 | |
| #surge_ssr_path = "/usr/bin/ssr-local"
 | |
| resolve_hostname = true
 | |
| 
 | |
| [emojis]
 | |
| add_emoji = false
 | |
| remove_old_emoji = true
 | |
| 
 | |
| [[emojis.emoji]]
 | |
| #match = '(流量|时间|应急)'
 | |
| #emoji = '🏳️🌈'
 | |
| import = "snippets/emoji.toml"
 | |
| 
 | |
| # [[custom_groups]]
 | |
| # name = "Auto"
 | |
| # type = "url-test"
 | |
| # rule = [".*"]
 | |
| # url = "http://www.gstatic.com/generate_204"
 | |
| # interval = 300
 | |
| # tolerance = 150
 | |
| # lazy = true
 | |
| 
 | |
| # [[custom_groups]]
 | |
| # name = "Proxy"
 | |
| # type = "select"
 | |
| # rule = [".*", "[]DIRECT"]
 | |
| # disable_udp = false
 | |
| 
 | |
| # [[custom_groups]]
 | |
| # name = "LoadBalance"
 | |
| # type = "load-balance"
 | |
| # rule = [".*", "[]Proxy", "[]DIRECT"]
 | |
| # interval = 100
 | |
| # strategy = "consistent-hashing"
 | |
| # url = "http://www.gstatic.com/generate_204"
 | |
| 
 | |
| [[custom_groups]]
 | |
| import = "snippets/groups.toml"
 | |
| 
 | |
| [ruleset]
 | |
| # Enable generating rules with rulesets
 | |
| enabled = true
 | |
| 
 | |
| # Overwrite the existing rules in rule_base
 | |
| overwrite_original_rules = false
 | |
| 
 | |
| # Perform a ruleset update on request
 | |
| update_ruleset_on_request = false
 | |
| 
 | |
| # [[rulesets]]
 | |
| # group = "Proxy"
 | |
| # ruleset = "https://raw.githubusercontent.com/DivineEngine/Profiles/master/Surge/Ruleset/Unbreak.list"
 | |
| # type = "surge-ruleset"
 | |
| # interval = 86400
 | |
| 
 | |
| [[rulesets]]
 | |
| import = "snippets/rulesets.toml"
 | |
| 
 | |
| [template]
 | |
| template_path = ""
 | |
| 
 | |
| [[template.globals]]
 | |
| key = "clash.http_port"
 | |
| value = "7890"
 | |
| 
 | |
| [[template.globals]]
 | |
| key = "clash.socks_port"
 | |
| value = "7891"
 | |
| 
 | |
| [[template.globals]]
 | |
| key = "clash.allow_lan"
 | |
| value = "true"
 | |
| 
 | |
| [[template.globals]]
 | |
| key = "clash.log_level"
 | |
| value = "info"
 | |
| 
 | |
| [[aliases]]
 | |
| uri = "/clash"
 | |
| target = "/sub?target=clash"
 | |
| 
 | |
| [[aliases]]
 | |
| uri = "/clashr"
 | |
| target = "/sub?target=clashr"
 | |
| 
 | |
| [[aliases]]
 | |
| uri = "/surge"
 | |
| target = "/sub?target=surge"
 | |
| 
 | |
| [[aliases]]
 | |
| uri = "/quan"
 | |
| target = "/sub?target=quan"
 | |
| 
 | |
| [[aliases]]
 | |
| uri = "/quanx"
 | |
| target = "/sub?target=quanx"
 | |
| 
 | |
| [[aliases]]
 | |
| uri = "/mellow"
 | |
| target = "/sub?target=mellow"
 | |
| 
 | |
| [[aliases]]
 | |
| uri = "/surfboard"
 | |
| target = "/sub?target=surfboard"
 | |
| 
 | |
| [[aliases]]
 | |
| uri = "/loon"
 | |
| target = "/sub?target=loon"
 | |
| 
 | |
| [[aliases]]
 | |
| uri = "/ss"
 | |
| target = "/sub?target=ss"
 | |
| 
 | |
| [[aliases]]
 | |
| uri = "/ssd"
 | |
| target = "/sub?target=ssd"
 | |
| 
 | |
| [[aliases]]
 | |
| uri = "/sssub"
 | |
| target = "/sub?target=sssub"
 | |
| 
 | |
| [[aliases]]
 | |
| uri = "/ssr"
 | |
| target = "/sub?target=ssr"
 | |
| 
 | |
| [[aliases]]
 | |
| uri = "/v2ray"
 | |
| target = "/sub?target=v2ray"
 | |
| 
 | |
| [[aliases]]
 | |
| uri = "/trojan"
 | |
| target = "/sub?target=trojan"
 | |
| 
 | |
| [[aliases]]
 | |
| uri = "/test"
 | |
| target = "/render?path=templates/test.tpl"
 | |
| 
 | |
| #[[tasks]]
 | |
| #name = "tick"
 | |
| #cronexp = "0/10 * * * * ?"
 | |
| #path = "tick.js"
 | |
| #timeout = 3
 | |
| 
 | |
| [server]
 | |
| listen = "0.0.0.0"
 | |
| port = 25500
 | |
| serve_file_root = "web"
 | |
| 
 | |
| [advanced]
 | |
| log_level = "debug"
 | |
| print_debug_info = true
 | |
| max_pending_connections = 10240
 | |
| max_concurrent_threads = 4
 | |
| max_allowed_rulesets = 64
 | |
| max_allowed_rules = 0
 | |
| max_allowed_download_size = 0
 | |
| enable_cache = true
 | |
| cache_subscription = 60
 | |
| cache_config = 300
 | |
| cache_ruleset = 21600
 | |
| script_clean_context = true
 | |
| async_fetch_ruleset = false
 | |
| skip_failed_links = true
 |