|  | @@ -24,13 +24,17 @@ init_var() {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    STATIC_HTML="https://github.com/trojanpanel/install-script/releases/download/v1.0.0/html.tar.gz"
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +  # web
 | 
	
		
			
				|  |  | +  WEB_PATH="/tpdata/web/"
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  # cert
 | 
	
		
			
				|  |  | +  CERT_PATH="/tpdata/cert/"
 | 
	
		
			
				|  |  | +  DOMAIN_FILE="/tpdata/cert/domain.lock"
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |    # Caddy
 | 
	
		
			
				|  |  |    CADDY_DATA="/tpdata/caddy/"
 | 
	
		
			
				|  |  |    CADDY_Config="/tpdata/caddy/config.json"
 | 
	
		
			
				|  |  | -  CADDY_SRV="/tpdata/caddy/srv/"
 | 
	
		
			
				|  |  | -  CADDY_CERT="/tpdata/caddy/cert/"
 | 
	
		
			
				|  |  |    CADDY_LOG="/tpdata/caddy/logs/"
 | 
	
		
			
				|  |  | -  DOMAIN_FILE="/tpdata/caddy/domain.lock"
 | 
	
		
			
				|  |  |    CADDY_CERT_DIR="/tpdata/caddy/cert/certificates/acme-v02.api.letsencrypt.org-directory/"
 | 
	
		
			
				|  |  |    domain=""
 | 
	
		
			
				|  |  |    caddy_port=80
 | 
	
	
		
			
				|  | @@ -118,11 +122,16 @@ mkdir_tools() {
 | 
	
		
			
				|  |  |    # 项目目录
 | 
	
		
			
				|  |  |    mkdir -p ${TP_DATA}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +  # web
 | 
	
		
			
				|  |  | +  mkdir -p ${WEB_PATH}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  # cert
 | 
	
		
			
				|  |  | +  mkdir -p ${CERT_PATH}
 | 
	
		
			
				|  |  | +  touch ${DOMAIN_FILE}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |    # Caddy
 | 
	
		
			
				|  |  |    mkdir -p ${CADDY_DATA}
 | 
	
		
			
				|  |  |    touch ${CADDY_Config}
 | 
	
		
			
				|  |  | -  mkdir -p ${CADDY_SRV}
 | 
	
		
			
				|  |  | -  mkdir -p ${CADDY_CERT}
 | 
	
		
			
				|  |  |    mkdir -p ${CADDY_LOG}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    # MariaDB
 | 
	
	
		
			
				|  | @@ -271,7 +280,7 @@ install_caddy_tls() {
 | 
	
		
			
				|  |  |      echo_content green "---> 安装Caddy TLS"
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      wget --no-check-certificate -O ${CADDY_DATA}html.tar.gz ${STATIC_HTML} &&
 | 
	
		
			
				|  |  | -      tar -zxvf ${CADDY_DATA}html.tar.gz -C ${CADDY_SRV}
 | 
	
		
			
				|  |  | +      tar -zxvf ${CADDY_DATA}html.tar.gz -C ${WEB_PATH}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      read -r -p "请输入Caddy的端口(默认:80): " caddy_port
 | 
	
		
			
				|  |  |      [[ -z "${caddy_port}" ]] && caddy_port=80
 | 
	
	
		
			
				|  | @@ -323,7 +332,7 @@ install_caddy_tls() {
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      "storage":{
 | 
	
		
			
				|  |  |          "module":"file_system",
 | 
	
		
			
				|  |  | -        "root":"${CADDY_CERT}"
 | 
	
		
			
				|  |  | +        "root":"${CERT_PATH}"
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      "apps":{
 | 
	
		
			
				|  |  |          "http":{
 | 
	
	
		
			
				|  | @@ -377,7 +386,7 @@ install_caddy_tls() {
 | 
	
		
			
				|  |  |                                              "handle":[
 | 
	
		
			
				|  |  |                                                  {
 | 
	
		
			
				|  |  |                                                      "handler":"file_server",
 | 
	
		
			
				|  |  | -                                                    "root":"${CADDY_SRV}",
 | 
	
		
			
				|  |  | +                                                    "root":"${WEB_PATH}",
 | 
	
		
			
				|  |  |                                                      "index_names":[
 | 
	
		
			
				|  |  |                                                          "index.html",
 | 
	
		
			
				|  |  |                                                          "index.htm"
 | 
	
	
		
			
				|  | @@ -437,7 +446,7 @@ EOF
 | 
	
		
			
				|  |  |              if [[ ! -f "${crt_path}" ]]; then
 | 
	
		
			
				|  |  |                echo_content red "证书的.crt文件路径不存在"
 | 
	
		
			
				|  |  |              else
 | 
	
		
			
				|  |  | -              cp "${crt_path}" "${CADDY_CERT}${domain}.crt"
 | 
	
		
			
				|  |  | +              cp "${crt_path}" "${CERT_PATH}${domain}.crt"
 | 
	
		
			
				|  |  |                break
 | 
	
		
			
				|  |  |              fi
 | 
	
		
			
				|  |  |            fi
 | 
	
	
		
			
				|  | @@ -450,7 +459,7 @@ EOF
 | 
	
		
			
				|  |  |              if [[ ! -f "${key_path}" ]]; then
 | 
	
		
			
				|  |  |                echo_content red "证书的.key文件路径不存在"
 | 
	
		
			
				|  |  |              else
 | 
	
		
			
				|  |  | -              cp "${key_path}" "${CADDY_CERT}${domain}.key"
 | 
	
		
			
				|  |  | +              cp "${key_path}" "${CERT_PATH}${domain}.key"
 | 
	
		
			
				|  |  |                break
 | 
	
		
			
				|  |  |              fi
 | 
	
		
			
				|  |  |            fi
 | 
	
	
		
			
				|  | @@ -474,7 +483,7 @@ EOF
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      "storage":{
 | 
	
		
			
				|  |  |          "module":"file_system",
 | 
	
		
			
				|  |  | -        "root":"${CADDY_CERT}"
 | 
	
		
			
				|  |  | +        "root":"${CERT_PATH}"
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      "apps":{
 | 
	
		
			
				|  |  |          "http":{
 | 
	
	
		
			
				|  | @@ -528,7 +537,7 @@ EOF
 | 
	
		
			
				|  |  |                                              "handle":[
 | 
	
		
			
				|  |  |                                                  {
 | 
	
		
			
				|  |  |                                                      "handler":"file_server",
 | 
	
		
			
				|  |  | -                                                    "root":"${CADDY_SRV}",
 | 
	
		
			
				|  |  | +                                                    "root":"${WEB_PATH}",
 | 
	
		
			
				|  |  |                                                      "index_names":[
 | 
	
		
			
				|  |  |                                                          "index.html",
 | 
	
		
			
				|  |  |                                                          "index.htm"
 | 
	
	
		
			
				|  | @@ -599,8 +608,8 @@ EOF
 | 
	
		
			
				|  |  |        docker run -d --name trojan-panel-caddy --restart always \
 | 
	
		
			
				|  |  |          --network=host \
 | 
	
		
			
				|  |  |          -v "${CADDY_Config}":"${CADDY_Config}" \
 | 
	
		
			
				|  |  | -        -v ${CADDY_CERT}:"${CADDY_CERT_DIR}${domain}/" \
 | 
	
		
			
				|  |  | -        -v ${CADDY_SRV}:${CADDY_SRV} \
 | 
	
		
			
				|  |  | +        -v ${CERT_PATH}:"${CADDY_CERT_DIR}${domain}/" \
 | 
	
		
			
				|  |  | +        -v ${WEB_PATH}:${WEB_PATH} \
 | 
	
		
			
				|  |  |          -v ${CADDY_LOG}:${CADDY_LOG} \
 | 
	
		
			
				|  |  |          caddy:2.6.2 caddy run --config ${CADDY_Config}
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -614,11 +623,69 @@ EOF
 | 
	
		
			
				|  |  |        exit 0
 | 
	
		
			
				|  |  |      fi
 | 
	
		
			
				|  |  |    else
 | 
	
		
			
				|  |  | -    domain=$(cat "${DOMAIN_FILE}")
 | 
	
		
			
				|  |  |      echo_content skyBlue "---> 你已经安装了Caddy"
 | 
	
		
			
				|  |  |    fi
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +# 安装反向代理
 | 
	
		
			
				|  |  | +install_reverse_proxy() {
 | 
	
		
			
				|  |  | +  echo_content green "---> 安装反向代理"
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  while :; do
 | 
	
		
			
				|  |  | +    echo_content skyBlue "可以安装的反向代理应用如下:"
 | 
	
		
			
				|  |  | +    echo_content yellow "1. Caddy 2"
 | 
	
		
			
				|  |  | +    echo_content yellow "2. 不安装"
 | 
	
		
			
				|  |  | +    read -r -p "请选择(默认:1): " whether_install_caddy_tls
 | 
	
		
			
				|  |  | +    [[ -z "${whether_install_caddy_tls}" ]] && whether_install_caddy_tls=1
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    case ${whether_install_caddy_tls} in
 | 
	
		
			
				|  |  | +    1)
 | 
	
		
			
				|  |  | +      install_caddy_tls
 | 
	
		
			
				|  |  | +      break
 | 
	
		
			
				|  |  | +      ;;
 | 
	
		
			
				|  |  | +    2)
 | 
	
		
			
				|  |  | +      while read -r -p "请输入证书的.crt文件路径(必填): " crt_path; do
 | 
	
		
			
				|  |  | +        if [[ -z "${crt_path}" ]]; then
 | 
	
		
			
				|  |  | +          echo_content red "路径不能为空"
 | 
	
		
			
				|  |  | +        else
 | 
	
		
			
				|  |  | +          if [[ ! -f "${crt_path}" ]]; then
 | 
	
		
			
				|  |  | +            echo_content red "证书的.crt文件路径不存在"
 | 
	
		
			
				|  |  | +          else
 | 
	
		
			
				|  |  | +            cp "${crt_path}" "${CERT_PATH}custom_cert.crt"
 | 
	
		
			
				|  |  | +            break
 | 
	
		
			
				|  |  | +          fi
 | 
	
		
			
				|  |  | +        fi
 | 
	
		
			
				|  |  | +      done
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      while read -r -p "请输入证书的.key文件路径(必填): " key_path; do
 | 
	
		
			
				|  |  | +        if [[ -z "${key_path}" ]]; then
 | 
	
		
			
				|  |  | +          echo_content red "路径不能为空"
 | 
	
		
			
				|  |  | +        else
 | 
	
		
			
				|  |  | +          if [[ ! -f "${key_path}" ]]; then
 | 
	
		
			
				|  |  | +            echo_content red "证书的.key文件路径不存在"
 | 
	
		
			
				|  |  | +          else
 | 
	
		
			
				|  |  | +            cp "${key_path}" "${CERT_PATH}custom_cert.key"
 | 
	
		
			
				|  |  | +            break
 | 
	
		
			
				|  |  | +          fi
 | 
	
		
			
				|  |  | +        fi
 | 
	
		
			
				|  |  | +      done
 | 
	
		
			
				|  |  | +      cat >${DOMAIN_FILE} <<EOF
 | 
	
		
			
				|  |  | +custom_cert
 | 
	
		
			
				|  |  | +EOF
 | 
	
		
			
				|  |  | +      break
 | 
	
		
			
				|  |  | +      ;;
 | 
	
		
			
				|  |  | +    *)
 | 
	
		
			
				|  |  | +      echo_content red "没有这个选项"
 | 
	
		
			
				|  |  | +      continue
 | 
	
		
			
				|  |  | +      ;;
 | 
	
		
			
				|  |  | +    esac
 | 
	
		
			
				|  |  | +  done
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  domain=$(cat "${DOMAIN_FILE}")
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  echo_content skyBlue "---> 安装反向代理安装完成"
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  # 安装MariaDB
 | 
	
		
			
				|  |  |  install_mariadb() {
 | 
	
		
			
				|  |  |    if [[ -z $(docker ps -a -q -f "name=^trojan-panel-mariadb$") ]]; then
 | 
	
	
		
			
				|  | @@ -748,7 +815,7 @@ install_trojan_panel() {
 | 
	
		
			
				|  |  |      docker pull jonssonyan/trojan-panel &&
 | 
	
		
			
				|  |  |        docker run -d --name trojan-panel --restart always \
 | 
	
		
			
				|  |  |          --network=host \
 | 
	
		
			
				|  |  | -        -v ${CADDY_SRV}:${TROJAN_PANEL_WEBFILE} \
 | 
	
		
			
				|  |  | +        -v ${WEB_PATH}:${TROJAN_PANEL_WEBFILE} \
 | 
	
		
			
				|  |  |          -v ${TROJAN_PANEL_LOGS}:${TROJAN_PANEL_LOGS} \
 | 
	
		
			
				|  |  |          -v /etc/localtime:/etc/localtime \
 | 
	
		
			
				|  |  |          -e "mariadb_ip=${mariadb_ip}" \
 | 
	
	
		
			
				|  | @@ -776,6 +843,7 @@ install_trojan_panel() {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      while read -r -p "请选择Trojan Panel前端是否开启https?(0/关闭 1/开启 默认:1/开启): " https_enable; do
 | 
	
		
			
				|  |  |        if [[ -z ${https_enable} || ${https_enable} == 1 ]]; then
 | 
	
		
			
				|  |  | +        domain=$(cat "${DOMAIN_FILE}")
 | 
	
		
			
				|  |  |          # 配置Nginx
 | 
	
		
			
				|  |  |          cat >${NGINX_CONFIG} <<-EOF
 | 
	
		
			
				|  |  |  server {
 | 
	
	
		
			
				|  | @@ -784,8 +852,8 @@ server {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      #强制ssl
 | 
	
		
			
				|  |  |      ssl on;
 | 
	
		
			
				|  |  | -    ssl_certificate      ${CADDY_CERT}${domain}.crt;
 | 
	
		
			
				|  |  | -    ssl_certificate_key  ${CADDY_CERT}${domain}.key;
 | 
	
		
			
				|  |  | +    ssl_certificate      ${CERT_PATH}${domain}.crt;
 | 
	
		
			
				|  |  | +    ssl_certificate_key  ${CERT_PATH}${domain}.key;
 | 
	
		
			
				|  |  |      #缓存有效期
 | 
	
		
			
				|  |  |      ssl_session_timeout  5m;
 | 
	
		
			
				|  |  |      #安全链接可选的加密协议
 | 
	
	
		
			
				|  | @@ -854,7 +922,7 @@ EOF
 | 
	
		
			
				|  |  |        docker run -d --name trojan-panel-ui --restart always \
 | 
	
		
			
				|  |  |          --network=host \
 | 
	
		
			
				|  |  |          -v "${NGINX_CONFIG}":"/etc/nginx/conf.d/default.conf" \
 | 
	
		
			
				|  |  | -        -v ${CADDY_CERT}:${CADDY_CERT} \
 | 
	
		
			
				|  |  | +        -v ${CERT_PATH}:${CERT_PATH} \
 | 
	
		
			
				|  |  |          jonssonyan/trojan-panel-ui
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      if [[ -n $(docker ps -q -f "name=^trojan-panel-ui$" -f "status=running") ]]; then
 | 
	
	
		
			
				|  | @@ -875,7 +943,7 @@ EOF
 | 
	
		
			
				|  |  |    echo_content yellow "Redis的密码(请妥善保存): ${redis_pass}"
 | 
	
		
			
				|  |  |    echo_content yellow "管理面板地址: ${https_flag}://${domain}:${trojan_panel_ui_port}"
 | 
	
		
			
				|  |  |    echo_content yellow "系统管理员 默认用户名: sysadmin 默认密码: 123456 请及时登陆管理面板修改密码"
 | 
	
		
			
				|  |  | -  echo_content yellow "Trojan Panel私钥和证书目录: ${CADDY_CERT}"
 | 
	
		
			
				|  |  | +  echo_content yellow "Trojan Panel私钥和证书目录: ${CERT_PATH}"
 | 
	
		
			
				|  |  |    echo_content red "\n=============================================================="
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -927,8 +995,8 @@ install_trojan_panel_core() {
 | 
	
		
			
				|  |  |          -v ${TROJAN_PANEL_CORE_DATA}bin/naiveproxy/config:${TROJAN_PANEL_CORE_DATA}bin/naiveproxy/config \
 | 
	
		
			
				|  |  |          -v ${TROJAN_PANEL_CORE_LOGS}:${TROJAN_PANEL_CORE_LOGS} \
 | 
	
		
			
				|  |  |          -v ${TROJAN_PANEL_CORE_SQLITE}:${TROJAN_PANEL_CORE_SQLITE} \
 | 
	
		
			
				|  |  | -        -v ${CADDY_CERT}:${CADDY_CERT} \
 | 
	
		
			
				|  |  | -        -v ${CADDY_SRV}:${CADDY_SRV} \
 | 
	
		
			
				|  |  | +        -v ${CERT_PATH}:${CERT_PATH} \
 | 
	
		
			
				|  |  | +        -v ${WEB_PATH}:${WEB_PATH} \
 | 
	
		
			
				|  |  |          -v /etc/localtime:/etc/localtime \
 | 
	
		
			
				|  |  |          -e "mariadb_ip=${mariadb_ip}" \
 | 
	
		
			
				|  |  |          -e "mariadb_port=${mariadb_port}" \
 | 
	
	
		
			
				|  | @@ -939,8 +1007,8 @@ install_trojan_panel_core() {
 | 
	
		
			
				|  |  |          -e "redis_host=${redis_host}" \
 | 
	
		
			
				|  |  |          -e "redis_port=${redis_port}" \
 | 
	
		
			
				|  |  |          -e "redis_pass=${redis_pass}" \
 | 
	
		
			
				|  |  | -        -e "crt_path=${CADDY_CERT}${domain}.crt" \
 | 
	
		
			
				|  |  | -        -e "key_path=${CADDY_CERT}${domain}.key" \
 | 
	
		
			
				|  |  | +        -e "crt_path=${CERT_PATH}${domain}.crt" \
 | 
	
		
			
				|  |  | +        -e "key_path=${CERT_PATH}${domain}.key" \
 | 
	
		
			
				|  |  |          -e "grpc_port=${grpc_port}" \
 | 
	
		
			
				|  |  |          jonssonyan/trojan-panel-core
 | 
	
		
			
				|  |  |      if [[ -n $(docker ps -q -f "name=^trojan-panel-core$" -f "status=running") ]]; then
 | 
	
	
		
			
				|  | @@ -1038,7 +1106,7 @@ update_trojan_panel() {
 | 
	
		
			
				|  |  |      docker pull jonssonyan/trojan-panel &&
 | 
	
		
			
				|  |  |        docker run -d --name trojan-panel --restart always \
 | 
	
		
			
				|  |  |          --network=host \
 | 
	
		
			
				|  |  | -        -v ${CADDY_SRV}:${TROJAN_PANEL_WEBFILE} \
 | 
	
		
			
				|  |  | +        -v ${WEB_PATH}:${TROJAN_PANEL_WEBFILE} \
 | 
	
		
			
				|  |  |          -v ${TROJAN_PANEL_LOGS}:${TROJAN_PANEL_LOGS} \
 | 
	
		
			
				|  |  |          -v /etc/localtime:/etc/localtime \
 | 
	
		
			
				|  |  |          -e "mariadb_ip=${mariadb_ip}" \
 | 
	
	
		
			
				|  | @@ -1064,7 +1132,7 @@ update_trojan_panel() {
 | 
	
		
			
				|  |  |        docker run -d --name trojan-panel-ui --restart always \
 | 
	
		
			
				|  |  |          --network=host \
 | 
	
		
			
				|  |  |          -v "${NGINX_CONFIG}":"/etc/nginx/conf.d/default.conf" \
 | 
	
		
			
				|  |  | -        -v ${CADDY_CERT}:${CADDY_CERT} \
 | 
	
		
			
				|  |  | +        -v ${CERT_PATH}:${CERT_PATH} \
 | 
	
		
			
				|  |  |          jonssonyan/trojan-panel-ui
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      if [[ -n $(docker ps -q -f "name=^trojan-panel-ui$" -f "status=running") ]]; then
 | 
	
	
		
			
				|  | @@ -1146,8 +1214,8 @@ update_trojan_panel_core() {
 | 
	
		
			
				|  |  |          -v ${TROJAN_PANEL_CORE_DATA}bin/naiveproxy/config:${TROJAN_PANEL_CORE_DATA}bin/naiveproxy/config \
 | 
	
		
			
				|  |  |          -v ${TROJAN_PANEL_CORE_LOGS}:${TROJAN_PANEL_CORE_LOGS} \
 | 
	
		
			
				|  |  |          -v ${TROJAN_PANEL_CORE_SQLITE}:${TROJAN_PANEL_CORE_SQLITE} \
 | 
	
		
			
				|  |  | -        -v ${CADDY_CERT}:${CADDY_CERT} \
 | 
	
		
			
				|  |  | -        -v ${CADDY_SRV}:${CADDY_SRV} \
 | 
	
		
			
				|  |  | +        -v ${CERT_PATH}:${CERT_PATH} \
 | 
	
		
			
				|  |  | +        -v ${WEB_PATH}:${WEB_PATH} \
 | 
	
		
			
				|  |  |          -v /etc/localtime:/etc/localtime \
 | 
	
		
			
				|  |  |          -e "mariadb_ip=${mariadb_ip}" \
 | 
	
		
			
				|  |  |          -e "mariadb_port=${mariadb_port}" \
 | 
	
	
		
			
				|  | @@ -1158,8 +1226,8 @@ update_trojan_panel_core() {
 | 
	
		
			
				|  |  |          -e "redis_host=${redis_host}" \
 | 
	
		
			
				|  |  |          -e "redis_port=${redis_port}" \
 | 
	
		
			
				|  |  |          -e "redis_pass=${redis_pass}" \
 | 
	
		
			
				|  |  | -        -e "crt_path=${CADDY_CERT}${domain}.crt" \
 | 
	
		
			
				|  |  | -        -e "key_path=${CADDY_CERT}${domain}.key" \
 | 
	
		
			
				|  |  | +        -e "crt_path=${CERT_PATH}${domain}.crt" \
 | 
	
		
			
				|  |  | +        -e "key_path=${CERT_PATH}${domain}.key" \
 | 
	
		
			
				|  |  |          -e "grpc_port=${grpc_port}" \
 | 
	
		
			
				|  |  |          jonssonyan/trojan-panel-core
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -1334,7 +1402,7 @@ failure_testing() {
 | 
	
		
			
				|  |  |          docker logs trojan-panel-caddy
 | 
	
		
			
				|  |  |        fi
 | 
	
		
			
				|  |  |        domain=$(cat "${DOMAIN_FILE}")
 | 
	
		
			
				|  |  | -      if [[ -z $(cat "${DOMAIN_FILE}") || ! -d "${CADDY_CERT}" || ! -f "${CADDY_CERT}${domain}.crt" ]]; then
 | 
	
		
			
				|  |  | +      if [[ -z ${domain} || ! -d "${CERT_PATH}" || ! -f "${CERT_PATH}${domain}.crt" ]]; then
 | 
	
		
			
				|  |  |          echo_content red "---> 证书申请异常,请尝试 1.换个子域名重新搭建 2.重启服务器将重新申请证书 3.重新搭建选择自定义证书选项 日志如下:"
 | 
	
		
			
				|  |  |          if [[ -f ${CADDY_LOG}error.log ]]; then
 | 
	
		
			
				|  |  |            tail -n 20 ${CADDY_LOG}error.log | grep error
 | 
	
	
		
			
				|  | @@ -1464,14 +1532,14 @@ main() {
 | 
	
		
			
				|  |  |    case ${selectInstall_type} in
 | 
	
		
			
				|  |  |    1)
 | 
	
		
			
				|  |  |      install_docker
 | 
	
		
			
				|  |  | -    install_caddy_tls
 | 
	
		
			
				|  |  | +    install_reverse_proxy
 | 
	
		
			
				|  |  |      install_mariadb
 | 
	
		
			
				|  |  |      install_redis
 | 
	
		
			
				|  |  |      install_trojan_panel
 | 
	
		
			
				|  |  |      ;;
 | 
	
		
			
				|  |  |    2)
 | 
	
		
			
				|  |  |      install_docker
 | 
	
		
			
				|  |  | -    install_caddy_tls
 | 
	
		
			
				|  |  | +    install_reverse_proxy
 | 
	
		
			
				|  |  |      install_trojan_panel_core
 | 
	
		
			
				|  |  |      ;;
 | 
	
		
			
				|  |  |    3)
 |