diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9e6952e6..d20067ea 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,6 +10,34 @@
- All LXC instances created using this repository come pre-installed with Midnight Commander, which is a command-line tool (`mc`) that offers a user-friendly file and directory management interface for the terminal environment.
- 🚨 **The scripts in the repository will no longer provide support for Proxmox VE 7 starting from July 2024 (scripts will not execute on PVE7). Subsequent Proxmox VE - Support Lifecycle**
+## 2024-03-13
+
+### Changed
+
+- **FlowiseAI LXC**
+ - NEW Script
+
+## 2024-03-11
+
+### Changed
+
+- **Wastebin LXC**
+ - NEW Script
+
+## 2024-03-08
+
+### Changed
+
+- **Proxmox VE Post Install**
+ - Requires Proxmox Virtual Environment Version 8.1.1 or later.
+
+## 2024-02-26
+
+### Changed
+
+- **Mafl LXC**
+ - NEW Script
+
## 2024-02-23
### Changed
diff --git a/USER_SUBMITTED_GUIDES.md b/USER_SUBMITTED_GUIDES.md
index 6e382223..8ac04a12 100644
--- a/USER_SUBMITTED_GUIDES.md
+++ b/USER_SUBMITTED_GUIDES.md
@@ -34,3 +34,5 @@
[iGPU Transcoding In Proxmox with Jellyfin](https://www.youtube.com/watch?v=XAa_qpNmzZs)
[Proxmox + NetData]()
+
+[Proxmox Homelab Series]()
diff --git a/ct/changedetection.sh b/ct/changedetection.sh
index e5fe9ecb..b6f42369 100644
--- a/ct/changedetection.sh
+++ b/ct/changedetection.sh
@@ -56,8 +56,13 @@ function update_script() {
header_info
if [[ ! -f /etc/systemd/system/changedetection.service ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
msg_info "Updating ${APP} LXC"
+if ! dpkg -s libjpeg-dev >/dev/null 2>&1; then
+ apt-get update
+ apt-get install -y libjpeg-dev
+fi
pip3 install changedetection.io --upgrade &>/dev/null
pip3 install playwright --upgrade &>/dev/null
+systemctl restart changedetection
msg_ok "Updated Successfully"
exit
}
diff --git a/ct/dashy.sh b/ct/dashy.sh
index 759b8805..b06a3955 100644
--- a/ct/dashy.sh
+++ b/ct/dashy.sh
@@ -54,18 +54,20 @@ function default_settings() {
function update_script() {
header_info
-if [[ ! -d /dashy/public/ ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
+if [[ ! -d /opt/dashy/public/ ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
+msg_error "There is currently no update path available."
+exit
msg_info "Stopping ${APP}"
systemctl stop dashy
msg_ok "Stopped ${APP}"
msg_info "Backing up conf.yml"
cd ~
-cp -R /dashy/public/conf.yml conf.yml
+cp -R /opt/dashy/public/conf.yml conf.yml
msg_ok "Backed up conf.yml"
msg_info "Updating Dashy"
-cd /dashy
+cd /opt/dashy
git merge &>/dev/null
git pull origin master &>/dev/null
yarn &>/dev/null
@@ -74,7 +76,7 @@ msg_ok "Updated Dashy"
msg_info "Restoring conf.yml"
cd ~
-cp -R conf.yml /dashy/public
+cp -R conf.yml /opt/dashy/public
msg_ok "Restored conf.yml"
msg_info "Cleaning"
diff --git a/ct/flowiseai.sh b/ct/flowiseai.sh
new file mode 100644
index 00000000..42c70fdd
--- /dev/null
+++ b/ct/flowiseai.sh
@@ -0,0 +1,72 @@
+#!/usr/bin/env bash
+source <(curl -s https://raw.githubusercontent.com/tteck/Proxmox/main/misc/build.func)
+# Copyright (c) 2021-2024 tteck
+# Author: tteck (tteckster)
+# License: MIT
+# https://github.com/tteck/Proxmox/raw/main/LICENSE
+
+function header_info {
+clear
+cat <<"EOF"
+ ________ _ ___ ____
+ / ____/ /___ _ __(_)_______ / | / _/
+ / /_ / / __ \ | /| / / / ___/ _ \/ /| | / /
+ / __/ / / /_/ / |/ |/ / (__ ) __/ ___ |_/ /
+/_/ /_/\____/|__/|__/_/____/\___/_/ |_/___/
+
+EOF
+}
+header_info
+echo -e "Loading..."
+APP="FlowiseAI"
+var_disk="10"
+var_cpu="2"
+var_ram="2048"
+var_os="debian"
+var_version="12"
+variables
+color
+catch_errors
+
+function default_settings() {
+ CT_TYPE="1"
+ PW=""
+ CT_ID=$NEXTID
+ HN=$NSAPP
+ DISK_SIZE="$var_disk"
+ CORE_COUNT="$var_cpu"
+ RAM_SIZE="$var_ram"
+ BRG="vmbr0"
+ NET="dhcp"
+ GATE=""
+ APT_CACHER=""
+ APT_CACHER_IP=""
+ DISABLEIP6="no"
+ MTU=""
+ SD=""
+ NS=""
+ MAC=""
+ VLAN=""
+ SSH="no"
+ VERB="no"
+ echo_default
+}
+
+function update_script() {
+header_info
+if [[ ! -f /etc/systemd/system/flowise.service ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
+msg_info "Updating ${APP}"
+systemctl stop flowise
+npm install -g flowise --upgrade
+systemctl start flowise
+msg_ok "Updated ${APP}"
+exit
+}
+
+start
+build_container
+description
+
+msg_ok "Completed Successfully!\n"
+echo -e "${APP} should be reachable by going to the following URL.
+ ${BL}http://${IP}:3000${CL} \n"
diff --git a/ct/grafana.sh b/ct/grafana.sh
index 085cb4ee..b5ea2aa9 100644
--- a/ct/grafana.sh
+++ b/ct/grafana.sh
@@ -56,9 +56,6 @@ function update_script() {
header_info
if [[ ! -f /etc/apt/sources.list.d/grafana.list ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
msg_info "Updating ${APP}"
-apt-key del 4E40DDF6D76E284A4A6780E48C8C34C524098CB6
-wget -q -O /usr/share/keyrings/grafana.key https://apt.grafana.com/gpg.key
-echo "deb [signed-by=/usr/share/keyrings/grafana.key] https://apt.grafana.com stable main" | tee /etc/apt/sources.list.d/grafana.list
apt-get update &>/dev/null
apt-get -y upgrade &>/dev/null
msg_ok "Updated Successfully"
diff --git a/ct/mafl.sh b/ct/mafl.sh
index 2dfee171..19012b6a 100644
--- a/ct/mafl.sh
+++ b/ct/mafl.sh
@@ -55,19 +55,7 @@ function default_settings() {
function update_script() {
header_info
if [[ ! -d /opt/mafl ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
-
- RELEASE=$(curl -s https://api.github.com/repos/hywax/mafl/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
- msg_info "Updating Mafl to v${RELEASE} (Patience)"
- systemctl stop mafl
- wget -q https://github.com/hywax/mafl/archive/refs/tags/v${RELEASE}.tar.gz
- tar -xzf v${RELEASE}.tar.gz
- cp -r mafl-${RELEASE}/* /opt/mafl/
- rm -rf mafl-${RELEASE}
- cd /opt/mafl
- yarn install
- yarn build
- systemctl start mafl
- msg_ok "Updated Mafl to v${RELEASE}"
+ msg_error "There is currently no update path available."
exit
}
diff --git a/ct/n8n.sh b/ct/n8n.sh
index 5c5feeae..3abc7328 100644
--- a/ct/n8n.sh
+++ b/ct/n8n.sh
@@ -20,7 +20,7 @@ EOF
header_info
echo -e "Loading..."
APP="n8n"
-var_disk="3"
+var_disk="6"
var_cpu="2"
var_ram="2048"
var_os="debian"
diff --git a/ct/omada.sh b/ct/omada.sh
index 82f28261..c664953e 100644
--- a/ct/omada.sh
+++ b/ct/omada.sh
@@ -55,7 +55,7 @@ function default_settings() {
function update_script() {
header_info
if [[ ! -d /opt/tplink ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
-latest_url=$(curl -fsSL "https://www.tp-link.com/us/support/download/omada-software-controller/" | grep -o 'https://.*x64.deb' | head -n1)
+latest_url=$(curl -fsSL "https://www.tp-link.com/en/support/download/omada-software-controller/" | grep -o 'https://.*x64.deb' | head -n1)
latest_version=$(basename "${latest_url}")
if [ -z "${latest_version}" ]; then
msg_error "It seems that the server (tp-link.com) might be down. Please try again at a later time."
diff --git a/ct/prometheus.sh b/ct/prometheus.sh
index ae519078..b2230eaa 100644
--- a/ct/prometheus.sh
+++ b/ct/prometheus.sh
@@ -55,10 +55,7 @@ function default_settings() {
function update_script() {
header_info
if [[ ! -f /etc/systemd/system/prometheus.service ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
-msg_info "Updating ${APP} LXC"
-apt-get update &>/dev/null
-apt-get -y upgrade &>/dev/null
-msg_ok "Updated Successfully"
+msg_error "There is currently no update path available."
exit
}
diff --git a/ct/tandoor.sh b/ct/tandoor.sh
index 3dba8b02..29085af5 100644
--- a/ct/tandoor.sh
+++ b/ct/tandoor.sh
@@ -54,26 +54,25 @@ function default_settings() {
}
function update_script() {
-header_info
-if [[ ! -d /opt/tandoor ]]; then
- msg_error "No ${APP} Installation Found!";
- exit;
-fi
-msg_info "Updating ${APP} LXC"
-if cd /opt/tandoor && git pull | grep -q 'Already up to date'; then
- msg_error "There is currently no update path available."
-else
+ header_info
+ if [[ ! -d /opt/tandoor ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
+ if cd /opt/tandoor && git pull | grep -q 'Already up to date'; then
+ msg_ok "There is currently no update available."
+ else
+ msg_info "Updating ${APP} (Patience)"
export $(cat /opt/tandoor/.env | grep "^[^#]" | xargs)
- /opt/tandoor/bin/pip3 install -r requirements.txt >/dev/null 2>&1
- /opt/tandoor/bin/python3 manage.py migrate >/dev/null 2>&1
- /opt/tandoor/bin/python3 manage.py collectstatic --no-input >/dev/null 2>&1
- /opt/tandoor/bin/python3 manage.py collectstatic_js_reverse >/dev/null 2>&1
+ cd /opt/tandoor/
+ pip3 install -r requirements.txt >/dev/null 2>&1
+ /usr/bin/python3 /opt/tandoor/manage.py migrate >/dev/null 2>&1
+ /usr/bin/python3 /opt/tandoor/manage.py collectstatic --no-input >/dev/null 2>&1
+ /usr/bin/python3 /opt/tandoor/manage.py collectstatic_js_reverse >/dev/null 2>&1
cd /opt/tandoor/vue
yarn install >/dev/null 2>&1
yarn build >/dev/null 2>&1
- sudo systemctl restart gunicorn_tandoor
-fi
-exit
+ systemctl restart gunicorn_tandoor
+ msg_ok "Updated ${APP}"
+ fi
+ exit
}
start
diff --git a/ct/wastebin.sh b/ct/wastebin.sh
new file mode 100644
index 00000000..be4b5aef
--- /dev/null
+++ b/ct/wastebin.sh
@@ -0,0 +1,107 @@
+#!/usr/bin/env bash
+source <(curl -s https://raw.githubusercontent.com/tteck/Proxmox/main/misc/build.func)
+# Copyright (c) 2021-2024 tteck
+# Author: tteck
+# Co-Author: MickLesk (Canbiz)
+# License: MIT
+# https://github.com/tteck/Proxmox/raw/main/LICENSE
+# Source: https://github.com/matze/wastebin
+
+
+function header_info {
+clear
+cat <<"EOF"
+ _ __ __ __ _
+| | / /___ ______/ /____ / /_ (_)___
+| | /| / / __ `/ ___/ __/ _ \/ __ \/ / __ \
+| |/ |/ / /_/ (__ ) /_/ __/ /_/ / / / / /
+|__/|__/\__,_/____/\__/\___/_.___/_/_/ /_/
+
+EOF
+}
+header_info
+echo -e "Loading..."
+APP="Wastebin"
+var_disk="4"
+var_cpu="4"
+var_ram="2048"
+var_os="debian"
+var_version="12"
+variables
+color
+catch_errors
+
+function default_settings() {
+ CT_TYPE="1"
+ PW=""
+ CT_ID=$NEXTID
+ HN=$NSAPP
+ DISK_SIZE="$var_disk"
+ CORE_COUNT="$var_cpu"
+ RAM_SIZE="$var_ram"
+ BRG="vmbr0"
+ NET="dhcp"
+ GATE=""
+ APT_CACHER=""
+ APT_CACHER_IP=""
+ DISABLEIP6="no"
+ MTU=""
+ SD=""
+ NS=""
+ MAC=""
+ VLAN=""
+ SSH="no"
+ VERB="no"
+ echo_default
+}
+
+function update_script() {
+header_info
+if [[ ! -d /opt/wastebin ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
+if (( $(df /boot | awk 'NR==2{gsub("%","",$5); print $5}') > 80 )); then
+ read -r -p "Warning: Storage is dangerously low, continue anyway? " prompt
+ [[ ${prompt,,} =~ ^(y|yes)$ ]] || exit
+fi
+msg_info "Stopping Wastebin"
+systemctl stop wastebin
+msg_ok "Wastebin Stopped"
+
+msg_info "Updating Wastebin"
+RELEASE=$(curl -s https://api.github.com/repos/matze/wastebin/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
+cd /opt
+if [ -d wastebin_bak ]; then
+ rm -rf wastebin_bak
+fi
+mv wastebin wastebin_bak
+wget -q "https://github.com/matze/wastebin/archive/refs/tags/${RELEASE}.zip"
+unzip -q ${RELEASE}.zip
+mv wastebin-${RELEASE} /opt/wastebin
+cd /opt/wastebin
+cargo update -q
+cargo build -q --release
+msg_ok "Updated Wastebin"
+
+msg_info "Starting Wastebin"
+systemctl start wastebin
+msg_ok "Started Wastebin"
+
+msg_info "Cleaning Up"
+cd /opt
+rm -R ${RELEASE}.zip
+rm -R wastebin_bak
+msg_ok "Cleaned"
+msg_ok "Updated Successfully"
+exit
+}
+
+start
+build_container
+description
+
+msg_info "Setting Container to Normal Resources"
+pct set $CTID -cores 2
+msg_ok "Set Container to Normal Resources"
+
+msg_ok "Completed Successfully!\n"
+echo -e "${APP} Setup should be reachable by going to the following URL.
+ ${BL}http://${IP}:8088${CL} \n"
diff --git a/install/changedetection-install.sh b/install/changedetection-install.sh
index e670943b..d685153a 100644
--- a/install/changedetection-install.sh
+++ b/install/changedetection-install.sh
@@ -22,6 +22,7 @@ $STD apt-get install -y \
build-essential \
dumb-init \
gconf-service \
+ libjpeg-dev \
libatk-bridge2.0-0 \
libasound2 \
libatk1.0-0 \
diff --git a/install/dashy-install.sh b/install/dashy-install.sh
index 2962161d..d0709fb5 100644
--- a/install/dashy-install.sh
+++ b/install/dashy-install.sh
@@ -17,7 +17,6 @@ msg_info "Installing Dependencies"
$STD apt-get install -y curl
$STD apt-get install -y sudo
$STD apt-get install -y mc
-$STD apt-get install -y git
msg_ok "Installed Dependencies"
msg_info "Installing Node.js (Patience)"
@@ -35,10 +34,12 @@ ln -sf /usr/local/bin/yarn /usr/bin/yarn
msg_ok "Installed Yarn"
msg_info "Installing Dashy (Patience)"
-$STD git clone https://github.com/Lissy93/dashy.git
-cd /dashy
+mkdir -p /opt/dashy
+#RELEASE=$(curl -s https://api.github.com/repos/Lissy93/dashy/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
+#wget -qO- https://github.com/Lissy93/dashy/archive/refs/tags/${RELEASE}.tar.gz | tar -xz -C /opt/dashy --strip-components=1
+wget -qO- https://github.com/Lissy93/dashy/archive/refs/tags/2.1.1.tar.gz | tar -xz -C /opt/dashy --strip-components=1
+cd /opt/dashy
$STD yarn
-export NODE_OPTIONS=--max-old-space-size=1000
$STD yarn build
msg_ok "Installed Dashy"
@@ -49,7 +50,7 @@ Description=dashy
[Service]
Type=simple
-WorkingDirectory=/dashy
+WorkingDirectory=/opt/dashy
ExecStart=/usr/bin/yarn start
[Install]
WantedBy=multi-user.target
diff --git a/install/deconz-install.sh b/install/deconz-install.sh
index 328a9679..614129e7 100644
--- a/install/deconz-install.sh
+++ b/install/deconz-install.sh
@@ -26,8 +26,9 @@ echo "deb [arch=amd64] http://phoscon.de/apt/deconz $VERSION main" >/etc/apt/sou
msg_ok "Setup Phoscon Repository"
msg_info "Installing deConz"
-wget -qL http://security.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2.21_amd64.deb
-$STD dpkg -i libssl1.1_1.1.1f-1ubuntu2.21_amd64.deb
+libssl=$(curl -fsSL "http://security.ubuntu.com/ubuntu/pool/main/o/openssl/" | grep -o 'libssl1\.1_1\.1\.1f-1ubuntu2\.2[^"]*amd64\.deb' | head -n1)
+wget -qL http://security.ubuntu.com/ubuntu/pool/main/o/openssl/$libssl
+$STD dpkg -i $libssl
$STD apt-get update
$STD apt-get install -y deconz
msg_ok "Installed deConz"
@@ -56,7 +57,7 @@ motd_ssh
customize
msg_info "Cleaning up"
-rm -rf libssl1.1_1.1.1f-1ubuntu2.21_amd64.deb
+rm -rf $libssl
$STD apt-get autoremove
$STD apt-get autoclean
msg_ok "Cleaned"
diff --git a/install/flowiseai-install.sh b/install/flowiseai-install.sh
new file mode 100644
index 00000000..0ac6e298
--- /dev/null
+++ b/install/flowiseai-install.sh
@@ -0,0 +1,60 @@
+#!/usr/bin/env bash
+
+# Copyright (c) 2021-2024 tteck
+# Author: tteck (tteckster)
+# License: MIT
+# https://github.com/tteck/Proxmox/raw/main/LICENSE
+
+source /dev/stdin <<< "$FUNCTIONS_FILE_PATH"
+color
+verb_ip6
+catch_errors
+setting_up_container
+network_check
+update_os
+
+msg_info "Installing Dependencies"
+$STD apt-get install -y curl
+$STD apt-get install -y sudo
+$STD apt-get install -y mc
+$STD apt-get install -y gpg
+msg_ok "Installed Dependencies"
+
+msg_info "Installing Node.js"
+mkdir -p /etc/apt/keyrings
+curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
+echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" >/etc/apt/sources.list.d/nodesource.list
+$STD apt-get update
+$STD apt-get install -y nodejs
+msg_ok "Installed Node.js"
+
+msg_info "Installing FlowiseAI (Patience)"
+$STD npm install -g flowise
+mkdir -p /opt/flowiseai
+wget -q https://raw.githubusercontent.com/FlowiseAI/Flowise/main/packages/server/.env.example -O /opt/flowiseai/.env
+msg_ok "Installed FlowiseAI"
+
+msg_info "Creating Service"
+cat </etc/systemd/system/flowise.service
+[Unit]
+Description=FlowiseAI
+After=network.target
+
+[Service]
+EnvironmentFile=/opt/flowiseai/.env
+ExecStart=npx flowise start
+Restart=always
+
+[Install]
+WantedBy=multi-user.target
+EOF
+systemctl enable -q --now flowise.service
+msg_ok "Created Service"
+
+motd_ssh
+customize
+
+msg_info "Cleaning up"
+$STD apt-get autoremove
+$STD apt-get autoclean
+msg_ok "Cleaned"
diff --git a/install/homeassistant-core-install.sh b/install/homeassistant-core-install.sh
index 327c773f..99027611 100644
--- a/install/homeassistant-core-install.sh
+++ b/install/homeassistant-core-install.sh
@@ -42,9 +42,9 @@ $STD apt-get install -y \
libatlas-base-dev
msg_ok "Installed Dependencies"
-RELEASE=$(curl -s https://www.python.org/downloads/ | grep -oP 'Download Python \K\d+\.\d+\.\d+' | head -1)
+#RELEASE=$(curl -s https://www.python.org/downloads/ | grep -oP 'Download Python \K\d+\.\d+\.\d+' | head -1)
-msg_info "Compiling Python ${RELEASE} from its source (Additional Patience)"
+msg_info "Compiling Python 3.12 from its source (Additional Patience)"
$STD apt-get remove -y python3
$STD apt-get install -y \
checkinstall \
@@ -57,15 +57,16 @@ $STD apt-get install -y \
libc6-dev \
libbz2-dev
-wget -qO- https://www.python.org/ftp/python/${RELEASE}/Python-${RELEASE}.tar.xz | tar -xJ
-cd Python-${RELEASE}
+#wget -qO- https://www.python.org/ftp/python/${RELEASE}/Python-${RELEASE}.tar.xz | tar -xJ
+wget -qO- https://www.python.org/ftp/python/3.12.2/Python-3.12.2.tar.xz | tar -xJ
+cd Python-3.12.2
$STD ./configure --enable-optimizations
$STD make -j $(nproc)
$STD make altinstall
$STD update-alternatives --install /usr/bin/python3 python3 /usr/local/bin/python3.12 1
cd ~
-rm -rf Python-${RELEASE}
-msg_ok "Installed Python ${RELEASE}"
+rm -rf Python-3.12.2
+msg_ok "Installed Python 3.12"
msg_info "Installing Home Assistant-Core"
mkdir /srv/homeassistant
diff --git a/install/mariadb-install.sh b/install/mariadb-install.sh
index 310b6c26..047d1d05 100644
--- a/install/mariadb-install.sh
+++ b/install/mariadb-install.sh
@@ -27,15 +27,6 @@ sed -i 's/^# *\(port *=.*\)/\1/' /etc/mysql/my.cnf
sed -i 's/^bind-address/#bind-address/g' /etc/mysql/mariadb.conf.d/50-server.cnf
msg_ok "Installed MariaDB"
-read -r -p "Would you like to add Adminer? " prompt
-if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then
- msg_info "Installing Adminer"
- $STD apt install -y adminer
- $STD a2enconf adminer
- systemctl reload apache2
- msg_ok "Installed Adminer"
-fi
-
motd_ssh
customize
diff --git a/install/mqtt-install.sh b/install/mqtt-install.sh
index 860c70bb..18362faa 100644
--- a/install/mqtt-install.sh
+++ b/install/mqtt-install.sh
@@ -17,15 +17,10 @@ msg_info "Installing Dependencies"
$STD apt-get install -y curl
$STD apt-get install -y sudo
$STD apt-get install -y mc
+$STD apt-get install -y gpg
msg_ok "Installed Dependencies"
msg_info "Installing Mosquitto MQTT Broker"
-if [ "$PCT_OSTYPE" == "debian" ]; then
- VERSION="$(awk -F'=' '/^VERSION_CODENAME=/{ print $NF }' /etc/os-release)"
- wget -qO- http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key >/etc/apt/trusted.gpg.d/mosquitto-repo.asc
- wget -qO /etc/apt/sources.list.d/mosquitto-${VERSION}.list http://repo.mosquitto.org/debian/mosquitto-${VERSION}.list
- $STD apt-get update
-fi
$STD apt-get -y install mosquitto
$STD apt-get -y install mosquitto-clients
cat </etc/mosquitto/conf.d/default.conf
diff --git a/install/n8n-install.sh b/install/n8n-install.sh
index 13aa5104..32298692 100644
--- a/install/n8n-install.sh
+++ b/install/n8n-install.sh
@@ -44,6 +44,7 @@ Description=n8n
[Service]
Type=simple
+Environment="N8N_SECURE_COOKIE=false"
ExecStart=n8n start
[Install]
WantedBy=multi-user.target
diff --git a/install/nginxproxymanager-install.sh b/install/nginxproxymanager-install.sh
index 48017b6f..cf7ca741 100644
--- a/install/nginxproxymanager-install.sh
+++ b/install/nginxproxymanager-install.sh
@@ -61,7 +61,7 @@ ln -sf /root/.nvm/versions/node/v16.20.2/bin/node /usr/bin/node
msg_ok "Installed Node.js"
msg_info "Installing pnpm"
-$STD npm install -g pnpm
+$STD npm install -g pnpm@8.15
msg_ok "Installed pnpm"
RELEASE=$(curl -s https://api.github.com/repos/NginxProxyManager/nginx-proxy-manager/releases/latest |
diff --git a/install/omada-install.sh b/install/omada-install.sh
index 4e78c5c7..d3768a98 100644
--- a/install/omada-install.sh
+++ b/install/omada-install.sh
@@ -30,13 +30,14 @@ $STD apt-get -y install zulu8-jdk
msg_ok "Installed Azul Zulu"
msg_info "Installing MongoDB"
-wget -qL http://security.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2.21_amd64.deb
-$STD dpkg -i libssl1.1_1.1.1f-1ubuntu2.21_amd64.deb
+libssl=$(curl -fsSL "http://security.ubuntu.com/ubuntu/pool/main/o/openssl/" | grep -o 'libssl1\.1_1\.1\.1f-1ubuntu2\.2[^"]*amd64\.deb' | head -n1)
+wget -qL http://security.ubuntu.com/ubuntu/pool/main/o/openssl/$libssl
+$STD dpkg -i $libssl
wget -qL https://repo.mongodb.org/apt/ubuntu/dists/bionic/mongodb-org/3.6/multiverse/binary-amd64/mongodb-org-server_3.6.23_amd64.deb
$STD dpkg -i mongodb-org-server_3.6.23_amd64.deb
msg_ok "Installed MongoDB"
-latest_url=$(curl -fsSL "https://www.tp-link.com/us/support/download/omada-software-controller/" | grep -o 'https://.*x64.deb' | head -n1)
+latest_url=$(curl -fsSL "https://www.tp-link.com/en/support/download/omada-software-controller/" | grep -o 'https://.*x64.deb' | head -n1)
latest_version=$(basename "$latest_url")
msg_info "Installing Omada Controller"
@@ -48,7 +49,7 @@ motd_ssh
customize
msg_info "Cleaning up"
-rm -rf ${latest_version} mongodb-org-server_3.6.23_amd64.deb zulu-repo_1.0.0-3_all.deb libssl1.1_1.1.1f-1ubuntu2.21_amd64.deb
+rm -rf ${latest_version} mongodb-org-server_3.6.23_amd64.deb zulu-repo_1.0.0-3_all.deb $libssl
$STD apt-get autoremove
$STD apt-get autoclean
msg_ok "Cleaned"
diff --git a/install/photoprism-install.sh b/install/photoprism-install.sh
index 2f80b6cc..a7bec81f 100644
--- a/install/photoprism-install.sh
+++ b/install/photoprism-install.sh
@@ -25,7 +25,10 @@ $STD apt-get install -y libjpeg-dev
$STD apt-get install -y libtiff-dev
$STD apt-get install -y imagemagick
$STD apt-get install -y darktable
+$STD apt-get install -y rawtherapee
+echo 'export PATH=/usr/local:$PATH' >>~/.bashrc
+export PATH=/usr/local:$PATH
msg_ok "Installed Dependencies"
msg_info "Installing PhotoPrism (Patience)"
diff --git a/install/tandoor-install.sh b/install/tandoor-install.sh
index 509121e4..87fdd91b 100644
--- a/install/tandoor-install.sh
+++ b/install/tandoor-install.sh
@@ -127,7 +127,6 @@ server {
location / {
proxy_set_header Host $http_host;
proxy_pass http://unix:/opt/tandoor/tandoor.sock;
- proxy_set_header X-Forwarded-Proto $scheme;
}
}
EOF
diff --git a/install/unifi-install.sh b/install/unifi-install.sh
index 9ff1d08f..54fbef00 100644
--- a/install/unifi-install.sh
+++ b/install/unifi-install.sh
@@ -29,8 +29,9 @@ $STD apt-get install -y temurin-17-jre
msg_ok "Installed OpenJDK"
msg_info "Installing MongoDB"
-wget -qL http://security.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2.21_amd64.deb
-$STD dpkg -i libssl1.1_1.1.1f-1ubuntu2.21_amd64.deb
+libssl=$(curl -fsSL "http://security.ubuntu.com/ubuntu/pool/main/o/openssl/" | grep -o 'libssl1\.1_1\.1\.1f-1ubuntu2\.2[^"]*amd64\.deb' | head -n1)
+wget -qL http://security.ubuntu.com/ubuntu/pool/main/o/openssl/$libssl
+$STD dpkg -i $libssl
wget -qO- https://pgp.mongodb.com/server-4.4.asc | gpg --dearmor >/etc/apt/trusted.gpg.d/mongodb-server-4.4.gpg
echo 'deb [ arch=amd64 signed-by=/etc/apt/trusted.gpg.d/mongodb-server-4.4.gpg ] https://repo.mongodb.org/apt/debian buster/mongodb-org/4.4 main' >/etc/apt/sources.list.d/mongodb-org-4.4.list
$STD apt-get update
@@ -48,7 +49,7 @@ motd_ssh
customize
msg_info "Cleaning up"
-rm -rf libssl1.1_1.1.1f-1ubuntu2.21_amd64.deb
+rm -rf $libssl
$STD apt-get autoremove
$STD apt-get autoclean
msg_ok "Cleaned"
diff --git a/install/wastebin-install.sh b/install/wastebin-install.sh
new file mode 100644
index 00000000..25e5b592
--- /dev/null
+++ b/install/wastebin-install.sh
@@ -0,0 +1,67 @@
+#!/usr/bin/env bash
+
+# Copyright (c) 2021-2024 tteck
+# Author: tteck
+# Co-Author: MickLesk (Canbiz)
+# License: MIT
+# https://github.com/tteck/Proxmox/raw/main/LICENSE
+# Source: https://github.com/matze/wastebin
+
+source /dev/stdin <<< "$FUNCTIONS_FILE_PATH"
+color
+verb_ip6
+catch_errors
+setting_up_container
+network_check
+update_os
+
+msg_info "Installing Dependencies (Patience)"
+$STD apt-get install -y --no-install-recommends \
+ build-essential \
+ unzip \
+ curl \
+ sudo \
+ git \
+ make \
+ mc
+msg_ok "Installed Dependencies"
+
+msg_info "Installing Rust (Patience)"
+$STD bash <(curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs) -y
+source ~/.cargo/env
+msg_ok "Installed Rust"
+
+msg_info "Installing Wastebin (Patience)"
+RELEASE=$(curl -s https://api.github.com/repos/matze/wastebin/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
+wget -q "https://github.com/matze/wastebin/archive/refs/tags/${RELEASE}.zip"
+unzip -q ${RELEASE}.zip
+mv wastebin-${RELEASE} /opt/wastebin
+rm -R ${RELEASE}.zip
+cd /opt/wastebin
+cargo build -q --release
+msg_ok "Installed Wastebin"
+
+msg_info "Creating Service"
+cat </etc/systemd/system/wastebin.service
+[Unit]
+Description=Start Wastebin Service
+After=network.target
+
+[Service]
+User=root
+WorkingDirectory=/opt/wastebin
+ExecStart=/root/.cargo/bin/cargo run --release --quiet
+
+[Install]
+WantedBy=multi-user.target
+EOF
+systemctl enable -q --now wastebin.service
+msg_ok "Created Service"
+
+motd_ssh
+customize
+
+msg_info "Cleaning up"
+$STD apt-get autoremove
+$STD apt-get autoclean
+msg_ok "Cleaned"
diff --git a/misc/build.func b/misc/build.func
index 604b0468..f21ad361 100644
--- a/misc/build.func
+++ b/misc/build.func
@@ -205,7 +205,7 @@ advanced_settings() {
if var_version=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "UBUNTU VERSION" --radiolist "Choose Version" 10 58 3 \
"20.04" "Focal" OFF \
"22.04" "Jammy" OFF \
- "23.04" "Lunar" OFF \
+ "23.10" "Mantic" OFF \
3>&1 1>&2 2>&3); then
if [ -n "$var_version" ]; then
echo -e "${DGN}Using $var_os Version: ${BGN}$var_version${CL}"
diff --git a/misc/code-server.sh b/misc/code-server.sh
index 6ae2d024..cbc140d9 100644
--- a/misc/code-server.sh
+++ b/misc/code-server.sh
@@ -47,6 +47,7 @@ function error_exit() {
clear
header_info
if command -v pveversion >/dev/null 2>&1; then echo -e "⚠️ Can't Install on Proxmox "; exit; fi
+if [ -e /etc/alpine-release ]; then echo -e "⚠️ Can't Install on Alpine"; exit; fi
while true; do
read -p "This will Install ${APP} on $hostname. Proceed(y/n)?" yn
case $yn in
diff --git a/misc/copy-data/home-assistant-core-copy-data-home-assistant-core.sh b/misc/copy-data/home-assistant-core-copy-data-home-assistant-core.sh
index c0cf2868..68c388ed 100644
--- a/misc/copy-data/home-assistant-core-copy-data-home-assistant-core.sh
+++ b/misc/copy-data/home-assistant-core-copy-data-home-assistant-core.sh
@@ -83,6 +83,10 @@ whiptail --backtitle "Proxmox VE Helper Scripts" --defaultno --title "$TITLE" --
$CTID_FROM (${CTID_FROM_HOSTNAME}) -> $CTID_TO (${CTID_TO_HOSTNAME})
Version: 2022.10.03" 13 50 || exit
info "Home Assistant Data from '$CTID_FROM' to '$CTID_TO'"
+if [ $(pct status $CTID_FROM | sed 's/.* //') == 'running' ]; then
+ msg "Stopping '$CTID_FROM'..."
+ pct stop $CTID_FROM
+fi
if [ $(pct status $CTID_TO | sed 's/.* //') == 'running' ]; then
msg "Stopping '$CTID_TO'..."
pct stop $CTID_TO
diff --git a/misc/post-pve-install.sh b/misc/post-pve-install.sh
index ad2227a1..ea166360 100644
--- a/misc/post-pve-install.sh
+++ b/misc/post-pve-install.sh
@@ -46,7 +46,6 @@ msg_error() {
start_routines() {
header_info
- VERSION="$(awk -F'=' '/^VERSION_CODENAME=/{ print $NF }' /etc/os-release)"
CHOICE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "SOURCES" --menu "The package manager will use the correct sources to update and install packages on your Proxmox VE server.\n \nCorrect Proxmox VE sources?" 14 58 2 \
"yes" " " \
@@ -55,10 +54,11 @@ start_routines() {
yes)
msg_info "Correcting Proxmox VE Sources"
cat </etc/apt/sources.list
-deb http://ftp.debian.org/debian ${VERSION} main contrib
-deb http://ftp.debian.org/debian ${VERSION}-updates main contrib
-deb http://security.debian.org/debian-security ${VERSION}-security main contrib
+deb http://deb.debian.org/debian bookworm main contrib
+deb http://deb.debian.org/debian bookworm-updates main contrib
+deb http://security.debian.org/debian-security bookworm-security main contrib
EOF
+echo 'APT::Get::Update::SourceListWarnings::NonFreeFirmware "false";' >/etc/apt/apt.conf.d/no-bookworm-firmware.conf
msg_ok "Corrected Proxmox VE Sources"
;;
no)
@@ -73,7 +73,7 @@ EOF
yes)
msg_info "Disabling 'pve-enterprise' repository"
cat </etc/apt/sources.list.d/pve-enterprise.list
-# deb https://enterprise.proxmox.com/debian/pve ${VERSION} pve-enterprise
+# deb https://enterprise.proxmox.com/debian/pve bookworm pve-enterprise
EOF
msg_ok "Disabled 'pve-enterprise' repository"
;;
@@ -89,7 +89,7 @@ EOF
yes)
msg_info "Enabling 'pve-no-subscription' repository"
cat </etc/apt/sources.list.d/pve-install-repo.list
-deb http://download.proxmox.com/debian/pve ${VERSION} pve-no-subscription
+deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription
EOF
msg_ok "Enabled 'pve-no-subscription' repository"
;;
@@ -98,7 +98,6 @@ EOF
;;
esac
- if [[ "${VERSION}" == "bookworm" ]]; then
CHOICE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "CEPH PACKAGE REPOSITORIES" --menu "The 'Ceph Package Repositories' provides access to both the 'no-subscription' and 'enterprise' repositories (initially disabled).\n \nCorrect 'ceph package sources?" 14 58 2 \
"yes" " " \
"no" " " 3>&2 2>&1 1>&3)
@@ -117,7 +116,6 @@ EOF
msg_error "Selected no to Correcting 'ceph package repositories'"
;;
esac
- fi
CHOICE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "PVETEST" --menu "The 'pvetest' repository can give advanced users access to new features and updates before they are officially released.\n \nAdd (Disabled) 'pvetest' repository?" 14 58 2 \
"yes" " " \
@@ -126,7 +124,7 @@ EOF
yes)
msg_info "Adding 'pvetest' repository and set disabled"
cat </etc/apt/sources.list.d/pvetest-for-beta.list
-# deb http://download.proxmox.com/debian/pve ${VERSION} pvetest
+# deb http://download.proxmox.com/debian/pve bookworm pvetest
EOF
msg_ok "Added 'pvetest' repository"
;;
@@ -233,9 +231,11 @@ while true; do
esac
done
-if ! command -v pveversion >/dev/null 2>&1; then
- header_info
- msg_error "\n No PVE Detected!\n"
+if ! pveversion | grep -Eq "pve-manager/(8.1.[1-9])"; then
+ msg_error "This version of Proxmox Virtual Environment is not supported"
+ echo -e "Requires Proxmox Virtual Environment Version 8.1.1 or later."
+ echo -e "Exiting..."
+ sleep 2
exit
fi