|
|
@ -0,0 +1,101 @@ |
|
|
|
|
|
#!/usr/bin/env sh |
|
|
|
|
|
|
|
|
|
|
|
# Deploy-hook to very simply copy files to set directories and then |
|
|
|
|
|
# execute whatever reloadcmd the admin needs afterwards. This can be |
|
|
|
|
|
# useful for configurations where the "multideploy" hook (in development) |
|
|
|
|
|
# is used or when an admin wants ACME.SH to renew certs but needs to |
|
|
|
|
|
# manually configure deployment via an external script |
|
|
|
|
|
# (e.g. The deploy-freenas script for TrueNAS Core/Scale |
|
|
|
|
|
# https://github.com/danb35/deploy-freenas/ ) |
|
|
|
|
|
# |
|
|
|
|
|
# |
|
|
|
|
|
# Environment variables to be utilized are as follows: |
|
|
|
|
|
# |
|
|
|
|
|
# DEPLOY_LOCALCOPY_CERTIFICATE - /path/to/target/cert.cer |
|
|
|
|
|
# DEPLOY_LOCALCOPY_CERTKEY - /path/to/target/cert.key |
|
|
|
|
|
# DEPLOY_LOCALCOPY_FULLCHAIN - /path/to/target/fullchain.cer |
|
|
|
|
|
# DEPLOY_LOCALCOPY_CA - /path/to/target/ca.cer |
|
|
|
|
|
# DEPLOY_LOCALCOPY_RELOADCMD - "echo 'this is my cmd'" |
|
|
|
|
|
|
|
|
|
|
|
######## Public functions ##################### |
|
|
|
|
|
|
|
|
|
|
|
#domain keyfile certfile cafile fullchain |
|
|
|
|
|
localcopy_deploy() { |
|
|
|
|
|
_cdomain="$1" |
|
|
|
|
|
_ckey="$2" |
|
|
|
|
|
_ccert="$3" |
|
|
|
|
|
_cca="$4" |
|
|
|
|
|
_cfullchain="$5" |
|
|
|
|
|
|
|
|
|
|
|
_debug _cdomain "$_cdomain" |
|
|
|
|
|
_debug _ckey "$_ckey" |
|
|
|
|
|
_debug _ccert "$_ccert" |
|
|
|
|
|
_debug _cca "$_cca" |
|
|
|
|
|
_debug _cfullchain "$_cfullchain" |
|
|
|
|
|
|
|
|
|
|
|
_getdeployconf DEPLOY_LOCALCOPY_CERTIFICATE |
|
|
|
|
|
_getdeployconf DEPLOY_LOCALCOPY_CERTKEY |
|
|
|
|
|
_getdeployconf DEPLOY_LOCALCOPY_FULLCHAIN |
|
|
|
|
|
_getdeployconf DEPLOY_LOCALCOPY_CA |
|
|
|
|
|
_getdeployconf DEPLOY_LOCALCOPY_RELOADCMD |
|
|
|
|
|
|
|
|
|
|
|
if [ "$DEPLOY_LOCALCOPY_CERTIFICATE" ]; then |
|
|
|
|
|
_info "Copying certificate" |
|
|
|
|
|
_debug "Copying $_ccert to $DEPLOY_LOCALCOPY_CERTIFICATE" |
|
|
|
|
|
eval "cp $_ccert $DEPLOY_LOCALCOPY_CERTIFICATE" |
|
|
|
|
|
if [ $? -ne 0 ]; then |
|
|
|
|
|
_err "Failed to copy certificate, aborting." |
|
|
|
|
|
return 1; |
|
|
|
|
|
fi; |
|
|
|
|
|
fi; |
|
|
|
|
|
|
|
|
|
|
|
if [ "$DEPLOY_LOCALCOPY_CERTKEY" ]; then |
|
|
|
|
|
_info "Copying certificate key" |
|
|
|
|
|
_debug "Copying $_ckey to $DEPLOY_LOCALCOPY_CERTKEY" |
|
|
|
|
|
eval "cp $_ckey $DEPLOY_LOCALCOPY_CERTKEY" |
|
|
|
|
|
if [ $? -ne 0 ]; then |
|
|
|
|
|
_err "Failed to copy certificate key, aborting." |
|
|
|
|
|
return 1; |
|
|
|
|
|
fi; |
|
|
|
|
|
|
|
|
|
|
|
fi; |
|
|
|
|
|
|
|
|
|
|
|
if [ "$DEPLOY_LOCALCOPY_FULLCHAIN" ]; then |
|
|
|
|
|
_info "Copying fullchain" |
|
|
|
|
|
_debug "Copying $_cfullchain to $DEPLOY_LOCALCOPY_FULLCHAIN" |
|
|
|
|
|
eval "cp $_cfullchain $DEPLOY_LOCALCOPY_FULLCHAIN" |
|
|
|
|
|
if [ $? -ne 0 ]; then |
|
|
|
|
|
_err "Failed to copy fullchain, aborting." |
|
|
|
|
|
return 1; |
|
|
|
|
|
fi; |
|
|
|
|
|
|
|
|
|
|
|
fi; |
|
|
|
|
|
|
|
|
|
|
|
if [ "$DEPLOY_LOCALCOPY_CA" ]; then |
|
|
|
|
|
_info "Copying CA" |
|
|
|
|
|
_debug "Copying $_cca to $DEPLOY_LOCALCOPY_CA" |
|
|
|
|
|
eval "cp $_cca $DEPLOY_LOCALCOPY_CA" |
|
|
|
|
|
if [ $? -ne 0 ]; then |
|
|
|
|
|
_err "Failed to copy CA, aborting." |
|
|
|
|
|
return 1; |
|
|
|
|
|
fi; |
|
|
|
|
|
fi; |
|
|
|
|
|
|
|
|
|
|
|
_reload=$DEPLOY_LOCALCOPY_RELOADCMD |
|
|
|
|
|
if eval $_reload; then |
|
|
|
|
|
_info "Reload successful." |
|
|
|
|
|
else |
|
|
|
|
|
_err "Reload failed." |
|
|
|
|
|
fi; |
|
|
|
|
|
|
|
|
|
|
|
# Save configuration |
|
|
|
|
|
_savedeployconf DEPLOY_LOCALCOPY_CERTIFICATE "$DEPLOY_LOCALCOPY_CERTIFICATE" |
|
|
|
|
|
_savedeployconf DEPLOY_LOCALCOPY_CERTKEY "$DEPLOY_LOCALCOPY_CERTKEY" |
|
|
|
|
|
_savedeployconf DEPLOY_LOCALCOPY_FULLCHAIN "$DEPLOY_LOCALCOPY_FULLCHAIN" |
|
|
|
|
|
_savedeployconf DEPLOY_LOCALCOPY_CA "$DEPLOY_LOCALCOPY_CA" |
|
|
|
|
|
|
|
|
|
|
|
_info "$(__green ""localcopy" deploy success")" |
|
|
|
|
|
return 0 |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|