Add dokku deploy script
parent
12ad8d52ae
commit
5287f9f045
@ -0,0 +1,67 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
# This script used to automatically deploy dokku
|
||||
# global wildcard domain's certificate.
|
||||
# If your dokku global domain is dokku.example.com
|
||||
# and you dokku app is domains-app-enabled
|
||||
# and the app heve domains like dokku.example.com
|
||||
# *.dokku.example.com, this script will
|
||||
# automatic execute `dokku certs:update app <certs`
|
||||
# to enable and update the app SSL certificate.
|
||||
|
||||
# DOKKU_SSL_DOCUMENTATION='http://dokku.viewdocs.io/dokku/configuration/ssl/'
|
||||
|
||||
######## Public functions #####################
|
||||
|
||||
# domain keyfile certfile cafile fullchain
|
||||
dokku_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"
|
||||
|
||||
temp_dir=$(mktemp -d -t cert_pack-XXXXXX)
|
||||
_debug "Create temp dir at $temp_dir"
|
||||
cd "$temp_dir" || return 1
|
||||
cp "$_cfullchain" "server.crt"
|
||||
cp "$_ckey" "server.key"
|
||||
_debug "Create cert-key.tar at temp dir"
|
||||
tar cf cert-key.tar server.crt server.key
|
||||
|
||||
_debug "Get dokku app list"
|
||||
apps=$(dokku apps:list --quiet)
|
||||
_debug "Dokku apps: $apps"
|
||||
|
||||
_debug "Find domain $_cdomain in dokku domain enabled apps"
|
||||
for app in $apps; do
|
||||
app_enable=$(dokku domains:report "$app" --domains-app-enabled)
|
||||
if [[ $app_enable == "true" ]]; then
|
||||
app_vhosts=$(dokku domains:report "$app" --domains-app-vhosts)
|
||||
_debug "App '$app' domains: $app_vhosts"
|
||||
for domain in $app_vhosts; do
|
||||
if [[ $domain == "$_cdomain" || $domain == *.$_cdomain ]]; then
|
||||
_debug "Update dokku app '$app' cert"
|
||||
dokku certs:update "$app" <cert-key.tar
|
||||
_debug "Dokku app '$app' cert update finished"
|
||||
break
|
||||
fi
|
||||
done
|
||||
fi
|
||||
done
|
||||
|
||||
cd - || return 0
|
||||
_debug "Remove temp dir: $temp_dir"
|
||||
rm -rf "$temp_dir"
|
||||
_debug "Clean."
|
||||
_debug "Deploy finish."
|
||||
|
||||
return 0
|
||||
|
||||
}
|
Loading…
Reference in New Issue