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 } }