Robert Kaussow
9aa96cc5f1
Co-authored-by: Robert Kaussow <mail@thegeeklab.de> Reviewed-on: docker/vaultwarden-ldap#38 Co-authored-by: Robert Kaussow <xoxys@rknet.org> Co-committed-by: Robert Kaussow <xoxys@rknet.org>
44 lines
1.5 KiB
Bash
Executable File
44 lines
1.5 KiB
Bash
Executable File
#!/usr/bin/env sh
|
|
|
|
# shellcheck disable=SC3040
|
|
set -eo pipefail
|
|
|
|
# shellcheck disable=SC1091
|
|
. /usr/local/lib/log.sh
|
|
|
|
/usr/local/bin/gomplate -o /app/config.toml -f /etc/templates/config.toml.tmpl
|
|
|
|
if [ -z "$VAULTWARDEN_LDAP_VAULTWARDEN_URL" ] || [ -z "$VAULTWARDEN_LDAP_HOST" ]; then
|
|
log_error "Error: Vaultwarden and/or LDAP server not configured, exiting"
|
|
exit 1
|
|
fi
|
|
|
|
if [ -n "$VAULTWARDEN_LDAP_VAULTWARDEN_URL" ]; then
|
|
WAITFOR_BW_SCHEME=$(/usr/local/bin/url-parser scheme --url "$VAULTWARDEN_LDAP_VAULTWARDEN_URL")
|
|
WAITFOR_BW_HOST=$(/usr/local/bin/url-parser host --url "$VAULTWARDEN_LDAP_VAULTWARDEN_URL")
|
|
WAITFOR_BW_PORT=$(/usr/local/bin/url-parser port --url "$VAULTWARDEN_LDAP_VAULTWARDEN_URL")
|
|
|
|
if [ -z "$WAITFOR_BW_PORT" ]; then
|
|
[ "$WAITFOR_BW_SCHEME" = "https" ] && WAITFOR_BW_PORT=433 || WAITFOR_BW_PORT=80
|
|
fi
|
|
|
|
log_info "Wait for Vaultwarden server on '${WAITFOR_BW_HOST}:${WAITFOR_BW_PORT}'"
|
|
/usr/local/bin/wait-for "${WAITFOR_BW_HOST}":"${WAITFOR_BW_PORT}"
|
|
fi
|
|
|
|
if [ -n "$VAULTWARDEN_LDAP_HOST" ]; then
|
|
WAITFOR_LDAP_SSL=$(/usr/local/bin/gomplate -i '{{ getenv "VAULTWARDEN_LDAP_SSL" "true" | conv.Bool }}')
|
|
|
|
if [ -z "$VAULTWARDEN_LDAP_PORT" ]; then
|
|
[ "$WAITFOR_LDAP_SSL" = true ] && VAULTWARDEN_LDAP_PORT=636 || VAULTWARDEN_LDAP_PORT=389
|
|
fi
|
|
|
|
log_info "Wait for LDAP server on '${VAULTWARDEN_LDAP_HOST}:${VAULTWARDEN_LDAP_PORT}'"
|
|
/usr/local/bin/wait-for "${VAULTWARDEN_LDAP_HOST}":"${VAULTWARDEN_LDAP_PORT}"
|
|
|
|
# TODO: add delay to minimize connection errors
|
|
sleep 10
|
|
fi
|
|
|
|
exec env CONFIG_PATH=/app/config.toml /app/vaultwarden_ldap
|