#!/usr/bin/env bash # ACMEDNS env variables can be set in a config file at domain level acme_config="$DOMAIN_DIR/acme-dns.cfg" [ -s "$acme_config" ] && . "$acme_config" # Need to add your API user and key below or set as env variable apiuser=${ACMEDNS_API_USER:-''} apikey=${ACMEDNS_API_KEY:-''} apisubdomain=${ACMEDNS_SUBDOMAIN:-''} # This script adds a token to an ACME DNS (default to acme-dns.io) for the ACME challenge # usage: dns_add_acme-dns "domain name" "token" # return codes are: # 0 - success # 1 - error returned from server fulldomain="${1}" token="${2}" # You can set the env var ACMEDNS_URL to use a specific ACME-DNS server # Otherwise we use acme-dns.io API=${ACMEDNS_URL:-'https://auth.acme-dns.io'}/update # Check initial parameters if [[ -z "$fulldomain" ]]; then echo "DNS script requires full domain name as first parameter" exit 1 fi if [[ -z "$token" ]]; then echo "DNS script requires challenge token as second parameter" exit 1 fi curl --fail --silent -X POST "${API}" \ -H "accept: application/json" \ -H "X-Api-Key: $apikey" \ -H "X-Api-User: $apiuser" \ -H 'Content-Type: application/json' \ -d '{ "subdomain": "'"${apisubdomain}"'", "txt": "'"$token"'" }'