diff --git a/bash_scripts/ddns-acme-porkbun b/bash_scripts/ddns-acme-porkbun new file mode 100644 index 0000000..a47c39f --- /dev/null +++ b/bash_scripts/ddns-acme-porkbun @@ -0,0 +1,48 @@ +#!/usr/bin/bash + +if [ ! -f "/etc/ddns-acme-porkbun.env" ]; then + echo "Porkbun API key .env missing" + exit 1 +fi + +set -a; source /etc/ddns-acme-porkbun.env; set +a + +if [ -z "$EMAIL" ] || [ -z "$DOMAINS" ] || [ -z "$PORKBUN_SECRET_API_KEY" ] || [ -z "$PORKBUN_API_KEY" ]; then + echo "Bad .env file" + exit 1 +fi + +ddns_update() { + while true; + do + ddns-porkbun + case "#?" in + "1") + echo "Fatal error" + exit 1 + ;; + "2") + echo "Retrying" + ;; + "0") + echo "DNS updated" + break + ;; + esac + done +} + +ddns_update +if [ "#?" -eq "1" ]; then + echo "DDNS script failed, check credentials/domain" +fi + +if [ "$1" = "renew" ]; then + LEGO_ARG="renew" +else + LEGO_ARG="run" +fi + + +cd /etc/nginx +lego --email "$EMAIL" --dns porkbun "${DOMAINS[@]/#/-d }" $LEGO_ARG