Last active
April 25, 2020 10:53
-
-
Save Restry/9b5733e623a06c57d7c43c9743522cd4 to your computer and use it in GitHub Desktop.
自动配置caddy ,运行 bash <(curl -s -L https://git.io/JftUm)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| systemd=true | |
| sys_bit=$(uname -m) | |
| is_path=true | |
| v2ray_transport=4 | |
| path=about | |
| v2ray_port=24000 | |
| email=michael.keepgoing #申请ssl时的邮箱 | |
| proxy_site=https://developer.mozilla.org # 代理跳转到的网址 | |
| domain=windart-api.chinanorth.cloudapp.chinacloudapi.cn # ssl申请时必需要的域名 | |
| do_service() { | |
| if [[ $systemd ]]; then | |
| systemctl $1 $2 | |
| else | |
| service $2 $1 | |
| fi | |
| } | |
| _download_caddy_file() { | |
| caddy_tmp="/tmp/install_caddy/" | |
| caddy_tmp_file="/tmp/install_caddy/caddy.tar.gz" | |
| [[ -d $caddy_tmp ]] && rm -rf $caddy_tmp | |
| if [[ $sys_bit == "i386" || $sys_bit == "i686" ]]; then | |
| local caddy_download_link="https://caddyserver.com/download/linux/386?license=personal" | |
| else | |
| local caddy_download_link="https://caddyserver.com/download/linux/amd64?license=personal" | |
| fi | |
| mkdir -p $caddy_tmp | |
| if ! wget --no-check-certificate -O "$caddy_tmp_file" $caddy_download_link; then | |
| echo -e "$red 下载 Caddy 失败!$none" && exit 1 | |
| fi | |
| tar zxf $caddy_tmp_file -C $caddy_tmp | |
| cp -f ${caddy_tmp}caddy /usr/local/bin/ | |
| if [[ ! -f /usr/local/bin/caddy ]]; then | |
| echo -e "$red 安装 Caddy 出错!" && exit 1 | |
| fi | |
| } | |
| _install_caddy_service() { | |
| setcap CAP_NET_BIND_SERVICE=+eip /usr/local/bin/caddy | |
| if [[ $systemd ]]; then | |
| cp -f ${caddy_tmp}init/linux-systemd/caddy.service /lib/systemd/system/ | |
| # sed -i "s/www-data/root/g" /lib/systemd/system/caddy.service | |
| sed -i "s/on-abnormal/always/" /lib/systemd/system/caddy.service | |
| systemctl enable caddy | |
| else | |
| cp -f ${caddy_tmp}init/linux-sysvinit/caddy /etc/init.d/caddy | |
| # sed -i "s/www-data/root/g" /etc/init.d/caddy | |
| chmod +x /etc/init.d/caddy | |
| update-rc.d -f caddy defaults | |
| fi | |
| mkdir -p /etc/ssl/caddy | |
| if [ -z "$(grep www-data /etc/passwd)" ]; then | |
| useradd -M -s /usr/sbin/nologin www-data | |
| fi | |
| chown -R www-data.www-data /etc/ssl/caddy | |
| mkdir -p /etc/caddy/ | |
| } | |
| install_caddy() { | |
| # download caddy file then install | |
| _download_caddy_file | |
| _install_caddy_service | |
| caddy_config | |
| } | |
| caddy_config() { | |
| # local email=$(shuf -i1-10000000000 -n1) | |
| case $v2ray_transport in #传输协议 | |
| 4) | |
| if [[ $is_path ]]; then | |
| cat >/etc/caddy/Caddyfile <<-EOF | |
| $domain { | |
| tls ${email}@gmail.com | |
| gzip | |
| timeouts none | |
| proxy / $proxy_site { | |
| except /${path} | |
| } | |
| proxy /${path} 127.0.0.1:${v2ray_port} { | |
| without /${path} | |
| websocket | |
| } | |
| } | |
| import sites/* | |
| EOF | |
| else | |
| cat >/etc/caddy/Caddyfile <<-EOF | |
| $domain { | |
| tls ${email}@gmail.com | |
| timeouts none | |
| proxy / 127.0.0.1:${v2ray_port} { | |
| websocket | |
| } | |
| } | |
| import sites/* | |
| EOF | |
| fi | |
| ;; | |
| esac | |
| # systemctl restart caddy | |
| do_service restart caddy | |
| } | |
| install_caddy |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment