Add prompts for DEFAULT_USER, DEFAULT_EMAIL, DEFAULT_PASSWORD if placeholders; use defaults for Authelia credentials
This commit is contained in:
@@ -425,57 +425,60 @@ PUID=$(get_env_value "PUID" "1000")
|
||||
PGID=$(get_env_value "PGID" "1000")
|
||||
TZ=$(get_env_value "TZ" "America/New_York")
|
||||
|
||||
# Get admin user from .env or default
|
||||
ADMIN_USER=$(get_env_value "AUTHELIA_ADMIN_USER" "admin")
|
||||
if is_placeholder "$ADMIN_USER"; then
|
||||
# Prompt for default credentials if placeholders
|
||||
DEFAULT_USER_VALUE=$(get_env_value "DEFAULT_USER" "admin")
|
||||
if is_placeholder "$DEFAULT_USER_VALUE"; then
|
||||
if [ "$AUTO_YES" = true ]; then
|
||||
ADMIN_USER="admin"
|
||||
DEFAULT_USER_VALUE="admin"
|
||||
else
|
||||
prompt_user "Enter admin username" "admin"
|
||||
read -p "> " ADMIN_USER
|
||||
ADMIN_USER=${ADMIN_USER:-admin}
|
||||
fi
|
||||
prompt_user "Enter default username" "admin"
|
||||
read -p "> " DEFAULT_USER_VALUE
|
||||
DEFAULT_USER_VALUE=${DEFAULT_USER_VALUE:-admin}
|
||||
fi
|
||||
escaped_default_user=$(printf '%s\n' "$DEFAULT_USER_VALUE" | sed 's/|/\\|/g' | tr -d '\n')
|
||||
sed -i "s|^DEFAULT_USER=.*|DEFAULT_USER=$escaped_default_user|" "$REPO_ENV_FILE"
|
||||
fi
|
||||
|
||||
# Get admin email from .env or prompt
|
||||
ADMIN_EMAIL=$(get_env_value "AUTHELIA_ADMIN_EMAIL" "your-email@example.com")
|
||||
if is_placeholder "$ADMIN_EMAIL"; then
|
||||
DEFAULT_EMAIL_VALUE=$(get_env_value "DEFAULT_EMAIL" "your-email@example.com")
|
||||
if is_placeholder "$DEFAULT_EMAIL_VALUE"; then
|
||||
if [ "$AUTO_YES" = true ]; then
|
||||
log_error "AUTHELIA_ADMIN_EMAIL not set in .env and running in --yes mode"
|
||||
log_error "DEFAULT_EMAIL not set in .env and running in --yes mode"
|
||||
exit 1
|
||||
else
|
||||
prompt_user "Enter admin email address"
|
||||
read -p "> " ADMIN_EMAIL
|
||||
fi
|
||||
prompt_user "Enter default email address"
|
||||
read -p "> " DEFAULT_EMAIL_VALUE
|
||||
fi
|
||||
escaped_default_email=$(printf '%s\n' "$DEFAULT_EMAIL_VALUE" | sed 's/|/\\|/g' | tr -d '\n')
|
||||
sed -i "s|^DEFAULT_EMAIL=.*|DEFAULT_EMAIL=$escaped_default_email|" "$REPO_ENV_FILE"
|
||||
fi
|
||||
|
||||
ADMIN_PASSWORD=$(get_env_value "AUTHELIA_ADMIN_PASSWORD" "YourStrongPassword123!")
|
||||
if is_placeholder "$ADMIN_PASSWORD" || [ "$AUTO_YES" != true ]; then
|
||||
DEFAULT_PASSWORD_VALUE=$(get_env_value "DEFAULT_PASSWORD" "YourStrongPassword123!")
|
||||
if is_placeholder "$DEFAULT_PASSWORD_VALUE" || [ "$AUTO_YES" != true ]; then
|
||||
if [ "$AUTO_YES" = true ]; then
|
||||
if is_placeholder "$ADMIN_PASSWORD"; then
|
||||
log_warning "Admin password not set in .env, generating random password"
|
||||
ADMIN_PASSWORD=$(openssl rand -base64 12)
|
||||
log_info "Generated password: $ADMIN_PASSWORD"
|
||||
if is_placeholder "$DEFAULT_PASSWORD_VALUE"; then
|
||||
log_warning "Default password not set in .env, generating random password"
|
||||
DEFAULT_PASSWORD_VALUE=$(openssl rand -base64 12)
|
||||
log_info "Generated password: $DEFAULT_PASSWORD_VALUE"
|
||||
else
|
||||
log_info "Using password from .env"
|
||||
log_info "Using default password from .env"
|
||||
fi
|
||||
else
|
||||
if ! is_placeholder "$ADMIN_PASSWORD"; then
|
||||
if confirm "Use existing admin password from .env?"; then
|
||||
log_info "Using existing password from .env"
|
||||
if ! is_placeholder "$DEFAULT_PASSWORD_VALUE"; then
|
||||
if confirm "Use existing default password from .env?"; then
|
||||
log_info "Using existing default password from .env"
|
||||
else
|
||||
ADMIN_PASSWORD=""
|
||||
DEFAULT_PASSWORD_VALUE=""
|
||||
fi
|
||||
fi
|
||||
if [ -z "$ADMIN_PASSWORD" ] || is_placeholder "$ADMIN_PASSWORD"; then
|
||||
if [ -z "$DEFAULT_PASSWORD_VALUE" ] || is_placeholder "$DEFAULT_PASSWORD_VALUE"; then
|
||||
while true; do
|
||||
read -sp "Enter password for $ADMIN_USER: " ADMIN_PASSWORD
|
||||
read -sp "Enter default password: " DEFAULT_PASSWORD_VALUE
|
||||
echo ""
|
||||
read -sp "Confirm password: " ADMIN_PASSWORD_CONFIRM
|
||||
read -sp "Confirm default password: " DEFAULT_PASSWORD_CONFIRM
|
||||
echo ""
|
||||
|
||||
if [ "$ADMIN_PASSWORD" = "$ADMIN_PASSWORD_CONFIRM" ]; then
|
||||
if [ ${#ADMIN_PASSWORD} -lt 8 ]; then
|
||||
if [ "$DEFAULT_PASSWORD_VALUE" = "$DEFAULT_PASSWORD_CONFIRM" ]; then
|
||||
if [ ${#DEFAULT_PASSWORD_VALUE} -lt 8 ]; then
|
||||
log_warning "Password should be at least 8 characters long"
|
||||
continue
|
||||
fi
|
||||
@@ -486,8 +489,28 @@ TZ=$(get_env_value "TZ" "America/New_York")
|
||||
done
|
||||
fi
|
||||
fi
|
||||
else
|
||||
log_info "Using admin password from .env"
|
||||
escaped_default_password=$(printf '%s\n' "$DEFAULT_PASSWORD_VALUE" | sed 's/|/\\|/g' | tr -d '\n')
|
||||
sed -i "s|^DEFAULT_PASSWORD=.*|DEFAULT_PASSWORD=$escaped_default_password|" "$REPO_ENV_FILE"
|
||||
fi
|
||||
|
||||
# Get admin user from .env or default
|
||||
ADMIN_USER=$(get_env_value "AUTHELIA_ADMIN_USER" "admin")
|
||||
if is_placeholder "$ADMIN_USER"; then
|
||||
ADMIN_USER="$DEFAULT_USER_VALUE"
|
||||
log_info "Using default username for Authelia: $ADMIN_USER"
|
||||
fi
|
||||
|
||||
# Get admin email from .env or default
|
||||
ADMIN_EMAIL=$(get_env_value "AUTHELIA_ADMIN_EMAIL" "your-email@example.com")
|
||||
if is_placeholder "$ADMIN_EMAIL"; then
|
||||
ADMIN_EMAIL="$DEFAULT_EMAIL_VALUE"
|
||||
log_info "Using default email for Authelia: $ADMIN_EMAIL"
|
||||
fi
|
||||
|
||||
ADMIN_PASSWORD=$(get_env_value "AUTHELIA_ADMIN_PASSWORD" "YourStrongPassword123!")
|
||||
if is_placeholder "$ADMIN_PASSWORD"; then
|
||||
ADMIN_PASSWORD="$DEFAULT_PASSWORD_VALUE"
|
||||
log_info "Using default password for Authelia"
|
||||
fi
|
||||
|
||||
# Generate password hash using Docker
|
||||
|
||||
Reference in New Issue
Block a user