#!/bin/bash checkRequirements() { isHeader "Checking Requirements" isNotice "Requirements are about to be installed." isNotice "Edit the features config if you want to disable anything." echo "" checkRootRequirement; checkCommandRequirement; checkInstallTypeRequirement; checkConfigRequirement; checkPasswordsRequirement; checkDatabaseRequirement; checkDockerRequirement; checkDockerComposeRequirement; checkDockerRootlessRequirement; checkDockerNetworkRequirement; checkUFWRequirement; checkUFWDRequirement; checkSSLCertsRequirement; checkSwapfileRequirement; checkCrontabRequirement; checkWebUISystemdRequirement; checkSuggestInstallsRequirement; checkLibrePortalWebUIImageRequirement; checkLibrePortalWebUIAppRequirement; checkTraefikRequirement; checkDockerSwitcherRequirement; # `startPreInstall` already runs `startScan` at the end of its flow, so # only call it again on the no-preinstall path. Otherwise every # `libreportal run` that touches preinstall fires `webuiLibrePortalUpdate` # twice (the lock file is removed at the end of each invocation, so the # second call doesn't short-circuit — it does the full regen again). if [[ "$preinstallneeded" -ne 0 ]]; then startPreInstall; else startScan; fi # After load here if [[ "$initial_command2" == "install" ]]; then # Clear the install spam so the credentials are the first thing the # user sees. The full transcript is preserved in $install_log_path. # Stdout is teed to a log file (start.sh `exec > >(tee …)`), so we # write the clear sequence straight to /dev/tty instead of relying # on `[ -t 1 ]`, which is false under that redirect. if [ -e /dev/tty ] && [ -t 0 ]; then clear >/dev/tty 2>/dev/null || printf '\033c' >/dev/tty 2>/dev/null fi webuiDisplayLogins; fi if [[ "$initial_command2" == "terminal" ]]; then resetToMenu; fi }