Add validation for DUCKDNS_TOKEN and DUCKDNS_SUBDOMAINS in setup script
This commit is contained in:
@@ -392,48 +392,38 @@ step_7_generate_authelia_secrets() {
|
|||||||
sed -i "s|^SERVER_IP=.*|SERVER_IP=$escaped_ip|" "$REPO_ENV_FILE"
|
sed -i "s|^SERVER_IP=.*|SERVER_IP=$escaped_ip|" "$REPO_ENV_FILE"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Load other variables with defaults
|
DUCKDNS_TOKEN=$(get_env_value "DUCKDNS_TOKEN" "")
|
||||||
PUID=$(get_env_value "PUID" "1000")
|
if is_placeholder "$DUCKDNS_TOKEN" || [ -z "$DUCKDNS_TOKEN" ]; then
|
||||||
PGID=$(get_env_value "PGID" "1000")
|
|
||||||
TZ=$(get_env_value "TZ" "America/New_York")
|
|
||||||
DUCKDNS_TOKEN=$(get_env_value "DUCKDNS_TOKEN" "")
|
|
||||||
DUCKDNS_SUBDOMAINS=$(get_env_value "DUCKDNS_SUBDOMAINS" "")
|
|
||||||
|
|
||||||
log_success "Environment variables validated"
|
|
||||||
|
|
||||||
# Check if secrets are already set (not placeholder values)
|
|
||||||
CURRENT_JWT=$(grep "^AUTHELIA_JWT_SECRET=" "$REPO_ENV_FILE" | cut -d'=' -f2)
|
|
||||||
if [ -n "$CURRENT_JWT" ] && [ "$CURRENT_JWT" != "your-jwt-secret-here" ] && [ "$CURRENT_JWT" != "generate-with-openssl-rand-hex-64" ] && [ ${#CURRENT_JWT} -ge 64 ]; then
|
|
||||||
log_warning "Authelia secrets appear to already be set in .env"
|
|
||||||
if [ "$AUTO_YES" = true ]; then
|
if [ "$AUTO_YES" = true ]; then
|
||||||
log_info "Auto-confirmed: Keeping existing secrets (--yes mode)"
|
log_error "DUCKDNS_TOKEN not set in .env and running in --yes mode"
|
||||||
elif confirm "Regenerate Authelia secrets?"; then
|
log_info "Please set DUCKDNS_TOKEN in .env file"
|
||||||
generate_new_secrets
|
exit 1
|
||||||
else
|
else
|
||||||
log_info "Keeping existing secrets"
|
prompt_user "Enter your DuckDNS token"
|
||||||
|
read -p "> " DUCKDNS_TOKEN
|
||||||
fi
|
fi
|
||||||
|
escaped_token=$(printf '%s\n' "$DUCKDNS_TOKEN" | sed 's/|/\\|/g' | tr -d '\n')
|
||||||
|
sed -i "s|^DUCKDNS_TOKEN=.*|DUCKDNS_TOKEN=$escaped_token|" "$REPO_ENV_FILE"
|
||||||
|
fi
|
||||||
|
|
||||||
|
DUCKDNS_SUBDOMAINS=$(get_env_value "DUCKDNS_SUBDOMAINS" "")
|
||||||
|
if is_placeholder "$DUCKDNS_SUBDOMAINS" || [ -z "$DUCKDNS_SUBDOMAINS" ]; then
|
||||||
|
if [ "$AUTO_YES" = true ]; then
|
||||||
|
log_error "DUCKDNS_SUBDOMAINS not set in .env and running in --yes mode"
|
||||||
|
log_info "Please set DUCKDNS_SUBDOMAINS in .env file"
|
||||||
|
exit 1
|
||||||
else
|
else
|
||||||
generate_new_secrets
|
prompt_user "Enter your DuckDNS subdomain (without .duckdns.org)"
|
||||||
|
read -p "> " DUCKDNS_SUBDOMAINS
|
||||||
fi
|
fi
|
||||||
|
escaped_subdomains=$(printf '%s\n' "$DUCKDNS_SUBDOMAINS" | sed 's/|/\\|/g' | tr -d '\n')
|
||||||
|
sed -i "s|^DUCKDNS_SUBDOMAINS=.*|DUCKDNS_SUBDOMAINS=$escaped_subdomains|" "$REPO_ENV_FILE"
|
||||||
|
fi
|
||||||
|
|
||||||
# Get or set admin credentials
|
# Load other variables with defaults
|
||||||
log_info "Setting up Authelia admin user..."
|
PUID=$(get_env_value "PUID" "1000")
|
||||||
echo ""
|
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
|
|
||||||
ADMIN_USER="admin"
|
|
||||||
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
|
|
||||||
prompt_user "Enter admin email address"
|
|
||||||
read -p "> " ADMIN_EMAIL
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Get admin password from .env or prompt
|
|
||||||
ADMIN_PASSWORD=$(get_env_value "AUTHELIA_ADMIN_PASSWORD" "YourStrongPassword123!")
|
ADMIN_PASSWORD=$(get_env_value "AUTHELIA_ADMIN_PASSWORD" "YourStrongPassword123!")
|
||||||
if is_placeholder "$ADMIN_PASSWORD" || [ "$AUTO_YES" != true ]; then
|
if is_placeholder "$ADMIN_PASSWORD" || [ "$AUTO_YES" != true ]; then
|
||||||
if [ "$AUTO_YES" = true ]; then
|
if [ "$AUTO_YES" = true ]; then
|
||||||
|
|||||||
Reference in New Issue
Block a user