mirror of
https://github.com/dokku/dokku.git
synced 2025-12-16 03:57:43 +01:00
300 lines
9.3 KiB
Bash
Executable File
300 lines
9.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions"
|
|
source "$PLUGIN_CORE_AVAILABLE_PATH/common/property-functions"
|
|
set -eo pipefail
|
|
[[ $DOKKU_TRACE ]] && set -x
|
|
|
|
fn-get-pagesize() {
|
|
declare desc="return the underlying system's memory page size"
|
|
declare todo="port to common functions"
|
|
|
|
"$PLUGIN_CORE_AVAILABLE_PATH/nginx-vhosts/pagesize"
|
|
}
|
|
|
|
fn-openresty-access-log-format() {
|
|
declare desc="get the configured access log format"
|
|
declare APP="$1"
|
|
|
|
fn-plugin-property-get-default "openresty" "$APP" "access-log-format" ""
|
|
}
|
|
|
|
fn-openresty-access-log-path() {
|
|
declare desc="get the configured access log path"
|
|
declare APP="$1"
|
|
local OPENRESTY_LOG_ROOT="$(fn-openresty-log-root)"
|
|
|
|
fn-plugin-property-get-default "openresty" "$APP" "access-log-path" "${OPENRESTY_LOG_ROOT}/${APP}-access.log"
|
|
}
|
|
|
|
fn-openresty-allowed-letsencrypt-domains-func-base64() {
|
|
declare desc="get the configured allowed domains func base64"
|
|
|
|
fn-plugin-property-get-default "openresty" "--global" "allowed-letsencrypt-domains-func-base64" "return true" | base64 -w 0
|
|
}
|
|
|
|
fn-openresty-bind-address-ipv4() {
|
|
declare desc="get the configured ipv4 bind address"
|
|
declare APP="$1"
|
|
|
|
fn-plugin-property-get-default "openresty" "$APP" "bind-address-ipv4" ""
|
|
}
|
|
|
|
fn-openresty-bind-address-ipv6() {
|
|
declare desc="get the configured ipv6 bind address"
|
|
declare APP="$1"
|
|
|
|
fn-plugin-property-get-default "openresty" "$APP" "bind-address-ipv6" "::"
|
|
}
|
|
|
|
fn-openresty-client-body-timeout() {
|
|
declare desc="get the configured client body timeout"
|
|
declare APP="$1"
|
|
|
|
fn-plugin-property-get-default "openresty" "$APP" "client-body-timeout" "60s"
|
|
}
|
|
|
|
fn-openresty-client-header-timeout() {
|
|
declare desc="get the configured client header timeout"
|
|
declare APP="$1"
|
|
|
|
fn-plugin-property-get-default "openresty" "$APP" "client-body-timeout" "60s"
|
|
}
|
|
|
|
fn-openresty-client-max-body-size() {
|
|
declare desc="get the configured client max body size"
|
|
declare APP="$1"
|
|
|
|
fn-plugin-property-get-default "openresty" "$APP" "client-max-body-size" ""
|
|
}
|
|
|
|
fn-openresty-error-log-path() {
|
|
declare desc="get the configured error log path"
|
|
declare APP="$1"
|
|
local OPENRESTY_LOG_ROOT="$(fn-openresty-log-root)"
|
|
|
|
fn-plugin-property-get-default "openresty" "$APP" "error-log-path" "${OPENRESTY_LOG_ROOT}/${APP}-error.log"
|
|
}
|
|
|
|
fn-openresty-get-http-includes-dir() {
|
|
declare desc="get any include dir if available"
|
|
declare APP="$1"
|
|
|
|
if [[ -d "${DOKKU_LIB_ROOT}/data/openresty-vhosts/app-$APP/openresty-http-includes.$DOKKU_PID.missing" ]]; then
|
|
return
|
|
fi
|
|
|
|
if [[ -d "${DOKKU_LIB_ROOT}/data/openresty-vhosts/app-$APP/openresty-http-includes.$DOKKU_PID" ]]; then
|
|
echo "${DOKKU_LIB_ROOT}/data/openresty-vhosts/app-$APP/openresty-http-includes.$DOKKU_PID"
|
|
elif [[ -d "${DOKKU_LIB_ROOT}/data/openresty-vhosts/app-$APP/openresty-http-includes" ]]; then
|
|
echo "${DOKKU_LIB_ROOT}/data/openresty-vhosts/app-$APP/openresty-http-includes"
|
|
fi
|
|
}
|
|
|
|
fn-openresty-get-location-includes-dir() {
|
|
declare desc="get any include dir if available"
|
|
declare APP="$1"
|
|
|
|
if [[ -d "${DOKKU_LIB_ROOT}/data/openresty-vhosts/app-$APP/openresty-location-includes.$DOKKU_PID.missing" ]]; then
|
|
return
|
|
fi
|
|
|
|
if [[ -d "${DOKKU_LIB_ROOT}/data/openresty-vhosts/app-$APP/openresty-location-includes.$DOKKU_PID" ]]; then
|
|
echo "${DOKKU_LIB_ROOT}/data/openresty-vhosts/app-$APP/openresty-location-includes.$DOKKU_PID"
|
|
elif [[ -d "${DOKKU_LIB_ROOT}/data/openresty-vhosts/app-$APP/openresty-location-includes" ]]; then
|
|
echo "${DOKKU_LIB_ROOT}/data/openresty-vhosts/app-$APP/openresty-location-includes"
|
|
fi
|
|
}
|
|
|
|
fn-openresty-hsts-include-subdomains() {
|
|
declare APP="$1"
|
|
fn-plugin-property-get-default "openresty" "$APP" "hsts-include-subdomains" "true"
|
|
}
|
|
|
|
fn-openresty-hsts-max-age() {
|
|
declare APP="$1"
|
|
fn-plugin-property-get-default "openresty" "$APP" "hsts-max-age" "15724800"
|
|
}
|
|
|
|
fn-openresty-hsts-preload() {
|
|
declare APP="$1"
|
|
fn-plugin-property-get-default "openresty" "$APP" "hsts-preload" "false"
|
|
}
|
|
|
|
fn-openresty-hsts-is-enabled() {
|
|
declare APP="$1"
|
|
local hsts_is_enabled="$(fn-plugin-property-get-default "openresty" "$APP" "hsts" "")"
|
|
|
|
if [[ "$hsts_is_enabled" == "" ]]; then
|
|
hsts_is_enabled="$(fn-plugin-property-get-default "openresty" "--global" "hsts" "true")"
|
|
fi
|
|
|
|
echo "$hsts_is_enabled"
|
|
}
|
|
|
|
fn-openresty-image() {
|
|
fn-plugin-property-get-default "openresty" "--global" "image" "$(grep "FROM" "$PLUGIN_AVAILABLE_PATH/openresty-vhosts/Dockerfile" | awk '{print $2}')"
|
|
}
|
|
|
|
fn-openresty-keepalive-timeout() {
|
|
declare desc="get the configured keepalive timeout"
|
|
declare APP="$1"
|
|
|
|
fn-plugin-property-get-default "openresty" "$APP" "keepalive-timeout" "75s"
|
|
}
|
|
|
|
fn-openresty-letsencrypt-email() {
|
|
fn-plugin-property-get-default "openresty" "--global" "letsencrypt-email" ""
|
|
}
|
|
|
|
fn-openresty-letsencrypt-server() {
|
|
fn-plugin-property-get-default "openresty" "--global" "letsencrypt-server" "https://acme-v02.api.letsencrypt.org/directory"
|
|
}
|
|
|
|
fn-openresty-log-root() {
|
|
declare desc="get the openresty log root"
|
|
local OPENRESTY_LOG_ROOT="/var/log/nginx"
|
|
echo "$OPENRESTY_LOG_ROOT"
|
|
}
|
|
|
|
fn-openresty-logs() {
|
|
declare desc="shows the logs for the openresty container"
|
|
declare TAIL="$1" NUM="$2"
|
|
local dokku_logs_args=("--tail" "$NUM")
|
|
|
|
if [[ "$TAIL" == "true" ]]; then
|
|
dokku_logs_args+=("--follow")
|
|
fi
|
|
|
|
"$DOCKER_BIN" logs openresty-openresty-1 "${dokku_logs_args[@]}"
|
|
}
|
|
|
|
fn-openresty-logs-usage() {
|
|
declare desc="logs specific usage"
|
|
echo "Usage: dokku openresty:logs"
|
|
echo " display recent openresty log output"
|
|
echo ""
|
|
echo " -n, --num NUM # the number of lines to display"
|
|
echo " -t, --tail # continually stream logs"
|
|
}
|
|
|
|
fn-openresty-lingering-timeout() {
|
|
declare desc="get the configured lingering timeout"
|
|
declare APP="$1"
|
|
|
|
fn-plugin-property-get-default "openresty" "$APP" "lingering-timeout" "5s"
|
|
}
|
|
|
|
fn-openresty-proxy-buffer-size() {
|
|
declare desc="get the configured proxy buffer size"
|
|
declare APP="$1"
|
|
|
|
fn-plugin-property-get-default "openresty" "$APP" "proxy-buffer-size" "$(fn-get-pagesize)k"
|
|
}
|
|
|
|
fn-openresty-proxy-buffering() {
|
|
declare desc="get the configured proxy buffering"
|
|
declare APP="$1"
|
|
|
|
fn-plugin-property-get-default "openresty" "$APP" "proxy-buffering" "on"
|
|
}
|
|
|
|
fn-openresty-proxy-buffers() {
|
|
declare desc="get the configured proxy buffers"
|
|
declare APP="$1"
|
|
|
|
fn-plugin-property-get-default "openresty" "$APP" "proxy-buffers" "8 $(fn-get-pagesize)k"
|
|
}
|
|
|
|
fn-openresty-proxy-busy-buffers-size() {
|
|
declare desc="get the configured proxy busy buffers size"
|
|
declare APP="$1"
|
|
|
|
fn-plugin-property-get-default "openresty" "$APP" "proxy-busy-buffers-size" "$(($(fn-get-pagesize) * 2))k"
|
|
}
|
|
|
|
fn-openresty-proxy-connect-timeout() {
|
|
declare desc="get the configured proxy connect timeout"
|
|
declare APP="$1"
|
|
|
|
fn-plugin-property-get-default "openresty" "$APP" "proxy-connect-timeout" "60s"
|
|
}
|
|
|
|
fn-openresty-proxy-read-timeout() {
|
|
declare desc="get the configured proxy read timeout"
|
|
declare APP="$1"
|
|
|
|
fn-plugin-property-get-default "openresty" "$APP" "proxy-read-timeout" "60s"
|
|
}
|
|
|
|
fn-openresty-proxy-send-timeout() {
|
|
declare desc="get the configured proxy send timeout"
|
|
declare APP="$1"
|
|
|
|
fn-plugin-property-get-default "openresty" "$APP" "proxy-send-timeout" "60s"
|
|
}
|
|
|
|
fn-openresty-send-timeout() {
|
|
declare desc="get the configured send timeout"
|
|
declare APP="$1"
|
|
|
|
fn-plugin-property-get-default "openresty" "$APP" "send-timeout" "60s"
|
|
}
|
|
|
|
fn-openresty-template-compose-file() {
|
|
declare desc="templates out the compose file"
|
|
declare OUTPUT_PATH="$1"
|
|
local COMPOSE_TEMPLATE="$PLUGIN_AVAILABLE_PATH/openresty-vhosts/templates/compose.yml.sigil"
|
|
|
|
CUSTOM_COMPOSE_TEMPLATE="$(plugn trigger openresty-template-source "$APP")"
|
|
if [[ -n "$CUSTOM_COMPOSE_TEMPLATE" ]]; then
|
|
COMPOSE_TEMPLATE="$CUSTOM_COMPOSE_TEMPLATE"
|
|
fi
|
|
|
|
local SIGIL_PARAMS=(OPENRESTY_DATA_DIR="${DOKKU_LIB_ROOT}/data/openresty-vhosts/.docker-letsencrypt"
|
|
OPENRESTY_IMAGE="$(fn-openresty-image)"
|
|
OPENRESTY_LETSENCRYPT_EMAIL="$(fn-openresty-letsencrypt-email)"
|
|
OPENRESTY_LETSENCRYPT_SERVER="$(fn-openresty-letsencrypt-server)")
|
|
|
|
local ALLOWED_DOMAINS_FUNC_BASE64="$(fn-fn-openresty-allowed-letsencrypt-domains-func-base64)"
|
|
if [[ -n "$ALLOWED_DOMAINS_FUNC_BASE64" ]]; then
|
|
SIGIL_PARAMS+=(ALLOWED_DOMAINS_FUNC_BASE64="$ALLOWED_DOMAINS_FUNC_BASE64")
|
|
fi
|
|
|
|
sigil -f "$COMPOSE_TEMPLATE" "${SIGIL_PARAMS[@]}" | cat -s >"$OUTPUT_PATH"
|
|
}
|
|
|
|
fn-openresty-underscore-in-headers() {
|
|
declare desc="get the configured underscore in headers value"
|
|
declare APP="$1"
|
|
|
|
fn-plugin-property-get-default "openresty" "$APP" "underscore-in-headers" "off"
|
|
}
|
|
|
|
fn-openresty-x-forwarded-for-value() {
|
|
declare desc="get the configured x-forwarded-for value"
|
|
declare APP="$1"
|
|
|
|
fn-plugin-property-get-default "openresty" "$APP" "x-forwarded-for-value" "\$remote_addr"
|
|
}
|
|
|
|
fn-openresty-x-forwarded-port-value() {
|
|
declare desc="get the configured x-forwarded-port value"
|
|
declare APP="$1"
|
|
|
|
fn-plugin-property-get-default "openresty" "$APP" "x-forwarded-port-value" "\$server_port"
|
|
}
|
|
|
|
fn-openresty-x-forwarded-proto-value() {
|
|
declare desc="get the configured x-forwarded-proto value"
|
|
declare APP="$1"
|
|
|
|
fn-plugin-property-get-default "openresty" "$APP" "x-forwarded-proto-value" "\$scheme"
|
|
}
|
|
|
|
fn-openresty-x-forwarded-ssl() {
|
|
declare desc="get the configured x-forwarded-ssl value"
|
|
declare APP="$1"
|
|
|
|
fn-plugin-property-get-default "openresty" "$APP" "x-forwarded-ssl" ""
|
|
}
|