diff --git a/ct/debian-v5.sh b/ct/debian-v5.sh index 48c14586..1f60c08e 100644 --- a/ct/debian-v5.sh +++ b/ct/debian-v5.sh @@ -30,8 +30,7 @@ var_install="${NSAPP}-v5-install" timezone=$(cat /etc/timezone) INTEGER='^[0-9]+([.][0-9]+)?$' color -set -Eeuo pipefail -trap 'error_handler $LINENO "$BASH_COMMAND"' ERR +trap function default_settings() { echo -e "${DGN}Using Container Type: ${BGN}Unprivileged${CL} ${RD}NO DEVICE PASSTHROUGH${CL}" @@ -362,4 +361,4 @@ pct start $CTID msg_ok "Started LXC Container" lxc-attach -n $CTID -- bash -c "$(wget -qLO - https://raw.githubusercontent.com/tteck/Proxmox/dev/install/$var_install.sh)" || exit description -msg_ok "Completed Successfully!\n" +msg_ok "Completed Successfully!\n" \ No newline at end of file diff --git a/ct/docker-v5.sh b/ct/docker-v5.sh index 677398a0..cc559e4e 100644 --- a/ct/docker-v5.sh +++ b/ct/docker-v5.sh @@ -29,59 +29,8 @@ NSAPP=$(echo ${APP,,} | tr -d ' ') var_install="${NSAPP}-v5-install" timezone=$(cat /etc/timezone) INTEGER='^[0-9]+([.][0-9]+)?$' -YW=$(echo "\033[33m") -BL=$(echo "\033[36m") -RD=$(echo "\033[01;31m") -BGN=$(echo "\033[4;92m") -GN=$(echo "\033[1;92m") -DGN=$(echo "\033[32m") -CL=$(echo "\033[m") -BFR="\\r\\033[K" -HOLD="-" -CM="${GN}✓${CL}" -CROSS="${RD}✗${CL}" -set -Eeuo pipefail -trap 'error_handler $LINENO "$BASH_COMMAND"' ERR -function error_handler() { - 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}" - echo -e "\n$error_message\n" -} - -function msg_info() { - local msg="$1" - echo -ne " ${HOLD} ${YW}${msg}..." -} - -function msg_ok() { - local msg="$1" - echo -e "${BFR} ${CM} ${GN}${msg}${CL}" -} - -function msg_error() { - local msg="$1" - echo -e "${BFR} ${CROSS} ${RD}${msg}${CL}" -} - -function PVE_CHECK() { -if [ $(pveversion | grep -c "pve-manager/7\.[0-9]") -eq 0 ]; then - echo -e "${CROSS} This version of Proxmox Virtual Environment is not supported" - echo -e "Requires PVE Version 7.0 or higher" - echo -e "Exiting..." - sleep 2 -exit -fi -} -function ARCH_CHECK() { -if [ "$(dpkg --print-architecture)" != "amd64" ]; then - echo -e "\n ${CROSS} This script will not work with PiMox! \n" - echo -e "Exiting..." - sleep 2 -exit -fi -} +color +trap function default_settings() { echo -e "${DGN}Using Container Type: ${BGN}Unprivileged${CL} ${RD}NO DEVICE PASSTHROUGH${CL}" @@ -439,8 +388,5 @@ msg_info "Starting LXC Container" pct start $CTID msg_ok "Started LXC Container" lxc-attach -n $CTID -- bash -c "$(wget -qLO - https://raw.githubusercontent.com/tteck/Proxmox/main/install/$var_install.sh)" || exit -IP=$(pct exec $CTID ip a s dev eth0 | awk '/inet / {print $2}' | cut -d/ -f1) -pct set $CTID -description "# ${APP} LXC -### https://tteck.github.io/Proxmox/ -" -msg_ok "Completed Successfully!\n" +description +msg_ok "Completed Successfully!\n" \ No newline at end of file diff --git a/install/debian-v5-install.sh b/install/debian-v5-install.sh index b4c3fbb4..799db5db 100644 --- a/install/debian-v5-install.sh +++ b/install/debian-v5-install.sh @@ -6,14 +6,11 @@ # https://github.com/tteck/Proxmox/raw/main/LICENSE source /dev/stdin <<< "$FUNCTIONS_FILE_PATH" -if [ "$VERBOSE" = "yes" ]; then set -x; STD=""; else STD="silent"; fi -silent() { "$@" > /dev/null 2>&1; } -if [ "$DISABLEIPV6" == "yes" ]; then echo "net.ipv6.conf.all.disable_ipv6 = 1" >>/etc/sysctl.conf; $STD sysctl -p; fi color -set -Eeuo pipefail -trap 'error_handler $LINENO "$BASH_COMMAND"' ERR +verb_ip6 +trap setting_up_container -network_ckeck +network_check update_os msg_info "Installing Dependencies" @@ -22,7 +19,7 @@ $STD apt-get install -y sudo $STD apt-get install -y mc msg_ok "Installed Dependencies" -motd +motd_ssh if ! getent shadow root | grep -q "^root:[^\!*]"; then customize fi @@ -30,4 +27,4 @@ fi msg_info "Cleaning up" $STD apt-get autoremove $STD apt-get autoclean -msg_ok "Cleaned" +msg_ok "Cleaned" \ No newline at end of file diff --git a/install/docker-v5-install.sh b/install/docker-v5-install.sh index 83339fb5..6382f5f0 100644 --- a/install/docker-v5-install.sh +++ b/install/docker-v5-install.sh @@ -5,86 +5,13 @@ # License: MIT # https://github.com/tteck/Proxmox/raw/main/LICENSE -if [ "$VERBOSE" = "yes" ]; then set -x; STD=""; else STD="silent"; fi -silent() { "$@" > /dev/null 2>&1; } -if [ "$DISABLEIPV6" == "yes" ]; then echo "net.ipv6.conf.all.disable_ipv6 = 1" >>/etc/sysctl.conf; $STD sysctl -p; fi -YW=$(echo "\033[33m") -RD=$(echo "\033[01;31m") -BL=$(echo "\033[36m") -GN=$(echo "\033[1;92m") -CL=$(echo "\033[m") -RETRY_NUM=10 -RETRY_EVERY=3 -CM="${GN}✓${CL}" -CROSS="${RD}✗${CL}" -BFR="\\r\\033[K" -HOLD="-" -set -Eeuo pipefail -trap 'error_handler $LINENO "$BASH_COMMAND"' ERR -function error_handler() { - 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}" - echo -e "\n$error_message\n" -} - -function msg_info() { - local msg="$1" - echo -ne " ${HOLD} ${YW}${msg}..." -} - -function msg_ok() { - local msg="$1" - echo -e "${BFR} ${CM} ${GN}${msg}${CL}" -} - -function msg_error() { - local msg="$1" - echo -e "${BFR} ${CROSS} ${RD}${msg}${CL}" -} - -msg_info "Setting up Container OS " -sed -i "/$LANG/ s/\(^# \)//" /etc/locale.gen -locale-gen >/dev/null -echo $tz > /etc/timezone -ln -sf /usr/share/zoneinfo/$tz /etc/localtime -for ((i=RETRY_NUM; i>0; i--)); do - if [ "$(hostname -I)" != "" ]; then - break - fi - echo 1>&2 -en "${CROSS}${RD} No Network! " - sleep $RETRY_EVERY -done -if [ "$(hostname -I)" = "" ]; then - echo 1>&2 -e "\n${CROSS}${RD} No Network After $RETRY_NUM Tries${CL}" - echo -e " 🖧 Check Network Settings" - exit 1 -fi -msg_ok "Set up Container OS" -msg_ok "Network Connected: ${BL}$(hostname -I)" - -set +e -trap - ERR -if ping -c 1 -W 1 1.1.1.1 &> /dev/null; then msg_ok "Internet Connected"; else - msg_error "Internet NOT Connected" - read -r -p "Would you like to continue anyway? " prompt - if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then - echo -e " ⚠️ ${RD}Expect Issues Without Internet${CL}" - else - echo -e " 🖧 Check Network Settings" - exit 1 - fi -fi -RESOLVEDIP=$(getent hosts github.com | awk '{ print $1 }') -if [[ -z "$RESOLVEDIP" ]]; then msg_error "DNS Lookup Failure"; else msg_ok "DNS Resolved github.com to ${BL}$RESOLVEDIP${CL}"; fi -set -e -trap 'error_handler $LINENO "$BASH_COMMAND"' ERR - -msg_info "Updating Container OS" -$STD apt-get update -$STD apt-get -y upgrade -msg_ok "Updated Container OS" +source /dev/stdin <<< "$FUNCTIONS_FILE_PATH" +color +verb_ip6 +trap +setting_up_container +network_check +update_os msg_info "Installing Dependencies" $STD apt-get install -y curl @@ -141,25 +68,12 @@ if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then msg_ok "Installed Docker Compose $DOCKER_COMPOSE_LATEST_VERSION" fi -echo "export TERM='xterm-256color'" >>/root/.bashrc -echo -e "$APPLICATION LXC provided by https://tteck.github.io/Proxmox/\n" > /etc/motd -chmod -x /etc/update-motd.d/* +motd_ssh if ! getent shadow root | grep -q "^root:[^\!*]"; then - msg_info "Customizing Container" - GETTY_OVERRIDE="/etc/systemd/system/container-getty@1.service.d/override.conf" - mkdir -p $(dirname $GETTY_OVERRIDE) - cat <$GETTY_OVERRIDE -[Service] -ExecStart= -ExecStart=-/sbin/agetty --autologin root --noclear --keep-baud tty%I 115200,38400,9600 \$TERM -EOF - systemctl daemon-reload - systemctl restart $(basename $(dirname $GETTY_OVERRIDE) | sed 's/\.d//') - msg_ok "Customized Container" +customize fi -if [[ "${SSH_ROOT}" == "yes" ]]; then sed -i "s/#PermitRootLogin prohibit-password/PermitRootLogin yes/g" /etc/ssh/sshd_config; systemctl restart sshd; fi msg_info "Cleaning up" $STD apt-get autoremove $STD apt-get autoclean -msg_ok "Cleaned" +msg_ok "Cleaned" \ No newline at end of file diff --git a/misc/function.sh b/misc/function.sh index ba394842..fd02511d 100644 --- a/misc/function.sh +++ b/misc/function.sh @@ -1,11 +1,11 @@ color() { -YW=$(echo "\033[33m") -BL=$(echo "\033[36m") -RD=$(echo "\033[01;31m") -BGN=$(echo "\033[4;92m") -GN=$(echo "\033[1;92m") -DGN=$(echo "\033[32m") -CL=$(echo "\033[m") + YW=$(echo "\033[33m") + BL=$(echo "\033[36m") + RD=$(echo "\033[01;31m") + BGN=$(echo "\033[4;92m") + GN=$(echo "\033[1;92m") + DGN=$(echo "\033[32m") + CL=$(echo "\033[m") RETRY_NUM=10 RETRY_EVERY=3 CM="${GN}✓${CL}" @@ -14,6 +14,17 @@ CL=$(echo "\033[m") HOLD="-" } +verb_ip6() { + if [ "$VERBOSE" = "yes" ]; then set -x; STD=""; else STD="silent"; fi + silent() { "$@" > /dev/null 2>&1; } + if [ "$DISABLEIPV6" == "yes" ]; then echo "net.ipv6.conf.all.disable_ipv6 = 1" >>/etc/sysctl.conf; $STD sysctl -p; fi +} + +trap() { + set -Eeuo pipefail + trap 'error_handler $LINENO "$BASH_COMMAND"' ERR +} + error_handler() { local exit_code="$?" local line_number="$1" @@ -56,22 +67,6 @@ ARCH_CHECK() { fi } -install_script() { - ARCH_CHECK - PVE_CHECK - NEXTID=$(pvesh get /cluster/nextid) - header_info - if (whiptail --title "SETTINGS" --yesno "Use Default Settings?" --no-button Advanced 10 58); then - header_info - echo -e "${BL}Using Default Settings${CL}" - default_settings - else - header_info - echo -e "${RD}Using Advanced Settings${CL}" - advanced_settings - fi -} - setting_up_container() { msg_info "Setting up Container OS" sed -i "/$LANG/ s/\(^# \)//" /etc/locale.gen @@ -94,7 +89,7 @@ setting_up_container() { msg_ok "Network Connected: ${BL}$(hostname -I)" } -network_ckeck() { +network_check() { set +e trap - ERR if ping -c 1 -W 1 1.1.1.1 &> /dev/null; then msg_ok "Internet Connected"; else @@ -112,13 +107,15 @@ network_ckeck() { set -e trap 'error_handler $LINENO "$BASH_COMMAND"' ERR } + update_os() { msg_info "Updating Container OS" $STD apt-get update $STD apt-get -y upgrade msg_ok "Updated Container OS" } -motd() { + +motd_ssh() { echo "export TERM='xterm-256color'" >>/root/.bashrc echo -e "$APPLICATION LXC provided by https://tteck.github.io/Proxmox/\n" > /etc/motd chmod -x /etc/update-motd.d/*