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