You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

100 lines
2.6 KiB

#!/usr/bin/env bash
EMAIL=''
NO_EMAIL=''
INSTAL=''
DOMAIN=''
help_message(){
echo 'Command [-domain XX]'
echo 'Command --install [--email XX]'
echo 'Command --install --no-email'
echo 'Example: acme.sh -domain '
echo 'Example: acme.sh --install --email example@example.com'
echo 'Example: acme.sh --install --no-email'
}
check_input(){
if [ -z "${1}" ]; then
help_message
exit 1
fi
}
ck_acme(){
if ! docker-compose exec litespeed su -c "test -f /root/.acme.sh/acme.sh"; then
echo "It seems like you didn't install /root/.acme.sh/acme.sh, please run bin/acme.sh --install"
help_message
exit 1
fi
}
install_acme(){
if [ ! -z ${NO_EMAIL} ]; then
docker-compose exec litespeed su -c "cd;\
wget https://raw.githubusercontent.com/Neilpang/acme.sh/master/acme.sh; chmod 755 acme.sh; \
./acme.sh --install \
--cert-home ~/.acme.sh/certs; \
rm ~/acme.sh"
else
if [ -z ${EMAIL} ]; then
echo "Error: You didn't specify the email you want to receive lets encrypt notifications on. Please add --email EMAIL"
exit
else
docker-compose exec litespeed su -c "cd;\
wget https://raw.githubusercontent.com/Neilpang/acme.sh/master/acme.sh; chmod 755 acme.sh; \
./acme.sh --install \
--cert-home ~/.acme.sh/certs \
--accountemail ${EMAIL}; \
rm ~/acme.sh"
fi
fi
}
install_cert(){
docker-compose exec litespeed su -c "/root/.acme.sh/acme.sh --issue -d ${DOMAIN} -w /var/www/vhosts/${DOMAIN}/html/"
}
main(){
if [ -z "${INSTALL}" ]; then
ck_acme
else
install_acme ${EMAIL} ${NO_EMAIL}
echo 'Acme installed, you can now issue your cert with bin/acme.sh -domain '
exit 1
fi
install_cert ${DOMAIN}
}
check_input ${1}
while [ ! -z "${1}" ]; do
case ${1} in
-[hH] | -help | --help)
help_message
exit 1
;;
-domain | -d ) shift
check_input "${1}"
DOMAIN="${1}"
;;
--install )
#check_input "${1}"
INSTALL=true
;;
--email ) shift
check_input "${1}"
EMAIL="${1}"
;;
--no-email ) shift
NO_EMAIL=true
;;
*)
help_message
exit 1
;;
esac
shift
done
main