forked from shuuzhoou/doubi
-
Notifications
You must be signed in to change notification settings - Fork 0
/
caddy_install.sh
137 lines (134 loc) · 5.18 KB
/
caddy_install.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
#!/usr/bin/env bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
#=================================================
# System Required: CentOS/Debian/Ubuntu
# Description: Caddy Install
# Version: 1.0.7
# Author: Toyo
# Blog: https://doub.io/shell-jc1/
#=================================================
file="/usr/local/caddy/"
caddy_file="/usr/local/caddy/caddy"
caddy_conf_file="/usr/local/caddy/Caddyfile"
Info_font_prefix="\033[32m" && Error_font_prefix="\033[31m" && Info_background_prefix="\033[42;37m" && Error_background_prefix="\033[41;37m" && Font_suffix="\033[0m"
check_sys(){
if [[ -f /etc/redhat-release ]]; then
release="centos"
elif cat /etc/issue | grep -q -E -i "debian"; then
release="debian"
elif cat /etc/issue | grep -q -E -i "ubuntu"; then
release="ubuntu"
elif cat /etc/issue | grep -q -E -i "centos|red hat|redhat"; then
release="centos"
elif cat /proc/version | grep -q -E -i "debian"; then
release="debian"
elif cat /proc/version | grep -q -E -i "ubuntu"; then
release="ubuntu"
elif cat /proc/version | grep -q -E -i "centos|red hat|redhat"; then
release="centos"
fi
bit=`uname -m`
}
check_installed_status(){
[[ ! -e ${caddy_file} ]] && echo -e "${Error_font_prefix}[错误]${Font_suffix} Caddy 没有安装,请检查 !" && exit 1
}
Download_caddy(){
[[ ! -e ${file} ]] && mkdir "${file}"
cd "${file}"
PID=$(ps -ef |grep "caddy" |grep -v "grep" |grep -v "init.d" |grep -v "service" |grep -v "caddy_install" |awk '{print $2}')
[[ ! -z ${PID} ]] && kill -9 ${PID}
[[ -e "caddy_linux*.tar.gz" ]] && rm -rf "caddy_linux*.tar.gz"
if [[ ! -z ${extension} ]]; then
extension_all="?plugins=${extension}&license=personal"
else
extension_all="?license=personal"
fi
if [[ ${bit} == "i386" ]]; then
wget --no-check-certificate -O "caddy_linux.tar.gz" "https://caddyserver.com/download/linux/386${extension_all}" && caddy_bit="caddy_linux_386"
elif [[ ${bit} == "i686" ]]; then
wget --no-check-certificate -O "caddy_linux.tar.gz" "https://caddyserver.com/download/linux/386${extension_all}" && caddy_bit="caddy_linux_386"
elif [[ ${bit} == "x86_64" ]]; then
wget --no-check-certificate -O "caddy_linux.tar.gz" "https://caddyserver.com/download/linux/amd64${extension_all}" && caddy_bit="caddy_linux_amd64"
else
echo -e "${Error_font_prefix}[错误]${Font_suffix} 不支持 ${bit} !" && exit 1
fi
[[ ! -e "caddy_linux.tar.gz" ]] && echo -e "${Error_font_prefix}[错误]${Font_suffix} Caddy 下载失败 !" && exit 1
tar zxf "caddy_linux.tar.gz"
rm -rf "caddy_linux.tar.gz"
[[ ! -e ${caddy_file} ]] && echo -e "${Error_font_prefix}[错误]${Font_suffix} Caddy 解压失败或压缩文件错误 !" && exit 1
rm -rf LICENSES.txt
rm -rf README.txt
rm -rf CHANGES.txt
rm -rf "init/"
chmod +x caddy
}
Service_caddy(){
if [[ ${release} = "centos" ]]; then
if ! wget --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubi/doubi/master/other/caddy_centos -O /etc/init.d/caddy; then
echo -e "${Error_font_prefix}[错误]${Font_suffix} Caddy服务 管理脚本下载失败 !" && exit 1
fi
chmod +x /etc/init.d/caddy
chkconfig --add caddy
chkconfig caddy on
else
if ! wget --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubi/doubi/master/other/caddy_debian -O /etc/init.d/caddy; then
echo -e "${Error_font_prefix}[错误]${Font_suffix} Caddy服务 管理脚本下载失败 !" && exit 1
fi
chmod +x /etc/init.d/caddy
update-rc.d -f caddy defaults
fi
}
install_caddy(){
if [[ -e ${caddy_file} ]]; then
echo && echo -e "${Error_font_prefix}[信息]${Font_suffix} 检测到 Caddy 已安装,是否继续安装(覆盖更新)?[y/N]"
stty erase '^H' && read -p "(默认: n):" yn
[[ -z ${yn} ]] && yn="n"
if [[ ${yn} == [Nn] ]]; then
echo && echo "已取消..." && exit 1
fi
fi
Download_caddy
Service_caddy
echo && echo -e " Caddy 配置文件:${caddy_conf_file}
Caddy 日志文件:/tmp/caddy.log
使用说明:service caddy start | stop | restart | status
或者使用:/etc/init.d/caddy start | stop | restart | status
${Info_font_prefix}[信息]${Font_suffix} Caddy 安装完成!" && echo
}
uninstall_caddy(){
check_installed_status
echo && echo "确定要卸载 Caddy ? [y/N]"
stty erase '^H' && read -p "(默认: n):" unyn
[[ -z ${unyn} ]] && unyn="n"
if [[ ${unyn} == [Yy] ]]; then
PID=`ps -ef |grep "caddy" |grep -v "grep" |grep -v "init.d" |grep -v "service" |grep -v "caddy_install" |awk '{print $2}'`
[[ ! -z ${PID} ]] && kill -9 ${PID}
if [[ ${release} = "centos" ]]; then
chkconfig --del caddy
else
update-rc.d -f caddy remove
fi
[[ -s /tmp/caddy.log ]] && rm -rf /tmp/caddy.log
rm -rf ${caddy_file}
rm -rf ${caddy_conf_file}
rm -rf /etc/init.d/caddy
[[ ! -e ${caddy_file} ]] && echo && echo -e "${Info_font_prefix}[信息]${Font_suffix} Caddy 卸载完成 !" && echo && exit 1
echo && echo -e "${Error_font_prefix}[错误]${Font_suffix} Caddy 卸载失败 !" && echo
else
echo && echo "卸载已取消..." && echo
fi
}
check_sys
action=$1
extension=$2
[[ -z $1 ]] && action=install
case "$action" in
install|uninstall)
${action}_caddy
;;
*)
echo "输入错误 !"
echo "用法: {install | uninstall}"
;;
esac