Skip to content

Instantly share code, notes, and snippets.

@bitcloud
Last active January 22, 2025 20:30
Show Gist options
  • Save bitcloud/12342834261b1d1cd8e7b4ec2187111c to your computer and use it in GitHub Desktop.
Save bitcloud/12342834261b1d1cd8e7b4ec2187111c to your computer and use it in GitHub Desktop.
truenas acmedns script
#!/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