LibrePortal/scripts/checks/check_requirements.sh
librelad 875a60f90f LibrePortal v0.1.0 — initial release
A free, open, self-hosted app platform (GNU AGPLv3): one-click app deploys,
Traefik reverse proxy with automatic SSL, rootless Docker support, gluetun
VPN routing, and a web dashboard to manage it all.

Free & open forever to self-host; optional paid hosted services fund it.
See PROMISE.md.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

Signed-off-by: librelad <librelad@digitalangels.vip>
2026-05-21 20:37:54 +01:00

65 lines
2.0 KiB
Bash
Executable File

#!/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;
checkWireguardRequirement;
checkInstallTypeRequirement;
checkConfigRequirement;
checkPasswordsRequirement;
checkDatabaseRequirement;
checkSSHKeysRequirement;
checkDockerRequirement;
checkDockerComposeRequirement;
checkDockerRootlessRequirement;
checkDockerNetworkRequirement;
checkUFWRequirement;
checkUFWDRequirement;
checkManagerRequirement;
checkSSLCertsRequirement;
checkSwapfileRequirement;
checkCrontabRequirement;
checkWebUISystemdRequirement;
checkSSHRemoteRequirement;
checkSuggestInstallsRequirement;
checkLibrePortalWebUIImageRequirement;
checkLibrePortalWebUIAppRequirement;
checkSSHDownloadRequirement;
checkSSHPasswordRequirement;
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
}