Fix duplicate prompts after whiptail menu selection

Applied WHIPTAIL_USED flag check to all 25 service prompts that appear
after the whiptail menu to prevent services from being prompted
individually when they weren't selected in the checkbox menu.

This fixes the issue where services like AudioBookshelf were being
prompted even when not selected in whiptail.

Services fixed:
- AudioBookshelf, Emby, ARM, FileBrowser, Magic Mirror
- ActualBudget, Keycloak, Caddy, fail2ban
- Lyrion Music Server, Mealie, Minecraft, Jellyfin, Frigate
- ddclient, ntfy, Uptime Kuma, wg-easy
- Traccar, Portainer, MeshCentral Server
- FindMyDevice, Frigate-Notify, Watchtower

Pattern applied:
  if [ "$WHIPTAIL_USED" != true ] && [ -z "$INSTALL_SERVICE" ]; then
      # Show prompt
  fi

This ensures prompts only appear when whiptail was not used OR
the service variable is not yet set.
This commit is contained in:
Claude
2026-01-12 14:08:41 +00:00
parent 9bde91dfb9
commit 974b07f51e
+44 -12
View File
@@ -2278,10 +2278,16 @@ else
echo "Selected services:" echo "Selected services:"
echo "$SELECTED_SERVICES" | tr '"' '\n' | grep -v '^$' | sed 's/^/ - /' echo "$SELECTED_SERVICES" | tr '"' '\n' | grep -v '^$' | sed 's/^/ - /'
echo "" echo ""
# Mark that whiptail was used - skip all individual prompts
WHIPTAIL_USED=true
else
# Whiptail not available - will use individual prompts
WHIPTAIL_USED=false
fi fi
# ---- IMMICH ---- # ---- IMMICH ----
if [ -z "$INSTALL_IMMICH" ]; then if [ "$WHIPTAIL_USED" != true ] && [ -z "$INSTALL_IMMICH" ]; then
echo "" echo ""
echo "┌─────────────────────────────────────────────────────────────────┐" echo "┌─────────────────────────────────────────────────────────────────┐"
echo "│ IMMICH - Self-hosted photo & video backup │" echo "│ IMMICH - Self-hosted photo & video backup │"
@@ -2491,6 +2497,7 @@ IMMICH_ENV
fi fi
# ---- AUDIOBOOKSHELF ---- # ---- AUDIOBOOKSHELF ----
if [ "$WHIPTAIL_USED" != true ] && [ -z "$INSTALL_AUDIOBOOKSHELF" ]; then
echo "" echo ""
echo "┌─────────────────────────────────────────────────────────────────┐" echo "┌─────────────────────────────────────────────────────────────────┐"
echo "│ AUDIOBOOKSHELF - Audiobook & podcast server │" echo "│ AUDIOBOOKSHELF - Audiobook & podcast server │"
@@ -2498,6 +2505,7 @@ IMMICH_ENV
echo "│ Port: 13378 │" echo "│ Port: 13378 │"
echo "└─────────────────────────────────────────────────────────────────┘" echo "└─────────────────────────────────────────────────────────────────┘"
prompt_yn "Install Audiobookshelf? (y/n):" "n" INSTALL_AUDIOBOOKSHELF prompt_yn "Install Audiobookshelf? (y/n):" "n" INSTALL_AUDIOBOOKSHELF
fi
if [ "$INSTALL_AUDIOBOOKSHELF" = "y" ] || [ "$INSTALL_AUDIOBOOKSHELF" = "Y" ]; then if [ "$INSTALL_AUDIOBOOKSHELF" = "y" ] || [ "$INSTALL_AUDIOBOOKSHELF" = "Y" ]; then
echo "Installing Audiobookshelf..." echo "Installing Audiobookshelf..."
@@ -2553,13 +2561,13 @@ ABS_ENV
fi fi
# ---- EMBY ---- # ---- EMBY ----
if [ "$WHIPTAIL_USED" != true ] && [ -z "$INSTALL_EMBY" ]; then
echo "" echo ""
echo "┌─────────────────────────────────────────────────────────────────┐" echo "┌─────────────────────────────────────────────────────────────────┐"
echo "│ EMBY - Media server for movies, TV, music │" echo "│ EMBY - Media server for movies, TV, music │"
echo "│ Stream your media library to any device. │" echo "│ Stream your media library to any device. │"
echo "│ Port: 8096 (web), 8920 (https) │" echo "│ Port: 8096 (web), 8920 (https) │"
echo "└─────────────────────────────────────────────────────────────────┘" echo "└─────────────────────────────────────────────────────────────────┘"
if [ -z "$INSTALL_EMBY" ]; then
prompt_yn "Install Emby? (y/n):" "n" INSTALL_EMBY prompt_yn "Install Emby? (y/n):" "n" INSTALL_EMBY
fi fi
@@ -2620,13 +2628,13 @@ EMBY_ENV
fi fi
# ---- A.R.M. (Automatic Ripping Machine) ---- # ---- A.R.M. (Automatic Ripping Machine) ----
if [ "$WHIPTAIL_USED" != true ] && [ -z "$INSTALL_ARM" ]; then
echo "" echo ""
echo "┌─────────────────────────────────────────────────────────────────┐" echo "┌─────────────────────────────────────────────────────────────────┐"
echo "│ A.R.M. - Automatic Ripping Machine │" echo "│ A.R.M. - Automatic Ripping Machine │"
echo "│ Automatically rip DVDs, Blu-rays, and CDs. │" echo "│ Automatically rip DVDs, Blu-rays, and CDs. │"
echo "│ Port: 8080 │" echo "│ Port: 8080 │"
echo "└─────────────────────────────────────────────────────────────────┘" echo "└─────────────────────────────────────────────────────────────────┘"
if [ -z "$INSTALL_ARM" ]; then
prompt_yn "Install A.R.M.? (y/n):" "n" INSTALL_ARM prompt_yn "Install A.R.M.? (y/n):" "n" INSTALL_ARM
fi fi
@@ -2704,13 +2712,13 @@ ARM_ENV
fi fi
# ---- FILEBROWSER ---- # ---- FILEBROWSER ----
if [ "$WHIPTAIL_USED" != true ] && [ -z "$INSTALL_FILEBROWSER" ]; then
echo "" echo ""
echo "┌─────────────────────────────────────────────────────────────────┐" echo "┌─────────────────────────────────────────────────────────────────┐"
echo "│ FILEBROWSER - Web-based file manager │" echo "│ FILEBROWSER - Web-based file manager │"
echo "│ Browse, upload, download files via web interface. │" echo "│ Browse, upload, download files via web interface. │"
echo "│ Port: 8085 │" echo "│ Port: 8085 │"
echo "└─────────────────────────────────────────────────────────────────┘" echo "└─────────────────────────────────────────────────────────────────┘"
if [ -z "$INSTALL_FILEBROWSER" ]; then
prompt_yn "Install Filebrowser? (y/n):" "n" INSTALL_FILEBROWSER prompt_yn "Install Filebrowser? (y/n):" "n" INSTALL_FILEBROWSER
fi fi
@@ -2781,13 +2789,13 @@ FB_SETTINGS
fi fi
# ---- MAGIC MIRROR ---- # ---- MAGIC MIRROR ----
if [ "$WHIPTAIL_USED" != true ] && [ -z "$INSTALL_MAGICMIRROR" ]; then
echo "" echo ""
echo "┌─────────────────────────────────────────────────────────────────┐" echo "┌─────────────────────────────────────────────────────────────────┐"
echo "│ MAGIC MIRROR - Smart mirror / dashboard display │" echo "│ MAGIC MIRROR - Smart mirror / dashboard display │"
echo "│ Modular smart mirror platform. Run up to 3 instances. │" echo "│ Modular smart mirror platform. Run up to 3 instances. │"
echo "│ Ports: 8081, 8082, 8083 │" echo "│ Ports: 8081, 8082, 8083 │"
echo "└─────────────────────────────────────────────────────────────────┘" echo "└─────────────────────────────────────────────────────────────────┘"
if [ -z "$INSTALL_MAGICMIRROR" ]; then
prompt_yn "Install Magic Mirror? (y/n):" "n" INSTALL_MAGICMIRROR prompt_yn "Install Magic Mirror? (y/n):" "n" INSTALL_MAGICMIRROR
fi fi
@@ -3014,13 +3022,13 @@ MM_CONFIG
fi fi
# ---- ACTUALBUDGET ---- # ---- ACTUALBUDGET ----
if [ "$WHIPTAIL_USED" != true ] && [ -z "$INSTALL_ACTUALBUDGET" ]; then
echo "" echo ""
echo "┌─────────────────────────────────────────────────────────────────┐" echo "┌─────────────────────────────────────────────────────────────────┐"
echo "│ ACTUALBUDGET - Open-source Personal Finance Management │" echo "│ ACTUALBUDGET - Open-source Personal Finance Management │"
echo "│ Budget tracking with bank account synchronization via SimpleFIN│" echo "│ Budget tracking with bank account synchronization via SimpleFIN│"
echo "│ Port: 5006 │" echo "│ Port: 5006 │"
echo "└─────────────────────────────────────────────────────────────────┘" echo "└─────────────────────────────────────────────────────────────────┘"
if [ -z "$INSTALL_ACTUALBUDGET" ]; then
prompt_yn "Install ActualBudget? (y/n):" "n" INSTALL_ACTUALBUDGET prompt_yn "Install ActualBudget? (y/n):" "n" INSTALL_ACTUALBUDGET
fi fi
@@ -3069,13 +3077,13 @@ AB_COMPOSE
fi fi
# ---- KEYCLOAK ---- # ---- KEYCLOAK ----
if [ "$WHIPTAIL_USED" != true ] && [ -z "$INSTALL_KEYCLOAK" ]; then
echo "" echo ""
echo "┌─────────────────────────────────────────────────────────────────┐" echo "┌─────────────────────────────────────────────────────────────────┐"
echo "│ KEYCLOAK - Identity and Access Management (IAM) │" echo "│ KEYCLOAK - Identity and Access Management (IAM) │"
echo "│ SSO, OAuth2, SAML, User Management, MFA │" echo "│ SSO, OAuth2, SAML, User Management, MFA │"
echo "│ Port: 8180 (HTTP) - Use reverse proxy for HTTPS │" echo "│ Port: 8180 (HTTP) - Use reverse proxy for HTTPS │"
echo "└─────────────────────────────────────────────────────────────────┘" echo "└─────────────────────────────────────────────────────────────────┘"
if [ -z "$INSTALL_KEYCLOAK" ]; then
prompt_yn "Install Keycloak? (y/n):" "n" INSTALL_KEYCLOAK prompt_yn "Install Keycloak? (y/n):" "n" INSTALL_KEYCLOAK
fi fi
@@ -3587,13 +3595,13 @@ EOF
fi fi
# ---- CADDY WEB SERVER ---- # ---- CADDY WEB SERVER ----
if [ "$WHIPTAIL_USED" != true ] && [ -z "$INSTALL_CADDY" ]; then
echo "" echo ""
echo "┌─────────────────────────────────────────────────────────────────┐" echo "┌─────────────────────────────────────────────────────────────────┐"
echo "│ CADDY - Modern Web Server & Reverse Proxy │" echo "│ CADDY - Modern Web Server & Reverse Proxy │"
echo "│ Automatic HTTPS, reverse proxy for all your services │" echo "│ Automatic HTTPS, reverse proxy for all your services │"
echo "│ Port: 80 (HTTP), 443 (HTTPS) │" echo "│ Port: 80 (HTTP), 443 (HTTPS) │"
echo "└─────────────────────────────────────────────────────────────────┘" echo "└─────────────────────────────────────────────────────────────────┘"
if [ -z "$INSTALL_CADDY" ]; then
prompt_yn "Install Caddy reverse proxy? (y/n):" "n" INSTALL_CADDY prompt_yn "Install Caddy reverse proxy? (y/n):" "n" INSTALL_CADDY
fi fi
@@ -3727,13 +3735,13 @@ CADDYFILE
fi fi
# ---- FAIL2BAN ---- # ---- FAIL2BAN ----
if [ "$WHIPTAIL_USED" != true ] && [ -z "$INSTALL_FAIL2BAN" ]; then
echo "" echo ""
echo "┌─────────────────────────────────────────────────────────────────┐" echo "┌─────────────────────────────────────────────────────────────────┐"
echo "│ FAIL2BAN - Intrusion Prevention System │" echo "│ FAIL2BAN - Intrusion Prevention System │"
echo "│ Automatically ban IPs with failed auth attempts │" echo "│ Automatically ban IPs with failed auth attempts │"
echo "│ Protects SSH, Caddy, and other services │" echo "│ Protects SSH, Caddy, and other services │"
echo "└─────────────────────────────────────────────────────────────────┘" echo "└─────────────────────────────────────────────────────────────────┘"
if [ -z "$INSTALL_FAIL2BAN" ]; then
prompt_yn "Install and configure fail2ban? (y/n):" "n" INSTALL_FAIL2BAN prompt_yn "Install and configure fail2ban? (y/n):" "n" INSTALL_FAIL2BAN
fi fi
@@ -3859,13 +3867,13 @@ backend = auto"
fi fi
# ---- LYRION MUSIC SERVER ---- # ---- LYRION MUSIC SERVER ----
if [ "$WHIPTAIL_USED" != true ] && [ -z "$INSTALL_LMS" ]; then
echo "" echo ""
echo "┌─────────────────────────────────────────────────────────────────┐" echo "┌─────────────────────────────────────────────────────────────────┐"
echo "│ LYRION MUSIC SERVER (LMS) - Music streaming server │" echo "│ LYRION MUSIC SERVER (LMS) - Music streaming server │"
echo "│ Stream music to Squeezebox devices, apps, and Chromecast. │" echo "│ Stream music to Squeezebox devices, apps, and Chromecast. │"
echo "│ Port: 9000 (web), 9090 (CLI), 3483 (players) │" echo "│ Port: 9000 (web), 9090 (CLI), 3483 (players) │"
echo "└─────────────────────────────────────────────────────────────────┘" echo "└─────────────────────────────────────────────────────────────────┘"
if [ -z "$INSTALL_LMS" ]; then
prompt_yn "Install Lyrion Music Server? (y/n):" "n" INSTALL_LMS prompt_yn "Install Lyrion Music Server? (y/n):" "n" INSTALL_LMS
fi fi
@@ -3925,13 +3933,13 @@ LMS_ENV
fi fi
# ---- MEALIE ---- # ---- MEALIE ----
if [ "$WHIPTAIL_USED" != true ] && [ -z "$INSTALL_MEALIE" ]; then
echo "" echo ""
echo "┌─────────────────────────────────────────────────────────────────┐" echo "┌─────────────────────────────────────────────────────────────────┐"
echo "│ MEALIE - Recipe manager & meal planner │" echo "│ MEALIE - Recipe manager & meal planner │"
echo "│ Save recipes, plan meals, generate shopping lists. │" echo "│ Save recipes, plan meals, generate shopping lists. │"
echo "│ Port: 9925 │" echo "│ Port: 9925 │"
echo "└─────────────────────────────────────────────────────────────────┘" echo "└─────────────────────────────────────────────────────────────────┘"
if [ -z "$INSTALL_MEALIE" ]; then
prompt_yn "Install Mealie? (y/n):" "n" INSTALL_MEALIE prompt_yn "Install Mealie? (y/n):" "n" INSTALL_MEALIE
fi fi
@@ -3986,13 +3994,13 @@ MEALIE_COMPOSE
fi fi
# ---- MINECRAFT SERVER ---- # ---- MINECRAFT SERVER ----
if [ "$WHIPTAIL_USED" != true ] && [ -z "$INSTALL_MINECRAFT" ]; then
echo "" echo ""
echo "┌─────────────────────────────────────────────────────────────────┐" echo "┌─────────────────────────────────────────────────────────────────┐"
echo "│ MINECRAFT SERVER - Game server with RAM limit │" echo "│ MINECRAFT SERVER - Game server with RAM limit │"
echo "│ Fabric server with configurable memory allocation. │" echo "│ Fabric server with configurable memory allocation. │"
echo "│ Port: 25565 │" echo "│ Port: 25565 │"
echo "└─────────────────────────────────────────────────────────────────┘" echo "└─────────────────────────────────────────────────────────────────┘"
if [ -z "$INSTALL_MINECRAFT" ]; then
prompt_yn "Install Minecraft Server? (y/n):" "n" INSTALL_MINECRAFT prompt_yn "Install Minecraft Server? (y/n):" "n" INSTALL_MINECRAFT
fi fi
@@ -4144,6 +4152,7 @@ MC_ENV
fi fi
# ---- JELLYFIN (Alternative to Emby) ---- # ---- JELLYFIN (Alternative to Emby) ----
if [ "$WHIPTAIL_USED" != true ] && [ -z "$INSTALL_JELLYFIN" ]; then
echo "" echo ""
echo "┌─────────────────────────────────────────────────────────────────┐" echo "┌─────────────────────────────────────────────────────────────────┐"
echo "│ JELLYFIN - Free media server (alternative to Emby) │" echo "│ JELLYFIN - Free media server (alternative to Emby) │"
@@ -4151,6 +4160,7 @@ MC_ENV
echo "│ Port: 8096 │" echo "│ Port: 8096 │"
echo "└─────────────────────────────────────────────────────────────────┘" echo "└─────────────────────────────────────────────────────────────────┘"
prompt_yn "Install Jellyfin? (y/n):" "n" INSTALL_JELLYFIN prompt_yn "Install Jellyfin? (y/n):" "n" INSTALL_JELLYFIN
fi
if [ "$INSTALL_JELLYFIN" = "y" ] || [ "$INSTALL_JELLYFIN" = "Y" ]; then if [ "$INSTALL_JELLYFIN" = "y" ] || [ "$INSTALL_JELLYFIN" = "Y" ]; then
echo "Installing Jellyfin..." echo "Installing Jellyfin..."
@@ -4214,6 +4224,7 @@ JELLYFIN_ENV
fi fi
# ---- FRIGATE NVR ---- # ---- FRIGATE NVR ----
if [ "$WHIPTAIL_USED" != true ] && [ -z "$INSTALL_FRIGATE" ]; then
echo "" echo ""
echo "┌─────────────────────────────────────────────────────────────────┐" echo "┌─────────────────────────────────────────────────────────────────┐"
echo "│ FRIGATE - AI-powered NVR for security cameras │" echo "│ FRIGATE - AI-powered NVR for security cameras │"
@@ -4221,6 +4232,7 @@ JELLYFIN_ENV
echo "│ Port: 5000 (web), 8554 (RTSP), 8555 (WebRTC) │" echo "│ Port: 5000 (web), 8554 (RTSP), 8555 (WebRTC) │"
echo "└─────────────────────────────────────────────────────────────────┘" echo "└─────────────────────────────────────────────────────────────────┘"
prompt_yn "Install Frigate? (y/n):" "n" INSTALL_FRIGATE prompt_yn "Install Frigate? (y/n):" "n" INSTALL_FRIGATE
fi
if [ "$INSTALL_FRIGATE" = "y" ] || [ "$INSTALL_FRIGATE" = "Y" ]; then if [ "$INSTALL_FRIGATE" = "y" ] || [ "$INSTALL_FRIGATE" = "Y" ]; then
echo "Installing Frigate..." echo "Installing Frigate..."
@@ -4536,6 +4548,7 @@ CADDY_FILE
fi fi
# ---- DDCLIENT DYNAMIC DNS ---- # ---- DDCLIENT DYNAMIC DNS ----
if [ "$WHIPTAIL_USED" != true ] && [ -z "$INSTALL_DDCLIENT" ]; then
echo "" echo ""
echo "┌─────────────────────────────────────────────────────────────────┐" echo "┌─────────────────────────────────────────────────────────────────┐"
echo "│ DDCLIENT - Dynamic DNS updater │" echo "│ DDCLIENT - Dynamic DNS updater │"
@@ -4543,6 +4556,7 @@ CADDY_FILE
echo "│ Supports: Cloudflare, DuckDNS, No-IP, and more. │" echo "│ Supports: Cloudflare, DuckDNS, No-IP, and more. │"
echo "└─────────────────────────────────────────────────────────────────┘" echo "└─────────────────────────────────────────────────────────────────┘"
prompt_yn "Install ddclient? (y/n):" "n" INSTALL_DDCLIENT prompt_yn "Install ddclient? (y/n):" "n" INSTALL_DDCLIENT
fi
if [ "$INSTALL_DDCLIENT" = "y" ] || [ "$INSTALL_DDCLIENT" = "Y" ]; then if [ "$INSTALL_DDCLIENT" = "y" ] || [ "$INSTALL_DDCLIENT" = "Y" ]; then
echo "Installing ddclient..." echo "Installing ddclient..."
@@ -4622,6 +4636,7 @@ DDCLIENT_CONF
fi fi
# ---- NTFY NOTIFICATIONS ---- # ---- NTFY NOTIFICATIONS ----
if [ "$WHIPTAIL_USED" != true ] && [ -z "$INSTALL_NTFY" ]; then
echo "" echo ""
echo "┌─────────────────────────────────────────────────────────────────┐" echo "┌─────────────────────────────────────────────────────────────────┐"
echo "│ NTFY - Push notifications server │" echo "│ NTFY - Push notifications server │"
@@ -4629,6 +4644,7 @@ DDCLIENT_CONF
echo "│ Port: 8090 │" echo "│ Port: 8090 │"
echo "└─────────────────────────────────────────────────────────────────┘" echo "└─────────────────────────────────────────────────────────────────┘"
prompt_yn "Install ntfy? (y/n):" "n" INSTALL_NTFY prompt_yn "Install ntfy? (y/n):" "n" INSTALL_NTFY
fi
if [ "$INSTALL_NTFY" = "y" ] || [ "$INSTALL_NTFY" = "Y" ]; then if [ "$INSTALL_NTFY" = "y" ] || [ "$INSTALL_NTFY" = "Y" ]; then
echo "Installing ntfy..." echo "Installing ntfy..."
@@ -4683,6 +4699,7 @@ NTFY_ENV
fi fi
# ---- UPTIME KUMA ---- # ---- UPTIME KUMA ----
if [ "$WHIPTAIL_USED" != true ] && [ -z "$INSTALL_UPTIMEKUMA" ]; then
echo "" echo ""
echo "┌─────────────────────────────────────────────────────────────────┐" echo "┌─────────────────────────────────────────────────────────────────┐"
echo "│ UPTIME KUMA - Service monitoring dashboard │" echo "│ UPTIME KUMA - Service monitoring dashboard │"
@@ -4690,6 +4707,7 @@ NTFY_ENV
echo "│ Port: 3001 │" echo "│ Port: 3001 │"
echo "└─────────────────────────────────────────────────────────────────┘" echo "└─────────────────────────────────────────────────────────────────┘"
prompt_yn "Install Uptime Kuma? (y/n):" "n" INSTALL_UPTIMEKUMA prompt_yn "Install Uptime Kuma? (y/n):" "n" INSTALL_UPTIMEKUMA
fi
if [ "$INSTALL_UPTIMEKUMA" = "y" ] || [ "$INSTALL_UPTIMEKUMA" = "Y" ]; then if [ "$INSTALL_UPTIMEKUMA" = "y" ] || [ "$INSTALL_UPTIMEKUMA" = "Y" ]; then
echo "Installing Uptime Kuma..." echo "Installing Uptime Kuma..."
@@ -4734,6 +4752,7 @@ UPTIME_COMPOSE
fi fi
# ---- WG-EASY (WireGuard with Web UI) ---- # ---- WG-EASY (WireGuard with Web UI) ----
if [ "$WHIPTAIL_USED" != true ] && [ -z "$INSTALL_WGEASY" ]; then
echo "" echo ""
echo "┌─────────────────────────────────────────────────────────────────┐" echo "┌─────────────────────────────────────────────────────────────────┐"
echo "│ WG-EASY - WireGuard VPN with web management │" echo "│ WG-EASY - WireGuard VPN with web management │"
@@ -4741,6 +4760,7 @@ UPTIME_COMPOSE
echo "│ Port: 51821 (web), 51820 (VPN) │" echo "│ Port: 51821 (web), 51820 (VPN) │"
echo "└─────────────────────────────────────────────────────────────────┘" echo "└─────────────────────────────────────────────────────────────────┘"
prompt_yn "Install wg-easy? (y/n):" "n" INSTALL_WGEASY prompt_yn "Install wg-easy? (y/n):" "n" INSTALL_WGEASY
fi
if [ "$INSTALL_WGEASY" = "y" ] || [ "$INSTALL_WGEASY" = "Y" ]; then if [ "$INSTALL_WGEASY" = "y" ] || [ "$INSTALL_WGEASY" = "Y" ]; then
echo "Installing wg-easy..." echo "Installing wg-easy..."
@@ -4808,6 +4828,7 @@ WGEASY_ENV
fi fi
# ---- TRACCAR GPS TRACKING ---- # ---- TRACCAR GPS TRACKING ----
if [ "$WHIPTAIL_USED" != true ] && [ -z "$INSTALL_TRACCAR" ]; then
echo "" echo ""
echo "┌─────────────────────────────────────────────────────────────────┐" echo "┌─────────────────────────────────────────────────────────────────┐"
echo "│ TRACCAR - GPS tracking server │" echo "│ TRACCAR - GPS tracking server │"
@@ -4815,6 +4836,7 @@ WGEASY_ENV
echo "│ Port: 8082 (web), 5055 (OsmAnd), 5000+ (devices) │" echo "│ Port: 8082 (web), 5055 (OsmAnd), 5000+ (devices) │"
echo "└─────────────────────────────────────────────────────────────────┘" echo "└─────────────────────────────────────────────────────────────────┘"
prompt_yn "Install Traccar? (y/n):" "n" INSTALL_TRACCAR prompt_yn "Install Traccar? (y/n):" "n" INSTALL_TRACCAR
fi
if [ "$INSTALL_TRACCAR" = "y" ] || [ "$INSTALL_TRACCAR" = "Y" ]; then if [ "$INSTALL_TRACCAR" = "y" ] || [ "$INSTALL_TRACCAR" = "Y" ]; then
echo "Installing Traccar..." echo "Installing Traccar..."
@@ -4879,6 +4901,7 @@ TRACCAR_XML
fi fi
# ---- PORTAINER ---- # ---- PORTAINER ----
if [ "$WHIPTAIL_USED" != true ] && [ -z "$INSTALL_PORTAINER" ]; then
echo "" echo ""
echo "┌─────────────────────────────────────────────────────────────────┐" echo "┌─────────────────────────────────────────────────────────────────┐"
echo "│ PORTAINER - Docker management web UI │" echo "│ PORTAINER - Docker management web UI │"
@@ -4886,6 +4909,7 @@ TRACCAR_XML
echo "│ Port: 9443 (https), 9000 (http) │" echo "│ Port: 9443 (https), 9000 (http) │"
echo "└─────────────────────────────────────────────────────────────────┘" echo "└─────────────────────────────────────────────────────────────────┘"
prompt_yn "Install Portainer? (y/n):" "n" INSTALL_PORTAINER prompt_yn "Install Portainer? (y/n):" "n" INSTALL_PORTAINER
fi
if [ "$INSTALL_PORTAINER" = "y" ] || [ "$INSTALL_PORTAINER" = "Y" ]; then if [ "$INSTALL_PORTAINER" = "y" ] || [ "$INSTALL_PORTAINER" = "Y" ]; then
echo "Installing Portainer..." echo "Installing Portainer..."
@@ -4932,6 +4956,7 @@ PORTAINER_COMPOSE
fi fi
# ---- MESHCENTRAL SERVER ---- # ---- MESHCENTRAL SERVER ----
if [ "$WHIPTAIL_USED" != true ] && [ -z "$INSTALL_MESHCENTRAL_SERVER" ]; then
echo "" echo ""
echo "┌─────────────────────────────────────────────────────────────────┐" echo "┌─────────────────────────────────────────────────────────────────┐"
echo "│ MESHCENTRAL SERVER - Self-hosted remote management │" echo "│ MESHCENTRAL SERVER - Self-hosted remote management │"
@@ -4939,6 +4964,7 @@ PORTAINER_COMPOSE
echo "│ Port: 4430 (https), 4433 (agent) │" echo "│ Port: 4430 (https), 4433 (agent) │"
echo "└─────────────────────────────────────────────────────────────────┘" echo "└─────────────────────────────────────────────────────────────────┘"
prompt_yn "Install MeshCentral Server? (y/n):" "n" INSTALL_MESHCENTRAL_SERVER prompt_yn "Install MeshCentral Server? (y/n):" "n" INSTALL_MESHCENTRAL_SERVER
fi
if [ "$INSTALL_MESHCENTRAL_SERVER" = "y" ] || [ "$INSTALL_MESHCENTRAL_SERVER" = "Y" ]; then if [ "$INSTALL_MESHCENTRAL_SERVER" = "y" ] || [ "$INSTALL_MESHCENTRAL_SERVER" = "Y" ]; then
echo "Installing MeshCentral Server..." echo "Installing MeshCentral Server..."
@@ -5010,6 +5036,7 @@ MC_ENV
fi fi
# ---- FINDMYDEVICE (FMD) ---- # ---- FINDMYDEVICE (FMD) ----
if [ "$WHIPTAIL_USED" != true ] && [ -z "$INSTALL_FMD" ]; then
echo "" echo ""
echo "┌─────────────────────────────────────────────────────────────────┐" echo "┌─────────────────────────────────────────────────────────────────┐"
echo "│ FINDMYDEVICE - Self-hosted device tracking │" echo "│ FINDMYDEVICE - Self-hosted device tracking │"
@@ -5017,6 +5044,7 @@ MC_ENV
echo "│ Port: 8084 │" echo "│ Port: 8084 │"
echo "└─────────────────────────────────────────────────────────────────┘" echo "└─────────────────────────────────────────────────────────────────┘"
prompt_yn "Install FindMyDevice server? (y/n):" "n" INSTALL_FMD prompt_yn "Install FindMyDevice server? (y/n):" "n" INSTALL_FMD
fi
if [ "$INSTALL_FMD" = "y" ] || [ "$INSTALL_FMD" = "Y" ]; then if [ "$INSTALL_FMD" = "y" ] || [ "$INSTALL_FMD" = "Y" ]; then
echo "Installing FindMyDevice..." echo "Installing FindMyDevice..."
@@ -5073,6 +5101,7 @@ FMD_ENV
fi fi
# ---- FRIGATE-NOTIFY ---- # ---- FRIGATE-NOTIFY ----
if [ "$WHIPTAIL_USED" != true ] && [ -z "$INSTALL_FRIGATE_NOTIFY" ]; then
echo "" echo ""
echo "┌─────────────────────────────────────────────────────────────────┐" echo "┌─────────────────────────────────────────────────────────────────┐"
echo "│ FRIGATE-NOTIFY - Push notifications for Frigate events │" echo "│ FRIGATE-NOTIFY - Push notifications for Frigate events │"
@@ -5080,6 +5109,7 @@ FMD_ENV
echo "│ Sends to: ntfy, Pushover, Discord, Gotify, and more. │" echo "│ Sends to: ntfy, Pushover, Discord, Gotify, and more. │"
echo "└─────────────────────────────────────────────────────────────────┘" echo "└─────────────────────────────────────────────────────────────────┘"
prompt_yn "Install Frigate-Notify? (y/n):" "n" INSTALL_FRIGATE_NOTIFY prompt_yn "Install Frigate-Notify? (y/n):" "n" INSTALL_FRIGATE_NOTIFY
fi
if [ "$INSTALL_FRIGATE_NOTIFY" = "y" ] || [ "$INSTALL_FRIGATE_NOTIFY" = "Y" ]; then if [ "$INSTALL_FRIGATE_NOTIFY" = "y" ] || [ "$INSTALL_FRIGATE_NOTIFY" = "Y" ]; then
echo "Installing Frigate-Notify..." echo "Installing Frigate-Notify..."
@@ -5176,6 +5206,7 @@ FN_CONFIG
fi fi
# ---- WATCHTOWER ---- # ---- WATCHTOWER ----
if [ "$WHIPTAIL_USED" != true ] && [ -z "$INSTALL_WATCHTOWER" ]; then
echo "" echo ""
echo "┌─────────────────────────────────────────────────────────────────┐" echo "┌─────────────────────────────────────────────────────────────────┐"
echo "│ WATCHTOWER - Container update monitoring │" echo "│ WATCHTOWER - Container update monitoring │"
@@ -5183,6 +5214,7 @@ FN_CONFIG
echo "│ Why notify-only? Apps like Immich have breaking DB migrations. │" echo "│ Why notify-only? Apps like Immich have breaking DB migrations. │"
echo "└─────────────────────────────────────────────────────────────────┘" echo "└─────────────────────────────────────────────────────────────────┘"
prompt_yn "Install Watchtower? (y/n):" "n" INSTALL_WATCHTOWER prompt_yn "Install Watchtower? (y/n):" "n" INSTALL_WATCHTOWER
fi
if [ "$INSTALL_WATCHTOWER" = "y" ] || [ "$INSTALL_WATCHTOWER" = "Y" ]; then if [ "$INSTALL_WATCHTOWER" = "y" ] || [ "$INSTALL_WATCHTOWER" = "Y" ]; then
echo "Installing Watchtower..." echo "Installing Watchtower..."