From 63dbfcdec4a79217884410fd5911744b3bcc1760 Mon Sep 17 00:00:00 2001
From: tteckster <tteckster@gmail.com>
Date: Thu, 14 Sep 2023 23:16:54 -0400
Subject: [PATCH] Remove unnecessary turnkey container files.

---
 turnkey/turnkey-core.sh          | 202 -------------------------------
 turnkey/turnkey-fileserver.sh    | 202 -------------------------------
 turnkey/turnkey-gameserver.sh    | 202 -------------------------------
 turnkey/turnkey-gitea.sh         | 202 -------------------------------
 turnkey/turnkey-gitlab.sh        | 202 -------------------------------
 turnkey/turnkey-mediaserver.sh   | 202 -------------------------------
 turnkey/turnkey-nextcloud.sh     | 202 -------------------------------
 turnkey/turnkey-observium.sh     | 202 -------------------------------
 turnkey/turnkey-openvpn.sh       | 202 -------------------------------
 turnkey/turnkey-owncloud.sh      | 202 -------------------------------
 turnkey/turnkey-torrentserver.sh | 202 -------------------------------
 turnkey/turnkey-wordpress.sh     | 202 -------------------------------
 turnkey/turnkey-zoneminder.sh    | 202 -------------------------------
 13 files changed, 2626 deletions(-)
 delete mode 100644 turnkey/turnkey-core.sh
 delete mode 100644 turnkey/turnkey-fileserver.sh
 delete mode 100644 turnkey/turnkey-gameserver.sh
 delete mode 100644 turnkey/turnkey-gitea.sh
 delete mode 100644 turnkey/turnkey-gitlab.sh
 delete mode 100644 turnkey/turnkey-mediaserver.sh
 delete mode 100644 turnkey/turnkey-nextcloud.sh
 delete mode 100644 turnkey/turnkey-observium.sh
 delete mode 100644 turnkey/turnkey-openvpn.sh
 delete mode 100644 turnkey/turnkey-owncloud.sh
 delete mode 100644 turnkey/turnkey-torrentserver.sh
 delete mode 100644 turnkey/turnkey-wordpress.sh
 delete mode 100644 turnkey/turnkey-zoneminder.sh

diff --git a/turnkey/turnkey-core.sh b/turnkey/turnkey-core.sh
deleted file mode 100644
index 7a0f8733..00000000
--- a/turnkey/turnkey-core.sh
+++ /dev/null
@@ -1,202 +0,0 @@
-#!/usr/bin/env bash
-# Copyright (c) 2021-2023 tteck
-# Author: tteck (tteckster)
-# License: MIT
-# https://github.com/tteck/Proxmox/raw/main/LICENSE
-
-# Setup script environment
-NAME="core"
-PASS="$(openssl rand -base64 8)"
-CTID=$(pvesh get /cluster/nextid)
-TEMPLATE_SEARCH="debian-11-turnkey-${NAME}"
-PCT_DISK_SIZE="4"
-PCT_OPTIONS="
-    -features keyctl=1,nesting=1
-    -hostname turnkey-${NAME}
-    -tags proxmox-helper-scripts
-    -onboot 1
-    -cores 2
-    -memory 2048
-    -password $PASS
-    -net0 name=eth0,bridge=vmbr0,ip=dhcp
-    -unprivileged 1
-  "
-DEFAULT_PCT_OPTIONS=(
-  -arch $(dpkg --print-architecture)
-)
-function header_info {
-clear
-cat <<"EOF"
- ______              __ __           _____
-/_  __/_ _________  / //_/__ __ __  / ___/__  _______
- / / / // / __/ _ \/ ,< / -_) // / / /__/ _ \/ __/ -_)
-/_/  \_,_/_/ /_//_/_/|_|\__/\_, /  \___/\___/_/  \__/
-                           /___/
-EOF
-}
-header_info
-read -p "Press ENTER to continue..."
-header_info
-set -eEuo pipefail
-shopt -s expand_aliases
-alias die='EXIT=$? LINE=$LINENO error_exit'
-trap die ERR
-
-function error_exit() {
-  trap - ERR
-  local DEFAULT='Unknown failure occured.'
-  local REASON="\e[97m${1:-$DEFAULT}\e[39m"
-  local FLAG="\e[91m[ERROR] \e[93m$EXIT@$LINE"
-  msg "$FLAG $REASON" 1>&2
-  [ ! -z ${CTID-} ] && cleanup_ctid
-  exit $EXIT
-}
-function warn() {
-  local REASON="\e[97m$1\e[39m"
-  local FLAG="\e[93m[WARNING]\e[39m"
-  msg "$FLAG $REASON"
-}
-function info() {
-  local REASON="$1"
-  local FLAG="\e[36m[INFO]\e[39m"
-  msg "$FLAG $REASON"
-}
-function msg() {
-  local TEXT="$1"
-  echo -e "$TEXT"
-}
-function cleanup_ctid() {
-  if pct status $CTID &>/dev/null; then
-    if [ "$(pct status $CTID | awk '{print $2}')" == "running" ]; then
-      pct stop $CTID
-    fi
-    pct destroy $CTID
-  fi
-}
-
-# Stop Proxmox VE Monitor-All if running
-if systemctl is-active -q ping-instances.service; then
-  systemctl stop ping-instances.service
-fi
-
-# Set the CONTENT and CONTENT_LABEL variables
-function select_storage() {
-  local CLASS=$1
-  local CONTENT
-  local CONTENT_LABEL
-  case $CLASS in
-    container) CONTENT='rootdir'; CONTENT_LABEL='Container';;
-    template) CONTENT='vztmpl'; CONTENT_LABEL='Container template';;
-    *) false || die "Invalid storage class.";;
-  esac
-
-  # Query all storage locations
-  local -a MENU
-  while read -r line; do
-    local TAG=$(echo $line | awk '{print $1}')
-    local TYPE=$(echo $line | awk '{printf "%-10s", $2}')
-    local FREE=$(echo $line | numfmt --field 4-6 --from-unit=K --to=iec --format %.2f | awk '{printf( "%9sB", $6)}')
-    local ITEM="  Type: $TYPE Free: $FREE "
-    local OFFSET=2
-    if [[ $((${#ITEM} + $OFFSET)) -gt ${MSG_MAX_LENGTH:-} ]]; then
-      local MSG_MAX_LENGTH=$((${#ITEM} + $OFFSET))
-    fi
-    MENU+=("$TAG" "$ITEM" "OFF")
-  done < <(pvesm status -content $CONTENT | awk 'NR>1')
-
-  # Select storage location
-  if [ $((${#MENU[@]} / 3)) -eq 0 ]; then
-    warn "'$CONTENT_LABEL' needs to be selected for at least one storage location."
-    die "Unable to detect valid storage location."
-  elif [ $((${#MENU[@]} / 3)) -eq 1 ]; then
-    printf ${MENU[0]}
-  else
-    local STORAGE
-    while [ -z "${STORAGE:+x}" ]; do
-      STORAGE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Storage Pools" --radiolist \
-        "Which storage pool you would like to use for the ${CONTENT_LABEL,,}?\n\n" \
-        16 $(($MSG_MAX_LENGTH + 23)) 6 \
-        "${MENU[@]}" 3>&1 1>&2 2>&3) || die "Menu aborted."
-    done
-    printf $STORAGE
-  fi
-}
-
-# Get template storage
-TEMPLATE_STORAGE=$(select_storage template) || exit
-info "Using '$TEMPLATE_STORAGE' for template storage."
-
-# Get container storage
-CONTAINER_STORAGE=$(select_storage container) || exit
-info "Using '$CONTAINER_STORAGE' for container storage."
-
-# Update LXC template list
-msg "Updating LXC template list..."
-pveam update >/dev/null
-
-# Get LXC template string
-mapfile -t TEMPLATES < <(pveam available -section turnkeylinux | sed -n "s/.*\($TEMPLATE_SEARCH.*\)/\1/p" | sort -t - -k 2 -V)
-[ ${#TEMPLATES[@]} -gt 0 ] || die "Unable to find a template when searching for '$TEMPLATE_SEARCH'."
-TEMPLATE="${TEMPLATES[-1]}"
-
-# Download LXC template
-if ! pveam list $TEMPLATE_STORAGE | grep -q $TEMPLATE; then
-  msg "Downloading LXC template (Patience)..."
-  pveam download $TEMPLATE_STORAGE $TEMPLATE >/dev/null ||
-    die "A problem occured while downloading the LXC template."
-fi
-
-# Create variable for 'pct' options
-PCT_OPTIONS=(${PCT_OPTIONS[@]:-${DEFAULT_PCT_OPTIONS[@]}})
-[[ " ${PCT_OPTIONS[@]} " =~ " -rootfs " ]] || PCT_OPTIONS+=(-rootfs $CONTAINER_STORAGE:${PCT_DISK_SIZE:-8})
-
-# Create LXC
-msg "Creating LXC container..."
-pct create $CTID ${TEMPLATE_STORAGE}:vztmpl/${TEMPLATE} ${PCT_OPTIONS[@]} >/dev/null ||
-  die "A problem occured while trying to create container."
-
-# Save password
-echo "TurnKey ${NAME} password: ${PASS}" >>~/turnkey-${NAME}.creds # file is located in the Proxmox root directory
-
-# Start container
-msg "Starting LXC Container..."
-pct start "$CTID"
-sleep 5
-
-# Get container IP
-set +e
-max_attempts=5
-attempt=1
-IP=""
-while [[ $attempt -le $max_attempts ]]; do
-  IP=$(pct exec $CTID ip a show dev eth0 | grep -oP 'inet \K[^/]+')
-  if [[ -n $IP ]]; then
-    break
-  else
-    warn "Attempt $attempt: IP address not found. Pausing for 5 seconds..."
-    sleep 5
-    ((attempt++))
-  fi
-done
-
-if [[ -z $IP ]]; then
-  warn "Maximum number of attempts reached. IP address not found."
-  IP="NOT FOUND"
-fi
-
-set -e
-# Start Proxmox VE Monitor-All if available
-if [[ -f /etc/systemd/system/ping-instances.service ]]; then
-  systemctl start ping-instances.service
-fi
-
-# Success message
-header_info
-echo
-info "LXC container '$CTID' was successfully created, and its IP address is ${IP}."
-echo
-info "Proceed to the LXC console to complete the setup."
-echo
-info "login: root"
-info "password: $PASS"
-echo
\ No newline at end of file
diff --git a/turnkey/turnkey-fileserver.sh b/turnkey/turnkey-fileserver.sh
deleted file mode 100644
index 4826f253..00000000
--- a/turnkey/turnkey-fileserver.sh
+++ /dev/null
@@ -1,202 +0,0 @@
-#!/usr/bin/env bash
-# Copyright (c) 2021-2023 tteck
-# Author: tteck (tteckster)
-# License: MIT
-# https://github.com/tteck/Proxmox/raw/main/LICENSE
-
-# Setup script environment
-NAME="fileserver"
-PASS="$(openssl rand -base64 8)"
-CTID=$(pvesh get /cluster/nextid)
-TEMPLATE_SEARCH="debian-11-turnkey-${NAME}"
-PCT_DISK_SIZE="8"
-PCT_OPTIONS="
-    -features keyctl=1,nesting=1
-    -hostname turnkey-${NAME}
-    -tags proxmox-helper-scripts
-    -onboot 1
-    -cores 2
-    -memory 2048
-    -password $PASS
-    -net0 name=eth0,bridge=vmbr0,ip=dhcp
-    -unprivileged 1
-  "
-DEFAULT_PCT_OPTIONS=(
-  -arch $(dpkg --print-architecture)
-)
-function header_info {
-clear
-cat <<"EOF"
- ______              __ __           _____ __      ____
-/_  __/_ _________  / //_/__ __ __  / __(_) /__   / __/__ _____  _____ ____
- / / / // / __/ _ \/ ,< / -_) // / / _// / / -_) _\ \/ -_) __/ |/ / -_) __/
-/_/  \_,_/_/ /_//_/_/|_|\__/\_, / /_/ /_/_/\__/ /___/\__/_/  |___/\__/_/
-                           /___/
-EOF
-}
-header_info
-read -p "Press ENTER to continue..."
-header_info
-set -eEuo pipefail
-shopt -s expand_aliases
-alias die='EXIT=$? LINE=$LINENO error_exit'
-trap die ERR
-
-function error_exit() {
-  trap - ERR
-  local DEFAULT='Unknown failure occured.'
-  local REASON="\e[97m${1:-$DEFAULT}\e[39m"
-  local FLAG="\e[91m[ERROR] \e[93m$EXIT@$LINE"
-  msg "$FLAG $REASON" 1>&2
-  [ ! -z ${CTID-} ] && cleanup_ctid
-  exit $EXIT
-}
-function warn() {
-  local REASON="\e[97m$1\e[39m"
-  local FLAG="\e[93m[WARNING]\e[39m"
-  msg "$FLAG $REASON"
-}
-function info() {
-  local REASON="$1"
-  local FLAG="\e[36m[INFO]\e[39m"
-  msg "$FLAG $REASON"
-}
-function msg() {
-  local TEXT="$1"
-  echo -e "$TEXT"
-}
-function cleanup_ctid() {
-  if pct status $CTID &>/dev/null; then
-    if [ "$(pct status $CTID | awk '{print $2}')" == "running" ]; then
-      pct stop $CTID
-    fi
-    pct destroy $CTID
-  fi
-}
-
-# Stop Proxmox VE Monitor-All if running
-if systemctl is-active -q ping-instances.service; then
-  systemctl stop ping-instances.service
-fi
-
-# Set the CONTENT and CONTENT_LABEL variables
-function select_storage() {
-  local CLASS=$1
-  local CONTENT
-  local CONTENT_LABEL
-  case $CLASS in
-    container) CONTENT='rootdir'; CONTENT_LABEL='Container';;
-    template) CONTENT='vztmpl'; CONTENT_LABEL='Container template';;
-    *) false || die "Invalid storage class.";;
-  esac
-
-  # Query all storage locations
-  local -a MENU
-  while read -r line; do
-    local TAG=$(echo $line | awk '{print $1}')
-    local TYPE=$(echo $line | awk '{printf "%-10s", $2}')
-    local FREE=$(echo $line | numfmt --field 4-6 --from-unit=K --to=iec --format %.2f | awk '{printf( "%9sB", $6)}')
-    local ITEM="  Type: $TYPE Free: $FREE "
-    local OFFSET=2
-    if [[ $((${#ITEM} + $OFFSET)) -gt ${MSG_MAX_LENGTH:-} ]]; then
-      local MSG_MAX_LENGTH=$((${#ITEM} + $OFFSET))
-    fi
-    MENU+=("$TAG" "$ITEM" "OFF")
-  done < <(pvesm status -content $CONTENT | awk 'NR>1')
-
-  # Select storage location
-  if [ $((${#MENU[@]} / 3)) -eq 0 ]; then
-    warn "'$CONTENT_LABEL' needs to be selected for at least one storage location."
-    die "Unable to detect valid storage location."
-  elif [ $((${#MENU[@]} / 3)) -eq 1 ]; then
-    printf ${MENU[0]}
-  else
-    local STORAGE
-    while [ -z "${STORAGE:+x}" ]; do
-      STORAGE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Storage Pools" --radiolist \
-        "Which storage pool you would like to use for the ${CONTENT_LABEL,,}?\n\n" \
-        16 $(($MSG_MAX_LENGTH + 23)) 6 \
-        "${MENU[@]}" 3>&1 1>&2 2>&3) || die "Menu aborted."
-    done
-    printf $STORAGE
-  fi
-}
-
-# Get template storage
-TEMPLATE_STORAGE=$(select_storage template) || exit
-info "Using '$TEMPLATE_STORAGE' for template storage."
-
-# Get container storage
-CONTAINER_STORAGE=$(select_storage container) || exit
-info "Using '$CONTAINER_STORAGE' for container storage."
-
-# Update LXC template list
-msg "Updating LXC template list..."
-pveam update >/dev/null
-
-# Get LXC template string
-mapfile -t TEMPLATES < <(pveam available -section turnkeylinux | sed -n "s/.*\($TEMPLATE_SEARCH.*\)/\1/p" | sort -t - -k 2 -V)
-[ ${#TEMPLATES[@]} -gt 0 ] || die "Unable to find a template when searching for '$TEMPLATE_SEARCH'."
-TEMPLATE="${TEMPLATES[-1]}"
-
-# Download LXC template
-if ! pveam list $TEMPLATE_STORAGE | grep -q $TEMPLATE; then
-  msg "Downloading LXC template (Patience)..."
-  pveam download $TEMPLATE_STORAGE $TEMPLATE >/dev/null ||
-    die "A problem occured while downloading the LXC template."
-fi
-
-# Create variable for 'pct' options
-PCT_OPTIONS=(${PCT_OPTIONS[@]:-${DEFAULT_PCT_OPTIONS[@]}})
-[[ " ${PCT_OPTIONS[@]} " =~ " -rootfs " ]] || PCT_OPTIONS+=(-rootfs $CONTAINER_STORAGE:${PCT_DISK_SIZE:-8})
-
-# Create LXC
-msg "Creating LXC container..."
-pct create $CTID ${TEMPLATE_STORAGE}:vztmpl/${TEMPLATE} ${PCT_OPTIONS[@]} >/dev/null ||
-  die "A problem occured while trying to create container."
-
-# Save password
-echo "TurnKey ${NAME} password: ${PASS}" >>~/turnkey-${NAME}.creds # file is located in the Proxmox root directory
-
-# Start container
-msg "Starting LXC Container..."
-pct start "$CTID"
-sleep 5
-
-# Get container IP
-set +e
-max_attempts=5
-attempt=1
-IP=""
-while [[ $attempt -le $max_attempts ]]; do
-  IP=$(pct exec $CTID ip a show dev eth0 | grep -oP 'inet \K[^/]+')
-  if [[ -n $IP ]]; then
-    break
-  else
-    warn "Attempt $attempt: IP address not found. Pausing for 5 seconds..."
-    sleep 5
-    ((attempt++))
-  fi
-done
-
-if [[ -z $IP ]]; then
-  warn "Maximum number of attempts reached. IP address not found."
-  IP="NOT FOUND"
-fi
-
-set -e
-# Start Proxmox VE Monitor-All if available
-if [[ -f /etc/systemd/system/ping-instances.service ]]; then
-  systemctl start ping-instances.service
-fi
-
-# Success message
-header_info
-echo
-info "LXC container '$CTID' was successfully created, and its IP address is ${IP}."
-echo
-info "Proceed to the LXC console to complete the setup."
-echo
-info "login: root"
-info "password: $PASS"
-echo
\ No newline at end of file
diff --git a/turnkey/turnkey-gameserver.sh b/turnkey/turnkey-gameserver.sh
deleted file mode 100644
index bc19fd26..00000000
--- a/turnkey/turnkey-gameserver.sh
+++ /dev/null
@@ -1,202 +0,0 @@
-#!/usr/bin/env bash
-# Copyright (c) 2021-2023 tteck
-# Author: tteck (tteckster)
-# License: MIT
-# https://github.com/tteck/Proxmox/raw/main/LICENSE
-
-# Setup script environment
-NAME="gameserver"
-PASS="$(openssl rand -base64 8)"
-CTID=$(pvesh get /cluster/nextid)
-TEMPLATE_SEARCH="debian-11-turnkey-${NAME}"
-PCT_DISK_SIZE="8"
-PCT_OPTIONS="
-    -features keyctl=1,nesting=1
-    -hostname turnkey-${NAME}
-    -tags proxmox-helper-scripts
-    -onboot 1
-    -cores 2
-    -memory 2048
-    -password $PASS
-    -net0 name=eth0,bridge=vmbr0,ip=dhcp
-    -unprivileged 1
-  "
-DEFAULT_PCT_OPTIONS=(
-  -arch $(dpkg --print-architecture)
-)
-function header_info {
-clear
-cat <<"EOF"
-  _____                 ____
- / ___/__ ___ _  ___   / __/__ _____  _____ ____
-/ (_ / _ `/  ' \/ -_) _\ \/ -_) __/ |/ / -_) __/
-\___/\_,_/_/_/_/\__/ /___/\__/_/  |___/\__/_/
-
-EOF
-}
-header_info
-read -p "Press ENTER to continue..."
-header_info
-set -eEuo pipefail
-shopt -s expand_aliases
-alias die='EXIT=$? LINE=$LINENO error_exit'
-trap die ERR
-
-function error_exit() {
-  trap - ERR
-  local DEFAULT='Unknown failure occured.'
-  local REASON="\e[97m${1:-$DEFAULT}\e[39m"
-  local FLAG="\e[91m[ERROR] \e[93m$EXIT@$LINE"
-  msg "$FLAG $REASON" 1>&2
-  [ ! -z ${CTID-} ] && cleanup_ctid
-  exit $EXIT
-}
-function warn() {
-  local REASON="\e[97m$1\e[39m"
-  local FLAG="\e[93m[WARNING]\e[39m"
-  msg "$FLAG $REASON"
-}
-function info() {
-  local REASON="$1"
-  local FLAG="\e[36m[INFO]\e[39m"
-  msg "$FLAG $REASON"
-}
-function msg() {
-  local TEXT="$1"
-  echo -e "$TEXT"
-}
-function cleanup_ctid() {
-  if pct status $CTID &>/dev/null; then
-    if [ "$(pct status $CTID | awk '{print $2}')" == "running" ]; then
-      pct stop $CTID
-    fi
-    pct destroy $CTID
-  fi
-}
-
-# Stop Proxmox VE Monitor-All if running
-if systemctl is-active -q ping-instances.service; then
-  systemctl stop ping-instances.service
-fi
-
-# Set the CONTENT and CONTENT_LABEL variables
-function select_storage() {
-  local CLASS=$1
-  local CONTENT
-  local CONTENT_LABEL
-  case $CLASS in
-    container) CONTENT='rootdir'; CONTENT_LABEL='Container';;
-    template) CONTENT='vztmpl'; CONTENT_LABEL='Container template';;
-    *) false || die "Invalid storage class.";;
-  esac
-
-  # Query all storage locations
-  local -a MENU
-  while read -r line; do
-    local TAG=$(echo $line | awk '{print $1}')
-    local TYPE=$(echo $line | awk '{printf "%-10s", $2}')
-    local FREE=$(echo $line | numfmt --field 4-6 --from-unit=K --to=iec --format %.2f | awk '{printf( "%9sB", $6)}')
-    local ITEM="  Type: $TYPE Free: $FREE "
-    local OFFSET=2
-    if [[ $((${#ITEM} + $OFFSET)) -gt ${MSG_MAX_LENGTH:-} ]]; then
-      local MSG_MAX_LENGTH=$((${#ITEM} + $OFFSET))
-    fi
-    MENU+=("$TAG" "$ITEM" "OFF")
-  done < <(pvesm status -content $CONTENT | awk 'NR>1')
-
-  # Select storage location
-  if [ $((${#MENU[@]} / 3)) -eq 0 ]; then
-    warn "'$CONTENT_LABEL' needs to be selected for at least one storage location."
-    die "Unable to detect valid storage location."
-  elif [ $((${#MENU[@]} / 3)) -eq 1 ]; then
-    printf ${MENU[0]}
-  else
-    local STORAGE
-    while [ -z "${STORAGE:+x}" ]; do
-      STORAGE=$(whiptail --title "Storage Pools" --radiolist \
-        "Which storage pool you would like to use for the ${CONTENT_LABEL,,}?\n\n" \
-        16 $(($MSG_MAX_LENGTH + 23)) 6 \
-        "${MENU[@]}" 3>&1 1>&2 2>&3) || die "Menu aborted."
-    done
-    printf $STORAGE
-  fi
-}
-
-# Get template storage
-TEMPLATE_STORAGE=$(select_storage template) || exit
-info "Using '$TEMPLATE_STORAGE' for template storage."
-
-# Get container storage
-CONTAINER_STORAGE=$(select_storage container) || exit
-info "Using '$CONTAINER_STORAGE' for container storage."
-
-# Update LXC template list
-msg "Updating LXC template list..."
-pveam update >/dev/null
-
-# Get LXC template string
-mapfile -t TEMPLATES < <(pveam available -section turnkeylinux | sed -n "s/.*\($TEMPLATE_SEARCH.*\)/\1/p" | sort -t - -k 2 -V)
-[ ${#TEMPLATES[@]} -gt 0 ] || die "Unable to find a template when searching for '$TEMPLATE_SEARCH'."
-TEMPLATE="${TEMPLATES[-1]}"
-
-# Download LXC template
-if ! pveam list $TEMPLATE_STORAGE | grep -q $TEMPLATE; then
-  msg "Downloading LXC template (Patience)..."
-  pveam download $TEMPLATE_STORAGE $TEMPLATE >/dev/null ||
-    die "A problem occured while downloading the LXC template."
-fi
-
-# Create variable for 'pct' options
-PCT_OPTIONS=(${PCT_OPTIONS[@]:-${DEFAULT_PCT_OPTIONS[@]}})
-[[ " ${PCT_OPTIONS[@]} " =~ " -rootfs " ]] || PCT_OPTIONS+=(-rootfs $CONTAINER_STORAGE:${PCT_DISK_SIZE:-8})
-
-# Create LXC
-msg "Creating LXC container..."
-pct create $CTID ${TEMPLATE_STORAGE}:vztmpl/${TEMPLATE} ${PCT_OPTIONS[@]} >/dev/null ||
-  die "A problem occured while trying to create container."
-
-# Save password
-echo "TurnKey ${NAME} password: ${PASS}" >>~/turnkey-${NAME}.creds # file is located in the Proxmox root directory
-
-# Start container
-msg "Starting LXC Container..."
-pct start "$CTID"
-sleep 5
-
-# Get container IP
-set +e
-max_attempts=5
-attempt=1
-IP=""
-while [[ $attempt -le $max_attempts ]]; do
-  IP=$(pct exec $CTID ip a show dev eth0 | grep -oP 'inet \K[^/]+')
-  if [[ -n $IP ]]; then
-    break
-  else
-    warn "Attempt $attempt: IP address not found. Pausing for 5 seconds..."
-    sleep 5
-    ((attempt++))
-  fi
-done
-
-if [[ -z $IP ]]; then
-  warn "Maximum number of attempts reached. IP address not found."
-  IP="NOT FOUND"
-fi
-
-set -e
-# Start Proxmox VE Monitor-All if available
-if [[ -f /etc/systemd/system/ping-instances.service ]]; then
-  systemctl start ping-instances.service
-fi
-
-# Success message
-header_info
-echo
-info "LXC container '$CTID' was successfully created, and its IP address is ${IP}."
-echo
-info "Proceed to the LXC console to complete the setup."
-echo
-info "login: root"
-info "password: $PASS"
-echo
diff --git a/turnkey/turnkey-gitea.sh b/turnkey/turnkey-gitea.sh
deleted file mode 100644
index 3943cde5..00000000
--- a/turnkey/turnkey-gitea.sh
+++ /dev/null
@@ -1,202 +0,0 @@
-#!/usr/bin/env bash
-# Copyright (c) 2021-2023 tteck
-# Author: tteck (tteckster)
-# License: MIT
-# https://github.com/tteck/Proxmox/raw/main/LICENSE
-
-# Setup script environment
-NAME="gitea"
-PASS="$(openssl rand -base64 8)"
-CTID=$(pvesh get /cluster/nextid)
-TEMPLATE_SEARCH="debian-11-turnkey-${NAME}"
-PCT_DISK_SIZE="4"
-PCT_OPTIONS="
-    -features keyctl=1,nesting=1
-    -hostname turnkey-${NAME}
-    -tags proxmox-helper-scripts
-    -onboot 1
-    -cores 2
-    -memory 2048
-    -password $PASS
-    -net0 name=eth0,bridge=vmbr0,ip=dhcp
-    -unprivileged 1
-  "
-DEFAULT_PCT_OPTIONS=(
-  -arch $(dpkg --print-architecture)
-)
-function header_info {
-clear
-cat <<"EOF"
- ______              __ __           ______ __
-/_  __/_ _________  / //_/__ __ __  / ___(_) /____ ___ _
- / / / // / __/ _ \/ ,< / -_) // / / (_ / / __/ -_) _ `/
-/_/  \_,_/_/ /_//_/_/|_|\__/\_, /  \___/_/\__/\__/\_,_/
-                           /___/
-EOF
-}
-header_info
-read -p "Press ENTER to continue..."
-header_info
-set -eEuo pipefail
-shopt -s expand_aliases
-alias die='EXIT=$? LINE=$LINENO error_exit'
-trap die ERR
-
-function error_exit() {
-  trap - ERR
-  local DEFAULT='Unknown failure occured.'
-  local REASON="\e[97m${1:-$DEFAULT}\e[39m"
-  local FLAG="\e[91m[ERROR] \e[93m$EXIT@$LINE"
-  msg "$FLAG $REASON" 1>&2
-  [ ! -z ${CTID-} ] && cleanup_ctid
-  exit $EXIT
-}
-function warn() {
-  local REASON="\e[97m$1\e[39m"
-  local FLAG="\e[93m[WARNING]\e[39m"
-  msg "$FLAG $REASON"
-}
-function info() {
-  local REASON="$1"
-  local FLAG="\e[36m[INFO]\e[39m"
-  msg "$FLAG $REASON"
-}
-function msg() {
-  local TEXT="$1"
-  echo -e "$TEXT"
-}
-function cleanup_ctid() {
-  if pct status $CTID &>/dev/null; then
-    if [ "$(pct status $CTID | awk '{print $2}')" == "running" ]; then
-      pct stop $CTID
-    fi
-    pct destroy $CTID
-  fi
-}
-
-# Stop Proxmox VE Monitor-All if running
-if systemctl is-active -q ping-instances.service; then
-  systemctl stop ping-instances.service
-fi
-
-# Set the CONTENT and CONTENT_LABEL variables
-function select_storage() {
-  local CLASS=$1
-  local CONTENT
-  local CONTENT_LABEL
-  case $CLASS in
-    container) CONTENT='rootdir'; CONTENT_LABEL='Container';;
-    template) CONTENT='vztmpl'; CONTENT_LABEL='Container template';;
-    *) false || die "Invalid storage class.";;
-  esac
-
-  # Query all storage locations
-  local -a MENU
-  while read -r line; do
-    local TAG=$(echo $line | awk '{print $1}')
-    local TYPE=$(echo $line | awk '{printf "%-10s", $2}')
-    local FREE=$(echo $line | numfmt --field 4-6 --from-unit=K --to=iec --format %.2f | awk '{printf( "%9sB", $6)}')
-    local ITEM="  Type: $TYPE Free: $FREE "
-    local OFFSET=2
-    if [[ $((${#ITEM} + $OFFSET)) -gt ${MSG_MAX_LENGTH:-} ]]; then
-      local MSG_MAX_LENGTH=$((${#ITEM} + $OFFSET))
-    fi
-    MENU+=("$TAG" "$ITEM" "OFF")
-  done < <(pvesm status -content $CONTENT | awk 'NR>1')
-
-  # Select storage location
-  if [ $((${#MENU[@]} / 3)) -eq 0 ]; then
-    warn "'$CONTENT_LABEL' needs to be selected for at least one storage location."
-    die "Unable to detect valid storage location."
-  elif [ $((${#MENU[@]} / 3)) -eq 1 ]; then
-    printf ${MENU[0]}
-  else
-    local STORAGE
-    while [ -z "${STORAGE:+x}" ]; do
-      STORAGE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Storage Pools" --radiolist \
-        "Which storage pool you would like to use for the ${CONTENT_LABEL,,}?\n\n" \
-        16 $(($MSG_MAX_LENGTH + 23)) 6 \
-        "${MENU[@]}" 3>&1 1>&2 2>&3) || die "Menu aborted."
-    done
-    printf $STORAGE
-  fi
-}
-
-# Get template storage
-TEMPLATE_STORAGE=$(select_storage template) || exit
-info "Using '$TEMPLATE_STORAGE' for template storage."
-
-# Get container storage
-CONTAINER_STORAGE=$(select_storage container) || exit
-info "Using '$CONTAINER_STORAGE' for container storage."
-
-# Update LXC template list
-msg "Updating LXC template list..."
-pveam update >/dev/null
-
-# Get LXC template string
-mapfile -t TEMPLATES < <(pveam available -section turnkeylinux | sed -n "s/.*\($TEMPLATE_SEARCH.*\)/\1/p" | sort -t - -k 2 -V)
-[ ${#TEMPLATES[@]} -gt 0 ] || die "Unable to find a template when searching for '$TEMPLATE_SEARCH'."
-TEMPLATE="${TEMPLATES[-1]}"
-
-# Download LXC template
-if ! pveam list $TEMPLATE_STORAGE | grep -q $TEMPLATE; then
-  msg "Downloading LXC template (Patience)..."
-  pveam download $TEMPLATE_STORAGE $TEMPLATE >/dev/null ||
-    die "A problem occured while downloading the LXC template."
-fi
-
-# Create variable for 'pct' options
-PCT_OPTIONS=(${PCT_OPTIONS[@]:-${DEFAULT_PCT_OPTIONS[@]}})
-[[ " ${PCT_OPTIONS[@]} " =~ " -rootfs " ]] || PCT_OPTIONS+=(-rootfs $CONTAINER_STORAGE:${PCT_DISK_SIZE:-8})
-
-# Create LXC
-msg "Creating LXC container..."
-pct create $CTID ${TEMPLATE_STORAGE}:vztmpl/${TEMPLATE} ${PCT_OPTIONS[@]} >/dev/null ||
-  die "A problem occured while trying to create container."
-
-# Save password
-echo "TurnKey ${NAME} password: ${PASS}" >>~/turnkey-${NAME}.creds # file is located in the Proxmox root directory
-
-# Start container
-msg "Starting LXC Container..."
-pct start "$CTID"
-sleep 5
-
-# Get container IP
-set +e
-max_attempts=5
-attempt=1
-IP=""
-while [[ $attempt -le $max_attempts ]]; do
-  IP=$(pct exec $CTID ip a show dev eth0 | grep -oP 'inet \K[^/]+')
-  if [[ -n $IP ]]; then
-    break
-  else
-    warn "Attempt $attempt: IP address not found. Pausing for 5 seconds..."
-    sleep 5
-    ((attempt++))
-  fi
-done
-
-if [[ -z $IP ]]; then
-  warn "Maximum number of attempts reached. IP address not found."
-  IP="NOT FOUND"
-fi
-
-set -e
-# Start Proxmox VE Monitor-All if available
-if [[ -f /etc/systemd/system/ping-instances.service ]]; then
-  systemctl start ping-instances.service
-fi
-
-# Success message
-header_info
-echo
-info "LXC container '$CTID' was successfully created, and its IP address is ${IP}."
-echo
-info "Proceed to the LXC console to complete the setup."
-echo
-info "login: root"
-info "password: $PASS"
-echo
\ No newline at end of file
diff --git a/turnkey/turnkey-gitlab.sh b/turnkey/turnkey-gitlab.sh
deleted file mode 100644
index 4059f424..00000000
--- a/turnkey/turnkey-gitlab.sh
+++ /dev/null
@@ -1,202 +0,0 @@
-#!/usr/bin/env bash
-# Copyright (c) 2021-2023 tteck
-# Author: tteck (tteckster)
-# License: MIT
-# https://github.com/tteck/Proxmox/raw/main/LICENSE
-
-# Setup script environment
-NAME="gitlab"
-PASS="$(openssl rand -base64 8)"
-CTID=$(pvesh get /cluster/nextid)
-TEMPLATE_SEARCH="debian-11-turnkey-${NAME}"
-PCT_DISK_SIZE="8"
-PCT_OPTIONS="
-    -features keyctl=1,nesting=1
-    -hostname turnkey-${NAME}
-    -tags proxmox-helper-scripts
-    -onboot 1
-    -cores 4
-    -memory 4096
-    -password $PASS
-    -net0 name=eth0,bridge=vmbr0,ip=dhcp
-    -unprivileged 1
-  "
-DEFAULT_PCT_OPTIONS=(
-  -arch $(dpkg --print-architecture)
-)
-function header_info {
-clear
-cat <<"EOF"
- ______              __ __           ______ __  __        __
-/_  __/_ _________  / //_/__ __ __  / ___(_) /_/ /  ___ _/ /
- / / / // / __/ _ \/ ,< / -_) // / / (_ / / __/ /__/ _ `/ _ \
-/_/  \_,_/_/ /_//_/_/|_|\__/\_, /  \___/_/\__/____/\_,_/_.__/
-                           /___/
-EOF
-}
-header_info
-read -p "Press ENTER to continue..."
-header_info
-set -eEuo pipefail
-shopt -s expand_aliases
-alias die='EXIT=$? LINE=$LINENO error_exit'
-trap die ERR
-
-function error_exit() {
-  trap - ERR
-  local DEFAULT='Unknown failure occured.'
-  local REASON="\e[97m${1:-$DEFAULT}\e[39m"
-  local FLAG="\e[91m[ERROR] \e[93m$EXIT@$LINE"
-  msg "$FLAG $REASON" 1>&2
-  [ ! -z ${CTID-} ] && cleanup_ctid
-  exit $EXIT
-}
-function warn() {
-  local REASON="\e[97m$1\e[39m"
-  local FLAG="\e[93m[WARNING]\e[39m"
-  msg "$FLAG $REASON"
-}
-function info() {
-  local REASON="$1"
-  local FLAG="\e[36m[INFO]\e[39m"
-  msg "$FLAG $REASON"
-}
-function msg() {
-  local TEXT="$1"
-  echo -e "$TEXT"
-}
-function cleanup_ctid() {
-  if pct status $CTID &>/dev/null; then
-    if [ "$(pct status $CTID | awk '{print $2}')" == "running" ]; then
-      pct stop $CTID
-    fi
-    pct destroy $CTID
-  fi
-}
-
-# Stop Proxmox VE Monitor-All if running
-if systemctl is-active -q ping-instances.service; then
-  systemctl stop ping-instances.service
-fi
-
-# Set the CONTENT and CONTENT_LABEL variables
-function select_storage() {
-  local CLASS=$1
-  local CONTENT
-  local CONTENT_LABEL
-  case $CLASS in
-    container) CONTENT='rootdir'; CONTENT_LABEL='Container';;
-    template) CONTENT='vztmpl'; CONTENT_LABEL='Container template';;
-    *) false || die "Invalid storage class.";;
-  esac
-
-  # Query all storage locations
-  local -a MENU
-  while read -r line; do
-    local TAG=$(echo $line | awk '{print $1}')
-    local TYPE=$(echo $line | awk '{printf "%-10s", $2}')
-    local FREE=$(echo $line | numfmt --field 4-6 --from-unit=K --to=iec --format %.2f | awk '{printf( "%9sB", $6)}')
-    local ITEM="  Type: $TYPE Free: $FREE "
-    local OFFSET=2
-    if [[ $((${#ITEM} + $OFFSET)) -gt ${MSG_MAX_LENGTH:-} ]]; then
-      local MSG_MAX_LENGTH=$((${#ITEM} + $OFFSET))
-    fi
-    MENU+=("$TAG" "$ITEM" "OFF")
-  done < <(pvesm status -content $CONTENT | awk 'NR>1')
-
-  # Select storage location
-  if [ $((${#MENU[@]} / 3)) -eq 0 ]; then
-    warn "'$CONTENT_LABEL' needs to be selected for at least one storage location."
-    die "Unable to detect valid storage location."
-  elif [ $((${#MENU[@]} / 3)) -eq 1 ]; then
-    printf ${MENU[0]}
-  else
-    local STORAGE
-    while [ -z "${STORAGE:+x}" ]; do
-      STORAGE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Storage Pools" --radiolist \
-        "Which storage pool you would like to use for the ${CONTENT_LABEL,,}?\n\n" \
-        16 $(($MSG_MAX_LENGTH + 23)) 6 \
-        "${MENU[@]}" 3>&1 1>&2 2>&3) || die "Menu aborted."
-    done
-    printf $STORAGE
-  fi
-}
-
-# Get template storage
-TEMPLATE_STORAGE=$(select_storage template) || exit
-info "Using '$TEMPLATE_STORAGE' for template storage."
-
-# Get container storage
-CONTAINER_STORAGE=$(select_storage container) || exit
-info "Using '$CONTAINER_STORAGE' for container storage."
-
-# Update LXC template list
-msg "Updating LXC template list..."
-pveam update >/dev/null
-
-# Get LXC template string
-mapfile -t TEMPLATES < <(pveam available -section turnkeylinux | sed -n "s/.*\($TEMPLATE_SEARCH.*\)/\1/p" | sort -t - -k 2 -V)
-[ ${#TEMPLATES[@]} -gt 0 ] || die "Unable to find a template when searching for '$TEMPLATE_SEARCH'."
-TEMPLATE="${TEMPLATES[-1]}"
-
-# Download LXC template
-if ! pveam list $TEMPLATE_STORAGE | grep -q $TEMPLATE; then
-  msg "Downloading LXC template (Patience)..."
-  pveam download $TEMPLATE_STORAGE $TEMPLATE >/dev/null ||
-    die "A problem occured while downloading the LXC template."
-fi
-
-# Create variable for 'pct' options
-PCT_OPTIONS=(${PCT_OPTIONS[@]:-${DEFAULT_PCT_OPTIONS[@]}})
-[[ " ${PCT_OPTIONS[@]} " =~ " -rootfs " ]] || PCT_OPTIONS+=(-rootfs $CONTAINER_STORAGE:${PCT_DISK_SIZE:-8})
-
-# Create LXC
-msg "Creating LXC container..."
-pct create $CTID ${TEMPLATE_STORAGE}:vztmpl/${TEMPLATE} ${PCT_OPTIONS[@]} >/dev/null ||
-  die "A problem occured while trying to create container."
-
-# Save password
-echo "TurnKey ${NAME} password: ${PASS}" >>~/turnkey-${NAME}.creds # file is located in the Proxmox root directory
-
-# Start container
-msg "Starting LXC Container..."
-pct start "$CTID"
-sleep 5
-
-# Get container IP
-set +e
-max_attempts=5
-attempt=1
-IP=""
-while [[ $attempt -le $max_attempts ]]; do
-  IP=$(pct exec $CTID ip a show dev eth0 | grep -oP 'inet \K[^/]+')
-  if [[ -n $IP ]]; then
-    break
-  else
-    warn "Attempt $attempt: IP address not found. Pausing for 5 seconds..."
-    sleep 5
-    ((attempt++))
-  fi
-done
-
-if [[ -z $IP ]]; then
-  warn "Maximum number of attempts reached. IP address not found."
-  IP="NOT FOUND"
-fi
-
-set -e
-# Start Proxmox VE Monitor-All if available
-if [[ -f /etc/systemd/system/ping-instances.service ]]; then
-  systemctl start ping-instances.service
-fi
-
-# Success message
-header_info
-echo
-info "LXC container '$CTID' was successfully created, and its IP address is ${IP}."
-echo
-info "Proceed to the LXC console to complete the setup."
-echo
-info "login: root"
-info "password: $PASS"
-echo
\ No newline at end of file
diff --git a/turnkey/turnkey-mediaserver.sh b/turnkey/turnkey-mediaserver.sh
deleted file mode 100644
index edd1b6f6..00000000
--- a/turnkey/turnkey-mediaserver.sh
+++ /dev/null
@@ -1,202 +0,0 @@
-#!/usr/bin/env bash
-# Copyright (c) 2021-2023 tteck
-# Author: tteck (tteckster)
-# License: MIT
-# https://github.com/tteck/Proxmox/raw/main/LICENSE
-
-# Setup script environment
-NAME="mediaserver"
-PASS="$(openssl rand -base64 8)"
-CTID=$(pvesh get /cluster/nextid)
-TEMPLATE_SEARCH="debian-11-turnkey-${NAME}"
-PCT_DISK_SIZE="8"
-PCT_OPTIONS="
-    -features keyctl=1,nesting=1
-    -hostname turnkey-${NAME}
-    -tags proxmox-helper-scripts
-    -onboot 1
-    -cores 2
-    -memory 2048
-    -password $PASS
-    -net0 name=eth0,bridge=vmbr0,ip=dhcp
-    -unprivileged 1
-  "
-DEFAULT_PCT_OPTIONS=(
-  -arch $(dpkg --print-architecture)
-)
-function header_info {
-clear
-cat <<"EOF"
- ______              __ __           __  ___       ___        ____
-/_  __/_ _________  / //_/__ __ __  /  |/  /__ ___/ (_)__ _  / __/__ _____  _____ ____
- / / / // / __/ _ \/ ,< / -_) // / / /|_/ / -_) _  / / _ `/ _\ \/ -_) __/ |/ / -_) __/
-/_/  \_,_/_/ /_//_/_/|_|\__/\_, / /_/  /_/\__/\_,_/_/\_,_/ /___/\__/_/  |___/\__/_/
-                           /___/
-EOF
-}
-header_info
-read -p "Press ENTER to continue..."
-header_info
-set -eEuo pipefail
-shopt -s expand_aliases
-alias die='EXIT=$? LINE=$LINENO error_exit'
-trap die ERR
-
-function error_exit() {
-  trap - ERR
-  local DEFAULT='Unknown failure occured.'
-  local REASON="\e[97m${1:-$DEFAULT}\e[39m"
-  local FLAG="\e[91m[ERROR] \e[93m$EXIT@$LINE"
-  msg "$FLAG $REASON" 1>&2
-  [ ! -z ${CTID-} ] && cleanup_ctid
-  exit $EXIT
-}
-function warn() {
-  local REASON="\e[97m$1\e[39m"
-  local FLAG="\e[93m[WARNING]\e[39m"
-  msg "$FLAG $REASON"
-}
-function info() {
-  local REASON="$1"
-  local FLAG="\e[36m[INFO]\e[39m"
-  msg "$FLAG $REASON"
-}
-function msg() {
-  local TEXT="$1"
-  echo -e "$TEXT"
-}
-function cleanup_ctid() {
-  if pct status $CTID &>/dev/null; then
-    if [ "$(pct status $CTID | awk '{print $2}')" == "running" ]; then
-      pct stop $CTID
-    fi
-    pct destroy $CTID
-  fi
-}
-
-# Stop Proxmox VE Monitor-All if running
-if systemctl is-active -q ping-instances.service; then
-  systemctl stop ping-instances.service
-fi
-
-# Set the CONTENT and CONTENT_LABEL variables
-function select_storage() {
-  local CLASS=$1
-  local CONTENT
-  local CONTENT_LABEL
-  case $CLASS in
-    container) CONTENT='rootdir'; CONTENT_LABEL='Container';;
-    template) CONTENT='vztmpl'; CONTENT_LABEL='Container template';;
-    *) false || die "Invalid storage class.";;
-  esac
-
-  # Query all storage locations
-  local -a MENU
-  while read -r line; do
-    local TAG=$(echo $line | awk '{print $1}')
-    local TYPE=$(echo $line | awk '{printf "%-10s", $2}')
-    local FREE=$(echo $line | numfmt --field 4-6 --from-unit=K --to=iec --format %.2f | awk '{printf( "%9sB", $6)}')
-    local ITEM="  Type: $TYPE Free: $FREE "
-    local OFFSET=2
-    if [[ $((${#ITEM} + $OFFSET)) -gt ${MSG_MAX_LENGTH:-} ]]; then
-      local MSG_MAX_LENGTH=$((${#ITEM} + $OFFSET))
-    fi
-    MENU+=("$TAG" "$ITEM" "OFF")
-  done < <(pvesm status -content $CONTENT | awk 'NR>1')
-
-  # Select storage location
-  if [ $((${#MENU[@]} / 3)) -eq 0 ]; then
-    warn "'$CONTENT_LABEL' needs to be selected for at least one storage location."
-    die "Unable to detect valid storage location."
-  elif [ $((${#MENU[@]} / 3)) -eq 1 ]; then
-    printf ${MENU[0]}
-  else
-    local STORAGE
-    while [ -z "${STORAGE:+x}" ]; do
-      STORAGE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Storage Pools" --radiolist \
-        "Which storage pool you would like to use for the ${CONTENT_LABEL,,}?\n\n" \
-        16 $(($MSG_MAX_LENGTH + 23)) 6 \
-        "${MENU[@]}" 3>&1 1>&2 2>&3) || die "Menu aborted."
-    done
-    printf $STORAGE
-  fi
-}
-
-# Get template storage
-TEMPLATE_STORAGE=$(select_storage template) || exit
-info "Using '$TEMPLATE_STORAGE' for template storage."
-
-# Get container storage
-CONTAINER_STORAGE=$(select_storage container) || exit
-info "Using '$CONTAINER_STORAGE' for container storage."
-
-# Update LXC template list
-msg "Updating LXC template list..."
-pveam update >/dev/null
-
-# Get LXC template string
-mapfile -t TEMPLATES < <(pveam available -section turnkeylinux | sed -n "s/.*\($TEMPLATE_SEARCH.*\)/\1/p" | sort -t - -k 2 -V)
-[ ${#TEMPLATES[@]} -gt 0 ] || die "Unable to find a template when searching for '$TEMPLATE_SEARCH'."
-TEMPLATE="${TEMPLATES[-1]}"
-
-# Download LXC template
-if ! pveam list $TEMPLATE_STORAGE | grep -q $TEMPLATE; then
-  msg "Downloading LXC template (Patience)..."
-  pveam download $TEMPLATE_STORAGE $TEMPLATE >/dev/null ||
-    die "A problem occured while downloading the LXC template."
-fi
-
-# Create variable for 'pct' options
-PCT_OPTIONS=(${PCT_OPTIONS[@]:-${DEFAULT_PCT_OPTIONS[@]}})
-[[ " ${PCT_OPTIONS[@]} " =~ " -rootfs " ]] || PCT_OPTIONS+=(-rootfs $CONTAINER_STORAGE:${PCT_DISK_SIZE:-8})
-
-# Create LXC
-msg "Creating LXC container..."
-pct create $CTID ${TEMPLATE_STORAGE}:vztmpl/${TEMPLATE} ${PCT_OPTIONS[@]} >/dev/null ||
-  die "A problem occured while trying to create container."
-
-# Save password
-echo "TurnKey ${NAME} password: ${PASS}" >>~/turnkey-${NAME}.creds # file is located in the Proxmox root directory
-
-# Start container
-msg "Starting LXC Container..."
-pct start "$CTID"
-sleep 5
-
-# Get container IP
-set +e
-max_attempts=5
-attempt=1
-IP=""
-while [[ $attempt -le $max_attempts ]]; do
-  IP=$(pct exec $CTID ip a show dev eth0 | grep -oP 'inet \K[^/]+')
-  if [[ -n $IP ]]; then
-    break
-  else
-    warn "Attempt $attempt: IP address not found. Pausing for 5 seconds..."
-    sleep 5
-    ((attempt++))
-  fi
-done
-
-if [[ -z $IP ]]; then
-  warn "Maximum number of attempts reached. IP address not found."
-  IP="NOT FOUND"
-fi
-
-set -e
-# Start Proxmox VE Monitor-All if available
-if [[ -f /etc/systemd/system/ping-instances.service ]]; then
-  systemctl start ping-instances.service
-fi
-
-# Success message
-header_info
-echo
-info "LXC container '$CTID' was successfully created, and its IP address is ${IP}."
-echo
-info "Proceed to the LXC console to complete the setup."
-echo
-info "login: root"
-info "password: $PASS"
-echo
diff --git a/turnkey/turnkey-nextcloud.sh b/turnkey/turnkey-nextcloud.sh
deleted file mode 100644
index b13cdb5e..00000000
--- a/turnkey/turnkey-nextcloud.sh
+++ /dev/null
@@ -1,202 +0,0 @@
-#!/usr/bin/env bash
-# Copyright (c) 2021-2023 tteck
-# Author: tteck (tteckster)
-# License: MIT
-# https://github.com/tteck/Proxmox/raw/main/LICENSE
-
-# Setup script environment
-NAME="nextcloud"
-PASS="$(openssl rand -base64 8)"
-CTID=$(pvesh get /cluster/nextid)
-TEMPLATE_SEARCH="debian-11-turnkey-${NAME}"
-PCT_DISK_SIZE="10"
-PCT_OPTIONS="
-    -features keyctl=1,nesting=1
-    -hostname turnkey-${NAME}
-    -tags proxmox-helper-scripts
-    -onboot 1
-    -cores 2
-    -memory 2048
-    -password $PASS
-    -net0 name=eth0,bridge=vmbr0,ip=dhcp
-    -unprivileged 1
-  "
-DEFAULT_PCT_OPTIONS=(
-  -arch $(dpkg --print-architecture)
-)
-function header_info {
-clear
-cat <<"EOF"
- ______              __ __           _  __        __      __             __
-/_  __/_ _________  / //_/__ __ __  / |/ /____ __/ /_____/ /__  __ _____/ /
- / / / // / __/ _ \/ ,< / -_) // / /    / -_) \ / __/ __/ / _ \/ // / _  /
-/_/  \_,_/_/ /_//_/_/|_|\__/\_, / /_/|_/\__/_\_\\__/\__/_/\___/\_,_/\_,_/
-                           /___/
-EOF
-}
-header_info
-read -p "Press ENTER to continue..."
-header_info
-set -eEuo pipefail
-shopt -s expand_aliases
-alias die='EXIT=$? LINE=$LINENO error_exit'
-trap die ERR
-
-function error_exit() {
-  trap - ERR
-  local DEFAULT='Unknown failure occured.'
-  local REASON="\e[97m${1:-$DEFAULT}\e[39m"
-  local FLAG="\e[91m[ERROR] \e[93m$EXIT@$LINE"
-  msg "$FLAG $REASON" 1>&2
-  [ ! -z ${CTID-} ] && cleanup_ctid
-  exit $EXIT
-}
-function warn() {
-  local REASON="\e[97m$1\e[39m"
-  local FLAG="\e[93m[WARNING]\e[39m"
-  msg "$FLAG $REASON"
-}
-function info() {
-  local REASON="$1"
-  local FLAG="\e[36m[INFO]\e[39m"
-  msg "$FLAG $REASON"
-}
-function msg() {
-  local TEXT="$1"
-  echo -e "$TEXT"
-}
-function cleanup_ctid() {
-  if pct status $CTID &>/dev/null; then
-    if [ "$(pct status $CTID | awk '{print $2}')" == "running" ]; then
-      pct stop $CTID
-    fi
-    pct destroy $CTID
-  fi
-}
-
-# Stop Proxmox VE Monitor-All if running
-if systemctl is-active -q ping-instances.service; then
-  systemctl stop ping-instances.service
-fi
-
-# Set the CONTENT and CONTENT_LABEL variables
-function select_storage() {
-  local CLASS=$1
-  local CONTENT
-  local CONTENT_LABEL
-  case $CLASS in
-    container) CONTENT='rootdir'; CONTENT_LABEL='Container';;
-    template) CONTENT='vztmpl'; CONTENT_LABEL='Container template';;
-    *) false || die "Invalid storage class.";;
-  esac
-
-  # Query all storage locations
-  local -a MENU
-  while read -r line; do
-    local TAG=$(echo $line | awk '{print $1}')
-    local TYPE=$(echo $line | awk '{printf "%-10s", $2}')
-    local FREE=$(echo $line | numfmt --field 4-6 --from-unit=K --to=iec --format %.2f | awk '{printf( "%9sB", $6)}')
-    local ITEM="  Type: $TYPE Free: $FREE "
-    local OFFSET=2
-    if [[ $((${#ITEM} + $OFFSET)) -gt ${MSG_MAX_LENGTH:-} ]]; then
-      local MSG_MAX_LENGTH=$((${#ITEM} + $OFFSET))
-    fi
-    MENU+=("$TAG" "$ITEM" "OFF")
-  done < <(pvesm status -content $CONTENT | awk 'NR>1')
-
-  # Select storage location
-  if [ $((${#MENU[@]} / 3)) -eq 0 ]; then
-    warn "'$CONTENT_LABEL' needs to be selected for at least one storage location."
-    die "Unable to detect valid storage location."
-  elif [ $((${#MENU[@]} / 3)) -eq 1 ]; then
-    printf ${MENU[0]}
-  else
-    local STORAGE
-    while [ -z "${STORAGE:+x}" ]; do
-      STORAGE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Storage Pools" --radiolist \
-        "Which storage pool you would like to use for the ${CONTENT_LABEL,,}?\n\n" \
-        16 $(($MSG_MAX_LENGTH + 23)) 6 \
-        "${MENU[@]}" 3>&1 1>&2 2>&3) || die "Menu aborted."
-    done
-    printf $STORAGE
-  fi
-}
-
-# Get template storage
-TEMPLATE_STORAGE=$(select_storage template) || exit
-info "Using '$TEMPLATE_STORAGE' for template storage."
-
-# Get container storage
-CONTAINER_STORAGE=$(select_storage container) || exit
-info "Using '$CONTAINER_STORAGE' for container storage."
-
-# Update LXC template list
-msg "Updating LXC template list..."
-pveam update >/dev/null
-
-# Get LXC template string
-mapfile -t TEMPLATES < <(pveam available -section turnkeylinux | sed -n "s/.*\($TEMPLATE_SEARCH.*\)/\1/p" | sort -t - -k 2 -V)
-[ ${#TEMPLATES[@]} -gt 0 ] || die "Unable to find a template when searching for '$TEMPLATE_SEARCH'."
-TEMPLATE="${TEMPLATES[-1]}"
-
-# Download LXC template
-if ! pveam list $TEMPLATE_STORAGE | grep -q $TEMPLATE; then
-  msg "Downloading LXC template (Patience)..."
-  pveam download $TEMPLATE_STORAGE $TEMPLATE >/dev/null ||
-    die "A problem occured while downloading the LXC template."
-fi
-
-# Create variable for 'pct' options
-PCT_OPTIONS=(${PCT_OPTIONS[@]:-${DEFAULT_PCT_OPTIONS[@]}})
-[[ " ${PCT_OPTIONS[@]} " =~ " -rootfs " ]] || PCT_OPTIONS+=(-rootfs $CONTAINER_STORAGE:${PCT_DISK_SIZE:-8})
-
-# Create LXC
-msg "Creating LXC container..."
-pct create $CTID ${TEMPLATE_STORAGE}:vztmpl/${TEMPLATE} ${PCT_OPTIONS[@]} >/dev/null ||
-  die "A problem occured while trying to create container."
-
-# Save password
-echo "TurnKey ${NAME} password: ${PASS}" >>~/turnkey-${NAME}.creds # file is located in the Proxmox root directory
-
-# Start container
-msg "Starting LXC Container..."
-pct start "$CTID"
-sleep 5
-
-# Get container IP
-set +e
-max_attempts=5
-attempt=1
-IP=""
-while [[ $attempt -le $max_attempts ]]; do
-  IP=$(pct exec $CTID ip a show dev eth0 | grep -oP 'inet \K[^/]+')
-  if [[ -n $IP ]]; then
-    break
-  else
-    warn "Attempt $attempt: IP address not found. Pausing for 5 seconds..."
-    sleep 5
-    ((attempt++))
-  fi
-done
-
-if [[ -z $IP ]]; then
-  warn "Maximum number of attempts reached. IP address not found."
-  IP="NOT FOUND"
-fi
-
-set -e
-# Start Proxmox VE Monitor-All if available
-if [[ -f /etc/systemd/system/ping-instances.service ]]; then
-  systemctl start ping-instances.service
-fi
-
-# Success message
-header_info
-echo
-info "LXC container '$CTID' was successfully created, and its IP address is ${IP}."
-echo
-info "Proceed to the LXC console to complete the setup."
-echo
-info "login: root"
-info "password: $PASS"
-echo
\ No newline at end of file
diff --git a/turnkey/turnkey-observium.sh b/turnkey/turnkey-observium.sh
deleted file mode 100644
index 93f444b7..00000000
--- a/turnkey/turnkey-observium.sh
+++ /dev/null
@@ -1,202 +0,0 @@
-#!/usr/bin/env bash
-# Copyright (c) 2021-2023 tteck
-# Author: tteck (tteckster)
-# License: MIT
-# https://github.com/tteck/Proxmox/raw/main/LICENSE
-
-# Setup script environment
-NAME="observium"
-PASS="$(openssl rand -base64 8)"
-CTID=$(pvesh get /cluster/nextid)
-TEMPLATE_SEARCH="debian-11-turnkey-${NAME}"
-PCT_DISK_SIZE="4"
-PCT_OPTIONS="
-    -features keyctl=1,nesting=1
-    -hostname turnkey-${NAME}
-    -tags proxmox-helper-scripts
-    -onboot 1
-    -cores 2
-    -memory 2048
-    -password $PASS
-    -net0 name=eth0,bridge=vmbr0,ip=dhcp
-    -unprivileged 1
-  "
-DEFAULT_PCT_OPTIONS=(
-  -arch $(dpkg --print-architecture)
-)
-function header_info {
-clear
-cat <<"EOF"
- ______              __ __           ____  __                    _
-/_  __/_ _________  / //_/__ __ __  / __ \/ /  ___ ___ _____  __(_)_ ____ _
- / / / // / __/ _ \/ ,< / -_) // / / /_/ / _ \(_-</ -_) __/ |/ / / // /  ' \
-/_/  \_,_/_/ /_//_/_/|_|\__/\_, /  \____/_.__/___/\__/_/  |___/_/\_,_/_/_/_/
-                           /___/
-EOF
-}
-header_info
-read -p "Press ENTER to continue..."
-header_info
-set -eEuo pipefail
-shopt -s expand_aliases
-alias die='EXIT=$? LINE=$LINENO error_exit'
-trap die ERR
-
-function error_exit() {
-  trap - ERR
-  local DEFAULT='Unknown failure occured.'
-  local REASON="\e[97m${1:-$DEFAULT}\e[39m"
-  local FLAG="\e[91m[ERROR] \e[93m$EXIT@$LINE"
-  msg "$FLAG $REASON" 1>&2
-  [ ! -z ${CTID-} ] && cleanup_ctid
-  exit $EXIT
-}
-function warn() {
-  local REASON="\e[97m$1\e[39m"
-  local FLAG="\e[93m[WARNING]\e[39m"
-  msg "$FLAG $REASON"
-}
-function info() {
-  local REASON="$1"
-  local FLAG="\e[36m[INFO]\e[39m"
-  msg "$FLAG $REASON"
-}
-function msg() {
-  local TEXT="$1"
-  echo -e "$TEXT"
-}
-function cleanup_ctid() {
-  if pct status $CTID &>/dev/null; then
-    if [ "$(pct status $CTID | awk '{print $2}')" == "running" ]; then
-      pct stop $CTID
-    fi
-    pct destroy $CTID
-  fi
-}
-
-# Stop Proxmox VE Monitor-All if running
-if systemctl is-active -q ping-instances.service; then
-  systemctl stop ping-instances.service
-fi
-
-# Set the CONTENT and CONTENT_LABEL variables
-function select_storage() {
-  local CLASS=$1
-  local CONTENT
-  local CONTENT_LABEL
-  case $CLASS in
-    container) CONTENT='rootdir'; CONTENT_LABEL='Container';;
-    template) CONTENT='vztmpl'; CONTENT_LABEL='Container template';;
-    *) false || die "Invalid storage class.";;
-  esac
-
-  # Query all storage locations
-  local -a MENU
-  while read -r line; do
-    local TAG=$(echo $line | awk '{print $1}')
-    local TYPE=$(echo $line | awk '{printf "%-10s", $2}')
-    local FREE=$(echo $line | numfmt --field 4-6 --from-unit=K --to=iec --format %.2f | awk '{printf( "%9sB", $6)}')
-    local ITEM="  Type: $TYPE Free: $FREE "
-    local OFFSET=2
-    if [[ $((${#ITEM} + $OFFSET)) -gt ${MSG_MAX_LENGTH:-} ]]; then
-      local MSG_MAX_LENGTH=$((${#ITEM} + $OFFSET))
-    fi
-    MENU+=("$TAG" "$ITEM" "OFF")
-  done < <(pvesm status -content $CONTENT | awk 'NR>1')
-
-  # Select storage location
-  if [ $((${#MENU[@]} / 3)) -eq 0 ]; then
-    warn "'$CONTENT_LABEL' needs to be selected for at least one storage location."
-    die "Unable to detect valid storage location."
-  elif [ $((${#MENU[@]} / 3)) -eq 1 ]; then
-    printf ${MENU[0]}
-  else
-    local STORAGE
-    while [ -z "${STORAGE:+x}" ]; do
-      STORAGE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Storage Pools" --radiolist \
-        "Which storage pool you would like to use for the ${CONTENT_LABEL,,}?\n\n" \
-        16 $(($MSG_MAX_LENGTH + 23)) 6 \
-        "${MENU[@]}" 3>&1 1>&2 2>&3) || die "Menu aborted."
-    done
-    printf $STORAGE
-  fi
-}
-
-# Get template storage
-TEMPLATE_STORAGE=$(select_storage template) || exit
-info "Using '$TEMPLATE_STORAGE' for template storage."
-
-# Get container storage
-CONTAINER_STORAGE=$(select_storage container) || exit
-info "Using '$CONTAINER_STORAGE' for container storage."
-
-# Update LXC template list
-msg "Updating LXC template list..."
-pveam update >/dev/null
-
-# Get LXC template string
-mapfile -t TEMPLATES < <(pveam available -section turnkeylinux | sed -n "s/.*\($TEMPLATE_SEARCH.*\)/\1/p" | sort -t - -k 2 -V)
-[ ${#TEMPLATES[@]} -gt 0 ] || die "Unable to find a template when searching for '$TEMPLATE_SEARCH'."
-TEMPLATE="${TEMPLATES[-1]}"
-
-# Download LXC template
-if ! pveam list $TEMPLATE_STORAGE | grep -q $TEMPLATE; then
-  msg "Downloading LXC template (Patience)..."
-  pveam download $TEMPLATE_STORAGE $TEMPLATE >/dev/null ||
-    die "A problem occured while downloading the LXC template."
-fi
-
-# Create variable for 'pct' options
-PCT_OPTIONS=(${PCT_OPTIONS[@]:-${DEFAULT_PCT_OPTIONS[@]}})
-[[ " ${PCT_OPTIONS[@]} " =~ " -rootfs " ]] || PCT_OPTIONS+=(-rootfs $CONTAINER_STORAGE:${PCT_DISK_SIZE:-8})
-
-# Create LXC
-msg "Creating LXC container..."
-pct create $CTID ${TEMPLATE_STORAGE}:vztmpl/${TEMPLATE} ${PCT_OPTIONS[@]} >/dev/null ||
-  die "A problem occured while trying to create container."
-
-# Save password
-echo "TurnKey ${NAME} password: ${PASS}" >>~/turnkey-${NAME}.creds # file is located in the Proxmox root directory
-
-# Start container
-msg "Starting LXC Container..."
-pct start "$CTID"
-sleep 5
-
-# Get container IP
-set +e
-max_attempts=5
-attempt=1
-IP=""
-while [[ $attempt -le $max_attempts ]]; do
-  IP=$(pct exec $CTID ip a show dev eth0 | grep -oP 'inet \K[^/]+')
-  if [[ -n $IP ]]; then
-    break
-  else
-    warn "Attempt $attempt: IP address not found. Pausing for 5 seconds..."
-    sleep 5
-    ((attempt++))
-  fi
-done
-
-if [[ -z $IP ]]; then
-  warn "Maximum number of attempts reached. IP address not found."
-  IP="NOT FOUND"
-fi
-
-set -e
-# Start Proxmox VE Monitor-All if available
-if [[ -f /etc/systemd/system/ping-instances.service ]]; then
-  systemctl start ping-instances.service
-fi
-
-# Success message
-header_info
-echo
-info "LXC container '$CTID' was successfully created, and its IP address is ${IP}."
-echo
-info "Proceed to the LXC console to complete the setup."
-echo
-info "login: root"
-info "password: $PASS"
-echo
\ No newline at end of file
diff --git a/turnkey/turnkey-openvpn.sh b/turnkey/turnkey-openvpn.sh
deleted file mode 100644
index 79f5b407..00000000
--- a/turnkey/turnkey-openvpn.sh
+++ /dev/null
@@ -1,202 +0,0 @@
-#!/usr/bin/env bash
-# Copyright (c) 2021-2023 tteck
-# Author: tteck (tteckster)
-# License: MIT
-# https://github.com/tteck/Proxmox/raw/main/LICENSE
-
-# Setup script environment
-NAME="openvpn"
-PASS="$(openssl rand -base64 8)"
-CTID=$(pvesh get /cluster/nextid)
-TEMPLATE_SEARCH="debian-11-turnkey-${NAME}"
-PCT_DISK_SIZE="4"
-PCT_OPTIONS="
-    -features keyctl=1,nesting=1
-    -hostname turnkey-${NAME}
-    -tags proxmox-helper-scripts
-    -onboot 1
-    -cores 2
-    -memory 2048
-    -password $PASS
-    -net0 name=eth0,bridge=vmbr0,ip=dhcp
-    -unprivileged 1
-  "
-DEFAULT_PCT_OPTIONS=(
-  -arch $(dpkg --print-architecture)
-)
-function header_info {
-clear
-cat <<"EOF"
- ______              __ __           ____              _   _____  _  __
-/_  __/_ _________  / //_/__ __ __  / __ \___  ___ ___| | / / _ \/ |/ /
- / / / // / __/ _ \/ ,< / -_) // / / /_/ / _ \/ -_) _ \ |/ / ___/    / 
-/_/  \_,_/_/ /_//_/_/|_|\__/\_, /  \____/ .__/\__/_//_/___/_/  /_/|_/
-                           /___/       /_/
-EOF
-}
-header_info
-read -p "Press ENTER to continue..."
-header_info
-set -eEuo pipefail
-shopt -s expand_aliases
-alias die='EXIT=$? LINE=$LINENO error_exit'
-trap die ERR
-
-function error_exit() {
-  trap - ERR
-  local DEFAULT='Unknown failure occured.'
-  local REASON="\e[97m${1:-$DEFAULT}\e[39m"
-  local FLAG="\e[91m[ERROR] \e[93m$EXIT@$LINE"
-  msg "$FLAG $REASON" 1>&2
-  [ ! -z ${CTID-} ] && cleanup_ctid
-  exit $EXIT
-}
-function warn() {
-  local REASON="\e[97m$1\e[39m"
-  local FLAG="\e[93m[WARNING]\e[39m"
-  msg "$FLAG $REASON"
-}
-function info() {
-  local REASON="$1"
-  local FLAG="\e[36m[INFO]\e[39m"
-  msg "$FLAG $REASON"
-}
-function msg() {
-  local TEXT="$1"
-  echo -e "$TEXT"
-}
-function cleanup_ctid() {
-  if pct status $CTID &>/dev/null; then
-    if [ "$(pct status $CTID | awk '{print $2}')" == "running" ]; then
-      pct stop $CTID
-    fi
-    pct destroy $CTID
-  fi
-}
-
-# Stop Proxmox VE Monitor-All if running
-if systemctl is-active -q ping-instances.service; then
-  systemctl stop ping-instances.service
-fi
-
-# Set the CONTENT and CONTENT_LABEL variables
-function select_storage() {
-  local CLASS=$1
-  local CONTENT
-  local CONTENT_LABEL
-  case $CLASS in
-    container) CONTENT='rootdir'; CONTENT_LABEL='Container';;
-    template) CONTENT='vztmpl'; CONTENT_LABEL='Container template';;
-    *) false || die "Invalid storage class.";;
-  esac
-
-  # Query all storage locations
-  local -a MENU
-  while read -r line; do
-    local TAG=$(echo $line | awk '{print $1}')
-    local TYPE=$(echo $line | awk '{printf "%-10s", $2}')
-    local FREE=$(echo $line | numfmt --field 4-6 --from-unit=K --to=iec --format %.2f | awk '{printf( "%9sB", $6)}')
-    local ITEM="  Type: $TYPE Free: $FREE "
-    local OFFSET=2
-    if [[ $((${#ITEM} + $OFFSET)) -gt ${MSG_MAX_LENGTH:-} ]]; then
-      local MSG_MAX_LENGTH=$((${#ITEM} + $OFFSET))
-    fi
-    MENU+=("$TAG" "$ITEM" "OFF")
-  done < <(pvesm status -content $CONTENT | awk 'NR>1')
-
-  # Select storage location
-  if [ $((${#MENU[@]} / 3)) -eq 0 ]; then
-    warn "'$CONTENT_LABEL' needs to be selected for at least one storage location."
-    die "Unable to detect valid storage location."
-  elif [ $((${#MENU[@]} / 3)) -eq 1 ]; then
-    printf ${MENU[0]}
-  else
-    local STORAGE
-    while [ -z "${STORAGE:+x}" ]; do
-      STORAGE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Storage Pools" --radiolist \
-        "Which storage pool you would like to use for the ${CONTENT_LABEL,,}?\n\n" \
-        16 $(($MSG_MAX_LENGTH + 23)) 6 \
-        "${MENU[@]}" 3>&1 1>&2 2>&3) || die "Menu aborted."
-    done
-    printf $STORAGE
-  fi
-}
-
-# Get template storage
-TEMPLATE_STORAGE=$(select_storage template) || exit
-info "Using '$TEMPLATE_STORAGE' for template storage."
-
-# Get container storage
-CONTAINER_STORAGE=$(select_storage container) || exit
-info "Using '$CONTAINER_STORAGE' for container storage."
-
-# Update LXC template list
-msg "Updating LXC template list..."
-pveam update >/dev/null
-
-# Get LXC template string
-mapfile -t TEMPLATES < <(pveam available -section turnkeylinux | sed -n "s/.*\($TEMPLATE_SEARCH.*\)/\1/p" | sort -t - -k 2 -V)
-[ ${#TEMPLATES[@]} -gt 0 ] || die "Unable to find a template when searching for '$TEMPLATE_SEARCH'."
-TEMPLATE="${TEMPLATES[-1]}"
-
-# Download LXC template
-if ! pveam list $TEMPLATE_STORAGE | grep -q $TEMPLATE; then
-  msg "Downloading LXC template (Patience)..."
-  pveam download $TEMPLATE_STORAGE $TEMPLATE >/dev/null ||
-    die "A problem occured while downloading the LXC template."
-fi
-
-# Create variable for 'pct' options
-PCT_OPTIONS=(${PCT_OPTIONS[@]:-${DEFAULT_PCT_OPTIONS[@]}})
-[[ " ${PCT_OPTIONS[@]} " =~ " -rootfs " ]] || PCT_OPTIONS+=(-rootfs $CONTAINER_STORAGE:${PCT_DISK_SIZE:-8})
-
-# Create LXC
-msg "Creating LXC container..."
-pct create $CTID ${TEMPLATE_STORAGE}:vztmpl/${TEMPLATE} ${PCT_OPTIONS[@]} >/dev/null ||
-  die "A problem occured while trying to create container."
-
-# Save password
-echo "TurnKey ${NAME} password: ${PASS}" >>~/turnkey-${NAME}.creds # file is located in the Proxmox root directory
-
-# Start container
-msg "Starting LXC Container..."
-pct start "$CTID"
-sleep 5
-
-# Get container IP
-set +e
-max_attempts=5
-attempt=1
-IP=""
-while [[ $attempt -le $max_attempts ]]; do
-  IP=$(pct exec $CTID ip a show dev eth0 | grep -oP 'inet \K[^/]+')
-  if [[ -n $IP ]]; then
-    break
-  else
-    warn "Attempt $attempt: IP address not found. Pausing for 5 seconds..."
-    sleep 5
-    ((attempt++))
-  fi
-done
-
-if [[ -z $IP ]]; then
-  warn "Maximum number of attempts reached. IP address not found."
-  IP="NOT FOUND"
-fi
-
-set -e
-# Start Proxmox VE Monitor-All if available
-if [[ -f /etc/systemd/system/ping-instances.service ]]; then
-  systemctl start ping-instances.service
-fi
-
-# Success message
-header_info
-echo
-info "LXC container '$CTID' was successfully created, and its IP address is ${IP}."
-echo
-info "Proceed to the LXC console to complete the setup."
-echo
-info "login: root"
-info "password: $PASS"
-echo
\ No newline at end of file
diff --git a/turnkey/turnkey-owncloud.sh b/turnkey/turnkey-owncloud.sh
deleted file mode 100644
index a5f16ff0..00000000
--- a/turnkey/turnkey-owncloud.sh
+++ /dev/null
@@ -1,202 +0,0 @@
-#!/usr/bin/env bash
-# Copyright (c) 2021-2023 tteck
-# Author: tteck (tteckster)
-# License: MIT
-# https://github.com/tteck/Proxmox/raw/main/LICENSE
-
-# Setup script environment
-NAME="owncloud"
-PASS="$(openssl rand -base64 8)"
-CTID=$(pvesh get /cluster/nextid)
-TEMPLATE_SEARCH="debian-11-turnkey-${NAME}"
-PCT_DISK_SIZE="10"
-PCT_OPTIONS="
-    -features keyctl=1,nesting=1
-    -hostname turnkey-${NAME}
-    -tags proxmox-helper-scripts
-    -onboot 1
-    -cores 2
-    -memory 2048
-    -password $PASS
-    -net0 name=eth0,bridge=vmbr0,ip=dhcp
-    -unprivileged 1
-  "
-DEFAULT_PCT_OPTIONS=(
-  -arch $(dpkg --print-architecture)
-)
-function header_info {
-clear
-cat <<"EOF"
- ______              __ __                           _______             __
-/_  __/_ _________  / //_/__ __ __  ___ _    _____  / ___/ /__  __ _____/ /
- / / / // / __/ _ \/ ,< / -_) // / / _ \ |/|/ / _ \/ /__/ / _ \/ // / _  /
-/_/  \_,_/_/ /_//_/_/|_|\__/\_, /  \___/__,__/_//_/\___/_/\___/\_,_/\_,_/
-                           /___/
-EOF
-}
-header_info
-read -p "Press ENTER to continue..."
-header_info
-set -eEuo pipefail
-shopt -s expand_aliases
-alias die='EXIT=$? LINE=$LINENO error_exit'
-trap die ERR
-
-function error_exit() {
-  trap - ERR
-  local DEFAULT='Unknown failure occured.'
-  local REASON="\e[97m${1:-$DEFAULT}\e[39m"
-  local FLAG="\e[91m[ERROR] \e[93m$EXIT@$LINE"
-  msg "$FLAG $REASON" 1>&2
-  [ ! -z ${CTID-} ] && cleanup_ctid
-  exit $EXIT
-}
-function warn() {
-  local REASON="\e[97m$1\e[39m"
-  local FLAG="\e[93m[WARNING]\e[39m"
-  msg "$FLAG $REASON"
-}
-function info() {
-  local REASON="$1"
-  local FLAG="\e[36m[INFO]\e[39m"
-  msg "$FLAG $REASON"
-}
-function msg() {
-  local TEXT="$1"
-  echo -e "$TEXT"
-}
-function cleanup_ctid() {
-  if pct status $CTID &>/dev/null; then
-    if [ "$(pct status $CTID | awk '{print $2}')" == "running" ]; then
-      pct stop $CTID
-    fi
-    pct destroy $CTID
-  fi
-}
-
-# Stop Proxmox VE Monitor-All if running
-if systemctl is-active -q ping-instances.service; then
-  systemctl stop ping-instances.service
-fi
-
-# Set the CONTENT and CONTENT_LABEL variables
-function select_storage() {
-  local CLASS=$1
-  local CONTENT
-  local CONTENT_LABEL
-  case $CLASS in
-    container) CONTENT='rootdir'; CONTENT_LABEL='Container';;
-    template) CONTENT='vztmpl'; CONTENT_LABEL='Container template';;
-    *) false || die "Invalid storage class.";;
-  esac
-
-  # Query all storage locations
-  local -a MENU
-  while read -r line; do
-    local TAG=$(echo $line | awk '{print $1}')
-    local TYPE=$(echo $line | awk '{printf "%-10s", $2}')
-    local FREE=$(echo $line | numfmt --field 4-6 --from-unit=K --to=iec --format %.2f | awk '{printf( "%9sB", $6)}')
-    local ITEM="  Type: $TYPE Free: $FREE "
-    local OFFSET=2
-    if [[ $((${#ITEM} + $OFFSET)) -gt ${MSG_MAX_LENGTH:-} ]]; then
-      local MSG_MAX_LENGTH=$((${#ITEM} + $OFFSET))
-    fi
-    MENU+=("$TAG" "$ITEM" "OFF")
-  done < <(pvesm status -content $CONTENT | awk 'NR>1')
-
-  # Select storage location
-  if [ $((${#MENU[@]} / 3)) -eq 0 ]; then
-    warn "'$CONTENT_LABEL' needs to be selected for at least one storage location."
-    die "Unable to detect valid storage location."
-  elif [ $((${#MENU[@]} / 3)) -eq 1 ]; then
-    printf ${MENU[0]}
-  else
-    local STORAGE
-    while [ -z "${STORAGE:+x}" ]; do
-      STORAGE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Storage Pools" --radiolist \
-        "Which storage pool you would like to use for the ${CONTENT_LABEL,,}?\n\n" \
-        16 $(($MSG_MAX_LENGTH + 23)) 6 \
-        "${MENU[@]}" 3>&1 1>&2 2>&3) || die "Menu aborted."
-    done
-    printf $STORAGE
-  fi
-}
-
-# Get template storage
-TEMPLATE_STORAGE=$(select_storage template) || exit
-info "Using '$TEMPLATE_STORAGE' for template storage."
-
-# Get container storage
-CONTAINER_STORAGE=$(select_storage container) || exit
-info "Using '$CONTAINER_STORAGE' for container storage."
-
-# Update LXC template list
-msg "Updating LXC template list..."
-pveam update >/dev/null
-
-# Get LXC template string
-mapfile -t TEMPLATES < <(pveam available -section turnkeylinux | sed -n "s/.*\($TEMPLATE_SEARCH.*\)/\1/p" | sort -t - -k 2 -V)
-[ ${#TEMPLATES[@]} -gt 0 ] || die "Unable to find a template when searching for '$TEMPLATE_SEARCH'."
-TEMPLATE="${TEMPLATES[-1]}"
-
-# Download LXC template
-if ! pveam list $TEMPLATE_STORAGE | grep -q $TEMPLATE; then
-  msg "Downloading LXC template (Patience)..."
-  pveam download $TEMPLATE_STORAGE $TEMPLATE >/dev/null ||
-    die "A problem occured while downloading the LXC template."
-fi
-
-# Create variable for 'pct' options
-PCT_OPTIONS=(${PCT_OPTIONS[@]:-${DEFAULT_PCT_OPTIONS[@]}})
-[[ " ${PCT_OPTIONS[@]} " =~ " -rootfs " ]] || PCT_OPTIONS+=(-rootfs $CONTAINER_STORAGE:${PCT_DISK_SIZE:-8})
-
-# Create LXC
-msg "Creating LXC container..."
-pct create $CTID ${TEMPLATE_STORAGE}:vztmpl/${TEMPLATE} ${PCT_OPTIONS[@]} >/dev/null ||
-  die "A problem occured while trying to create container."
-
-# Save password
-echo "TurnKey ${NAME} password: ${PASS}" >>~/turnkey-${NAME}.creds # file is located in the Proxmox root directory
-
-# Start container
-msg "Starting LXC Container..."
-pct start "$CTID"
-sleep 5
-
-# Get container IP
-set +e
-max_attempts=5
-attempt=1
-IP=""
-while [[ $attempt -le $max_attempts ]]; do
-  IP=$(pct exec $CTID ip a show dev eth0 | grep -oP 'inet \K[^/]+')
-  if [[ -n $IP ]]; then
-    break
-  else
-    warn "Attempt $attempt: IP address not found. Pausing for 5 seconds..."
-    sleep 5
-    ((attempt++))
-  fi
-done
-
-if [[ -z $IP ]]; then
-  warn "Maximum number of attempts reached. IP address not found."
-  IP="NOT FOUND"
-fi
-
-set -e
-# Start Proxmox VE Monitor-All if available
-if [[ -f /etc/systemd/system/ping-instances.service ]]; then
-  systemctl start ping-instances.service
-fi
-
-# Success message
-header_info
-echo
-info "LXC container '$CTID' was successfully created, and its IP address is ${IP}."
-echo
-info "Proceed to the LXC console to complete the setup."
-echo
-info "login: root"
-info "password: $PASS"
-echo
\ No newline at end of file
diff --git a/turnkey/turnkey-torrentserver.sh b/turnkey/turnkey-torrentserver.sh
deleted file mode 100644
index 795d6c6f..00000000
--- a/turnkey/turnkey-torrentserver.sh
+++ /dev/null
@@ -1,202 +0,0 @@
-#!/usr/bin/env bash
-# Copyright (c) 2021-2023 tteck
-# Author: tteck (tteckster)
-# License: MIT
-# https://github.com/tteck/Proxmox/raw/main/LICENSE
-
-# Setup script environment
-NAME="torrentserver"
-PASS="$(openssl rand -base64 8)"
-CTID=$(pvesh get /cluster/nextid)
-TEMPLATE_SEARCH="debian-11-turnkey-${NAME}"
-PCT_DISK_SIZE="10"
-PCT_OPTIONS="
-    -features keyctl=1,nesting=1
-    -hostname turnkey-${NAME}
-    -tags proxmox-helper-scripts
-    -onboot 1
-    -cores 2
-    -memory 2048
-    -password $PASS
-    -net0 name=eth0,bridge=vmbr0,ip=dhcp
-    -unprivileged 1
-  "
-DEFAULT_PCT_OPTIONS=(
-  -arch $(dpkg --print-architecture)
-)
-function header_info {
-clear
-cat <<"EOF"
- ______              __ __           ______                      __    ____
-/_  __/_ _________  / //_/__ __ __  /_  __/__  ___________ ___  / /_  / __/__ _____  _____ ____
- / / / // / __/ _ \/ ,< / -_) // /   / / / _ \/ __/ __/ -_) _ \/ __/ _\ \/ -_) __/ |/ / -_) __/
-/_/  \_,_/_/ /_//_/_/|_|\__/\_, /   /_/  \___/_/ /_/  \__/_//_/\__/ /___/\__/_/  |___/\__/_/
-                           /___/
-EOF
-}
-header_info
-read -p "Press ENTER to continue..."
-header_info
-set -eEuo pipefail
-shopt -s expand_aliases
-alias die='EXIT=$? LINE=$LINENO error_exit'
-trap die ERR
-
-function error_exit() {
-  trap - ERR
-  local DEFAULT='Unknown failure occured.'
-  local REASON="\e[97m${1:-$DEFAULT}\e[39m"
-  local FLAG="\e[91m[ERROR] \e[93m$EXIT@$LINE"
-  msg "$FLAG $REASON" 1>&2
-  [ ! -z ${CTID-} ] && cleanup_ctid
-  exit $EXIT
-}
-function warn() {
-  local REASON="\e[97m$1\e[39m"
-  local FLAG="\e[93m[WARNING]\e[39m"
-  msg "$FLAG $REASON"
-}
-function info() {
-  local REASON="$1"
-  local FLAG="\e[36m[INFO]\e[39m"
-  msg "$FLAG $REASON"
-}
-function msg() {
-  local TEXT="$1"
-  echo -e "$TEXT"
-}
-function cleanup_ctid() {
-  if pct status $CTID &>/dev/null; then
-    if [ "$(pct status $CTID | awk '{print $2}')" == "running" ]; then
-      pct stop $CTID
-    fi
-    pct destroy $CTID
-  fi
-}
-
-# Stop Proxmox VE Monitor-All if running
-if systemctl is-active -q ping-instances.service; then
-  systemctl stop ping-instances.service
-fi
-
-# Set the CONTENT and CONTENT_LABEL variables
-function select_storage() {
-  local CLASS=$1
-  local CONTENT
-  local CONTENT_LABEL
-  case $CLASS in
-    container) CONTENT='rootdir'; CONTENT_LABEL='Container';;
-    template) CONTENT='vztmpl'; CONTENT_LABEL='Container template';;
-    *) false || die "Invalid storage class.";;
-  esac
-
-  # Query all storage locations
-  local -a MENU
-  while read -r line; do
-    local TAG=$(echo $line | awk '{print $1}')
-    local TYPE=$(echo $line | awk '{printf "%-10s", $2}')
-    local FREE=$(echo $line | numfmt --field 4-6 --from-unit=K --to=iec --format %.2f | awk '{printf( "%9sB", $6)}')
-    local ITEM="  Type: $TYPE Free: $FREE "
-    local OFFSET=2
-    if [[ $((${#ITEM} + $OFFSET)) -gt ${MSG_MAX_LENGTH:-} ]]; then
-      local MSG_MAX_LENGTH=$((${#ITEM} + $OFFSET))
-    fi
-    MENU+=("$TAG" "$ITEM" "OFF")
-  done < <(pvesm status -content $CONTENT | awk 'NR>1')
-
-  # Select storage location
-  if [ $((${#MENU[@]} / 3)) -eq 0 ]; then
-    warn "'$CONTENT_LABEL' needs to be selected for at least one storage location."
-    die "Unable to detect valid storage location."
-  elif [ $((${#MENU[@]} / 3)) -eq 1 ]; then
-    printf ${MENU[0]}
-  else
-    local STORAGE
-    while [ -z "${STORAGE:+x}" ]; do
-      STORAGE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Storage Pools" --radiolist \
-        "Which storage pool you would like to use for the ${CONTENT_LABEL,,}?\n\n" \
-        16 $(($MSG_MAX_LENGTH + 23)) 6 \
-        "${MENU[@]}" 3>&1 1>&2 2>&3) || die "Menu aborted."
-    done
-    printf $STORAGE
-  fi
-}
-
-# Get template storage
-TEMPLATE_STORAGE=$(select_storage template) || exit
-info "Using '$TEMPLATE_STORAGE' for template storage."
-
-# Get container storage
-CONTAINER_STORAGE=$(select_storage container) || exit
-info "Using '$CONTAINER_STORAGE' for container storage."
-
-# Update LXC template list
-msg "Updating LXC template list..."
-pveam update >/dev/null
-
-# Get LXC template string
-mapfile -t TEMPLATES < <(pveam available -section turnkeylinux | sed -n "s/.*\($TEMPLATE_SEARCH.*\)/\1/p" | sort -t - -k 2 -V)
-[ ${#TEMPLATES[@]} -gt 0 ] || die "Unable to find a template when searching for '$TEMPLATE_SEARCH'."
-TEMPLATE="${TEMPLATES[-1]}"
-
-# Download LXC template
-if ! pveam list $TEMPLATE_STORAGE | grep -q $TEMPLATE; then
-  msg "Downloading LXC template (Patience)..."
-  pveam download $TEMPLATE_STORAGE $TEMPLATE >/dev/null ||
-    die "A problem occured while downloading the LXC template."
-fi
-
-# Create variable for 'pct' options
-PCT_OPTIONS=(${PCT_OPTIONS[@]:-${DEFAULT_PCT_OPTIONS[@]}})
-[[ " ${PCT_OPTIONS[@]} " =~ " -rootfs " ]] || PCT_OPTIONS+=(-rootfs $CONTAINER_STORAGE:${PCT_DISK_SIZE:-8})
-
-# Create LXC
-msg "Creating LXC container..."
-pct create $CTID ${TEMPLATE_STORAGE}:vztmpl/${TEMPLATE} ${PCT_OPTIONS[@]} >/dev/null ||
-  die "A problem occured while trying to create container."
-
-# Save password
-echo "TurnKey ${NAME} password: ${PASS}" >>~/turnkey-${NAME}.creds # file is located in the Proxmox root directory
-
-# Start container
-msg "Starting LXC Container..."
-pct start "$CTID"
-sleep 5
-
-# Get container IP
-set +e
-max_attempts=5
-attempt=1
-IP=""
-while [[ $attempt -le $max_attempts ]]; do
-  IP=$(pct exec $CTID ip a show dev eth0 | grep -oP 'inet \K[^/]+')
-  if [[ -n $IP ]]; then
-    break
-  else
-    warn "Attempt $attempt: IP address not found. Pausing for 5 seconds..."
-    sleep 5
-    ((attempt++))
-  fi
-done
-
-if [[ -z $IP ]]; then
-  warn "Maximum number of attempts reached. IP address not found."
-  IP="NOT FOUND"
-fi
-
-set -e
-# Start Proxmox VE Monitor-All if available
-if [[ -f /etc/systemd/system/ping-instances.service ]]; then
-  systemctl start ping-instances.service
-fi
-
-# Success message
-header_info
-echo
-info "LXC container '$CTID' was successfully created, and its IP address is ${IP}."
-echo
-info "Proceed to the LXC console to complete the setup."
-echo
-info "login: root"
-info "password: $PASS"
-echo
\ No newline at end of file
diff --git a/turnkey/turnkey-wordpress.sh b/turnkey/turnkey-wordpress.sh
deleted file mode 100644
index 9c7aedc8..00000000
--- a/turnkey/turnkey-wordpress.sh
+++ /dev/null
@@ -1,202 +0,0 @@
-#!/usr/bin/env bash
-# Copyright (c) 2021-2023 tteck
-# Author: tteck (tteckster)
-# License: MIT
-# https://github.com/tteck/Proxmox/raw/main/LICENSE
-
-# Setup script environment
-NAME="wordpress"
-PASS="$(openssl rand -base64 8)"
-CTID=$(pvesh get /cluster/nextid)
-TEMPLATE_SEARCH="debian-11-turnkey-${NAME}"
-PCT_DISK_SIZE="8"
-PCT_OPTIONS="
-    -features keyctl=1,nesting=1
-    -hostname turnkey-${NAME}
-    -tags proxmox-helper-scripts
-    -onboot 1
-    -cores 2
-    -memory 2048
-    -password $PASS
-    -net0 name=eth0,bridge=vmbr0,ip=dhcp
-    -unprivileged 1
-  "
-DEFAULT_PCT_OPTIONS=(
-  -arch $(dpkg --print-architecture)
-)
-function header_info {
-clear
-cat <<"EOF"
- ______              __ __           _      __            _____
-/_  __/_ _________  / //_/__ __ __  | | /| / /__  _______/ / _ \_______ ___ ___
- / / / // / __/ _ \/ ,< / -_) // /  | |/ |/ / _ \/ __/ _  / ___/ __/ -_|_-<(_-<
-/_/  \_,_/_/ /_//_/_/|_|\__/\_, /   |__/|__/\___/_/  \_,_/_/  /_/  \__/___/___/
-                           /___/
-EOF
-}
-header_info
-read -p "Press ENTER to continue..."
-header_info
-set -eEuo pipefail
-shopt -s expand_aliases
-alias die='EXIT=$? LINE=$LINENO error_exit'
-trap die ERR
-
-function error_exit() {
-  trap - ERR
-  local DEFAULT='Unknown failure occured.'
-  local REASON="\e[97m${1:-$DEFAULT}\e[39m"
-  local FLAG="\e[91m[ERROR] \e[93m$EXIT@$LINE"
-  msg "$FLAG $REASON" 1>&2
-  [ ! -z ${CTID-} ] && cleanup_ctid
-  exit $EXIT
-}
-function warn() {
-  local REASON="\e[97m$1\e[39m"
-  local FLAG="\e[93m[WARNING]\e[39m"
-  msg "$FLAG $REASON"
-}
-function info() {
-  local REASON="$1"
-  local FLAG="\e[36m[INFO]\e[39m"
-  msg "$FLAG $REASON"
-}
-function msg() {
-  local TEXT="$1"
-  echo -e "$TEXT"
-}
-function cleanup_ctid() {
-  if pct status $CTID &>/dev/null; then
-    if [ "$(pct status $CTID | awk '{print $2}')" == "running" ]; then
-      pct stop $CTID
-    fi
-    pct destroy $CTID
-  fi
-}
-
-# Stop Proxmox VE Monitor-All if running
-if systemctl is-active -q ping-instances.service; then
-  systemctl stop ping-instances.service
-fi
-
-# Set the CONTENT and CONTENT_LABEL variables
-function select_storage() {
-  local CLASS=$1
-  local CONTENT
-  local CONTENT_LABEL
-  case $CLASS in
-    container) CONTENT='rootdir'; CONTENT_LABEL='Container';;
-    template) CONTENT='vztmpl'; CONTENT_LABEL='Container template';;
-    *) false || die "Invalid storage class.";;
-  esac
-
-  # Query all storage locations
-  local -a MENU
-  while read -r line; do
-    local TAG=$(echo $line | awk '{print $1}')
-    local TYPE=$(echo $line | awk '{printf "%-10s", $2}')
-    local FREE=$(echo $line | numfmt --field 4-6 --from-unit=K --to=iec --format %.2f | awk '{printf( "%9sB", $6)}')
-    local ITEM="  Type: $TYPE Free: $FREE "
-    local OFFSET=2
-    if [[ $((${#ITEM} + $OFFSET)) -gt ${MSG_MAX_LENGTH:-} ]]; then
-      local MSG_MAX_LENGTH=$((${#ITEM} + $OFFSET))
-    fi
-    MENU+=("$TAG" "$ITEM" "OFF")
-  done < <(pvesm status -content $CONTENT | awk 'NR>1')
-
-  # Select storage location
-  if [ $((${#MENU[@]} / 3)) -eq 0 ]; then
-    warn "'$CONTENT_LABEL' needs to be selected for at least one storage location."
-    die "Unable to detect valid storage location."
-  elif [ $((${#MENU[@]} / 3)) -eq 1 ]; then
-    printf ${MENU[0]}
-  else
-    local STORAGE
-    while [ -z "${STORAGE:+x}" ]; do
-      STORAGE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Storage Pools" --radiolist \
-        "Which storage pool you would like to use for the ${CONTENT_LABEL,,}?\n\n" \
-        16 $(($MSG_MAX_LENGTH + 23)) 6 \
-        "${MENU[@]}" 3>&1 1>&2 2>&3) || die "Menu aborted."
-    done
-    printf $STORAGE
-  fi
-}
-
-# Get template storage
-TEMPLATE_STORAGE=$(select_storage template) || exit
-info "Using '$TEMPLATE_STORAGE' for template storage."
-
-# Get container storage
-CONTAINER_STORAGE=$(select_storage container) || exit
-info "Using '$CONTAINER_STORAGE' for container storage."
-
-# Update LXC template list
-msg "Updating LXC template list..."
-pveam update >/dev/null
-
-# Get LXC template string
-mapfile -t TEMPLATES < <(pveam available -section turnkeylinux | sed -n "s/.*\($TEMPLATE_SEARCH.*\)/\1/p" | sort -t - -k 2 -V)
-[ ${#TEMPLATES[@]} -gt 0 ] || die "Unable to find a template when searching for '$TEMPLATE_SEARCH'."
-TEMPLATE="${TEMPLATES[-1]}"
-
-# Download LXC template
-if ! pveam list $TEMPLATE_STORAGE | grep -q $TEMPLATE; then
-  msg "Downloading LXC template (Patience)..."
-  pveam download $TEMPLATE_STORAGE $TEMPLATE >/dev/null ||
-    die "A problem occured while downloading the LXC template."
-fi
-
-# Create variable for 'pct' options
-PCT_OPTIONS=(${PCT_OPTIONS[@]:-${DEFAULT_PCT_OPTIONS[@]}})
-[[ " ${PCT_OPTIONS[@]} " =~ " -rootfs " ]] || PCT_OPTIONS+=(-rootfs $CONTAINER_STORAGE:${PCT_DISK_SIZE:-8})
-
-# Create LXC
-msg "Creating LXC container..."
-pct create $CTID ${TEMPLATE_STORAGE}:vztmpl/${TEMPLATE} ${PCT_OPTIONS[@]} >/dev/null ||
-  die "A problem occured while trying to create container."
-
-# Save password
-echo "TurnKey ${NAME} password: ${PASS}" >>~/turnkey-${NAME}.creds # file is located in the Proxmox root directory
-
-# Start container
-msg "Starting LXC Container..."
-pct start "$CTID"
-sleep 5
-
-# Get container IP
-set +e
-max_attempts=5
-attempt=1
-IP=""
-while [[ $attempt -le $max_attempts ]]; do
-  IP=$(pct exec $CTID ip a show dev eth0 | grep -oP 'inet \K[^/]+')
-  if [[ -n $IP ]]; then
-    break
-  else
-    warn "Attempt $attempt: IP address not found. Pausing for 5 seconds..."
-    sleep 5
-    ((attempt++))
-  fi
-done
-
-if [[ -z $IP ]]; then
-  warn "Maximum number of attempts reached. IP address not found."
-  IP="NOT FOUND"
-fi
-
-set -e
-# Start Proxmox VE Monitor-All if available
-if [[ -f /etc/systemd/system/ping-instances.service ]]; then
-  systemctl start ping-instances.service
-fi
-
-# Success message
-header_info
-echo
-info "LXC container '$CTID' was successfully created, and its IP address is ${IP}."
-echo
-info "Proceed to the LXC console to complete the setup."
-echo
-info "login: root"
-info "password: $PASS"
-echo
\ No newline at end of file
diff --git a/turnkey/turnkey-zoneminder.sh b/turnkey/turnkey-zoneminder.sh
deleted file mode 100644
index 41321872..00000000
--- a/turnkey/turnkey-zoneminder.sh
+++ /dev/null
@@ -1,202 +0,0 @@
-#!/usr/bin/env bash
-# Copyright (c) 2021-2023 tteck
-# Author: tteck (tteckster)
-# License: MIT
-# https://github.com/tteck/Proxmox/raw/main/LICENSE
-
-# Setup script environment
-NAME="zoneminder"
-PASS="$(openssl rand -base64 8)"
-CTID=$(pvesh get /cluster/nextid)
-TEMPLATE_SEARCH="debian-11-turnkey-${NAME}"
-PCT_DISK_SIZE="8"
-PCT_OPTIONS="
-    -features keyctl=1,nesting=1
-    -hostname turnkey-${NAME}
-    -tags proxmox-helper-scripts
-    -onboot 1
-    -cores 2
-    -memory 2048
-    -password $PASS
-    -net0 name=eth0,bridge=vmbr0,ip=dhcp
-    -unprivileged 1
-  "
-DEFAULT_PCT_OPTIONS=(
-  -arch $(dpkg --print-architecture)
-)
-function header_info {
-clear
-cat <<"EOF"
- ______              __ __           ____                __  ____         __
-/_  __/_ _________  / //_/__ __ __  /_  / ___  ___  ___ /  |/  (_)__  ___/ /__ ____
- / / / // / __/ _ \/ ,< / -_) // /   / /_/ _ \/ _ \/ -_) /|_/ / / _ \/ _  / -_) __/
-/_/  \_,_/_/ /_//_/_/|_|\__/\_, /   /___/\___/_//_/\__/_/  /_/_/_//_/\_,_/\__/_/
-                           /___/
-EOF
-}
-header_info
-read -p "Press ENTER to continue..."
-header_info
-set -eEuo pipefail
-shopt -s expand_aliases
-alias die='EXIT=$? LINE=$LINENO error_exit'
-trap die ERR
-
-function error_exit() {
-  trap - ERR
-  local DEFAULT='Unknown failure occured.'
-  local REASON="\e[97m${1:-$DEFAULT}\e[39m"
-  local FLAG="\e[91m[ERROR] \e[93m$EXIT@$LINE"
-  msg "$FLAG $REASON" 1>&2
-  [ ! -z ${CTID-} ] && cleanup_ctid
-  exit $EXIT
-}
-function warn() {
-  local REASON="\e[97m$1\e[39m"
-  local FLAG="\e[93m[WARNING]\e[39m"
-  msg "$FLAG $REASON"
-}
-function info() {
-  local REASON="$1"
-  local FLAG="\e[36m[INFO]\e[39m"
-  msg "$FLAG $REASON"
-}
-function msg() {
-  local TEXT="$1"
-  echo -e "$TEXT"
-}
-function cleanup_ctid() {
-  if pct status $CTID &>/dev/null; then
-    if [ "$(pct status $CTID | awk '{print $2}')" == "running" ]; then
-      pct stop $CTID
-    fi
-    pct destroy $CTID
-  fi
-}
-
-# Stop Proxmox VE Monitor-All if running
-if systemctl is-active -q ping-instances.service; then
-  systemctl stop ping-instances.service
-fi
-
-# Set the CONTENT and CONTENT_LABEL variables
-function select_storage() {
-  local CLASS=$1
-  local CONTENT
-  local CONTENT_LABEL
-  case $CLASS in
-    container) CONTENT='rootdir'; CONTENT_LABEL='Container';;
-    template) CONTENT='vztmpl'; CONTENT_LABEL='Container template';;
-    *) false || die "Invalid storage class.";;
-  esac
-
-  # Query all storage locations
-  local -a MENU
-  while read -r line; do
-    local TAG=$(echo $line | awk '{print $1}')
-    local TYPE=$(echo $line | awk '{printf "%-10s", $2}')
-    local FREE=$(echo $line | numfmt --field 4-6 --from-unit=K --to=iec --format %.2f | awk '{printf( "%9sB", $6)}')
-    local ITEM="  Type: $TYPE Free: $FREE "
-    local OFFSET=2
-    if [[ $((${#ITEM} + $OFFSET)) -gt ${MSG_MAX_LENGTH:-} ]]; then
-      local MSG_MAX_LENGTH=$((${#ITEM} + $OFFSET))
-    fi
-    MENU+=("$TAG" "$ITEM" "OFF")
-  done < <(pvesm status -content $CONTENT | awk 'NR>1')
-
-  # Select storage location
-  if [ $((${#MENU[@]} / 3)) -eq 0 ]; then
-    warn "'$CONTENT_LABEL' needs to be selected for at least one storage location."
-    die "Unable to detect valid storage location."
-  elif [ $((${#MENU[@]} / 3)) -eq 1 ]; then
-    printf ${MENU[0]}
-  else
-    local STORAGE
-    while [ -z "${STORAGE:+x}" ]; do
-      STORAGE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Storage Pools" --radiolist \
-        "Which storage pool you would like to use for the ${CONTENT_LABEL,,}?\n\n" \
-        16 $(($MSG_MAX_LENGTH + 23)) 6 \
-        "${MENU[@]}" 3>&1 1>&2 2>&3) || die "Menu aborted."
-    done
-    printf $STORAGE
-  fi
-}
-
-# Get template storage
-TEMPLATE_STORAGE=$(select_storage template) || exit
-info "Using '$TEMPLATE_STORAGE' for template storage."
-
-# Get container storage
-CONTAINER_STORAGE=$(select_storage container) || exit
-info "Using '$CONTAINER_STORAGE' for container storage."
-
-# Update LXC template list
-msg "Updating LXC template list..."
-pveam update >/dev/null
-
-# Get LXC template string
-mapfile -t TEMPLATES < <(pveam available -section turnkeylinux | sed -n "s/.*\($TEMPLATE_SEARCH.*\)/\1/p" | sort -t - -k 2 -V)
-[ ${#TEMPLATES[@]} -gt 0 ] || die "Unable to find a template when searching for '$TEMPLATE_SEARCH'."
-TEMPLATE="${TEMPLATES[-1]}"
-
-# Download LXC template
-if ! pveam list $TEMPLATE_STORAGE | grep -q $TEMPLATE; then
-  msg "Downloading LXC template (Patience)..."
-  pveam download $TEMPLATE_STORAGE $TEMPLATE >/dev/null ||
-    die "A problem occured while downloading the LXC template."
-fi
-
-# Create variable for 'pct' options
-PCT_OPTIONS=(${PCT_OPTIONS[@]:-${DEFAULT_PCT_OPTIONS[@]}})
-[[ " ${PCT_OPTIONS[@]} " =~ " -rootfs " ]] || PCT_OPTIONS+=(-rootfs $CONTAINER_STORAGE:${PCT_DISK_SIZE:-8})
-
-# Create LXC
-msg "Creating LXC container..."
-pct create $CTID ${TEMPLATE_STORAGE}:vztmpl/${TEMPLATE} ${PCT_OPTIONS[@]} >/dev/null ||
-  die "A problem occured while trying to create container."
-
-# Save password
-echo "TurnKey ${NAME} password: ${PASS}" >>~/turnkey-${NAME}.creds # file is located in the Proxmox root directory
-
-# Start container
-msg "Starting LXC Container..."
-pct start "$CTID"
-sleep 5
-
-# Get container IP
-set +e
-max_attempts=5
-attempt=1
-IP=""
-while [[ $attempt -le $max_attempts ]]; do
-  IP=$(pct exec $CTID ip a show dev eth0 | grep -oP 'inet \K[^/]+')
-  if [[ -n $IP ]]; then
-    break
-  else
-    warn "Attempt $attempt: IP address not found. Pausing for 5 seconds..."
-    sleep 5
-    ((attempt++))
-  fi
-done
-
-if [[ -z $IP ]]; then
-  warn "Maximum number of attempts reached. IP address not found."
-  IP="NOT FOUND"
-fi
-
-set -e
-# Start Proxmox VE Monitor-All if available
-if [[ -f /etc/systemd/system/ping-instances.service ]]; then
-  systemctl start ping-instances.service
-fi
-
-# Success message
-header_info
-echo
-info "LXC container '$CTID' was successfully created, and its IP address is ${IP}."
-echo
-info "Proceed to the LXC console to complete the setup."
-echo
-info "login: root"
-info "password: $PASS"
-echo
\ No newline at end of file