Skip to content

Commit 70ec401

Browse files
Add support for lite installation mode in the installation script
1 parent 6f65644 commit 70ec401

1 file changed

Lines changed: 36 additions & 8 deletions

File tree

scripts/dappnode_install.sh

Lines changed: 36 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ set -Eeuo pipefail
2020
: "${STATIC_IP:=}"
2121
: "${LOCAL_PROFILE_PATH:=}"
2222
: "${MINIMAL:=false}"
23+
: "${LITE:=false}"
2324
: "${PACKAGES:=}"
2425

2526
# Enable alias expansion in non-interactive bash scripts.
@@ -61,12 +62,13 @@ Options:
6162
--local-profile-path <path> Use a local .dappnode_profile instead of downloading (equivalent: LOCAL_PROFILE_PATH=...)
6263
--ipfs-endpoint <url> Override IPFS gateway endpoint (equivalent: IPFS_ENDPOINT=...)
6364
--profile-url <url> Override profile download URL (equivalent: PROFILE_URL=...)
64-
--minimal Force minimal package set: BIND VPN WIREGUARD DAPPMANAGER (equivalent: MINIMAL=true)
65+
--minimal Install only BIND DAPPMANAGER NOTIFICATIONS PREMIUM (equivalent: MINIMAL=true)
66+
--lite Install reduced package set: BIND VPN WIREGUARD DAPPMANAGER NOTIFICATIONS PREMIUM (equivalent: LITE=true)
6567
--packages <list> Override package selection (comma or space separated), e.g. BIND,IPFS,VPN
6668
-h, --help Show this help
6769
6870
Environment variables (also supported):
69-
UPDATE, STATIC_IP, LOCAL_PROFILE_PATH, IPFS_ENDPOINT, PROFILE_URL, MINIMAL, PACKAGES
71+
UPDATE, STATIC_IP, LOCAL_PROFILE_PATH, IPFS_ENDPOINT, PROFILE_URL, MINIMAL, LITE, PACKAGES
7072
EOF
7173
}
7274

@@ -101,6 +103,10 @@ parse_args() {
101103
MINIMAL=true
102104
shift
103105
;;
106+
--lite)
107+
LITE=true
108+
shift
109+
;;
104110
--packages)
105111
[[ $# -ge 2 ]] || die "--packages requires a package list argument"
106112
PACKAGES="$2"
@@ -125,6 +131,12 @@ parse_args() {
125131
done
126132
}
127133

134+
validate_install_mode() {
135+
if [[ "${MINIMAL}" == "true" && "${LITE}" == "true" ]]; then
136+
die "--minimal and --lite are mutually exclusive"
137+
fi
138+
}
139+
128140
require_cmd() {
129141
local cmd="$1"
130142
command -v "$cmd" >/dev/null 2>&1 || die "Missing required command: $cmd"
@@ -581,7 +593,7 @@ is_port_used() {
581593
# Determine packages to be installed
582594
determine_packages() {
583595
# Explicit package list override from flag/env always has top priority.
584-
# It supersedes MINIMAL and any OS/port-based package determination.
596+
# It supersedes MINIMAL/LITE and any OS/port-based package determination.
585597
if [[ -n "${PACKAGES//[[:space:],]/}" ]]; then
586598
local raw token normalized
587599
local custom_pkgs=()
@@ -627,10 +639,11 @@ determine_packages() {
627639
log "--packages/PACKAGES did not include DAPPMANAGER; appending it automatically"
628640
fi
629641

630-
if [[ "${MINIMAL}" == "true" ]]; then
631-
log "Custom packages provided; overriding --minimal/MINIMAL"
642+
if [[ "${MINIMAL}" == "true" || "${LITE}" == "true" ]]; then
643+
log "Custom packages provided; overriding --minimal/--lite and MINIMAL/LITE"
632644
fi
633645
MINIMAL=false
646+
LITE=false
634647
PKGS=("${custom_pkgs[@]}")
635648

636649
log "Packages override enabled via --packages/PACKAGES"
@@ -644,9 +657,9 @@ determine_packages() {
644657
return 0
645658
fi
646659

647-
# Global override: minimal install, regardless of OS.
660+
# Global override: new minimal install, regardless of OS.
648661
if [[ "${MINIMAL}" == "true" ]]; then
649-
PKGS=(BIND VPN WIREGUARD DAPPMANAGER NOTIFICATIONS PREMIUM)
662+
PKGS=(BIND DAPPMANAGER NOTIFICATIONS PREMIUM)
650663
log "Minimal mode enabled; overriding packages"
651664
log "Packages to be installed: ${PKGS[*]}"
652665
log "PKGS: ${PKGS[*]}"
@@ -658,6 +671,20 @@ determine_packages() {
658671
return 0
659672
fi
660673

674+
# Global override: lite install (former minimal behavior), regardless of OS.
675+
if [[ "${LITE}" == "true" ]]; then
676+
PKGS=(BIND VPN WIREGUARD DAPPMANAGER NOTIFICATIONS PREMIUM)
677+
log "Lite mode enabled; overriding packages"
678+
log "Packages to be installed: ${PKGS[*]}"
679+
log "PKGS: ${PKGS[*]}"
680+
for comp in "${PKGS[@]}"; do
681+
local ver_var
682+
ver_var="${comp}_VERSION"
683+
log "$ver_var = ${!ver_var-}"
684+
done
685+
return 0
686+
fi
687+
661688
# macOS: package selection depends on whether the Mac is suitable to run always-on.
662689
# - non-server mac: BIND VPN WIREGUARD DAPPMANAGER
663690
# - server mac: BIND IPFS VPN WIREGUARD DAPPMANAGER WIFI HTTPS
@@ -1064,6 +1091,7 @@ addUserToDockerGroup() {
10641091

10651092
main() {
10661093
parse_args "$@"
1094+
validate_install_mode
10671095

10681096
bootstrap_filesystem
10691097
check_prereqs
@@ -1078,7 +1106,7 @@ main() {
10781106

10791107
# --- Linux-only setup steps ---
10801108
if $IS_LINUX; then
1081-
if [[ "${MINIMAL}" != "true" ]]; then
1109+
if [[ "${MINIMAL}" != "true" && "${LITE}" != "true" ]]; then
10821110
echo "Creating swap memory..." 2>&1 | tee -a "$LOGFILE"
10831111
addSwap
10841112

0 commit comments

Comments
 (0)