Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
getssl / usr / share / getssl / dns_scripts / dns_add_acmedns
Size: Mime:
#!/usr/bin/env bash

. "$(dirname "${BASH_SOURCE}")/../common.shrc" || {
  echo "Unable to load shared Bash code"
  exit 1
} >&2

# 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_params=(
  -H "accept: application/json"
  -H "X-Api-Key: $apikey"
  -H "X-Api-User: $apiuser"
  -H 'Content-Type: application/json'
)

generate_post_data()
{
  cat <<EOF
{
  "subdomain": "$apisubdomain",
  "txt": "$token"
}
EOF
}

curl.do \
  "${curl_params[@]}" \
  -X POST "${API}" \
  --data "$(generate_post_data)" \
  >/dev/null || {
  echo 'Error: DNS challenge not added: unknown error'
  exit 1
} >&2
exit 0