From 22b9781cb216eab64ce2a61c76a3053843a27b17 Mon Sep 17 00:00:00 2001 From: buildplan Date: Mon, 9 Mar 2026 22:04:37 +0000 Subject: [PATCH 1/3] fix: warn and finish the script on failure to install docker, tailscale, netbird --- du_setup.sh | 42 +++++++++++++++++++++++++++++++++--------- 1 file changed, 33 insertions(+), 9 deletions(-) diff --git a/du_setup.sh b/du_setup.sh index bd880e0..a0da6f5 100644 --- a/du_setup.sh +++ b/du_setup.sh @@ -1,8 +1,9 @@ #!/bin/bash # Debian and Ubuntu Server Hardening Interactive Script -# Version: 0.80.3 | 2026-03-03 +# Version: 0.80.4 | 2026-03-09 # Changelog: +# - v0.80.4: Warn and finish the script if Docker, Tailscale and Netbird fail to install properly. # - v0.80.3: Warn about password-less sudo and offer to generate password for the user if they choose to do so. # Improve SSH service detection for Debian systems. # - v0.80.2: Added an optional install of netbird (https://netbird.io/) as an alternative to tailscale. @@ -105,7 +106,7 @@ set -euo pipefail # --- Update Configuration --- -CURRENT_VERSION="0.80.3" +CURRENT_VERSION="0.80.4" SCRIPT_URL="https://raw.githubusercontent.com/buildplan/du_setup/refs/heads/main/du_setup.sh" CHECKSUM_URL="${SCRIPT_URL}.sha256" @@ -167,6 +168,11 @@ PREVIOUS_SSH_PORT="" IDS_INSTALLED="" TWO_FACTOR_ENABLED="false" +DOCKER_INSTALL_WARN=false +DOCKER_SANITY_WARN=false +TAILSCALE_INSTALL_WARN=false +NETBIRD_INSTALL_WARN=false + # --- --help --- show_usage() { printf "\n" @@ -264,7 +270,7 @@ print_header() { printf '%s\n' "${CYAN}╔═════════════════════════════════════════════════════════════════╗${NC}" printf '%s\n' "${CYAN}║ ║${NC}" printf '%s\n' "${CYAN}║ DEBIAN/UBUNTU SERVER SETUP AND HARDENING SCRIPT ║${NC}" - printf '%s\n' "${CYAN}║ v0.80.3 | 2026-03-03 ║${NC}" + printf '%s\n' "${CYAN}║ v0.80.4 | 2026-03-09 ║${NC}" printf '%s\n' "${CYAN}║ ║${NC}" printf '%s\n' "${CYAN}╚═════════════════════════════════════════════════════════════════╝${NC}" printf '\n' @@ -4492,8 +4498,9 @@ install_docker() { echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/${ID} $(. /etc/os-release && echo "$VERSION_CODENAME") stable" > /etc/apt/sources.list.d/docker.list print_info "Installing Docker packages..." if ! apt-get update -qq || ! apt-get install -y -qq docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin; then - print_error "Failed to install Docker packages." - exit 1 + print_error "Docker package installation failed. Once the script is complete, manually check and install it." + DOCKER_INSTALL_WARN=true + return 0 fi print_info "Adding '$USERNAME' to docker group..." getent group docker >/dev/null || groupadd docker @@ -4553,8 +4560,9 @@ DAEMONFILE if sudo -u "$USERNAME" docker run --rm hello-world 2>&1 | tee -a "$LOG_FILE" | grep -q "Hello from Docker"; then print_success "Docker sanity check passed." else - print_error "Docker hello-world test failed. Please verify installation." - exit 1 + print_error "Docker hello-world test failed. Please verify installation once the script is complete." + DOCKER_SANITY_WARN=true + return 0 fi print_warning "NOTE: '$USERNAME' must log out and back in to use Docker without sudo." log "Docker installation completed." @@ -4653,6 +4661,7 @@ install_tailscale() { print_error "Failed to download the Tailscale installation script." print_info "After setup completes, please try installing it manually: curl -fsSL https://tailscale.com/install.sh | sh" rm -f /tmp/tailscale_install.sh # Clean up partial download + TAILSCALE_INSTALL_WARN=true return 0 # Exit the function without exiting the main script fi @@ -4661,6 +4670,7 @@ install_tailscale() { print_error "Tailscale installation script failed to execute." log "Tailscale installation failed." rm -f /tmp/tailscale_install.sh # Clean up + TAILSCALE_INSTALL_WARN=true return 0 # Exit the function gracefully fi @@ -4859,7 +4869,8 @@ install_netbird() { print_info "Adding NetBird repository and installing package..." if ! apt-get update -qq || ! apt-get install -y -qq ca-certificates curl gnupg; then print_error "Failed to install dependencies for NetBird." - return 1 + NETBIRD_INSTALL_WARN=true + return 0 fi curl -sSL https://pkgs.netbird.io/debian/public.key | gpg --dearmor --output /usr/share/keyrings/netbird-archive-keyring.gpg 2>/dev/null @@ -4868,7 +4879,8 @@ install_netbird() { if ! apt-get update -qq || ! apt-get install -y -qq netbird; then print_error "Failed to install NetBird package." log "NetBird installation failed." - return 1 + NETBIRD_INSTALL_WARN=true + return 0 fi print_success "NetBird installation complete." log "NetBird installation completed." @@ -6045,6 +6057,18 @@ generate_summary() { if [[ ${#FAILED_SERVICES[@]} -gt 0 ]]; then print_warning "ACTION REQUIRED: The following services failed: ${FAILED_SERVICES[*]}. Verify with 'systemctl status '." fi + if [[ "${DOCKER_INSTALL_WARN:-false}" == true ]]; then + print_warning "ACTION REQUIRED: Docker packages failed to install. Review '$LOG_FILE' and reinstall Docker manually." + fi + if [[ "${DOCKER_SANITY_WARN:-false}" == true ]]; then + print_warning "ACTION REQUIRED: Docker sanity check failed. Run 'docker run --rm hello-world' after reboot to verify." + fi + if [[ "${TAILSCALE_INSTALL_WARN:-false}" == true ]]; then + print_warning "ACTION REQUIRED: Tailscale installation failed. Re-run the official installer and configure Tailscale manually." + fi + if [[ "${NETBIRD_INSTALL_WARN:-false}" == true ]]; then + print_warning "ACTION REQUIRED: NetBird installation failed. Reinstall NetBird and run 'netbird up' manually." + fi if [[ -n "${TS_COMMAND:-}" ]]; then print_warning "ACTION REQUIRED: Tailscale connection failed. Run the following command to connect manually:" printf '%s\n' "${CYAN} $TS_COMMAND${NC}" From 6e14f7c704bb5f25b16fc49b9a6e27d81df52936 Mon Sep 17 00:00:00 2001 From: buildplan Date: Mon, 9 Mar 2026 22:05:32 +0000 Subject: [PATCH 2/3] checksum v0.80.4 --- du_setup.sh.sha256 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/du_setup.sh.sha256 b/du_setup.sh.sha256 index 08ab759..856ae68 100644 --- a/du_setup.sh.sha256 +++ b/du_setup.sh.sha256 @@ -1 +1 @@ -f5beab8c45ec821aba4b109ca9e3bebd40dcbcc774436be9011c58e56d014ed4 du_setup.sh +f32dafe3170045b35cf3b20fe00b6689e192f2bfaa1b6879277b42ca40854bd5 du_setup.sh From b15fdadeca1a6b5b1417592d8d7f7358a47a33b9 Mon Sep 17 00:00:00 2001 From: buildplan Date: Mon, 9 Mar 2026 22:06:55 +0000 Subject: [PATCH 3/3] version bump and update checksum --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index cd9c520..f3d4020 100644 --- a/README.md +++ b/README.md @@ -7,9 +7,9 @@ ----- -**Version:** v0.80.3 +**Version:** v0.80.4 -**Last Updated:** 2026-03-03 +**Last Updated:** 2026-03-09 **Compatible With:** @@ -88,12 +88,12 @@ sha256sum du_setup.sh Compare the output hash to the one below. They must match exactly. -`f5beab8c45ec821aba4b109ca9e3bebd40dcbcc774436be9011c58e56d014ed4` +`f32dafe3170045b35cf3b20fe00b6689e192f2bfaa1b6879277b42ca40854bd5` Or echo the hash to check, it should output: `du_setup.sh: OK` ```bash -echo f5beab8c45ec821aba4b109ca9e3bebd40dcbcc774436be9011c58e56d014ed4 du_setup.sh | sha256sum --check +echo f32dafe3170045b35cf3b20fe00b6689e192f2bfaa1b6879277b42ca40854bd5 du_setup.sh | sha256sum --check ``` ### 3. Run the Script