#!/bin/sh # Initialize necessary directories for d in certs node provider ruleset resources templates; do mkdir -p "/etc/fchomo/$d/" 2>/dev/null done # Initialize default mixed port authentication if ! uci -q get fchomo.global.authentication >/dev/null; then uci add_list fchomo.global.authentication="fchomodef:$(cat /proc/sys/kernel/random/uuid)" uci commit fchomo fi # Initialize the default direct list if [ ! -s "/etc/fchomo/resources/direct_list.yaml" ]; then cat <<- EOF > "/etc/fchomo/resources/direct_list.yaml" DOMAIN: IPCIDR: - '223.0.0.0/12' IPCIDR6: - '2400:3200::/32' EOF fi # Initialize the default proxy list if [ ! -s "/etc/fchomo/resources/proxy_list.yaml" ]; then cat <<- EOF > "/etc/fchomo/resources/proxy_list.yaml" DOMAIN: - www.google.com - '.googlevideo.com' - google.com IPCIDR: - '91.105.192.0/23' - '91.108.4.0/22' - '91.108.8.0/22' - '91.108.16.0/22' - '91.108.12.0/22' - '91.108.20.0/22' - '91.108.56.0/22' - '149.154.160.0/20' - '185.76.151.0/24' - '203.208.50.66/32' IPCIDR6: - '2001:67c:4e8::/48' - '2001:b28:f23c::/48' - '2001:b28:f23d::/48' - '2001:b28:f23f::/48' - '2a0a:f280::/32' EOF fi # Initialize the default hosts if [ ! -s "/etc/fchomo/templates/hosts.yaml" ]; then cat <<- EOF > "/etc/fchomo/templates/hosts.yaml" hosts: # '*.clash.dev': 127.0.0.1 # 'alpha.clash.dev': '::1' # test.com: [1.1.1.1, 2.2.2.2] # baidu.com: google.com dns.alidns.com: [223.6.6.6, '2400:3200:baba::1', 223.5.5.5, '2400:3200::1'] dns.google: [8.8.8.8, '2001:4860:4860::8888', 8.8.4.4, '2001:4860:4860::8844'] EOF fi # Initialize default firewall table uci -q batch <<-EOF >"/dev/null" delete firewall.fchomo_pre set firewall.fchomo_pre=include set firewall.fchomo_pre.type=nftables set firewall.fchomo_pre.path="/var/run/fchomo/fchomo_pre.nft" set firewall.fchomo_pre.position="table-pre" delete firewall.fchomo_post set firewall.fchomo_post=include set firewall.fchomo_post.type=nftables set firewall.fchomo_post.path="/var/run/fchomo/fchomo_post.nft" set firewall.fchomo_post.position="ruleset-post" commit firewall EOF # fix dnsmasq if ! uci -q get dhcp.@dnsmasq[0].cache_rr|grep -q '\bANY\b'; then uci add_list dhcp.@dnsmasq[0].cache_rr="ANY" uci commit dhcp fi exit 0