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:
+44
-12
@@ -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..."
|
||||||
|
|||||||
Reference in New Issue
Block a user