mirror of
https://github.com/dokku/dokku.git
synced 2025-12-29 00:25:08 +01:00
The default for an app is empty, meaning it will fallback to the global value (which defaults to true). This will allow users to properly override the global value, regardless of what it is.
123 lines
4.7 KiB
Bash
Executable File
123 lines
4.7 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -eo pipefail
|
|
[[ $DOKKU_TRACE ]] && set -x
|
|
source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions"
|
|
source "$PLUGIN_CORE_AVAILABLE_PATH/common/property-functions"
|
|
source "$PLUGIN_AVAILABLE_PATH/nginx-vhosts/functions"
|
|
source "$PLUGIN_AVAILABLE_PATH/nginx-vhosts/internal-functions"
|
|
|
|
cmd-nginx-report() {
|
|
declare desc="displays a nginx report for one or more apps"
|
|
declare cmd="nginx:report"
|
|
[[ "$1" == "$cmd" ]] && shift 1
|
|
declare APP="$1" INFO_FLAG="$2"
|
|
local INSTALLED_APPS=$(dokku_apps)
|
|
|
|
if [[ -n "$APP" ]] && [[ "$APP" == --* ]]; then
|
|
INFO_FLAG="$APP"
|
|
APP=""
|
|
fi
|
|
|
|
if [[ -z "$APP" ]] && [[ -z "$INFO_FLAG" ]]; then
|
|
INFO_FLAG="true"
|
|
fi
|
|
|
|
if [[ -z "$APP" ]]; then
|
|
for app in $INSTALLED_APPS; do
|
|
cmd-nginx-report-single "$app" "$INFO_FLAG" | tee || true
|
|
done
|
|
else
|
|
cmd-nginx-report-single "$APP" "$INFO_FLAG"
|
|
fi
|
|
}
|
|
|
|
cmd-nginx-report-single() {
|
|
declare APP="$1" INFO_FLAG="$2"
|
|
if [[ "$INFO_FLAG" == "true" ]]; then
|
|
INFO_FLAG=""
|
|
fi
|
|
verify_app_name "$APP"
|
|
local flag_map=(
|
|
"--nginx-access-log-format: $(fn-nginx-access-log-format "$APP")"
|
|
"--nginx-access-log-path: $(fn-nginx-access-log-path "$APP")"
|
|
"--nginx-bind-address-ipv4: $(fn-plugin-property-get-default "nginx" "$APP" "bind-address-ipv4" "")"
|
|
"--nginx-bind-address-ipv6: $(fn-plugin-property-get-default "nginx" "$APP" "bind-address-ipv6" "::")"
|
|
"--nginx-client-max-body-size: $(fn-plugin-property-get-default "nginx" "$APP" "client-max-body-size" "")"
|
|
"--nginx-disable-custom-config: $(fn-plugin-property-get-default "nginx" "$APP" "disable-custom-config" "false")"
|
|
"--nginx-error-log-path: $(fn-nginx-error-log-path "$APP")"
|
|
"--nginx-global-hsts: $(fn-plugin-property-get-default "nginx" "--global" "hsts" "true")"
|
|
"--nginx-computed-hsts: $(fn-nginx-hsts-is-enabled "$APP")"
|
|
"--nginx-hsts: $(fn-plugin-property-get-default "nginx" "$APP" "hsts" "")"
|
|
"--nginx-hsts-include-subdomains: $(fn-plugin-property-get-default "nginx" "$APP" "hsts-include-subdomains" "true")"
|
|
"--nginx-hsts-max-age: $(fn-plugin-property-get-default "nginx" "$APP" "hsts-max-age" "15724800")"
|
|
"--nginx-hsts-preload: $(fn-plugin-property-get-default "nginx" "$APP" "hsts-preload" "false")"
|
|
"--nginx-proxy-buffer-size: $(fn-nginx-proxy-buffer-size "$APP")"
|
|
"--nginx-proxy-buffering: $(fn-nginx-proxy-buffering "$APP")"
|
|
"--nginx-proxy-buffers: $(fn-nginx-proxy-buffers "$APP")"
|
|
"--nginx-proxy-busy-buffers-size: $(fn-nginx-proxy-busy-buffers-size "$APP")"
|
|
"--nginx-proxy-read-timeout: $(fn-nginx-proxy-read-timeout "$APP")"
|
|
"--nginx-last-visited-at: $(fn-nginx-vhosts-last-visited-at "$APP")"
|
|
"--nginx-x-forwarded-for-value: $(fn-plugin-property-get-default "nginx" "$APP" "x-forwarded-for-value" "\$remote_addr")"
|
|
"--nginx-x-forwarded-port-value: $(fn-plugin-property-get-default "nginx" "$APP" "x-forwarded-port-value" "\$server_port")"
|
|
"--nginx-x-forwarded-proto-value: $(fn-plugin-property-get-default "nginx" "$APP" "x-forwarded-proto-value" "\$scheme")"
|
|
)
|
|
|
|
if [[ -z "$INFO_FLAG" ]]; then
|
|
dokku_log_info2_quiet "${APP} nginx information"
|
|
for flag in "${flag_map[@]}"; do
|
|
key="$(echo "${flag#--}" | cut -f1 -d' ' | tr - ' ')"
|
|
dokku_log_verbose "$(printf "%-30s %-25s" "${key^}" "${flag#*: }")"
|
|
done
|
|
else
|
|
local match=false
|
|
local value_exists=false
|
|
for flag in "${flag_map[@]}"; do
|
|
valid_flags="${valid_flags} $(echo "$flag" | cut -d':' -f1)"
|
|
if [[ "$flag" == "${INFO_FLAG}:"* ]]; then
|
|
value=${flag#*: }
|
|
size="${#value}"
|
|
if [[ "$size" -ne 0 ]]; then
|
|
echo "$value" && match=true && value_exists=true
|
|
else
|
|
match=true
|
|
fi
|
|
fi
|
|
done
|
|
[[ "$match" == "true" ]] || dokku_log_fail "Invalid flag passed, valid flags:${valid_flags}"
|
|
[[ "$value_exists" == "true" ]] || dokku_log_fail "not deployed"
|
|
fi
|
|
}
|
|
|
|
cmd-nginx-show-config() {
|
|
declare desc="display app nginx config"
|
|
declare cmd="nginx:show-config"
|
|
declare deprecated=true
|
|
[[ "$1" == "$cmd" ]] && shift 1
|
|
if [[ "$1" == "nginx:show-conf" ]]; then
|
|
dokku_log_warn "Deprecated: Please use nginx:show-config"
|
|
shift 1
|
|
fi
|
|
declare APP="$1"
|
|
|
|
verify_app_name "$APP"
|
|
if [[ ! -f "$DOKKU_ROOT/$APP/nginx.conf" ]]; then
|
|
dokku_log_fail "No nginx.conf exists for $APP"
|
|
fi
|
|
|
|
cat "$DOKKU_ROOT/$APP/nginx.conf"
|
|
}
|
|
|
|
cmd-nginx-validate-config() {
|
|
declare desc="validates and optionally cleans up invalid nginx configurations"
|
|
declare cmd="nginx:validate-config"
|
|
declare deprecated=true
|
|
[[ "$1" == "$cmd" ]] && shift 1
|
|
if [[ "$1" == "nginx:validate" ]]; then
|
|
dokku_log_warn "Deprecated: Please use nginx:validate-config"
|
|
shift 1
|
|
fi
|
|
declare APP="$1" FLAG="$2"
|
|
|
|
validate_nginx "$APP" "$FLAG"
|
|
}
|