Last active
January 22, 2025 20:30
-
-
Save bitcloud/12342834261b1d1cd8e7b4ec2187111c to your computer and use it in GitHub Desktop.
truenas acmedns script
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
#!/bin/bash | |
# truenas-ACME-desec-authenticator | |
# Send POST request to e.g. https://auth.acme-dns.io/register to get your own credentials | |
# see https://github.com/joohoi/acme-dns for more details. You can run your own acmedns server. | |
ACMEDNS_API="https://auth.acme-dns.io" | |
ACMEDNS_USERNAME="XXXX" | |
ACMEDNS_PASSWORD="XXXX" | |
ACMEDNS_SUBDOMAIN="XXXX" | |
add_record() { | |
_DOMAIN="${1}" | |
_SUBDOMAIN="${2}" | |
_TXT_VAL="${3}" | |
echo "Adding TXT record to ${_SUBDOMAIN} (${ACMEDNS_SUBDOMAIN}) in ${_DOMAIN} (Value: ${_TXT_VAL})" | |
curl -k -X POST "${ACMEDNS_API}/update" \ | |
--header "X-Api-User: ${ACMEDNS_USERNAME}" \ | |
--header "X-Api-Key: ${ACMEDNS_PASSWORD}" \ | |
--header "Content-Type: application/json" \ | |
--data "{\"subdomain\": \"${ACMEDNS_SUBDOMAIN}\", \"txt\": \"${_TXT_VAL}\"}" | |
} | |
del_record() { | |
_DOMAIN="${1}" | |
_SUBDOMAIN="${2}" | |
_TXT_VAL="${3}" | |
echo "Deleting TXT record from ${_SUBDOMAIN} (${ACMEDNS_SUBDOMAIN}) in ${_DOMAIN} (Value: ${_TXT_VAL})" | |
echo "NOOP as there is no delete with acmedns currently" | |
#curl -k -X POST "${ACMEDNS_API}/update" \ | |
# --header "X-Api-User: ${ACMEDNS_USERNAME}" \ | |
# --header "X-Api-Key: ${ACMEDNS_PASSWORD}" \ | |
# --header "Content-Type: application/json" \ | |
# --data "{\"subdomain\": \"${ACMEDNS_SUBDOMAIN}\", \"txt\": \"${_TXT_VAL}\"}" | |
} | |
if (( $# != 4 )); then | |
echo "Wrong numbers of parameters" | |
exit 1 | |
fi | |
COMMAND="$1" | |
DOMAIN="$2" | |
SUBDOMAIN="$3" | |
TXT_VAL="$4" | |
if [ ! -z "$OVERRIDE_DOMAIN" ]; then | |
echo "Override Domain (${OVERRIDE_DOMAIN}) set, using this instead of ${DOMAIN}" | |
DOMAIN="${OVERRIDE_DOMAIN}" | |
SUBDOMAIN=${SUBDOMAIN%%".$DOMAIN"} | |
fi | |
if [ "$COMMAND" == "set" ]; then | |
add_record "${DOMAIN}" "${SUBDOMAIN}" "${TXT_VAL}" | |
elif [ "$COMMAND" == "unset" ]; then | |
del_record "${DOMAIN}" "${SUBDOMAIN}" "${TXT_VAL}" | |
else | |
echo "Unknown command: ${COMMAND}" | |
exit 1 | |
fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment