Further improvements to deployment output and status checking
This commit is contained in:
@@ -716,7 +716,7 @@ prompt_for_variable() {
|
|||||||
# Build prompt text with current value if it exists
|
# Build prompt text with current value if it exists
|
||||||
if [ -n "$current_value" ]; then
|
if [ -n "$current_value" ]; then
|
||||||
if [ "$var" = "DEFAULT_PASSWORD" ]; then
|
if [ "$var" = "DEFAULT_PASSWORD" ]; then
|
||||||
prompt_text="🔒 ${var} ([HIDDEN]): "
|
prompt_text="║ 🔒 ${var} ([HIDDEN]): "
|
||||||
else
|
else
|
||||||
prompt_text="${var} (${current_value}): "
|
prompt_text="${var} (${current_value}): "
|
||||||
fi
|
fi
|
||||||
@@ -727,28 +727,28 @@ prompt_for_variable() {
|
|||||||
# Add icon prefix
|
# Add icon prefix
|
||||||
case "$var" in
|
case "$var" in
|
||||||
"SERVER_IP")
|
"SERVER_IP")
|
||||||
prompt_text="🌐 ${prompt_text}"
|
prompt_text="║ 🌐 ${prompt_text}"
|
||||||
;;
|
;;
|
||||||
"DOMAIN")
|
"DOMAIN")
|
||||||
prompt_text="🌍 ${prompt_text}"
|
prompt_text="║ 🌍 ${prompt_text}"
|
||||||
;;
|
;;
|
||||||
"DUCKDNS_SUBDOMAINS")
|
"DUCKDNS_SUBDOMAINS")
|
||||||
prompt_text="🦆 ${prompt_text}"
|
prompt_text="║ 🦆 ${prompt_text}"
|
||||||
;;
|
;;
|
||||||
"DUCKDNS_TOKEN")
|
"DUCKDNS_TOKEN")
|
||||||
prompt_text="🔑 ${prompt_text}"
|
prompt_text="║ 🔑 ${prompt_text}"
|
||||||
;;
|
;;
|
||||||
"DEFAULT_USER")
|
"DEFAULT_USER")
|
||||||
prompt_text="👤 ${prompt_text}"
|
prompt_text="║ 👤 ${prompt_text}"
|
||||||
;;
|
;;
|
||||||
"DEFAULT_PASSWORD")
|
"DEFAULT_PASSWORD")
|
||||||
# Lock icon already added above for passwords
|
# Lock icon already added above for passwords
|
||||||
;;
|
;;
|
||||||
"DEFAULT_EMAIL")
|
"DEFAULT_EMAIL")
|
||||||
prompt_text="📧 ${prompt_text}"
|
prompt_text="║ 📧 ${prompt_text}"
|
||||||
;;
|
;;
|
||||||
"SERVER_HOSTNAME")
|
"SERVER_HOSTNAME")
|
||||||
prompt_text="🏠 ${prompt_text}"
|
prompt_text="║ 🏠 ${prompt_text}"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
@@ -770,7 +770,7 @@ prompt_for_variable() {
|
|||||||
if [ -n "$current_value" ]; then
|
if [ -n "$current_value" ]; then
|
||||||
# Use existing value - overwrite prompt with status
|
# Use existing value - overwrite prompt with status
|
||||||
if [ "$var" != "DEFAULT_PASSWORD" ]; then
|
if [ "$var" != "DEFAULT_PASSWORD" ]; then
|
||||||
echo -e "\033[1A\033[K✅ ${var}: ${current_value}"
|
echo -e "\033[1A\033[K║ ✅ ${var}: ${current_value}"
|
||||||
fi
|
fi
|
||||||
return 0
|
return 0
|
||||||
else
|
else
|
||||||
@@ -783,9 +783,9 @@ prompt_for_variable() {
|
|||||||
eval "$var=\"$user_input\""
|
eval "$var=\"$user_input\""
|
||||||
# Overwrite prompt with status
|
# Overwrite prompt with status
|
||||||
if [ "$var" != "DEFAULT_PASSWORD" ]; then
|
if [ "$var" != "DEFAULT_PASSWORD" ]; then
|
||||||
echo -e "\033[1A\033[K✅ ${var}: ${user_input}"
|
echo -e "\033[1A\033[K║ ✅ ${var}: ${user_input}"
|
||||||
else
|
else
|
||||||
echo -e "\033[1A\033[K✅ ${var}: [HIDDEN]"
|
echo -e "\033[1A\033[K║ ✅ ${var}: [HIDDEN]"
|
||||||
fi
|
fi
|
||||||
return 0
|
return 0
|
||||||
else
|
else
|
||||||
@@ -808,7 +808,7 @@ validate_and_prompt_variables() {
|
|||||||
|
|
||||||
# Check validity without showing initial summary
|
# Check validity without showing initial summary
|
||||||
for var in "${REQUIRED_VARS[@]}"; do
|
for var in "${REQUIRED_VARS[@]}"; do
|
||||||
local display_value=$(echo "${!var:-}" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
|
local display_value=$(echo "║ ${!var:-}" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
|
||||||
if [ -z "$display_value" ] || ! validate_variable "$var" "${!var}"; then
|
if [ -z "$display_value" ] || ! validate_variable "$var" "${!var}"; then
|
||||||
all_valid=false
|
all_valid=false
|
||||||
fi
|
fi
|
||||||
@@ -816,25 +816,26 @@ validate_and_prompt_variables() {
|
|||||||
|
|
||||||
if [ "$all_valid" = true ]; then
|
if [ "$all_valid" = true ]; then
|
||||||
if [ "$first_display" = true ]; then
|
if [ "$first_display" = true ]; then
|
||||||
echo "Current configuration:"
|
# echo "║ Current configuration:"
|
||||||
for var in "${REQUIRED_VARS[@]}"; do
|
for var in "${REQUIRED_VARS[@]}"; do
|
||||||
local display_value=$(echo "${!var:-}" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
|
local display_value=$(echo "${!var:-}" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
|
||||||
if [ "$var" = "DEFAULT_PASSWORD" ]; then
|
if [ "$var" = "DEFAULT_PASSWORD" ]; then
|
||||||
echo " ✅ ${var}: [HIDDEN]"
|
echo "║ ✅ ${var}: [HIDDEN]"
|
||||||
else
|
else
|
||||||
echo " ✅ ${var}: ${display_value}"
|
echo "║ ✅ ${var}: ${display_value}"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
echo ""
|
echo "║"
|
||||||
first_display=false
|
first_display=false
|
||||||
fi
|
fi
|
||||||
echo ""
|
echo "║"
|
||||||
echo "Choose an option:"
|
echo "║ Choose an option:"
|
||||||
echo " 1) ✅ Deploy now"
|
echo "║ 1) ✅ Deploy now"
|
||||||
echo " 2) 🔄 Make Changes"
|
echo "║ 2) 🔄 Make Changes"
|
||||||
echo " q) ❌ Quit setup"
|
echo "║ q) ❌ Quit setup"
|
||||||
echo ""
|
echo "║"
|
||||||
read -p "Enter your choice (1, 2, or q): " user_choice
|
echo -n "╚═════════════════════════════════════════════ "
|
||||||
|
read -p "Choose : " user_choice
|
||||||
|
|
||||||
case "$user_choice" in
|
case "$user_choice" in
|
||||||
1|"p"|"proceed")
|
1|"p"|"proceed")
|
||||||
@@ -843,9 +844,9 @@ validate_and_prompt_variables() {
|
|||||||
;;
|
;;
|
||||||
2|"r"|"review"|"change")
|
2|"r"|"review"|"change")
|
||||||
user_wants_to_review=true
|
user_wants_to_review=true
|
||||||
echo ""
|
echo "║"
|
||||||
echo "Reviewing all variables - press Enter to keep current value or enter new value:"
|
echo "║ Press Enter to keep current value:"
|
||||||
echo ""
|
echo "║"
|
||||||
;;
|
;;
|
||||||
[Qq]|[Qq]uit)
|
[Qq]|[Qq]uit)
|
||||||
log_info "Setup cancelled by user"
|
log_info "Setup cancelled by user"
|
||||||
@@ -859,23 +860,7 @@ validate_and_prompt_variables() {
|
|||||||
esac
|
esac
|
||||||
else
|
else
|
||||||
echo ""
|
echo ""
|
||||||
echo "Missing variables: ${missing_vars[*]}"
|
echo "║ Missing variables: ${missing_vars[*]}"
|
||||||
echo "Some variables need configuration. Press Enter to continue or 'q' to quit."
|
|
||||||
read -p "Press Enter to configure missing variables, or 'q' to quit: " user_choice
|
|
||||||
|
|
||||||
case "$user_choice" in
|
|
||||||
[Qq]|[Qq]uit)
|
|
||||||
log_info "Setup cancelled by user"
|
|
||||||
exit 0
|
|
||||||
;;
|
|
||||||
""|"c"|"continue")
|
|
||||||
# Continue with prompting
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
log_warning "Invalid choice. Press Enter to continue or 'q' to quit."
|
|
||||||
continue
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Prompt for variables (either missing ones or all if reviewing)
|
# Prompt for variables (either missing ones or all if reviewing)
|
||||||
@@ -1097,9 +1082,8 @@ install_nvidia() {
|
|||||||
|
|
||||||
# Deploy Dockge function
|
# Deploy Dockge function
|
||||||
deploy_dockge() {
|
deploy_dockge() {
|
||||||
echo "Deploying Dockge..."
|
echo -n "║ Deploying Dockge... "
|
||||||
log_info " - Dockge (Docker Compose Manager)"
|
log_info " - Dockge (Docker Compose Manager)"
|
||||||
echo ""
|
|
||||||
|
|
||||||
# Backup existing files if they exist
|
# Backup existing files if they exist
|
||||||
if [ -f /opt/dockge/docker-compose.yml ]; then
|
if [ -f /opt/dockge/docker-compose.yml ]; then
|
||||||
@@ -1119,18 +1103,22 @@ deploy_dockge() {
|
|||||||
|
|
||||||
# Deploy Dockge stack
|
# Deploy Dockge stack
|
||||||
cd /opt/dockge
|
cd /opt/dockge
|
||||||
run_cmd --quiet docker compose up -d
|
if run_cmd --quiet docker compose up -d; then
|
||||||
echo "Success"
|
echo "Success"
|
||||||
|
echo "║"
|
||||||
|
else
|
||||||
|
echo "Failed"
|
||||||
|
echo "║"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Deploy core stack function
|
# Deploy core stack function
|
||||||
deploy_core() {
|
deploy_core() {
|
||||||
debug_log "deploy_core called"
|
debug_log "deploy_core called"
|
||||||
echo "Deploying Core Stack..."
|
echo -n "║ Deploying Core Stack... "
|
||||||
log_info " - DuckDNS (Dynamic DNS)"
|
log_info " - DuckDNS (Dynamic DNS)"
|
||||||
log_info " - Traefik (Reverse Proxy with SSL)"
|
log_info " - Traefik (Reverse Proxy with SSL)"
|
||||||
log_info " - Authelia (Single Sign-On)"
|
log_info " - Authelia (Single Sign-On)"
|
||||||
echo ""
|
|
||||||
|
|
||||||
# Copy core stack files
|
# Copy core stack files
|
||||||
debug_log "Copying core stack files"
|
debug_log "Copying core stack files"
|
||||||
@@ -1251,23 +1239,27 @@ PYFIX
|
|||||||
# Deploy core stack
|
# Deploy core stack
|
||||||
debug_log "Deploying core stack with docker compose"
|
debug_log "Deploying core stack with docker compose"
|
||||||
cd /opt/stacks/core
|
cd /opt/stacks/core
|
||||||
run_cmd --quiet docker compose up -d
|
if run_cmd --quiet docker compose up -d; then
|
||||||
echo "Success"
|
echo "Success"
|
||||||
|
echo "║"
|
||||||
|
else
|
||||||
|
echo "Failed"
|
||||||
|
echo "║"
|
||||||
|
fi
|
||||||
|
|
||||||
# Deploy Sablier stack for lazy loading
|
# Deploy Sablier stack for lazy loading
|
||||||
echo "Deploying Sablier..."
|
echo -n "║ Deploying Sablier... "
|
||||||
deploy_sablier_stack
|
deploy_sablier_stack
|
||||||
}
|
}
|
||||||
|
|
||||||
# Deploy infrastructure stack function
|
# Deploy infrastructure stack function
|
||||||
deploy_infrastructure() {
|
deploy_infrastructure() {
|
||||||
echo "Deploying Infrastructure Stack..."
|
echo -n "║ Deploying Infrastructure Stack... "
|
||||||
log_info " - Pi-hole (DNS Ad Blocker)"
|
log_info " - Pi-hole (DNS Ad Blocker)"
|
||||||
log_info " - Watchtower (Container Updates)"
|
log_info " - Watchtower (Container Updates)"
|
||||||
log_info " - Dozzle (Log Viewer)"
|
log_info " - Dozzle (Log Viewer)"
|
||||||
log_info " - Glances (System Monitor)"
|
log_info " - Glances (System Monitor)"
|
||||||
log_info " - Docker Proxy (Security)"
|
log_info " - Docker Proxy (Security)"
|
||||||
echo ""
|
|
||||||
|
|
||||||
# Backup existing files if they exist
|
# Backup existing files if they exist
|
||||||
if [ -f /opt/stacks/infrastructure/docker-compose.yml ]; then
|
if [ -f /opt/stacks/infrastructure/docker-compose.yml ]; then
|
||||||
@@ -1303,16 +1295,20 @@ deploy_infrastructure() {
|
|||||||
|
|
||||||
# Deploy infrastructure stack
|
# Deploy infrastructure stack
|
||||||
cd /opt/stacks/infrastructure
|
cd /opt/stacks/infrastructure
|
||||||
run_cmd --quiet docker compose up -d
|
if run_cmd --quiet docker compose up -d; then
|
||||||
echo "Success"
|
echo "Success"
|
||||||
|
echo "║"
|
||||||
|
else
|
||||||
|
echo "Failed"
|
||||||
|
echo "║"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Deploy dashboards stack function
|
# Deploy dashboards stack function
|
||||||
deploy_dashboards() {
|
deploy_dashboards() {
|
||||||
echo "Deploying Dashboard Stack..."
|
echo -n "║ Deploying Dashboard Stack... "
|
||||||
log_info " - Homepage (Application Dashboard)"
|
log_info " - Homepage (Application Dashboard)"
|
||||||
log_info " - Homarr (Modern Dashboard)"
|
log_info " - Homarr (Modern Dashboard)"
|
||||||
echo ""
|
|
||||||
|
|
||||||
# Create dashboards directory
|
# Create dashboards directory
|
||||||
sudo mkdir -p /opt/stacks/dashboards
|
sudo mkdir -p /opt/stacks/dashboards
|
||||||
@@ -1364,14 +1360,18 @@ deploy_dashboards() {
|
|||||||
|
|
||||||
# Deploy dashboards stack
|
# Deploy dashboards stack
|
||||||
cd /opt/stacks/dashboards
|
cd /opt/stacks/dashboards
|
||||||
run_cmd --quiet docker compose up -d
|
if run_cmd --quiet docker compose up -d; then
|
||||||
echo "Success"
|
echo "Success"
|
||||||
|
echo "║"
|
||||||
|
else
|
||||||
|
echo "Failed"
|
||||||
|
echo "║"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
deploy_arcane() {
|
deploy_arcane() {
|
||||||
echo "Deploying Arcane..."
|
echo -n "║ Deploying Arcane... "
|
||||||
log_info " - Arcane (Docker Management UI)"
|
log_info " - Arcane (Docker Management UI)"
|
||||||
echo ""
|
|
||||||
|
|
||||||
# Create arcane directory
|
# Create arcane directory
|
||||||
sudo mkdir -p /opt/arcane
|
sudo mkdir -p /opt/arcane
|
||||||
@@ -1394,8 +1394,12 @@ deploy_arcane() {
|
|||||||
|
|
||||||
# Deploy arcane stack
|
# Deploy arcane stack
|
||||||
cd /opt/arcane
|
cd /opt/arcane
|
||||||
run_cmd --quiet docker compose up -d
|
if run_cmd --quiet docker compose up -d; then
|
||||||
echo "Success"
|
echo "Success"
|
||||||
|
echo "║"
|
||||||
|
else
|
||||||
|
echo "║"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Deployment function
|
# Deployment function
|
||||||
@@ -1463,14 +1467,19 @@ perform_deployment() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Step 3: Create Docker networks (if they don't exist)
|
# Step 3: Create Docker networks (if they don't exist)
|
||||||
echo "Creating Docker networks..."
|
echo "║"
|
||||||
docker network create homelab-network 2>/dev/null || true
|
echo "║ Creating Docker networks..."
|
||||||
docker network create traefik-network 2>/dev/null || true
|
|
||||||
docker network create media-network 2>/dev/null || true
|
docker network create homelab-network >/dev/null 2>&1 && echo "║ homelab-network created" || echo "║ homelab-network exists"
|
||||||
|
docker network create traefik-network >/dev/null 2>&1 && echo "║ traefik-network created" || echo "║ traefik-network exists"
|
||||||
|
docker network create media-network >/dev/null 2>&1 && echo "║ media-network created" || echo "║ media-network exists"
|
||||||
|
echo "║"
|
||||||
|
|
||||||
# Step 4: Deploy Dockge (always deployed)
|
# Step 4: Deploy Dockge (always deployed)
|
||||||
deploy_dockge
|
deploy_dockge
|
||||||
|
|
||||||
|
deploy_arcane
|
||||||
|
|
||||||
# Deploy core stack
|
# Deploy core stack
|
||||||
if [ "$DEPLOY_CORE" = true ]; then
|
if [ "$DEPLOY_CORE" = true ]; then
|
||||||
deploy_core
|
deploy_core
|
||||||
@@ -1494,11 +1503,6 @@ perform_deployment() {
|
|||||||
deploy_dashboards
|
deploy_dashboards
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Deploy arcane stack (deployed for both core and additional servers)
|
|
||||||
if [ "$DEPLOY_CORE" = true ] || [ "$DEPLOY_INFRASTRUCTURE" = true ]; then
|
|
||||||
deploy_arcane
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Setup stacks for Dockge
|
# Setup stacks for Dockge
|
||||||
if [ "$SETUP_STACKS" = true ]; then
|
if [ "$SETUP_STACKS" = true ]; then
|
||||||
setup_stacks_for_dockge
|
setup_stacks_for_dockge
|
||||||
@@ -1595,6 +1599,7 @@ EOF
|
|||||||
}
|
}
|
||||||
setup_stacks_for_dockge() {
|
setup_stacks_for_dockge() {
|
||||||
log_info "Setting up all stacks for Dockge..."
|
log_info "Setting up all stacks for Dockge..."
|
||||||
|
echo -n "║ Copy & configure all stacks... "
|
||||||
|
|
||||||
# List of stacks to setup
|
# List of stacks to setup
|
||||||
STACKS=("vpn" "media" "media-management" "transcoders" "monitoring" "productivity" "wikis" "utilities" "alternatives" "homeassistant")
|
STACKS=("vpn" "media" "media-management" "transcoders" "monitoring" "productivity" "wikis" "utilities" "alternatives" "homeassistant")
|
||||||
@@ -1653,6 +1658,7 @@ setup_stacks_for_dockge() {
|
|||||||
done
|
done
|
||||||
|
|
||||||
log_success "Prepared $stack stack for Dockge"
|
log_success "Prepared $stack stack for Dockge"
|
||||||
|
|
||||||
else
|
else
|
||||||
log_warning "$stack stack docker-compose.yml not found, skipping..."
|
log_warning "$stack stack docker-compose.yml not found, skipping..."
|
||||||
fi
|
fi
|
||||||
@@ -1662,7 +1668,8 @@ setup_stacks_for_dockge() {
|
|||||||
done
|
done
|
||||||
|
|
||||||
log_success "All stacks prepared for Dockge deployment"
|
log_success "All stacks prepared for Dockge deployment"
|
||||||
echo ""
|
echo "Success"
|
||||||
|
echo "║"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Main menu
|
# Main menu
|
||||||
@@ -1677,8 +1684,8 @@ show_main_menu() {
|
|||||||
echo "║ 4) Install NVIDIA Drivers ║"
|
echo "║ 4) Install NVIDIA Drivers ║"
|
||||||
echo "║ ║"
|
echo "║ ║"
|
||||||
echo "║ q) Quit ║"
|
echo "║ q) Quit ║"
|
||||||
echo "╚═════════════════════════════════════════════════════════════╝"
|
echo "║"
|
||||||
echo ""
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# =============================================
|
# =============================================
|
||||||
@@ -1846,7 +1853,8 @@ deploy_remote_server() {
|
|||||||
echo " 2) Skip SSH setup (manual configuration required)"
|
echo " 2) Skip SSH setup (manual configuration required)"
|
||||||
echo " 3) Return to main menu"
|
echo " 3) Return to main menu"
|
||||||
echo ""
|
echo ""
|
||||||
read -p "Choose an option (1-3): " ssh_retry_choice
|
echo -n "╚═════════════════════════════════════════════ "
|
||||||
|
read -p "Choose : " ssh_retry_choice
|
||||||
|
|
||||||
case $ssh_retry_choice in
|
case $ssh_retry_choice in
|
||||||
1)
|
1)
|
||||||
@@ -2063,8 +2071,13 @@ deploy_sablier_stack() {
|
|||||||
localize_yml_file "$sablier_dir/docker-compose.yml"
|
localize_yml_file "$sablier_dir/docker-compose.yml"
|
||||||
|
|
||||||
# Deploy
|
# Deploy
|
||||||
run_cmd --quiet docker compose up -d
|
if run_cmd --quiet docker compose up -d; then
|
||||||
echo "Success"
|
echo "Success"
|
||||||
|
echo "║"
|
||||||
|
else
|
||||||
|
echo "Failed"
|
||||||
|
echo "║"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Remove Traefik configuration from additional server services
|
# Remove Traefik configuration from additional server services
|
||||||
@@ -2411,7 +2424,7 @@ run_cmd() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$DRY_RUN" = true ] || [ "$TEST_MODE" = true ]; then
|
if [ "$DRY_RUN" = true ] || [ "$TEST_MODE" = true ]; then
|
||||||
echo "[DRY-RUN/TEST] $@"
|
echo -n "[DRY-RUN/TEST] "
|
||||||
return 0
|
return 0
|
||||||
else
|
else
|
||||||
if [ "$quiet" = true ]; then
|
if [ "$quiet" = true ]; then
|
||||||
@@ -2469,7 +2482,8 @@ main() {
|
|||||||
while true; do
|
while true; do
|
||||||
# Show main menu
|
# Show main menu
|
||||||
show_main_menu
|
show_main_menu
|
||||||
read -p "Choose an option (1-4 or q): " MAIN_CHOICE
|
echo -n "╚═════════════════════════════════════════════ "
|
||||||
|
read -p "Choose : " MAIN_CHOICE
|
||||||
|
|
||||||
case $MAIN_CHOICE in
|
case $MAIN_CHOICE in
|
||||||
1)
|
1)
|
||||||
@@ -2556,7 +2570,15 @@ main() {
|
|||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
echo ""
|
echo "║"
|
||||||
|
# echo "╔═════════════════════════════════════════════════════════════╗"
|
||||||
|
if [ "$DEPLOY_CORE" = true ]; then
|
||||||
|
echo "║ CORE SERVER DEPLOYMENT"
|
||||||
|
fi
|
||||||
|
if [ "$DEPLOY_REMOTE_SERVER" = true ]; then
|
||||||
|
echo "║ ADDITIONAL SERVER DEPLOYMENT ║"
|
||||||
|
fi
|
||||||
|
echo "║"
|
||||||
|
|
||||||
# Prepare deployment environment (handles special cases like prerequisites installation)
|
# Prepare deployment environment (handles special cases like prerequisites installation)
|
||||||
prepare_deployment
|
prepare_deployment
|
||||||
@@ -2593,11 +2615,12 @@ main() {
|
|||||||
perform_deployment
|
perform_deployment
|
||||||
|
|
||||||
# Show completion message
|
# Show completion message
|
||||||
echo ""
|
echo "║═════════════════════════════════════════════════════════════"
|
||||||
echo "╔═════════════════════════════════════════════════════════════╗"
|
echo "║"
|
||||||
echo "║ Deployment Complete! ║"
|
echo "║ Deployment Complete!"
|
||||||
echo "║ SSL Certificates may take a few minutes to be issued. ║"
|
echo "║"
|
||||||
echo "║ ║"
|
echo "║ SSL Certificates may take a few minutes to be issued."
|
||||||
|
echo "║"
|
||||||
echo "║ Dockge https://dockge.${DOMAIN}"
|
echo "║ Dockge https://dockge.${DOMAIN}"
|
||||||
echo "║ http://${SERVER_IP}:5001"
|
echo "║ http://${SERVER_IP}:5001"
|
||||||
echo "║"
|
echo "║"
|
||||||
@@ -2605,14 +2628,12 @@ main() {
|
|||||||
echo "║ http://${SERVER_IP}:3552"
|
echo "║ http://${SERVER_IP}:3552"
|
||||||
echo "║"
|
echo "║"
|
||||||
echo "║ Homepage https://homepage.${DOMAIN}"
|
echo "║ Homepage https://homepage.${DOMAIN}"
|
||||||
echo "║ http://${SERVER_IP}:3003 ║"
|
echo "║ http://${SERVER_IP}:3003"
|
||||||
echo "║ ║"
|
echo "║"
|
||||||
echo "╚═════════════════════════════════════════════════════════════╝"
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
# Show consolidated warnings if any
|
# Show consolidated warnings if any
|
||||||
if [ -n "$GLOBAL_MISSING_VARS" ] || [ -n "$TLS_ISSUES_SUMMARY" ]; then
|
if [ -n "$GLOBAL_MISSING_VARS" ] || [ -n "$TLS_ISSUES_SUMMARY" ]; then
|
||||||
echo "╔═════════════════════════════════════════════════════════════╗"
|
echo "║═════════════════════════════════════════════════════════════╗"
|
||||||
echo "║ ⚠️ WARNING ⚠️ ║"
|
echo "║ ⚠️ WARNING ⚠️ ║"
|
||||||
echo "║ The following variables were not defined ║"
|
echo "║ The following variables were not defined ║"
|
||||||
echo "║ If something isn't working as expected check these first ║"
|
echo "║ If something isn't working as expected check these first ║"
|
||||||
@@ -2631,14 +2652,17 @@ main() {
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "╔═════════════════════════════════════════════════════════════╗"
|
echo "║═════════════════════════════════════════════════════════════"
|
||||||
echo "║ RESOURCES ║"
|
echo "║ RESOURCES"
|
||||||
echo "║ ║"
|
echo "║"
|
||||||
echo "║ Documentation: ~/EZ-Homelab/docs ║"
|
echo "║ https://github.com/kelinfoxy/EZ-Homelab/blob/main/docs/Arcane-Configuration-Guide.md"
|
||||||
echo "║ Repository: https://github.com/kelinfoxy/EZ-Homelab ║"
|
echo "║"
|
||||||
echo "║ Wiki: https://github.com/kelinfoxy/EZ-Homelab/wiki ║"
|
echo "║ Documentation: ~/EZ-Homelab/docs"
|
||||||
echo "║ ║"
|
echo "║"
|
||||||
echo "╚═════════════════════════════════════════════════════════════╝"
|
echo "║ Repository: https://github.com/kelinfoxy/EZ-Homelab"
|
||||||
|
echo "║ Wiki: https://github.com/kelinfoxy/EZ-Homelab/wiki"
|
||||||
|
echo "║ "
|
||||||
|
echo "╚═════════════════════════════════════════════════════════════"
|
||||||
echo ""
|
echo ""
|
||||||
debug_log "Script completed successfully"
|
debug_log "Script completed successfully"
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user