2025-01-01 13:37:29 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								# Copyright (c) 2021-2025 tteck 
							 
						 
					
						
							
								
									
										
										
										
											2024-12-16 12:41:51 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								# Author: tteck (tteckster) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								# Co-Author: MickLesk 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-29 14:26:23 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								# Co-Author: michelroegl-brunner 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-31 09:37:51 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE 
							 
						 
					
						
							
								
									
										
										
										
											2024-12-16 12:41:51 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								variables( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2025-04-09 15:30:54 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  NSAPP = $( echo  " ${ APP ,, } "  |  tr -d ' ' )               # This function sets the NSAPP variable by converting the value of the APP variable to lowercase and removing any spaces. 
							 
						 
					
						
							
								
									
										
										
										
											2025-02-24 11:18:38 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  var_install = " ${ NSAPP } -install "                     # sets the var_install variable by appending "-install" to the value of NSAPP. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  INTEGER = '^[0-9]+([.][0-9]+)?$'                     # it defines the INTEGER regular expression pattern. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  PVEHOST_NAME = $( hostname)                           # gets the Proxmox Hostname and sets it to Uppercase 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  DIAGNOSTICS = "yes"                                  # sets the DIAGNOSTICS variable to "yes", used for the API call. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  METHOD = "default"                                   # sets the METHOD variable to "default", used for the API call. 
							 
						 
					
						
							
								
									
										
										
										
											2025-02-03 23:40:22 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  RANDOM_UUID = " $( cat /proc/sys/kernel/random/uuid) "  # generates a random UUID and sets it to the RANDOM_UUID variable. 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-20 13:28:06 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  CT_TYPE = ${ var_unprivileged :- $CT_TYPE } 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								} 
							 
						 
					
						
							
								
									
										
										
										
											2025-02-05 16:29:19 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-04-01 10:25:46 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								source  <( curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/api.func) 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-06-20 13:28:06 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								if  command  -v curl >/dev/null 2>& 1;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  source  <( curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/core.func) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  load_functions
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								elif  command  -v wget >/dev/null 2>& 1;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  source  <( wget -qO- https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/core.func) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  load_functions
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								fi 
							 
						 
					
						
							
								
									
										
										
										
											2023-05-15 18:55:53 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								# This function enables error handling in the script by setting options and defining a trap for the ERR signal. 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								catch_errors( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  set  -Eeuo pipefail
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  trap  'error_handler $LINENO "$BASH_COMMAND"'  ERR
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-05-15 18:55:53 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								# This function is called when an error occurs. It receives the exit code, line number, and command that caused the error, and displays an error message. 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								error_handler( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2025-04-01 10:25:46 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  source  /dev/stdin <<< $( curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/api.func) 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-06 17:15:45 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  printf  "\e[?25h" 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  local  exit_code = " $? " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  local  line_number = " $1 " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  local  command = " $2 " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  local  error_message = " ${ RD } [ERROR] ${ CL }  in line  ${ RD } $line_number ${ CL } : exit code  ${ RD } $exit_code ${ CL } : while executing command  ${ YW } $command ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2025-02-24 11:18:38 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  post_update_to_api "failed"  " ${ command } " 
							 
						 
					
						
							
								
									
										
										
										
											2023-05-06 17:17:37 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  echo  -e " \n $error_message \n " 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-02-21 19:51:36 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								# Check if the shell is using bash 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								shell_check( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  if  [ [  " $( basename " $SHELL " ) "  !=  "bash"  ] ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    clear
							 
						 
					
						
							
								
									
										
										
										
											2024-02-22 23:44:30 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    msg_error "Your default shell is currently not set to Bash. To use these scripts, please switch to the Bash shell." 
							 
						 
					
						
							
								
									
										
										
										
											2024-02-21 19:51:36 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    echo  -e "\nExiting..." 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    sleep 2 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    exit 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-09-26 17:55:13 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								# Run as root only 
							 
						 
					
						
							
								
									
										
										
										
											2024-02-21 19:51:36 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								root_check( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-09-26 19:18:57 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  if  [ [  " $( id -u) "  -ne 0  ||  $( ps -o comm =  -p $PPID )  = =  "sudo"  ] ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    clear
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    msg_error "Please run this script as root." 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    echo  -e "\nExiting..." 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    sleep 2 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    exit 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  fi 
							 
						 
					
						
							
								
									
										
										
										
											2023-09-26 19:16:25 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								} 
							 
						 
					
						
							
								
									
										
										
										
											2023-09-26 17:55:13 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-05-15 18:55:53 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								# This function checks the version of Proxmox Virtual Environment (PVE) and exits if the version is not supported. 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								pve_check( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2025-04-09 16:13:01 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  if  ! pveversion |  grep -Eq "pve-manager/8\.[0-4](\.[0-9]+)*" ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2024-12-16 12:41:51 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    msg_error " ${ CROSS } ${ RD } This version of Proxmox Virtual Environment is not supported " 
							 
						 
					
						
							
								
									
										
										
										
											2024-06-30 10:18:37 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    echo  -e "Requires Proxmox Virtual Environment Version 8.1 or later." 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    echo  -e "Exiting..." 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    sleep 2 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    exit 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-29 14:26:23 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  fi 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-01-29 14:26:23 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								# When a node is running tens of containers, it's possible to exceed the kernel's cryptographic key storage allocations. 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-20 09:19:47 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								# These are tuneable, so verify if the currently deployment is approaching the limits, advise the user on how to tune the limits, and exit the script. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								# https://cleveruptime.com/docs/files/proc-key-users | https://docs.kernel.org/security/keys/core.html 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								maxkeys_check( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  # Read kernel parameters 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  per_user_maxkeys = $( cat /proc/sys/kernel/keys/maxkeys 2>/dev/null ||  echo  0) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  per_user_maxbytes = $( cat /proc/sys/kernel/keys/maxbytes 2>/dev/null ||  echo  0) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  # Exit if kernel parameters are unavailable 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  if  [ [  " $per_user_maxkeys "  -eq 0  ||  " $per_user_maxbytes "  -eq 0  ] ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    echo  -e " ${ CROSS } ${ RD }  Error: Unable to read kernel parameters. Ensure proper permissions. ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    exit  1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  # Fetch key usage for user ID 100000 (typical for containers) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  used_lxc_keys = $( awk '/100000:/ {print $2}'  /proc/key-users 2>/dev/null ||  echo  0) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  used_lxc_bytes = $( awk '/100000:/ {split($5, a, "/"); print a[1]}'  /proc/key-users 2>/dev/null ||  echo  0) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  # Calculate thresholds and suggested new limits 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  threshold_keys = $(( per_user_maxkeys -  100 )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  threshold_bytes = $(( per_user_maxbytes -  1000 )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  new_limit_keys = $(( per_user_maxkeys *  2 )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  new_limit_bytes = $(( per_user_maxbytes *  2 )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  # Check if key or byte usage is near limits 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  failure = 0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  if  [ [  " $used_lxc_keys "  -gt " $threshold_keys "  ] ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    echo  -e " ${ CROSS } ${ RD }  Warning: Key usage is near the limit ( ${ used_lxc_keys } / ${ per_user_maxkeys } ). ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    echo  -e " ${ INFO }  Suggested action: Set  ${ GN } kernel.keys.maxkeys= ${ new_limit_keys } ${ CL }  in  ${ BOLD } /etc/sysctl.d/98-community-scripts.conf ${ CL } . " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    failure = 1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  if  [ [  " $used_lxc_bytes "  -gt " $threshold_bytes "  ] ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    echo  -e " ${ CROSS } ${ RD }  Warning: Key byte usage is near the limit ( ${ used_lxc_bytes } / ${ per_user_maxbytes } ). ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    echo  -e " ${ INFO }  Suggested action: Set  ${ GN } kernel.keys.maxbytes= ${ new_limit_bytes } ${ CL }  in  ${ BOLD } /etc/sysctl.d/98-community-scripts.conf ${ CL } . " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    failure = 1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  # Provide next steps if issues are detected 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  if  [ [  " $failure "  -eq 1  ] ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    echo  -e " ${ INFO }  To apply changes, run:  ${ BOLD } service procps force-reload ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    exit  1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  echo  -e " ${ CM } ${ GN }  All kernel key limits are within safe thresholds. ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-05-15 18:55:53 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								# This function checks the system architecture and exits if it's not "amd64". 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								arch_check( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  if  [  " $( dpkg --print-architecture) "  !=  "amd64"  ] ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2024-12-16 12:41:51 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    echo  -e " \n  ${ INFO } ${ YWB } This script will not work with PiMox! \n " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    echo  -e " \n  ${ YWB } Visit https://github.com/asylumexp/Proxmox for ARM64 support. \n " 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    echo  -e "Exiting..." 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    sleep 2 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    exit 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-12-28 20:37:58 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								# Function to get the current IP address based on the distribution 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								get_current_ip( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  if  [  -f /etc/os-release ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    # Check for Debian/Ubuntu (uses hostname -I) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    if  grep -qE 'ID=debian|ID=ubuntu'  /etc/os-release;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      CURRENT_IP = $( hostname -I |  awk '{print $1}' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    # Check for Alpine (uses ip command) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    elif  grep -q 'ID=alpine'  /etc/os-release;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      CURRENT_IP = $( ip -4 addr show eth0 |  awk '/inet / {print $2}'  |  cut -d/ -f1 |  head -n 1) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      CURRENT_IP = "Unknown" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  echo  " $CURRENT_IP " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								# Function to update the IP address in the MOTD file 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								update_motd_ip( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  MOTD_FILE = "/etc/motd" 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-29 14:26:23 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-12-28 20:37:58 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  if  [  -f " $MOTD_FILE "  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    # Remove existing IP Address lines to prevent duplication 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    sed -i '/IP Address:/d'  " $MOTD_FILE " 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-29 14:26:23 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-12-28 20:37:58 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    IP = $( get_current_ip) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    # Add the new IP address 
							 
						 
					
						
							
								
									
										
										
										
											2025-02-24 11:18:38 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    echo  -e " ${ TAB } ${ NETWORK } ${ YW }  IP Address:  ${ GN } ${ IP } ${ CL } "  >>" $MOTD_FILE " 
							 
						 
					
						
							
								
									
										
										
										
											2024-12-28 20:37:58 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-05-15 18:55:53 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								# This function checks if the script is running through SSH and prompts the user to confirm if they want to proceed or exit. 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-26 11:06:28 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								ssh_check( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2024-12-16 12:41:51 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  if  [  -n " ${ SSH_CLIENT : +x } "  ] ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2024-02-23 15:12:30 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    if  whiptail --backtitle "Proxmox VE Helper Scripts"  --defaultno --title "SSH DETECTED"  --yesno "It's advisable to utilize the Proxmox shell rather than SSH, as there may be potential complications with variable retrieval. Proceed using SSH?"  10  72;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      whiptail --backtitle "Proxmox VE Helper Scripts"  --msgbox --title "Proceed using SSH"  "You've chosen to proceed using SSH. If any issues arise, please run the script in the Proxmox shell before creating a repository issue."  10  72 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      clear
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      echo  "Exiting due to SSH usage. Please consider using the Proxmox shell." 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      exit 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-26 11:11:13 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    fi 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-26 11:06:28 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-12-16 12:41:51 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								base_settings( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  # Default Settings 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  CT_TYPE = "1" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  DISK_SIZE = "4" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  CORE_COUNT = "1" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  RAM_SIZE = "1024" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  VERBOSE = " ${ 1 :- no } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  PW = "" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  CT_ID = $NEXTID 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  HN = $NSAPP 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  BRG = "vmbr0" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  NET = "dhcp" 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-30 12:11:44 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  IPV6_METHOD = "none" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  IPV6_STATIC = "" 
							 
						 
					
						
							
								
									
										
										
										
											2024-12-16 12:41:51 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  GATE = "" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  APT_CACHER = "" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  APT_CACHER_IP = "" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  MTU = "" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  SD = "" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  NS = "" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  MAC = "" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  VLAN = "" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  SSH = "no" 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-13 16:04:59 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  SSH_AUTHORIZED_KEY = "" 
							 
						 
					
						
							
								
									
										
										
										
											2024-12-16 12:41:51 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  TAGS = "community-script;" 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-20 13:28:06 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  ENABLE_FUSE = " ${ 1 :- no } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  ENABLE_TUN = " ${ 1 :- no } " 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-13 16:04:59 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-12-16 12:41:51 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  # Override default settings with variables from ct script 
							 
						 
					
						
							
								
									
										
										
										
											2024-12-16 16:41:01 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  CT_TYPE = ${ var_unprivileged :- $CT_TYPE } 
							 
						 
					
						
							
								
									
										
										
										
											2024-12-16 12:41:51 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  DISK_SIZE = ${ var_disk :- $DISK_SIZE } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  CORE_COUNT = ${ var_cpu :- $CORE_COUNT } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  RAM_SIZE = ${ var_ram :- $RAM_SIZE } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  VERB = ${ var_verbose :- $VERBOSE } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  TAGS = " ${ TAGS } ${ var_tags :- } " 
							 
						 
					
						
							
								
									
										
										
										
											2025-05-22 14:32:27 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  ENABLE_FUSE = " ${ var_fuse :- $ENABLE_FUSE } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  ENABLE_TUN = " ${ var_tun :- $ENABLE_TUN } " 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-13 16:04:59 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-12-16 12:41:51 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  # Since these 2 are only defined outside of default_settings function, we add a temporary fallback. TODO: To align everything, we should add these as constant variables (e.g. OSTYPE and OSVERSION), but that would currently require updating the default_settings function for all existing scripts 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  if  [  -z " $var_os "  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    var_os = "debian" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  if  [  -z " $var_version "  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    var_version = "12" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								} 
							 
						 
					
						
							
								
									
										
										
										
											2025-05-16 15:48:18 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								write_config( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2025-05-20 11:00:58 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  mkdir -p /opt/community-scripts
							 
						 
					
						
							
								
									
										
										
										
											2025-05-16 15:48:18 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  # This function writes the configuration to a file. 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-19 18:48:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  if  whiptail --backtitle "Proxmox VE Helper Scripts"  --defaultno --title "Write configfile"  --yesno "Do you want to write the selections to a config file?"  10  60;  then 
							 
						 
					
						
							
								
									
										
										
										
											2025-05-16 15:48:18 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    FILEPATH = " /opt/community-scripts/ ${ NSAPP } .conf " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    if  [ [  ! -f $FILEPATH  ] ] ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2025-07-15 13:15:42 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      cat <<EOF >"$FILE PATH" 
 
							 
						 
					
						
							
								
									
										
										
										
											2025-05-16 15:48:18 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								# ${NSAPP} Configuration File 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								# Generated on $(date) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								CT_TYPE = " ${ CT_TYPE } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								DISK_SIZE = " ${ DISK_SIZE } " 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-07 20:57:55 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								CORE_COUNT = " ${ CORE_COUNT } " 
							 
						 
					
						
							
								
									
										
										
										
											2025-05-16 15:48:18 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								RAM_SIZE = " ${ RAM_SIZE } " 
							 
						 
					
						
							
								
									
										
										
										
											2025-07-14 21:50:56 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								VERBOSE = " ${ VERBOSE } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								PW = " ${ PW ##-password  } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								#CT_ID=$NEXTID 
							 
						 
					
						
							
								
									
										
										
										
											2025-05-16 15:48:18 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								HN = " ${ HN } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								BRG = " ${ BRG } " 
							 
						 
					
						
							
								
									
										
										
										
											2025-07-14 21:50:56 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								NET = " ${ NET } " 
							 
						 
					
						
							
								
									
										
										
										
											2025-07-14 22:37:36 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								IPV6_METHOD = " ${ IPV6_METHOD :- none } " 
							 
						 
					
						
							
								
									
										
										
										
											2025-07-14 21:50:56 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								# Set this only if using "IPV6_METHOD=static" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								#IPV6STATIC="fd00::1234/64" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								GATE = " ${ GATE :- none } " 
							 
						 
					
						
							
								
									
										
										
										
											2025-05-16 15:48:18 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								APT_CACHER_IP = " ${ APT_CACHER_IP :- none } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								MTU = " ${ MTU :- 1500 } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								SD = " ${ SD :- none } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								NS = " ${ NS :- none } " 
							 
						 
					
						
							
								
									
										
										
										
											2025-07-14 21:50:56 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								MAC = " ${ MAC :- none } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								VLAN = " ${ VLAN :- none } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								SSH = " ${ SSH } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								SSH_AUTHORIZED_KEY = " ${ SSH_AUTHORIZED_KEY } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								TAGS = " ${ TAGS :- none } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								ENABLE_FUSE = " $ENABLE_FUSE " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								ENABLE_TUN = " $ENABLE_TUN " 
							 
						 
					
						
							
								
									
										
										
										
											2025-05-16 15:48:18 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								EOF
							 
						 
					
						
							
								
									
										
										
										
											2025-07-14 22:17:48 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-05-16 15:48:18 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      echo  -e " ${ INFO } ${ BOLD } ${ GN } Writing configuration to  ${ FILEPATH } ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      echo  -e " ${ INFO } ${ BOLD } ${ RD } Configuration file already exists at  ${ FILEPATH } ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-19 18:48:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      if  whiptail --backtitle "Proxmox VE Helper Scripts"  --defaultno --title "Overwrite configfile"  --yesno "Do you want to overwrite the existing config file?"  10  60;  then 
							 
						 
					
						
							
								
									
										
										
										
											2025-05-22 14:32:27 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								        rm -f " $FILEPATH " 
							 
						 
					
						
							
								
									
										
										
										
											2025-07-15 13:15:42 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								        cat <<EOF >"$FILE PATH" 
 
							 
						 
					
						
							
								
									
										
										
										
											2025-05-16 15:48:18 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								# ${NSAPP} Configuration File 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								# Generated on $(date) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								CT_TYPE = " ${ CT_TYPE } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								DISK_SIZE = " ${ DISK_SIZE } " 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-07 20:57:55 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								CORE_COUNT = " ${ CORE_COUNT } " 
							 
						 
					
						
							
								
									
										
										
										
											2025-05-16 15:48:18 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								RAM_SIZE = " ${ RAM_SIZE } " 
							 
						 
					
						
							
								
									
										
										
										
											2025-07-14 21:50:56 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								VERBOSE = " ${ VERBOSE } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								PW = " ${ PW ##-password  } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								#CT_ID=$NEXTID 
							 
						 
					
						
							
								
									
										
										
										
											2025-05-16 15:48:18 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								HN = " ${ HN } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								BRG = " ${ BRG } " 
							 
						 
					
						
							
								
									
										
										
										
											2025-07-14 21:50:56 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								NET = " ${ NET } " 
							 
						 
					
						
							
								
									
										
										
										
											2025-07-14 22:37:36 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								IPV6_METHOD = " ${ IPV6_METHOD :- none } " 
							 
						 
					
						
							
								
									
										
										
										
											2025-07-14 21:50:56 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								# Set this only if using "IPV6_METHOD=static" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								#IPV6STATIC="fd00::1234/64" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								GATE = " ${ GATE :- none } " 
							 
						 
					
						
							
								
									
										
										
										
											2025-05-16 15:48:18 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								APT_CACHER_IP = " ${ APT_CACHER_IP :- none } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								MTU = " ${ MTU :- 1500 } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								SD = " ${ SD :- none } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								NS = " ${ NS :- none } " 
							 
						 
					
						
							
								
									
										
										
										
											2025-07-14 21:50:56 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								MAC = " ${ MAC :- none } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								VLAN = " ${ VLAN :- none } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								SSH = " ${ SSH } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								SSH_AUTHORIZED_KEY = " ${ SSH_AUTHORIZED_KEY } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								TAGS = " ${ TAGS :- none } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								ENABLE_FUSE = " $ENABLE_FUSE " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								ENABLE_TUN = " $ENABLE_TUN " 
							 
						 
					
						
							
								
									
										
										
										
											2025-05-16 15:48:18 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								EOF
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        echo  -e " ${ INFO } ${ BOLD } ${ GN } Writing configuration to  ${ FILEPATH } ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        echo  -e " ${ INFO } ${ BOLD } ${ RD } Configuration file not overwritten ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-05-15 18:55:53 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								# This function displays the default values for various settings. 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								echo_default( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2024-12-16 12:41:51 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  # Convert CT_TYPE to description 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  CT_TYPE_DESC = "Unprivileged" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  if  [  " $CT_TYPE "  -eq 0  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    CT_TYPE_DESC = "Privileged" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  # Output the selected values with icons 
							 
						 
					
						
							
								
									
										
										
										
											2025-07-04 21:22:50 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  echo  -e " ${ CONTAINERID } ${ BOLD } ${ DGN } Container ID:  ${ BGN } ${ CT_ID } ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  echo  -e " ${ OS } ${ BOLD } ${ DGN } Operating System:  ${ BGN } $var_os  ( $var_version ) ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2024-12-16 12:41:51 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  echo  -e " ${ CONTAINERTYPE } ${ BOLD } ${ DGN } Container Type:  ${ BGN } $CT_TYPE_DESC ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-13 16:04:59 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  echo  -e " ${ DISKSIZE } ${ BOLD } ${ DGN } Disk Size:  ${ BGN } ${ DISK_SIZE }  GB ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2024-12-16 12:41:51 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  echo  -e " ${ CPUCORE } ${ BOLD } ${ DGN } CPU Cores:  ${ BGN } ${ CORE_COUNT } ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-13 16:04:59 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  echo  -e " ${ RAMSIZE } ${ BOLD } ${ DGN } RAM Size:  ${ BGN } ${ RAM_SIZE }  MiB ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2024-12-16 12:41:51 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  if  [  " $VERB "  = =  "yes"  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    echo  -e " ${ SEARCH } ${ BOLD } ${ DGN } Verbose Mode:  ${ BGN } Enabled ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  echo  -e " ${ CREATING } ${ BOLD } ${ BL } Creating a  ${ APP }  LXC using the above default settings ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  echo  -e "  " 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-05-06 09:50:11 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								# This function is called when the user decides to exit the script. It clears the screen and displays an exit message. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								exit_script( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  clear
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  echo  -e " \n ${ CROSS } ${ RD } User exited script ${ CL } \n " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  exit 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-05-15 18:55:53 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								# This function allows the user to configure advanced settings for the script. 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								advanced_settings( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-09-09 05:13:17 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  whiptail --backtitle "Proxmox VE Helper Scripts"  --msgbox --title "Here is an instructional tip:"  "To make a selection, use the Spacebar."  8  58 
							 
						 
					
						
							
								
									
										
										
										
											2024-12-16 12:41:51 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  # Setting Default Tag for Advanced Settings 
							 
						 
					
						
							
								
									
										
										
										
											2024-12-27 19:42:13 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  TAGS = " community-script; ${ var_tags :- } " 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-20 18:03:27 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  CT_DEFAULT_TYPE = " ${ CT_TYPE } " 
							 
						 
					
						
							
								
									
										
										
										
											2023-04-23 18:09:32 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  CT_TYPE = "" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  while  [  -z " $CT_TYPE "  ] ;  do 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-29 14:26:23 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    if  [  " $CT_DEFAULT_TYPE "  = =  "1"  ] ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-20 18:03:27 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      if  CT_TYPE = $( whiptail --backtitle "Proxmox VE Helper Scripts"  --title "CONTAINER TYPE"  --radiolist "Choose Type"  10  58  2  \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        "1"  "Unprivileged"  ON \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        "0"  "Privileged"  OFF \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        3>& 1  1>& 2  2>& 3) ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        if  [  -n " $CT_TYPE "  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								          CT_TYPE_DESC = "Unprivileged" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								          if  [  " $CT_TYPE "  -eq 0  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								            CT_TYPE_DESC = "Privileged" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								          fi 
							 
						 
					
						
							
								
									
										
										
										
											2025-04-09 15:30:54 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								          echo  -e " ${ OS } ${ BOLD } ${ DGN } Operating System:  ${ BGN } $var_os ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								          echo  -e " ${ OSVERSION } ${ BOLD } ${ DGN } Version:  ${ BGN } $var_version ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-20 18:03:27 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								          echo  -e " ${ CONTAINERTYPE } ${ BOLD } ${ DGN } Container Type:  ${ BGN } $CT_TYPE_DESC ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2024-12-16 12:41:51 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								        fi 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-20 18:03:27 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        exit_script
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    if  [  " $CT_DEFAULT_TYPE "  = =  "0"  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      if  CT_TYPE = $( whiptail --backtitle "Proxmox VE Helper Scripts"  --title "CONTAINER TYPE"  --radiolist "Choose Type"  10  58  2  \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        "1"  "Unprivileged"  OFF \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        "0"  "Privileged"  ON \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        3>& 1  1>& 2  2>& 3) ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        if  [  -n " $CT_TYPE "  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								          CT_TYPE_DESC = "Unprivileged" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								          if  [  " $CT_TYPE "  -eq 0  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								            CT_TYPE_DESC = "Privileged" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								          fi 
							 
						 
					
						
							
								
									
										
										
										
											2025-04-09 15:30:54 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								          echo  -e " ${ OS } ${ BOLD } ${ DGN } Operating System:  ${ BGN } $var_os ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								          echo  -e " ${ OSVERSION } ${ BOLD } ${ DGN } Version:  ${ BGN } $var_version ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-20 18:03:27 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								          echo  -e " ${ CONTAINERTYPE } ${ BOLD } ${ DGN } Container Type:  ${ BGN } $CT_TYPE_DESC ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        exit_script
							 
						 
					
						
							
								
									
										
										
										
											2023-04-23 18:09:32 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      fi 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-23 00:09:04 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    fi 
							 
						 
					
						
							
								
									
										
										
										
											2023-04-23 18:09:32 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  done 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-06-20 13:32:57 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  while  true;  do 
							 
						 
					
						
							
								
									
										
										
										
											2024-05-31 16:00:33 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    if  PW1 = $( whiptail --backtitle "Proxmox VE Helper Scripts"  --passwordbox "\nSet Root Password (needed for root ssh access)"  9  58  --title "PASSWORD (leave blank for automatic login)"  3>& 1  1>& 2  2>& 3) ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-20 13:28:06 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      # Empty = Autologin 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      if  [ [  -z " $PW1 "  ] ] ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2024-04-23 06:55:18 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								        PW = "" 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-20 13:28:06 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								        PW1 = "Automatic Login" 
							 
						 
					
						
							
								
									
										
										
										
											2024-12-16 12:41:51 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								        echo  -e " ${ VERIFYPW } ${ BOLD } ${ DGN } Root Password:  ${ BGN } $PW1 ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2024-04-23 06:55:18 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								        break 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      fi 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-20 13:28:06 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      # Invalid: contains spaces 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      if  [ [  " $PW1 "  = =  *" " * ] ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        whiptail --msgbox "Password cannot contain spaces."  8  58 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        continue 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      # Invalid: too short 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      if  ( ( ${# PW1 }  < 5) ) ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        whiptail --msgbox "Password must be at least 5 characters."  8  58 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        continue 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      # Confirm password 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      if  PW2 = $( whiptail --backtitle "Proxmox VE Helper Scripts"  --passwordbox "\nVerify Root Password"  9  58  --title "PASSWORD VERIFICATION"  3>& 1  1>& 2  2>& 3) ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        if  [ [  " $PW1 "  = =  " $PW2 "  ] ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								          PW = " -password  $PW1 " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								          echo  -e " ${ VERIFYPW } ${ BOLD } ${ DGN } Root Password:  ${ BGN } ******** ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								          break 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								          whiptail --msgbox "Passwords do not match. Please try again."  8  58 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        exit_script
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      fi 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    else 
							 
						 
					
						
							
								
									
										
										
										
											2024-12-16 12:41:51 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      exit_script
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    fi 
							 
						 
					
						
							
								
									
										
										
										
											2024-04-23 06:55:18 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  done 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-04-09 15:30:54 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  if  CT_ID = $( whiptail --backtitle "Proxmox VE Helper Scripts"  --inputbox "Set Container ID"  8  58  " $NEXTID "  --title "CONTAINER ID"  3>& 1  1>& 2  2>& 3) ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    if  [  -z " $CT_ID "  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      CT_ID = " $NEXTID " 
							 
						 
					
						
							
								
									
										
										
										
											2024-12-16 12:41:51 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      echo  -e " ${ CONTAINERID } ${ BOLD } ${ DGN } Container ID:  ${ BGN } $CT_ID ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    else 
							 
						 
					
						
							
								
									
										
										
										
											2024-12-16 12:41:51 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      echo  -e " ${ CONTAINERID } ${ BOLD } ${ DGN } Container ID:  ${ BGN } $CT_ID ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  else 
							 
						 
					
						
							
								
									
										
										
										
											2025-05-06 09:03:18 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    exit_script
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-06-19 18:48:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  while  true;  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    if  CT_NAME = $( whiptail --backtitle "Proxmox VE Helper Scripts"  --inputbox "Set Hostname"  8  58  " $NSAPP "  --title "HOSTNAME"  3>& 1  1>& 2  2>& 3) ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      if  [  -z " $CT_NAME "  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        HN = " $NSAPP " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        HN = $( echo  " ${ CT_NAME ,, } "  |  tr -d ' ' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      fi 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-20 13:32:57 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      # Hostname validate (RFC 1123) 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-19 18:48:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      if  [ [  " $HN "  = ~ ^[ a-z0-9] ( [ -a-z0-9] *[ a-z0-9] ) ?$ ] ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        echo  -e " ${ HOSTNAME } ${ BOLD } ${ DGN } Hostname:  ${ BGN } $HN ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        break 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        whiptail --backtitle "Proxmox VE Helper Scripts"  \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								          --msgbox " ❌ Invalid hostname: ' $HN '\n\nOnly lowercase letters, digits and hyphens (-) are allowed.\nUnderscores (_) or other characters are not permitted! "  10  70 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      fi 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    else 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-19 18:48:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      exit_script
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    fi 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-19 18:48:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  done 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  while  true;  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    DISK_SIZE = $( whiptail --backtitle "Proxmox VE Helper Scripts"  --inputbox "Set Disk Size in GB"  8  58  " $var_disk "  --title "DISK SIZE"  3>& 1  1>& 2  2>& 3)  ||  exit_script
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    if  [  -z " $DISK_SIZE "  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      DISK_SIZE = " $var_disk " 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-19 18:48:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    if  [ [  " $DISK_SIZE "  = ~ ^[ 1-9] [ 0-9] *$ ] ] ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-13 16:04:59 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      echo  -e " ${ DISKSIZE } ${ BOLD } ${ DGN } Disk Size:  ${ BGN } ${ DISK_SIZE }  GB ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-19 18:48:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      break 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    else 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-19 18:48:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      whiptail --msgbox "Disk size must be a positive integer!"  8  58 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    fi 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-19 18:48:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  done 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  while  true;  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    CORE_COUNT = $( whiptail --backtitle "Proxmox VE Helper Scripts"  \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      --inputbox "Allocate CPU Cores"  8  58  " $var_cpu "  --title "CORE COUNT"  3>& 1  1>& 2  2>& 3)  ||  exit_script
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    if  [  -z " $CORE_COUNT "  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      CORE_COUNT = " $var_cpu " 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-19 18:48:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    if  [ [  " $CORE_COUNT "  = ~ ^[ 1-9] [ 0-9] *$ ] ] ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2024-12-16 12:41:51 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      echo  -e " ${ CPUCORE } ${ BOLD } ${ DGN } CPU Cores:  ${ BGN } $CORE_COUNT ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-19 18:48:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      break 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    else 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-19 18:48:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      whiptail --msgbox "CPU core count must be a positive integer!"  8  58 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    fi 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-19 18:48:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  done 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  while  true;  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    RAM_SIZE = $( whiptail --backtitle "Proxmox VE Helper Scripts"  \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      --inputbox "Allocate RAM in MiB"  8  58  " $var_ram "  --title "RAM"  3>& 1  1>& 2  2>& 3)  ||  exit_script
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    if  [  -z " $RAM_SIZE "  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      RAM_SIZE = " $var_ram " 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-19 18:48:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    if  [ [  " $RAM_SIZE "  = ~ ^[ 1-9] [ 0-9] *$ ] ] ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-13 16:04:59 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      echo  -e " ${ RAMSIZE } ${ BOLD } ${ DGN } RAM Size:  ${ BGN } ${ RAM_SIZE }  MiB ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-19 18:48:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      break 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    else 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-19 18:48:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      whiptail --msgbox "RAM size must be a positive integer!"  8  58 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    fi 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-19 18:48:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  done 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-05-13 18:44:06 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  BRIDGES = "" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  IFACE_FILEPATH_LIST = "/etc/network/interfaces" $'\n' $( find "/etc/network/interfaces.d/"  -type f) 
							 
						 
					
						
							
								
									
										
										
										
											2025-05-15 10:31:37 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  OLD_IFS = $IFS 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  IFS = $'\n' 
							 
						 
					
						
							
								
									
										
										
										
											2025-05-13 18:44:06 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  for  iface_filepath in ${ IFACE_FILEPATH_LIST } ;  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    iface_indexes_tmpfile = $( mktemp -q -u '.iface-XXXX' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-05-15 10:31:37 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    ( grep -Pn '^\s*iface'  " ${ iface_filepath } "  |  cut -d':'  -f1 &&  wc -l " ${ iface_filepath } "  |  cut -d' '  -f1)  | 
							 
						 
					
						
							
								
									
										
										
										
											2025-05-16 09:39:29 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      awk 'FNR==1 {line=$0; next} {print line":"$0-1; line=$0}'  >" ${ iface_indexes_tmpfile } "  ||  true 
							 
						 
					
						
							
								
									
										
										
										
											2025-05-13 18:44:06 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    if  [  -f " ${ iface_indexes_tmpfile } "  ] ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2025-05-15 10:31:37 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      while  read  -r pair;  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        start = $( echo  " ${ pair } "  |  cut -d':'  -f1) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        end = $( echo  " ${ pair } "  |  cut -d':'  -f2) 
							 
						 
					
						
							
								
									
										
										
										
											2025-05-13 18:44:06 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-05-15 12:53:21 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								        if  awk " NR >=  ${ start }  && NR <=  ${ end } "  " ${ iface_filepath } "  |  grep -qP '^\s*(bridge[-_](ports|stp|fd|vlan-aware|vids)|ovs_type\s+OVSBridge)\b' ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2025-05-15 10:31:37 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								          iface_name = $( sed " ${ start } q;d "  " ${ iface_filepath } "  |  awk '{print $2}' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								          BRIDGES = " ${ iface_name } " $'\n' " ${ BRIDGES } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        fi 
							 
						 
					
						
							
								
									
										
										
										
											2025-05-13 18:44:06 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-05-15 10:31:37 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      done  <" ${ iface_indexes_tmpfile } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      rm -f " ${ iface_indexes_tmpfile } " 
							 
						 
					
						
							
								
									
										
										
										
											2025-05-13 18:44:06 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  done 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  IFS = $OLD_IFS 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  BRIDGES = $( echo  " $BRIDGES "  |  grep -v '^\s*$'  |  sort |  uniq) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-05-08 15:50:34 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  if  [ [  -z " $BRIDGES "  ] ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    BRG = "vmbr0" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    echo  -e " ${ BRIDGE } ${ BOLD } ${ DGN } Bridge:  ${ BGN } $BRG ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  else 
							 
						 
					
						
							
								
									
										
										
										
											2025-05-08 16:17:48 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    BRG = $( whiptail --backtitle "Proxmox VE Helper Scripts"  --menu "Select network bridge:"  15  40  6  $( echo  " $BRIDGES "  |  awk '{print $0, "Bridge"}' )  3>& 1  1>& 2  2>& 3) 
							 
						 
					
						
							
								
									
										
										
										
											2025-05-15 10:31:37 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    if  [  -z " $BRG "  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      exit_script
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      echo  -e " ${ BRIDGE } ${ BOLD } ${ DGN } Bridge:  ${ BGN } $BRG ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    fi 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-06-30 12:11:44 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  # IPv4 methods: dhcp, static, none 
							 
						 
					
						
							
								
									
										
										
										
											2023-05-06 04:24:18 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  while  true;  do 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-30 12:11:44 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    IPV4_METHOD = $( whiptail --backtitle "Proxmox VE Helper Scripts"  \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      --title "IPv4 Address Management"  \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      --menu "Select IPv4 Address Assignment Method:"  12  60  2  \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      "dhcp"  "Automatic (DHCP, recommended)"  \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      "static"  "Static (manual entry)"  \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      3>& 1  1>& 2  2>& 3) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-05-06 04:24:18 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    exit_status = $? 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-30 12:11:44 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    if  [  $exit_status  -ne 0  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      exit_script
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    case  " $IPV4_METHOD "  in
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    dhcp) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      NET = "dhcp" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      GATE = "" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      echo  -e " ${ NETWORK } ${ BOLD } ${ DGN } IPv4: DHCP ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      break 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      ; ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    static) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      # Static: call and validate CIDR address 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      while  true;  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        NET = $( whiptail --backtitle "Proxmox VE Helper Scripts"  \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								          --inputbox "Enter Static IPv4 CIDR Address (e.g. 192.168.100.50/24)"  8  58  ""  \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								          --title "IPv4 ADDRESS"  3>& 1  1>& 2  2>& 3) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        if  [  -z " $NET "  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								          whiptail --msgbox "IPv4 address must not be empty."  8  58 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								          continue 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        elif  [ [  " $NET "  = ~ ^( [ 0-9] { 1,3} \. ) { 3} [ 0-9] { 1,3} /( [ 0-9] | [ 1-2] [ 0-9] | 3[ 0-2] ) $ ] ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								          echo  -e " ${ NETWORK } ${ BOLD } ${ DGN } IPv4 Address:  ${ BGN } $NET ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2023-05-06 04:24:18 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								          break 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        else 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-30 12:11:44 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								          whiptail --msgbox " $NET  is not a valid IPv4 CIDR address. Please enter a correct value! "  8  58 
							 
						 
					
						
							
								
									
										
										
										
											2023-05-06 04:24:18 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								        fi 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-30 12:11:44 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      done 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      # call and validate Gateway 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      while  true;  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        GATE1 = $( whiptail --backtitle "Proxmox VE Helper Scripts"  \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								          --inputbox "Enter Gateway IP address for static IPv4"  8  58  ""  \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								          --title "Gateway IP"  3>& 1  1>& 2  2>& 3) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        if  [  -z " $GATE1 "  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								          whiptail --msgbox "Gateway IP address cannot be empty."  8  58 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        elif  [ [  ! " $GATE1 "  = ~ ^( [ 0-9] { 1,3} \. ) { 3} [ 0-9] { 1,3} $ ] ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								          whiptail --msgbox "Invalid Gateway IP address format."  8  58 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								          GATE = " ,gw= $GATE1 " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								          echo  -e " ${ GATEWAY } ${ BOLD } ${ DGN } Gateway IP Address:  ${ BGN } $GATE1 ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								          break 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      done 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      break 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      ; ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    esac 
							 
						 
					
						
							
								
									
										
										
										
											2023-05-06 04:24:18 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  done 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-06-30 12:11:44 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  # IPv6 Address Management selection 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  while  true;  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    IPV6_METHOD = $( whiptail --backtitle "Proxmox VE Helper Scripts"  --menu \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      "Select IPv6 Address Management Type:"  15  58  4  \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      "auto"  "SLAAC/AUTO (recommended, default)"  \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      "dhcp"  "DHCPv6"  \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      "static"  "Static (manual entry)"  \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      "none"  "Disabled"  \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      --default-item "auto"  3>& 1  1>& 2  2>& 3) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    [  $?  -ne 0  ]  &&  exit_script
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    case  " $IPV6_METHOD "  in
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    auto) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      echo  -e " ${ NETWORK } ${ BOLD } ${ DGN } IPv6:  ${ BGN } SLAAC/AUTO ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      IPV6_ADDR = "" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      IPV6_GATE = "" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      break 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      ; ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    dhcp) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      echo  -e " ${ NETWORK } ${ BOLD } ${ DGN } IPv6:  ${ BGN } DHCPv6 ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      IPV6_ADDR = "dhcp" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      IPV6_GATE = "" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      break 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      ; ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    static) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      # Ask for static IPv6 address (CIDR notation, e.g., 2001:db8::1234/64) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      while  true;  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        IPV6_ADDR = $( whiptail --backtitle "Proxmox VE Helper Scripts"  --inputbox \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								          "Set a static IPv6 CIDR address (e.g., 2001:db8::1234/64)"  8  58  ""  \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								          --title "IPv6 STATIC ADDRESS"  3>& 1  1>& 2  2>& 3)  ||  exit_script
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        if  [ [  " $IPV6_ADDR "  = ~ ^( [ 0-9a-fA-F:] +:+) +[ 0-9a-fA-F] +( /[ 0-9] { 1,3} ) $ ] ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								          echo  -e " ${ NETWORK } ${ BOLD } ${ DGN } IPv6 Address:  ${ BGN } $IPV6_ADDR ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								          break 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								          whiptail --backtitle "Proxmox VE Helper Scripts"  --msgbox \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								            " $IPV6_ADDR  is an invalid IPv6 CIDR address. Please enter a valid IPv6 CIDR address (e.g., 2001:db8::1234/64) "  8  58 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      done 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      # Optional: ask for IPv6 gateway for static config 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      while  true;  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        IPV6_GATE = $( whiptail --backtitle "Proxmox VE Helper Scripts"  --inputbox \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								          "Enter IPv6 gateway address (optional, leave blank for none)"  8  58  ""  --title "IPv6 GATEWAY"  3>& 1  1>& 2  2>& 3) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        if  [  -z " $IPV6_GATE "  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								          IPV6_GATE = "" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								          break 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        elif  [ [  " $IPV6_GATE "  = ~ ^( [ 0-9a-fA-F:] +:+) +[ 0-9a-fA-F] +$ ] ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								          break 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								          whiptail --backtitle "Proxmox VE Helper Scripts"  --msgbox \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								            "Invalid IPv6 gateway format."  8  58 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      done 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      break 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      ; ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    none) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      echo  -e " ${ NETWORK } ${ BOLD } ${ DGN } IPv6:  ${ BGN } Disabled ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      IPV6_ADDR = "none" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      IPV6_GATE = "" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      break 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      ; ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    *) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      exit_script
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      ; ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    esac 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  done 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-02-12 10:36:02 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  if  [  " $var_os "  = =  "alpine"  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    APT_CACHER = "" 
							 
						 
					
						
							
								
									
										
										
										
											2024-02-12 10:38:37 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    APT_CACHER_IP = "" 
							 
						 
					
						
							
								
									
										
										
										
											2024-02-12 10:36:02 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  else 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-20 18:03:27 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    if  APT_CACHER_IP = $( whiptail --backtitle "Proxmox VE Helper Scripts"  --inputbox "Set APT-Cacher IP (leave blank for none)"  8  58  --title "APT-Cacher IP"  3>& 1  1>& 2  2>& 3) ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2024-02-12 07:17:23 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      APT_CACHER = " ${ APT_CACHER_IP : +yes } " 
							 
						 
					
						
							
								
									
										
										
										
											2024-12-16 12:41:51 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      echo  -e " ${ NETWORK } ${ BOLD } ${ DGN } APT-Cacher IP Address:  ${ BGN } ${ APT_CACHER_IP :- Default } ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2024-02-12 07:17:23 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    else 
							 
						 
					
						
							
								
									
										
										
										
											2024-12-16 12:41:51 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      exit_script
							 
						 
					
						
							
								
									
										
										
										
											2024-02-12 07:17:23 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    fi 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-12 15:00:42 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-03-21 11:44:07 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  if  MTU1 = $( whiptail --backtitle "Proxmox VE Helper Scripts"  --inputbox "Set Interface MTU Size (leave blank for default [The MTU of your selected vmbr, default is 1500])"  8  58  --title "MTU SIZE"  3>& 1  1>& 2  2>& 3) ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2025-04-09 15:30:54 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    if  [  -z " $MTU1 "  ] ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      MTU1 = "Default" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      MTU = "" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      MTU = " ,mtu= $MTU1 " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    fi 
							 
						 
					
						
							
								
									
										
										
										
											2024-12-16 12:41:51 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    echo  -e " ${ DEFAULT } ${ BOLD } ${ DGN } Interface MTU Size:  ${ BGN } $MTU1 ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  else 
							 
						 
					
						
							
								
									
										
										
										
											2024-12-16 12:41:51 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    exit_script
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-09-09 05:13:17 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  if  SD = $( whiptail --backtitle "Proxmox VE Helper Scripts"  --inputbox "Set a DNS Search Domain (leave blank for HOST)"  8  58  --title "DNS Search Domain"  3>& 1  1>& 2  2>& 3) ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2025-04-09 15:30:54 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    if  [  -z " $SD "  ] ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      SX = Host
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      SD = "" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      SX = $SD 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      SD = " -searchdomain= $SD " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    fi 
							 
						 
					
						
							
								
									
										
										
										
											2024-12-16 12:41:51 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    echo  -e " ${ SEARCH } ${ BOLD } ${ DGN } DNS Search Domain:  ${ BGN } $SX ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  else 
							 
						 
					
						
							
								
									
										
										
										
											2024-12-16 12:41:51 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    exit_script
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-09-09 05:13:17 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  if  NX = $( whiptail --backtitle "Proxmox VE Helper Scripts"  --inputbox "Set a DNS Server IP (leave blank for HOST)"  8  58  --title "DNS SERVER IP"  3>& 1  1>& 2  2>& 3) ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2025-04-09 15:30:54 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    if  [  -z " $NX "  ] ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      NX = Host
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      NS = "" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      NS = " -nameserver= $NX " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    fi 
							 
						 
					
						
							
								
									
										
										
										
											2024-12-16 12:41:51 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    echo  -e " ${ NETWORK } ${ BOLD } ${ DGN } DNS Server IP Address:  ${ BGN } $NX ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  else 
							 
						 
					
						
							
								
									
										
										
										
											2024-12-16 12:41:51 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    exit_script
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-01-20 18:03:27 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  if  MAC1 = $( whiptail --backtitle "Proxmox VE Helper Scripts"  --inputbox "Set a MAC Address(leave blank for generated MAC)"  8  58  --title "MAC ADDRESS"  3>& 1  1>& 2  2>& 3) ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2025-04-09 15:30:54 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    if  [  -z " $MAC1 "  ] ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      MAC1 = "Default" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      MAC = "" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      MAC = " ,hwaddr= $MAC1 " 
							 
						 
					
						
							
								
									
										
										
										
											2024-12-16 12:41:51 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      echo  -e " ${ MACADDRESS } ${ BOLD } ${ DGN } MAC Address:  ${ BGN } $MAC1 ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  else 
							 
						 
					
						
							
								
									
										
										
										
											2024-12-16 12:41:51 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    exit_script
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-01-20 18:03:27 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  if  VLAN1 = $( whiptail --backtitle "Proxmox VE Helper Scripts"  --inputbox "Set a Vlan(leave blank for no VLAN)"  8  58  --title "VLAN"  3>& 1  1>& 2  2>& 3) ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2025-04-09 15:30:54 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    if  [  -z " $VLAN1 "  ] ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      VLAN1 = "Default" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      VLAN = "" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      VLAN = " ,tag= $VLAN1 " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    fi 
							 
						 
					
						
							
								
									
										
										
										
											2024-12-16 12:41:51 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    echo  -e " ${ VLANTAG } ${ BOLD } ${ DGN } Vlan:  ${ BGN } $VLAN1 ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  else 
							 
						 
					
						
							
								
									
										
										
										
											2024-12-16 12:41:51 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    exit_script
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-04-09 15:30:54 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  if  ADV_TAGS = $( whiptail --backtitle "Proxmox VE Helper Scripts"  --inputbox "Set Custom Tags?[If you remove all, there will be no tags!]"  8  58  " ${ TAGS } "  --title "Advanced Tags"  3>& 1  1>& 2  2>& 3) ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-10 13:17:44 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    if  [  -n " ${ ADV_TAGS } "  ] ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-29 14:26:23 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      ADV_TAGS = $( echo  " $ADV_TAGS "  |  tr -d '[:space:]' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      TAGS = " ${ ADV_TAGS } " 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-14 14:29:08 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    else 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-20 15:11:42 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      TAGS = ";" 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-10 13:17:44 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    fi 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-29 14:26:23 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    echo  -e " ${ NETWORK } ${ BOLD } ${ DGN } Tags:  ${ BGN } $TAGS ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    exit_script
							 
						 
					
						
							
								
									
										
										
										
											2025-01-10 13:17:44 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-06-19 18:48:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  SSH_AUTHORIZED_KEY = " $( whiptail --backtitle "Proxmox VE Helper Scripts"  --inputbox "SSH Authorized key for root (leave empty for none)"  8  58  --title "SSH Key"  3>& 1  1>& 2  2>& 3) " 
							 
						 
					
						
							
								
									
										
										
										
											2025-05-16 09:49:16 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  if  [ [  -z " ${ SSH_AUTHORIZED_KEY } "  ] ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    SSH_AUTHORIZED_KEY = "" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  if  [ [  " $PW "  = =  -password* ||  -n " $SSH_AUTHORIZED_KEY "  ] ] ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-19 18:48:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    if  ( whiptail --backtitle "Proxmox VE Helper Scripts"  --defaultno --title "SSH ACCESS"  --yesno "Enable Root SSH Access?"  10  58) ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2023-05-11 14:04:12 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      SSH = "yes" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      SSH = "no" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    fi 
							 
						 
					
						
							
								
									
										
										
										
											2024-12-16 12:41:51 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    echo  -e " ${ ROOTSSH } ${ BOLD } ${ DGN } Root SSH Access:  ${ BGN } $SSH ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    SSH = "no" 
							 
						 
					
						
							
								
									
										
										
										
											2024-12-16 12:41:51 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    echo  -e " ${ ROOTSSH } ${ BOLD } ${ DGN } Root SSH Access:  ${ BGN } $SSH ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-06-02 14:16:11 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  if  ( whiptail --backtitle "Proxmox VE Helper Scripts"  --defaultno --title "FUSE Support"  --yesno "Enable FUSE support?\nRequired for tools like rclone, mergerfs, AppImage, etc."  10  58) ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2025-05-22 14:32:27 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    ENABLE_FUSE = "yes" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    ENABLE_FUSE = "no" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  echo  -e " ${ FUSE } ${ BOLD } ${ DGN } Enable FUSE Support:  ${ BGN } $ENABLE_FUSE ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-13 16:04:59 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-09-09 05:13:17 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  if  ( whiptail --backtitle "Proxmox VE Helper Scripts"  --defaultno --title "VERBOSE MODE"  --yesno "Enable Verbose Mode?"  10  58) ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-20 13:28:06 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    VERBOSE = "yes" 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  else 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-20 13:28:06 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    VERBOSE = "no" 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  fi 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-20 13:28:06 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  echo  -e " ${ SEARCH } ${ BOLD } ${ DGN } Verbose Mode:  ${ BGN } $VERBOSE ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-09-09 05:13:17 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  if  ( whiptail --backtitle "Proxmox VE Helper Scripts"  --title "ADVANCED SETTINGS COMPLETE"  --yesno " Ready to create  ${ APP }  LXC? "  10  58) ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2024-12-16 12:41:51 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    echo  -e " ${ CREATING } ${ BOLD } ${ RD } Creating a  ${ APP }  LXC using the above advanced settings ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2025-05-20 11:00:58 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    write_config
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    clear
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    header_info
							 
						 
					
						
							
								
									
										
										
										
											2024-12-20 10:04:27 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    echo  -e " ${ ADVANCED } ${ BOLD } ${ RD } Using Advanced Settings on node  $PVEHOST_NAME ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    advanced_settings
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-02-24 11:18:38 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								diagnostics_check( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-29 14:26:23 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  if  ! [  -d "/usr/local/community-scripts"  ] ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2025-02-24 11:18:38 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    mkdir -p /usr/local/community-scripts
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  fi 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-29 14:26:23 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-02-24 11:18:38 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  if  ! [  -f "/usr/local/community-scripts/diagnostics"  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    if  ( whiptail --backtitle "Proxmox VE Helper Scripts"  --title "DIAGNOSTICS"  --yesno "Send Diagnostics of LXC Installation?\n\n(This only transmits data without user data, just RAM, CPU, LXC name, ...)"  10  58) ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      cat <<EOF >/usr/local/community-scripts/diagnostics
							 
						 
					
						
							
								
									
										
										
										
											2025-01-29 14:26:23 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								DIAGNOSTICS = yes
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								#This file is used to store the diagnostics settings for the Community-Scripts API. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								#https://github.com/community-scripts/ProxmoxVE/discussions/1836 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								#Your diagnostics will be sent to the Community-Scripts API for troubleshooting/statistical purposes. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								#You can review the data at https://community-scripts.github.io/ProxmoxVE/data 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								#If you do not wish to send diagnostics, please set the variable 'DIAGNOSTICS' to "no" in /usr/local/community-scripts/diagnostics, or use the menue. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								#This will disable the diagnostics feature. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								#To send diagnostics, set the variable 'DIAGNOSTICS' to "yes" in /usr/local/community-scripts/diagnostics, or use the menue. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								#This will enable the diagnostics feature. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								#The following information will be sent: 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								#"ct_type" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								#"disk_size" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								#"core_count" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								#"ram_size" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								#"os_type" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								#"os_version" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								#"nsapp" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								#"method" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								#"pve_version" 
							 
						 
					
						
							
								
									
										
										
										
											2025-02-03 10:05:41 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								#"status" 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-29 14:26:23 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								#If you have any concerns, please review the source code at /misc/build.func 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								EOF
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      DIAGNOSTICS = "yes" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      cat <<EOF >/usr/local/community-scripts/diagnostics
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								DIAGNOSTICS = no
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								#This file is used to store the diagnostics settings for the Community-Scripts API. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								#https://github.com/community-scripts/ProxmoxVE/discussions/1836 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								#Your diagnostics will be sent to the Community-Scripts API for troubleshooting/statistical purposes. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								#You can review the data at https://community-scripts.github.io/ProxmoxVE/data 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								#If you do not wish to send diagnostics, please set the variable 'DIAGNOSTICS' to "no" in /usr/local/community-scripts/diagnostics, or use the menue. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								#This will disable the diagnostics feature. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								#To send diagnostics, set the variable 'DIAGNOSTICS' to "yes" in /usr/local/community-scripts/diagnostics, or use the menue. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								#This will enable the diagnostics feature. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								#The following information will be sent: 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								#"ct_type" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								#"disk_size" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								#"core_count" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								#"ram_size" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								#"os_type" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								#"os_version" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								#"nsapp" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								#"method" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								#"pve_version" 
							 
						 
					
						
							
								
									
										
										
										
											2025-02-03 10:05:41 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								#"status" 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-29 14:26:23 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								#If you have any concerns, please review the source code at /misc/build.func 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								EOF
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      DIAGNOSTICS = "no" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    DIAGNOSTICS = $( awk -F '='  '/^DIAGNOSTICS/ {print $2}'  /usr/local/community-scripts/diagnostics) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								install_script( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2024-02-21 18:26:12 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  pve_check
							 
						 
					
						
							
								
									
										
										
										
											2024-02-21 19:51:36 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  shell_check
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  root_check
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  arch_check
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  ssh_check
							 
						 
					
						
							
								
									
										
										
										
											2025-01-20 09:19:47 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  maxkeys_check
							 
						 
					
						
							
								
									
										
										
										
											2025-01-29 14:26:23 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  diagnostics_check
							 
						 
					
						
							
								
									
										
										
										
											2024-02-21 19:51:36 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-04-30 05:56:05 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  if  systemctl is-active -q ping-instances.service;  then 
							 
						 
					
						
							
								
									
										
										
										
											2023-10-15 11:19:54 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    systemctl -q stop ping-instances.service
							 
						 
					
						
							
								
									
										
										
										
											2023-04-30 05:56:05 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  fi 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  NEXTID = $( pvesh get /cluster/nextid) 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-23 12:31:19 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  timezone = $( cat /etc/timezone) 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  header_info
							 
						 
					
						
							
								
									
										
										
										
											2024-12-16 12:41:51 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  while  true;  do 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-29 14:26:23 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-07-15 13:47:08 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    TMP_CHOICE = $( whiptail --backtitle "Proxmox VE Helper Scripts"  \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      --title "SETTINGS"  \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      --menu "Choose an option:"  20  60  6  \
 
							 
						 
					
						
							
								
									
										
										
										
											2024-12-16 12:41:51 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      "1"  "Default Settings"  \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      "2"  "Default Settings (with verbose)"  \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      "3"  "Advanced Settings"  \
 
							 
						 
					
						
							
								
									
										
										
										
											2025-04-10 21:06:27 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      "4"  "Use Config File"  \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      "5"  "Diagnostic Settings"  \
 
							 
						 
					
						
							
								
									
										
										
										
											2025-07-15 13:15:42 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      "6"  "Exit"  \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      --default-item "1"  3>& 1  1>& 2  2>& 3)  ||  true 
							 
						 
					
						
							
								
									
										
										
										
											2024-12-16 12:41:51 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-07-15 13:15:42 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    if  [  -z " $TMP_CHOICE "  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      echo  -e " \n ${ CROSS } ${ RD } Menu canceled. Exiting script. ${ CL } \n " 
							 
						 
					
						
							
								
									
										
										
										
											2024-12-16 12:41:51 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      exit  0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-07-15 13:38:25 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    CHOICE = " $TMP_CHOICE " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-12-16 12:41:51 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    case  $CHOICE  in
							 
						 
					
						
							
								
									
										
										
										
											2025-01-29 14:26:23 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    1) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      header_info
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      echo  -e " ${ DEFAULT } ${ BOLD } ${ BL } Using Default Settings on node  $PVEHOST_NAME ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-20 13:28:06 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      VERBOSE = "no" 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-29 14:26:23 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      METHOD = "default" 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-20 13:28:06 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      base_settings " $VERBOSE " 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-29 14:26:23 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      echo_default
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      break 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      ; ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    2) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      header_info
							 
						 
					
						
							
								
									
										
										
										
											2025-04-02 10:07:25 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      echo  -e " ${ DEFAULT } ${ BOLD } ${ BL } Using Default Settings on node  $PVEHOST_NAME  ( ${ VERBOSE_CROPPED } Verbose) ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-20 13:28:06 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      VERBOSE = "yes" 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-29 14:26:23 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      METHOD = "default" 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-20 13:28:06 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      base_settings " $VERBOSE " 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-29 14:26:23 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      echo_default
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      break 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      ; ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    3) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      header_info
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      echo  -e " ${ ADVANCED } ${ BOLD } ${ RD } Using Advanced Settings on node  $PVEHOST_NAME ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      METHOD = "advanced" 
							 
						 
					
						
							
								
									
										
										
										
											2025-02-13 15:03:18 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      base_settings
							 
						 
					
						
							
								
									
										
										
										
											2025-01-29 14:26:23 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      advanced_settings
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      break 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      ; ; 
							 
						 
					
						
							
								
									
										
										
										
											2025-02-24 11:18:38 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    4) 
							 
						 
					
						
							
								
									
										
										
										
											2025-04-10 21:06:27 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      header_info
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      echo  -e " ${ INFO } ${ HOLD }   ${ GN } Using Config File on node  $PVEHOST_NAME ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2025-05-20 11:00:58 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      METHOD = "config_file" 
							 
						 
					
						
							
								
									
										
										
										
											2025-05-16 15:48:18 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      source  <( curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/config-file.func) 
							 
						 
					
						
							
								
									
										
										
										
											2025-04-10 21:06:27 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      config_file
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      break 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      ; ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    5) 
							 
						 
					
						
							
								
									
										
										
										
											2025-02-24 11:18:38 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      if  [ [  $DIAGNOSTICS  = =  "yes"  ] ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        if  whiptail --backtitle "Proxmox VE Helper Scripts"  --title "DIAGNOSTICS SETTINGS"  --yesno " Send Diagnostics of LXC Installation?\n\nCurrent setting:  ${ DIAGNOSTICS } "  10  58  \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								          --yes-button "No"  --no-button "Back" ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								          DIAGNOSTICS = "no" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								          sed -i 's/^DIAGNOSTICS=.*/DIAGNOSTICS=no/'  /usr/local/community-scripts/diagnostics
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								          whiptail --backtitle "Proxmox VE Helper Scripts"  --title "DIAGNOSTICS SETTINGS"  --msgbox " Diagnostics settings changed to  ${ DIAGNOSTICS } . "  8  58 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        if  whiptail --backtitle "Proxmox VE Helper Scripts"  --title "DIAGNOSTICS SETTINGS"  --yesno " Send Diagnostics of LXC Installation?\n\nCurrent setting:  ${ DIAGNOSTICS } "  10  58  \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								          --yes-button "Yes"  --no-button "Back" ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								          DIAGNOSTICS = "yes" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								          sed -i 's/^DIAGNOSTICS=.*/DIAGNOSTICS=yes/'  /usr/local/community-scripts/diagnostics
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								          whiptail --backtitle "Proxmox VE Helper Scripts"  --title "DIAGNOSTICS SETTINGS"  --msgbox " Diagnostics settings changed to  ${ DIAGNOSTICS } . "  8  58 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      ; ; 
							 
						 
					
						
							
								
									
										
										
										
											2025-04-10 21:06:27 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    6) 
							 
						 
					
						
							
								
									
										
										
										
											2025-07-15 13:15:42 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      echo  -e " \n ${ CROSS } ${ RD } Script terminated. Have a great day! ${ CL } \n " 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-29 14:26:23 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      exit  0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      ; ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    *) 
							 
						 
					
						
							
								
									
										
										
										
											2025-07-15 13:47:08 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      echo  -e " \n ${ CROSS } ${ RD } Invalid option, please try again. ${ CL } \n " 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-29 14:26:23 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      ; ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-12-16 12:41:51 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    esac 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  done 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-11-15 18:13:14 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								check_container_resources( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  # Check actual RAM & Cores 
							 
						 
					
						
							
								
									
										
										
										
											2024-12-07 22:42:40 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  current_ram = $( free -m |  awk 'NR==2{print $2}' ) 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-13 16:04:59 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  current_cpu = $( nproc) 
							 
						 
					
						
							
								
									
										
										
										
											2024-11-15 18:13:14 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  # Check whether the current RAM is less than the required RAM or the CPU cores are less than required 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  if  [ [  " $current_ram "  -lt " $var_ram "  ] ]  ||  [ [  " $current_cpu "  -lt " $var_cpu "  ] ] ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2024-12-16 12:41:51 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    echo  -e " \n ${ INFO } ${ HOLD }   ${ GN } Required:  ${ var_cpu }  CPU,  ${ var_ram } MB RAM  ${ CL } |  ${ RD } Current:  ${ current_cpu }  CPU,  ${ current_ram } MB RAM ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2024-11-15 18:13:14 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    echo  -e " ${ YWB } Please ensure that the  ${ APP }  LXC is configured with at least  ${ var_cpu }  vCPU and  ${ var_ram }  MB RAM for the build process. ${ CL } \n " 
							 
						 
					
						
							
								
									
										
										
										
											2025-02-10 17:29:33 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    echo  -ne " ${ INFO } ${ HOLD }  May cause data loss!  ${ INFO }  Continue update with under-provisioned LXC? <yes/No>   " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    read  -r prompt
							 
						 
					
						
							
								
									
										
										
										
											2024-12-16 12:41:51 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    # Check if the input is 'yes', otherwise exit with status 1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    if  [ [  ! ${ prompt ,, }  = ~ ^( yes) $ ] ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      echo  -e " ${ CROSS } ${ HOLD }   ${ YWB } Exiting based on user input. ${ CL } " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      exit  1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    fi 
							 
						 
					
						
							
								
									
										
										
										
											2024-11-15 18:13:14 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    echo  -e "" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								check_container_storage( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  # Check if the /boot partition is more than 80% full 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  total_size = $( df /boot --output= size |  tail -n 1) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  local  used_size = $( df /boot --output= used |  tail -n 1) 
							 
						 
					
						
							
								
									
										
										
										
											2025-02-24 11:18:38 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  usage = $(( 100  *  used_size /  total_size)) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  if  ( ( usage > 80) ) ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2024-11-15 18:13:14 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    # Prompt the user for confirmation to continue 
							 
						 
					
						
							
								
									
										
										
										
											2024-12-16 12:41:51 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    echo  -e " ${ INFO } ${ HOLD }   ${ YWB } Warning: Storage is dangerously low ( ${ usage } %). ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2025-02-10 17:29:33 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    echo  -ne "Continue anyway? <y/N>  " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    read  -r prompt
							 
						 
					
						
							
								
									
										
										
										
											2024-11-15 18:13:14 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    # Check if the input is 'y' or 'yes', otherwise exit with status 1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    if  [ [  ! ${ prompt ,, }  = ~ ^( y| yes) $ ] ] ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2024-12-16 12:41:51 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      echo  -e " ${ CROSS } ${ HOLD } ${ YWB } Exiting based on user input. ${ CL } " 
							 
						 
					
						
							
								
									
										
										
										
											2024-11-15 18:13:14 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      exit  1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								start( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-20 13:32:57 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  source  <( curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/tools.func) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  if  command  -v pveversion >/dev/null 2>& 1;  then 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    install_script
							 
						 
					
						
							
								
									
										
										
										
											2025-06-20 13:28:06 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  else 
							 
						 
					
						
							
								
									
										
										
										
											2025-02-24 11:18:38 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    CHOICE = $( whiptail --backtitle "Proxmox VE Helper Scripts"  --title " ${ APP }  LXC Update/Setting "  --menu \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      " Support/Update functions for  ${ APP }  LXC. Choose an option: "  \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      12  60  3  \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      "1"  "YES (Silent Mode)"  \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      "2"  "YES (Verbose Mode)"  \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      "3"  "NO (Cancel Update)"  --nocancel --default-item "1"  3>& 1  1>& 2  2>& 3) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    case  " $CHOICE "  in
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    1) 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-20 13:28:06 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      VERBOSE = "no" 
							 
						 
					
						
							
								
									
										
										
										
											2025-02-24 11:18:38 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      set_std_mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      ; ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    2) 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-20 13:28:06 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      VERBOSE = "yes" 
							 
						 
					
						
							
								
									
										
										
										
											2025-02-24 11:18:38 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      set_std_mode
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      ; ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    3) 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      clear
							 
						 
					
						
							
								
									
										
										
										
											2024-12-16 12:41:51 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      exit_script
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      exit 
							 
						 
					
						
							
								
									
										
										
										
											2025-02-24 11:18:38 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      ; ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    esac 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    update_script
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-05-15 18:55:53 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								# This function collects user settings and integrates all the collected information. 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								build_container( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-20 13:28:06 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  #  if [ "$VERBOSE" == "yes" ]; then set -x; fi 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-23 07:33:03 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-06-30 12:11:44 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  NET_STRING = " -net0 name=eth0,bridge= $BRG $MAC ,ip= $NET $GATE $VLAN $MTU " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  case  " $IPV6_METHOD "  in
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  auto)  NET_STRING = " $NET_STRING ,ip6=auto "  ; ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  dhcp)  NET_STRING = " $NET_STRING ,ip6=dhcp "  ; ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  static) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    NET_STRING = " $NET_STRING ,ip6= $IPV6_ADDR " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    [  -n " $IPV6_GATE "  ]  &&  NET_STRING = " $NET_STRING ,gw6= $IPV6_GATE " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    ; ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  none)  ; ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  esac 
							 
						 
					
						
							
								
									
										
										
										
											2023-12-06 20:13:12 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  if  [  " $CT_TYPE "  = =  "1"  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    FEATURES = "keyctl=1,nesting=1" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    FEATURES = "nesting=1" 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-23 07:33:03 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-05-22 14:32:27 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  if  [  " $ENABLE_FUSE "  = =  "yes"  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    FEATURES = " $FEATURES ,fuse=1 " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-01-29 14:26:23 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  if  [ [  $DIAGNOSTICS  = =  "yes"  ] ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    post_to_api
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  fi 
							 
						 
					
						
							
								
									
										
										
										
											2023-12-06 20:13:12 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  TEMP_DIR = $( mktemp -d) 
							 
						 
					
						
							
								
									
										
										
										
											2025-04-09 15:30:54 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  pushd  " $TEMP_DIR "  >/dev/null
							 
						 
					
						
							
								
									
										
										
										
											2023-03-23 12:51:53 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  if  [  " $var_os "  = =  "alpine"  ] ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2025-04-01 10:25:46 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    export  FUNCTIONS_FILE_PATH = " $( curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/alpine-install.func) " 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-23 12:51:53 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  else 
							 
						 
					
						
							
								
									
										
										
										
											2025-04-01 10:25:46 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    export  FUNCTIONS_FILE_PATH = " $( curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/install.func) " 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-12 12:09:32 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  fi 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-10 09:24:20 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  export  DIAGNOSTICS = " $DIAGNOSTICS " 
							 
						 
					
						
							
								
									
										
										
										
											2025-02-04 13:23:20 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  export  RANDOM_UUID = " $RANDOM_UUID " 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-12 15:00:42 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  export  CACHER = " $APT_CACHER " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  export  CACHER_IP = " $APT_CACHER_IP " 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  export  tz = " $timezone " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  export  APPLICATION = " $APP " 
							 
						 
					
						
							
								
									
										
										
										
											2023-08-17 09:26:44 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  export  app = " $NSAPP " 
							 
						 
					
						
							
								
									
										
										
										
											2023-05-15 05:53:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  export  PASSWORD = " $PW " 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-20 13:28:06 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  export  VERBOSE = " $VERBOSE " 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  export  SSH_ROOT = " ${ SSH } " 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-15 15:01:24 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  export  SSH_AUTHORIZED_KEY
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  export  CTID = " $CT_ID " 
							 
						 
					
						
							
								
									
										
										
										
											2023-05-14 11:43:17 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  export  CTTYPE = " $CT_TYPE " 
							 
						 
					
						
							
								
									
										
										
										
											2025-05-22 14:32:27 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  export  ENABLE_FUSE = " $ENABLE_FUSE " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  export  ENABLE_TUN = " $ENABLE_TUN " 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  export  PCT_OSTYPE = " $var_os " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  export  PCT_OSVERSION = " $var_version " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  export  PCT_DISK_SIZE = " $DISK_SIZE " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  export  PCT_OPTIONS = " 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    -features $FEATURES 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    -hostname $HN 
							 
						 
					
						
							
								
									
										
										
										
											2024-12-16 12:41:51 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    -tags $TAGS 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    $SD 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    $NS 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-30 12:11:44 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    $NET_STRING 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    -onboot 1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    -cores $CORE_COUNT 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    -memory $RAM_SIZE 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    -unprivileged $CT_TYPE 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    $PW 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  " 
 
							 
						 
					
						
							
								
									
										
										
										
											2023-05-15 18:55:53 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  # This executes create_lxc.sh and creates the container and .conf file 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-19 18:50:23 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  bash -c " $( curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/create_lxc.sh) "  $? 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-23 04:22:01 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-07-04 21:22:50 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  LXC_CONFIG = " /etc/pve/lxc/ ${ CTID } .conf " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  # USB passthrough for privileged LXC (CT_TYPE=0) 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  if  [  " $CT_TYPE "  = =  "0"  ] ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2025-04-09 15:30:54 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    cat <<EOF >>" $LXC_CONFIG " 
							 
						 
					
						
							
								
									
										
										
										
											2023-07-11 17:38:19 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								# USB passthrough 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								lxc.cgroup2.devices.allow: a
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								lxc.cap.drop:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								lxc.cgroup2.devices.allow: c 188:* rwm
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								lxc.cgroup2.devices.allow: c 189:* rwm
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								lxc.mount.entry: /dev/serial/by-id  dev/serial/by-id  none bind,optional,create= dir
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								lxc.mount.entry: /dev/ttyUSB0       dev/ttyUSB0       none bind,optional,create= file
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								lxc.mount.entry: /dev/ttyUSB1       dev/ttyUSB1       none bind,optional,create= file
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								lxc.mount.entry: /dev/ttyACM0       dev/ttyACM0       none bind,optional,create= file
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								lxc.mount.entry: /dev/ttyACM1       dev/ttyACM1       none bind,optional,create= file
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								EOF
							 
						 
					
						
							
								
									
										
										
										
											2023-03-23 00:09:04 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-07-04 21:22:50 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  # VAAPI passthrough for privileged containers or known apps 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  VAAPI_APPS = ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    "immich" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    "Channels" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    "Emby" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    "ErsatzTV" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    "Frigate" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    "Jellyfin" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    "Plex" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    "Scrypted" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    "Tdarr" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    "Unmanic" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    "Ollama" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    "FileFlows" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    "Open WebUI" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  is_vaapi_app = false 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  for  vaapi_app in " ${ VAAPI_APPS [@] } " ;  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    if  [ [  " $APP "  = =  " $vaapi_app "  ] ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      is_vaapi_app = true 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      break 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-23 00:09:04 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    fi 
							 
						 
					
						
							
								
									
										
										
										
											2025-07-04 21:22:50 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  done 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  if  ( [  " $CT_TYPE "  = =  "0"  ]  ||  [  " $is_vaapi_app "  = =  "true"  ] )  && 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    ( [ [  -e /dev/dri/renderD128 ] ]  ||  [ [  -e /dev/dri/card0 ] ]  ||  [ [  -e /dev/fb0 ] ] ) ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    echo  "" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    msg_custom "⚙️ "  "\e[96m"  "Configuring VAAPI passthrough for LXC container" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    if  [  " $CT_TYPE "  !=  "0"  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
										 
									
								 
							
							
								      msg_custom "⚠️ "  "\e[33m"  "Container is unprivileged –   VAAPI passthrough may not work without additional host configuration (e.g., idmap)." 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
										 
									
								 
							
							
								    msg_custom "ℹ ️   "  "\e[96m"  "VAAPI enables GPU hardware acceleration (e.g., for video transcoding in Jellyfin or Plex)." 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    echo  "" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    read  -rp "➤ Automatically mount all available VAAPI devices? [Y/n]: "  VAAPI_ALL
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    if  [ [  " $VAAPI_ALL "  = ~ ^[ Yy] $| ^$ ] ] ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2025-07-09 16:10:13 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      if  [  " $CT_TYPE "  = =  "0"  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        # PRV Container → alles zulässig 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        [ [  -e /dev/dri/renderD128 ] ]  &&  { 
							 
						 
					
						
							
								
									
										
										
										
											2025-07-04 21:22:50 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								          echo  "lxc.cgroup2.devices.allow: c 226:128 rwm"  >>" $LXC_CONFIG " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								          echo  "lxc.mount.entry: /dev/dri/renderD128 dev/dri/renderD128 none bind,optional,create=file"  >>" $LXC_CONFIG " 
							 
						 
					
						
							
								
									
										
										
										
											2025-07-09 16:10:13 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        [ [  -e /dev/dri/card0 ] ]  &&  { 
							 
						 
					
						
							
								
									
										
										
										
											2025-07-04 21:22:50 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								          echo  "lxc.cgroup2.devices.allow: c 226:0 rwm"  >>" $LXC_CONFIG " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								          echo  "lxc.mount.entry: /dev/dri/card0 dev/dri/card0 none bind,optional,create=file"  >>" $LXC_CONFIG " 
							 
						 
					
						
							
								
									
										
										
										
											2025-07-09 16:10:13 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        [ [  -e /dev/fb0 ] ]  &&  { 
							 
						 
					
						
							
								
									
										
										
										
											2025-07-04 21:22:50 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								          echo  "lxc.cgroup2.devices.allow: c 29:0 rwm"  >>" $LXC_CONFIG " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								          echo  "lxc.mount.entry: /dev/fb0 dev/fb0 none bind,optional,create=file"  >>" $LXC_CONFIG " 
							 
						 
					
						
							
								
									
										
										
										
											2025-07-09 16:10:13 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        [ [  -d /dev/dri ] ]  &&  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								          echo  "lxc.mount.entry: /dev/dri dev/dri none bind,optional,create=dir"  >>" $LXC_CONFIG " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        # UNPRV Container → nur devX für UI 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        [ [  -e /dev/dri/card0 ] ]  &&  echo  "dev0: /dev/dri/card0,gid=44"  >>" $LXC_CONFIG " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        [ [  -e /dev/dri/card1 ] ]  &&  echo  "dev0: /dev/dri/card1,gid=44"  >>" $LXC_CONFIG " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								        [ [  -e /dev/dri/renderD128 ] ]  &&  echo  "dev1: /dev/dri/renderD128,gid=104"  >>" $LXC_CONFIG " 
							 
						 
					
						
							
								
									
										
										
										
											2024-04-25 14:36:47 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      fi 
							 
						 
					
						
							
								
									
										
										
										
											2025-07-09 16:10:13 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    fi 
							 
						 
					
						
							
								
									
										
										
										
											2025-07-04 21:22:50 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-07-09 16:10:13 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  if  [  " $CT_TYPE "  = =  "1"  ]  &&  [  " $is_vaapi_app "  = =  "true"  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    if  [ [  -e /dev/dri/card0 ] ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      echo  "dev0: /dev/dri/card0,gid=44"  >>" $LXC_CONFIG " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    elif  [ [  -e /dev/dri/card1 ] ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      echo  "dev0: /dev/dri/card1,gid=44"  >>" $LXC_CONFIG " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    if  [ [  -e /dev/dri/renderD128 ] ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      echo  "dev1: /dev/dri/renderD128,gid=104"  >>" $LXC_CONFIG " 
							 
						 
					
						
							
								
									
										
										
										
											2024-04-25 14:36:47 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    fi 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  fi 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-23 00:09:04 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-07-04 21:22:50 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  # TUN device passthrough 
							 
						 
					
						
							
								
									
										
										
										
											2025-05-22 14:32:27 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  if  [  " $ENABLE_TUN "  = =  "yes"  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    cat <<EOF >>" $LXC_CONFIG " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								lxc.cgroup2.devices.allow: c 10:200 rwm
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								lxc.mount.entry: /dev/net/tun dev/net/tun none bind,create= file
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								EOF
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-06-22 20:25:01 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  # This starts the container and executes <app>-install.sh 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  msg_info "Starting LXC Container" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  pct start " $CTID " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  msg_ok "Started LXC Container" 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-22 20:53:02 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-06-22 20:43:25 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  msg_info "Customizing LXC Container" 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-22 20:53:02 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  : " ${ tz : =Etc/UTC } " 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-22 20:25:01 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  if  [  " $var_os "  = =  "alpine"  ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    sleep 3 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    pct exec  " $CTID "  -- /bin/sh -c ' cat <<EOF >/etc/apk/repositories
							 
						 
					
						
							
								
									
										
										
										
											2024-06-30 09:35:33 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								http://dl-cdn.alpinelinux.org/alpine/latest-stable/main
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								http://dl-cdn.alpinelinux.org/alpine/latest-stable/community
							 
						 
					
						
							
								
									
										
										
										
											2024-01-16 22:24:33 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								EOF' 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-22 20:43:25 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    pct exec  " $CTID "  -- ash -c "apk add bash newt curl openssh nano mc ncurses >/dev/null" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    sleep 3 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    pct exec  " $CTID "  -- bash -c " sed -i '/ $LANG / s/^# //' /etc/locale.gen " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    pct exec  " $CTID "  -- bash -c " locale_line=\$(grep -v '^#' /etc/locale.gen | grep -E '^[a-zA-Z]' | awk '{print \$1}' | head -n 1) && \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    echo  LANG = \$ locale_line >/etc/default/locale &&  \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    locale-gen >/dev/null &&  \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    export  LANG = \$ locale_line" 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-07-04 21:22:50 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    if  [ [  -z " ${ tz :- } "  ] ] ;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      tz = $( timedatectl show --property= Timezone --value 2>/dev/null ||  echo  "Etc/UTC" ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    fi 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-22 20:53:02 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    if  pct exec  " $CTID "  -- test  -e " /usr/share/zoneinfo/ $tz " ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2025-07-04 21:22:50 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								      pct exec  " $CTID "  -- bash -c " tz=' $tz '; echo \"\$tz\" >/etc/timezone && ln -sf \"/usr/share/zoneinfo/\$tz\" /etc/localtime " 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-22 20:53:02 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    else 
							 
						 
					
						
							
								
									
										
										
										
											2025-07-04 21:22:50 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
										 
									
								 
							
							
								      msg_warn " Skipping timezone setup –   zone ' $tz ' not found in container " 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-22 20:53:02 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    fi 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-22 20:43:25 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    pct exec  " $CTID "  -- bash -c "apt-get update >/dev/null && apt-get install -y sudo curl mc gnupg2 >/dev/null" 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-20 13:28:06 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  fi 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-22 20:43:25 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  msg_ok "Customized LXC Container" 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-22 19:54:55 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-06-22 20:53:02 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  lxc-attach -n " $CTID "  -- bash -c " $( curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/install/" $var_install " .sh) "  $? 
							 
						 
					
						
							
								
									
										
										
										
											2025-06-22 20:25:01 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								} 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-05-15 18:55:53 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								# This function sets the description of the container. 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 20:48:20 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								description( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  IP = $( pct exec  " $CTID "  ip a s dev eth0 |  awk '/inet / {print $2}'  |  cut -d/ -f1) 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-27 09:01:41 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-11-12 16:54:39 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  # Generate LXC Description 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-29 14:26:23 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  DESCRIPTION = $( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    cat <<EOF
							 
						 
					
						
							
								
									
										
										
										
											2024-11-12 16:54:39 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								<div align = 'center' >
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  <a href = 'https://Helper-Scripts.com'  target = '_blank'  rel = 'noopener noreferrer' >
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    <img src = 'https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/images/logo-81x112.png'  alt = 'Logo'  style = 'width:81px;height:112px;' />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  </a>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  <h2 style = 'font-size: 24px; margin: 20px 0;' >${ APP }  LXC</h2>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  <p style = 'margin: 16px 0;' >
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    <a href = 'https://ko-fi.com/community_scripts'  target = '_blank'  rel = 'noopener noreferrer' >
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								      <img src = 'https://img.shields.io/badge/☕-Buy us a coffee-blue'  alt = 'spend Coffee'  />
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    </a>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  </p>
							 
						 
					
						
							
								
									
										
										
										
											2025-05-13 18:44:06 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-11-12 16:54:39 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  <span style = 'margin: 0 10px;' >
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    <i class = "fa fa-github fa-fw"  style = "color: #f5f5f5;" ></i>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    <a href = 'https://github.com/community-scripts/ProxmoxVE'  target = '_blank'  rel = 'noopener noreferrer'  style = 'text-decoration: none; color: #00617f;' >GitHub</a>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  </span>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  <span style = 'margin: 0 10px;' >
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    <i class = "fa fa-comments fa-fw"  style = "color: #f5f5f5;" ></i>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    <a href = 'https://github.com/community-scripts/ProxmoxVE/discussions'  target = '_blank'  rel = 'noopener noreferrer'  style = 'text-decoration: none; color: #00617f;' >Discussions</a>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  </span>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  <span style = 'margin: 0 10px;' >
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    <i class = "fa fa-exclamation-circle fa-fw"  style = "color: #f5f5f5;" ></i>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    <a href = 'https://github.com/community-scripts/ProxmoxVE/issues'  target = '_blank'  rel = 'noopener noreferrer'  style = 'text-decoration: none; color: #00617f;' >Issues</a>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  </span>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								</div>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								EOF
							 
						 
					
						
							
								
									
										
										
										
											2025-01-29 14:26:23 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  ) 
							 
						 
					
						
							
								
									
										
										
										
											2024-11-12 16:54:39 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  # Set Description in LXC 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  pct set  " $CTID "  -description " $DESCRIPTION " 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-27 09:01:41 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-04-30 05:56:05 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  if  [ [  -f /etc/systemd/system/ping-instances.service ] ] ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2023-05-06 04:24:18 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    systemctl start ping-instances.service
							 
						 
					
						
							
								
									
										
										
										
											2023-04-30 05:56:05 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  fi 
							 
						 
					
						
							
								
									
										
										
										
											2025-02-24 11:18:38 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-02-04 13:23:20 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  post_update_to_api "done"  "none" 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-13 21:11:58 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								} 
							 
						 
					
						
							
								
									
										
										
										
											2025-01-30 18:19:05 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-05-06 09:50:11 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								api_exit_script( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2025-02-24 11:18:38 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  exit_code = $?  # Capture the exit status of the last executed command 
							 
						 
					
						
							
								
									
										
										
										
											2025-02-05 16:29:19 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  #200 exit codes indicate error in create_lxc.sh 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  #100 exit codes indicate error in install.func 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-03-27 11:51:40 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  if  [  $exit_code  -ne 0  ] ;  then 
							 
						 
					
						
							
								
									
										
										
										
											2025-02-05 16:29:19 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    case  $exit_code  in
							 
						 
					
						
							
								
									
										
										
										
											2025-03-27 11:51:40 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    100)  post_update_to_api "failed"  "100: Unexpected error in create_lxc.sh"  ; ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    101)  post_update_to_api "failed"  "101: No network connection detected in create_lxc.sh"  ; ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    200)  post_update_to_api "failed"  "200: LXC creation failed in create_lxc.sh"  ; ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    201)  post_update_to_api "failed"  "201: Invalid Storage class in create_lxc.sh"  ; ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    202)  post_update_to_api "failed"  "202: User aborted menu in create_lxc.sh"  ; ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    203)  post_update_to_api "failed"  "203: CTID not set in create_lxc.sh"  ; ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    204)  post_update_to_api "failed"  "204: PCT_OSTYPE not set in create_lxc.sh"  ; ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    205)  post_update_to_api "failed"  "205: CTID cannot be less than 100 in create_lxc.sh"  ; ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    206)  post_update_to_api "failed"  "206: CTID already in use in create_lxc.sh"  ; ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    207)  post_update_to_api "failed"  "207: Template not found in create_lxc.sh"  ; ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    208)  post_update_to_api "failed"  "208: Error downloading template in create_lxc.sh"  ; ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    209)  post_update_to_api "failed"  "209: Container creation failed, but template is intact in create_lxc.sh"  ; ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								    *)  post_update_to_api "failed"  " Unknown error, exit code:  $exit_code  in create_lxc.sh "  ; ; 
							 
						 
					
						
							
								
									
										
										
										
											2025-02-05 16:29:19 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								    esac 
							 
						 
					
						
							
								
									
										
										
										
											2025-02-24 11:18:38 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								  fi 
							 
						 
					
						
							
								
									
										
										
										
											2025-02-05 16:29:19 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-07-04 21:22:50 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								if  command  -v pveversion >/dev/null 2>& 1;  then 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								  trap  'api_exit_script'  EXIT
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								fi 
							 
						 
					
						
							
								
									
										
										
										
											2025-02-05 16:29:19 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								trap  'post_update_to_api "failed" "$BASH_COMMAND"'  ERR
							 
						 
					
						
							
								
									
										
										
										
											2025-02-24 11:18:38 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								trap  'post_update_to_api "failed" "INTERRUPTED"'  SIGINT
							 
						 
					
						
							
								
									
										
										
										
											2025-02-05 16:29:19 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								trap  'post_update_to_api "failed" "TERMINATED"'  SIGTERM