Files
sing-box/src/caddy.sh
T
2026-07-07 23:47:56 +08:00

60 lines
1.5 KiB
Bash

caddy_config() {
is_caddy_site_file=$is_caddy_conf/${host}.conf
case $1 in
new)
mkdir -p $is_caddy_dir $is_caddy_dir/sites $is_caddy_conf
if [[ -f $is_caddyfile ]]; then
[[ ! $(grep -F "$is_caddy_conf/*.conf" $is_caddyfile) ]] && {
echo -e "\nimport $is_caddy_conf/*.conf" >>$is_caddyfile
}
else
cat >$is_caddyfile <<-EOF
# caddy configuration #
{
admin off
http_port $is_http_port
https_port $is_https_port
}
import $is_caddy_conf/*.conf
import $is_caddy_dir/sites/*.conf
EOF
fi
;;
*ws* | *http*)
cat >${is_caddy_site_file} <<<"
${host}:${is_https_port} {
reverse_proxy ${path} 127.0.0.1:${port}
import ${is_caddy_site_file}.add
}"
;;
*h2*)
cat >${is_caddy_site_file} <<<"
${host}:${is_https_port} {
reverse_proxy ${path} h2c://127.0.0.1:${port} {
transport http {
tls_insecure_skip_verify
}
}
import ${is_caddy_site_file}.add
}"
;;
*grpc*)
cat >${is_caddy_site_file} <<<"
${host}:${is_https_port} {
reverse_proxy /${path}/* h2c://127.0.0.1:${port}
import ${is_caddy_site_file}.add
}"
;;
proxy)
cat >${is_caddy_site_file}.add <<<"
reverse_proxy https://$proxy_site {
header_up Host {upstream_hostport}
}"
;;
esac
[[ $1 != "new" && $1 != 'proxy' ]] && {
[[ ! -f ${is_caddy_site_file}.add ]] && echo "# caddy site configuration" >${is_caddy_site_file}.add
}
}