public_path: ${PUBLIC_PATH} sources: airport-a: enabled: true display_name: A kind: auto url: ${AIRPORT_A_URL} prefix: "[A] " include_regex: "" exclude_regex: "" airport-b: enabled: false display_name: B kind: auto url: ${AIRPORT_B_URL} prefix: "[B] " include_regex: "" exclude_regex: "" regions: hk: name: "๐Ÿ‡ญ๐Ÿ‡ฐ ้ฆ™ๆธฏ่Š‚็‚น" filter: "(?i)(ๆธฏ|hk|hong kong|hongkong)" tolerance: 50 tw: name: "๐Ÿ‡จ๐Ÿ‡ณ ๅฐๆนพ่Š‚็‚น" filter: "(?i)(ๅฐ|ๆ–ฐๅŒ—|ๅฝฐๅŒ–|tw|taiwan)" tolerance: 50 sg: name: "๐Ÿ‡ธ๐Ÿ‡ฌ ็‹ฎๅŸŽ่Š‚็‚น" filter: "(?i)(ๆ–ฐๅŠ ๅก|ๅก|็‹ฎๅŸŽ|sg|singapore)" tolerance: 50 jp: name: "๐Ÿ‡ฏ๐Ÿ‡ต ๆ—ฅๆœฌ่Š‚็‚น" filter: "(?i)(ๆ—ฅๆœฌ|ไธœไบฌ|ๅคง้˜ช|ๅŸผ็މ|jp|japan)" tolerance: 50 us: name: "๐Ÿ‡บ๐Ÿ‡ฒ ็พŽๅ›ฝ่Š‚็‚น" filter: "(?i)(็พŽ|ๆณข็‰นๅ…ฐ|่พพๆ‹‰ๆ–ฏ|ไฟ„ๅ‹’ๅ†ˆ|ๅ‡คๅ‡ฐๅŸŽ|่ดนๅˆฉ่’™|็ก…่ฐท|ๆ‹‰ๆ–ฏ็ปดๅŠ ๆ–ฏ|ๆด›ๆ‰็Ÿถ|ๅœฃไฝ•ๅกž|ๅœฃๅ…‹ๆ‹‰ๆ‹‰|่ฅฟ้›…ๅ›พ|่ŠๅŠ ๅ“ฅ|us|united states)" tolerance: 150 kr: name: "๐Ÿ‡ฐ๐Ÿ‡ท ้Ÿฉๅ›ฝ่Š‚็‚น" filter: "(?i)(kr|korea|kor|้ฆ–ๅฐ”|้Ÿฉ|้Ÿ“)" tolerance: 50 selector_groups: - name: "๐ŸŽฅ ๅฅˆ้ฃž่Š‚็‚น" type: select filter: "(?i)(nf|ๅฅˆ้ฃž|่งฃ้”|netflix|media)" policy_groups: - name: "๐Ÿ“ฒ ็”ตๆŠฅๆถˆๆฏ" type: select proxies: - "{{ main_policy }}" - "{{ mixed_auto_policy }}" - "๐Ÿ‡ธ๐Ÿ‡ฌ ็‹ฎๅŸŽ่Š‚็‚น" - "๐Ÿ‡ญ๐Ÿ‡ฐ ้ฆ™ๆธฏ่Š‚็‚น" - "๐Ÿ‡จ๐Ÿ‡ณ ๅฐๆนพ่Š‚็‚น" - "๐Ÿ‡ฏ๐Ÿ‡ต ๆ—ฅๆœฌ่Š‚็‚น" - "๐Ÿ‡บ๐Ÿ‡ฒ ็พŽๅ›ฝ่Š‚็‚น" - "๐Ÿ‡ฐ๐Ÿ‡ท ้Ÿฉๅ›ฝ่Š‚็‚น" - "{{ manual_policy }}" - "{{ direct_policy }}" - name: "๐Ÿ’ฌ Aiๅนณๅฐ" type: select proxies: - "{{ main_policy }}" - "{{ mixed_auto_policy }}" - "๐Ÿ‡บ๐Ÿ‡ฒ ็พŽๅ›ฝ่Š‚็‚น" - "๐Ÿ‡ธ๐Ÿ‡ฌ ็‹ฎๅŸŽ่Š‚็‚น" - "๐Ÿ‡ฏ๐Ÿ‡ต ๆ—ฅๆœฌ่Š‚็‚น" - "๐Ÿ‡ญ๐Ÿ‡ฐ ้ฆ™ๆธฏ่Š‚็‚น" - "๐Ÿ‡จ๐Ÿ‡ณ ๅฐๆนพ่Š‚็‚น" - "๐Ÿ‡ฐ๐Ÿ‡ท ้Ÿฉๅ›ฝ่Š‚็‚น" - "{{ manual_policy }}" - "{{ direct_policy }}" - name: "๐Ÿ“น ๆฒน็ฎก่ง†้ข‘" type: select proxies: - "{{ main_policy }}" - "{{ mixed_auto_policy }}" - "๐Ÿ‡ธ๐Ÿ‡ฌ ็‹ฎๅŸŽ่Š‚็‚น" - "๐Ÿ‡ญ๐Ÿ‡ฐ ้ฆ™ๆธฏ่Š‚็‚น" - "๐Ÿ‡จ๐Ÿ‡ณ ๅฐๆนพ่Š‚็‚น" - "๐Ÿ‡ฏ๐Ÿ‡ต ๆ—ฅๆœฌ่Š‚็‚น" - "๐Ÿ‡บ๐Ÿ‡ฒ ็พŽๅ›ฝ่Š‚็‚น" - "๐Ÿ‡ฐ๐Ÿ‡ท ้Ÿฉๅ›ฝ่Š‚็‚น" - "{{ manual_policy }}" - "{{ direct_policy }}" - name: "๐ŸŽฅ ๅฅˆ้ฃž่ง†้ข‘" type: select proxies: - "๐ŸŽฅ ๅฅˆ้ฃž่Š‚็‚น" - "{{ main_policy }}" - "{{ mixed_auto_policy }}" - "๐Ÿ‡ธ๐Ÿ‡ฌ ็‹ฎๅŸŽ่Š‚็‚น" - "๐Ÿ‡ญ๐Ÿ‡ฐ ้ฆ™ๆธฏ่Š‚็‚น" - "๐Ÿ‡จ๐Ÿ‡ณ ๅฐๆนพ่Š‚็‚น" - "๐Ÿ‡ฏ๐Ÿ‡ต ๆ—ฅๆœฌ่Š‚็‚น" - "๐Ÿ‡บ๐Ÿ‡ฒ ็พŽๅ›ฝ่Š‚็‚น" - "๐Ÿ‡ฐ๐Ÿ‡ท ้Ÿฉๅ›ฝ่Š‚็‚น" - "{{ manual_policy }}" - "{{ direct_policy }}" - name: "๐ŸŒ ๅ›ฝๅค–ๅช’ไฝ“" type: select proxies: - "{{ main_policy }}" - "{{ mixed_auto_policy }}" - "๐Ÿ‡ญ๐Ÿ‡ฐ ้ฆ™ๆธฏ่Š‚็‚น" - "๐Ÿ‡จ๐Ÿ‡ณ ๅฐๆนพ่Š‚็‚น" - "๐Ÿ‡ธ๐Ÿ‡ฌ ็‹ฎๅŸŽ่Š‚็‚น" - "๐Ÿ‡ฏ๐Ÿ‡ต ๆ—ฅๆœฌ่Š‚็‚น" - "๐Ÿ‡บ๐Ÿ‡ฒ ็พŽๅ›ฝ่Š‚็‚น" - "๐Ÿ‡ฐ๐Ÿ‡ท ้Ÿฉๅ›ฝ่Š‚็‚น" - "{{ manual_policy }}" - "{{ direct_policy }}" - name: "๐Ÿ“ข ่ฐทๆญŒ" type: select proxies: - "{{ main_policy }}" - "{{ direct_policy }}" - "๐Ÿ‡บ๐Ÿ‡ฒ ็พŽๅ›ฝ่Š‚็‚น" - "๐Ÿ‡ญ๐Ÿ‡ฐ ้ฆ™ๆธฏ่Š‚็‚น" - "๐Ÿ‡จ๐Ÿ‡ณ ๅฐๆนพ่Š‚็‚น" - "๐Ÿ‡ธ๐Ÿ‡ฌ ็‹ฎๅŸŽ่Š‚็‚น" - "๐Ÿ‡ฏ๐Ÿ‡ต ๆ—ฅๆœฌ่Š‚็‚น" - "๐Ÿ‡ฐ๐Ÿ‡ท ้Ÿฉๅ›ฝ่Š‚็‚น" - "{{ manual_policy }}" - name: "โ“‚๏ธ ๅพฎ่ฝฏBing" type: select proxies: - "{{ direct_policy }}" - "{{ main_policy }}" - "๐Ÿ‡บ๐Ÿ‡ฒ ็พŽๅ›ฝ่Š‚็‚น" - "๐Ÿ‡ญ๐Ÿ‡ฐ ้ฆ™ๆธฏ่Š‚็‚น" - "๐Ÿ‡จ๐Ÿ‡ณ ๅฐๆนพ่Š‚็‚น" - "๐Ÿ‡ธ๐Ÿ‡ฌ ็‹ฎๅŸŽ่Š‚็‚น" - "๐Ÿ‡ฏ๐Ÿ‡ต ๆ—ฅๆœฌ่Š‚็‚น" - "๐Ÿ‡ฐ๐Ÿ‡ท ้Ÿฉๅ›ฝ่Š‚็‚น" - "{{ manual_policy }}" - name: "โ“‚๏ธ ๅพฎ่ฝฏไบ‘็›˜" type: select proxies: - "{{ direct_policy }}" - "{{ main_policy }}" - "๐Ÿ‡บ๐Ÿ‡ฒ ็พŽๅ›ฝ่Š‚็‚น" - "๐Ÿ‡ญ๐Ÿ‡ฐ ้ฆ™ๆธฏ่Š‚็‚น" - "๐Ÿ‡จ๐Ÿ‡ณ ๅฐๆนพ่Š‚็‚น" - "๐Ÿ‡ธ๐Ÿ‡ฌ ็‹ฎๅŸŽ่Š‚็‚น" - "๐Ÿ‡ฏ๐Ÿ‡ต ๆ—ฅๆœฌ่Š‚็‚น" - "๐Ÿ‡ฐ๐Ÿ‡ท ้Ÿฉๅ›ฝ่Š‚็‚น" - "{{ manual_policy }}" - name: "โ“‚๏ธ ๅพฎ่ฝฏๆœๅŠก" type: select proxies: - "{{ direct_policy }}" - "{{ main_policy }}" - "๐Ÿ‡บ๐Ÿ‡ฒ ็พŽๅ›ฝ่Š‚็‚น" - "๐Ÿ‡ญ๐Ÿ‡ฐ ้ฆ™ๆธฏ่Š‚็‚น" - "๐Ÿ‡จ๐Ÿ‡ณ ๅฐๆนพ่Š‚็‚น" - "๐Ÿ‡ธ๐Ÿ‡ฌ ็‹ฎๅŸŽ่Š‚็‚น" - "๐Ÿ‡ฏ๐Ÿ‡ต ๆ—ฅๆœฌ่Š‚็‚น" - "๐Ÿ‡ฐ๐Ÿ‡ท ้Ÿฉๅ›ฝ่Š‚็‚น" - "{{ manual_policy }}" - name: "๐ŸŽ ่‹นๆžœๆœๅŠก" type: select proxies: - "{{ direct_policy }}" - "{{ main_policy }}" - "๐Ÿ‡บ๐Ÿ‡ฒ ็พŽๅ›ฝ่Š‚็‚น" - "๐Ÿ‡ญ๐Ÿ‡ฐ ้ฆ™ๆธฏ่Š‚็‚น" - "๐Ÿ‡จ๐Ÿ‡ณ ๅฐๆนพ่Š‚็‚น" - "๐Ÿ‡ธ๐Ÿ‡ฌ ็‹ฎๅŸŽ่Š‚็‚น" - "๐Ÿ‡ฏ๐Ÿ‡ต ๆ—ฅๆœฌ่Š‚็‚น" - "๐Ÿ‡ฐ๐Ÿ‡ท ้Ÿฉๅ›ฝ่Š‚็‚น" - "{{ manual_policy }}" - name: "๐ŸŽฎ ๆธธๆˆๅนณๅฐ" type: select proxies: - "{{ main_policy }}" - "{{ direct_policy }}" - "๐Ÿ‡บ๐Ÿ‡ฒ ็พŽๅ›ฝ่Š‚็‚น" - "๐Ÿ‡ญ๐Ÿ‡ฐ ้ฆ™ๆธฏ่Š‚็‚น" - "๐Ÿ‡จ๐Ÿ‡ณ ๅฐๆนพ่Š‚็‚น" - "๐Ÿ‡ธ๐Ÿ‡ฌ ็‹ฎๅŸŽ่Š‚็‚น" - "๐Ÿ‡ฏ๐Ÿ‡ต ๆ—ฅๆœฌ่Š‚็‚น" - "๐Ÿ‡ฐ๐Ÿ‡ท ้Ÿฉๅ›ฝ่Š‚็‚น" - "{{ manual_policy }}" - name: "๐ŸŽฎ PTๅนณๅฐ" type: select proxies: - "{{ main_policy }}" - "{{ direct_policy }}" - "๐Ÿ‡ญ๐Ÿ‡ฐ ้ฆ™ๆธฏ่Š‚็‚น" - "๐Ÿ‡จ๐Ÿ‡ณ ๅฐๆนพ่Š‚็‚น" - "๐Ÿ‡ธ๐Ÿ‡ฌ ็‹ฎๅŸŽ่Š‚็‚น" - "๐Ÿ‡ฏ๐Ÿ‡ต ๆ—ฅๆœฌ่Š‚็‚น" - "๐Ÿ‡บ๐Ÿ‡ฒ ็พŽๅ›ฝ่Š‚็‚น" - "๐Ÿ‡ฐ๐Ÿ‡ท ้Ÿฉๅ›ฝ่Š‚็‚น" - "{{ manual_policy }}" - name: "๐ŸŽฏ ๅ…จ็ƒ็›ด่ฟž" type: select proxies: - "{{ direct_policy }}" - "{{ main_policy }}" - "{{ mixed_auto_policy }}" - name: "๐Ÿ›‘ ๅนฟๅ‘Šๆ‹ฆๆˆช" type: select proxies: - REJECT - "{{ direct_policy }}" - name: "๐Ÿƒ ๅบ”็”จๅ‡€ๅŒ–" type: select proxies: - REJECT - "{{ direct_policy }}" - name: "๐ŸŸ ๆผ็ฝ‘ไน‹้ฑผ" type: select proxies: - "{{ direct_policy }}" - "{{ main_policy }}" - "{{ mixed_auto_policy }}" - "{{ selector_groups }}" - "{{ manual_policy }}" rules: custom-proxy: behavior: classical format: text policy: "{{ main_policy }}" payload: - DOMAIN-KEYWORD,cloudflare - DOMAIN-KEYWORD,hetzner - DOMAIN-KEYWORD,github - DOMAIN-KEYWORD,google - DOMAIN-KEYWORD,vscode - DOMAIN-KEYWORD,telegram - DOMAIN-KEYWORD,youtube - DOMAIN-KEYWORD,whatsapp - DOMAIN-KEYWORD,dropbox - DOMAIN-KEYWORD,facebook - DOMAIN-KEYWORD,twitter - DOMAIN-KEYWORD,instagram - DOMAIN-KEYWORD,spotify - DOMAIN-KEYWORD,sci-hub - DOMAIN-KEYWORD,1e100 reject: file: reject.yaml behavior: domain format: yaml interval: 86400 policy: REJECT app-purify: behavior: classical format: text policy: "๐Ÿƒ ๅบ”็”จๅ‡€ๅŒ–" payload: - DOMAIN-KEYWORD,omgmtaw direct: file: direct.yaml behavior: domain format: yaml interval: 86400 policy: "๐ŸŽฏ ๅ…จ็ƒ็›ด่ฟž" local-network: behavior: classical format: text policy: "๐ŸŽฏ ๅ…จ็ƒ็›ด่ฟž" no_resolve: true payload: - IP-CIDR,10.0.0.0/8 - IP-CIDR,172.16.0.0/12 - IP-CIDR,192.168.0.0/16 google: behavior: classical format: text policy: "๐Ÿ“ข ่ฐทๆญŒ" payload: - DOMAIN-KEYWORD,gmail - DOMAIN-KEYWORD,google - DOMAIN-SUFFIX,googleapis.com - DOMAIN-SUFFIX,gstatic.com - DOMAIN-SUFFIX,googlevideo.com microsoft-bing: behavior: classical format: text policy: "โ“‚๏ธ ๅพฎ่ฝฏBing" payload: - DOMAIN-KEYWORD,bing microsoft-onedrive: behavior: classical format: text policy: "โ“‚๏ธ ๅพฎ่ฝฏไบ‘็›˜" payload: - DOMAIN-KEYWORD,1drv - DOMAIN-KEYWORD,onedrive - DOMAIN-KEYWORD,skydrive microsoft: behavior: classical format: text policy: "โ“‚๏ธ ๅพฎ่ฝฏๆœๅŠก" payload: - DOMAIN-KEYWORD,microsoft - DOMAIN-SUFFIX,live.com - DOMAIN-SUFFIX,windows.com - DOMAIN-SUFFIX,microsoftonline.com apple: behavior: classical format: text policy: "๐ŸŽ ่‹นๆžœๆœๅŠก" payload: - DOMAIN-KEYWORD,apple - DOMAIN-SUFFIX,icloud.com - DOMAIN-SUFFIX,apple.com telegram: behavior: classical format: text policy: "๐Ÿ“ฒ ็”ตๆŠฅๆถˆๆฏ" no_resolve: true payload: - DOMAIN-KEYWORD,telegram - DOMAIN-SUFFIX,t.me - DOMAIN-SUFFIX,telegram.me - DOMAIN-SUFFIX,telegram.org - IP-CIDR,91.108.4.0/22 - IP-CIDR,91.108.8.0/21 - IP-CIDR,91.108.16.0/22 - IP-CIDR,91.108.56.0/22 - IP-CIDR,149.154.160.0/20 ai: behavior: classical format: text policy: "๐Ÿ’ฌ Aiๅนณๅฐ" payload: - DOMAIN-KEYWORD,openai - DOMAIN-KEYWORD,anthropic - DOMAIN-KEYWORD,claude - DOMAIN-SUFFIX,chatgpt.com - DOMAIN-SUFFIX,openai.com - DOMAIN-SUFFIX,oaistatic.com - DOMAIN-SUFFIX,oaiusercontent.com - DOMAIN-SUFFIX,anthropic.com - DOMAIN-SUFFIX,claude.ai youtube: behavior: classical format: text policy: "๐Ÿ“น ๆฒน็ฎก่ง†้ข‘" payload: - DOMAIN-KEYWORD,youtube - DOMAIN-SUFFIX,youtu.be - DOMAIN-SUFFIX,youtube.com - DOMAIN-SUFFIX,ytimg.com - DOMAIN-SUFFIX,googlevideo.com netflix: behavior: classical format: text policy: "๐ŸŽฅ ๅฅˆ้ฃž่ง†้ข‘" no_resolve: true payload: - DOMAIN-KEYWORD,netflix - DOMAIN-KEYWORD,netflixdnstest - DOMAIN-KEYWORD,apiproxy-device-prod-nlb- - DOMAIN-KEYWORD,dualstack.apiproxy- - DOMAIN-SUFFIX,netflix.com - DOMAIN-SUFFIX,nflxvideo.net - DOMAIN-SUFFIX,nflximg.net - IP-CIDR,23.246.0.0/18 - IP-CIDR,37.77.184.0/21 proxy-media: behavior: classical format: text policy: "๐ŸŒ ๅ›ฝๅค–ๅช’ไฝ“" payload: - DOMAIN-KEYWORD,spotify - DOMAIN-KEYWORD,tiktokcdn - DOMAIN-KEYWORD,ttvnw - DOMAIN-KEYWORD,jooxweb-api - DOMAIN-KEYWORD,hbogoasia - DOMAIN-KEYWORD,nowtv100 - DOMAIN-KEYWORD,rthklive - DOMAIN-KEYWORD,bbc - DOMAIN-KEYWORD,youtube - DOMAIN-SUFFIX,open.spotify.com games: behavior: classical format: text policy: "๐ŸŽฎ ๆธธๆˆๅนณๅฐ" payload: - DOMAIN-KEYWORD,epicgames - DOMAIN-KEYWORD,origin - DOMAIN-KEYWORD,steam - DOMAIN-KEYWORD,nintendo - DOMAIN-SUFFIX,steampowered.com - DOMAIN-SUFFIX,steamcontent.com - DOMAIN-SUFFIX,steamusercontent.com pt: behavior: classical format: text policy: "๐ŸŽฎ PTๅนณๅฐ" payload: - DOMAIN-KEYWORD,btschool - DOMAIN-KEYWORD,hdkylin - DOMAIN-KEYWORD,cloudflare - DOMAIN-KEYWORD,hetzner cn-domain: behavior: classical format: text policy: "๐ŸŽฏ ๅ…จ็ƒ็›ด่ฟž" payload: - DOMAIN-KEYWORD,360buy - DOMAIN-KEYWORD,alicdn - DOMAIN-KEYWORD,alipay - DOMAIN-KEYWORD,baidu - DOMAIN-KEYWORD,bilibili - DOMAIN-KEYWORD,jd - DOMAIN-KEYWORD,qhimg - DOMAIN-KEYWORD,xiaomi cn-ip: file: cn-ip.yaml behavior: ipcidr format: yaml interval: 86400 policy: "๐ŸŽฏ ๅ…จ็ƒ็›ด่ฟž" no_resolve: true clients: mihomo: title: HomeLab Mihomo provider_interval: 21600 rule_interval: 86400 test_url: https://www.gstatic.com/generate_204 test_interval: 300 main_policy: ๐Ÿš€ ่Š‚็‚น้€‰ๆ‹ฉ source_policy: โ˜๏ธ ๆœบๅœบ้€‰ๆ‹ฉ mixed_auto_policy: โ™ป๏ธ ่‡ชๅŠจ้€‰ๆ‹ฉ manual_policy: ๐Ÿš€ ๆ‰‹ๅŠจๅˆ‡ๆข direct_policy: DIRECT mode: rule allow_lan: true ipv6: true mixed_port: 7890 socks_port: 7891 log_level: info stash: title: HomeLab Stash provider_interval: 21600 rule_interval: 86400 test_url: https://www.gstatic.com/generate_204 test_interval: 300 main_policy: ๐Ÿš€ ่Š‚็‚น้€‰ๆ‹ฉ source_policy: โ˜๏ธ ๆœบๅœบ้€‰ๆ‹ฉ mixed_auto_policy: โ™ป๏ธ ่‡ชๅŠจ้€‰ๆ‹ฉ manual_policy: ๐Ÿš€ ๆ‰‹ๅŠจๅˆ‡ๆข direct_policy: DIRECT mode: rule ipv6: true log_level: info