From c4580100a81839a6364d9788c6a12d573cfa546b Mon Sep 17 00:00:00 2001 From: bvdberg01 <74251551+bvdberg01@users.noreply.github.com> Date: Sun, 19 Jan 2025 11:16:01 +0100 Subject: [PATCH 001/284] Fix updater (#1572) --- ct/opengist.sh | 28 +++++++++++++++++----------- json/opengist.json | 2 +- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/ct/opengist.sh b/ct/opengist.sh index 65b586b43..fca88afc2 100644 --- a/ct/opengist.sh +++ b/ct/opengist.sh @@ -32,29 +32,35 @@ function update_script() { msg_error "No ${APP} Installation Found!" exit fi - msg_info "Stopping Service" - systemctl stop opengist.service - msg_ok "Stopped Service" - apt-get update &>/dev/null - apt-get upgrade &>/dev/null RELEASE=$(curl -s https://api.github.com/repos/thomiceli/opengist/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then + msg_info "Stopping Service" + systemctl stop opengist.service + msg_ok "Stopped Service" + msg_info "Updating ${APP} to v${RELEASE}" + apt-get update &>/dev/null + apt-get -y upgrade &>/dev/null cd /opt - wget -qO "https://github.com/thomiceli/opengist/releases/download/v${RELEASE}/opengist${RELEASE}-linux-amd64.tar.gz" - rm -rf /opt/opengist + mv /opt/opengist /opt/opengist-backup + wget -q "https://github.com/thomiceli/opengist/releases/download/v${RELEASE}/opengist${RELEASE}-linux-amd64.tar.gz" tar -xzf opengist${RELEASE}-linux-amd64.tar.gz + mv /opt/opengist-backup/config.yml /opt/opengist/config.yml chmod +x /opt/opengist/opengist echo "${RELEASE}" >"/opt/${APP}_version.txt" - rm -rf /opt/opengist${RELEASE}-linux-amd64.tar.gz - apt-get -y autoremove &>/dev/null - apt-get -y autoclean &>/dev/null msg_ok "Updated ${APP} LXC" msg_info "Starting Service" systemctl start opengist.service msg_ok "Started Service" - + + msg_info "Cleaning up" + rm -rf /opt/opengist${RELEASE}-linux-amd64.tar.gz + rm -rf /opt/opengist-backup + apt-get -y autoremove &>/dev/null + apt-get -y autoclean &>/dev/null + msg_ok "Cleaned" + msg_ok "Updated Successfully" else msg_ok "No update required. ${APP} is already at v${RELEASE}." fi diff --git a/json/opengist.json b/json/opengist.json index d779ed29f..a5b0e72db 100644 --- a/json/opengist.json +++ b/json/opengist.json @@ -6,7 +6,7 @@ ], "date_created": "2025-01-14", "type": "ct", - "updateable": false, + "updateable": true, "privileged": false, "interface_port": 6157, "documentation": null, From 9843b46a94681c577ad4e0b9912984358cae5ac0 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 19 Jan 2025 11:16:51 +0100 Subject: [PATCH 002/284] Update .app-headers file (#1585) Co-authored-by: github-actions[bot] --- misc/.app-headers | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/misc/.app-headers b/misc/.app-headers index 642c14ae0..7fe4a0e0d 100644 --- a/misc/.app-headers +++ b/misc/.app-headers @@ -1,4 +1,4 @@ -### Generated on 01-18-2025 +### Generated on 01-19-2025 ################################################## ### 2fauth.sh From ed0b16bf17826b18c07b0ba701014ef8722731f2 Mon Sep 17 00:00:00 2001 From: "community-scripts-pr-app[bot]" <189241966+community-scripts-pr-app[bot]@users.noreply.github.com> Date: Sun, 19 Jan 2025 11:27:23 +0100 Subject: [PATCH 003/284] Update CHANGELOG.md (#1584) Co-authored-by: github-actions[bot] --- CHANGELOG.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3b356eb49..8f898b8bc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,14 @@ All LXC instances created using this repository come pre-installed with Midnight Do not break established syntax in this file, as it is automatically updated by a Github Workflow +## 2025-01-19 + +### Changed + +### πŸš€ Updated Scripts + +- Update Opengist.sh: Fix broken backup function [@bvdberg01](https://github.com/bvdberg01) ([#1572](https://github.com/community-scripts/ProxmoxVE/pull/1572)) + ## 2025-01-18 ### Changed From 5d69a62b476c5e0df6e8cc56bb8cda42b6a37488 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Sun, 19 Jan 2025 12:58:12 +0100 Subject: [PATCH 004/284] update wording --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7b81b6df1..1bd2931b7 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ Discord - Donate + Donate Contribute From 79dfb7c00152969629f418080139dfb2b767772a Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Mon, 20 Jan 2025 08:50:38 +0100 Subject: [PATCH 005/284] Update pocketbase.sh (#1597) --- ct/pocketbase.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ct/pocketbase.sh b/ct/pocketbase.sh index f9c24680e..8aab765af 100644 --- a/ct/pocketbase.sh +++ b/ct/pocketbase.sh @@ -54,4 +54,4 @@ description msg_ok "Completed Successfully!\n" echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" echo -e "${INFO}${YW} Access it using the following URL:${CL}" -echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080/_${CL}" +echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080/_/${CL}" From dc0b432b69c97f725063e308c234f1ee6f4e5c63 Mon Sep 17 00:00:00 2001 From: Thorsten Date: Mon, 20 Jan 2025 09:03:56 +0100 Subject: [PATCH 006/284] New Script: Proxmox Mail Gateway Post Installer (#1559) * Create post-pmg-install.sh Adding Proxmox Mail Gateway Post Installer * Create post-pmg-install.json * Apply suggestions from code review I'll merge it, but this text string are 1:1 copy from the post-pbs-install.sh script. Maybe we should also fix them there. Co-authored-by: Michel Roegl-Brunner <73236783+michelroegl-brunner@users.noreply.github.com> * smaller fixes * update ascii to slant --------- Co-authored-by: Michel Roegl-Brunner <73236783+michelroegl-brunner@users.noreply.github.com> Co-authored-by: CanbiZ <47820557+MickLesk@users.noreply.github.com> --- json/post-pmg-install.json | 47 ++++++++++ misc/post-pmg-install.sh | 177 +++++++++++++++++++++++++++++++++++++ 2 files changed, 224 insertions(+) create mode 100644 json/post-pmg-install.json create mode 100644 misc/post-pmg-install.sh diff --git a/json/post-pmg-install.json b/json/post-pmg-install.json new file mode 100644 index 000000000..2924d51f9 --- /dev/null +++ b/json/post-pmg-install.json @@ -0,0 +1,47 @@ +{ +"name": "Proxmox Mail Gateway Post Install", +"slug": "post-pmg-install", +"categories": [ + 1 +], +"date_created": "2025-01-20", +"type": "misc", +"updateable": false, +"privileged": false, +"interface_port": null, +"documentation": null, +"website": null, +"logo": "https://raw.githubusercontent.com/home-assistant/brands/master/core_integrations/proxmoxve/icon.png", +"description": "The script will give options to Disable the Enterprise Repo, Add/Correct PMG Sources, Enable the No-Subscription Repo, Add Test Repo, Disable Subscription Nag, Update Proxmox Mail Gateway and Reboot PMG.", +"install_methods": [ + { + "type": "default", + "script": "misc/post-pmg-install.sh", + "resources": { + "cpu": null, + "ram": null, + "hdd": null, + "os": null, + "version": null + } + } +], +"default_credentials": { + "username": null, + "password": null +}, +"notes": [ + { + "text": "Proxmox Mail Gateway ONLY", + "type": "info" + }, + { + "text": "Execute within the Proxmox Mail Gateway Shell", + "type": "info" + }, + { + "text": "It is recommended to answer β€œyes” (y) to all options presented during the process.", + "type": "info" + } +] +} diff --git a/misc/post-pmg-install.sh b/misc/post-pmg-install.sh new file mode 100644 index 000000000..d29fbf2a4 --- /dev/null +++ b/misc/post-pmg-install.sh @@ -0,0 +1,177 @@ +#!/usr/bin/env bash + +# Copyright (c) 2021-2025 community-scripts ORG +# Author: thost96 (thost96) +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE + +header_info() { + clear + cat <<"EOF" + ____ __ _________ ____ __ ____ __ ____ + / __ \/ |/ / ____/ / __ \____ _____/ /_ / _/___ _____/ /_____ _/ / / + / /_/ / /|_/ / / __ / /_/ / __ \/ ___/ __/ / // __ \/ ___/ __/ __ `/ / / + / ____/ / / / /_/ / / ____/ /_/ (__ ) /_ _/ // / / (__ ) /_/ /_/ / / / +/_/ /_/ /_/\____/ /_/ \____/____/\__/ /___/_/ /_/____/\__/\__,_/_/_/ + +EOF +} + +RD=$(echo "\033[01;31m") +YW=$(echo "\033[33m") +GN=$(echo "\033[1;92m") +CL=$(echo "\033[m") +BFR="\\r\\033[K" +HOLD="-" +CM="${GN}βœ“${CL}" +CROSS="${RD}βœ—${CL}" + +set -euo pipefail +shopt -s inherit_errexit nullglob + +msg_info() { + local msg="$1" + echo -ne " ${HOLD} ${YW}${msg}..." +} + +msg_ok() { + local msg="$1" + echo -e "${BFR} ${CM} ${GN}${msg}${CL}" +} + +msg_error() { + local msg="$1" + echo -e "${BFR} ${CROSS} ${RD}${msg}${CL}" +} + +start_routines() { + header_info + VERSION="$(awk -F'=' '/^VERSION_CODENAME=/{ print $NF }' /etc/os-release)" + CHOICE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "PMG SOURCES" --menu "This will set the correct sources to update and install Proxmox Mail Gateway.\n \nChange to Proxmox Mail Gateway sources?" 14 58 2 \ + "yes" " " \ + "no" " " 3>&2 2>&1 1>&3) + case $CHOICE in + yes) + msg_info "Changing to Proxmox Mail Gateway Sources" + cat </etc/apt/sources.list +deb http://deb.debian.org/debian ${VERSION} main contrib +deb http://deb.debian.org/debian ${VERSION}-updates main contrib +deb http://security.debian.org/debian-security ${VERSION}-security main contrib +EOF + msg_ok "Changed to Proxmox Mail Gateway Sources" + ;; + no) + msg_error "Selected no to Correcting Proxmox Mail Gateway Sources" + ;; + esac + + CHOICE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "PMG-ENTERPRISE" --menu "The 'pmg-enterprise' repository is only available to users who have purchased a Proxmox Mail Gateway subscription.\n \nDisable 'pmg-enterprise' repository?" 14 58 2 \ + "yes" " " \ + "no" " " 3>&2 2>&1 1>&3) + case $CHOICE in + yes) + msg_info "Disabling 'pmg-enterprise' repository" + cat </etc/apt/sources.list.d/pmg-enterprise.list +# deb https://enterprise.proxmox.com/debian/pmg ${VERSION} pmg-enterprise +EOF + msg_ok "Disabled 'pmg-enterprise' repository" + ;; + no) + msg_error "Selected no to disabling 'pmg-enterprise' repository" + ;; + esac + + CHOICE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "PMG-NO-SUBSCRIPTION" --menu "The 'pmg-no-subscription' repository provides access to all of the open-source components of Proxmox Mail Gateway.\n \nEnable 'pmg-no-subscription' repository?" 14 58 2 \ + "yes" " " \ + "no" " " 3>&2 2>&1 1>&3) + case $CHOICE in + yes) + msg_info "Enabling 'pmg-no-subscription' repository" + cat </etc/apt/sources.list.d/pmg-install-repo.list +deb http://download.proxmox.com/debian/pmg ${VERSION} pmg-no-subscription +EOF + msg_ok "Enabled 'pmg-no-subscription' repository" + ;; + no) + msg_error "Selected no to enabling 'pmg-no-subscription' repository" + ;; + esac + + CHOICE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "PMG TEST" --menu "The 'pmgtest' repository can give advanced users access to new features and updates before they are officially released.\n \nAdd (Disabled) 'pmgtest' repository?" 14 58 2 \ + "yes" " " \ + "no" " " 3>&2 2>&1 1>&3) + case $CHOICE in + yes) + msg_info "Adding 'pmgtest' repository and set disabled" + cat </etc/apt/sources.list.d/pmgtest-for-beta.list +# deb http://download.proxmox.com/debian/pmg ${VERSION} pmgtest +EOF + msg_ok "Added 'pmgtest' repository" + ;; + no) + msg_error "Selected no to adding 'pmgtest' repository" + ;; + esac + + if [[ ! -f /etc/apt/apt.conf.d/no-nag-script ]]; then + CHOICE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUBSCRIPTION NAG" --menu "This will disable the nag message reminding you to purchase a subscription every time you log in to the web interface.\n \nDisable subscription nag?" 14 58 2 \ + "yes" " " \ + "no" " " 3>&2 2>&1 1>&3) + case $CHOICE in + yes) + whiptail --backtitle "Proxmox VE Helper Scripts" --msgbox --title "Support Subscriptions" "Supporting the software's development team is essential. Check their official website's Support Subscriptions for pricing. Without their dedicated work, we wouldn't have this exceptional software." 10 58 + msg_info "Disabling subscription nag" + echo "DPkg::Post-Invoke { \"dpkg -V proxmox-widget-toolkit | grep -q '/proxmoxlib\.js$'; if [ \$? -eq 1 ]; then { echo 'Removing subscription nag from UI...'; sed -i '/data\.status.*{/{s/\!//;s/active/NoMoreNagging/}' /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js; }; fi\"; };" >/etc/apt/apt.conf.d/no-nag-script + apt --reinstall install proxmox-widget-toolkit &>/dev/null + msg_ok "Disabled subscription nag (Delete browser cache)" + ;; + no) + whiptail --backtitle "Proxmox VE Helper Scripts" --msgbox --title "Support Subscriptions" "Supporting the software's development team is essential. Check their official website's Support Subscriptions for pricing. Without their dedicated work, we wouldn't have this exceptional software." 10 58 + msg_error "Selected no to disabling subscription nag" + ;; + esac + fi + + CHOICE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "UPDATE" --menu "\nUpdate Proxmox Mail Gateway now?" 11 58 2 \ + "yes" " " \ + "no" " " 3>&2 2>&1 1>&3) + case $CHOICE in + yes) + msg_info "Updating Proxmox Mail Gateway (Patience)" + apt-get update &>/dev/null + apt-get -y dist-upgrade &>/dev/null + msg_ok "Updated Proxmox Mail Gateway" + ;; + no) + msg_error "Selected no to updating Proxmox Mail Gateway" + ;; + esac + + CHOICE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "REBOOT" --menu "\nReboot Proxmox Mail Gateway now? (recommended)" 11 58 2 \ + "yes" " " \ + "no" " " 3>&2 2>&1 1>&3) + case $CHOICE in + yes) + msg_info "Rebooting Proxmox Mail Gateway" + sleep 2 + msg_ok "Completed Post Install Routines" + reboot + ;; + no) + msg_error "Selected no to reboot Proxmox Mail Gateway (Reboot recommended)" + msg_ok "Completed Post Install Routines" + ;; + esac +} + +header_info +echo -e "\nThis script will Perform Post Install Routines.\n" +while true; do + read -p "Start the Proxmox Mail Gateway Post Install Script (y/n)?" yn + case $yn in + [Yy]*) break ;; + [Nn]*) clear; exit ;; + *) echo "Please answer yes or no." ;; + esac +done + +start_routines From 7df8273654fca280ad714d5775c348ee032a1990 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Mon, 20 Jan 2025 09:19:47 +0100 Subject: [PATCH 007/284] Update build.func (#1602) --- misc/build.func | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/misc/build.func b/misc/build.func index 9c7d6a93d..a0510eda9 100644 --- a/misc/build.func +++ b/misc/build.func @@ -146,6 +146,52 @@ pve_check() { fi } +# When a node is running tens of containers, it's possible to exceed the kernel's cryptographic key storage allocations. +# These are tuneable, so verify if the currently deployment is approaching the limits, advise the user on how to tune the limits, and exit the script. +# https://cleveruptime.com/docs/files/proc-key-users | https://docs.kernel.org/security/keys/core.html +maxkeys_check() { + # Read kernel parameters + per_user_maxkeys=$(cat /proc/sys/kernel/keys/maxkeys 2>/dev/null || echo 0) + per_user_maxbytes=$(cat /proc/sys/kernel/keys/maxbytes 2>/dev/null || echo 0) + + # Exit if kernel parameters are unavailable + if [[ "$per_user_maxkeys" -eq 0 || "$per_user_maxbytes" -eq 0 ]]; then + echo -e "${CROSS}${RD} Error: Unable to read kernel parameters. Ensure proper permissions.${CL}" + exit 1 + fi + + # Fetch key usage for user ID 100000 (typical for containers) + used_lxc_keys=$(awk '/100000:/ {print $2}' /proc/key-users 2>/dev/null || echo 0) + used_lxc_bytes=$(awk '/100000:/ {split($5, a, "/"); print a[1]}' /proc/key-users 2>/dev/null || echo 0) + + # Calculate thresholds and suggested new limits + threshold_keys=$((per_user_maxkeys - 100)) + threshold_bytes=$((per_user_maxbytes - 1000)) + new_limit_keys=$((per_user_maxkeys * 2)) + new_limit_bytes=$((per_user_maxbytes * 2)) + + # Check if key or byte usage is near limits + failure=0 + if [[ "$used_lxc_keys" -gt "$threshold_keys" ]]; then + echo -e "${CROSS}${RD} Warning: Key usage is near the limit (${used_lxc_keys}/${per_user_maxkeys}).${CL}" + echo -e "${INFO} Suggested action: Set ${GN}kernel.keys.maxkeys=${new_limit_keys}${CL} in ${BOLD}/etc/sysctl.d/98-community-scripts.conf${CL}." + failure=1 + fi + if [[ "$used_lxc_bytes" -gt "$threshold_bytes" ]]; then + echo -e "${CROSS}${RD} Warning: Key byte usage is near the limit (${used_lxc_bytes}/${per_user_maxbytes}).${CL}" + echo -e "${INFO} Suggested action: Set ${GN}kernel.keys.maxbytes=${new_limit_bytes}${CL} in ${BOLD}/etc/sysctl.d/98-community-scripts.conf${CL}." + failure=1 + fi + + # Provide next steps if issues are detected + if [[ "$failure" -eq 1 ]]; then + echo -e "${INFO} To apply changes, run: ${BOLD}service procps force-reload${CL}" + exit 1 + fi + + echo -e "${CM}${GN} All kernel key limits are within safe thresholds.${CL}" +} + # This function checks the system architecture and exits if it's not "amd64". arch_check() { if [ "$(dpkg --print-architecture)" != "amd64" ]; then @@ -687,6 +733,7 @@ install_script() { root_check arch_check ssh_check + maxkeys_check if systemctl is-active -q ping-instances.service; then systemctl -q stop ping-instances.service From 1d26b208ffbc604cbe6ebc5c22c55737bf101df0 Mon Sep 17 00:00:00 2001 From: Thorsten Date: Mon, 20 Jan 2025 09:20:08 +0100 Subject: [PATCH 008/284] fix wrong URL after Install (#1601) --- ct/unifi.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ct/unifi.sh b/ct/unifi.sh index 16fe0c8d7..816377d13 100644 --- a/ct/unifi.sh +++ b/ct/unifi.sh @@ -46,4 +46,4 @@ description msg_ok "Completed Successfully!\n" echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" echo -e "${INFO}${YW} Access it using the following URL:${CL}" -echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8443${CL}" +echo -e "${TAB}${GATEWAY}${BGN}https://${IP}:8443${CL}" From b9187d771a07a7fd6b540bfa26df508363816925 Mon Sep 17 00:00:00 2001 From: "community-scripts-pr-app[bot]" <189241966+community-scripts-pr-app[bot]@users.noreply.github.com> Date: Mon, 20 Jan 2025 09:21:00 +0100 Subject: [PATCH 009/284] Update CHANGELOG.md (#1598) Co-authored-by: github-actions[bot] --- CHANGELOG.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8f898b8bc..c5938895c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,23 @@ All LXC instances created using this repository come pre-installed with Midnight Do not break established syntax in this file, as it is automatically updated by a Github Workflow +## 2025-01-20 + +### Changed + +### ✨ New Scripts + +- New Script: Proxmox Mail Gateway Post Installer [@thost96](https://github.com/thost96) ([#1559](https://github.com/community-scripts/ProxmoxVE/pull/1559)) + +### πŸš€ Updated Scripts + +- Unifi.sh fix wrong URL after Install [@thost96](https://github.com/thost96) ([#1601](https://github.com/community-scripts/ProxmoxVE/pull/1601)) +- Fix Pocketbase URL after install [@MickLesk](https://github.com/MickLesk) ([#1597](https://github.com/community-scripts/ProxmoxVE/pull/1597)) + +### 🧰 Maintenance + +- Add new Check for LXC MaxKeys by @cricalix [@MickLesk](https://github.com/MickLesk) ([#1602](https://github.com/community-scripts/ProxmoxVE/pull/1602)) + ## 2025-01-19 ### Changed From 3078d1a11aaa23a501cbb1711dca73df9a6fdb80 Mon Sep 17 00:00:00 2001 From: Andy Grunwald Date: Mon, 20 Jan 2025 10:17:49 +0100 Subject: [PATCH 010/284] Grafana: Mark container as updateable (#1603) --- json/grafana.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/json/grafana.json b/json/grafana.json index beea3c13c..20314c174 100644 --- a/json/grafana.json +++ b/json/grafana.json @@ -6,7 +6,7 @@ ], "date_created": "2024-05-02", "type": "ct", - "updateable": false, + "updateable": true, "privileged": false, "interface_port": 3000, "documentation": null, From a94e28c5df41a2bfa8040ac8bf318438bda9f361 Mon Sep 17 00:00:00 2001 From: "community-scripts-pr-app[bot]" <189241966+community-scripts-pr-app[bot]@users.noreply.github.com> Date: Mon, 20 Jan 2025 10:58:11 +0100 Subject: [PATCH 011/284] Update CHANGELOG.md (#1604) Co-authored-by: github-actions[bot] --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c5938895c..8771636ce 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -30,6 +30,10 @@ Do not break established syntax in this file, as it is automatically updated by - Unifi.sh fix wrong URL after Install [@thost96](https://github.com/thost96) ([#1601](https://github.com/community-scripts/ProxmoxVE/pull/1601)) - Fix Pocketbase URL after install [@MickLesk](https://github.com/MickLesk) ([#1597](https://github.com/community-scripts/ProxmoxVE/pull/1597)) +### 🌐 Website + +- Grafana: Mark container as updateable [@andygrunwald](https://github.com/andygrunwald) ([#1603](https://github.com/community-scripts/ProxmoxVE/pull/1603)) + ### 🧰 Maintenance - Add new Check for LXC MaxKeys by @cricalix [@MickLesk](https://github.com/MickLesk) ([#1602](https://github.com/community-scripts/ProxmoxVE/pull/1602)) From 029b57ea9eac0c4ca5b7c0f956aee3e5215cec31 Mon Sep 17 00:00:00 2001 From: "community-scripts-pr-app[bot]" <189241966+community-scripts-pr-app[bot]@users.noreply.github.com> Date: Mon, 20 Jan 2025 11:22:49 +0100 Subject: [PATCH 012/284] Update CHANGELOG.md (#1605) --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8771636ce..444afd6bd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -27,8 +27,8 @@ Do not break established syntax in this file, as it is automatically updated by ### πŸš€ Updated Scripts -- Unifi.sh fix wrong URL after Install [@thost96](https://github.com/thost96) ([#1601](https://github.com/community-scripts/ProxmoxVE/pull/1601)) - Fix Pocketbase URL after install [@MickLesk](https://github.com/MickLesk) ([#1597](https://github.com/community-scripts/ProxmoxVE/pull/1597)) +- Unifi.sh fix wrong URL after Install [@thost96](https://github.com/thost96) ([#1601](https://github.com/community-scripts/ProxmoxVE/pull/1601)) ### 🌐 Website From 0daca3a6eee7939f875f59edd82b847d23a1b0ea Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Mon, 20 Jan 2025 11:36:39 +0100 Subject: [PATCH 013/284] Update Website | Add new Categoryies (#1606) * change metadata * update jsons --- json/2fauth.json | 2 +- json/5etools.json | 2 +- json/actualbudget.json | 2 +- json/add-netbird-lxc.json | 2 +- json/add-tailscale-lxc.json | 2 +- json/adguard.json | 2 +- json/adventurelog.json | 2 +- json/agentdvr.json | 2 +- json/all-templates.json | 2 +- json/alpine.json | 2 +- json/apache-cassandra.json | 2 +- json/apache-couchdb.json | 2 +- json/apache-guacamole.json | 2 +- json/apt-cacher-ng.json | 2 +- json/archivebox.json | 2 +- json/aria2.json | 2 +- json/audiobookshelf.json | 2 +- json/authentik.json | 2 +- json/autobrr.json | 2 +- json/bazarr.json | 2 +- json/blocky.json | 2 +- json/bookstack.json | 2 +- json/bunkerweb.json | 2 +- json/caddy.json | 2 +- json/casaos.json | 2 +- json/changedetection.json | 2 +- json/channels.json | 2 +- json/checkmk.json | 2 +- json/cloudflared.json | 2 +- json/cockpit.json | 2 +- json/code-server.json | 2 +- json/commafeed.json | 2 +- json/cronicle.json | 2 +- json/crowdsec.json | 2 +- json/daemonsync.json | 2 +- json/dashy.json | 2 +- json/debian-vm.json | 2 +- json/debian.json | 2 +- json/deconz.json | 2 +- json/deluge.json | 2 +- json/docker.json | 2 +- json/dockge.json | 2 +- json/dotnetaspwebapi.json | 2 +- json/emby.json | 2 +- json/emqx.json | 2 +- json/ersatztv.json | 2 +- json/esphome.json | 2 +- json/evcc.json | 2 +- json/fenrus.json | 2 +- json/fhem.json | 2 +- json/filebrowser.json | 2 +- json/firefly.json | 2 +- json/flaresolverr.json | 2 +- json/flowiseai.json | 2 +- json/forgejo.json | 2 +- json/frigate.json | 2 +- json/fstrim.json | 2 +- json/ghost.json | 2 +- json/gitea.json | 2 +- json/glance.json | 2 +- json/glances.json | 2 +- json/glpi.json | 2 +- json/go2rtc.json | 2 +- json/gokapi.json | 2 +- json/gotify.json | 2 +- json/grafana.json | 2 +- json/grist.json | 2 +- json/grocy.json | 2 +- json/haos-vm.json | 2 +- json/headscale.json | 2 +- json/heimdall-dashboard.json | 2 +- json/hivemq.json | 2 +- json/hoarder.json | 2 +- json/homarr.json | 2 +- json/homeassistant-core.json | 2 +- json/homeassistant.json | 2 +- json/homebox.json | 2 +- json/homebridge.json | 2 +- json/homepage.json | 2 +- json/homer.json | 1 - json/host-backup.json | 2 +- json/hyperhdr.json | 2 +- json/hyperion.json | 2 +- json/influxdb.json | 2 +- json/inspircd.json | 2 +- json/iobroker.json | 2 +- json/iventoy.json | 2 +- json/jackett.json | 2 +- json/jellyfin.json | 2 +- json/jellyseerr.json | 2 +- json/jenkins.json | 2 +- json/kavita.json | 2 +- json/kernel-clean.json | 2 +- json/kernel-pin.json | 2 +- json/keycloak.json | 2 +- json/kimai.json | 2 +- json/komga.json | 2 +- json/komodo.json | 2 +- json/kubo.json | 2 +- json/lazylibrarian.json | 2 +- json/lidarr.json | 2 +- json/linkwarden.json | 2 +- json/listmonk.json | 2 +- json/lldap.json | 2 +- json/lubelogger.json | 2 +- json/mafl.json | 2 +- json/magicmirror.json | 2 +- json/mariadb.json | 2 +- json/matterbridge.json | 2 +- json/mediamtx.json | 2 +- json/medusa.json | 2 +- json/memos.json | 2 +- json/meshcentral.json | 2 +- json/metadata.json | 55 ++++++++++++++++------------ json/metube.json | 2 +- json/microcode.json | 2 +- json/mikrotik-routeros.json | 2 +- json/mongodb.json | 2 +- json/monitor-all.json | 2 +- json/motioneye.json | 2 +- json/mqtt.json | 2 +- json/mylar3.json | 2 +- json/myspeed.json | 2 +- json/mysql.json | 2 +- json/n8n.json | 2 +- json/navidrome.json | 2 +- json/neo4j.json | 2 +- json/netbox.json | 2 +- json/netdata.json | 2 +- json/nextcloud-vm.json | 2 +- json/nextcloudpi.json | 2 +- json/nextpvr.json | 2 +- json/nginxproxymanager.json | 2 +- json/nocodb.json | 2 +- json/node-red.json | 2 +- json/notifiarr.json | 2 +- json/ntfy.json | 2 +- json/nzbget.json | 2 +- json/octoprint.json | 2 +- json/olivetin.json | 2 +- json/omada.json | 2 +- json/ombi.json | 2 +- json/omv.json | 2 +- json/onedev.json | 2 +- json/opengist.json | 2 +- json/openhab.json | 2 +- json/openobserve.json | 2 +- json/openwebui.json | 2 +- json/openwrt.json | 2 +- json/overseerr.json | 2 +- json/owncast.json | 2 +- json/owncloud-vm.json | 2 +- json/pairdrop.json | 2 +- json/paperless-ngx.json | 2 +- json/part-db.json | 2 +- json/pbs.json | 2 +- json/peanut.json | 2 +- json/petio.json | 2 +- json/pf2etools.json | 2 +- json/photoprism.json | 2 +- json/phpipam.json | 1 - json/pialert.json | 2 +- json/pihole.json | 2 +- json/pimox-haos-vm.json | 2 +- json/pingvin.json | 2 +- json/plex.json | 2 +- json/pocketbase.json | 2 +- json/podman-homeassistant.json | 2 +- json/podman.json | 2 +- json/post-pbs-install.json | 2 +- json/post-pmg-install.json | 1 - json/postgresql.json | 2 +- json/prometheus-alertmanager.json | 2 +- json/prometheus.json | 2 +- json/prowlarr.json | 2 +- json/proxmox-datacenter-manager.json | 2 +- json/ps5-mqtt.json | 2 +- json/qbittorrent.json | 2 +- json/rabbitmq.json | 2 +- json/radarr.json | 2 +- json/rdtclient.json | 2 +- json/readarr.json | 2 +- json/readeck.json | 2 +- json/recyclarr.json | 2 +- json/redis.json | 2 +- json/rtsptoweb.json | 2 +- json/runtipi.json | 2 +- json/sabnzbd.json | 2 +- json/scaling-governor.json | 2 +- json/semaphore.json | 2 +- json/sftpgo.json | 2 +- json/shinobi.json | 2 +- json/silverbullet.json | 2 +- json/smokeping.json | 2 +- json/snipeit.json | 2 +- json/sonarr.json | 2 +- json/spoolman.json | 2 +- json/stirling-pdf.json | 2 +- json/syncthing.json | 2 +- json/tandoor.json | 2 +- json/tasmoadmin.json | 2 +- json/tautulli.json | 2 +- json/tdarr.json | 2 +- json/technitiumdns.json | 2 +- json/teddycloud.json | 2 +- json/the-lounge.json | 2 +- json/threadfin.json | 2 +- json/tianji.json | 2 +- json/traccar.json | 2 +- json/traefik.json | 2 +- json/transmission.json | 2 +- json/trilium.json | 2 +- json/turnkey.json | 2 +- json/typesense.json | 2 +- json/ubuntu.json | 2 +- json/ubuntu2204-vm.json | 2 +- json/ubuntu2404-vm.json | 2 +- json/umami.json | 2 +- json/unbound.json | 2 +- json/unifi.json | 2 +- json/unmanic.json | 2 +- json/update-repo.json | 2 +- json/uptimekuma.json | 2 +- json/vaultwarden.json | 2 +- json/vikunja.json | 2 +- json/wallos.json | 2 +- json/wastebin.json | 2 +- json/watchyourlan.json | 2 +- json/wavelog.json | 2 +- json/webmin.json | 2 +- json/whisparr.json | 2 +- json/whoogle.json | 2 +- json/wikijs.json | 2 +- json/wireguard.json | 2 +- json/wordpress.json | 2 +- json/yunohost.json | 2 +- json/zabbix.json | 2 +- json/zammad.json | 2 +- json/zigbee2mqtt.json | 2 +- json/zipline.json | 2 +- json/zoraxy.json | 2 +- json/zwave-js-ui.json | 2 +- 242 files changed, 269 insertions(+), 265 deletions(-) diff --git a/json/2fauth.json b/json/2fauth.json index 1fb772702..4c2dda8bb 100644 --- a/json/2fauth.json +++ b/json/2fauth.json @@ -2,7 +2,7 @@ "name": "2FAuth", "slug": "2fauth", "categories": [ - 0 + 6 ], "date_created": "2024-12-20", "type": "ct", diff --git a/json/5etools.json b/json/5etools.json index 2900dda6c..8c808d989 100644 --- a/json/5etools.json +++ b/json/5etools.json @@ -2,7 +2,7 @@ "name": "5etools", "slug": "5etools", "categories": [ - 0 + 24 ], "date_created": "2025-01-02", "type": "ct", diff --git a/json/actualbudget.json b/json/actualbudget.json index d5138d5ee..b38de5a0a 100644 --- a/json/actualbudget.json +++ b/json/actualbudget.json @@ -2,7 +2,7 @@ "name": "Actual Budget", "slug": "actualbudget", "categories": [ - 0 + 23 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/add-netbird-lxc.json b/json/add-netbird-lxc.json index ce4a785d3..e99f05271 100644 --- a/json/add-netbird-lxc.json +++ b/json/add-netbird-lxc.json @@ -2,7 +2,7 @@ "name": "NetBird", "slug": "add-netbird-lxc", "categories": [ - 11 + 1 ], "date_created": "2024-05-19", "type": "misc", diff --git a/json/add-tailscale-lxc.json b/json/add-tailscale-lxc.json index 1b2717e2c..5ee395600 100644 --- a/json/add-tailscale-lxc.json +++ b/json/add-tailscale-lxc.json @@ -2,7 +2,7 @@ "name": "Tailscale", "slug": "add-tailscale-lxc", "categories": [ - 11 + 1 ], "date_created": "2024-05-02", "type": "misc", diff --git a/json/adguard.json b/json/adguard.json index 89d7287ab..9b72b4347 100644 --- a/json/adguard.json +++ b/json/adguard.json @@ -2,7 +2,7 @@ "name": "AdGuard Home", "slug": "adguard", "categories": [ - 13 + 5 ], "date_created": "2024-04-28", "type": "ct", diff --git a/json/adventurelog.json b/json/adventurelog.json index f9aca9a8c..5596d6fb3 100644 --- a/json/adventurelog.json +++ b/json/adventurelog.json @@ -2,7 +2,7 @@ "name": "AdventureLog", "slug": "adventurelog", "categories": [ - 0 + 24 ], "date_created": "2024-10-26", "type": "ct", diff --git a/json/agentdvr.json b/json/agentdvr.json index aa6ec16f1..7fbc19bf5 100644 --- a/json/agentdvr.json +++ b/json/agentdvr.json @@ -2,7 +2,7 @@ "name": "AgentDVR", "slug": "agentdvr", "categories": [ - 17 + 15 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/all-templates.json b/json/all-templates.json index 471571310..da695ce89 100644 --- a/json/all-templates.json +++ b/json/all-templates.json @@ -2,7 +2,7 @@ "name": "All Templates", "slug": "all-templates", "categories": [ - 10 + 1 ], "date_created": "2024-05-02", "type": "misc", diff --git a/json/alpine.json b/json/alpine.json index ad46560e0..327141537 100644 --- a/json/alpine.json +++ b/json/alpine.json @@ -2,7 +2,7 @@ "name": "Alpine", "slug": "alpine", "categories": [ - 9 + 2 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/apache-cassandra.json b/json/apache-cassandra.json index 63484fa48..6b9969a37 100644 --- a/json/apache-cassandra.json +++ b/json/apache-cassandra.json @@ -2,7 +2,7 @@ "name": "Apache-Cassandra", "slug": "apache-cassandra", "categories": [ - 5 + 8 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/apache-couchdb.json b/json/apache-couchdb.json index 623ede38f..5c711bf30 100644 --- a/json/apache-couchdb.json +++ b/json/apache-couchdb.json @@ -2,7 +2,7 @@ "name": "Apache-CouchDB", "slug": "apache-couchdb", "categories": [ - 5 + 8 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/apache-guacamole.json b/json/apache-guacamole.json index cf095ea8b..c6b4ea0b8 100644 --- a/json/apache-guacamole.json +++ b/json/apache-guacamole.json @@ -2,7 +2,7 @@ "name": "Apache Guacamole", "slug": "apache-guacamole", "categories": [ - 11 + 21 ], "date_created": "2024-12-19", "type": "ct", diff --git a/json/apt-cacher-ng.json b/json/apt-cacher-ng.json index dcc324cc3..b36f46731 100644 --- a/json/apt-cacher-ng.json +++ b/json/apt-cacher-ng.json @@ -2,7 +2,7 @@ "name": "Apt-Cacher-NG", "slug": "apt-cacher-ng", "categories": [ - 11 + 4 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/archivebox.json b/json/archivebox.json index 34d6667e0..ab1cfa995 100644 --- a/json/archivebox.json +++ b/json/archivebox.json @@ -2,7 +2,7 @@ "name": "ArchiveBox", "slug": "archivebox", "categories": [ - 0 + 12 ], "date_created": "2024-10-19", "type": "ct", diff --git a/json/aria2.json b/json/aria2.json index 9282221a8..62c95f8c4 100644 --- a/json/aria2.json +++ b/json/aria2.json @@ -2,7 +2,7 @@ "name": "Aria2", "slug": "aria2", "categories": [ - 16 + 11 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/audiobookshelf.json b/json/audiobookshelf.json index 062d71ec7..8763fe1bf 100644 --- a/json/audiobookshelf.json +++ b/json/audiobookshelf.json @@ -2,7 +2,7 @@ "name": "Audiobookshelf", "slug": "audiobookshelf", "categories": [ - 12 + 13 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/authentik.json b/json/authentik.json index 4b3f87a3c..7bf874c17 100644 --- a/json/authentik.json +++ b/json/authentik.json @@ -2,7 +2,7 @@ "name": "authentik", "slug": "authentik", "categories": [ - 11 + 6 ], "date_created": "2024-12-27", "type": "ct", diff --git a/json/autobrr.json b/json/autobrr.json index 645357827..d6a249703 100644 --- a/json/autobrr.json +++ b/json/autobrr.json @@ -2,7 +2,7 @@ "name": "Autobrr", "slug": "autobrr", "categories": [ - 18 + 19 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/bazarr.json b/json/bazarr.json index 602217d8e..b51393f3c 100644 --- a/json/bazarr.json +++ b/json/bazarr.json @@ -2,7 +2,7 @@ "name": "Bazarr", "slug": "bazarr", "categories": [ - 18 + 14 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/blocky.json b/json/blocky.json index 8668bfd18..3fb801df6 100644 --- a/json/blocky.json +++ b/json/blocky.json @@ -2,7 +2,7 @@ "name": "Blocky", "slug": "blocky", "categories": [ - 13 + 5 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/bookstack.json b/json/bookstack.json index 5a567f449..48a18ac35 100644 --- a/json/bookstack.json +++ b/json/bookstack.json @@ -2,7 +2,7 @@ "name": "BookStack", "slug": "bookstack", "categories": [ - 14 + 12 ], "date_created": "2024-11-05", "type": "ct", diff --git a/json/bunkerweb.json b/json/bunkerweb.json index 24a4ab2cf..9269c8fdf 100644 --- a/json/bunkerweb.json +++ b/json/bunkerweb.json @@ -2,7 +2,7 @@ "name": "BunkerWeb", "slug": "bunkerweb", "categories": [ - 11 + 21 ], "date_created": "2024-06-12", "type": "ct", diff --git a/json/caddy.json b/json/caddy.json index 233ba3a3c..9530b0301 100644 --- a/json/caddy.json +++ b/json/caddy.json @@ -2,7 +2,7 @@ "name": "Caddy", "slug": "caddy", "categories": [ - 11 + 21 ], "date_created": "2024-05-11", "type": "ct", diff --git a/json/casaos.json b/json/casaos.json index 0ec77da58..e476f8867 100644 --- a/json/casaos.json +++ b/json/casaos.json @@ -2,7 +2,7 @@ "name": "CasaOS", "slug": "casaos", "categories": [ - 8 + 2 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/changedetection.json b/json/changedetection.json index 94784f20f..40f294f04 100644 --- a/json/changedetection.json +++ b/json/changedetection.json @@ -2,7 +2,7 @@ "name": "Change Detection", "slug": "changedetection", "categories": [ - 7 + 9 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/channels.json b/json/channels.json index cedcdf614..0f32a786d 100644 --- a/json/channels.json +++ b/json/channels.json @@ -2,7 +2,7 @@ "name": "Channels DVR Server", "slug": "channels", "categories": [ - 17 + 13 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/checkmk.json b/json/checkmk.json index db23ab857..be1bcd8c9 100644 --- a/json/checkmk.json +++ b/json/checkmk.json @@ -2,7 +2,7 @@ "name": "Checkmk", "slug": "checkmk", "categories": [ - 7 + 9 ], "date_created": "2024-12-19", "type": "ct", diff --git a/json/cloudflared.json b/json/cloudflared.json index 21fc4e5bb..2a4aa2190 100644 --- a/json/cloudflared.json +++ b/json/cloudflared.json @@ -2,7 +2,7 @@ "name": "Cloudflared", "slug": "cloudflared", "categories": [ - 11 + 4 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/cockpit.json b/json/cockpit.json index 51b8d49b1..b03d24663 100644 --- a/json/cockpit.json +++ b/json/cockpit.json @@ -2,7 +2,7 @@ "name": "Cockpit", "slug": "cockpit", "categories": [ - 16 + 10 ], "date_created": "2024-10-20", "type": "ct", diff --git a/json/code-server.json b/json/code-server.json index 03e38d0df..3bc9414a7 100644 --- a/json/code-server.json +++ b/json/code-server.json @@ -2,7 +2,7 @@ "name": "VS Code Server", "slug": "code-server", "categories": [ - 19 + 20 ], "date_created": "2024-05-02", "type": "misc", diff --git a/json/commafeed.json b/json/commafeed.json index 97e3eeb0e..da50dc96a 100644 --- a/json/commafeed.json +++ b/json/commafeed.json @@ -2,7 +2,7 @@ "name": "CommaFeed", "slug": "commafeed", "categories": [ - 0 + 10 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/cronicle.json b/json/cronicle.json index 3c733ee20..2d46c1cee 100644 --- a/json/cronicle.json +++ b/json/cronicle.json @@ -2,7 +2,7 @@ "name": "Cronicle Primary", "slug": "cronicle", "categories": [ - 11 + 19 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/crowdsec.json b/json/crowdsec.json index a2c1dbfda..c259fe885 100644 --- a/json/crowdsec.json +++ b/json/crowdsec.json @@ -2,7 +2,7 @@ "name": "CrowdSec", "slug": "crowdsec", "categories": [ - 11 + 6 ], "date_created": "2024-05-02", "type": "misc", diff --git a/json/daemonsync.json b/json/daemonsync.json index 5a031b9a7..1855ebfa6 100644 --- a/json/daemonsync.json +++ b/json/daemonsync.json @@ -2,7 +2,7 @@ "name": "Daemon Sync Server", "slug": "daemonsync", "categories": [ - 16 + 19 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/dashy.json b/json/dashy.json index cdf42fb5b..f6adc1fca 100644 --- a/json/dashy.json +++ b/json/dashy.json @@ -2,7 +2,7 @@ "name": "Dashy", "slug": "dashy", "categories": [ - 15 + 10 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/debian-vm.json b/json/debian-vm.json index acd0f1e6e..bc3cf1a1d 100644 --- a/json/debian-vm.json +++ b/json/debian-vm.json @@ -2,7 +2,7 @@ "name": "Debian 12", "slug": "debian-vm", "categories": [ - 9 + 1 ], "date_created": "2024-05-02", "type": "vm", diff --git a/json/debian.json b/json/debian.json index 6f4ddd490..2d6af1492 100644 --- a/json/debian.json +++ b/json/debian.json @@ -2,7 +2,7 @@ "name": "Debian", "slug": "debian", "categories": [ - 9 + 2 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/deconz.json b/json/deconz.json index 519583604..2680e0166 100644 --- a/json/deconz.json +++ b/json/deconz.json @@ -2,7 +2,7 @@ "name": "deCONZ", "slug": "deconz", "categories": [ - 6 + 17 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/deluge.json b/json/deluge.json index af8c61c5d..3423978a8 100644 --- a/json/deluge.json +++ b/json/deluge.json @@ -2,7 +2,7 @@ "name": "Deluge", "slug": "deluge", "categories": [ - 16 + 11 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/docker.json b/json/docker.json index 4e2fe350a..e782429a8 100644 --- a/json/docker.json +++ b/json/docker.json @@ -2,7 +2,7 @@ "name": "Docker", "slug": "docker", "categories": [ - 8 + 3 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/dockge.json b/json/dockge.json index 977d40625..a44ea51cc 100644 --- a/json/dockge.json +++ b/json/dockge.json @@ -2,7 +2,7 @@ "name": "Dockge", "slug": "dockge", "categories": [ - 8 + 3 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/dotnetaspwebapi.json b/json/dotnetaspwebapi.json index 46bbd30ca..e078427e6 100644 --- a/json/dotnetaspwebapi.json +++ b/json/dotnetaspwebapi.json @@ -2,7 +2,7 @@ "name":"Dotnet ASP Web API", "slug":"dotnetaspwebapi", "categories":[ - 0 + 20 ], "date_created":"2025-01-15", "type":"ct", diff --git a/json/emby.json b/json/emby.json index 3516b84ca..3fe49ac0c 100644 --- a/json/emby.json +++ b/json/emby.json @@ -2,7 +2,7 @@ "name": "Emby Media Server", "slug": "emby", "categories": [ - 12 + 13 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/emqx.json b/json/emqx.json index 69622f3ed..950705f56 100644 --- a/json/emqx.json +++ b/json/emqx.json @@ -2,7 +2,7 @@ "name": "EMQX", "slug": "emqx", "categories": [ - 4 + 18 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/ersatztv.json b/json/ersatztv.json index 30fc3f738..9f09a9788 100644 --- a/json/ersatztv.json +++ b/json/ersatztv.json @@ -2,7 +2,7 @@ "name": "ErsatzTV", "slug": "ersatztv", "categories": [ - 12 + 13 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/esphome.json b/json/esphome.json index bb6a0d5c7..db1a42627 100644 --- a/json/esphome.json +++ b/json/esphome.json @@ -2,7 +2,7 @@ "name": "ESPHome", "slug": "esphome", "categories": [ - 3 + 16 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/evcc.json b/json/evcc.json index 1a4c24296..dd66f7315 100644 --- a/json/evcc.json +++ b/json/evcc.json @@ -2,7 +2,7 @@ "name": "evcc", "slug": "evcc", "categories": [ - 0 + 16 ], "date_created": "2024-10-15", "type": "ct", diff --git a/json/fenrus.json b/json/fenrus.json index 2f2b57e14..ff38d709f 100644 --- a/json/fenrus.json +++ b/json/fenrus.json @@ -2,7 +2,7 @@ "name": "Fenrus", "slug": "fenrus", "categories": [ - 15 + 10 ], "date_created": "2024-05-05", "type": "ct", diff --git a/json/fhem.json b/json/fhem.json index 0d5594618..7a1f16ebc 100644 --- a/json/fhem.json +++ b/json/fhem.json @@ -2,7 +2,7 @@ "name": "FHEM", "slug": "fhem", "categories": [ - 3 + 16 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/filebrowser.json b/json/filebrowser.json index fe0de6889..5b7300420 100644 --- a/json/filebrowser.json +++ b/json/filebrowser.json @@ -2,7 +2,7 @@ "name": "File Browser", "slug": "filebrowser", "categories": [ - 16 + 11 ], "date_created": "2024-05-02", "type": "misc", diff --git a/json/firefly.json b/json/firefly.json index 64a3669a5..c2d7fc6e2 100644 --- a/json/firefly.json +++ b/json/firefly.json @@ -2,7 +2,7 @@ "name": "Firefly III", "slug": "firefly", "categories": [ - 0 + 23 ], "date_created": "2025-01-01", "type": "ct", diff --git a/json/flaresolverr.json b/json/flaresolverr.json index ccc3bec01..b672c7334 100644 --- a/json/flaresolverr.json +++ b/json/flaresolverr.json @@ -2,7 +2,7 @@ "name": "FlareSolverr", "slug": "flaresolverr", "categories": [ - 11 + 4 ], "date_created": "2024-06-12", "type": "ct", diff --git a/json/flowiseai.json b/json/flowiseai.json index b2f99b5c7..0c4dd7ab5 100644 --- a/json/flowiseai.json +++ b/json/flowiseai.json @@ -2,7 +2,7 @@ "name": "FlowiseAI", "slug": "flowiseai", "categories": [ - 19 + 20 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/forgejo.json b/json/forgejo.json index 3a16cf9a5..3291eb57d 100644 --- a/json/forgejo.json +++ b/json/forgejo.json @@ -2,7 +2,7 @@ "name": "Forgejo", "slug": "forgejo", "categories": [ - 19 + 20 ], "date_created": "2024-06-12", "type": "ct", diff --git a/json/frigate.json b/json/frigate.json index 275afce3a..e1c4c1b63 100644 --- a/json/frigate.json +++ b/json/frigate.json @@ -2,7 +2,7 @@ "name": "Frigate", "slug": "frigate", "categories": [ - 17 + 15 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/fstrim.json b/json/fstrim.json index a6c124d17..00eb04f3d 100644 --- a/json/fstrim.json +++ b/json/fstrim.json @@ -2,7 +2,7 @@ "name": "Proxmox VE LXC Filesystem Trim", "slug": "fstrim", "categories": [ - 1 + 2 ], "date_created": "2024-04-29", "type": "misc", diff --git a/json/ghost.json b/json/ghost.json index 45db52080..5f4fa4f08 100644 --- a/json/ghost.json +++ b/json/ghost.json @@ -2,7 +2,7 @@ "name": "Ghost", "slug": "ghost", "categories": [ - 12 + 21 ], "date_created": "2025-01-10", "type": "ct", diff --git a/json/gitea.json b/json/gitea.json index 17d2a29c2..82890c1d7 100644 --- a/json/gitea.json +++ b/json/gitea.json @@ -2,7 +2,7 @@ "name": "Gitea", "slug": "gitea", "categories": [ - 19 + 20 ], "date_created": "2024-07-26", "type": "ct", diff --git a/json/glance.json b/json/glance.json index 486eb960b..94a8b0730 100644 --- a/json/glance.json +++ b/json/glance.json @@ -2,7 +2,7 @@ "name": "Glance", "slug": "glance", "categories": [ - 15 + 9 ], "date_created": "2024-12-02", "type": "ct", diff --git a/json/glances.json b/json/glances.json index dc5c86895..c70efe0c9 100644 --- a/json/glances.json +++ b/json/glances.json @@ -2,7 +2,7 @@ "name": "Glances", "slug": "glances", "categories": [ - 7 + 9 ], "date_created": "2024-05-02", "type": "misc", diff --git a/json/glpi.json b/json/glpi.json index 6d652bddd..245db6ac3 100644 --- a/json/glpi.json +++ b/json/glpi.json @@ -2,7 +2,7 @@ "name": "GLPI", "slug": "glpi", "categories": [ - 0 + 28 ], "date_created": "2025-01-06", "type": "ct", diff --git a/json/go2rtc.json b/json/go2rtc.json index 18af0c6a0..51cd80d55 100644 --- a/json/go2rtc.json +++ b/json/go2rtc.json @@ -2,7 +2,7 @@ "name": "go2rtc", "slug": "go2rtc", "categories": [ - 0 + 16 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/gokapi.json b/json/gokapi.json index 9b81448f2..3d958dd88 100644 --- a/json/gokapi.json +++ b/json/gokapi.json @@ -2,7 +2,7 @@ "name": "Gokapi", "slug": "gokapi", "categories": [ - 16 + 11 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/gotify.json b/json/gotify.json index 5e7867187..b8b6bcb39 100644 --- a/json/gotify.json +++ b/json/gotify.json @@ -2,7 +2,7 @@ "name": "Gotify", "slug": "gotify", "categories": [ - 0 + 18 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/grafana.json b/json/grafana.json index 20314c174..1e1515afb 100644 --- a/json/grafana.json +++ b/json/grafana.json @@ -2,7 +2,7 @@ "name": "Grafana", "slug": "grafana", "categories": [ - 7 + 9 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/grist.json b/json/grist.json index fc93ecd8b..0c82240a5 100644 --- a/json/grist.json +++ b/json/grist.json @@ -2,7 +2,7 @@ "name": "Grist", "slug": "grist", "categories": [ - 5 + 12 ], "date_created": "2024-12-27", "type": "ct", diff --git a/json/grocy.json b/json/grocy.json index 5be078a10..75eb7534c 100644 --- a/json/grocy.json +++ b/json/grocy.json @@ -2,7 +2,7 @@ "name": "grocy", "slug": "grocy", "categories": [ - 0 + 16 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/haos-vm.json b/json/haos-vm.json index 6ce917b3b..8192fb65a 100644 --- a/json/haos-vm.json +++ b/json/haos-vm.json @@ -2,7 +2,7 @@ "name": "Home Assistant OS", "slug": "haos-vm", "categories": [ - 2 + 1 ], "date_created": "2024-04-29", "type": "vm", diff --git a/json/headscale.json b/json/headscale.json index 9260aa7c7..d6a6c811f 100644 --- a/json/headscale.json +++ b/json/headscale.json @@ -2,7 +2,7 @@ "name": "Headscale", "slug": "headscale", "categories": [ - 11 + 4 ], "date_created": "2024-05-13", "type": "ct", diff --git a/json/heimdall-dashboard.json b/json/heimdall-dashboard.json index f0c523adb..7f84a5c13 100644 --- a/json/heimdall-dashboard.json +++ b/json/heimdall-dashboard.json @@ -2,7 +2,7 @@ "name": "Heimdall Dashboard", "slug": "heimdall-dashboard", "categories": [ - 15 + 10 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/hivemq.json b/json/hivemq.json index c63e39c8b..8f710c564 100644 --- a/json/hivemq.json +++ b/json/hivemq.json @@ -2,7 +2,7 @@ "name": "HiveMQ CE", "slug": "hivemq", "categories": [ - 4 + 18 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/hoarder.json b/json/hoarder.json index f8d1a76ce..3f15aaa7a 100644 --- a/json/hoarder.json +++ b/json/hoarder.json @@ -2,7 +2,7 @@ "name": "Hoarder", "slug": "hoarder", "categories": [ - 14 + 12 ], "date_created": "2024-12-02", "type": "ct", diff --git a/json/homarr.json b/json/homarr.json index ed15e88f8..dea87f136 100644 --- a/json/homarr.json +++ b/json/homarr.json @@ -2,7 +2,7 @@ "name": "Homarr", "slug": "homarr", "categories": [ - 15 + 10 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/homeassistant-core.json b/json/homeassistant-core.json index ef362fe59..d71e5d266 100644 --- a/json/homeassistant-core.json +++ b/json/homeassistant-core.json @@ -2,7 +2,7 @@ "name": "Home Assistant Core", "slug": "homeassistant-core", "categories": [ - 2 + 16 ], "date_created": "2025-01-17", "type": "ct", diff --git a/json/homeassistant.json b/json/homeassistant.json index 564933d7b..3abb5a3ba 100644 --- a/json/homeassistant.json +++ b/json/homeassistant.json @@ -2,7 +2,7 @@ "name": "Home Assistant Container", "slug": "homeassistant", "categories": [ - 2 + 16 ], "date_created": "2024-04-29", "type": "ct", diff --git a/json/homebox.json b/json/homebox.json index 04d2cb189..ecb41106b 100644 --- a/json/homebox.json +++ b/json/homebox.json @@ -2,7 +2,7 @@ "name": "HomeBox", "slug": "homebox", "categories": [ - 14 + 25 ], "date_created": "2024-09-16", "type": "ct", diff --git a/json/homebridge.json b/json/homebridge.json index 8395b69ec..1a25369ab 100644 --- a/json/homebridge.json +++ b/json/homebridge.json @@ -2,7 +2,7 @@ "name": "Homebridge", "slug": "homebridge", "categories": [ - 3 + 16 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/homepage.json b/json/homepage.json index d69c0f95e..04ddc3a8d 100644 --- a/json/homepage.json +++ b/json/homepage.json @@ -2,7 +2,7 @@ "name": "Homepage", "slug": "homepage", "categories": [ - 15 + 10 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/homer.json b/json/homer.json index b86359ddd..e31b6003e 100644 --- a/json/homer.json +++ b/json/homer.json @@ -2,7 +2,6 @@ "name": "Homer", "slug": "homer", "categories": [ - 15 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/host-backup.json b/json/host-backup.json index 280425593..57d9d9c49 100644 --- a/json/host-backup.json +++ b/json/host-backup.json @@ -2,7 +2,7 @@ "name": "Proxmox VE Host Backup", "slug": "host-backup", "categories": [ - 1 + 7 ], "date_created": "2024-04-29", "type": "misc", diff --git a/json/hyperhdr.json b/json/hyperhdr.json index f14a84247..d5f10ef1a 100644 --- a/json/hyperhdr.json +++ b/json/hyperhdr.json @@ -2,7 +2,7 @@ "name": "HyperHDR", "slug": "hyperhdr", "categories": [ - 0 + 13 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/hyperion.json b/json/hyperion.json index 76967af22..9fdcec4bb 100644 --- a/json/hyperion.json +++ b/json/hyperion.json @@ -2,7 +2,7 @@ "name": "Hyperion", "slug": "hyperion", "categories": [ - 0 + 13 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/influxdb.json b/json/influxdb.json index d663a3664..0c38be749 100644 --- a/json/influxdb.json +++ b/json/influxdb.json @@ -2,7 +2,7 @@ "name": "InfluxDB", "slug": "influxdb", "categories": [ - 5 + 8 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/inspircd.json b/json/inspircd.json index 19728150c..b1029b9bd 100644 --- a/json/inspircd.json +++ b/json/inspircd.json @@ -2,7 +2,7 @@ "name": "InspIRCd 4", "slug": "inspircd", "categories": [ - 0 + 18 ], "date_created": "2024-11-29", "type": "ct", diff --git a/json/iobroker.json b/json/iobroker.json index 7748d4dc6..b56c000ef 100644 --- a/json/iobroker.json +++ b/json/iobroker.json @@ -2,7 +2,7 @@ "name": "ioBroker", "slug": "iobroker", "categories": [ - 3 + 16 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/iventoy.json b/json/iventoy.json index 8f09fdc5b..3213567c1 100644 --- a/json/iventoy.json +++ b/json/iventoy.json @@ -2,7 +2,7 @@ "name": "iVentoy", "slug": "iventoy", "categories": [ - 11 + 2 ], "date_created": "2024-05-16", "type": "ct", diff --git a/json/jackett.json b/json/jackett.json index fac43b0fd..5a7ea0f33 100644 --- a/json/jackett.json +++ b/json/jackett.json @@ -2,7 +2,7 @@ "name": "Jackett", "slug": "jackett", "categories": [ - 16 + 14 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/jellyfin.json b/json/jellyfin.json index bcd43ce7d..0f9bd5c8a 100644 --- a/json/jellyfin.json +++ b/json/jellyfin.json @@ -2,7 +2,7 @@ "name": "Jellyfin Media Server", "slug": "jellyfin", "categories": [ - 12 + 13 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/jellyseerr.json b/json/jellyseerr.json index 157643d7c..fc739df86 100644 --- a/json/jellyseerr.json +++ b/json/jellyseerr.json @@ -2,7 +2,7 @@ "name": "Jellyseerr", "slug": "jellyseerr", "categories": [ - 12 + 14 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/jenkins.json b/json/jenkins.json index 9e2abbb21..04ac70e3c 100644 --- a/json/jenkins.json +++ b/json/jenkins.json @@ -2,7 +2,7 @@ "name": "Jenkins", "slug": "jenkins", "categories": [ - 3 + 19 ], "date_created": "2024-12-26", "type": "ct", diff --git a/json/kavita.json b/json/kavita.json index dddd26a93..6e86d6fc0 100644 --- a/json/kavita.json +++ b/json/kavita.json @@ -2,7 +2,7 @@ "name": "Kavita", "slug": "kavita", "categories": [ - 14 + 13 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/kernel-clean.json b/json/kernel-clean.json index 3e23ea378..1524726ca 100644 --- a/json/kernel-clean.json +++ b/json/kernel-clean.json @@ -2,7 +2,7 @@ "name": "Proxmox VE Kernel Clean", "slug": "kernel-clean", "categories": [ - 1 + 2 ], "date_created": "2024-04-29", "type": "misc", diff --git a/json/kernel-pin.json b/json/kernel-pin.json index 99f6fbcd1..2153c8952 100644 --- a/json/kernel-pin.json +++ b/json/kernel-pin.json @@ -2,7 +2,7 @@ "name": "Proxmox VE Kernel Pin", "slug": "kernel-pin", "categories": [ - 1 + 2 ], "date_created": "2024-05-08", "type": "misc", diff --git a/json/keycloak.json b/json/keycloak.json index 47cf547b6..bd9958923 100644 --- a/json/keycloak.json +++ b/json/keycloak.json @@ -2,7 +2,7 @@ "name": "Keycloak", "slug": "keycloak", "categories": [ - 11 + 6 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/kimai.json b/json/kimai.json index 8de820fae..011345341 100644 --- a/json/kimai.json +++ b/json/kimai.json @@ -2,7 +2,7 @@ "name": "Kimai", "slug": "kimai", "categories": [ - 0 + 28 ], "date_created": "2024-11-20", "type": "ct", diff --git a/json/komga.json b/json/komga.json index 50c31664c..cd3a8a448 100644 --- a/json/komga.json +++ b/json/komga.json @@ -2,7 +2,7 @@ "name": "Komga", "slug": "komga", "categories": [ - 12 + 13 ], "date_created": "2024-11-15", "type": "ct", diff --git a/json/komodo.json b/json/komodo.json index d27b09aac..d678b3b68 100644 --- a/json/komodo.json +++ b/json/komodo.json @@ -2,7 +2,7 @@ "name": "Komodo", "slug": "komodo", "categories": [ - 8 + 20 ], "date_created": "2025-01-01", "type": "ct", diff --git a/json/kubo.json b/json/kubo.json index 151497002..bc15f7b6e 100644 --- a/json/kubo.json +++ b/json/kubo.json @@ -2,7 +2,7 @@ "name": "Kubo", "slug": "kubo", "categories": [ - 16 + 11 ], "date_created": "2024-06-27", "type": "ct", diff --git a/json/lazylibrarian.json b/json/lazylibrarian.json index b5127c705..75ac1c278 100644 --- a/json/lazylibrarian.json +++ b/json/lazylibrarian.json @@ -2,7 +2,7 @@ "name": "LazyLibrarian", "slug": "lazylibrarian", "categories": [ - 12 + 14 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/lidarr.json b/json/lidarr.json index 2a4be48c0..57229bbc1 100644 --- a/json/lidarr.json +++ b/json/lidarr.json @@ -2,7 +2,7 @@ "name": "Lidarr", "slug": "lidarr", "categories": [ - 18 + 14 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/linkwarden.json b/json/linkwarden.json index 5bf40d340..974afebfe 100644 --- a/json/linkwarden.json +++ b/json/linkwarden.json @@ -2,7 +2,7 @@ "name": "Linkwarden", "slug": "linkwarden", "categories": [ - 15 + 12 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/listmonk.json b/json/listmonk.json index dc765ec7b..06d746955 100644 --- a/json/listmonk.json +++ b/json/listmonk.json @@ -2,7 +2,7 @@ "name": "listmonk", "slug": "listmonk", "categories": [ - 14 + 22 ], "date_created": "2024-11-22", "type": "ct", diff --git a/json/lldap.json b/json/lldap.json index 296f00c42..7178d7b4c 100644 --- a/json/lldap.json +++ b/json/lldap.json @@ -2,7 +2,7 @@ "name": "lldap", "slug": "lldap", "categories": [ - 11 + 6 ], "date_created": "2024-08-06", "type": "ct", diff --git a/json/lubelogger.json b/json/lubelogger.json index 8cdd98fa8..508aab900 100644 --- a/json/lubelogger.json +++ b/json/lubelogger.json @@ -2,7 +2,7 @@ "name": "LubeLogger", "slug": "lubelogger", "categories": [ - 0 + 9 ], "date_created": "2024-11-29", "type": "ct", diff --git a/json/mafl.json b/json/mafl.json index 2843009c2..8ca64146c 100644 --- a/json/mafl.json +++ b/json/mafl.json @@ -2,7 +2,7 @@ "name": "Mafl", "slug": "mafl", "categories": [ - 15 + 25 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/magicmirror.json b/json/magicmirror.json index b1cdbc194..488b26ae4 100644 --- a/json/magicmirror.json +++ b/json/magicmirror.json @@ -2,7 +2,7 @@ "name": "MagicMirror Server", "slug": "magicmirror", "categories": [ - 0 + 16 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/mariadb.json b/json/mariadb.json index 31b029a23..886b76784 100644 --- a/json/mariadb.json +++ b/json/mariadb.json @@ -2,7 +2,7 @@ "name": "Mariadb", "slug": "mariadb", "categories": [ - 5 + 8 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/matterbridge.json b/json/matterbridge.json index 4f7a2fcec..acc3a1256 100644 --- a/json/matterbridge.json +++ b/json/matterbridge.json @@ -2,7 +2,7 @@ "name": "Matterbridge", "slug": "matterbridge", "categories": [ - 6 + 22 ], "date_created": "2024-06-12", "type": "ct", diff --git a/json/mediamtx.json b/json/mediamtx.json index 6343ada95..b2ee80db4 100644 --- a/json/mediamtx.json +++ b/json/mediamtx.json @@ -2,7 +2,7 @@ "name": "MediaMTX", "slug": "mediamtx", "categories": [ - 12 + 13 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/medusa.json b/json/medusa.json index 61bb0f622..d902e91a8 100644 --- a/json/medusa.json +++ b/json/medusa.json @@ -2,7 +2,7 @@ "name": "Medusa", "slug": "medusa", "categories": [ - 12 + 14 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/memos.json b/json/memos.json index 7f3251f3c..0d6ed537d 100644 --- a/json/memos.json +++ b/json/memos.json @@ -2,7 +2,7 @@ "name": "Memos", "slug": "memos", "categories": [ - 14 + 12 ], "date_created": "2024-10-31", "type": "ct", diff --git a/json/meshcentral.json b/json/meshcentral.json index 9ad0f93cd..8b434f7db 100644 --- a/json/meshcentral.json +++ b/json/meshcentral.json @@ -2,7 +2,7 @@ "name": "MeshCentral", "slug": "meshcentral", "categories": [ - 11 + 4 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/metadata.json b/json/metadata.json index d91546525..0ba0aa9ba 100644 --- a/json/metadata.json +++ b/json/metadata.json @@ -1,25 +1,32 @@ { - "categories": - [ - {"name": "Proxmox VE Tools", "id": 1, "sort_order": 1.0}, - {"name": "AdBlocker & DNS", "id": 13, "sort_order": 2.0}, - {"name": "*Arr Suite", "id": 18, "sort_order": 3.0}, - {"name": "Automation", "id": 3, "sort_order": 4.0}, - {"name": "Coding & AI", "id": 19, "sort_order": 5.0}, - {"name": "Dashboards", "id": 15, "sort_order": 5.0}, - {"name": "Database", "id": 5, "sort_order": 6.0}, - {"name": "Docker & Kubernetes", "id": 8, "sort_order": 7.0}, - {"name": "Document & Notes", "id": 14, "sort_order": 8.0}, - {"name": "File & Downloads", "id": 16, "sort_order": 9.0}, - {"name": "Home Assistant", "id": 2, "sort_order": 10.0}, - {"name": "Media & Photo", "id": 12, "sort_order": 11.0}, - {"name": "Monitoring & Analytics", "id": 7, "sort_order": 12.0}, - {"name": "MQTT", "id": 4, "sort_order": 13.0}, - {"name": "NVR & DVR", "id": 17, "sort_order": 14.0}, - {"name": "Operating System", "id": 9, "sort_order": 15.0}, - {"name": "Server & Networking", "id": 11, "sort_order": 16.0}, - {"name": "TurnKey", "id": 10, "sort_order": 17.0}, - {"name": "Matter, Zigbee & ZWave", "id": 6, "sort_order": 18.0}, - {"name": "Miscellaneous", "id": 0, "sort_order": 99.0} - ] -} \ No newline at end of file + "categories": [ + { "name": "Proxmox & Virtualization", "id": 1, "sort_order": 1.0 }, + { "name": "Operating Systems", "id": 2, "sort_order": 2.0 }, + { "name": "Containers & Docker", "id": 3, "sort_order": 3.0 }, + { "name": "Network & Firewall", "id": 4, "sort_order": 4.0 }, + { "name": "Adblock & DNS", "id": 5, "sort_order": 5.0 }, + { "name": "Authentication & Security", "id": 6, "sort_order": 6.0 }, + { "name": "Backup & Recovery", "id": 7, "sort_order": 7.0 }, + { "name": "Databases", "id": 8, "sort_order": 8.0 }, + { "name": "Monitoring & Analytics", "id": 9, "sort_order": 9.0 }, + { "name": "Dashboards & Frontends", "id": 10, "sort_order": 10.0 }, + { "name": "Files, Downloads & Torrents", "id": 11, "sort_order": 11.0 }, + { "name": "Documents & Notes", "id": 12, "sort_order": 12.0 }, + { "name": "Media & Streaming", "id": 13, "sort_order": 13.0 }, + { "name": "*Arr Suite", "id": 14, "sort_order": 14.0 }, + { "name": "NVR & Cameras", "id": 15, "sort_order": 15.0 }, + { "name": "IoT & Smart Home", "id": 16, "sort_order": 16.0 }, + { "name": "ZigBee, Z-Wave & Matter", "id": 17, "sort_order": 17.0 }, + { "name": "MQTT & Messaging", "id": 18, "sort_order": 18.0 }, + { "name": "Automation & Scheduling", "id": 19, "sort_order": 19.0 }, + { "name": "Coding & Dev Tools", "id": 20, "sort_order": 20.0 }, + { "name": "Web Servers & Reverse Proxies", "id": 21, "sort_order": 21.0 }, + { "name": "Bots & ChatOps", "id": 22, "sort_order": 22.0 }, + { "name": "Finance & Budgeting", "id": 23, "sort_order": 23.0 }, + { "name": "Gaming & Leisure", "id": 24, "sort_order": 24.0 }, + { "name": "API Gateways & Microservices", "id": 26, "sort_order": 25.0 }, + { "name": "Email & Groupware", "id": 27, "sort_order": 26.0 }, + { "name": "Business & ERP", "id": 28, "sort_order": 27.0 }, + { "name": "Miscellaneous", "id": 0, "sort_order": 99.0 } + ] +} diff --git a/json/metube.json b/json/metube.json index ff2f75698..e2d5dedf5 100644 --- a/json/metube.json +++ b/json/metube.json @@ -2,7 +2,7 @@ "name": "MeTube", "slug": "metube", "categories": [ - 12 + 13 ], "date_created": "2024-06-12", "type": "ct", diff --git a/json/microcode.json b/json/microcode.json index 8bb521e38..589db3b95 100644 --- a/json/microcode.json +++ b/json/microcode.json @@ -2,7 +2,7 @@ "name": "Proxmox VE Processor Microcode", "slug": "microcode", "categories": [ - 1 + 2 ], "date_created": "2024-04-29", "type": "misc", diff --git a/json/mikrotik-routeros.json b/json/mikrotik-routeros.json index 16bce81b6..594ebc83c 100644 --- a/json/mikrotik-routeros.json +++ b/json/mikrotik-routeros.json @@ -2,7 +2,7 @@ "name": "Mikrotik RouterOS CHR", "slug": "mikrotik-routeros", "categories": [ - 11 + 4 ], "date_created": "2024-05-02", "type": "vm", diff --git a/json/mongodb.json b/json/mongodb.json index 81aa7f5a4..ab89acff7 100644 --- a/json/mongodb.json +++ b/json/mongodb.json @@ -2,7 +2,7 @@ "name": "MongoDB", "slug": "mongodb", "categories": [ - 5 + 8 ], "date_created": "2024-05-18", "type": "ct", diff --git a/json/monitor-all.json b/json/monitor-all.json index 52a14fd10..76f111870 100644 --- a/json/monitor-all.json +++ b/json/monitor-all.json @@ -2,7 +2,7 @@ "name": "Proxmox VE Monitor-All", "slug": "monitor-all", "categories": [ - 1 + 9 ], "date_created": "2024-04-29", "type": "misc", diff --git a/json/motioneye.json b/json/motioneye.json index baa439359..f303a7103 100644 --- a/json/motioneye.json +++ b/json/motioneye.json @@ -2,7 +2,7 @@ "name": "MotionEye NVR", "slug": "motioneye", "categories": [ - 17 + 15 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/mqtt.json b/json/mqtt.json index 6337e168a..5685ac331 100644 --- a/json/mqtt.json +++ b/json/mqtt.json @@ -2,7 +2,7 @@ "name": "MQTT", "slug": "mqtt", "categories": [ - 4 + 18 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/mylar3.json b/json/mylar3.json index b9fb5a8a5..520e545d0 100644 --- a/json/mylar3.json +++ b/json/mylar3.json @@ -2,7 +2,7 @@ "name": "Mylar3", "slug": "mylar3", "categories": [ - 12 + 14 ], "date_created": "2024-12-02", "type": "ct", diff --git a/json/myspeed.json b/json/myspeed.json index 596176c5f..59d0a2a79 100644 --- a/json/myspeed.json +++ b/json/myspeed.json @@ -2,7 +2,7 @@ "name": "MySpeed", "slug": "myspeed", "categories": [ - 7 + 4 ], "date_created": "2024-06-14", "type": "ct", diff --git a/json/mysql.json b/json/mysql.json index e9af860db..66584d58f 100644 --- a/json/mysql.json +++ b/json/mysql.json @@ -2,7 +2,7 @@ "name": "MySQL", "slug": "mysql", "categories": [ - 5 + 8 ], "date_created": "2024-10-10", "type": "ct", diff --git a/json/n8n.json b/json/n8n.json index f8f94275a..af2f46896 100644 --- a/json/n8n.json +++ b/json/n8n.json @@ -2,7 +2,7 @@ "name": "n8n", "slug": "n8n", "categories": [ - 3 + 19 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/navidrome.json b/json/navidrome.json index 697451a46..a9a491737 100644 --- a/json/navidrome.json +++ b/json/navidrome.json @@ -2,7 +2,7 @@ "name": "Navidrome", "slug": "navidrome", "categories": [ - 12 + 13 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/neo4j.json b/json/neo4j.json index d0adccee3..66f485cc3 100644 --- a/json/neo4j.json +++ b/json/neo4j.json @@ -2,7 +2,7 @@ "name": "Neo4j", "slug": "neo4j", "categories": [ - 5 + 8 ], "date_created": "2024-10-20", "type": "ct", diff --git a/json/netbox.json b/json/netbox.json index 4870e0a78..b46de4b8f 100644 --- a/json/netbox.json +++ b/json/netbox.json @@ -2,7 +2,7 @@ "name": "NetBox", "slug": "netbox", "categories": [ - 11 + 4 ], "date_created": "2024-11-17", "type": "ct", diff --git a/json/netdata.json b/json/netdata.json index d1abf45a7..973f68648 100644 --- a/json/netdata.json +++ b/json/netdata.json @@ -2,7 +2,7 @@ "name": "Proxmox VE Netdata", "slug": "netdata", "categories": [ - 1 + 9 ], "date_created": "2024-04-29", "type": "misc", diff --git a/json/nextcloud-vm.json b/json/nextcloud-vm.json index ad1edb1e4..9c52fd79f 100644 --- a/json/nextcloud-vm.json +++ b/json/nextcloud-vm.json @@ -2,7 +2,7 @@ "name": "Nextcloud", "slug": "nextcloud-vm", "categories": [ - 12 + 1 ], "date_created": "2023-11-14", "type": "vm", diff --git a/json/nextcloudpi.json b/json/nextcloudpi.json index b1b0f09b7..de63ed1c2 100644 --- a/json/nextcloudpi.json +++ b/json/nextcloudpi.json @@ -2,7 +2,7 @@ "name": "Nextcloud", "slug": "nextcloudpi", "categories": [ - 12 + 2 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/nextpvr.json b/json/nextpvr.json index 38206c309..c3c453985 100644 --- a/json/nextpvr.json +++ b/json/nextpvr.json @@ -2,7 +2,7 @@ "name": "NextPVR", "slug": "nextpvr", "categories": [ - 17 + 15 ], "date_created": "2024-11-20", "type": "ct", diff --git a/json/nginxproxymanager.json b/json/nginxproxymanager.json index d2c19f469..e1feb3d58 100644 --- a/json/nginxproxymanager.json +++ b/json/nginxproxymanager.json @@ -2,7 +2,7 @@ "name": "Nginx Proxy Manager", "slug": "nginxproxymanager", "categories": [ - 11 + 21 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/nocodb.json b/json/nocodb.json index 689b19c17..2836103b2 100644 --- a/json/nocodb.json +++ b/json/nocodb.json @@ -2,7 +2,7 @@ "name": "NocoDB", "slug": "nocodb", "categories": [ - 14 + 28 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/node-red.json b/json/node-red.json index 748863c20..9826c31f3 100644 --- a/json/node-red.json +++ b/json/node-red.json @@ -2,7 +2,7 @@ "name": "Node-Red", "slug": "node-red", "categories": [ - 3 + 19 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/notifiarr.json b/json/notifiarr.json index 67caa5ee4..8b310efbf 100644 --- a/json/notifiarr.json +++ b/json/notifiarr.json @@ -2,7 +2,7 @@ "name": "Notifiarr", "slug": "notifiarr", "categories": [ - 18 + 22 ], "date_created": "2024-06-12", "type": "ct", diff --git a/json/ntfy.json b/json/ntfy.json index 8d9c45291..816a96090 100644 --- a/json/ntfy.json +++ b/json/ntfy.json @@ -2,7 +2,7 @@ "name": "ntfy", "slug": "ntfy", "categories": [ - 0 + 22 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/nzbget.json b/json/nzbget.json index 71dfc31bc..073b2a6f5 100644 --- a/json/nzbget.json +++ b/json/nzbget.json @@ -2,7 +2,7 @@ "name": "NZBGet", "slug": "nzbget", "categories": [ - 16 + 11 ], "date_created": "2024-10-31", "type": "ct", diff --git a/json/octoprint.json b/json/octoprint.json index 8bc0b0d67..4206c2314 100644 --- a/json/octoprint.json +++ b/json/octoprint.json @@ -2,7 +2,7 @@ "name": "OctoPrint", "slug": "octoprint", "categories": [ - 0 + 16 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/olivetin.json b/json/olivetin.json index 346192ca5..4e2a862f6 100644 --- a/json/olivetin.json +++ b/json/olivetin.json @@ -2,7 +2,7 @@ "name": "OliveTin", "slug": "olivetin", "categories": [ - 15 + 10 ], "date_created": "2024-05-02", "type": "misc", diff --git a/json/omada.json b/json/omada.json index e38c25ac3..d9a61bfe5 100644 --- a/json/omada.json +++ b/json/omada.json @@ -2,7 +2,7 @@ "name": "Omada Controller", "slug": "omada", "categories": [ - 11 + 4 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/ombi.json b/json/ombi.json index def2443b1..9c27ae86a 100644 --- a/json/ombi.json +++ b/json/ombi.json @@ -2,7 +2,7 @@ "name": "Ombi", "slug": "ombi", "categories": [ - 12 + 14 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/omv.json b/json/omv.json index a2d759ddd..41fe9c20e 100644 --- a/json/omv.json +++ b/json/omv.json @@ -2,7 +2,7 @@ "name": "OpenMediaVault", "slug": "omv", "categories": [ - 12 + 2 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/onedev.json b/json/onedev.json index 3fafa03c3..12bc3a4a0 100644 --- a/json/onedev.json +++ b/json/onedev.json @@ -2,7 +2,7 @@ "name": "OneDev", "slug": "onedev", "categories": [ - 3 + 20 ], "date_created": "2024-11-30", "type": "ct", diff --git a/json/opengist.json b/json/opengist.json index a5b0e72db..0d285a9a2 100644 --- a/json/opengist.json +++ b/json/opengist.json @@ -2,7 +2,7 @@ "name": "Opengist", "slug": "opengist", "categories": [ - 3 + 20 ], "date_created": "2025-01-14", "type": "ct", diff --git a/json/openhab.json b/json/openhab.json index fdf53494d..7c5364ef0 100644 --- a/json/openhab.json +++ b/json/openhab.json @@ -2,7 +2,7 @@ "name": "openHAB", "slug": "openhab", "categories": [ - 3 + 16 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/openobserve.json b/json/openobserve.json index 6b8672d2d..231297e69 100644 --- a/json/openobserve.json +++ b/json/openobserve.json @@ -2,7 +2,7 @@ "name": "OpenObserve", "slug": "openobserve", "categories": [ - 7 + 9 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/openwebui.json b/json/openwebui.json index bcc5030ee..4bc958b34 100644 --- a/json/openwebui.json +++ b/json/openwebui.json @@ -2,7 +2,7 @@ "name": "Open WebUI", "slug": "openwebui", "categories": [ - 19 + 20 ], "date_created": "2024-10-24", "type": "ct", diff --git a/json/openwrt.json b/json/openwrt.json index 4450acab5..4c7669a4c 100644 --- a/json/openwrt.json +++ b/json/openwrt.json @@ -2,7 +2,7 @@ "name": "OpenWrt", "slug": "openwrt", "categories": [ - 11 + 2 ], "date_created": "2024-05-02", "type": "vm", diff --git a/json/overseerr.json b/json/overseerr.json index 58d60a696..a2983d6d5 100644 --- a/json/overseerr.json +++ b/json/overseerr.json @@ -2,7 +2,7 @@ "name": "Overseerr", "slug": "overseerr", "categories": [ - 12 + 14 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/owncast.json b/json/owncast.json index bbb6fe75f..91f573d8d 100644 --- a/json/owncast.json +++ b/json/owncast.json @@ -2,7 +2,7 @@ "name": "Owncast", "slug": "owncast", "categories": [ - 12 + 13 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/owncloud-vm.json b/json/owncloud-vm.json index 40066ecac..01d6019e7 100644 --- a/json/owncloud-vm.json +++ b/json/owncloud-vm.json @@ -2,7 +2,7 @@ "name": "ownCloud", "slug": "owncloud-vm", "categories": [ - 12 + 1 ], "date_created": "2024-05-02", "type": "vm", diff --git a/json/pairdrop.json b/json/pairdrop.json index b1c86d38e..b72bbb60d 100644 --- a/json/pairdrop.json +++ b/json/pairdrop.json @@ -2,7 +2,7 @@ "name": "PairDrop", "slug": "pairdrop", "categories": [ - 16 + 11 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/paperless-ngx.json b/json/paperless-ngx.json index d88a655ac..85eb6ea85 100644 --- a/json/paperless-ngx.json +++ b/json/paperless-ngx.json @@ -2,7 +2,7 @@ "name": "Paperless-ngx", "slug": "paperless-ngx", "categories": [ - 14 + 12 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/part-db.json b/json/part-db.json index a48f91570..fe5a1f2f4 100644 --- a/json/part-db.json +++ b/json/part-db.json @@ -2,7 +2,7 @@ "name": "Part-DB", "slug": "part-db", "categories": [ - 0 + 28 ], "date_created": "2024-12-18", "type": "ct", diff --git a/json/pbs.json b/json/pbs.json index 848ff9131..1ec913322 100644 --- a/json/pbs.json +++ b/json/pbs.json @@ -2,7 +2,7 @@ "name": "Proxmox Backup Server", "slug": "pbs", "categories": [ - 11 + 7 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/peanut.json b/json/peanut.json index 7a341e4e4..68699b2d7 100644 --- a/json/peanut.json +++ b/json/peanut.json @@ -2,7 +2,7 @@ "name": "PeaNUT", "slug": "peanut", "categories": [ - 7 + 4 ], "date_created": "2024-06-14", "type": "ct", diff --git a/json/petio.json b/json/petio.json index 748801645..cd34d5e2a 100644 --- a/json/petio.json +++ b/json/petio.json @@ -2,7 +2,7 @@ "name": "Petio", "slug": "petio", "categories": [ - 12 + 14 ], "date_created": "2024-06-12", "type": "ct", diff --git a/json/pf2etools.json b/json/pf2etools.json index d50aa5fe3..f4e0856f9 100644 --- a/json/pf2etools.json +++ b/json/pf2etools.json @@ -2,7 +2,7 @@ "name": "Pf2eTools", "slug": "Pf2eTools", "categories": [ - 0 + 24 ], "date_created": "2025-01-02", "type": "ct", diff --git a/json/photoprism.json b/json/photoprism.json index 9d7bb13f2..42a15c3c9 100644 --- a/json/photoprism.json +++ b/json/photoprism.json @@ -2,7 +2,7 @@ "name": "PhotoPrism", "slug": "photoprism", "categories": [ - 12 + 13 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/phpipam.json b/json/phpipam.json index 4d7d3e508..c98b33039 100644 --- a/json/phpipam.json +++ b/json/phpipam.json @@ -2,7 +2,6 @@ "name": "phpIPAM", "slug": "phpipam", "categories": [ - 11 ], "date_created": "2025-01-15", "type": "ct", diff --git a/json/pialert.json b/json/pialert.json index 5fee472be..ad59b92ec 100644 --- a/json/pialert.json +++ b/json/pialert.json @@ -2,7 +2,7 @@ "name": "Pi.Alert", "slug": "pialert", "categories": [ - 7 + 6 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/pihole.json b/json/pihole.json index c85899c92..a11a33903 100644 --- a/json/pihole.json +++ b/json/pihole.json @@ -2,7 +2,7 @@ "name": "Pi-Hole", "slug": "pihole", "categories": [ - 13 + 5 ], "date_created": "2024-04-28", "type": "ct", diff --git a/json/pimox-haos-vm.json b/json/pimox-haos-vm.json index 73f30fe78..729668a74 100644 --- a/json/pimox-haos-vm.json +++ b/json/pimox-haos-vm.json @@ -2,7 +2,7 @@ "name": "PiMox HAOS", "slug": "pimox-haos-vm", "categories": [ - 2 + 1 ], "date_created": "2024-04-29", "type": "vm", diff --git a/json/pingvin.json b/json/pingvin.json index 704fe4c40..755f3cde8 100644 --- a/json/pingvin.json +++ b/json/pingvin.json @@ -2,7 +2,7 @@ "name": "Pingvin Share", "slug": "pingvin", "categories": [ - 16 + 25 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/plex.json b/json/plex.json index d50db7cd2..5d86353a1 100644 --- a/json/plex.json +++ b/json/plex.json @@ -2,7 +2,7 @@ "name": "Plex Media Server", "slug": "plex", "categories": [ - 12 + 13 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/pocketbase.json b/json/pocketbase.json index 0d3b11082..72ceb5b5d 100644 --- a/json/pocketbase.json +++ b/json/pocketbase.json @@ -2,7 +2,7 @@ "name": "Pocketbase", "slug": "pocketbase", "categories": [ - 5 + 28 ], "date_created": "2024-05-07", "type": "ct", diff --git a/json/podman-homeassistant.json b/json/podman-homeassistant.json index 124da0b97..cf3e86844 100644 --- a/json/podman-homeassistant.json +++ b/json/podman-homeassistant.json @@ -2,7 +2,7 @@ "name": "Podman Home Assistant Container", "slug": "podman-homeassistant", "categories": [ - 2 + 3 ], "date_created": "2024-04-29", "type": "ct", diff --git a/json/podman.json b/json/podman.json index c9eb4d662..d995ffdcc 100644 --- a/json/podman.json +++ b/json/podman.json @@ -2,7 +2,7 @@ "name": "Podman", "slug": "podman", "categories": [ - 8 + 3 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/post-pbs-install.json b/json/post-pbs-install.json index 3d8f6cd93..b4f4bc4ea 100644 --- a/json/post-pbs-install.json +++ b/json/post-pbs-install.json @@ -2,7 +2,7 @@ "name": "Proxmox Backup Server Post Install", "slug": "post-pbs-install", "categories": [ - 1 + 7 ], "date_created": "2024-04-29", "type": "misc", diff --git a/json/post-pmg-install.json b/json/post-pmg-install.json index 2924d51f9..3db0c1277 100644 --- a/json/post-pmg-install.json +++ b/json/post-pmg-install.json @@ -2,7 +2,6 @@ "name": "Proxmox Mail Gateway Post Install", "slug": "post-pmg-install", "categories": [ - 1 ], "date_created": "2025-01-20", "type": "misc", diff --git a/json/postgresql.json b/json/postgresql.json index 6fe236d14..ca48964cd 100644 --- a/json/postgresql.json +++ b/json/postgresql.json @@ -2,7 +2,7 @@ "name": "PostgreSQL", "slug": "postgresql", "categories": [ - 5 + 8 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/prometheus-alertmanager.json b/json/prometheus-alertmanager.json index d6b0cda58..31c5ebbfd 100644 --- a/json/prometheus-alertmanager.json +++ b/json/prometheus-alertmanager.json @@ -2,7 +2,7 @@ "name": "Prometheus Alertmanager", "slug": "prometheus-alertmanager", "categories": [ - 7 + 9 ], "date_created": "2025-01-09", "type": "ct", diff --git a/json/prometheus.json b/json/prometheus.json index b0c5ed483..f7dba6db8 100644 --- a/json/prometheus.json +++ b/json/prometheus.json @@ -2,7 +2,7 @@ "name": "Prometheus", "slug": "prometheus", "categories": [ - 7 + 9 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/prowlarr.json b/json/prowlarr.json index 3be672df2..560922834 100644 --- a/json/prowlarr.json +++ b/json/prowlarr.json @@ -2,7 +2,7 @@ "name": "Prowlarr", "slug": "prowlarr", "categories": [ - 18 + 14 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/proxmox-datacenter-manager.json b/json/proxmox-datacenter-manager.json index a9a1234ab..f7417f386 100644 --- a/json/proxmox-datacenter-manager.json +++ b/json/proxmox-datacenter-manager.json @@ -2,7 +2,7 @@ "name": "Proxmox Datacenter Manager", "slug": "proxmox-datacenter-manager", "categories": [ - 1 + 1 ], "date_created": "2024-12-25", "type": "ct", diff --git a/json/ps5-mqtt.json b/json/ps5-mqtt.json index 6151a7486..861958384 100644 --- a/json/ps5-mqtt.json +++ b/json/ps5-mqtt.json @@ -2,7 +2,7 @@ "name": "PS5-MQTT", "slug": "ps5-mqtt", "categories": [ - 3 + 18 ], "date_created": "2025-01-09", "type": "ct", diff --git a/json/qbittorrent.json b/json/qbittorrent.json index b360a65d0..eb92beb07 100644 --- a/json/qbittorrent.json +++ b/json/qbittorrent.json @@ -2,7 +2,7 @@ "name": "qBittorrent", "slug": "qbittorrent", "categories": [ - 16 + 11 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/rabbitmq.json b/json/rabbitmq.json index 3029bea8f..ab9b9c8d3 100644 --- a/json/rabbitmq.json +++ b/json/rabbitmq.json @@ -2,7 +2,7 @@ "name": "RabbitMQ", "slug": "rabbitmq", "categories": [ - 4 + 18 ], "date_created": "2024-06-27", "type": "ct", diff --git a/json/radarr.json b/json/radarr.json index f64912019..b7c6a0fe2 100644 --- a/json/radarr.json +++ b/json/radarr.json @@ -2,7 +2,7 @@ "name": "Radarr", "slug": "radarr", "categories": [ - 18 + 14 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/rdtclient.json b/json/rdtclient.json index 54a718bdd..983e95e46 100644 --- a/json/rdtclient.json +++ b/json/rdtclient.json @@ -2,7 +2,7 @@ "name": "Real-Debrid Torrent Client", "slug": "rdtclient", "categories": [ - 16 + 11 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/readarr.json b/json/readarr.json index 3cbacf41c..7ac0706e0 100644 --- a/json/readarr.json +++ b/json/readarr.json @@ -2,7 +2,7 @@ "name": "Readarr", "slug": "readarr", "categories": [ - 18 + 14 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/readeck.json b/json/readeck.json index 447cb23c1..0bede05b9 100644 --- a/json/readeck.json +++ b/json/readeck.json @@ -2,7 +2,7 @@ "name": "Readeck", "slug": "readeck", "categories": [ - 0 + 12 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/recyclarr.json b/json/recyclarr.json index 4ec590296..7dc92d456 100644 --- a/json/recyclarr.json +++ b/json/recyclarr.json @@ -2,7 +2,7 @@ "name": "Recyclarr", "slug": "recyclarr", "categories": [ - 18 + 14 ], "date_created": "2024-11-15", "type": "ct", diff --git a/json/redis.json b/json/redis.json index 4092d82e8..099ddfd4e 100644 --- a/json/redis.json +++ b/json/redis.json @@ -2,7 +2,7 @@ "name": "Redis ", "slug": "redis", "categories": [ - 5 + 8 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/rtsptoweb.json b/json/rtsptoweb.json index 33f2f3812..4637d29b4 100644 --- a/json/rtsptoweb.json +++ b/json/rtsptoweb.json @@ -2,7 +2,7 @@ "name": "RTSPtoWeb", "slug": "rtsptoweb", "categories": [ - 0 + 15 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/runtipi.json b/json/runtipi.json index d77dee5b5..d4d99f154 100644 --- a/json/runtipi.json +++ b/json/runtipi.json @@ -2,7 +2,7 @@ "name": "Runtipi", "slug": "runtipi", "categories": [ - 8 + 2 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/sabnzbd.json b/json/sabnzbd.json index ae6ebf43b..233397abb 100644 --- a/json/sabnzbd.json +++ b/json/sabnzbd.json @@ -2,7 +2,7 @@ "name": "SABnzbd", "slug": "sabnzbd", "categories": [ - 16 + 11 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/scaling-governor.json b/json/scaling-governor.json index 0a18987f0..d3adb28d1 100644 --- a/json/scaling-governor.json +++ b/json/scaling-governor.json @@ -2,7 +2,7 @@ "name": "Proxmox VE CPU Scaling Governor", "slug": "scaling-governor", "categories": [ - 1 + 2 ], "date_created": "2024-04-29", "type": "misc", diff --git a/json/semaphore.json b/json/semaphore.json index 057fe6ce4..d839790fc 100644 --- a/json/semaphore.json +++ b/json/semaphore.json @@ -2,7 +2,7 @@ "name": "Semaphore", "slug": "semaphore", "categories": [ - 7 + 19 ], "date_created": "2025-01-01", "type": "ct", diff --git a/json/sftpgo.json b/json/sftpgo.json index 4bddf09de..fd338c781 100644 --- a/json/sftpgo.json +++ b/json/sftpgo.json @@ -2,7 +2,7 @@ "name": "SFTPGo", "slug": "sftpgo", "categories": [ - 16 + 11 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/shinobi.json b/json/shinobi.json index 19fdf4b61..05d8970ab 100644 --- a/json/shinobi.json +++ b/json/shinobi.json @@ -2,7 +2,7 @@ "name": "Shinobi NVR", "slug": "shinobi", "categories": [ - 17 + 15 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/silverbullet.json b/json/silverbullet.json index fd82f0366..0c24ff578 100644 --- a/json/silverbullet.json +++ b/json/silverbullet.json @@ -2,7 +2,7 @@ "name": "Silverbullet", "slug": "silverbullet", "categories": [ - 14 + 12 ], "date_created": "2024-12-03", "type": "ct", diff --git a/json/smokeping.json b/json/smokeping.json index 63ccf722f..76d0e7347 100644 --- a/json/smokeping.json +++ b/json/smokeping.json @@ -2,7 +2,7 @@ "name": "SmokePing", "slug": "smokeping", "categories": [ - 7 + 9 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/snipeit.json b/json/snipeit.json index 61c09edb9..0cf665191 100644 --- a/json/snipeit.json +++ b/json/snipeit.json @@ -2,7 +2,7 @@ "name": "SnipeIT", "slug": "snipeit", "categories": [ - 8 + 28 ], "date_created": "2024-12-02", "type": "ct", diff --git a/json/sonarr.json b/json/sonarr.json index 3af4f8e32..4339c7823 100644 --- a/json/sonarr.json +++ b/json/sonarr.json @@ -2,7 +2,7 @@ "name": "Sonarr", "slug": "sonarr", "categories": [ - 18 + 14 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/spoolman.json b/json/spoolman.json index 539fb4be1..8c8af61e1 100644 --- a/json/spoolman.json +++ b/json/spoolman.json @@ -2,7 +2,7 @@ "name": "Spoolman", "slug": "spoolman", "categories": [ - 0 + 16 ], "date_created": "2024-06-13", "type": "ct", diff --git a/json/stirling-pdf.json b/json/stirling-pdf.json index 625225498..83219e292 100644 --- a/json/stirling-pdf.json +++ b/json/stirling-pdf.json @@ -2,7 +2,7 @@ "name": "Stirling-PDF", "slug": "stirling-pdf", "categories": [ - 14 + 12 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/syncthing.json b/json/syncthing.json index a82149600..e0239b7a9 100644 --- a/json/syncthing.json +++ b/json/syncthing.json @@ -2,7 +2,7 @@ "name": "Syncthing", "slug": "syncthing", "categories": [ - 16 + 11 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/tandoor.json b/json/tandoor.json index 8ddee4652..ca7b6accb 100644 --- a/json/tandoor.json +++ b/json/tandoor.json @@ -2,7 +2,7 @@ "name": "Tandoor Recipes", "slug": "tandoor", "categories": [ - 0 + 12 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/tasmoadmin.json b/json/tasmoadmin.json index 5ecfd95a4..58c44e25e 100644 --- a/json/tasmoadmin.json +++ b/json/tasmoadmin.json @@ -2,7 +2,7 @@ "name": "TasmoAdmin", "slug": "tasmoadmin", "categories": [ - 0 + 16 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/tautulli.json b/json/tautulli.json index 0e677d8a6..2e3f4f69f 100644 --- a/json/tautulli.json +++ b/json/tautulli.json @@ -2,7 +2,7 @@ "name": "Tautulli", "slug": "tautulli", "categories": [ - 12 + 13 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/tdarr.json b/json/tdarr.json index 1e93f2a98..26d523671 100644 --- a/json/tdarr.json +++ b/json/tdarr.json @@ -2,7 +2,7 @@ "name": "Tdarr", "slug": "tdarr", "categories": [ - 18 + 13 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/technitiumdns.json b/json/technitiumdns.json index f7f9b924d..609f6ce8c 100644 --- a/json/technitiumdns.json +++ b/json/technitiumdns.json @@ -2,7 +2,7 @@ "name": "Technitium DNS", "slug": "technitiumdns", "categories": [ - 13 + 5 ], "date_created": "2024-04-28", "type": "ct", diff --git a/json/teddycloud.json b/json/teddycloud.json index 2217c585f..a807317a7 100644 --- a/json/teddycloud.json +++ b/json/teddycloud.json @@ -2,7 +2,7 @@ "name": "TeddyCloud", "slug": "teddycloud", "categories": [ - 12 + 13 ], "date_created": "2024-12-28", "type": "ct", diff --git a/json/the-lounge.json b/json/the-lounge.json index 1733da7d5..46c865549 100644 --- a/json/the-lounge.json +++ b/json/the-lounge.json @@ -2,7 +2,7 @@ "name": "The Lounge", "slug": "the-lounge", "categories": [ - 0 + 22 ], "date_created": "2024-11-28", "type": "ct", diff --git a/json/threadfin.json b/json/threadfin.json index bf5685666..d7efda799 100644 --- a/json/threadfin.json +++ b/json/threadfin.json @@ -2,7 +2,7 @@ "name": "Threadfin", "slug": "threadfin", "categories": [ - 12 + 13 ], "date_created": "2024-06-12", "type": "ct", diff --git a/json/tianji.json b/json/tianji.json index 33a238d2c..a0402e227 100644 --- a/json/tianji.json +++ b/json/tianji.json @@ -2,7 +2,7 @@ "name": "Tianji", "slug": "tianji", "categories": [ - 7 + 25 ], "date_created": "2024-09-14", "type": "ct", diff --git a/json/traccar.json b/json/traccar.json index 91075f551..f845bdfa3 100644 --- a/json/traccar.json +++ b/json/traccar.json @@ -2,7 +2,7 @@ "name": "Traccar", "slug": "traccar", "categories": [ - 0 + 16 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/traefik.json b/json/traefik.json index 75412dff1..80fa93574 100644 --- a/json/traefik.json +++ b/json/traefik.json @@ -2,7 +2,7 @@ "name": "Traefik", "slug": "traefik", "categories": [ - 11 + 21 ], "date_created": "2024-05-20", "type": "ct", diff --git a/json/transmission.json b/json/transmission.json index 6bdafec7d..e7c7efad8 100644 --- a/json/transmission.json +++ b/json/transmission.json @@ -2,7 +2,7 @@ "name": "Transmission", "slug": "transmission", "categories": [ - 16 + 11 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/trilium.json b/json/trilium.json index 4dd8686a3..c937cc613 100644 --- a/json/trilium.json +++ b/json/trilium.json @@ -2,7 +2,7 @@ "name": "Trilium", "slug": "trilium", "categories": [ - 14 + 12 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/turnkey.json b/json/turnkey.json index 12173eabc..91aa6bbec 100644 --- a/json/turnkey.json +++ b/json/turnkey.json @@ -2,7 +2,7 @@ "name": "TurnKey", "slug": "turnkey", "categories": [ - 10 + 2 ], "date_created": "2024-05-02", "type": "turnkey", diff --git a/json/typesense.json b/json/typesense.json index 53f596c99..61f35efad 100644 --- a/json/typesense.json +++ b/json/typesense.json @@ -2,7 +2,7 @@ "name": "TypeSense", "slug": "typesense", "categories": [ - 5 + 20 ], "date_created": "2025-01-06", "type": "ct", diff --git a/json/ubuntu.json b/json/ubuntu.json index 6822bebd3..2825c7511 100644 --- a/json/ubuntu.json +++ b/json/ubuntu.json @@ -2,7 +2,7 @@ "name": "Ubuntu", "slug": "ubuntu", "categories": [ - 9 + 2 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/ubuntu2204-vm.json b/json/ubuntu2204-vm.json index ed020483d..48dba915d 100644 --- a/json/ubuntu2204-vm.json +++ b/json/ubuntu2204-vm.json @@ -2,7 +2,7 @@ "name": "Ubuntu 22.04", "slug": "ubuntu2204-vm", "categories": [ - 9 + 1 ], "date_created": "2024-05-02", "type": "vm", diff --git a/json/ubuntu2404-vm.json b/json/ubuntu2404-vm.json index df4c71c62..64795d549 100644 --- a/json/ubuntu2404-vm.json +++ b/json/ubuntu2404-vm.json @@ -2,7 +2,7 @@ "name": "Ubuntu 24.04", "slug": "ubuntu2404-vm", "categories": [ - 9 + 1 ], "date_created": "2024-05-02", "type": "vm", diff --git a/json/umami.json b/json/umami.json index 8c788ba8f..e2d95ac2a 100644 --- a/json/umami.json +++ b/json/umami.json @@ -2,7 +2,7 @@ "name": "Umami", "slug": "umami", "categories": [ - 7 + 9 ], "date_created": "2024-05-09", "type": "ct", diff --git a/json/unbound.json b/json/unbound.json index 437afdd44..b6ec1d828 100644 --- a/json/unbound.json +++ b/json/unbound.json @@ -2,7 +2,7 @@ "name": "Unbound", "slug": "unbound", "categories": [ - 13 + 5 ], "date_created": "2024-12-02", "type": "ct", diff --git a/json/unifi.json b/json/unifi.json index 0cc450881..eaddbc2ee 100644 --- a/json/unifi.json +++ b/json/unifi.json @@ -2,7 +2,7 @@ "name": "UniFi Network Server", "slug": "unifi", "categories": [ - 11 + 4 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/unmanic.json b/json/unmanic.json index e218f8916..4a167e1f0 100644 --- a/json/unmanic.json +++ b/json/unmanic.json @@ -2,7 +2,7 @@ "name": "Unmanic", "slug": "unmanic", "categories": [ - 12 + 13 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/update-repo.json b/json/update-repo.json index 9cfc55018..669843075 100644 --- a/json/update-repo.json +++ b/json/update-repo.json @@ -2,7 +2,7 @@ "name": "Proxmox Update Repositories", "slug": "update-repo", "categories": [ - 1 + 25 ], "date_created": "2024-11-04", "type": "misc", diff --git a/json/uptimekuma.json b/json/uptimekuma.json index fe9375910..02dd5d2b2 100644 --- a/json/uptimekuma.json +++ b/json/uptimekuma.json @@ -2,7 +2,7 @@ "name": "Uptime Kuma", "slug": "uptimekuma", "categories": [ - 7 + 9 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/vaultwarden.json b/json/vaultwarden.json index d36cffbf3..6fa5ac687 100644 --- a/json/vaultwarden.json +++ b/json/vaultwarden.json @@ -2,7 +2,7 @@ "name": "Vaultwarden", "slug": "vaultwarden", "categories": [ - 0 + 6 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/vikunja.json b/json/vikunja.json index 1203c0f3b..d6c58b8fa 100644 --- a/json/vikunja.json +++ b/json/vikunja.json @@ -2,7 +2,7 @@ "name": "Vikunja", "slug": "vikunja", "categories": [ - 14 + 12 ], "date_created": "2024-11-05", "type": "ct", diff --git a/json/wallos.json b/json/wallos.json index 82de7a3a9..b04ff5b1e 100644 --- a/json/wallos.json +++ b/json/wallos.json @@ -2,7 +2,7 @@ "name": "Wallos", "slug": "wallos", "categories": [ - 0 + 2 ], "date_created": "2024-10-24", "type": "ct", diff --git a/json/wastebin.json b/json/wastebin.json index 15bdb9b23..9cc337f43 100644 --- a/json/wastebin.json +++ b/json/wastebin.json @@ -2,7 +2,7 @@ "name": "Wastebin", "slug": "wastebin", "categories": [ - 0 + 25 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/watchyourlan.json b/json/watchyourlan.json index 5d7a537d1..e0e7a6d60 100644 --- a/json/watchyourlan.json +++ b/json/watchyourlan.json @@ -2,7 +2,7 @@ "name": "WatchYourLAN", "slug": "watchyourlan", "categories": [ - 7 + 4 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/wavelog.json b/json/wavelog.json index 990a36a82..a8f9ced4b 100644 --- a/json/wavelog.json +++ b/json/wavelog.json @@ -2,7 +2,7 @@ "name": "Wavelog", "slug": "wavelog", "categories": [ - 0 + 9 ], "date_created": "2024-11-12", "type": "ct", diff --git a/json/webmin.json b/json/webmin.json index 3b5694b86..009178416 100644 --- a/json/webmin.json +++ b/json/webmin.json @@ -2,7 +2,7 @@ "name": "Webmin System Administration", "slug": "webmin", "categories": [ - 11 + 2 ], "date_created": "2024-05-02", "type": "misc", diff --git a/json/whisparr.json b/json/whisparr.json index 6aa5a395e..c2b2a8bff 100644 --- a/json/whisparr.json +++ b/json/whisparr.json @@ -2,7 +2,7 @@ "name": "Whisparr", "slug": "whisparr", "categories": [ - 18 + 14 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/whoogle.json b/json/whoogle.json index 9ae032800..f97fed387 100644 --- a/json/whoogle.json +++ b/json/whoogle.json @@ -2,7 +2,7 @@ "name": "Whoogle", "slug": "whoogle", "categories": [ - 0 + 25 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/wikijs.json b/json/wikijs.json index 3c27ec099..dc719cdeb 100644 --- a/json/wikijs.json +++ b/json/wikijs.json @@ -2,7 +2,7 @@ "name": "Wiki.js", "slug": "wikijs", "categories": [ - 14 + 12 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/wireguard.json b/json/wireguard.json index 9836bebfa..c1e770fa0 100644 --- a/json/wireguard.json +++ b/json/wireguard.json @@ -2,7 +2,7 @@ "name": "WireGuard", "slug": "wireguard", "categories": [ - 11 + 4 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/wordpress.json b/json/wordpress.json index b82f0c567..2b44a3c57 100644 --- a/json/wordpress.json +++ b/json/wordpress.json @@ -2,7 +2,7 @@ "name": "Wordpress", "slug": "wordpress", "categories": [ - 14 + 21 ], "date_created": "2025-01-14", "type": "ct", diff --git a/json/yunohost.json b/json/yunohost.json index 30d8534e9..1060cebcd 100644 --- a/json/yunohost.json +++ b/json/yunohost.json @@ -2,7 +2,7 @@ "name": "YunoHost", "slug": "yunohost", "categories": [ - 11 + 2 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/zabbix.json b/json/zabbix.json index 902d06f5e..d0261c28b 100644 --- a/json/zabbix.json +++ b/json/zabbix.json @@ -2,7 +2,7 @@ "name": "Zabbix", "slug": "zabbix", "categories": [ - 7 + 9 ], "date_created": "2024-06-12", "type": "ct", diff --git a/json/zammad.json b/json/zammad.json index 1e6f5a96d..6470e86b5 100644 --- a/json/zammad.json +++ b/json/zammad.json @@ -2,7 +2,7 @@ "name": "Zammad", "slug": "zammad", "categories": [ - 11 + 28 ], "date_created": "2024-12-18", "type": "ct", diff --git a/json/zigbee2mqtt.json b/json/zigbee2mqtt.json index 8c63139be..5a8207d7b 100644 --- a/json/zigbee2mqtt.json +++ b/json/zigbee2mqtt.json @@ -2,7 +2,7 @@ "name": "Zigbee2MQTT", "slug": "zigbee2mqtt", "categories": [ - 6 + 17 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/zipline.json b/json/zipline.json index c377cefae..b1d045e91 100644 --- a/json/zipline.json +++ b/json/zipline.json @@ -2,7 +2,7 @@ "name": "Zipline", "slug": "zipline", "categories": [ - 16 + 11 ], "date_created": "2024-09-16", "type": "ct", diff --git a/json/zoraxy.json b/json/zoraxy.json index e777afb32..272526a56 100644 --- a/json/zoraxy.json +++ b/json/zoraxy.json @@ -2,7 +2,7 @@ "name": "Zoraxy", "slug": "zoraxy", "categories": [ - 11 + 4 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/zwave-js-ui.json b/json/zwave-js-ui.json index 128b5a2f5..daf8933e4 100644 --- a/json/zwave-js-ui.json +++ b/json/zwave-js-ui.json @@ -2,7 +2,7 @@ "name": "Z-Wave JS UI", "slug": "zwave-js-ui", "categories": [ - 6 + 17 ], "date_created": "2024-05-02", "type": "ct", From 76362f4ede0f70af33786702e799f834b0603765 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Mon, 20 Jan 2025 11:42:55 +0100 Subject: [PATCH 014/284] Update ubuntu2204-vm.json --- json/ubuntu2204-vm.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/json/ubuntu2204-vm.json b/json/ubuntu2204-vm.json index 48dba915d..de4d1550e 100644 --- a/json/ubuntu2204-vm.json +++ b/json/ubuntu2204-vm.json @@ -2,7 +2,7 @@ "name": "Ubuntu 22.04", "slug": "ubuntu2204-vm", "categories": [ - 1 + 2 ], "date_created": "2024-05-02", "type": "vm", @@ -31,4 +31,4 @@ "password": null }, "notes": [] -} \ No newline at end of file +} From 2173728316f981a38cf3d4ec3bf0c347769e95fc Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Mon, 20 Jan 2025 11:43:01 +0100 Subject: [PATCH 015/284] Update ubuntu2404-vm.json --- json/ubuntu2404-vm.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/json/ubuntu2404-vm.json b/json/ubuntu2404-vm.json index 64795d549..dbb7fa73e 100644 --- a/json/ubuntu2404-vm.json +++ b/json/ubuntu2404-vm.json @@ -2,7 +2,7 @@ "name": "Ubuntu 24.04", "slug": "ubuntu2404-vm", "categories": [ - 1 + 2 ], "date_created": "2024-05-02", "type": "vm", @@ -31,4 +31,4 @@ "password": null }, "notes": [] -} \ No newline at end of file +} From bc135d70abcc5dec9b0259e43ea703e3d543498e Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Mon, 20 Jan 2025 11:43:56 +0100 Subject: [PATCH 016/284] Update debian-vm.json --- json/debian-vm.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/json/debian-vm.json b/json/debian-vm.json index bc3cf1a1d..c2d3aab27 100644 --- a/json/debian-vm.json +++ b/json/debian-vm.json @@ -2,7 +2,7 @@ "name": "Debian 12", "slug": "debian-vm", "categories": [ - 1 + 2 ], "date_created": "2024-05-02", "type": "vm", From 5db657a66863f38a79c642fe040f0e477839c64e Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Mon, 20 Jan 2025 11:44:00 +0100 Subject: [PATCH 017/284] Update haos-vm.json --- json/haos-vm.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/json/haos-vm.json b/json/haos-vm.json index 8192fb65a..6fd325ecf 100644 --- a/json/haos-vm.json +++ b/json/haos-vm.json @@ -2,7 +2,7 @@ "name": "Home Assistant OS", "slug": "haos-vm", "categories": [ - 1 + 2 ], "date_created": "2024-04-29", "type": "vm", @@ -40,4 +40,4 @@ "type": "info" } ] -} \ No newline at end of file +} From 81e17c213718d95ea2dcabfc6b8541cf60fca17c Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Mon, 20 Jan 2025 11:44:05 +0100 Subject: [PATCH 018/284] Update nextcloud-vm.json --- json/nextcloud-vm.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/json/nextcloud-vm.json b/json/nextcloud-vm.json index 9c52fd79f..3bd500d75 100644 --- a/json/nextcloud-vm.json +++ b/json/nextcloud-vm.json @@ -2,7 +2,7 @@ "name": "Nextcloud", "slug": "nextcloud-vm", "categories": [ - 1 + 2 ], "date_created": "2023-11-14", "type": "vm", @@ -36,4 +36,4 @@ "type": "warning" } ] -} \ No newline at end of file +} From 5d322605682713df198bb9fe2ed02eb6aa6ff293 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Mon, 20 Jan 2025 11:44:09 +0100 Subject: [PATCH 019/284] Update owncloud-vm.json --- json/owncloud-vm.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/json/owncloud-vm.json b/json/owncloud-vm.json index 01d6019e7..c7b2175a3 100644 --- a/json/owncloud-vm.json +++ b/json/owncloud-vm.json @@ -2,7 +2,7 @@ "name": "ownCloud", "slug": "owncloud-vm", "categories": [ - 1 + 2 ], "date_created": "2024-05-02", "type": "vm", @@ -36,4 +36,4 @@ "type": "warning" } ] -} \ No newline at end of file +} From fe5f88f1407e39f1dcf006739d0e52d7cb578226 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Mon, 20 Jan 2025 11:44:14 +0100 Subject: [PATCH 020/284] Update pimox-haos-vm.json --- json/pimox-haos-vm.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/json/pimox-haos-vm.json b/json/pimox-haos-vm.json index 729668a74..82ab65677 100644 --- a/json/pimox-haos-vm.json +++ b/json/pimox-haos-vm.json @@ -2,7 +2,7 @@ "name": "PiMox HAOS", "slug": "pimox-haos-vm", "categories": [ - 1 + 2 ], "date_created": "2024-04-29", "type": "vm", @@ -36,4 +36,4 @@ "type": "info" } ] -} \ No newline at end of file +} From f2935e9f60346e6d8949558acf838e04822cbd7b Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Mon, 20 Jan 2025 11:45:05 +0100 Subject: [PATCH 021/284] Update kernel-clean.json --- json/kernel-clean.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/json/kernel-clean.json b/json/kernel-clean.json index 1524726ca..71509f85b 100644 --- a/json/kernel-clean.json +++ b/json/kernel-clean.json @@ -2,7 +2,7 @@ "name": "Proxmox VE Kernel Clean", "slug": "kernel-clean", "categories": [ - 2 + 1 ], "date_created": "2024-04-29", "type": "misc", @@ -36,4 +36,4 @@ "type": "info" } ] -} \ No newline at end of file +} From 2a74f53b14bdfa7530ae125bdc674dc153a5a4e2 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Mon, 20 Jan 2025 11:45:11 +0100 Subject: [PATCH 022/284] Update kernel-pin.json --- json/kernel-pin.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/json/kernel-pin.json b/json/kernel-pin.json index 2153c8952..a199d4478 100644 --- a/json/kernel-pin.json +++ b/json/kernel-pin.json @@ -2,7 +2,7 @@ "name": "Proxmox VE Kernel Pin", "slug": "kernel-pin", "categories": [ - 2 + 1 ], "date_created": "2024-05-08", "type": "misc", @@ -36,4 +36,4 @@ "type": "info" } ] -} \ No newline at end of file +} From 6031f99b58adcc4a56fbea097d092cabe56e65f2 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Mon, 20 Jan 2025 11:45:18 +0100 Subject: [PATCH 023/284] Update fstrim.json --- json/fstrim.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/json/fstrim.json b/json/fstrim.json index 00eb04f3d..1196fc913 100644 --- a/json/fstrim.json +++ b/json/fstrim.json @@ -2,7 +2,7 @@ "name": "Proxmox VE LXC Filesystem Trim", "slug": "fstrim", "categories": [ - 2 + 1 ], "date_created": "2024-04-29", "type": "misc", @@ -40,4 +40,4 @@ "type": "warning" } ] -} \ No newline at end of file +} From b409c3ac72b331a2b26eaad4a71cda5bd93d1e4c Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Mon, 20 Jan 2025 11:48:53 +0100 Subject: [PATCH 024/284] Update microcode.json --- json/microcode.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/json/microcode.json b/json/microcode.json index 589db3b95..10d3c6ff6 100644 --- a/json/microcode.json +++ b/json/microcode.json @@ -2,7 +2,7 @@ "name": "Proxmox VE Processor Microcode", "slug": "microcode", "categories": [ - 2 + 1 ], "date_created": "2024-04-29", "type": "misc", @@ -40,4 +40,4 @@ "type": "info" } ] -} \ No newline at end of file +} From 5dcfdc9607224785bef429988eb2d5cfc1c85474 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Mon, 20 Jan 2025 11:48:59 +0100 Subject: [PATCH 025/284] Update scaling-governor.json --- json/scaling-governor.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/json/scaling-governor.json b/json/scaling-governor.json index d3adb28d1..3c4be95b8 100644 --- a/json/scaling-governor.json +++ b/json/scaling-governor.json @@ -2,7 +2,7 @@ "name": "Proxmox VE CPU Scaling Governor", "slug": "scaling-governor", "categories": [ - 2 + 1 ], "date_created": "2024-04-29", "type": "misc", @@ -36,4 +36,4 @@ "type": "info" } ] -} \ No newline at end of file +} From 0a00eb74f2b7d54eb1c2c5d47abb87b80006ea19 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Mon, 20 Jan 2025 11:49:33 +0100 Subject: [PATCH 026/284] Update wallos.json --- json/wallos.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/json/wallos.json b/json/wallos.json index b04ff5b1e..be8648078 100644 --- a/json/wallos.json +++ b/json/wallos.json @@ -2,7 +2,7 @@ "name": "Wallos", "slug": "wallos", "categories": [ - 2 + 23 ], "date_created": "2024-10-24", "type": "ct", From d89ad6d29352667eda63522b56fd657015e1f540 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Mon, 20 Jan 2025 11:58:59 +0100 Subject: [PATCH 027/284] Update metadata.json --- json/metadata.json | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/json/metadata.json b/json/metadata.json index 0ba0aa9ba..3b21836ab 100644 --- a/json/metadata.json +++ b/json/metadata.json @@ -24,9 +24,7 @@ { "name": "Bots & ChatOps", "id": 22, "sort_order": 22.0 }, { "name": "Finance & Budgeting", "id": 23, "sort_order": 23.0 }, { "name": "Gaming & Leisure", "id": 24, "sort_order": 24.0 }, - { "name": "API Gateways & Microservices", "id": 26, "sort_order": 25.0 }, - { "name": "Email & Groupware", "id": 27, "sort_order": 26.0 }, - { "name": "Business & ERP", "id": 28, "sort_order": 27.0 }, + { "name": "Business & ERP", "id": 25, "sort_order": 25.0 }, { "name": "Miscellaneous", "id": 0, "sort_order": 99.0 } ] } From 4c5df518c7d756901684c219cd952e7dea51b8b0 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Mon, 20 Jan 2025 12:00:34 +0100 Subject: [PATCH 028/284] fix --- json/bunkerweb.json | 2 +- json/caddy.json | 2 +- json/ghost.json | 2 +- json/nginxproxymanager.json | 2 +- json/traefik.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/json/bunkerweb.json b/json/bunkerweb.json index 9269c8fdf..890aa29f5 100644 --- a/json/bunkerweb.json +++ b/json/bunkerweb.json @@ -2,7 +2,7 @@ "name": "BunkerWeb", "slug": "bunkerweb", "categories": [ - 21 + 25 ], "date_created": "2024-06-12", "type": "ct", diff --git a/json/caddy.json b/json/caddy.json index 9530b0301..9b41ea184 100644 --- a/json/caddy.json +++ b/json/caddy.json @@ -2,7 +2,7 @@ "name": "Caddy", "slug": "caddy", "categories": [ - 21 + 25 ], "date_created": "2024-05-11", "type": "ct", diff --git a/json/ghost.json b/json/ghost.json index 5f4fa4f08..7d3568c0f 100644 --- a/json/ghost.json +++ b/json/ghost.json @@ -2,7 +2,7 @@ "name": "Ghost", "slug": "ghost", "categories": [ - 21 + 25 ], "date_created": "2025-01-10", "type": "ct", diff --git a/json/nginxproxymanager.json b/json/nginxproxymanager.json index e1feb3d58..15d435ab2 100644 --- a/json/nginxproxymanager.json +++ b/json/nginxproxymanager.json @@ -2,7 +2,7 @@ "name": "Nginx Proxy Manager", "slug": "nginxproxymanager", "categories": [ - 21 + 25 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/traefik.json b/json/traefik.json index 80fa93574..a70044614 100644 --- a/json/traefik.json +++ b/json/traefik.json @@ -2,7 +2,7 @@ "name": "Traefik", "slug": "traefik", "categories": [ - 21 + 25 ], "date_created": "2024-05-20", "type": "ct", From 5a2a5b38854f8f65b25a6c03674d0c9d3c663898 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Mon, 20 Jan 2025 12:38:44 +0100 Subject: [PATCH 029/284] fix category --- json/glpi.json | 2 +- json/kimai.json | 2 +- json/nocodb.json | 2 +- json/part-db.json | 2 +- json/pocketbase.json | 2 +- json/snipeit.json | 2 +- json/zammad.json | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/json/glpi.json b/json/glpi.json index 245db6ac3..9de5223fe 100644 --- a/json/glpi.json +++ b/json/glpi.json @@ -2,7 +2,7 @@ "name": "GLPI", "slug": "glpi", "categories": [ - 28 + 0 ], "date_created": "2025-01-06", "type": "ct", diff --git a/json/kimai.json b/json/kimai.json index 011345341..15b470e01 100644 --- a/json/kimai.json +++ b/json/kimai.json @@ -2,7 +2,7 @@ "name": "Kimai", "slug": "kimai", "categories": [ - 28 + 25 ], "date_created": "2024-11-20", "type": "ct", diff --git a/json/nocodb.json b/json/nocodb.json index 2836103b2..b94b78264 100644 --- a/json/nocodb.json +++ b/json/nocodb.json @@ -2,7 +2,7 @@ "name": "NocoDB", "slug": "nocodb", "categories": [ - 28 + 25 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/part-db.json b/json/part-db.json index fe5a1f2f4..67d66bb3f 100644 --- a/json/part-db.json +++ b/json/part-db.json @@ -2,7 +2,7 @@ "name": "Part-DB", "slug": "part-db", "categories": [ - 28 + 25 ], "date_created": "2024-12-18", "type": "ct", diff --git a/json/pocketbase.json b/json/pocketbase.json index 72ceb5b5d..088cd5966 100644 --- a/json/pocketbase.json +++ b/json/pocketbase.json @@ -2,7 +2,7 @@ "name": "Pocketbase", "slug": "pocketbase", "categories": [ - 28 + 8 ], "date_created": "2024-05-07", "type": "ct", diff --git a/json/snipeit.json b/json/snipeit.json index 0cf665191..c12cd102d 100644 --- a/json/snipeit.json +++ b/json/snipeit.json @@ -2,7 +2,7 @@ "name": "SnipeIT", "slug": "snipeit", "categories": [ - 28 + 25 ], "date_created": "2024-12-02", "type": "ct", diff --git a/json/zammad.json b/json/zammad.json index 6470e86b5..379e71a4e 100644 --- a/json/zammad.json +++ b/json/zammad.json @@ -2,7 +2,7 @@ "name": "Zammad", "slug": "zammad", "categories": [ - 28 + 25 ], "date_created": "2024-12-18", "type": "ct", From 665014379efa2a4a0a076db0e046d9c731432651 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Mon, 20 Jan 2025 12:40:23 +0100 Subject: [PATCH 030/284] Update metadata.json --- json/metadata.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/json/metadata.json b/json/metadata.json index 3b21836ab..b9669c474 100644 --- a/json/metadata.json +++ b/json/metadata.json @@ -10,7 +10,7 @@ { "name": "Databases", "id": 8, "sort_order": 8.0 }, { "name": "Monitoring & Analytics", "id": 9, "sort_order": 9.0 }, { "name": "Dashboards & Frontends", "id": 10, "sort_order": 10.0 }, - { "name": "Files, Downloads & Torrents", "id": 11, "sort_order": 11.0 }, + { "name": "Files & Downloads", "id": 11, "sort_order": 11.0 }, { "name": "Documents & Notes", "id": 12, "sort_order": 12.0 }, { "name": "Media & Streaming", "id": 13, "sort_order": 13.0 }, { "name": "*Arr Suite", "id": 14, "sort_order": 14.0 }, @@ -20,7 +20,7 @@ { "name": "MQTT & Messaging", "id": 18, "sort_order": 18.0 }, { "name": "Automation & Scheduling", "id": 19, "sort_order": 19.0 }, { "name": "Coding & Dev Tools", "id": 20, "sort_order": 20.0 }, - { "name": "Web Servers & Reverse Proxies", "id": 21, "sort_order": 21.0 }, + { "name": "Webservers & Proxies", "id": 21, "sort_order": 21.0 }, { "name": "Bots & ChatOps", "id": 22, "sort_order": 22.0 }, { "name": "Finance & Budgeting", "id": 23, "sort_order": 23.0 }, { "name": "Gaming & Leisure", "id": 24, "sort_order": 24.0 }, From 41d45eb4ec5d3f35616c711b2dc17adc47b671b9 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Mon, 20 Jan 2025 12:41:20 +0100 Subject: [PATCH 031/284] Update metadata.json --- json/metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/json/metadata.json b/json/metadata.json index b9669c474..78ac3e87e 100644 --- a/json/metadata.json +++ b/json/metadata.json @@ -19,7 +19,7 @@ { "name": "ZigBee, Z-Wave & Matter", "id": 17, "sort_order": 17.0 }, { "name": "MQTT & Messaging", "id": 18, "sort_order": 18.0 }, { "name": "Automation & Scheduling", "id": 19, "sort_order": 19.0 }, - { "name": "Coding & Dev Tools", "id": 20, "sort_order": 20.0 }, + { "name": "AI / Coding & Dev-Tools", "id": 20, "sort_order": 20.0 }, { "name": "Webservers & Proxies", "id": 21, "sort_order": 21.0 }, { "name": "Bots & ChatOps", "id": 22, "sort_order": 22.0 }, { "name": "Finance & Budgeting", "id": 23, "sort_order": 23.0 }, From b789d982d9e82b474ef1ac2406bae20aa02f980c Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Mon, 20 Jan 2025 12:53:16 +0100 Subject: [PATCH 032/284] update website --- json/5etools.json | 2 +- json/actualbudget.json | 2 +- json/adventurelog.json | 2 +- json/agentdvr.json | 2 +- json/apache-cassandra.json | 2 +- json/apache-couchdb.json | 2 +- json/apache-guacamole.json | 2 +- json/archivebox.json | 2 +- json/aria2.json | 2 +- json/audiobookshelf.json | 2 +- json/autobrr.json | 2 +- json/bazarr.json | 2 +- json/bookstack.json | 2 +- json/bunkerweb.json | 2 +- json/caddy.json | 2 +- json/calibre-web.json | 2 +- json/changedetection.json | 2 +- json/channels.json | 2 +- json/checkmk.json | 2 +- json/cockpit.json | 2 +- json/code-server.json | 2 +- json/commafeed.json | 2 +- json/cronicle.json | 2 +- json/daemonsync.json | 2 +- json/dashy.json | 2 +- json/deconz.json | 2 +- json/deluge.json | 2 +- json/dotnetaspwebapi.json | 2 +- json/emby.json | 2 +- json/emqx.json | 2 +- json/ersatztv.json | 2 +- json/esphome.json | 2 +- json/evcc.json | 2 +- json/fenrus.json | 2 +- json/fhem.json | 2 +- json/filebrowser.json | 2 +- json/firefly.json | 2 +- json/flowiseai.json | 2 +- json/forgejo.json | 2 +- json/frigate.json | 2 +- json/ghost.json | 2 +- json/gitea.json | 2 +- json/glance.json | 2 +- json/glances.json | 2 +- json/go2rtc.json | 2 +- json/gokapi.json | 2 +- json/gotify.json | 2 +- json/grafana.json | 2 +- json/grist.json | 2 +- json/grocy.json | 2 +- json/heimdall-dashboard.json | 2 +- json/hivemq.json | 2 +- json/hoarder.json | 2 +- json/homarr.json | 2 +- json/homeassistant-core.json | 2 +- json/homeassistant.json | 2 +- json/homebox.json | 2 +- json/homebridge.json | 2 +- json/homepage.json | 2 +- json/homer.json | 1 + json/host-backup.json | 2 +- json/hyperhdr.json | 2 +- json/hyperion.json | 2 +- json/influxdb.json | 2 +- json/inspircd.json | 2 +- json/iobroker.json | 2 +- json/jackett.json | 2 +- json/jellyfin.json | 2 +- json/jellyseerr.json | 2 +- json/jenkins.json | 2 +- json/kavita.json | 2 +- json/kimai.json | 2 +- json/komga.json | 2 +- json/komodo.json | 2 +- json/kubo.json | 2 +- json/lazylibrarian.json | 2 +- json/lidarr.json | 2 +- json/linkwarden.json | 2 +- json/listmonk.json | 2 +- json/lubelogger.json | 2 +- json/mafl.json | 2 +- json/magicmirror.json | 2 +- json/mariadb.json | 2 +- json/matterbridge.json | 2 +- json/mediamtx.json | 2 +- json/medusa.json | 2 +- json/memos.json | 2 +- json/metube.json | 2 +- json/mongodb.json | 2 +- json/monitor-all.json | 2 +- json/motioneye.json | 2 +- json/mqtt.json | 2 +- json/mylar3.json | 2 +- json/mysql.json | 2 +- json/n8n.json | 2 +- json/navidrome.json | 2 +- json/neo4j.json | 2 +- json/netdata.json | 2 +- json/nextpvr.json | 2 +- json/nginxproxymanager.json | 2 +- json/nocodb.json | 2 +- json/node-red.json | 2 +- json/notifiarr.json | 2 +- json/ntfy.json | 2 +- json/nzbget.json | 2 +- json/octoprint.json | 2 +- json/olivetin.json | 2 +- json/ombi.json | 2 +- json/onedev.json | 2 +- json/opengist.json | 2 +- json/openhab.json | 2 +- json/openobserve.json | 2 +- json/openwebui.json | 2 +- json/overseerr.json | 2 +- json/owncast.json | 2 +- json/pairdrop.json | 2 +- json/paperless-ngx.json | 2 +- json/part-db.json | 2 +- json/pbs.json | 2 +- json/petio.json | 2 +- json/pf2etools.json | 2 +- json/photoprism.json | 2 +- json/phpipam.json | 1 + json/pingvin.json | 2 +- json/plex.json | 2 +- json/pocketbase.json | 2 +- json/post-pbs-install.json | 2 +- json/post-pmg-install.json | 87 ++++++++++++++++--------------- json/postgresql.json | 2 +- json/prometheus-alertmanager.json | 2 +- json/prometheus.json | 2 +- json/prowlarr.json | 2 +- json/ps5-mqtt.json | 2 +- json/qbittorrent.json | 2 +- json/rabbitmq.json | 2 +- json/radarr.json | 2 +- json/rdtclient.json | 2 +- json/readarr.json | 2 +- json/readeck.json | 2 +- json/recyclarr.json | 2 +- json/redis.json | 2 +- json/rtsptoweb.json | 2 +- json/sabnzbd.json | 2 +- json/semaphore.json | 2 +- json/sftpgo.json | 2 +- json/shinobi.json | 2 +- json/silverbullet.json | 2 +- json/smokeping.json | 2 +- json/snipeit.json | 2 +- json/sonarr.json | 2 +- json/spoolman.json | 2 +- json/stirling-pdf.json | 2 +- json/syncthing.json | 2 +- json/tandoor.json | 2 +- json/tasmoadmin.json | 2 +- json/tautulli.json | 2 +- json/tdarr.json | 2 +- json/teddycloud.json | 2 +- json/the-lounge.json | 2 +- json/threadfin.json | 2 +- json/tianji.json | 2 +- json/traccar.json | 2 +- json/traefik.json | 2 +- json/transmission.json | 2 +- json/trilium.json | 2 +- json/typesense.json | 2 +- json/umami.json | 2 +- json/unmanic.json | 2 +- json/update-repo.json | 2 +- json/uptimekuma.json | 2 +- json/vikunja.json | 2 +- json/wallos.json | 2 +- json/wastebin.json | 2 +- json/wavelog.json | 2 +- json/whisparr.json | 2 +- json/whoogle.json | 2 +- json/wikijs.json | 2 +- json/wordpress.json | 2 +- json/zabbix.json | 2 +- json/zammad.json | 2 +- json/zigbee2mqtt.json | 2 +- json/zipline.json | 2 +- json/zwave-js-ui.json | 2 +- 183 files changed, 226 insertions(+), 223 deletions(-) diff --git a/json/5etools.json b/json/5etools.json index 8c808d989..4753b0de2 100644 --- a/json/5etools.json +++ b/json/5etools.json @@ -2,7 +2,7 @@ "name": "5etools", "slug": "5etools", "categories": [ - 24 + 23 ], "date_created": "2025-01-02", "type": "ct", diff --git a/json/actualbudget.json b/json/actualbudget.json index b38de5a0a..89fe0a872 100644 --- a/json/actualbudget.json +++ b/json/actualbudget.json @@ -2,7 +2,7 @@ "name": "Actual Budget", "slug": "actualbudget", "categories": [ - 23 + 22 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/adventurelog.json b/json/adventurelog.json index 5596d6fb3..74a016f3c 100644 --- a/json/adventurelog.json +++ b/json/adventurelog.json @@ -2,7 +2,7 @@ "name": "AdventureLog", "slug": "adventurelog", "categories": [ - 24 + 23 ], "date_created": "2024-10-26", "type": "ct", diff --git a/json/agentdvr.json b/json/agentdvr.json index 7fbc19bf5..623d43723 100644 --- a/json/agentdvr.json +++ b/json/agentdvr.json @@ -2,7 +2,7 @@ "name": "AgentDVR", "slug": "agentdvr", "categories": [ - 15 + 14 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/apache-cassandra.json b/json/apache-cassandra.json index 6b9969a37..b3b644229 100644 --- a/json/apache-cassandra.json +++ b/json/apache-cassandra.json @@ -2,7 +2,7 @@ "name": "Apache-Cassandra", "slug": "apache-cassandra", "categories": [ - 8 + 7 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/apache-couchdb.json b/json/apache-couchdb.json index 5c711bf30..fd601aa89 100644 --- a/json/apache-couchdb.json +++ b/json/apache-couchdb.json @@ -2,7 +2,7 @@ "name": "Apache-CouchDB", "slug": "apache-couchdb", "categories": [ - 8 + 7 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/apache-guacamole.json b/json/apache-guacamole.json index c6b4ea0b8..254cd233d 100644 --- a/json/apache-guacamole.json +++ b/json/apache-guacamole.json @@ -2,7 +2,7 @@ "name": "Apache Guacamole", "slug": "apache-guacamole", "categories": [ - 21 + 20 ], "date_created": "2024-12-19", "type": "ct", diff --git a/json/archivebox.json b/json/archivebox.json index ab1cfa995..cca3cf806 100644 --- a/json/archivebox.json +++ b/json/archivebox.json @@ -2,7 +2,7 @@ "name": "ArchiveBox", "slug": "archivebox", "categories": [ - 12 + 11 ], "date_created": "2024-10-19", "type": "ct", diff --git a/json/aria2.json b/json/aria2.json index 62c95f8c4..971743e16 100644 --- a/json/aria2.json +++ b/json/aria2.json @@ -2,7 +2,7 @@ "name": "Aria2", "slug": "aria2", "categories": [ - 11 + 10 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/audiobookshelf.json b/json/audiobookshelf.json index 8763fe1bf..062d71ec7 100644 --- a/json/audiobookshelf.json +++ b/json/audiobookshelf.json @@ -2,7 +2,7 @@ "name": "Audiobookshelf", "slug": "audiobookshelf", "categories": [ - 13 + 12 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/autobrr.json b/json/autobrr.json index d6a249703..645357827 100644 --- a/json/autobrr.json +++ b/json/autobrr.json @@ -2,7 +2,7 @@ "name": "Autobrr", "slug": "autobrr", "categories": [ - 19 + 18 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/bazarr.json b/json/bazarr.json index b51393f3c..8928367c8 100644 --- a/json/bazarr.json +++ b/json/bazarr.json @@ -2,7 +2,7 @@ "name": "Bazarr", "slug": "bazarr", "categories": [ - 14 + 13 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/bookstack.json b/json/bookstack.json index 48a18ac35..d2f7180c6 100644 --- a/json/bookstack.json +++ b/json/bookstack.json @@ -2,7 +2,7 @@ "name": "BookStack", "slug": "bookstack", "categories": [ - 12 + 11 ], "date_created": "2024-11-05", "type": "ct", diff --git a/json/bunkerweb.json b/json/bunkerweb.json index 890aa29f5..4d667e858 100644 --- a/json/bunkerweb.json +++ b/json/bunkerweb.json @@ -2,7 +2,7 @@ "name": "BunkerWeb", "slug": "bunkerweb", "categories": [ - 25 + 24 ], "date_created": "2024-06-12", "type": "ct", diff --git a/json/caddy.json b/json/caddy.json index 9b41ea184..d40b8c505 100644 --- a/json/caddy.json +++ b/json/caddy.json @@ -2,7 +2,7 @@ "name": "Caddy", "slug": "caddy", "categories": [ - 25 + 24 ], "date_created": "2024-05-11", "type": "ct", diff --git a/json/calibre-web.json b/json/calibre-web.json index 170b62852..ab813ae7f 100644 --- a/json/calibre-web.json +++ b/json/calibre-web.json @@ -2,7 +2,7 @@ "name": "Calibre-Web", "slug": "calibre-web", "categories": [ - 12 + 11 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/changedetection.json b/json/changedetection.json index 40f294f04..d74f81d9b 100644 --- a/json/changedetection.json +++ b/json/changedetection.json @@ -2,7 +2,7 @@ "name": "Change Detection", "slug": "changedetection", "categories": [ - 9 + 8 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/channels.json b/json/channels.json index 0f32a786d..44ce486a5 100644 --- a/json/channels.json +++ b/json/channels.json @@ -2,7 +2,7 @@ "name": "Channels DVR Server", "slug": "channels", "categories": [ - 13 + 12 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/checkmk.json b/json/checkmk.json index be1bcd8c9..d36381007 100644 --- a/json/checkmk.json +++ b/json/checkmk.json @@ -2,7 +2,7 @@ "name": "Checkmk", "slug": "checkmk", "categories": [ - 9 + 8 ], "date_created": "2024-12-19", "type": "ct", diff --git a/json/cockpit.json b/json/cockpit.json index b03d24663..e1437ab11 100644 --- a/json/cockpit.json +++ b/json/cockpit.json @@ -2,7 +2,7 @@ "name": "Cockpit", "slug": "cockpit", "categories": [ - 10 + 9 ], "date_created": "2024-10-20", "type": "ct", diff --git a/json/code-server.json b/json/code-server.json index 3bc9414a7..03e38d0df 100644 --- a/json/code-server.json +++ b/json/code-server.json @@ -2,7 +2,7 @@ "name": "VS Code Server", "slug": "code-server", "categories": [ - 20 + 19 ], "date_created": "2024-05-02", "type": "misc", diff --git a/json/commafeed.json b/json/commafeed.json index da50dc96a..02137a3c2 100644 --- a/json/commafeed.json +++ b/json/commafeed.json @@ -2,7 +2,7 @@ "name": "CommaFeed", "slug": "commafeed", "categories": [ - 10 + 9 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/cronicle.json b/json/cronicle.json index 2d46c1cee..0a5d7d018 100644 --- a/json/cronicle.json +++ b/json/cronicle.json @@ -2,7 +2,7 @@ "name": "Cronicle Primary", "slug": "cronicle", "categories": [ - 19 + 18 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/daemonsync.json b/json/daemonsync.json index 1855ebfa6..6e41b5e06 100644 --- a/json/daemonsync.json +++ b/json/daemonsync.json @@ -2,7 +2,7 @@ "name": "Daemon Sync Server", "slug": "daemonsync", "categories": [ - 19 + 18 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/dashy.json b/json/dashy.json index f6adc1fca..7339644b6 100644 --- a/json/dashy.json +++ b/json/dashy.json @@ -2,7 +2,7 @@ "name": "Dashy", "slug": "dashy", "categories": [ - 10 + 9 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/deconz.json b/json/deconz.json index 2680e0166..3bf4258a0 100644 --- a/json/deconz.json +++ b/json/deconz.json @@ -2,7 +2,7 @@ "name": "deCONZ", "slug": "deconz", "categories": [ - 17 + 16 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/deluge.json b/json/deluge.json index 3423978a8..e0f79b9b3 100644 --- a/json/deluge.json +++ b/json/deluge.json @@ -2,7 +2,7 @@ "name": "Deluge", "slug": "deluge", "categories": [ - 11 + 10 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/dotnetaspwebapi.json b/json/dotnetaspwebapi.json index e078427e6..0bfd12897 100644 --- a/json/dotnetaspwebapi.json +++ b/json/dotnetaspwebapi.json @@ -2,7 +2,7 @@ "name":"Dotnet ASP Web API", "slug":"dotnetaspwebapi", "categories":[ - 20 + 19 ], "date_created":"2025-01-15", "type":"ct", diff --git a/json/emby.json b/json/emby.json index 3fe49ac0c..3516b84ca 100644 --- a/json/emby.json +++ b/json/emby.json @@ -2,7 +2,7 @@ "name": "Emby Media Server", "slug": "emby", "categories": [ - 13 + 12 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/emqx.json b/json/emqx.json index 950705f56..2e3233120 100644 --- a/json/emqx.json +++ b/json/emqx.json @@ -2,7 +2,7 @@ "name": "EMQX", "slug": "emqx", "categories": [ - 18 + 17 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/ersatztv.json b/json/ersatztv.json index 9f09a9788..30fc3f738 100644 --- a/json/ersatztv.json +++ b/json/ersatztv.json @@ -2,7 +2,7 @@ "name": "ErsatzTV", "slug": "ersatztv", "categories": [ - 13 + 12 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/esphome.json b/json/esphome.json index db1a42627..349c43e4a 100644 --- a/json/esphome.json +++ b/json/esphome.json @@ -2,7 +2,7 @@ "name": "ESPHome", "slug": "esphome", "categories": [ - 16 + 15 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/evcc.json b/json/evcc.json index dd66f7315..a256bf331 100644 --- a/json/evcc.json +++ b/json/evcc.json @@ -2,7 +2,7 @@ "name": "evcc", "slug": "evcc", "categories": [ - 16 + 15 ], "date_created": "2024-10-15", "type": "ct", diff --git a/json/fenrus.json b/json/fenrus.json index ff38d709f..24dd44935 100644 --- a/json/fenrus.json +++ b/json/fenrus.json @@ -2,7 +2,7 @@ "name": "Fenrus", "slug": "fenrus", "categories": [ - 10 + 9 ], "date_created": "2024-05-05", "type": "ct", diff --git a/json/fhem.json b/json/fhem.json index 7a1f16ebc..a84cac660 100644 --- a/json/fhem.json +++ b/json/fhem.json @@ -2,7 +2,7 @@ "name": "FHEM", "slug": "fhem", "categories": [ - 16 + 15 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/filebrowser.json b/json/filebrowser.json index 5b7300420..d0dc3c06f 100644 --- a/json/filebrowser.json +++ b/json/filebrowser.json @@ -2,7 +2,7 @@ "name": "File Browser", "slug": "filebrowser", "categories": [ - 11 + 10 ], "date_created": "2024-05-02", "type": "misc", diff --git a/json/firefly.json b/json/firefly.json index c2d7fc6e2..7f8f01637 100644 --- a/json/firefly.json +++ b/json/firefly.json @@ -2,7 +2,7 @@ "name": "Firefly III", "slug": "firefly", "categories": [ - 23 + 22 ], "date_created": "2025-01-01", "type": "ct", diff --git a/json/flowiseai.json b/json/flowiseai.json index 0c4dd7ab5..b2f99b5c7 100644 --- a/json/flowiseai.json +++ b/json/flowiseai.json @@ -2,7 +2,7 @@ "name": "FlowiseAI", "slug": "flowiseai", "categories": [ - 20 + 19 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/forgejo.json b/json/forgejo.json index 3291eb57d..3a16cf9a5 100644 --- a/json/forgejo.json +++ b/json/forgejo.json @@ -2,7 +2,7 @@ "name": "Forgejo", "slug": "forgejo", "categories": [ - 20 + 19 ], "date_created": "2024-06-12", "type": "ct", diff --git a/json/frigate.json b/json/frigate.json index e1c4c1b63..5f90f1923 100644 --- a/json/frigate.json +++ b/json/frigate.json @@ -2,7 +2,7 @@ "name": "Frigate", "slug": "frigate", "categories": [ - 15 + 14 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/ghost.json b/json/ghost.json index 7d3568c0f..63071f62b 100644 --- a/json/ghost.json +++ b/json/ghost.json @@ -2,7 +2,7 @@ "name": "Ghost", "slug": "ghost", "categories": [ - 25 + 24 ], "date_created": "2025-01-10", "type": "ct", diff --git a/json/gitea.json b/json/gitea.json index 82890c1d7..17d2a29c2 100644 --- a/json/gitea.json +++ b/json/gitea.json @@ -2,7 +2,7 @@ "name": "Gitea", "slug": "gitea", "categories": [ - 20 + 19 ], "date_created": "2024-07-26", "type": "ct", diff --git a/json/glance.json b/json/glance.json index 94a8b0730..bbfb7b1f3 100644 --- a/json/glance.json +++ b/json/glance.json @@ -2,7 +2,7 @@ "name": "Glance", "slug": "glance", "categories": [ - 9 + 8 ], "date_created": "2024-12-02", "type": "ct", diff --git a/json/glances.json b/json/glances.json index c70efe0c9..a9505b591 100644 --- a/json/glances.json +++ b/json/glances.json @@ -2,7 +2,7 @@ "name": "Glances", "slug": "glances", "categories": [ - 9 + 8 ], "date_created": "2024-05-02", "type": "misc", diff --git a/json/go2rtc.json b/json/go2rtc.json index 51cd80d55..fcdd6ed7b 100644 --- a/json/go2rtc.json +++ b/json/go2rtc.json @@ -2,7 +2,7 @@ "name": "go2rtc", "slug": "go2rtc", "categories": [ - 16 + 15 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/gokapi.json b/json/gokapi.json index 3d958dd88..3a9bdd9bb 100644 --- a/json/gokapi.json +++ b/json/gokapi.json @@ -2,7 +2,7 @@ "name": "Gokapi", "slug": "gokapi", "categories": [ - 11 + 10 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/gotify.json b/json/gotify.json index b8b6bcb39..f5bb0b764 100644 --- a/json/gotify.json +++ b/json/gotify.json @@ -2,7 +2,7 @@ "name": "Gotify", "slug": "gotify", "categories": [ - 18 + 17 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/grafana.json b/json/grafana.json index 1e1515afb..e30f12f87 100644 --- a/json/grafana.json +++ b/json/grafana.json @@ -2,7 +2,7 @@ "name": "Grafana", "slug": "grafana", "categories": [ - 9 + 8 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/grist.json b/json/grist.json index 0c82240a5..a3264e938 100644 --- a/json/grist.json +++ b/json/grist.json @@ -2,7 +2,7 @@ "name": "Grist", "slug": "grist", "categories": [ - 12 + 11 ], "date_created": "2024-12-27", "type": "ct", diff --git a/json/grocy.json b/json/grocy.json index 75eb7534c..3e6fc0775 100644 --- a/json/grocy.json +++ b/json/grocy.json @@ -2,7 +2,7 @@ "name": "grocy", "slug": "grocy", "categories": [ - 16 + 15 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/heimdall-dashboard.json b/json/heimdall-dashboard.json index 7f84a5c13..65bf8b8f1 100644 --- a/json/heimdall-dashboard.json +++ b/json/heimdall-dashboard.json @@ -2,7 +2,7 @@ "name": "Heimdall Dashboard", "slug": "heimdall-dashboard", "categories": [ - 10 + 9 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/hivemq.json b/json/hivemq.json index 8f710c564..775486e51 100644 --- a/json/hivemq.json +++ b/json/hivemq.json @@ -2,7 +2,7 @@ "name": "HiveMQ CE", "slug": "hivemq", "categories": [ - 18 + 17 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/hoarder.json b/json/hoarder.json index 3f15aaa7a..c84614e74 100644 --- a/json/hoarder.json +++ b/json/hoarder.json @@ -2,7 +2,7 @@ "name": "Hoarder", "slug": "hoarder", "categories": [ - 12 + 11 ], "date_created": "2024-12-02", "type": "ct", diff --git a/json/homarr.json b/json/homarr.json index dea87f136..daaebfc7d 100644 --- a/json/homarr.json +++ b/json/homarr.json @@ -2,7 +2,7 @@ "name": "Homarr", "slug": "homarr", "categories": [ - 10 + 9 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/homeassistant-core.json b/json/homeassistant-core.json index d71e5d266..2a83fc3ff 100644 --- a/json/homeassistant-core.json +++ b/json/homeassistant-core.json @@ -2,7 +2,7 @@ "name": "Home Assistant Core", "slug": "homeassistant-core", "categories": [ - 16 + 15 ], "date_created": "2025-01-17", "type": "ct", diff --git a/json/homeassistant.json b/json/homeassistant.json index 3abb5a3ba..542c8c136 100644 --- a/json/homeassistant.json +++ b/json/homeassistant.json @@ -2,7 +2,7 @@ "name": "Home Assistant Container", "slug": "homeassistant", "categories": [ - 16 + 15 ], "date_created": "2024-04-29", "type": "ct", diff --git a/json/homebox.json b/json/homebox.json index ecb41106b..2f9aeea1d 100644 --- a/json/homebox.json +++ b/json/homebox.json @@ -2,7 +2,7 @@ "name": "HomeBox", "slug": "homebox", "categories": [ - 25 + 24 ], "date_created": "2024-09-16", "type": "ct", diff --git a/json/homebridge.json b/json/homebridge.json index 1a25369ab..76fa1e619 100644 --- a/json/homebridge.json +++ b/json/homebridge.json @@ -2,7 +2,7 @@ "name": "Homebridge", "slug": "homebridge", "categories": [ - 16 + 15 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/homepage.json b/json/homepage.json index 04ddc3a8d..b0f63bfec 100644 --- a/json/homepage.json +++ b/json/homepage.json @@ -2,7 +2,7 @@ "name": "Homepage", "slug": "homepage", "categories": [ - 10 + 9 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/homer.json b/json/homer.json index e31b6003e..d997a01c4 100644 --- a/json/homer.json +++ b/json/homer.json @@ -2,6 +2,7 @@ "name": "Homer", "slug": "homer", "categories": [ + 10 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/host-backup.json b/json/host-backup.json index 57d9d9c49..280425593 100644 --- a/json/host-backup.json +++ b/json/host-backup.json @@ -2,7 +2,7 @@ "name": "Proxmox VE Host Backup", "slug": "host-backup", "categories": [ - 7 + 1 ], "date_created": "2024-04-29", "type": "misc", diff --git a/json/hyperhdr.json b/json/hyperhdr.json index d5f10ef1a..fb7f52e49 100644 --- a/json/hyperhdr.json +++ b/json/hyperhdr.json @@ -2,7 +2,7 @@ "name": "HyperHDR", "slug": "hyperhdr", "categories": [ - 13 + 12 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/hyperion.json b/json/hyperion.json index 9fdcec4bb..338f7007b 100644 --- a/json/hyperion.json +++ b/json/hyperion.json @@ -2,7 +2,7 @@ "name": "Hyperion", "slug": "hyperion", "categories": [ - 13 + 12 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/influxdb.json b/json/influxdb.json index 0c38be749..89fce5253 100644 --- a/json/influxdb.json +++ b/json/influxdb.json @@ -2,7 +2,7 @@ "name": "InfluxDB", "slug": "influxdb", "categories": [ - 8 + 7 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/inspircd.json b/json/inspircd.json index b1029b9bd..c0b983305 100644 --- a/json/inspircd.json +++ b/json/inspircd.json @@ -2,7 +2,7 @@ "name": "InspIRCd 4", "slug": "inspircd", "categories": [ - 18 + 17 ], "date_created": "2024-11-29", "type": "ct", diff --git a/json/iobroker.json b/json/iobroker.json index b56c000ef..207dd1f0e 100644 --- a/json/iobroker.json +++ b/json/iobroker.json @@ -2,7 +2,7 @@ "name": "ioBroker", "slug": "iobroker", "categories": [ - 16 + 15 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/jackett.json b/json/jackett.json index 5a7ea0f33..1a338a48e 100644 --- a/json/jackett.json +++ b/json/jackett.json @@ -2,7 +2,7 @@ "name": "Jackett", "slug": "jackett", "categories": [ - 14 + 13 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/jellyfin.json b/json/jellyfin.json index 0f9bd5c8a..bcd43ce7d 100644 --- a/json/jellyfin.json +++ b/json/jellyfin.json @@ -2,7 +2,7 @@ "name": "Jellyfin Media Server", "slug": "jellyfin", "categories": [ - 13 + 12 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/jellyseerr.json b/json/jellyseerr.json index fc739df86..721ed4386 100644 --- a/json/jellyseerr.json +++ b/json/jellyseerr.json @@ -2,7 +2,7 @@ "name": "Jellyseerr", "slug": "jellyseerr", "categories": [ - 14 + 13 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/jenkins.json b/json/jenkins.json index 04ac70e3c..6d90ccf33 100644 --- a/json/jenkins.json +++ b/json/jenkins.json @@ -2,7 +2,7 @@ "name": "Jenkins", "slug": "jenkins", "categories": [ - 19 + 18 ], "date_created": "2024-12-26", "type": "ct", diff --git a/json/kavita.json b/json/kavita.json index 6e86d6fc0..f97fe27ca 100644 --- a/json/kavita.json +++ b/json/kavita.json @@ -2,7 +2,7 @@ "name": "Kavita", "slug": "kavita", "categories": [ - 13 + 12 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/kimai.json b/json/kimai.json index 15b470e01..a1f75de58 100644 --- a/json/kimai.json +++ b/json/kimai.json @@ -2,7 +2,7 @@ "name": "Kimai", "slug": "kimai", "categories": [ - 25 + 24 ], "date_created": "2024-11-20", "type": "ct", diff --git a/json/komga.json b/json/komga.json index cd3a8a448..50c31664c 100644 --- a/json/komga.json +++ b/json/komga.json @@ -2,7 +2,7 @@ "name": "Komga", "slug": "komga", "categories": [ - 13 + 12 ], "date_created": "2024-11-15", "type": "ct", diff --git a/json/komodo.json b/json/komodo.json index d678b3b68..7045396f3 100644 --- a/json/komodo.json +++ b/json/komodo.json @@ -2,7 +2,7 @@ "name": "Komodo", "slug": "komodo", "categories": [ - 20 + 19 ], "date_created": "2025-01-01", "type": "ct", diff --git a/json/kubo.json b/json/kubo.json index bc15f7b6e..d7af51848 100644 --- a/json/kubo.json +++ b/json/kubo.json @@ -2,7 +2,7 @@ "name": "Kubo", "slug": "kubo", "categories": [ - 11 + 10 ], "date_created": "2024-06-27", "type": "ct", diff --git a/json/lazylibrarian.json b/json/lazylibrarian.json index 75ac1c278..f47383289 100644 --- a/json/lazylibrarian.json +++ b/json/lazylibrarian.json @@ -2,7 +2,7 @@ "name": "LazyLibrarian", "slug": "lazylibrarian", "categories": [ - 14 + 13 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/lidarr.json b/json/lidarr.json index 57229bbc1..23afecb90 100644 --- a/json/lidarr.json +++ b/json/lidarr.json @@ -2,7 +2,7 @@ "name": "Lidarr", "slug": "lidarr", "categories": [ - 14 + 13 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/linkwarden.json b/json/linkwarden.json index 974afebfe..7799ad5fc 100644 --- a/json/linkwarden.json +++ b/json/linkwarden.json @@ -2,7 +2,7 @@ "name": "Linkwarden", "slug": "linkwarden", "categories": [ - 12 + 11 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/listmonk.json b/json/listmonk.json index 06d746955..98bfa91b3 100644 --- a/json/listmonk.json +++ b/json/listmonk.json @@ -2,7 +2,7 @@ "name": "listmonk", "slug": "listmonk", "categories": [ - 22 + 21 ], "date_created": "2024-11-22", "type": "ct", diff --git a/json/lubelogger.json b/json/lubelogger.json index 508aab900..3eb6cd37e 100644 --- a/json/lubelogger.json +++ b/json/lubelogger.json @@ -2,7 +2,7 @@ "name": "LubeLogger", "slug": "lubelogger", "categories": [ - 9 + 8 ], "date_created": "2024-11-29", "type": "ct", diff --git a/json/mafl.json b/json/mafl.json index 8ca64146c..cfc9bafbf 100644 --- a/json/mafl.json +++ b/json/mafl.json @@ -2,7 +2,7 @@ "name": "Mafl", "slug": "mafl", "categories": [ - 25 + 24 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/magicmirror.json b/json/magicmirror.json index 488b26ae4..d534e7ac0 100644 --- a/json/magicmirror.json +++ b/json/magicmirror.json @@ -2,7 +2,7 @@ "name": "MagicMirror Server", "slug": "magicmirror", "categories": [ - 16 + 15 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/mariadb.json b/json/mariadb.json index 886b76784..6c635671f 100644 --- a/json/mariadb.json +++ b/json/mariadb.json @@ -2,7 +2,7 @@ "name": "Mariadb", "slug": "mariadb", "categories": [ - 8 + 7 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/matterbridge.json b/json/matterbridge.json index acc3a1256..80e0fb901 100644 --- a/json/matterbridge.json +++ b/json/matterbridge.json @@ -2,7 +2,7 @@ "name": "Matterbridge", "slug": "matterbridge", "categories": [ - 22 + 21 ], "date_created": "2024-06-12", "type": "ct", diff --git a/json/mediamtx.json b/json/mediamtx.json index b2ee80db4..6343ada95 100644 --- a/json/mediamtx.json +++ b/json/mediamtx.json @@ -2,7 +2,7 @@ "name": "MediaMTX", "slug": "mediamtx", "categories": [ - 13 + 12 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/medusa.json b/json/medusa.json index d902e91a8..86b933803 100644 --- a/json/medusa.json +++ b/json/medusa.json @@ -2,7 +2,7 @@ "name": "Medusa", "slug": "medusa", "categories": [ - 14 + 13 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/memos.json b/json/memos.json index 0d6ed537d..13d2a8078 100644 --- a/json/memos.json +++ b/json/memos.json @@ -2,7 +2,7 @@ "name": "Memos", "slug": "memos", "categories": [ - 12 + 11 ], "date_created": "2024-10-31", "type": "ct", diff --git a/json/metube.json b/json/metube.json index e2d5dedf5..ff2f75698 100644 --- a/json/metube.json +++ b/json/metube.json @@ -2,7 +2,7 @@ "name": "MeTube", "slug": "metube", "categories": [ - 13 + 12 ], "date_created": "2024-06-12", "type": "ct", diff --git a/json/mongodb.json b/json/mongodb.json index ab89acff7..7f4a357f1 100644 --- a/json/mongodb.json +++ b/json/mongodb.json @@ -2,7 +2,7 @@ "name": "MongoDB", "slug": "mongodb", "categories": [ - 8 + 7 ], "date_created": "2024-05-18", "type": "ct", diff --git a/json/monitor-all.json b/json/monitor-all.json index 76f111870..8b8cde46d 100644 --- a/json/monitor-all.json +++ b/json/monitor-all.json @@ -2,7 +2,7 @@ "name": "Proxmox VE Monitor-All", "slug": "monitor-all", "categories": [ - 9 + 8 ], "date_created": "2024-04-29", "type": "misc", diff --git a/json/motioneye.json b/json/motioneye.json index f303a7103..a94fb5321 100644 --- a/json/motioneye.json +++ b/json/motioneye.json @@ -2,7 +2,7 @@ "name": "MotionEye NVR", "slug": "motioneye", "categories": [ - 15 + 14 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/mqtt.json b/json/mqtt.json index 5685ac331..e6c209313 100644 --- a/json/mqtt.json +++ b/json/mqtt.json @@ -2,7 +2,7 @@ "name": "MQTT", "slug": "mqtt", "categories": [ - 18 + 17 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/mylar3.json b/json/mylar3.json index 520e545d0..b1dc3e0af 100644 --- a/json/mylar3.json +++ b/json/mylar3.json @@ -2,7 +2,7 @@ "name": "Mylar3", "slug": "mylar3", "categories": [ - 14 + 13 ], "date_created": "2024-12-02", "type": "ct", diff --git a/json/mysql.json b/json/mysql.json index 66584d58f..c1a68ea0d 100644 --- a/json/mysql.json +++ b/json/mysql.json @@ -2,7 +2,7 @@ "name": "MySQL", "slug": "mysql", "categories": [ - 8 + 7 ], "date_created": "2024-10-10", "type": "ct", diff --git a/json/n8n.json b/json/n8n.json index af2f46896..24319d49e 100644 --- a/json/n8n.json +++ b/json/n8n.json @@ -2,7 +2,7 @@ "name": "n8n", "slug": "n8n", "categories": [ - 19 + 18 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/navidrome.json b/json/navidrome.json index a9a491737..697451a46 100644 --- a/json/navidrome.json +++ b/json/navidrome.json @@ -2,7 +2,7 @@ "name": "Navidrome", "slug": "navidrome", "categories": [ - 13 + 12 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/neo4j.json b/json/neo4j.json index 66f485cc3..a98509dcf 100644 --- a/json/neo4j.json +++ b/json/neo4j.json @@ -2,7 +2,7 @@ "name": "Neo4j", "slug": "neo4j", "categories": [ - 8 + 7 ], "date_created": "2024-10-20", "type": "ct", diff --git a/json/netdata.json b/json/netdata.json index 973f68648..e773da5a0 100644 --- a/json/netdata.json +++ b/json/netdata.json @@ -2,7 +2,7 @@ "name": "Proxmox VE Netdata", "slug": "netdata", "categories": [ - 9 + 8 ], "date_created": "2024-04-29", "type": "misc", diff --git a/json/nextpvr.json b/json/nextpvr.json index c3c453985..39644c1d4 100644 --- a/json/nextpvr.json +++ b/json/nextpvr.json @@ -2,7 +2,7 @@ "name": "NextPVR", "slug": "nextpvr", "categories": [ - 15 + 14 ], "date_created": "2024-11-20", "type": "ct", diff --git a/json/nginxproxymanager.json b/json/nginxproxymanager.json index 15d435ab2..d396d86da 100644 --- a/json/nginxproxymanager.json +++ b/json/nginxproxymanager.json @@ -2,7 +2,7 @@ "name": "Nginx Proxy Manager", "slug": "nginxproxymanager", "categories": [ - 25 + 24 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/nocodb.json b/json/nocodb.json index b94b78264..0dd566a06 100644 --- a/json/nocodb.json +++ b/json/nocodb.json @@ -2,7 +2,7 @@ "name": "NocoDB", "slug": "nocodb", "categories": [ - 25 + 24 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/node-red.json b/json/node-red.json index 9826c31f3..2bf914ec6 100644 --- a/json/node-red.json +++ b/json/node-red.json @@ -2,7 +2,7 @@ "name": "Node-Red", "slug": "node-red", "categories": [ - 19 + 18 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/notifiarr.json b/json/notifiarr.json index 8b310efbf..33b19e3cb 100644 --- a/json/notifiarr.json +++ b/json/notifiarr.json @@ -2,7 +2,7 @@ "name": "Notifiarr", "slug": "notifiarr", "categories": [ - 22 + 21 ], "date_created": "2024-06-12", "type": "ct", diff --git a/json/ntfy.json b/json/ntfy.json index 816a96090..7bc48f3ba 100644 --- a/json/ntfy.json +++ b/json/ntfy.json @@ -2,7 +2,7 @@ "name": "ntfy", "slug": "ntfy", "categories": [ - 22 + 21 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/nzbget.json b/json/nzbget.json index 073b2a6f5..93e2af851 100644 --- a/json/nzbget.json +++ b/json/nzbget.json @@ -2,7 +2,7 @@ "name": "NZBGet", "slug": "nzbget", "categories": [ - 11 + 10 ], "date_created": "2024-10-31", "type": "ct", diff --git a/json/octoprint.json b/json/octoprint.json index 4206c2314..1e19b37bc 100644 --- a/json/octoprint.json +++ b/json/octoprint.json @@ -2,7 +2,7 @@ "name": "OctoPrint", "slug": "octoprint", "categories": [ - 16 + 15 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/olivetin.json b/json/olivetin.json index 4e2a862f6..b2733748a 100644 --- a/json/olivetin.json +++ b/json/olivetin.json @@ -2,7 +2,7 @@ "name": "OliveTin", "slug": "olivetin", "categories": [ - 10 + 9 ], "date_created": "2024-05-02", "type": "misc", diff --git a/json/ombi.json b/json/ombi.json index 9c27ae86a..a85f63214 100644 --- a/json/ombi.json +++ b/json/ombi.json @@ -2,7 +2,7 @@ "name": "Ombi", "slug": "ombi", "categories": [ - 14 + 13 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/onedev.json b/json/onedev.json index 12bc3a4a0..332f60b04 100644 --- a/json/onedev.json +++ b/json/onedev.json @@ -2,7 +2,7 @@ "name": "OneDev", "slug": "onedev", "categories": [ - 20 + 19 ], "date_created": "2024-11-30", "type": "ct", diff --git a/json/opengist.json b/json/opengist.json index 0d285a9a2..58316f3b4 100644 --- a/json/opengist.json +++ b/json/opengist.json @@ -2,7 +2,7 @@ "name": "Opengist", "slug": "opengist", "categories": [ - 20 + 19 ], "date_created": "2025-01-14", "type": "ct", diff --git a/json/openhab.json b/json/openhab.json index 7c5364ef0..28cd128e4 100644 --- a/json/openhab.json +++ b/json/openhab.json @@ -2,7 +2,7 @@ "name": "openHAB", "slug": "openhab", "categories": [ - 16 + 15 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/openobserve.json b/json/openobserve.json index 231297e69..d18789f0e 100644 --- a/json/openobserve.json +++ b/json/openobserve.json @@ -2,7 +2,7 @@ "name": "OpenObserve", "slug": "openobserve", "categories": [ - 9 + 8 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/openwebui.json b/json/openwebui.json index 4bc958b34..bcc5030ee 100644 --- a/json/openwebui.json +++ b/json/openwebui.json @@ -2,7 +2,7 @@ "name": "Open WebUI", "slug": "openwebui", "categories": [ - 20 + 19 ], "date_created": "2024-10-24", "type": "ct", diff --git a/json/overseerr.json b/json/overseerr.json index a2983d6d5..1dd1b8f4f 100644 --- a/json/overseerr.json +++ b/json/overseerr.json @@ -2,7 +2,7 @@ "name": "Overseerr", "slug": "overseerr", "categories": [ - 14 + 13 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/owncast.json b/json/owncast.json index 91f573d8d..bbb6fe75f 100644 --- a/json/owncast.json +++ b/json/owncast.json @@ -2,7 +2,7 @@ "name": "Owncast", "slug": "owncast", "categories": [ - 13 + 12 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/pairdrop.json b/json/pairdrop.json index b72bbb60d..ff43ed6c2 100644 --- a/json/pairdrop.json +++ b/json/pairdrop.json @@ -2,7 +2,7 @@ "name": "PairDrop", "slug": "pairdrop", "categories": [ - 11 + 10 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/paperless-ngx.json b/json/paperless-ngx.json index 85eb6ea85..673f2b40f 100644 --- a/json/paperless-ngx.json +++ b/json/paperless-ngx.json @@ -2,7 +2,7 @@ "name": "Paperless-ngx", "slug": "paperless-ngx", "categories": [ - 12 + 11 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/part-db.json b/json/part-db.json index 67d66bb3f..5bc1871cc 100644 --- a/json/part-db.json +++ b/json/part-db.json @@ -2,7 +2,7 @@ "name": "Part-DB", "slug": "part-db", "categories": [ - 25 + 24 ], "date_created": "2024-12-18", "type": "ct", diff --git a/json/pbs.json b/json/pbs.json index 1ec913322..360a038a6 100644 --- a/json/pbs.json +++ b/json/pbs.json @@ -2,7 +2,7 @@ "name": "Proxmox Backup Server", "slug": "pbs", "categories": [ - 7 + 1 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/petio.json b/json/petio.json index cd34d5e2a..537148dcb 100644 --- a/json/petio.json +++ b/json/petio.json @@ -2,7 +2,7 @@ "name": "Petio", "slug": "petio", "categories": [ - 14 + 13 ], "date_created": "2024-06-12", "type": "ct", diff --git a/json/pf2etools.json b/json/pf2etools.json index f4e0856f9..192ddba54 100644 --- a/json/pf2etools.json +++ b/json/pf2etools.json @@ -2,7 +2,7 @@ "name": "Pf2eTools", "slug": "Pf2eTools", "categories": [ - 24 + 23 ], "date_created": "2025-01-02", "type": "ct", diff --git a/json/photoprism.json b/json/photoprism.json index 42a15c3c9..9d7bb13f2 100644 --- a/json/photoprism.json +++ b/json/photoprism.json @@ -2,7 +2,7 @@ "name": "PhotoPrism", "slug": "photoprism", "categories": [ - 13 + 12 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/phpipam.json b/json/phpipam.json index c98b33039..e65c69730 100644 --- a/json/phpipam.json +++ b/json/phpipam.json @@ -2,6 +2,7 @@ "name": "phpIPAM", "slug": "phpipam", "categories": [ + 4 ], "date_created": "2025-01-15", "type": "ct", diff --git a/json/pingvin.json b/json/pingvin.json index 755f3cde8..b67ffdf0c 100644 --- a/json/pingvin.json +++ b/json/pingvin.json @@ -2,7 +2,7 @@ "name": "Pingvin Share", "slug": "pingvin", "categories": [ - 25 + 24 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/plex.json b/json/plex.json index 5d86353a1..d50db7cd2 100644 --- a/json/plex.json +++ b/json/plex.json @@ -2,7 +2,7 @@ "name": "Plex Media Server", "slug": "plex", "categories": [ - 13 + 12 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/pocketbase.json b/json/pocketbase.json index 088cd5966..9e9e13948 100644 --- a/json/pocketbase.json +++ b/json/pocketbase.json @@ -2,7 +2,7 @@ "name": "Pocketbase", "slug": "pocketbase", "categories": [ - 8 + 7 ], "date_created": "2024-05-07", "type": "ct", diff --git a/json/post-pbs-install.json b/json/post-pbs-install.json index b4f4bc4ea..3d8f6cd93 100644 --- a/json/post-pbs-install.json +++ b/json/post-pbs-install.json @@ -2,7 +2,7 @@ "name": "Proxmox Backup Server Post Install", "slug": "post-pbs-install", "categories": [ - 7 + 1 ], "date_created": "2024-04-29", "type": "misc", diff --git a/json/post-pmg-install.json b/json/post-pmg-install.json index 3db0c1277..442a4c9bf 100644 --- a/json/post-pmg-install.json +++ b/json/post-pmg-install.json @@ -1,46 +1,47 @@ { -"name": "Proxmox Mail Gateway Post Install", -"slug": "post-pmg-install", -"categories": [ -], -"date_created": "2025-01-20", -"type": "misc", -"updateable": false, -"privileged": false, -"interface_port": null, -"documentation": null, -"website": null, -"logo": "https://raw.githubusercontent.com/home-assistant/brands/master/core_integrations/proxmoxve/icon.png", -"description": "The script will give options to Disable the Enterprise Repo, Add/Correct PMG Sources, Enable the No-Subscription Repo, Add Test Repo, Disable Subscription Nag, Update Proxmox Mail Gateway and Reboot PMG.", -"install_methods": [ - { - "type": "default", - "script": "misc/post-pmg-install.sh", - "resources": { - "cpu": null, - "ram": null, - "hdd": null, - "os": null, - "version": null + "name": "Proxmox Mail Gateway Post Install", + "slug": "post-pmg-install", + "categories": [ + 1 + ], + "date_created": "2025-01-20", + "type": "misc", + "updateable": false, + "privileged": false, + "interface_port": null, + "documentation": null, + "website": null, + "logo": "https://raw.githubusercontent.com/home-assistant/brands/master/core_integrations/proxmoxve/icon.png", + "description": "The script will give options to Disable the Enterprise Repo, Add/Correct PMG Sources, Enable the No-Subscription Repo, Add Test Repo, Disable Subscription Nag, Update Proxmox Mail Gateway and Reboot PMG.", + "install_methods": [ + { + "type": "default", + "script": "misc/post-pmg-install.sh", + "resources": { + "cpu": null, + "ram": null, + "hdd": null, + "os": null, + "version": null + } } - } -], -"default_credentials": { - "username": null, - "password": null -}, -"notes": [ - { - "text": "Proxmox Mail Gateway ONLY", - "type": "info" + ], + "default_credentials": { + "username": null, + "password": null }, - { - "text": "Execute within the Proxmox Mail Gateway Shell", - "type": "info" - }, - { - "text": "It is recommended to answer β€œyes” (y) to all options presented during the process.", - "type": "info" - } -] -} + "notes": [ + { + "text": "Proxmox Mail Gateway ONLY", + "type": "warning" + }, + { + "text": "Execute within the Proxmox Mail Gateway Shell", + "type": "info" + }, + { + "text": "It is recommended to answer β€œyes” (y) to all options presented during the process.", + "type": "info" + } + ] +} \ No newline at end of file diff --git a/json/postgresql.json b/json/postgresql.json index ca48964cd..e0e653b8c 100644 --- a/json/postgresql.json +++ b/json/postgresql.json @@ -2,7 +2,7 @@ "name": "PostgreSQL", "slug": "postgresql", "categories": [ - 8 + 7 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/prometheus-alertmanager.json b/json/prometheus-alertmanager.json index 31c5ebbfd..76c7be161 100644 --- a/json/prometheus-alertmanager.json +++ b/json/prometheus-alertmanager.json @@ -2,7 +2,7 @@ "name": "Prometheus Alertmanager", "slug": "prometheus-alertmanager", "categories": [ - 9 + 8 ], "date_created": "2025-01-09", "type": "ct", diff --git a/json/prometheus.json b/json/prometheus.json index f7dba6db8..089c764c5 100644 --- a/json/prometheus.json +++ b/json/prometheus.json @@ -2,7 +2,7 @@ "name": "Prometheus", "slug": "prometheus", "categories": [ - 9 + 8 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/prowlarr.json b/json/prowlarr.json index 560922834..21208cb67 100644 --- a/json/prowlarr.json +++ b/json/prowlarr.json @@ -2,7 +2,7 @@ "name": "Prowlarr", "slug": "prowlarr", "categories": [ - 14 + 13 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/ps5-mqtt.json b/json/ps5-mqtt.json index 861958384..373603b1e 100644 --- a/json/ps5-mqtt.json +++ b/json/ps5-mqtt.json @@ -2,7 +2,7 @@ "name": "PS5-MQTT", "slug": "ps5-mqtt", "categories": [ - 18 + 17 ], "date_created": "2025-01-09", "type": "ct", diff --git a/json/qbittorrent.json b/json/qbittorrent.json index eb92beb07..6535618e4 100644 --- a/json/qbittorrent.json +++ b/json/qbittorrent.json @@ -2,7 +2,7 @@ "name": "qBittorrent", "slug": "qbittorrent", "categories": [ - 11 + 10 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/rabbitmq.json b/json/rabbitmq.json index ab9b9c8d3..79bdcb8bc 100644 --- a/json/rabbitmq.json +++ b/json/rabbitmq.json @@ -2,7 +2,7 @@ "name": "RabbitMQ", "slug": "rabbitmq", "categories": [ - 18 + 17 ], "date_created": "2024-06-27", "type": "ct", diff --git a/json/radarr.json b/json/radarr.json index b7c6a0fe2..6e7deeab7 100644 --- a/json/radarr.json +++ b/json/radarr.json @@ -2,7 +2,7 @@ "name": "Radarr", "slug": "radarr", "categories": [ - 14 + 13 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/rdtclient.json b/json/rdtclient.json index 983e95e46..6ed1bb8f1 100644 --- a/json/rdtclient.json +++ b/json/rdtclient.json @@ -2,7 +2,7 @@ "name": "Real-Debrid Torrent Client", "slug": "rdtclient", "categories": [ - 11 + 10 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/readarr.json b/json/readarr.json index 7ac0706e0..8cc580243 100644 --- a/json/readarr.json +++ b/json/readarr.json @@ -2,7 +2,7 @@ "name": "Readarr", "slug": "readarr", "categories": [ - 14 + 13 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/readeck.json b/json/readeck.json index 0bede05b9..2265afdac 100644 --- a/json/readeck.json +++ b/json/readeck.json @@ -2,7 +2,7 @@ "name": "Readeck", "slug": "readeck", "categories": [ - 12 + 11 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/recyclarr.json b/json/recyclarr.json index 7dc92d456..a0c0d8517 100644 --- a/json/recyclarr.json +++ b/json/recyclarr.json @@ -2,7 +2,7 @@ "name": "Recyclarr", "slug": "recyclarr", "categories": [ - 14 + 13 ], "date_created": "2024-11-15", "type": "ct", diff --git a/json/redis.json b/json/redis.json index 099ddfd4e..4e3f23060 100644 --- a/json/redis.json +++ b/json/redis.json @@ -2,7 +2,7 @@ "name": "Redis ", "slug": "redis", "categories": [ - 8 + 7 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/rtsptoweb.json b/json/rtsptoweb.json index 4637d29b4..b552df830 100644 --- a/json/rtsptoweb.json +++ b/json/rtsptoweb.json @@ -2,7 +2,7 @@ "name": "RTSPtoWeb", "slug": "rtsptoweb", "categories": [ - 15 + 14 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/sabnzbd.json b/json/sabnzbd.json index 233397abb..296c33350 100644 --- a/json/sabnzbd.json +++ b/json/sabnzbd.json @@ -2,7 +2,7 @@ "name": "SABnzbd", "slug": "sabnzbd", "categories": [ - 11 + 10 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/semaphore.json b/json/semaphore.json index d839790fc..5a8805496 100644 --- a/json/semaphore.json +++ b/json/semaphore.json @@ -2,7 +2,7 @@ "name": "Semaphore", "slug": "semaphore", "categories": [ - 19 + 18 ], "date_created": "2025-01-01", "type": "ct", diff --git a/json/sftpgo.json b/json/sftpgo.json index fd338c781..ab0253325 100644 --- a/json/sftpgo.json +++ b/json/sftpgo.json @@ -2,7 +2,7 @@ "name": "SFTPGo", "slug": "sftpgo", "categories": [ - 11 + 10 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/shinobi.json b/json/shinobi.json index 05d8970ab..50b2ca3f3 100644 --- a/json/shinobi.json +++ b/json/shinobi.json @@ -2,7 +2,7 @@ "name": "Shinobi NVR", "slug": "shinobi", "categories": [ - 15 + 14 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/silverbullet.json b/json/silverbullet.json index 0c24ff578..628fa4be5 100644 --- a/json/silverbullet.json +++ b/json/silverbullet.json @@ -2,7 +2,7 @@ "name": "Silverbullet", "slug": "silverbullet", "categories": [ - 12 + 11 ], "date_created": "2024-12-03", "type": "ct", diff --git a/json/smokeping.json b/json/smokeping.json index 76d0e7347..ed80e550c 100644 --- a/json/smokeping.json +++ b/json/smokeping.json @@ -2,7 +2,7 @@ "name": "SmokePing", "slug": "smokeping", "categories": [ - 9 + 8 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/snipeit.json b/json/snipeit.json index c12cd102d..43cfcafe5 100644 --- a/json/snipeit.json +++ b/json/snipeit.json @@ -2,7 +2,7 @@ "name": "SnipeIT", "slug": "snipeit", "categories": [ - 25 + 24 ], "date_created": "2024-12-02", "type": "ct", diff --git a/json/sonarr.json b/json/sonarr.json index 4339c7823..4a3269807 100644 --- a/json/sonarr.json +++ b/json/sonarr.json @@ -2,7 +2,7 @@ "name": "Sonarr", "slug": "sonarr", "categories": [ - 14 + 13 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/spoolman.json b/json/spoolman.json index 8c8af61e1..14b1d2897 100644 --- a/json/spoolman.json +++ b/json/spoolman.json @@ -2,7 +2,7 @@ "name": "Spoolman", "slug": "spoolman", "categories": [ - 16 + 15 ], "date_created": "2024-06-13", "type": "ct", diff --git a/json/stirling-pdf.json b/json/stirling-pdf.json index 83219e292..8b680f868 100644 --- a/json/stirling-pdf.json +++ b/json/stirling-pdf.json @@ -2,7 +2,7 @@ "name": "Stirling-PDF", "slug": "stirling-pdf", "categories": [ - 12 + 11 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/syncthing.json b/json/syncthing.json index e0239b7a9..8f1f82ae0 100644 --- a/json/syncthing.json +++ b/json/syncthing.json @@ -2,7 +2,7 @@ "name": "Syncthing", "slug": "syncthing", "categories": [ - 11 + 10 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/tandoor.json b/json/tandoor.json index ca7b6accb..3257e58f7 100644 --- a/json/tandoor.json +++ b/json/tandoor.json @@ -2,7 +2,7 @@ "name": "Tandoor Recipes", "slug": "tandoor", "categories": [ - 12 + 11 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/tasmoadmin.json b/json/tasmoadmin.json index 58c44e25e..3d87a37df 100644 --- a/json/tasmoadmin.json +++ b/json/tasmoadmin.json @@ -2,7 +2,7 @@ "name": "TasmoAdmin", "slug": "tasmoadmin", "categories": [ - 16 + 15 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/tautulli.json b/json/tautulli.json index 2e3f4f69f..0e677d8a6 100644 --- a/json/tautulli.json +++ b/json/tautulli.json @@ -2,7 +2,7 @@ "name": "Tautulli", "slug": "tautulli", "categories": [ - 13 + 12 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/tdarr.json b/json/tdarr.json index 26d523671..9824349e5 100644 --- a/json/tdarr.json +++ b/json/tdarr.json @@ -2,7 +2,7 @@ "name": "Tdarr", "slug": "tdarr", "categories": [ - 13 + 12 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/teddycloud.json b/json/teddycloud.json index a807317a7..2217c585f 100644 --- a/json/teddycloud.json +++ b/json/teddycloud.json @@ -2,7 +2,7 @@ "name": "TeddyCloud", "slug": "teddycloud", "categories": [ - 13 + 12 ], "date_created": "2024-12-28", "type": "ct", diff --git a/json/the-lounge.json b/json/the-lounge.json index 46c865549..edb8a5c98 100644 --- a/json/the-lounge.json +++ b/json/the-lounge.json @@ -2,7 +2,7 @@ "name": "The Lounge", "slug": "the-lounge", "categories": [ - 22 + 21 ], "date_created": "2024-11-28", "type": "ct", diff --git a/json/threadfin.json b/json/threadfin.json index d7efda799..bf5685666 100644 --- a/json/threadfin.json +++ b/json/threadfin.json @@ -2,7 +2,7 @@ "name": "Threadfin", "slug": "threadfin", "categories": [ - 13 + 12 ], "date_created": "2024-06-12", "type": "ct", diff --git a/json/tianji.json b/json/tianji.json index a0402e227..969045400 100644 --- a/json/tianji.json +++ b/json/tianji.json @@ -2,7 +2,7 @@ "name": "Tianji", "slug": "tianji", "categories": [ - 25 + 24 ], "date_created": "2024-09-14", "type": "ct", diff --git a/json/traccar.json b/json/traccar.json index f845bdfa3..bb0478c76 100644 --- a/json/traccar.json +++ b/json/traccar.json @@ -2,7 +2,7 @@ "name": "Traccar", "slug": "traccar", "categories": [ - 16 + 15 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/traefik.json b/json/traefik.json index a70044614..3cfa0b2cb 100644 --- a/json/traefik.json +++ b/json/traefik.json @@ -2,7 +2,7 @@ "name": "Traefik", "slug": "traefik", "categories": [ - 25 + 24 ], "date_created": "2024-05-20", "type": "ct", diff --git a/json/transmission.json b/json/transmission.json index e7c7efad8..8acd457c5 100644 --- a/json/transmission.json +++ b/json/transmission.json @@ -2,7 +2,7 @@ "name": "Transmission", "slug": "transmission", "categories": [ - 11 + 10 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/trilium.json b/json/trilium.json index c937cc613..e813930b5 100644 --- a/json/trilium.json +++ b/json/trilium.json @@ -2,7 +2,7 @@ "name": "Trilium", "slug": "trilium", "categories": [ - 12 + 11 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/typesense.json b/json/typesense.json index 61f35efad..87867a143 100644 --- a/json/typesense.json +++ b/json/typesense.json @@ -2,7 +2,7 @@ "name": "TypeSense", "slug": "typesense", "categories": [ - 20 + 19 ], "date_created": "2025-01-06", "type": "ct", diff --git a/json/umami.json b/json/umami.json index e2d95ac2a..4c738f47a 100644 --- a/json/umami.json +++ b/json/umami.json @@ -2,7 +2,7 @@ "name": "Umami", "slug": "umami", "categories": [ - 9 + 8 ], "date_created": "2024-05-09", "type": "ct", diff --git a/json/unmanic.json b/json/unmanic.json index 4a167e1f0..e218f8916 100644 --- a/json/unmanic.json +++ b/json/unmanic.json @@ -2,7 +2,7 @@ "name": "Unmanic", "slug": "unmanic", "categories": [ - 13 + 12 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/update-repo.json b/json/update-repo.json index 669843075..0f64d1afc 100644 --- a/json/update-repo.json +++ b/json/update-repo.json @@ -2,7 +2,7 @@ "name": "Proxmox Update Repositories", "slug": "update-repo", "categories": [ - 25 + 24 ], "date_created": "2024-11-04", "type": "misc", diff --git a/json/uptimekuma.json b/json/uptimekuma.json index 02dd5d2b2..7cb447931 100644 --- a/json/uptimekuma.json +++ b/json/uptimekuma.json @@ -2,7 +2,7 @@ "name": "Uptime Kuma", "slug": "uptimekuma", "categories": [ - 9 + 8 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/vikunja.json b/json/vikunja.json index d6c58b8fa..7443f69bc 100644 --- a/json/vikunja.json +++ b/json/vikunja.json @@ -2,7 +2,7 @@ "name": "Vikunja", "slug": "vikunja", "categories": [ - 12 + 11 ], "date_created": "2024-11-05", "type": "ct", diff --git a/json/wallos.json b/json/wallos.json index be8648078..33b3415cb 100644 --- a/json/wallos.json +++ b/json/wallos.json @@ -2,7 +2,7 @@ "name": "Wallos", "slug": "wallos", "categories": [ - 23 + 22 ], "date_created": "2024-10-24", "type": "ct", diff --git a/json/wastebin.json b/json/wastebin.json index 9cc337f43..0b776ebdd 100644 --- a/json/wastebin.json +++ b/json/wastebin.json @@ -2,7 +2,7 @@ "name": "Wastebin", "slug": "wastebin", "categories": [ - 25 + 24 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/wavelog.json b/json/wavelog.json index a8f9ced4b..cecdedf52 100644 --- a/json/wavelog.json +++ b/json/wavelog.json @@ -2,7 +2,7 @@ "name": "Wavelog", "slug": "wavelog", "categories": [ - 9 + 8 ], "date_created": "2024-11-12", "type": "ct", diff --git a/json/whisparr.json b/json/whisparr.json index c2b2a8bff..b9311947f 100644 --- a/json/whisparr.json +++ b/json/whisparr.json @@ -2,7 +2,7 @@ "name": "Whisparr", "slug": "whisparr", "categories": [ - 14 + 13 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/whoogle.json b/json/whoogle.json index f97fed387..7f343b017 100644 --- a/json/whoogle.json +++ b/json/whoogle.json @@ -2,7 +2,7 @@ "name": "Whoogle", "slug": "whoogle", "categories": [ - 25 + 24 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/wikijs.json b/json/wikijs.json index dc719cdeb..e8e53bed8 100644 --- a/json/wikijs.json +++ b/json/wikijs.json @@ -2,7 +2,7 @@ "name": "Wiki.js", "slug": "wikijs", "categories": [ - 12 + 11 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/wordpress.json b/json/wordpress.json index 2b44a3c57..2499b2f97 100644 --- a/json/wordpress.json +++ b/json/wordpress.json @@ -2,7 +2,7 @@ "name": "Wordpress", "slug": "wordpress", "categories": [ - 21 + 20 ], "date_created": "2025-01-14", "type": "ct", diff --git a/json/zabbix.json b/json/zabbix.json index d0261c28b..2a0bce7c3 100644 --- a/json/zabbix.json +++ b/json/zabbix.json @@ -2,7 +2,7 @@ "name": "Zabbix", "slug": "zabbix", "categories": [ - 9 + 8 ], "date_created": "2024-06-12", "type": "ct", diff --git a/json/zammad.json b/json/zammad.json index 379e71a4e..e2ec8e712 100644 --- a/json/zammad.json +++ b/json/zammad.json @@ -2,7 +2,7 @@ "name": "Zammad", "slug": "zammad", "categories": [ - 25 + 24 ], "date_created": "2024-12-18", "type": "ct", diff --git a/json/zigbee2mqtt.json b/json/zigbee2mqtt.json index 5a8207d7b..73a9ed6d5 100644 --- a/json/zigbee2mqtt.json +++ b/json/zigbee2mqtt.json @@ -2,7 +2,7 @@ "name": "Zigbee2MQTT", "slug": "zigbee2mqtt", "categories": [ - 17 + 16 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/zipline.json b/json/zipline.json index b1d045e91..3bd911641 100644 --- a/json/zipline.json +++ b/json/zipline.json @@ -2,7 +2,7 @@ "name": "Zipline", "slug": "zipline", "categories": [ - 11 + 10 ], "date_created": "2024-09-16", "type": "ct", diff --git a/json/zwave-js-ui.json b/json/zwave-js-ui.json index daf8933e4..d8a695f6d 100644 --- a/json/zwave-js-ui.json +++ b/json/zwave-js-ui.json @@ -2,7 +2,7 @@ "name": "Z-Wave JS UI", "slug": "zwave-js-ui", "categories": [ - 17 + 16 ], "date_created": "2024-05-02", "type": "ct", From 08131f881cb739e442ad722a6816e22b6d60865c Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Mon, 20 Jan 2025 13:08:45 +0100 Subject: [PATCH 033/284] fix --- json/deconz.json | 2 +- json/emqx.json | 2 +- json/haos-vm.json | 2 +- json/homeassistant-core.json | 2 +- json/homeassistant.json | 2 +- json/mqtt.json | 2 +- json/ps5-mqtt.json | 2 +- json/rabbitmq.json | 2 +- json/zigbee2mqtt.json | 2 +- json/zwave-js-ui.json | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/json/deconz.json b/json/deconz.json index 3bf4258a0..2680e0166 100644 --- a/json/deconz.json +++ b/json/deconz.json @@ -2,7 +2,7 @@ "name": "deCONZ", "slug": "deconz", "categories": [ - 16 + 17 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/emqx.json b/json/emqx.json index 2e3233120..950705f56 100644 --- a/json/emqx.json +++ b/json/emqx.json @@ -2,7 +2,7 @@ "name": "EMQX", "slug": "emqx", "categories": [ - 17 + 18 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/haos-vm.json b/json/haos-vm.json index 6fd325ecf..c4886af78 100644 --- a/json/haos-vm.json +++ b/json/haos-vm.json @@ -2,7 +2,7 @@ "name": "Home Assistant OS", "slug": "haos-vm", "categories": [ - 2 + 16 ], "date_created": "2024-04-29", "type": "vm", diff --git a/json/homeassistant-core.json b/json/homeassistant-core.json index 2a83fc3ff..d71e5d266 100644 --- a/json/homeassistant-core.json +++ b/json/homeassistant-core.json @@ -2,7 +2,7 @@ "name": "Home Assistant Core", "slug": "homeassistant-core", "categories": [ - 15 + 16 ], "date_created": "2025-01-17", "type": "ct", diff --git a/json/homeassistant.json b/json/homeassistant.json index 542c8c136..3abb5a3ba 100644 --- a/json/homeassistant.json +++ b/json/homeassistant.json @@ -2,7 +2,7 @@ "name": "Home Assistant Container", "slug": "homeassistant", "categories": [ - 15 + 16 ], "date_created": "2024-04-29", "type": "ct", diff --git a/json/mqtt.json b/json/mqtt.json index e6c209313..5685ac331 100644 --- a/json/mqtt.json +++ b/json/mqtt.json @@ -2,7 +2,7 @@ "name": "MQTT", "slug": "mqtt", "categories": [ - 17 + 18 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/ps5-mqtt.json b/json/ps5-mqtt.json index 373603b1e..861958384 100644 --- a/json/ps5-mqtt.json +++ b/json/ps5-mqtt.json @@ -2,7 +2,7 @@ "name": "PS5-MQTT", "slug": "ps5-mqtt", "categories": [ - 17 + 18 ], "date_created": "2025-01-09", "type": "ct", diff --git a/json/rabbitmq.json b/json/rabbitmq.json index 79bdcb8bc..ab9b9c8d3 100644 --- a/json/rabbitmq.json +++ b/json/rabbitmq.json @@ -2,7 +2,7 @@ "name": "RabbitMQ", "slug": "rabbitmq", "categories": [ - 17 + 18 ], "date_created": "2024-06-27", "type": "ct", diff --git a/json/zigbee2mqtt.json b/json/zigbee2mqtt.json index 73a9ed6d5..5a8207d7b 100644 --- a/json/zigbee2mqtt.json +++ b/json/zigbee2mqtt.json @@ -2,7 +2,7 @@ "name": "Zigbee2MQTT", "slug": "zigbee2mqtt", "categories": [ - 16 + 17 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/zwave-js-ui.json b/json/zwave-js-ui.json index d8a695f6d..daf8933e4 100644 --- a/json/zwave-js-ui.json +++ b/json/zwave-js-ui.json @@ -2,7 +2,7 @@ "name": "Z-Wave JS UI", "slug": "zwave-js-ui", "categories": [ - 16 + 17 ], "date_created": "2024-05-02", "type": "ct", From e8cd6497efa742b0d19322c970ebede14db42df1 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Mon, 20 Jan 2025 13:10:02 +0100 Subject: [PATCH 034/284] fix --- json/aria2.json | 2 +- json/deluge.json | 2 +- json/filebrowser.json | 2 +- json/gokapi.json | 2 +- json/homer.json | 2 +- json/kubo.json | 2 +- json/nzbget.json | 2 +- json/pairdrop.json | 2 +- json/qbittorrent.json | 2 +- json/rdtclient.json | 2 +- json/sabnzbd.json | 2 +- json/sftpgo.json | 2 +- json/syncthing.json | 2 +- json/transmission.json | 2 +- json/zipline.json | 2 +- 15 files changed, 15 insertions(+), 15 deletions(-) diff --git a/json/aria2.json b/json/aria2.json index 971743e16..62c95f8c4 100644 --- a/json/aria2.json +++ b/json/aria2.json @@ -2,7 +2,7 @@ "name": "Aria2", "slug": "aria2", "categories": [ - 10 + 11 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/deluge.json b/json/deluge.json index e0f79b9b3..3423978a8 100644 --- a/json/deluge.json +++ b/json/deluge.json @@ -2,7 +2,7 @@ "name": "Deluge", "slug": "deluge", "categories": [ - 10 + 11 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/filebrowser.json b/json/filebrowser.json index d0dc3c06f..5b7300420 100644 --- a/json/filebrowser.json +++ b/json/filebrowser.json @@ -2,7 +2,7 @@ "name": "File Browser", "slug": "filebrowser", "categories": [ - 10 + 11 ], "date_created": "2024-05-02", "type": "misc", diff --git a/json/gokapi.json b/json/gokapi.json index 3a9bdd9bb..3d958dd88 100644 --- a/json/gokapi.json +++ b/json/gokapi.json @@ -2,7 +2,7 @@ "name": "Gokapi", "slug": "gokapi", "categories": [ - 10 + 11 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/homer.json b/json/homer.json index d997a01c4..1abe2d21b 100644 --- a/json/homer.json +++ b/json/homer.json @@ -2,7 +2,7 @@ "name": "Homer", "slug": "homer", "categories": [ - 10 + 11 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/kubo.json b/json/kubo.json index d7af51848..bc15f7b6e 100644 --- a/json/kubo.json +++ b/json/kubo.json @@ -2,7 +2,7 @@ "name": "Kubo", "slug": "kubo", "categories": [ - 10 + 11 ], "date_created": "2024-06-27", "type": "ct", diff --git a/json/nzbget.json b/json/nzbget.json index 93e2af851..073b2a6f5 100644 --- a/json/nzbget.json +++ b/json/nzbget.json @@ -2,7 +2,7 @@ "name": "NZBGet", "slug": "nzbget", "categories": [ - 10 + 11 ], "date_created": "2024-10-31", "type": "ct", diff --git a/json/pairdrop.json b/json/pairdrop.json index ff43ed6c2..b72bbb60d 100644 --- a/json/pairdrop.json +++ b/json/pairdrop.json @@ -2,7 +2,7 @@ "name": "PairDrop", "slug": "pairdrop", "categories": [ - 10 + 11 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/qbittorrent.json b/json/qbittorrent.json index 6535618e4..eb92beb07 100644 --- a/json/qbittorrent.json +++ b/json/qbittorrent.json @@ -2,7 +2,7 @@ "name": "qBittorrent", "slug": "qbittorrent", "categories": [ - 10 + 11 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/rdtclient.json b/json/rdtclient.json index 6ed1bb8f1..983e95e46 100644 --- a/json/rdtclient.json +++ b/json/rdtclient.json @@ -2,7 +2,7 @@ "name": "Real-Debrid Torrent Client", "slug": "rdtclient", "categories": [ - 10 + 11 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/sabnzbd.json b/json/sabnzbd.json index 296c33350..233397abb 100644 --- a/json/sabnzbd.json +++ b/json/sabnzbd.json @@ -2,7 +2,7 @@ "name": "SABnzbd", "slug": "sabnzbd", "categories": [ - 10 + 11 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/sftpgo.json b/json/sftpgo.json index ab0253325..fd338c781 100644 --- a/json/sftpgo.json +++ b/json/sftpgo.json @@ -2,7 +2,7 @@ "name": "SFTPGo", "slug": "sftpgo", "categories": [ - 10 + 11 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/syncthing.json b/json/syncthing.json index 8f1f82ae0..e0239b7a9 100644 --- a/json/syncthing.json +++ b/json/syncthing.json @@ -2,7 +2,7 @@ "name": "Syncthing", "slug": "syncthing", "categories": [ - 10 + 11 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/transmission.json b/json/transmission.json index 8acd457c5..e7c7efad8 100644 --- a/json/transmission.json +++ b/json/transmission.json @@ -2,7 +2,7 @@ "name": "Transmission", "slug": "transmission", "categories": [ - 10 + 11 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/zipline.json b/json/zipline.json index 3bd911641..b1d045e91 100644 --- a/json/zipline.json +++ b/json/zipline.json @@ -2,7 +2,7 @@ "name": "Zipline", "slug": "zipline", "categories": [ - 10 + 11 ], "date_created": "2024-09-16", "type": "ct", From 17d06a51aec8ee7e80d369202f3ce0aa52278fa7 Mon Sep 17 00:00:00 2001 From: "community-scripts-pr-app[bot]" <189241966+community-scripts-pr-app[bot]@users.noreply.github.com> Date: Mon, 20 Jan 2025 13:17:22 +0100 Subject: [PATCH 035/284] Update CHANGELOG.md (#1607) Co-authored-by: github-actions[bot] --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 444afd6bd..aaed6054e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -32,6 +32,7 @@ Do not break established syntax in this file, as it is automatically updated by ### 🌐 Website +- Update Website | Add new Categories [@MickLesk](https://github.com/MickLesk) ([#1606](https://github.com/community-scripts/ProxmoxVE/pull/1606)) - Grafana: Mark container as updateable [@andygrunwald](https://github.com/andygrunwald) ([#1603](https://github.com/community-scripts/ProxmoxVE/pull/1603)) ### 🧰 Maintenance From 76742e7910dedca2fdaa59bc88d4751f6ab27e9c Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Mon, 20 Jan 2025 13:38:32 +0100 Subject: [PATCH 036/284] update --- json/5etools.json | 2 +- json/actualbudget.json | 2 +- json/adventurelog.json | 2 +- json/agentdvr.json | 2 +- json/apache-cassandra.json | 2 +- json/apache-couchdb.json | 2 +- json/apache-guacamole.json | 2 +- json/archivebox.json | 2 +- json/autobrr.json | 2 +- json/bazarr.json | 2 +- json/bookstack.json | 2 +- json/bunkerweb.json | 2 +- json/caddy.json | 2 +- json/changedetection.json | 2 +- json/channels.json | 2 +- json/checkmk.json | 2 +- json/cockpit.json | 2 +- json/code-server.json | 2 +- json/commafeed.json | 2 +- json/cronicle.json | 2 +- json/daemonsync.json | 2 +- json/dashy.json | 2 +- json/dotnetaspwebapi.json | 2 +- json/emby.json | 2 +- json/ersatztv.json | 2 +- json/esphome.json | 2 +- json/evcc.json | 2 +- json/fenrus.json | 2 +- json/fhem.json | 2 +- json/filebrowser.json | 4 ++-- json/firefly.json | 2 +- json/flaresolverr.json | 2 +- json/flowiseai.json | 2 +- json/forgejo.json | 2 +- json/frigate.json | 2 +- json/ghost.json | 2 +- json/gitea.json | 2 +- json/glance.json | 2 +- json/glances.json | 2 +- json/gotify.json | 2 +- json/grafana.json | 2 +- json/grist.json | 2 +- json/grocy.json | 2 +- json/heimdall-dashboard.json | 2 +- json/hivemq.json | 2 +- json/hoarder.json | 2 +- json/homarr.json | 2 +- json/homebridge.json | 2 +- json/homepage.json | 2 +- json/homer.json | 2 +- json/hyperhdr.json | 2 +- json/hyperion.json | 2 +- json/influxdb.json | 2 +- json/inspircd.json | 2 +- json/iobroker.json | 2 +- json/jackett.json | 2 +- json/jellyfin.json | 2 +- json/jellyseerr.json | 2 +- json/jenkins.json | 2 +- json/kavita.json | 2 +- json/kimai.json | 2 +- json/komga.json | 2 +- json/komodo.json | 2 +- json/kubo.json | 2 +- json/lidarr.json | 2 +- json/linkwarden.json | 2 +- json/listmonk.json | 2 +- json/lubelogger.json | 2 +- json/mafl.json | 2 +- json/magicmirror.json | 2 +- json/mariadb.json | 2 +- json/matterbridge.json | 2 +- json/mediamtx.json | 2 +- json/memos.json | 2 +- json/metube.json | 2 +- json/mikrotik-routeros.json | 2 +- json/mongodb.json | 2 +- json/monitor-all.json | 2 +- json/motioneye.json | 2 +- json/mylar3.json | 2 +- json/mysql.json | 2 +- json/n8n.json | 2 +- json/navidrome.json | 2 +- json/neo4j.json | 2 +- json/netdata.json | 2 +- json/nextpvr.json | 2 +- json/nginxproxymanager.json | 2 +- json/nocodb.json | 2 +- json/node-red.json | 2 +- json/notifiarr.json | 2 +- json/ntfy.json | 2 +- json/octoprint.json | 2 +- json/olivetin.json | 2 +- json/onedev.json | 2 +- json/opengist.json | 2 +- json/openhab.json | 2 +- json/openobserve.json | 2 +- json/openwebui.json | 2 +- json/openwrt.json | 2 +- json/overseerr.json | 2 +- json/owncast.json | 2 +- json/paperless-ngx.json | 2 +- json/part-db.json | 2 +- json/pf2etools.json | 2 +- json/photoprism.json | 2 +- json/pialert.json | 2 +- json/pimox-haos-vm.json | 2 +- json/pingvin.json | 2 +- json/plex.json | 2 +- json/pocketbase.json | 2 +- json/podman-homeassistant.json | 2 +- json/postgresql.json | 2 +- json/prometheus-alertmanager.json | 2 +- json/prometheus.json | 2 +- json/prowlarr.json | 2 +- json/radarr.json | 2 +- json/readarr.json | 2 +- json/readeck.json | 4 ++-- json/recyclarr.json | 2 +- json/redis.json | 2 +- json/rtsptoweb.json | 2 +- json/semaphore.json | 2 +- json/shinobi.json | 2 +- json/silverbullet.json | 2 +- json/smokeping.json | 2 +- json/snipeit.json | 2 +- json/sonarr.json | 2 +- json/spoolman.json | 2 +- json/stirling-pdf.json | 2 +- json/syncthing.json | 2 +- json/tandoor.json | 2 +- json/tasmoadmin.json | 2 +- json/tautulli.json | 2 +- json/tdarr.json | 2 +- json/teddycloud.json | 2 +- json/the-lounge.json | 2 +- json/threadfin.json | 2 +- json/tianji.json | 2 +- json/traccar.json | 2 +- json/traefik.json | 2 +- json/trilium.json | 2 +- json/typesense.json | 2 +- json/umami.json | 2 +- json/unmanic.json | 2 +- json/update-repo.json | 2 +- json/uptimekuma.json | 2 +- json/vikunja.json | 2 +- json/wallos.json | 2 +- json/wastebin.json | 2 +- json/wavelog.json | 2 +- json/webmin.json | 2 +- json/whisparr.json | 2 +- json/whoogle.json | 2 +- json/wikijs.json | 2 +- json/wordpress.json | 2 +- json/zabbix.json | 2 +- json/zammad.json | 2 +- 157 files changed, 159 insertions(+), 159 deletions(-) diff --git a/json/5etools.json b/json/5etools.json index 4753b0de2..8c808d989 100644 --- a/json/5etools.json +++ b/json/5etools.json @@ -2,7 +2,7 @@ "name": "5etools", "slug": "5etools", "categories": [ - 23 + 24 ], "date_created": "2025-01-02", "type": "ct", diff --git a/json/actualbudget.json b/json/actualbudget.json index 89fe0a872..b38de5a0a 100644 --- a/json/actualbudget.json +++ b/json/actualbudget.json @@ -2,7 +2,7 @@ "name": "Actual Budget", "slug": "actualbudget", "categories": [ - 22 + 23 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/adventurelog.json b/json/adventurelog.json index 74a016f3c..5596d6fb3 100644 --- a/json/adventurelog.json +++ b/json/adventurelog.json @@ -2,7 +2,7 @@ "name": "AdventureLog", "slug": "adventurelog", "categories": [ - 23 + 24 ], "date_created": "2024-10-26", "type": "ct", diff --git a/json/agentdvr.json b/json/agentdvr.json index 623d43723..7fbc19bf5 100644 --- a/json/agentdvr.json +++ b/json/agentdvr.json @@ -2,7 +2,7 @@ "name": "AgentDVR", "slug": "agentdvr", "categories": [ - 14 + 15 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/apache-cassandra.json b/json/apache-cassandra.json index b3b644229..6b9969a37 100644 --- a/json/apache-cassandra.json +++ b/json/apache-cassandra.json @@ -2,7 +2,7 @@ "name": "Apache-Cassandra", "slug": "apache-cassandra", "categories": [ - 7 + 8 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/apache-couchdb.json b/json/apache-couchdb.json index fd601aa89..5c711bf30 100644 --- a/json/apache-couchdb.json +++ b/json/apache-couchdb.json @@ -2,7 +2,7 @@ "name": "Apache-CouchDB", "slug": "apache-couchdb", "categories": [ - 7 + 8 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/apache-guacamole.json b/json/apache-guacamole.json index 254cd233d..490a2acbf 100644 --- a/json/apache-guacamole.json +++ b/json/apache-guacamole.json @@ -2,7 +2,7 @@ "name": "Apache Guacamole", "slug": "apache-guacamole", "categories": [ - 20 + 0 ], "date_created": "2024-12-19", "type": "ct", diff --git a/json/archivebox.json b/json/archivebox.json index cca3cf806..ab1cfa995 100644 --- a/json/archivebox.json +++ b/json/archivebox.json @@ -2,7 +2,7 @@ "name": "ArchiveBox", "slug": "archivebox", "categories": [ - 11 + 12 ], "date_created": "2024-10-19", "type": "ct", diff --git a/json/autobrr.json b/json/autobrr.json index 645357827..eafddc6d7 100644 --- a/json/autobrr.json +++ b/json/autobrr.json @@ -2,7 +2,7 @@ "name": "Autobrr", "slug": "autobrr", "categories": [ - 18 + 14 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/bazarr.json b/json/bazarr.json index 8928367c8..b51393f3c 100644 --- a/json/bazarr.json +++ b/json/bazarr.json @@ -2,7 +2,7 @@ "name": "Bazarr", "slug": "bazarr", "categories": [ - 13 + 14 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/bookstack.json b/json/bookstack.json index d2f7180c6..48a18ac35 100644 --- a/json/bookstack.json +++ b/json/bookstack.json @@ -2,7 +2,7 @@ "name": "BookStack", "slug": "bookstack", "categories": [ - 11 + 12 ], "date_created": "2024-11-05", "type": "ct", diff --git a/json/bunkerweb.json b/json/bunkerweb.json index 4d667e858..d1b3075a6 100644 --- a/json/bunkerweb.json +++ b/json/bunkerweb.json @@ -2,7 +2,7 @@ "name": "BunkerWeb", "slug": "bunkerweb", "categories": [ - 24 + 6 ], "date_created": "2024-06-12", "type": "ct", diff --git a/json/caddy.json b/json/caddy.json index d40b8c505..9530b0301 100644 --- a/json/caddy.json +++ b/json/caddy.json @@ -2,7 +2,7 @@ "name": "Caddy", "slug": "caddy", "categories": [ - 24 + 21 ], "date_created": "2024-05-11", "type": "ct", diff --git a/json/changedetection.json b/json/changedetection.json index d74f81d9b..1bff31c96 100644 --- a/json/changedetection.json +++ b/json/changedetection.json @@ -2,7 +2,7 @@ "name": "Change Detection", "slug": "changedetection", "categories": [ - 8 + 24 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/channels.json b/json/channels.json index 44ce486a5..d0297881a 100644 --- a/json/channels.json +++ b/json/channels.json @@ -2,7 +2,7 @@ "name": "Channels DVR Server", "slug": "channels", "categories": [ - 12 + 15 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/checkmk.json b/json/checkmk.json index d36381007..be1bcd8c9 100644 --- a/json/checkmk.json +++ b/json/checkmk.json @@ -2,7 +2,7 @@ "name": "Checkmk", "slug": "checkmk", "categories": [ - 8 + 9 ], "date_created": "2024-12-19", "type": "ct", diff --git a/json/cockpit.json b/json/cockpit.json index e1437ab11..b03d24663 100644 --- a/json/cockpit.json +++ b/json/cockpit.json @@ -2,7 +2,7 @@ "name": "Cockpit", "slug": "cockpit", "categories": [ - 9 + 10 ], "date_created": "2024-10-20", "type": "ct", diff --git a/json/code-server.json b/json/code-server.json index 03e38d0df..cd68a8a26 100644 --- a/json/code-server.json +++ b/json/code-server.json @@ -2,7 +2,7 @@ "name": "VS Code Server", "slug": "code-server", "categories": [ - 19 + 1 ], "date_created": "2024-05-02", "type": "misc", diff --git a/json/commafeed.json b/json/commafeed.json index 02137a3c2..07e418b23 100644 --- a/json/commafeed.json +++ b/json/commafeed.json @@ -2,7 +2,7 @@ "name": "CommaFeed", "slug": "commafeed", "categories": [ - 9 + 19 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/cronicle.json b/json/cronicle.json index 0a5d7d018..2d46c1cee 100644 --- a/json/cronicle.json +++ b/json/cronicle.json @@ -2,7 +2,7 @@ "name": "Cronicle Primary", "slug": "cronicle", "categories": [ - 18 + 19 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/daemonsync.json b/json/daemonsync.json index 6e41b5e06..1855ebfa6 100644 --- a/json/daemonsync.json +++ b/json/daemonsync.json @@ -2,7 +2,7 @@ "name": "Daemon Sync Server", "slug": "daemonsync", "categories": [ - 18 + 19 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/dashy.json b/json/dashy.json index 7339644b6..f6adc1fca 100644 --- a/json/dashy.json +++ b/json/dashy.json @@ -2,7 +2,7 @@ "name": "Dashy", "slug": "dashy", "categories": [ - 9 + 10 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/dotnetaspwebapi.json b/json/dotnetaspwebapi.json index 0bfd12897..e078427e6 100644 --- a/json/dotnetaspwebapi.json +++ b/json/dotnetaspwebapi.json @@ -2,7 +2,7 @@ "name":"Dotnet ASP Web API", "slug":"dotnetaspwebapi", "categories":[ - 19 + 20 ], "date_created":"2025-01-15", "type":"ct", diff --git a/json/emby.json b/json/emby.json index 3516b84ca..3fe49ac0c 100644 --- a/json/emby.json +++ b/json/emby.json @@ -2,7 +2,7 @@ "name": "Emby Media Server", "slug": "emby", "categories": [ - 12 + 13 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/ersatztv.json b/json/ersatztv.json index 30fc3f738..9f09a9788 100644 --- a/json/ersatztv.json +++ b/json/ersatztv.json @@ -2,7 +2,7 @@ "name": "ErsatzTV", "slug": "ersatztv", "categories": [ - 12 + 13 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/esphome.json b/json/esphome.json index 349c43e4a..db1a42627 100644 --- a/json/esphome.json +++ b/json/esphome.json @@ -2,7 +2,7 @@ "name": "ESPHome", "slug": "esphome", "categories": [ - 15 + 16 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/evcc.json b/json/evcc.json index a256bf331..dd66f7315 100644 --- a/json/evcc.json +++ b/json/evcc.json @@ -2,7 +2,7 @@ "name": "evcc", "slug": "evcc", "categories": [ - 15 + 16 ], "date_created": "2024-10-15", "type": "ct", diff --git a/json/fenrus.json b/json/fenrus.json index 24dd44935..ff38d709f 100644 --- a/json/fenrus.json +++ b/json/fenrus.json @@ -2,7 +2,7 @@ "name": "Fenrus", "slug": "fenrus", "categories": [ - 9 + 10 ], "date_created": "2024-05-05", "type": "ct", diff --git a/json/fhem.json b/json/fhem.json index a84cac660..7a1f16ebc 100644 --- a/json/fhem.json +++ b/json/fhem.json @@ -2,7 +2,7 @@ "name": "FHEM", "slug": "fhem", "categories": [ - 15 + 16 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/filebrowser.json b/json/filebrowser.json index 5b7300420..44b023bee 100644 --- a/json/filebrowser.json +++ b/json/filebrowser.json @@ -2,7 +2,7 @@ "name": "File Browser", "slug": "filebrowser", "categories": [ - 11 + 1 ], "date_created": "2024-05-02", "type": "misc", @@ -36,4 +36,4 @@ "type": "warning" } ] -} +} \ No newline at end of file diff --git a/json/firefly.json b/json/firefly.json index 7f8f01637..c2d7fc6e2 100644 --- a/json/firefly.json +++ b/json/firefly.json @@ -2,7 +2,7 @@ "name": "Firefly III", "slug": "firefly", "categories": [ - 22 + 23 ], "date_created": "2025-01-01", "type": "ct", diff --git a/json/flaresolverr.json b/json/flaresolverr.json index b672c7334..7f1bbd85d 100644 --- a/json/flaresolverr.json +++ b/json/flaresolverr.json @@ -2,7 +2,7 @@ "name": "FlareSolverr", "slug": "flaresolverr", "categories": [ - 4 + 14 ], "date_created": "2024-06-12", "type": "ct", diff --git a/json/flowiseai.json b/json/flowiseai.json index b2f99b5c7..0c4dd7ab5 100644 --- a/json/flowiseai.json +++ b/json/flowiseai.json @@ -2,7 +2,7 @@ "name": "FlowiseAI", "slug": "flowiseai", "categories": [ - 19 + 20 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/forgejo.json b/json/forgejo.json index 3a16cf9a5..3291eb57d 100644 --- a/json/forgejo.json +++ b/json/forgejo.json @@ -2,7 +2,7 @@ "name": "Forgejo", "slug": "forgejo", "categories": [ - 19 + 20 ], "date_created": "2024-06-12", "type": "ct", diff --git a/json/frigate.json b/json/frigate.json index 5f90f1923..e1c4c1b63 100644 --- a/json/frigate.json +++ b/json/frigate.json @@ -2,7 +2,7 @@ "name": "Frigate", "slug": "frigate", "categories": [ - 14 + 15 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/ghost.json b/json/ghost.json index 63071f62b..7d3568c0f 100644 --- a/json/ghost.json +++ b/json/ghost.json @@ -2,7 +2,7 @@ "name": "Ghost", "slug": "ghost", "categories": [ - 24 + 25 ], "date_created": "2025-01-10", "type": "ct", diff --git a/json/gitea.json b/json/gitea.json index 17d2a29c2..82890c1d7 100644 --- a/json/gitea.json +++ b/json/gitea.json @@ -2,7 +2,7 @@ "name": "Gitea", "slug": "gitea", "categories": [ - 19 + 20 ], "date_created": "2024-07-26", "type": "ct", diff --git a/json/glance.json b/json/glance.json index bbfb7b1f3..94a8b0730 100644 --- a/json/glance.json +++ b/json/glance.json @@ -2,7 +2,7 @@ "name": "Glance", "slug": "glance", "categories": [ - 8 + 9 ], "date_created": "2024-12-02", "type": "ct", diff --git a/json/glances.json b/json/glances.json index a9505b591..c70efe0c9 100644 --- a/json/glances.json +++ b/json/glances.json @@ -2,7 +2,7 @@ "name": "Glances", "slug": "glances", "categories": [ - 8 + 9 ], "date_created": "2024-05-02", "type": "misc", diff --git a/json/gotify.json b/json/gotify.json index f5bb0b764..1ffc74ac7 100644 --- a/json/gotify.json +++ b/json/gotify.json @@ -2,7 +2,7 @@ "name": "Gotify", "slug": "gotify", "categories": [ - 17 + 19 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/grafana.json b/json/grafana.json index e30f12f87..1e1515afb 100644 --- a/json/grafana.json +++ b/json/grafana.json @@ -2,7 +2,7 @@ "name": "Grafana", "slug": "grafana", "categories": [ - 8 + 9 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/grist.json b/json/grist.json index a3264e938..0c82240a5 100644 --- a/json/grist.json +++ b/json/grist.json @@ -2,7 +2,7 @@ "name": "Grist", "slug": "grist", "categories": [ - 11 + 12 ], "date_created": "2024-12-27", "type": "ct", diff --git a/json/grocy.json b/json/grocy.json index 3e6fc0775..1325452dd 100644 --- a/json/grocy.json +++ b/json/grocy.json @@ -2,7 +2,7 @@ "name": "grocy", "slug": "grocy", "categories": [ - 15 + 24 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/heimdall-dashboard.json b/json/heimdall-dashboard.json index 65bf8b8f1..7f84a5c13 100644 --- a/json/heimdall-dashboard.json +++ b/json/heimdall-dashboard.json @@ -2,7 +2,7 @@ "name": "Heimdall Dashboard", "slug": "heimdall-dashboard", "categories": [ - 9 + 10 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/hivemq.json b/json/hivemq.json index 775486e51..8f710c564 100644 --- a/json/hivemq.json +++ b/json/hivemq.json @@ -2,7 +2,7 @@ "name": "HiveMQ CE", "slug": "hivemq", "categories": [ - 17 + 18 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/hoarder.json b/json/hoarder.json index c84614e74..3f15aaa7a 100644 --- a/json/hoarder.json +++ b/json/hoarder.json @@ -2,7 +2,7 @@ "name": "Hoarder", "slug": "hoarder", "categories": [ - 11 + 12 ], "date_created": "2024-12-02", "type": "ct", diff --git a/json/homarr.json b/json/homarr.json index daaebfc7d..dea87f136 100644 --- a/json/homarr.json +++ b/json/homarr.json @@ -2,7 +2,7 @@ "name": "Homarr", "slug": "homarr", "categories": [ - 9 + 10 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/homebridge.json b/json/homebridge.json index 76fa1e619..1a25369ab 100644 --- a/json/homebridge.json +++ b/json/homebridge.json @@ -2,7 +2,7 @@ "name": "Homebridge", "slug": "homebridge", "categories": [ - 15 + 16 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/homepage.json b/json/homepage.json index b0f63bfec..04ddc3a8d 100644 --- a/json/homepage.json +++ b/json/homepage.json @@ -2,7 +2,7 @@ "name": "Homepage", "slug": "homepage", "categories": [ - 9 + 10 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/homer.json b/json/homer.json index 1abe2d21b..d997a01c4 100644 --- a/json/homer.json +++ b/json/homer.json @@ -2,7 +2,7 @@ "name": "Homer", "slug": "homer", "categories": [ - 11 + 10 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/hyperhdr.json b/json/hyperhdr.json index fb7f52e49..d5f10ef1a 100644 --- a/json/hyperhdr.json +++ b/json/hyperhdr.json @@ -2,7 +2,7 @@ "name": "HyperHDR", "slug": "hyperhdr", "categories": [ - 12 + 13 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/hyperion.json b/json/hyperion.json index 338f7007b..9fdcec4bb 100644 --- a/json/hyperion.json +++ b/json/hyperion.json @@ -2,7 +2,7 @@ "name": "Hyperion", "slug": "hyperion", "categories": [ - 12 + 13 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/influxdb.json b/json/influxdb.json index 89fce5253..0c38be749 100644 --- a/json/influxdb.json +++ b/json/influxdb.json @@ -2,7 +2,7 @@ "name": "InfluxDB", "slug": "influxdb", "categories": [ - 7 + 8 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/inspircd.json b/json/inspircd.json index c0b983305..391b0123c 100644 --- a/json/inspircd.json +++ b/json/inspircd.json @@ -2,7 +2,7 @@ "name": "InspIRCd 4", "slug": "inspircd", "categories": [ - 17 + 24 ], "date_created": "2024-11-29", "type": "ct", diff --git a/json/iobroker.json b/json/iobroker.json index 207dd1f0e..b56c000ef 100644 --- a/json/iobroker.json +++ b/json/iobroker.json @@ -2,7 +2,7 @@ "name": "ioBroker", "slug": "iobroker", "categories": [ - 15 + 16 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/jackett.json b/json/jackett.json index 1a338a48e..e2ee516d8 100644 --- a/json/jackett.json +++ b/json/jackett.json @@ -2,7 +2,7 @@ "name": "Jackett", "slug": "jackett", "categories": [ - 13 + 11 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/jellyfin.json b/json/jellyfin.json index bcd43ce7d..0f9bd5c8a 100644 --- a/json/jellyfin.json +++ b/json/jellyfin.json @@ -2,7 +2,7 @@ "name": "Jellyfin Media Server", "slug": "jellyfin", "categories": [ - 12 + 13 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/jellyseerr.json b/json/jellyseerr.json index 721ed4386..fc739df86 100644 --- a/json/jellyseerr.json +++ b/json/jellyseerr.json @@ -2,7 +2,7 @@ "name": "Jellyseerr", "slug": "jellyseerr", "categories": [ - 13 + 14 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/jenkins.json b/json/jenkins.json index 6d90ccf33..7147e6dc1 100644 --- a/json/jenkins.json +++ b/json/jenkins.json @@ -2,7 +2,7 @@ "name": "Jenkins", "slug": "jenkins", "categories": [ - 18 + 22 ], "date_created": "2024-12-26", "type": "ct", diff --git a/json/kavita.json b/json/kavita.json index f97fe27ca..6e86d6fc0 100644 --- a/json/kavita.json +++ b/json/kavita.json @@ -2,7 +2,7 @@ "name": "Kavita", "slug": "kavita", "categories": [ - 12 + 13 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/kimai.json b/json/kimai.json index a1f75de58..15b470e01 100644 --- a/json/kimai.json +++ b/json/kimai.json @@ -2,7 +2,7 @@ "name": "Kimai", "slug": "kimai", "categories": [ - 24 + 25 ], "date_created": "2024-11-20", "type": "ct", diff --git a/json/komga.json b/json/komga.json index 50c31664c..cd3a8a448 100644 --- a/json/komga.json +++ b/json/komga.json @@ -2,7 +2,7 @@ "name": "Komga", "slug": "komga", "categories": [ - 12 + 13 ], "date_created": "2024-11-15", "type": "ct", diff --git a/json/komodo.json b/json/komodo.json index 7045396f3..f168b4613 100644 --- a/json/komodo.json +++ b/json/komodo.json @@ -2,7 +2,7 @@ "name": "Komodo", "slug": "komodo", "categories": [ - 19 + 3 ], "date_created": "2025-01-01", "type": "ct", diff --git a/json/kubo.json b/json/kubo.json index bc15f7b6e..be7343ffb 100644 --- a/json/kubo.json +++ b/json/kubo.json @@ -2,7 +2,7 @@ "name": "Kubo", "slug": "kubo", "categories": [ - 11 + 4 ], "date_created": "2024-06-27", "type": "ct", diff --git a/json/lidarr.json b/json/lidarr.json index 23afecb90..57229bbc1 100644 --- a/json/lidarr.json +++ b/json/lidarr.json @@ -2,7 +2,7 @@ "name": "Lidarr", "slug": "lidarr", "categories": [ - 13 + 14 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/linkwarden.json b/json/linkwarden.json index 7799ad5fc..974afebfe 100644 --- a/json/linkwarden.json +++ b/json/linkwarden.json @@ -2,7 +2,7 @@ "name": "Linkwarden", "slug": "linkwarden", "categories": [ - 11 + 12 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/listmonk.json b/json/listmonk.json index 98bfa91b3..b2607ee2d 100644 --- a/json/listmonk.json +++ b/json/listmonk.json @@ -2,7 +2,7 @@ "name": "listmonk", "slug": "listmonk", "categories": [ - 21 + 0 ], "date_created": "2024-11-22", "type": "ct", diff --git a/json/lubelogger.json b/json/lubelogger.json index 3eb6cd37e..d42008334 100644 --- a/json/lubelogger.json +++ b/json/lubelogger.json @@ -2,7 +2,7 @@ "name": "LubeLogger", "slug": "lubelogger", "categories": [ - 8 + 24 ], "date_created": "2024-11-29", "type": "ct", diff --git a/json/mafl.json b/json/mafl.json index cfc9bafbf..9ed6f2e2f 100644 --- a/json/mafl.json +++ b/json/mafl.json @@ -2,7 +2,7 @@ "name": "Mafl", "slug": "mafl", "categories": [ - 24 + 10 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/magicmirror.json b/json/magicmirror.json index d534e7ac0..d9b876373 100644 --- a/json/magicmirror.json +++ b/json/magicmirror.json @@ -2,7 +2,7 @@ "name": "MagicMirror Server", "slug": "magicmirror", "categories": [ - 15 + 24 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/mariadb.json b/json/mariadb.json index 6c635671f..886b76784 100644 --- a/json/mariadb.json +++ b/json/mariadb.json @@ -2,7 +2,7 @@ "name": "Mariadb", "slug": "mariadb", "categories": [ - 7 + 8 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/matterbridge.json b/json/matterbridge.json index 80e0fb901..c3307153f 100644 --- a/json/matterbridge.json +++ b/json/matterbridge.json @@ -2,7 +2,7 @@ "name": "Matterbridge", "slug": "matterbridge", "categories": [ - 21 + 17 ], "date_created": "2024-06-12", "type": "ct", diff --git a/json/mediamtx.json b/json/mediamtx.json index 6343ada95..b2ee80db4 100644 --- a/json/mediamtx.json +++ b/json/mediamtx.json @@ -2,7 +2,7 @@ "name": "MediaMTX", "slug": "mediamtx", "categories": [ - 12 + 13 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/memos.json b/json/memos.json index 13d2a8078..0d6ed537d 100644 --- a/json/memos.json +++ b/json/memos.json @@ -2,7 +2,7 @@ "name": "Memos", "slug": "memos", "categories": [ - 11 + 12 ], "date_created": "2024-10-31", "type": "ct", diff --git a/json/metube.json b/json/metube.json index ff2f75698..8993e1035 100644 --- a/json/metube.json +++ b/json/metube.json @@ -2,7 +2,7 @@ "name": "MeTube", "slug": "metube", "categories": [ - 12 + 11 ], "date_created": "2024-06-12", "type": "ct", diff --git a/json/mikrotik-routeros.json b/json/mikrotik-routeros.json index 594ebc83c..03d87c757 100644 --- a/json/mikrotik-routeros.json +++ b/json/mikrotik-routeros.json @@ -2,7 +2,7 @@ "name": "Mikrotik RouterOS CHR", "slug": "mikrotik-routeros", "categories": [ - 4 + 2 ], "date_created": "2024-05-02", "type": "vm", diff --git a/json/mongodb.json b/json/mongodb.json index 7f4a357f1..ab89acff7 100644 --- a/json/mongodb.json +++ b/json/mongodb.json @@ -2,7 +2,7 @@ "name": "MongoDB", "slug": "mongodb", "categories": [ - 7 + 8 ], "date_created": "2024-05-18", "type": "ct", diff --git a/json/monitor-all.json b/json/monitor-all.json index 8b8cde46d..52a14fd10 100644 --- a/json/monitor-all.json +++ b/json/monitor-all.json @@ -2,7 +2,7 @@ "name": "Proxmox VE Monitor-All", "slug": "monitor-all", "categories": [ - 8 + 1 ], "date_created": "2024-04-29", "type": "misc", diff --git a/json/motioneye.json b/json/motioneye.json index a94fb5321..f303a7103 100644 --- a/json/motioneye.json +++ b/json/motioneye.json @@ -2,7 +2,7 @@ "name": "MotionEye NVR", "slug": "motioneye", "categories": [ - 14 + 15 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/mylar3.json b/json/mylar3.json index b1dc3e0af..520e545d0 100644 --- a/json/mylar3.json +++ b/json/mylar3.json @@ -2,7 +2,7 @@ "name": "Mylar3", "slug": "mylar3", "categories": [ - 13 + 14 ], "date_created": "2024-12-02", "type": "ct", diff --git a/json/mysql.json b/json/mysql.json index c1a68ea0d..66584d58f 100644 --- a/json/mysql.json +++ b/json/mysql.json @@ -2,7 +2,7 @@ "name": "MySQL", "slug": "mysql", "categories": [ - 7 + 8 ], "date_created": "2024-10-10", "type": "ct", diff --git a/json/n8n.json b/json/n8n.json index 24319d49e..e7c72421e 100644 --- a/json/n8n.json +++ b/json/n8n.json @@ -2,7 +2,7 @@ "name": "n8n", "slug": "n8n", "categories": [ - 18 + 16 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/navidrome.json b/json/navidrome.json index 697451a46..a9a491737 100644 --- a/json/navidrome.json +++ b/json/navidrome.json @@ -2,7 +2,7 @@ "name": "Navidrome", "slug": "navidrome", "categories": [ - 12 + 13 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/neo4j.json b/json/neo4j.json index a98509dcf..66f485cc3 100644 --- a/json/neo4j.json +++ b/json/neo4j.json @@ -2,7 +2,7 @@ "name": "Neo4j", "slug": "neo4j", "categories": [ - 7 + 8 ], "date_created": "2024-10-20", "type": "ct", diff --git a/json/netdata.json b/json/netdata.json index e773da5a0..d1abf45a7 100644 --- a/json/netdata.json +++ b/json/netdata.json @@ -2,7 +2,7 @@ "name": "Proxmox VE Netdata", "slug": "netdata", "categories": [ - 8 + 1 ], "date_created": "2024-04-29", "type": "misc", diff --git a/json/nextpvr.json b/json/nextpvr.json index 39644c1d4..c3c453985 100644 --- a/json/nextpvr.json +++ b/json/nextpvr.json @@ -2,7 +2,7 @@ "name": "NextPVR", "slug": "nextpvr", "categories": [ - 14 + 15 ], "date_created": "2024-11-20", "type": "ct", diff --git a/json/nginxproxymanager.json b/json/nginxproxymanager.json index d396d86da..e1feb3d58 100644 --- a/json/nginxproxymanager.json +++ b/json/nginxproxymanager.json @@ -2,7 +2,7 @@ "name": "Nginx Proxy Manager", "slug": "nginxproxymanager", "categories": [ - 24 + 21 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/nocodb.json b/json/nocodb.json index 0dd566a06..b94b78264 100644 --- a/json/nocodb.json +++ b/json/nocodb.json @@ -2,7 +2,7 @@ "name": "NocoDB", "slug": "nocodb", "categories": [ - 24 + 25 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/node-red.json b/json/node-red.json index 2bf914ec6..4244a7016 100644 --- a/json/node-red.json +++ b/json/node-red.json @@ -2,7 +2,7 @@ "name": "Node-Red", "slug": "node-red", "categories": [ - 18 + 16 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/notifiarr.json b/json/notifiarr.json index 33b19e3cb..3e040d0a2 100644 --- a/json/notifiarr.json +++ b/json/notifiarr.json @@ -2,7 +2,7 @@ "name": "Notifiarr", "slug": "notifiarr", "categories": [ - 21 + 14 ], "date_created": "2024-06-12", "type": "ct", diff --git a/json/ntfy.json b/json/ntfy.json index 7bc48f3ba..6b60c42f8 100644 --- a/json/ntfy.json +++ b/json/ntfy.json @@ -2,7 +2,7 @@ "name": "ntfy", "slug": "ntfy", "categories": [ - 21 + 19 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/octoprint.json b/json/octoprint.json index 1e19b37bc..67b4071f8 100644 --- a/json/octoprint.json +++ b/json/octoprint.json @@ -2,7 +2,7 @@ "name": "OctoPrint", "slug": "octoprint", "categories": [ - 15 + 24 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/olivetin.json b/json/olivetin.json index b2733748a..4e2a862f6 100644 --- a/json/olivetin.json +++ b/json/olivetin.json @@ -2,7 +2,7 @@ "name": "OliveTin", "slug": "olivetin", "categories": [ - 9 + 10 ], "date_created": "2024-05-02", "type": "misc", diff --git a/json/onedev.json b/json/onedev.json index 332f60b04..12bc3a4a0 100644 --- a/json/onedev.json +++ b/json/onedev.json @@ -2,7 +2,7 @@ "name": "OneDev", "slug": "onedev", "categories": [ - 19 + 20 ], "date_created": "2024-11-30", "type": "ct", diff --git a/json/opengist.json b/json/opengist.json index 58316f3b4..0d285a9a2 100644 --- a/json/opengist.json +++ b/json/opengist.json @@ -2,7 +2,7 @@ "name": "Opengist", "slug": "opengist", "categories": [ - 19 + 20 ], "date_created": "2025-01-14", "type": "ct", diff --git a/json/openhab.json b/json/openhab.json index 28cd128e4..7c5364ef0 100644 --- a/json/openhab.json +++ b/json/openhab.json @@ -2,7 +2,7 @@ "name": "openHAB", "slug": "openhab", "categories": [ - 15 + 16 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/openobserve.json b/json/openobserve.json index d18789f0e..231297e69 100644 --- a/json/openobserve.json +++ b/json/openobserve.json @@ -2,7 +2,7 @@ "name": "OpenObserve", "slug": "openobserve", "categories": [ - 8 + 9 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/openwebui.json b/json/openwebui.json index bcc5030ee..4bc958b34 100644 --- a/json/openwebui.json +++ b/json/openwebui.json @@ -2,7 +2,7 @@ "name": "Open WebUI", "slug": "openwebui", "categories": [ - 19 + 20 ], "date_created": "2024-10-24", "type": "ct", diff --git a/json/openwrt.json b/json/openwrt.json index 4c7669a4c..8b23a2607 100644 --- a/json/openwrt.json +++ b/json/openwrt.json @@ -2,7 +2,7 @@ "name": "OpenWrt", "slug": "openwrt", "categories": [ - 2 + 4 ], "date_created": "2024-05-02", "type": "vm", diff --git a/json/overseerr.json b/json/overseerr.json index 1dd1b8f4f..a2983d6d5 100644 --- a/json/overseerr.json +++ b/json/overseerr.json @@ -2,7 +2,7 @@ "name": "Overseerr", "slug": "overseerr", "categories": [ - 13 + 14 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/owncast.json b/json/owncast.json index bbb6fe75f..91f573d8d 100644 --- a/json/owncast.json +++ b/json/owncast.json @@ -2,7 +2,7 @@ "name": "Owncast", "slug": "owncast", "categories": [ - 12 + 13 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/paperless-ngx.json b/json/paperless-ngx.json index 673f2b40f..85eb6ea85 100644 --- a/json/paperless-ngx.json +++ b/json/paperless-ngx.json @@ -2,7 +2,7 @@ "name": "Paperless-ngx", "slug": "paperless-ngx", "categories": [ - 11 + 12 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/part-db.json b/json/part-db.json index 5bc1871cc..67d66bb3f 100644 --- a/json/part-db.json +++ b/json/part-db.json @@ -2,7 +2,7 @@ "name": "Part-DB", "slug": "part-db", "categories": [ - 24 + 25 ], "date_created": "2024-12-18", "type": "ct", diff --git a/json/pf2etools.json b/json/pf2etools.json index 192ddba54..f4e0856f9 100644 --- a/json/pf2etools.json +++ b/json/pf2etools.json @@ -2,7 +2,7 @@ "name": "Pf2eTools", "slug": "Pf2eTools", "categories": [ - 23 + 24 ], "date_created": "2025-01-02", "type": "ct", diff --git a/json/photoprism.json b/json/photoprism.json index 9d7bb13f2..42a15c3c9 100644 --- a/json/photoprism.json +++ b/json/photoprism.json @@ -2,7 +2,7 @@ "name": "PhotoPrism", "slug": "photoprism", "categories": [ - 12 + 13 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/pialert.json b/json/pialert.json index ad59b92ec..b88646c7f 100644 --- a/json/pialert.json +++ b/json/pialert.json @@ -2,7 +2,7 @@ "name": "Pi.Alert", "slug": "pialert", "categories": [ - 6 + 4 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/pimox-haos-vm.json b/json/pimox-haos-vm.json index 82ab65677..2a90e5c75 100644 --- a/json/pimox-haos-vm.json +++ b/json/pimox-haos-vm.json @@ -2,7 +2,7 @@ "name": "PiMox HAOS", "slug": "pimox-haos-vm", "categories": [ - 2 + 16 ], "date_created": "2024-04-29", "type": "vm", diff --git a/json/pingvin.json b/json/pingvin.json index b67ffdf0c..68187fdf5 100644 --- a/json/pingvin.json +++ b/json/pingvin.json @@ -2,7 +2,7 @@ "name": "Pingvin Share", "slug": "pingvin", "categories": [ - 24 + 11 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/plex.json b/json/plex.json index d50db7cd2..5d86353a1 100644 --- a/json/plex.json +++ b/json/plex.json @@ -2,7 +2,7 @@ "name": "Plex Media Server", "slug": "plex", "categories": [ - 12 + 13 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/pocketbase.json b/json/pocketbase.json index 9e9e13948..088cd5966 100644 --- a/json/pocketbase.json +++ b/json/pocketbase.json @@ -2,7 +2,7 @@ "name": "Pocketbase", "slug": "pocketbase", "categories": [ - 7 + 8 ], "date_created": "2024-05-07", "type": "ct", diff --git a/json/podman-homeassistant.json b/json/podman-homeassistant.json index cf3e86844..1e38b8b0c 100644 --- a/json/podman-homeassistant.json +++ b/json/podman-homeassistant.json @@ -2,7 +2,7 @@ "name": "Podman Home Assistant Container", "slug": "podman-homeassistant", "categories": [ - 3 + 16 ], "date_created": "2024-04-29", "type": "ct", diff --git a/json/postgresql.json b/json/postgresql.json index e0e653b8c..ca48964cd 100644 --- a/json/postgresql.json +++ b/json/postgresql.json @@ -2,7 +2,7 @@ "name": "PostgreSQL", "slug": "postgresql", "categories": [ - 7 + 8 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/prometheus-alertmanager.json b/json/prometheus-alertmanager.json index 76c7be161..31c5ebbfd 100644 --- a/json/prometheus-alertmanager.json +++ b/json/prometheus-alertmanager.json @@ -2,7 +2,7 @@ "name": "Prometheus Alertmanager", "slug": "prometheus-alertmanager", "categories": [ - 8 + 9 ], "date_created": "2025-01-09", "type": "ct", diff --git a/json/prometheus.json b/json/prometheus.json index 089c764c5..f7dba6db8 100644 --- a/json/prometheus.json +++ b/json/prometheus.json @@ -2,7 +2,7 @@ "name": "Prometheus", "slug": "prometheus", "categories": [ - 8 + 9 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/prowlarr.json b/json/prowlarr.json index 21208cb67..560922834 100644 --- a/json/prowlarr.json +++ b/json/prowlarr.json @@ -2,7 +2,7 @@ "name": "Prowlarr", "slug": "prowlarr", "categories": [ - 13 + 14 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/radarr.json b/json/radarr.json index 6e7deeab7..b7c6a0fe2 100644 --- a/json/radarr.json +++ b/json/radarr.json @@ -2,7 +2,7 @@ "name": "Radarr", "slug": "radarr", "categories": [ - 13 + 14 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/readarr.json b/json/readarr.json index 8cc580243..7ac0706e0 100644 --- a/json/readarr.json +++ b/json/readarr.json @@ -2,7 +2,7 @@ "name": "Readarr", "slug": "readarr", "categories": [ - 13 + 14 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/readeck.json b/json/readeck.json index 2265afdac..4848dd439 100644 --- a/json/readeck.json +++ b/json/readeck.json @@ -2,7 +2,7 @@ "name": "Readeck", "slug": "readeck", "categories": [ - 11 + 12 ], "date_created": "2024-05-02", "type": "ct", @@ -12,7 +12,7 @@ "documentation": null, "website": "https://readeck.org/", "logo": "https://codeberg.org/readeck/readeck/raw/branch/main/web/media/logo-square.svg", - "description": "Readeck helps you keep all that web content you\u2019ll want to revisit in an hour, tomorrow, or in 20 years.", + "description": "Readeck helps you keep all that web content you want to revisit in an hour, tomorrow, or in 20 years.", "install_methods": [ { "type": "default", diff --git a/json/recyclarr.json b/json/recyclarr.json index a0c0d8517..7dc92d456 100644 --- a/json/recyclarr.json +++ b/json/recyclarr.json @@ -2,7 +2,7 @@ "name": "Recyclarr", "slug": "recyclarr", "categories": [ - 13 + 14 ], "date_created": "2024-11-15", "type": "ct", diff --git a/json/redis.json b/json/redis.json index 4e3f23060..099ddfd4e 100644 --- a/json/redis.json +++ b/json/redis.json @@ -2,7 +2,7 @@ "name": "Redis ", "slug": "redis", "categories": [ - 7 + 8 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/rtsptoweb.json b/json/rtsptoweb.json index b552df830..2c29791d0 100644 --- a/json/rtsptoweb.json +++ b/json/rtsptoweb.json @@ -2,7 +2,7 @@ "name": "RTSPtoWeb", "slug": "rtsptoweb", "categories": [ - 14 + 24 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/semaphore.json b/json/semaphore.json index 5a8805496..d839790fc 100644 --- a/json/semaphore.json +++ b/json/semaphore.json @@ -2,7 +2,7 @@ "name": "Semaphore", "slug": "semaphore", "categories": [ - 18 + 19 ], "date_created": "2025-01-01", "type": "ct", diff --git a/json/shinobi.json b/json/shinobi.json index 50b2ca3f3..05d8970ab 100644 --- a/json/shinobi.json +++ b/json/shinobi.json @@ -2,7 +2,7 @@ "name": "Shinobi NVR", "slug": "shinobi", "categories": [ - 14 + 15 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/silverbullet.json b/json/silverbullet.json index 628fa4be5..0c24ff578 100644 --- a/json/silverbullet.json +++ b/json/silverbullet.json @@ -2,7 +2,7 @@ "name": "Silverbullet", "slug": "silverbullet", "categories": [ - 11 + 12 ], "date_created": "2024-12-03", "type": "ct", diff --git a/json/smokeping.json b/json/smokeping.json index ed80e550c..c4b8c830b 100644 --- a/json/smokeping.json +++ b/json/smokeping.json @@ -2,7 +2,7 @@ "name": "SmokePing", "slug": "smokeping", "categories": [ - 8 + 4 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/snipeit.json b/json/snipeit.json index 43cfcafe5..c12cd102d 100644 --- a/json/snipeit.json +++ b/json/snipeit.json @@ -2,7 +2,7 @@ "name": "SnipeIT", "slug": "snipeit", "categories": [ - 24 + 25 ], "date_created": "2024-12-02", "type": "ct", diff --git a/json/sonarr.json b/json/sonarr.json index 4a3269807..4339c7823 100644 --- a/json/sonarr.json +++ b/json/sonarr.json @@ -2,7 +2,7 @@ "name": "Sonarr", "slug": "sonarr", "categories": [ - 13 + 14 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/spoolman.json b/json/spoolman.json index 14b1d2897..76c37b38d 100644 --- a/json/spoolman.json +++ b/json/spoolman.json @@ -2,7 +2,7 @@ "name": "Spoolman", "slug": "spoolman", "categories": [ - 15 + 24 ], "date_created": "2024-06-13", "type": "ct", diff --git a/json/stirling-pdf.json b/json/stirling-pdf.json index 8b680f868..83219e292 100644 --- a/json/stirling-pdf.json +++ b/json/stirling-pdf.json @@ -2,7 +2,7 @@ "name": "Stirling-PDF", "slug": "stirling-pdf", "categories": [ - 11 + 12 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/syncthing.json b/json/syncthing.json index e0239b7a9..7760e7454 100644 --- a/json/syncthing.json +++ b/json/syncthing.json @@ -2,7 +2,7 @@ "name": "Syncthing", "slug": "syncthing", "categories": [ - 11 + 12 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/tandoor.json b/json/tandoor.json index 3257e58f7..bf8f7a021 100644 --- a/json/tandoor.json +++ b/json/tandoor.json @@ -2,7 +2,7 @@ "name": "Tandoor Recipes", "slug": "tandoor", "categories": [ - 11 + 24 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/tasmoadmin.json b/json/tasmoadmin.json index 3d87a37df..58c44e25e 100644 --- a/json/tasmoadmin.json +++ b/json/tasmoadmin.json @@ -2,7 +2,7 @@ "name": "TasmoAdmin", "slug": "tasmoadmin", "categories": [ - 15 + 16 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/tautulli.json b/json/tautulli.json index 0e677d8a6..2e3f4f69f 100644 --- a/json/tautulli.json +++ b/json/tautulli.json @@ -2,7 +2,7 @@ "name": "Tautulli", "slug": "tautulli", "categories": [ - 12 + 13 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/tdarr.json b/json/tdarr.json index 9824349e5..a712d935e 100644 --- a/json/tdarr.json +++ b/json/tdarr.json @@ -2,7 +2,7 @@ "name": "Tdarr", "slug": "tdarr", "categories": [ - 12 + 14 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/teddycloud.json b/json/teddycloud.json index 2217c585f..a807317a7 100644 --- a/json/teddycloud.json +++ b/json/teddycloud.json @@ -2,7 +2,7 @@ "name": "TeddyCloud", "slug": "teddycloud", "categories": [ - 12 + 13 ], "date_created": "2024-12-28", "type": "ct", diff --git a/json/the-lounge.json b/json/the-lounge.json index edb8a5c98..46c865549 100644 --- a/json/the-lounge.json +++ b/json/the-lounge.json @@ -2,7 +2,7 @@ "name": "The Lounge", "slug": "the-lounge", "categories": [ - 21 + 22 ], "date_created": "2024-11-28", "type": "ct", diff --git a/json/threadfin.json b/json/threadfin.json index bf5685666..d7efda799 100644 --- a/json/threadfin.json +++ b/json/threadfin.json @@ -2,7 +2,7 @@ "name": "Threadfin", "slug": "threadfin", "categories": [ - 12 + 13 ], "date_created": "2024-06-12", "type": "ct", diff --git a/json/tianji.json b/json/tianji.json index 969045400..944a233d3 100644 --- a/json/tianji.json +++ b/json/tianji.json @@ -2,7 +2,7 @@ "name": "Tianji", "slug": "tianji", "categories": [ - 24 + 9 ], "date_created": "2024-09-14", "type": "ct", diff --git a/json/traccar.json b/json/traccar.json index bb0478c76..91075f551 100644 --- a/json/traccar.json +++ b/json/traccar.json @@ -2,7 +2,7 @@ "name": "Traccar", "slug": "traccar", "categories": [ - 15 + 0 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/traefik.json b/json/traefik.json index 3cfa0b2cb..80fa93574 100644 --- a/json/traefik.json +++ b/json/traefik.json @@ -2,7 +2,7 @@ "name": "Traefik", "slug": "traefik", "categories": [ - 24 + 21 ], "date_created": "2024-05-20", "type": "ct", diff --git a/json/trilium.json b/json/trilium.json index e813930b5..c937cc613 100644 --- a/json/trilium.json +++ b/json/trilium.json @@ -2,7 +2,7 @@ "name": "Trilium", "slug": "trilium", "categories": [ - 11 + 12 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/typesense.json b/json/typesense.json index 87867a143..61f35efad 100644 --- a/json/typesense.json +++ b/json/typesense.json @@ -2,7 +2,7 @@ "name": "TypeSense", "slug": "typesense", "categories": [ - 19 + 20 ], "date_created": "2025-01-06", "type": "ct", diff --git a/json/umami.json b/json/umami.json index 4c738f47a..e2d95ac2a 100644 --- a/json/umami.json +++ b/json/umami.json @@ -2,7 +2,7 @@ "name": "Umami", "slug": "umami", "categories": [ - 8 + 9 ], "date_created": "2024-05-09", "type": "ct", diff --git a/json/unmanic.json b/json/unmanic.json index e218f8916..355142032 100644 --- a/json/unmanic.json +++ b/json/unmanic.json @@ -2,7 +2,7 @@ "name": "Unmanic", "slug": "unmanic", "categories": [ - 12 + 0 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/update-repo.json b/json/update-repo.json index 0f64d1afc..9cfc55018 100644 --- a/json/update-repo.json +++ b/json/update-repo.json @@ -2,7 +2,7 @@ "name": "Proxmox Update Repositories", "slug": "update-repo", "categories": [ - 24 + 1 ], "date_created": "2024-11-04", "type": "misc", diff --git a/json/uptimekuma.json b/json/uptimekuma.json index 7cb447931..02dd5d2b2 100644 --- a/json/uptimekuma.json +++ b/json/uptimekuma.json @@ -2,7 +2,7 @@ "name": "Uptime Kuma", "slug": "uptimekuma", "categories": [ - 8 + 9 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/vikunja.json b/json/vikunja.json index 7443f69bc..d6c58b8fa 100644 --- a/json/vikunja.json +++ b/json/vikunja.json @@ -2,7 +2,7 @@ "name": "Vikunja", "slug": "vikunja", "categories": [ - 11 + 12 ], "date_created": "2024-11-05", "type": "ct", diff --git a/json/wallos.json b/json/wallos.json index 33b3415cb..be8648078 100644 --- a/json/wallos.json +++ b/json/wallos.json @@ -2,7 +2,7 @@ "name": "Wallos", "slug": "wallos", "categories": [ - 22 + 23 ], "date_created": "2024-10-24", "type": "ct", diff --git a/json/wastebin.json b/json/wastebin.json index 0b776ebdd..728c461c6 100644 --- a/json/wastebin.json +++ b/json/wastebin.json @@ -2,7 +2,7 @@ "name": "Wastebin", "slug": "wastebin", "categories": [ - 24 + 12 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/wavelog.json b/json/wavelog.json index cecdedf52..88135dd1c 100644 --- a/json/wavelog.json +++ b/json/wavelog.json @@ -2,7 +2,7 @@ "name": "Wavelog", "slug": "wavelog", "categories": [ - 8 + 24 ], "date_created": "2024-11-12", "type": "ct", diff --git a/json/webmin.json b/json/webmin.json index 009178416..ea8809b6f 100644 --- a/json/webmin.json +++ b/json/webmin.json @@ -2,7 +2,7 @@ "name": "Webmin System Administration", "slug": "webmin", "categories": [ - 2 + 1 ], "date_created": "2024-05-02", "type": "misc", diff --git a/json/whisparr.json b/json/whisparr.json index b9311947f..c2b2a8bff 100644 --- a/json/whisparr.json +++ b/json/whisparr.json @@ -2,7 +2,7 @@ "name": "Whisparr", "slug": "whisparr", "categories": [ - 13 + 14 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/whoogle.json b/json/whoogle.json index 7f343b017..9ae032800 100644 --- a/json/whoogle.json +++ b/json/whoogle.json @@ -2,7 +2,7 @@ "name": "Whoogle", "slug": "whoogle", "categories": [ - 24 + 0 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/wikijs.json b/json/wikijs.json index e8e53bed8..dc719cdeb 100644 --- a/json/wikijs.json +++ b/json/wikijs.json @@ -2,7 +2,7 @@ "name": "Wiki.js", "slug": "wikijs", "categories": [ - 11 + 12 ], "date_created": "2024-05-02", "type": "ct", diff --git a/json/wordpress.json b/json/wordpress.json index 2499b2f97..2b44a3c57 100644 --- a/json/wordpress.json +++ b/json/wordpress.json @@ -2,7 +2,7 @@ "name": "Wordpress", "slug": "wordpress", "categories": [ - 20 + 21 ], "date_created": "2025-01-14", "type": "ct", diff --git a/json/zabbix.json b/json/zabbix.json index 2a0bce7c3..d0261c28b 100644 --- a/json/zabbix.json +++ b/json/zabbix.json @@ -2,7 +2,7 @@ "name": "Zabbix", "slug": "zabbix", "categories": [ - 8 + 9 ], "date_created": "2024-06-12", "type": "ct", diff --git a/json/zammad.json b/json/zammad.json index e2ec8e712..379e71a4e 100644 --- a/json/zammad.json +++ b/json/zammad.json @@ -2,7 +2,7 @@ "name": "Zammad", "slug": "zammad", "categories": [ - 24 + 25 ], "date_created": "2024-12-18", "type": "ct", From e0d0bcd4099a11f74fab2ee6e77d1bde58d76172 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Mon, 20 Jan 2025 13:41:32 +0100 Subject: [PATCH 037/284] bump to php 8.3 --- install/kimai-install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/kimai-install.sh b/install/kimai-install.sh index ee2aa947c..0684aa3e9 100644 --- a/install/kimai-install.sh +++ b/install/kimai-install.sh @@ -25,7 +25,7 @@ $STD apt-get install -y \ composer \ mariadb-server \ libapache2-mod-php \ - php8.2-{mbstring,gd,intl,pdo,mysql,tokenizer,zip,xml} + php8.3-{mbstring,gd,intl,pdo,mysql,tokenizer,zip,xml} msg_ok "Installed Dependencies" msg_info "Setting up database" From 723b8e8e0bf06ce6e2b9b8b8d40a81adbbb419e3 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Mon, 20 Jan 2025 14:00:33 +0100 Subject: [PATCH 038/284] Update kimai-install.sh (#1609) --- install/kimai-install.sh | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/install/kimai-install.sh b/install/kimai-install.sh index 0684aa3e9..ce62253a5 100644 --- a/install/kimai-install.sh +++ b/install/kimai-install.sh @@ -24,10 +24,21 @@ $STD apt-get install -y \ expect \ composer \ mariadb-server \ - libapache2-mod-php \ - php8.3-{mbstring,gd,intl,pdo,mysql,tokenizer,zip,xml} + lsb-release msg_ok "Installed Dependencies" +msg_info "Setup PHP8.4 Repository" +$STD curl -sSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb +$STD dpkg -i /tmp/debsuryorg-archive-keyring.deb +$STD sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list' +$STD apt-get update + +msg_ok "Setup PHP8.4 Repository" +$STD apt-get install -y \ + php8.4-{mbstring,gd,intl,common,mysql,zip,xml} \ + libapache2-mod-php8.4 +msg_info "Setup PHP" + msg_info "Setting up database" DB_NAME=kimai_db DB_USER=kimai From b8ed5e39877b51f615546f5826049342febd3b4c Mon Sep 17 00:00:00 2001 From: Kristian Skov Date: Mon, 20 Jan 2025 14:02:43 +0100 Subject: [PATCH 039/284] New Script: UrBackup Server (#1569) * Added UrBackup script * Fixed icon * Update urbackupserver-install.sh * Update install/urbackupserver-install.sh Co-authored-by: Michel Roegl-Brunner <73236783+michelroegl-brunner@users.noreply.github.com> * Update install/urbackupserver-install.sh Co-authored-by: Michel Roegl-Brunner <73236783+michelroegl-brunner@users.noreply.github.com> * Update json/urbackupserver.json Co-authored-by: Michel Roegl-Brunner <73236783+michelroegl-brunner@users.noreply.github.com> * Changed from ubuntu to debian * Update urbackupserver.json --------- Co-authored-by: Michel Roegl-Brunner <73236783+michelroegl-brunner@users.noreply.github.com> Co-authored-by: CanbiZ <47820557+MickLesk@users.noreply.github.com> --- ct/urbackupserver.sh | 49 +++++++++++++++++++++++++++++++ install/urbackupserver-install.sh | 37 +++++++++++++++++++++++ json/urbackupserver.json | 39 ++++++++++++++++++++++++ 3 files changed, 125 insertions(+) create mode 100644 ct/urbackupserver.sh create mode 100644 install/urbackupserver-install.sh create mode 100644 json/urbackupserver.json diff --git a/ct/urbackupserver.sh b/ct/urbackupserver.sh new file mode 100644 index 000000000..7ebcffb87 --- /dev/null +++ b/ct/urbackupserver.sh @@ -0,0 +1,49 @@ +#!/usr/bin/env bash +source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/refs/heads/main/misc/build.func) +# Copyright (c) 2021-2025 community-scripts ORG +# Author: Kristian Skov +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE +# Source: https://www.urbackup.org/ + +# App Default Values +APP="UrBackup Server" +var_tags="web" +var_cpu="1" +var_ram="1024" +var_disk="16" +var_os="debian" +var_version="12" +var_unprivileged="0" + +# App Output & Base Settings +header_info "$APP" +base_settings + +# Core +variables +color +catch_errors + +function update_script() { + header_info + check_container_storage + check_container_resources + if [[ ! -d /var/urbackup ]]; 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" + exit +} + +start +build_container +description + +msg_ok "Completed Successfully!\n" +echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" +echo -e "${INFO}${YW} Access it using the following IP:${CL}" +echo -e "${TAB}${GATEWAY}${BGN}${IP}:55414${CL}" diff --git a/install/urbackupserver-install.sh b/install/urbackupserver-install.sh new file mode 100644 index 000000000..120e1b933 --- /dev/null +++ b/install/urbackupserver-install.sh @@ -0,0 +1,37 @@ +#!/usr/bin/env bash + +# Copyright (c) 2021-2025 community-scripts ORG +# Author: Kristian Skov +# License: MIT | https://github.com/community-scripts/ProxmoxVE/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 \ + sudo \ + mc \ + gnupg \ + coreutils +msg_ok "Installed Dependencies" + +msg_info "Installing UrBackup Server" +curl -fsSL https://download.opensuse.org/repositories/home:uroni/Debian_12/Release.key | gpg --dearmor >/etc/apt/trusted.gpg.d/home_uroni.gpg +echo 'deb [signed-by=/etc/apt/trusted.gpg.d/home_uroni.gpg] http://download.opensuse.org/repositories/home:/uroni/Debian_12/ /' >/etc/apt/sources.list.d/home:uroni.list +$STD apt-get update -y +apt-get install -y -qq urbackup-server +msg_ok "Installed UrBackup Server" + +motd_ssh +customize + +msg_info "Cleaning up" +$STD apt-get -y autoremove +$STD apt-get -y autoclean +msg_ok "Cleaned" diff --git a/json/urbackupserver.json b/json/urbackupserver.json new file mode 100644 index 000000000..14c35bfba --- /dev/null +++ b/json/urbackupserver.json @@ -0,0 +1,39 @@ +{ + "name":"UrBackup Server", + "slug":"urbackupserver", + "categories":[ + 7 + ], + "date_created":"2025-01-18", + "type":"ct", + "updateable":true, + "privileged":true, + "interface_port":55414, + "documentation":"https://www.urbackup.org/documentation.html", + "website":"https://www.urbackup.org/", + "logo":"https://forums.urbackup.org/uploads/default/original/2X/1/1051fd74d1dcbc3ad4220b43007fcab5287272b0.png", + "description":"URBackup is an open-source backup software designed for creating reliable and efficient backups of both files and system images. It supports client-server architecture, allowing you to back up multiple computers to a central server. It offers features such as incremental backups, real-time file backup, and scheduling, ensuring minimal data loss and quick recovery", + "install_methods":[ + { + "type":"default", + "script":"ct/urbackupserver.sh", + "resources":{ + "cpu":1, + "ram":1024, + "hdd":16, + "os":"Debian", + "version":"12" + } + } + ], + "default_credentials":{ + "username":null, + "password":null + }, + "notes":[ + { + "text":"You probably want to drastically extend the storage space to fit whatever clients you want to back up", + "type":"info" + } + ] +} From 3904fb19813573879a43dd266a9d442938bbdd3d Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Mon, 20 Jan 2025 14:06:39 +0100 Subject: [PATCH 040/284] Update kimai-install.sh --- install/kimai-install.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/install/kimai-install.sh b/install/kimai-install.sh index ce62253a5..c934e6f81 100644 --- a/install/kimai-install.sh +++ b/install/kimai-install.sh @@ -32,8 +32,9 @@ $STD curl -sSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/de $STD dpkg -i /tmp/debsuryorg-archive-keyring.deb $STD sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list' $STD apt-get update - msg_ok "Setup PHP8.4 Repository" + +msg_info "Setup PHP" $STD apt-get install -y \ php8.4-{mbstring,gd,intl,common,mysql,zip,xml} \ libapache2-mod-php8.4 From d9a4586eeca30159124464a4e6435696ee29d68b Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Mon, 20 Jan 2025 14:07:46 +0100 Subject: [PATCH 041/284] Update kimai-install.sh --- install/kimai-install.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/install/kimai-install.sh b/install/kimai-install.sh index c934e6f81..1eceac7d9 100644 --- a/install/kimai-install.sh +++ b/install/kimai-install.sh @@ -36,6 +36,7 @@ msg_ok "Setup PHP8.4 Repository" msg_info "Setup PHP" $STD apt-get install -y \ + php8.4 \ php8.4-{mbstring,gd,intl,common,mysql,zip,xml} \ libapache2-mod-php8.4 msg_info "Setup PHP" From bdb2816e8710f77710e235ac1c21cc5bd30c80d8 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 20 Jan 2025 14:11:22 +0100 Subject: [PATCH 042/284] Update .app-headers file (#1611) Co-authored-by: github-actions[bot] --- misc/.app-headers | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/misc/.app-headers b/misc/.app-headers index 7fe4a0e0d..40729ddc6 100644 --- a/misc/.app-headers +++ b/misc/.app-headers @@ -1,4 +1,4 @@ -### Generated on 01-19-2025 +### Generated on 01-20-2025 ################################################## ### 2fauth.sh @@ -1900,6 +1900,21 @@ APP=Uptime Kuma \____/ .___/\__/_/_/ /_/ /_/\___/ /_/ |_\__,_/_/ /_/ /_/\__,_/ /_/ +### urbackupserver.sh +APP=UrBackup Server + __ __ ____ __ + / / / /____/ __ )____ ______/ /____ ______ + / / / / ___/ __ / __ `/ ___/ //_/ / / / __ \ +/ /_/ / / / /_/ / /_/ / /__/ ,< / /_/ / /_/ / +\____/_/ /_____/\__,_/\___/_/|_|\__,_/ .___/ + /_/ + _____ + / ___/___ ______ _____ _____ + \__ \/ _ \/ ___/ | / / _ \/ ___/ + ___/ / __/ / | |/ / __/ / +/____/\___/_/ |___/\___/_/ + + ### vaultwarden.sh APP=Vaultwarden _ __ ____ __ From 783e9b160de7733616cf8d9677015929aee516ca Mon Sep 17 00:00:00 2001 From: "community-scripts-pr-app[bot]" <189241966+community-scripts-pr-app[bot]@users.noreply.github.com> Date: Mon, 20 Jan 2025 14:12:00 +0100 Subject: [PATCH 043/284] Update CHANGELOG.md (#1610) Co-authored-by: github-actions[bot] --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index aaed6054e..4c25f32bf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,10 +23,12 @@ Do not break established syntax in this file, as it is automatically updated by ### ✨ New Scripts +- New Script: UrBackup Server [@kris701](https://github.com/kris701) ([#1569](https://github.com/community-scripts/ProxmoxVE/pull/1569)) - New Script: Proxmox Mail Gateway Post Installer [@thost96](https://github.com/thost96) ([#1559](https://github.com/community-scripts/ProxmoxVE/pull/1559)) ### πŸš€ Updated Scripts +- Update Kimai Dependency: Use PHP 8.4 [@MickLesk](https://github.com/MickLesk) ([#1609](https://github.com/community-scripts/ProxmoxVE/pull/1609)) - Fix Pocketbase URL after install [@MickLesk](https://github.com/MickLesk) ([#1597](https://github.com/community-scripts/ProxmoxVE/pull/1597)) - Unifi.sh fix wrong URL after Install [@thost96](https://github.com/thost96) ([#1601](https://github.com/community-scripts/ProxmoxVE/pull/1601)) From 70d75bf53e2b377aed847bd2e0ff3b4ffcae9224 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Mon, 20 Jan 2025 14:22:06 +0100 Subject: [PATCH 044/284] remove 8.2 / 8.3 --- install/kimai-install.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/install/kimai-install.sh b/install/kimai-install.sh index 1eceac7d9..88d5e6647 100644 --- a/install/kimai-install.sh +++ b/install/kimai-install.sh @@ -35,6 +35,8 @@ $STD apt-get update msg_ok "Setup PHP8.4 Repository" msg_info "Setup PHP" +$STD apt-get remove -y php8.2* +$STD apt-get remove -y php8.3* $STD apt-get install -y \ php8.4 \ php8.4-{mbstring,gd,intl,common,mysql,zip,xml} \ From f545c8ae5b2d6cac8d7de4a2fd6f9831bb7f54d6 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Mon, 20 Jan 2025 14:26:33 +0100 Subject: [PATCH 045/284] Update kimai-install.sh --- install/kimai-install.sh | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/install/kimai-install.sh b/install/kimai-install.sh index 88d5e6647..003e23c7e 100644 --- a/install/kimai-install.sh +++ b/install/kimai-install.sh @@ -27,20 +27,20 @@ $STD apt-get install -y \ lsb-release msg_ok "Installed Dependencies" -msg_info "Setup PHP8.4 Repository" -$STD curl -sSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb -$STD dpkg -i /tmp/debsuryorg-archive-keyring.deb -$STD sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list' -$STD apt-get update -msg_ok "Setup PHP8.4 Repository" +#msg_info "Setup PHP8.4 Repository" +#$STD curl -sSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb +#$STD dpkg -i /tmp/debsuryorg-archive-keyring.deb +#$STD sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list' +#$STD apt-get update +#msg_ok "Setup PHP8.4 Repository" msg_info "Setup PHP" -$STD apt-get remove -y php8.2* -$STD apt-get remove -y php8.3* +#$STD apt-get remove -y php8.2* +#$STD apt-get remove -y php8.3* $STD apt-get install -y \ - php8.4 \ - php8.4-{mbstring,gd,intl,common,mysql,zip,xml} \ - libapache2-mod-php8.4 + php8.3 \ + php8.3-{mbstring,gd,intl,common,mysql,zip,xml} \ + libapache2-mod-php8.3 msg_info "Setup PHP" msg_info "Setting up database" From fb67025f3b90b8cf362d7171aece047d26645495 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Mon, 20 Jan 2025 14:44:34 +0100 Subject: [PATCH 046/284] Update kimai-install.sh --- install/kimai-install.sh | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/install/kimai-install.sh b/install/kimai-install.sh index 003e23c7e..1144b3114 100644 --- a/install/kimai-install.sh +++ b/install/kimai-install.sh @@ -27,15 +27,15 @@ $STD apt-get install -y \ lsb-release msg_ok "Installed Dependencies" -#msg_info "Setup PHP8.4 Repository" -#$STD curl -sSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb -#$STD dpkg -i /tmp/debsuryorg-archive-keyring.deb -#$STD sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list' -#$STD apt-get update -#msg_ok "Setup PHP8.4 Repository" +msg_info "Setup PHP8.4 Repository" +$STD curl -sSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb +$STD dpkg -i /tmp/debsuryorg-archive-keyring.deb +$STD sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list' +$STD apt-get update +msg_ok "Setup PHP8.4 Repository" msg_info "Setup PHP" -#$STD apt-get remove -y php8.2* +$STD apt-get remove -y php8.2* #$STD apt-get remove -y php8.3* $STD apt-get install -y \ php8.3 \ From 85109ecf1168eba88ee8654e622f9cab0d11d457 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Mon, 20 Jan 2025 15:10:48 +0100 Subject: [PATCH 047/284] Feature: Add xCaddy for external Modules on Caddy-LXC (#1613) * add xcaddy to caddy for advanced modules * increase space of caddy * Update caddy.json * fix deps --- ct/caddy.sh | 4 ++-- install/caddy-install.sh | 37 +++++++++++++++++++++++++++++++++---- json/caddy.json | 15 ++++++++++++--- 3 files changed, 47 insertions(+), 9 deletions(-) diff --git a/ct/caddy.sh b/ct/caddy.sh index e8fa01b4d..96246a79c 100644 --- a/ct/caddy.sh +++ b/ct/caddy.sh @@ -10,7 +10,7 @@ APP="Caddy" var_tags="webserver" var_cpu="1" var_ram="512" -var_disk="2" +var_disk="4" var_os="debian" var_version="12" var_unprivileged="1" @@ -46,4 +46,4 @@ description msg_ok "Completed Successfully!\n" echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" echo -e "${INFO}${YW} Access it using the following URL:${CL}" -echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:80${CL}" \ No newline at end of file +echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:80${CL}" diff --git a/install/caddy-install.sh b/install/caddy-install.sh index 56a8fbd81..8490b970c 100644 --- a/install/caddy-install.sh +++ b/install/caddy-install.sh @@ -1,9 +1,8 @@ #!/usr/bin/env bash # Copyright (c) 2021-2025 tteck -# Author: tteck (tteckster) -# License: MIT -# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE +# Author: tteck (tteckster) | Co-Author: MickLesk (CanbiZ) +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE source /dev/stdin <<< "$FUNCTIONS_FILE_PATH" color @@ -14,7 +13,14 @@ network_check update_os msg_info "Installing Dependencies" -$STD apt-get install -y {debian-keyring,debian-archive-keyring,apt-transport-https,gpg,curl,sudo,mc} +$STD apt-get install -y \ + debian-keyring \ + debian-archive-keyring \ + apt-transport-https \ + gpg \ + curl \ + sudo \ + mc msg_ok "Installed Dependencies" msg_info "Installing Caddy" @@ -24,6 +30,29 @@ $STD apt-get update $STD apt-get install -y caddy msg_ok "Installed Caddy" +read -r -p "Would you like to install xCaddy Addon? " prompt +if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then + msg_info "Installing Golang" + cd /opt + set +o pipefail + GOLANG=$(curl -s https://go.dev/dl/ | grep -o "go.*\linux-amd64.tar.gz" | head -n 1) + wget -q https://golang.org/dl/$GOLANG + tar -xzf $GOLANG -C /usr/local + ln -s /usr/local/go/bin/go /usr/local/bin/go + set -o pipefail + rm -rf /opt/go* + msg_ok "Installed Golang" + + msg_info "Setup xCaddy" + cd /opt + RELEASE=$(curl -s https://api.github.com/repos/caddyserver/xcaddy/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }') + wget -q https://github.com/caddyserver/xcaddy/releases/download/${RELEASE}/xcaddy_${RELEASE:1}_linux_amd64.deb + $STD dpkg -i xcaddy_${RELEASE:1}_linux_amd64.deb + rm -rf /opt/xcaddy* + $STD xcaddy build + msg_ok "Setup xCaddy" +fi + motd_ssh customize diff --git a/json/caddy.json b/json/caddy.json index 9530b0301..bb53fd0d0 100644 --- a/json/caddy.json +++ b/json/caddy.json @@ -20,7 +20,7 @@ "resources": { "cpu": 1, "ram": 512, - "hdd": 2, + "hdd": 4, "os": "debian", "version": "12" } @@ -30,5 +30,14 @@ "username": null, "password": null }, - "notes": [] -} \ No newline at end of file + "notes": [ + { + "text": "if you need an internal module run: `caddy add-package PACKAGENAME`", + "type": "info" + }, + { + "text": "if you need an external module run: `xcaddy build --with github.com/caddy-dns/cloudflare`", + "type": "info" + } + ] +} From e64ecb97738e076ca89a74af5549e0d768851e3e Mon Sep 17 00:00:00 2001 From: Michel Roegl-Brunner <73236783+michelroegl-brunner@users.noreply.github.com> Date: Mon, 20 Jan 2025 15:11:42 +0100 Subject: [PATCH 048/284] Testing (#1612) --- misc/build.func | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/misc/build.func b/misc/build.func index a0510eda9..c8f0920d0 100644 --- a/misc/build.func +++ b/misc/build.func @@ -675,14 +675,10 @@ advanced_settings() { if ADV_TAGS=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set Custom Tags?[If you remove all, there will be no tags!]" 8 58 ${TAGS} --title "Advanced Tags" 3>&1 1>&2 2>&3); then if [ -n "${ADV_TAGS}" ]; then - ADV_TAGS=$(echo "$ADV_TAGS" | tr -d '[:space:]') # Remove whitespace from ADV_TAGS - if [[ "$ADV_TAGS" != *"community-script"* ]]; then - TAGS="community-script;${ADV_TAGS}" - else - TAGS="${ADV_TAGS}" # ADV_TAGS already contains "community-script" - fi + ADV_TAGS=$(echo "$ADV_TAGS" | tr -d '[:space:]') + TAGS="${ADV_TAGS}" else - TAGS="community-script;" + TAGS=";" fi echo -e "${NETWORK}${BOLD}${DGN}Tags: ${BGN}$TAGS${CL}" else From dfc006271ce237f83fd891bd61608ee57ca72cec Mon Sep 17 00:00:00 2001 From: "community-scripts-pr-app[bot]" <189241966+community-scripts-pr-app[bot]@users.noreply.github.com> Date: Mon, 20 Jan 2025 15:13:39 +0100 Subject: [PATCH 049/284] Update CHANGELOG.md (#1614) Co-authored-by: github-actions[bot] --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4c25f32bf..0a6264422 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,6 +28,7 @@ Do not break established syntax in this file, as it is automatically updated by ### πŸš€ Updated Scripts +- Feature: Add xCaddy for external Modules on Caddy-LXC [@MickLesk](https://github.com/MickLesk) ([#1613](https://github.com/community-scripts/ProxmoxVE/pull/1613)) - Update Kimai Dependency: Use PHP 8.4 [@MickLesk](https://github.com/MickLesk) ([#1609](https://github.com/community-scripts/ProxmoxVE/pull/1609)) - Fix Pocketbase URL after install [@MickLesk](https://github.com/MickLesk) ([#1597](https://github.com/community-scripts/ProxmoxVE/pull/1597)) - Unifi.sh fix wrong URL after Install [@thost96](https://github.com/thost96) ([#1601](https://github.com/community-scripts/ProxmoxVE/pull/1601)) @@ -39,6 +40,7 @@ Do not break established syntax in this file, as it is automatically updated by ### 🧰 Maintenance +- Update build.func: Fix Advanced Tags (Remove all if empty / overwrite if default cleared) [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1612](https://github.com/community-scripts/ProxmoxVE/pull/1612)) - Add new Check for LXC MaxKeys by @cricalix [@MickLesk](https://github.com/MickLesk) ([#1602](https://github.com/community-scripts/ProxmoxVE/pull/1602)) ## 2025-01-19 From c42438be11b63da30f94f440cfb83880f835ad28 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Mon, 20 Jan 2025 16:51:05 +0100 Subject: [PATCH 050/284] add composer update https://github.com/community-scripts/ProxmoxVE/issues/1276 --- install/kimai-install.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/install/kimai-install.sh b/install/kimai-install.sh index 1144b3114..77151fff8 100644 --- a/install/kimai-install.sh +++ b/install/kimai-install.sh @@ -87,6 +87,7 @@ send "helper-scripts.com\r" expect eof EOF +$STD composer update --no-interaction echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt" msg_ok "Installed Kimai" From c9eb13a20c1eb0f8d2fc786a8244b9c225100933 Mon Sep 17 00:00:00 2001 From: "community-scripts-pr-app[bot]" <189241966+community-scripts-pr-app[bot]@users.noreply.github.com> Date: Mon, 20 Jan 2025 17:25:02 +0100 Subject: [PATCH 051/284] Update CHANGELOG.md (#1615) Co-authored-by: github-actions[bot] --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0a6264422..538d28c28 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,8 +28,8 @@ Do not break established syntax in this file, as it is automatically updated by ### πŸš€ Updated Scripts +- Update Kimai Dependency: Use PHP 8.3 [@MickLesk](https://github.com/MickLesk) ([#1609](https://github.com/community-scripts/ProxmoxVE/pull/1609)) - Feature: Add xCaddy for external Modules on Caddy-LXC [@MickLesk](https://github.com/MickLesk) ([#1613](https://github.com/community-scripts/ProxmoxVE/pull/1613)) -- Update Kimai Dependency: Use PHP 8.4 [@MickLesk](https://github.com/MickLesk) ([#1609](https://github.com/community-scripts/ProxmoxVE/pull/1609)) - Fix Pocketbase URL after install [@MickLesk](https://github.com/MickLesk) ([#1597](https://github.com/community-scripts/ProxmoxVE/pull/1597)) - Unifi.sh fix wrong URL after Install [@thost96](https://github.com/thost96) ([#1601](https://github.com/community-scripts/ProxmoxVE/pull/1601)) From 81c327c317891427c31d2f2292882d48ce44ebfd Mon Sep 17 00:00:00 2001 From: Michel Roegl-Brunner <73236783+michelroegl-brunner@users.noreply.github.com> Date: Mon, 20 Jan 2025 18:03:27 +0100 Subject: [PATCH 052/284] [core] Update build.func: Add defaults to Advanced mode (#1548) * [core] Update build.func: Add defaults to Advanced mode * Change method * Fix copy mistake --- misc/build.func | 183 ++++++++++++++++++++++++++++++++++++------------ 1 file changed, 138 insertions(+), 45 deletions(-) diff --git a/misc/build.func b/misc/build.func index c8f0920d0..e9267b7af 100644 --- a/misc/build.func +++ b/misc/build.func @@ -382,74 +382,167 @@ exit_script() { # This function allows the user to configure advanced settings for the script. advanced_settings() { whiptail --backtitle "Proxmox VE Helper Scripts" --msgbox --title "Here is an instructional tip:" "To make a selection, use the Spacebar." 8 58 - whiptail --backtitle "Proxmox VE Helper Scripts" --msgbox --title "Default distribution for $APP" "${var_os} ${var_version} \n \nIf the default Linux distribution is not adhered to, script support will be discontinued. \n" 10 58 - if [ "$var_os" != "alpine" ]; then + whiptail --backtitle "Proxmox VE Helper Scripts" --msgbox --title "Default distribution for $APP" "Default is: ${var_os} ${var_version} \n \nIf the default Linux distribution is not adhered to, script support will be discontinued. \n" 10 58 + if [ "$var_os" != "alpine" ]; then + var_default_os="${var_os}" var_os="" while [ -z "$var_os" ]; do - if var_os=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "DISTRIBUTION" --radiolist "Choose Distribution:" 10 58 2 \ - "debian" "" OFF \ - "ubuntu" "" OFF \ - 3>&1 1>&2 2>&3); then - if [ -n "$var_os" ]; then - echo -e "${OS}${BOLD}${DGN}Operating System: ${BGN}$var_os${CL}" + if [ "$var_default_os" == "debian" ]; then + if var_os=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "DISTRIBUTION" --radiolist "Choose Distribution" 10 58 2 \ + "debian" "" ON \ + "ubuntu" "" OFF \ + 3>&1 1>&2 2>&3); then + if [ -n "$var_os" ]; then + echo -e "${OS}${BOLD}${DGN}Operating System: ${BGN}$var_os${CL}" + fi + else + exit_script + fi + fi + if [ "$var_default_os" == "ubuntu" ]; then + if var_os=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "DISTRIBUTION" --radiolist "Choose Distribution" 10 58 2 \ + "debian" "" OFF \ + "ubuntu" "" ON \ + 3>&1 1>&2 2>&3); then + if [ -n "$var_os" ]; then + echo -e "${OS}${BOLD}${DGN}Operating System: ${BGN}$var_os${CL}" + fi + else + exit_script + fi fi - else - exit_script - fi done fi if [ "$var_os" == "debian" ]; then + var_default_version="${var_version}" var_version="" while [ -z "$var_version" ]; do - if var_version=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "DEBIAN VERSION" --radiolist "Choose Version" 10 58 2 \ - "11" "Bullseye" OFF \ - "12" "Bookworm" OFF \ - 3>&1 1>&2 2>&3); then - if [ -n "$var_version" ]; then - echo -e "${OSVERSION}${BOLD}${DGN}Version: ${BGN}$var_version${CL}" + if [ "$var_default_version" == "11" ]; then + if var_version=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "DEBIAN VERSION" --radiolist "Choose Version" 10 58 2 \ + "11" "Bullseye" ON \ + "12" "Bookworm" OFF \ + 3>&1 1>&2 2>&3); then + if [ -n "$var_version" ]; then + echo -e "${OSVERSION}${BOLD}${DGN}Version: ${BGN}$var_version${CL}" + fi + else + exit_script + fi + fi + if [ "$var_default_version" == "12" ]; then + if var_version=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "DEBIAN VERSION" --radiolist "Choose Version" 10 58 2 \ + "11" "Bullseye" OFF \ + "12" "Bookworm" ON \ + 3>&1 1>&2 2>&3); then + if [ -n "$var_version" ]; then + echo -e "${OSVERSION}${BOLD}${DGN}Version: ${BGN}$var_version${CL}" + fi + else + exit_script fi - else - exit_script fi done fi if [ "$var_os" == "ubuntu" ]; then + var_default_version="${var_version}" var_version="" while [ -z "$var_version" ]; do - if var_version=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "UBUNTU VERSION" --radiolist "Choose Version" 10 58 4 \ - "20.04" "Focal" OFF \ - "22.04" "Jammy" OFF \ - "24.04" "Noble" OFF \ - "24.10" "Oracular" OFF \ - 3>&1 1>&2 2>&3); then - if [ -n "$var_version" ]; then - echo -e "${OSVERSION}${BOLD}${DGN}Version: ${BGN}$var_version${CL}" + if [ "$var_default_version" == "20.04" ]; then + if var_version=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "UBUNTU VERSION" --radiolist "Choose Version" 10 58 4 \ + "20.04" "Focal" ON \ + "22.04" "Jammy" OFF \ + "24.04" "Noble" OFF \ + "24.10" "Oracular" OFF \ + 3>&1 1>&2 2>&3); then + if [ -n "$var_version" ]; then + echo -e "${OSVERSION}${BOLD}${DGN}Version: ${BGN}$var_version${CL}" + fi + else + exit_script + fi + fi + if [ "$var_default_version" == "22.04" ]; then + if var_version=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "UBUNTU VERSION" --radiolist "Choose Version" 10 58 4 \ + "20.04" "Focal" OFF \ + "22.04" "Jammy" ON \ + "24.04" "Noble" OFF \ + "24.10" "Oracular" OFF \ + 3>&1 1>&2 2>&3); then + if [ -n "$var_version" ]; then + echo -e "${OSVERSION}${BOLD}${DGN}Version: ${BGN}$var_version${CL}" + fi + else + exit_script + fi + fi + if [ "$var_default_version" == "24.04" ]; then + if var_version=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "UBUNTU VERSION" --radiolist "Choose Version" 10 58 4 \ + "20.04" "Focal" OFF \ + "22.04" "Jammy" OFF \ + "24.04" "Noble" ON \ + "24.10" "Oracular" OFF \ + 3>&1 1>&2 2>&3); then + if [ -n "$var_version" ]; then + echo -e "${OSVERSION}${BOLD}${DGN}Version: ${BGN}$var_version${CL}" + fi + else + exit_script + fi + fi + if [ "$var_default_version" == "24.10" ]; then + if var_version=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "UBUNTU VERSION" --radiolist "Choose Version" 10 58 4 \ + "20.04" "Focal" OFF \ + "22.04" "Jammy" OFF \ + "24.04" "Noble" OFF \ + "24.10" "Oracular" ON \ + 3>&1 1>&2 2>&3); then + if [ -n "$var_version" ]; then + echo -e "${OSVERSION}${BOLD}${DGN}Version: ${BGN}$var_version${CL}" + fi + else + exit_script fi - else - exit_script fi done fi # Setting Default Tag for Advanced Settings TAGS="community-script;${var_tags:-}" - + CT_DEFAULT_TYPE="${CT_TYPE}" CT_TYPE="" while [ -z "$CT_TYPE" ]; do - if CT_TYPE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "CONTAINER TYPE" --radiolist "Choose Type" 10 58 2 \ - "1" "Unprivileged" OFF \ - "0" "Privileged" OFF \ - 3>&1 1>&2 2>&3); then - if [ -n "$CT_TYPE" ]; then - CT_TYPE_DESC="Unprivileged" - if [ "$CT_TYPE" -eq 0 ]; then - CT_TYPE_DESC="Privileged" + if [ "$CT_DEFAULT_TYPE" == "1" ]; then + if CT_TYPE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "CONTAINER TYPE" --radiolist "Choose Type" 10 58 2 \ + "1" "Unprivileged" ON \ + "0" "Privileged" OFF \ + 3>&1 1>&2 2>&3); then + if [ -n "$CT_TYPE" ]; then + CT_TYPE_DESC="Unprivileged" + if [ "$CT_TYPE" -eq 0 ]; then + CT_TYPE_DESC="Privileged" + fi + echo -e "${CONTAINERTYPE}${BOLD}${DGN}Container Type: ${BGN}$CT_TYPE_DESC${CL}" fi - echo -e "${CONTAINERTYPE}${BOLD}${DGN}Container Type: ${BGN}$CT_TYPE_DESC${CL}" + else + exit_script + fi + fi + if [ "$CT_DEFAULT_TYPE" == "0" ]; then + if CT_TYPE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "CONTAINER TYPE" --radiolist "Choose Type" 10 58 2 \ + "1" "Unprivileged" OFF \ + "0" "Privileged" ON \ + 3>&1 1>&2 2>&3); then + if [ -n "$CT_TYPE" ]; then + CT_TYPE_DESC="Unprivileged" + if [ "$CT_TYPE" -eq 0 ]; then + CT_TYPE_DESC="Privileged" + fi + echo -e "${CONTAINERTYPE}${BOLD}${DGN}Container Type: ${BGN}$CT_TYPE_DESC${CL}" + fi + else + exit_script fi - else - exit_script fi done @@ -597,7 +690,7 @@ advanced_settings() { APT_CACHER="" APT_CACHER_IP="" else - if APT_CACHER_IP=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set APT-Cacher IP (leave blank for default)" 8 58 --title "APT-Cacher IP" 3>&1 1>&2 2>&3); then + if APT_CACHER_IP=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set APT-Cacher IP (leave blank for none)" 8 58 --title "APT-Cacher IP" 3>&1 1>&2 2>&3); then APT_CACHER="${APT_CACHER_IP:+yes}" echo -e "${NETWORK}${BOLD}${DGN}APT-Cacher IP Address: ${BGN}${APT_CACHER_IP:-Default}${CL}" else @@ -612,7 +705,7 @@ advanced_settings() { fi echo -e "${DISABLEIPV6}${BOLD}${DGN}Disable IPv6: ${BGN}$DISABLEIP6${CL}" - if MTU1=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set Interface MTU Size (leave blank for default)" 8 58 --title "MTU SIZE" 3>&1 1>&2 2>&3); then + if MTU1=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set Interface MTU Size (leave blank for default [1500])" 8 58 --title "MTU SIZE" 3>&1 1>&2 2>&3); then if [ -z $MTU1 ]; then MTU1="Default" MTU="" @@ -649,7 +742,7 @@ advanced_settings() { exit_script fi - if MAC1=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set a MAC Address(leave blank for default)" 8 58 --title "MAC ADDRESS" 3>&1 1>&2 2>&3); then + if MAC1=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set a MAC Address(leave blank for generated MAC)" 8 58 --title "MAC ADDRESS" 3>&1 1>&2 2>&3); then if [ -z $MAC1 ]; then MAC1="Default" MAC="" @@ -661,7 +754,7 @@ advanced_settings() { exit_script fi - if VLAN1=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set a Vlan(leave blank for default)" 8 58 --title "VLAN" 3>&1 1>&2 2>&3); then + if VLAN1=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set a Vlan(leave blank for no VLAN)" 8 58 --title "VLAN" 3>&1 1>&2 2>&3); then if [ -z $VLAN1 ]; then VLAN1="Default" VLAN="" From 4dcf0dc0b857dc14cf604d070ab76bd15568333f Mon Sep 17 00:00:00 2001 From: "community-scripts-pr-app[bot]" <189241966+community-scripts-pr-app[bot]@users.noreply.github.com> Date: Mon, 20 Jan 2025 18:04:18 +0100 Subject: [PATCH 053/284] Update CHANGELOG.md (#1617) Co-authored-by: github-actions[bot] --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 538d28c28..96d03edd4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -40,6 +40,7 @@ Do not break established syntax in this file, as it is automatically updated by ### 🧰 Maintenance +- [core] Update build.func: Add defaults to Advanced mode [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1548](https://github.com/community-scripts/ProxmoxVE/pull/1548)) - Update build.func: Fix Advanced Tags (Remove all if empty / overwrite if default cleared) [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1612](https://github.com/community-scripts/ProxmoxVE/pull/1612)) - Add new Check for LXC MaxKeys by @cricalix [@MickLesk](https://github.com/MickLesk) ([#1602](https://github.com/community-scripts/ProxmoxVE/pull/1602)) From c6c026e221e886d7c1c4bde48c0635a765f5435b Mon Sep 17 00:00:00 2001 From: bvdberg01 <74251551+bvdberg01@users.noreply.github.com> Date: Tue, 21 Jan 2025 09:02:57 +0100 Subject: [PATCH 054/284] New script: ProjectSend (#1616) * New Script: ProjectSend * Update projectsend.json * Update projectsend-install.sh --- ct/projectsend.sh | 71 ++++++++++++++++++++++++++ install/projectsend-install.sh | 91 ++++++++++++++++++++++++++++++++++ json/projectsend.json | 39 +++++++++++++++ 3 files changed, 201 insertions(+) create mode 100644 ct/projectsend.sh create mode 100644 install/projectsend-install.sh create mode 100644 json/projectsend.json diff --git a/ct/projectsend.sh b/ct/projectsend.sh new file mode 100644 index 000000000..f2e845662 --- /dev/null +++ b/ct/projectsend.sh @@ -0,0 +1,71 @@ +#!/usr/bin/env bash +source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) +# Copyright (c) 2021-2025 community-scripts ORG +# Author: bvdberg01 +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE +# Source: https://www.projectsend.org/ + +# App Default Values +APP="ProjectSend" +var_tags="media" +var_cpu="1" +var_ram="1024" +var_disk="8" +var_os="debian" +var_version="12" +var_unprivileged="1" + +# App Output & Base Settings +header_info "$APP" +base_settings + +# Core +variables +color +catch_errors + +function update_script() { + header_info + check_container_storage + check_container_resources + if [[ ! -d /opt/projectsend ]]; then + msg_error "No ${APP} Installation Found!" + exit + fi + RELEASE=$(curl -s https://api.github.com/repos/projectsend/projectsend/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') + if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then + msg_info "Stopping Service" + systemctl stop apache2 + msg_ok "Stopped Service" + + msg_info "Updating ${APP} to v${RELEASE}" + cd /opt + wget -q "https://github.com/projectsend/projectsend/releases/download/r${RELEASE}/projectsend-r${RELEASE}.zip" + unzip -o -q "projectsend-r${RELEASE}.zip" -d projectsend + chown -R www-data:www-data /opt/projectsend + chmod -R 775 /opt/projectsend + echo "${RELEASE}" >/opt/${APP}_version.txt + msg_ok "Updated $APP to v${RELEASE}" + + msg_info "Starting Service" + systemctl start apache2 + msg_ok "Started Service" + + msg_info "Cleaning up" + rm -rf "/opt/projectsend-r${RELEASE}.zip" + msg_ok "Cleaned" + msg_ok "Updated Successfully" + else + msg_ok "No update required. ${APP} is already at v${RELEASE}" + fi + exit +} + +start +build_container +description + +msg_ok "Completed Successfully!\n" +echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" +echo -e "${INFO}${YW} Access it using the following URL:${CL}" +echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}" diff --git a/install/projectsend-install.sh b/install/projectsend-install.sh new file mode 100644 index 000000000..e6f11732d --- /dev/null +++ b/install/projectsend-install.sh @@ -0,0 +1,91 @@ +#!/usr/bin/env bash + +# Copyright (c) 2021-2025 community-scripts ORG +# Author: bvdberg01 +# License: MIT | https://github.com/community-scripts/ProxmoxVE/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 \ + sudo \ + mc \ + mariadb-server \ + apache2 \ + libapache2-mod-php \ + php8.2-{pdo,mysql,mbstring,gettext,fileinfo,gd,xml,zip} +msg_ok "Installed Dependencies" + +msg_info "Setting up MariaDB" +DB_NAME=projectsend +DB_USER=projectsend +DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13) +$STD mysql -u root -e "CREATE DATABASE $DB_NAME;" +$STD mysql -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED WITH mysql_native_password AS PASSWORD('$DB_PASS');" +$STD mysql -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;" +{ + echo "projectsend-Credentials" + echo "projectsend Database User: $DB_USER" + echo "projectsend Database Password: $DB_PASS" + echo "projectsend Database Name: $DB_NAME" +} >> ~/projectsend.creds +msg_ok "Set up MariaDB" + +msg_info "Installing projectsend" +RELEASE=$(curl -s https://api.github.com/repos/projectsend/projectsend/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') +cd /opt +wget -q "https://github.com/projectsend/projectsend/releases/download/r${RELEASE}/projectsend-r${RELEASE}.zip" +mkdir projectsend +unzip -q "projectsend-r${RELEASE}.zip" -d projectsend +mv /opt/projectsend/includes/sys.config.sample.php /opt/projectsend/includes/sys.config.php +chown -R www-data:www-data /opt/projectsend +chmod -R 775 /opt/projectsend +chmod 644 /opt/projectsend/includes/sys.config.php +sed -i -e "s/\(define('DB_NAME', \).*/\1'$DB_NAME');/" \ + -e "s/\(define('DB_USER', \).*/\1'$DB_USER');/" \ + -e "s/\(define('DB_PASSWORD', \).*/\1'$DB_PASS');/" \ + /opt/projectsend/includes/sys.config.php +sed -i -e "s/^\(memory_limit = \).*/\1 256M/" \ + -e "s/^\(post_max_size = \).*/\1 256M/" \ + -e "s/^\(upload_max_filesize = \).*/\1 256M/" \ + -e "s/^\(max_execution_time = \).*/\1 300/" \ + /etc/php/8.2/apache2/php.ini +echo "${RELEASE}" >/opt/${APPLICATION}_version.txt +msg_ok "Installed projectsend" + +msg_info "Creating Service" +cat </etc/apache2/sites-available/projectsend.conf + + ServerName projectsend + DocumentRoot /opt/projectsend + + Options FollowSymLinks + AllowOverride All + Require all granted + + + ErrorLog /var/log/apache2/projectsend_error.log + CustomLog /var/log/apache2/projectsend_access.log combined + +EOF +$STD a2ensite projectsend +$STD a2enmod rewrite +$STD a2dissite 000-default.conf +$STD systemctl reload apache2 +msg_ok "Created Service" + +motd_ssh +customize + +msg_info "Cleaning up" +rm -rf "/opt/projectsend-r${RELEASE}.zip" +$STD apt-get -y autoremove +$STD apt-get -y autoclean +msg_ok "Cleaned" diff --git a/json/projectsend.json b/json/projectsend.json new file mode 100644 index 000000000..fe3ab3a20 --- /dev/null +++ b/json/projectsend.json @@ -0,0 +1,39 @@ +{ + "name": "ProjectSend", + "slug": "projectsend", + "categories": [ + 12 + ], + "date_created": "2025-01-20", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 80, + "documentation": "https://docs.projectsend.org/", + "website": "https://projectsend.org/", + "logo": "https://camo.githubusercontent.com/378a455e1cf6f36c5427b2bdfd78b0defd829be9b8c6b073f83931693e1665d5/68747470733a2f2f7777772e70726f6a65637473656e642e6f72672f70726f6a65637473656e642d6c6f676f2d6e65772e706e67", + "description": "ProjectSend is a free, open source software that lets you share files with your clients, focused on ease of use and privacy. It supports clients groups, system users roles, statistics, multiple languages, detailed logs... and much more!", + "install_methods": [ + { + "type": "default", + "script": "ct/projectsend.sh", + "resources": { + "cpu": 1, + "ram": 1024, + "hdd": 8, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "After running the update script, logging in as a system user in ProjectSend is necessary to upgrade the database.", + "type": "info" + } + ] + } \ No newline at end of file From a8f8ca65a047e571fe191a706a89eefe60ad0245 Mon Sep 17 00:00:00 2001 From: Kristian Skov Date: Tue, 21 Jan 2025 09:06:45 +0100 Subject: [PATCH 055/284] New script: SQL Server 2022 (#1482) * Added script files * Update sqlserver2022-install.sh --------- Co-authored-by: CanbiZ <47820557+MickLesk@users.noreply.github.com> --- ct/sqlserver2022.sh | 49 +++++++++++++++++++++++++++ install/sqlserver2022-install.sh | 57 ++++++++++++++++++++++++++++++++ json/sqlserver2022.json | 43 ++++++++++++++++++++++++ 3 files changed, 149 insertions(+) create mode 100644 ct/sqlserver2022.sh create mode 100644 install/sqlserver2022-install.sh create mode 100644 json/sqlserver2022.json diff --git a/ct/sqlserver2022.sh b/ct/sqlserver2022.sh new file mode 100644 index 000000000..fe7ab57e3 --- /dev/null +++ b/ct/sqlserver2022.sh @@ -0,0 +1,49 @@ +#!/usr/bin/env bash +source <(curl -s https://raw.githubusercontent.com/kris701/ProxmoxVE/refs/heads/main/misc/build.func) +# Copyright (c) 2021-2025 community-scripts ORG +# Author: Kristian Skov +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE +# Source: https://www.microsoft.com/en-us/sql-server/sql-server-2022 + +# App Default Values +APP="SQL Server 2022" +var_tags="sql" +var_cpu="1" +var_ram="2048" +var_disk="10" +var_os="ubuntu" +var_version="22.04" +var_unprivileged="0" + +# App Output & Base Settings +header_info "$APP" +base_settings + +# Core +variables +color +catch_errors + +function update_script() { + header_info + check_container_storage + check_container_resources + if [[ ! -d /opt/mssql ]]; 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" + exit +} + +start +build_container +description + +msg_ok "Completed Successfully!\n" +echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" +echo -e "${INFO}${YW} Access it using the following IP:${CL}" +echo -e "${TAB}${GATEWAY}${BGN}${IP}:1433${CL}" \ No newline at end of file diff --git a/install/sqlserver2022-install.sh b/install/sqlserver2022-install.sh new file mode 100644 index 000000000..1ece7da9f --- /dev/null +++ b/install/sqlserver2022-install.sh @@ -0,0 +1,57 @@ +#!/usr/bin/env bash + +# Copyright (c) 2021-2025 community-scripts ORG +# Author: Kristian Skov +# License: MIT +# https://github.com/community-scripts/ProxmoxVE/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 install -y \ + curl \ + mc \ + sudo \ + gpg \ + coreutils +msg_ok "Installed Dependencies" + +msg_info "Installing SQL Server 2022" +curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg +curl https://packages.microsoft.com/keys/microsoft.asc | tee /etc/apt/trusted.gpg.d/microsoft.asc +curl -fsSL https://packages.microsoft.com/config/ubuntu/22.04/mssql-server-2022.list | tee /etc/apt/sources.list.d/mssql-server-2022.list +$STD apt-get clean * +$STD apt-get update -y +$STD apt-get install -y mssql-server +/opt/mssql/bin/mssql-conf setup +msg_ok "Installed SQL Server 2022" + +msg_info "Installing SQL Server Tools" +curl https://packages.microsoft.com/keys/microsoft.asc | tee /etc/apt/trusted.gpg.d/microsoft.asc +curl https://packages.microsoft.com/config/ubuntu/22.04/prod.list | tee /etc/apt/sources.list.d/mssql-release.list +$STD apt-get update +$STD apt-get install -y \ + mssql-tools18 \ + unixodbc-dev +echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bash_profile +source ~/.bash_profile +msg_ok "Installed SQL Server Tools" + +msg_info "Start Service" +systemctl enable -q mssql-server +systemctl start -q mssql-server +msg_ok "Service started" + +motd_ssh +customize + +msg_info "Cleaning up" +$STD apt-get -y autoremove +$STD apt-get -y autoclean +msg_ok "Cleaned" diff --git a/json/sqlserver2022.json b/json/sqlserver2022.json new file mode 100644 index 000000000..497f90a86 --- /dev/null +++ b/json/sqlserver2022.json @@ -0,0 +1,43 @@ +{ + "name":"SQL Server 2022", + "slug":"sqlserver2022", + "categories":[ + 5 + ], + "date_created":"2025-01-14", + "type":"ct", + "updateable":true, + "privileged":true, + "interface_port":1433, + "documentation":"https://learn.microsoft.com/en-us/sql/sql-server/?view=sql-server-ver16", + "website":"https://www.microsoft.com/en-us/sql-server/sql-server-2022", + "logo":"https://www.svgrepo.com/show/303229/microsoft-sql-server-logo.svg", + "description":"Script to automatically set up a SQL Server 2022 installation.", + "install_methods":[ + { + "type":"default", + "script":"ct/sqlserver2022.sh", + "resources":{ + "cpu":1, + "ram":2048, + "hdd":10, + "os":"Ubuntu", + "version":"22.04" + } + } + ], + "default_credentials":{ + "username":null, + "password":null + }, + "notes":[ + { + "text":"You can setup the admin account 'SA' during installation", + "type":"info" + }, + { + "text":"Do disable the SA account if you intent to use this in production!", + "type":"warning" + } + ] +} \ No newline at end of file From 64e14fe9827f829da4cbedc4f6faaf48e3af6285 Mon Sep 17 00:00:00 2001 From: Thorsten Date: Tue, 21 Jan 2025 09:07:45 +0100 Subject: [PATCH 056/284] New Script: Docker VM (#1608) * Docker VM * fixed json spaces * json lint fix * change category to OS --------- Co-authored-by: CanbiZ <47820557+MickLesk@users.noreply.github.com> --- json/docker-vm.json | 43 ++++ vm/docker-vm.sh | 468 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 511 insertions(+) create mode 100644 json/docker-vm.json create mode 100644 vm/docker-vm.sh diff --git a/json/docker-vm.json b/json/docker-vm.json new file mode 100644 index 000000000..46c076268 --- /dev/null +++ b/json/docker-vm.json @@ -0,0 +1,43 @@ +{ + "name": "Docker VM", + "slug": "docker-vm", + "categories": [ + 2 + ], + "date_created": "2025-01-20", + "type": "vm", + "updateable": false, + "privileged": false, + "interface_port": null, + "documentation": null, + "website": "https://www.docker.com/", + "logo": "https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/docker.svg", + "description": "Docker is an open-source project for automating the deployment of applications as portable, self-sufficient containers. This Template includes Docker Engine and Docker Compose Plugin.", + "install_methods": [ + { + "type": "default", + "script": "vm/docker-vm.sh", + "resources": { + "cpu": 2, + "ram": 4096, + "hdd": 8, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": "root", + "password": "docker" + }, + "notes": [ + { + "text": "After the script completes, click on the VM, then on the Summary or Console tab to find the VM IP.", + "type": "info" + }, + { + "text": "This Script works on amd64 and arm64 Architecture.", + "type": "info" + } + ] +} diff --git a/vm/docker-vm.sh b/vm/docker-vm.sh new file mode 100644 index 000000000..9bd028166 --- /dev/null +++ b/vm/docker-vm.sh @@ -0,0 +1,468 @@ +#!/usr/bin/env bash + +# Copyright (c) 2021-2025 community-scripts ORG +# Author: thost96 (thost96) +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE + +function header_info { + clear + cat <<"EOF" + ____ __ _ ____ ___ + / __ \____ _____/ /_____ _____ | | / / |/ / + / / / / __ \/ ___/ //_/ _ \/ ___/ | | / / /|_/ / + / /_/ / /_/ / /__/ ,< / __/ / | |/ / / / / +/_____/\____/\___/_/|_|\___/_/ |___/_/ /_/ + +EOF +} +header_info +echo -e "\n Loading..." +GEN_MAC=02:$(openssl rand -hex 5 | awk '{print toupper($0)}' | sed 's/\(..\)/\1:/g; s/.$//') +NEXTID=$(pvesh get /cluster/nextid) + +YW=$(echo "\033[33m") +BL=$(echo "\033[36m") +HA=$(echo "\033[1;34m") +RD=$(echo "\033[01;31m") +BGN=$(echo "\033[4;92m") +GN=$(echo "\033[1;92m") +DGN=$(echo "\033[32m") +CL=$(echo "\033[m") +BFR="\\r\\033[K" +HOLD="-" +CM="${GN}βœ“${CL}" +CROSS="${RD}βœ—${CL}" +THIN="discard=on,ssd=1," +set -e +trap 'error_handler $LINENO "$BASH_COMMAND"' ERR +trap cleanup EXIT +function error_handler() { + local exit_code="$?" + local line_number="$1" + local command="$2" + local error_message="${RD}[ERROR]${CL} in line ${RD}$line_number${CL}: exit code ${RD}$exit_code${CL}: while executing command ${YW}$command${CL}" + echo -e "\n$error_message\n" + cleanup_vmid +} + +function cleanup_vmid() { + if qm status $VMID &>/dev/null; then + qm stop $VMID &>/dev/null + qm destroy $VMID &>/dev/null + fi +} + +function cleanup() { + popd >/dev/null + rm -rf $TEMP_DIR +} + +TEMP_DIR=$(mktemp -d) +pushd $TEMP_DIR >/dev/null +if whiptail --backtitle "Proxmox VE Helper Scripts" --title "Docker VM" --yesno "This will create a New Docker VM. Proceed?" 10 58; then + : +else + header_info && echo -e "⚠ User exited script \n" && exit +fi + +function msg_info() { + local msg="$1" + echo -ne " ${HOLD} ${YW}${msg}..." +} + +function msg_ok() { + local msg="$1" + echo -e "${BFR} ${CM} ${GN}${msg}${CL}" +} + +function msg_error() { + local msg="$1" + echo -e "${BFR} ${CROSS} ${RD}${msg}${CL}" +} + +function check_root() { + if [[ "$(id -u)" -ne 0 || $(ps -o comm= -p $PPID) == "sudo" ]]; then + clear + msg_error "Please run this script as root." + echo -e "\nExiting..." + sleep 2 + exit + fi +} + +function pve_check() { + if ! pveversion | grep -Eq "pve-manager/8.[1-3]"; then + msg_error "This version of Proxmox Virtual Environment is not supported" + echo -e "Requires Proxmox Virtual Environment Version 8.1 or later." + echo -e "Exiting..." + sleep 2 + exit +fi +} + +function arch_check() { + if [ "$(dpkg --print-architecture)" != "amd64" ]; then + if [ "$(dpkg --print-architecture)" != "arm64" ]; then + msg_error "This script will not work with your CPU Architekture \n" + echo -e "Exiting..." + sleep 2 + exit + fi + fi +} + +function ssh_check() { + if command -v pveversion >/dev/null 2>&1; then + if [ -n "${SSH_CLIENT:+x}" ]; then + if whiptail --backtitle "Proxmox VE Helper Scripts" --defaultno --title "SSH DETECTED" --yesno "It's suggested to use the Proxmox shell instead of SSH, since SSH can create issues while gathering variables. Would you like to proceed with using SSH?" 10 62; then + echo "you've been warned" + else + clear + exit + fi + fi + fi +} + +function exit-script() { + clear + echo -e "⚠ User exited script \n" + exit +} + +function default_settings() { + VMID="$NEXTID" + FORMAT=",efitype=4m" + MACHINE="" + DISK_CACHE="" + HN="docker" + CPU_TYPE="" + CORE_COUNT="2" + RAM_SIZE="4096" + BRG="vmbr0" + MAC="$GEN_MAC" + VLAN="" + MTU="" + START_VM="yes" + echo -e "${DGN}Using Virtual Machine ID: ${BGN}${VMID}${CL}" + echo -e "${DGN}Using Machine Type: ${BGN}i440fx${CL}" + echo -e "${DGN}Using Disk Cache: ${BGN}None${CL}" + echo -e "${DGN}Using Hostname: ${BGN}${HN}${CL}" + echo -e "${DGN}Using CPU Model: ${BGN}KVM64${CL}" + echo -e "${DGN}Allocated Cores: ${BGN}${CORE_COUNT}${CL}" + echo -e "${DGN}Allocated RAM: ${BGN}${RAM_SIZE}${CL}" + echo -e "${DGN}Using Bridge: ${BGN}${BRG}${CL}" + echo -e "${DGN}Using MAC Address: ${BGN}${MAC}${CL}" + echo -e "${DGN}Using VLAN: ${BGN}Default${CL}" + echo -e "${DGN}Using Interface MTU Size: ${BGN}Default${CL}" + echo -e "${DGN}Start VM when completed: ${BGN}yes${CL}" + echo -e "${BL}Creating a Docker VM using the above default settings${CL}" +} + +function advanced_settings() { + while true; do + if VMID=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set Virtual Machine ID" 8 58 $NEXTID --title "VIRTUAL MACHINE ID" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then + if [ -z "$VMID" ]; then + VMID="$NEXTID" + fi + if pct status "$VMID" &>/dev/null || qm status "$VMID" &>/dev/null; then + echo -e "${CROSS}${RD} ID $VMID is already in use${CL}" + sleep 2 + continue + fi + echo -e "${DGN}Virtual Machine ID: ${BGN}$VMID${CL}" + break + else + exit-script + fi + done + + if MACH=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "MACHINE TYPE" --radiolist --cancel-button Exit-Script "Choose Type" 10 58 2 \ + "i440fx" "Machine i440fx" ON \ + "q35" "Machine q35" OFF \ + 3>&1 1>&2 2>&3); then + if [ $MACH = q35 ]; then + echo -e "${DGN}Using Machine Type: ${BGN}$MACH${CL}" + FORMAT="" + MACHINE=" -machine q35" + else + echo -e "${DGN}Using Machine Type: ${BGN}$MACH${CL}" + FORMAT=",efitype=4m" + MACHINE="" + fi + else + exit-script + fi + + if DISK_CACHE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "DISK CACHE" --radiolist "Choose" --cancel-button Exit-Script 10 58 2 \ + "0" "None (Default)" ON \ + "1" "Write Through" OFF \ + 3>&1 1>&2 2>&3); then + if [ $DISK_CACHE = "1" ]; then + echo -e "${DGN}Using Disk Cache: ${BGN}Write Through${CL}" + DISK_CACHE="cache=writethrough," + else + echo -e "${DGN}Using Disk Cache: ${BGN}None${CL}" + DISK_CACHE="" + fi + else + exit-script + fi + + if VM_NAME=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set Hostname" 8 58 docker --title "HOSTNAME" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then + if [ -z $VM_NAME ]; then + HN="docker" + echo -e "${DGN}Using Hostname: ${BGN}$HN${CL}" + else + HN=$(echo ${VM_NAME,,} | tr -d ' ') + echo -e "${DGN}Using Hostname: ${BGN}$HN${CL}" + fi + else + exit-script + fi + + if CPU_TYPE1=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "CPU MODEL" --radiolist "Choose" --cancel-button Exit-Script 10 58 2 \ + "0" "KVM64 (Default)" ON \ + "1" "Host" OFF \ + 3>&1 1>&2 2>&3); then + if [ $CPU_TYPE1 = "1" ]; then + echo -e "${DGN}Using CPU Model: ${BGN}Host${CL}" + CPU_TYPE=" -cpu host" + else + echo -e "${DGN}Using CPU Model: ${BGN}KVM64${CL}" + CPU_TYPE="" + fi + else + exit-script + fi + + if CORE_COUNT=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Allocate CPU Cores" 8 58 2 --title "CORE COUNT" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then + if [ -z $CORE_COUNT ]; then + CORE_COUNT="2" + echo -e "${DGN}Allocated Cores: ${BGN}$CORE_COUNT${CL}" + else + echo -e "${DGN}Allocated Cores: ${BGN}$CORE_COUNT${CL}" + fi + else + exit-script + fi + + if RAM_SIZE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Allocate RAM in MiB" 8 58 4096 --title "RAM" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then + if [ -z $RAM_SIZE ]; then + RAM_SIZE="4096" + echo -e "${DGN}Allocated RAM: ${BGN}$RAM_SIZE${CL}" + else + echo -e "${DGN}Allocated RAM: ${BGN}$RAM_SIZE${CL}" + fi + else + exit-script + fi + + if BRG=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set a Bridge" 8 58 vmbr0 --title "BRIDGE" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then + if [ -z $BRG ]; then + BRG="vmbr0" + echo -e "${DGN}Using Bridge: ${BGN}$BRG${CL}" + else + echo -e "${DGN}Using Bridge: ${BGN}$BRG${CL}" + fi + else + exit-script + fi + + if MAC1=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set a MAC Address" 8 58 $GEN_MAC --title "MAC ADDRESS" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then + if [ -z $MAC1 ]; then + MAC="$GEN_MAC" + echo -e "${DGN}Using MAC Address: ${BGN}$MAC${CL}" + else + MAC="$MAC1" + echo -e "${DGN}Using MAC Address: ${BGN}$MAC1${CL}" + fi + else + exit-script + fi + + if VLAN1=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set a Vlan(leave blank for default)" 8 58 --title "VLAN" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then + if [ -z $VLAN1 ]; then + VLAN1="Default" + VLAN="" + echo -e "${DGN}Using Vlan: ${BGN}$VLAN1${CL}" + else + VLAN=",tag=$VLAN1" + echo -e "${DGN}Using Vlan: ${BGN}$VLAN1${CL}" + fi + else + exit-script + fi + + if MTU1=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set Interface MTU Size (leave blank for default)" 8 58 --title "MTU SIZE" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then + if [ -z $MTU1 ]; then + MTU1="Default" + MTU="" + echo -e "${DGN}Using Interface MTU Size: ${BGN}$MTU1${CL}" + else + MTU=",mtu=$MTU1" + echo -e "${DGN}Using Interface MTU Size: ${BGN}$MTU1${CL}" + fi + else + exit-script + fi + + if (whiptail --backtitle "Proxmox VE Helper Scripts" --title "START VIRTUAL MACHINE" --yesno "Start VM when completed?" 10 58); then + echo -e "${DGN}Start VM when completed: ${BGN}yes${CL}" + START_VM="yes" + else + echo -e "${DGN}Start VM when completed: ${BGN}no${CL}" + START_VM="no" + fi + + if (whiptail --backtitle "Proxmox VE Helper Scripts" --title "ADVANCED SETTINGS COMPLETE" --yesno "Ready to create a Docker VM?" --no-button Do-Over 10 58); then + echo -e "${RD}Creating a Docker VM using the above advanced settings${CL}" + else + header_info + echo -e "${RD}Using Advanced Settings${CL}" + advanced_settings + fi +} + +function start_script() { + if (whiptail --backtitle "Proxmox VE Helper Scripts" --title "SETTINGS" --yesno "Use Default Settings?" --no-button Advanced 10 58); then + header_info + echo -e "${BL}Using Default Settings${CL}" + default_settings + else + header_info + echo -e "${RD}Using Advanced Settings${CL}" + advanced_settings + fi +} + +check_root +arch_check +pve_check +ssh_check +start_script + +msg_info "Validating Storage" +while read -r line; do + TAG=$(echo $line | awk '{print $1}') + TYPE=$(echo $line | awk '{printf "%-10s", $2}') + FREE=$(echo $line | numfmt --field 4-6 --from-unit=K --to=iec --format %.2f | awk '{printf( "%9sB", $6)}') + ITEM=" Type: $TYPE Free: $FREE " + OFFSET=2 + if [[ $((${#ITEM} + $OFFSET)) -gt ${MSG_MAX_LENGTH:-} ]]; then + MSG_MAX_LENGTH=$((${#ITEM} + $OFFSET)) + fi + STORAGE_MENU+=("$TAG" "$ITEM" "OFF") +done < <(pvesm status -content images | awk 'NR>1') +VALID=$(pvesm status -content images | awk 'NR>1') +if [ -z "$VALID" ]; then + msg_error "Unable to detect a valid storage location." + exit +elif [ $((${#STORAGE_MENU[@]} / 3)) -eq 1 ]; then + STORAGE=${STORAGE_MENU[0]} +else + 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 ${HN}?\nTo make a selection, use the Spacebar.\n" \ + 16 $(($MSG_MAX_LENGTH + 23)) 6 \ + "${STORAGE_MENU[@]}" 3>&1 1>&2 2>&3) || exit + done +fi +msg_ok "Using ${CL}${BL}$STORAGE${CL} ${GN}for Storage Location." +msg_ok "Virtual Machine ID is ${CL}${BL}$VMID${CL}." +msg_info "Retrieving the URL for the Debian 12 Qcow2 Disk Image" +URL="https://cloud.debian.org/images/cloud/bookworm/latest/debian-12-nocloud-$(dpkg --print-architecture).qcow2" +sleep 2 +msg_ok "${CL}${BL}${URL}${CL}" +wget -q --show-progress $URL +echo -en "\e[1A\e[0K" +FILE=$(basename $URL) +msg_ok "Downloaded ${CL}${BL}${FILE}${CL}" + +STORAGE_TYPE=$(pvesm status -storage $STORAGE | awk 'NR>1 {print $2}') +case $STORAGE_TYPE in +nfs | dir) + DISK_EXT=".qcow2" + DISK_REF="$VMID/" + DISK_IMPORT="-format qcow2" + THIN="" + ;; +btrfs) + DISK_EXT=".raw" + DISK_REF="$VMID/" + DISK_IMPORT="-format raw" + FORMAT=",efitype=4m" + THIN="" + ;; +esac +for i in {0,1}; do + disk="DISK$i" + eval DISK${i}=vm-${VMID}-disk-${i}${DISK_EXT:-} + eval DISK${i}_REF=${STORAGE}:${DISK_REF:-}${!disk} +done + +msg_info "Installing Pre-Requisite libguestfs-tools onto Host" +apt-get -qq update && apt-get -qq install libguestfs-tools -y >/dev/null +msg_ok "Installed libguestfs-tools successful" + +msg_info "Adding Docker and Docker Compose Plugin to Debian 12 Qcow2 Disk Image Image" +virt-customize -q -a "${FILE}" --install qemu-guest-agent,apt-transport-https,ca-certificates,curl,gnupg-agent,software-properties-common,lsb-release >/dev/null && +virt-customize -q -a "${FILE}" --root-password password:docker >/dev/null && +virt-customize -q -a "${FILE}" --run-command "curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -" >/dev/null && +virt-customize -q -a "${FILE}" --run-command "add-apt-repository \"deb [arch=$(dpkg --print-architecture)] https://download.docker.com/linux/debian $(lsb_release -cs) stable\"" >/dev/null && +virt-customize -q -a "${FILE}" --run-command "apt-get update -y && apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin" >/dev/null && +virt-customize -q -a "${FILE}" --run-command "systemctl start docker && systemctl enable docker" >/dev/null && +virt-customize -q -a "${FILE}" --run-command "echo -n > /etc/machine-id" >/dev/null +msg_ok "Added Docker and Docker Compose Plugin to Debian 12 Qcow2 Disk Image successful" + +msg_info "Creating a Docker VM" +qm create $VMID -agent 1${MACHINE} -tablet 0 -localtime 1 -bios ovmf${CPU_TYPE} -cores $CORE_COUNT -memory $RAM_SIZE \ + -name $HN -tags proxmox-helper-scripts,debian12,docker -net0 virtio,bridge=$BRG,macaddr=$MAC$VLAN$MTU -onboot 1 -ostype l26 -scsihw virtio-scsi-pci +pvesm alloc $STORAGE $VMID $DISK0 4M 1>&/dev/null +qm importdisk $VMID ${FILE} $STORAGE ${DISK_IMPORT:-} 1>&/dev/null +qm set $VMID \ + -efidisk0 ${DISK0_REF}${FORMAT} \ + -scsi0 ${DISK1_REF},${DISK_CACHE}${THIN}size=2G \ + -boot order=scsi0 \ + -serial0 socket >/dev/null +qm resize $VMID scsi0 8G >/dev/null +qm set $VMID --agent enabled=1 >/dev/null + + DESCRIPTION=$(cat < + + Logo + + +

Docker VM

+ +

+ + spend Coffee + +

+ + + + GitHub + + + + Discussions + + + + Issues + + +EOF +) +qm set "$VMID" -description "$DESCRIPTION" >/dev/null + +msg_ok "Created a Docker VM ${CL}${BL}(${HN})" +if [ "$START_VM" == "yes" ]; then + msg_info "Starting Docker VM" + qm start $VMID + msg_ok "Started Docker VM" +fi +msg_ok "Completed Successfully!\n" From 33d6f8b860d4f20873b2d6194595b325ebeabce7 Mon Sep 17 00:00:00 2001 From: Michelle Zitzerman <45917431+Sinofage@users.noreply.github.com> Date: Tue, 21 Jan 2025 10:10:02 +0200 Subject: [PATCH 057/284] New Script: Beszel (#1619) * bezel * fix: changed names fix: pointed to proper file * fix: correct install location. * fix: name change * fix: fixed proper catagory * testing * fix: add new tag * update * test * test * update source url * update * update * test * update * reverting changes * fix: added mc back and seprated commands --- ct/beszel.sh | 47 ++++++++++++++++++++++++++++++++++ install/beszel-install.sh | 54 +++++++++++++++++++++++++++++++++++++++ json/beszel.json | 34 ++++++++++++++++++++++++ 3 files changed, 135 insertions(+) create mode 100644 ct/beszel.sh create mode 100644 install/beszel-install.sh create mode 100644 json/beszel.json diff --git a/ct/beszel.sh b/ct/beszel.sh new file mode 100644 index 000000000..bd30dbbd5 --- /dev/null +++ b/ct/beszel.sh @@ -0,0 +1,47 @@ +#!/usr/bin/env bash +source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) +# Copyright (c) community-scripts ORG +# Author: Michelle Zitzerman (Sinofage) +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE +# Source: https://beszel.dev/ + +# App Default Values +APP="Beszel" +var_tags="monitoring" +var_cpu="1" +var_ram="512" +var_disk="5" +var_os="debian" +var_version="12" +var_unprivileged="1" + +# App Output & Base Settings +header_info "$APP" +base_settings + +# Core +variables +color +catch_errors + +function update_script() { + header_info + check_container_storage + check_container_resources + if [[ ! -d /opt/beszel ]]; then + msg_error "No ${APP} Installation Found!" + exit + fi + /opt/beszel/beszel update + msg_error "Ther is currently no automatic update function for ${APP}." + exit +} + +start +build_container +description + +msg_ok "Completed Successfully!\n" +echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" +echo -e "${INFO}${YW} Access it using the following IP:${CL}" +echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}" \ No newline at end of file diff --git a/install/beszel-install.sh b/install/beszel-install.sh new file mode 100644 index 000000000..378570cf6 --- /dev/null +++ b/install/beszel-install.sh @@ -0,0 +1,54 @@ +#!/usr/bin/env bash + +# Copyright (c) 2021-2025 community-scripts ORG +# Author: Michelle Zitzerman (Sinofage) +# License: MIT +# https://github.com/community-scripts/ProxmoxVE/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 \ + tar \ + sudo \ + mc +msg_ok "Installed Dependencies" + +msg_info "Installing Beszel" +mkdir -p /opt/beszel +curl -sL "https://github.com/henrygd/beszel/releases/latest/download/beszel_$(uname -s)_$(uname -m | sed -e 's/x86_64/amd64/' -e 's/armv6l/arm/' -e 's/armv7l/arm/' -e 's/aarch64/arm64/').tar.gz" | tar -xz -O beszel | tee /opt/beszel/beszel >/dev/null +chmod +x /opt/beszel/beszel +msg_ok "Installed Beszel" + +msg_info "Creating Service" +cat </etc/systemd/system/beszel-hub.service +[Unit] +Description=Beszel Hub Service +After=network.target + +[Service] +ExecStart=/opt/beszel/beszel serve --http "0.0.0.0:8090" +WorkingDirectory=/opt/beszel +Restart=always +RestartSec=5 + +[Install] +WantedBy=multi-user.target +EOF +systemctl enable -q --now beszel-hub.service +msg_ok "Created Service" + +motd_ssh +customize + +msg_info "Cleaning up" +$STD apt-get -y autoremove +$STD apt-get -y autoclean +msg_ok "Cleaned" \ No newline at end of file diff --git a/json/beszel.json b/json/beszel.json new file mode 100644 index 000000000..8a67b41b1 --- /dev/null +++ b/json/beszel.json @@ -0,0 +1,34 @@ +{ + "name": "Beszel", + "slug": "beszel", + "categories": [ + 9 + ], + "date_created": "2025-01-20", + "type": "ct", + "updateable": false, + "privileged": false, + "interface_port": 8090, + "documentation": "https://beszel.dev/guide/what-is-beszel", + "website": "https://beszel.dev/", + "logo": "https://beszel.dev/icon.svg", + "description": "A lightweight server monitoring platform that provides Docker statistics, historical data, and alert functions\n ", + "install_methods": [ + { + "type": "default", + "script": "ct/beszel.sh", + "resources": { + "cpu": 1, + "ram": 512, + "hdd": 5, + "os": "Debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] + } \ No newline at end of file From 46c7c0e9caaf34da541e57208b050aa2c05faf80 Mon Sep 17 00:00:00 2001 From: Thorsten Date: Tue, 21 Jan 2025 09:10:27 +0100 Subject: [PATCH 058/284] Fix wrong URL after Setup (#1629) --- ct/pbs.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ct/pbs.sh b/ct/pbs.sh index 8aae63d3b..4c9305055 100644 --- a/ct/pbs.sh +++ b/ct/pbs.sh @@ -52,4 +52,4 @@ description msg_ok "Completed Successfully!\n" echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" echo -e "${INFO}${YW} Access it using the following URL:${CL}" -echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8007${CL}" \ No newline at end of file +echo -e "${TAB}${GATEWAY}${BGN}https://${IP}:8007${CL}" From 1c8a0a53d2f64168af0847a36c43a9242bcab011 Mon Sep 17 00:00:00 2001 From: "community-scripts-pr-app[bot]" <189241966+community-scripts-pr-app[bot]@users.noreply.github.com> Date: Tue, 21 Jan 2025 09:11:34 +0100 Subject: [PATCH 059/284] Update CHANGELOG.md (#1627) Co-authored-by: github-actions[bot] --- CHANGELOG.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 96d03edd4..6f9b28571 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,21 @@ All LXC instances created using this repository come pre-installed with Midnight Do not break established syntax in this file, as it is automatically updated by a Github Workflow +## 2025-01-21 + +### Changed + +### ✨ New Scripts + +- New Script: Beszel [@Sinofage](https://github.com/Sinofage) ([#1619](https://github.com/community-scripts/ProxmoxVE/pull/1619)) +- New Script: Docker VM [@thost96](https://github.com/thost96) ([#1608](https://github.com/community-scripts/ProxmoxVE/pull/1608)) +- New script: SQL Server 2022 [@kris701](https://github.com/kris701) ([#1482](https://github.com/community-scripts/ProxmoxVE/pull/1482)) +- New script: ProjectSend [@bvdberg01](https://github.com/bvdberg01) ([#1616](https://github.com/community-scripts/ProxmoxVE/pull/1616)) + +### πŸš€ Updated Scripts + +- PBS.sh: Fix wrong URL after Setup [@thost96](https://github.com/thost96) ([#1629](https://github.com/community-scripts/ProxmoxVE/pull/1629)) + ## 2025-01-20 ### Changed From 58ba921fec8cec154f0ea366b7f639ce6d83fd73 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 21 Jan 2025 09:12:04 +0100 Subject: [PATCH 060/284] Update .app-headers file (#1628) Co-authored-by: github-actions[bot] --- misc/.app-headers | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/misc/.app-headers b/misc/.app-headers index 40729ddc6..f0a439161 100644 --- a/misc/.app-headers +++ b/misc/.app-headers @@ -1,4 +1,4 @@ -### Generated on 01-20-2025 +### Generated on 01-21-2025 ################################################## ### 2fauth.sh @@ -235,6 +235,15 @@ APP=Bazarr /_____/\__,_/ /___/\__,_/_/ /_/ +### beszel.sh +APP=Beszel + ____ __ + / __ )___ _________ ___ / / + / __ / _ \/ ___/_ / / _ \/ / + / /_/ / __(__ ) / /_/ __/ / +/_____/\___/____/ /___/\___/_/ + + ### blocky.sh APP=Blocky ____ __ __ @@ -1459,6 +1468,15 @@ APP=PostgreSQL /_/ \____/____/\__/\__, /_/ \___/____/\___\_\/_____/ /____/ +### projectsend.sh +APP=ProjectSend + ____ _ __ _____ __ + / __ \_________ (_)__ _____/ /_/ ___/___ ____ ____/ / + / /_/ / ___/ __ \ / / _ \/ ___/ __/\__ \/ _ \/ __ \/ __ / + / ____/ / / /_/ / / / __/ /__/ /_ ___/ / __/ / / / /_/ / +/_/ /_/ \____/_/ /\___/\___/\__//____/\___/_/ /_/\__,_/ + /___/ + ### prometheus-alertmanager.sh APP=Prometheus-Alertmanager ____ __ __ ___ __ @@ -1693,6 +1711,21 @@ APP=Spoolman /____/ .___/\____/\____/_/_/ /_/ /_/\__,_/_/ /_/ /_/ +### sqlserver2022.sh +APP=SQL Server 2022 + _____ ____ __ _____ + / ___// __ \ / / / ___/___ ______ _____ _____ + \__ \/ / / / / / \__ \/ _ \/ ___/ | / / _ \/ ___/ + ___/ / /_/ / / /___ ___/ / __/ / | |/ / __/ / +/____/\___\_\/_____/ /____/\___/_/ |___/\___/_/ + + ___ ____ ___ ___ + |__ \ / __ \__ \|__ \ + __/ // / / /_/ /__/ / + / __// /_/ / __// __/ +/____/\____/____/____/ + + ### stirling-pdf.sh APP=Stirling-PDF _____ __ _ ___ ____ ____ ______ From 50b5a7d1cf3f1b9d31c5e250ebce3a92ab47906c Mon Sep 17 00:00:00 2001 From: Michelle Zitzerman <45917431+Sinofage@users.noreply.github.com> Date: Tue, 21 Jan 2025 11:22:46 +0200 Subject: [PATCH 061/284] Update docker-vm.json (#1630) fix: fixed the issue on website showing "Docker VM VM" VM twice --- json/docker-vm.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/json/docker-vm.json b/json/docker-vm.json index 46c076268..2de0eca53 100644 --- a/json/docker-vm.json +++ b/json/docker-vm.json @@ -1,5 +1,5 @@ { - "name": "Docker VM", + "name": "Docker", "slug": "docker-vm", "categories": [ 2 From 9fd9ab00fff737429e3e68cbbde6615e12cdf752 Mon Sep 17 00:00:00 2001 From: "community-scripts-pr-app[bot]" <189241966+community-scripts-pr-app[bot]@users.noreply.github.com> Date: Tue, 21 Jan 2025 10:35:05 +0100 Subject: [PATCH 062/284] Update CHANGELOG.md (#1631) Co-authored-by: github-actions[bot] --- CHANGELOG.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6f9b28571..8a9890e68 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,15 +23,19 @@ Do not break established syntax in this file, as it is automatically updated by ### ✨ New Scripts +- New script: ProjectSend [@bvdberg01](https://github.com/bvdberg01) ([#1616](https://github.com/community-scripts/ProxmoxVE/pull/1616)) - New Script: Beszel [@Sinofage](https://github.com/Sinofage) ([#1619](https://github.com/community-scripts/ProxmoxVE/pull/1619)) - New Script: Docker VM [@thost96](https://github.com/thost96) ([#1608](https://github.com/community-scripts/ProxmoxVE/pull/1608)) - New script: SQL Server 2022 [@kris701](https://github.com/kris701) ([#1482](https://github.com/community-scripts/ProxmoxVE/pull/1482)) -- New script: ProjectSend [@bvdberg01](https://github.com/bvdberg01) ([#1616](https://github.com/community-scripts/ProxmoxVE/pull/1616)) ### πŸš€ Updated Scripts - PBS.sh: Fix wrong URL after Setup [@thost96](https://github.com/thost96) ([#1629](https://github.com/community-scripts/ProxmoxVE/pull/1629)) +### 🌐 Website + +- Fix Docker-VM name on website [@Sinofage](https://github.com/Sinofage) ([#1630](https://github.com/community-scripts/ProxmoxVE/pull/1630)) + ## 2025-01-20 ### Changed From 4cf043675e154cd77ea6c20fdb5967545cb2e314 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Tue, 21 Jan 2025 11:02:11 +0100 Subject: [PATCH 063/284] update motd file to dynamic ip (#1633) --- misc/alpine-install.func | 21 ++++++++++----------- misc/install.func | 25 ++++++++----------------- 2 files changed, 18 insertions(+), 28 deletions(-) diff --git a/misc/alpine-install.func b/misc/alpine-install.func index 4a9a655ce..313b091f0 100644 --- a/misc/alpine-install.func +++ b/misc/alpine-install.func @@ -146,17 +146,16 @@ motd_ssh() { OS_NAME="Alpine Linux" OS_VERSION="Unknown" fi - # Set MOTD with application info and system details - MOTD_FILE="/etc/motd" - if [ -f "$MOTD_FILE" ]; then - echo -e "\n${BOLD}${APPLICATION} LXC Container${CL}" > "$MOTD_FILE" - echo -e "${TAB}${GATEWAY}${YW} Provided by: ${GN}community-scripts ORG ${YW}| Project: ${GN}ProxmoxVE ${YW}| GitHub: ${GN}https://github.com/community-scripts/ProxmoxVE${CL}\n" >> "$MOTD_FILE" - echo -e "${TAB}${OS}${YW} OS: ${GN}${OS_NAME} ${OS_VERSION}${CL}" >> "$MOTD_FILE" - echo -e "${TAB}${HOSTNAME}${YW} Hostname: ${GN}$(hostname)${CL}" >> "$MOTD_FILE" - echo -e "${TAB}${INFO}${YW} IP Address: ${GN}${IP}${CL}" >> "$MOTD_FILE" - else - echo -e "${RD}[WARNING] MOTD file does not exist!${CL}" >&2 - fi + + PROFILE_FILE="/etc/profile.d/00_lxc-details.sh" + echo "echo -e \"\"" > "$PROFILE_FILE" + echo -e "echo -e \"${BOLD}${APPLICATION} LXC Container${CL}"\" >> "$PROFILE_FILE" + echo -e "echo -e \"${TAB}${GATEWAY}${YW} Provided by: ${GN}community-scripts ORG ${YW}| GitHub: ${GN}https://github.com/community-scripts/ProxmoxVE${CL}\"" >> "$PROFILE_FILE" + echo "echo \"\"" >> "$PROFILE_FILE" + echo -e "echo -e \"${TAB}${OS}${YW} OS: ${GN}${OS_NAME} - Version: ${OS_VERSION}${CL}\"" >> "$PROFILE_FILE" + echo -e "echo -e \"${TAB}${HOSTNAME}${YW} Hostname: ${GN}\$(hostname)${CL}\"" >> "$PROFILE_FILE" + echo -e "echo -e \"${TAB}${INFO}${YW} IP Address: ${GN}\$(ip -4 addr show eth0 | awk '/inet / {print \$2}' | cut -d/ -f1 | head -n 1)${CL}\"" >> "$PROFILE_FILE" + # Configure SSH if enabled if [[ "${SSH_ROOT}" == "yes" ]]; then # Enable sshd service diff --git a/misc/install.func b/misc/install.func index 59d875660..4fd88e75f 100644 --- a/misc/install.func +++ b/misc/install.func @@ -202,9 +202,6 @@ motd_ssh() { # Set terminal to 256-color mode grep -qxF "export TERM='xterm-256color'" /root/.bashrc || echo "export TERM='xterm-256color'" >> /root/.bashrc - # Get the current private IP address - IP=$(hostname -I | awk '{print $1}') # Private IP - # Get OS information (Debian / Ubuntu) if [ -f "/etc/os-release" ]; then OS_NAME=$(grep ^NAME /etc/os-release | cut -d= -f2 | tr -d '"') @@ -214,20 +211,14 @@ motd_ssh() { OS_VERSION=$(cat /etc/debian_version) fi - # Set MOTD with application info, system details - MOTD_FILE="/etc/motd" - if [ -f "$MOTD_FILE" ]; then - # Start MOTD with application info and link - echo -e "\n${BOLD}${APPLICATION} LXC Container${CL}" > "$MOTD_FILE" - echo -e "${TAB}${GATEWAY}${YW} Provided by: ${GN}community-scripts ORG ${YW}| GitHub: ${GN}https://github.com/community-scripts/ProxmoxVE${CL}\n" >> "$MOTD_FILE" - - # Add system information with icons - echo -e "${TAB}${OS}${YW} OS: ${GN}${OS_NAME} - Version: ${OS_VERSION}${CL}" >> "$MOTD_FILE" - echo -e "${TAB}${HOSTNAME}${YW} Hostname: ${GN}$(hostname)${CL}" >> "$MOTD_FILE" - echo -e "${TAB}${INFO}${YW} IP Address: ${GN}${IP}${CL}" >> "$MOTD_FILE" - else - echo "MotD file does not exist!" >&2 - fi + PROFILE_FILE="/etc/profile.d/00_lxc-details.sh" + echo "echo -e \"\"" > "$PROFILE_FILE" + echo -e "echo -e \"${BOLD}${APPLICATION} LXC Container${CL}"\" >> "$PROFILE_FILE" + echo -e "echo -e \"${TAB}${GATEWAY}${YW} Provided by: ${GN}community-scripts ORG ${YW}| GitHub: ${GN}https://github.com/community-scripts/ProxmoxVE${CL}\"" >> "$PROFILE_FILE" + echo "echo \"\"" >> "$PROFILE_FILE" + echo -e "echo -e \"${TAB}${OS}${YW} OS: ${GN}${OS_NAME} - Version: ${OS_VERSION}${CL}\"" >> "$PROFILE_FILE" + echo -e "echo -e \"${TAB}${HOSTNAME}${YW} Hostname: ${GN}\$(hostname)${CL}\"" >> "$PROFILE_FILE" + echo -e "echo -e \"${TAB}${INFO}${YW} IP Address: ${GN}\$(hostname -I | awk '{print \$1}')${CL}\"" >> "$PROFILE_FILE" # Disable default MOTD scripts chmod -x /etc/update-motd.d/* From 038947416d347f651300c7aa60be8b93154bab01 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Tue, 21 Jan 2025 11:07:09 +0100 Subject: [PATCH 064/284] add port for beszel --- ct/beszel.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ct/beszel.sh b/ct/beszel.sh index bd30dbbd5..b0b87e1d8 100644 --- a/ct/beszel.sh +++ b/ct/beszel.sh @@ -44,4 +44,4 @@ description msg_ok "Completed Successfully!\n" echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" echo -e "${INFO}${YW} Access it using the following IP:${CL}" -echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}" \ No newline at end of file +echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8090${CL}" From 804ea321906a74440d0beb112c0b7056b9f03646 Mon Sep 17 00:00:00 2001 From: "community-scripts-pr-app[bot]" <189241966+community-scripts-pr-app[bot]@users.noreply.github.com> Date: Tue, 21 Jan 2025 11:07:53 +0100 Subject: [PATCH 065/284] Update CHANGELOG.md (#1634) Co-authored-by: github-actions[bot] --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8a9890e68..e7d5c41b2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -30,6 +30,7 @@ Do not break established syntax in this file, as it is automatically updated by ### πŸš€ Updated Scripts +- Update MOTD: Add Dynamic IP with profile.d by @JcMinarro [@MickLesk](https://github.com/MickLesk) ([#1633](https://github.com/community-scripts/ProxmoxVE/pull/1633)) - PBS.sh: Fix wrong URL after Setup [@thost96](https://github.com/thost96) ([#1629](https://github.com/community-scripts/ProxmoxVE/pull/1629)) ### 🌐 Website From f1e6e0ae564783472852927ed1c3c148eecf2a42 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Tue, 21 Jan 2025 13:22:52 +0100 Subject: [PATCH 066/284] Add new Script: LXC Delete (Proxmox) (#1636) --- json/lxc-delete.json | 39 +++++++++++++++ misc/lxc-delete.sh | 112 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 151 insertions(+) create mode 100644 json/lxc-delete.json create mode 100644 misc/lxc-delete.sh diff --git a/json/lxc-delete.json b/json/lxc-delete.json new file mode 100644 index 000000000..dbc3672b8 --- /dev/null +++ b/json/lxc-delete.json @@ -0,0 +1,39 @@ +{ + "name": "Container LXC Deletion", + "slug": "lxc-delete", + "categories": [ + 1 + ], + "date_created": "2025-01-21", + "type": "misc", + "updateable": false, + "privileged": false, + "interface_port": null, + "documentation": null, + "website": null, + "logo": "https://raw.githubusercontent.com/home-assistant/brands/master/core_integrations/proxmoxve/icon.png", + "description": "This script provides options for managing Proxmox VE repositories, including disabling the Enterprise Repo, adding or correcting PVE sources, enabling the No-Subscription Repo, adding the test Repo, disabling the subscription nag, updating Proxmox VE, and rebooting the system.", + "install_methods": [ + { + "type": "default", + "script": "misc/lxc-delete.sh", + "resources": { + "cpu": null, + "ram": null, + "hdd": null, + "os": null, + "version": null + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "Execute within the Proxmox shell", + "type": "info" + } + ] +} \ No newline at end of file diff --git a/misc/lxc-delete.sh b/misc/lxc-delete.sh new file mode 100644 index 000000000..2e76d5963 --- /dev/null +++ b/misc/lxc-delete.sh @@ -0,0 +1,112 @@ +#!/usr/bin/env bash + +# Copyright (c) 2021-2025 community-scripts ORG +# Author: MickLesk (CanbiZ) +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE + +function header_info { + clear + cat <<"EOF" + ____ ____ ____ _ __ __ _______ _ __ __ _ ________ ____ ________ __________________ + / __ \/ __ \/ __ \ |/ // |/ / __ \ |/ / / / | |/ / ____/ / __ \/ ____/ / / ____/_ __/ ____/ + / /_/ / /_/ / / / / // /|_/ / / / / / / / | / / / / / / __/ / / / __/ / / / __/ + / ____/ _, _/ /_/ / |/ / / / /_/ / | / /___/ / /___ / /_/ / /___/ /___/ /___ / / / /___ +/_/ /_/ |_|\____/_/|_/_/ /_/\____/_/|_| /_____/_/|_\____/ /_____/_____/_____/_____/ /_/ /_____/ + +EOF +} + +spinner() { + local pid=$1 + local delay=0.1 + local spinstr='|/-\' + while ps -p $pid > /dev/null; do + printf " [%c] " "$spinstr" + spinstr=${spinstr#?}${spinstr%"${spinstr#?}"} + sleep $delay + printf "\r" + done + printf " \r" +} + +set -eEuo pipefail +YW=$(echo "\033[33m") +BL=$(echo "\033[36m") +RD=$(echo "\033[01;31m") +CM='\xE2\x9C\x94\033' +GN=$(echo "\033[1;92m") +CL=$(echo "\033[m") + +header_info +echo "Loading..." +whiptail --backtitle "Proxmox VE Helper Scripts" --title "Proxmox VE LXC Deletion" --yesno "This Will Delete LXC Containers. Proceed?" 10 58 || exit + +NODE=$(hostname) + +# Get list of containers with ID and hostname +containers=$(pct list | tail -n +2 | awk '{print $0 " " $4}') + +# Exit if no containers are found +if [ -z "$containers" ]; then + whiptail --title "LXC Container Delete" --msgbox "There are no LXC Container available!" 10 60 + exit 1 +fi + +menu_items=() +FORMAT="%-10s %-15s %-10s" + +# Format container data for menu display +while read -r container; do + container_id=$(echo $container | awk '{print $1}') + container_name=$(echo $container | awk '{print $2}') + container_status=$(echo $container | awk '{print $3}') + formatted_line=$(printf "$FORMAT" "$container_name" "$container_status") + menu_items+=("$container_id" "$formatted_line" "OFF") +done <<< "$containers" + +# Display selection menu +CHOICES=$(whiptail --title "LXC Container Delete" \ + --checklist "Choose LXC container to delete:" 25 60 13 \ + "${menu_items[@]}" 3>&2 2>&1 1>&3) + +if [ -z "$CHOICES" ]; then + whiptail --title "LXC Container Delete" \ + --msgbox "No containers have been selected!" 10 60 + exit 1 +fi + +# Process selected containers +selected_ids=$(echo "$CHOICES" | tr -d '"' | tr -s ' ' '\n') + +for container_id in $selected_ids; do + status=$(pct status $container_id) + + # Stop container if running + if [ "$status" == "status: running" ]; then + echo -e "${BL}[Info]${GN} Stop container $container_id...${CL}" + pct stop $container_id & + sleep 5 + echo -e "${BL}[Info]${GN} Container $container_id stopped.${CL}" + fi + + # Confirm deletion + read -p "Are you sure you want to delete Container $container_id? (y/N): " CONFIRM + if [[ "$CONFIRM" =~ ^[Yy]$ ]]; then + echo -e "${BL}[Info]${GN} Deleting container $container_id...${CL}" + pct destroy "$container_id" -f & + pid=$! + spinner $pid + if [ $? -eq 0 ]; then + echo "Container $container_id was successfully deleted." + else + whiptail --title "Error" --msgbox "Error deleting container $container_id." 10 60 + fi + elif [[ "$CONFIRM" =~ ^[Nn]$ ]]; then + echo -e "${BL}[Info]${RD} Skipping container $container_id...${CL}" + else + echo -e "${RD}[Error]${CL} Invalid input, skipping container $container_id." + fi +done + +header_info +echo -e "${GN}The deletion process has been completed.${CL}\n" From 6e0527dc193cfe29a61ba6d0c5f695de4e860177 Mon Sep 17 00:00:00 2001 From: "community-scripts-pr-app[bot]" <189241966+community-scripts-pr-app[bot]@users.noreply.github.com> Date: Tue, 21 Jan 2025 13:38:42 +0100 Subject: [PATCH 067/284] Update CHANGELOG.md (#1638) Co-authored-by: github-actions[bot] --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e7d5c41b2..bcb42809b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,7 @@ Do not break established syntax in this file, as it is automatically updated by ### ✨ New Scripts +- Add new Script: LXC Delete (Proxmox) [@MickLesk](https://github.com/MickLesk) ([#1636](https://github.com/community-scripts/ProxmoxVE/pull/1636)) - New script: ProjectSend [@bvdberg01](https://github.com/bvdberg01) ([#1616](https://github.com/community-scripts/ProxmoxVE/pull/1616)) - New Script: Beszel [@Sinofage](https://github.com/Sinofage) ([#1619](https://github.com/community-scripts/ProxmoxVE/pull/1619)) - New Script: Docker VM [@thost96](https://github.com/thost96) ([#1608](https://github.com/community-scripts/ProxmoxVE/pull/1608)) From c5ba9493f862cfbb1a10b49c7498db2425fb218b Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Tue, 21 Jan 2025 13:44:42 +0100 Subject: [PATCH 068/284] Update photoprism-install.sh (#1639) --- install/photoprism-install.sh | 48 +++++++++++++++++++++-------------- 1 file changed, 29 insertions(+), 19 deletions(-) diff --git a/install/photoprism-install.sh b/install/photoprism-install.sh index b06e84139..14a1e52de 100644 --- a/install/photoprism-install.sh +++ b/install/photoprism-install.sh @@ -14,33 +14,35 @@ network_check update_os msg_info "Installing Dependencies (Patience)" -$STD apt-get install -y curl -$STD apt-get install -y sudo -$STD apt-get install -y mc -$STD apt-get install -y exiftool -$STD apt-get install -y ffmpeg -$STD apt-get install -y libheif1 -$STD apt-get install -y libpng-dev -$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 -$STD apt-get install -y libvips42 +$STD apt-get install -y \ + curl \ + sudo \ + mc \ + exiftool \ + ffmpeg \ + libheif1 \ + libpng-dev \ + libjpeg-dev \ + libtiff-dev \ + imagemagick \ + darktable \ + rawtherapee \ + libvips42 echo 'export PATH=/usr/local:$PATH' >>~/.bashrc export PATH=/usr/local:$PATH msg_ok "Installed Dependencies" msg_info "Installing PhotoPrism (Patience)" -mkdir -p /opt/photoprism/{cache,config,photos/originals,photos/import,storage,temp} +mkdir -p /opt/photoprism/{cache,config,photos,storage,temp} +mkdir -p /opt/photoprism/photos/{originals,import} +mkdir -p /opt/photoprism_backups wget -q -cO - https://dl.photoprism.app/pkg/linux/amd64.tar.gz | tar -xz -C /opt/photoprism --strip-components=1 -if [[ ${PCT_OSTYPE} == "ubuntu" ]]; then - wget -q -cO - https://dl.photoprism.app/dist/libheif/libheif-jammy-amd64-v1.17.1.tar.gz | tar -xzf - -C /usr/local --strip-components=1 -else - wget -q -cO - https://dl.photoprism.app/dist/libheif/libheif-bookworm-amd64-v1.17.1.tar.gz | tar -xzf - -C /usr/local --strip-components=1 -fi +LIBHEIF_URL=$(wget -q -O - "https://dl.photoprism.app/dist/libheif/" | grep -oP "libheif-$(lsb_release -cs)-amd64-v[0-9\.]+\.tar\.gz" | sort -V | tail -n 1) +wget -q -cO - "https://dl.photoprism.app/dist/libheif/$LIBHEIF_URL" | tar -xzf - -C /usr/local --strip-components=1 ldconfig +chown -R /opt/photoprism/photos/originals +chmod -R 755 /opt/photoprism/photos/originals cat </opt/photoprism/config/.env PHOTOPRISM_AUTH_MODE='password' PHOTOPRISM_ADMIN_PASSWORD='changeme' @@ -50,6 +52,14 @@ PHOTOPRISM_SITE_CAPTION='https://Helper-Scripts.com' PHOTOPRISM_STORAGE_PATH='/opt/photoprism/storage' PHOTOPRISM_ORIGINALS_PATH='/opt/photoprism/photos/originals' PHOTOPRISM_IMPORT_PATH='/opt/photoprism/photos/import' +PHOTOPRISM_BACKUP_PATH='/opt/photoprism_backups' +PHOTOPRISM_DATABASE_DRIVER='sqlite' +PHOTOPRISM_DISABLE_WEBDAV='false' +PHOTOPRISM_DISABLE_FACES='false' +PHOTOPRISM_AUTO_INDEX='300' +PHOTOPRISM_AUTO_IMPORT='-1' +PHOTOPRISM_PUBLIC='false' +PHOTOPRISM_DEBUG='false' EOF ln -sf /opt/photoprism/bin/photoprism /usr/local/bin/photoprism msg_ok "Installed PhotoPrism" From 3bbeaa8a9d5468edfbaf4d42be0827754122babc Mon Sep 17 00:00:00 2001 From: "community-scripts-pr-app[bot]" <189241966+community-scripts-pr-app[bot]@users.noreply.github.com> Date: Tue, 21 Jan 2025 13:48:57 +0100 Subject: [PATCH 069/284] Update CHANGELOG.md (#1640) Co-authored-by: github-actions[bot] --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index bcb42809b..5138dd26d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,6 +31,7 @@ Do not break established syntax in this file, as it is automatically updated by ### πŸš€ Updated Scripts +- Fix Photoprism missing folder & environments [@MickLesk](https://github.com/MickLesk) ([#1639](https://github.com/community-scripts/ProxmoxVE/pull/1639)) - Update MOTD: Add Dynamic IP with profile.d by @JcMinarro [@MickLesk](https://github.com/MickLesk) ([#1633](https://github.com/community-scripts/ProxmoxVE/pull/1633)) - PBS.sh: Fix wrong URL after Setup [@thost96](https://github.com/thost96) ([#1629](https://github.com/community-scripts/ProxmoxVE/pull/1629)) From b1b3d5b80a727fb638a94dfc54086bd9af4bdf69 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Tue, 21 Jan 2025 13:49:42 +0100 Subject: [PATCH 070/284] Update photoprism-install.sh --- install/photoprism-install.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/install/photoprism-install.sh b/install/photoprism-install.sh index 14a1e52de..12b378645 100644 --- a/install/photoprism-install.sh +++ b/install/photoprism-install.sh @@ -27,7 +27,8 @@ $STD apt-get install -y \ imagemagick \ darktable \ rawtherapee \ - libvips42 + libvips42 \ + lsb-release echo 'export PATH=/usr/local:$PATH' >>~/.bashrc export PATH=/usr/local:$PATH From 0e04db089ebf09436322ade14d46c21c9d2d0f82 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Tue, 21 Jan 2025 13:56:01 +0100 Subject: [PATCH 071/284] fix description --- json/lxc-delete.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/json/lxc-delete.json b/json/lxc-delete.json index dbc3672b8..f2010dbe3 100644 --- a/json/lxc-delete.json +++ b/json/lxc-delete.json @@ -12,7 +12,7 @@ "documentation": null, "website": null, "logo": "https://raw.githubusercontent.com/home-assistant/brands/master/core_integrations/proxmoxve/icon.png", - "description": "This script provides options for managing Proxmox VE repositories, including disabling the Enterprise Repo, adding or correcting PVE sources, enabling the No-Subscription Repo, adding the test Repo, disabling the subscription nag, updating Proxmox VE, and rebooting the system.", + "description": "This script helps manage and delete LXC containers on a Proxmox VE server. It lists all available containers, allowing the user to select one or more for deletion through an interactive menu. Running containers are automatically stopped before deletion, and the user is asked to confirm each action. The script ensures a controlled and efficient container management process.", "install_methods": [ { "type": "default", @@ -36,4 +36,4 @@ "type": "info" } ] -} \ No newline at end of file +} From d73f8f224a48cf3ca329d786c27f58cbd631d85a Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Tue, 21 Jan 2025 14:00:36 +0100 Subject: [PATCH 072/284] Update photoprism-install.sh --- install/photoprism-install.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/install/photoprism-install.sh b/install/photoprism-install.sh index 12b378645..ca02c4e9d 100644 --- a/install/photoprism-install.sh +++ b/install/photoprism-install.sh @@ -42,7 +42,6 @@ wget -q -cO - https://dl.photoprism.app/pkg/linux/amd64.tar.gz | tar -xz -C /opt LIBHEIF_URL=$(wget -q -O - "https://dl.photoprism.app/dist/libheif/" | grep -oP "libheif-$(lsb_release -cs)-amd64-v[0-9\.]+\.tar\.gz" | sort -V | tail -n 1) wget -q -cO - "https://dl.photoprism.app/dist/libheif/$LIBHEIF_URL" | tar -xzf - -C /usr/local --strip-components=1 ldconfig -chown -R /opt/photoprism/photos/originals chmod -R 755 /opt/photoprism/photos/originals cat </opt/photoprism/config/.env PHOTOPRISM_AUTH_MODE='password' From 5a93af33bad26e0301a5d96307c6cfe88d560694 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?N=C3=ADcolas=20Pastorello?= Date: Tue, 21 Jan 2025 10:06:26 -0300 Subject: [PATCH 073/284] Update glpi.json (#1641) Change category --- json/glpi.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/json/glpi.json b/json/glpi.json index 9de5223fe..f0a0640a7 100644 --- a/json/glpi.json +++ b/json/glpi.json @@ -2,7 +2,7 @@ "name": "GLPI", "slug": "glpi", "categories": [ - 0 + 25 ], "date_created": "2025-01-06", "type": "ct", From 3b37f6a5b7c5b1515a3ae2615ced7733749f076f Mon Sep 17 00:00:00 2001 From: "community-scripts-pr-app[bot]" <189241966+community-scripts-pr-app[bot]@users.noreply.github.com> Date: Tue, 21 Jan 2025 14:08:26 +0100 Subject: [PATCH 074/284] Update CHANGELOG.md (#1642) Co-authored-by: github-actions[bot] --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5138dd26d..b6c1ff2f5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -37,6 +37,7 @@ Do not break established syntax in this file, as it is automatically updated by ### 🌐 Website +- Update glpi.json [@opastorello](https://github.com/opastorello) ([#1641](https://github.com/community-scripts/ProxmoxVE/pull/1641)) - Fix Docker-VM name on website [@Sinofage](https://github.com/Sinofage) ([#1630](https://github.com/community-scripts/ProxmoxVE/pull/1630)) ## 2025-01-20 From dd0cdf5d2575cc12ffdb9e9418c23ed6f255de35 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Tue, 21 Jan 2025 14:38:38 +0100 Subject: [PATCH 075/284] ActualBudget: Fix Update-Function, Fix Wget Crawling, Add Versionscheck (#1643) * Update actualbudget-install.sh * Update actualbudget.sh * Update actualbudget-install.sh * Update actualbudget.sh --- ct/actualbudget.sh | 53 +++++++++++++++++++++------------ install/actualbudget-install.sh | 9 +++--- 2 files changed, 39 insertions(+), 23 deletions(-) diff --git a/ct/actualbudget.sh b/ct/actualbudget.sh index 4c779ad32..6e12d8a56 100644 --- a/ct/actualbudget.sh +++ b/ct/actualbudget.sh @@ -28,33 +28,48 @@ function update_script() { header_info check_container_storage check_container_resources + if [[ ! -d /opt/actualbudget ]]; then msg_error "No ${APP} Installation Found!" exit fi + if ! command -v jq >/dev/null 2>&1; then - echo "Installing jq..." - apt-get install -y jq >/dev/null 2>&1 - echo "Installed jq..." + echo "Installing jq..." + apt-get install -y jq >/dev/null 2>&1 + echo "Installed jq..." fi - msg_info "Updating ${APP}" - systemctl stop actualbudget RELEASE=$(curl -s https://api.github.com/repos/actualbudget/actual-server/tags | jq --raw-output '.[0].name') - TEMPD="$(mktemp -d)" - cd "${TEMPD}" - wget -q https://codeload.github.com/actualbudget/actual-server/legacy.tar.gz/refs/tags/${RELEASE} -O - | tar -xz - mv /opt/actualbudget /opt/actualbudget_bak - mkdir -p /opt/actualbudget/ - mv actualbudget-actual-server-*/* /opt/actualbudget/ - mv /opt/actualbudget_bak/.env /opt/actualbudget - mv /opt/actualbudget_bak/server-files /opt/actualbudget/server-files - cd /opt/actualbudget - yarn install &>/dev/null - systemctl start actualbudget - msg_ok "Successfully Updated ${APP} to ${RELEASE}" - rm -rf "${TEMPD}" - rm -rf /opt/actualbudget_bak + if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then + msg_info "Stopping ${APP}" + systemctl stop actualbudget + msg_ok "${APP} Stopped" + + msg_info "Updating ${APP} to ${RELEASE}" + wget -q https://github.com/actualbudget/actual-server/archive/refs/tags/${RELEASE}.tar.gz -O actual-server.tar.gz + tar -xzvf actual-server.tar.gz >/dev/null 2>&1 + mv /opt/actualbudget /opt/actualbudget_bak + mkdir -p /opt/actualbudget/ + mv actual-server-* /opt/actualbudget + mv /opt/actualbudget_bak/.env /opt/actualbudget + mv /opt/actualbudget_bak/server-files /opt/actualbudget/server-files + cd /opt/actualbudget + yarn install &>/dev/null + echo "${RELEASE}" >/opt/${APP}_version.txt + msg_ok "Updated ${APP}" + + msg_info "Starting ${APP}" + systemctl start actualbudget + msg_ok "Started ${APP}" + + msg_info "Cleaning Up" + rm -rf /opt/actualbudget_bak + msg_ok "Cleaned" + msg_ok "Updated Successfully" + else + msg_ok "No update required. ${APP} is already at ${RELEASE}" + fi exit } diff --git a/install/actualbudget-install.sh b/install/actualbudget-install.sh index e5400117d..30c294063 100644 --- a/install/actualbudget-install.sh +++ b/install/actualbudget-install.sh @@ -27,7 +27,7 @@ msg_ok "Installed Dependencies" msg_info "Setting up Node.js Repository" 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 +echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_22.x nodistro main" >/etc/apt/sources.list.d/nodesource.list msg_ok "Set up Node.js Repository" msg_info "Installing Node.js" @@ -36,10 +36,10 @@ $STD apt-get install -y nodejs $STD npm install --global yarn msg_ok "Installed Node.js" +msg_info "Installing Actual Budget" RELEASE=$(curl -s https://api.github.com/repos/actualbudget/actual-server/tags | jq --raw-output '.[0].name') -msg_info "Installing Actual Budget $RELEASE" -wget -q https://codeload.github.com/actualbudget/actual-server/legacy.tar.gz/refs/tags/${RELEASE} -O - | tar -xz -mv actualbudget-actual-server-* /opt/actualbudget +wget -q https://github.com/actualbudget/actual-server/archive/refs/tags/${RELEASE}.tar.gz -O actual-server.tar.gz -O - | tar -xz +mv *ctual-server-* /opt/actualbudget mkdir -p /opt/actualbudget/server-files mkdir -p /opt/actualbudget-data chown -R root:root /opt/actualbudget/server-files @@ -52,6 +52,7 @@ PORT=5006 EOF cd /opt/actualbudget $STD yarn install +echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt" msg_ok "Installed Actual Budget" msg_info "Creating Service" From 8337ca06fa8c34ad753da4fe6db63097ded9b9ef Mon Sep 17 00:00:00 2001 From: "community-scripts-pr-app[bot]" <189241966+community-scripts-pr-app[bot]@users.noreply.github.com> Date: Tue, 21 Jan 2025 14:40:17 +0100 Subject: [PATCH 076/284] Update CHANGELOG.md (#1644) Co-authored-by: github-actions[bot] --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b6c1ff2f5..b3662c9b3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,6 +31,7 @@ Do not break established syntax in this file, as it is automatically updated by ### πŸš€ Updated Scripts +- ActualBudget: Fix Update-Function, Fix Wget Crawling, Add Versionscheck [@MickLesk](https://github.com/MickLesk) ([#1643](https://github.com/community-scripts/ProxmoxVE/pull/1643)) - Fix Photoprism missing folder & environments [@MickLesk](https://github.com/MickLesk) ([#1639](https://github.com/community-scripts/ProxmoxVE/pull/1639)) - Update MOTD: Add Dynamic IP with profile.d by @JcMinarro [@MickLesk](https://github.com/MickLesk) ([#1633](https://github.com/community-scripts/ProxmoxVE/pull/1633)) - PBS.sh: Fix wrong URL after Setup [@thost96](https://github.com/thost96) ([#1629](https://github.com/community-scripts/ProxmoxVE/pull/1629)) From e7af6f31ad471c77e3f627eb6c25480ce6fae5b2 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Tue, 21 Jan 2025 15:15:16 +0100 Subject: [PATCH 077/284] Update actualbudget-install.sh --- install/actualbudget-install.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/install/actualbudget-install.sh b/install/actualbudget-install.sh index 30c294063..b9f72bbb5 100644 --- a/install/actualbudget-install.sh +++ b/install/actualbudget-install.sh @@ -38,7 +38,8 @@ msg_ok "Installed Node.js" msg_info "Installing Actual Budget" RELEASE=$(curl -s https://api.github.com/repos/actualbudget/actual-server/tags | jq --raw-output '.[0].name') -wget -q https://github.com/actualbudget/actual-server/archive/refs/tags/${RELEASE}.tar.gz -O actual-server.tar.gz -O - | tar -xz +wget -q https://github.com/actualbudget/actual-server/archive/refs/tags/${RELEASE}.tar.gz -O actual-server.tar.gz -O +$STD tar -xzvf actual-server.tar.gz mv *ctual-server-* /opt/actualbudget mkdir -p /opt/actualbudget/server-files mkdir -p /opt/actualbudget-data From 35a66c5f1f5d26ab5e3c88db5292fd05213c6b9b Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Tue, 21 Jan 2025 15:27:27 +0100 Subject: [PATCH 078/284] Update actualbudget-install.sh --- install/actualbudget-install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/actualbudget-install.sh b/install/actualbudget-install.sh index b9f72bbb5..685b619f1 100644 --- a/install/actualbudget-install.sh +++ b/install/actualbudget-install.sh @@ -38,7 +38,7 @@ msg_ok "Installed Node.js" msg_info "Installing Actual Budget" RELEASE=$(curl -s https://api.github.com/repos/actualbudget/actual-server/tags | jq --raw-output '.[0].name') -wget -q https://github.com/actualbudget/actual-server/archive/refs/tags/${RELEASE}.tar.gz -O actual-server.tar.gz -O +wget -q https://github.com/actualbudget/actual-server/archive/refs/tags/${RELEASE}.tar.gz -O actual-server.tar.gz $STD tar -xzvf actual-server.tar.gz mv *ctual-server-* /opt/actualbudget mkdir -p /opt/actualbudget/server-files From 7df2297be07b405de98cd26eeba16f713ff965c5 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Tue, 21 Jan 2025 15:54:50 +0100 Subject: [PATCH 079/284] Update actualbudget-install.sh --- install/actualbudget-install.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install/actualbudget-install.sh b/install/actualbudget-install.sh index 685b619f1..50c028aed 100644 --- a/install/actualbudget-install.sh +++ b/install/actualbudget-install.sh @@ -38,8 +38,8 @@ msg_ok "Installed Node.js" msg_info "Installing Actual Budget" RELEASE=$(curl -s https://api.github.com/repos/actualbudget/actual-server/tags | jq --raw-output '.[0].name') -wget -q https://github.com/actualbudget/actual-server/archive/refs/tags/${RELEASE}.tar.gz -O actual-server.tar.gz -$STD tar -xzvf actual-server.tar.gz +wget -q https://github.com/actualbudget/actual-server/archive/refs/tags/${RELEASE}.tar.gz +$STD tar -xzvf ${RELEASE}.tar.gz mv *ctual-server-* /opt/actualbudget mkdir -p /opt/actualbudget/server-files mkdir -p /opt/actualbudget-data From e76e5ec4a0261cdcf5066dde0c1b5a7e940666c6 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Tue, 21 Jan 2025 16:13:35 +0100 Subject: [PATCH 080/284] Update actualbudget.sh --- ct/actualbudget.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ct/actualbudget.sh b/ct/actualbudget.sh index 6e12d8a56..555b1113c 100644 --- a/ct/actualbudget.sh +++ b/ct/actualbudget.sh @@ -47,7 +47,7 @@ function update_script() { msg_ok "${APP} Stopped" msg_info "Updating ${APP} to ${RELEASE}" - wget -q https://github.com/actualbudget/actual-server/archive/refs/tags/${RELEASE}.tar.gz -O actual-server.tar.gz + wget -q https://codeload.github.com/actualbudget/actual-server/legacy.tar.gz/refs/tags/${RELEASE} -O actual-server.tar.gz tar -xzvf actual-server.tar.gz >/dev/null 2>&1 mv /opt/actualbudget /opt/actualbudget_bak mkdir -p /opt/actualbudget/ From 2f2d1eeec3e8e789b6cf03f94186a354bfed879f Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Tue, 21 Jan 2025 16:13:59 +0100 Subject: [PATCH 081/284] Update actualbudget-install.sh --- install/actualbudget-install.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install/actualbudget-install.sh b/install/actualbudget-install.sh index 50c028aed..b4c07fd1b 100644 --- a/install/actualbudget-install.sh +++ b/install/actualbudget-install.sh @@ -38,8 +38,8 @@ msg_ok "Installed Node.js" msg_info "Installing Actual Budget" RELEASE=$(curl -s https://api.github.com/repos/actualbudget/actual-server/tags | jq --raw-output '.[0].name') -wget -q https://github.com/actualbudget/actual-server/archive/refs/tags/${RELEASE}.tar.gz -$STD tar -xzvf ${RELEASE}.tar.gz +wget -q https://codeload.github.com/actualbudget/actual-server/legacy.tar.gz/refs/tags/${RELEASE} -O actual-server.tar.gz +$STD tar -xzvf actual-server.tar.gz mv *ctual-server-* /opt/actualbudget mkdir -p /opt/actualbudget/server-files mkdir -p /opt/actualbudget-data From c1b3d14068b70deeb7ea80131923fac5e0524824 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Tue, 21 Jan 2025 16:25:55 +0100 Subject: [PATCH 082/284] Update actualbudget-install.sh --- install/actualbudget-install.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/install/actualbudget-install.sh b/install/actualbudget-install.sh index b4c07fd1b..b38e11ca7 100644 --- a/install/actualbudget-install.sh +++ b/install/actualbudget-install.sh @@ -38,7 +38,8 @@ msg_ok "Installed Node.js" msg_info "Installing Actual Budget" RELEASE=$(curl -s https://api.github.com/repos/actualbudget/actual-server/tags | jq --raw-output '.[0].name') -wget -q https://codeload.github.com/actualbudget/actual-server/legacy.tar.gz/refs/tags/${RELEASE} -O actual-server.tar.gz +wget -q https://codeload.github.com/actualbudget/actual-server/legacy.tar.gz/refs/tags/${RELEASE} +mv ${RELEASE} actual-server.tar.gz $STD tar -xzvf actual-server.tar.gz mv *ctual-server-* /opt/actualbudget mkdir -p /opt/actualbudget/server-files From 9c415ca3f4c1bbbce2cf4dc14169f7c48ce963a8 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Tue, 21 Jan 2025 16:37:06 +0100 Subject: [PATCH 083/284] Update actualbudget-install.sh --- install/actualbudget-install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/actualbudget-install.sh b/install/actualbudget-install.sh index b38e11ca7..16c8864af 100644 --- a/install/actualbudget-install.sh +++ b/install/actualbudget-install.sh @@ -38,7 +38,7 @@ msg_ok "Installed Node.js" msg_info "Installing Actual Budget" RELEASE=$(curl -s https://api.github.com/repos/actualbudget/actual-server/tags | jq --raw-output '.[0].name') -wget -q https://codeload.github.com/actualbudget/actual-server/legacy.tar.gz/refs/tags/${RELEASE} +wget -q https://github.com/actualbudget/actual-server/archive/refs/tags/${RELEASE} mv ${RELEASE} actual-server.tar.gz $STD tar -xzvf actual-server.tar.gz mv *ctual-server-* /opt/actualbudget From c3acbf09edc88fc5fed18d572c388cd71a4e6821 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Tue, 21 Jan 2025 16:38:50 +0100 Subject: [PATCH 084/284] Update actualbudget-install.sh --- install/actualbudget-install.sh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/install/actualbudget-install.sh b/install/actualbudget-install.sh index 16c8864af..d52eee3f9 100644 --- a/install/actualbudget-install.sh +++ b/install/actualbudget-install.sh @@ -38,9 +38,8 @@ msg_ok "Installed Node.js" msg_info "Installing Actual Budget" RELEASE=$(curl -s https://api.github.com/repos/actualbudget/actual-server/tags | jq --raw-output '.[0].name') -wget -q https://github.com/actualbudget/actual-server/archive/refs/tags/${RELEASE} -mv ${RELEASE} actual-server.tar.gz -$STD tar -xzvf actual-server.tar.gz +wget -q https://github.com/actualbudget/actual-server/archive/refs/tags/${RELEASE}.tar.gz +$STD tar -xzvf ${RELEASE}.tar.gz mv *ctual-server-* /opt/actualbudget mkdir -p /opt/actualbudget/server-files mkdir -p /opt/actualbudget-data From ed8edcbf2d32c3dbdfc104e460075aa2b314535d Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Tue, 21 Jan 2025 19:34:12 +0100 Subject: [PATCH 085/284] Fix: Docker VM deprecated gpg (#1649) --- vm/docker-vm.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/vm/docker-vm.sh b/vm/docker-vm.sh index 9bd028166..0d9fe6017 100644 --- a/vm/docker-vm.sh +++ b/vm/docker-vm.sh @@ -403,17 +403,17 @@ done msg_info "Installing Pre-Requisite libguestfs-tools onto Host" apt-get -qq update && apt-get -qq install libguestfs-tools -y >/dev/null -msg_ok "Installed libguestfs-tools successful" +msg_ok "Installed libguestfs-tools successfully" -msg_info "Adding Docker and Docker Compose Plugin to Debian 12 Qcow2 Disk Image Image" +msg_info "Adding Docker and Docker Compose Plugin to Debian 12 Qcow2 Disk Image" virt-customize -q -a "${FILE}" --install qemu-guest-agent,apt-transport-https,ca-certificates,curl,gnupg-agent,software-properties-common,lsb-release >/dev/null && virt-customize -q -a "${FILE}" --root-password password:docker >/dev/null && -virt-customize -q -a "${FILE}" --run-command "curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -" >/dev/null && -virt-customize -q -a "${FILE}" --run-command "add-apt-repository \"deb [arch=$(dpkg --print-architecture)] https://download.docker.com/linux/debian $(lsb_release -cs) stable\"" >/dev/null && +virt-customize -q -a "${FILE}" --run-command "mkdir -p /etc/apt/keyrings && curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg" >/dev/null && +virt-customize -q -a "${FILE}" --run-command "echo 'deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable' > /etc/apt/sources.list.d/docker.list" >/dev/null && virt-customize -q -a "${FILE}" --run-command "apt-get update -y && apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin" >/dev/null && virt-customize -q -a "${FILE}" --run-command "systemctl start docker && systemctl enable docker" >/dev/null && virt-customize -q -a "${FILE}" --run-command "echo -n > /etc/machine-id" >/dev/null -msg_ok "Added Docker and Docker Compose Plugin to Debian 12 Qcow2 Disk Image successful" +msg_ok "Added Docker and Docker Compose Plugin to Debian 12 Qcow2 Disk Image successfully" msg_info "Creating a Docker VM" qm create $VMID -agent 1${MACHINE} -tablet 0 -localtime 1 -bios ovmf${CPU_TYPE} -cores $CORE_COUNT -memory $RAM_SIZE \ From 0a7d541261323a25beb2f666eca4f103454badd7 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Tue, 21 Jan 2025 19:38:51 +0100 Subject: [PATCH 086/284] Update docker-vm.sh --- vm/docker-vm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vm/docker-vm.sh b/vm/docker-vm.sh index 0d9fe6017..50e27c606 100644 --- a/vm/docker-vm.sh +++ b/vm/docker-vm.sh @@ -402,7 +402,7 @@ for i in {0,1}; do done msg_info "Installing Pre-Requisite libguestfs-tools onto Host" -apt-get -qq update && apt-get -qq install libguestfs-tools -y >/dev/null +apt-get -qq update && apt-get -qq install libguestfs-tools lsb-release -y >/dev/null msg_ok "Installed libguestfs-tools successfully" msg_info "Adding Docker and Docker Compose Plugin to Debian 12 Qcow2 Disk Image" From e051e414a8e0a81b2cb031b3d402914cf83a592e Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Tue, 21 Jan 2025 19:42:38 +0100 Subject: [PATCH 087/284] Update actualbudget-install.sh --- install/actualbudget-install.sh | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/install/actualbudget-install.sh b/install/actualbudget-install.sh index d52eee3f9..5eca5833d 100644 --- a/install/actualbudget-install.sh +++ b/install/actualbudget-install.sh @@ -37,9 +37,10 @@ $STD npm install --global yarn msg_ok "Installed Node.js" msg_info "Installing Actual Budget" -RELEASE=$(curl -s https://api.github.com/repos/actualbudget/actual-server/tags | jq --raw-output '.[0].name') -wget -q https://github.com/actualbudget/actual-server/archive/refs/tags/${RELEASE}.tar.gz -$STD tar -xzvf ${RELEASE}.tar.gz +https://github.com/actualbudget/actual +RELEASE=$(curl -s https://api.github.com/repos/actualbudget/actual/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') +wget -q https://github.com/actualbudget/actual-server/archive/refs/tags/v${RELEASE}.tar.gz +$STD tar -xzvf v${RELEASE}.tar.gz mv *ctual-server-* /opt/actualbudget mkdir -p /opt/actualbudget/server-files mkdir -p /opt/actualbudget-data From db061db17e06983df4d61c0d3353fc78e36a93be Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Tue, 21 Jan 2025 19:45:03 +0100 Subject: [PATCH 088/284] Update docker-vm.sh --- vm/docker-vm.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/vm/docker-vm.sh b/vm/docker-vm.sh index 50e27c606..db855d504 100644 --- a/vm/docker-vm.sh +++ b/vm/docker-vm.sh @@ -406,15 +406,15 @@ apt-get -qq update && apt-get -qq install libguestfs-tools lsb-release -y >/dev/ msg_ok "Installed libguestfs-tools successfully" msg_info "Adding Docker and Docker Compose Plugin to Debian 12 Qcow2 Disk Image" -virt-customize -q -a "${FILE}" --install qemu-guest-agent,apt-transport-https,ca-certificates,curl,gnupg-agent,software-properties-common,lsb-release >/dev/null && -virt-customize -q -a "${FILE}" --root-password password:docker >/dev/null && +virt-customize -q -a "${FILE}" --install qemu-guest-agent,apt-transport-https,ca-certificates,curl,gnupg,software-properties-common,lsb-release >/dev/null && virt-customize -q -a "${FILE}" --run-command "mkdir -p /etc/apt/keyrings && curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg" >/dev/null && -virt-customize -q -a "${FILE}" --run-command "echo 'deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable' > /etc/apt/sources.list.d/docker.list" >/dev/null && -virt-customize -q -a "${FILE}" --run-command "apt-get update -y && apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin" >/dev/null && -virt-customize -q -a "${FILE}" --run-command "systemctl start docker && systemctl enable docker" >/dev/null && +virt-customize -q -a "${FILE}" --run-command "echo 'deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian bookworm stable' > /etc/apt/sources.list.d/docker.list" >/dev/null && +virt-customize -q -a "${FILE}" --run-command "apt-get update -qq && apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin" >/dev/null && +virt-customize -q -a "${FILE}" --run-command "systemctl enable docker" >/dev/null && virt-customize -q -a "${FILE}" --run-command "echo -n > /etc/machine-id" >/dev/null msg_ok "Added Docker and Docker Compose Plugin to Debian 12 Qcow2 Disk Image successfully" + msg_info "Creating a Docker VM" qm create $VMID -agent 1${MACHINE} -tablet 0 -localtime 1 -bios ovmf${CPU_TYPE} -cores $CORE_COUNT -memory $RAM_SIZE \ -name $HN -tags proxmox-helper-scripts,debian12,docker -net0 virtio,bridge=$BRG,macaddr=$MAC$VLAN$MTU -onboot 1 -ostype l26 -scsihw virtio-scsi-pci From 83aff658c56df2b8b3141bad21195f1fd71d4bd8 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Tue, 21 Jan 2025 19:47:42 +0100 Subject: [PATCH 089/284] Update actualbudget-install.sh --- install/actualbudget-install.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/install/actualbudget-install.sh b/install/actualbudget-install.sh index 5eca5833d..f28ac0013 100644 --- a/install/actualbudget-install.sh +++ b/install/actualbudget-install.sh @@ -37,7 +37,6 @@ $STD npm install --global yarn msg_ok "Installed Node.js" msg_info "Installing Actual Budget" -https://github.com/actualbudget/actual RELEASE=$(curl -s https://api.github.com/repos/actualbudget/actual/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') wget -q https://github.com/actualbudget/actual-server/archive/refs/tags/v${RELEASE}.tar.gz $STD tar -xzvf v${RELEASE}.tar.gz From e6404a9a4e56a5f786d73abaf1c0a500a6b7b806 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Tue, 21 Jan 2025 19:58:28 +0100 Subject: [PATCH 090/284] Update actualbudget-install.sh --- install/actualbudget-install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/actualbudget-install.sh b/install/actualbudget-install.sh index f28ac0013..b35fba5ec 100644 --- a/install/actualbudget-install.sh +++ b/install/actualbudget-install.sh @@ -38,7 +38,7 @@ msg_ok "Installed Node.js" msg_info "Installing Actual Budget" RELEASE=$(curl -s https://api.github.com/repos/actualbudget/actual/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') -wget -q https://github.com/actualbudget/actual-server/archive/refs/tags/v${RELEASE}.tar.gz +wget -q https://github.com/actualbudget/actual-server/archive/refs/tags/v${RELEASE} $STD tar -xzvf v${RELEASE}.tar.gz mv *ctual-server-* /opt/actualbudget mkdir -p /opt/actualbudget/server-files From 621416698ac0bceea03ecfe966a095c69a60e55e Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Tue, 21 Jan 2025 20:11:31 +0100 Subject: [PATCH 091/284] Fix: Teddycloud Script (install, clean up & update) (#1652) * Update teddycloud-install.sh * Update teddycloud.sh --- ct/teddycloud.sh | 14 ++++++-------- install/teddycloud-install.sh | 1 + 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/ct/teddycloud.sh b/ct/teddycloud.sh index 0b2a7dcb2..ad71c6565 100644 --- a/ct/teddycloud.sh +++ b/ct/teddycloud.sh @@ -36,14 +36,12 @@ function update_script() { msg_ok "Stopped ${APP}" msg_info "Updating ${APP} to v${VERSION}" - PREVIOUS_VERSION="$(readlink -f /opt/teddycloud)" + cd /opt + mv /opt/teddycloud /opt_teddycloud_bak wget -q "https://github.com/toniebox-reverse-engineering/teddycloud/releases/download/${RELEASE}/teddycloud.amd64.release_v${VERSION}.zip" - unzip -q -d "/opt/teddycloud-${VERSION}" "teddycloud.amd64.release_v${VERSION}.zip" - ln -fns "/opt/teddycloud-${VERSION}" /opt/teddycloud + unzip -q -d /opt/teddycloud teddycloud.amd64.release_v${VERSION}.zip + cp -R /opt_teddycloud_bak/certs /opt_teddycloud_bak/config /opt_teddycloud_bak/data /opt/teddycloud echo "${VERSION}" >"/opt/${APP}_version.txt" - cp -R "${PREVIOUS_VERSION}/certs" /opt/teddycloud - cp -R "${PREVIOUS_VERSION}/config" /opt/teddycloud - cp -R "${PREVIOUS_VERSION}/data" /opt/teddycloud msg_ok "Updated ${APP} to v${VERSION}" msg_info "Starting ${APP}" @@ -51,8 +49,8 @@ function update_script() { msg_ok "Started ${APP}" msg_info "Cleaning up" - rm "teddycloud.amd64.release_v${VERSION}.zip" - rm -rf "${PREVIOUS_VERSION}" + rm -rf /opt/teddycloud.amd64.release_v${VERSION}.zip + rm -rf /opt/teddycloud_bak msg_ok "Cleaned" else msg_ok "No update required. ${APP} is already at v${VERSION}" diff --git a/install/teddycloud-install.sh b/install/teddycloud-install.sh index 1a4995000..d81399d15 100644 --- a/install/teddycloud-install.sh +++ b/install/teddycloud-install.sh @@ -30,6 +30,7 @@ VERSION="${RELEASE#tc_v}" wget -q "https://github.com/toniebox-reverse-engineering/teddycloud/releases/download/${RELEASE}/teddycloud.amd64.release_v${VERSION}.zip" unzip -q -d "/opt/teddycloud-${VERSION}" "teddycloud.amd64.release_v${VERSION}.zip" ln -fns "/opt/teddycloud-${VERSION}" /opt/teddycloud +rm -rf teddycloud.amd64.release_v${VERSION}.zip echo "${VERSION}" >"/opt/${APPLICATION}_version.txt" msg_ok "Installed TeddyCloud" From 4340ccc15daf059d62fe6be9ca44ee4490fb6553 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Tue, 21 Jan 2025 20:13:26 +0100 Subject: [PATCH 092/284] Update actualbudget-install.sh --- install/actualbudget-install.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/install/actualbudget-install.sh b/install/actualbudget-install.sh index b35fba5ec..d65bc1021 100644 --- a/install/actualbudget-install.sh +++ b/install/actualbudget-install.sh @@ -38,8 +38,10 @@ msg_ok "Installed Node.js" msg_info "Installing Actual Budget" RELEASE=$(curl -s https://api.github.com/repos/actualbudget/actual/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') -wget -q https://github.com/actualbudget/actual-server/archive/refs/tags/v${RELEASE} -$STD tar -xzvf v${RELEASE}.tar.gz +#wget -q https://github.com/actualbudget/actual-server/archive/refs/tags/v${RELEASE} +#$STD tar -xzvf v${RELEASE}.tar.gz +wget -q https://github.com/actualbudget/actual-server/archive/refs/tags/v25.1.0.tar.gz +$STD tar -xzvf v25.1.0.tar.gz mv *ctual-server-* /opt/actualbudget mkdir -p /opt/actualbudget/server-files mkdir -p /opt/actualbudget-data From 4b292c3b2aa7eae4240af4ba338e5ee9fabe42c2 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Tue, 21 Jan 2025 20:23:59 +0100 Subject: [PATCH 093/284] Update actualbudget-install.sh --- install/actualbudget-install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/actualbudget-install.sh b/install/actualbudget-install.sh index d65bc1021..720a82e6a 100644 --- a/install/actualbudget-install.sh +++ b/install/actualbudget-install.sh @@ -40,7 +40,7 @@ msg_info "Installing Actual Budget" RELEASE=$(curl -s https://api.github.com/repos/actualbudget/actual/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') #wget -q https://github.com/actualbudget/actual-server/archive/refs/tags/v${RELEASE} #$STD tar -xzvf v${RELEASE}.tar.gz -wget -q https://github.com/actualbudget/actual-server/archive/refs/tags/v25.1.0.tar.gz +wget https://github.com/actualbudget/actual-server/archive/refs/tags/v25.1.0.tar.gz $STD tar -xzvf v25.1.0.tar.gz mv *ctual-server-* /opt/actualbudget mkdir -p /opt/actualbudget/server-files From b93d7bd6323609afcdb976dd4d1d2457a03282b1 Mon Sep 17 00:00:00 2001 From: "community-scripts-pr-app[bot]" <189241966+community-scripts-pr-app[bot]@users.noreply.github.com> Date: Tue, 21 Jan 2025 20:25:52 +0100 Subject: [PATCH 094/284] Update CHANGELOG.md (#1650) Co-authored-by: github-actions[bot] --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b3662c9b3..e8fc8cc30 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,6 +31,8 @@ Do not break established syntax in this file, as it is automatically updated by ### πŸš€ Updated Scripts +- Fix: Teddycloud Script (install, clean up & update) [@MickLesk](https://github.com/MickLesk) ([#1652](https://github.com/community-scripts/ProxmoxVE/pull/1652)) +- Fix: Docker VM deprecated gpg [@MickLesk](https://github.com/MickLesk) ([#1649](https://github.com/community-scripts/ProxmoxVE/pull/1649)) - ActualBudget: Fix Update-Function, Fix Wget Crawling, Add Versionscheck [@MickLesk](https://github.com/MickLesk) ([#1643](https://github.com/community-scripts/ProxmoxVE/pull/1643)) - Fix Photoprism missing folder & environments [@MickLesk](https://github.com/MickLesk) ([#1639](https://github.com/community-scripts/ProxmoxVE/pull/1639)) - Update MOTD: Add Dynamic IP with profile.d by @JcMinarro [@MickLesk](https://github.com/MickLesk) ([#1633](https://github.com/community-scripts/ProxmoxVE/pull/1633)) From 0e19ad2859a30a5c0f68f433b7d3448595afea97 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Tue, 21 Jan 2025 20:35:56 +0100 Subject: [PATCH 095/284] Update actualbudget-install.sh --- install/actualbudget-install.sh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/install/actualbudget-install.sh b/install/actualbudget-install.sh index 720a82e6a..b8a4ba82d 100644 --- a/install/actualbudget-install.sh +++ b/install/actualbudget-install.sh @@ -39,9 +39,8 @@ msg_ok "Installed Node.js" msg_info "Installing Actual Budget" RELEASE=$(curl -s https://api.github.com/repos/actualbudget/actual/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') #wget -q https://github.com/actualbudget/actual-server/archive/refs/tags/v${RELEASE} -#$STD tar -xzvf v${RELEASE}.tar.gz -wget https://github.com/actualbudget/actual-server/archive/refs/tags/v25.1.0.tar.gz -$STD tar -xzvf v25.1.0.tar.gz +$STD curl -L -o actual-server.tar.gz https://github.com/actualbudget/actual-server/archive/refs/tags/v${RELEASE}.tar.gz +$STD tar -xzvf v${RELEASE}.tar.gz mv *ctual-server-* /opt/actualbudget mkdir -p /opt/actualbudget/server-files mkdir -p /opt/actualbudget-data From 6ecef0ef94a9c704e5179d414f7f6f4f9b55db41 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Tue, 21 Jan 2025 20:49:54 +0100 Subject: [PATCH 096/284] Update actualbudget-install.sh --- install/actualbudget-install.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install/actualbudget-install.sh b/install/actualbudget-install.sh index b8a4ba82d..1dc8cc04b 100644 --- a/install/actualbudget-install.sh +++ b/install/actualbudget-install.sh @@ -38,8 +38,8 @@ msg_ok "Installed Node.js" msg_info "Installing Actual Budget" RELEASE=$(curl -s https://api.github.com/repos/actualbudget/actual/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') -#wget -q https://github.com/actualbudget/actual-server/archive/refs/tags/v${RELEASE} -$STD curl -L -o actual-server.tar.gz https://github.com/actualbudget/actual-server/archive/refs/tags/v${RELEASE}.tar.gz +wget -q https://github.com/actualbudget/actual-server/archive/refs/tags/v${RELEASE} +#$STD curl -L -o actual-server.tar.gz https://github.com/actualbudget/actual-server/archive/refs/tags/v${RELEASE}.tar.gz $STD tar -xzvf v${RELEASE}.tar.gz mv *ctual-server-* /opt/actualbudget mkdir -p /opt/actualbudget/server-files From 7a66f9b42f0cc7791c2a2f887b90f007541b24be Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Jan 2025 21:01:12 +0100 Subject: [PATCH 097/284] Bump vite from 6.0.1 to 6.0.11 in /frontend (#1653) Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 6.0.1 to 6.0.11. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v6.0.11/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- frontend/package-lock.json | 224 ++++++++++++++++++++----------------- 1 file changed, 121 insertions(+), 103 deletions(-) diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 40e82fae3..024cb74ba 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -467,9 +467,9 @@ "license": "MIT" }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.0.tgz", - "integrity": "sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz", + "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==", "cpu": [ "ppc64" ], @@ -484,9 +484,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.0.tgz", - "integrity": "sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.2.tgz", + "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==", "cpu": [ "arm" ], @@ -501,9 +501,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.0.tgz", - "integrity": "sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz", + "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==", "cpu": [ "arm64" ], @@ -518,9 +518,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.0.tgz", - "integrity": "sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.2.tgz", + "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==", "cpu": [ "x64" ], @@ -535,9 +535,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.0.tgz", - "integrity": "sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz", + "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==", "cpu": [ "arm64" ], @@ -552,9 +552,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.0.tgz", - "integrity": "sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz", + "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==", "cpu": [ "x64" ], @@ -569,9 +569,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.0.tgz", - "integrity": "sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz", + "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==", "cpu": [ "arm64" ], @@ -586,9 +586,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.0.tgz", - "integrity": "sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz", + "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==", "cpu": [ "x64" ], @@ -603,9 +603,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.0.tgz", - "integrity": "sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz", + "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==", "cpu": [ "arm" ], @@ -620,9 +620,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.0.tgz", - "integrity": "sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz", + "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==", "cpu": [ "arm64" ], @@ -637,9 +637,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.0.tgz", - "integrity": "sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz", + "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==", "cpu": [ "ia32" ], @@ -654,9 +654,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.0.tgz", - "integrity": "sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz", + "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==", "cpu": [ "loong64" ], @@ -671,9 +671,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.0.tgz", - "integrity": "sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz", + "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==", "cpu": [ "mips64el" ], @@ -688,9 +688,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.0.tgz", - "integrity": "sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz", + "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==", "cpu": [ "ppc64" ], @@ -705,9 +705,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.0.tgz", - "integrity": "sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz", + "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==", "cpu": [ "riscv64" ], @@ -722,9 +722,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.0.tgz", - "integrity": "sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz", + "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==", "cpu": [ "s390x" ], @@ -739,9 +739,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.0.tgz", - "integrity": "sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz", + "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==", "cpu": [ "x64" ], @@ -755,10 +755,27 @@ "node": ">=18" } }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz", + "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.0.tgz", - "integrity": "sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz", + "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==", "cpu": [ "x64" ], @@ -773,9 +790,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.0.tgz", - "integrity": "sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz", + "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==", "cpu": [ "arm64" ], @@ -790,9 +807,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.0.tgz", - "integrity": "sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz", + "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==", "cpu": [ "x64" ], @@ -807,9 +824,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.0.tgz", - "integrity": "sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz", + "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==", "cpu": [ "x64" ], @@ -824,9 +841,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.0.tgz", - "integrity": "sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz", + "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==", "cpu": [ "arm64" ], @@ -841,9 +858,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.0.tgz", - "integrity": "sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz", + "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==", "cpu": [ "ia32" ], @@ -858,9 +875,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.0.tgz", - "integrity": "sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz", + "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==", "cpu": [ "x64" ], @@ -4844,9 +4861,9 @@ } }, "node_modules/esbuild": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.0.tgz", - "integrity": "sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz", + "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -4857,30 +4874,31 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.24.0", - "@esbuild/android-arm": "0.24.0", - "@esbuild/android-arm64": "0.24.0", - "@esbuild/android-x64": "0.24.0", - "@esbuild/darwin-arm64": "0.24.0", - "@esbuild/darwin-x64": "0.24.0", - "@esbuild/freebsd-arm64": "0.24.0", - "@esbuild/freebsd-x64": "0.24.0", - "@esbuild/linux-arm": "0.24.0", - "@esbuild/linux-arm64": "0.24.0", - "@esbuild/linux-ia32": "0.24.0", - "@esbuild/linux-loong64": "0.24.0", - "@esbuild/linux-mips64el": "0.24.0", - "@esbuild/linux-ppc64": "0.24.0", - "@esbuild/linux-riscv64": "0.24.0", - "@esbuild/linux-s390x": "0.24.0", - "@esbuild/linux-x64": "0.24.0", - "@esbuild/netbsd-x64": "0.24.0", - "@esbuild/openbsd-arm64": "0.24.0", - "@esbuild/openbsd-x64": "0.24.0", - "@esbuild/sunos-x64": "0.24.0", - "@esbuild/win32-arm64": "0.24.0", - "@esbuild/win32-ia32": "0.24.0", - "@esbuild/win32-x64": "0.24.0" + "@esbuild/aix-ppc64": "0.24.2", + "@esbuild/android-arm": "0.24.2", + "@esbuild/android-arm64": "0.24.2", + "@esbuild/android-x64": "0.24.2", + "@esbuild/darwin-arm64": "0.24.2", + "@esbuild/darwin-x64": "0.24.2", + "@esbuild/freebsd-arm64": "0.24.2", + "@esbuild/freebsd-x64": "0.24.2", + "@esbuild/linux-arm": "0.24.2", + "@esbuild/linux-arm64": "0.24.2", + "@esbuild/linux-ia32": "0.24.2", + "@esbuild/linux-loong64": "0.24.2", + "@esbuild/linux-mips64el": "0.24.2", + "@esbuild/linux-ppc64": "0.24.2", + "@esbuild/linux-riscv64": "0.24.2", + "@esbuild/linux-s390x": "0.24.2", + "@esbuild/linux-x64": "0.24.2", + "@esbuild/netbsd-arm64": "0.24.2", + "@esbuild/netbsd-x64": "0.24.2", + "@esbuild/openbsd-arm64": "0.24.2", + "@esbuild/openbsd-x64": "0.24.2", + "@esbuild/sunos-x64": "0.24.2", + "@esbuild/win32-arm64": "0.24.2", + "@esbuild/win32-ia32": "0.24.2", + "@esbuild/win32-x64": "0.24.2" } }, "node_modules/escalade": { @@ -9535,13 +9553,13 @@ "license": "MIT" }, "node_modules/vite": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vite/-/vite-6.0.1.tgz", - "integrity": "sha512-Ldn6gorLGr4mCdFnmeAOLweJxZ34HjKnDm4HGo6P66IEqTxQb36VEdFJQENKxWjupNfoIjvRUnswjn1hpYEpjQ==", + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.0.11.tgz", + "integrity": "sha512-4VL9mQPKoHy4+FE0NnRE/kbY51TOfaknxAjt3fJbGJxhIpBZiqVzlZDEesWWsuREXHwNdAoOFZ9MkPEVXczHwg==", "dev": true, "license": "MIT", "dependencies": { - "esbuild": "^0.24.0", + "esbuild": "^0.24.2", "postcss": "^8.4.49", "rollup": "^4.23.0" }, From cf2942da9a0994b40335e8744d35f41f6431f74e Mon Sep 17 00:00:00 2001 From: "community-scripts-pr-app[bot]" <189241966+community-scripts-pr-app[bot]@users.noreply.github.com> Date: Tue, 21 Jan 2025 21:01:49 +0100 Subject: [PATCH 098/284] Update CHANGELOG.md (#1654) Co-authored-by: github-actions[bot] --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e8fc8cc30..0851bc684 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -40,6 +40,7 @@ Do not break established syntax in this file, as it is automatically updated by ### 🌐 Website +- Bump vite from 6.0.1 to 6.0.11 in /frontend [@dependabot[bot]](https://github.com/dependabot[bot]) ([#1653](https://github.com/community-scripts/ProxmoxVE/pull/1653)) - Update glpi.json [@opastorello](https://github.com/opastorello) ([#1641](https://github.com/community-scripts/ProxmoxVE/pull/1641)) - Fix Docker-VM name on website [@Sinofage](https://github.com/Sinofage) ([#1630](https://github.com/community-scripts/ProxmoxVE/pull/1630)) From 223eecdd8ed56231be260aeb49dc061ed0648083 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Tue, 21 Jan 2025 21:08:48 +0100 Subject: [PATCH 099/284] Update sqlserver2022-install.sh --- install/sqlserver2022-install.sh | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/install/sqlserver2022-install.sh b/install/sqlserver2022-install.sh index 1ece7da9f..63f8e01f6 100644 --- a/install/sqlserver2022-install.sh +++ b/install/sqlserver2022-install.sh @@ -39,13 +39,12 @@ $STD apt-get update $STD apt-get install -y \ mssql-tools18 \ unixodbc-dev -echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bash_profile -source ~/.bash_profile +echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc +source ~/.bashrc msg_ok "Installed SQL Server Tools" msg_info "Start Service" -systemctl enable -q mssql-server -systemctl start -q mssql-server +systemctl enable -q --now mssql-server msg_ok "Service started" motd_ssh From e2c329b9c726a66b6cd1373c1e2de5775999cb39 Mon Sep 17 00:00:00 2001 From: Camron B Date: Tue, 21 Jan 2025 22:47:36 -0700 Subject: [PATCH 100/284] Moving SQL Server 2022 to database category (#1659) Currently displaying in the "Adblock & DNS" category --- json/sqlserver2022.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/json/sqlserver2022.json b/json/sqlserver2022.json index 497f90a86..08198556c 100644 --- a/json/sqlserver2022.json +++ b/json/sqlserver2022.json @@ -2,7 +2,7 @@ "name":"SQL Server 2022", "slug":"sqlserver2022", "categories":[ - 5 + 8 ], "date_created":"2025-01-14", "type":"ct", @@ -40,4 +40,4 @@ "type":"warning" } ] -} \ No newline at end of file +} From 77c15f5a241980c718aeee066999e5ebac8dd35f Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Wed, 22 Jan 2025 08:08:29 +0100 Subject: [PATCH 101/284] Update code-server.json --- json/code-server.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/json/code-server.json b/json/code-server.json index cd68a8a26..05059fc76 100644 --- a/json/code-server.json +++ b/json/code-server.json @@ -2,7 +2,9 @@ "name": "VS Code Server", "slug": "code-server", "categories": [ - 1 + 1, + 20, + 11 ], "date_created": "2024-05-02", "type": "misc", @@ -36,4 +38,4 @@ "type": "warning" } ] -} \ No newline at end of file +} From eefbbdf4df63a4632346440f899a527755d876a6 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Wed, 22 Jan 2025 08:28:09 +0100 Subject: [PATCH 102/284] Update actualbudget-install.sh --- install/actualbudget-install.sh | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/install/actualbudget-install.sh b/install/actualbudget-install.sh index 1dc8cc04b..736f61333 100644 --- a/install/actualbudget-install.sh +++ b/install/actualbudget-install.sh @@ -38,10 +38,11 @@ msg_ok "Installed Node.js" msg_info "Installing Actual Budget" RELEASE=$(curl -s https://api.github.com/repos/actualbudget/actual/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') -wget -q https://github.com/actualbudget/actual-server/archive/refs/tags/v${RELEASE} +cd /opt +$STD git clone https://github.com/actualbudget/actual-server.git /opt/actualbudget #$STD curl -L -o actual-server.tar.gz https://github.com/actualbudget/actual-server/archive/refs/tags/v${RELEASE}.tar.gz -$STD tar -xzvf v${RELEASE}.tar.gz -mv *ctual-server-* /opt/actualbudget +#$STD tar -xzvf v${RELEASE}.tar.gz +#mv *ctual-server-* /opt/actualbudget mkdir -p /opt/actualbudget/server-files mkdir -p /opt/actualbudget-data chown -R root:root /opt/actualbudget/server-files From 8303f616471ef115030d2835be19361bfa967ea5 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Wed, 22 Jan 2025 08:57:51 +0100 Subject: [PATCH 103/284] Update sqlserver2022-install.sh --- install/sqlserver2022-install.sh | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/install/sqlserver2022-install.sh b/install/sqlserver2022-install.sh index 63f8e01f6..19afa300b 100644 --- a/install/sqlserver2022-install.sh +++ b/install/sqlserver2022-install.sh @@ -22,19 +22,26 @@ $STD apt install -y \ coreutils msg_ok "Installed Dependencies" -msg_info "Installing SQL Server 2022" -curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg -curl https://packages.microsoft.com/keys/microsoft.asc | tee /etc/apt/trusted.gpg.d/microsoft.asc -curl -fsSL https://packages.microsoft.com/config/ubuntu/22.04/mssql-server-2022.list | tee /etc/apt/sources.list.d/mssql-server-2022.list +msg_info "Get SQL Server 2022 Repository" +mkdir -p /etc/apt/keyrings +curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o /etc/apt/keyrings/microsoft-prod.gpg +echo "deb [signed-by=/etc/apt/keyrings/microsoft-prod.gpg] https://packages.microsoft.com/config/ubuntu/22.04/mssql-server-2022.list main" >/etc/apt/sources.list.d/mssql-server-2022.list $STD apt-get clean * $STD apt-get update -y $STD apt-get install -y mssql-server -/opt/mssql/bin/mssql-conf setup -msg_ok "Installed SQL Server 2022" +msg_ok "Get SQL Server 2022 Repository" + +read -r -p "Do you want to run the SQL server setup now? (Later is also possible) " prompt +if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then + /opt/mssql/bin/mssql-conf setup +else + msg_ok "Skipping SQL Server setup. You can run it later with '/opt/mssql/bin/mssql-conf setup'." +fi msg_info "Installing SQL Server Tools" -curl https://packages.microsoft.com/keys/microsoft.asc | tee /etc/apt/trusted.gpg.d/microsoft.asc -curl https://packages.microsoft.com/config/ubuntu/22.04/prod.list | tee /etc/apt/sources.list.d/mssql-release.list +curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o /etc/apt/keyrings/microsoft-prod.gpg +echo "deb [signed-by=/etc/apt/keyrings/microsoft-prod.gpg] https://packages.microsoft.com/config/ubuntu/22.04/prod.list main" \ + > /etc/apt/sources.list.d/mssql-release.list $STD apt-get update $STD apt-get install -y \ mssql-tools18 \ From c5df1bbcea64c390465f3cd9071127cbf9051041 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Wed, 22 Jan 2025 10:25:39 +0100 Subject: [PATCH 104/284] Fix: SQL Server 2022 Install (#1669) * Fix: SQL Server 2022 Install * Update sqlserver2022.json --- install/sqlserver2022-install.sh | 25 ++++++++++++------------- json/sqlserver2022.json | 4 ++++ 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/install/sqlserver2022-install.sh b/install/sqlserver2022-install.sh index 19afa300b..440e3c3f1 100644 --- a/install/sqlserver2022-install.sh +++ b/install/sqlserver2022-install.sh @@ -23,25 +23,17 @@ $STD apt install -y \ msg_ok "Installed Dependencies" msg_info "Get SQL Server 2022 Repository" -mkdir -p /etc/apt/keyrings -curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o /etc/apt/keyrings/microsoft-prod.gpg -echo "deb [signed-by=/etc/apt/keyrings/microsoft-prod.gpg] https://packages.microsoft.com/config/ubuntu/22.04/mssql-server-2022.list main" >/etc/apt/sources.list.d/mssql-server-2022.list +$STD curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg +$STD curl https://packages.microsoft.com/keys/microsoft.asc | tee /etc/apt/trusted.gpg.d/microsoft.asc +$STD curl -fsSL https://packages.microsoft.com/config/ubuntu/22.04/mssql-server-2022.list | tee /etc/apt/sources.list.d/mssql-server-2022.list $STD apt-get clean * $STD apt-get update -y $STD apt-get install -y mssql-server msg_ok "Get SQL Server 2022 Repository" -read -r -p "Do you want to run the SQL server setup now? (Later is also possible) " prompt -if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then - /opt/mssql/bin/mssql-conf setup -else - msg_ok "Skipping SQL Server setup. You can run it later with '/opt/mssql/bin/mssql-conf setup'." -fi - msg_info "Installing SQL Server Tools" -curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o /etc/apt/keyrings/microsoft-prod.gpg -echo "deb [signed-by=/etc/apt/keyrings/microsoft-prod.gpg] https://packages.microsoft.com/config/ubuntu/22.04/prod.list main" \ - > /etc/apt/sources.list.d/mssql-release.list +curl https://packages.microsoft.com/keys/microsoft.asc | tee /etc/apt/trusted.gpg.d/microsoft.asc +curl https://packages.microsoft.com/config/ubuntu/22.04/prod.list | tee /etc/apt/sources.list.d/mssql-release.list $STD apt-get update $STD apt-get install -y \ mssql-tools18 \ @@ -50,6 +42,13 @@ echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc source ~/.bashrc msg_ok "Installed SQL Server Tools" +read -r -p "Do you want to run the SQL server setup now? (Later is also possible) " prompt +if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then + /opt/mssql/bin/mssql-conf setup +else + msg_ok "Skipping SQL Server setup. You can run it later with '/opt/mssql/bin/mssql-conf setup'." +fi + msg_info "Start Service" systemctl enable -q --now mssql-server msg_ok "Service started" diff --git a/json/sqlserver2022.json b/json/sqlserver2022.json index 08198556c..818b88c4d 100644 --- a/json/sqlserver2022.json +++ b/json/sqlserver2022.json @@ -31,6 +31,10 @@ "password":null }, "notes":[ + { + "text":"if you not choose the install setup, execute: `/opt/mssql/bin/mssql-conf setup` in LXC shell.", + "type":"info" + }, { "text":"You can setup the admin account 'SA' during installation", "type":"info" From 81c5f51a962faf3694fbe9626386360253ec4cc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jc=20Mi=C3=B1arro?= Date: Wed, 22 Jan 2025 10:39:48 +0100 Subject: [PATCH 105/284] Update LubeLogger script (#1656) --- ct/lubelogger.sh | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/ct/lubelogger.sh b/ct/lubelogger.sh index d6f5f29ca..82bd7238e 100644 --- a/ct/lubelogger.sh +++ b/ct/lubelogger.sh @@ -42,14 +42,17 @@ function update_script() { msg_info "Updating ${APP} to v${RELEASE}" cd /opt wget -q https://github.com/hargata/lubelog/releases/download/v${RELEASE}/LubeLogger_v${RELEASE_TRIMMED}_linux_x64.zip - mkdir -p /tmp/lubeloggerData/wwwroot + mkdir -p /tmp/lubeloggerData/data cp /opt/lubelogger/appsettings.json /tmp/lubeloggerData/appsettings.json - cp -r /opt/lubelogger/config /tmp/lubeloggerData/ - cp -r /opt/lubelogger/data /tmp/lubeloggerData/ - [[ -e /opt/lubelogger/wwwroot/translations ]] && cp -r /opt/lubelogger/wwwroot/translations /tmp/lubeloggerData/wwwroot/ - [[ -e /opt/lubelogger/wwwroot/documents ]] && cp -r /opt/lubelogger/wwwroot/documents /tmp/lubeloggerData/wwwroot/ - [[ -e /opt/lubelogger/wwwroot/images ]] && cp -r /opt/lubelogger/wwwroot/images /tmp/lubeloggerData/wwwroot/ - [[ -e /opt/lubelogger/wwwroot/temp ]] && cp -r /opt/lubelogger/wwwroot/temp /tmp/lubeloggerData/wwwroot/ + cp -r /opt/lubelogger/data/ /tmp/lubeloggerData/ + + # Lubelogger has moved multiples folders to the 'data' folder, and we need to move them before the update to keep the user data + # Github Discussion: https://github.com/hargata/lubelog/discussions/787 + [[ -e /opt/lubelogger/config ]] && cp -r /opt/lubelogger/config /tmp/lubeloggerData/data/ + [[ -e /opt/lubelogger/wwwroot/translations ]] && cp -r /opt/lubelogger/wwwroot/translations /tmp/lubeloggerData/data/ + [[ -e /opt/lubelogger/wwwroot/documents ]] && cp -r /opt/lubelogger/wwwroot/documents /tmp/lubeloggerData/data/ + [[ -e /opt/lubelogger/wwwroot/images ]] && cp -r /opt/lubelogger/wwwroot/images /tmp/lubeloggerData/data/ + [[ -e /opt/lubelogger/wwwroot/temp ]] && cp -r /opt/lubelogger/wwwroot/temp /tmp/lubeloggerData/data/ [[ -e /opt/lubelogger/log ]] && cp -r /opt/lubelogger/log /tmp/lubeloggerData/ rm -rf /opt/lubelogger unzip -qq LubeLogger_v${RELEASE_TRIMMED}_linux_x64.zip -d lubelogger From c8fe3c363b8d2a6204cdd00ffbb9d83c8eabba91 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Wed, 22 Jan 2025 10:43:34 +0100 Subject: [PATCH 106/284] Update sqlserver2022-install.sh --- install/sqlserver2022-install.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/install/sqlserver2022-install.sh b/install/sqlserver2022-install.sh index 440e3c3f1..976da3875 100644 --- a/install/sqlserver2022-install.sh +++ b/install/sqlserver2022-install.sh @@ -35,11 +35,12 @@ msg_info "Installing SQL Server Tools" curl https://packages.microsoft.com/keys/microsoft.asc | tee /etc/apt/trusted.gpg.d/microsoft.asc curl https://packages.microsoft.com/config/ubuntu/22.04/prod.list | tee /etc/apt/sources.list.d/mssql-release.list $STD apt-get update +echo "mssql-tools18 mssql-tools18/license_terms select yes" | sudo debconf-set-selections $STD apt-get install -y \ mssql-tools18 \ unixodbc-dev -echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc -source ~/.bashrc +echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bash_profile +source ~/.bash_profile msg_ok "Installed SQL Server Tools" read -r -p "Do you want to run the SQL server setup now? (Later is also possible) " prompt From 41514c1eb8adfe8b53aa55d3ab1e018033362dbe Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Wed, 22 Jan 2025 10:49:29 +0100 Subject: [PATCH 107/284] Update sqlserver2022-install.sh --- install/sqlserver2022-install.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/install/sqlserver2022-install.sh b/install/sqlserver2022-install.sh index 976da3875..5b9a71455 100644 --- a/install/sqlserver2022-install.sh +++ b/install/sqlserver2022-install.sh @@ -35,6 +35,8 @@ msg_info "Installing SQL Server Tools" curl https://packages.microsoft.com/keys/microsoft.asc | tee /etc/apt/trusted.gpg.d/microsoft.asc curl https://packages.microsoft.com/config/ubuntu/22.04/prod.list | tee /etc/apt/sources.list.d/mssql-release.list $STD apt-get update +export DEBIAN_FRONTEND=noninteractive +echo "msodbcsql18 msodbcsql18/accept_eula boolean true" | sudo debconf-set-selections echo "mssql-tools18 mssql-tools18/license_terms select yes" | sudo debconf-set-selections $STD apt-get install -y \ mssql-tools18 \ From 9e9838867a03f4a11edb2890b3f1b3da2c6830a9 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Wed, 22 Jan 2025 10:50:51 +0100 Subject: [PATCH 108/284] Update sqlserver2022-install.sh --- install/sqlserver2022-install.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/install/sqlserver2022-install.sh b/install/sqlserver2022-install.sh index 5b9a71455..5680fb002 100644 --- a/install/sqlserver2022-install.sh +++ b/install/sqlserver2022-install.sh @@ -22,22 +22,22 @@ $STD apt install -y \ coreutils msg_ok "Installed Dependencies" -msg_info "Get SQL Server 2022 Repository" +msg_info "Setup SQL Server 2022" $STD curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg $STD curl https://packages.microsoft.com/keys/microsoft.asc | tee /etc/apt/trusted.gpg.d/microsoft.asc $STD curl -fsSL https://packages.microsoft.com/config/ubuntu/22.04/mssql-server-2022.list | tee /etc/apt/sources.list.d/mssql-server-2022.list $STD apt-get clean * $STD apt-get update -y $STD apt-get install -y mssql-server -msg_ok "Get SQL Server 2022 Repository" +msg_ok "Setup Server 2022" msg_info "Installing SQL Server Tools" -curl https://packages.microsoft.com/keys/microsoft.asc | tee /etc/apt/trusted.gpg.d/microsoft.asc -curl https://packages.microsoft.com/config/ubuntu/22.04/prod.list | tee /etc/apt/sources.list.d/mssql-release.list -$STD apt-get update export DEBIAN_FRONTEND=noninteractive echo "msodbcsql18 msodbcsql18/accept_eula boolean true" | sudo debconf-set-selections echo "mssql-tools18 mssql-tools18/license_terms select yes" | sudo debconf-set-selections +curl https://packages.microsoft.com/keys/microsoft.asc | tee /etc/apt/trusted.gpg.d/microsoft.asc +curl https://packages.microsoft.com/config/ubuntu/22.04/prod.list | tee /etc/apt/sources.list.d/mssql-release.list +$STD apt-get update $STD apt-get install -y \ mssql-tools18 \ unixodbc-dev From 4c9a4e28a7e4968eaf42790484540da709aa6114 Mon Sep 17 00:00:00 2001 From: Thorsten Date: Wed, 22 Jan 2025 10:56:37 +0100 Subject: [PATCH 109/284] Add Docker-VM to Containers & Docker Categorie (#1667) --- json/docker-vm.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/json/docker-vm.json b/json/docker-vm.json index 2de0eca53..b53107214 100644 --- a/json/docker-vm.json +++ b/json/docker-vm.json @@ -2,7 +2,7 @@ "name": "Docker", "slug": "docker-vm", "categories": [ - 2 + 2, 3 ], "date_created": "2025-01-20", "type": "vm", From 87256a39cebefa4a0d10e5f14fbed37585a7573f Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Wed, 22 Jan 2025 12:19:06 +0100 Subject: [PATCH 110/284] Update sqlserver2022-install.sh --- install/sqlserver2022-install.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install/sqlserver2022-install.sh b/install/sqlserver2022-install.sh index 5680fb002..8043310b1 100644 --- a/install/sqlserver2022-install.sh +++ b/install/sqlserver2022-install.sh @@ -33,11 +33,11 @@ msg_ok "Setup Server 2022" msg_info "Installing SQL Server Tools" export DEBIAN_FRONTEND=noninteractive -echo "msodbcsql18 msodbcsql18/accept_eula boolean true" | sudo debconf-set-selections -echo "mssql-tools18 mssql-tools18/license_terms select yes" | sudo debconf-set-selections curl https://packages.microsoft.com/keys/microsoft.asc | tee /etc/apt/trusted.gpg.d/microsoft.asc curl https://packages.microsoft.com/config/ubuntu/22.04/prod.list | tee /etc/apt/sources.list.d/mssql-release.list $STD apt-get update +echo "msodbcsql18 msodbcsql18/accept_eula boolean true" | sudo debconf-set-selections +echo "mssql-tools18 mssql-tools18/license_terms select yes" | sudo debconf-set-selections $STD apt-get install -y \ mssql-tools18 \ unixodbc-dev From 6b17c1a4a1ac08d081ffe780bc15c323dcc5f909 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Wed, 22 Jan 2025 12:37:23 +0100 Subject: [PATCH 111/284] Update sqlserver2022-install.sh --- install/sqlserver2022-install.sh | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/install/sqlserver2022-install.sh b/install/sqlserver2022-install.sh index 8043310b1..82ceeec97 100644 --- a/install/sqlserver2022-install.sh +++ b/install/sqlserver2022-install.sh @@ -36,9 +36,7 @@ export DEBIAN_FRONTEND=noninteractive curl https://packages.microsoft.com/keys/microsoft.asc | tee /etc/apt/trusted.gpg.d/microsoft.asc curl https://packages.microsoft.com/config/ubuntu/22.04/prod.list | tee /etc/apt/sources.list.d/mssql-release.list $STD apt-get update -echo "msodbcsql18 msodbcsql18/accept_eula boolean true" | sudo debconf-set-selections -echo "mssql-tools18 mssql-tools18/license_terms select yes" | sudo debconf-set-selections -$STD apt-get install -y \ +$STD apt-get install -y -qq \ mssql-tools18 \ unixodbc-dev echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bash_profile From ede5efb91b274b1620620aaade092550bc91b81a Mon Sep 17 00:00:00 2001 From: "community-scripts-pr-app[bot]" <189241966+community-scripts-pr-app[bot]@users.noreply.github.com> Date: Wed, 22 Jan 2025 13:51:18 +0100 Subject: [PATCH 112/284] Update CHANGELOG.md (#1663) Co-authored-by: github-actions[bot] --- CHANGELOG.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0851bc684..27d3a38b5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,20 @@ All LXC instances created using this repository come pre-installed with Midnight Do not break established syntax in this file, as it is automatically updated by a Github Workflow +## 2025-01-22 + +### Changed + +### πŸš€ Updated Scripts + +- Tweak: LubeLogger Script Upcoming Changes 1.4.3 [@JcMinarro](https://github.com/JcMinarro) ([#1656](https://github.com/community-scripts/ProxmoxVE/pull/1656)) +- Fix: SQL Server 2022 Install [@MickLesk](https://github.com/MickLesk) ([#1669](https://github.com/community-scripts/ProxmoxVE/pull/1669)) + +### 🌐 Website + +- Add Docker-VM to Containers & Docker Category [@thost96](https://github.com/thost96) ([#1667](https://github.com/community-scripts/ProxmoxVE/pull/1667)) +- Moving SQL Server 2022 to database category [@CamronBorealis](https://github.com/CamronBorealis) ([#1659](https://github.com/community-scripts/ProxmoxVE/pull/1659)) + ## 2025-01-21 ### Changed From 18baa3117884c1b6bb78fc8f1291d50957bdf74d Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Wed, 22 Jan 2025 14:31:55 +0100 Subject: [PATCH 113/284] Update actualbudget-install.sh --- install/actualbudget-install.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/install/actualbudget-install.sh b/install/actualbudget-install.sh index 736f61333..ce156b955 100644 --- a/install/actualbudget-install.sh +++ b/install/actualbudget-install.sh @@ -39,10 +39,10 @@ msg_ok "Installed Node.js" msg_info "Installing Actual Budget" RELEASE=$(curl -s https://api.github.com/repos/actualbudget/actual/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') cd /opt -$STD git clone https://github.com/actualbudget/actual-server.git /opt/actualbudget -#$STD curl -L -o actual-server.tar.gz https://github.com/actualbudget/actual-server/archive/refs/tags/v${RELEASE}.tar.gz -#$STD tar -xzvf v${RELEASE}.tar.gz -#mv *ctual-server-* /opt/actualbudget +RELEASE=$(curl -s https://api.github.com/repos/actualbudget/actual/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') +wget -q https://github.com/actualbudget/actual-server/archive/refs/tags/v${RELEASE} +$STD tar -xzvf v${RELEASE}.tar.gz +mv *ctual-server-* /opt/actualbudget mkdir -p /opt/actualbudget/server-files mkdir -p /opt/actualbudget-data chown -R root:root /opt/actualbudget/server-files From afc66ebac530bc4ae792a873d5bae7155c310c30 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Wed, 22 Jan 2025 14:34:06 +0100 Subject: [PATCH 114/284] Update actualbudget-install.sh --- install/actualbudget-install.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/install/actualbudget-install.sh b/install/actualbudget-install.sh index ce156b955..92bd05c6e 100644 --- a/install/actualbudget-install.sh +++ b/install/actualbudget-install.sh @@ -37,10 +37,9 @@ $STD npm install --global yarn msg_ok "Installed Node.js" msg_info "Installing Actual Budget" -RELEASE=$(curl -s https://api.github.com/repos/actualbudget/actual/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') cd /opt RELEASE=$(curl -s https://api.github.com/repos/actualbudget/actual/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') -wget -q https://github.com/actualbudget/actual-server/archive/refs/tags/v${RELEASE} +wget -q https://github.com/actualbudget/actual-server/archive/refs/tags/v${RELEASE}.tar.gz $STD tar -xzvf v${RELEASE}.tar.gz mv *ctual-server-* /opt/actualbudget mkdir -p /opt/actualbudget/server-files From 74d745441ccf3e6cc49044a47e2caf5d4809e568 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Wed, 22 Jan 2025 14:50:59 +0100 Subject: [PATCH 115/284] Update actualbudget-install.sh --- install/actualbudget-install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/actualbudget-install.sh b/install/actualbudget-install.sh index 92bd05c6e..82adda21d 100644 --- a/install/actualbudget-install.sh +++ b/install/actualbudget-install.sh @@ -40,7 +40,7 @@ msg_info "Installing Actual Budget" cd /opt RELEASE=$(curl -s https://api.github.com/repos/actualbudget/actual/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') wget -q https://github.com/actualbudget/actual-server/archive/refs/tags/v${RELEASE}.tar.gz -$STD tar -xzvf v${RELEASE}.tar.gz +tar -xzf v${RELEASE}.tar.gz mv *ctual-server-* /opt/actualbudget mkdir -p /opt/actualbudget/server-files mkdir -p /opt/actualbudget-data From 3b14ea76adc33f77679994ed152af009249d7d54 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 22 Jan 2025 15:59:34 +0100 Subject: [PATCH 116/284] Update .app-headers file (#1670) Co-authored-by: github-actions[bot] --- misc/.app-headers | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/misc/.app-headers b/misc/.app-headers index f0a439161..c86022228 100644 --- a/misc/.app-headers +++ b/misc/.app-headers @@ -1,4 +1,4 @@ -### Generated on 01-21-2025 +### Generated on 01-22-2025 ################################################## ### 2fauth.sh From 2ba35bbee553c66f1a1ac6bee7eec3866aeae7d3 Mon Sep 17 00:00:00 2001 From: Bram Suurd <78373894+BramSuurdje@users.noreply.github.com> Date: Wed, 22 Jan 2025 20:36:51 +0100 Subject: [PATCH 117/284] Refactor various components and configuration for mobile responsiveness. (#1679) --- frontend/src/app/page.tsx | 207 ++++++++++++++--------------- frontend/src/components/Footer.tsx | 2 +- frontend/src/components/Navbar.tsx | 110 ++++++++------- frontend/src/config/siteConfig.tsx | 68 +++++----- 4 files changed, 191 insertions(+), 196 deletions(-) diff --git a/frontend/src/app/page.tsx b/frontend/src/app/page.tsx index c6fad745a..69f8fb101 100644 --- a/frontend/src/app/page.tsx +++ b/frontend/src/app/page.tsx @@ -34,113 +34,104 @@ export default function Page() { }, [theme]); return ( -
- -
-
- - -
- -
- ❀️ - - Scripts by Tteck - - -
- - - - Thank You! - - A big thank you to Tteck and the many contributors who have - made this project possible. Your hard work is truly - appreciated by the entire Proxmox community! - - - - - - - -
+
+ +
+
+ + +
+ +
+ ❀️ + + Scripts by tteck + + +
+ + + + Thank You! + + A big thank you to tteck and the many contributors who have + made this project possible. Your hard work is truly + appreciated by the entire Proxmox community! + + + + + + + +
-
-

- Make managing your Homelab a breeze -

-

- We are a community-driven initiative that simplifies the setup of - Proxmox Virtual Environment (VE). -
-
- Originally created by{" "} - - tteck - - , these scripts automate and streamline -
- the process of creating and configuring Linux containers (LXC) and - virtual machines (VMs) on Proxmox VE. -
-
- With 200+ scripts to help you manage your{" "} - Proxmox VE environment.
- Whether you're a seasoned user or a newcomer, we've got - you covered. -

-
-
- - - -
-
-
-
- ); +
+

+ Make managing your Homelab a breeze +

+
+

+ We are a community-driven initiative that simplifies the setup + of Proxmox Virtual Environment (VE). +

+

+ With 200+ scripts to help you manage your{" "} + Proxmox VE environment. Whether you're a seasoned + user or a newcomer, we've got you covered. +

+
+
+
+ + + +
+
+
+
+ ); } diff --git a/frontend/src/components/Footer.tsx b/frontend/src/components/Footer.tsx index 38a93803c..56062d6fe 100644 --- a/frontend/src/components/Footer.tsx +++ b/frontend/src/components/Footer.tsx @@ -5,7 +5,7 @@ export default function Footer() { return (
-
+
Website built by the community. The source code is avaliable on{" "} -
-
- - logo - Proxmox VE Helper-Scripts - -
- - - {navbarLinks.map(({ href, event, icon, text }) => ( - - - - - - - {text} - - - - ))} - -
-
-
- - ); + <> +
+
+ + logo + Proxmox VE Helper-Scripts + +
+ + + {navbarLinks.map(({ href, event, icon, text, mobileHidden }) => ( + + + + + + + {text} + + + + ))} + +
+
+
+ + ); } export default Navbar; diff --git a/frontend/src/config/siteConfig.tsx b/frontend/src/config/siteConfig.tsx index 5a8e2fa7a..5cc75fe19 100644 --- a/frontend/src/config/siteConfig.tsx +++ b/frontend/src/config/siteConfig.tsx @@ -1,45 +1,51 @@ import { OperatingSystem } from "@/lib/types"; import { MessagesSquare, Scroll } from "lucide-react"; -import { FaDiscord, FaGithub } from "react-icons/fa"; import React from "react"; +import { FaDiscord, FaGithub } from "react-icons/fa"; export const basePath = process.env.BASE_PATH; const isMobile = typeof window !== "undefined" && window.innerWidth < 640; export const navbarLinks = [ - { - href: `https://github.com/community-scripts/${basePath}`, - event: "Github", - icon: , - text: "Github", - }, - { - href: `https://discord.gg/2wvnMDgdnU`, - event: "Discord", - icon: , - text: "Discord", - }, - { - href: `https://github.com/community-scripts/${basePath}/blob/main/CHANGELOG.md`, - event: "Change Log", - icon: , - text: "Change Log", - }, - !isMobile - ? { - href: `https://github.com/community-scripts/${basePath}/discussions`, - event: "Discussions", - icon: , - text: "Discussions", - } - : null, -].filter(Boolean) as { href: string; event: string; icon: React.ReactNode; text: string }[]; + { + href: `https://github.com/community-scripts/${basePath}`, + event: "Github", + icon: , + text: "Github", + }, + { + href: `https://discord.gg/2wvnMDgdnU`, + event: "Discord", + icon: , + text: "Discord", + }, + { + href: `https://github.com/community-scripts/${basePath}/blob/main/CHANGELOG.md`, + event: "Change Log", + icon: , + text: "Change Log", + mobileHidden: true, + }, + { + href: `https://github.com/community-scripts/${basePath}/discussions`, + event: "Discussions", + icon: , + text: "Discussions", + mobileHidden: true, + }, +].filter(Boolean) as { + href: string; + event: string; + icon: React.ReactNode; + text: string; + mobileHidden?: boolean; +}[]; export const mostPopularScripts = [ - "Proxmox VE Post Install", - "Docker", - "Home Assistant OS", + "Proxmox VE Post Install", + "Docker", + "Home Assistant OS", ]; export const analytics = { From 3c68db9b3ad5d2667a400955f49aa10f9f97566a Mon Sep 17 00:00:00 2001 From: "community-scripts-pr-app[bot]" <189241966+community-scripts-pr-app[bot]@users.noreply.github.com> Date: Wed, 22 Jan 2025 20:39:50 +0100 Subject: [PATCH 118/284] Update CHANGELOG.md (#1680) --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 27d3a38b5..9b906dd18 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,6 +28,7 @@ Do not break established syntax in this file, as it is automatically updated by ### 🌐 Website +- Refactor various components and configuration for mobile responsiveness. [@BramSuurdje](https://github.com/BramSuurdje) ([#1679](https://github.com/community-scripts/ProxmoxVE/pull/1679)) - Add Docker-VM to Containers & Docker Category [@thost96](https://github.com/thost96) ([#1667](https://github.com/community-scripts/ProxmoxVE/pull/1667)) - Moving SQL Server 2022 to database category [@CamronBorealis](https://github.com/CamronBorealis) ([#1659](https://github.com/community-scripts/ProxmoxVE/pull/1659)) From 022288ef8e6b1767310282b3017692448682f4c7 Mon Sep 17 00:00:00 2001 From: Bram Suurd <78373894+BramSuurdje@users.noreply.github.com> Date: Wed, 22 Jan 2025 21:16:21 +0100 Subject: [PATCH 119/284] Refactor Sidebar component to display unique scripts count (#1681) --- .../src/app/scripts/_components/Sidebar.tsx | 60 +++++++++++-------- 1 file changed, 34 insertions(+), 26 deletions(-) diff --git a/frontend/src/app/scripts/_components/Sidebar.tsx b/frontend/src/app/scripts/_components/Sidebar.tsx index 24f9dce20..3680210fa 100644 --- a/frontend/src/app/scripts/_components/Sidebar.tsx +++ b/frontend/src/app/scripts/_components/Sidebar.tsx @@ -1,35 +1,43 @@ "use client"; -import { Category } from "@/lib/types"; +import type { Category, Script } from "@/lib/types"; import ScriptAccordion from "./ScriptAccordion"; const Sidebar = ({ - items, - selectedScript, - setSelectedScript, + items, + selectedScript, + setSelectedScript, }: { - items: Category[]; - selectedScript: string | null; - setSelectedScript: (script: string | null) => void; + items: Category[]; + selectedScript: string | null; + setSelectedScript: (script: string | null) => void; }) => { - return ( -
-
-

Categories

-

- {items.reduce((acc, category) => acc + category.scripts.length, 0)}{" "} - Total scripts -

-
-
- -
-
- ); + const uniqueScripts = items.reduce((acc, category) => { + for (const script of category.scripts) { + if (!acc.some((s) => s.name === script.name)) { + acc.push(script); + } + } + return acc; + }, [] as Script[]); + + return ( +
+
+

Categories

+

+ {uniqueScripts.length} Total scripts +

+
+
+ +
+
+ ); }; -export default Sidebar; +export default Sidebar; \ No newline at end of file From 704f2f3d9b8ef106506529b9332ac63d9d2ef6e5 Mon Sep 17 00:00:00 2001 From: "community-scripts-pr-app[bot]" <189241966+community-scripts-pr-app[bot]@users.noreply.github.com> Date: Wed, 22 Jan 2025 21:23:26 +0100 Subject: [PATCH 120/284] Update CHANGELOG.md (#1683) --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9b906dd18..6a4e05e32 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,6 +28,7 @@ Do not break established syntax in this file, as it is automatically updated by ### 🌐 Website +- Refactor Sidebar component to display unique scripts count [@BramSuurdje](https://github.com/BramSuurdje) ([#1681](https://github.com/community-scripts/ProxmoxVE/pull/1681)) - Refactor various components and configuration for mobile responsiveness. [@BramSuurdje](https://github.com/BramSuurdje) ([#1679](https://github.com/community-scripts/ProxmoxVE/pull/1679)) - Add Docker-VM to Containers & Docker Category [@thost96](https://github.com/thost96) ([#1667](https://github.com/community-scripts/ProxmoxVE/pull/1667)) - Moving SQL Server 2022 to database category [@CamronBorealis](https://github.com/CamronBorealis) ([#1659](https://github.com/community-scripts/ProxmoxVE/pull/1659)) From f1f1a7fa683eca8c49c0ee44fd9acfe75cba7990 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Thu, 23 Jan 2025 09:27:58 +0100 Subject: [PATCH 121/284] dev: add category view --- frontend/src/app/category-view/index.tsx | 66 ++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 frontend/src/app/category-view/index.tsx diff --git a/frontend/src/app/category-view/index.tsx b/frontend/src/app/category-view/index.tsx new file mode 100644 index 000000000..23178b116 --- /dev/null +++ b/frontend/src/app/category-view/index.tsx @@ -0,0 +1,66 @@ +// Folder: category-view +// File: index.tsx + +import React, { useState } from 'react'; +import { Card, CardContent, CardHeader } from '@/components/ui/card'; +import { Button } from '@/components/ui/button'; +import { Grid } from '@/components/ui/grid'; +import routes from '@/routes'; // Assuming your route.ts file is at this location + +const CategoryView = () => { + const [selectedCategory, setSelectedCategory] = useState(null); + + const handleCategoryClick = (category) => { + setSelectedCategory(category); + }; + + const handleBackClick = () => { + setSelectedCategory(null); + }; + + const categories = routes.map((route) => ({ + name: route.category, + scripts: route.scripts.map((script) => ({ + name: script.name, + date: script.date || 'N/A', // Assuming scripts have a `date` field + })), + })); + + return ( +
+ {selectedCategory ? ( +
+ +

{selectedCategory.name}

+ + {selectedCategory.scripts + .sort((a, b) => a.name.localeCompare(b.name)) + .map((script) => ( + + +

{script.name}

+

{script.date}

+
+
+ ))} +
+
+ ) : ( +
+

Categories

+ + {categories.map((category) => ( + handleCategoryClick(category)} className="cursor-pointer hover:shadow-lg"> + + + ))} + +
+ )} +
+ ); +}; + +export default CategoryView; \ No newline at end of file From 70ef075ccdd522972e1cef972adfa4f63d792341 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Thu, 23 Jan 2025 09:30:00 +0100 Subject: [PATCH 122/284] Update index.tsx --- frontend/src/app/category-view/index.tsx | 36 +++++++++++++----------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/frontend/src/app/category-view/index.tsx b/frontend/src/app/category-view/index.tsx index 23178b116..991447f77 100644 --- a/frontend/src/app/category-view/index.tsx +++ b/frontend/src/app/category-view/index.tsx @@ -1,11 +1,8 @@ -// Folder: category-view -// File: index.tsx - import React, { useState } from 'react'; import { Card, CardContent, CardHeader } from '@/components/ui/card'; import { Button } from '@/components/ui/button'; -import { Grid } from '@/components/ui/grid'; -import routes from '@/routes'; // Assuming your route.ts file is at this location +import { routes } from '@/routes'; // Assuming your route.ts file is at this location +import { Grid } from '@mui/material'; // Using Material-UI's Grid const CategoryView = () => { const [selectedCategory, setSelectedCategory] = useState(null); @@ -34,27 +31,34 @@ const CategoryView = () => { Back to Categories

{selectedCategory.name}

- + {selectedCategory.scripts .sort((a, b) => a.name.localeCompare(b.name)) .map((script) => ( - - -

{script.name}

-

{script.date}

-
-
+ + + +

{script.name}

+

{script.date}

+
+
+
))}
) : (

Categories

- + {categories.map((category) => ( - handleCategoryClick(category)} className="cursor-pointer hover:shadow-lg"> - - + + handleCategoryClick(category)} + className="cursor-pointer hover:shadow-lg" + > + + + ))}
From 9f29a66bb7375ec0b06e224ee3a1dd60dbe26a84 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Thu, 23 Jan 2025 09:33:34 +0100 Subject: [PATCH 123/284] Update index.tsx --- frontend/src/app/category-view/index.tsx | 36 +++++++++++++----------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/frontend/src/app/category-view/index.tsx b/frontend/src/app/category-view/index.tsx index 991447f77..90c232c0d 100644 --- a/frontend/src/app/category-view/index.tsx +++ b/frontend/src/app/category-view/index.tsx @@ -1,13 +1,23 @@ -import React, { useState } from 'react'; -import { Card, CardContent, CardHeader } from '@/components/ui/card'; -import { Button } from '@/components/ui/button'; -import { routes } from '@/routes'; // Assuming your route.ts file is at this location -import { Grid } from '@mui/material'; // Using Material-UI's Grid +"use client"; + +import React, { useEffect, useState } from "react"; +import { Card, CardContent, CardHeader } from "@/components/ui/card"; +import { Button } from "@/components/ui/button"; +import { Grid } from "@mui/material"; +import { fetchCategories } from "@/lib/data"; +import { Category } from "@/lib/types"; const CategoryView = () => { - const [selectedCategory, setSelectedCategory] = useState(null); + const [categories, setCategories] = useState([]); + const [selectedCategory, setSelectedCategory] = useState(null); - const handleCategoryClick = (category) => { + useEffect(() => { + fetchCategories() + .then(setCategories) + .catch((error) => console.error("Error fetching categories:", error)); + }, []); + + const handleCategoryClick = (category: Category) => { setSelectedCategory(category); }; @@ -15,14 +25,6 @@ const CategoryView = () => { setSelectedCategory(null); }; - const categories = routes.map((route) => ({ - name: route.category, - scripts: route.scripts.map((script) => ({ - name: script.name, - date: script.date || 'N/A', // Assuming scripts have a `date` field - })), - })); - return (
{selectedCategory ? ( @@ -39,7 +41,7 @@ const CategoryView = () => {

{script.name}

-

{script.date}

+

{script.date || "N/A"}

@@ -67,4 +69,4 @@ const CategoryView = () => { ); }; -export default CategoryView; \ No newline at end of file +export default CategoryView; From c7a0009d9af861640ca1382f12b2490a7d620de8 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Thu, 23 Jan 2025 09:35:24 +0100 Subject: [PATCH 124/284] Update index.tsx --- frontend/src/app/category-view/index.tsx | 40 +++++++++++------------- 1 file changed, 18 insertions(+), 22 deletions(-) diff --git a/frontend/src/app/category-view/index.tsx b/frontend/src/app/category-view/index.tsx index 90c232c0d..611c28a2c 100644 --- a/frontend/src/app/category-view/index.tsx +++ b/frontend/src/app/category-view/index.tsx @@ -3,7 +3,6 @@ import React, { useEffect, useState } from "react"; import { Card, CardContent, CardHeader } from "@/components/ui/card"; import { Button } from "@/components/ui/button"; -import { Grid } from "@mui/material"; import { fetchCategories } from "@/lib/data"; import { Category } from "@/lib/types"; @@ -33,40 +32,37 @@ const CategoryView = () => { Back to Categories

{selectedCategory.name}

- +
{selectedCategory.scripts .sort((a, b) => a.name.localeCompare(b.name)) .map((script) => ( - - - -

{script.name}

-

{script.date || "N/A"}

-
-
-
+ + +

{script.name}

+

{script.date || "N/A"}

+
+
))} - +
) : (

Categories

- +
{categories.map((category) => ( - - handleCategoryClick(category)} - className="cursor-pointer hover:shadow-lg" - > - - - + handleCategoryClick(category)} + className="cursor-pointer hover:shadow-lg" + > + + ))} - +
)}
); }; -export default CategoryView; +export default CategoryView; \ No newline at end of file From 405b844c3794f77112c73ed54d14a4084af31546 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Thu, 23 Jan 2025 09:42:50 +0100 Subject: [PATCH 125/284] Update index.tsx --- frontend/src/app/category-view/index.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/src/app/category-view/index.tsx b/frontend/src/app/category-view/index.tsx index 611c28a2c..edf62ac86 100644 --- a/frontend/src/app/category-view/index.tsx +++ b/frontend/src/app/category-view/index.tsx @@ -28,7 +28,7 @@ const CategoryView = () => {
{selectedCategory ? (
-

{selectedCategory.name}

@@ -65,4 +65,4 @@ const CategoryView = () => { ); }; -export default CategoryView; \ No newline at end of file +export default CategoryView; From a59f1cce8fdf01bd209d8a80e22ba08971f95a84 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Thu, 23 Jan 2025 09:44:53 +0100 Subject: [PATCH 126/284] Update index.tsx --- frontend/src/app/category-view/index.tsx | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/frontend/src/app/category-view/index.tsx b/frontend/src/app/category-view/index.tsx index edf62ac86..171912a88 100644 --- a/frontend/src/app/category-view/index.tsx +++ b/frontend/src/app/category-view/index.tsx @@ -1,10 +1,13 @@ +// Folder: category-view +// File: index.tsx + "use client"; import React, { useEffect, useState } from "react"; import { Card, CardContent, CardHeader } from "@/components/ui/card"; import { Button } from "@/components/ui/button"; import { fetchCategories } from "@/lib/data"; -import { Category } from "@/lib/types"; +import { Category, Script } from "@/lib/types"; const CategoryView = () => { const [categories, setCategories] = useState([]); @@ -35,11 +38,13 @@ const CategoryView = () => {
{selectedCategory.scripts .sort((a, b) => a.name.localeCompare(b.name)) - .map((script) => ( + .map((script: Script) => (

{script.name}

-

{script.date || "N/A"}

+

+ {script.date_created || "No date available"} +

))} @@ -65,4 +70,4 @@ const CategoryView = () => { ); }; -export default CategoryView; +export default CategoryView; \ No newline at end of file From 4e6471e6a6c32fba5bc790ec02274683b9aaf7fa Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Thu, 23 Jan 2025 09:49:47 +0100 Subject: [PATCH 127/284] remove and rename --- .../app/category-view/{index.tsx => page.tsx} | 27 ++++++++++++++----- 1 file changed, 20 insertions(+), 7 deletions(-) rename frontend/src/app/category-view/{index.tsx => page.tsx} (75%) diff --git a/frontend/src/app/category-view/index.tsx b/frontend/src/app/category-view/page.tsx similarity index 75% rename from frontend/src/app/category-view/index.tsx rename to frontend/src/app/category-view/page.tsx index 171912a88..a49bdc5eb 100644 --- a/frontend/src/app/category-view/index.tsx +++ b/frontend/src/app/category-view/page.tsx @@ -1,12 +1,8 @@ -// Folder: category-view -// File: index.tsx - "use client"; import React, { useEffect, useState } from "react"; import { Card, CardContent, CardHeader } from "@/components/ui/card"; import { Button } from "@/components/ui/button"; -import { fetchCategories } from "@/lib/data"; import { Category, Script } from "@/lib/types"; const CategoryView = () => { @@ -14,9 +10,26 @@ const CategoryView = () => { const [selectedCategory, setSelectedCategory] = useState(null); useEffect(() => { - fetchCategories() - .then(setCategories) - .catch((error) => console.error("Error fetching categories:", error)); + const fetchCategories = async () => { + try { + const response = await fetch("/json/metadata.json"); // JSON-Datei direkt laden + if (!response.ok) { + throw new Error("Failed to fetch categories"); + } + const metadata = await response.json(); + const categories = metadata.categories.map((category: Category) => { + category.scripts = metadata.scripts.filter((script: Script) => + script.categories.includes(category.id) + ); + return category; + }); + setCategories(categories); + } catch (error) { + console.error("Error fetching categories:", error); + } + }; + + fetchCategories(); }, []); const handleCategoryClick = (category: Category) => { From 891e97a93c31dcae2fe80098d847144750315e71 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Thu, 23 Jan 2025 09:57:01 +0100 Subject: [PATCH 128/284] Update page.tsx --- frontend/src/app/category-view/page.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/frontend/src/app/category-view/page.tsx b/frontend/src/app/category-view/page.tsx index a49bdc5eb..f12990ffa 100644 --- a/frontend/src/app/category-view/page.tsx +++ b/frontend/src/app/category-view/page.tsx @@ -12,7 +12,8 @@ const CategoryView = () => { useEffect(() => { const fetchCategories = async () => { try { - const response = await fetch("/json/metadata.json"); // JSON-Datei direkt laden + const basePath = process.env.NODE_ENV === "production" ? "/ProxmoxVE" : ""; + const response = await fetch(`${basePath}/json/metadata.json`); if (!response.ok) { throw new Error("Failed to fetch categories"); } From ae791bcb16dfc48e881e5da5d251a485fec73fb6 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Thu, 23 Jan 2025 10:25:19 +0100 Subject: [PATCH 129/284] Update page.tsx --- frontend/src/app/category-view/page.tsx | 57 ++++++++++++++++++++----- 1 file changed, 47 insertions(+), 10 deletions(-) diff --git a/frontend/src/app/category-view/page.tsx b/frontend/src/app/category-view/page.tsx index f12990ffa..159902a4d 100644 --- a/frontend/src/app/category-view/page.tsx +++ b/frontend/src/app/category-view/page.tsx @@ -10,27 +10,61 @@ const CategoryView = () => { const [selectedCategory, setSelectedCategory] = useState(null); useEffect(() => { - const fetchCategories = async () => { + const fetchCategoriesAndScripts = async () => { try { - const basePath = process.env.NODE_ENV === "production" ? "/ProxmoxVE" : ""; - const response = await fetch(`${basePath}/json/metadata.json`); - if (!response.ok) { + const basePath = process.env.NODE_ENV === "production" ? "/ProxmoxVE" : ""; // Dynamischer Basis-Pfad + + // Kategorien laden + const categoriesResponse = await fetch(`${basePath}/json/metadata.json`); + if (!categoriesResponse.ok) { throw new Error("Failed to fetch categories"); } - const metadata = await response.json(); - const categories = metadata.categories.map((category: Category) => { - category.scripts = metadata.scripts.filter((script: Script) => + const metadata = await categoriesResponse.json(); + console.log("Raw metadata:", metadata); // Debugging + + if (!metadata.categories) { + throw new Error("Invalid metadata structure: categories missing"); + } + + const categories = metadata.categories.map((category: Category) => ({ + ...category, + scripts: [], + })); + + // Skripte laden + const scriptsResponse = await fetch(`${basePath}/json`); + if (!scriptsResponse.ok) { + throw new Error("Failed to fetch scripts"); + } + + const scriptsList = await scriptsResponse.json(); + const scripts: Script[] = await Promise.all( + scriptsList + .filter((file: string) => file.endsWith(".json") && file !== "metadata.json") + .map(async (file: string) => { + const scriptResponse = await fetch(`${basePath}/json/${file}`); + if (scriptResponse.ok) { + return await scriptResponse.json(); + } + return null; + }) + ).then((results) => results.filter((script) => script !== null)); + + // Kategorien und Skripte verknΓΌpfen + categories.forEach((category) => { + category.scripts = scripts.filter((script: Script) => script.categories.includes(category.id) ); - return category; }); + + console.log("Parsed categories with scripts:", categories); // Debugging setCategories(categories); } catch (error) { - console.error("Error fetching categories:", error); + console.error("Error fetching categories and scripts:", error); } }; - fetchCategories(); + fetchCategoriesAndScripts(); }, []); const handleCategoryClick = (category: Category) => { @@ -43,6 +77,9 @@ const CategoryView = () => { return (
+ {categories.length === 0 && ( +

No categories available. Please check the JSON file.

+ )} {selectedCategory ? (

{selectedCategory.name}

- {selectedCategory.scripts + {(selectedCategory.scripts || []) .sort((a, b) => a.name.localeCompare(b.name)) .map((script) => ( @@ -76,7 +77,7 @@ const CategoryView = () => { >
- {category.scripts && category.scripts.slice(0, 4).map((script, index) => ( + {(category.scripts || []).slice(0, 4).map((script, index) => ( {

{category.name}

- {(category as any).description || "No description available."} + {category.description || "No description available."}

@@ -99,4 +100,4 @@ const CategoryView = () => { ); }; -export default CategoryView; \ No newline at end of file +export default CategoryView; From 08ab210f12d0d632e20945e6e8d1e1f1e3a901aa Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Thu, 23 Jan 2025 11:33:55 +0100 Subject: [PATCH 141/284] Update page.tsx --- frontend/src/app/category-view/page.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/app/category-view/page.tsx b/frontend/src/app/category-view/page.tsx index efb632961..c1ad9aa88 100644 --- a/frontend/src/app/category-view/page.tsx +++ b/frontend/src/app/category-view/page.tsx @@ -88,7 +88,7 @@ const CategoryView = () => {

{category.name}

- {category.description || "No description available."} + {(category as any).description || "No description available."}

From 69d9b4f439909b71e881afdb0f2248126bf06829 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Thu, 23 Jan 2025 11:34:33 +0100 Subject: [PATCH 142/284] Update paperless-ngx-install.sh --- install/paperless-ngx-install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/paperless-ngx-install.sh b/install/paperless-ngx-install.sh index 42752f81f..4d6c6a3ab 100644 --- a/install/paperless-ngx-install.sh +++ b/install/paperless-ngx-install.sh @@ -73,7 +73,7 @@ Pin-Priority: 990 EOF $STD apt-get update $STD echo "libc6 libraries/restart-without-asking boolean true" | sudo debconf-set-selections -$STD DEBIAN_FRONTEND=noninteractive apt install -t trixie ghostscript -y +DEBIAN_FRONTEND=noninteractive apt install -t trixie ghostscript -y -qq msg_ok "Installed OCR Dependencies" msg_info "Installing JBIG2" From 250e77cff741fdb7b5b35373ac0958b04a0a759f Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Thu, 23 Jan 2025 11:40:58 +0100 Subject: [PATCH 143/284] formatting --- frontend/src/app/category-view/page.tsx | 28 ++++++++++++++----------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/frontend/src/app/category-view/page.tsx b/frontend/src/app/category-view/page.tsx index c1ad9aa88..336fa6c57 100644 --- a/frontend/src/app/category-view/page.tsx +++ b/frontend/src/app/category-view/page.tsx @@ -15,7 +15,7 @@ const CategoryView = () => { const fetchCategories = async () => { try { const basePath = process.env.NODE_ENV === "production" ? "/ProxmoxVE" : ""; - const response = await fetch(`${basePath}/api/categories`); // PrΓΌfe den Endpunkt + const response = await fetch(`${basePath}/api/categories`); if (!response.ok) { throw new Error("Failed to fetch categories"); } @@ -39,19 +39,18 @@ const CategoryView = () => { }; return ( -
- {categories.length === 0 ? ( -

- No categories available. Please check the API endpoint. -

- ) : selectedCategory ? ( +
+ {categories.length === 0 && ( +

No categories available. Please check the API endpoint.

+ )} + {selectedCategory ? (

{selectedCategory.name}

- {(selectedCategory.scripts || []) + {selectedCategory.scripts .sort((a, b) => a.name.localeCompare(b.name)) .map((script) => ( @@ -67,7 +66,12 @@ const CategoryView = () => {
) : (
-

Categories

+
+

Categories

+

+ {categories.reduce((acc, cat) => acc + (cat.scripts?.length || 0), 0)} Total scripts +

+
{categories.map((category) => ( { >
- {(category.scripts || []).slice(0, 4).map((script, index) => ( + {category.scripts && category.scripts.slice(0, 4).map((script, index) => ( {

{category.name}

- {(category as any).description || "No description available."} + {category.description || "No description available."}

@@ -100,4 +104,4 @@ const CategoryView = () => { ); }; -export default CategoryView; +export default CategoryView; \ No newline at end of file From 8dc2e416a419c132f466e7feaacc954d968939f6 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Thu, 23 Jan 2025 11:42:44 +0100 Subject: [PATCH 144/284] fix --- frontend/src/app/category-view/page.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/app/category-view/page.tsx b/frontend/src/app/category-view/page.tsx index 336fa6c57..094c14191 100644 --- a/frontend/src/app/category-view/page.tsx +++ b/frontend/src/app/category-view/page.tsx @@ -92,7 +92,7 @@ const CategoryView = () => {

{category.name}

- {category.description || "No description available."} + {(category as any).description || "No description available."}

From 818dbed71dd923f421718bb45adeccfed3dd79ac Mon Sep 17 00:00:00 2001 From: "community-scripts-pr-app[bot]" <189241966+community-scripts-pr-app[bot]@users.noreply.github.com> Date: Thu, 23 Jan 2025 11:48:22 +0100 Subject: [PATCH 145/284] Update CHANGELOG.md (#1689) --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index bada3f557..e17130565 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,10 @@ Do not break established syntax in this file, as it is automatically updated by ### Changed +### πŸš€ Updated Scripts + +- Fix: Paperless Service Timings & Optimization: Ghostscript Installation [@MickLesk](https://github.com/MickLesk) ([#1688](https://github.com/community-scripts/ProxmoxVE/pull/1688)) + ## 2025-01-22 ### Changed From 37d16e43e7058cda802876a492f65d205e83a9e6 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Thu, 23 Jan 2025 11:51:08 +0100 Subject: [PATCH 146/284] Update page.tsx --- frontend/src/app/category-view/page.tsx | 26 +++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/frontend/src/app/category-view/page.tsx b/frontend/src/app/category-view/page.tsx index 094c14191..0ba6b6506 100644 --- a/frontend/src/app/category-view/page.tsx +++ b/frontend/src/app/category-view/page.tsx @@ -53,12 +53,26 @@ const CategoryView = () => { {selectedCategory.scripts .sort((a, b) => a.name.localeCompare(b.name)) .map((script) => ( - - -

{script.name}

-

- {script.date_created || "No date available"} -

+ + +
+ {script.name} +
+

{script.name}

+

Created at: {script.date_created || "No date available"}

+
+
+

{script.description || "No description available."}

+
+ Default settings +
CPU: {script.install_methods[0]?.resources.cpu || "N/A"}vCPU
+
RAM: {script.install_methods[0]?.resources.ram || "N/A"}MB
+
HDD: {script.install_methods[0]?.resources.hdd || "N/A"}GB
+
))} From 45f9d7460c8894ec84197bedb5e854b28527c74f Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Thu, 23 Jan 2025 11:51:59 +0100 Subject: [PATCH 147/284] Update paperless-ngx-install.sh --- install/paperless-ngx-install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/paperless-ngx-install.sh b/install/paperless-ngx-install.sh index 4d6c6a3ab..93d305afa 100644 --- a/install/paperless-ngx-install.sh +++ b/install/paperless-ngx-install.sh @@ -61,7 +61,7 @@ $STD apt-get install -y \ tesseract-ocr \ tesseract-ocr-eng -$STD echo "deb http://deb.debian.org/debian trixie main" | sudo tee /etc/apt/sources.list.d/trixie.list +echo "deb http://deb.debian.org/debian trixie main" | tee /etc/apt/sources.list.d/trixie.list >/dev/null $STD cat < Date: Thu, 23 Jan 2025 11:54:50 +0100 Subject: [PATCH 148/284] Update page.tsx --- frontend/src/app/category-view/page.tsx | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/frontend/src/app/category-view/page.tsx b/frontend/src/app/category-view/page.tsx index 0ba6b6506..a6af3070c 100644 --- a/frontend/src/app/category-view/page.tsx +++ b/frontend/src/app/category-view/page.tsx @@ -7,6 +7,8 @@ import { Category } from "@/lib/types"; const defaultLogo = "/default-logo.png"; // Fallback logo path +const MAX_DESCRIPTION_LENGTH = 100; // Set max length for description + const CategoryView = () => { const [categories, setCategories] = useState([]); const [selectedCategory, setSelectedCategory] = useState(null); @@ -38,6 +40,12 @@ const CategoryView = () => { setSelectedCategory(null); }; + const truncateDescription = (text: string) => { + return text.length > MAX_DESCRIPTION_LENGTH + ? `${text.slice(0, MAX_DESCRIPTION_LENGTH)}...` + : text; + }; + return (
{categories.length === 0 && ( @@ -64,9 +72,11 @@ const CategoryView = () => {

{script.name}

Created at: {script.date_created || "No date available"}

+

+ {truncateDescription(script.description || "No description available.")} +

-

{script.description || "No description available."}

Default settings
CPU: {script.install_methods[0]?.resources.cpu || "N/A"}vCPU
From 51005a6b526ad7091a0b183f5f330b86a57b5cbe Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Thu, 23 Jan 2025 11:59:03 +0100 Subject: [PATCH 149/284] Update page.tsx --- frontend/src/app/category-view/page.tsx | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/frontend/src/app/category-view/page.tsx b/frontend/src/app/category-view/page.tsx index a6af3070c..7aaa8248b 100644 --- a/frontend/src/app/category-view/page.tsx +++ b/frontend/src/app/category-view/page.tsx @@ -71,17 +71,14 @@ const CategoryView = () => { />

{script.name}

-

Created at: {script.date_created || "No date available"}

+

Created at: {script.date_created || "No date available"}

{truncateDescription(script.description || "No description available.")}

-
- Default settings -
CPU: {script.install_methods[0]?.resources.cpu || "N/A"}vCPU
-
RAM: {script.install_methods[0]?.resources.ram || "N/A"}MB
-
HDD: {script.install_methods[0]?.resources.hdd || "N/A"}GB
+
+ Settings: CPU: {script.install_methods[0]?.resources.cpu || "N/A"}vCPU | RAM: {script.install_methods[0]?.resources.ram || "N/A"}MB | HDD: {script.install_methods[0]?.resources.hdd || "N/A"}GB
From 3ee076e7ab6fe163ff9dc9b10ef24af9ed5edafc Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Thu, 23 Jan 2025 12:01:39 +0100 Subject: [PATCH 150/284] Update page.tsx --- frontend/src/app/category-view/page.tsx | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/frontend/src/app/category-view/page.tsx b/frontend/src/app/category-view/page.tsx index 7aaa8248b..6050f4aeb 100644 --- a/frontend/src/app/category-view/page.tsx +++ b/frontend/src/app/category-view/page.tsx @@ -1,6 +1,7 @@ "use client"; import React, { useEffect, useState } from "react"; +import { useRouter } from "next/navigation"; import { Card, CardContent } from "@/components/ui/card"; import { Button } from "@/components/ui/button"; import { Category } from "@/lib/types"; @@ -12,6 +13,7 @@ const MAX_DESCRIPTION_LENGTH = 100; // Set max length for description const CategoryView = () => { const [categories, setCategories] = useState([]); const [selectedCategory, setSelectedCategory] = useState(null); + const router = useRouter(); useEffect(() => { const fetchCategories = async () => { @@ -40,6 +42,10 @@ const CategoryView = () => { setSelectedCategory(null); }; + const handleScriptClick = (scriptSlug: string) => { + router.push(`/scripts?id=${scriptSlug}`); + }; + const truncateDescription = (text: string) => { return text.length > MAX_DESCRIPTION_LENGTH ? `${text.slice(0, MAX_DESCRIPTION_LENGTH)}...` @@ -61,7 +67,7 @@ const CategoryView = () => { {selectedCategory.scripts .sort((a, b) => a.name.localeCompare(b.name)) .map((script) => ( - + handleScriptClick(script.slug)}>
{
- Settings: CPU: {script.install_methods[0]?.resources.cpu || "N/A"}vCPU | RAM: {script.install_methods[0]?.resources.ram || "N/A"}MB | HDD: {script.install_methods[0]?.resources.hdd || "N/A"}GB + CPU: {script.install_methods[0]?.resources.cpu || "N/A"}vCPU | RAM: {script.install_methods[0]?.resources.ram || "N/A"}MB | HDD: {script.install_methods[0]?.resources.hdd || "N/A"}GB
From 489a1fb560afdcfb6c10f1ceb435960f1618e1db Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Thu, 23 Jan 2025 14:51:57 +0100 Subject: [PATCH 151/284] Update paperless-ngx-install.sh --- install/paperless-ngx-install.sh | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/install/paperless-ngx-install.sh b/install/paperless-ngx-install.sh index 93d305afa..16c56ead0 100644 --- a/install/paperless-ngx-install.sh +++ b/install/paperless-ngx-install.sh @@ -61,19 +61,13 @@ $STD apt-get install -y \ tesseract-ocr \ tesseract-ocr-eng -echo "deb http://deb.debian.org/debian trixie main" | tee /etc/apt/sources.list.d/trixie.list >/dev/null -$STD cat < Date: Thu, 23 Jan 2025 17:13:05 +0100 Subject: [PATCH 152/284] Feature: Add Debian Disk Size / Redesign / Increase Disk (#1695) --- vm/debian-vm.sh | 169 ++++++++++++++++++++++++++++++------------------ 1 file changed, 107 insertions(+), 62 deletions(-) diff --git a/vm/debian-vm.sh b/vm/debian-vm.sh index 57d373fd9..857c0ad60 100644 --- a/vm/debian-vm.sh +++ b/vm/debian-vm.sh @@ -1,9 +1,8 @@ #!/usr/bin/env bash -# Copyright (c) 2021-2025 tteck -# Author: tteck (tteckster) -# License: MIT -# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE +# Copyright (c) 2021-2025 community-scripts ORG +# Author: MickLesk (CanbiZ) +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE function header_info { clear @@ -23,16 +22,36 @@ NEXTID=$(pvesh get /cluster/nextid) YW=$(echo "\033[33m") BL=$(echo "\033[36m") -HA=$(echo "\033[1;34m") RD=$(echo "\033[01;31m") BGN=$(echo "\033[4;92m") GN=$(echo "\033[1;92m") DGN=$(echo "\033[32m") CL=$(echo "\033[m") + +CL=$(echo "\033[m") +BOLD=$(echo "\033[1m") BFR="\\r\\033[K" -HOLD="-" -CM="${GN}βœ“${CL}" -CROSS="${RD}βœ—${CL}" +HOLD=" " +TAB=" " + +CM="${TAB}βœ”οΈ${TAB}${CL}" +CROSS="${TAB}βœ–οΈ${TAB}${CL}" +INFO="${TAB}πŸ’‘${TAB}${CL}" +OS="${TAB}πŸ–₯️${TAB}${CL}" +CONTAINERTYPE="${TAB}πŸ“¦${TAB}${CL}" +DISKSIZE="${TAB}πŸ’Ύ${TAB}${CL}" +CPUCORE="${TAB}🧠${TAB}${CL}" +RAMSIZE="${TAB}πŸ› οΈ${TAB}${CL}" +CONTAINERID="${TAB}πŸ†”${TAB}${CL}" +HOSTNAME="${TAB}🏠${TAB}${CL}" +BRIDGE="${TAB}πŸŒ‰${TAB}${CL}" +GATEWAY="${TAB}🌐${TAB}${CL}" +DEFAULT="${TAB}βš™οΈ${TAB}${CL}" +MACADDRESS="${TAB}πŸ”—${TAB}${CL}" +VLANTAG="${TAB}🏷️${TAB}${CL}" +CREATING="${TAB}πŸš€${TAB}${CL}" +ADVANCED="${TAB}🧩${TAB}${CL}" + THIN="discard=on,ssd=1," set -e trap 'error_handler $LINENO "$BASH_COMMAND"' ERR @@ -63,22 +82,22 @@ pushd $TEMP_DIR >/dev/null if whiptail --backtitle "Proxmox VE Helper Scripts" --title "Debian 12 VM" --yesno "This will create a New Debian 12 VM. Proceed?" 10 58; then : else - header_info && echo -e "⚠ User exited script \n" && exit + header_info && echo -e "${CROSS}${RD}User exited script${CL}\n" && exit fi function msg_info() { local msg="$1" - echo -ne " ${HOLD} ${YW}${msg}..." + echo -ne "${TAB}${YW}${HOLD}${msg}${HOLD}" } function msg_ok() { local msg="$1" - echo -e "${BFR} ${CM} ${GN}${msg}${CL}" + echo -e "${BFR}${CM}${GN}${msg}${CL}" } function msg_error() { local msg="$1" - echo -e "${BFR} ${CROSS} ${RD}${msg}${CL}" + echo -e "${BFR}${CROSS}${RD}${msg}${CL}" } function check_root() { @@ -93,17 +112,18 @@ function check_root() { function pve_check() { if ! pveversion | grep -Eq "pve-manager/8.[1-3]"; then - msg_error "This version of Proxmox Virtual Environment is not supported" + msg_error "${CROSS}${RD}This version of Proxmox Virtual Environment is not supported" echo -e "Requires Proxmox Virtual Environment Version 8.1 or later." echo -e "Exiting..." sleep 2 exit -fi + fi } function arch_check() { if [ "$(dpkg --print-architecture)" != "amd64" ]; then - msg_error "This script will not work with PiMox! \n" + echo -e "\n ${INFO}${YWB}This script will not work with PiMox! \n" + echo -e "\n ${YWB}Visit https://github.com/asylumexp/Proxmox for ARM64 support. \n" echo -e "Exiting..." sleep 2 exit @@ -125,7 +145,7 @@ function ssh_check() { function exit-script() { clear - echo -e "⚠ User exited script \n" + echo -e "\n${CROSS}${RD}User exited script${CL}\n" exit } @@ -133,6 +153,7 @@ function default_settings() { VMID="$NEXTID" FORMAT=",efitype=4m" MACHINE="" + DISK_SIZE="8G" DISK_CACHE="" HN="debian" CPU_TYPE="" @@ -143,19 +164,20 @@ function default_settings() { VLAN="" MTU="" START_VM="yes" - echo -e "${DGN}Using Virtual Machine ID: ${BGN}${VMID}${CL}" - echo -e "${DGN}Using Machine Type: ${BGN}i440fx${CL}" - echo -e "${DGN}Using Disk Cache: ${BGN}None${CL}" - echo -e "${DGN}Using Hostname: ${BGN}${HN}${CL}" - echo -e "${DGN}Using CPU Model: ${BGN}KVM64${CL}" - echo -e "${DGN}Allocated Cores: ${BGN}${CORE_COUNT}${CL}" - echo -e "${DGN}Allocated RAM: ${BGN}${RAM_SIZE}${CL}" - echo -e "${DGN}Using Bridge: ${BGN}${BRG}${CL}" - echo -e "${DGN}Using MAC Address: ${BGN}${MAC}${CL}" - echo -e "${DGN}Using VLAN: ${BGN}Default${CL}" - echo -e "${DGN}Using Interface MTU Size: ${BGN}Default${CL}" - echo -e "${DGN}Start VM when completed: ${BGN}yes${CL}" - echo -e "${BL}Creating a Debian 12 VM using the above default settings${CL}" + echo -e "${CONTAINERID}${BOLD}${DGN}Virtual Machine ID: ${BGN}${VMID}${CL}" + echo -e "${CONTAINERTYPE}${BOLD}${DGN}Machine Type: ${BGN}i440fx${CL}" + echo -e "${DISKSIZE}${BOLD}${DGN}Disk Size: ${BGN}${DISK_SIZE}${CL}" + echo -e "${DISKSIZE}${BOLD}${DGN}Disk Cache: ${BGN}None${CL}" + echo -e "${HOSTNAME}${BOLD}${DGN}Hostname: ${BGN}${HN}${CL}" + echo -e "${OS}${BOLD}${DGN}CPU Model: ${BGN}KVM64${CL}" + echo -e "${CPUCORE}${BOLD}${DGN}CPU Cores: ${BGN}${CORE_COUNT}${CL}" + echo -e "${RAMSIZE}${BOLD}${DGN}RAM Size: ${BGN}${RAM_SIZE}${CL}" + echo -e "${BRIDGE}${BOLD}${DGN}Bridge: ${BGN}${BRG}${CL}" + echo -e "${MACADDRESS}${BOLD}${DGN}MAC Address: ${BGN}${MAC}${CL}" + echo -e "${VLANTAG}${BOLD}${DGN}VLAN: ${BGN}Default${CL}" + echo -e "${DEFAULT}${BOLD}${DGN}Interface MTU Size: ${BGN}Default${CL}" + echo -e "${GATEWAY}${BOLD}${DGN}Start VM when completed: ${BGN}yes${CL}" + echo -e "${CREATING}${BOLD}${DGN}Creating a Debian 12 VM using the above default settings${CL}" } function advanced_settings() { @@ -169,7 +191,7 @@ function advanced_settings() { sleep 2 continue fi - echo -e "${DGN}Virtual Machine ID: ${BGN}$VMID${CL}" + echo -e "${CONTAINERID}${BOLD}${DGN}Virtual Machine ID: ${BGN}$VMID${CL}" break else exit-script @@ -181,27 +203,42 @@ function advanced_settings() { "q35" "Machine q35" OFF \ 3>&1 1>&2 2>&3); then if [ $MACH = q35 ]; then - echo -e "${DGN}Using Machine Type: ${BGN}$MACH${CL}" + echo -e "${CONTAINERTYPE}${BOLD}${DGN}Machine Type: ${BGN}$MACH${CL}" FORMAT="" MACHINE=" -machine q35" else - echo -e "${DGN}Using Machine Type: ${BGN}$MACH${CL}" + echo -e "${CONTAINERTYPE}${BOLD}${DGN}Machine Type: ${BGN}$MACH${CL}" FORMAT=",efitype=4m" MACHINE="" fi else exit-script fi + + if DISK_SIZE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set Disk Size in GiB (e.g., 10, 20)" 8 58 "$DISK_SIZE" --title "DISK SIZE" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then + DISK_SIZE=$(echo "$DISK_SIZE" | tr -d ' ') + if [[ "$DISK_SIZE" =~ ^[0-9]+$ ]]; then + DISK_SIZE="${DISK_SIZE}G" + echo -e "${DISKSIZE}${BOLD}${DGN}Disk Size: ${BGN}$DISK_SIZE${CL}" + elif [[ "$DISK_SIZE" =~ ^[0-9]+G$ ]]; then + echo -e "${DISKSIZE}${BOLD}${DGN}Disk Size: ${BGN}$DISK_SIZE${CL}" + else + echo -e "${DISKSIZE}${BOLD}${RD}Invalid Disk Size. Please use a number (e.g., 10 or 10G).${CL}" + exit-script + fi + else + exit-script + fi if DISK_CACHE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "DISK CACHE" --radiolist "Choose" --cancel-button Exit-Script 10 58 2 \ "0" "None (Default)" ON \ "1" "Write Through" OFF \ 3>&1 1>&2 2>&3); then if [ $DISK_CACHE = "1" ]; then - echo -e "${DGN}Using Disk Cache: ${BGN}Write Through${CL}" + echo -e "${DISKSIZE}${BOLD}${DGN}Disk Cache: ${BGN}Write Through${CL}" DISK_CACHE="cache=writethrough," else - echo -e "${DGN}Using Disk Cache: ${BGN}None${CL}" + echo -e "${DISKSIZE}${BOLD}${DGN}Disk Cache: ${BGN}None${CL}" DISK_CACHE="" fi else @@ -211,10 +248,10 @@ function advanced_settings() { if VM_NAME=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set Hostname" 8 58 debian --title "HOSTNAME" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then if [ -z $VM_NAME ]; then HN="debian" - echo -e "${DGN}Using Hostname: ${BGN}$HN${CL}" + echo -e "${HOSTNAME}${BOLD}${DGN}Hostname: ${BGN}$HN${CL}" else HN=$(echo ${VM_NAME,,} | tr -d ' ') - echo -e "${DGN}Using Hostname: ${BGN}$HN${CL}" + echo -e "${HOSTNAME}${BOLD}${DGN}Hostname: ${BGN}$HN${CL}" fi else exit-script @@ -225,10 +262,10 @@ function advanced_settings() { "1" "Host" OFF \ 3>&1 1>&2 2>&3); then if [ $CPU_TYPE1 = "1" ]; then - echo -e "${DGN}Using CPU Model: ${BGN}Host${CL}" + echo -e "${OS}${BOLD}${DGN}CPU Model: ${BGN}Host${CL}" CPU_TYPE=" -cpu host" else - echo -e "${DGN}Using CPU Model: ${BGN}KVM64${CL}" + echo -e "${OS}${BOLD}${DGN}CPU Model: ${BGN}KVM64${CL}" CPU_TYPE="" fi else @@ -238,9 +275,9 @@ function advanced_settings() { if CORE_COUNT=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Allocate CPU Cores" 8 58 2 --title "CORE COUNT" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then if [ -z $CORE_COUNT ]; then CORE_COUNT="2" - echo -e "${DGN}Allocated Cores: ${BGN}$CORE_COUNT${CL}" + echo -e "${CPUCORE}${BOLD}${DGN}CPU Cores: ${BGN}$CORE_COUNT${CL}" else - echo -e "${DGN}Allocated Cores: ${BGN}$CORE_COUNT${CL}" + echo -e "${CPUCORE}${BOLD}${DGN}CPU Cores: ${BGN}$CORE_COUNT${CL}" fi else exit-script @@ -249,9 +286,9 @@ function advanced_settings() { if RAM_SIZE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Allocate RAM in MiB" 8 58 2048 --title "RAM" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then if [ -z $RAM_SIZE ]; then RAM_SIZE="2048" - echo -e "${DGN}Allocated RAM: ${BGN}$RAM_SIZE${CL}" + echo -e "${RAMSIZE}${BOLD}${DGN}RAM Size: ${BGN}$RAM_SIZE${CL}" else - echo -e "${DGN}Allocated RAM: ${BGN}$RAM_SIZE${CL}" + echo -e "${RAMSIZE}${BOLD}${DGN}RAM Size: ${BGN}$RAM_SIZE${CL}" fi else exit-script @@ -260,9 +297,9 @@ function advanced_settings() { if BRG=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set a Bridge" 8 58 vmbr0 --title "BRIDGE" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then if [ -z $BRG ]; then BRG="vmbr0" - echo -e "${DGN}Using Bridge: ${BGN}$BRG${CL}" + echo -e "${BRIDGE}${BOLD}${DGN}Bridge: ${BGN}$BRG${CL}" else - echo -e "${DGN}Using Bridge: ${BGN}$BRG${CL}" + echo -e "${BRIDGE}${BOLD}${DGN}Bridge: ${BGN}$BRG${CL}" fi else exit-script @@ -271,10 +308,10 @@ function advanced_settings() { if MAC1=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set a MAC Address" 8 58 $GEN_MAC --title "MAC ADDRESS" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then if [ -z $MAC1 ]; then MAC="$GEN_MAC" - echo -e "${DGN}Using MAC Address: ${BGN}$MAC${CL}" + echo -e "${MACADDRESS}${BOLD}${DGN}MAC Address: ${BGN}$MAC${CL}" else MAC="$MAC1" - echo -e "${DGN}Using MAC Address: ${BGN}$MAC1${CL}" + echo -e "${MACADDRESS}${BOLD}${DGN}MAC Address: ${BGN}$MAC1${CL}" fi else exit-script @@ -284,10 +321,10 @@ function advanced_settings() { if [ -z $VLAN1 ]; then VLAN1="Default" VLAN="" - echo -e "${DGN}Using Vlan: ${BGN}$VLAN1${CL}" + echo -e "${VLANTAG}${BOLD}${DGN}VLAN: ${BGN}$VLAN1${CL}" else VLAN=",tag=$VLAN1" - echo -e "${DGN}Using Vlan: ${BGN}$VLAN1${CL}" + echo -e "${VLANTAG}${BOLD}${DGN}VLAN: ${BGN}$VLAN1${CL}" fi else exit-script @@ -297,28 +334,28 @@ function advanced_settings() { if [ -z $MTU1 ]; then MTU1="Default" MTU="" - echo -e "${DGN}Using Interface MTU Size: ${BGN}$MTU1${CL}" + echo -e "${DEFAULT}${BOLD}${DGN}Interface MTU Size: ${BGN}$MTU1${CL}" else MTU=",mtu=$MTU1" - echo -e "${DGN}Using Interface MTU Size: ${BGN}$MTU1${CL}" + echo -e "${DEFAULT}${BOLD}${DGN}Interface MTU Size: ${BGN}$MTU1${CL}" fi else exit-script fi if (whiptail --backtitle "Proxmox VE Helper Scripts" --title "START VIRTUAL MACHINE" --yesno "Start VM when completed?" 10 58); then - echo -e "${DGN}Start VM when completed: ${BGN}yes${CL}" + echo -e "${GATEWAY}${BOLD}${DGN}Start VM when completed: ${BGN}yes${CL}" START_VM="yes" else - echo -e "${DGN}Start VM when completed: ${BGN}no${CL}" + echo -e "${GATEWAY}${BOLD}${DGN}Start VM when completed: ${BGN}no${CL}" START_VM="no" fi if (whiptail --backtitle "Proxmox VE Helper Scripts" --title "ADVANCED SETTINGS COMPLETE" --yesno "Ready to create a Debian 12 VM?" --no-button Do-Over 10 58); then - echo -e "${RD}Creating a Debian 12 VM using the above advanced settings${CL}" + echo -e "${CREATING}${BOLD}${DGN}Creating a Debian 12 VM using the above advanced settings${CL}" else header_info - echo -e "${RD}Using Advanced Settings${CL}" + echo -e "${ADVANCED}${BOLD}${RD}Using Advanced Settings${CL}" advanced_settings fi } @@ -326,11 +363,11 @@ function advanced_settings() { function start_script() { if (whiptail --backtitle "Proxmox VE Helper Scripts" --title "SETTINGS" --yesno "Use Default Settings?" --no-button Advanced 10 58); then header_info - echo -e "${BL}Using Default Settings${CL}" + echo -e "${DEFAULT}${BOLD}${BL}Using Default Settings${CL}" default_settings else header_info - echo -e "${RD}Using Advanced Settings${CL}" + echo -e "${ADVANCED}${BOLD}${RD}Using Advanced Settings${CL}" advanced_settings fi } @@ -402,16 +439,16 @@ done msg_info "Creating a Debian 12 VM" qm create $VMID -agent 1${MACHINE} -tablet 0 -localtime 1 -bios ovmf${CPU_TYPE} -cores $CORE_COUNT -memory $RAM_SIZE \ - -name $HN -tags community-script -net0 virtio,bridge=$BRG,macaddr=$MAC$VLAN$MTU -onboot 1 -ostype l26 -scsihw virtio-scsi-pci + -name $HN -tags proxmox-helper-scripts -net0 virtio,bridge=$BRG,macaddr=$MAC$VLAN$MTU -onboot 1 -ostype l26 -scsihw virtio-scsi-pci pvesm alloc $STORAGE $VMID $DISK0 4M 1>&/dev/null qm importdisk $VMID ${FILE} $STORAGE ${DISK_IMPORT:-} 1>&/dev/null qm set $VMID \ -efidisk0 ${DISK0_REF}${FORMAT} \ - -scsi0 ${DISK1_REF},${DISK_CACHE}${THIN}size=2G \ + -scsi0 ${DISK1_REF},${DISK_CACHE}${THIN}size=${DISK_SIZE} \ -boot order=scsi0 \ -serial0 socket >/dev/null -qm resize $VMID scsi0 4G >/dev/null - DESCRIPTION=$(cat < Logo @@ -440,13 +477,21 @@ qm resize $VMID scsi0 4G >/dev/null
EOF ) - qm set "$VMID" -description "$DESCRIPTION" >/dev/null - +qm set "$VMID" -description "$DESCRIPTION" >/dev/null +if [ -n "$DISK_SIZE" ]; then + msg_info "Resizing disk to $DISK_SIZE GB" + qm resize $VMID scsi0 ${DISK_SIZE} >/dev/null +else + msg_info "Using default disk size of $DEFAULT_DISK_SIZE GB" + qm resize $VMID scsi0 ${DEFAULT_DISK_SIZE} >/dev/null +fi + msg_ok "Created a Debian 12 VM ${CL}${BL}(${HN})" if [ "$START_VM" == "yes" ]; then msg_info "Starting Debian 12 VM" qm start $VMID msg_ok "Started Debian 12 VM" fi + msg_ok "Completed Successfully!\n" echo "More Info at https://github.com/community-scripts/ProxmoxVE/discussions/836" From 90d769bbbb16dccdc439e5f112b3271ab4810fb6 Mon Sep 17 00:00:00 2001 From: "community-scripts-pr-app[bot]" <189241966+community-scripts-pr-app[bot]@users.noreply.github.com> Date: Thu, 23 Jan 2025 17:13:48 +0100 Subject: [PATCH 153/284] Update CHANGELOG.md (#1696) Co-authored-by: github-actions[bot] --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e17130565..fe4c97482 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,7 @@ Do not break established syntax in this file, as it is automatically updated by ### πŸš€ Updated Scripts +- Feature: Add Debian Disk Size / Redesign / Increase Disk [@MickLesk](https://github.com/MickLesk) ([#1695](https://github.com/community-scripts/ProxmoxVE/pull/1695)) - Fix: Paperless Service Timings & Optimization: Ghostscript Installation [@MickLesk](https://github.com/MickLesk) ([#1688](https://github.com/community-scripts/ProxmoxVE/pull/1688)) ## 2025-01-22 From 8f87ec37d250eb2d157c8a30bb31674679940fed Mon Sep 17 00:00:00 2001 From: Bram Suurd <78373894+BramSuurdje@users.noreply.github.com> Date: Thu, 23 Jan 2025 17:36:57 +0100 Subject: [PATCH 154/284] Refactor ScriptInfoBlocks and siteConfig to properly show the most populair scripts (#1697) --- frontend/src/app/scripts/_components/ScriptInfoBlocks.tsx | 6 +++--- frontend/src/config/siteConfig.tsx | 6 +----- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/frontend/src/app/scripts/_components/ScriptInfoBlocks.tsx b/frontend/src/app/scripts/_components/ScriptInfoBlocks.tsx index 1c418c94c..cf5edfb22 100644 --- a/frontend/src/app/scripts/_components/ScriptInfoBlocks.tsx +++ b/frontend/src/app/scripts/_components/ScriptInfoBlocks.tsx @@ -90,7 +90,7 @@ export function LatestScripts({ items }: { items: Category[] }) { > -
+
{ const foundScripts = category.scripts.filter((script) => - mostPopularScripts.includes(script.name), + mostPopularScripts.includes(script.slug), ); return acc.concat(foundScripts); }, []); @@ -162,7 +162,7 @@ export function MostViewedScripts({ items }: { items: Category[] }) { > -
+
Date: Thu, 23 Jan 2025 17:48:18 +0100 Subject: [PATCH 155/284] Update CHANGELOG.md (#1698) Co-authored-by: github-actions[bot] --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index fe4c97482..8378a2b44 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,6 +26,10 @@ Do not break established syntax in this file, as it is automatically updated by - Feature: Add Debian Disk Size / Redesign / Increase Disk [@MickLesk](https://github.com/MickLesk) ([#1695](https://github.com/community-scripts/ProxmoxVE/pull/1695)) - Fix: Paperless Service Timings & Optimization: Ghostscript Installation [@MickLesk](https://github.com/MickLesk) ([#1688](https://github.com/community-scripts/ProxmoxVE/pull/1688)) +### 🌐 Website + +- Refactor ScriptInfoBlocks and siteConfig to properly show the most populair scripts [@BramSuurdje](https://github.com/BramSuurdje) ([#1697](https://github.com/community-scripts/ProxmoxVE/pull/1697)) + ## 2025-01-22 ### Changed From 16be69e3a306389f4fda59762eff3281d5d0beea Mon Sep 17 00:00:00 2001 From: Michel Roegl-Brunner <73236783+michelroegl-brunner@users.noreply.github.com> Date: Thu, 23 Jan 2025 19:02:20 +0100 Subject: [PATCH 156/284] Update build.func (#1701) --- misc/build.func | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/misc/build.func b/misc/build.func index e9267b7af..ef98462fe 100644 --- a/misc/build.func +++ b/misc/build.func @@ -462,8 +462,7 @@ advanced_settings() { else exit_script fi - fi - if [ "$var_default_version" == "22.04" ]; then + elif [ "$var_default_version" == "22.04" ]; then if var_version=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "UBUNTU VERSION" --radiolist "Choose Version" 10 58 4 \ "20.04" "Focal" OFF \ "22.04" "Jammy" ON \ @@ -476,9 +475,8 @@ advanced_settings() { else exit_script fi - fi - if [ "$var_default_version" == "24.04" ]; then - if var_version=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "UBUNTU VERSION" --radiolist "Choose Version" 10 58 4 \ + elif [ "$var_default_version" == "24.04" ]; then + if var_version=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "UBUNTU VERSION" --radiolist "Choose Version" 10 58 4 \ "20.04" "Focal" OFF \ "22.04" "Jammy" OFF \ "24.04" "Noble" ON \ @@ -489,9 +487,8 @@ advanced_settings() { fi else exit_script - fi - fi - if [ "$var_default_version" == "24.10" ]; then + fi + else if var_version=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "UBUNTU VERSION" --radiolist "Choose Version" 10 58 4 \ "20.04" "Focal" OFF \ "22.04" "Jammy" OFF \ From d4aedc6702dde35f9ed9e17d35e2c85ad3743c7e Mon Sep 17 00:00:00 2001 From: "community-scripts-pr-app[bot]" <189241966+community-scripts-pr-app[bot]@users.noreply.github.com> Date: Thu, 23 Jan 2025 19:13:07 +0100 Subject: [PATCH 157/284] Update CHANGELOG.md (#1702) --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8378a2b44..aaba48e6c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -30,6 +30,10 @@ Do not break established syntax in this file, as it is automatically updated by - Refactor ScriptInfoBlocks and siteConfig to properly show the most populair scripts [@BramSuurdje](https://github.com/BramSuurdje) ([#1697](https://github.com/community-scripts/ProxmoxVE/pull/1697)) +### 🧰 Maintenance + +- Update build.func: Ubuntu advanced settings version [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1701](https://github.com/community-scripts/ProxmoxVE/pull/1701)) + ## 2025-01-22 ### Changed From 81be2a49c0a64afe119160709bd0c35e01403cb6 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Fri, 24 Jan 2025 11:46:27 +0100 Subject: [PATCH 158/284] New Script: Ubuntu 24.10 VM (#1711) * New Script: Ubuntu 24.10 VM * Create ubuntu2410-vm.json * final state vm * add cloudinit * rename and add correct discussion --- json/ubuntu2410-vm.json | 34 +++ vm/ubuntu2410-vm.sh | 499 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 533 insertions(+) create mode 100644 json/ubuntu2410-vm.json create mode 100644 vm/ubuntu2410-vm.sh diff --git a/json/ubuntu2410-vm.json b/json/ubuntu2410-vm.json new file mode 100644 index 000000000..a1715368a --- /dev/null +++ b/json/ubuntu2410-vm.json @@ -0,0 +1,34 @@ +{ + "name": "Ubuntu 24.10", + "slug": "ubuntu2410-vm", + "categories": [ + 2 + ], + "date_created": "2025-01-24", + "type": "vm", + "updateable": false, + "privileged": false, + "interface_port": null, + "documentation": null, + "website": "https://ubuntu.com/", + "logo": "https://assets.ubuntu.com/v1/29985a98-ubuntu-logo32.png", + "description": "Ubuntu is a distribution based on Debian, designed to have regular releases and a consistent user experience.", + "install_methods": [ + { + "type": "default", + "script": "vm/ubuntu2410-vm.sh", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 8, + "os": null, + "version": null + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] +} diff --git a/vm/ubuntu2410-vm.sh b/vm/ubuntu2410-vm.sh new file mode 100644 index 000000000..17edbe999 --- /dev/null +++ b/vm/ubuntu2410-vm.sh @@ -0,0 +1,499 @@ +#!/usr/bin/env bash + +# Copyright (c) 2021-2025 community-scripts ORG +# Author: MickLesk (CanbiZ) +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE + +function header_info { + clear + cat <<"EOF" + __ ____ __ ___ __ __ _______ _ ____ ___ + / / / / /_ __ ______ / /___ __ |__ \/ // / < / __ \ | | / / |/ / + / / / / __ \/ / / / __ \/ __/ / / / __/ / // /_ / / / / / | | / / /|_/ / +/ /_/ / /_/ / /_/ / / / / /_/ /_/ / / __/__ __/ / / /_/ / | |/ / / / / +\____/_.___/\__,_/_/ /_/\__/\__,_/ /____/ /_/ (_)_/\____/ |___/_/ /_/ + +EOF +} +header_info +echo -e "\n Loading..." +GEN_MAC=02:$(openssl rand -hex 5 | awk '{print toupper($0)}' | sed 's/\(..\)/\1:/g; s/.$//') +NEXTID=$(pvesh get /cluster/nextid) + +YW=$(echo "\033[33m") +BL=$(echo "\033[36m") +RD=$(echo "\033[01;31m") +BGN=$(echo "\033[4;92m") +GN=$(echo "\033[1;92m") +DGN=$(echo "\033[32m") +CL=$(echo "\033[m") + +CL=$(echo "\033[m") +BOLD=$(echo "\033[1m") +BFR="\\r\\033[K" +HOLD=" " +TAB=" " + +CM="${TAB}βœ”οΈ${TAB}${CL}" +CROSS="${TAB}βœ–οΈ${TAB}${CL}" +INFO="${TAB}πŸ’‘${TAB}${CL}" +OS="${TAB}πŸ–₯️${TAB}${CL}" +CONTAINERTYPE="${TAB}πŸ“¦${TAB}${CL}" +DISKSIZE="${TAB}πŸ’Ύ${TAB}${CL}" +CPUCORE="${TAB}🧠${TAB}${CL}" +RAMSIZE="${TAB}πŸ› οΈ${TAB}${CL}" +CONTAINERID="${TAB}πŸ†”${TAB}${CL}" +HOSTNAME="${TAB}🏠${TAB}${CL}" +BRIDGE="${TAB}πŸŒ‰${TAB}${CL}" +GATEWAY="${TAB}🌐${TAB}${CL}" +DEFAULT="${TAB}βš™οΈ${TAB}${CL}" +MACADDRESS="${TAB}πŸ”—${TAB}${CL}" +VLANTAG="${TAB}🏷️${TAB}${CL}" +CREATING="${TAB}πŸš€${TAB}${CL}" +ADVANCED="${TAB}🧩${TAB}${CL}" + +THIN="discard=on,ssd=1," +set -e +trap 'error_handler $LINENO "$BASH_COMMAND"' ERR +trap cleanup EXIT +function error_handler() { + local exit_code="$?" + local line_number="$1" + local command="$2" + local error_message="${RD}[ERROR]${CL} in line ${RD}$line_number${CL}: exit code ${RD}$exit_code${CL}: while executing command ${YW}$command${CL}" + echo -e "\n$error_message\n" + cleanup_vmid +} + +function cleanup_vmid() { + if qm status $VMID &>/dev/null; then + qm stop $VMID &>/dev/null + qm destroy $VMID &>/dev/null + fi +} + +function cleanup() { + popd >/dev/null + rm -rf $TEMP_DIR +} + +TEMP_DIR=$(mktemp -d) +pushd $TEMP_DIR >/dev/null +if whiptail --backtitle "Proxmox VE Helper Scripts" --title "Ubuntu 24.10 VM" --yesno "This will create a New Ubuntu 24.10 VM. Proceed?" 10 58; then + : +else + header_info && echo -e "${CROSS}${RD}User exited script${CL}\n" && exit +fi + +function msg_info() { + local msg="$1" + echo -ne "${TAB}${YW}${HOLD}${msg}${HOLD}" +} + +function msg_ok() { + local msg="$1" + echo -e "${BFR}${CM}${GN}${msg}${CL}" +} + +function msg_error() { + local msg="$1" + echo -e "${BFR}${CROSS}${RD}${msg}${CL}" +} + +function check_root() { + if [[ "$(id -u)" -ne 0 || $(ps -o comm= -p $PPID) == "sudo" ]]; then + clear + msg_error "Please run this script as root." + echo -e "\nExiting..." + sleep 2 + exit + fi +} + +function pve_check() { + if ! pveversion | grep -Eq "pve-manager/8.[1-3]"; then + msg_error "${CROSS}${RD}This version of Proxmox Virtual Environment is not supported" + echo -e "Requires Proxmox Virtual Environment Version 8.1 or later." + echo -e "Exiting..." + sleep 2 + exit + fi +} + +function arch_check() { + if [ "$(dpkg --print-architecture)" != "amd64" ]; then + echo -e "\n ${INFO}${YWB}This script will not work with PiMox! \n" + echo -e "\n ${YWB}Visit https://github.com/asylumexp/Proxmox for ARM64 support. \n" + echo -e "Exiting..." + sleep 2 + exit + fi +} + +function ssh_check() { + if command -v pveversion >/dev/null 2>&1; then + if [ -n "${SSH_CLIENT:+x}" ]; then + if whiptail --backtitle "Proxmox VE Helper Scripts" --defaultno --title "SSH DETECTED" --yesno "It's suggested to use the Proxmox shell instead of SSH, since SSH can create issues while gathering variables. Would you like to proceed with using SSH?" 10 62; then + echo "you've been warned" + else + clear + exit + fi + fi + fi +} + +function exit-script() { + clear + echo -e "\n${CROSS}${RD}User exited script${CL}\n" + exit +} + +function default_settings() { + VMID="$NEXTID" + FORMAT=",efitype=4m" + MACHINE="" + DISK_SIZE="8G" + DISK_CACHE="" + HN="ubuntu" + CPU_TYPE="" + CORE_COUNT="2" + RAM_SIZE="2048" + BRG="vmbr0" + MAC="$GEN_MAC" + VLAN="" + MTU="" + START_VM="yes" + echo -e "${CONTAINERID}${BOLD}${DGN}Virtual Machine ID: ${BGN}${VMID}${CL}" + echo -e "${CONTAINERTYPE}${BOLD}${DGN}Machine Type: ${BGN}i440fx${CL}" + echo -e "${DISKSIZE}${BOLD}${DGN}Disk Size: ${BGN}${DISK_SIZE}${CL}" + echo -e "${DISKSIZE}${BOLD}${DGN}Disk Cache: ${BGN}None${CL}" + echo -e "${HOSTNAME}${BOLD}${DGN}Hostname: ${BGN}${HN}${CL}" + echo -e "${OS}${BOLD}${DGN}CPU Model: ${BGN}KVM64${CL}" + echo -e "${CPUCORE}${BOLD}${DGN}CPU Cores: ${BGN}${CORE_COUNT}${CL}" + echo -e "${RAMSIZE}${BOLD}${DGN}RAM Size: ${BGN}${RAM_SIZE}${CL}" + echo -e "${BRIDGE}${BOLD}${DGN}Bridge: ${BGN}${BRG}${CL}" + echo -e "${MACADDRESS}${BOLD}${DGN}MAC Address: ${BGN}${MAC}${CL}" + echo -e "${VLANTAG}${BOLD}${DGN}VLAN: ${BGN}Default${CL}" + echo -e "${DEFAULT}${BOLD}${DGN}Interface MTU Size: ${BGN}Default${CL}" + echo -e "${GATEWAY}${BOLD}${DGN}Start VM when completed: ${BGN}yes${CL}" + echo -e "${CREATING}${BOLD}${DGN}Creating a Ubuntu 24.10 VM using the above default settings${CL}" +} + +function advanced_settings() { + while true; do + if VMID=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set Virtual Machine ID" 8 58 $NEXTID --title "VIRTUAL MACHINE ID" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then + if [ -z "$VMID" ]; then + VMID="$NEXTID" + fi + if pct status "$VMID" &>/dev/null || qm status "$VMID" &>/dev/null; then + echo -e "${CROSS}${RD} ID $VMID is already in use${CL}" + sleep 2 + continue + fi + echo -e "${CONTAINERID}${BOLD}${DGN}Virtual Machine ID: ${BGN}$VMID${CL}" + break + else + exit-script + fi + done + + if MACH=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "MACHINE TYPE" --radiolist --cancel-button Exit-Script "Choose Type" 10 58 2 \ + "i440fx" "Machine i440fx" ON \ + "q35" "Machine q35" OFF \ + 3>&1 1>&2 2>&3); then + if [ $MACH = q35 ]; then + echo -e "${CONTAINERTYPE}${BOLD}${DGN}Machine Type: ${BGN}$MACH${CL}" + FORMAT="" + MACHINE=" -machine q35" + else + echo -e "${CONTAINERTYPE}${BOLD}${DGN}Machine Type: ${BGN}$MACH${CL}" + FORMAT=",efitype=4m" + MACHINE="" + fi + else + exit-script + fi + + if DISK_SIZE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set Disk Size in GiB (e.g., 10, 20)" 8 58 "$DISK_SIZE" --title "DISK SIZE" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then + DISK_SIZE=$(echo "$DISK_SIZE" | tr -d ' ') + if [[ "$DISK_SIZE" =~ ^[0-9]+$ ]]; then + DISK_SIZE="${DISK_SIZE}G" + echo -e "${DISKSIZE}${BOLD}${DGN}Disk Size: ${BGN}$DISK_SIZE${CL}" + elif [[ "$DISK_SIZE" =~ ^[0-9]+G$ ]]; then + echo -e "${DISKSIZE}${BOLD}${DGN}Disk Size: ${BGN}$DISK_SIZE${CL}" + else + echo -e "${DISKSIZE}${BOLD}${RD}Invalid Disk Size. Please use a number (e.g., 10 or 10G).${CL}" + exit-script + fi + else + exit-script + fi + + if DISK_CACHE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "DISK CACHE" --radiolist "Choose" --cancel-button Exit-Script 10 58 2 \ + "0" "None (Default)" ON \ + "1" "Write Through" OFF \ + 3>&1 1>&2 2>&3); then + if [ $DISK_CACHE = "1" ]; then + echo -e "${DISKSIZE}${BOLD}${DGN}Disk Cache: ${BGN}Write Through${CL}" + DISK_CACHE="cache=writethrough," + else + echo -e "${DISKSIZE}${BOLD}${DGN}Disk Cache: ${BGN}None${CL}" + DISK_CACHE="" + fi + else + exit-script + fi + + if VM_NAME=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set Hostname" 8 58 ubuntu --title "HOSTNAME" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then + if [ -z $VM_NAME ]; then + HN="ubuntu" + echo -e "${HOSTNAME}${BOLD}${DGN}Hostname: ${BGN}$HN${CL}" + else + HN=$(echo ${VM_NAME,,} | tr -d ' ') + echo -e "${HOSTNAME}${BOLD}${DGN}Hostname: ${BGN}$HN${CL}" + fi + else + exit-script + fi + + if CPU_TYPE1=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "CPU MODEL" --radiolist "Choose" --cancel-button Exit-Script 10 58 2 \ + "0" "KVM64 (Default)" ON \ + "1" "Host" OFF \ + 3>&1 1>&2 2>&3); then + if [ $CPU_TYPE1 = "1" ]; then + echo -e "${OS}${BOLD}${DGN}CPU Model: ${BGN}Host${CL}" + CPU_TYPE=" -cpu host" + else + echo -e "${OS}${BOLD}${DGN}CPU Model: ${BGN}KVM64${CL}" + CPU_TYPE="" + fi + else + exit-script + fi + + if CORE_COUNT=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Allocate CPU Cores" 8 58 2 --title "CORE COUNT" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then + if [ -z $CORE_COUNT ]; then + CORE_COUNT="2" + echo -e "${CPUCORE}${BOLD}${DGN}CPU Cores: ${BGN}$CORE_COUNT${CL}" + else + echo -e "${CPUCORE}${BOLD}${DGN}CPU Cores: ${BGN}$CORE_COUNT${CL}" + fi + else + exit-script + fi + + if RAM_SIZE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Allocate RAM in MiB" 8 58 2048 --title "RAM" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then + if [ -z $RAM_SIZE ]; then + RAM_SIZE="2048" + echo -e "${RAMSIZE}${BOLD}${DGN}RAM Size: ${BGN}$RAM_SIZE${CL}" + else + echo -e "${RAMSIZE}${BOLD}${DGN}RAM Size: ${BGN}$RAM_SIZE${CL}" + fi + else + exit-script + fi + + if BRG=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set a Bridge" 8 58 vmbr0 --title "BRIDGE" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then + if [ -z $BRG ]; then + BRG="vmbr0" + echo -e "${BRIDGE}${BOLD}${DGN}Bridge: ${BGN}$BRG${CL}" + else + echo -e "${BRIDGE}${BOLD}${DGN}Bridge: ${BGN}$BRG${CL}" + fi + else + exit-script + fi + + if MAC1=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set a MAC Address" 8 58 $GEN_MAC --title "MAC ADDRESS" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then + if [ -z $MAC1 ]; then + MAC="$GEN_MAC" + echo -e "${MACADDRESS}${BOLD}${DGN}MAC Address: ${BGN}$MAC${CL}" + else + MAC="$MAC1" + echo -e "${MACADDRESS}${BOLD}${DGN}MAC Address: ${BGN}$MAC1${CL}" + fi + else + exit-script + fi + + if VLAN1=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set a Vlan(leave blank for default)" 8 58 --title "VLAN" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then + if [ -z $VLAN1 ]; then + VLAN1="Default" + VLAN="" + echo -e "${VLANTAG}${BOLD}${DGN}VLAN: ${BGN}$VLAN1${CL}" + else + VLAN=",tag=$VLAN1" + echo -e "${VLANTAG}${BOLD}${DGN}VLAN: ${BGN}$VLAN1${CL}" + fi + else + exit-script + fi + + if MTU1=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set Interface MTU Size (leave blank for default)" 8 58 --title "MTU SIZE" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then + if [ -z $MTU1 ]; then + MTU1="Default" + MTU="" + echo -e "${DEFAULT}${BOLD}${DGN}Interface MTU Size: ${BGN}$MTU1${CL}" + else + MTU=",mtu=$MTU1" + echo -e "${DEFAULT}${BOLD}${DGN}Interface MTU Size: ${BGN}$MTU1${CL}" + fi + else + exit-script + fi + + if (whiptail --backtitle "Proxmox VE Helper Scripts" --title "START VIRTUAL MACHINE" --yesno "Start VM when completed?" 10 58); then + echo -e "${GATEWAY}${BOLD}${DGN}Start VM when completed: ${BGN}yes${CL}" + START_VM="yes" + else + echo -e "${GATEWAY}${BOLD}${DGN}Start VM when completed: ${BGN}no${CL}" + START_VM="no" + fi + + if (whiptail --backtitle "Proxmox VE Helper Scripts" --title "ADVANCED SETTINGS COMPLETE" --yesno "Ready to create a Ubuntu 24.10 VM?" --no-button Do-Over 10 58); then + echo -e "${CREATING}${BOLD}${DGN}Creating a Ubuntu 24.10 VM using the above advanced settings${CL}" + else + header_info + echo -e "${ADVANCED}${BOLD}${RD}Using Advanced Settings${CL}" + advanced_settings + fi +} + +function start_script() { + if (whiptail --backtitle "Proxmox VE Helper Scripts" --title "SETTINGS" --yesno "Use Default Settings?" --no-button Advanced 10 58); then + header_info + echo -e "${DEFAULT}${BOLD}${BL}Using Default Settings${CL}" + default_settings + else + header_info + echo -e "${ADVANCED}${BOLD}${RD}Using Advanced Settings${CL}" + advanced_settings + fi +} + +check_root +arch_check +pve_check +ssh_check +start_script + +msg_info "Validating Storage" +while read -r line; do + TAG=$(echo $line | awk '{print $1}') + TYPE=$(echo $line | awk '{printf "%-10s", $2}') + FREE=$(echo $line | numfmt --field 4-6 --from-unit=K --to=iec --format %.2f | awk '{printf( "%9sB", $6)}') + ITEM=" Type: $TYPE Free: $FREE " + OFFSET=2 + if [[ $((${#ITEM} + $OFFSET)) -gt ${MSG_MAX_LENGTH:-} ]]; then + MSG_MAX_LENGTH=$((${#ITEM} + $OFFSET)) + fi + STORAGE_MENU+=("$TAG" "$ITEM" "OFF") +done < <(pvesm status -content images | awk 'NR>1') +VALID=$(pvesm status -content images | awk 'NR>1') +if [ -z "$VALID" ]; then + msg_error "Unable to detect a valid storage location." + exit +elif [ $((${#STORAGE_MENU[@]} / 3)) -eq 1 ]; then + STORAGE=${STORAGE_MENU[0]} +else + 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 ${HN}?\nTo make a selection, use the Spacebar.\n" \ + 16 $(($MSG_MAX_LENGTH + 23)) 6 \ + "${STORAGE_MENU[@]}" 3>&1 1>&2 2>&3) || exit + done +fi +msg_ok "Using ${CL}${BL}$STORAGE${CL} ${GN}for Storage Location." +msg_ok "Virtual Machine ID is ${CL}${BL}$VMID${CL}." +msg_info "Retrieving the URL for the Ubuntu 24.0 Disk Image" +URL=https://cloud-images.ubuntu.com/oracular/current/oracular-server-cloudimg-amd64.img +sleep 2 +msg_ok "${CL}${BL}${URL}${CL}" +wget -q --show-progress $URL +echo -en "\e[1A\e[0K" +FILE=$(basename $URL) +msg_ok "Downloaded ${CL}${BL}${FILE}${CL}" + +STORAGE_TYPE=$(pvesm status -storage $STORAGE | awk 'NR>1 {print $2}') +case $STORAGE_TYPE in +nfs | dir) + DISK_EXT=".qcow2" + DISK_REF="$VMID/" + DISK_IMPORT="-format qcow2" + THIN="" + ;; +btrfs) + DISK_EXT=".raw" + DISK_REF="$VMID/" + DISK_IMPORT="-format raw" + FORMAT=",efitype=4m" + THIN="" + ;; +esac +for i in {0,1}; do + disk="DISK$i" + eval DISK${i}=vm-${VMID}-disk-${i}${DISK_EXT:-} + eval DISK${i}_REF=${STORAGE}:${DISK_REF:-}${!disk} +done + +msg_info "Creating a Ubuntu 24.10 VM" +qm create $VMID -agent 1${MACHINE} -tablet 0 -localtime 1 -bios ovmf${CPU_TYPE} -cores $CORE_COUNT -memory $RAM_SIZE \ + -name $HN -tags proxmox-helper-scripts -net0 virtio,bridge=$BRG,macaddr=$MAC$VLAN$MTU -onboot 1 -ostype l26 -scsihw virtio-scsi-pci +pvesm alloc $STORAGE $VMID $DISK0 4M 1>&/dev/null +qm importdisk $VMID ${FILE} $STORAGE ${DISK_IMPORT:-} 1>&/dev/null +qm set $VMID \ + -efidisk0 ${DISK0_REF}${FORMAT} \ + -scsi0 ${DISK1_REF},${DISK_CACHE}${THIN}size=${DISK_SIZE} \ + -ide2 ${STORAGE}:cloudinit \ + -boot order=scsi0 \ + -serial0 socket >/dev/null +DESCRIPTION=$( + cat < + + Logo + + +

Ubuntu 24.10 VM

+ +

+ + spend Coffee + +

+ + + + GitHub + + + + Discussions + + + + Issues + +
+EOF +) +qm set "$VMID" -description "$DESCRIPTION" >/dev/null +if [ -n "$DISK_SIZE" ]; then + msg_info "Resizing disk to $DISK_SIZE GB" + qm resize $VMID scsi0 ${DISK_SIZE} >/dev/null +else + msg_info "Using default disk size of $DEFAULT_DISK_SIZE GB" + qm resize $VMID scsi0 ${DEFAULT_DISK_SIZE} >/dev/null +fi + +msg_ok "Created a Ubuntu 24.10 VM ${CL}${BL}(${HN})" +if [ "$START_VM" == "yes" ]; then + msg_info "Starting Ubuntu 24.10 VM" + qm start $VMID + msg_ok "Started Ubuntu 24.10 VM" +fi + +msg_ok "Completed Successfully!\n" +echo -e "Setup Cloud-Init before starting \n +More info at https://github.com/community-scripts/ProxmoxVE/discussions/272 \n" From dc03df6f8a41218bae0791337f279454e8cb696e Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Fri, 24 Jan 2025 11:51:15 +0100 Subject: [PATCH 159/284] add cifs support --- vm/ubuntu2410-vm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vm/ubuntu2410-vm.sh b/vm/ubuntu2410-vm.sh index 17edbe999..a512d81d6 100644 --- a/vm/ubuntu2410-vm.sh +++ b/vm/ubuntu2410-vm.sh @@ -417,7 +417,7 @@ msg_ok "Downloaded ${CL}${BL}${FILE}${CL}" STORAGE_TYPE=$(pvesm status -storage $STORAGE | awk 'NR>1 {print $2}') case $STORAGE_TYPE in -nfs | dir) +nfs | dir | cifs) DISK_EXT=".qcow2" DISK_REF="$VMID/" DISK_IMPORT="-format qcow2" From 38b692aaa392d1a1260abe248b9df7d5bf303aa7 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Fri, 24 Jan 2025 12:01:55 +0100 Subject: [PATCH 160/284] Feature: Ubuntu 24.04 VM > Redesign | Optional HDD-Size Prompt | cifs support (#1714) * Update ubuntu2404-vm.sh * Update ubuntu2404-vm.json --- json/ubuntu2404-vm.json | 2 +- vm/ubuntu2404-vm.sh | 208 ++++++++++++++++++++++++++++------------ 2 files changed, 148 insertions(+), 62 deletions(-) diff --git a/json/ubuntu2404-vm.json b/json/ubuntu2404-vm.json index dbb7fa73e..9c2b9a45c 100644 --- a/json/ubuntu2404-vm.json +++ b/json/ubuntu2404-vm.json @@ -20,7 +20,7 @@ "resources": { "cpu": 2, "ram": 2048, - "hdd": 2, + "hdd": 7, "os": null, "version": null } diff --git a/vm/ubuntu2404-vm.sh b/vm/ubuntu2404-vm.sh index c789ecc9b..b6b18809b 100644 --- a/vm/ubuntu2404-vm.sh +++ b/vm/ubuntu2404-vm.sh @@ -22,17 +22,37 @@ GEN_MAC=02:$(openssl rand -hex 5 | awk '{print toupper($0)}' | sed 's/\(..\)/\1: NEXTID=$(pvesh get /cluster/nextid) YW=$(echo "\033[33m") -BL=$(echo "\033[36m") -HA=$(echo "\033[1;34m") +BL=$(echo "\033[36m") RD=$(echo "\033[01;31m") BGN=$(echo "\033[4;92m") GN=$(echo "\033[1;92m") DGN=$(echo "\033[32m") CL=$(echo "\033[m") + +CL=$(echo "\033[m") +BOLD=$(echo "\033[1m") BFR="\\r\\033[K" -HOLD="-" -CM="${GN}βœ“${CL}" -CROSS="${RD}βœ—${CL}" +HOLD=" " +TAB=" " + +CM="${TAB}βœ”οΈ${TAB}${CL}" +CROSS="${TAB}βœ–οΈ${TAB}${CL}" +INFO="${TAB}πŸ’‘${TAB}${CL}" +OS="${TAB}πŸ–₯️${TAB}${CL}" +CONTAINERTYPE="${TAB}πŸ“¦${TAB}${CL}" +DISKSIZE="${TAB}πŸ’Ύ${TAB}${CL}" +CPUCORE="${TAB}🧠${TAB}${CL}" +RAMSIZE="${TAB}πŸ› οΈ${TAB}${CL}" +CONTAINERID="${TAB}πŸ†”${TAB}${CL}" +HOSTNAME="${TAB}🏠${TAB}${CL}" +BRIDGE="${TAB}πŸŒ‰${TAB}${CL}" +GATEWAY="${TAB}🌐${TAB}${CL}" +DEFAULT="${TAB}βš™οΈ${TAB}${CL}" +MACADDRESS="${TAB}πŸ”—${TAB}${CL}" +VLANTAG="${TAB}🏷️${TAB}${CL}" +CREATING="${TAB}πŸš€${TAB}${CL}" +ADVANCED="${TAB}🧩${TAB}${CL}" + THIN="discard=on,ssd=1," set -e trap 'error_handler $LINENO "$BASH_COMMAND"' ERR @@ -63,22 +83,22 @@ pushd $TEMP_DIR >/dev/null if whiptail --backtitle "Proxmox VE Helper Scripts" --title "Ubuntu 24.04 VM" --yesno "This will create a New Ubuntu 24.04 VM. Proceed?" 10 58; then : else - header_info && echo -e "⚠ User exited script \n" && exit + header_info && echo -e "${CROSS}${RD}User exited script${CL}\n" && exit fi function msg_info() { local msg="$1" - echo -ne " ${HOLD} ${YW}${msg}..." + echo -ne "${TAB}${YW}${HOLD}${msg}${HOLD}" } function msg_ok() { local msg="$1" - echo -e "${BFR} ${CM} ${GN}${msg}${CL}" + echo -e "${BFR}${CM}${GN}${msg}${CL}" } function msg_error() { local msg="$1" - echo -e "${BFR} ${CROSS} ${RD}${msg}${CL}" + echo -e "${BFR}${CROSS}${RD}${msg}${CL}" } function check_root() { @@ -93,17 +113,18 @@ function check_root() { function pve_check() { if ! pveversion | grep -Eq "pve-manager/8.[1-3]"; then - msg_error "This version of Proxmox Virtual Environment is not supported" + msg_error "${CROSS}${RD}This version of Proxmox Virtual Environment is not supported" echo -e "Requires Proxmox Virtual Environment Version 8.1 or later." echo -e "Exiting..." sleep 2 exit -fi + fi } function arch_check() { if [ "$(dpkg --print-architecture)" != "amd64" ]; then - msg_error "This script will not work with PiMox! \n" + echo -e "\n ${INFO}${YWB}This script will not work with PiMox! \n" + echo -e "\n ${YWB}Visit https://github.com/asylumexp/Proxmox for ARM64 support. \n" echo -e "Exiting..." sleep 2 exit @@ -125,7 +146,7 @@ function ssh_check() { function exit-script() { clear - echo -e "⚠ User exited script \n" + echo -e "\n${CROSS}${RD}User exited script${CL}\n" exit } @@ -133,6 +154,7 @@ function default_settings() { VMID="$NEXTID" FORMAT=",efitype=4m" MACHINE="" + DISK_SIZE="7G" DISK_CACHE="" HN="ubuntu" CPU_TYPE="" @@ -142,18 +164,21 @@ function default_settings() { MAC="$GEN_MAC" VLAN="" MTU="" - echo -e "${DGN}Using Virtual Machine ID: ${BGN}${VMID}${CL}" - echo -e "${DGN}Using Machine Type: ${BGN}i440fx${CL}" - echo -e "${DGN}Using Disk Cache: ${BGN}None${CL}" - echo -e "${DGN}Using Hostname: ${BGN}${HN}${CL}" - echo -e "${DGN}Using CPU Model: ${BGN}KVM64${CL}" - echo -e "${DGN}Allocated Cores: ${BGN}${CORE_COUNT}${CL}" - echo -e "${DGN}Allocated RAM: ${BGN}${RAM_SIZE}${CL}" - echo -e "${DGN}Using Bridge: ${BGN}${BRG}${CL}" - echo -e "${DGN}Using MAC Address: ${BGN}${MAC}${CL}" - echo -e "${DGN}Using VLAN: ${BGN}Default${CL}" - echo -e "${DGN}Using Interface MTU Size: ${BGN}Default${CL}" - echo -e "${BL}Creating an Ubuntu 24.04 VM using the above default settings${CL}" + START_VM="yes" + echo -e "${CONTAINERID}${BOLD}${DGN}Virtual Machine ID: ${BGN}${VMID}${CL}" + echo -e "${CONTAINERTYPE}${BOLD}${DGN}Machine Type: ${BGN}i440fx${CL}" + echo -e "${DISKSIZE}${BOLD}${DGN}Disk Size: ${BGN}${DISK_SIZE}${CL}" + echo -e "${DISKSIZE}${BOLD}${DGN}Disk Cache: ${BGN}None${CL}" + echo -e "${HOSTNAME}${BOLD}${DGN}Hostname: ${BGN}${HN}${CL}" + echo -e "${OS}${BOLD}${DGN}CPU Model: ${BGN}KVM64${CL}" + echo -e "${CPUCORE}${BOLD}${DGN}CPU Cores: ${BGN}${CORE_COUNT}${CL}" + echo -e "${RAMSIZE}${BOLD}${DGN}RAM Size: ${BGN}${RAM_SIZE}${CL}" + echo -e "${BRIDGE}${BOLD}${DGN}Bridge: ${BGN}${BRG}${CL}" + echo -e "${MACADDRESS}${BOLD}${DGN}MAC Address: ${BGN}${MAC}${CL}" + echo -e "${VLANTAG}${BOLD}${DGN}VLAN: ${BGN}Default${CL}" + echo -e "${DEFAULT}${BOLD}${DGN}Interface MTU Size: ${BGN}Default${CL}" + echo -e "${GATEWAY}${BOLD}${DGN}Start VM when completed: ${BGN}yes${CL}" + echo -e "${CREATING}${BOLD}${DGN}Creating a Ubuntu 24.04 VM using the above default settings${CL}" } function advanced_settings() { @@ -167,7 +192,7 @@ function advanced_settings() { sleep 2 continue fi - echo -e "${DGN}Virtual Machine ID: ${BGN}$VMID${CL}" + echo -e "${CONTAINERID}${BOLD}${DGN}Virtual Machine ID: ${BGN}$VMID${CL}" break else exit-script @@ -179,27 +204,42 @@ function advanced_settings() { "q35" "Machine q35" OFF \ 3>&1 1>&2 2>&3); then if [ $MACH = q35 ]; then - echo -e "${DGN}Using Machine Type: ${BGN}$MACH${CL}" + echo -e "${CONTAINERTYPE}${BOLD}${DGN}Machine Type: ${BGN}$MACH${CL}" FORMAT="" MACHINE=" -machine q35" else - echo -e "${DGN}Using Machine Type: ${BGN}$MACH${CL}" + echo -e "${CONTAINERTYPE}${BOLD}${DGN}Machine Type: ${BGN}$MACH${CL}" FORMAT=",efitype=4m" MACHINE="" fi else exit-script fi - + + if DISK_SIZE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set Disk Size in GiB (e.g., 10, 20)" 8 58 "$DISK_SIZE" --title "DISK SIZE" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then + DISK_SIZE=$(echo "$DISK_SIZE" | tr -d ' ') + if [[ "$DISK_SIZE" =~ ^[0-9]+$ ]]; then + DISK_SIZE="${DISK_SIZE}G" + echo -e "${DISKSIZE}${BOLD}${DGN}Disk Size: ${BGN}$DISK_SIZE${CL}" + elif [[ "$DISK_SIZE" =~ ^[0-9]+G$ ]]; then + echo -e "${DISKSIZE}${BOLD}${DGN}Disk Size: ${BGN}$DISK_SIZE${CL}" + else + echo -e "${DISKSIZE}${BOLD}${RD}Invalid Disk Size. Please use a number (e.g., 10 or 10G).${CL}" + exit-script + fi + else + exit-script + fi + if DISK_CACHE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "DISK CACHE" --radiolist "Choose" --cancel-button Exit-Script 10 58 2 \ "0" "None (Default)" ON \ "1" "Write Through" OFF \ 3>&1 1>&2 2>&3); then if [ $DISK_CACHE = "1" ]; then - echo -e "${DGN}Using Disk Cache: ${BGN}Write Through${CL}" + echo -e "${DISKSIZE}${BOLD}${DGN}Disk Cache: ${BGN}Write Through${CL}" DISK_CACHE="cache=writethrough," else - echo -e "${DGN}Using Disk Cache: ${BGN}None${CL}" + echo -e "${DISKSIZE}${BOLD}${DGN}Disk Cache: ${BGN}None${CL}" DISK_CACHE="" fi else @@ -209,10 +249,10 @@ function advanced_settings() { if VM_NAME=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set Hostname" 8 58 ubuntu --title "HOSTNAME" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then if [ -z $VM_NAME ]; then HN="ubuntu" - echo -e "${DGN}Using Hostname: ${BGN}$HN${CL}" + echo -e "${HOSTNAME}${BOLD}${DGN}Hostname: ${BGN}$HN${CL}" else HN=$(echo ${VM_NAME,,} | tr -d ' ') - echo -e "${DGN}Using Hostname: ${BGN}$HN${CL}" + echo -e "${HOSTNAME}${BOLD}${DGN}Hostname: ${BGN}$HN${CL}" fi else exit-script @@ -223,10 +263,10 @@ function advanced_settings() { "1" "Host" OFF \ 3>&1 1>&2 2>&3); then if [ $CPU_TYPE1 = "1" ]; then - echo -e "${DGN}Using CPU Model: ${BGN}Host${CL}" + echo -e "${OS}${BOLD}${DGN}CPU Model: ${BGN}Host${CL}" CPU_TYPE=" -cpu host" else - echo -e "${DGN}Using CPU Model: ${BGN}KVM64${CL}" + echo -e "${OS}${BOLD}${DGN}CPU Model: ${BGN}KVM64${CL}" CPU_TYPE="" fi else @@ -236,9 +276,9 @@ function advanced_settings() { if CORE_COUNT=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Allocate CPU Cores" 8 58 2 --title "CORE COUNT" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then if [ -z $CORE_COUNT ]; then CORE_COUNT="2" - echo -e "${DGN}Allocated Cores: ${BGN}$CORE_COUNT${CL}" + echo -e "${CPUCORE}${BOLD}${DGN}CPU Cores: ${BGN}$CORE_COUNT${CL}" else - echo -e "${DGN}Allocated Cores: ${BGN}$CORE_COUNT${CL}" + echo -e "${CPUCORE}${BOLD}${DGN}CPU Cores: ${BGN}$CORE_COUNT${CL}" fi else exit-script @@ -247,9 +287,9 @@ function advanced_settings() { if RAM_SIZE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Allocate RAM in MiB" 8 58 2048 --title "RAM" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then if [ -z $RAM_SIZE ]; then RAM_SIZE="2048" - echo -e "${DGN}Allocated RAM: ${BGN}$RAM_SIZE${CL}" + echo -e "${RAMSIZE}${BOLD}${DGN}RAM Size: ${BGN}$RAM_SIZE${CL}" else - echo -e "${DGN}Allocated RAM: ${BGN}$RAM_SIZE${CL}" + echo -e "${RAMSIZE}${BOLD}${DGN}RAM Size: ${BGN}$RAM_SIZE${CL}" fi else exit-script @@ -258,9 +298,9 @@ function advanced_settings() { if BRG=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set a Bridge" 8 58 vmbr0 --title "BRIDGE" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then if [ -z $BRG ]; then BRG="vmbr0" - echo -e "${DGN}Using Bridge: ${BGN}$BRG${CL}" + echo -e "${BRIDGE}${BOLD}${DGN}Bridge: ${BGN}$BRG${CL}" else - echo -e "${DGN}Using Bridge: ${BGN}$BRG${CL}" + echo -e "${BRIDGE}${BOLD}${DGN}Bridge: ${BGN}$BRG${CL}" fi else exit-script @@ -269,10 +309,10 @@ function advanced_settings() { if MAC1=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set a MAC Address" 8 58 $GEN_MAC --title "MAC ADDRESS" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then if [ -z $MAC1 ]; then MAC="$GEN_MAC" - echo -e "${DGN}Using MAC Address: ${BGN}$MAC${CL}" + echo -e "${MACADDRESS}${BOLD}${DGN}MAC Address: ${BGN}$MAC${CL}" else MAC="$MAC1" - echo -e "${DGN}Using MAC Address: ${BGN}$MAC1${CL}" + echo -e "${MACADDRESS}${BOLD}${DGN}MAC Address: ${BGN}$MAC1${CL}" fi else exit-script @@ -282,10 +322,10 @@ function advanced_settings() { if [ -z $VLAN1 ]; then VLAN1="Default" VLAN="" - echo -e "${DGN}Using Vlan: ${BGN}$VLAN1${CL}" + echo -e "${VLANTAG}${BOLD}${DGN}VLAN: ${BGN}$VLAN1${CL}" else VLAN=",tag=$VLAN1" - echo -e "${DGN}Using Vlan: ${BGN}$VLAN1${CL}" + echo -e "${VLANTAG}${BOLD}${DGN}VLAN: ${BGN}$VLAN1${CL}" fi else exit-script @@ -295,20 +335,28 @@ function advanced_settings() { if [ -z $MTU1 ]; then MTU1="Default" MTU="" - echo -e "${DGN}Using Interface MTU Size: ${BGN}$MTU1${CL}" + echo -e "${DEFAULT}${BOLD}${DGN}Interface MTU Size: ${BGN}$MTU1${CL}" else MTU=",mtu=$MTU1" - echo -e "${DGN}Using Interface MTU Size: ${BGN}$MTU1${CL}" + echo -e "${DEFAULT}${BOLD}${DGN}Interface MTU Size: ${BGN}$MTU1${CL}" fi else exit-script fi - if (whiptail --backtitle "Proxmox VE Helper Scripts" --title "ADVANCED SETTINGS COMPLETE" --yesno "Ready to create an Ubuntu 24.04 VM?" --no-button Do-Over 10 58); then - echo -e "${RD}Creating an Ubuntu 24.04 VM using the above advanced settings${CL}" + if (whiptail --backtitle "Proxmox VE Helper Scripts" --title "START VIRTUAL MACHINE" --yesno "Start VM when completed?" 10 58); then + echo -e "${GATEWAY}${BOLD}${DGN}Start VM when completed: ${BGN}yes${CL}" + START_VM="yes" + else + echo -e "${GATEWAY}${BOLD}${DGN}Start VM when completed: ${BGN}no${CL}" + START_VM="no" + fi + + if (whiptail --backtitle "Proxmox VE Helper Scripts" --title "ADVANCED SETTINGS COMPLETE" --yesno "Ready to create a Ubuntu 24.04 VM?" --no-button Do-Over 10 58); then + echo -e "${CREATING}${BOLD}${DGN}Creating a Ubuntu 24.04 VM using the above advanced settings${CL}" else header_info - echo -e "${RD}Using Advanced Settings${CL}" + echo -e "${ADVANCED}${BOLD}${RD}Using Advanced Settings${CL}" advanced_settings fi } @@ -316,15 +364,14 @@ function advanced_settings() { function start_script() { if (whiptail --backtitle "Proxmox VE Helper Scripts" --title "SETTINGS" --yesno "Use Default Settings?" --no-button Advanced 10 58); then header_info - echo -e "${BL}Using Default Settings${CL}" + echo -e "${DEFAULT}${BOLD}${BL}Using Default Settings${CL}" default_settings else header_info - echo -e "${RD}Using Advanced Settings${CL}" + echo -e "${ADVANCED}${BOLD}${RD}Using Advanced Settings${CL}" advanced_settings fi } - check_root arch_check pve_check @@ -392,22 +439,61 @@ done msg_info "Creating a Ubuntu 24.04 VM" qm create $VMID -agent 1${MACHINE} -tablet 0 -localtime 1 -bios ovmf${CPU_TYPE} -cores $CORE_COUNT -memory $RAM_SIZE \ - -name $HN -tags community-script -net0 virtio,bridge=$BRG,macaddr=$MAC$VLAN$MTU -onboot 1 -ostype l26 -scsihw virtio-scsi-pci + -name $HN -tags proxmox-helper-scripts -net0 virtio,bridge=$BRG,macaddr=$MAC$VLAN$MTU -onboot 1 -ostype l26 -scsihw virtio-scsi-pci pvesm alloc $STORAGE $VMID $DISK0 4M 1>&/dev/null qm importdisk $VMID ${FILE} $STORAGE ${DISK_IMPORT:-} 1>&/dev/null qm set $VMID \ -efidisk0 ${DISK0_REF}${FORMAT} \ - -scsi0 ${DISK1_REF},${DISK_CACHE}${THIN}size=2G \ + -scsi0 ${DISK1_REF},${DISK_CACHE}${THIN}size=${DISK_SIZE} \ -ide2 ${STORAGE}:cloudinit \ -boot order=scsi0 \ - -serial0 socket \ - -description "
+ -serial0 socket >/dev/null +DESCRIPTION=$( + cat < + + Logo + - # Ubuntu 24.04 VM +

ubuntu VM

+ +

+ + spend Coffee + +

+ + + + GitHub + + + + Discussions + + + + Issues + +
+EOF +) +qm set "$VMID" -description "$DESCRIPTION" >/dev/null +if [ -n "$DISK_SIZE" ]; then + msg_info "Resizing disk to $DISK_SIZE GB" + qm resize $VMID scsi0 ${DISK_SIZE} >/dev/null +else + msg_info "Using default disk size of $DEFAULT_DISK_SIZE GB" + qm resize $VMID scsi0 ${DEFAULT_DISK_SIZE} >/dev/null +fi - -
" >/dev/null msg_ok "Created a Ubuntu 24.04 VM ${CL}${BL}(${HN})" +if [ "$START_VM" == "yes" ]; then + msg_info "Starting Ubuntu 24.04 VM" + qm start $VMID + msg_ok "Started Ubuntu 24.04 VM" +fi + msg_ok "Completed Successfully!\n" echo -e "Setup Cloud-Init before starting \n -More info at https://github.com/tteck/Proxmox/discussions/2072 \n" +More info at https://github.com/community-scripts/ProxmoxVE/discussions/272 \n" From 928eabc20220c7b7edac48353dba12fd1d0434d2 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Fri, 24 Jan 2025 12:02:07 +0100 Subject: [PATCH 161/284] Feature: Ubuntu 22.04 VM > Redesign | Optional HDD-Size Prompt (#1712) * Update ubuntu2204-vm.sh * set space to 5g * increase space * add cifs support --- json/ubuntu2204-vm.json | 2 +- vm/ubuntu2204-vm.sh | 207 +++++++++++++++++++++++++++------------- 2 files changed, 140 insertions(+), 69 deletions(-) diff --git a/json/ubuntu2204-vm.json b/json/ubuntu2204-vm.json index de4d1550e..d3a347761 100644 --- a/json/ubuntu2204-vm.json +++ b/json/ubuntu2204-vm.json @@ -20,7 +20,7 @@ "resources": { "cpu": 2, "ram": 2048, - "hdd": 2, + "hdd": 5, "os": null, "version": null } diff --git a/vm/ubuntu2204-vm.sh b/vm/ubuntu2204-vm.sh index f20ca100e..501321973 100644 --- a/vm/ubuntu2204-vm.sh +++ b/vm/ubuntu2204-vm.sh @@ -1,9 +1,8 @@ #!/usr/bin/env bash -# Copyright (c) 2021-2025 tteck -# Author: tteck (tteckster) -# License: MIT -# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE +# Copyright (c) 2021-2025 community-scripts ORG +# Author: MickLesk (CanbiZ) +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE function header_info { clear @@ -23,16 +22,36 @@ NEXTID=$(pvesh get /cluster/nextid) YW=$(echo "\033[33m") BL=$(echo "\033[36m") -HA=$(echo "\033[1;34m") RD=$(echo "\033[01;31m") BGN=$(echo "\033[4;92m") GN=$(echo "\033[1;92m") DGN=$(echo "\033[32m") CL=$(echo "\033[m") + +CL=$(echo "\033[m") +BOLD=$(echo "\033[1m") BFR="\\r\\033[K" -HOLD="-" -CM="${GN}βœ“${CL}" -CROSS="${RD}βœ—${CL}" +HOLD=" " +TAB=" " + +CM="${TAB}βœ”οΈ${TAB}${CL}" +CROSS="${TAB}βœ–οΈ${TAB}${CL}" +INFO="${TAB}πŸ’‘${TAB}${CL}" +OS="${TAB}πŸ–₯️${TAB}${CL}" +CONTAINERTYPE="${TAB}πŸ“¦${TAB}${CL}" +DISKSIZE="${TAB}πŸ’Ύ${TAB}${CL}" +CPUCORE="${TAB}🧠${TAB}${CL}" +RAMSIZE="${TAB}πŸ› οΈ${TAB}${CL}" +CONTAINERID="${TAB}πŸ†”${TAB}${CL}" +HOSTNAME="${TAB}🏠${TAB}${CL}" +BRIDGE="${TAB}πŸŒ‰${TAB}${CL}" +GATEWAY="${TAB}🌐${TAB}${CL}" +DEFAULT="${TAB}βš™οΈ${TAB}${CL}" +MACADDRESS="${TAB}πŸ”—${TAB}${CL}" +VLANTAG="${TAB}🏷️${TAB}${CL}" +CREATING="${TAB}πŸš€${TAB}${CL}" +ADVANCED="${TAB}🧩${TAB}${CL}" + THIN="discard=on,ssd=1," set -e trap 'error_handler $LINENO "$BASH_COMMAND"' ERR @@ -63,22 +82,22 @@ pushd $TEMP_DIR >/dev/null if whiptail --backtitle "Proxmox VE Helper Scripts" --title "Ubuntu 22.04 VM" --yesno "This will create a New Ubuntu 22.04 VM. Proceed?" 10 58; then : else - header_info && echo -e "⚠ User exited script \n" && exit + header_info && echo -e "${CROSS}${RD}User exited script${CL}\n" && exit fi function msg_info() { local msg="$1" - echo -ne " ${HOLD} ${YW}${msg}..." + echo -ne "${TAB}${YW}${HOLD}${msg}${HOLD}" } function msg_ok() { local msg="$1" - echo -e "${BFR} ${CM} ${GN}${msg}${CL}" + echo -e "${BFR}${CM}${GN}${msg}${CL}" } function msg_error() { local msg="$1" - echo -e "${BFR} ${CROSS} ${RD}${msg}${CL}" + echo -e "${BFR}${CROSS}${RD}${msg}${CL}" } function check_root() { @@ -93,17 +112,18 @@ function check_root() { function pve_check() { if ! pveversion | grep -Eq "pve-manager/8.[1-3]"; then - msg_error "This version of Proxmox Virtual Environment is not supported" + msg_error "${CROSS}${RD}This version of Proxmox Virtual Environment is not supported" echo -e "Requires Proxmox Virtual Environment Version 8.1 or later." echo -e "Exiting..." sleep 2 exit -fi + fi } function arch_check() { if [ "$(dpkg --print-architecture)" != "amd64" ]; then - msg_error "This script will not work with PiMox! \n" + echo -e "\n ${INFO}${YWB}This script will not work with PiMox! \n" + echo -e "\n ${YWB}Visit https://github.com/asylumexp/Proxmox for ARM64 support. \n" echo -e "Exiting..." sleep 2 exit @@ -125,7 +145,7 @@ function ssh_check() { function exit-script() { clear - echo -e "⚠ User exited script \n" + echo -e "\n${CROSS}${RD}User exited script${CL}\n" exit } @@ -133,6 +153,7 @@ function default_settings() { VMID="$NEXTID" FORMAT=",efitype=4m" MACHINE="" + DISK_SIZE="5G" DISK_CACHE="" HN="ubuntu" CPU_TYPE="" @@ -142,20 +163,21 @@ function default_settings() { MAC="$GEN_MAC" VLAN="" MTU="" - START_VM="no" - echo -e "${DGN}Using Virtual Machine ID: ${BGN}${VMID}${CL}" - echo -e "${DGN}Using Machine Type: ${BGN}i440fx${CL}" - echo -e "${DGN}Using Disk Cache: ${BGN}None${CL}" - echo -e "${DGN}Using Hostname: ${BGN}${HN}${CL}" - echo -e "${DGN}Using CPU Model: ${BGN}KVM64${CL}" - echo -e "${DGN}Allocated Cores: ${BGN}${CORE_COUNT}${CL}" - echo -e "${DGN}Allocated RAM: ${BGN}${RAM_SIZE}${CL}" - echo -e "${DGN}Using Bridge: ${BGN}${BRG}${CL}" - echo -e "${DGN}Using MAC Address: ${BGN}${MAC}${CL}" - echo -e "${DGN}Using VLAN: ${BGN}Default${CL}" - echo -e "${DGN}Using Interface MTU Size: ${BGN}Default${CL}" - echo -e "${DGN}Start VM when completed: ${BGN}no${CL}" - echo -e "${BL}Creating an Ubuntu 22.04 VM using the above default settings${CL}" + START_VM="yes" + echo -e "${CONTAINERID}${BOLD}${DGN}Virtual Machine ID: ${BGN}${VMID}${CL}" + echo -e "${CONTAINERTYPE}${BOLD}${DGN}Machine Type: ${BGN}i440fx${CL}" + echo -e "${DISKSIZE}${BOLD}${DGN}Disk Size: ${BGN}${DISK_SIZE}${CL}" + echo -e "${DISKSIZE}${BOLD}${DGN}Disk Cache: ${BGN}None${CL}" + echo -e "${HOSTNAME}${BOLD}${DGN}Hostname: ${BGN}${HN}${CL}" + echo -e "${OS}${BOLD}${DGN}CPU Model: ${BGN}KVM64${CL}" + echo -e "${CPUCORE}${BOLD}${DGN}CPU Cores: ${BGN}${CORE_COUNT}${CL}" + echo -e "${RAMSIZE}${BOLD}${DGN}RAM Size: ${BGN}${RAM_SIZE}${CL}" + echo -e "${BRIDGE}${BOLD}${DGN}Bridge: ${BGN}${BRG}${CL}" + echo -e "${MACADDRESS}${BOLD}${DGN}MAC Address: ${BGN}${MAC}${CL}" + echo -e "${VLANTAG}${BOLD}${DGN}VLAN: ${BGN}Default${CL}" + echo -e "${DEFAULT}${BOLD}${DGN}Interface MTU Size: ${BGN}Default${CL}" + echo -e "${GATEWAY}${BOLD}${DGN}Start VM when completed: ${BGN}yes${CL}" + echo -e "${CREATING}${BOLD}${DGN}Creating a Ubuntu 22.04 VM using the above default settings${CL}" } function advanced_settings() { @@ -169,7 +191,7 @@ function advanced_settings() { sleep 2 continue fi - echo -e "${DGN}Virtual Machine ID: ${BGN}$VMID${CL}" + echo -e "${CONTAINERID}${BOLD}${DGN}Virtual Machine ID: ${BGN}$VMID${CL}" break else exit-script @@ -181,27 +203,42 @@ function advanced_settings() { "q35" "Machine q35" OFF \ 3>&1 1>&2 2>&3); then if [ $MACH = q35 ]; then - echo -e "${DGN}Using Machine Type: ${BGN}$MACH${CL}" + echo -e "${CONTAINERTYPE}${BOLD}${DGN}Machine Type: ${BGN}$MACH${CL}" FORMAT="" MACHINE=" -machine q35" else - echo -e "${DGN}Using Machine Type: ${BGN}$MACH${CL}" + echo -e "${CONTAINERTYPE}${BOLD}${DGN}Machine Type: ${BGN}$MACH${CL}" FORMAT=",efitype=4m" MACHINE="" fi else exit-script fi - + + if DISK_SIZE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set Disk Size in GiB (e.g., 10, 20)" 8 58 "$DISK_SIZE" --title "DISK SIZE" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then + DISK_SIZE=$(echo "$DISK_SIZE" | tr -d ' ') + if [[ "$DISK_SIZE" =~ ^[0-9]+$ ]]; then + DISK_SIZE="${DISK_SIZE}G" + echo -e "${DISKSIZE}${BOLD}${DGN}Disk Size: ${BGN}$DISK_SIZE${CL}" + elif [[ "$DISK_SIZE" =~ ^[0-9]+G$ ]]; then + echo -e "${DISKSIZE}${BOLD}${DGN}Disk Size: ${BGN}$DISK_SIZE${CL}" + else + echo -e "${DISKSIZE}${BOLD}${RD}Invalid Disk Size. Please use a number (e.g., 10 or 10G).${CL}" + exit-script + fi + else + exit-script + fi + if DISK_CACHE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "DISK CACHE" --radiolist "Choose" --cancel-button Exit-Script 10 58 2 \ "0" "None (Default)" ON \ "1" "Write Through" OFF \ 3>&1 1>&2 2>&3); then if [ $DISK_CACHE = "1" ]; then - echo -e "${DGN}Using Disk Cache: ${BGN}Write Through${CL}" + echo -e "${DISKSIZE}${BOLD}${DGN}Disk Cache: ${BGN}Write Through${CL}" DISK_CACHE="cache=writethrough," else - echo -e "${DGN}Using Disk Cache: ${BGN}None${CL}" + echo -e "${DISKSIZE}${BOLD}${DGN}Disk Cache: ${BGN}None${CL}" DISK_CACHE="" fi else @@ -211,10 +248,10 @@ function advanced_settings() { if VM_NAME=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set Hostname" 8 58 ubuntu --title "HOSTNAME" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then if [ -z $VM_NAME ]; then HN="ubuntu" - echo -e "${DGN}Using Hostname: ${BGN}$HN${CL}" + echo -e "${HOSTNAME}${BOLD}${DGN}Hostname: ${BGN}$HN${CL}" else HN=$(echo ${VM_NAME,,} | tr -d ' ') - echo -e "${DGN}Using Hostname: ${BGN}$HN${CL}" + echo -e "${HOSTNAME}${BOLD}${DGN}Hostname: ${BGN}$HN${CL}" fi else exit-script @@ -225,10 +262,10 @@ function advanced_settings() { "1" "Host" OFF \ 3>&1 1>&2 2>&3); then if [ $CPU_TYPE1 = "1" ]; then - echo -e "${DGN}Using CPU Model: ${BGN}Host${CL}" + echo -e "${OS}${BOLD}${DGN}CPU Model: ${BGN}Host${CL}" CPU_TYPE=" -cpu host" else - echo -e "${DGN}Using CPU Model: ${BGN}KVM64${CL}" + echo -e "${OS}${BOLD}${DGN}CPU Model: ${BGN}KVM64${CL}" CPU_TYPE="" fi else @@ -238,9 +275,9 @@ function advanced_settings() { if CORE_COUNT=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Allocate CPU Cores" 8 58 2 --title "CORE COUNT" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then if [ -z $CORE_COUNT ]; then CORE_COUNT="2" - echo -e "${DGN}Allocated Cores: ${BGN}$CORE_COUNT${CL}" + echo -e "${CPUCORE}${BOLD}${DGN}CPU Cores: ${BGN}$CORE_COUNT${CL}" else - echo -e "${DGN}Allocated Cores: ${BGN}$CORE_COUNT${CL}" + echo -e "${CPUCORE}${BOLD}${DGN}CPU Cores: ${BGN}$CORE_COUNT${CL}" fi else exit-script @@ -249,9 +286,9 @@ function advanced_settings() { if RAM_SIZE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Allocate RAM in MiB" 8 58 2048 --title "RAM" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then if [ -z $RAM_SIZE ]; then RAM_SIZE="2048" - echo -e "${DGN}Allocated RAM: ${BGN}$RAM_SIZE${CL}" + echo -e "${RAMSIZE}${BOLD}${DGN}RAM Size: ${BGN}$RAM_SIZE${CL}" else - echo -e "${DGN}Allocated RAM: ${BGN}$RAM_SIZE${CL}" + echo -e "${RAMSIZE}${BOLD}${DGN}RAM Size: ${BGN}$RAM_SIZE${CL}" fi else exit-script @@ -260,9 +297,9 @@ function advanced_settings() { if BRG=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set a Bridge" 8 58 vmbr0 --title "BRIDGE" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then if [ -z $BRG ]; then BRG="vmbr0" - echo -e "${DGN}Using Bridge: ${BGN}$BRG${CL}" + echo -e "${BRIDGE}${BOLD}${DGN}Bridge: ${BGN}$BRG${CL}" else - echo -e "${DGN}Using Bridge: ${BGN}$BRG${CL}" + echo -e "${BRIDGE}${BOLD}${DGN}Bridge: ${BGN}$BRG${CL}" fi else exit-script @@ -271,10 +308,10 @@ function advanced_settings() { if MAC1=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set a MAC Address" 8 58 $GEN_MAC --title "MAC ADDRESS" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then if [ -z $MAC1 ]; then MAC="$GEN_MAC" - echo -e "${DGN}Using MAC Address: ${BGN}$MAC${CL}" + echo -e "${MACADDRESS}${BOLD}${DGN}MAC Address: ${BGN}$MAC${CL}" else MAC="$MAC1" - echo -e "${DGN}Using MAC Address: ${BGN}$MAC1${CL}" + echo -e "${MACADDRESS}${BOLD}${DGN}MAC Address: ${BGN}$MAC1${CL}" fi else exit-script @@ -284,10 +321,10 @@ function advanced_settings() { if [ -z $VLAN1 ]; then VLAN1="Default" VLAN="" - echo -e "${DGN}Using Vlan: ${BGN}$VLAN1${CL}" + echo -e "${VLANTAG}${BOLD}${DGN}VLAN: ${BGN}$VLAN1${CL}" else VLAN=",tag=$VLAN1" - echo -e "${DGN}Using Vlan: ${BGN}$VLAN1${CL}" + echo -e "${VLANTAG}${BOLD}${DGN}VLAN: ${BGN}$VLAN1${CL}" fi else exit-script @@ -297,28 +334,28 @@ function advanced_settings() { if [ -z $MTU1 ]; then MTU1="Default" MTU="" - echo -e "${DGN}Using Interface MTU Size: ${BGN}$MTU1${CL}" + echo -e "${DEFAULT}${BOLD}${DGN}Interface MTU Size: ${BGN}$MTU1${CL}" else MTU=",mtu=$MTU1" - echo -e "${DGN}Using Interface MTU Size: ${BGN}$MTU1${CL}" + echo -e "${DEFAULT}${BOLD}${DGN}Interface MTU Size: ${BGN}$MTU1${CL}" fi else exit-script fi if (whiptail --backtitle "Proxmox VE Helper Scripts" --title "START VIRTUAL MACHINE" --yesno "Start VM when completed?" 10 58); then - echo -e "${DGN}Start VM when completed: ${BGN}yes${CL}" + echo -e "${GATEWAY}${BOLD}${DGN}Start VM when completed: ${BGN}yes${CL}" START_VM="yes" else - echo -e "${DGN}Start VM when completed: ${BGN}no${CL}" + echo -e "${GATEWAY}${BOLD}${DGN}Start VM when completed: ${BGN}no${CL}" START_VM="no" fi - if (whiptail --backtitle "Proxmox VE Helper Scripts" --title "ADVANCED SETTINGS COMPLETE" --yesno "Ready to create an Ubuntu 22.04 VM?" --no-button Do-Over 10 58); then - echo -e "${RD}Creating an Ubuntu 22.04 VM using the above advanced settings${CL}" + if (whiptail --backtitle "Proxmox VE Helper Scripts" --title "ADVANCED SETTINGS COMPLETE" --yesno "Ready to create a Ubuntu 22.04 VM?" --no-button Do-Over 10 58); then + echo -e "${CREATING}${BOLD}${DGN}Creating a Ubuntu 22.04 VM using the above advanced settings${CL}" else header_info - echo -e "${RD}Using Advanced Settings${CL}" + echo -e "${ADVANCED}${BOLD}${RD}Using Advanced Settings${CL}" advanced_settings fi } @@ -326,11 +363,11 @@ function advanced_settings() { function start_script() { if (whiptail --backtitle "Proxmox VE Helper Scripts" --title "SETTINGS" --yesno "Use Default Settings?" --no-button Advanced 10 58); then header_info - echo -e "${BL}Using Default Settings${CL}" + echo -e "${DEFAULT}${BOLD}${BL}Using Default Settings${CL}" default_settings else header_info - echo -e "${RD}Using Advanced Settings${CL}" + echo -e "${ADVANCED}${BOLD}${RD}Using Advanced Settings${CL}" advanced_settings fi } @@ -380,7 +417,7 @@ msg_ok "Downloaded ${CL}${BL}${FILE}${CL}" STORAGE_TYPE=$(pvesm status -storage $STORAGE | awk 'NR>1 {print $2}') case $STORAGE_TYPE in -nfs | dir) +nfs | dir | cifs) DISK_EXT=".qcow2" DISK_REF="$VMID/" DISK_IMPORT="-format qcow2" @@ -402,27 +439,61 @@ done msg_info "Creating a Ubuntu 22.04 VM" qm create $VMID -agent 1${MACHINE} -tablet 0 -localtime 1 -bios ovmf${CPU_TYPE} -cores $CORE_COUNT -memory $RAM_SIZE \ - -name $HN -tags community-script -net0 virtio,bridge=$BRG,macaddr=$MAC$VLAN$MTU -onboot 1 -ostype l26 -scsihw virtio-scsi-pci + -name $HN -tags proxmox-helper-scripts -net0 virtio,bridge=$BRG,macaddr=$MAC$VLAN$MTU -onboot 1 -ostype l26 -scsihw virtio-scsi-pci pvesm alloc $STORAGE $VMID $DISK0 4M 1>&/dev/null qm importdisk $VMID ${FILE} $STORAGE ${DISK_IMPORT:-} 1>&/dev/null qm set $VMID \ -efidisk0 ${DISK0_REF}${FORMAT} \ - -scsi0 ${DISK1_REF},${DISK_CACHE}${THIN}size=2G \ + -scsi0 ${DISK1_REF},${DISK_CACHE}${THIN}size=${DISK_SIZE} \ -ide2 ${STORAGE}:cloudinit \ -boot order=scsi0 \ - -serial0 socket \ - -description "
+ -serial0 socket >/dev/null +DESCRIPTION=$( + cat < + + Logo + - # Ubuntu 22.04 VM +

ubuntu VM

+ +

+ + spend Coffee + +

+ + + + GitHub + + + + Discussions + + + + Issues + +
+EOF +) +qm set "$VMID" -description "$DESCRIPTION" >/dev/null +if [ -n "$DISK_SIZE" ]; then + msg_info "Resizing disk to $DISK_SIZE GB" + qm resize $VMID scsi0 ${DISK_SIZE} >/dev/null +else + msg_info "Using default disk size of $DEFAULT_DISK_SIZE GB" + qm resize $VMID scsi0 ${DEFAULT_DISK_SIZE} >/dev/null +fi - -
" >/dev/null msg_ok "Created a Ubuntu 22.04 VM ${CL}${BL}(${HN})" if [ "$START_VM" == "yes" ]; then msg_info "Starting Ubuntu 22.04 VM" qm start $VMID msg_ok "Started Ubuntu 22.04 VM" fi + msg_ok "Completed Successfully!\n" echo -e "Setup Cloud-Init before starting \n -More info at https://github.com/tteck/Proxmox/discussions/2072 \n" +More info at https://github.com/community-scripts/ProxmoxVE/discussions/272 \n" From 607318b1977ea9c8ea9eb69aa91376773dabaff7 Mon Sep 17 00:00:00 2001 From: "community-scripts-pr-app[bot]" <189241966+community-scripts-pr-app[bot]@users.noreply.github.com> Date: Fri, 24 Jan 2025 12:03:52 +0100 Subject: [PATCH 162/284] Update CHANGELOG.md (#1713) Co-authored-by: github-actions[bot] --- CHANGELOG.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index aaba48e6c..a3d6045ab 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,19 @@ All LXC instances created using this repository come pre-installed with Midnight Do not break established syntax in this file, as it is automatically updated by a Github Workflow +## 2025-01-24 + +### Changed + +### ✨ New Scripts + +- New Script: Ubuntu 24.10 VM [@MickLesk](https://github.com/MickLesk) ([#1711](https://github.com/community-scripts/ProxmoxVE/pull/1711)) + +### πŸš€ Updated Scripts + +- Feature: Ubuntu 22.04 VM > Redesign | Optional HDD-Size Prompt [@MickLesk](https://github.com/MickLesk) ([#1712](https://github.com/community-scripts/ProxmoxVE/pull/1712)) +- Feature: Ubuntu 24.04 VM > Redesign | Optional HDD-Size Prompt | cifs support [@MickLesk](https://github.com/MickLesk) ([#1714](https://github.com/community-scripts/ProxmoxVE/pull/1714)) + ## 2025-01-23 ### Changed From f78cb0319ec06461dd97a6465e524dee5e35e524 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Fri, 24 Jan 2025 13:22:12 +0100 Subject: [PATCH 163/284] Feature: Filebrowser Script > Redesign | Update Logic | Remove Logic (#1716) * Update filebrowser.sh * rm comments --- misc/filebrowser.sh | 138 ++++++++++++++++++++++++-------------------- 1 file changed, 74 insertions(+), 64 deletions(-) diff --git a/misc/filebrowser.sh b/misc/filebrowser.sh index 02a4bb4cb..a9ea1186b 100644 --- a/misc/filebrowser.sh +++ b/misc/filebrowser.sh @@ -1,9 +1,8 @@ #!/usr/bin/env bash -# Copyright (c) 2021-2025 tteck -# Author: tteck (tteckster) -# License: MIT -# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE +# Copyright (c) 2021-2025 community-scripts ORG +# Author: tteck (tteckster) | Co-Author: MickLesk +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE function header_info { clear @@ -11,79 +10,88 @@ function header_info { _______ __ ____ / ____(_) /__ / __ )_________ _ __________ _____ / /_ / / / _ \/ __ / ___/ __ \ | /| / / ___/ _ \/ ___/ - / __/ / / / __/ /_/ / / / /_/ / |/ |/ (__ ) __/ / -/_/ /_/_/\___/_____/_/ \____/|__/|__/____/\___/_/ - + / __/ / / / __/ /_/ / / / /_/ / |/ |/ (__ ) __/ / +/_/ /_/_/\___/_____/_/ \____/|__/|__/____/\___/_/ EOF } -IP=$(hostname -I | awk '{print $1}') YW=$(echo "\033[33m") -BL=$(echo "\033[36m") -RD=$(echo "\033[01;31m") -BGN=$(echo "\033[4;92m") GN=$(echo "\033[1;92m") -DGN=$(echo "\033[32m") +RD=$(echo "\033[01;31m") +BL=$(echo "\033[36m") CL=$(echo "\033[m") -BFR="\\r\\033[K" -HOLD="-" -CM="${GN}βœ“${CL}" +CM="${GN}βœ”οΈ${CL}" +CROSS="${RD}βœ–οΈ${CL}" +INFO="${BL}ℹ️${CL}" + APP="FileBrowser" -hostname="$(hostname)" -header_info -if [ -f /root/filebrowser.db ]; then - read -r -p "Would you like to uninstall ${APP} on $hostname.? " prompt - if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then - systemctl disable -q --now filebrowser.service - rm -rf /usr/local/bin/filebrowser /root/filebrowser.db /etc/systemd/system/filebrowser.service - echo "$APP Removed" - sleep 2 - clear - exit - else - clear - exit - fi -fi -while true; do - read -p "This will Install ${APP} on $hostname. Proceed(y/n)?" yn - case $yn in - [Yy]*) break ;; - [Nn]*) exit ;; - *) echo "Please answer yes or no." ;; - esac -done +INSTALL_PATH="/usr/local/bin/filebrowser" +SERVICE_PATH="/etc/systemd/system/filebrowser.service" +DB_PATH="/root/filebrowser.db" +IP=$(hostname -I | awk '{print $1}') header_info + function msg_info() { local msg="$1" - echo -ne " ${HOLD} ${YW}${msg}..." + echo -e "${INFO} ${YW}${msg}...${CL}" } function msg_ok() { local msg="$1" - echo -e "${BFR} ${CM} ${GN}${msg}${CL}" + echo -e "${CM} ${GN}${msg}${CL}" } -read -r -p "Would you like to use No Authentication? " prompt -msg_info "Installing ${APP}" -apt-get install -y curl &>/dev/null -RELEASE=$(curl -fsSL https://api.github.com/repos/filebrowser/filebrowser/releases/latest | grep -o '"tag_name": ".*"' | sed 's/"//g' | sed 's/tag_name: //g') -curl -fsSL https://github.com/filebrowser/filebrowser/releases/download/$RELEASE/linux-amd64-filebrowser.tar.gz | tar -xzv -C /usr/local/bin &>/dev/null +function msg_error() { + local msg="$1" + echo -e "${CROSS} ${RD}${msg}${CL}" +} -if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then - filebrowser config init -a '0.0.0.0' &>/dev/null - filebrowser config set -a '0.0.0.0' &>/dev/null - filebrowser config init --auth.method=noauth &>/dev/null - filebrowser config set --auth.method=noauth &>/dev/null - filebrowser users add ID 1 --perm.admin &>/dev/null -else - filebrowser config init -a '0.0.0.0' &>/dev/null - filebrowser config set -a '0.0.0.0' &>/dev/null - filebrowser users add admin helper-scripts.com --perm.admin &>/dev/null +if [ -f "$INSTALL_PATH" ]; then + echo -e "${YW}⚠️ ${APP} is already installed.${CL}" + read -r -p "Would you like to uninstall ${APP}? (y/N): " uninstall_prompt + if [[ "${uninstall_prompt,,}" =~ ^(y|yes)$ ]]; then + msg_info "Uninstalling ${APP}" + systemctl disable -q --now filebrowser.service + rm -f "$INSTALL_PATH" "$DB_PATH" "$SERVICE_PATH" + msg_ok "${APP} has been uninstalled." + exit 0 + fi + + read -r -p "Would you like to update ${APP}? (y/N): " update_prompt + if [[ "${update_prompt,,}" =~ ^(y|yes)$ ]]; then + msg_info "Updating ${APP}" + curl -fsSL https://github.com/filebrowser/filebrowser/releases/latest/download/linux-amd64-filebrowser.tar.gz | tar -xzv -C /usr/local/bin &>/dev/null + msg_ok "Updated ${APP}" + exit 0 + else + echo -e "${YW}⚠️ Update skipped. Exiting.${CL}" + exit 0 + fi fi -msg_ok "Installed ${APP} on $hostname" -msg_info "Creating Service" -cat </etc/systemd/system/filebrowser.service +echo -e "${YW}⚠️ ${APP} is not installed.${CL}" +read -r -p "Would you like to install ${APP}? (y/n): " install_prompt +if [[ "${install_prompt,,}" =~ ^(y|yes)$ ]]; then + msg_info "Installing ${APP}" + apt-get install -y curl &>/dev/null + curl -fsSL https://github.com/filebrowser/filebrowser/releases/latest/download/linux-amd64-filebrowser.tar.gz | tar -xzv -C /usr/local/bin &>/dev/null + msg_ok "Installed ${APP}" + + read -r -p "Would you like to use No Authentication? (y/N): " auth_prompt + if [[ "${auth_prompt,,}" =~ ^(y|yes)$ ]]; then + msg_info "Configuring No Authentication" + filebrowser config init -a '0.0.0.0' &>/dev/null + filebrowser config set -a '0.0.0.0' --auth.method=noauth &>/dev/null + msg_ok "No Authentication configured" + else + msg_info "Setting up default authentication" + filebrowser config init -a '0.0.0.0' &>/dev/null + filebrowser config set -a '0.0.0.0' &>/dev/null + filebrowser users add admin helper-scripts.com --perm.admin &>/dev/null + msg_ok "Default authentication configured (admin:helper-scripts.com)" + fi + + msg_info "Creating service" + cat </etc/systemd/system/filebrowser.service [Unit] Description=Filebrowser After=network-online.target @@ -96,9 +104,11 @@ ExecStart=/usr/local/bin/filebrowser -r / [Install] WantedBy=default.target EOF -systemctl enable -q --now filebrowser.service -msg_ok "Created Service" + systemctl enable -q --now filebrowser.service + msg_ok "Service created successfully" -msg_ok "Completed Successfully!\n" -echo -e "${APP} should be reachable by going to the following URL. - ${BL}http://$IP:8080${CL} \n" + echo -e "${CM} ${GN}${APP} is reachable at: ${BL}http://$IP:8080${CL}" +else + echo -e "${YW}⚠️ Installation skipped. Exiting.${CL}" + exit 0 +fi From 63061ea06f5d6b82aab07594a6574312ef0189cb Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Fri, 24 Jan 2025 13:31:29 +0100 Subject: [PATCH 164/284] Update actualbudget-install.sh --- install/actualbudget-install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/actualbudget-install.sh b/install/actualbudget-install.sh index 82adda21d..35733a572 100644 --- a/install/actualbudget-install.sh +++ b/install/actualbudget-install.sh @@ -54,7 +54,7 @@ PORT=5006 EOF cd /opt/actualbudget $STD yarn install -echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt" +echo "${RELEASE}" >"/opt/actualbudget_version.txt" msg_ok "Installed Actual Budget" msg_info "Creating Service" From c4532f538b87ac6973dde3f22916c542ccd58077 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Fri, 24 Jan 2025 13:32:20 +0100 Subject: [PATCH 165/284] Update actualbudget.sh --- ct/actualbudget.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ct/actualbudget.sh b/ct/actualbudget.sh index 555b1113c..c4bbd861f 100644 --- a/ct/actualbudget.sh +++ b/ct/actualbudget.sh @@ -41,12 +41,13 @@ function update_script() { fi RELEASE=$(curl -s https://api.github.com/repos/actualbudget/actual-server/tags | jq --raw-output '.[0].name') - if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then + if [[ ! -f /opt/actualbudget_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/actualbudget_version.txt)" ]]; then msg_info "Stopping ${APP}" systemctl stop actualbudget msg_ok "${APP} Stopped" msg_info "Updating ${APP} to ${RELEASE}" + cd /tmp wget -q https://codeload.github.com/actualbudget/actual-server/legacy.tar.gz/refs/tags/${RELEASE} -O actual-server.tar.gz tar -xzvf actual-server.tar.gz >/dev/null 2>&1 mv /opt/actualbudget /opt/actualbudget_bak @@ -65,6 +66,7 @@ function update_script() { msg_info "Cleaning Up" rm -rf /opt/actualbudget_bak + rm -rf /tmp/actual-server.tar.gz msg_ok "Cleaned" msg_ok "Updated Successfully" else From f1109388f440bf7219dc9c9de270165b62086e6d Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Fri, 24 Jan 2025 13:33:07 +0100 Subject: [PATCH 166/284] Update actualbudget.sh --- ct/actualbudget.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ct/actualbudget.sh b/ct/actualbudget.sh index c4bbd861f..0b29b08fe 100644 --- a/ct/actualbudget.sh +++ b/ct/actualbudget.sh @@ -57,7 +57,7 @@ function update_script() { mv /opt/actualbudget_bak/server-files /opt/actualbudget/server-files cd /opt/actualbudget yarn install &>/dev/null - echo "${RELEASE}" >/opt/${APP}_version.txt + echo "${RELEASE}" >/opt/actualbudget_version.txt msg_ok "Updated ${APP}" msg_info "Starting ${APP}" From 39ff3486e9042d8be069d76e4d84e8a9b40451bf Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Fri, 24 Jan 2025 13:38:07 +0100 Subject: [PATCH 167/284] Update actualbudget.sh --- ct/actualbudget.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ct/actualbudget.sh b/ct/actualbudget.sh index 0b29b08fe..93e2dc67a 100644 --- a/ct/actualbudget.sh +++ b/ct/actualbudget.sh @@ -40,7 +40,7 @@ function update_script() { echo "Installed jq..." fi - RELEASE=$(curl -s https://api.github.com/repos/actualbudget/actual-server/tags | jq --raw-output '.[0].name') + RELEASE=$(curl -s https://api.github.com/repos/actualbudget/actual/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') if [[ ! -f /opt/actualbudget_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/actualbudget_version.txt)" ]]; then msg_info "Stopping ${APP}" systemctl stop actualbudget @@ -49,10 +49,10 @@ function update_script() { msg_info "Updating ${APP} to ${RELEASE}" cd /tmp wget -q https://codeload.github.com/actualbudget/actual-server/legacy.tar.gz/refs/tags/${RELEASE} -O actual-server.tar.gz - tar -xzvf actual-server.tar.gz >/dev/null 2>&1 + tar -xzf actual-server.tar.gz >/dev/null 2>&1 mv /opt/actualbudget /opt/actualbudget_bak mkdir -p /opt/actualbudget/ - mv actual-server-* /opt/actualbudget + mv *ctual-server-* /opt/actualbudget mv /opt/actualbudget_bak/.env /opt/actualbudget mv /opt/actualbudget_bak/server-files /opt/actualbudget/server-files cd /opt/actualbudget From ebb7f73e8f9d6023fd5430e091ea845c49d5817b Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Fri, 24 Jan 2025 13:38:31 +0100 Subject: [PATCH 168/284] Update actualbudget.sh --- ct/actualbudget.sh | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/ct/actualbudget.sh b/ct/actualbudget.sh index 93e2dc67a..c16433931 100644 --- a/ct/actualbudget.sh +++ b/ct/actualbudget.sh @@ -33,13 +33,7 @@ function update_script() { msg_error "No ${APP} Installation Found!" exit fi - - if ! command -v jq >/dev/null 2>&1; then - echo "Installing jq..." - apt-get install -y jq >/dev/null 2>&1 - echo "Installed jq..." - fi - + RELEASE=$(curl -s https://api.github.com/repos/actualbudget/actual/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') if [[ ! -f /opt/actualbudget_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/actualbudget_version.txt)" ]]; then msg_info "Stopping ${APP}" From b402026b845936cf1599a721d7095c9eda1b3df1 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Fri, 24 Jan 2025 13:38:42 +0100 Subject: [PATCH 169/284] Update actualbudget-install.sh --- install/actualbudget-install.sh | 2 -- 1 file changed, 2 deletions(-) diff --git a/install/actualbudget-install.sh b/install/actualbudget-install.sh index 35733a572..c18f7ea36 100644 --- a/install/actualbudget-install.sh +++ b/install/actualbudget-install.sh @@ -19,8 +19,6 @@ $STD apt-get install -y \ sudo \ mc \ gpg \ - git \ - jq \ build-essential msg_ok "Installed Dependencies" From e6d032eac39b7ef95d2207ec8963a39fbc10f9ba Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Fri, 24 Jan 2025 13:41:13 +0100 Subject: [PATCH 170/284] rm file --- install/actualbudget-install.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/install/actualbudget-install.sh b/install/actualbudget-install.sh index c18f7ea36..c4e203d47 100644 --- a/install/actualbudget-install.sh +++ b/install/actualbudget-install.sh @@ -81,6 +81,7 @@ motd_ssh customize msg_info "Cleaning up" +rm -rf /opt/v${RELEASE}.tar.gz $STD apt-get -y autoremove $STD apt-get -y autoclean msg_ok "Cleaned" From ab6244c1fe302ff6646c7f9dc6ee5570497738c5 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Fri, 24 Jan 2025 13:45:54 +0100 Subject: [PATCH 171/284] Update actualbudget.sh --- ct/actualbudget.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ct/actualbudget.sh b/ct/actualbudget.sh index c16433931..07038cb63 100644 --- a/ct/actualbudget.sh +++ b/ct/actualbudget.sh @@ -42,7 +42,7 @@ function update_script() { msg_info "Updating ${APP} to ${RELEASE}" cd /tmp - wget -q https://codeload.github.com/actualbudget/actual-server/legacy.tar.gz/refs/tags/${RELEASE} -O actual-server.tar.gz + wget -q https://github.com/actualbudget/actual-server/archive/refs/tags/v${RELEASE}.tar.gz tar -xzf actual-server.tar.gz >/dev/null 2>&1 mv /opt/actualbudget /opt/actualbudget_bak mkdir -p /opt/actualbudget/ From 8241fa1dd42d715711e9b4d7d29eeb50576d78c8 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Fri, 24 Jan 2025 13:50:52 +0100 Subject: [PATCH 172/284] Update actualbudget.sh --- ct/actualbudget.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ct/actualbudget.sh b/ct/actualbudget.sh index 07038cb63..46aad3c2f 100644 --- a/ct/actualbudget.sh +++ b/ct/actualbudget.sh @@ -43,7 +43,7 @@ function update_script() { msg_info "Updating ${APP} to ${RELEASE}" cd /tmp wget -q https://github.com/actualbudget/actual-server/archive/refs/tags/v${RELEASE}.tar.gz - tar -xzf actual-server.tar.gz >/dev/null 2>&1 + tar -xzf v${RELEASE}.tar.gz >/dev/null 2>&1 mv /opt/actualbudget /opt/actualbudget_bak mkdir -p /opt/actualbudget/ mv *ctual-server-* /opt/actualbudget From bf618f04e410ca25baf2bcb51bc1fb11321f4d7d Mon Sep 17 00:00:00 2001 From: "community-scripts-pr-app[bot]" <189241966+community-scripts-pr-app[bot]@users.noreply.github.com> Date: Fri, 24 Jan 2025 13:58:43 +0100 Subject: [PATCH 173/284] Update CHANGELOG.md (#1717) --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a3d6045ab..4f709fe0b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -27,6 +27,7 @@ Do not break established syntax in this file, as it is automatically updated by ### πŸš€ Updated Scripts +- Feature: Filebrowser Script > Redesign | Update Logic | Remove Logic [@MickLesk](https://github.com/MickLesk) ([#1716](https://github.com/community-scripts/ProxmoxVE/pull/1716)) - Feature: Ubuntu 22.04 VM > Redesign | Optional HDD-Size Prompt [@MickLesk](https://github.com/MickLesk) ([#1712](https://github.com/community-scripts/ProxmoxVE/pull/1712)) - Feature: Ubuntu 24.04 VM > Redesign | Optional HDD-Size Prompt | cifs support [@MickLesk](https://github.com/MickLesk) ([#1714](https://github.com/community-scripts/ProxmoxVE/pull/1714)) From a7ee0705e24bd5f78d400d85af2d3114c626e44e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 24 Jan 2025 13:59:02 +0100 Subject: [PATCH 174/284] Update .app-headers file (#1718) --- misc/.app-headers | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/misc/.app-headers b/misc/.app-headers index c86022228..ebdb0ed60 100644 --- a/misc/.app-headers +++ b/misc/.app-headers @@ -1,4 +1,4 @@ -### Generated on 01-22-2025 +### Generated on 01-24-2025 ################################################## ### 2fauth.sh From f29cbe5b46297577930c9f1cda60d992dac40866 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Fri, 24 Jan 2025 14:03:59 +0100 Subject: [PATCH 175/284] [Core] Better Creation of App Headers for next feature (#1719) * Update Function to crawl app Headers * Update Function to crawl app Headers --- .github/workflows/auto-update-app-headers.yml | 32 +++++++--------- .../workflows/scripts/generate-app-headers.sh | 37 ++++++++----------- 2 files changed, 30 insertions(+), 39 deletions(-) diff --git a/.github/workflows/auto-update-app-headers.yml b/.github/workflows/auto-update-app-headers.yml index b02c3e619..15f7ee044 100644 --- a/.github/workflows/auto-update-app-headers.yml +++ b/.github/workflows/auto-update-app-headers.yml @@ -1,4 +1,4 @@ -name: Auto Update .app-headers +name: Auto Update .app-files on: push: @@ -9,7 +9,7 @@ on: workflow_dispatch: # ErmΓΆglicht das manuelle AusfΓΌhren der Action jobs: - update-app-headers: + update-app-files: runs-on: ubuntu-latest permissions: @@ -31,15 +31,15 @@ jobs: - name: Install figlet run: sudo apt-get install -y figlet - # Step 4: Run the generate-app-headers.sh script to update .app-headers - - name: Run generate-app-headers.sh to update .app-headers + # Step 4: Run the updated generate-app-files.sh script + - name: Run generate-app-files.sh run: | chmod +x .github/workflows/scripts/generate-app-headers.sh .github/workflows/scripts/generate-app-headers.sh env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # Step 5: Check if there are any changes + # Step 5: Check for changes - name: Check if there are any changes id: verify-diff run: | @@ -51,16 +51,15 @@ jobs: run: | git config --global user.name "github-actions[bot]" git config --global user.email "github-actions[bot]@users.noreply.github.com" - git add ./misc/.app-headers - git commit -m "Update .app-headers file" - # Create a temporary branch for the PR - git checkout -b pr-update-app-headers - git push origin pr-update-app-headers --force - + git add ct/*.app + git commit -m "Update .app files" + git checkout -b pr-update-app-files + git push origin pr-update-app-files --force + # Create PR against main - gh pr create --title "[core] update .app-headers file" \ - --body "This PR is auto-generated by a Github Action to update the .app-headers file." \ - --head pr-update-app-headers \ + gh pr create --title "[core] update .app files" \ + --body "This PR is auto-generated by a Github Action to update the .app files." \ + --head pr-update-app-files \ --base main \ --label "automated pr" env: @@ -71,12 +70,9 @@ jobs: env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - PR_NUMBER=$(gh pr list --head "pr-update-app-headers" --json number --jq '.[].number') - # Check if the PR was created by the bot (skip review if so) + PR_NUMBER=$(gh pr list --head "pr-update-app-files" --json number --jq '.[].number') PR_AUTHOR=$(gh pr view "$PR_NUMBER" --json author --jq '.author.login') if [ "$PR_AUTHOR" != "github-actions[bot]" ]; then gh pr review "$PR_NUMBER" --approve else echo "PR was created by the bot, skipping review." - fi - diff --git a/.github/workflows/scripts/generate-app-headers.sh b/.github/workflows/scripts/generate-app-headers.sh index c548b0fca..4d92951f5 100644 --- a/.github/workflows/scripts/generate-app-headers.sh +++ b/.github/workflows/scripts/generate-app-headers.sh @@ -1,33 +1,28 @@ #!/usr/bin/env bash -output_file="./misc/.app-headers" -> "$output_file" # Clear or create the file - -current_date=$(date +"%m-%d-%Y") -# Header with date -{ - echo "### Generated on $current_date" - echo "##################################################" - echo -} >> "$output_file" - -# Find only regular .sh files in ./ct, sort them alphabetically +# Find all .sh files in ./ct directory, sorted alphabetically find ./ct -type f -name "*.sh" | sort | while read -r script; do # Extract the APP name from the APP line app_name=$(grep -oP '^APP="\K[^"]+' "$script" 2>/dev/null) if [[ -n "$app_name" ]]; then - # Generate figlet output - figlet_output=$(figlet -f slant "$app_name") - { - echo "### $(basename "$script")" - echo "APP=$app_name" - echo "$figlet_output" - echo - } >> "$output_file" + # Define the output file name based on the .sh file + output_file="${script%.sh}.app" + + # Check if the output file already exists + if [[ ! -f "$output_file" ]]; then + # Generate figlet output + figlet_output=$(figlet -f slant "$app_name") + + # Write the figlet output to the file + echo "$figlet_output" > "$output_file" + echo "Generated: $output_file" + else + echo "Skipped: $output_file already exists" + fi else echo "No APP name found in $script, skipping." fi done -echo "Generated combined file at $output_file" +echo "Completed processing .sh files." From 8c6af4db1f5c1c61c3f334601036d40d978bf53b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 24 Jan 2025 14:04:56 +0100 Subject: [PATCH 176/284] Update .app files (#1721) Co-authored-by: github-actions[bot] --- ct/2fauth.app | 6 ++++++ ct/5etools.app | 6 ++++++ ct/actualbudget.app | 6 ++++++ ct/adguard.app | 6 ++++++ ct/adventurelog.app | 6 ++++++ ct/agentdvr.app | 6 ++++++ ct/alpine-docker.app | 6 ++++++ ct/alpine-grafana.app | 6 ++++++ ct/alpine-nextcloud.app | 12 ++++++++++++ ct/alpine-vaultwarden.app | 12 ++++++++++++ ct/alpine-zigbee2mqtt.app | 12 ++++++++++++ ct/alpine.app | 6 ++++++ ct/apache-cassandra.app | 12 ++++++++++++ ct/apache-couchdb.app | 12 ++++++++++++ ct/apache-guacamole.app | 12 ++++++++++++ ct/apt-cacher-ng.app | 6 ++++++ ct/archivebox.app | 6 ++++++ ct/aria2.app | 6 ++++++ ct/audiobookshelf.app | 6 ++++++ ct/authentik.app | 6 ++++++ ct/autobrr.app | 6 ++++++ ct/bazarr.app | 6 ++++++ ct/beszel.app | 6 ++++++ ct/blocky.app | 6 ++++++ ct/bookstack.app | 6 ++++++ ct/bunkerweb.app | 6 ++++++ ct/caddy.app | 6 ++++++ ct/calibre-web.app | 6 ++++++ ct/casaos.app | 6 ++++++ ct/changedetection.app | 12 ++++++++++++ ct/channels.app | 6 ++++++ ct/checkmk.app | 6 ++++++ ct/cloudflared.app | 6 ++++++ ct/cockpit.app | 6 ++++++ ct/commafeed.app | 6 ++++++ ct/cronicle.app | 6 ++++++ ct/daemonsync.app | 6 ++++++ ct/dashy.app | 6 ++++++ ct/debian.app | 6 ++++++ ct/deconz.app | 6 ++++++ ct/deluge.app | 6 ++++++ ct/docker.app | 6 ++++++ ct/dockge.app | 6 ++++++ ct/dotnetaspwebapi.app | 12 ++++++++++++ ct/emby.app | 6 ++++++ ct/emqx.app | 6 ++++++ ct/ersatztv.app | 6 ++++++ ct/esphome.app | 6 ++++++ ct/evcc.app | 6 ++++++ ct/fenrus.app | 6 ++++++ ct/fhem.app | 6 ++++++ ct/firefly.app | 6 ++++++ ct/flaresolverr.app | 6 ++++++ ct/flowiseai.app | 6 ++++++ ct/forgejo.app | 6 ++++++ ct/frigate.app | 6 ++++++ ct/ghost.app | 6 ++++++ ct/gitea.app | 6 ++++++ ct/glance.app | 6 ++++++ ct/glpi.app | 6 ++++++ ct/go2rtc.app | 6 ++++++ ct/gokapi.app | 6 ++++++ ct/gotify.app | 6 ++++++ ct/grafana.app | 6 ++++++ ct/grist.app | 6 ++++++ ct/grocy.app | 6 ++++++ ct/headscale.app | 6 ++++++ ct/heimdall-dashboard.app | 12 ++++++++++++ ct/hivemq.app | 6 ++++++ ct/hoarder.app | 6 ++++++ ct/homarr.app | 6 ++++++ ct/homeassistant-core.app | 12 ++++++++++++ ct/homeassistant.app | 6 ++++++ ct/homebox.app | 6 ++++++ ct/homebridge.app | 6 ++++++ ct/homepage.app | 6 ++++++ ct/homer.app | 6 ++++++ ct/hyperhdr.app | 6 ++++++ ct/hyperion.app | 6 ++++++ ct/influxdb.app | 6 ++++++ ct/inspircd.app | 6 ++++++ ct/iobroker.app | 6 ++++++ ct/iventoy.app | 6 ++++++ ct/jackett.app | 6 ++++++ ct/jellyfin.app | 6 ++++++ ct/jellyseerr.app | 6 ++++++ ct/jenkins.app | 6 ++++++ ct/kavita.app | 6 ++++++ ct/keycloak.app | 6 ++++++ ct/kimai.app | 6 ++++++ ct/komga.app | 6 ++++++ ct/komodo.app | 6 ++++++ ct/kubo.app | 6 ++++++ ct/lazylibrarian.app | 6 ++++++ ct/lidarr.app | 6 ++++++ ct/linkwarden.app | 6 ++++++ ct/listmonk.app | 6 ++++++ ct/lldap.app | 6 ++++++ ct/lubelogger.app | 6 ++++++ ct/mafl.app | 6 ++++++ ct/magicmirror.app | 6 ++++++ ct/mariadb.app | 6 ++++++ ct/matterbridge.app | 6 ++++++ ct/mediamtx.app | 6 ++++++ ct/medusa.app | 6 ++++++ ct/memos.app | 6 ++++++ ct/meshcentral.app | 6 ++++++ ct/metube.app | 6 ++++++ ct/mongodb.app | 6 ++++++ ct/motioneye.app | 6 ++++++ ct/mqtt.app | 6 ++++++ ct/mylar3.app | 6 ++++++ ct/myspeed.app | 6 ++++++ ct/mysql.app | 6 ++++++ ct/n8n.app | 6 ++++++ ct/navidrome.app | 6 ++++++ ct/neo4j.app | 6 ++++++ ct/netbox.app | 6 ++++++ ct/nextcloudpi.app | 6 ++++++ ct/nextpvr.app | 6 ++++++ ct/nginxproxymanager.app | 12 ++++++++++++ ct/nocodb.app | 6 ++++++ ct/node-red.app | 6 ++++++ ct/notifiarr.app | 6 ++++++ ct/ntfy.app | 6 ++++++ ct/nzbget.app | 6 ++++++ ct/octoprint.app | 6 ++++++ ct/ollama.app | 6 ++++++ ct/omada.app | 6 ++++++ ct/ombi.app | 6 ++++++ ct/omv.app | 6 ++++++ ct/onedev.app | 6 ++++++ ct/opengist.app | 6 ++++++ ct/openhab.app | 6 ++++++ ct/openobserve.app | 6 ++++++ ct/openwebui.app | 6 ++++++ ct/overseerr.app | 6 ++++++ ct/owncast.app | 6 ++++++ ct/pairdrop.app | 6 ++++++ ct/paperless-ngx.app | 6 ++++++ ct/part-db.app | 6 ++++++ ct/pbs.app | 6 ++++++ ct/peanut.app | 6 ++++++ ct/petio.app | 6 ++++++ ct/pf2etools.app | 6 ++++++ ct/photoprism.app | 6 ++++++ ct/phpipam.app | 6 ++++++ ct/pialert.app | 6 ++++++ ct/pihole.app | 6 ++++++ ct/pingvin.app | 6 ++++++ ct/plex.app | 6 ++++++ ct/pocketbase.app | 6 ++++++ ct/podman-homeassistant.app | 12 ++++++++++++ ct/podman.app | 6 ++++++ ct/postgresql.app | 6 ++++++ ct/projectsend.app | 6 ++++++ ct/prometheus-alertmanager.app | 12 ++++++++++++ ct/prometheus.app | 6 ++++++ ct/prowlarr.app | 6 ++++++ ct/proxmox-datacenter-manager.app | 18 ++++++++++++++++++ ct/ps5-mqtt.app | 6 ++++++ ct/qbittorrent.app | 6 ++++++ ct/rabbitmq.app | 6 ++++++ ct/radarr.app | 6 ++++++ ct/rdtclient.app | 6 ++++++ ct/readarr.app | 6 ++++++ ct/readeck.app | 6 ++++++ ct/recyclarr.app | 6 ++++++ ct/redis.app | 6 ++++++ ct/rtsptoweb.app | 6 ++++++ ct/runtipi.app | 6 ++++++ ct/sabnzbd.app | 6 ++++++ ct/semaphore.app | 6 ++++++ ct/sftpgo.app | 6 ++++++ ct/shinobi.app | 6 ++++++ ct/silverbullet.app | 6 ++++++ ct/smokeping.app | 6 ++++++ ct/snipeit.app | 6 ++++++ ct/sonarr.app | 6 ++++++ ct/spoolman.app | 6 ++++++ ct/sqlserver2022.app | 12 ++++++++++++ ct/stirling-pdf.app | 6 ++++++ ct/syncthing.app | 6 ++++++ ct/tandoor.app | 6 ++++++ ct/tasmoadmin.app | 6 ++++++ ct/tautulli.app | 6 ++++++ ct/tdarr.app | 6 ++++++ ct/technitiumdns.app | 6 ++++++ ct/teddycloud.app | 6 ++++++ ct/the-lounge.app | 6 ++++++ ct/threadfin.app | 6 ++++++ ct/tianji.app | 6 ++++++ ct/traccar.app | 6 ++++++ ct/traefik.app | 6 ++++++ ct/transmission.app | 6 ++++++ ct/trilium.app | 6 ++++++ ct/typesense.app | 6 ++++++ ct/ubuntu.app | 6 ++++++ ct/umami.app | 6 ++++++ ct/umbrel.app | 6 ++++++ ct/unbound.app | 6 ++++++ ct/unifi.app | 6 ++++++ ct/unmanic.app | 6 ++++++ ct/uptimekuma.app | 6 ++++++ ct/urbackupserver.app | 12 ++++++++++++ ct/vaultwarden.app | 6 ++++++ ct/vikunja.app | 6 ++++++ ct/wallos.app | 6 ++++++ ct/wastebin.app | 6 ++++++ ct/watchyourlan.app | 6 ++++++ ct/wavelog.app | 6 ++++++ ct/whisparr.app | 6 ++++++ ct/whoogle.app | 6 ++++++ ct/wikijs.app | 6 ++++++ ct/wireguard.app | 6 ++++++ ct/wordpress.app | 6 ++++++ ct/yunohost.app | 6 ++++++ ct/zabbix.app | 6 ++++++ ct/zammad.app | 6 ++++++ ct/zigbee2mqtt.app | 6 ++++++ ct/zipline.app | 6 ++++++ ct/zoraxy.app | 6 ++++++ ct/zwave-js-ui.app | 6 ++++++ 223 files changed, 1440 insertions(+) create mode 100644 ct/2fauth.app create mode 100644 ct/5etools.app create mode 100644 ct/actualbudget.app create mode 100644 ct/adguard.app create mode 100644 ct/adventurelog.app create mode 100644 ct/agentdvr.app create mode 100644 ct/alpine-docker.app create mode 100644 ct/alpine-grafana.app create mode 100644 ct/alpine-nextcloud.app create mode 100644 ct/alpine-vaultwarden.app create mode 100644 ct/alpine-zigbee2mqtt.app create mode 100644 ct/alpine.app create mode 100644 ct/apache-cassandra.app create mode 100644 ct/apache-couchdb.app create mode 100644 ct/apache-guacamole.app create mode 100644 ct/apt-cacher-ng.app create mode 100644 ct/archivebox.app create mode 100644 ct/aria2.app create mode 100644 ct/audiobookshelf.app create mode 100644 ct/authentik.app create mode 100644 ct/autobrr.app create mode 100644 ct/bazarr.app create mode 100644 ct/beszel.app create mode 100644 ct/blocky.app create mode 100644 ct/bookstack.app create mode 100644 ct/bunkerweb.app create mode 100644 ct/caddy.app create mode 100644 ct/calibre-web.app create mode 100644 ct/casaos.app create mode 100644 ct/changedetection.app create mode 100644 ct/channels.app create mode 100644 ct/checkmk.app create mode 100644 ct/cloudflared.app create mode 100644 ct/cockpit.app create mode 100644 ct/commafeed.app create mode 100644 ct/cronicle.app create mode 100644 ct/daemonsync.app create mode 100644 ct/dashy.app create mode 100644 ct/debian.app create mode 100644 ct/deconz.app create mode 100644 ct/deluge.app create mode 100644 ct/docker.app create mode 100644 ct/dockge.app create mode 100644 ct/dotnetaspwebapi.app create mode 100644 ct/emby.app create mode 100644 ct/emqx.app create mode 100644 ct/ersatztv.app create mode 100644 ct/esphome.app create mode 100644 ct/evcc.app create mode 100644 ct/fenrus.app create mode 100644 ct/fhem.app create mode 100644 ct/firefly.app create mode 100644 ct/flaresolverr.app create mode 100644 ct/flowiseai.app create mode 100644 ct/forgejo.app create mode 100644 ct/frigate.app create mode 100644 ct/ghost.app create mode 100644 ct/gitea.app create mode 100644 ct/glance.app create mode 100644 ct/glpi.app create mode 100644 ct/go2rtc.app create mode 100644 ct/gokapi.app create mode 100644 ct/gotify.app create mode 100644 ct/grafana.app create mode 100644 ct/grist.app create mode 100644 ct/grocy.app create mode 100644 ct/headscale.app create mode 100644 ct/heimdall-dashboard.app create mode 100644 ct/hivemq.app create mode 100644 ct/hoarder.app create mode 100644 ct/homarr.app create mode 100644 ct/homeassistant-core.app create mode 100644 ct/homeassistant.app create mode 100644 ct/homebox.app create mode 100644 ct/homebridge.app create mode 100644 ct/homepage.app create mode 100644 ct/homer.app create mode 100644 ct/hyperhdr.app create mode 100644 ct/hyperion.app create mode 100644 ct/influxdb.app create mode 100644 ct/inspircd.app create mode 100644 ct/iobroker.app create mode 100644 ct/iventoy.app create mode 100644 ct/jackett.app create mode 100644 ct/jellyfin.app create mode 100644 ct/jellyseerr.app create mode 100644 ct/jenkins.app create mode 100644 ct/kavita.app create mode 100644 ct/keycloak.app create mode 100644 ct/kimai.app create mode 100644 ct/komga.app create mode 100644 ct/komodo.app create mode 100644 ct/kubo.app create mode 100644 ct/lazylibrarian.app create mode 100644 ct/lidarr.app create mode 100644 ct/linkwarden.app create mode 100644 ct/listmonk.app create mode 100644 ct/lldap.app create mode 100644 ct/lubelogger.app create mode 100644 ct/mafl.app create mode 100644 ct/magicmirror.app create mode 100644 ct/mariadb.app create mode 100644 ct/matterbridge.app create mode 100644 ct/mediamtx.app create mode 100644 ct/medusa.app create mode 100644 ct/memos.app create mode 100644 ct/meshcentral.app create mode 100644 ct/metube.app create mode 100644 ct/mongodb.app create mode 100644 ct/motioneye.app create mode 100644 ct/mqtt.app create mode 100644 ct/mylar3.app create mode 100644 ct/myspeed.app create mode 100644 ct/mysql.app create mode 100644 ct/n8n.app create mode 100644 ct/navidrome.app create mode 100644 ct/neo4j.app create mode 100644 ct/netbox.app create mode 100644 ct/nextcloudpi.app create mode 100644 ct/nextpvr.app create mode 100644 ct/nginxproxymanager.app create mode 100644 ct/nocodb.app create mode 100644 ct/node-red.app create mode 100644 ct/notifiarr.app create mode 100644 ct/ntfy.app create mode 100644 ct/nzbget.app create mode 100644 ct/octoprint.app create mode 100644 ct/ollama.app create mode 100644 ct/omada.app create mode 100644 ct/ombi.app create mode 100644 ct/omv.app create mode 100644 ct/onedev.app create mode 100644 ct/opengist.app create mode 100644 ct/openhab.app create mode 100644 ct/openobserve.app create mode 100644 ct/openwebui.app create mode 100644 ct/overseerr.app create mode 100644 ct/owncast.app create mode 100644 ct/pairdrop.app create mode 100644 ct/paperless-ngx.app create mode 100644 ct/part-db.app create mode 100644 ct/pbs.app create mode 100644 ct/peanut.app create mode 100644 ct/petio.app create mode 100644 ct/pf2etools.app create mode 100644 ct/photoprism.app create mode 100644 ct/phpipam.app create mode 100644 ct/pialert.app create mode 100644 ct/pihole.app create mode 100644 ct/pingvin.app create mode 100644 ct/plex.app create mode 100644 ct/pocketbase.app create mode 100644 ct/podman-homeassistant.app create mode 100644 ct/podman.app create mode 100644 ct/postgresql.app create mode 100644 ct/projectsend.app create mode 100644 ct/prometheus-alertmanager.app create mode 100644 ct/prometheus.app create mode 100644 ct/prowlarr.app create mode 100644 ct/proxmox-datacenter-manager.app create mode 100644 ct/ps5-mqtt.app create mode 100644 ct/qbittorrent.app create mode 100644 ct/rabbitmq.app create mode 100644 ct/radarr.app create mode 100644 ct/rdtclient.app create mode 100644 ct/readarr.app create mode 100644 ct/readeck.app create mode 100644 ct/recyclarr.app create mode 100644 ct/redis.app create mode 100644 ct/rtsptoweb.app create mode 100644 ct/runtipi.app create mode 100644 ct/sabnzbd.app create mode 100644 ct/semaphore.app create mode 100644 ct/sftpgo.app create mode 100644 ct/shinobi.app create mode 100644 ct/silverbullet.app create mode 100644 ct/smokeping.app create mode 100644 ct/snipeit.app create mode 100644 ct/sonarr.app create mode 100644 ct/spoolman.app create mode 100644 ct/sqlserver2022.app create mode 100644 ct/stirling-pdf.app create mode 100644 ct/syncthing.app create mode 100644 ct/tandoor.app create mode 100644 ct/tasmoadmin.app create mode 100644 ct/tautulli.app create mode 100644 ct/tdarr.app create mode 100644 ct/technitiumdns.app create mode 100644 ct/teddycloud.app create mode 100644 ct/the-lounge.app create mode 100644 ct/threadfin.app create mode 100644 ct/tianji.app create mode 100644 ct/traccar.app create mode 100644 ct/traefik.app create mode 100644 ct/transmission.app create mode 100644 ct/trilium.app create mode 100644 ct/typesense.app create mode 100644 ct/ubuntu.app create mode 100644 ct/umami.app create mode 100644 ct/umbrel.app create mode 100644 ct/unbound.app create mode 100644 ct/unifi.app create mode 100644 ct/unmanic.app create mode 100644 ct/uptimekuma.app create mode 100644 ct/urbackupserver.app create mode 100644 ct/vaultwarden.app create mode 100644 ct/vikunja.app create mode 100644 ct/wallos.app create mode 100644 ct/wastebin.app create mode 100644 ct/watchyourlan.app create mode 100644 ct/wavelog.app create mode 100644 ct/whisparr.app create mode 100644 ct/whoogle.app create mode 100644 ct/wikijs.app create mode 100644 ct/wireguard.app create mode 100644 ct/wordpress.app create mode 100644 ct/yunohost.app create mode 100644 ct/zabbix.app create mode 100644 ct/zammad.app create mode 100644 ct/zigbee2mqtt.app create mode 100644 ct/zipline.app create mode 100644 ct/zoraxy.app create mode 100644 ct/zwave-js-ui.app diff --git a/ct/2fauth.app b/ct/2fauth.app new file mode 100644 index 000000000..b6421719c --- /dev/null +++ b/ct/2fauth.app @@ -0,0 +1,6 @@ + ___ _________ __ __ + |__ \ / ____/ | __ __/ /_/ /_ + __/ // /_ / /| |/ / / / __/ __ \ + / __// __/ / ___ / /_/ / /_/ / / / +/____/_/ /_/ |_\__,_/\__/_/ /_/ + diff --git a/ct/5etools.app b/ct/5etools.app new file mode 100644 index 000000000..1556067f1 --- /dev/null +++ b/ct/5etools.app @@ -0,0 +1,6 @@ + ______ __ __ + / ____/__ / /_____ ____ / /____ + /___ \/ _ \/ __/ __ \/ __ \/ / ___/ + ____/ / __/ /_/ /_/ / /_/ / (__ ) +/_____/\___/\__/\____/\____/_/____/ + diff --git a/ct/actualbudget.app b/ct/actualbudget.app new file mode 100644 index 000000000..db7f30933 --- /dev/null +++ b/ct/actualbudget.app @@ -0,0 +1,6 @@ + ___ __ __ ____ __ __ + / | _____/ /___ ______ _/ / / __ )__ ______/ /___ ____ / /_ + / /| |/ ___/ __/ / / / __ `/ / / __ / / / / __ / __ `/ _ \/ __/ + / ___ / /__/ /_/ /_/ / /_/ / / / /_/ / /_/ / /_/ / /_/ / __/ /_ +/_/ |_\___/\__/\__,_/\__,_/_/ /_____/\__,_/\__,_/\__, /\___/\__/ + /____/ diff --git a/ct/adguard.app b/ct/adguard.app new file mode 100644 index 000000000..2332df179 --- /dev/null +++ b/ct/adguard.app @@ -0,0 +1,6 @@ + ___ __ __ + / | ____/ /___ ___ ______ __________/ / + / /| |/ __ / __ `/ / / / __ `/ ___/ __ / + / ___ / /_/ / /_/ / /_/ / /_/ / / / /_/ / +/_/ |_\__,_/\__, /\__,_/\__,_/_/ \__,_/ + /____/ diff --git a/ct/adventurelog.app b/ct/adventurelog.app new file mode 100644 index 000000000..8e3c88d11 --- /dev/null +++ b/ct/adventurelog.app @@ -0,0 +1,6 @@ + ___ __ __ __ + / | ____/ / _____ ____ / /___ __________ / / ____ ____ _ + / /| |/ __ / | / / _ \/ __ \/ __/ / / / ___/ _ \/ / / __ \/ __ `/ + / ___ / /_/ /| |/ / __/ / / / /_/ /_/ / / / __/ /___/ /_/ / /_/ / +/_/ |_\__,_/ |___/\___/_/ /_/\__/\__,_/_/ \___/_____/\____/\__, / + /____/ diff --git a/ct/agentdvr.app b/ct/agentdvr.app new file mode 100644 index 000000000..dfe67792b --- /dev/null +++ b/ct/agentdvr.app @@ -0,0 +1,6 @@ + ___ __ ____ _ ______ + / | ____ ____ ____ / /_/ __ \ | / / __ \ + / /| |/ __ `/ _ \/ __ \/ __/ / / / | / / /_/ / + / ___ / /_/ / __/ / / / /_/ /_/ /| |/ / _, _/ +/_/ |_\__, /\___/_/ /_/\__/_____/ |___/_/ |_| + /____/ diff --git a/ct/alpine-docker.app b/ct/alpine-docker.app new file mode 100644 index 000000000..7fd1b265d --- /dev/null +++ b/ct/alpine-docker.app @@ -0,0 +1,6 @@ + ___ __ _ ____ __ + / | / /___ (_)___ ___ / __ \____ _____/ /_____ _____ + / /| | / / __ \/ / __ \/ _ \______/ / / / __ \/ ___/ //_/ _ \/ ___/ + / ___ |/ / /_/ / / / / / __/_____/ /_/ / /_/ / /__/ ,< / __/ / +/_/ |_/_/ .___/_/_/ /_/\___/ /_____/\____/\___/_/|_|\___/_/ + /_/ diff --git a/ct/alpine-grafana.app b/ct/alpine-grafana.app new file mode 100644 index 000000000..3fe493c9d --- /dev/null +++ b/ct/alpine-grafana.app @@ -0,0 +1,6 @@ + ___ __ _ ______ ____ + / | / /___ (_)___ ___ / ____/________ _/ __/___ _____ ____ _ + / /| | / / __ \/ / __ \/ _ \______/ / __/ ___/ __ `/ /_/ __ `/ __ \/ __ `/ + / ___ |/ / /_/ / / / / / __/_____/ /_/ / / / /_/ / __/ /_/ / / / / /_/ / +/_/ |_/_/ .___/_/_/ /_/\___/ \____/_/ \__,_/_/ \__,_/_/ /_/\__,_/ + /_/ diff --git a/ct/alpine-nextcloud.app b/ct/alpine-nextcloud.app new file mode 100644 index 000000000..b27eb0cad --- /dev/null +++ b/ct/alpine-nextcloud.app @@ -0,0 +1,12 @@ + ___ __ _ _ __ __ __ + / | / /___ (_)___ ___ / | / /__ _ __/ /______/ /___ __ __ + / /| | / / __ \/ / __ \/ _ \______/ |/ / _ \| |/_/ __/ ___/ / __ \/ / / / + / ___ |/ / /_/ / / / / / __/_____/ /| / __/> < +/_/ |_/_/ \___/_/ /_/_/ |___/\___/_____/\____/_/|_| + diff --git a/ct/aria2.app b/ct/aria2.app new file mode 100644 index 000000000..3080e17b4 --- /dev/null +++ b/ct/aria2.app @@ -0,0 +1,6 @@ + ___ _ ___ + / | _____(_)___ |__ \ + / /| | / ___/ / __ `/_/ / + / ___ |/ / / / /_/ / __/ +/_/ |_/_/ /_/\__,_/____/ + diff --git a/ct/audiobookshelf.app b/ct/audiobookshelf.app new file mode 100644 index 000000000..5e249a852 --- /dev/null +++ b/ct/audiobookshelf.app @@ -0,0 +1,6 @@ + ___ __ __ __ ______ + ____ ___ ______/ (_)___ / /_ ____ ____ / /_______/ /_ ___ / / __/ + / __ `/ / / / __ / / __ \/ __ \/ __ \/ __ \/ //_/ ___/ __ \/ _ \/ / /_ +/ /_/ / /_/ / /_/ / / /_/ / /_/ / /_/ / /_/ / ,< (__ ) / / / __/ / __/ +\__,_/\__,_/\__,_/_/\____/_.___/\____/\____/_/|_/____/_/ /_/\___/_/_/ + diff --git a/ct/authentik.app b/ct/authentik.app new file mode 100644 index 000000000..f609964e0 --- /dev/null +++ b/ct/authentik.app @@ -0,0 +1,6 @@ + ___ __ __ __ _ __ + / | __ __/ /_/ /_ ___ ____ / /_(_) /__ + / /| |/ / / / __/ __ \/ _ \/ __ \/ __/ / //_/ + / ___ / /_/ / /_/ / / / __/ / / / /_/ / ,< +/_/ |_\__,_/\__/_/ /_/\___/_/ /_/\__/_/_/|_| + diff --git a/ct/autobrr.app b/ct/autobrr.app new file mode 100644 index 000000000..56322d59e --- /dev/null +++ b/ct/autobrr.app @@ -0,0 +1,6 @@ + ___ __ __ + / | __ __/ /_____ / /_ __________ + / /| |/ / / / __/ __ \/ __ \/ ___/ ___/ + / ___ / /_/ / /_/ /_/ / /_/ / / / / +/_/ |_\__,_/\__/\____/_.___/_/ /_/ + diff --git a/ct/bazarr.app b/ct/bazarr.app new file mode 100644 index 000000000..e487a77d8 --- /dev/null +++ b/ct/bazarr.app @@ -0,0 +1,6 @@ + ____ + / __ )____ _____ ____ ___________ + / __ / __ `/_ / / __ `/ ___/ ___/ + / /_/ / /_/ / / /_/ /_/ / / / / +/_____/\__,_/ /___/\__,_/_/ /_/ + diff --git a/ct/beszel.app b/ct/beszel.app new file mode 100644 index 000000000..dcb0d38d6 --- /dev/null +++ b/ct/beszel.app @@ -0,0 +1,6 @@ + ____ __ + / __ )___ _________ ___ / / + / __ / _ \/ ___/_ / / _ \/ / + / /_/ / __(__ ) / /_/ __/ / +/_____/\___/____/ /___/\___/_/ + diff --git a/ct/blocky.app b/ct/blocky.app new file mode 100644 index 000000000..3bd089bab --- /dev/null +++ b/ct/blocky.app @@ -0,0 +1,6 @@ + ____ __ __ + / __ )/ /___ _____/ /____ __ + / __ / / __ \/ ___/ //_/ / / / + / /_/ / / /_/ / /__/ ,< / /_/ / +/_____/_/\____/\___/_/|_|\__, / + /____/ diff --git a/ct/bookstack.app b/ct/bookstack.app new file mode 100644 index 000000000..f68646662 --- /dev/null +++ b/ct/bookstack.app @@ -0,0 +1,6 @@ + ____ __ __ __ + / __ )____ ____ / /_______/ /_____ ______/ /__ + / __ / __ \/ __ \/ //_/ ___/ __/ __ `/ ___/ //_/ + / /_/ / /_/ / /_/ / ,< (__ ) /_/ /_/ / /__/ ,< +/_____/\____/\____/_/|_/____/\__/\__,_/\___/_/|_| + diff --git a/ct/bunkerweb.app b/ct/bunkerweb.app new file mode 100644 index 000000000..188677c45 --- /dev/null +++ b/ct/bunkerweb.app @@ -0,0 +1,6 @@ + ____ __ _ __ __ + / __ )__ ______ / /_____ ____| | / /__ / /_ + / __ / / / / __ \/ //_/ _ \/ ___/ | /| / / _ \/ __ \ + / /_/ / /_/ / / / / ,< / __/ / | |/ |/ / __/ /_/ / +/_____/\__,_/_/ /_/_/|_|\___/_/ |__/|__/\___/_.___/ + diff --git a/ct/caddy.app b/ct/caddy.app new file mode 100644 index 000000000..6f47f9627 --- /dev/null +++ b/ct/caddy.app @@ -0,0 +1,6 @@ + ______ __ __ + / ____/___ _____/ /___/ /_ __ + / / / __ `/ __ / __ / / / / +/ /___/ /_/ / /_/ / /_/ / /_/ / +\____/\__,_/\__,_/\__,_/\__, / + /____/ diff --git a/ct/calibre-web.app b/ct/calibre-web.app new file mode 100644 index 000000000..ae9dc0379 --- /dev/null +++ b/ct/calibre-web.app @@ -0,0 +1,6 @@ + ______ ___ __ _ __ __ + / ____/___ _/ (_) /_ ________ | | / /__ / /_ + / / / __ `/ / / __ \/ ___/ _ \_____| | /| / / _ \/ __ \ +/ /___/ /_/ / / / /_/ / / / __/_____/ |/ |/ / __/ /_/ / +\____/\__,_/_/_/_.___/_/ \___/ |__/|__/\___/_.___/ + diff --git a/ct/casaos.app b/ct/casaos.app new file mode 100644 index 000000000..4af563a20 --- /dev/null +++ b/ct/casaos.app @@ -0,0 +1,6 @@ + ______ ____ _____ + / ____/___ __________ _/ __ \/ ___/ + / / / __ `/ ___/ __ `/ / / /\__ \ +/ /___/ /_/ (__ ) /_/ / /_/ /___/ / +\____/\__,_/____/\__,_/\____//____/ + diff --git a/ct/changedetection.app b/ct/changedetection.app new file mode 100644 index 000000000..bf9fefb4a --- /dev/null +++ b/ct/changedetection.app @@ -0,0 +1,12 @@ + ________ + / ____/ /_ ____ _____ ____ ____ + / / / __ \/ __ `/ __ \/ __ `/ _ \ +/ /___/ / / / /_/ / / / / /_/ / __/ +\____/_/ /_/\__,_/_/ /_/\__, /\___/ + /____/ + ____ __ __ _ + / __ \___ / /____ _____/ /_(_)___ ____ + / / / / _ \/ __/ _ \/ ___/ __/ / __ \/ __ \ + / /_/ / __/ /_/ __/ /__/ /_/ / /_/ / / / / +/_____/\___/\__/\___/\___/\__/_/\____/_/ /_/ + diff --git a/ct/channels.app b/ct/channels.app new file mode 100644 index 000000000..7600b6e47 --- /dev/null +++ b/ct/channels.app @@ -0,0 +1,6 @@ + ________ __ + / ____/ /_ ____ _____ ____ ___ / /____ + / / / __ \/ __ `/ __ \/ __ \/ _ \/ / ___/ +/ /___/ / / / /_/ / / / / / / / __/ (__ ) +\____/_/ /_/\__,_/_/ /_/_/ /_/\___/_/____/ + diff --git a/ct/checkmk.app b/ct/checkmk.app new file mode 100644 index 000000000..ff80000cd --- /dev/null +++ b/ct/checkmk.app @@ -0,0 +1,6 @@ + __ __ __ + _____/ /_ ___ _____/ /______ ___ / /__ + / ___/ __ \/ _ \/ ___/ //_/ __ `__ \/ //_/ +/ /__/ / / / __/ /__/ ,< / / / / / / ,< +\___/_/ /_/\___/\___/_/|_/_/ /_/ /_/_/|_| + diff --git a/ct/cloudflared.app b/ct/cloudflared.app new file mode 100644 index 000000000..8011c2c23 --- /dev/null +++ b/ct/cloudflared.app @@ -0,0 +1,6 @@ + ________ ________ __ + / ____/ /___ __ ______/ / __/ /___ _________ ____/ / + / / / / __ \/ / / / __ / /_/ / __ `/ ___/ _ \/ __ / +/ /___/ / /_/ / /_/ / /_/ / __/ / /_/ / / / __/ /_/ / +\____/_/\____/\__,_/\__,_/_/ /_/\__,_/_/ \___/\__,_/ + diff --git a/ct/cockpit.app b/ct/cockpit.app new file mode 100644 index 000000000..8eb04a26e --- /dev/null +++ b/ct/cockpit.app @@ -0,0 +1,6 @@ + ______ __ _ __ + / ____/___ _____/ /______ (_) /_ + / / / __ \/ ___/ //_/ __ \/ / __/ +/ /___/ /_/ / /__/ ,< / /_/ / / /_ +\____/\____/\___/_/|_/ .___/_/\__/ + /_/ diff --git a/ct/commafeed.app b/ct/commafeed.app new file mode 100644 index 000000000..06beb9a56 --- /dev/null +++ b/ct/commafeed.app @@ -0,0 +1,6 @@ + ______ ______ __ + / ____/___ ____ ___ ____ ___ ____ _/ ____/__ ___ ____/ / + / / / __ \/ __ `__ \/ __ `__ \/ __ `/ /_ / _ \/ _ \/ __ / +/ /___/ /_/ / / / / / / / / / / / /_/ / __/ / __/ __/ /_/ / +\____/\____/_/ /_/ /_/_/ /_/ /_/\__,_/_/ \___/\___/\__,_/ + diff --git a/ct/cronicle.app b/ct/cronicle.app new file mode 100644 index 000000000..6d6f7cfc9 --- /dev/null +++ b/ct/cronicle.app @@ -0,0 +1,6 @@ + ______ _ __ + / ____/________ ____ (_)____/ /__ + / / / ___/ __ \/ __ \/ / ___/ / _ \ +/ /___/ / / /_/ / / / / / /__/ / __/ +\____/_/ \____/_/ /_/_/\___/_/\___/ + diff --git a/ct/daemonsync.app b/ct/daemonsync.app new file mode 100644 index 000000000..532072375 --- /dev/null +++ b/ct/daemonsync.app @@ -0,0 +1,6 @@ + ____ _____ + / __ \____ ____ ____ ___ ____ ____ / ___/__ ______ _____ + / / / / __ `/ _ \/ __ `__ \/ __ \/ __ \ \__ \/ / / / __ \/ ___/ + / /_/ / /_/ / __/ / / / / / /_/ / / / / ___/ / /_/ / / / / /__ +/_____/\__,_/\___/_/ /_/ /_/\____/_/ /_/ /____/\__, /_/ /_/\___/ + /____/ diff --git a/ct/dashy.app b/ct/dashy.app new file mode 100644 index 000000000..330f9e3d0 --- /dev/null +++ b/ct/dashy.app @@ -0,0 +1,6 @@ + ____ __ + / __ \____ ______/ /_ __ __ + / / / / __ `/ ___/ __ \/ / / / + / /_/ / /_/ (__ ) / / / /_/ / +/_____/\__,_/____/_/ /_/\__, / + /____/ diff --git a/ct/debian.app b/ct/debian.app new file mode 100644 index 000000000..a6f474d46 --- /dev/null +++ b/ct/debian.app @@ -0,0 +1,6 @@ + ____ __ _ + / __ \___ / /_ (_)___ _____ + / / / / _ \/ __ \/ / __ `/ __ \ + / /_/ / __/ /_/ / / /_/ / / / / +/_____/\___/_.___/_/\__,_/_/ /_/ + diff --git a/ct/deconz.app b/ct/deconz.app new file mode 100644 index 000000000..fcfceb280 --- /dev/null +++ b/ct/deconz.app @@ -0,0 +1,6 @@ + __ __________ _ _______ + ____/ /__ / ____/ __ \/ | / /__ / + / __ / _ \/ / / / / / |/ / / / +/ /_/ / __/ /___/ /_/ / /| / / /__ +\__,_/\___/\____/\____/_/ |_/ /____/ + diff --git a/ct/deluge.app b/ct/deluge.app new file mode 100644 index 000000000..6dc49d04b --- /dev/null +++ b/ct/deluge.app @@ -0,0 +1,6 @@ + ____ __ + / __ \___ / /_ ______ ____ + / / / / _ \/ / / / / __ `/ _ \ + / /_/ / __/ / /_/ / /_/ / __/ +/_____/\___/_/\__,_/\__, /\___/ + /____/ diff --git a/ct/docker.app b/ct/docker.app new file mode 100644 index 000000000..907ffbaef --- /dev/null +++ b/ct/docker.app @@ -0,0 +1,6 @@ + ____ __ + / __ \____ _____/ /_____ _____ + / / / / __ \/ ___/ //_/ _ \/ ___/ + / /_/ / /_/ / /__/ ,< / __/ / +/_____/\____/\___/_/|_|\___/_/ + diff --git a/ct/dockge.app b/ct/dockge.app new file mode 100644 index 000000000..040b66ac8 --- /dev/null +++ b/ct/dockge.app @@ -0,0 +1,6 @@ + ____ __ + / __ \____ _____/ /______ ____ + / / / / __ \/ ___/ //_/ __ `/ _ \ + / /_/ / /_/ / /__/ ,< / /_/ / __/ +/_____/\____/\___/_/|_|\__, /\___/ + /____/ diff --git a/ct/dotnetaspwebapi.app b/ct/dotnetaspwebapi.app new file mode 100644 index 000000000..f00b63ca3 --- /dev/null +++ b/ct/dotnetaspwebapi.app @@ -0,0 +1,12 @@ + ____ __ __ ___ _____ ____ _ __ __ + / __ \____ / /_____ ___ / /_ / | / ___// __ \ | | / /__ / /_ + / / / / __ \/ __/ __ \/ _ \/ __/ / /| | \__ \/ /_/ / | | /| / / _ \/ __ \ + / /_/ / /_/ / /_/ / / / __/ /_ / ___ |___/ / ____/ | |/ |/ / __/ /_/ / +/_____/\____/\__/_/ /_/\___/\__/ /_/ |_/____/_/ |__/|__/\___/_.___/ + + ___ ____ ____ + / | / __ \/ _/ + / /| | / /_/ // / + / ___ |/ ____// / +/_/ |_/_/ /___/ + diff --git a/ct/emby.app b/ct/emby.app new file mode 100644 index 000000000..84afb1d6a --- /dev/null +++ b/ct/emby.app @@ -0,0 +1,6 @@ + ______ __ + / ____/___ ___ / /_ __ __ + / __/ / __ `__ \/ __ \/ / / / + / /___/ / / / / / /_/ / /_/ / +/_____/_/ /_/ /_/_.___/\__, / + /____/ diff --git a/ct/emqx.app b/ct/emqx.app new file mode 100644 index 000000000..f6cb5038c --- /dev/null +++ b/ct/emqx.app @@ -0,0 +1,6 @@ + ________ _______ _ __ + / ____/ |/ / __ \ | |/ / + / __/ / /|_/ / / / / | / + / /___/ / / / /_/ / / | +/_____/_/ /_/\___\_\/_/|_| + diff --git a/ct/ersatztv.app b/ct/ersatztv.app new file mode 100644 index 000000000..f47317c39 --- /dev/null +++ b/ct/ersatztv.app @@ -0,0 +1,6 @@ + ______ __ _______ __ + / ____/_____________ _/ /_____/_ __/ | / / + / __/ / ___/ ___/ __ `/ __/_ / / / | | / / + / /___/ / (__ ) /_/ / /_ / /_/ / | |/ / +/_____/_/ /____/\__,_/\__/ /___/_/ |___/ + diff --git a/ct/esphome.app b/ct/esphome.app new file mode 100644 index 000000000..5c9e86c65 --- /dev/null +++ b/ct/esphome.app @@ -0,0 +1,6 @@ + ___________ ____ __ __ + / ____/ ___// __ \/ / / /___ ____ ___ ___ + / __/ \__ \/ /_/ / /_/ / __ \/ __ `__ \/ _ \ + / /___ ___/ / ____/ __ / /_/ / / / / / / __/ +/_____//____/_/ /_/ /_/\____/_/ /_/ /_/\___/ + diff --git a/ct/evcc.app b/ct/evcc.app new file mode 100644 index 000000000..9317a5410 --- /dev/null +++ b/ct/evcc.app @@ -0,0 +1,6 @@ + + ___ _ ____________ + / _ \ | / / ___/ ___/ +/ __/ |/ / /__/ /__ +\___/|___/\___/\___/ + diff --git a/ct/fenrus.app b/ct/fenrus.app new file mode 100644 index 000000000..95e073aab --- /dev/null +++ b/ct/fenrus.app @@ -0,0 +1,6 @@ + ______ + / ____/__ ____ _______ _______ + / /_ / _ \/ __ \/ ___/ / / / ___/ + / __/ / __/ / / / / / /_/ (__ ) +/_/ \___/_/ /_/_/ \__,_/____/ + diff --git a/ct/fhem.app b/ct/fhem.app new file mode 100644 index 000000000..fe0a80c40 --- /dev/null +++ b/ct/fhem.app @@ -0,0 +1,6 @@ + ________ __________ ___ + / ____/ / / / ____/ |/ / + / /_ / /_/ / __/ / /|_/ / + / __/ / __ / /___/ / / / +/_/ /_/ /_/_____/_/ /_/ + diff --git a/ct/firefly.app b/ct/firefly.app new file mode 100644 index 000000000..3aabc10c5 --- /dev/null +++ b/ct/firefly.app @@ -0,0 +1,6 @@ + _______ ______ + / ____(_)_______ / __/ /_ __ + / /_ / / ___/ _ \/ /_/ / / / / + / __/ / / / / __/ __/ / /_/ / +/_/ /_/_/ \___/_/ /_/\__, / + /____/ diff --git a/ct/flaresolverr.app b/ct/flaresolverr.app new file mode 100644 index 000000000..a710dd625 --- /dev/null +++ b/ct/flaresolverr.app @@ -0,0 +1,6 @@ + ________ _____ __ + / ____/ /___ _________ / ___/____ / / _____ __________ + / /_ / / __ `/ ___/ _ \\__ \/ __ \/ / | / / _ \/ ___/ ___/ + / __/ / / /_/ / / / __/__/ / /_/ / /| |/ / __/ / / / +/_/ /_/\__,_/_/ \___/____/\____/_/ |___/\___/_/ /_/ + diff --git a/ct/flowiseai.app b/ct/flowiseai.app new file mode 100644 index 000000000..7011f22b4 --- /dev/null +++ b/ct/flowiseai.app @@ -0,0 +1,6 @@ + ________ _ ___ ____ + / ____/ /___ _ __(_)_______ / | / _/ + / /_ / / __ \ | /| / / / ___/ _ \/ /| | / / + / __/ / / /_/ / |/ |/ / (__ ) __/ ___ |_/ / +/_/ /_/\____/|__/|__/_/____/\___/_/ |_/___/ + diff --git a/ct/forgejo.app b/ct/forgejo.app new file mode 100644 index 000000000..4fb3af69e --- /dev/null +++ b/ct/forgejo.app @@ -0,0 +1,6 @@ + ______ _ + / ____/___ _________ ____ (_)___ + / /_ / __ \/ ___/ __ `/ _ \ / / __ \ + / __/ / /_/ / / / /_/ / __/ / / /_/ / +/_/ \____/_/ \__, /\___/_/ /\____/ + /____/ /___/ diff --git a/ct/frigate.app b/ct/frigate.app new file mode 100644 index 000000000..94ffd3a7d --- /dev/null +++ b/ct/frigate.app @@ -0,0 +1,6 @@ + ______ _ __ + / ____/____(_)___ _____ _/ /____ + / /_ / ___/ / __ `/ __ `/ __/ _ \ + / __/ / / / / /_/ / /_/ / /_/ __/ +/_/ /_/ /_/\__, /\__,_/\__/\___/ + /____/ diff --git a/ct/ghost.app b/ct/ghost.app new file mode 100644 index 000000000..c16e83b87 --- /dev/null +++ b/ct/ghost.app @@ -0,0 +1,6 @@ + ________ __ + / ____/ /_ ____ _____/ /_ + / / __/ __ \/ __ \/ ___/ __/ +/ /_/ / / / / /_/ (__ ) /_ +\____/_/ /_/\____/____/\__/ + diff --git a/ct/gitea.app b/ct/gitea.app new file mode 100644 index 000000000..7826ac30a --- /dev/null +++ b/ct/gitea.app @@ -0,0 +1,6 @@ + _______ __ + / ____(_) /____ ____ _ + / / __/ / __/ _ \/ __ `/ +/ /_/ / / /_/ __/ /_/ / +\____/_/\__/\___/\__,_/ + diff --git a/ct/glance.app b/ct/glance.app new file mode 100644 index 000000000..abaaa8af2 --- /dev/null +++ b/ct/glance.app @@ -0,0 +1,6 @@ + ________ + / ____/ /___ _____ ________ + / / __/ / __ `/ __ \/ ___/ _ \ +/ /_/ / / /_/ / / / / /__/ __/ +\____/_/\__,_/_/ /_/\___/\___/ + diff --git a/ct/glpi.app b/ct/glpi.app new file mode 100644 index 000000000..789b62590 --- /dev/null +++ b/ct/glpi.app @@ -0,0 +1,6 @@ + ________ ____ ____ + / ____/ / / __ \/ _/ + / / __/ / / /_/ // / +/ /_/ / /___/ ____// / +\____/_____/_/ /___/ + diff --git a/ct/go2rtc.app b/ct/go2rtc.app new file mode 100644 index 000000000..3a3e8bf8c --- /dev/null +++ b/ct/go2rtc.app @@ -0,0 +1,6 @@ + ___ __ + ____ _____ |__ \ _____/ /______ + / __ `/ __ \__/ // ___/ __/ ___/ + / /_/ / /_/ / __// / / /_/ /__ + \__, /\____/____/_/ \__/\___/ +/____/ diff --git a/ct/gokapi.app b/ct/gokapi.app new file mode 100644 index 000000000..c612c9fa1 --- /dev/null +++ b/ct/gokapi.app @@ -0,0 +1,6 @@ + ______ __ _ + / ____/___ / /______ _____ (_) + / / __/ __ \/ //_/ __ `/ __ \/ / +/ /_/ / /_/ / ,< / /_/ / /_/ / / +\____/\____/_/|_|\__,_/ .___/_/ + /_/ diff --git a/ct/gotify.app b/ct/gotify.app new file mode 100644 index 000000000..8532f9ef9 --- /dev/null +++ b/ct/gotify.app @@ -0,0 +1,6 @@ + ______ __ _ ____ + / ____/___ / /_(_) __/_ __ + / / __/ __ \/ __/ / /_/ / / / +/ /_/ / /_/ / /_/ / __/ /_/ / +\____/\____/\__/_/_/ \__, / + /____/ diff --git a/ct/grafana.app b/ct/grafana.app new file mode 100644 index 000000000..9eb8a245f --- /dev/null +++ b/ct/grafana.app @@ -0,0 +1,6 @@ + ______ ____ + / ____/________ _/ __/___ _____ ____ _ + / / __/ ___/ __ `/ /_/ __ `/ __ \/ __ `/ +/ /_/ / / / /_/ / __/ /_/ / / / / /_/ / +\____/_/ \__,_/_/ \__,_/_/ /_/\__,_/ + diff --git a/ct/grist.app b/ct/grist.app new file mode 100644 index 000000000..f82ced4f1 --- /dev/null +++ b/ct/grist.app @@ -0,0 +1,6 @@ + ______ _ __ + / ____/____(_)____/ /_ + / / __/ ___/ / ___/ __/ +/ /_/ / / / (__ ) /_ +\____/_/ /_/____/\__/ + diff --git a/ct/grocy.app b/ct/grocy.app new file mode 100644 index 000000000..2aad01d40 --- /dev/null +++ b/ct/grocy.app @@ -0,0 +1,6 @@ + + ____ __________ _______ __ + / __ `/ ___/ __ \/ ___/ / / / + / /_/ / / / /_/ / /__/ /_/ / + \__, /_/ \____/\___/\__, / +/____/ /____/ diff --git a/ct/headscale.app b/ct/headscale.app new file mode 100644 index 000000000..ff8ca5149 --- /dev/null +++ b/ct/headscale.app @@ -0,0 +1,6 @@ + __ __ __ __ + / / / /__ ____ _____/ /_____________ _/ /__ + / /_/ / _ \/ __ `/ __ / ___/ ___/ __ `/ / _ \ + / __ / __/ /_/ / /_/ (__ ) /__/ /_/ / / __/ +/_/ /_/\___/\__,_/\__,_/____/\___/\__,_/_/\___/ + diff --git a/ct/heimdall-dashboard.app b/ct/heimdall-dashboard.app new file mode 100644 index 000000000..245902b76 --- /dev/null +++ b/ct/heimdall-dashboard.app @@ -0,0 +1,12 @@ + __ __ _ __ ____ ____ __ __ + / / / /__ (_)___ ___ ____/ /___ _/ / / / __ \____ ______/ /_ / /_ + / /_/ / _ \/ / __ `__ \/ __ / __ `/ / /_____/ / / / __ `/ ___/ __ \/ __ \ + / __ / __/ / / / / / / /_/ / /_/ / / /_____/ /_/ / /_/ (__ ) / / / /_/ / +/_/ /_/\___/_/_/ /_/ /_/\__,_/\__,_/_/_/ /_____/\__,_/____/_/ /_/_.___/ + + __ + ____ ____ __________/ / + / __ \/ __ `/ ___/ __ / +/ /_/ / /_/ / / / /_/ / +\____/\__,_/_/ \__,_/ + diff --git a/ct/hivemq.app b/ct/hivemq.app new file mode 100644 index 000000000..ac5216a72 --- /dev/null +++ b/ct/hivemq.app @@ -0,0 +1,6 @@ + __ ___ __ _______ + / / / (_) _____ / |/ / __ \ + / /_/ / / | / / _ \/ /|_/ / / / / + / __ / /| |/ / __/ / / / /_/ / +/_/ /_/_/ |___/\___/_/ /_/\___\_\ + diff --git a/ct/hoarder.app b/ct/hoarder.app new file mode 100644 index 000000000..c09416d41 --- /dev/null +++ b/ct/hoarder.app @@ -0,0 +1,6 @@ + __ __ __ + / / / /___ ____ __________/ /__ _____ + / /_/ / __ \/ __ `/ ___/ __ / _ \/ ___/ + / __ / /_/ / /_/ / / / /_/ / __/ / +/_/ /_/\____/\__,_/_/ \__,_/\___/_/ + diff --git a/ct/homarr.app b/ct/homarr.app new file mode 100644 index 000000000..1bd7a939e --- /dev/null +++ b/ct/homarr.app @@ -0,0 +1,6 @@ + __ __ + / / / /___ ____ ___ ____ ___________ + / /_/ / __ \/ __ `__ \/ __ `/ ___/ ___/ + / __ / /_/ / / / / / / /_/ / / / / +/_/ /_/\____/_/ /_/ /_/\__,_/_/ /_/ + diff --git a/ct/homeassistant-core.app b/ct/homeassistant-core.app new file mode 100644 index 000000000..efbc16431 --- /dev/null +++ b/ct/homeassistant-core.app @@ -0,0 +1,12 @@ + __ __ + / / / /___ ____ ___ ___ + / /_/ / __ \/ __ `__ \/ _ \ + / __ / /_/ / / / / / / __/ +/_/ /_/\____/_/ /_/ /_/\___/ + + ___ _ __ __ ______ + / | __________(_)____/ /_____ _____ / /_ / ____/___ ________ + / /| | / ___/ ___/ / ___/ __/ __ `/ __ \/ __/_____/ / / __ \/ ___/ _ \ + / ___ |(__ |__ ) (__ ) /_/ /_/ / / / / /_/_____/ /___/ /_/ / / / __/ +/_/ |_/____/____/_/____/\__/\__,_/_/ /_/\__/ \____/\____/_/ \___/ + diff --git a/ct/homeassistant.app b/ct/homeassistant.app new file mode 100644 index 000000000..a88730f49 --- /dev/null +++ b/ct/homeassistant.app @@ -0,0 +1,6 @@ + __ __ ___ _ __ __ + / / / /___ ____ ___ ___ / | __________(_)____/ /_____ _____ / /_ + / /_/ / __ \/ __ `__ \/ _ \ / /| | / ___/ ___/ / ___/ __/ __ `/ __ \/ __/ + / __ / /_/ / / / / / / __/ / ___ |(__ |__ ) (__ ) /_/ /_/ / / / / /_ +/_/ /_/\____/_/ /_/ /_/\___/ /_/ |_/____/____/_/____/\__/\__,_/_/ /_/\__/ + diff --git a/ct/homebox.app b/ct/homebox.app new file mode 100644 index 000000000..da717216b --- /dev/null +++ b/ct/homebox.app @@ -0,0 +1,6 @@ + __ __ ____ + / / / /___ ____ ___ ___ / __ )____ _ __ + / /_/ / __ \/ __ `__ \/ _ \/ __ / __ \| |/_/ + / __ / /_/ / / / / / / __/ /_/ / /_/ /> < +/_/ /_/\____/_/ /_/ /_/\___/_____/\____/_/|_| + diff --git a/ct/homebridge.app b/ct/homebridge.app new file mode 100644 index 000000000..a3da02405 --- /dev/null +++ b/ct/homebridge.app @@ -0,0 +1,6 @@ + __ __ __ _ __ + / / / /___ ____ ___ ___ / /_ _____(_)___/ /___ ____ + / /_/ / __ \/ __ `__ \/ _ \/ __ \/ ___/ / __ / __ `/ _ \ + / __ / /_/ / / / / / / __/ /_/ / / / / /_/ / /_/ / __/ +/_/ /_/\____/_/ /_/ /_/\___/_.___/_/ /_/\__,_/\__, /\___/ + /____/ diff --git a/ct/homepage.app b/ct/homepage.app new file mode 100644 index 000000000..4ff42a16b --- /dev/null +++ b/ct/homepage.app @@ -0,0 +1,6 @@ + __ __ + / / / /___ ____ ___ ___ ____ ____ _____ ____ + / /_/ / __ \/ __ `__ \/ _ \/ __ \/ __ `/ __ `/ _ \ + / __ / /_/ / / / / / / __/ /_/ / /_/ / /_/ / __/ +/_/ /_/\____/_/ /_/ /_/\___/ .___/\__,_/\__, /\___/ + /_/ /____/ diff --git a/ct/homer.app b/ct/homer.app new file mode 100644 index 000000000..80e4281a2 --- /dev/null +++ b/ct/homer.app @@ -0,0 +1,6 @@ + __ __ + / / / /___ ____ ___ ___ _____ + / /_/ / __ \/ __ `__ \/ _ \/ ___/ + / __ / /_/ / / / / / / __/ / +/_/ /_/\____/_/ /_/ /_/\___/_/ + diff --git a/ct/hyperhdr.app b/ct/hyperhdr.app new file mode 100644 index 000000000..cbbcfc570 --- /dev/null +++ b/ct/hyperhdr.app @@ -0,0 +1,6 @@ + __ __ __ ______ ____ + / / / /_ ______ ___ _____/ / / / __ \/ __ \ + / /_/ / / / / __ \/ _ \/ ___/ /_/ / / / / /_/ / + / __ / /_/ / /_/ / __/ / / __ / /_/ / _, _/ +/_/ /_/\__, / .___/\___/_/ /_/ /_/_____/_/ |_| + /____/_/ diff --git a/ct/hyperion.app b/ct/hyperion.app new file mode 100644 index 000000000..2c0f7972c --- /dev/null +++ b/ct/hyperion.app @@ -0,0 +1,6 @@ + __ __ _ + / / / /_ ______ ___ _____(_)___ ____ + / /_/ / / / / __ \/ _ \/ ___/ / __ \/ __ \ + / __ / /_/ / /_/ / __/ / / / /_/ / / / / +/_/ /_/\__, / .___/\___/_/ /_/\____/_/ /_/ + /____/_/ diff --git a/ct/influxdb.app b/ct/influxdb.app new file mode 100644 index 000000000..b8efea541 --- /dev/null +++ b/ct/influxdb.app @@ -0,0 +1,6 @@ + ____ ______ ____ ____ + / _/___ / __/ /_ ___ __/ __ \/ __ ) + / // __ \/ /_/ / / / / |/_/ / / / __ | + _/ // / / / __/ / /_/ /> < +/_/ |_/\___/\__/_____/\____/_/|_| + diff --git a/ct/nextcloudpi.app b/ct/nextcloudpi.app new file mode 100644 index 000000000..9aa8b5943 --- /dev/null +++ b/ct/nextcloudpi.app @@ -0,0 +1,6 @@ + _ __ __ ________ ______ _ + / | / /__ _ __/ /_/ ____/ /___ __ ______/ / __ \(_) + / |/ / _ \| |/_/ __/ / / / __ \/ / / / __ / /_/ / / + / /| / __/> < / ____/ / / /_/ /> < +/_/ \__,_/ .___/\___/_/ /_/\___/____/____/ /_/ /_/\__, /_/|_| + /_/ /____/ diff --git a/ct/part-db.app b/ct/part-db.app new file mode 100644 index 000000000..fe3255506 --- /dev/null +++ b/ct/part-db.app @@ -0,0 +1,6 @@ + ____ __ ____ ____ + / __ \____ ______/ /_ / __ \/ __ ) + / /_/ / __ `/ ___/ __/_____/ / / / __ | + / ____/ /_/ / / / /_/_____/ /_/ / /_/ / +/_/ \__,_/_/ \__/ /_____/_____/ + diff --git a/ct/pbs.app b/ct/pbs.app new file mode 100644 index 000000000..785d90a83 --- /dev/null +++ b/ct/pbs.app @@ -0,0 +1,6 @@ + ____ ____ _____ + / __ \/ __ ) ___/ + / /_/ / __ \__ \ + / ____/ /_/ /__/ / +/_/ /_____/____/ + diff --git a/ct/peanut.app b/ct/peanut.app new file mode 100644 index 000000000..11a2cd5c6 --- /dev/null +++ b/ct/peanut.app @@ -0,0 +1,6 @@ + ____ _ ____ ________ + / __ \___ ____ _/ | / / / / /_ __/ + / /_/ / _ \/ __ `/ |/ / / / / / / + / ____/ __/ /_/ / /| / /_/ / / / +/_/ \___/\__,_/_/ |_/\____/ /_/ + diff --git a/ct/petio.app b/ct/petio.app new file mode 100644 index 000000000..d8deb745a --- /dev/null +++ b/ct/petio.app @@ -0,0 +1,6 @@ + ____ __ _ + / __ \___ / /_(_)___ + / /_/ / _ \/ __/ / __ \ + / ____/ __/ /_/ / /_/ / +/_/ \___/\__/_/\____/ + diff --git a/ct/pf2etools.app b/ct/pf2etools.app new file mode 100644 index 000000000..b6f7cb106 --- /dev/null +++ b/ct/pf2etools.app @@ -0,0 +1,6 @@ + ____ _______ ______ __ + / __ \/ __/__ \ ___/_ __/___ ____ / /____ + / /_/ / /_ __/ // _ \/ / / __ \/ __ \/ / ___/ + / ____/ __// __// __/ / / /_/ / /_/ / (__ ) +/_/ /_/ /____/\___/_/ \____/\____/_/____/ + diff --git a/ct/photoprism.app b/ct/photoprism.app new file mode 100644 index 000000000..a8a9cabe5 --- /dev/null +++ b/ct/photoprism.app @@ -0,0 +1,6 @@ + ____ __ __ ____ _ + / __ \/ /_ ____ / /_____ / __ \_____(_)________ ___ + / /_/ / __ \/ __ \/ __/ __ \/ /_/ / ___/ / ___/ __ `__ \ + / ____/ / / / /_/ / /_/ /_/ / ____/ / / (__ ) / / / / / +/_/ /_/ /_/\____/\__/\____/_/ /_/ /_/____/_/ /_/ /_/ + diff --git a/ct/phpipam.app b/ct/phpipam.app new file mode 100644 index 000000000..51ba79de5 --- /dev/null +++ b/ct/phpipam.app @@ -0,0 +1,6 @@ + __ ________ ___ __ ___ + ____ / /_ ____ / _/ __ \/ | / |/ / + / __ \/ __ \/ __ \ / // /_/ / /| | / /|_/ / + / /_/ / / / / /_/ // // ____/ ___ |/ / / / + / .___/_/ /_/ .___/___/_/ /_/ |_/_/ /_/ +/_/ /_/ diff --git a/ct/pialert.app b/ct/pialert.app new file mode 100644 index 000000000..07f2474c1 --- /dev/null +++ b/ct/pialert.app @@ -0,0 +1,6 @@ + ____ _ ___ __ __ + / __ \(_) | / /__ _____/ /_ + / /_/ / / /| | / / _ \/ ___/ __/ + / ____/ / ___ |/ / __/ / / /_ +/_/ /_/_/ |_/_/\___/_/ \__/ + diff --git a/ct/pihole.app b/ct/pihole.app new file mode 100644 index 000000000..9a727b229 --- /dev/null +++ b/ct/pihole.app @@ -0,0 +1,6 @@ + ____ _ __ __ + / __ \(_) /_ ____ / /__ + / /_/ / / __ \/ __ \/ / _ \ + / ____/ / / / / /_/ / / __/ +/_/ /_/_/ /_/\____/_/\___/ + diff --git a/ct/pingvin.app b/ct/pingvin.app new file mode 100644 index 000000000..8177f8179 --- /dev/null +++ b/ct/pingvin.app @@ -0,0 +1,6 @@ + ____ _ _ + / __ \(_)___ ____ __ __(_)___ + / /_/ / / __ \/ __ `/ | / / / __ \ + / ____/ / / / / /_/ /| |/ / / / / / +/_/ /_/_/ /_/\__, / |___/_/_/ /_/ + /____/ diff --git a/ct/plex.app b/ct/plex.app new file mode 100644 index 000000000..2e27d0b8e --- /dev/null +++ b/ct/plex.app @@ -0,0 +1,6 @@ + ____ __ + / __ \/ /__ _ __ + / /_/ / / _ \| |/_/ + / ____/ / __/> < +/_/ /_/\___/_/|_| + diff --git a/ct/pocketbase.app b/ct/pocketbase.app new file mode 100644 index 000000000..5eea86259 --- /dev/null +++ b/ct/pocketbase.app @@ -0,0 +1,6 @@ + ____ __ __ __ + / __ \____ _____/ /_____ / /_/ /_ ____ _________ + / /_/ / __ \/ ___/ //_/ _ \/ __/ __ \/ __ `/ ___/ _ \ + / ____/ /_/ / /__/ ,< / __/ /_/ /_/ / /_/ (__ ) __/ +/_/ \____/\___/_/|_|\___/\__/_.___/\__,_/____/\___/ + diff --git a/ct/podman-homeassistant.app b/ct/podman-homeassistant.app new file mode 100644 index 000000000..c1241da46 --- /dev/null +++ b/ct/podman-homeassistant.app @@ -0,0 +1,12 @@ + ____ __ __ __ + / __ \____ ____/ /___ ___ ____ _____ / / / /___ ____ ___ ___ + / /_/ / __ \/ __ / __ `__ \/ __ `/ __ \______/ /_/ / __ \/ __ `__ \/ _ \ + / ____/ /_/ / /_/ / / / / / / /_/ / / / /_____/ __ / /_/ / / / / / / __/ +/_/ \____/\__,_/_/ /_/ /_/\__,_/_/ /_/ /_/ /_/\____/_/ /_/ /_/\___/ + + ___ _ __ __ + / | __________(_)____/ /_____ _____ / /_ + / /| | / ___/ ___/ / ___/ __/ __ `/ __ \/ __/ + / ___ |(__ |__ ) (__ ) /_/ /_/ / / / / /_ +/_/ |_/____/____/_/____/\__/\__,_/_/ /_/\__/ + diff --git a/ct/podman.app b/ct/podman.app new file mode 100644 index 000000000..2f81f14a8 --- /dev/null +++ b/ct/podman.app @@ -0,0 +1,6 @@ + ____ __ + / __ \____ ____/ /___ ___ ____ _____ + / /_/ / __ \/ __ / __ `__ \/ __ `/ __ \ + / ____/ /_/ / /_/ / / / / / / /_/ / / / / +/_/ \____/\__,_/_/ /_/ /_/\__,_/_/ /_/ + diff --git a/ct/postgresql.app b/ct/postgresql.app new file mode 100644 index 000000000..8297b0ad4 --- /dev/null +++ b/ct/postgresql.app @@ -0,0 +1,6 @@ + ____ __ _____ ____ __ + / __ \____ _____/ /_____ _________ / ___// __ \ / / + / /_/ / __ \/ ___/ __/ __ `/ ___/ _ \\__ \/ / / / / / + / ____/ /_/ (__ ) /_/ /_/ / / / __/__/ / /_/ / / /___ +/_/ \____/____/\__/\__, /_/ \___/____/\___\_\/_____/ + /____/ diff --git a/ct/projectsend.app b/ct/projectsend.app new file mode 100644 index 000000000..c388eb724 --- /dev/null +++ b/ct/projectsend.app @@ -0,0 +1,6 @@ + ____ _ __ _____ __ + / __ \_________ (_)__ _____/ /_/ ___/___ ____ ____/ / + / /_/ / ___/ __ \ / / _ \/ ___/ __/\__ \/ _ \/ __ \/ __ / + / ____/ / / /_/ / / / __/ /__/ /_ ___/ / __/ / / / /_/ / +/_/ /_/ \____/_/ /\___/\___/\__//____/\___/_/ /_/\__,_/ + /___/ diff --git a/ct/prometheus-alertmanager.app b/ct/prometheus-alertmanager.app new file mode 100644 index 000000000..43a4876bd --- /dev/null +++ b/ct/prometheus-alertmanager.app @@ -0,0 +1,12 @@ + ____ __ __ ___ __ + / __ \_________ ____ ___ ___ / /_/ /_ ___ __ _______ / | / / + / /_/ / ___/ __ \/ __ `__ \/ _ \/ __/ __ \/ _ \/ / / / ___/_____/ /| | / / + / ____/ / / /_/ / / / / / / __/ /_/ / / / __/ /_/ (__ )_____/ ___ |/ / +/_/ /_/ \____/_/ /_/ /_/\___/\__/_/ /_/\___/\__,_/____/ /_/ |_/_/ + + __ + ___ _____/ /_____ ___ ____ _____ ____ _____ ____ _____ + / _ \/ ___/ __/ __ `__ \/ __ `/ __ \/ __ `/ __ `/ _ \/ ___/ +/ __/ / / /_/ / / / / / /_/ / / / / /_/ / /_/ / __/ / +\___/_/ \__/_/ /_/ /_/\__,_/_/ /_/\__,_/\__, /\___/_/ + /____/ diff --git a/ct/prometheus.app b/ct/prometheus.app new file mode 100644 index 000000000..f5a9cccce --- /dev/null +++ b/ct/prometheus.app @@ -0,0 +1,6 @@ + ____ __ __ + / __ \_________ ____ ___ ___ / /_/ /_ ___ __ _______ + / /_/ / ___/ __ \/ __ `__ \/ _ \/ __/ __ \/ _ \/ / / / ___/ + / ____/ / / /_/ / / / / / / __/ /_/ / / / __/ /_/ (__ ) +/_/ /_/ \____/_/ /_/ /_/\___/\__/_/ /_/\___/\__,_/____/ + diff --git a/ct/prowlarr.app b/ct/prowlarr.app new file mode 100644 index 000000000..10255b7ae --- /dev/null +++ b/ct/prowlarr.app @@ -0,0 +1,6 @@ + ____ __ + / __ \_________ _ __/ /___ ___________ + / /_/ / ___/ __ \ | /| / / / __ `/ ___/ ___/ + / ____/ / / /_/ / |/ |/ / / /_/ / / / / +/_/ /_/ \____/|__/|__/_/\__,_/_/ /_/ + diff --git a/ct/proxmox-datacenter-manager.app b/ct/proxmox-datacenter-manager.app new file mode 100644 index 000000000..bd181cc98 --- /dev/null +++ b/ct/proxmox-datacenter-manager.app @@ -0,0 +1,18 @@ + __ __ + ____ _________ _ ______ ___ ____ _ __ ____/ /___ _/ /_____ _ + / __ \/ ___/ __ \| |/_/ __ `__ \/ __ \| |/_/_____/ __ / __ `/ __/ __ `/ + / /_/ / / / /_/ /> < +/____/\__,_/_.___/_.___/_/_/|_| + diff --git a/ct/zammad.app b/ct/zammad.app new file mode 100644 index 000000000..eb9999df1 --- /dev/null +++ b/ct/zammad.app @@ -0,0 +1,6 @@ + _____ __ +/__ / ____ _____ ___ ____ ___ ____ _____/ / + / / / __ `/ __ `__ \/ __ `__ \/ __ `/ __ / + / /__/ /_/ / / / / / / / / / / / /_/ / /_/ / +/____/\__,_/_/ /_/ /_/_/ /_/ /_/\__,_/\__,_/ + diff --git a/ct/zigbee2mqtt.app b/ct/zigbee2mqtt.app new file mode 100644 index 000000000..f6925a017 --- /dev/null +++ b/ct/zigbee2mqtt.app @@ -0,0 +1,6 @@ + _____ _ __ ___ __ _______ ____________ +/__ / (_)___ _/ /_ ___ ___ |__ \ / |/ / __ \/_ __/_ __/ + / / / / __ `/ __ \/ _ \/ _ \__/ // /|_/ / / / / / / / / + / /__/ / /_/ / /_/ / __/ __/ __// / / / /_/ / / / / / +/____/_/\__, /_.___/\___/\___/____/_/ /_/\___\_\/_/ /_/ + /____/ diff --git a/ct/zipline.app b/ct/zipline.app new file mode 100644 index 000000000..ce2b4b914 --- /dev/null +++ b/ct/zipline.app @@ -0,0 +1,6 @@ + _____ _ ___ +/__ / (_)___ / (_)___ ___ + / / / / __ \/ / / __ \/ _ \ + / /__/ / /_/ / / / / / / __/ +/____/_/ .___/_/_/_/ /_/\___/ + /_/ diff --git a/ct/zoraxy.app b/ct/zoraxy.app new file mode 100644 index 000000000..f93198af0 --- /dev/null +++ b/ct/zoraxy.app @@ -0,0 +1,6 @@ + _____ +/__ / ____ _________ __ ____ __ + / / / __ \/ ___/ __ `/ |/_/ / / / + / /__/ /_/ / / / /_/ /> Date: Fri, 24 Jan 2025 14:06:03 +0100 Subject: [PATCH 177/284] fix reapproval --- .github/workflows/auto-update-app-headers.yml | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/.github/workflows/auto-update-app-headers.yml b/.github/workflows/auto-update-app-headers.yml index 15f7ee044..f1303ebdd 100644 --- a/.github/workflows/auto-update-app-headers.yml +++ b/.github/workflows/auto-update-app-headers.yml @@ -70,9 +70,20 @@ jobs: env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | + # Get the PR number for the current branch PR_NUMBER=$(gh pr list --head "pr-update-app-files" --json number --jq '.[].number') - PR_AUTHOR=$(gh pr view "$PR_NUMBER" --json author --jq '.author.login') - if [ "$PR_AUTHOR" != "github-actions[bot]" ]; then - gh pr review "$PR_NUMBER" --approve + + # Check if a PR number was retrieved + if [ -n "$PR_NUMBER" ]; then + # Get the PR author + PR_AUTHOR=$(gh pr view "$PR_NUMBER" --json author --jq '.author.login') + + # Approve the PR if it was not created by the bot + if [ "$PR_AUTHOR" != "github-actions[bot]" ]; then + gh pr review "$PR_NUMBER" --approve + else + echo "PR was created by the bot, skipping review." + fi else - echo "PR was created by the bot, skipping review." + echo "No PR found for the current branch." + fi From 3cea72cf51aacbdec93b6c2f0d88d19b8381d53c Mon Sep 17 00:00:00 2001 From: "community-scripts-pr-app[bot]" <189241966+community-scripts-pr-app[bot]@users.noreply.github.com> Date: Fri, 24 Jan 2025 14:06:24 +0100 Subject: [PATCH 178/284] Update CHANGELOG.md (#1720) Co-authored-by: github-actions[bot] --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4f709fe0b..443239b21 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,6 +31,10 @@ Do not break established syntax in this file, as it is automatically updated by - Feature: Ubuntu 22.04 VM > Redesign | Optional HDD-Size Prompt [@MickLesk](https://github.com/MickLesk) ([#1712](https://github.com/community-scripts/ProxmoxVE/pull/1712)) - Feature: Ubuntu 24.04 VM > Redesign | Optional HDD-Size Prompt | cifs support [@MickLesk](https://github.com/MickLesk) ([#1714](https://github.com/community-scripts/ProxmoxVE/pull/1714)) +### 🧰 Maintenance + +- [Core] Better Creation of App Headers for next feature [@MickLesk](https://github.com/MickLesk) ([#1719](https://github.com/community-scripts/ProxmoxVE/pull/1719)) + ## 2025-01-23 ### Changed From 1c008a1742bb12a974ec52c073b1e9b96fab2644 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Fri, 24 Jan 2025 14:09:09 +0100 Subject: [PATCH 179/284] diff check --- .github/workflows/auto-update-app-headers.yml | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/.github/workflows/auto-update-app-headers.yml b/.github/workflows/auto-update-app-headers.yml index f1303ebdd..3d01ec452 100644 --- a/.github/workflows/auto-update-app-headers.yml +++ b/.github/workflows/auto-update-app-headers.yml @@ -39,11 +39,17 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # Step 5: Check for changes + # Step 5: Check if there are any changes - name: Check if there are any changes id: verify-diff run: | - git diff --quiet . || echo "changed=true" >> $GITHUB_OUTPUT + if git diff --quiet; then + echo "No changes detected." + echo "changed=false" >> $GITHUB_OUTPUT + else + echo "Changes detected." + echo "changed=true" >> $GITHUB_OUTPUT + fi # Step 6: Commit changes (if any) and create a PR - name: Commit and create PR if changes exist @@ -51,8 +57,9 @@ jobs: run: | git config --global user.name "github-actions[bot]" git config --global user.email "github-actions[bot]@users.noreply.github.com" - git add ct/*.app + git add ./ct/*.app git commit -m "Update .app files" + # Create a temporary branch for the PR git checkout -b pr-update-app-files git push origin pr-update-app-files --force @@ -65,6 +72,12 @@ jobs: env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # Step 7: Output success message when no changes + - name: No changes detected + if: steps.verify-diff.outputs.changed == 'false' + run: echo "No changes to commit. Workflow completed successfully." + + - name: Re-approve pull request after update if: steps.verify-diff.outputs.changed == 'true' env: From f23da27ba2a0fefbb8e8bf97accd805f0d2481fb Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Fri, 24 Jan 2025 14:11:39 +0100 Subject: [PATCH 180/284] Update auto-update-app-headers.yml --- .github/workflows/auto-update-app-headers.yml | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/.github/workflows/auto-update-app-headers.yml b/.github/workflows/auto-update-app-headers.yml index 3d01ec452..79a92c7e8 100644 --- a/.github/workflows/auto-update-app-headers.yml +++ b/.github/workflows/auto-update-app-headers.yml @@ -25,7 +25,7 @@ jobs: - name: Set up Git run: | git config --global user.name "GitHub Actions" - git config --global user.email "actions@github.com" + git config --global user.email "github-actions[bot]@users.noreply.github.com" # Step 3: Install figlet - name: Install figlet @@ -55,17 +55,13 @@ jobs: - name: Commit and create PR if changes exist if: steps.verify-diff.outputs.changed == 'true' run: | - git config --global user.name "github-actions[bot]" - git config --global user.email "github-actions[bot]@users.noreply.github.com" - git add ./ct/*.app + git add -A git commit -m "Update .app files" - # Create a temporary branch for the PR git checkout -b pr-update-app-files git push origin pr-update-app-files --force - # Create PR against main gh pr create --title "[core] update .app files" \ - --body "This PR is auto-generated by a Github Action to update the .app files." \ + --body "This PR is auto-generated by a GitHub Action to update the .app files." \ --head pr-update-app-files \ --base main \ --label "automated pr" @@ -77,21 +73,15 @@ jobs: if: steps.verify-diff.outputs.changed == 'false' run: echo "No changes to commit. Workflow completed successfully." - + # Step 8: Re-approve pull request after update - name: Re-approve pull request after update if: steps.verify-diff.outputs.changed == 'true' env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - # Get the PR number for the current branch PR_NUMBER=$(gh pr list --head "pr-update-app-files" --json number --jq '.[].number') - - # Check if a PR number was retrieved if [ -n "$PR_NUMBER" ]; then - # Get the PR author PR_AUTHOR=$(gh pr view "$PR_NUMBER" --json author --jq '.author.login') - - # Approve the PR if it was not created by the bot if [ "$PR_AUTHOR" != "github-actions[bot]" ]; then gh pr review "$PR_NUMBER" --approve else From d852e7b09832030d53fae6f10914632dcc1fbfa2 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Fri, 24 Jan 2025 14:13:05 +0100 Subject: [PATCH 181/284] Update auto-update-app-headers.yml --- .github/workflows/auto-update-app-headers.yml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/auto-update-app-headers.yml b/.github/workflows/auto-update-app-headers.yml index 79a92c7e8..5d67131c3 100644 --- a/.github/workflows/auto-update-app-headers.yml +++ b/.github/workflows/auto-update-app-headers.yml @@ -80,13 +80,20 @@ jobs: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | PR_NUMBER=$(gh pr list --head "pr-update-app-files" --json number --jq '.[].number') + if [ -n "$PR_NUMBER" ]; then PR_AUTHOR=$(gh pr view "$PR_NUMBER" --json author --jq '.author.login') + + # Skip approval if the PR was created by the bot if [ "$PR_AUTHOR" != "github-actions[bot]" ]; then gh pr review "$PR_NUMBER" --approve else - echo "PR was created by the bot, skipping review." + echo "Skipping approval: PR was created by the bot." fi else echo "No PR found for the current branch." fi + + else + echo "No PR found for the current branch." + fi From 3d99b49a9956dc5ad31fc2825450d1a19905d6cc Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Fri, 24 Jan 2025 14:14:45 +0100 Subject: [PATCH 182/284] Update auto-update-app-headers.yml --- .github/workflows/auto-update-app-headers.yml | 25 ------------------- 1 file changed, 25 deletions(-) diff --git a/.github/workflows/auto-update-app-headers.yml b/.github/workflows/auto-update-app-headers.yml index 5d67131c3..501c4343f 100644 --- a/.github/workflows/auto-update-app-headers.yml +++ b/.github/workflows/auto-update-app-headers.yml @@ -72,28 +72,3 @@ jobs: - name: No changes detected if: steps.verify-diff.outputs.changed == 'false' run: echo "No changes to commit. Workflow completed successfully." - - # Step 8: Re-approve pull request after update - - name: Re-approve pull request after update - if: steps.verify-diff.outputs.changed == 'true' - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - PR_NUMBER=$(gh pr list --head "pr-update-app-files" --json number --jq '.[].number') - - if [ -n "$PR_NUMBER" ]; then - PR_AUTHOR=$(gh pr view "$PR_NUMBER" --json author --jq '.author.login') - - # Skip approval if the PR was created by the bot - if [ "$PR_AUTHOR" != "github-actions[bot]" ]; then - gh pr review "$PR_NUMBER" --approve - else - echo "Skipping approval: PR was created by the bot." - fi - else - echo "No PR found for the current branch." - fi - - else - echo "No PR found for the current branch." - fi From 5415bfd21af1104e00eed042cb5189f6ce3b4795 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Fri, 24 Jan 2025 14:16:47 +0100 Subject: [PATCH 183/284] Update generate-app-headers.sh --- .github/workflows/scripts/generate-app-headers.sh | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.github/workflows/scripts/generate-app-headers.sh b/.github/workflows/scripts/generate-app-headers.sh index 4d92951f5..e0811495c 100644 --- a/.github/workflows/scripts/generate-app-headers.sh +++ b/.github/workflows/scripts/generate-app-headers.sh @@ -14,9 +14,13 @@ find ./ct -type f -name "*.sh" | sort | while read -r script; do # Generate figlet output figlet_output=$(figlet -f slant "$app_name") - # Write the figlet output to the file - echo "$figlet_output" > "$output_file" - echo "Generated: $output_file" + # Check if figlet output is not empty + if [[ -n "$figlet_output" ]]; then + echo "$figlet_output" > "$output_file" + echo "Generated: $output_file" + else + echo "Figlet failed for $app_name in $script" + fi else echo "Skipped: $output_file already exists" fi From 0313de615a1a2690d387074a5778238047f84a2f Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Fri, 24 Jan 2025 14:18:39 +0100 Subject: [PATCH 184/284] Update auto-update-app-headers.yml --- .github/workflows/auto-update-app-headers.yml | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/.github/workflows/auto-update-app-headers.yml b/.github/workflows/auto-update-app-headers.yml index 501c4343f..44ddcb026 100644 --- a/.github/workflows/auto-update-app-headers.yml +++ b/.github/workflows/auto-update-app-headers.yml @@ -17,21 +17,25 @@ jobs: pull-requests: write steps: - # Step 1: Checkout repository + # Step 1: Checkout repository - name: Checkout repository uses: actions/checkout@v2 - # Step 2: Set up Git user for committing changes + # Step 2: Disable file mode changes detection + - name: Disable file mode changes + run: git config core.fileMode false + + # Step 3: Set up Git user for committing changes - name: Set up Git run: | git config --global user.name "GitHub Actions" git config --global user.email "github-actions[bot]@users.noreply.github.com" - # Step 3: Install figlet + # Step 4: Install figlet - name: Install figlet run: sudo apt-get install -y figlet - # Step 4: Run the updated generate-app-files.sh script + # Step 5: Run the updated generate-app-files.sh script - name: Run generate-app-files.sh run: | chmod +x .github/workflows/scripts/generate-app-headers.sh @@ -39,7 +43,7 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # Step 5: Check if there are any changes + # Step 6: Check if there are any changes - name: Check if there are any changes id: verify-diff run: | @@ -51,7 +55,7 @@ jobs: echo "changed=true" >> $GITHUB_OUTPUT fi - # Step 6: Commit changes (if any) and create a PR + # Step 7: Commit changes (if any) and create a PR - name: Commit and create PR if changes exist if: steps.verify-diff.outputs.changed == 'true' run: | @@ -68,7 +72,7 @@ jobs: env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # Step 7: Output success message when no changes + # Step 8: Output success message when no changes - name: No changes detected if: steps.verify-diff.outputs.changed == 'false' run: echo "No changes to commit. Workflow completed successfully." From 4e8317d30c91a30275ba59612c0d9df92ef0e543 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 24 Jan 2025 14:24:01 +0100 Subject: [PATCH 185/284] Update .app files (#1725) Co-authored-by: GitHub Actions --- .github/workflows/scripts/generate-app-headers.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 .github/workflows/scripts/generate-app-headers.sh diff --git a/.github/workflows/scripts/generate-app-headers.sh b/.github/workflows/scripts/generate-app-headers.sh old mode 100644 new mode 100755 From 17745c344b8397d29a595f44b66c1ff2f5f20812 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Fri, 24 Jan 2025 14:30:18 +0100 Subject: [PATCH 186/284] Update actualbudget.sh --- ct/actualbudget.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ct/actualbudget.sh b/ct/actualbudget.sh index 46aad3c2f..2680b56ad 100644 --- a/ct/actualbudget.sh +++ b/ct/actualbudget.sh @@ -43,10 +43,10 @@ function update_script() { msg_info "Updating ${APP} to ${RELEASE}" cd /tmp wget -q https://github.com/actualbudget/actual-server/archive/refs/tags/v${RELEASE}.tar.gz - tar -xzf v${RELEASE}.tar.gz >/dev/null 2>&1 mv /opt/actualbudget /opt/actualbudget_bak mkdir -p /opt/actualbudget/ - mv *ctual-server-* /opt/actualbudget + tar -xzf v${RELEASE}.tar.gz >/dev/null 2>&1 + mv *ctual-server-*/* /opt/actualbudget mv /opt/actualbudget_bak/.env /opt/actualbudget mv /opt/actualbudget_bak/server-files /opt/actualbudget/server-files cd /opt/actualbudget From 75f90409ebf34e213a10a29bbdcf739c1d868b0c Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Fri, 24 Jan 2025 14:41:03 +0100 Subject: [PATCH 187/284] Update actualbudget-install.sh --- install/actualbudget-install.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/install/actualbudget-install.sh b/install/actualbudget-install.sh index c4e203d47..b6068c2cd 100644 --- a/install/actualbudget-install.sh +++ b/install/actualbudget-install.sh @@ -18,6 +18,7 @@ $STD apt-get install -y \ curl \ sudo \ mc \ + tini \ gpg \ build-essential msg_ok "Installed Dependencies" From dbb138317dcae0de97c9a24613c813c7df9d8838 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Fri, 24 Jan 2025 14:45:32 +0100 Subject: [PATCH 188/284] remove headers for testing --- ct/2fauth.app | 6 ------ ct/5etools.app | 6 ------ ct/actualbudget.app | 6 ------ ct/adguard.app | 6 ------ ct/adventurelog.app | 6 ------ ct/agentdvr.app | 6 ------ ct/alpine-docker.app | 6 ------ ct/alpine-grafana.app | 6 ------ ct/alpine-nextcloud.app | 12 ------------ ct/alpine-vaultwarden.app | 12 ------------ ct/alpine-zigbee2mqtt.app | 12 ------------ ct/alpine.app | 6 ------ ct/apache-cassandra.app | 12 ------------ ct/apache-couchdb.app | 12 ------------ ct/apache-guacamole.app | 12 ------------ ct/apt-cacher-ng.app | 6 ------ ct/archivebox.app | 6 ------ ct/aria2.app | 6 ------ ct/audiobookshelf.app | 6 ------ ct/authentik.app | 6 ------ ct/autobrr.app | 6 ------ ct/bazarr.app | 6 ------ ct/beszel.app | 6 ------ ct/blocky.app | 6 ------ ct/bookstack.app | 6 ------ ct/bunkerweb.app | 6 ------ ct/caddy.app | 6 ------ ct/calibre-web.app | 6 ------ ct/casaos.app | 6 ------ ct/changedetection.app | 12 ------------ ct/channels.app | 6 ------ ct/checkmk.app | 6 ------ ct/cloudflared.app | 6 ------ ct/cockpit.app | 6 ------ ct/commafeed.app | 6 ------ ct/cronicle.app | 6 ------ ct/daemonsync.app | 6 ------ ct/dashy.app | 6 ------ ct/debian.app | 6 ------ ct/deconz.app | 6 ------ ct/deluge.app | 6 ------ ct/docker.app | 6 ------ ct/dockge.app | 6 ------ ct/dotnetaspwebapi.app | 12 ------------ ct/emby.app | 6 ------ ct/emqx.app | 6 ------ ct/ersatztv.app | 6 ------ ct/esphome.app | 6 ------ ct/evcc.app | 6 ------ ct/fenrus.app | 6 ------ ct/fhem.app | 6 ------ ct/firefly.app | 6 ------ ct/flaresolverr.app | 6 ------ ct/flowiseai.app | 6 ------ ct/forgejo.app | 6 ------ ct/frigate.app | 6 ------ ct/ghost.app | 6 ------ ct/gitea.app | 6 ------ ct/glance.app | 6 ------ ct/glpi.app | 6 ------ ct/go2rtc.app | 6 ------ ct/gokapi.app | 6 ------ ct/gotify.app | 6 ------ ct/grafana.app | 6 ------ ct/grist.app | 6 ------ ct/grocy.app | 6 ------ ct/headscale.app | 6 ------ ct/heimdall-dashboard.app | 12 ------------ ct/hivemq.app | 6 ------ ct/hoarder.app | 6 ------ ct/homarr.app | 6 ------ ct/homeassistant-core.app | 12 ------------ ct/homeassistant.app | 6 ------ ct/homebox.app | 6 ------ ct/homebridge.app | 6 ------ ct/homepage.app | 6 ------ ct/homer.app | 6 ------ ct/hyperhdr.app | 6 ------ ct/hyperion.app | 6 ------ ct/influxdb.app | 6 ------ ct/inspircd.app | 6 ------ ct/iobroker.app | 6 ------ ct/iventoy.app | 6 ------ ct/jackett.app | 6 ------ ct/jellyfin.app | 6 ------ ct/jellyseerr.app | 6 ------ ct/jenkins.app | 6 ------ ct/kavita.app | 6 ------ ct/keycloak.app | 6 ------ ct/kimai.app | 6 ------ ct/komga.app | 6 ------ ct/komodo.app | 6 ------ ct/kubo.app | 6 ------ ct/lazylibrarian.app | 6 ------ ct/lidarr.app | 6 ------ ct/linkwarden.app | 6 ------ ct/listmonk.app | 6 ------ ct/lldap.app | 6 ------ ct/lubelogger.app | 6 ------ ct/mafl.app | 6 ------ ct/magicmirror.app | 6 ------ ct/mariadb.app | 6 ------ ct/matterbridge.app | 6 ------ ct/mediamtx.app | 6 ------ ct/medusa.app | 6 ------ ct/memos.app | 6 ------ ct/meshcentral.app | 6 ------ ct/metube.app | 6 ------ ct/mongodb.app | 6 ------ ct/motioneye.app | 6 ------ ct/mqtt.app | 6 ------ ct/mylar3.app | 6 ------ ct/myspeed.app | 6 ------ ct/mysql.app | 6 ------ ct/n8n.app | 6 ------ ct/navidrome.app | 6 ------ ct/neo4j.app | 6 ------ ct/netbox.app | 6 ------ ct/nextcloudpi.app | 6 ------ ct/nextpvr.app | 6 ------ ct/nginxproxymanager.app | 12 ------------ ct/nocodb.app | 6 ------ ct/node-red.app | 6 ------ ct/notifiarr.app | 6 ------ ct/ntfy.app | 6 ------ ct/nzbget.app | 6 ------ ct/octoprint.app | 6 ------ ct/ollama.app | 6 ------ ct/omada.app | 6 ------ ct/ombi.app | 6 ------ ct/omv.app | 6 ------ ct/onedev.app | 6 ------ ct/opengist.app | 6 ------ ct/openhab.app | 6 ------ ct/openobserve.app | 6 ------ ct/openwebui.app | 6 ------ ct/overseerr.app | 6 ------ ct/owncast.app | 6 ------ ct/pairdrop.app | 6 ------ ct/paperless-ngx.app | 6 ------ ct/part-db.app | 6 ------ ct/pbs.app | 6 ------ ct/peanut.app | 6 ------ ct/petio.app | 6 ------ ct/pf2etools.app | 6 ------ ct/photoprism.app | 6 ------ ct/phpipam.app | 6 ------ ct/pialert.app | 6 ------ ct/pihole.app | 6 ------ ct/pingvin.app | 6 ------ ct/plex.app | 6 ------ ct/pocketbase.app | 6 ------ ct/podman-homeassistant.app | 12 ------------ ct/podman.app | 6 ------ ct/postgresql.app | 6 ------ ct/projectsend.app | 6 ------ ct/prometheus-alertmanager.app | 12 ------------ ct/prometheus.app | 6 ------ ct/prowlarr.app | 6 ------ ct/proxmox-datacenter-manager.app | 18 ------------------ ct/ps5-mqtt.app | 6 ------ ct/qbittorrent.app | 6 ------ ct/rabbitmq.app | 6 ------ ct/radarr.app | 6 ------ ct/rdtclient.app | 6 ------ ct/readarr.app | 6 ------ ct/readeck.app | 6 ------ ct/recyclarr.app | 6 ------ ct/redis.app | 6 ------ ct/rtsptoweb.app | 6 ------ ct/runtipi.app | 6 ------ ct/sabnzbd.app | 6 ------ ct/semaphore.app | 6 ------ ct/sftpgo.app | 6 ------ ct/shinobi.app | 6 ------ ct/silverbullet.app | 6 ------ ct/smokeping.app | 6 ------ ct/snipeit.app | 6 ------ ct/sonarr.app | 6 ------ ct/spoolman.app | 6 ------ ct/sqlserver2022.app | 12 ------------ ct/stirling-pdf.app | 6 ------ ct/syncthing.app | 6 ------ ct/tandoor.app | 6 ------ ct/tasmoadmin.app | 6 ------ ct/tautulli.app | 6 ------ ct/tdarr.app | 6 ------ ct/technitiumdns.app | 6 ------ ct/teddycloud.app | 6 ------ ct/the-lounge.app | 6 ------ ct/threadfin.app | 6 ------ ct/tianji.app | 6 ------ ct/traccar.app | 6 ------ ct/traefik.app | 6 ------ ct/transmission.app | 6 ------ ct/trilium.app | 6 ------ ct/typesense.app | 6 ------ ct/ubuntu.app | 6 ------ ct/umami.app | 6 ------ ct/umbrel.app | 6 ------ ct/unbound.app | 6 ------ ct/unifi.app | 6 ------ ct/unmanic.app | 6 ------ ct/uptimekuma.app | 6 ------ ct/urbackupserver.app | 12 ------------ ct/vaultwarden.app | 6 ------ ct/vikunja.app | 6 ------ ct/wallos.app | 6 ------ ct/wastebin.app | 6 ------ ct/watchyourlan.app | 6 ------ ct/wavelog.app | 6 ------ ct/whisparr.app | 6 ------ ct/whoogle.app | 6 ------ ct/wikijs.app | 6 ------ ct/wireguard.app | 6 ------ ct/wordpress.app | 6 ------ ct/yunohost.app | 6 ------ ct/zabbix.app | 6 ------ ct/zammad.app | 6 ------ ct/zigbee2mqtt.app | 6 ------ ct/zipline.app | 6 ------ ct/zoraxy.app | 6 ------ ct/zwave-js-ui.app | 6 ------ 223 files changed, 1440 deletions(-) delete mode 100644 ct/2fauth.app delete mode 100644 ct/5etools.app delete mode 100644 ct/actualbudget.app delete mode 100644 ct/adguard.app delete mode 100644 ct/adventurelog.app delete mode 100644 ct/agentdvr.app delete mode 100644 ct/alpine-docker.app delete mode 100644 ct/alpine-grafana.app delete mode 100644 ct/alpine-nextcloud.app delete mode 100644 ct/alpine-vaultwarden.app delete mode 100644 ct/alpine-zigbee2mqtt.app delete mode 100644 ct/alpine.app delete mode 100644 ct/apache-cassandra.app delete mode 100644 ct/apache-couchdb.app delete mode 100644 ct/apache-guacamole.app delete mode 100644 ct/apt-cacher-ng.app delete mode 100644 ct/archivebox.app delete mode 100644 ct/aria2.app delete mode 100644 ct/audiobookshelf.app delete mode 100644 ct/authentik.app delete mode 100644 ct/autobrr.app delete mode 100644 ct/bazarr.app delete mode 100644 ct/beszel.app delete mode 100644 ct/blocky.app delete mode 100644 ct/bookstack.app delete mode 100644 ct/bunkerweb.app delete mode 100644 ct/caddy.app delete mode 100644 ct/calibre-web.app delete mode 100644 ct/casaos.app delete mode 100644 ct/changedetection.app delete mode 100644 ct/channels.app delete mode 100644 ct/checkmk.app delete mode 100644 ct/cloudflared.app delete mode 100644 ct/cockpit.app delete mode 100644 ct/commafeed.app delete mode 100644 ct/cronicle.app delete mode 100644 ct/daemonsync.app delete mode 100644 ct/dashy.app delete mode 100644 ct/debian.app delete mode 100644 ct/deconz.app delete mode 100644 ct/deluge.app delete mode 100644 ct/docker.app delete mode 100644 ct/dockge.app delete mode 100644 ct/dotnetaspwebapi.app delete mode 100644 ct/emby.app delete mode 100644 ct/emqx.app delete mode 100644 ct/ersatztv.app delete mode 100644 ct/esphome.app delete mode 100644 ct/evcc.app delete mode 100644 ct/fenrus.app delete mode 100644 ct/fhem.app delete mode 100644 ct/firefly.app delete mode 100644 ct/flaresolverr.app delete mode 100644 ct/flowiseai.app delete mode 100644 ct/forgejo.app delete mode 100644 ct/frigate.app delete mode 100644 ct/ghost.app delete mode 100644 ct/gitea.app delete mode 100644 ct/glance.app delete mode 100644 ct/glpi.app delete mode 100644 ct/go2rtc.app delete mode 100644 ct/gokapi.app delete mode 100644 ct/gotify.app delete mode 100644 ct/grafana.app delete mode 100644 ct/grist.app delete mode 100644 ct/grocy.app delete mode 100644 ct/headscale.app delete mode 100644 ct/heimdall-dashboard.app delete mode 100644 ct/hivemq.app delete mode 100644 ct/hoarder.app delete mode 100644 ct/homarr.app delete mode 100644 ct/homeassistant-core.app delete mode 100644 ct/homeassistant.app delete mode 100644 ct/homebox.app delete mode 100644 ct/homebridge.app delete mode 100644 ct/homepage.app delete mode 100644 ct/homer.app delete mode 100644 ct/hyperhdr.app delete mode 100644 ct/hyperion.app delete mode 100644 ct/influxdb.app delete mode 100644 ct/inspircd.app delete mode 100644 ct/iobroker.app delete mode 100644 ct/iventoy.app delete mode 100644 ct/jackett.app delete mode 100644 ct/jellyfin.app delete mode 100644 ct/jellyseerr.app delete mode 100644 ct/jenkins.app delete mode 100644 ct/kavita.app delete mode 100644 ct/keycloak.app delete mode 100644 ct/kimai.app delete mode 100644 ct/komga.app delete mode 100644 ct/komodo.app delete mode 100644 ct/kubo.app delete mode 100644 ct/lazylibrarian.app delete mode 100644 ct/lidarr.app delete mode 100644 ct/linkwarden.app delete mode 100644 ct/listmonk.app delete mode 100644 ct/lldap.app delete mode 100644 ct/lubelogger.app delete mode 100644 ct/mafl.app delete mode 100644 ct/magicmirror.app delete mode 100644 ct/mariadb.app delete mode 100644 ct/matterbridge.app delete mode 100644 ct/mediamtx.app delete mode 100644 ct/medusa.app delete mode 100644 ct/memos.app delete mode 100644 ct/meshcentral.app delete mode 100644 ct/metube.app delete mode 100644 ct/mongodb.app delete mode 100644 ct/motioneye.app delete mode 100644 ct/mqtt.app delete mode 100644 ct/mylar3.app delete mode 100644 ct/myspeed.app delete mode 100644 ct/mysql.app delete mode 100644 ct/n8n.app delete mode 100644 ct/navidrome.app delete mode 100644 ct/neo4j.app delete mode 100644 ct/netbox.app delete mode 100644 ct/nextcloudpi.app delete mode 100644 ct/nextpvr.app delete mode 100644 ct/nginxproxymanager.app delete mode 100644 ct/nocodb.app delete mode 100644 ct/node-red.app delete mode 100644 ct/notifiarr.app delete mode 100644 ct/ntfy.app delete mode 100644 ct/nzbget.app delete mode 100644 ct/octoprint.app delete mode 100644 ct/ollama.app delete mode 100644 ct/omada.app delete mode 100644 ct/ombi.app delete mode 100644 ct/omv.app delete mode 100644 ct/onedev.app delete mode 100644 ct/opengist.app delete mode 100644 ct/openhab.app delete mode 100644 ct/openobserve.app delete mode 100644 ct/openwebui.app delete mode 100644 ct/overseerr.app delete mode 100644 ct/owncast.app delete mode 100644 ct/pairdrop.app delete mode 100644 ct/paperless-ngx.app delete mode 100644 ct/part-db.app delete mode 100644 ct/pbs.app delete mode 100644 ct/peanut.app delete mode 100644 ct/petio.app delete mode 100644 ct/pf2etools.app delete mode 100644 ct/photoprism.app delete mode 100644 ct/phpipam.app delete mode 100644 ct/pialert.app delete mode 100644 ct/pihole.app delete mode 100644 ct/pingvin.app delete mode 100644 ct/plex.app delete mode 100644 ct/pocketbase.app delete mode 100644 ct/podman-homeassistant.app delete mode 100644 ct/podman.app delete mode 100644 ct/postgresql.app delete mode 100644 ct/projectsend.app delete mode 100644 ct/prometheus-alertmanager.app delete mode 100644 ct/prometheus.app delete mode 100644 ct/prowlarr.app delete mode 100644 ct/proxmox-datacenter-manager.app delete mode 100644 ct/ps5-mqtt.app delete mode 100644 ct/qbittorrent.app delete mode 100644 ct/rabbitmq.app delete mode 100644 ct/radarr.app delete mode 100644 ct/rdtclient.app delete mode 100644 ct/readarr.app delete mode 100644 ct/readeck.app delete mode 100644 ct/recyclarr.app delete mode 100644 ct/redis.app delete mode 100644 ct/rtsptoweb.app delete mode 100644 ct/runtipi.app delete mode 100644 ct/sabnzbd.app delete mode 100644 ct/semaphore.app delete mode 100644 ct/sftpgo.app delete mode 100644 ct/shinobi.app delete mode 100644 ct/silverbullet.app delete mode 100644 ct/smokeping.app delete mode 100644 ct/snipeit.app delete mode 100644 ct/sonarr.app delete mode 100644 ct/spoolman.app delete mode 100644 ct/sqlserver2022.app delete mode 100644 ct/stirling-pdf.app delete mode 100644 ct/syncthing.app delete mode 100644 ct/tandoor.app delete mode 100644 ct/tasmoadmin.app delete mode 100644 ct/tautulli.app delete mode 100644 ct/tdarr.app delete mode 100644 ct/technitiumdns.app delete mode 100644 ct/teddycloud.app delete mode 100644 ct/the-lounge.app delete mode 100644 ct/threadfin.app delete mode 100644 ct/tianji.app delete mode 100644 ct/traccar.app delete mode 100644 ct/traefik.app delete mode 100644 ct/transmission.app delete mode 100644 ct/trilium.app delete mode 100644 ct/typesense.app delete mode 100644 ct/ubuntu.app delete mode 100644 ct/umami.app delete mode 100644 ct/umbrel.app delete mode 100644 ct/unbound.app delete mode 100644 ct/unifi.app delete mode 100644 ct/unmanic.app delete mode 100644 ct/uptimekuma.app delete mode 100644 ct/urbackupserver.app delete mode 100644 ct/vaultwarden.app delete mode 100644 ct/vikunja.app delete mode 100644 ct/wallos.app delete mode 100644 ct/wastebin.app delete mode 100644 ct/watchyourlan.app delete mode 100644 ct/wavelog.app delete mode 100644 ct/whisparr.app delete mode 100644 ct/whoogle.app delete mode 100644 ct/wikijs.app delete mode 100644 ct/wireguard.app delete mode 100644 ct/wordpress.app delete mode 100644 ct/yunohost.app delete mode 100644 ct/zabbix.app delete mode 100644 ct/zammad.app delete mode 100644 ct/zigbee2mqtt.app delete mode 100644 ct/zipline.app delete mode 100644 ct/zoraxy.app delete mode 100644 ct/zwave-js-ui.app diff --git a/ct/2fauth.app b/ct/2fauth.app deleted file mode 100644 index b6421719c..000000000 --- a/ct/2fauth.app +++ /dev/null @@ -1,6 +0,0 @@ - ___ _________ __ __ - |__ \ / ____/ | __ __/ /_/ /_ - __/ // /_ / /| |/ / / / __/ __ \ - / __// __/ / ___ / /_/ / /_/ / / / -/____/_/ /_/ |_\__,_/\__/_/ /_/ - diff --git a/ct/5etools.app b/ct/5etools.app deleted file mode 100644 index 1556067f1..000000000 --- a/ct/5etools.app +++ /dev/null @@ -1,6 +0,0 @@ - ______ __ __ - / ____/__ / /_____ ____ / /____ - /___ \/ _ \/ __/ __ \/ __ \/ / ___/ - ____/ / __/ /_/ /_/ / /_/ / (__ ) -/_____/\___/\__/\____/\____/_/____/ - diff --git a/ct/actualbudget.app b/ct/actualbudget.app deleted file mode 100644 index db7f30933..000000000 --- a/ct/actualbudget.app +++ /dev/null @@ -1,6 +0,0 @@ - ___ __ __ ____ __ __ - / | _____/ /___ ______ _/ / / __ )__ ______/ /___ ____ / /_ - / /| |/ ___/ __/ / / / __ `/ / / __ / / / / __ / __ `/ _ \/ __/ - / ___ / /__/ /_/ /_/ / /_/ / / / /_/ / /_/ / /_/ / /_/ / __/ /_ -/_/ |_\___/\__/\__,_/\__,_/_/ /_____/\__,_/\__,_/\__, /\___/\__/ - /____/ diff --git a/ct/adguard.app b/ct/adguard.app deleted file mode 100644 index 2332df179..000000000 --- a/ct/adguard.app +++ /dev/null @@ -1,6 +0,0 @@ - ___ __ __ - / | ____/ /___ ___ ______ __________/ / - / /| |/ __ / __ `/ / / / __ `/ ___/ __ / - / ___ / /_/ / /_/ / /_/ / /_/ / / / /_/ / -/_/ |_\__,_/\__, /\__,_/\__,_/_/ \__,_/ - /____/ diff --git a/ct/adventurelog.app b/ct/adventurelog.app deleted file mode 100644 index 8e3c88d11..000000000 --- a/ct/adventurelog.app +++ /dev/null @@ -1,6 +0,0 @@ - ___ __ __ __ - / | ____/ / _____ ____ / /___ __________ / / ____ ____ _ - / /| |/ __ / | / / _ \/ __ \/ __/ / / / ___/ _ \/ / / __ \/ __ `/ - / ___ / /_/ /| |/ / __/ / / / /_/ /_/ / / / __/ /___/ /_/ / /_/ / -/_/ |_\__,_/ |___/\___/_/ /_/\__/\__,_/_/ \___/_____/\____/\__, / - /____/ diff --git a/ct/agentdvr.app b/ct/agentdvr.app deleted file mode 100644 index dfe67792b..000000000 --- a/ct/agentdvr.app +++ /dev/null @@ -1,6 +0,0 @@ - ___ __ ____ _ ______ - / | ____ ____ ____ / /_/ __ \ | / / __ \ - / /| |/ __ `/ _ \/ __ \/ __/ / / / | / / /_/ / - / ___ / /_/ / __/ / / / /_/ /_/ /| |/ / _, _/ -/_/ |_\__, /\___/_/ /_/\__/_____/ |___/_/ |_| - /____/ diff --git a/ct/alpine-docker.app b/ct/alpine-docker.app deleted file mode 100644 index 7fd1b265d..000000000 --- a/ct/alpine-docker.app +++ /dev/null @@ -1,6 +0,0 @@ - ___ __ _ ____ __ - / | / /___ (_)___ ___ / __ \____ _____/ /_____ _____ - / /| | / / __ \/ / __ \/ _ \______/ / / / __ \/ ___/ //_/ _ \/ ___/ - / ___ |/ / /_/ / / / / / __/_____/ /_/ / /_/ / /__/ ,< / __/ / -/_/ |_/_/ .___/_/_/ /_/\___/ /_____/\____/\___/_/|_|\___/_/ - /_/ diff --git a/ct/alpine-grafana.app b/ct/alpine-grafana.app deleted file mode 100644 index 3fe493c9d..000000000 --- a/ct/alpine-grafana.app +++ /dev/null @@ -1,6 +0,0 @@ - ___ __ _ ______ ____ - / | / /___ (_)___ ___ / ____/________ _/ __/___ _____ ____ _ - / /| | / / __ \/ / __ \/ _ \______/ / __/ ___/ __ `/ /_/ __ `/ __ \/ __ `/ - / ___ |/ / /_/ / / / / / __/_____/ /_/ / / / /_/ / __/ /_/ / / / / /_/ / -/_/ |_/_/ .___/_/_/ /_/\___/ \____/_/ \__,_/_/ \__,_/_/ /_/\__,_/ - /_/ diff --git a/ct/alpine-nextcloud.app b/ct/alpine-nextcloud.app deleted file mode 100644 index b27eb0cad..000000000 --- a/ct/alpine-nextcloud.app +++ /dev/null @@ -1,12 +0,0 @@ - ___ __ _ _ __ __ __ - / | / /___ (_)___ ___ / | / /__ _ __/ /______/ /___ __ __ - / /| | / / __ \/ / __ \/ _ \______/ |/ / _ \| |/_/ __/ ___/ / __ \/ / / / - / ___ |/ / /_/ / / / / / __/_____/ /| / __/> < -/_/ |_/_/ \___/_/ /_/_/ |___/\___/_____/\____/_/|_| - diff --git a/ct/aria2.app b/ct/aria2.app deleted file mode 100644 index 3080e17b4..000000000 --- a/ct/aria2.app +++ /dev/null @@ -1,6 +0,0 @@ - ___ _ ___ - / | _____(_)___ |__ \ - / /| | / ___/ / __ `/_/ / - / ___ |/ / / / /_/ / __/ -/_/ |_/_/ /_/\__,_/____/ - diff --git a/ct/audiobookshelf.app b/ct/audiobookshelf.app deleted file mode 100644 index 5e249a852..000000000 --- a/ct/audiobookshelf.app +++ /dev/null @@ -1,6 +0,0 @@ - ___ __ __ __ ______ - ____ ___ ______/ (_)___ / /_ ____ ____ / /_______/ /_ ___ / / __/ - / __ `/ / / / __ / / __ \/ __ \/ __ \/ __ \/ //_/ ___/ __ \/ _ \/ / /_ -/ /_/ / /_/ / /_/ / / /_/ / /_/ / /_/ / /_/ / ,< (__ ) / / / __/ / __/ -\__,_/\__,_/\__,_/_/\____/_.___/\____/\____/_/|_/____/_/ /_/\___/_/_/ - diff --git a/ct/authentik.app b/ct/authentik.app deleted file mode 100644 index f609964e0..000000000 --- a/ct/authentik.app +++ /dev/null @@ -1,6 +0,0 @@ - ___ __ __ __ _ __ - / | __ __/ /_/ /_ ___ ____ / /_(_) /__ - / /| |/ / / / __/ __ \/ _ \/ __ \/ __/ / //_/ - / ___ / /_/ / /_/ / / / __/ / / / /_/ / ,< -/_/ |_\__,_/\__/_/ /_/\___/_/ /_/\__/_/_/|_| - diff --git a/ct/autobrr.app b/ct/autobrr.app deleted file mode 100644 index 56322d59e..000000000 --- a/ct/autobrr.app +++ /dev/null @@ -1,6 +0,0 @@ - ___ __ __ - / | __ __/ /_____ / /_ __________ - / /| |/ / / / __/ __ \/ __ \/ ___/ ___/ - / ___ / /_/ / /_/ /_/ / /_/ / / / / -/_/ |_\__,_/\__/\____/_.___/_/ /_/ - diff --git a/ct/bazarr.app b/ct/bazarr.app deleted file mode 100644 index e487a77d8..000000000 --- a/ct/bazarr.app +++ /dev/null @@ -1,6 +0,0 @@ - ____ - / __ )____ _____ ____ ___________ - / __ / __ `/_ / / __ `/ ___/ ___/ - / /_/ / /_/ / / /_/ /_/ / / / / -/_____/\__,_/ /___/\__,_/_/ /_/ - diff --git a/ct/beszel.app b/ct/beszel.app deleted file mode 100644 index dcb0d38d6..000000000 --- a/ct/beszel.app +++ /dev/null @@ -1,6 +0,0 @@ - ____ __ - / __ )___ _________ ___ / / - / __ / _ \/ ___/_ / / _ \/ / - / /_/ / __(__ ) / /_/ __/ / -/_____/\___/____/ /___/\___/_/ - diff --git a/ct/blocky.app b/ct/blocky.app deleted file mode 100644 index 3bd089bab..000000000 --- a/ct/blocky.app +++ /dev/null @@ -1,6 +0,0 @@ - ____ __ __ - / __ )/ /___ _____/ /____ __ - / __ / / __ \/ ___/ //_/ / / / - / /_/ / / /_/ / /__/ ,< / /_/ / -/_____/_/\____/\___/_/|_|\__, / - /____/ diff --git a/ct/bookstack.app b/ct/bookstack.app deleted file mode 100644 index f68646662..000000000 --- a/ct/bookstack.app +++ /dev/null @@ -1,6 +0,0 @@ - ____ __ __ __ - / __ )____ ____ / /_______/ /_____ ______/ /__ - / __ / __ \/ __ \/ //_/ ___/ __/ __ `/ ___/ //_/ - / /_/ / /_/ / /_/ / ,< (__ ) /_/ /_/ / /__/ ,< -/_____/\____/\____/_/|_/____/\__/\__,_/\___/_/|_| - diff --git a/ct/bunkerweb.app b/ct/bunkerweb.app deleted file mode 100644 index 188677c45..000000000 --- a/ct/bunkerweb.app +++ /dev/null @@ -1,6 +0,0 @@ - ____ __ _ __ __ - / __ )__ ______ / /_____ ____| | / /__ / /_ - / __ / / / / __ \/ //_/ _ \/ ___/ | /| / / _ \/ __ \ - / /_/ / /_/ / / / / ,< / __/ / | |/ |/ / __/ /_/ / -/_____/\__,_/_/ /_/_/|_|\___/_/ |__/|__/\___/_.___/ - diff --git a/ct/caddy.app b/ct/caddy.app deleted file mode 100644 index 6f47f9627..000000000 --- a/ct/caddy.app +++ /dev/null @@ -1,6 +0,0 @@ - ______ __ __ - / ____/___ _____/ /___/ /_ __ - / / / __ `/ __ / __ / / / / -/ /___/ /_/ / /_/ / /_/ / /_/ / -\____/\__,_/\__,_/\__,_/\__, / - /____/ diff --git a/ct/calibre-web.app b/ct/calibre-web.app deleted file mode 100644 index ae9dc0379..000000000 --- a/ct/calibre-web.app +++ /dev/null @@ -1,6 +0,0 @@ - ______ ___ __ _ __ __ - / ____/___ _/ (_) /_ ________ | | / /__ / /_ - / / / __ `/ / / __ \/ ___/ _ \_____| | /| / / _ \/ __ \ -/ /___/ /_/ / / / /_/ / / / __/_____/ |/ |/ / __/ /_/ / -\____/\__,_/_/_/_.___/_/ \___/ |__/|__/\___/_.___/ - diff --git a/ct/casaos.app b/ct/casaos.app deleted file mode 100644 index 4af563a20..000000000 --- a/ct/casaos.app +++ /dev/null @@ -1,6 +0,0 @@ - ______ ____ _____ - / ____/___ __________ _/ __ \/ ___/ - / / / __ `/ ___/ __ `/ / / /\__ \ -/ /___/ /_/ (__ ) /_/ / /_/ /___/ / -\____/\__,_/____/\__,_/\____//____/ - diff --git a/ct/changedetection.app b/ct/changedetection.app deleted file mode 100644 index bf9fefb4a..000000000 --- a/ct/changedetection.app +++ /dev/null @@ -1,12 +0,0 @@ - ________ - / ____/ /_ ____ _____ ____ ____ - / / / __ \/ __ `/ __ \/ __ `/ _ \ -/ /___/ / / / /_/ / / / / /_/ / __/ -\____/_/ /_/\__,_/_/ /_/\__, /\___/ - /____/ - ____ __ __ _ - / __ \___ / /____ _____/ /_(_)___ ____ - / / / / _ \/ __/ _ \/ ___/ __/ / __ \/ __ \ - / /_/ / __/ /_/ __/ /__/ /_/ / /_/ / / / / -/_____/\___/\__/\___/\___/\__/_/\____/_/ /_/ - diff --git a/ct/channels.app b/ct/channels.app deleted file mode 100644 index 7600b6e47..000000000 --- a/ct/channels.app +++ /dev/null @@ -1,6 +0,0 @@ - ________ __ - / ____/ /_ ____ _____ ____ ___ / /____ - / / / __ \/ __ `/ __ \/ __ \/ _ \/ / ___/ -/ /___/ / / / /_/ / / / / / / / __/ (__ ) -\____/_/ /_/\__,_/_/ /_/_/ /_/\___/_/____/ - diff --git a/ct/checkmk.app b/ct/checkmk.app deleted file mode 100644 index ff80000cd..000000000 --- a/ct/checkmk.app +++ /dev/null @@ -1,6 +0,0 @@ - __ __ __ - _____/ /_ ___ _____/ /______ ___ / /__ - / ___/ __ \/ _ \/ ___/ //_/ __ `__ \/ //_/ -/ /__/ / / / __/ /__/ ,< / / / / / / ,< -\___/_/ /_/\___/\___/_/|_/_/ /_/ /_/_/|_| - diff --git a/ct/cloudflared.app b/ct/cloudflared.app deleted file mode 100644 index 8011c2c23..000000000 --- a/ct/cloudflared.app +++ /dev/null @@ -1,6 +0,0 @@ - ________ ________ __ - / ____/ /___ __ ______/ / __/ /___ _________ ____/ / - / / / / __ \/ / / / __ / /_/ / __ `/ ___/ _ \/ __ / -/ /___/ / /_/ / /_/ / /_/ / __/ / /_/ / / / __/ /_/ / -\____/_/\____/\__,_/\__,_/_/ /_/\__,_/_/ \___/\__,_/ - diff --git a/ct/cockpit.app b/ct/cockpit.app deleted file mode 100644 index 8eb04a26e..000000000 --- a/ct/cockpit.app +++ /dev/null @@ -1,6 +0,0 @@ - ______ __ _ __ - / ____/___ _____/ /______ (_) /_ - / / / __ \/ ___/ //_/ __ \/ / __/ -/ /___/ /_/ / /__/ ,< / /_/ / / /_ -\____/\____/\___/_/|_/ .___/_/\__/ - /_/ diff --git a/ct/commafeed.app b/ct/commafeed.app deleted file mode 100644 index 06beb9a56..000000000 --- a/ct/commafeed.app +++ /dev/null @@ -1,6 +0,0 @@ - ______ ______ __ - / ____/___ ____ ___ ____ ___ ____ _/ ____/__ ___ ____/ / - / / / __ \/ __ `__ \/ __ `__ \/ __ `/ /_ / _ \/ _ \/ __ / -/ /___/ /_/ / / / / / / / / / / / /_/ / __/ / __/ __/ /_/ / -\____/\____/_/ /_/ /_/_/ /_/ /_/\__,_/_/ \___/\___/\__,_/ - diff --git a/ct/cronicle.app b/ct/cronicle.app deleted file mode 100644 index 6d6f7cfc9..000000000 --- a/ct/cronicle.app +++ /dev/null @@ -1,6 +0,0 @@ - ______ _ __ - / ____/________ ____ (_)____/ /__ - / / / ___/ __ \/ __ \/ / ___/ / _ \ -/ /___/ / / /_/ / / / / / /__/ / __/ -\____/_/ \____/_/ /_/_/\___/_/\___/ - diff --git a/ct/daemonsync.app b/ct/daemonsync.app deleted file mode 100644 index 532072375..000000000 --- a/ct/daemonsync.app +++ /dev/null @@ -1,6 +0,0 @@ - ____ _____ - / __ \____ ____ ____ ___ ____ ____ / ___/__ ______ _____ - / / / / __ `/ _ \/ __ `__ \/ __ \/ __ \ \__ \/ / / / __ \/ ___/ - / /_/ / /_/ / __/ / / / / / /_/ / / / / ___/ / /_/ / / / / /__ -/_____/\__,_/\___/_/ /_/ /_/\____/_/ /_/ /____/\__, /_/ /_/\___/ - /____/ diff --git a/ct/dashy.app b/ct/dashy.app deleted file mode 100644 index 330f9e3d0..000000000 --- a/ct/dashy.app +++ /dev/null @@ -1,6 +0,0 @@ - ____ __ - / __ \____ ______/ /_ __ __ - / / / / __ `/ ___/ __ \/ / / / - / /_/ / /_/ (__ ) / / / /_/ / -/_____/\__,_/____/_/ /_/\__, / - /____/ diff --git a/ct/debian.app b/ct/debian.app deleted file mode 100644 index a6f474d46..000000000 --- a/ct/debian.app +++ /dev/null @@ -1,6 +0,0 @@ - ____ __ _ - / __ \___ / /_ (_)___ _____ - / / / / _ \/ __ \/ / __ `/ __ \ - / /_/ / __/ /_/ / / /_/ / / / / -/_____/\___/_.___/_/\__,_/_/ /_/ - diff --git a/ct/deconz.app b/ct/deconz.app deleted file mode 100644 index fcfceb280..000000000 --- a/ct/deconz.app +++ /dev/null @@ -1,6 +0,0 @@ - __ __________ _ _______ - ____/ /__ / ____/ __ \/ | / /__ / - / __ / _ \/ / / / / / |/ / / / -/ /_/ / __/ /___/ /_/ / /| / / /__ -\__,_/\___/\____/\____/_/ |_/ /____/ - diff --git a/ct/deluge.app b/ct/deluge.app deleted file mode 100644 index 6dc49d04b..000000000 --- a/ct/deluge.app +++ /dev/null @@ -1,6 +0,0 @@ - ____ __ - / __ \___ / /_ ______ ____ - / / / / _ \/ / / / / __ `/ _ \ - / /_/ / __/ / /_/ / /_/ / __/ -/_____/\___/_/\__,_/\__, /\___/ - /____/ diff --git a/ct/docker.app b/ct/docker.app deleted file mode 100644 index 907ffbaef..000000000 --- a/ct/docker.app +++ /dev/null @@ -1,6 +0,0 @@ - ____ __ - / __ \____ _____/ /_____ _____ - / / / / __ \/ ___/ //_/ _ \/ ___/ - / /_/ / /_/ / /__/ ,< / __/ / -/_____/\____/\___/_/|_|\___/_/ - diff --git a/ct/dockge.app b/ct/dockge.app deleted file mode 100644 index 040b66ac8..000000000 --- a/ct/dockge.app +++ /dev/null @@ -1,6 +0,0 @@ - ____ __ - / __ \____ _____/ /______ ____ - / / / / __ \/ ___/ //_/ __ `/ _ \ - / /_/ / /_/ / /__/ ,< / /_/ / __/ -/_____/\____/\___/_/|_|\__, /\___/ - /____/ diff --git a/ct/dotnetaspwebapi.app b/ct/dotnetaspwebapi.app deleted file mode 100644 index f00b63ca3..000000000 --- a/ct/dotnetaspwebapi.app +++ /dev/null @@ -1,12 +0,0 @@ - ____ __ __ ___ _____ ____ _ __ __ - / __ \____ / /_____ ___ / /_ / | / ___// __ \ | | / /__ / /_ - / / / / __ \/ __/ __ \/ _ \/ __/ / /| | \__ \/ /_/ / | | /| / / _ \/ __ \ - / /_/ / /_/ / /_/ / / / __/ /_ / ___ |___/ / ____/ | |/ |/ / __/ /_/ / -/_____/\____/\__/_/ /_/\___/\__/ /_/ |_/____/_/ |__/|__/\___/_.___/ - - ___ ____ ____ - / | / __ \/ _/ - / /| | / /_/ // / - / ___ |/ ____// / -/_/ |_/_/ /___/ - diff --git a/ct/emby.app b/ct/emby.app deleted file mode 100644 index 84afb1d6a..000000000 --- a/ct/emby.app +++ /dev/null @@ -1,6 +0,0 @@ - ______ __ - / ____/___ ___ / /_ __ __ - / __/ / __ `__ \/ __ \/ / / / - / /___/ / / / / / /_/ / /_/ / -/_____/_/ /_/ /_/_.___/\__, / - /____/ diff --git a/ct/emqx.app b/ct/emqx.app deleted file mode 100644 index f6cb5038c..000000000 --- a/ct/emqx.app +++ /dev/null @@ -1,6 +0,0 @@ - ________ _______ _ __ - / ____/ |/ / __ \ | |/ / - / __/ / /|_/ / / / / | / - / /___/ / / / /_/ / / | -/_____/_/ /_/\___\_\/_/|_| - diff --git a/ct/ersatztv.app b/ct/ersatztv.app deleted file mode 100644 index f47317c39..000000000 --- a/ct/ersatztv.app +++ /dev/null @@ -1,6 +0,0 @@ - ______ __ _______ __ - / ____/_____________ _/ /_____/_ __/ | / / - / __/ / ___/ ___/ __ `/ __/_ / / / | | / / - / /___/ / (__ ) /_/ / /_ / /_/ / | |/ / -/_____/_/ /____/\__,_/\__/ /___/_/ |___/ - diff --git a/ct/esphome.app b/ct/esphome.app deleted file mode 100644 index 5c9e86c65..000000000 --- a/ct/esphome.app +++ /dev/null @@ -1,6 +0,0 @@ - ___________ ____ __ __ - / ____/ ___// __ \/ / / /___ ____ ___ ___ - / __/ \__ \/ /_/ / /_/ / __ \/ __ `__ \/ _ \ - / /___ ___/ / ____/ __ / /_/ / / / / / / __/ -/_____//____/_/ /_/ /_/\____/_/ /_/ /_/\___/ - diff --git a/ct/evcc.app b/ct/evcc.app deleted file mode 100644 index 9317a5410..000000000 --- a/ct/evcc.app +++ /dev/null @@ -1,6 +0,0 @@ - - ___ _ ____________ - / _ \ | / / ___/ ___/ -/ __/ |/ / /__/ /__ -\___/|___/\___/\___/ - diff --git a/ct/fenrus.app b/ct/fenrus.app deleted file mode 100644 index 95e073aab..000000000 --- a/ct/fenrus.app +++ /dev/null @@ -1,6 +0,0 @@ - ______ - / ____/__ ____ _______ _______ - / /_ / _ \/ __ \/ ___/ / / / ___/ - / __/ / __/ / / / / / /_/ (__ ) -/_/ \___/_/ /_/_/ \__,_/____/ - diff --git a/ct/fhem.app b/ct/fhem.app deleted file mode 100644 index fe0a80c40..000000000 --- a/ct/fhem.app +++ /dev/null @@ -1,6 +0,0 @@ - ________ __________ ___ - / ____/ / / / ____/ |/ / - / /_ / /_/ / __/ / /|_/ / - / __/ / __ / /___/ / / / -/_/ /_/ /_/_____/_/ /_/ - diff --git a/ct/firefly.app b/ct/firefly.app deleted file mode 100644 index 3aabc10c5..000000000 --- a/ct/firefly.app +++ /dev/null @@ -1,6 +0,0 @@ - _______ ______ - / ____(_)_______ / __/ /_ __ - / /_ / / ___/ _ \/ /_/ / / / / - / __/ / / / / __/ __/ / /_/ / -/_/ /_/_/ \___/_/ /_/\__, / - /____/ diff --git a/ct/flaresolverr.app b/ct/flaresolverr.app deleted file mode 100644 index a710dd625..000000000 --- a/ct/flaresolverr.app +++ /dev/null @@ -1,6 +0,0 @@ - ________ _____ __ - / ____/ /___ _________ / ___/____ / / _____ __________ - / /_ / / __ `/ ___/ _ \\__ \/ __ \/ / | / / _ \/ ___/ ___/ - / __/ / / /_/ / / / __/__/ / /_/ / /| |/ / __/ / / / -/_/ /_/\__,_/_/ \___/____/\____/_/ |___/\___/_/ /_/ - diff --git a/ct/flowiseai.app b/ct/flowiseai.app deleted file mode 100644 index 7011f22b4..000000000 --- a/ct/flowiseai.app +++ /dev/null @@ -1,6 +0,0 @@ - ________ _ ___ ____ - / ____/ /___ _ __(_)_______ / | / _/ - / /_ / / __ \ | /| / / / ___/ _ \/ /| | / / - / __/ / / /_/ / |/ |/ / (__ ) __/ ___ |_/ / -/_/ /_/\____/|__/|__/_/____/\___/_/ |_/___/ - diff --git a/ct/forgejo.app b/ct/forgejo.app deleted file mode 100644 index 4fb3af69e..000000000 --- a/ct/forgejo.app +++ /dev/null @@ -1,6 +0,0 @@ - ______ _ - / ____/___ _________ ____ (_)___ - / /_ / __ \/ ___/ __ `/ _ \ / / __ \ - / __/ / /_/ / / / /_/ / __/ / / /_/ / -/_/ \____/_/ \__, /\___/_/ /\____/ - /____/ /___/ diff --git a/ct/frigate.app b/ct/frigate.app deleted file mode 100644 index 94ffd3a7d..000000000 --- a/ct/frigate.app +++ /dev/null @@ -1,6 +0,0 @@ - ______ _ __ - / ____/____(_)___ _____ _/ /____ - / /_ / ___/ / __ `/ __ `/ __/ _ \ - / __/ / / / / /_/ / /_/ / /_/ __/ -/_/ /_/ /_/\__, /\__,_/\__/\___/ - /____/ diff --git a/ct/ghost.app b/ct/ghost.app deleted file mode 100644 index c16e83b87..000000000 --- a/ct/ghost.app +++ /dev/null @@ -1,6 +0,0 @@ - ________ __ - / ____/ /_ ____ _____/ /_ - / / __/ __ \/ __ \/ ___/ __/ -/ /_/ / / / / /_/ (__ ) /_ -\____/_/ /_/\____/____/\__/ - diff --git a/ct/gitea.app b/ct/gitea.app deleted file mode 100644 index 7826ac30a..000000000 --- a/ct/gitea.app +++ /dev/null @@ -1,6 +0,0 @@ - _______ __ - / ____(_) /____ ____ _ - / / __/ / __/ _ \/ __ `/ -/ /_/ / / /_/ __/ /_/ / -\____/_/\__/\___/\__,_/ - diff --git a/ct/glance.app b/ct/glance.app deleted file mode 100644 index abaaa8af2..000000000 --- a/ct/glance.app +++ /dev/null @@ -1,6 +0,0 @@ - ________ - / ____/ /___ _____ ________ - / / __/ / __ `/ __ \/ ___/ _ \ -/ /_/ / / /_/ / / / / /__/ __/ -\____/_/\__,_/_/ /_/\___/\___/ - diff --git a/ct/glpi.app b/ct/glpi.app deleted file mode 100644 index 789b62590..000000000 --- a/ct/glpi.app +++ /dev/null @@ -1,6 +0,0 @@ - ________ ____ ____ - / ____/ / / __ \/ _/ - / / __/ / / /_/ // / -/ /_/ / /___/ ____// / -\____/_____/_/ /___/ - diff --git a/ct/go2rtc.app b/ct/go2rtc.app deleted file mode 100644 index 3a3e8bf8c..000000000 --- a/ct/go2rtc.app +++ /dev/null @@ -1,6 +0,0 @@ - ___ __ - ____ _____ |__ \ _____/ /______ - / __ `/ __ \__/ // ___/ __/ ___/ - / /_/ / /_/ / __// / / /_/ /__ - \__, /\____/____/_/ \__/\___/ -/____/ diff --git a/ct/gokapi.app b/ct/gokapi.app deleted file mode 100644 index c612c9fa1..000000000 --- a/ct/gokapi.app +++ /dev/null @@ -1,6 +0,0 @@ - ______ __ _ - / ____/___ / /______ _____ (_) - / / __/ __ \/ //_/ __ `/ __ \/ / -/ /_/ / /_/ / ,< / /_/ / /_/ / / -\____/\____/_/|_|\__,_/ .___/_/ - /_/ diff --git a/ct/gotify.app b/ct/gotify.app deleted file mode 100644 index 8532f9ef9..000000000 --- a/ct/gotify.app +++ /dev/null @@ -1,6 +0,0 @@ - ______ __ _ ____ - / ____/___ / /_(_) __/_ __ - / / __/ __ \/ __/ / /_/ / / / -/ /_/ / /_/ / /_/ / __/ /_/ / -\____/\____/\__/_/_/ \__, / - /____/ diff --git a/ct/grafana.app b/ct/grafana.app deleted file mode 100644 index 9eb8a245f..000000000 --- a/ct/grafana.app +++ /dev/null @@ -1,6 +0,0 @@ - ______ ____ - / ____/________ _/ __/___ _____ ____ _ - / / __/ ___/ __ `/ /_/ __ `/ __ \/ __ `/ -/ /_/ / / / /_/ / __/ /_/ / / / / /_/ / -\____/_/ \__,_/_/ \__,_/_/ /_/\__,_/ - diff --git a/ct/grist.app b/ct/grist.app deleted file mode 100644 index f82ced4f1..000000000 --- a/ct/grist.app +++ /dev/null @@ -1,6 +0,0 @@ - ______ _ __ - / ____/____(_)____/ /_ - / / __/ ___/ / ___/ __/ -/ /_/ / / / (__ ) /_ -\____/_/ /_/____/\__/ - diff --git a/ct/grocy.app b/ct/grocy.app deleted file mode 100644 index 2aad01d40..000000000 --- a/ct/grocy.app +++ /dev/null @@ -1,6 +0,0 @@ - - ____ __________ _______ __ - / __ `/ ___/ __ \/ ___/ / / / - / /_/ / / / /_/ / /__/ /_/ / - \__, /_/ \____/\___/\__, / -/____/ /____/ diff --git a/ct/headscale.app b/ct/headscale.app deleted file mode 100644 index ff8ca5149..000000000 --- a/ct/headscale.app +++ /dev/null @@ -1,6 +0,0 @@ - __ __ __ __ - / / / /__ ____ _____/ /_____________ _/ /__ - / /_/ / _ \/ __ `/ __ / ___/ ___/ __ `/ / _ \ - / __ / __/ /_/ / /_/ (__ ) /__/ /_/ / / __/ -/_/ /_/\___/\__,_/\__,_/____/\___/\__,_/_/\___/ - diff --git a/ct/heimdall-dashboard.app b/ct/heimdall-dashboard.app deleted file mode 100644 index 245902b76..000000000 --- a/ct/heimdall-dashboard.app +++ /dev/null @@ -1,12 +0,0 @@ - __ __ _ __ ____ ____ __ __ - / / / /__ (_)___ ___ ____/ /___ _/ / / / __ \____ ______/ /_ / /_ - / /_/ / _ \/ / __ `__ \/ __ / __ `/ / /_____/ / / / __ `/ ___/ __ \/ __ \ - / __ / __/ / / / / / / /_/ / /_/ / / /_____/ /_/ / /_/ (__ ) / / / /_/ / -/_/ /_/\___/_/_/ /_/ /_/\__,_/\__,_/_/_/ /_____/\__,_/____/_/ /_/_.___/ - - __ - ____ ____ __________/ / - / __ \/ __ `/ ___/ __ / -/ /_/ / /_/ / / / /_/ / -\____/\__,_/_/ \__,_/ - diff --git a/ct/hivemq.app b/ct/hivemq.app deleted file mode 100644 index ac5216a72..000000000 --- a/ct/hivemq.app +++ /dev/null @@ -1,6 +0,0 @@ - __ ___ __ _______ - / / / (_) _____ / |/ / __ \ - / /_/ / / | / / _ \/ /|_/ / / / / - / __ / /| |/ / __/ / / / /_/ / -/_/ /_/_/ |___/\___/_/ /_/\___\_\ - diff --git a/ct/hoarder.app b/ct/hoarder.app deleted file mode 100644 index c09416d41..000000000 --- a/ct/hoarder.app +++ /dev/null @@ -1,6 +0,0 @@ - __ __ __ - / / / /___ ____ __________/ /__ _____ - / /_/ / __ \/ __ `/ ___/ __ / _ \/ ___/ - / __ / /_/ / /_/ / / / /_/ / __/ / -/_/ /_/\____/\__,_/_/ \__,_/\___/_/ - diff --git a/ct/homarr.app b/ct/homarr.app deleted file mode 100644 index 1bd7a939e..000000000 --- a/ct/homarr.app +++ /dev/null @@ -1,6 +0,0 @@ - __ __ - / / / /___ ____ ___ ____ ___________ - / /_/ / __ \/ __ `__ \/ __ `/ ___/ ___/ - / __ / /_/ / / / / / / /_/ / / / / -/_/ /_/\____/_/ /_/ /_/\__,_/_/ /_/ - diff --git a/ct/homeassistant-core.app b/ct/homeassistant-core.app deleted file mode 100644 index efbc16431..000000000 --- a/ct/homeassistant-core.app +++ /dev/null @@ -1,12 +0,0 @@ - __ __ - / / / /___ ____ ___ ___ - / /_/ / __ \/ __ `__ \/ _ \ - / __ / /_/ / / / / / / __/ -/_/ /_/\____/_/ /_/ /_/\___/ - - ___ _ __ __ ______ - / | __________(_)____/ /_____ _____ / /_ / ____/___ ________ - / /| | / ___/ ___/ / ___/ __/ __ `/ __ \/ __/_____/ / / __ \/ ___/ _ \ - / ___ |(__ |__ ) (__ ) /_/ /_/ / / / / /_/_____/ /___/ /_/ / / / __/ -/_/ |_/____/____/_/____/\__/\__,_/_/ /_/\__/ \____/\____/_/ \___/ - diff --git a/ct/homeassistant.app b/ct/homeassistant.app deleted file mode 100644 index a88730f49..000000000 --- a/ct/homeassistant.app +++ /dev/null @@ -1,6 +0,0 @@ - __ __ ___ _ __ __ - / / / /___ ____ ___ ___ / | __________(_)____/ /_____ _____ / /_ - / /_/ / __ \/ __ `__ \/ _ \ / /| | / ___/ ___/ / ___/ __/ __ `/ __ \/ __/ - / __ / /_/ / / / / / / __/ / ___ |(__ |__ ) (__ ) /_/ /_/ / / / / /_ -/_/ /_/\____/_/ /_/ /_/\___/ /_/ |_/____/____/_/____/\__/\__,_/_/ /_/\__/ - diff --git a/ct/homebox.app b/ct/homebox.app deleted file mode 100644 index da717216b..000000000 --- a/ct/homebox.app +++ /dev/null @@ -1,6 +0,0 @@ - __ __ ____ - / / / /___ ____ ___ ___ / __ )____ _ __ - / /_/ / __ \/ __ `__ \/ _ \/ __ / __ \| |/_/ - / __ / /_/ / / / / / / __/ /_/ / /_/ /> < -/_/ /_/\____/_/ /_/ /_/\___/_____/\____/_/|_| - diff --git a/ct/homebridge.app b/ct/homebridge.app deleted file mode 100644 index a3da02405..000000000 --- a/ct/homebridge.app +++ /dev/null @@ -1,6 +0,0 @@ - __ __ __ _ __ - / / / /___ ____ ___ ___ / /_ _____(_)___/ /___ ____ - / /_/ / __ \/ __ `__ \/ _ \/ __ \/ ___/ / __ / __ `/ _ \ - / __ / /_/ / / / / / / __/ /_/ / / / / /_/ / /_/ / __/ -/_/ /_/\____/_/ /_/ /_/\___/_.___/_/ /_/\__,_/\__, /\___/ - /____/ diff --git a/ct/homepage.app b/ct/homepage.app deleted file mode 100644 index 4ff42a16b..000000000 --- a/ct/homepage.app +++ /dev/null @@ -1,6 +0,0 @@ - __ __ - / / / /___ ____ ___ ___ ____ ____ _____ ____ - / /_/ / __ \/ __ `__ \/ _ \/ __ \/ __ `/ __ `/ _ \ - / __ / /_/ / / / / / / __/ /_/ / /_/ / /_/ / __/ -/_/ /_/\____/_/ /_/ /_/\___/ .___/\__,_/\__, /\___/ - /_/ /____/ diff --git a/ct/homer.app b/ct/homer.app deleted file mode 100644 index 80e4281a2..000000000 --- a/ct/homer.app +++ /dev/null @@ -1,6 +0,0 @@ - __ __ - / / / /___ ____ ___ ___ _____ - / /_/ / __ \/ __ `__ \/ _ \/ ___/ - / __ / /_/ / / / / / / __/ / -/_/ /_/\____/_/ /_/ /_/\___/_/ - diff --git a/ct/hyperhdr.app b/ct/hyperhdr.app deleted file mode 100644 index cbbcfc570..000000000 --- a/ct/hyperhdr.app +++ /dev/null @@ -1,6 +0,0 @@ - __ __ __ ______ ____ - / / / /_ ______ ___ _____/ / / / __ \/ __ \ - / /_/ / / / / __ \/ _ \/ ___/ /_/ / / / / /_/ / - / __ / /_/ / /_/ / __/ / / __ / /_/ / _, _/ -/_/ /_/\__, / .___/\___/_/ /_/ /_/_____/_/ |_| - /____/_/ diff --git a/ct/hyperion.app b/ct/hyperion.app deleted file mode 100644 index 2c0f7972c..000000000 --- a/ct/hyperion.app +++ /dev/null @@ -1,6 +0,0 @@ - __ __ _ - / / / /_ ______ ___ _____(_)___ ____ - / /_/ / / / / __ \/ _ \/ ___/ / __ \/ __ \ - / __ / /_/ / /_/ / __/ / / / /_/ / / / / -/_/ /_/\__, / .___/\___/_/ /_/\____/_/ /_/ - /____/_/ diff --git a/ct/influxdb.app b/ct/influxdb.app deleted file mode 100644 index b8efea541..000000000 --- a/ct/influxdb.app +++ /dev/null @@ -1,6 +0,0 @@ - ____ ______ ____ ____ - / _/___ / __/ /_ ___ __/ __ \/ __ ) - / // __ \/ /_/ / / / / |/_/ / / / __ | - _/ // / / / __/ / /_/ /> < -/_/ |_/\___/\__/_____/\____/_/|_| - diff --git a/ct/nextcloudpi.app b/ct/nextcloudpi.app deleted file mode 100644 index 9aa8b5943..000000000 --- a/ct/nextcloudpi.app +++ /dev/null @@ -1,6 +0,0 @@ - _ __ __ ________ ______ _ - / | / /__ _ __/ /_/ ____/ /___ __ ______/ / __ \(_) - / |/ / _ \| |/_/ __/ / / / __ \/ / / / __ / /_/ / / - / /| / __/> < / ____/ / / /_/ /> < -/_/ \__,_/ .___/\___/_/ /_/\___/____/____/ /_/ /_/\__, /_/|_| - /_/ /____/ diff --git a/ct/part-db.app b/ct/part-db.app deleted file mode 100644 index fe3255506..000000000 --- a/ct/part-db.app +++ /dev/null @@ -1,6 +0,0 @@ - ____ __ ____ ____ - / __ \____ ______/ /_ / __ \/ __ ) - / /_/ / __ `/ ___/ __/_____/ / / / __ | - / ____/ /_/ / / / /_/_____/ /_/ / /_/ / -/_/ \__,_/_/ \__/ /_____/_____/ - diff --git a/ct/pbs.app b/ct/pbs.app deleted file mode 100644 index 785d90a83..000000000 --- a/ct/pbs.app +++ /dev/null @@ -1,6 +0,0 @@ - ____ ____ _____ - / __ \/ __ ) ___/ - / /_/ / __ \__ \ - / ____/ /_/ /__/ / -/_/ /_____/____/ - diff --git a/ct/peanut.app b/ct/peanut.app deleted file mode 100644 index 11a2cd5c6..000000000 --- a/ct/peanut.app +++ /dev/null @@ -1,6 +0,0 @@ - ____ _ ____ ________ - / __ \___ ____ _/ | / / / / /_ __/ - / /_/ / _ \/ __ `/ |/ / / / / / / - / ____/ __/ /_/ / /| / /_/ / / / -/_/ \___/\__,_/_/ |_/\____/ /_/ - diff --git a/ct/petio.app b/ct/petio.app deleted file mode 100644 index d8deb745a..000000000 --- a/ct/petio.app +++ /dev/null @@ -1,6 +0,0 @@ - ____ __ _ - / __ \___ / /_(_)___ - / /_/ / _ \/ __/ / __ \ - / ____/ __/ /_/ / /_/ / -/_/ \___/\__/_/\____/ - diff --git a/ct/pf2etools.app b/ct/pf2etools.app deleted file mode 100644 index b6f7cb106..000000000 --- a/ct/pf2etools.app +++ /dev/null @@ -1,6 +0,0 @@ - ____ _______ ______ __ - / __ \/ __/__ \ ___/_ __/___ ____ / /____ - / /_/ / /_ __/ // _ \/ / / __ \/ __ \/ / ___/ - / ____/ __// __// __/ / / /_/ / /_/ / (__ ) -/_/ /_/ /____/\___/_/ \____/\____/_/____/ - diff --git a/ct/photoprism.app b/ct/photoprism.app deleted file mode 100644 index a8a9cabe5..000000000 --- a/ct/photoprism.app +++ /dev/null @@ -1,6 +0,0 @@ - ____ __ __ ____ _ - / __ \/ /_ ____ / /_____ / __ \_____(_)________ ___ - / /_/ / __ \/ __ \/ __/ __ \/ /_/ / ___/ / ___/ __ `__ \ - / ____/ / / / /_/ / /_/ /_/ / ____/ / / (__ ) / / / / / -/_/ /_/ /_/\____/\__/\____/_/ /_/ /_/____/_/ /_/ /_/ - diff --git a/ct/phpipam.app b/ct/phpipam.app deleted file mode 100644 index 51ba79de5..000000000 --- a/ct/phpipam.app +++ /dev/null @@ -1,6 +0,0 @@ - __ ________ ___ __ ___ - ____ / /_ ____ / _/ __ \/ | / |/ / - / __ \/ __ \/ __ \ / // /_/ / /| | / /|_/ / - / /_/ / / / / /_/ // // ____/ ___ |/ / / / - / .___/_/ /_/ .___/___/_/ /_/ |_/_/ /_/ -/_/ /_/ diff --git a/ct/pialert.app b/ct/pialert.app deleted file mode 100644 index 07f2474c1..000000000 --- a/ct/pialert.app +++ /dev/null @@ -1,6 +0,0 @@ - ____ _ ___ __ __ - / __ \(_) | / /__ _____/ /_ - / /_/ / / /| | / / _ \/ ___/ __/ - / ____/ / ___ |/ / __/ / / /_ -/_/ /_/_/ |_/_/\___/_/ \__/ - diff --git a/ct/pihole.app b/ct/pihole.app deleted file mode 100644 index 9a727b229..000000000 --- a/ct/pihole.app +++ /dev/null @@ -1,6 +0,0 @@ - ____ _ __ __ - / __ \(_) /_ ____ / /__ - / /_/ / / __ \/ __ \/ / _ \ - / ____/ / / / / /_/ / / __/ -/_/ /_/_/ /_/\____/_/\___/ - diff --git a/ct/pingvin.app b/ct/pingvin.app deleted file mode 100644 index 8177f8179..000000000 --- a/ct/pingvin.app +++ /dev/null @@ -1,6 +0,0 @@ - ____ _ _ - / __ \(_)___ ____ __ __(_)___ - / /_/ / / __ \/ __ `/ | / / / __ \ - / ____/ / / / / /_/ /| |/ / / / / / -/_/ /_/_/ /_/\__, / |___/_/_/ /_/ - /____/ diff --git a/ct/plex.app b/ct/plex.app deleted file mode 100644 index 2e27d0b8e..000000000 --- a/ct/plex.app +++ /dev/null @@ -1,6 +0,0 @@ - ____ __ - / __ \/ /__ _ __ - / /_/ / / _ \| |/_/ - / ____/ / __/> < -/_/ /_/\___/_/|_| - diff --git a/ct/pocketbase.app b/ct/pocketbase.app deleted file mode 100644 index 5eea86259..000000000 --- a/ct/pocketbase.app +++ /dev/null @@ -1,6 +0,0 @@ - ____ __ __ __ - / __ \____ _____/ /_____ / /_/ /_ ____ _________ - / /_/ / __ \/ ___/ //_/ _ \/ __/ __ \/ __ `/ ___/ _ \ - / ____/ /_/ / /__/ ,< / __/ /_/ /_/ / /_/ (__ ) __/ -/_/ \____/\___/_/|_|\___/\__/_.___/\__,_/____/\___/ - diff --git a/ct/podman-homeassistant.app b/ct/podman-homeassistant.app deleted file mode 100644 index c1241da46..000000000 --- a/ct/podman-homeassistant.app +++ /dev/null @@ -1,12 +0,0 @@ - ____ __ __ __ - / __ \____ ____/ /___ ___ ____ _____ / / / /___ ____ ___ ___ - / /_/ / __ \/ __ / __ `__ \/ __ `/ __ \______/ /_/ / __ \/ __ `__ \/ _ \ - / ____/ /_/ / /_/ / / / / / / /_/ / / / /_____/ __ / /_/ / / / / / / __/ -/_/ \____/\__,_/_/ /_/ /_/\__,_/_/ /_/ /_/ /_/\____/_/ /_/ /_/\___/ - - ___ _ __ __ - / | __________(_)____/ /_____ _____ / /_ - / /| | / ___/ ___/ / ___/ __/ __ `/ __ \/ __/ - / ___ |(__ |__ ) (__ ) /_/ /_/ / / / / /_ -/_/ |_/____/____/_/____/\__/\__,_/_/ /_/\__/ - diff --git a/ct/podman.app b/ct/podman.app deleted file mode 100644 index 2f81f14a8..000000000 --- a/ct/podman.app +++ /dev/null @@ -1,6 +0,0 @@ - ____ __ - / __ \____ ____/ /___ ___ ____ _____ - / /_/ / __ \/ __ / __ `__ \/ __ `/ __ \ - / ____/ /_/ / /_/ / / / / / / /_/ / / / / -/_/ \____/\__,_/_/ /_/ /_/\__,_/_/ /_/ - diff --git a/ct/postgresql.app b/ct/postgresql.app deleted file mode 100644 index 8297b0ad4..000000000 --- a/ct/postgresql.app +++ /dev/null @@ -1,6 +0,0 @@ - ____ __ _____ ____ __ - / __ \____ _____/ /_____ _________ / ___// __ \ / / - / /_/ / __ \/ ___/ __/ __ `/ ___/ _ \\__ \/ / / / / / - / ____/ /_/ (__ ) /_/ /_/ / / / __/__/ / /_/ / / /___ -/_/ \____/____/\__/\__, /_/ \___/____/\___\_\/_____/ - /____/ diff --git a/ct/projectsend.app b/ct/projectsend.app deleted file mode 100644 index c388eb724..000000000 --- a/ct/projectsend.app +++ /dev/null @@ -1,6 +0,0 @@ - ____ _ __ _____ __ - / __ \_________ (_)__ _____/ /_/ ___/___ ____ ____/ / - / /_/ / ___/ __ \ / / _ \/ ___/ __/\__ \/ _ \/ __ \/ __ / - / ____/ / / /_/ / / / __/ /__/ /_ ___/ / __/ / / / /_/ / -/_/ /_/ \____/_/ /\___/\___/\__//____/\___/_/ /_/\__,_/ - /___/ diff --git a/ct/prometheus-alertmanager.app b/ct/prometheus-alertmanager.app deleted file mode 100644 index 43a4876bd..000000000 --- a/ct/prometheus-alertmanager.app +++ /dev/null @@ -1,12 +0,0 @@ - ____ __ __ ___ __ - / __ \_________ ____ ___ ___ / /_/ /_ ___ __ _______ / | / / - / /_/ / ___/ __ \/ __ `__ \/ _ \/ __/ __ \/ _ \/ / / / ___/_____/ /| | / / - / ____/ / / /_/ / / / / / / __/ /_/ / / / __/ /_/ (__ )_____/ ___ |/ / -/_/ /_/ \____/_/ /_/ /_/\___/\__/_/ /_/\___/\__,_/____/ /_/ |_/_/ - - __ - ___ _____/ /_____ ___ ____ _____ ____ _____ ____ _____ - / _ \/ ___/ __/ __ `__ \/ __ `/ __ \/ __ `/ __ `/ _ \/ ___/ -/ __/ / / /_/ / / / / / /_/ / / / / /_/ / /_/ / __/ / -\___/_/ \__/_/ /_/ /_/\__,_/_/ /_/\__,_/\__, /\___/_/ - /____/ diff --git a/ct/prometheus.app b/ct/prometheus.app deleted file mode 100644 index f5a9cccce..000000000 --- a/ct/prometheus.app +++ /dev/null @@ -1,6 +0,0 @@ - ____ __ __ - / __ \_________ ____ ___ ___ / /_/ /_ ___ __ _______ - / /_/ / ___/ __ \/ __ `__ \/ _ \/ __/ __ \/ _ \/ / / / ___/ - / ____/ / / /_/ / / / / / / __/ /_/ / / / __/ /_/ (__ ) -/_/ /_/ \____/_/ /_/ /_/\___/\__/_/ /_/\___/\__,_/____/ - diff --git a/ct/prowlarr.app b/ct/prowlarr.app deleted file mode 100644 index 10255b7ae..000000000 --- a/ct/prowlarr.app +++ /dev/null @@ -1,6 +0,0 @@ - ____ __ - / __ \_________ _ __/ /___ ___________ - / /_/ / ___/ __ \ | /| / / / __ `/ ___/ ___/ - / ____/ / / /_/ / |/ |/ / / /_/ / / / / -/_/ /_/ \____/|__/|__/_/\__,_/_/ /_/ - diff --git a/ct/proxmox-datacenter-manager.app b/ct/proxmox-datacenter-manager.app deleted file mode 100644 index bd181cc98..000000000 --- a/ct/proxmox-datacenter-manager.app +++ /dev/null @@ -1,18 +0,0 @@ - __ __ - ____ _________ _ ______ ___ ____ _ __ ____/ /___ _/ /_____ _ - / __ \/ ___/ __ \| |/_/ __ `__ \/ __ \| |/_/_____/ __ / __ `/ __/ __ `/ - / /_/ / / / /_/ /> < -/____/\__,_/_.___/_.___/_/_/|_| - diff --git a/ct/zammad.app b/ct/zammad.app deleted file mode 100644 index eb9999df1..000000000 --- a/ct/zammad.app +++ /dev/null @@ -1,6 +0,0 @@ - _____ __ -/__ / ____ _____ ___ ____ ___ ____ _____/ / - / / / __ `/ __ `__ \/ __ `__ \/ __ `/ __ / - / /__/ /_/ / / / / / / / / / / / /_/ / /_/ / -/____/\__,_/_/ /_/ /_/_/ /_/ /_/\__,_/\__,_/ - diff --git a/ct/zigbee2mqtt.app b/ct/zigbee2mqtt.app deleted file mode 100644 index f6925a017..000000000 --- a/ct/zigbee2mqtt.app +++ /dev/null @@ -1,6 +0,0 @@ - _____ _ __ ___ __ _______ ____________ -/__ / (_)___ _/ /_ ___ ___ |__ \ / |/ / __ \/_ __/_ __/ - / / / / __ `/ __ \/ _ \/ _ \__/ // /|_/ / / / / / / / / - / /__/ / /_/ / /_/ / __/ __/ __// / / / /_/ / / / / / -/____/_/\__, /_.___/\___/\___/____/_/ /_/\___\_\/_/ /_/ - /____/ diff --git a/ct/zipline.app b/ct/zipline.app deleted file mode 100644 index ce2b4b914..000000000 --- a/ct/zipline.app +++ /dev/null @@ -1,6 +0,0 @@ - _____ _ ___ -/__ / (_)___ / (_)___ ___ - / / / / __ \/ / / __ \/ _ \ - / /__/ / /_/ / / / / / / __/ -/____/_/ .___/_/_/_/ /_/\___/ - /_/ diff --git a/ct/zoraxy.app b/ct/zoraxy.app deleted file mode 100644 index f93198af0..000000000 --- a/ct/zoraxy.app +++ /dev/null @@ -1,6 +0,0 @@ - _____ -/__ / ____ _________ __ ____ __ - / / / __ \/ ___/ __ `/ |/_/ / / / - / /__/ /_/ / / / /_/ /> Date: Fri, 24 Jan 2025 14:46:14 +0100 Subject: [PATCH 189/284] Create test.txt --- ct/headers/test.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 ct/headers/test.txt diff --git a/ct/headers/test.txt b/ct/headers/test.txt new file mode 100644 index 000000000..e69de29bb From 7723269bbc3a8c49a5a2d1c0a53bff0412f1ad1a Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Fri, 24 Jan 2025 14:47:51 +0100 Subject: [PATCH 190/284] Update generate-app-headers.sh --- .github/workflows/scripts/generate-app-headers.sh | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/workflows/scripts/generate-app-headers.sh b/.github/workflows/scripts/generate-app-headers.sh index e0811495c..812ceb2e0 100755 --- a/.github/workflows/scripts/generate-app-headers.sh +++ b/.github/workflows/scripts/generate-app-headers.sh @@ -1,13 +1,19 @@ #!/usr/bin/env bash +# Base directory for headers +headers_dir="./ct/headers" + +# Ensure the headers directory exists +mkdir -p "$headers_dir" + # Find all .sh files in ./ct directory, sorted alphabetically find ./ct -type f -name "*.sh" | sort | while read -r script; do # Extract the APP name from the APP line app_name=$(grep -oP '^APP="\K[^"]+' "$script" 2>/dev/null) if [[ -n "$app_name" ]]; then - # Define the output file name based on the .sh file - output_file="${script%.sh}.app" + # Define the output file name in the headers directory + output_file="${headers_dir}/$(basename "${script%.*}")" # Check if the output file already exists if [[ ! -f "$output_file" ]]; then From 7ff44c562bce11a0d5e36d4ca3a3cb72cbfed634 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Fri, 24 Jan 2025 14:48:15 +0100 Subject: [PATCH 191/284] Update auto-update-app-headers.yml --- .github/workflows/auto-update-app-headers.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/auto-update-app-headers.yml b/.github/workflows/auto-update-app-headers.yml index 44ddcb026..d4956b925 100644 --- a/.github/workflows/auto-update-app-headers.yml +++ b/.github/workflows/auto-update-app-headers.yml @@ -17,7 +17,7 @@ jobs: pull-requests: write steps: - # Step 1: Checkout repository + # Step 1: Checkout repository - name: Checkout repository uses: actions/checkout@v2 From 2db7cb1fdbdfa137208b0c835d4663c20411acc3 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Fri, 24 Jan 2025 14:50:19 +0100 Subject: [PATCH 192/284] Update generate-app-headers.sh --- .../workflows/scripts/generate-app-headers.sh | 22 ++++++++----------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/.github/workflows/scripts/generate-app-headers.sh b/.github/workflows/scripts/generate-app-headers.sh index 812ceb2e0..f82c674dd 100755 --- a/.github/workflows/scripts/generate-app-headers.sh +++ b/.github/workflows/scripts/generate-app-headers.sh @@ -3,8 +3,9 @@ # Base directory for headers headers_dir="./ct/headers" -# Ensure the headers directory exists +# Ensure the headers directory exists and clear it mkdir -p "$headers_dir" +rm -f "$headers_dir"/* # Find all .sh files in ./ct directory, sorted alphabetically find ./ct -type f -name "*.sh" | sort | while read -r script; do @@ -15,20 +16,15 @@ find ./ct -type f -name "*.sh" | sort | while read -r script; do # Define the output file name in the headers directory output_file="${headers_dir}/$(basename "${script%.*}")" - # Check if the output file already exists - if [[ ! -f "$output_file" ]]; then - # Generate figlet output - figlet_output=$(figlet -f slant "$app_name") + # Generate figlet output + figlet_output=$(figlet -f slant "$app_name") - # Check if figlet output is not empty - if [[ -n "$figlet_output" ]]; then - echo "$figlet_output" > "$output_file" - echo "Generated: $output_file" - else - echo "Figlet failed for $app_name in $script" - fi + # Check if figlet output is not empty + if [[ -n "$figlet_output" ]]; then + echo "$figlet_output" > "$output_file" + echo "Generated: $output_file" else - echo "Skipped: $output_file already exists" + echo "Figlet failed for $app_name in $script" fi else echo "No APP name found in $script, skipping." From b4f2594cef467cdc0a568b013f66f9939ae9658f Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Fri, 24 Jan 2025 14:50:48 +0100 Subject: [PATCH 193/284] Update auto-update-app-headers.yml --- .github/workflows/auto-update-app-headers.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/auto-update-app-headers.yml b/.github/workflows/auto-update-app-headers.yml index d4956b925..dfa34200a 100644 --- a/.github/workflows/auto-update-app-headers.yml +++ b/.github/workflows/auto-update-app-headers.yml @@ -6,7 +6,7 @@ on: - main paths: - 'ct/**.sh' - workflow_dispatch: # ErmΓΆglicht das manuelle AusfΓΌhren der Action + workflow_dispatch: jobs: update-app-files: @@ -47,11 +47,14 @@ jobs: - name: Check if there are any changes id: verify-diff run: | + echo "Checking for changes..." + git status if git diff --quiet; then echo "No changes detected." echo "changed=false" >> $GITHUB_OUTPUT else - echo "Changes detected." + echo "Changes detected:" + git diff --stat echo "changed=true" >> $GITHUB_OUTPUT fi @@ -76,3 +79,4 @@ jobs: - name: No changes detected if: steps.verify-diff.outputs.changed == 'false' run: echo "No changes to commit. Workflow completed successfully." + From 198c5caeaafeb00e987560adada8dc7aeda2fd53 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 25 Jan 2025 00:10:53 +0100 Subject: [PATCH 194/284] Update .app files (#1728) Co-authored-by: GitHub Actions --- ct/headers/2fauth | 6 ++++++ ct/headers/5etools | 6 ++++++ ct/headers/actualbudget | 6 ++++++ ct/headers/adguard | 6 ++++++ ct/headers/adventurelog | 6 ++++++ ct/headers/agentdvr | 6 ++++++ ct/headers/alpine | 6 ++++++ ct/headers/alpine-docker | 6 ++++++ ct/headers/alpine-grafana | 6 ++++++ ct/headers/alpine-nextcloud | 12 ++++++++++++ ct/headers/alpine-vaultwarden | 12 ++++++++++++ ct/headers/alpine-zigbee2mqtt | 12 ++++++++++++ ct/headers/apache-cassandra | 12 ++++++++++++ ct/headers/apache-couchdb | 12 ++++++++++++ ct/headers/apache-guacamole | 12 ++++++++++++ ct/headers/apt-cacher-ng | 6 ++++++ ct/headers/archivebox | 6 ++++++ ct/headers/aria2 | 6 ++++++ ct/headers/audiobookshelf | 6 ++++++ ct/headers/authentik | 6 ++++++ ct/headers/autobrr | 6 ++++++ ct/headers/bazarr | 6 ++++++ ct/headers/beszel | 6 ++++++ ct/headers/blocky | 6 ++++++ ct/headers/bookstack | 6 ++++++ ct/headers/bunkerweb | 6 ++++++ ct/headers/caddy | 6 ++++++ ct/headers/calibre-web | 6 ++++++ ct/headers/casaos | 6 ++++++ ct/headers/changedetection | 12 ++++++++++++ ct/headers/channels | 6 ++++++ ct/headers/checkmk | 6 ++++++ ct/headers/cloudflared | 6 ++++++ ct/headers/cockpit | 6 ++++++ ct/headers/commafeed | 6 ++++++ ct/headers/cronicle | 6 ++++++ ct/headers/daemonsync | 6 ++++++ ct/headers/dashy | 6 ++++++ ct/headers/debian | 6 ++++++ ct/headers/deconz | 6 ++++++ ct/headers/deluge | 6 ++++++ ct/headers/docker | 6 ++++++ ct/headers/dockge | 6 ++++++ ct/headers/dotnetaspwebapi | 12 ++++++++++++ ct/headers/emby | 6 ++++++ ct/headers/emqx | 6 ++++++ ct/headers/ersatztv | 6 ++++++ ct/headers/esphome | 6 ++++++ ct/headers/evcc | 6 ++++++ ct/headers/fenrus | 6 ++++++ ct/headers/fhem | 6 ++++++ ct/headers/firefly | 6 ++++++ ct/headers/flaresolverr | 6 ++++++ ct/headers/flowiseai | 6 ++++++ ct/headers/forgejo | 6 ++++++ ct/headers/frigate | 6 ++++++ ct/headers/ghost | 6 ++++++ ct/headers/gitea | 6 ++++++ ct/headers/glance | 6 ++++++ ct/headers/glpi | 6 ++++++ ct/headers/go2rtc | 6 ++++++ ct/headers/gokapi | 6 ++++++ ct/headers/gotify | 6 ++++++ ct/headers/grafana | 6 ++++++ ct/headers/grist | 6 ++++++ ct/headers/grocy | 6 ++++++ ct/headers/headscale | 6 ++++++ ct/headers/heimdall-dashboard | 12 ++++++++++++ ct/headers/hivemq | 6 ++++++ ct/headers/hoarder | 6 ++++++ ct/headers/homarr | 6 ++++++ ct/headers/homeassistant | 6 ++++++ ct/headers/homeassistant-core | 12 ++++++++++++ ct/headers/homebox | 6 ++++++ ct/headers/homebridge | 6 ++++++ ct/headers/homepage | 6 ++++++ ct/headers/homer | 6 ++++++ ct/headers/hyperhdr | 6 ++++++ ct/headers/hyperion | 6 ++++++ ct/headers/influxdb | 6 ++++++ ct/headers/inspircd | 6 ++++++ ct/headers/iobroker | 6 ++++++ ct/headers/iventoy | 6 ++++++ ct/headers/jackett | 6 ++++++ ct/headers/jellyfin | 6 ++++++ ct/headers/jellyseerr | 6 ++++++ ct/headers/jenkins | 6 ++++++ ct/headers/kavita | 6 ++++++ ct/headers/keycloak | 6 ++++++ ct/headers/kimai | 6 ++++++ ct/headers/komga | 6 ++++++ ct/headers/komodo | 6 ++++++ ct/headers/kubo | 6 ++++++ ct/headers/lazylibrarian | 6 ++++++ ct/headers/lidarr | 6 ++++++ ct/headers/linkwarden | 6 ++++++ ct/headers/listmonk | 6 ++++++ ct/headers/lldap | 6 ++++++ ct/headers/lubelogger | 6 ++++++ ct/headers/mafl | 6 ++++++ ct/headers/magicmirror | 6 ++++++ ct/headers/mariadb | 6 ++++++ ct/headers/matterbridge | 6 ++++++ ct/headers/mediamtx | 6 ++++++ ct/headers/medusa | 6 ++++++ ct/headers/memos | 6 ++++++ ct/headers/meshcentral | 6 ++++++ ct/headers/metube | 6 ++++++ ct/headers/mongodb | 6 ++++++ ct/headers/motioneye | 6 ++++++ ct/headers/mqtt | 6 ++++++ ct/headers/mylar3 | 6 ++++++ ct/headers/myspeed | 6 ++++++ ct/headers/mysql | 6 ++++++ ct/headers/n8n | 6 ++++++ ct/headers/navidrome | 6 ++++++ ct/headers/neo4j | 6 ++++++ ct/headers/netbox | 6 ++++++ ct/headers/nextcloudpi | 6 ++++++ ct/headers/nextpvr | 6 ++++++ ct/headers/nginxproxymanager | 12 ++++++++++++ ct/headers/nocodb | 6 ++++++ ct/headers/node-red | 6 ++++++ ct/headers/notifiarr | 6 ++++++ ct/headers/ntfy | 6 ++++++ ct/headers/nzbget | 6 ++++++ ct/headers/octoprint | 6 ++++++ ct/headers/ollama | 6 ++++++ ct/headers/omada | 6 ++++++ ct/headers/ombi | 6 ++++++ ct/headers/omv | 6 ++++++ ct/headers/onedev | 6 ++++++ ct/headers/opengist | 6 ++++++ ct/headers/openhab | 6 ++++++ ct/headers/openobserve | 6 ++++++ ct/headers/openwebui | 6 ++++++ ct/headers/overseerr | 6 ++++++ ct/headers/owncast | 6 ++++++ ct/headers/pairdrop | 6 ++++++ ct/headers/paperless-ngx | 6 ++++++ ct/headers/part-db | 6 ++++++ ct/headers/pbs | 6 ++++++ ct/headers/peanut | 6 ++++++ ct/headers/petio | 6 ++++++ ct/headers/pf2etools | 6 ++++++ ct/headers/photoprism | 6 ++++++ ct/headers/phpipam | 6 ++++++ ct/headers/pialert | 6 ++++++ ct/headers/pihole | 6 ++++++ ct/headers/pingvin | 6 ++++++ ct/headers/plex | 6 ++++++ ct/headers/pocketbase | 6 ++++++ ct/headers/podman | 6 ++++++ ct/headers/podman-homeassistant | 12 ++++++++++++ ct/headers/postgresql | 6 ++++++ ct/headers/projectsend | 6 ++++++ ct/headers/prometheus | 6 ++++++ ct/headers/prometheus-alertmanager | 12 ++++++++++++ ct/headers/prowlarr | 6 ++++++ ct/headers/proxmox-datacenter-manager | 18 ++++++++++++++++++ ct/headers/ps5-mqtt | 6 ++++++ ct/headers/qbittorrent | 6 ++++++ ct/headers/rabbitmq | 6 ++++++ ct/headers/radarr | 6 ++++++ ct/headers/rdtclient | 6 ++++++ ct/headers/readarr | 6 ++++++ ct/headers/readeck | 6 ++++++ ct/headers/recyclarr | 6 ++++++ ct/headers/redis | 6 ++++++ ct/headers/rtsptoweb | 6 ++++++ ct/headers/runtipi | 6 ++++++ ct/headers/sabnzbd | 6 ++++++ ct/headers/semaphore | 6 ++++++ ct/headers/sftpgo | 6 ++++++ ct/headers/shinobi | 6 ++++++ ct/headers/silverbullet | 6 ++++++ ct/headers/smokeping | 6 ++++++ ct/headers/snipeit | 6 ++++++ ct/headers/sonarr | 6 ++++++ ct/headers/spoolman | 6 ++++++ ct/headers/sqlserver2022 | 12 ++++++++++++ ct/headers/stirling-pdf | 6 ++++++ ct/headers/syncthing | 6 ++++++ ct/headers/tandoor | 6 ++++++ ct/headers/tasmoadmin | 6 ++++++ ct/headers/tautulli | 6 ++++++ ct/headers/tdarr | 6 ++++++ ct/headers/technitiumdns | 6 ++++++ ct/headers/teddycloud | 6 ++++++ ct/headers/test.txt | 0 ct/headers/the-lounge | 6 ++++++ ct/headers/threadfin | 6 ++++++ ct/headers/tianji | 6 ++++++ ct/headers/traccar | 6 ++++++ ct/headers/traefik | 6 ++++++ ct/headers/transmission | 6 ++++++ ct/headers/trilium | 6 ++++++ ct/headers/typesense | 6 ++++++ ct/headers/ubuntu | 6 ++++++ ct/headers/umami | 6 ++++++ ct/headers/umbrel | 6 ++++++ ct/headers/unbound | 6 ++++++ ct/headers/unifi | 6 ++++++ ct/headers/unmanic | 6 ++++++ ct/headers/uptimekuma | 6 ++++++ ct/headers/urbackupserver | 12 ++++++++++++ ct/headers/vaultwarden | 6 ++++++ ct/headers/vikunja | 6 ++++++ ct/headers/wallos | 6 ++++++ ct/headers/wastebin | 6 ++++++ ct/headers/watchyourlan | 6 ++++++ ct/headers/wavelog | 6 ++++++ ct/headers/whisparr | 6 ++++++ ct/headers/whoogle | 6 ++++++ ct/headers/wikijs | 6 ++++++ ct/headers/wireguard | 6 ++++++ ct/headers/wordpress | 6 ++++++ ct/headers/yunohost | 6 ++++++ ct/headers/zabbix | 6 ++++++ ct/headers/zammad | 6 ++++++ ct/headers/zigbee2mqtt | 6 ++++++ ct/headers/zipline | 6 ++++++ ct/headers/zoraxy | 6 ++++++ ct/headers/zwave-js-ui | 6 ++++++ 224 files changed, 1440 insertions(+) create mode 100644 ct/headers/2fauth create mode 100644 ct/headers/5etools create mode 100644 ct/headers/actualbudget create mode 100644 ct/headers/adguard create mode 100644 ct/headers/adventurelog create mode 100644 ct/headers/agentdvr create mode 100644 ct/headers/alpine create mode 100644 ct/headers/alpine-docker create mode 100644 ct/headers/alpine-grafana create mode 100644 ct/headers/alpine-nextcloud create mode 100644 ct/headers/alpine-vaultwarden create mode 100644 ct/headers/alpine-zigbee2mqtt create mode 100644 ct/headers/apache-cassandra create mode 100644 ct/headers/apache-couchdb create mode 100644 ct/headers/apache-guacamole create mode 100644 ct/headers/apt-cacher-ng create mode 100644 ct/headers/archivebox create mode 100644 ct/headers/aria2 create mode 100644 ct/headers/audiobookshelf create mode 100644 ct/headers/authentik create mode 100644 ct/headers/autobrr create mode 100644 ct/headers/bazarr create mode 100644 ct/headers/beszel create mode 100644 ct/headers/blocky create mode 100644 ct/headers/bookstack create mode 100644 ct/headers/bunkerweb create mode 100644 ct/headers/caddy create mode 100644 ct/headers/calibre-web create mode 100644 ct/headers/casaos create mode 100644 ct/headers/changedetection create mode 100644 ct/headers/channels create mode 100644 ct/headers/checkmk create mode 100644 ct/headers/cloudflared create mode 100644 ct/headers/cockpit create mode 100644 ct/headers/commafeed create mode 100644 ct/headers/cronicle create mode 100644 ct/headers/daemonsync create mode 100644 ct/headers/dashy create mode 100644 ct/headers/debian create mode 100644 ct/headers/deconz create mode 100644 ct/headers/deluge create mode 100644 ct/headers/docker create mode 100644 ct/headers/dockge create mode 100644 ct/headers/dotnetaspwebapi create mode 100644 ct/headers/emby create mode 100644 ct/headers/emqx create mode 100644 ct/headers/ersatztv create mode 100644 ct/headers/esphome create mode 100644 ct/headers/evcc create mode 100644 ct/headers/fenrus create mode 100644 ct/headers/fhem create mode 100644 ct/headers/firefly create mode 100644 ct/headers/flaresolverr create mode 100644 ct/headers/flowiseai create mode 100644 ct/headers/forgejo create mode 100644 ct/headers/frigate create mode 100644 ct/headers/ghost create mode 100644 ct/headers/gitea create mode 100644 ct/headers/glance create mode 100644 ct/headers/glpi create mode 100644 ct/headers/go2rtc create mode 100644 ct/headers/gokapi create mode 100644 ct/headers/gotify create mode 100644 ct/headers/grafana create mode 100644 ct/headers/grist create mode 100644 ct/headers/grocy create mode 100644 ct/headers/headscale create mode 100644 ct/headers/heimdall-dashboard create mode 100644 ct/headers/hivemq create mode 100644 ct/headers/hoarder create mode 100644 ct/headers/homarr create mode 100644 ct/headers/homeassistant create mode 100644 ct/headers/homeassistant-core create mode 100644 ct/headers/homebox create mode 100644 ct/headers/homebridge create mode 100644 ct/headers/homepage create mode 100644 ct/headers/homer create mode 100644 ct/headers/hyperhdr create mode 100644 ct/headers/hyperion create mode 100644 ct/headers/influxdb create mode 100644 ct/headers/inspircd create mode 100644 ct/headers/iobroker create mode 100644 ct/headers/iventoy create mode 100644 ct/headers/jackett create mode 100644 ct/headers/jellyfin create mode 100644 ct/headers/jellyseerr create mode 100644 ct/headers/jenkins create mode 100644 ct/headers/kavita create mode 100644 ct/headers/keycloak create mode 100644 ct/headers/kimai create mode 100644 ct/headers/komga create mode 100644 ct/headers/komodo create mode 100644 ct/headers/kubo create mode 100644 ct/headers/lazylibrarian create mode 100644 ct/headers/lidarr create mode 100644 ct/headers/linkwarden create mode 100644 ct/headers/listmonk create mode 100644 ct/headers/lldap create mode 100644 ct/headers/lubelogger create mode 100644 ct/headers/mafl create mode 100644 ct/headers/magicmirror create mode 100644 ct/headers/mariadb create mode 100644 ct/headers/matterbridge create mode 100644 ct/headers/mediamtx create mode 100644 ct/headers/medusa create mode 100644 ct/headers/memos create mode 100644 ct/headers/meshcentral create mode 100644 ct/headers/metube create mode 100644 ct/headers/mongodb create mode 100644 ct/headers/motioneye create mode 100644 ct/headers/mqtt create mode 100644 ct/headers/mylar3 create mode 100644 ct/headers/myspeed create mode 100644 ct/headers/mysql create mode 100644 ct/headers/n8n create mode 100644 ct/headers/navidrome create mode 100644 ct/headers/neo4j create mode 100644 ct/headers/netbox create mode 100644 ct/headers/nextcloudpi create mode 100644 ct/headers/nextpvr create mode 100644 ct/headers/nginxproxymanager create mode 100644 ct/headers/nocodb create mode 100644 ct/headers/node-red create mode 100644 ct/headers/notifiarr create mode 100644 ct/headers/ntfy create mode 100644 ct/headers/nzbget create mode 100644 ct/headers/octoprint create mode 100644 ct/headers/ollama create mode 100644 ct/headers/omada create mode 100644 ct/headers/ombi create mode 100644 ct/headers/omv create mode 100644 ct/headers/onedev create mode 100644 ct/headers/opengist create mode 100644 ct/headers/openhab create mode 100644 ct/headers/openobserve create mode 100644 ct/headers/openwebui create mode 100644 ct/headers/overseerr create mode 100644 ct/headers/owncast create mode 100644 ct/headers/pairdrop create mode 100644 ct/headers/paperless-ngx create mode 100644 ct/headers/part-db create mode 100644 ct/headers/pbs create mode 100644 ct/headers/peanut create mode 100644 ct/headers/petio create mode 100644 ct/headers/pf2etools create mode 100644 ct/headers/photoprism create mode 100644 ct/headers/phpipam create mode 100644 ct/headers/pialert create mode 100644 ct/headers/pihole create mode 100644 ct/headers/pingvin create mode 100644 ct/headers/plex create mode 100644 ct/headers/pocketbase create mode 100644 ct/headers/podman create mode 100644 ct/headers/podman-homeassistant create mode 100644 ct/headers/postgresql create mode 100644 ct/headers/projectsend create mode 100644 ct/headers/prometheus create mode 100644 ct/headers/prometheus-alertmanager create mode 100644 ct/headers/prowlarr create mode 100644 ct/headers/proxmox-datacenter-manager create mode 100644 ct/headers/ps5-mqtt create mode 100644 ct/headers/qbittorrent create mode 100644 ct/headers/rabbitmq create mode 100644 ct/headers/radarr create mode 100644 ct/headers/rdtclient create mode 100644 ct/headers/readarr create mode 100644 ct/headers/readeck create mode 100644 ct/headers/recyclarr create mode 100644 ct/headers/redis create mode 100644 ct/headers/rtsptoweb create mode 100644 ct/headers/runtipi create mode 100644 ct/headers/sabnzbd create mode 100644 ct/headers/semaphore create mode 100644 ct/headers/sftpgo create mode 100644 ct/headers/shinobi create mode 100644 ct/headers/silverbullet create mode 100644 ct/headers/smokeping create mode 100644 ct/headers/snipeit create mode 100644 ct/headers/sonarr create mode 100644 ct/headers/spoolman create mode 100644 ct/headers/sqlserver2022 create mode 100644 ct/headers/stirling-pdf create mode 100644 ct/headers/syncthing create mode 100644 ct/headers/tandoor create mode 100644 ct/headers/tasmoadmin create mode 100644 ct/headers/tautulli create mode 100644 ct/headers/tdarr create mode 100644 ct/headers/technitiumdns create mode 100644 ct/headers/teddycloud delete mode 100644 ct/headers/test.txt create mode 100644 ct/headers/the-lounge create mode 100644 ct/headers/threadfin create mode 100644 ct/headers/tianji create mode 100644 ct/headers/traccar create mode 100644 ct/headers/traefik create mode 100644 ct/headers/transmission create mode 100644 ct/headers/trilium create mode 100644 ct/headers/typesense create mode 100644 ct/headers/ubuntu create mode 100644 ct/headers/umami create mode 100644 ct/headers/umbrel create mode 100644 ct/headers/unbound create mode 100644 ct/headers/unifi create mode 100644 ct/headers/unmanic create mode 100644 ct/headers/uptimekuma create mode 100644 ct/headers/urbackupserver create mode 100644 ct/headers/vaultwarden create mode 100644 ct/headers/vikunja create mode 100644 ct/headers/wallos create mode 100644 ct/headers/wastebin create mode 100644 ct/headers/watchyourlan create mode 100644 ct/headers/wavelog create mode 100644 ct/headers/whisparr create mode 100644 ct/headers/whoogle create mode 100644 ct/headers/wikijs create mode 100644 ct/headers/wireguard create mode 100644 ct/headers/wordpress create mode 100644 ct/headers/yunohost create mode 100644 ct/headers/zabbix create mode 100644 ct/headers/zammad create mode 100644 ct/headers/zigbee2mqtt create mode 100644 ct/headers/zipline create mode 100644 ct/headers/zoraxy create mode 100644 ct/headers/zwave-js-ui diff --git a/ct/headers/2fauth b/ct/headers/2fauth new file mode 100644 index 000000000..b6421719c --- /dev/null +++ b/ct/headers/2fauth @@ -0,0 +1,6 @@ + ___ _________ __ __ + |__ \ / ____/ | __ __/ /_/ /_ + __/ // /_ / /| |/ / / / __/ __ \ + / __// __/ / ___ / /_/ / /_/ / / / +/____/_/ /_/ |_\__,_/\__/_/ /_/ + diff --git a/ct/headers/5etools b/ct/headers/5etools new file mode 100644 index 000000000..1556067f1 --- /dev/null +++ b/ct/headers/5etools @@ -0,0 +1,6 @@ + ______ __ __ + / ____/__ / /_____ ____ / /____ + /___ \/ _ \/ __/ __ \/ __ \/ / ___/ + ____/ / __/ /_/ /_/ / /_/ / (__ ) +/_____/\___/\__/\____/\____/_/____/ + diff --git a/ct/headers/actualbudget b/ct/headers/actualbudget new file mode 100644 index 000000000..db7f30933 --- /dev/null +++ b/ct/headers/actualbudget @@ -0,0 +1,6 @@ + ___ __ __ ____ __ __ + / | _____/ /___ ______ _/ / / __ )__ ______/ /___ ____ / /_ + / /| |/ ___/ __/ / / / __ `/ / / __ / / / / __ / __ `/ _ \/ __/ + / ___ / /__/ /_/ /_/ / /_/ / / / /_/ / /_/ / /_/ / /_/ / __/ /_ +/_/ |_\___/\__/\__,_/\__,_/_/ /_____/\__,_/\__,_/\__, /\___/\__/ + /____/ diff --git a/ct/headers/adguard b/ct/headers/adguard new file mode 100644 index 000000000..2332df179 --- /dev/null +++ b/ct/headers/adguard @@ -0,0 +1,6 @@ + ___ __ __ + / | ____/ /___ ___ ______ __________/ / + / /| |/ __ / __ `/ / / / __ `/ ___/ __ / + / ___ / /_/ / /_/ / /_/ / /_/ / / / /_/ / +/_/ |_\__,_/\__, /\__,_/\__,_/_/ \__,_/ + /____/ diff --git a/ct/headers/adventurelog b/ct/headers/adventurelog new file mode 100644 index 000000000..8e3c88d11 --- /dev/null +++ b/ct/headers/adventurelog @@ -0,0 +1,6 @@ + ___ __ __ __ + / | ____/ / _____ ____ / /___ __________ / / ____ ____ _ + / /| |/ __ / | / / _ \/ __ \/ __/ / / / ___/ _ \/ / / __ \/ __ `/ + / ___ / /_/ /| |/ / __/ / / / /_/ /_/ / / / __/ /___/ /_/ / /_/ / +/_/ |_\__,_/ |___/\___/_/ /_/\__/\__,_/_/ \___/_____/\____/\__, / + /____/ diff --git a/ct/headers/agentdvr b/ct/headers/agentdvr new file mode 100644 index 000000000..dfe67792b --- /dev/null +++ b/ct/headers/agentdvr @@ -0,0 +1,6 @@ + ___ __ ____ _ ______ + / | ____ ____ ____ / /_/ __ \ | / / __ \ + / /| |/ __ `/ _ \/ __ \/ __/ / / / | / / /_/ / + / ___ / /_/ / __/ / / / /_/ /_/ /| |/ / _, _/ +/_/ |_\__, /\___/_/ /_/\__/_____/ |___/_/ |_| + /____/ diff --git a/ct/headers/alpine b/ct/headers/alpine new file mode 100644 index 000000000..ecf1e0554 --- /dev/null +++ b/ct/headers/alpine @@ -0,0 +1,6 @@ + ___ __ _ + / | / /___ (_)___ ___ + / /| | / / __ \/ / __ \/ _ \ + / ___ |/ / /_/ / / / / / __/ +/_/ |_/_/ .___/_/_/ /_/\___/ + /_/ diff --git a/ct/headers/alpine-docker b/ct/headers/alpine-docker new file mode 100644 index 000000000..7fd1b265d --- /dev/null +++ b/ct/headers/alpine-docker @@ -0,0 +1,6 @@ + ___ __ _ ____ __ + / | / /___ (_)___ ___ / __ \____ _____/ /_____ _____ + / /| | / / __ \/ / __ \/ _ \______/ / / / __ \/ ___/ //_/ _ \/ ___/ + / ___ |/ / /_/ / / / / / __/_____/ /_/ / /_/ / /__/ ,< / __/ / +/_/ |_/_/ .___/_/_/ /_/\___/ /_____/\____/\___/_/|_|\___/_/ + /_/ diff --git a/ct/headers/alpine-grafana b/ct/headers/alpine-grafana new file mode 100644 index 000000000..3fe493c9d --- /dev/null +++ b/ct/headers/alpine-grafana @@ -0,0 +1,6 @@ + ___ __ _ ______ ____ + / | / /___ (_)___ ___ / ____/________ _/ __/___ _____ ____ _ + / /| | / / __ \/ / __ \/ _ \______/ / __/ ___/ __ `/ /_/ __ `/ __ \/ __ `/ + / ___ |/ / /_/ / / / / / __/_____/ /_/ / / / /_/ / __/ /_/ / / / / /_/ / +/_/ |_/_/ .___/_/_/ /_/\___/ \____/_/ \__,_/_/ \__,_/_/ /_/\__,_/ + /_/ diff --git a/ct/headers/alpine-nextcloud b/ct/headers/alpine-nextcloud new file mode 100644 index 000000000..b27eb0cad --- /dev/null +++ b/ct/headers/alpine-nextcloud @@ -0,0 +1,12 @@ + ___ __ _ _ __ __ __ + / | / /___ (_)___ ___ / | / /__ _ __/ /______/ /___ __ __ + / /| | / / __ \/ / __ \/ _ \______/ |/ / _ \| |/_/ __/ ___/ / __ \/ / / / + / ___ |/ / /_/ / / / / / __/_____/ /| / __/> < +/_/ |_/_/ \___/_/ /_/_/ |___/\___/_____/\____/_/|_| + diff --git a/ct/headers/aria2 b/ct/headers/aria2 new file mode 100644 index 000000000..3080e17b4 --- /dev/null +++ b/ct/headers/aria2 @@ -0,0 +1,6 @@ + ___ _ ___ + / | _____(_)___ |__ \ + / /| | / ___/ / __ `/_/ / + / ___ |/ / / / /_/ / __/ +/_/ |_/_/ /_/\__,_/____/ + diff --git a/ct/headers/audiobookshelf b/ct/headers/audiobookshelf new file mode 100644 index 000000000..5e249a852 --- /dev/null +++ b/ct/headers/audiobookshelf @@ -0,0 +1,6 @@ + ___ __ __ __ ______ + ____ ___ ______/ (_)___ / /_ ____ ____ / /_______/ /_ ___ / / __/ + / __ `/ / / / __ / / __ \/ __ \/ __ \/ __ \/ //_/ ___/ __ \/ _ \/ / /_ +/ /_/ / /_/ / /_/ / / /_/ / /_/ / /_/ / /_/ / ,< (__ ) / / / __/ / __/ +\__,_/\__,_/\__,_/_/\____/_.___/\____/\____/_/|_/____/_/ /_/\___/_/_/ + diff --git a/ct/headers/authentik b/ct/headers/authentik new file mode 100644 index 000000000..f609964e0 --- /dev/null +++ b/ct/headers/authentik @@ -0,0 +1,6 @@ + ___ __ __ __ _ __ + / | __ __/ /_/ /_ ___ ____ / /_(_) /__ + / /| |/ / / / __/ __ \/ _ \/ __ \/ __/ / //_/ + / ___ / /_/ / /_/ / / / __/ / / / /_/ / ,< +/_/ |_\__,_/\__/_/ /_/\___/_/ /_/\__/_/_/|_| + diff --git a/ct/headers/autobrr b/ct/headers/autobrr new file mode 100644 index 000000000..56322d59e --- /dev/null +++ b/ct/headers/autobrr @@ -0,0 +1,6 @@ + ___ __ __ + / | __ __/ /_____ / /_ __________ + / /| |/ / / / __/ __ \/ __ \/ ___/ ___/ + / ___ / /_/ / /_/ /_/ / /_/ / / / / +/_/ |_\__,_/\__/\____/_.___/_/ /_/ + diff --git a/ct/headers/bazarr b/ct/headers/bazarr new file mode 100644 index 000000000..e487a77d8 --- /dev/null +++ b/ct/headers/bazarr @@ -0,0 +1,6 @@ + ____ + / __ )____ _____ ____ ___________ + / __ / __ `/_ / / __ `/ ___/ ___/ + / /_/ / /_/ / / /_/ /_/ / / / / +/_____/\__,_/ /___/\__,_/_/ /_/ + diff --git a/ct/headers/beszel b/ct/headers/beszel new file mode 100644 index 000000000..dcb0d38d6 --- /dev/null +++ b/ct/headers/beszel @@ -0,0 +1,6 @@ + ____ __ + / __ )___ _________ ___ / / + / __ / _ \/ ___/_ / / _ \/ / + / /_/ / __(__ ) / /_/ __/ / +/_____/\___/____/ /___/\___/_/ + diff --git a/ct/headers/blocky b/ct/headers/blocky new file mode 100644 index 000000000..3bd089bab --- /dev/null +++ b/ct/headers/blocky @@ -0,0 +1,6 @@ + ____ __ __ + / __ )/ /___ _____/ /____ __ + / __ / / __ \/ ___/ //_/ / / / + / /_/ / / /_/ / /__/ ,< / /_/ / +/_____/_/\____/\___/_/|_|\__, / + /____/ diff --git a/ct/headers/bookstack b/ct/headers/bookstack new file mode 100644 index 000000000..f68646662 --- /dev/null +++ b/ct/headers/bookstack @@ -0,0 +1,6 @@ + ____ __ __ __ + / __ )____ ____ / /_______/ /_____ ______/ /__ + / __ / __ \/ __ \/ //_/ ___/ __/ __ `/ ___/ //_/ + / /_/ / /_/ / /_/ / ,< (__ ) /_/ /_/ / /__/ ,< +/_____/\____/\____/_/|_/____/\__/\__,_/\___/_/|_| + diff --git a/ct/headers/bunkerweb b/ct/headers/bunkerweb new file mode 100644 index 000000000..188677c45 --- /dev/null +++ b/ct/headers/bunkerweb @@ -0,0 +1,6 @@ + ____ __ _ __ __ + / __ )__ ______ / /_____ ____| | / /__ / /_ + / __ / / / / __ \/ //_/ _ \/ ___/ | /| / / _ \/ __ \ + / /_/ / /_/ / / / / ,< / __/ / | |/ |/ / __/ /_/ / +/_____/\__,_/_/ /_/_/|_|\___/_/ |__/|__/\___/_.___/ + diff --git a/ct/headers/caddy b/ct/headers/caddy new file mode 100644 index 000000000..6f47f9627 --- /dev/null +++ b/ct/headers/caddy @@ -0,0 +1,6 @@ + ______ __ __ + / ____/___ _____/ /___/ /_ __ + / / / __ `/ __ / __ / / / / +/ /___/ /_/ / /_/ / /_/ / /_/ / +\____/\__,_/\__,_/\__,_/\__, / + /____/ diff --git a/ct/headers/calibre-web b/ct/headers/calibre-web new file mode 100644 index 000000000..ae9dc0379 --- /dev/null +++ b/ct/headers/calibre-web @@ -0,0 +1,6 @@ + ______ ___ __ _ __ __ + / ____/___ _/ (_) /_ ________ | | / /__ / /_ + / / / __ `/ / / __ \/ ___/ _ \_____| | /| / / _ \/ __ \ +/ /___/ /_/ / / / /_/ / / / __/_____/ |/ |/ / __/ /_/ / +\____/\__,_/_/_/_.___/_/ \___/ |__/|__/\___/_.___/ + diff --git a/ct/headers/casaos b/ct/headers/casaos new file mode 100644 index 000000000..4af563a20 --- /dev/null +++ b/ct/headers/casaos @@ -0,0 +1,6 @@ + ______ ____ _____ + / ____/___ __________ _/ __ \/ ___/ + / / / __ `/ ___/ __ `/ / / /\__ \ +/ /___/ /_/ (__ ) /_/ / /_/ /___/ / +\____/\__,_/____/\__,_/\____//____/ + diff --git a/ct/headers/changedetection b/ct/headers/changedetection new file mode 100644 index 000000000..bf9fefb4a --- /dev/null +++ b/ct/headers/changedetection @@ -0,0 +1,12 @@ + ________ + / ____/ /_ ____ _____ ____ ____ + / / / __ \/ __ `/ __ \/ __ `/ _ \ +/ /___/ / / / /_/ / / / / /_/ / __/ +\____/_/ /_/\__,_/_/ /_/\__, /\___/ + /____/ + ____ __ __ _ + / __ \___ / /____ _____/ /_(_)___ ____ + / / / / _ \/ __/ _ \/ ___/ __/ / __ \/ __ \ + / /_/ / __/ /_/ __/ /__/ /_/ / /_/ / / / / +/_____/\___/\__/\___/\___/\__/_/\____/_/ /_/ + diff --git a/ct/headers/channels b/ct/headers/channels new file mode 100644 index 000000000..7600b6e47 --- /dev/null +++ b/ct/headers/channels @@ -0,0 +1,6 @@ + ________ __ + / ____/ /_ ____ _____ ____ ___ / /____ + / / / __ \/ __ `/ __ \/ __ \/ _ \/ / ___/ +/ /___/ / / / /_/ / / / / / / / __/ (__ ) +\____/_/ /_/\__,_/_/ /_/_/ /_/\___/_/____/ + diff --git a/ct/headers/checkmk b/ct/headers/checkmk new file mode 100644 index 000000000..ff80000cd --- /dev/null +++ b/ct/headers/checkmk @@ -0,0 +1,6 @@ + __ __ __ + _____/ /_ ___ _____/ /______ ___ / /__ + / ___/ __ \/ _ \/ ___/ //_/ __ `__ \/ //_/ +/ /__/ / / / __/ /__/ ,< / / / / / / ,< +\___/_/ /_/\___/\___/_/|_/_/ /_/ /_/_/|_| + diff --git a/ct/headers/cloudflared b/ct/headers/cloudflared new file mode 100644 index 000000000..8011c2c23 --- /dev/null +++ b/ct/headers/cloudflared @@ -0,0 +1,6 @@ + ________ ________ __ + / ____/ /___ __ ______/ / __/ /___ _________ ____/ / + / / / / __ \/ / / / __ / /_/ / __ `/ ___/ _ \/ __ / +/ /___/ / /_/ / /_/ / /_/ / __/ / /_/ / / / __/ /_/ / +\____/_/\____/\__,_/\__,_/_/ /_/\__,_/_/ \___/\__,_/ + diff --git a/ct/headers/cockpit b/ct/headers/cockpit new file mode 100644 index 000000000..8eb04a26e --- /dev/null +++ b/ct/headers/cockpit @@ -0,0 +1,6 @@ + ______ __ _ __ + / ____/___ _____/ /______ (_) /_ + / / / __ \/ ___/ //_/ __ \/ / __/ +/ /___/ /_/ / /__/ ,< / /_/ / / /_ +\____/\____/\___/_/|_/ .___/_/\__/ + /_/ diff --git a/ct/headers/commafeed b/ct/headers/commafeed new file mode 100644 index 000000000..06beb9a56 --- /dev/null +++ b/ct/headers/commafeed @@ -0,0 +1,6 @@ + ______ ______ __ + / ____/___ ____ ___ ____ ___ ____ _/ ____/__ ___ ____/ / + / / / __ \/ __ `__ \/ __ `__ \/ __ `/ /_ / _ \/ _ \/ __ / +/ /___/ /_/ / / / / / / / / / / / /_/ / __/ / __/ __/ /_/ / +\____/\____/_/ /_/ /_/_/ /_/ /_/\__,_/_/ \___/\___/\__,_/ + diff --git a/ct/headers/cronicle b/ct/headers/cronicle new file mode 100644 index 000000000..6d6f7cfc9 --- /dev/null +++ b/ct/headers/cronicle @@ -0,0 +1,6 @@ + ______ _ __ + / ____/________ ____ (_)____/ /__ + / / / ___/ __ \/ __ \/ / ___/ / _ \ +/ /___/ / / /_/ / / / / / /__/ / __/ +\____/_/ \____/_/ /_/_/\___/_/\___/ + diff --git a/ct/headers/daemonsync b/ct/headers/daemonsync new file mode 100644 index 000000000..532072375 --- /dev/null +++ b/ct/headers/daemonsync @@ -0,0 +1,6 @@ + ____ _____ + / __ \____ ____ ____ ___ ____ ____ / ___/__ ______ _____ + / / / / __ `/ _ \/ __ `__ \/ __ \/ __ \ \__ \/ / / / __ \/ ___/ + / /_/ / /_/ / __/ / / / / / /_/ / / / / ___/ / /_/ / / / / /__ +/_____/\__,_/\___/_/ /_/ /_/\____/_/ /_/ /____/\__, /_/ /_/\___/ + /____/ diff --git a/ct/headers/dashy b/ct/headers/dashy new file mode 100644 index 000000000..330f9e3d0 --- /dev/null +++ b/ct/headers/dashy @@ -0,0 +1,6 @@ + ____ __ + / __ \____ ______/ /_ __ __ + / / / / __ `/ ___/ __ \/ / / / + / /_/ / /_/ (__ ) / / / /_/ / +/_____/\__,_/____/_/ /_/\__, / + /____/ diff --git a/ct/headers/debian b/ct/headers/debian new file mode 100644 index 000000000..a6f474d46 --- /dev/null +++ b/ct/headers/debian @@ -0,0 +1,6 @@ + ____ __ _ + / __ \___ / /_ (_)___ _____ + / / / / _ \/ __ \/ / __ `/ __ \ + / /_/ / __/ /_/ / / /_/ / / / / +/_____/\___/_.___/_/\__,_/_/ /_/ + diff --git a/ct/headers/deconz b/ct/headers/deconz new file mode 100644 index 000000000..fcfceb280 --- /dev/null +++ b/ct/headers/deconz @@ -0,0 +1,6 @@ + __ __________ _ _______ + ____/ /__ / ____/ __ \/ | / /__ / + / __ / _ \/ / / / / / |/ / / / +/ /_/ / __/ /___/ /_/ / /| / / /__ +\__,_/\___/\____/\____/_/ |_/ /____/ + diff --git a/ct/headers/deluge b/ct/headers/deluge new file mode 100644 index 000000000..6dc49d04b --- /dev/null +++ b/ct/headers/deluge @@ -0,0 +1,6 @@ + ____ __ + / __ \___ / /_ ______ ____ + / / / / _ \/ / / / / __ `/ _ \ + / /_/ / __/ / /_/ / /_/ / __/ +/_____/\___/_/\__,_/\__, /\___/ + /____/ diff --git a/ct/headers/docker b/ct/headers/docker new file mode 100644 index 000000000..907ffbaef --- /dev/null +++ b/ct/headers/docker @@ -0,0 +1,6 @@ + ____ __ + / __ \____ _____/ /_____ _____ + / / / / __ \/ ___/ //_/ _ \/ ___/ + / /_/ / /_/ / /__/ ,< / __/ / +/_____/\____/\___/_/|_|\___/_/ + diff --git a/ct/headers/dockge b/ct/headers/dockge new file mode 100644 index 000000000..040b66ac8 --- /dev/null +++ b/ct/headers/dockge @@ -0,0 +1,6 @@ + ____ __ + / __ \____ _____/ /______ ____ + / / / / __ \/ ___/ //_/ __ `/ _ \ + / /_/ / /_/ / /__/ ,< / /_/ / __/ +/_____/\____/\___/_/|_|\__, /\___/ + /____/ diff --git a/ct/headers/dotnetaspwebapi b/ct/headers/dotnetaspwebapi new file mode 100644 index 000000000..f00b63ca3 --- /dev/null +++ b/ct/headers/dotnetaspwebapi @@ -0,0 +1,12 @@ + ____ __ __ ___ _____ ____ _ __ __ + / __ \____ / /_____ ___ / /_ / | / ___// __ \ | | / /__ / /_ + / / / / __ \/ __/ __ \/ _ \/ __/ / /| | \__ \/ /_/ / | | /| / / _ \/ __ \ + / /_/ / /_/ / /_/ / / / __/ /_ / ___ |___/ / ____/ | |/ |/ / __/ /_/ / +/_____/\____/\__/_/ /_/\___/\__/ /_/ |_/____/_/ |__/|__/\___/_.___/ + + ___ ____ ____ + / | / __ \/ _/ + / /| | / /_/ // / + / ___ |/ ____// / +/_/ |_/_/ /___/ + diff --git a/ct/headers/emby b/ct/headers/emby new file mode 100644 index 000000000..84afb1d6a --- /dev/null +++ b/ct/headers/emby @@ -0,0 +1,6 @@ + ______ __ + / ____/___ ___ / /_ __ __ + / __/ / __ `__ \/ __ \/ / / / + / /___/ / / / / / /_/ / /_/ / +/_____/_/ /_/ /_/_.___/\__, / + /____/ diff --git a/ct/headers/emqx b/ct/headers/emqx new file mode 100644 index 000000000..f6cb5038c --- /dev/null +++ b/ct/headers/emqx @@ -0,0 +1,6 @@ + ________ _______ _ __ + / ____/ |/ / __ \ | |/ / + / __/ / /|_/ / / / / | / + / /___/ / / / /_/ / / | +/_____/_/ /_/\___\_\/_/|_| + diff --git a/ct/headers/ersatztv b/ct/headers/ersatztv new file mode 100644 index 000000000..f47317c39 --- /dev/null +++ b/ct/headers/ersatztv @@ -0,0 +1,6 @@ + ______ __ _______ __ + / ____/_____________ _/ /_____/_ __/ | / / + / __/ / ___/ ___/ __ `/ __/_ / / / | | / / + / /___/ / (__ ) /_/ / /_ / /_/ / | |/ / +/_____/_/ /____/\__,_/\__/ /___/_/ |___/ + diff --git a/ct/headers/esphome b/ct/headers/esphome new file mode 100644 index 000000000..5c9e86c65 --- /dev/null +++ b/ct/headers/esphome @@ -0,0 +1,6 @@ + ___________ ____ __ __ + / ____/ ___// __ \/ / / /___ ____ ___ ___ + / __/ \__ \/ /_/ / /_/ / __ \/ __ `__ \/ _ \ + / /___ ___/ / ____/ __ / /_/ / / / / / / __/ +/_____//____/_/ /_/ /_/\____/_/ /_/ /_/\___/ + diff --git a/ct/headers/evcc b/ct/headers/evcc new file mode 100644 index 000000000..9317a5410 --- /dev/null +++ b/ct/headers/evcc @@ -0,0 +1,6 @@ + + ___ _ ____________ + / _ \ | / / ___/ ___/ +/ __/ |/ / /__/ /__ +\___/|___/\___/\___/ + diff --git a/ct/headers/fenrus b/ct/headers/fenrus new file mode 100644 index 000000000..95e073aab --- /dev/null +++ b/ct/headers/fenrus @@ -0,0 +1,6 @@ + ______ + / ____/__ ____ _______ _______ + / /_ / _ \/ __ \/ ___/ / / / ___/ + / __/ / __/ / / / / / /_/ (__ ) +/_/ \___/_/ /_/_/ \__,_/____/ + diff --git a/ct/headers/fhem b/ct/headers/fhem new file mode 100644 index 000000000..fe0a80c40 --- /dev/null +++ b/ct/headers/fhem @@ -0,0 +1,6 @@ + ________ __________ ___ + / ____/ / / / ____/ |/ / + / /_ / /_/ / __/ / /|_/ / + / __/ / __ / /___/ / / / +/_/ /_/ /_/_____/_/ /_/ + diff --git a/ct/headers/firefly b/ct/headers/firefly new file mode 100644 index 000000000..3aabc10c5 --- /dev/null +++ b/ct/headers/firefly @@ -0,0 +1,6 @@ + _______ ______ + / ____(_)_______ / __/ /_ __ + / /_ / / ___/ _ \/ /_/ / / / / + / __/ / / / / __/ __/ / /_/ / +/_/ /_/_/ \___/_/ /_/\__, / + /____/ diff --git a/ct/headers/flaresolverr b/ct/headers/flaresolverr new file mode 100644 index 000000000..a710dd625 --- /dev/null +++ b/ct/headers/flaresolverr @@ -0,0 +1,6 @@ + ________ _____ __ + / ____/ /___ _________ / ___/____ / / _____ __________ + / /_ / / __ `/ ___/ _ \\__ \/ __ \/ / | / / _ \/ ___/ ___/ + / __/ / / /_/ / / / __/__/ / /_/ / /| |/ / __/ / / / +/_/ /_/\__,_/_/ \___/____/\____/_/ |___/\___/_/ /_/ + diff --git a/ct/headers/flowiseai b/ct/headers/flowiseai new file mode 100644 index 000000000..7011f22b4 --- /dev/null +++ b/ct/headers/flowiseai @@ -0,0 +1,6 @@ + ________ _ ___ ____ + / ____/ /___ _ __(_)_______ / | / _/ + / /_ / / __ \ | /| / / / ___/ _ \/ /| | / / + / __/ / / /_/ / |/ |/ / (__ ) __/ ___ |_/ / +/_/ /_/\____/|__/|__/_/____/\___/_/ |_/___/ + diff --git a/ct/headers/forgejo b/ct/headers/forgejo new file mode 100644 index 000000000..4fb3af69e --- /dev/null +++ b/ct/headers/forgejo @@ -0,0 +1,6 @@ + ______ _ + / ____/___ _________ ____ (_)___ + / /_ / __ \/ ___/ __ `/ _ \ / / __ \ + / __/ / /_/ / / / /_/ / __/ / / /_/ / +/_/ \____/_/ \__, /\___/_/ /\____/ + /____/ /___/ diff --git a/ct/headers/frigate b/ct/headers/frigate new file mode 100644 index 000000000..94ffd3a7d --- /dev/null +++ b/ct/headers/frigate @@ -0,0 +1,6 @@ + ______ _ __ + / ____/____(_)___ _____ _/ /____ + / /_ / ___/ / __ `/ __ `/ __/ _ \ + / __/ / / / / /_/ / /_/ / /_/ __/ +/_/ /_/ /_/\__, /\__,_/\__/\___/ + /____/ diff --git a/ct/headers/ghost b/ct/headers/ghost new file mode 100644 index 000000000..c16e83b87 --- /dev/null +++ b/ct/headers/ghost @@ -0,0 +1,6 @@ + ________ __ + / ____/ /_ ____ _____/ /_ + / / __/ __ \/ __ \/ ___/ __/ +/ /_/ / / / / /_/ (__ ) /_ +\____/_/ /_/\____/____/\__/ + diff --git a/ct/headers/gitea b/ct/headers/gitea new file mode 100644 index 000000000..7826ac30a --- /dev/null +++ b/ct/headers/gitea @@ -0,0 +1,6 @@ + _______ __ + / ____(_) /____ ____ _ + / / __/ / __/ _ \/ __ `/ +/ /_/ / / /_/ __/ /_/ / +\____/_/\__/\___/\__,_/ + diff --git a/ct/headers/glance b/ct/headers/glance new file mode 100644 index 000000000..abaaa8af2 --- /dev/null +++ b/ct/headers/glance @@ -0,0 +1,6 @@ + ________ + / ____/ /___ _____ ________ + / / __/ / __ `/ __ \/ ___/ _ \ +/ /_/ / / /_/ / / / / /__/ __/ +\____/_/\__,_/_/ /_/\___/\___/ + diff --git a/ct/headers/glpi b/ct/headers/glpi new file mode 100644 index 000000000..789b62590 --- /dev/null +++ b/ct/headers/glpi @@ -0,0 +1,6 @@ + ________ ____ ____ + / ____/ / / __ \/ _/ + / / __/ / / /_/ // / +/ /_/ / /___/ ____// / +\____/_____/_/ /___/ + diff --git a/ct/headers/go2rtc b/ct/headers/go2rtc new file mode 100644 index 000000000..3a3e8bf8c --- /dev/null +++ b/ct/headers/go2rtc @@ -0,0 +1,6 @@ + ___ __ + ____ _____ |__ \ _____/ /______ + / __ `/ __ \__/ // ___/ __/ ___/ + / /_/ / /_/ / __// / / /_/ /__ + \__, /\____/____/_/ \__/\___/ +/____/ diff --git a/ct/headers/gokapi b/ct/headers/gokapi new file mode 100644 index 000000000..c612c9fa1 --- /dev/null +++ b/ct/headers/gokapi @@ -0,0 +1,6 @@ + ______ __ _ + / ____/___ / /______ _____ (_) + / / __/ __ \/ //_/ __ `/ __ \/ / +/ /_/ / /_/ / ,< / /_/ / /_/ / / +\____/\____/_/|_|\__,_/ .___/_/ + /_/ diff --git a/ct/headers/gotify b/ct/headers/gotify new file mode 100644 index 000000000..8532f9ef9 --- /dev/null +++ b/ct/headers/gotify @@ -0,0 +1,6 @@ + ______ __ _ ____ + / ____/___ / /_(_) __/_ __ + / / __/ __ \/ __/ / /_/ / / / +/ /_/ / /_/ / /_/ / __/ /_/ / +\____/\____/\__/_/_/ \__, / + /____/ diff --git a/ct/headers/grafana b/ct/headers/grafana new file mode 100644 index 000000000..9eb8a245f --- /dev/null +++ b/ct/headers/grafana @@ -0,0 +1,6 @@ + ______ ____ + / ____/________ _/ __/___ _____ ____ _ + / / __/ ___/ __ `/ /_/ __ `/ __ \/ __ `/ +/ /_/ / / / /_/ / __/ /_/ / / / / /_/ / +\____/_/ \__,_/_/ \__,_/_/ /_/\__,_/ + diff --git a/ct/headers/grist b/ct/headers/grist new file mode 100644 index 000000000..f82ced4f1 --- /dev/null +++ b/ct/headers/grist @@ -0,0 +1,6 @@ + ______ _ __ + / ____/____(_)____/ /_ + / / __/ ___/ / ___/ __/ +/ /_/ / / / (__ ) /_ +\____/_/ /_/____/\__/ + diff --git a/ct/headers/grocy b/ct/headers/grocy new file mode 100644 index 000000000..2aad01d40 --- /dev/null +++ b/ct/headers/grocy @@ -0,0 +1,6 @@ + + ____ __________ _______ __ + / __ `/ ___/ __ \/ ___/ / / / + / /_/ / / / /_/ / /__/ /_/ / + \__, /_/ \____/\___/\__, / +/____/ /____/ diff --git a/ct/headers/headscale b/ct/headers/headscale new file mode 100644 index 000000000..ff8ca5149 --- /dev/null +++ b/ct/headers/headscale @@ -0,0 +1,6 @@ + __ __ __ __ + / / / /__ ____ _____/ /_____________ _/ /__ + / /_/ / _ \/ __ `/ __ / ___/ ___/ __ `/ / _ \ + / __ / __/ /_/ / /_/ (__ ) /__/ /_/ / / __/ +/_/ /_/\___/\__,_/\__,_/____/\___/\__,_/_/\___/ + diff --git a/ct/headers/heimdall-dashboard b/ct/headers/heimdall-dashboard new file mode 100644 index 000000000..245902b76 --- /dev/null +++ b/ct/headers/heimdall-dashboard @@ -0,0 +1,12 @@ + __ __ _ __ ____ ____ __ __ + / / / /__ (_)___ ___ ____/ /___ _/ / / / __ \____ ______/ /_ / /_ + / /_/ / _ \/ / __ `__ \/ __ / __ `/ / /_____/ / / / __ `/ ___/ __ \/ __ \ + / __ / __/ / / / / / / /_/ / /_/ / / /_____/ /_/ / /_/ (__ ) / / / /_/ / +/_/ /_/\___/_/_/ /_/ /_/\__,_/\__,_/_/_/ /_____/\__,_/____/_/ /_/_.___/ + + __ + ____ ____ __________/ / + / __ \/ __ `/ ___/ __ / +/ /_/ / /_/ / / / /_/ / +\____/\__,_/_/ \__,_/ + diff --git a/ct/headers/hivemq b/ct/headers/hivemq new file mode 100644 index 000000000..ac5216a72 --- /dev/null +++ b/ct/headers/hivemq @@ -0,0 +1,6 @@ + __ ___ __ _______ + / / / (_) _____ / |/ / __ \ + / /_/ / / | / / _ \/ /|_/ / / / / + / __ / /| |/ / __/ / / / /_/ / +/_/ /_/_/ |___/\___/_/ /_/\___\_\ + diff --git a/ct/headers/hoarder b/ct/headers/hoarder new file mode 100644 index 000000000..c09416d41 --- /dev/null +++ b/ct/headers/hoarder @@ -0,0 +1,6 @@ + __ __ __ + / / / /___ ____ __________/ /__ _____ + / /_/ / __ \/ __ `/ ___/ __ / _ \/ ___/ + / __ / /_/ / /_/ / / / /_/ / __/ / +/_/ /_/\____/\__,_/_/ \__,_/\___/_/ + diff --git a/ct/headers/homarr b/ct/headers/homarr new file mode 100644 index 000000000..1bd7a939e --- /dev/null +++ b/ct/headers/homarr @@ -0,0 +1,6 @@ + __ __ + / / / /___ ____ ___ ____ ___________ + / /_/ / __ \/ __ `__ \/ __ `/ ___/ ___/ + / __ / /_/ / / / / / / /_/ / / / / +/_/ /_/\____/_/ /_/ /_/\__,_/_/ /_/ + diff --git a/ct/headers/homeassistant b/ct/headers/homeassistant new file mode 100644 index 000000000..a88730f49 --- /dev/null +++ b/ct/headers/homeassistant @@ -0,0 +1,6 @@ + __ __ ___ _ __ __ + / / / /___ ____ ___ ___ / | __________(_)____/ /_____ _____ / /_ + / /_/ / __ \/ __ `__ \/ _ \ / /| | / ___/ ___/ / ___/ __/ __ `/ __ \/ __/ + / __ / /_/ / / / / / / __/ / ___ |(__ |__ ) (__ ) /_/ /_/ / / / / /_ +/_/ /_/\____/_/ /_/ /_/\___/ /_/ |_/____/____/_/____/\__/\__,_/_/ /_/\__/ + diff --git a/ct/headers/homeassistant-core b/ct/headers/homeassistant-core new file mode 100644 index 000000000..efbc16431 --- /dev/null +++ b/ct/headers/homeassistant-core @@ -0,0 +1,12 @@ + __ __ + / / / /___ ____ ___ ___ + / /_/ / __ \/ __ `__ \/ _ \ + / __ / /_/ / / / / / / __/ +/_/ /_/\____/_/ /_/ /_/\___/ + + ___ _ __ __ ______ + / | __________(_)____/ /_____ _____ / /_ / ____/___ ________ + / /| | / ___/ ___/ / ___/ __/ __ `/ __ \/ __/_____/ / / __ \/ ___/ _ \ + / ___ |(__ |__ ) (__ ) /_/ /_/ / / / / /_/_____/ /___/ /_/ / / / __/ +/_/ |_/____/____/_/____/\__/\__,_/_/ /_/\__/ \____/\____/_/ \___/ + diff --git a/ct/headers/homebox b/ct/headers/homebox new file mode 100644 index 000000000..da717216b --- /dev/null +++ b/ct/headers/homebox @@ -0,0 +1,6 @@ + __ __ ____ + / / / /___ ____ ___ ___ / __ )____ _ __ + / /_/ / __ \/ __ `__ \/ _ \/ __ / __ \| |/_/ + / __ / /_/ / / / / / / __/ /_/ / /_/ /> < +/_/ /_/\____/_/ /_/ /_/\___/_____/\____/_/|_| + diff --git a/ct/headers/homebridge b/ct/headers/homebridge new file mode 100644 index 000000000..a3da02405 --- /dev/null +++ b/ct/headers/homebridge @@ -0,0 +1,6 @@ + __ __ __ _ __ + / / / /___ ____ ___ ___ / /_ _____(_)___/ /___ ____ + / /_/ / __ \/ __ `__ \/ _ \/ __ \/ ___/ / __ / __ `/ _ \ + / __ / /_/ / / / / / / __/ /_/ / / / / /_/ / /_/ / __/ +/_/ /_/\____/_/ /_/ /_/\___/_.___/_/ /_/\__,_/\__, /\___/ + /____/ diff --git a/ct/headers/homepage b/ct/headers/homepage new file mode 100644 index 000000000..4ff42a16b --- /dev/null +++ b/ct/headers/homepage @@ -0,0 +1,6 @@ + __ __ + / / / /___ ____ ___ ___ ____ ____ _____ ____ + / /_/ / __ \/ __ `__ \/ _ \/ __ \/ __ `/ __ `/ _ \ + / __ / /_/ / / / / / / __/ /_/ / /_/ / /_/ / __/ +/_/ /_/\____/_/ /_/ /_/\___/ .___/\__,_/\__, /\___/ + /_/ /____/ diff --git a/ct/headers/homer b/ct/headers/homer new file mode 100644 index 000000000..80e4281a2 --- /dev/null +++ b/ct/headers/homer @@ -0,0 +1,6 @@ + __ __ + / / / /___ ____ ___ ___ _____ + / /_/ / __ \/ __ `__ \/ _ \/ ___/ + / __ / /_/ / / / / / / __/ / +/_/ /_/\____/_/ /_/ /_/\___/_/ + diff --git a/ct/headers/hyperhdr b/ct/headers/hyperhdr new file mode 100644 index 000000000..cbbcfc570 --- /dev/null +++ b/ct/headers/hyperhdr @@ -0,0 +1,6 @@ + __ __ __ ______ ____ + / / / /_ ______ ___ _____/ / / / __ \/ __ \ + / /_/ / / / / __ \/ _ \/ ___/ /_/ / / / / /_/ / + / __ / /_/ / /_/ / __/ / / __ / /_/ / _, _/ +/_/ /_/\__, / .___/\___/_/ /_/ /_/_____/_/ |_| + /____/_/ diff --git a/ct/headers/hyperion b/ct/headers/hyperion new file mode 100644 index 000000000..2c0f7972c --- /dev/null +++ b/ct/headers/hyperion @@ -0,0 +1,6 @@ + __ __ _ + / / / /_ ______ ___ _____(_)___ ____ + / /_/ / / / / __ \/ _ \/ ___/ / __ \/ __ \ + / __ / /_/ / /_/ / __/ / / / /_/ / / / / +/_/ /_/\__, / .___/\___/_/ /_/\____/_/ /_/ + /____/_/ diff --git a/ct/headers/influxdb b/ct/headers/influxdb new file mode 100644 index 000000000..b8efea541 --- /dev/null +++ b/ct/headers/influxdb @@ -0,0 +1,6 @@ + ____ ______ ____ ____ + / _/___ / __/ /_ ___ __/ __ \/ __ ) + / // __ \/ /_/ / / / / |/_/ / / / __ | + _/ // / / / __/ / /_/ /> < +/_/ |_/\___/\__/_____/\____/_/|_| + diff --git a/ct/headers/nextcloudpi b/ct/headers/nextcloudpi new file mode 100644 index 000000000..9aa8b5943 --- /dev/null +++ b/ct/headers/nextcloudpi @@ -0,0 +1,6 @@ + _ __ __ ________ ______ _ + / | / /__ _ __/ /_/ ____/ /___ __ ______/ / __ \(_) + / |/ / _ \| |/_/ __/ / / / __ \/ / / / __ / /_/ / / + / /| / __/> < / ____/ / / /_/ /> < +/_/ \__,_/ .___/\___/_/ /_/\___/____/____/ /_/ /_/\__, /_/|_| + /_/ /____/ diff --git a/ct/headers/part-db b/ct/headers/part-db new file mode 100644 index 000000000..fe3255506 --- /dev/null +++ b/ct/headers/part-db @@ -0,0 +1,6 @@ + ____ __ ____ ____ + / __ \____ ______/ /_ / __ \/ __ ) + / /_/ / __ `/ ___/ __/_____/ / / / __ | + / ____/ /_/ / / / /_/_____/ /_/ / /_/ / +/_/ \__,_/_/ \__/ /_____/_____/ + diff --git a/ct/headers/pbs b/ct/headers/pbs new file mode 100644 index 000000000..785d90a83 --- /dev/null +++ b/ct/headers/pbs @@ -0,0 +1,6 @@ + ____ ____ _____ + / __ \/ __ ) ___/ + / /_/ / __ \__ \ + / ____/ /_/ /__/ / +/_/ /_____/____/ + diff --git a/ct/headers/peanut b/ct/headers/peanut new file mode 100644 index 000000000..11a2cd5c6 --- /dev/null +++ b/ct/headers/peanut @@ -0,0 +1,6 @@ + ____ _ ____ ________ + / __ \___ ____ _/ | / / / / /_ __/ + / /_/ / _ \/ __ `/ |/ / / / / / / + / ____/ __/ /_/ / /| / /_/ / / / +/_/ \___/\__,_/_/ |_/\____/ /_/ + diff --git a/ct/headers/petio b/ct/headers/petio new file mode 100644 index 000000000..d8deb745a --- /dev/null +++ b/ct/headers/petio @@ -0,0 +1,6 @@ + ____ __ _ + / __ \___ / /_(_)___ + / /_/ / _ \/ __/ / __ \ + / ____/ __/ /_/ / /_/ / +/_/ \___/\__/_/\____/ + diff --git a/ct/headers/pf2etools b/ct/headers/pf2etools new file mode 100644 index 000000000..b6f7cb106 --- /dev/null +++ b/ct/headers/pf2etools @@ -0,0 +1,6 @@ + ____ _______ ______ __ + / __ \/ __/__ \ ___/_ __/___ ____ / /____ + / /_/ / /_ __/ // _ \/ / / __ \/ __ \/ / ___/ + / ____/ __// __// __/ / / /_/ / /_/ / (__ ) +/_/ /_/ /____/\___/_/ \____/\____/_/____/ + diff --git a/ct/headers/photoprism b/ct/headers/photoprism new file mode 100644 index 000000000..a8a9cabe5 --- /dev/null +++ b/ct/headers/photoprism @@ -0,0 +1,6 @@ + ____ __ __ ____ _ + / __ \/ /_ ____ / /_____ / __ \_____(_)________ ___ + / /_/ / __ \/ __ \/ __/ __ \/ /_/ / ___/ / ___/ __ `__ \ + / ____/ / / / /_/ / /_/ /_/ / ____/ / / (__ ) / / / / / +/_/ /_/ /_/\____/\__/\____/_/ /_/ /_/____/_/ /_/ /_/ + diff --git a/ct/headers/phpipam b/ct/headers/phpipam new file mode 100644 index 000000000..51ba79de5 --- /dev/null +++ b/ct/headers/phpipam @@ -0,0 +1,6 @@ + __ ________ ___ __ ___ + ____ / /_ ____ / _/ __ \/ | / |/ / + / __ \/ __ \/ __ \ / // /_/ / /| | / /|_/ / + / /_/ / / / / /_/ // // ____/ ___ |/ / / / + / .___/_/ /_/ .___/___/_/ /_/ |_/_/ /_/ +/_/ /_/ diff --git a/ct/headers/pialert b/ct/headers/pialert new file mode 100644 index 000000000..07f2474c1 --- /dev/null +++ b/ct/headers/pialert @@ -0,0 +1,6 @@ + ____ _ ___ __ __ + / __ \(_) | / /__ _____/ /_ + / /_/ / / /| | / / _ \/ ___/ __/ + / ____/ / ___ |/ / __/ / / /_ +/_/ /_/_/ |_/_/\___/_/ \__/ + diff --git a/ct/headers/pihole b/ct/headers/pihole new file mode 100644 index 000000000..9a727b229 --- /dev/null +++ b/ct/headers/pihole @@ -0,0 +1,6 @@ + ____ _ __ __ + / __ \(_) /_ ____ / /__ + / /_/ / / __ \/ __ \/ / _ \ + / ____/ / / / / /_/ / / __/ +/_/ /_/_/ /_/\____/_/\___/ + diff --git a/ct/headers/pingvin b/ct/headers/pingvin new file mode 100644 index 000000000..8177f8179 --- /dev/null +++ b/ct/headers/pingvin @@ -0,0 +1,6 @@ + ____ _ _ + / __ \(_)___ ____ __ __(_)___ + / /_/ / / __ \/ __ `/ | / / / __ \ + / ____/ / / / / /_/ /| |/ / / / / / +/_/ /_/_/ /_/\__, / |___/_/_/ /_/ + /____/ diff --git a/ct/headers/plex b/ct/headers/plex new file mode 100644 index 000000000..2e27d0b8e --- /dev/null +++ b/ct/headers/plex @@ -0,0 +1,6 @@ + ____ __ + / __ \/ /__ _ __ + / /_/ / / _ \| |/_/ + / ____/ / __/> < +/_/ /_/\___/_/|_| + diff --git a/ct/headers/pocketbase b/ct/headers/pocketbase new file mode 100644 index 000000000..5eea86259 --- /dev/null +++ b/ct/headers/pocketbase @@ -0,0 +1,6 @@ + ____ __ __ __ + / __ \____ _____/ /_____ / /_/ /_ ____ _________ + / /_/ / __ \/ ___/ //_/ _ \/ __/ __ \/ __ `/ ___/ _ \ + / ____/ /_/ / /__/ ,< / __/ /_/ /_/ / /_/ (__ ) __/ +/_/ \____/\___/_/|_|\___/\__/_.___/\__,_/____/\___/ + diff --git a/ct/headers/podman b/ct/headers/podman new file mode 100644 index 000000000..2f81f14a8 --- /dev/null +++ b/ct/headers/podman @@ -0,0 +1,6 @@ + ____ __ + / __ \____ ____/ /___ ___ ____ _____ + / /_/ / __ \/ __ / __ `__ \/ __ `/ __ \ + / ____/ /_/ / /_/ / / / / / / /_/ / / / / +/_/ \____/\__,_/_/ /_/ /_/\__,_/_/ /_/ + diff --git a/ct/headers/podman-homeassistant b/ct/headers/podman-homeassistant new file mode 100644 index 000000000..c1241da46 --- /dev/null +++ b/ct/headers/podman-homeassistant @@ -0,0 +1,12 @@ + ____ __ __ __ + / __ \____ ____/ /___ ___ ____ _____ / / / /___ ____ ___ ___ + / /_/ / __ \/ __ / __ `__ \/ __ `/ __ \______/ /_/ / __ \/ __ `__ \/ _ \ + / ____/ /_/ / /_/ / / / / / / /_/ / / / /_____/ __ / /_/ / / / / / / __/ +/_/ \____/\__,_/_/ /_/ /_/\__,_/_/ /_/ /_/ /_/\____/_/ /_/ /_/\___/ + + ___ _ __ __ + / | __________(_)____/ /_____ _____ / /_ + / /| | / ___/ ___/ / ___/ __/ __ `/ __ \/ __/ + / ___ |(__ |__ ) (__ ) /_/ /_/ / / / / /_ +/_/ |_/____/____/_/____/\__/\__,_/_/ /_/\__/ + diff --git a/ct/headers/postgresql b/ct/headers/postgresql new file mode 100644 index 000000000..8297b0ad4 --- /dev/null +++ b/ct/headers/postgresql @@ -0,0 +1,6 @@ + ____ __ _____ ____ __ + / __ \____ _____/ /_____ _________ / ___// __ \ / / + / /_/ / __ \/ ___/ __/ __ `/ ___/ _ \\__ \/ / / / / / + / ____/ /_/ (__ ) /_/ /_/ / / / __/__/ / /_/ / / /___ +/_/ \____/____/\__/\__, /_/ \___/____/\___\_\/_____/ + /____/ diff --git a/ct/headers/projectsend b/ct/headers/projectsend new file mode 100644 index 000000000..c388eb724 --- /dev/null +++ b/ct/headers/projectsend @@ -0,0 +1,6 @@ + ____ _ __ _____ __ + / __ \_________ (_)__ _____/ /_/ ___/___ ____ ____/ / + / /_/ / ___/ __ \ / / _ \/ ___/ __/\__ \/ _ \/ __ \/ __ / + / ____/ / / /_/ / / / __/ /__/ /_ ___/ / __/ / / / /_/ / +/_/ /_/ \____/_/ /\___/\___/\__//____/\___/_/ /_/\__,_/ + /___/ diff --git a/ct/headers/prometheus b/ct/headers/prometheus new file mode 100644 index 000000000..f5a9cccce --- /dev/null +++ b/ct/headers/prometheus @@ -0,0 +1,6 @@ + ____ __ __ + / __ \_________ ____ ___ ___ / /_/ /_ ___ __ _______ + / /_/ / ___/ __ \/ __ `__ \/ _ \/ __/ __ \/ _ \/ / / / ___/ + / ____/ / / /_/ / / / / / / __/ /_/ / / / __/ /_/ (__ ) +/_/ /_/ \____/_/ /_/ /_/\___/\__/_/ /_/\___/\__,_/____/ + diff --git a/ct/headers/prometheus-alertmanager b/ct/headers/prometheus-alertmanager new file mode 100644 index 000000000..43a4876bd --- /dev/null +++ b/ct/headers/prometheus-alertmanager @@ -0,0 +1,12 @@ + ____ __ __ ___ __ + / __ \_________ ____ ___ ___ / /_/ /_ ___ __ _______ / | / / + / /_/ / ___/ __ \/ __ `__ \/ _ \/ __/ __ \/ _ \/ / / / ___/_____/ /| | / / + / ____/ / / /_/ / / / / / / __/ /_/ / / / __/ /_/ (__ )_____/ ___ |/ / +/_/ /_/ \____/_/ /_/ /_/\___/\__/_/ /_/\___/\__,_/____/ /_/ |_/_/ + + __ + ___ _____/ /_____ ___ ____ _____ ____ _____ ____ _____ + / _ \/ ___/ __/ __ `__ \/ __ `/ __ \/ __ `/ __ `/ _ \/ ___/ +/ __/ / / /_/ / / / / / /_/ / / / / /_/ / /_/ / __/ / +\___/_/ \__/_/ /_/ /_/\__,_/_/ /_/\__,_/\__, /\___/_/ + /____/ diff --git a/ct/headers/prowlarr b/ct/headers/prowlarr new file mode 100644 index 000000000..10255b7ae --- /dev/null +++ b/ct/headers/prowlarr @@ -0,0 +1,6 @@ + ____ __ + / __ \_________ _ __/ /___ ___________ + / /_/ / ___/ __ \ | /| / / / __ `/ ___/ ___/ + / ____/ / / /_/ / |/ |/ / / /_/ / / / / +/_/ /_/ \____/|__/|__/_/\__,_/_/ /_/ + diff --git a/ct/headers/proxmox-datacenter-manager b/ct/headers/proxmox-datacenter-manager new file mode 100644 index 000000000..bd181cc98 --- /dev/null +++ b/ct/headers/proxmox-datacenter-manager @@ -0,0 +1,18 @@ + __ __ + ____ _________ _ ______ ___ ____ _ __ ____/ /___ _/ /_____ _ + / __ \/ ___/ __ \| |/_/ __ `__ \/ __ \| |/_/_____/ __ / __ `/ __/ __ `/ + / /_/ / / / /_/ /> < +/____/\__,_/_.___/_.___/_/_/|_| + diff --git a/ct/headers/zammad b/ct/headers/zammad new file mode 100644 index 000000000..eb9999df1 --- /dev/null +++ b/ct/headers/zammad @@ -0,0 +1,6 @@ + _____ __ +/__ / ____ _____ ___ ____ ___ ____ _____/ / + / / / __ `/ __ `__ \/ __ `__ \/ __ `/ __ / + / /__/ /_/ / / / / / / / / / / / /_/ / /_/ / +/____/\__,_/_/ /_/ /_/_/ /_/ /_/\__,_/\__,_/ + diff --git a/ct/headers/zigbee2mqtt b/ct/headers/zigbee2mqtt new file mode 100644 index 000000000..f6925a017 --- /dev/null +++ b/ct/headers/zigbee2mqtt @@ -0,0 +1,6 @@ + _____ _ __ ___ __ _______ ____________ +/__ / (_)___ _/ /_ ___ ___ |__ \ / |/ / __ \/_ __/_ __/ + / / / / __ `/ __ \/ _ \/ _ \__/ // /|_/ / / / / / / / / + / /__/ / /_/ / /_/ / __/ __/ __// / / / /_/ / / / / / +/____/_/\__, /_.___/\___/\___/____/_/ /_/\___\_\/_/ /_/ + /____/ diff --git a/ct/headers/zipline b/ct/headers/zipline new file mode 100644 index 000000000..ce2b4b914 --- /dev/null +++ b/ct/headers/zipline @@ -0,0 +1,6 @@ + _____ _ ___ +/__ / (_)___ / (_)___ ___ + / / / / __ \/ / / __ \/ _ \ + / /__/ / /_/ / / / / / / __/ +/____/_/ .___/_/_/_/ /_/\___/ + /_/ diff --git a/ct/headers/zoraxy b/ct/headers/zoraxy new file mode 100644 index 000000000..f93198af0 --- /dev/null +++ b/ct/headers/zoraxy @@ -0,0 +1,6 @@ + _____ +/__ / ____ _________ __ ____ __ + / / / __ \/ ___/ __ `/ |/_/ / / / + / /__/ /_/ / / / /_/ /> Date: Fri, 24 Jan 2025 23:36:01 +0000 Subject: [PATCH 195/284] openHAB - Update to Zulu21 (#1734) * Use Zulu 21 instead of 17 * Increase RAM from 2 to 3GB * Revert RAM to 2G * Add https url --- ct/openhab.sh | 2 +- install/openhab-install.sh | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ct/openhab.sh b/ct/openhab.sh index 79e249842..9cd9fc0e2 100644 --- a/ct/openhab.sh +++ b/ct/openhab.sh @@ -46,4 +46,4 @@ description msg_ok "Completed Successfully!\n" echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" echo -e "${INFO}${YW} Access it using the following URL:${CL}" -echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080${CL}" \ No newline at end of file +echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080${CL} or ${TAB}${GATEWAY}${BGN}https://${IP}:8443${CL}" diff --git a/install/openhab-install.sh b/install/openhab-install.sh index 37c90316d..675a30e67 100644 --- a/install/openhab-install.sh +++ b/install/openhab-install.sh @@ -21,13 +21,13 @@ $STD apt-get install -y gnupg $STD apt-get install -y apt-transport-https msg_ok "Installed Dependencies" -msg_info "Installing Azul Zulu" +msg_info "Installing Azul Zulu21" wget -qO /etc/apt/trusted.gpg.d/zulu-repo.asc "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xB1998361219BD9C9" wget -q https://cdn.azul.com/zulu/bin/zulu-repo_1.0.0-3_all.deb $STD dpkg -i zulu-repo_1.0.0-3_all.deb $STD apt-get update -$STD apt-get -y install zulu17-jdk -msg_ok "Installed Azul Zulu" +$STD apt-get -y install zulu21-jdk +msg_ok "Installed Azul Zulu21" msg_info "Installing openHAB" curl -fsSL "https://openhab.jfrog.io/artifactory/api/gpg/key/public" | gpg --dearmor >openhab.gpg From c2e0a1a1800632793892f1204026ff4fc913db2f Mon Sep 17 00:00:00 2001 From: "community-scripts-pr-app[bot]" <189241966+community-scripts-pr-app[bot]@users.noreply.github.com> Date: Sat, 25 Jan 2025 00:36:40 +0100 Subject: [PATCH 196/284] Update CHANGELOG.md (#1738) Co-authored-by: github-actions[bot] --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 443239b21..edd934b52 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -27,6 +27,7 @@ Do not break established syntax in this file, as it is automatically updated by ### πŸš€ Updated Scripts +- openHAB - Update to Zulu21 [@moodyblue](https://github.com/moodyblue) ([#1734](https://github.com/community-scripts/ProxmoxVE/pull/1734)) - Feature: Filebrowser Script > Redesign | Update Logic | Remove Logic [@MickLesk](https://github.com/MickLesk) ([#1716](https://github.com/community-scripts/ProxmoxVE/pull/1716)) - Feature: Ubuntu 22.04 VM > Redesign | Optional HDD-Size Prompt [@MickLesk](https://github.com/MickLesk) ([#1712](https://github.com/community-scripts/ProxmoxVE/pull/1712)) - Feature: Ubuntu 24.04 VM > Redesign | Optional HDD-Size Prompt | cifs support [@MickLesk](https://github.com/MickLesk) ([#1714](https://github.com/community-scripts/ProxmoxVE/pull/1714)) From eddacd786d6147d413904ba17d9ceae43a28c037 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Sat, 25 Jan 2025 13:06:51 +0100 Subject: [PATCH 197/284] Update actualbudget.sh --- ct/actualbudget.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/ct/actualbudget.sh b/ct/actualbudget.sh index 2680b56ad..c6895d6b3 100644 --- a/ct/actualbudget.sh +++ b/ct/actualbudget.sh @@ -47,6 +47,7 @@ function update_script() { mkdir -p /opt/actualbudget/ tar -xzf v${RELEASE}.tar.gz >/dev/null 2>&1 mv *ctual-server-*/* /opt/actualbudget + rm -rf /opt/actualbudget/.env mv /opt/actualbudget_bak/.env /opt/actualbudget mv /opt/actualbudget_bak/server-files /opt/actualbudget/server-files cd /opt/actualbudget From bd3f823b8616c5f6c3a692a5c47ec21604ef395d Mon Sep 17 00:00:00 2001 From: "community-scripts-pr-app[bot]" <189241966+community-scripts-pr-app[bot]@users.noreply.github.com> Date: Sat, 25 Jan 2025 21:07:35 +0100 Subject: [PATCH 198/284] Update CHANGELOG.md (#1746) --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index edd934b52..2cb1428f5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,10 @@ All LXC instances created using this repository come pre-installed with Midnight Do not break established syntax in this file, as it is automatically updated by a Github Workflow +## 2025-01-25 + +### Changed + ## 2025-01-24 ### Changed From ae726129b192740c16201787e1a9fa4747f7dfdc Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Sat, 25 Jan 2025 21:19:24 +0100 Subject: [PATCH 199/284] Revert "Update CHANGELOG.md (#1746)" (#1749) This reverts commit bd3f823b8616c5f6c3a692a5c47ec21604ef395d. --- CHANGELOG.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2cb1428f5..edd934b52 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,10 +17,6 @@ All LXC instances created using this repository come pre-installed with Midnight Do not break established syntax in this file, as it is automatically updated by a Github Workflow -## 2025-01-25 - -### Changed - ## 2025-01-24 ### Changed From b9cdfc26d01a051aaa5331168fc12472ea2e1e83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Slavi=C5=A1a=20Are=C5=BEina?= <58952836+tremor021@users.noreply.github.com> Date: Sun, 26 Jan 2025 01:47:24 +0100 Subject: [PATCH 200/284] Added environment variable to accept EULA for SQLServer2022 (#1755) --- install/sqlserver2022-install.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/install/sqlserver2022-install.sh b/install/sqlserver2022-install.sh index 82ceeec97..7e06fe03d 100644 --- a/install/sqlserver2022-install.sh +++ b/install/sqlserver2022-install.sh @@ -33,6 +33,7 @@ msg_ok "Setup Server 2022" msg_info "Installing SQL Server Tools" export DEBIAN_FRONTEND=noninteractive +export ACCEPT_EULA=Y curl https://packages.microsoft.com/keys/microsoft.asc | tee /etc/apt/trusted.gpg.d/microsoft.asc curl https://packages.microsoft.com/config/ubuntu/22.04/prod.list | tee /etc/apt/sources.list.d/mssql-release.list $STD apt-get update From d596f4a3e0e85ab29dd16faf1b64fd2d144e10d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Slavi=C5=A1a=20Are=C5=BEina?= <58952836+tremor021@users.noreply.github.com> Date: Sun, 26 Jan 2025 09:25:32 +0100 Subject: [PATCH 201/284] Fixed command to add users (#1762) --- json/the-lounge.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/json/the-lounge.json b/json/the-lounge.json index 46c865549..a504bea0b 100644 --- a/json/the-lounge.json +++ b/json/the-lounge.json @@ -32,7 +32,7 @@ }, "notes": [ { - "text": "The Lounge is running in private mode. Use `sudo -u thelounge thelounge add name` to create users.", + "text": "The Lounge is running in private mode. Use `runuser -u thelounge -- thelounge add usernamehere` to create users.", "type": "info" } ] From 9ff56caafda7a521a960d5e2fcafc7f440b0fe0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Slavi=C5=A1a=20Are=C5=BEina?= <58952836+tremor021@users.noreply.github.com> Date: Sun, 26 Jan 2025 09:29:53 +0100 Subject: [PATCH 202/284] Added installation of calibre binaries (#1763) --- install/calibre-web-install.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/install/calibre-web-install.sh b/install/calibre-web-install.sh index 1cff7bf08..a091fb41e 100644 --- a/install/calibre-web-install.sh +++ b/install/calibre-web-install.sh @@ -35,6 +35,7 @@ msg_ok "Installed Kepubify" msg_info "Installing Calibre-Web" mkdir -p /opt/calibre-web +$STD apt-get install -y calibre $STD wget https://github.com/janeczku/calibre-web/raw/master/library/metadata.db -P /opt/calibre-web $STD pip install calibreweb $STD pip install jsonschema From 796275d1750016f1a7571e28758cf92550489857 Mon Sep 17 00:00:00 2001 From: "community-scripts-pr-app[bot]" <189241966+community-scripts-pr-app[bot]@users.noreply.github.com> Date: Sun, 26 Jan 2025 09:33:42 +0100 Subject: [PATCH 203/284] Update CHANGELOG.md (#1756) --- CHANGELOG.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index edd934b52..125fc88c7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,23 @@ All LXC instances created using this repository come pre-installed with Midnight Do not break established syntax in this file, as it is automatically updated by a Github Workflow +## 2025-01-26 + +### Changed + +### πŸš€ Updated Scripts + +- Calibre-Web: added installation of calibre binaries [@tremor021](https://github.com/tremor021) ([#1763](https://github.com/community-scripts/ProxmoxVE/pull/1763)) +- Added environment variable to accept EULA for SQLServer2022 [@tremor021](https://github.com/tremor021) ([#1755](https://github.com/community-scripts/ProxmoxVE/pull/1755)) + +### 🌐 Website + +- The Lounge: Fix the command to create new users [@tremor021](https://github.com/tremor021) ([#1762](https://github.com/community-scripts/ProxmoxVE/pull/1762)) + +### 🧰 Maintenance + +- Revert "[Github Action] Update CHANGELOG.md" [@MickLesk](https://github.com/MickLesk) ([#1749](https://github.com/community-scripts/ProxmoxVE/pull/1749)) + ## 2025-01-24 ### Changed From de80e95d6901bd703fc4e0581f16291b13458e30 Mon Sep 17 00:00:00 2001 From: "community-scripts-pr-app[bot]" <189241966+community-scripts-pr-app[bot]@users.noreply.github.com> Date: Sun, 26 Jan 2025 10:43:31 +0100 Subject: [PATCH 204/284] Update CHANGELOG.md (#1764) Co-authored-by: github-actions[bot] --- CHANGELOG.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 125fc88c7..dc4570e27 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -30,10 +30,6 @@ Do not break established syntax in this file, as it is automatically updated by - The Lounge: Fix the command to create new users [@tremor021](https://github.com/tremor021) ([#1762](https://github.com/community-scripts/ProxmoxVE/pull/1762)) -### 🧰 Maintenance - -- Revert "[Github Action] Update CHANGELOG.md" [@MickLesk](https://github.com/MickLesk) ([#1749](https://github.com/community-scripts/ProxmoxVE/pull/1749)) - ## 2025-01-24 ### Changed From ba6edcdcafd0fa1cd0bbb7fbac63d10a6256973a Mon Sep 17 00:00:00 2001 From: moodyblue Date: Sun, 26 Jan 2025 11:39:18 +0000 Subject: [PATCH 205/284] openHAB - Use https and include doc url (#1766) * Update openhab.json * Update openhab.sh --- ct/openhab.sh | 5 +++-- json/openhab.json | 6 +++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/ct/openhab.sh b/ct/openhab.sh index 9cd9fc0e2..35c407f8c 100644 --- a/ct/openhab.sh +++ b/ct/openhab.sh @@ -45,5 +45,6 @@ description msg_ok "Completed Successfully!\n" echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" -echo -e "${INFO}${YW} Access it using the following URL:${CL}" -echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080${CL} or ${TAB}${GATEWAY}${BGN}https://${IP}:8443${CL}" +echo -e "${INFO}${YW} Access it using one of the following URLs:${CL}" +echo -e "${TAB}${GATEWAY}${BGN}https://${IP}:8443${CL}" +echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080${CL}" diff --git a/json/openhab.json b/json/openhab.json index 7c5364ef0..1eadbc927 100644 --- a/json/openhab.json +++ b/json/openhab.json @@ -8,8 +8,8 @@ "type": "ct", "updateable": false, "privileged": false, - "interface_port": 8080, - "documentation": null, + "interface_port": 8443, + "documentation": "https://www.openhab.org/docs/", "website": "https://www.openhab.org/", "logo": "https://www.coxprod.org/domotique/wp-content/uploads/2019/01/openhab-logo-square.png", "description": "openHAB is a popular open-source home automation platform that provides a vendor and technology agnostic solution for integrating and automating various smart home devices and services. It supports a wide range of devices and protocols, making it easy to bring together different systems and devices into a unified smart home ecosystem. With its user-friendly interface and powerful automation capabilities, openHAB makes it easy to create custom automations and monitor and control your smart home devices and systems, all from a single interface.", @@ -31,4 +31,4 @@ "password": null }, "notes": [] -} \ No newline at end of file +} From 0af7a5adbfa9adb6b66ef6e6d787d5a443ad3101 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Slavi=C5=A1a=20Are=C5=BEina?= <58952836+tremor021@users.noreply.github.com> Date: Sun, 26 Jan 2025 14:01:31 +0100 Subject: [PATCH 206/284] Jellyfin: Fix default logging level (#1768) * Fix the ammount of default logging * remove comment Co-authored-by: Michel Roegl-Brunner <73236783+michelroegl-brunner@users.noreply.github.com> --------- Co-authored-by: CanbiZ <47820557+MickLesk@users.noreply.github.com> Co-authored-by: Michel Roegl-Brunner <73236783+michelroegl-brunner@users.noreply.github.com> --- install/jellyfin-install.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/install/jellyfin-install.sh b/install/jellyfin-install.sh index 3f3f1a612..038fa83b6 100644 --- a/install/jellyfin-install.sh +++ b/install/jellyfin-install.sh @@ -51,6 +51,7 @@ EOF # Install Jellyfin using the metapackage (which will fetch jellyfin-server, jellyfin-web, and jellyfin-ffmpeg5) $STD apt-get update $STD apt-get install -y jellyfin +sed -i 's/"MinimumLevel": "Information"/"MinimumLevel": "Error"/g' /etc/jellyfin/logging.json chown -R jellyfin:adm /etc/jellyfin sleep 10 systemctl restart jellyfin From 92057c4ea71b54f7eed6d860350441e67027a48f Mon Sep 17 00:00:00 2001 From: "community-scripts-pr-app[bot]" <189241966+community-scripts-pr-app[bot]@users.noreply.github.com> Date: Sun, 26 Jan 2025 14:20:29 +0100 Subject: [PATCH 207/284] Update CHANGELOG.md (#1769) Co-authored-by: github-actions[bot] --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index dc4570e27..b5e523f13 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,7 +23,9 @@ Do not break established syntax in this file, as it is automatically updated by ### πŸš€ Updated Scripts +- Jellyfin: Fix default logging level [@tremor021](https://github.com/tremor021) ([#1768](https://github.com/community-scripts/ProxmoxVE/pull/1768)) - Calibre-Web: added installation of calibre binaries [@tremor021](https://github.com/tremor021) ([#1763](https://github.com/community-scripts/ProxmoxVE/pull/1763)) +- openHAB - Use https and include doc url [@moodyblue](https://github.com/moodyblue) ([#1766](https://github.com/community-scripts/ProxmoxVE/pull/1766)) - Added environment variable to accept EULA for SQLServer2022 [@tremor021](https://github.com/tremor021) ([#1755](https://github.com/community-scripts/ProxmoxVE/pull/1755)) ### 🌐 Website From 88c3f56157467cdd04f47a87dd661b922206b5b5 Mon Sep 17 00:00:00 2001 From: Hai-Nam Nguyen Date: Sun, 26 Jan 2025 16:13:54 +0100 Subject: [PATCH 208/284] Fix jellyfin update command (#1771) --- ct/jellyfin.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ct/jellyfin.sh b/ct/jellyfin.sh index 123f3e94c..0e44bcf5f 100644 --- a/ct/jellyfin.sh +++ b/ct/jellyfin.sh @@ -35,7 +35,7 @@ function update_script() { msg_info "Updating ${APP} LXC" apt-get update &>/dev/null apt-get -y upgrade &>/dev/null - apt-get --with-new-pkgs upgrade jellyfin jellyfin-server &>/dev/null + apt-get -y --with-new-pkgs upgrade jellyfin jellyfin-server &>/dev/null msg_ok "Updated ${APP} LXC" exit } From 78e6e12c8a50b530d47b99ad778284db92fe97f0 Mon Sep 17 00:00:00 2001 From: "community-scripts-pr-app[bot]" <189241966+community-scripts-pr-app[bot]@users.noreply.github.com> Date: Sun, 26 Jan 2025 17:50:03 +0100 Subject: [PATCH 209/284] Update CHANGELOG.md (#1772) Co-authored-by: github-actions[bot] --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b5e523f13..bd2b7bb4d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,9 +23,10 @@ Do not break established syntax in this file, as it is automatically updated by ### πŸš€ Updated Scripts +- Fix jellyfin update command [@jcisio](https://github.com/jcisio) ([#1771](https://github.com/community-scripts/ProxmoxVE/pull/1771)) +- openHAB - Use https and include doc url [@moodyblue](https://github.com/moodyblue) ([#1766](https://github.com/community-scripts/ProxmoxVE/pull/1766)) - Jellyfin: Fix default logging level [@tremor021](https://github.com/tremor021) ([#1768](https://github.com/community-scripts/ProxmoxVE/pull/1768)) - Calibre-Web: added installation of calibre binaries [@tremor021](https://github.com/tremor021) ([#1763](https://github.com/community-scripts/ProxmoxVE/pull/1763)) -- openHAB - Use https and include doc url [@moodyblue](https://github.com/moodyblue) ([#1766](https://github.com/community-scripts/ProxmoxVE/pull/1766)) - Added environment variable to accept EULA for SQLServer2022 [@tremor021](https://github.com/tremor021) ([#1755](https://github.com/community-scripts/ProxmoxVE/pull/1755)) ### 🌐 Website From dfd56aebf2095f75fea557f61e54fb63e7aa4d76 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Mon, 27 Jan 2025 12:01:59 +0100 Subject: [PATCH 210/284] New Script: Arch Linux VM (#1780) * New Script: Arch Linux VM * naming iso / qcow2 --- json/archlinux-vm.json | 39 ++++ vm/archlinux-vm.sh | 497 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 536 insertions(+) create mode 100644 json/archlinux-vm.json create mode 100644 vm/archlinux-vm.sh diff --git a/json/archlinux-vm.json b/json/archlinux-vm.json new file mode 100644 index 000000000..828e75704 --- /dev/null +++ b/json/archlinux-vm.json @@ -0,0 +1,39 @@ +{ + "name": "Arch Linux VM", + "slug": "archlinux-vm", + "categories": [ + 2 + ], + "date_created": "2025-01-27", + "type": "vm", + "updateable": false, + "privileged": false, + "interface_port": null, + "documentation": null, + "website": null, + "logo": "https://raw.githubusercontent.com/ArchLinuxStudio/ArchLinuxTutorial/refs/heads/master/docs/arch_seo.png", + "description": "Arch Linux is a highly customizable, independent Linux distribution that gives users complete control over their system. Known for its rolling release model, Arch Linux is always up-to-date with the latest software. It's favored by experienced users who appreciate its minimalist approach, demanding a hands-on installation and configuration process. This level of control and flexibility makes it a popular choice for those who want to tailor their Linux system to their exact needs.", + "install_methods": [ + { + "type": "default", + "script": "/vm/archlinux-vm.sh", + "resources": { + "cpu": 1, + "ram": 1024, + "hdd": 4, + "os": null, + "version": null + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "doesnt work with lvm and lvmthin disks!", + "type": "warning" + } + ] +} \ No newline at end of file diff --git a/vm/archlinux-vm.sh b/vm/archlinux-vm.sh new file mode 100644 index 000000000..6f08a0023 --- /dev/null +++ b/vm/archlinux-vm.sh @@ -0,0 +1,497 @@ +#!/usr/bin/env bash + +# Copyright (c) 2021-2025 community-scripts ORG +# Author: MickLesk (CanbiZ) +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE + +function header_info { + clear + cat <<"EOF" + ___ __ __ _ _ ____ ___ + / | __________/ /_ / / (_)___ __ ___ __ | | / / |/ / + / /| | / ___/ ___/ __ \ / / / / __ \/ / / / |/_/ | | / / /|_/ / + / ___ |/ / / /__/ / / / / /___/ / / / / /_/ /> < | |/ / / / / +/_/ |_/_/ \___/_/ /_/ /_____/_/_/ /_/\__,_/_/|_| |___/_/ /_/ + +EOF +} +header_info +echo -e "\n Loading..." +GEN_MAC=02:$(openssl rand -hex 5 | awk '{print toupper($0)}' | sed 's/\(..\)/\1:/g; s/.$//') +NEXTID=$(pvesh get /cluster/nextid) + +YW=$(echo "\033[33m") +BL=$(echo "\033[36m") +RD=$(echo "\033[01;31m") +BGN=$(echo "\033[4;92m") +GN=$(echo "\033[1;92m") +DGN=$(echo "\033[32m") +CL=$(echo "\033[m") + +CL=$(echo "\033[m") +BOLD=$(echo "\033[1m") +BFR="\\r\\033[K" +HOLD=" " +TAB=" " + +CM="${TAB}βœ”οΈ${TAB}${CL}" +CROSS="${TAB}βœ–οΈ${TAB}${CL}" +INFO="${TAB}πŸ’‘${TAB}${CL}" +OS="${TAB}πŸ–₯️${TAB}${CL}" +CONTAINERTYPE="${TAB}πŸ“¦${TAB}${CL}" +DISKSIZE="${TAB}πŸ’Ύ${TAB}${CL}" +CPUCORE="${TAB}🧠${TAB}${CL}" +RAMSIZE="${TAB}πŸ› οΈ${TAB}${CL}" +CONTAINERID="${TAB}πŸ†”${TAB}${CL}" +HOSTNAME="${TAB}🏠${TAB}${CL}" +BRIDGE="${TAB}πŸŒ‰${TAB}${CL}" +GATEWAY="${TAB}🌐${TAB}${CL}" +DEFAULT="${TAB}βš™οΈ${TAB}${CL}" +MACADDRESS="${TAB}πŸ”—${TAB}${CL}" +VLANTAG="${TAB}🏷️${TAB}${CL}" +CREATING="${TAB}πŸš€${TAB}${CL}" +ADVANCED="${TAB}🧩${TAB}${CL}" + +THIN="discard=on,ssd=1," +set -e +trap 'error_handler $LINENO "$BASH_COMMAND"' ERR +trap cleanup EXIT +function error_handler() { + local exit_code="$?" + local line_number="$1" + local command="$2" + local error_message="${RD}[ERROR]${CL} in line ${RD}$line_number${CL}: exit code ${RD}$exit_code${CL}: while executing command ${YW}$command${CL}" + echo -e "\n$error_message\n" + cleanup_vmid +} + +function cleanup_vmid() { + if qm status $VMID &>/dev/null; then + qm stop $VMID &>/dev/null + qm destroy $VMID &>/dev/null + fi +} + +function cleanup() { + popd >/dev/null + rm -rf $TEMP_DIR +} + +TEMP_DIR=$(mktemp -d) +pushd $TEMP_DIR >/dev/null +if whiptail --backtitle "Proxmox VE Helper Scripts" --title "Arch Linux VM" --yesno "This will create a New Arch Linux VM. Proceed?" 10 58; then + : +else + header_info && echo -e "${CROSS}${RD}User exited script${CL}\n" && exit +fi + +function msg_info() { + local msg="$1" + echo -ne "${TAB}${YW}${HOLD}${msg}${HOLD}" +} + +function msg_ok() { + local msg="$1" + echo -e "${BFR}${CM}${GN}${msg}${CL}" +} + +function msg_error() { + local msg="$1" + echo -e "${BFR}${CROSS}${RD}${msg}${CL}" +} + +function check_root() { + if [[ "$(id -u)" -ne 0 || $(ps -o comm= -p $PPID) == "sudo" ]]; then + clear + msg_error "Please run this script as root." + echo -e "\nExiting..." + sleep 2 + exit + fi +} + +function pve_check() { + if ! pveversion | grep -Eq "pve-manager/8.[1-3]"; then + msg_error "${CROSS}${RD}This version of Proxmox Virtual Environment is not supported" + echo -e "Requires Proxmox Virtual Environment Version 8.1 or later." + echo -e "Exiting..." + sleep 2 + exit + fi +} + +function arch_check() { + if [ "$(dpkg --print-architecture)" != "amd64" ]; then + echo -e "\n ${INFO}${YWB}This script will not work with PiMox! \n" + echo -e "\n ${YWB}Visit https://github.com/asylumexp/Proxmox for ARM64 support. \n" + echo -e "Exiting..." + sleep 2 + exit + fi +} + +function ssh_check() { + if command -v pveversion >/dev/null 2>&1; then + if [ -n "${SSH_CLIENT:+x}" ]; then + if whiptail --backtitle "Proxmox VE Helper Scripts" --defaultno --title "SSH DETECTED" --yesno "It's suggested to use the Proxmox shell instead of SSH, since SSH can create issues while gathering variables. Would you like to proceed with using SSH?" 10 62; then + echo "you've been warned" + else + clear + exit + fi + fi + fi +} + +function exit-script() { + clear + echo -e "\n${CROSS}${RD}User exited script${CL}\n" + exit +} + +function default_settings() { + VMID="$NEXTID" + FORMAT=",efitype=4m" + MACHINE="" + DISK_SIZE="4G" + DISK_CACHE="" + HN="arch-linux" + CPU_TYPE="" + CORE_COUNT="1" + RAM_SIZE="1024" + BRG="vmbr0" + MAC="$GEN_MAC" + VLAN="" + MTU="" + START_VM="yes" + echo -e "${CONTAINERID}${BOLD}${DGN}Virtual Machine ID: ${BGN}${VMID}${CL}" + echo -e "${CONTAINERTYPE}${BOLD}${DGN}Machine Type: ${BGN}i440fx${CL}" + echo -e "${DISKSIZE}${BOLD}${DGN}Disk Size: ${BGN}${DISK_SIZE}${CL}" + echo -e "${DISKSIZE}${BOLD}${DGN}Disk Cache: ${BGN}None${CL}" + echo -e "${HOSTNAME}${BOLD}${DGN}Hostname: ${BGN}${HN}${CL}" + echo -e "${OS}${BOLD}${DGN}CPU Model: ${BGN}KVM64${CL}" + echo -e "${CPUCORE}${BOLD}${DGN}CPU Cores: ${BGN}${CORE_COUNT}${CL}" + echo -e "${RAMSIZE}${BOLD}${DGN}RAM Size: ${BGN}${RAM_SIZE}${CL}" + echo -e "${BRIDGE}${BOLD}${DGN}Bridge: ${BGN}${BRG}${CL}" + echo -e "${MACADDRESS}${BOLD}${DGN}MAC Address: ${BGN}${MAC}${CL}" + echo -e "${VLANTAG}${BOLD}${DGN}VLAN: ${BGN}Default${CL}" + echo -e "${DEFAULT}${BOLD}${DGN}Interface MTU Size: ${BGN}Default${CL}" + echo -e "${GATEWAY}${BOLD}${DGN}Start VM when completed: ${BGN}yes${CL}" + echo -e "${CREATING}${BOLD}${DGN}Creating a Arch Linux VM using the above default settings${CL}" +} + +function advanced_settings() { + while true; do + if VMID=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set Virtual Machine ID" 8 58 $NEXTID --title "VIRTUAL MACHINE ID" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then + if [ -z "$VMID" ]; then + VMID="$NEXTID" + fi + if pct status "$VMID" &>/dev/null || qm status "$VMID" &>/dev/null; then + echo -e "${CROSS}${RD} ID $VMID is already in use${CL}" + sleep 2 + continue + fi + echo -e "${CONTAINERID}${BOLD}${DGN}Virtual Machine ID: ${BGN}$VMID${CL}" + break + else + exit-script + fi + done + + if MACH=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "MACHINE TYPE" --radiolist --cancel-button Exit-Script "Choose Type" 10 58 2 \ + "i440fx" "Machine i440fx" ON \ + "q35" "Machine q35" OFF \ + 3>&1 1>&2 2>&3); then + if [ $MACH = q35 ]; then + echo -e "${CONTAINERTYPE}${BOLD}${DGN}Machine Type: ${BGN}$MACH${CL}" + FORMAT="" + MACHINE=" -machine q35" + else + echo -e "${CONTAINERTYPE}${BOLD}${DGN}Machine Type: ${BGN}$MACH${CL}" + FORMAT=",efitype=4m" + MACHINE="" + fi + else + exit-script + fi + + if DISK_SIZE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set Disk Size in GiB (e.g., 10, 20)" 8 58 "$DISK_SIZE" --title "DISK SIZE" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then + DISK_SIZE=$(echo "$DISK_SIZE" | tr -d ' ') + if [[ "$DISK_SIZE" =~ ^[0-9]+$ ]]; then + DISK_SIZE="${DISK_SIZE}G" + echo -e "${DISKSIZE}${BOLD}${DGN}Disk Size: ${BGN}$DISK_SIZE${CL}" + elif [[ "$DISK_SIZE" =~ ^[0-9]+G$ ]]; then + echo -e "${DISKSIZE}${BOLD}${DGN}Disk Size: ${BGN}$DISK_SIZE${CL}" + else + echo -e "${DISKSIZE}${BOLD}${RD}Invalid Disk Size. Please use a number (e.g., 10 or 10G).${CL}" + exit-script + fi + else + exit-script + fi + + if DISK_CACHE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "DISK CACHE" --radiolist "Choose" --cancel-button Exit-Script 10 58 2 \ + "0" "None (Default)" ON \ + "1" "Write Through" OFF \ + 3>&1 1>&2 2>&3); then + if [ $DISK_CACHE = "1" ]; then + echo -e "${DISKSIZE}${BOLD}${DGN}Disk Cache: ${BGN}Write Through${CL}" + DISK_CACHE="cache=writethrough," + else + echo -e "${DISKSIZE}${BOLD}${DGN}Disk Cache: ${BGN}None${CL}" + DISK_CACHE="" + fi + else + exit-script + fi + + if VM_NAME=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set Hostname" 8 58 arch-linux --title "HOSTNAME" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then + if [ -z $VM_NAME ]; then + HN="arch-linux" + echo -e "${HOSTNAME}${BOLD}${DGN}Hostname: ${BGN}$HN${CL}" + else + HN=$(echo ${VM_NAME,,} | tr -d ' ') + echo -e "${HOSTNAME}${BOLD}${DGN}Hostname: ${BGN}$HN${CL}" + fi + else + exit-script + fi + + if CPU_TYPE1=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "CPU MODEL" --radiolist "Choose" --cancel-button Exit-Script 10 58 2 \ + "0" "KVM64 (Default)" ON \ + "1" "Host" OFF \ + 3>&1 1>&2 2>&3); then + if [ $CPU_TYPE1 = "1" ]; then + echo -e "${OS}${BOLD}${DGN}CPU Model: ${BGN}Host${CL}" + CPU_TYPE=" -cpu host" + else + echo -e "${OS}${BOLD}${DGN}CPU Model: ${BGN}KVM64${CL}" + CPU_TYPE="" + fi + else + exit-script + fi + + if CORE_COUNT=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Allocate CPU Cores" 8 58 2 --title "CORE COUNT" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then + if [ -z $CORE_COUNT ]; then + CORE_COUNT="2" + echo -e "${CPUCORE}${BOLD}${DGN}CPU Cores: ${BGN}$CORE_COUNT${CL}" + else + echo -e "${CPUCORE}${BOLD}${DGN}CPU Cores: ${BGN}$CORE_COUNT${CL}" + fi + else + exit-script + fi + + if RAM_SIZE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Allocate RAM in MiB" 8 58 2048 --title "RAM" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then + if [ -z $RAM_SIZE ]; then + RAM_SIZE="2048" + echo -e "${RAMSIZE}${BOLD}${DGN}RAM Size: ${BGN}$RAM_SIZE${CL}" + else + echo -e "${RAMSIZE}${BOLD}${DGN}RAM Size: ${BGN}$RAM_SIZE${CL}" + fi + else + exit-script + fi + + if BRG=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set a Bridge" 8 58 vmbr0 --title "BRIDGE" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then + if [ -z $BRG ]; then + BRG="vmbr0" + echo -e "${BRIDGE}${BOLD}${DGN}Bridge: ${BGN}$BRG${CL}" + else + echo -e "${BRIDGE}${BOLD}${DGN}Bridge: ${BGN}$BRG${CL}" + fi + else + exit-script + fi + + if MAC1=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set a MAC Address" 8 58 $GEN_MAC --title "MAC ADDRESS" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then + if [ -z $MAC1 ]; then + MAC="$GEN_MAC" + echo -e "${MACADDRESS}${BOLD}${DGN}MAC Address: ${BGN}$MAC${CL}" + else + MAC="$MAC1" + echo -e "${MACADDRESS}${BOLD}${DGN}MAC Address: ${BGN}$MAC1${CL}" + fi + else + exit-script + fi + + if VLAN1=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set a Vlan(leave blank for default)" 8 58 --title "VLAN" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then + if [ -z $VLAN1 ]; then + VLAN1="Default" + VLAN="" + echo -e "${VLANTAG}${BOLD}${DGN}VLAN: ${BGN}$VLAN1${CL}" + else + VLAN=",tag=$VLAN1" + echo -e "${VLANTAG}${BOLD}${DGN}VLAN: ${BGN}$VLAN1${CL}" + fi + else + exit-script + fi + + if MTU1=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set Interface MTU Size (leave blank for default)" 8 58 --title "MTU SIZE" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then + if [ -z $MTU1 ]; then + MTU1="Default" + MTU="" + echo -e "${DEFAULT}${BOLD}${DGN}Interface MTU Size: ${BGN}$MTU1${CL}" + else + MTU=",mtu=$MTU1" + echo -e "${DEFAULT}${BOLD}${DGN}Interface MTU Size: ${BGN}$MTU1${CL}" + fi + else + exit-script + fi + + if (whiptail --backtitle "Proxmox VE Helper Scripts" --title "START VIRTUAL MACHINE" --yesno "Start VM when completed?" 10 58); then + echo -e "${GATEWAY}${BOLD}${DGN}Start VM when completed: ${BGN}yes${CL}" + START_VM="yes" + else + echo -e "${GATEWAY}${BOLD}${DGN}Start VM when completed: ${BGN}no${CL}" + START_VM="no" + fi + + if (whiptail --backtitle "Proxmox VE Helper Scripts" --title "ADVANCED SETTINGS COMPLETE" --yesno "Ready to create a Arch Linux VM?" --no-button Do-Over 10 58); then + echo -e "${CREATING}${BOLD}${DGN}Creating a Arch Linux VM using the above advanced settings${CL}" + else + header_info + echo -e "${ADVANCED}${BOLD}${RD}Using Advanced Settings${CL}" + advanced_settings + fi +} + +function start_script() { + if (whiptail --backtitle "Proxmox VE Helper Scripts" --title "SETTINGS" --yesno "Use Default Settings?" --no-button Advanced 10 58); then + header_info + echo -e "${DEFAULT}${BOLD}${BL}Using Default Settings${CL}" + default_settings + else + header_info + echo -e "${ADVANCED}${BOLD}${RD}Using Advanced Settings${CL}" + advanced_settings + fi +} + +check_root +arch_check +pve_check +ssh_check +start_script + +msg_info "Validating Storage" +while read -r line; do + TAG=$(echo $line | awk '{print $1}') + TYPE=$(echo $line | awk '{printf "%-10s", $2}') + FREE=$(echo $line | numfmt --field 4-6 --from-unit=K --to=iec --format %.2f | awk '{printf( "%9sB", $6)}') + ITEM=" Type: $TYPE Free: $FREE " + OFFSET=2 + if [[ $((${#ITEM} + $OFFSET)) -gt ${MSG_MAX_LENGTH:-} ]]; then + MSG_MAX_LENGTH=$((${#ITEM} + $OFFSET)) + fi + STORAGE_MENU+=("$TAG" "$ITEM" "OFF") +done < <(pvesm status -content images | awk 'NR>1') +VALID=$(pvesm status -content images | awk 'NR>1') +if [ -z "$VALID" ]; then + msg_error "Unable to detect a valid storage location." + exit +elif [ $((${#STORAGE_MENU[@]} / 3)) -eq 1 ]; then + STORAGE=${STORAGE_MENU[0]} +else + 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 ${HN}?\nTo make a selection, use the Spacebar.\n" \ + 16 $(($MSG_MAX_LENGTH + 23)) 6 \ + "${STORAGE_MENU[@]}" 3>&1 1>&2 2>&3) || exit + done +fi +msg_ok "Using ${CL}${BL}$STORAGE${CL} ${GN}for Storage Location." +msg_ok "Virtual Machine ID is ${CL}${BL}$VMID${CL}." +msg_info "Retrieving the URL for the Arch Linux .iso File" +URL=https://geo.mirror.pkgbuild.com/iso/latest/archlinux-x86_64.iso +sleep 2 +msg_ok "${CL}${BL}${URL}${CL}" +wget -q --show-progress $URL +echo -en "\e[1A\e[0K" +FILE=$(basename $URL) +msg_ok "Downloaded ${CL}${BL}${FILE}${CL}" + +STORAGE_TYPE=$(pvesm status -storage $STORAGE | awk 'NR>1 {print $2}') +case $STORAGE_TYPE in +nfs | dir | cifs) + DISK_EXT=".qcow2" + DISK_REF="$VMID/" + DISK_IMPORT="-format qcow2" + THIN="" + ;; +btrfs) + DISK_EXT=".raw" + DISK_REF="$VMID/" + DISK_IMPORT="-format raw" + FORMAT=",efitype=4m" + THIN="" + ;; +esac +for i in {0,1}; do + disk="DISK$i" + eval DISK${i}=vm-${VMID}-disk-${i}${DISK_EXT:-} + eval DISK${i}_REF=${STORAGE}:${DISK_REF:-}${!disk} +done + +msg_info "Creating a Arch Linux VM" +qm create $VMID -agent 1${MACHINE} -tablet 0 -localtime 1 -bios ovmf${CPU_TYPE} -cores $CORE_COUNT -memory $RAM_SIZE \ + -name $HN -tags community-scripts -net0 virtio,bridge=$BRG,macaddr=$MAC$VLAN$MTU -onboot 1 -ostype l26 -scsihw virtio-scsi-pci +pvesm alloc $STORAGE $VMID $DISK0 4M 1>&/dev/null +qm importdisk $VMID ${FILE} $STORAGE ${DISK_IMPORT:-} 1>&/dev/null +qm set $VMID \ + -efidisk0 ${DISK0_REF}${FORMAT} \ + -scsi0 ${DISK1_REF},${DISK_CACHE}${THIN}size=${DISK_SIZE} \ + -ide2 ${STORAGE}:cloudinit \ + -boot order=scsi0 \ + -serial0 socket >/dev/null +DESCRIPTION=$( + cat < + + Logo + + +

Arch Linux VM

+ +

+ + spend Coffee + +

+ + + + GitHub + + + + Discussions + + + + Issues + +
+EOF +) +qm set "$VMID" -description "$DESCRIPTION" >/dev/null +if [ -n "$DISK_SIZE" ]; then + msg_info "Resizing disk to $DISK_SIZE GB" + qm resize $VMID scsi0 ${DISK_SIZE} >/dev/null +else + msg_info "Using default disk size of $DEFAULT_DISK_SIZE GB" + qm resize $VMID scsi0 ${DEFAULT_DISK_SIZE} >/dev/null +fi + +msg_ok "Created a Arch Linux VM ${CL}${BL}(${HN})" +if [ "$START_VM" == "yes" ]; then + msg_info "Starting Arch Linux VM" + qm start $VMID + msg_ok "Started Arch Linux VM" +fi + +msg_ok "Completed Successfully!\n" From 8a6364902eb22b4d3e4caeb24fd5c4e827fa3634 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Mon, 27 Jan 2025 12:07:46 +0100 Subject: [PATCH 211/284] Update archlinux-vm.json --- json/archlinux-vm.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/json/archlinux-vm.json b/json/archlinux-vm.json index 828e75704..af7871029 100644 --- a/json/archlinux-vm.json +++ b/json/archlinux-vm.json @@ -16,7 +16,7 @@ "install_methods": [ { "type": "default", - "script": "/vm/archlinux-vm.sh", + "script": "vm/archlinux-vm.sh", "resources": { "cpu": 1, "ram": 1024, @@ -36,4 +36,4 @@ "type": "warning" } ] -} \ No newline at end of file +} From b06ad8bde86b492d88d71040e34987f0ec5f491a Mon Sep 17 00:00:00 2001 From: lasharor Date: Mon, 27 Jan 2025 12:43:57 +0100 Subject: [PATCH 212/284] Update archlinux-vm.json (#1782) VM is now double on the website. Suggest to delete it from the name. --- json/archlinux-vm.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/json/archlinux-vm.json b/json/archlinux-vm.json index af7871029..ddd910672 100644 --- a/json/archlinux-vm.json +++ b/json/archlinux-vm.json @@ -1,5 +1,5 @@ { - "name": "Arch Linux VM", + "name": "Arch Linux", "slug": "archlinux-vm", "categories": [ 2 From 4911a7918a536e19b84e0182f4c982cbaadecff0 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Mon, 27 Jan 2025 13:10:05 +0100 Subject: [PATCH 213/284] Website: Add Description for Metadata Categories (#1783) --- json/metadata.json | 52 +++++++++++++++++++++++----------------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/json/metadata.json b/json/metadata.json index 78ac3e87e..e25f0ee70 100644 --- a/json/metadata.json +++ b/json/metadata.json @@ -1,30 +1,30 @@ { "categories": [ - { "name": "Proxmox & Virtualization", "id": 1, "sort_order": 1.0 }, - { "name": "Operating Systems", "id": 2, "sort_order": 2.0 }, - { "name": "Containers & Docker", "id": 3, "sort_order": 3.0 }, - { "name": "Network & Firewall", "id": 4, "sort_order": 4.0 }, - { "name": "Adblock & DNS", "id": 5, "sort_order": 5.0 }, - { "name": "Authentication & Security", "id": 6, "sort_order": 6.0 }, - { "name": "Backup & Recovery", "id": 7, "sort_order": 7.0 }, - { "name": "Databases", "id": 8, "sort_order": 8.0 }, - { "name": "Monitoring & Analytics", "id": 9, "sort_order": 9.0 }, - { "name": "Dashboards & Frontends", "id": 10, "sort_order": 10.0 }, - { "name": "Files & Downloads", "id": 11, "sort_order": 11.0 }, - { "name": "Documents & Notes", "id": 12, "sort_order": 12.0 }, - { "name": "Media & Streaming", "id": 13, "sort_order": 13.0 }, - { "name": "*Arr Suite", "id": 14, "sort_order": 14.0 }, - { "name": "NVR & Cameras", "id": 15, "sort_order": 15.0 }, - { "name": "IoT & Smart Home", "id": 16, "sort_order": 16.0 }, - { "name": "ZigBee, Z-Wave & Matter", "id": 17, "sort_order": 17.0 }, - { "name": "MQTT & Messaging", "id": 18, "sort_order": 18.0 }, - { "name": "Automation & Scheduling", "id": 19, "sort_order": 19.0 }, - { "name": "AI / Coding & Dev-Tools", "id": 20, "sort_order": 20.0 }, - { "name": "Webservers & Proxies", "id": 21, "sort_order": 21.0 }, - { "name": "Bots & ChatOps", "id": 22, "sort_order": 22.0 }, - { "name": "Finance & Budgeting", "id": 23, "sort_order": 23.0 }, - { "name": "Gaming & Leisure", "id": 24, "sort_order": 24.0 }, - { "name": "Business & ERP", "id": 25, "sort_order": 25.0 }, - { "name": "Miscellaneous", "id": 0, "sort_order": 99.0 } + { "name": "Proxmox & Virtualization", "id": 1, "sort_order": 1.0, "description": "Tools and scripts to manage Proxmox VE and virtualization platforms effectively." }, + { "name": "Operating Systems", "id": 2, "sort_order": 2.0, "description": "Scripts for deploying and managing various operating systems." }, + { "name": "Containers & Docker", "id": 3, "sort_order": 3.0, "description": "Solutions for containerization using Docker and related technologies." }, + { "name": "Network & Firewall", "id": 4, "sort_order": 4.0, "description": "Enhance network security and configure firewalls with ease." }, + { "name": "Adblock & DNS", "id": 5, "sort_order": 5.0, "description": "Optimize your network with DNS and ad-blocking solutions." }, + { "name": "Authentication & Security", "id": 6, "sort_order": 6.0, "description": "Secure your infrastructure with authentication and security tools." }, + { "name": "Backup & Recovery", "id": 7, "sort_order": 7.0, "description": "Reliable backup and recovery scripts to protect your data." }, + { "name": "Databases", "id": 8, "sort_order": 8.0, "description": "Deploy and manage robust database systems with ease." }, + { "name": "Monitoring & Analytics", "id": 9, "sort_order": 9.0, "description": "Monitor system performance and analyze data seamlessly." }, + { "name": "Dashboards & Frontends", "id": 10, "sort_order": 10.0, "description": "Create interactive dashboards and user-friendly frontends." }, + { "name": "Files & Downloads", "id": 11, "sort_order": 11.0, "description": "Manage file sharing and downloading solutions efficiently." }, + { "name": "Documents & Notes", "id": 12, "sort_order": 12.0, "description": "Organize and manage documents and note-taking tools." }, + { "name": "Media & Streaming", "id": 13, "sort_order": 13.0, "description": "Stream and manage media effortlessly across devices." }, + { "name": "*Arr Suite", "id": 14, "sort_order": 14.0, "description": "Automated media management with the popular *Arr suite tools." }, + { "name": "NVR & Cameras", "id": 15, "sort_order": 15.0, "description": "Manage network video recorders and camera setups." }, + { "name": "IoT & Smart Home", "id": 16, "sort_order": 16.0, "description": "Control and automate IoT devices and smart home systems." }, + { "name": "ZigBee, Z-Wave & Matter", "id": 17, "sort_order": 17.0, "description": "Solutions for ZigBee, Z-Wave, and Matter-based device management." }, + { "name": "MQTT & Messaging", "id": 18, "sort_order": 18.0, "description": "Set up reliable messaging and MQTT-based communication systems." }, + { "name": "Automation & Scheduling", "id": 19, "sort_order": 19.0, "description": "Automate tasks and manage scheduling with powerful tools." }, + { "name": "AI / Coding & Dev-Tools", "id": 20, "sort_order": 20.0, "description": "Leverage AI and developer tools for smarter coding workflows." }, + { "name": "Webservers & Proxies", "id": 21, "sort_order": 21.0, "description": "Deploy and configure web servers and proxy solutions." }, + { "name": "Bots & ChatOps", "id": 22, "sort_order": 22.0, "description": "Enhance collaboration with bots and ChatOps integrations." }, + { "name": "Finance & Budgeting", "id": 23, "sort_order": 23.0, "description": "Track expenses and manage budgets efficiently." }, + { "name": "Gaming & Leisure", "id": 24, "sort_order": 24.0, "description": "Scripts for gaming servers and leisure-related tools." }, + { "name": "Business & ERP", "id": 25, "sort_order": 25.0, "description": "Streamline business operations with ERP and management tools." }, + { "name": "Miscellaneous", "id": 0, "sort_order": 99.0, "description": "General scripts and tools that don't fit into other categories." } ] } From 14247ac5a9a32397a8bd648e18a25f557458f4db Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Mon, 27 Jan 2025 13:16:26 +0100 Subject: [PATCH 214/284] Update page.tsx --- frontend/src/app/category-view/page.tsx | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/frontend/src/app/category-view/page.tsx b/frontend/src/app/category-view/page.tsx index 6050f4aeb..aec49a34e 100644 --- a/frontend/src/app/category-view/page.tsx +++ b/frontend/src/app/category-view/page.tsx @@ -52,6 +52,10 @@ const CategoryView = () => { : text; }; + const getRandomLogos = (scripts: any[], count: number) => { + return scripts.sort(() => Math.random() - 0.5).slice(0, count); + }; + return (
{categories.length === 0 && ( @@ -62,7 +66,7 @@ const CategoryView = () => { -

{selectedCategory.name}

+

{selectedCategory.name}

{selectedCategory.scripts .sort((a, b) => a.name.localeCompare(b.name)) @@ -94,7 +98,7 @@ const CategoryView = () => { ) : (
-

Categories

+

Categories

{categories.reduce((acc, cat) => acc + (cat.scripts?.length || 0), 0)} Total scripts

@@ -107,19 +111,19 @@ const CategoryView = () => { className="cursor-pointer hover:shadow-lg flex flex-col items-center justify-center" > -
- {category.scripts && category.scripts.slice(0, 4).map((script, index) => ( +
+ {category.scripts && getRandomLogos(category.scripts, 5).map((script, index) => ( {script.name ))}

{category.name}

-

- {(category as any).description || "No description available."} +

+ {category.description || "No description available."}

@@ -131,4 +135,4 @@ const CategoryView = () => { ); }; -export default CategoryView; \ No newline at end of file +export default CategoryView; From 5dc1a7d219387c16f16a8b53619b0a1d30e57fb2 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Mon, 27 Jan 2025 13:31:47 +0100 Subject: [PATCH 215/284] Update page.tsx --- frontend/src/app/category-view/page.tsx | 46 +++++++++++++++---------- 1 file changed, 28 insertions(+), 18 deletions(-) diff --git a/frontend/src/app/category-view/page.tsx b/frontend/src/app/category-view/page.tsx index aec49a34e..08474eb16 100644 --- a/frontend/src/app/category-view/page.tsx +++ b/frontend/src/app/category-view/page.tsx @@ -52,8 +52,9 @@ const CategoryView = () => { : text; }; - const getRandomLogos = (scripts: any[], count: number) => { - return scripts.sort(() => Math.random() - 0.5).slice(0, count); + const getRandomScripts = (scripts: any[]) => { + if (!scripts || scripts.length <= 5) return scripts; + return scripts.sort(() => 0.5 - Math.random()).slice(0, 5); }; return ( @@ -66,12 +67,16 @@ const CategoryView = () => { -

{selectedCategory.name}

+

{selectedCategory.name}

{selectedCategory.scripts .sort((a, b) => a.name.localeCompare(b.name)) .map((script) => ( - handleScriptClick(script.slug)}> + handleScriptClick(script.slug)} + >
{ />

{script.name}

-

Created at: {script.date_created || "No date available"}

+

+ Created at: {script.date_created || "No date available"} +

{truncateDescription(script.description || "No description available.")}

- CPU: {script.install_methods[0]?.resources.cpu || "N/A"}vCPU | RAM: {script.install_methods[0]?.resources.ram || "N/A"}MB | HDD: {script.install_methods[0]?.resources.hdd || "N/A"}GB + CPU: {script.install_methods[0]?.resources.cpu || "N/A"}vCPU |{" "} + RAM: {script.install_methods[0]?.resources.ram || "N/A"}MB |{" "} + HDD: {script.install_methods[0]?.resources.hdd || "N/A"}GB
@@ -98,12 +107,12 @@ const CategoryView = () => { ) : (
-

Categories

+

Categories

{categories.reduce((acc, cat) => acc + (cat.scripts?.length || 0), 0)} Total scripts

-
+
{categories.map((category) => ( { className="cursor-pointer hover:shadow-lg flex flex-col items-center justify-center" > -
- {category.scripts && getRandomLogos(category.scripts, 5).map((script, index) => ( - {script.name - ))} +
+ {category.scripts && + getRandomScripts(category.scripts).map((script, index) => ( + {script.name + ))}
-

{category.name}

+

{category.name}

{category.description || "No description available."}

From 7e1fb858d72b4fb2bedbce60259a8b5efc3c5792 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Mon, 27 Jan 2025 13:33:58 +0100 Subject: [PATCH 216/284] Update page.tsx --- frontend/src/app/category-view/page.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/app/category-view/page.tsx b/frontend/src/app/category-view/page.tsx index 08474eb16..fc490308f 100644 --- a/frontend/src/app/category-view/page.tsx +++ b/frontend/src/app/category-view/page.tsx @@ -133,7 +133,7 @@ const CategoryView = () => {

{category.name}

- {category.description || "No description available."} + {(category as any).description || "No description available."}

From 030174f508bcba5a1533e6c29ff86be18ce2ae10 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Mon, 27 Jan 2025 13:48:19 +0100 Subject: [PATCH 217/284] Update page.tsx --- frontend/src/app/category-view/page.tsx | 32 +++++++++++++------------ 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/frontend/src/app/category-view/page.tsx b/frontend/src/app/category-view/page.tsx index fc490308f..2d2e198b2 100644 --- a/frontend/src/app/category-view/page.tsx +++ b/frontend/src/app/category-view/page.tsx @@ -78,26 +78,28 @@ const CategoryView = () => { onClick={() => handleScriptClick(script.slug)} > -
+
+

{script.name}

+

+ Created at: {script.date_created || "No date available"} +

+
+
{script.name} -
-

{script.name}

-

- Created at: {script.date_created || "No date available"} -

-

- {truncateDescription(script.description || "No description available.")} -

-
-
- CPU: {script.install_methods[0]?.resources.cpu || "N/A"}vCPU |{" "} - RAM: {script.install_methods[0]?.resources.ram || "N/A"}MB |{" "} - HDD: {script.install_methods[0]?.resources.hdd || "N/A"}GB +
+

+ {truncateDescription(script.description || "No description available.")} +

+
+ CPU: {script.install_methods[0]?.resources.cpu || "N/A"}vCPU |{" "} + RAM: {script.install_methods[0]?.resources.ram || "N/A"}MB |{" "} + HDD: {script.install_methods[0]?.resources.hdd || "N/A"}GB +
@@ -120,6 +122,7 @@ const CategoryView = () => { className="cursor-pointer hover:shadow-lg flex flex-col items-center justify-center" > +

{category.name}

{category.scripts && getRandomScripts(category.scripts).map((script, index) => ( @@ -131,7 +134,6 @@ const CategoryView = () => { /> ))}
-

{category.name}

{(category as any).description || "No description available."}

From ce1a38eb50358a94b4f34302848e6e951f319689 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Mon, 27 Jan 2025 13:53:00 +0100 Subject: [PATCH 218/284] Update page.tsx --- frontend/src/app/category-view/page.tsx | 27 +++++++++++++++---------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/frontend/src/app/category-view/page.tsx b/frontend/src/app/category-view/page.tsx index 2d2e198b2..cad896ffb 100644 --- a/frontend/src/app/category-view/page.tsx +++ b/frontend/src/app/category-view/page.tsx @@ -58,17 +58,17 @@ const CategoryView = () => { }; return ( -
+
{categories.length === 0 && (

No categories available. Please check the API endpoint.

)} {selectedCategory ? (
- -

{selectedCategory.name}

-
+

{selectedCategory.name}

+
{selectedCategory.scripts .sort((a, b) => a.name.localeCompare(b.name)) .map((script) => ( @@ -108,29 +108,34 @@ const CategoryView = () => {
) : (
-
-

Categories

+
+

Categories

{categories.reduce((acc, cat) => acc + (cat.scripts?.length || 0), 0)} Total scripts

-
+
{categories.map((category) => ( handleCategoryClick(category)} - className="cursor-pointer hover:shadow-lg flex flex-col items-center justify-center" + className="cursor-pointer hover:shadow-lg flex flex-col items-center justify-center py-6" > -

{category.name}

-
+

{category.name}

+
{category.scripts && getRandomScripts(category.scripts).map((script, index) => ( {script.name { + e.stopPropagation(); // Prevent card click + handleScriptClick(script.slug); + }} + className="h-8 w-8 object-contain cursor-pointer hover:scale-110 transition-transform" /> ))}
From ac25b5a7027dc06faf5c10ca783de3f5e0d9d90b Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Mon, 27 Jan 2025 13:56:09 +0100 Subject: [PATCH 219/284] Update page.tsx --- frontend/src/app/category-view/page.tsx | 94 ++++++++++++++++--------- 1 file changed, 60 insertions(+), 34 deletions(-) diff --git a/frontend/src/app/category-view/page.tsx b/frontend/src/app/category-view/page.tsx index cad896ffb..a6da94196 100644 --- a/frontend/src/app/category-view/page.tsx +++ b/frontend/src/app/category-view/page.tsx @@ -4,15 +4,18 @@ import React, { useEffect, useState } from "react"; import { useRouter } from "next/navigation"; import { Card, CardContent } from "@/components/ui/card"; import { Button } from "@/components/ui/button"; +import { ChevronLeft, ChevronRight } from "lucide-react"; import { Category } from "@/lib/types"; const defaultLogo = "/default-logo.png"; // Fallback logo path const MAX_DESCRIPTION_LENGTH = 100; // Set max length for description +const MAX_LOGOS = 5; // Max logos to display at once const CategoryView = () => { const [categories, setCategories] = useState([]); const [selectedCategory, setSelectedCategory] = useState(null); + const [logoIndex, setLogoIndex] = useState(0); // Keeps track of logo pagination const router = useRouter(); useEffect(() => { @@ -36,10 +39,12 @@ const CategoryView = () => { const handleCategoryClick = (category: Category) => { setSelectedCategory(category); + setLogoIndex(0); // Reset logo pagination when switching categories }; const handleBackClick = () => { setSelectedCategory(null); + setLogoIndex(0); // Reset logo pagination when going back }; const handleScriptClick = (scriptSlug: string) => { @@ -52,9 +57,8 @@ const CategoryView = () => { : text; }; - const getRandomScripts = (scripts: any[]) => { - if (!scripts || scripts.length <= 5) return scripts; - return scripts.sort(() => 0.5 - Math.random()).slice(0, 5); + const getVisibleLogos = (scripts: any[]) => { + return scripts.slice(logoIndex, logoIndex + MAX_LOGOS); }; return ( @@ -78,29 +82,27 @@ const CategoryView = () => { onClick={() => handleScriptClick(script.slug)} > -
-

{script.name}

-

- Created at: {script.date_created || "No date available"} -

-
-
+
{script.name} -
-
-

- {truncateDescription(script.description || "No description available.")} -

-
- CPU: {script.install_methods[0]?.resources.cpu || "N/A"}vCPU |{" "} - RAM: {script.install_methods[0]?.resources.ram || "N/A"}MB |{" "} - HDD: {script.install_methods[0]?.resources.hdd || "N/A"}GB +
+

{script.name}

+

+ Created at: {script.date_created || "No date available"} +

+

+ {truncateDescription(script.description || "No description available.")} +

+
+ CPU: {script.install_methods[0]?.resources.cpu || "N/A"}vCPU |{" "} + RAM: {script.install_methods[0]?.resources.ram || "N/A"}MB |{" "} + HDD: {script.install_methods[0]?.resources.hdd || "N/A"}GB +
))} @@ -123,21 +125,45 @@ const CategoryView = () => { >

{category.name}

-
- {category.scripts && - getRandomScripts(category.scripts).map((script, index) => ( - {script.name { - e.stopPropagation(); // Prevent card click - handleScriptClick(script.slug); - }} - className="h-8 w-8 object-contain cursor-pointer hover:scale-110 transition-transform" - /> - ))} +
+ +
+ {category.scripts && + getVisibleLogos(category.scripts).map((script, index) => ( + {script.name { + e.stopPropagation(); // Prevent card click + handleScriptClick(script.slug); + }} + className="h-8 w-8 object-contain cursor-pointer hover:scale-110 transition-transform" + /> + ))} +
+

{(category as any).description || "No description available."} From 719da560d1d8abbc1eb264e9302795ac45166656 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Mon, 27 Jan 2025 13:59:26 +0100 Subject: [PATCH 220/284] Update page.tsx --- frontend/src/app/category-view/page.tsx | 44 +++++++++++++++++++------ 1 file changed, 34 insertions(+), 10 deletions(-) diff --git a/frontend/src/app/category-view/page.tsx b/frontend/src/app/category-view/page.tsx index a6da94196..031a82712 100644 --- a/frontend/src/app/category-view/page.tsx +++ b/frontend/src/app/category-view/page.tsx @@ -15,7 +15,7 @@ const MAX_LOGOS = 5; // Max logos to display at once const CategoryView = () => { const [categories, setCategories] = useState([]); const [selectedCategory, setSelectedCategory] = useState(null); - const [logoIndex, setLogoIndex] = useState(0); // Keeps track of logo pagination + const [logoIndexes, setLogoIndexes] = useState>({}); // Track logo index for each category const router = useRouter(); useEffect(() => { @@ -29,6 +29,13 @@ const CategoryView = () => { const data = await response.json(); console.log("Fetched categories:", data); // Debugging setCategories(data); + + // Initialize logo indexes for all categories + const initialIndexes = data.reduce((acc: Record, category: Category) => { + acc[category.name] = 0; + return acc; + }, {}); + setLogoIndexes(initialIndexes); } catch (error) { console.error("Error fetching categories:", error); } @@ -39,12 +46,10 @@ const CategoryView = () => { const handleCategoryClick = (category: Category) => { setSelectedCategory(category); - setLogoIndex(0); // Reset logo pagination when switching categories }; const handleBackClick = () => { setSelectedCategory(null); - setLogoIndex(0); // Reset logo pagination when going back }; const handleScriptClick = (scriptSlug: string) => { @@ -57,8 +62,25 @@ const CategoryView = () => { : text; }; - const getVisibleLogos = (scripts: any[]) => { - return scripts.slice(logoIndex, logoIndex + MAX_LOGOS); + const getVisibleLogos = (scripts: any[], categoryName: string) => { + const index = logoIndexes[categoryName] || 0; + return scripts.slice(index, index + MAX_LOGOS); + }; + + const updateLogoIndex = (categoryName: string, direction: "prev" | "next", totalScripts: number) => { + setLogoIndexes((prev) => { + const currentIndex = prev[categoryName] || 0; + if (direction === "prev") { + return { ...prev, [categoryName]: Math.max(0, currentIndex - MAX_LOGOS) }; + } + if (direction === "next") { + return { + ...prev, + [categoryName]: Math.min(currentIndex + MAX_LOGOS, totalScripts - MAX_LOGOS), + }; + } + return prev; + }); }; return ( @@ -129,17 +151,17 @@ const CategoryView = () => {

{category.scripts && - getVisibleLogos(category.scripts).map((script, index) => ( + getVisibleLogos(category.scripts, category.name).map((script, index) => ( { -

{selectedCategory.name}

+ {/* Header with Navigation */} +
+ +

{categories[selectedCategoryIndex].name}

+ +
+ + {/* Scripts Grid */}
- {selectedCategory.scripts + {categories[selectedCategoryIndex].scripts .sort((a, b) => a.name.localeCompare(b.name)) .map((script) => ( {

Created at: {script.date_created || "No date available"}

-

+

{truncateDescription(script.description || "No description available.")}

-
- CPU: {script.install_methods[0]?.resources.cpu || "N/A"}vCPU |{" "} - RAM: {script.install_methods[0]?.resources.ram || "N/A"}MB |{" "} - HDD: {script.install_methods[0]?.resources.hdd || "N/A"}GB -
+ {renderResources(script)} ))}
+ + {/* Back to Categories Button */} +
+ +
) : (
+ {/* Categories Grid */}

Categories

@@ -139,56 +161,14 @@ const CategoryView = () => {

- {categories.map((category) => ( + {categories.map((category, index) => ( handleCategoryClick(category)} + onClick={() => handleCategoryClick(index)} className="cursor-pointer hover:shadow-lg flex flex-col items-center justify-center py-6" >

{category.name}

-
- -
- {category.scripts && - getVisibleLogos(category.scripts, category.name).map((script, index) => ( - {script.name { - e.stopPropagation(); // Prevent card click - handleScriptClick(script.slug); - }} - className="h-8 w-8 object-contain cursor-pointer hover:scale-110 transition-transform" - /> - ))} -
- -

{(category as any).description || "No description available."}

From 43f05b3abadf254377ee070740b2ab8785274abf Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Mon, 27 Jan 2025 14:07:56 +0100 Subject: [PATCH 222/284] Update page.tsx --- frontend/src/app/category-view/page.tsx | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/frontend/src/app/category-view/page.tsx b/frontend/src/app/category-view/page.tsx index 37b70319d..12cfbcfbe 100644 --- a/frontend/src/app/category-view/page.tsx +++ b/frontend/src/app/category-view/page.tsx @@ -67,14 +67,21 @@ const CategoryView = () => { const cpu = script.install_methods[0]?.resources.cpu; const ram = script.install_methods[0]?.resources.ram; const hdd = script.install_methods[0]?.resources.hdd; - + const resourceParts = []; if (cpu) resourceParts.push(CPU: {cpu}vCPU); if (ram) resourceParts.push(RAM: {ram}MB); if (hdd) resourceParts.push(HDD: {hdd}GB); - + return resourceParts.length > 0 ? ( -
{resourceParts.reduce((prev, curr) => [prev, " | ", curr])}
+
+ {resourceParts.map((part, index) => ( + + {part} + {index < resourceParts.length - 1 && " | "} + + ))} +
) : null; }; From 47bf8e6f8622d596f1a289714e37f29adf5763b5 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Mon, 27 Jan 2025 14:13:16 +0100 Subject: [PATCH 223/284] Update page.tsx --- frontend/src/app/category-view/page.tsx | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/frontend/src/app/category-view/page.tsx b/frontend/src/app/category-view/page.tsx index 12cfbcfbe..4797f74a0 100644 --- a/frontend/src/app/category-view/page.tsx +++ b/frontend/src/app/category-view/page.tsx @@ -176,6 +176,22 @@ const CategoryView = () => { >

{category.name}

+
+ {category.scripts && + category.scripts.slice(0, 5).map((script, i) => ( + {script.name { + e.stopPropagation(); // Verhindert Klick auf die Kategorie + handleScriptClick(script.slug); + }} + /> + ))} +

{(category as any).description || "No description available."}

From adfbff63bc56fb35942af314c7e9c3be5197900f Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Mon, 27 Jan 2025 14:15:42 +0100 Subject: [PATCH 224/284] Update page.tsx --- frontend/src/app/category-view/page.tsx | 46 +++++++++++++------------ 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/frontend/src/app/category-view/page.tsx b/frontend/src/app/category-view/page.tsx index 4797f74a0..0b5ffa15f 100644 --- a/frontend/src/app/category-view/page.tsx +++ b/frontend/src/app/category-view/page.tsx @@ -67,12 +67,12 @@ const CategoryView = () => { const cpu = script.install_methods[0]?.resources.cpu; const ram = script.install_methods[0]?.resources.ram; const hdd = script.install_methods[0]?.resources.hdd; - + const resourceParts = []; if (cpu) resourceParts.push(CPU: {cpu}vCPU); if (ram) resourceParts.push(RAM: {ram}MB); if (hdd) resourceParts.push(HDD: {hdd}GB); - + return resourceParts.length > 0 ? (
{resourceParts.map((part, index) => ( @@ -85,6 +85,14 @@ const CategoryView = () => { ) : null; }; + const renderType = (type: string) => { + return ( + + {type.toUpperCase()} + + ); + }; + return (
{categories.length === 0 && ( @@ -122,25 +130,19 @@ const CategoryView = () => { onClick={() => handleScriptClick(script.slug)} > -
- {script.name} -
-

{script.name}

-

- Created at: {script.date_created || "No date available"} -

-

- {truncateDescription(script.description || "No description available.")} -

-
+
+

{script.name}

+ {renderType(script.type || "MISC")}
+

+ Created at: {script.date_created || "No date available"} +

+

+ {truncateDescription(script.description || "No description available.")} +

{renderResources(script)} @@ -162,9 +164,9 @@ const CategoryView = () => {
{/* Categories Grid */}
-

Categories

+

Categories

- {categories.reduce((acc, cat) => acc + (cat.scripts?.length || 0), 0)} Total scripts + {new Set(categories.flatMap((cat) => cat.scripts.map((s) => s.slug))).size} Total scripts

From 8cd3669edbbcc3e6c2355b81db79c168572f8d1a Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Mon, 27 Jan 2025 14:21:10 +0100 Subject: [PATCH 225/284] Update page.tsx --- frontend/src/app/category-view/page.tsx | 93 +++++++++++++++++++------ 1 file changed, 70 insertions(+), 23 deletions(-) diff --git a/frontend/src/app/category-view/page.tsx b/frontend/src/app/category-view/page.tsx index 0b5ffa15f..95b7388fe 100644 --- a/frontend/src/app/category-view/page.tsx +++ b/frontend/src/app/category-view/page.tsx @@ -4,6 +4,7 @@ import React, { useEffect, useState } from "react"; import { useRouter } from "next/navigation"; import { Card, CardContent } from "@/components/ui/card"; import { Button } from "@/components/ui/button"; +import { Badge } from "@/components/ui/badge"; import { ChevronLeft, ChevronRight } from "lucide-react"; import { Category } from "@/lib/types"; @@ -11,9 +12,24 @@ const defaultLogo = "/default-logo.png"; // Fallback logo path const MAX_DESCRIPTION_LENGTH = 100; // Set max length for description const MAX_LOGOS = 5; // Max logos to display at once +const formattedBadge = (type: string) => { + switch (type) { + case "vm": + return VM; + case "ct": + return ( + LXC + ); + case "misc": + return MISC; + } + return null; +}; + const CategoryView = () => { const [categories, setCategories] = useState([]); const [selectedCategoryIndex, setSelectedCategoryIndex] = useState(null); + const [logoIndices, setLogoIndices] = useState<{ [key: string]: number }>({}); const router = useRouter(); useEffect(() => { @@ -27,6 +43,13 @@ const CategoryView = () => { const data = await response.json(); console.log("Fetched categories:", data); // Debugging setCategories(data); + + // Initialize logo indices + const initialLogoIndices: { [key: string]: number } = {}; + data.forEach((category: any) => { + initialLogoIndices[category.name] = 0; + }); + setLogoIndices(initialLogoIndices); } catch (error) { console.error("Error fetching categories:", error); } @@ -57,6 +80,22 @@ const CategoryView = () => { } }; + const switchLogos = (categoryName: string, direction: "prev" | "next") => { + setLogoIndices((prev) => { + const currentIndex = prev[categoryName] || 0; + const category = categories.find((cat) => cat.name === categoryName); + if (!category || !category.scripts) return prev; + + const totalLogos = category.scripts.length; + const newIndex = + direction === "prev" + ? (currentIndex - MAX_LOGOS + totalLogos) % totalLogos + : (currentIndex + MAX_LOGOS) % totalLogos; + + return { ...prev, [categoryName]: newIndex }; + }); + }; + const truncateDescription = (text: string) => { return text.length > MAX_DESCRIPTION_LENGTH ? `${text.slice(0, MAX_DESCRIPTION_LENGTH)}...` @@ -85,14 +124,6 @@ const CategoryView = () => { ) : null; }; - const renderType = (type: string) => { - return ( - - {type.toUpperCase()} - - ); - }; - return (
{categories.length === 0 && ( @@ -132,7 +163,7 @@ const CategoryView = () => {

{script.name}

- {renderType(script.type || "MISC")} + {formattedBadge(script.type || "misc")}

Created at: {script.date_created || "No date available"} @@ -178,21 +209,37 @@ const CategoryView = () => { >

{category.name}

-
+
+ {category.scripts && - category.scripts.slice(0, 5).map((script, i) => ( - {script.name { - e.stopPropagation(); // Verhindert Klick auf die Kategorie - handleScriptClick(script.slug); - }} - /> - ))} + category.scripts + .slice(logoIndices[category.name] || 0, (logoIndices[category.name] || 0) + MAX_LOGOS) + .map((script, i) => ( + {script.name { + e.stopPropagation(); + handleScriptClick(script.slug); + }} + /> + ))} +

{(category as any).description || "No description available."} From 38a540b87a8040190b7eb36b1a5c327f8f050285 Mon Sep 17 00:00:00 2001 From: GarryG Date: Mon, 27 Jan 2025 15:05:06 +0100 Subject: [PATCH 226/284] Added change of the mobile GUI to disable nag request (#1785) --- misc/post-pmg-install.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/misc/post-pmg-install.sh b/misc/post-pmg-install.sh index d29fbf2a4..c5f4ed302 100644 --- a/misc/post-pmg-install.sh +++ b/misc/post-pmg-install.sh @@ -120,8 +120,11 @@ EOF yes) whiptail --backtitle "Proxmox VE Helper Scripts" --msgbox --title "Support Subscriptions" "Supporting the software's development team is essential. Check their official website's Support Subscriptions for pricing. Without their dedicated work, we wouldn't have this exceptional software." 10 58 msg_info "Disabling subscription nag" + # Normal GUI: echo "DPkg::Post-Invoke { \"dpkg -V proxmox-widget-toolkit | grep -q '/proxmoxlib\.js$'; if [ \$? -eq 1 ]; then { echo 'Removing subscription nag from UI...'; sed -i '/data\.status.*{/{s/\!//;s/active/NoMoreNagging/}' /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js; }; fi\"; };" >/etc/apt/apt.conf.d/no-nag-script - apt --reinstall install proxmox-widget-toolkit &>/dev/null + # JS-Library used when accessing via mobile device browser + echo "DPkg::Post-Invoke { \"dpkg -V pmg-gui | grep -q '/pmgmanagerlib-mobile\.js$'; if [ \$? -eq 1 ]; then { echo 'Removing subscription nag from Mobile UI...'; sed -i '/data\.status.*{/{s/\!//;s/active/NoMoreNagging/}' /usr/share/javascript/pmg-gui/js/pmgmanagerlib-mobile.js; }; fi\"; };" >/etc/apt/apt.conf.d/no-nag-script + apt --reinstall install proxmox-widget-toolkit pmg-gui &>/dev/null msg_ok "Disabled subscription nag (Delete browser cache)" ;; no) From cd86921467aaf90197c148586bbf78ff3123822a Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Mon, 27 Jan 2025 17:32:51 +0100 Subject: [PATCH 227/284] Update page.tsx --- frontend/src/app/category-view/page.tsx | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/frontend/src/app/category-view/page.tsx b/frontend/src/app/category-view/page.tsx index 95b7388fe..6c5845835 100644 --- a/frontend/src/app/category-view/page.tsx +++ b/frontend/src/app/category-view/page.tsx @@ -41,7 +41,6 @@ const CategoryView = () => { throw new Error("Failed to fetch categories"); } const data = await response.json(); - console.log("Fetched categories:", data); // Debugging setCategories(data); // Initialize logo indices @@ -162,7 +161,7 @@ const CategoryView = () => { >

-

{script.name}

+

{script.name}

{formattedBadge(script.type || "misc")}

@@ -197,7 +196,7 @@ const CategoryView = () => {

Categories

- {new Set(categories.flatMap((cat) => cat.scripts.map((s) => s.slug))).size} Total scripts + {categories.reduce((total, category) => total + (category.scripts?.length || 0), 0)} Total scripts

@@ -208,11 +207,14 @@ const CategoryView = () => { className="cursor-pointer hover:shadow-lg flex flex-col items-center justify-center py-6" > -

{category.name}

+

{category.name}

-

{categories[selectedCategoryIndex].name}

+

+ {categories[selectedCategoryIndex].name} +

@@ -160,11 +162,13 @@ const CategoryView = () => { .map((script) => ( handleScriptClick(script.slug)} > -

{script.name}

+

+ {script.name} +

{script.name { Created at: {script.date_created || "No date available"}

{truncateDescription(script.description || "No description available.")} @@ -190,7 +194,7 @@ const CategoryView = () => { @@ -210,10 +214,12 @@ const CategoryView = () => { handleCategoryClick(index)} - className="cursor-pointer hover:shadow-lg flex flex-col items-center justify-center py-6" + className="cursor-pointer hover:shadow-lg flex flex-col items-center justify-center py-6 transition-shadow duration-300" > -

{category.name}

+

+ {category.name} +

@@ -229,17 +235,19 @@ const CategoryView = () => { category.scripts .slice(logoIndices[category.name] || 0, (logoIndices[category.name] || 0) + MAX_LOGOS) .map((script, i) => ( - {script.name { - e.stopPropagation(); - handleScriptClick(script.slug); - }} - /> +
+ {script.name { + e.stopPropagation(); + handleScriptClick(script.slug); + }} + /> + {formattedBadge(script.type)} +
))} From d13c1e57220f08622b1caf80fcc04711a6bd42d5 Mon Sep 17 00:00:00 2001 From: Saif <3879349+nayzm@users.noreply.github.com> Date: Mon, 27 Jan 2025 20:38:02 +0000 Subject: [PATCH 233/284] Increase default var_disk size (#1788) --- ct/alpine-vaultwarden.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ct/alpine-vaultwarden.sh b/ct/alpine-vaultwarden.sh index cafb2e4e8..e3b6c756b 100644 --- a/ct/alpine-vaultwarden.sh +++ b/ct/alpine-vaultwarden.sh @@ -9,7 +9,7 @@ APP="Alpine-Vaultwarden" var_tags="alpine;vault" var_cpu="1" var_ram="256" -var_disk="0.3" +var_disk="0.5" var_os="alpine" var_version="3.20" var_unprivileged="1" From 53c7ab19f82de12ff5b948023028d96e6b6303a1 Mon Sep 17 00:00:00 2001 From: Saif <3879349+nayzm@users.noreply.github.com> Date: Mon, 27 Jan 2025 20:41:15 +0000 Subject: [PATCH 234/284] Update frontend alpine-vaultwarden hdd size and OS version (#1789) * Update alpine-vaultwarden hdd size * Increase version --------- Co-authored-by: CanbiZ <47820557+MickLesk@users.noreply.github.com> --- json/vaultwarden.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/json/vaultwarden.json b/json/vaultwarden.json index 6fa5ac687..58b5cf0dd 100644 --- a/json/vaultwarden.json +++ b/json/vaultwarden.json @@ -31,9 +31,9 @@ "resources": { "cpu": 1, "ram": 256, - "hdd": 0.3, + "hdd": 0.5, "os": "alpine", - "version": "3.19" + "version": "3.20" } } ], From 84b982ffa883f4f82b2f40f062c96f2964a052f4 Mon Sep 17 00:00:00 2001 From: "community-scripts-pr-app[bot]" <189241966+community-scripts-pr-app[bot]@users.noreply.github.com> Date: Mon, 27 Jan 2025 21:42:01 +0100 Subject: [PATCH 235/284] Update CHANGELOG.md (#1790) Co-authored-by: github-actions[bot] --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 97c364c26..b58c26c8f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -27,10 +27,12 @@ Do not break established syntax in this file, as it is automatically updated by ### πŸš€ Updated Scripts +- Increase alpine-vaultwarden default var_disk size [@nayzm](https://github.com/nayzm) ([#1788](https://github.com/community-scripts/ProxmoxVE/pull/1788)) - Added change of the mobile GUI to disable nag request [@GarryG](https://github.com/GarryG) ([#1785](https://github.com/community-scripts/ProxmoxVE/pull/1785)) ### 🌐 Website +- Update frontend alpine-vaultwarden hdd size and OS version [@nayzm](https://github.com/nayzm) ([#1789](https://github.com/community-scripts/ProxmoxVE/pull/1789)) - Website: Add Description for Metadata Categories [@MickLesk](https://github.com/MickLesk) ([#1783](https://github.com/community-scripts/ProxmoxVE/pull/1783)) - [Fix] Double "VM" on website (Arch Linux) [@lasharor](https://github.com/lasharor) ([#1782](https://github.com/community-scripts/ProxmoxVE/pull/1782)) From ff06d417b549357dca517d1f72ed8e6c3cf19dc3 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Tue, 28 Jan 2025 12:07:39 +0100 Subject: [PATCH 236/284] [core]: Remove Figlet | Get Headers by Repo & Store Local (#1802) * [core]: Remove Figlet | Get Headers by Repo & Store Local * change repo --- misc/build.func | 78 +++++++++++++++++-------------------------------- 1 file changed, 27 insertions(+), 51 deletions(-) diff --git a/misc/build.func b/misc/build.func index ef98462fe..38587512a 100644 --- a/misc/build.func +++ b/misc/build.func @@ -233,65 +233,41 @@ update_motd_ip() { fi } -# This function sets the APP-Name into an ASCII Header in Slant, figlet needed on proxmox main node. -header_info() { - # Helper function: Install FIGlet and download fonts - install_figlet() { - echo -e "${INFO}${BOLD}${DGN}Installing FIGlet...${CL}" +# Function to download & save header files +get_header() { + local app_name=$(echo ${APP,,} | tr -d ' ') + local header_url="https://github.com/community-scripts/ProxmoxVE/raw/main/ct/headers/${app_name}" + local local_header_path="/usr/local/community-scripts/headers/${app_name}" - temp_dir=$(mktemp -d) - curl -sL https://github.com/community-scripts/ProxmoxVE/raw/refs/heads/main/misc/figlet.tar.xz -o "$temp_dir/figlet.tar.xz" - mkdir -p /tmp/figlet - tar -xf "$temp_dir/figlet.tar.xz" -C /tmp/figlet --strip-components=1 - cd /tmp/figlet - make >/dev/null + mkdir -p "/usr/local/community-scripts/headers" - if [ -f "figlet" ]; then - chmod +x figlet - mv figlet /usr/local/bin/ - mkdir -p /usr/local/share/figlet - cp -r /tmp/figlet/fonts/*.flf /usr/local/share/figlet/ - echo -e "${CM}${BOLD}${DGN}FIGlet successfully installed.${CL}" - else - echo -e "${ERR}${BOLD}${RED}Failed to install FIGlet.${CL}" + # Check if local file already present + if [ ! -f "$local_header_path" ]; then + wget -qO "$local_header_path" "$header_url" + if [ $? -ne 0 ]; then + echo -e "${WARN}${BOLD}${YLW}Failed to download header for ${app_name}. No header will be displayed.${CL}" return 1 fi - rm -rf "$temp_dir" - } - - # Check if figlet and the slant font are available - if ! figlet -f slant "Test" &>/dev/null; then - echo -e "${INFO}${BOLD}${DGN}FIGlet or the slant font is missing. Installing...${CL}" - - if [ -f /etc/debian_version ] || [ -f /etc/lsb-release ]; then - # Debian/Ubuntu-based systems - apt-get update -y &>/dev/null - apt-get install -y wget build-essential &>/dev/null - install_figlet - - elif [ -f /etc/alpine-release ]; then - # Alpine-based systems - apk add --no-cache tar xz build-base wget &>/dev/null - export TERM=xterm - install_figlet - - else - echo -e "${ERR}${BOLD}${RED}Unsupported operating system.${CL}" - return 1 - fi - - # Ensure the slant font is available - if [ ! -f "/usr/share/figlet/slant.flf" ]; then - echo -e "${INFO}${BOLD}${DGN}Downloading slant font...${CL}" - wget -qO /usr/share/figlet/slant.flf "http://www.figlet.org/fonts/slant.flf" - fi fi + cat "$local_header_path" +} - # Display ASCII header +# This function sets the APP-Name into an ASCII Header in Slant, figlet needed on proxmox main node. +header_info() { + local app_name=$(echo ${APP,,} | tr -d ' ') + local header_content + + # Download & save Header-File locally + header_content=$(get_header "$app_name") + if [ $? -ne 0 ]; then + # Fallback: Doesn't show Header + return 0 + fi + + # Show ASCII-Header term_width=$(tput cols 2>/dev/null || echo 120) - ascii_art=$(figlet -f slant -w "$term_width" "$APP") clear - echo "$ascii_art" + echo "$header_content" } # This function checks if the script is running through SSH and prompts the user to confirm if they want to proceed or exit. From dbb9b6635504cf140a792e7b90a4782cf065ef5f Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Tue, 28 Jan 2025 12:53:41 +0100 Subject: [PATCH 237/284] Update Alpine Packages to 3.21 (#1803) --- ct/alpine-docker.sh | 2 +- ct/alpine-grafana.sh | 2 +- ct/alpine-nextcloud.sh | 2 +- ct/alpine-vaultwarden.sh | 2 +- ct/alpine-zigbee2mqtt.sh | 2 +- ct/alpine.sh | 2 +- json/alpine.json | 2 +- json/docker.json | 2 +- json/grafana.json | 2 +- json/nextcloudpi.json | 2 +- json/vaultwarden.json | 2 +- json/zigbee2mqtt.json | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) diff --git a/ct/alpine-docker.sh b/ct/alpine-docker.sh index 267066b1a..42799442e 100644 --- a/ct/alpine-docker.sh +++ b/ct/alpine-docker.sh @@ -11,7 +11,7 @@ var_cpu="1" var_ram="1024" var_disk="2" var_os="alpine" -var_version="3.20" +var_version="3.21" var_unprivileged="1" # App Output & Base Settings diff --git a/ct/alpine-grafana.sh b/ct/alpine-grafana.sh index 909ade3d6..4c7b7d3f8 100644 --- a/ct/alpine-grafana.sh +++ b/ct/alpine-grafana.sh @@ -11,7 +11,7 @@ var_cpu="1" var_ram="256" var_disk="1" var_os="alpine" -var_version="3.20" +var_version="3.21" var_unprivileged="1" # App Output & Base Settings diff --git a/ct/alpine-nextcloud.sh b/ct/alpine-nextcloud.sh index d41b9e3dc..74e54bb90 100644 --- a/ct/alpine-nextcloud.sh +++ b/ct/alpine-nextcloud.sh @@ -11,7 +11,7 @@ var_cpu="2" var_ram="1024" var_disk="2" var_os="alpine" -var_version="3.20" +var_version="3.21" var_unprivileged="1" # App Output & Base Settings diff --git a/ct/alpine-vaultwarden.sh b/ct/alpine-vaultwarden.sh index e3b6c756b..bd701d4ef 100644 --- a/ct/alpine-vaultwarden.sh +++ b/ct/alpine-vaultwarden.sh @@ -11,7 +11,7 @@ var_cpu="1" var_ram="256" var_disk="0.5" var_os="alpine" -var_version="3.20" +var_version="3.21" var_unprivileged="1" # App Output & Base Settings diff --git a/ct/alpine-zigbee2mqtt.sh b/ct/alpine-zigbee2mqtt.sh index 4760d94a7..9f251b110 100644 --- a/ct/alpine-zigbee2mqtt.sh +++ b/ct/alpine-zigbee2mqtt.sh @@ -11,7 +11,7 @@ var_disk="0.3" var_cpu="1" var_ram="256" var_os="alpine" -var_version="3.20" +var_version="3.21" var_unprivileged="0" # App Output & Base Settings diff --git a/ct/alpine.sh b/ct/alpine.sh index a89e79f2e..2cde457c5 100644 --- a/ct/alpine.sh +++ b/ct/alpine.sh @@ -11,7 +11,7 @@ var_cpu="1" var_ram="512" var_disk="0.1" var_os="alpine" -var_version="3.20" +var_version="3.21" var_unprivileged="1" # App Output & Base Settings diff --git a/json/alpine.json b/json/alpine.json index 327141537..8e68e0a60 100644 --- a/json/alpine.json +++ b/json/alpine.json @@ -22,7 +22,7 @@ "ram": 512, "hdd": 0.1, "os": "alpine", - "version": "3.19" + "version": "3.21" } } ], diff --git a/json/docker.json b/json/docker.json index e782429a8..e9bd5642d 100644 --- a/json/docker.json +++ b/json/docker.json @@ -33,7 +33,7 @@ "ram": 1024, "hdd": 2, "os": "alpine", - "version": "3.19" + "version": "3.21" } } ], diff --git a/json/grafana.json b/json/grafana.json index 1e1515afb..14defad1e 100644 --- a/json/grafana.json +++ b/json/grafana.json @@ -33,7 +33,7 @@ "ram": 256, "hdd": 1, "os": "alpine", - "version": "3.19" + "version": "3.21" } } ], diff --git a/json/nextcloudpi.json b/json/nextcloudpi.json index de63ed1c2..b78becfdc 100644 --- a/json/nextcloudpi.json +++ b/json/nextcloudpi.json @@ -33,7 +33,7 @@ "ram": 1024, "hdd": 2, "os": "alpine", - "version": "3.19" + "version": "3.21" } } ], diff --git a/json/vaultwarden.json b/json/vaultwarden.json index 58b5cf0dd..f7436ef17 100644 --- a/json/vaultwarden.json +++ b/json/vaultwarden.json @@ -33,7 +33,7 @@ "ram": 256, "hdd": 0.5, "os": "alpine", - "version": "3.20" + "version": "3.21" } } ], diff --git a/json/zigbee2mqtt.json b/json/zigbee2mqtt.json index 5a8207d7b..18bc8baa5 100644 --- a/json/zigbee2mqtt.json +++ b/json/zigbee2mqtt.json @@ -33,7 +33,7 @@ "ram": 256, "hdd": 0.3, "os": "alpine", - "version": "3.19" + "version": "3.21" } } ], From 7c297d3dac99101929ee0bc94665b83aae13d1fc Mon Sep 17 00:00:00 2001 From: "community-scripts-pr-app[bot]" <189241966+community-scripts-pr-app[bot]@users.noreply.github.com> Date: Tue, 28 Jan 2025 12:55:18 +0100 Subject: [PATCH 238/284] Update CHANGELOG.md (#1804) Co-authored-by: github-actions[bot] --- CHANGELOG.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b58c26c8f..6a6cfc72e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,18 @@ All LXC instances created using this repository come pre-installed with Midnight Do not break established syntax in this file, as it is automatically updated by a Github Workflow +## 2025-01-28 + +### Changed + +### πŸš€ Updated Scripts + +- Update all Alpine LXC's to 3.21 (Docker, Grafana, Nextcloud, Vaultwarden, Zigbee2Mqtt, Alpine) [@MickLesk](https://github.com/MickLesk) ([#1803](https://github.com/community-scripts/ProxmoxVE/pull/1803)) + +### 🧰 Maintenance + +- [core]: Remove Figlet | Get Headers by Repo & Store Local [@MickLesk](https://github.com/MickLesk) ([#1802](https://github.com/community-scripts/ProxmoxVE/pull/1802)) + ## 2025-01-27 ### Changed From 2b1b517f206962b33e98241d152d2100c5eee3ce Mon Sep 17 00:00:00 2001 From: Michael Casey Date: Tue, 28 Jan 2025 22:04:39 +1000 Subject: [PATCH 239/284] New Script: Pocket ID (#1779) * Add pocket-id scripts * replace whiptail with read * remove git dependency * Add missing sed * fix indentation * remove assert replace after source update --- ct/pocketid.sh | 95 ++++++++++++++++++++++++++ install/pocketid-install.sh | 130 ++++++++++++++++++++++++++++++++++++ json/pocketid.json | 43 ++++++++++++ 3 files changed, 268 insertions(+) create mode 100755 ct/pocketid.sh create mode 100644 install/pocketid-install.sh create mode 100644 json/pocketid.json diff --git a/ct/pocketid.sh b/ct/pocketid.sh new file mode 100755 index 000000000..5e717f6f8 --- /dev/null +++ b/ct/pocketid.sh @@ -0,0 +1,95 @@ +#!/usr/bin/env bash +source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) +# Copyright (c) 2021-2025 community-scripts ORG +# Author: Snarkenfaugister +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE +# Source: https://github.com/stonith404/pocket-id + +# App Default Values +APP="PocketID" +TAGS="identity-provider" +var_cpu="2" +var_ram="2048" +var_disk="4" +var_os="debian" +var_version="12" +var_unprivileged="1" + +# App Output & Base Settings +header_info "$APP" +base_settings + +# Core +variables +color +catch_errors + +function update_script() { + header_info + check_container_storage + check_container_resources + + if [[ ! -d /opt/pocket-id ]]; then + msg_error "No ${APP} Installation Found!" + exit + fi + + RELEASE=$(curl -fsSL https://api.github.com/repos/stonith404/pocket-id/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') + if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then + msg_info "Updating $APP" + + msg_info "Stopping $APP" + systemctl stop pocketid-backend.service + systemctl stop pocketid-frontend.service + systemctl stop caddy.service + msg_ok "Stopped $APP" + + msg_info "Updating $APP to v${RELEASE}" + cd /opt + cp -r /opt/pocket-id/backend/data /opt/data + cp /opt/pocket-id/backend/.env /opt/backend.env + cp /opt/pocket-id/frontend/.env /opt/frontend.env + rm -r /opt/pocket-id + wget -q "https://github.com/stonith404/pocket-id/archive/refs/tags/v${RELEASE}.zip" + unzip -q v${RELEASE}.zip + mv pocket-id-${RELEASE} /opt/pocket-id + mv /opt/data /opt/pocket-id/backend/data + mv /opt/backend.env /opt/pocket-id/backend/.env + mv /opt/frontend.env /opt/pocket-id/frontend/.env + + cd /opt/pocket-id/backend/cmd + go build -o ../pocket-id-backend + cd ../../frontend + npm install + npm run build + msg_ok "Updated $APP to ${RELEASE}" + + msg_info "Starting $APP" + systemctl start pocketid-backend.service + systemctl start pocketid-frontend.service + systemctl start caddy.service + sleep 2 + msg_ok "Started $APP" + + # Cleaning up + msg_info "Cleaning Up" + rm -f /opt/v${RELEASE}.zip + msg_ok "Cleanup Completed" + + echo "${RELEASE}" >/opt/${APP}_version.txt + msg_ok "Update Successful" + else + msg_ok "No update required. ${APP} is already at ${RELEASE}" + fi + exit +} + +start +build_container +description + +msg_ok "Completed Successfully!\n" +echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" +echo -e "${INFO}${YW} Configure your reverse proxy to point to:${BGN} ${IP}:80${CL}" +echo -e "${INFO}${YW} Access it using the following URL:${CL}" +echo -e "${TAB}${GATEWAY}${BGN}https://{PUBLIC_URL}/login/setup${CL}" diff --git a/install/pocketid-install.sh b/install/pocketid-install.sh new file mode 100644 index 000000000..c330ad365 --- /dev/null +++ b/install/pocketid-install.sh @@ -0,0 +1,130 @@ +#!/usr/bin/env bash + +# Copyright (c) 2021-2025 community-scripts ORG +# Author: Snarkenfaugister +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE +# Source: https://github.com/stonith404/pocket-id + +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 \ + sudo \ + mc \ + gpg \ + caddy \ + gcc +msg_ok "Installed Dependencies" + +msg_info "Setting up Node.js Repository" +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_22.x nodistro main" >/etc/apt/sources.list.d/nodesource.list +msg_ok "Set up Node.js Repository" + +msg_info "Installing Node.js" +$STD apt-get update +$STD apt-get install -y nodejs +msg_ok "Installed Node.js" + +msg_info "Installing Golang" +cd /tmp +set +o pipefail +GO_RELEASE=$(curl -s https://go.dev/dl/ | grep -o -m 1 "go.*\linux-amd64.tar.gz") +wget -q https://golang.org/dl/${GO_RELEASE} +tar -xzf ${GO_RELEASE} -C /usr/local +ln -s /usr/local/go/bin/go /usr/bin/go +set -o pipefail +msg_ok "Installed Golang" + +read -r -p "What public URL do you want to use (e.g. pocketid.mydomain.com)? " public_url +msg_info "Setup Pocket ID" +cd /opt +RELEASE=$(curl -s https://api.github.com/repos/stonith404/pocket-id/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') +wget -q "https://github.com/stonith404/pocket-id/archive/refs/tags/v${RELEASE}.zip" +unzip -q v${RELEASE}.zip +mv pocket-id-${RELEASE}/ /opt/pocket-id + +cd /opt/pocket-id/backend +cp .env.example .env +sed -i "s/PUBLIC_APP_URL=http:\/\/localhost/PUBLIC_APP_URL=https:\/\/${public_url}/" .env +cd cmd +CGO_ENABLED=1 +GOOS=linux +$STD go build -o ../pocket-id-backend + +cd ../../frontend +cp .env.example .env +sed -i "s/PUBLIC_APP_URL=http:\/\/localhost/PUBLIC_APP_URL=https:\/\/${public_url}/" .env +$STD npm install +$STD npm run build + +cd .. +cp reverse-proxy/Caddyfile /etc/caddy/Caddyfile +echo "${RELEASE}" >/opt/${APPLICATION}_version.txt +msg_ok "Setup Pocket ID" + +msg_info "Creating Service" +cat </etc/systemd/system/pocketid-backend.service +[Unit] +Description=Pocket ID Backend +After=network.target + +[Service] +Type=simple +User=root +Group=root +WorkingDirectory=/opt/pocket-id/backend +EnvironmentFile=/opt/pocket-id/backend/.env +ExecStart=/opt/pocket-id/backend/pocket-id-backend +Restart=always +RestartSec=10 + +[Install] +WantedBy=multi-user.target +EOF + +cat </etc/systemd/system/pocketid-frontend.service +[Unit] +Description=Pocket ID Frontend +After=network.target + +[Service] +Type=simple +User=root +Group=root +WorkingDirectory=/opt/pocket-id/frontend +EnvironmentFile=/opt/pocket-id/frontend/.env +ExecStart=/usr/bin/node build/index.js +Restart=always +RestartSec=10 + +[Install] +WantedBy=multi-user.target +EOF +msg_ok "Created Service" + +msg_info "Starting Services" +systemctl enable -q --now pocketid-backend +systemctl enable -q --now pocketid-frontend +systemctl restart caddy +msg_ok "Started Services" + +motd_ssh +customize + +msg_info "Cleaning up" +rm -f /opt/v${RELEASE}.zip +$STD apt-get -y autoremove +$STD apt-get -y autoclean +msg_ok "Cleaned" + +motd_ssh +customize diff --git a/json/pocketid.json b/json/pocketid.json new file mode 100644 index 000000000..a10f0cba8 --- /dev/null +++ b/json/pocketid.json @@ -0,0 +1,43 @@ +{ + "name": "Pocket ID", + "slug": "pocketid", + "categories": [ + 6 + ], + "date_created": "2025-01-27", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 80, + "documentation": "https://stonith404.github.io/pocket-id/introduction", + "website": "https://github.com/stonith404/pocket-id", + "logo": "https://github.com/stonith404/pocket-id/blob/main/docs/static/img/pocket-id.png", + "description": "Pocket ID is a simple OIDC provider that allows users to authenticate with their passkeys to your services.", + "install_methods": [ + { + "type": "default", + "script": "ct/pocketid.sh", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 4, + "os": "Debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "Pocket ID requires https to work.", + "type": "warning" + }, + { + "text": "Configuration Path: `/opt/pocket-id/backend/.env`, `/opt/pocket-id/frontend/.env`.", + "type": "info" + } + ] +} From 9435b9d0461ec4d6527c3dde485c222f176dceb4 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Tue, 28 Jan 2025 13:07:25 +0100 Subject: [PATCH 240/284] Update pocketid.json --- json/pocketid.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/json/pocketid.json b/json/pocketid.json index a10f0cba8..8278073d2 100644 --- a/json/pocketid.json +++ b/json/pocketid.json @@ -11,7 +11,7 @@ "interface_port": 80, "documentation": "https://stonith404.github.io/pocket-id/introduction", "website": "https://github.com/stonith404/pocket-id", - "logo": "https://github.com/stonith404/pocket-id/blob/main/docs/static/img/pocket-id.png", + "logo": "https://raw.githubusercontent.com/stonith404/pocket-id/refs/heads/main/docs/static/img/pocket-id.png", "description": "Pocket ID is a simple OIDC provider that allows users to authenticate with their passkeys to your services.", "install_methods": [ { From 7dc446c8acd67b6afc827903b7f979364d33dc89 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Tue, 28 Jan 2025 13:10:03 +0100 Subject: [PATCH 241/284] Update auto-update-app-headers.yml --- .github/workflows/auto-update-app-headers.yml | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/.github/workflows/auto-update-app-headers.yml b/.github/workflows/auto-update-app-headers.yml index dfa34200a..0a62c2dd5 100644 --- a/.github/workflows/auto-update-app-headers.yml +++ b/.github/workflows/auto-update-app-headers.yml @@ -45,28 +45,26 @@ jobs: # Step 6: Check if there are any changes - name: Check if there are any changes - id: verify-diff run: | echo "Checking for changes..." + git add -A # Untracked Dateien aufnehmen git status - if git diff --quiet; then + if git diff --cached --quiet; then echo "No changes detected." - echo "changed=false" >> $GITHUB_OUTPUT + echo "changed=false" >> "$GITHUB_ENV" else echo "Changes detected:" - git diff --stat - echo "changed=true" >> $GITHUB_OUTPUT + git diff --stat --cached + echo "changed=true" >> "$GITHUB_ENV" fi - # Step 7: Commit changes (if any) and create a PR + # Step 7: Commit and create PR if changes exist - name: Commit and create PR if changes exist - if: steps.verify-diff.outputs.changed == 'true' + if: env.changed == 'true' run: | - git add -A git commit -m "Update .app files" git checkout -b pr-update-app-files git push origin pr-update-app-files --force - gh pr create --title "[core] update .app files" \ --body "This PR is auto-generated by a GitHub Action to update the .app files." \ --head pr-update-app-files \ @@ -77,6 +75,5 @@ jobs: # Step 8: Output success message when no changes - name: No changes detected - if: steps.verify-diff.outputs.changed == 'false' + if: env.changed == 'false' run: echo "No changes to commit. Workflow completed successfully." - From 67b80306a10b277253fd84d9b98cd520d4c21aed Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 28 Jan 2025 13:10:54 +0100 Subject: [PATCH 242/284] Update .app files (#1808) Co-authored-by: GitHub Actions --- ct/headers/pocketid | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 ct/headers/pocketid diff --git a/ct/headers/pocketid b/ct/headers/pocketid new file mode 100644 index 000000000..a1540eff0 --- /dev/null +++ b/ct/headers/pocketid @@ -0,0 +1,6 @@ + ____ __ __ ________ + / __ \____ _____/ /_____ / /_/ _/ __ \ + / /_/ / __ \/ ___/ //_/ _ \/ __// // / / / + / ____/ /_/ / /__/ ,< / __/ /__/ // /_/ / +/_/ \____/\___/_/|_|\___/\__/___/_____/ + From 901db73d7830b8e1a0bab3ddddf6b876fa98de66 Mon Sep 17 00:00:00 2001 From: Michel Roegl-Brunner <73236783+michelroegl-brunner@users.noreply.github.com> Date: Tue, 28 Jan 2025 13:46:41 +0100 Subject: [PATCH 243/284] Update AppName.md: Make it clear where to change the URLs (#1809) --- .github/CONTRIBUTOR_GUIDE/ct/AppName.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/CONTRIBUTOR_GUIDE/ct/AppName.md b/.github/CONTRIBUTOR_GUIDE/ct/AppName.md index 20d28d869..96d7add38 100644 --- a/.github/CONTRIBUTOR_GUIDE/ct/AppName.md +++ b/.github/CONTRIBUTOR_GUIDE/ct/AppName.md @@ -40,8 +40,8 @@ - Import the build.func file. - When developing your own script, change the URL to your own repository. -> [!CAUTION] -> Before opening a Pull Request, change the URL to point to the community-scripts repo. +> [!IMPORTANT] +> You also need to change all apperances of this URL in `misc/build.func` and `misc/install.func` Example for development: @@ -55,6 +55,9 @@ Final script: source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) ``` +> [!CAUTION] +> Before opening a Pull Request, change the URLs to point to the community-scripts repo. + ### 1.3 **Metadata** - Add clear comments for script metadata, including author, copyright, and license information. From f903cfd97a54e643227824e0f0f150c24a6e2455 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Tue, 28 Jan 2025 13:49:53 +0100 Subject: [PATCH 244/284] [Standardization] Fix Spelling for "Setup Python3" (#1810) --- install/bazarr-install.sh | 4 ++-- install/changedetection-install.sh | 4 ++-- install/deluge-install.sh | 4 ++-- install/esphome-install.sh | 4 ++-- install/frigate-install.sh | 4 ++-- install/homeassistant-core-install.sh | 2 +- install/homeassistant-install.sh | 4 ++-- install/motioneye-install.sh | 4 ++-- install/mylar3-install.sh | 4 ++-- install/octoprint-install.sh | 4 ++-- install/sabnzbd-install.sh | 4 ++-- install/tandoor-install.sh | 4 ++-- install/tautulli-install.sh | 4 ++-- install/whoogle-install.sh | 4 ++-- 14 files changed, 27 insertions(+), 27 deletions(-) diff --git a/install/bazarr-install.sh b/install/bazarr-install.sh index 94cb09256..e7ee817a0 100755 --- a/install/bazarr-install.sh +++ b/install/bazarr-install.sh @@ -19,13 +19,13 @@ $STD apt-get install -y sudo $STD apt-get install -y mc msg_ok "Installed Dependencies" -msg_info "Updating Python3" +msg_info "Setup Python3" $STD apt-get install -y \ python3 \ python3-dev \ python3-pip rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED -msg_ok "Updated Python3" +msg_ok "Setup Python3" msg_info "Installing Bazarr" mkdir -p /var/lib/bazarr/ diff --git a/install/changedetection-install.sh b/install/changedetection-install.sh index 99aa077c7..001c94040 100644 --- a/install/changedetection-install.sh +++ b/install/changedetection-install.sh @@ -47,13 +47,13 @@ $STD apt-get install -y \ gnupg msg_ok "Installed Dependencies" -msg_info "Updating Python3" +msg_info "Setup Python3" $STD apt-get install -y \ python3 \ python3-dev \ python3-pip rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED -msg_ok "Updated Python3" +msg_ok "Setup Python3" msg_info "Setting up Node.js Repository" mkdir -p /etc/apt/keyrings diff --git a/install/deluge-install.sh b/install/deluge-install.sh index 5a83ccb6e..fcb55dafe 100644 --- a/install/deluge-install.sh +++ b/install/deluge-install.sh @@ -20,13 +20,13 @@ $STD apt-get install -y mc $STD apt-get install -y python3-libtorrent msg_ok "Installed Dependencies" -msg_info "Updating Python3" +msg_info "Setup Python3" $STD apt-get install -y \ python3 \ python3-dev \ python3-pip rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED -msg_ok "Updated Python3" +msg_ok "Setup Python3" msg_info "Installing Deluge" $STD pip install deluge[all] diff --git a/install/esphome-install.sh b/install/esphome-install.sh index 91295ed83..4c2c8bdf4 100644 --- a/install/esphome-install.sh +++ b/install/esphome-install.sh @@ -20,14 +20,14 @@ $STD apt-get install -y mc $STD apt-get install -y git msg_ok "Installed Dependencies" -msg_info "Updating Python3" +msg_info "Setup Python3" $STD apt-get install -y \ python3 \ python3-dev \ python3-pip \ python3-venv rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED -msg_ok "Updated Python3" +msg_ok "Setup Python3" msg_info "Installing ESPHome" mkdir /root/config diff --git a/install/frigate-install.sh b/install/frigate-install.sh index c42814e57..5023324f2 100644 --- a/install/frigate-install.sh +++ b/install/frigate-install.sh @@ -18,10 +18,10 @@ msg_info "Installing Dependencies (Patience)" $STD apt-get install -y {curl,sudo,mc,git,gpg,ca-certificates,automake,build-essential,xz-utils,libtool,ccache,pkg-config,libgtk-3-dev,libavcodec-dev,libavformat-dev,libswscale-dev,libv4l-dev,libxvidcore-dev,libx264-dev,libjpeg-dev,libpng-dev,libtiff-dev,gfortran,openexr,libatlas-base-dev,libssl-dev,libtbb2,libtbb-dev,libdc1394-22-dev,libopenexr-dev,libgstreamer-plugins-base1.0-dev,libgstreamer1.0-dev,gcc,gfortran,libopenblas-dev,liblapack-dev,libusb-1.0-0-dev,jq,moreutils} msg_ok "Installed Dependencies" -msg_info "Installing Python3 Dependencies" +msg_info "Setup Python3" $STD apt-get install -y {python3,python3-dev,python3-setuptools,python3-distutils,python3-pip} $STD pip install --upgrade pip -msg_ok "Installed Python3 Dependencies" +msg_ok "Setup Python3" msg_info "Installing Node.js" mkdir -p /etc/apt/keyrings diff --git a/install/homeassistant-core-install.sh b/install/homeassistant-core-install.sh index 5c27c4aee..8e05252cd 100644 --- a/install/homeassistant-core-install.sh +++ b/install/homeassistant-core-install.sh @@ -49,7 +49,7 @@ $STD apt-get install -y \ pkg-config msg_ok "Installed Dependencies" -msg_info "Setup Python3/pip" +msg_info "Setup Python3" $STD apt-get update $STD rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED $STD apt-get remove --purge -y python3.12 python3.12-dev python3.12-venv diff --git a/install/homeassistant-install.sh b/install/homeassistant-install.sh index e0cfd3e17..02b612597 100644 --- a/install/homeassistant-install.sh +++ b/install/homeassistant-install.sh @@ -19,14 +19,14 @@ $STD apt-get install -y sudo $STD apt-get install -y mc msg_ok "Installed Dependencies" -msg_info "Updating Python3" +msg_info "Setup Python3" $STD apt-get install -y \ python3 \ python3-dev \ python3-pip \ python3-venv rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED -msg_ok "Updated Python3" +msg_ok "Setup Python3" msg_info "Installing runlike" $STD pip install runlike diff --git a/install/motioneye-install.sh b/install/motioneye-install.sh index 71d0c8215..58284becb 100644 --- a/install/motioneye-install.sh +++ b/install/motioneye-install.sh @@ -21,13 +21,13 @@ $STD apt-get install -y git $STD apt-get install -y cifs-utils msg_ok "Installed Dependencies" -msg_info "Updating Python3" +msg_info "Setup Python3" $STD apt-get install -y \ python3 \ python3-dev \ python3-pip rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED -msg_ok "Updated Python3" +msg_ok "Setup Python3" msg_info "Installing Motion" $STD apt-get install -y motion diff --git a/install/mylar3-install.sh b/install/mylar3-install.sh index ac0033ff3..f795decc8 100644 --- a/install/mylar3-install.sh +++ b/install/mylar3-install.sh @@ -26,11 +26,11 @@ $STD apt-get install -y unrar rm /etc/apt/sources.list.d/non-free.list msg_ok "Installed Dependencies" -msg_info "Updating Python3" +msg_info "Setup Python3" $STD apt-get install -y python3-pip rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED $STD pip install -U --no-cache-dir pip -msg_ok "Updated Python3" +msg_ok "Setup Python3" msg_info "Installing ${APPLICATION}" mkdir -p /opt/mylar3 diff --git a/install/octoprint-install.sh b/install/octoprint-install.sh index d1091ac9b..2ff3bdd46 100644 --- a/install/octoprint-install.sh +++ b/install/octoprint-install.sh @@ -22,7 +22,7 @@ $STD apt-get install -y libyaml-dev $STD apt-get install -y build-essential msg_ok "Installed Dependencies" -msg_info "Updating Python3" +msg_info "Setup Python3" $STD apt-get install -y \ python3 \ python3-dev \ @@ -31,7 +31,7 @@ $STD apt-get install -y \ $STD apt-get install -y python3-setuptools rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED -msg_ok "Updated Python3" +msg_ok "Setup Python3" msg_info "Creating user octoprint" useradd -m -s /bin/bash -p $(openssl passwd -1 octoprint) octoprint diff --git a/install/sabnzbd-install.sh b/install/sabnzbd-install.sh index 94a0a0aff..5aca30d50 100644 --- a/install/sabnzbd-install.sh +++ b/install/sabnzbd-install.sh @@ -27,13 +27,13 @@ $STD apt-get install -y unrar rm /etc/apt/sources.list.d/non-free.list msg_ok "Installed Dependencies" -msg_info "Updating Python3" +msg_info "Setup Python3" $STD apt-get install -y \ python3-dev \ python3-pip $STD apt-get install -y python3-setuptools rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED -msg_ok "Updated Python3" +msg_ok "Setup Python3" msg_info "Installing SABnzbd" RELEASE=$(curl -s https://api.github.com/repos/sabnzbd/sabnzbd/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }') diff --git a/install/tandoor-install.sh b/install/tandoor-install.sh index 779b14e94..581f8c38b 100644 --- a/install/tandoor-install.sh +++ b/install/tandoor-install.sh @@ -32,14 +32,14 @@ $STD apt-get install -y --no-install-recommends \ mc msg_ok "Installed Dependencies" -msg_info "Updating Python3" +msg_info "Setup Python3" $STD apt-get install -y \ python3 \ python3-dev \ python3-setuptools \ python3-pip rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED -msg_ok "Updated Python3" +msg_ok "Setup Python3" msg_info "Setting up Node.js Repository" mkdir -p /etc/apt/keyrings diff --git a/install/tautulli-install.sh b/install/tautulli-install.sh index 87bc14eeb..42ad4dccf 100644 --- a/install/tautulli-install.sh +++ b/install/tautulli-install.sh @@ -21,13 +21,13 @@ $STD apt-get install -y git $STD apt-get install -y pip msg_ok "Installed Dependencies" -msg_info "Updating Python3" +msg_info "Setup Python3" $STD apt-get install -y \ python3 \ python3-dev \ python3-pip rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED -msg_ok "Updated Python3" +msg_ok "Setup Python3" msg_info "Installing Tautulli" cd /opt diff --git a/install/whoogle-install.sh b/install/whoogle-install.sh index 00121f1c5..64886a111 100644 --- a/install/whoogle-install.sh +++ b/install/whoogle-install.sh @@ -19,13 +19,13 @@ $STD apt-get install -y sudo $STD apt-get install -y mc msg_ok "Installed Dependencies" -msg_info "Updating Python3" +msg_info "Setup Python3" $STD apt-get install -y \ python3 \ python3-dev \ python3-pip rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED -msg_ok "Updated Python3" +msg_ok "Setup Python3" msg_info "Installing Whoogle" $STD pip install brotli From 3be68248440c266f85c1224a6a223f376c6ef183 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Tue, 28 Jan 2025 14:31:20 +0100 Subject: [PATCH 245/284] New Script: NodeBB (#1811) --- ct/nodebb.sh | 63 +++++++++++++++ install/nodebb-install.sh | 164 ++++++++++++++++++++++++++++++++++++++ json/nodebb.json | 40 ++++++++++ 3 files changed, 267 insertions(+) create mode 100644 ct/nodebb.sh create mode 100644 install/nodebb-install.sh create mode 100644 json/nodebb.json diff --git a/ct/nodebb.sh b/ct/nodebb.sh new file mode 100644 index 000000000..a327a02b8 --- /dev/null +++ b/ct/nodebb.sh @@ -0,0 +1,63 @@ +#!/usr/bin/env bash +source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) +# Copyright (c) 2021-2025 community-scripts ORG +# Author: MickLesk (Canbiz) +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE + +# App Default Values +APP="NodeBB" +var_tags="forum" +var_disk="10" +var_cpu="4" +var_ram="2048" +var_os="ubuntu" +var_version="24.04" +var_unprivileged="1" + +# App Output & Base Settings +header_info "$APP" + +# Core +variables +color +catch_errors + +function update_script() { + header_info + check_container_storage + check_container_resources + if [[ ! -d /opt/nodebb ]]; then + msg_error "No ${APP} Installation Found!" + exit + fi + + RELEASE=$(curl -s https://api.github.com/repos/NodeBB/NodeBB/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') + if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then + msg_info "Stopping ${APP}" + systemctl stop nodebb + msg_ok "Stopped ${APP}" + + msg_info "Updating ${APP} to v${RELEASE}" + cd /opt/nodebb + ./nodebb upgrade >/dev/null 2>&1 + echo "${RELEASE}" >/opt/${APP}_version.txt + msg_ok "Updated ${APP} to v${RELEASE}" + + msg_info "Starting ${APP}" + systemctl start nodebb + msg_ok "Started ${APP}" + msg_ok "Updated Successfully" + else + msg_ok "No update required. ${APP} is already at v${RELEASE}." + fi + exit +} + +start +build_container +description + +msg_ok "Completed Successfully!\n" +echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" +echo -e "${INFO}${YW} Access it using the following URL:${CL}" +echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:4567${CL}" diff --git a/install/nodebb-install.sh b/install/nodebb-install.sh new file mode 100644 index 000000000..a7a5008e1 --- /dev/null +++ b/install/nodebb-install.sh @@ -0,0 +1,164 @@ +#!/usr/bin/env bash + +# Copyright (c) 2021-2024 tteck +# Author: MickLesk (Canbiz) +# License: MIT | https://github.com/tteck/Proxmox/raw/main/LICENSE +# Source: https://github.com/NodeBB/NodeBB + +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 \ + build-essential \ + curl \ + sudo \ + make \ + redis-server \ + expect \ + gnupg \ + ca-certificates \ + mc +msg_ok "Installed Dependencies" + +msg_info "Setting up Node.js & MongoDB Repository" +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_22.x nodistro main" >/etc/apt/sources.list.d/nodesource.list + +curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | gpg --dearmor -o /etc/apt/keyrings/mongodb-server-8.0.gpg +echo "deb [arch=amd64,arm64 signed-by=/etc/apt/keyrings/mongodb-server-8.0.gpg] https://repo.mongodb.org/apt/ubuntu noble/mongodb-org/8.0 multiverse" > /etc/apt/sources.list.d/mongodb-org-8.0.list +$STD apt-get update +msg_ok "Set up Repositories" + +msg_info "Installing Node.js" +$STD apt-get install -y nodejs +msg_ok "Installed Node.js" + +msg_info "Installing MongoDB" +$STD apt-get install -y mongodb-org +systemctl enable -q --now mongod +sleep 10 # MongoDB needs some secounds to start, if not sleep it collide with following mongosh +msg_ok "Installed MongoDB" + +msg_info "Configure MongoDB" +MONGO_ADMIN_USER="admin" +MONGO_ADMIN_PWD="$(openssl rand -base64 18 | cut -c1-13)" +NODEBB_USER="nodebb" +NODEBB_PWD="$(openssl rand -base64 18 | cut -c1-13)" +MONGO_CONNECTION_STRING="mongodb://${NODEBB_USER}:${NODEBB_PWD}@localhost:27017/nodebb" +NODEBB_SECRET=$(uuidgen) +{ + echo "NodeBB-Credentials" + echo "Mongo Database User: $MONGO_ADMIN_USER" + echo "Mongo Database Password: $MONGO_ADMIN_PWD" + echo "NodeBB User: $NODEBB_USER" + echo "NodeBB Password: $NODEBB_PWD" + echo "NodeBB Secret: $NODEBB_SECRET" +} >> ~/nodebb.creds + +$STD mongosh <> /etc/mongod.conf' +systemctl restart mongod +msg_ok "MongoDB successfully configurated" + +msg_info "Install NodeBB" +cd /opt +RELEASE=$(curl -s https://api.github.com/repos/NodeBB/NodeBB/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') +wget -q "https://github.com/NodeBB/NodeBB/archive/refs/tags/v${RELEASE}.zip" +unzip -q v${RELEASE}.zip +mv NodeBB-${RELEASE} /opt/nodebb +cd /opt/nodebb +touch pidfile +expect < /dev/null 2>&1 +log_file /dev/null +set timeout -1 + +spawn ./nodebb setup +expect "URL used to access this NodeBB" { + send "http://localhost:4567\r" +} +expect "Please enter a NodeBB secret" { + send "$NODEBB_SECRET\r" +} +expect "Would you like to submit anonymous plugin usage to nbbpm? (yes)" { + send "no\r" +} +expect "Which database to use (mongo)" { + send "mongo\r" +} +expect "Format: mongodb://*" { + send "$MONGO_CONNECTION_STRING\r" +} +expect "Administrator username" { + send "helper-scripts\r" +} +expect "Administrator email address" { + send "helper-scripts@local.com\r" +} +expect "Password" { + send "helper-scripts\r" +} +expect "Confirm Password" { + send "helper-scripts\r" +} +expect eof +EOF +echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt" +msg_ok "Installed NodeBB" + +msg_info "Creating Services" +cat </etc/systemd/system/nodebb.service +[Unit] +Description=NodeBB +Documentation=https://docs.nodebb.org +After=system.slice multi-user.target mongod.service + +[Service] +Type=forking +User=root + +WorkingDirectory=/opt/nodebb +PIDFile=/opt/nodebb/pidfile +ExecStart=/usr/bin/node /opt/nodebb/loader.js +Restart=always + +[Install] +WantedBy=multi-user.target +EOF +systemctl enable -q --now nodebb +msg_ok "Created Service" + +motd_ssh +customize + +msg_info "Cleaning up" +rm -R /opt/v${RELEASE}.zip +$STD apt-get -y autoremove +$STD apt-get -y autoclean +msg_ok "Cleaned" \ No newline at end of file diff --git a/json/nodebb.json b/json/nodebb.json new file mode 100644 index 000000000..85b8c1294 --- /dev/null +++ b/json/nodebb.json @@ -0,0 +1,40 @@ +{ + "name": "NodeBB", + "slug": "nodebb", + "categories": [ + 10, + 25 + ], + "date_created": "2025-01-28", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 4567, + "documentation": "https://docs.nodebb.org/", + "website": "https://nodebb.org/", + "logo": "https://raw.githubusercontent.com/NodeBB/NodeBB/refs/heads/master/public/logo.png", + "description": "NodeBB Forum Software is powered by Node.js and supports either Redis, MongoDB, or a PostgreSQL database. It utilizes web sockets for instant interactions and real-time notifications. NodeBB takes the best of the modern web: real-time streaming discussions, mobile responsiveness, and rich RESTful read/write APIs, while staying true to the original bulletin board/forum format β†’ categorical hierarchies, local user accounts, and asynchronous messaging.", + "install_methods": [ + { + "type": "default", + "script": "ct/nodebb.sh", + "resources": { + "cpu": 4, + "ram": 2048, + "hdd": 10, + "os": "Ubuntu", + "version": "24.04" + } + } + ], + "default_credentials": { + "username": "helper-scripts", + "password": "helper-scripts" + }, + "notes": [ + { + "text": "Only use Ubuntu 24.04!", + "type": "warning" + } + ] +} \ No newline at end of file From 690d6d42d46af8d5f27b1540023fa1a550c18651 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 28 Jan 2025 14:35:14 +0100 Subject: [PATCH 246/284] Update .app files (#1814) Co-authored-by: GitHub Actions --- ct/headers/nodebb | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 ct/headers/nodebb diff --git a/ct/headers/nodebb b/ct/headers/nodebb new file mode 100644 index 000000000..0ca632d82 --- /dev/null +++ b/ct/headers/nodebb @@ -0,0 +1,6 @@ + _ __ __ ____ ____ + / | / /___ ____/ /__ / __ )/ __ ) + / |/ / __ \/ __ / _ \/ __ / __ | + / /| / /_/ / /_/ / __/ /_/ / /_/ / +/_/ |_/\____/\__,_/\___/_____/_____/ + From 31473b21706bde2bf381fc0d698c3bee4ac413e7 Mon Sep 17 00:00:00 2001 From: "community-scripts-pr-app[bot]" <189241966+community-scripts-pr-app[bot]@users.noreply.github.com> Date: Tue, 28 Jan 2025 14:35:58 +0100 Subject: [PATCH 247/284] Update CHANGELOG.md (#1807) Co-authored-by: github-actions[bot] --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6a6cfc72e..c1b902f78 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,12 +21,19 @@ Do not break established syntax in this file, as it is automatically updated by ### Changed +### ✨ New Scripts + +- New Script: NodeBB [@MickLesk](https://github.com/MickLesk) ([#1811](https://github.com/community-scripts/ProxmoxVE/pull/1811)) +- New Script: Pocket ID [@Snarkenfaugister](https://github.com/Snarkenfaugister) ([#1779](https://github.com/community-scripts/ProxmoxVE/pull/1779)) + ### πŸš€ Updated Scripts +- [Standardization] Fix Spelling for "Setup Python3" [@MickLesk](https://github.com/MickLesk) ([#1810](https://github.com/community-scripts/ProxmoxVE/pull/1810)) - Update all Alpine LXC's to 3.21 (Docker, Grafana, Nextcloud, Vaultwarden, Zigbee2Mqtt, Alpine) [@MickLesk](https://github.com/MickLesk) ([#1803](https://github.com/community-scripts/ProxmoxVE/pull/1803)) ### 🧰 Maintenance +- [docs] Update AppName.md: Make it clear where to change the URLs [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1809](https://github.com/community-scripts/ProxmoxVE/pull/1809)) - [core]: Remove Figlet | Get Headers by Repo & Store Local [@MickLesk](https://github.com/MickLesk) ([#1802](https://github.com/community-scripts/ProxmoxVE/pull/1802)) ## 2025-01-27 From b70cd007642618d4b45f7801090879400857a95a Mon Sep 17 00:00:00 2001 From: bvdberg01 <74251551+bvdberg01@users.noreply.github.com> Date: Tue, 28 Jan 2025 15:04:52 +0100 Subject: [PATCH 248/284] New script: Monica LXC (#1813) * New script: Monica LXC * Update monica.json --- ct/monica.sh | 81 +++++++++++++++++++++++++++++ install/monica-install.sh | 104 ++++++++++++++++++++++++++++++++++++++ json/monica.json | 34 +++++++++++++ 3 files changed, 219 insertions(+) create mode 100644 ct/monica.sh create mode 100644 install/monica-install.sh create mode 100644 json/monica.json diff --git a/ct/monica.sh b/ct/monica.sh new file mode 100644 index 000000000..cb9785875 --- /dev/null +++ b/ct/monica.sh @@ -0,0 +1,81 @@ +#!/usr/bin/env bash +source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) +# Copyright (c) 2021-2025 community-scripts ORG +# Author: bvdberg01 +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE +# Source: https://www.monicahq.com/ + +# App Default Values +APP="Monica" +var_tags="network" +var_cpu="2" +var_ram="2048" +var_disk="8" +var_os="debian" +var_version="12" +var_unprivileged="1" + +# App Output & Base Settings +header_info "$APP" +base_settings + +# Core +variables +color +catch_errors + +function update_script() { + header_info + check_container_storage + check_container_resources + if [[ ! -d /opt/monica ]]; then + msg_error "No ${APP} Installation Found!" + exit + fi + RELEASE=$(curl -s https://api.github.com/repos/monicahq/monica/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') + if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then + msg_info "Stopping Service" + systemctl stop apache2 + msg_ok "Stopped Service" + + msg_info "Updating ${APP} to v${RELEASE}" + cd /opt + mv /opt/monica/ /opt/monica-backup + wget -q "https://github.com/monicahq/monica/releases/download/v${RELEASE}/monica-v${RELEASE}.tar.bz2" + tar -xjf "monica-v${RELEASE}.tar.bz2" + mv "/opt/monica-v${RELEASE}" /opt/monica + cd /opt/monica/ + cp -r /opt/monica-backup/.env /opt/monica + cp -r /opt/monica-backup/storage/* /opt/monica/storage/ + composer install --no-interaction --no-dev &>/dev/null + yarn install &>/dev/null + yarn run production &>/dev/null + php artisan monica:update --force &>/dev/null + chown -R www-data:www-data /opt/monica + chmod -R 775 /opt/monica/storage + echo "${RELEASE}" >/opt/${APP}_version.txt + msg_ok "Updated $APP to v${RELEASE}" + + msg_info "Starting Service" + systemctl start apache2 + msg_ok "Started Service" + + msg_info "Cleaning up" + rm -r "/opt/monica-v${RELEASE}.tar.bz2" + rm -r /opt/monica-backup + msg_ok "Cleaned" + msg_ok "Updated Successfully" + else + msg_ok "No update required. ${APP} is already at v${RELEASE}" + fi + exit +} + +start +build_container +description + +msg_ok "Completed Successfully!\n" +echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" +echo -e "${INFO}${YW} Access it using the following URL:${CL}" +echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}" diff --git a/install/monica-install.sh b/install/monica-install.sh new file mode 100644 index 000000000..586bb7c53 --- /dev/null +++ b/install/monica-install.sh @@ -0,0 +1,104 @@ +#!/usr/bin/env bash + +# Copyright (c) 2021-2025 community-scripts ORG +# Author: bvdberg01 +# License: MIT | https://github.com/community-scripts/ProxmoxVE/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 \ + sudo \ + mc \ + gnupg2\ + mariadb-server \ + apache2 \ + libapache2-mod-php \ + php-{bcmath,curl,dom,gd,gmp,iconv,intl,json,mbstring,mysqli,opcache,pdo-mysql,redis,tokenizer,xml,zip} \ + composer +msg_ok "Installed Dependencies" + +msg_info "Setting up MariaDB" +DB_NAME=monica +DB_USER=monica +DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13) +$STD mysql -u root -e "CREATE DATABASE $DB_NAME;" +$STD mysql -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED WITH mysql_native_password AS PASSWORD('$DB_PASS');" +$STD mysql -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;" +{ + echo "monica-Credentials" + echo "monica Database User: $DB_USER" + echo "monica Database Password: $DB_PASS" + echo "monica Database Name: $DB_NAME" +} >> ~/monica.creds +msg_ok "Set up MariaDB" + +msg_info "Setting up Node.js/Yarn" +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 +$STD npm install -g npm@latest +$STD npm install -g yarn +msg_ok "Installed Node.js/Yarn" + +msg_info "Installing monica" +RELEASE=$(curl -s https://api.github.com/repos/monicahq/monica/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') +cd /opt +wget -q "https://github.com/monicahq/monica/releases/download/v${RELEASE}/monica-v${RELEASE}.tar.bz2" +tar -xjf "monica-v${RELEASE}.tar.bz2" +mv "/opt/monica-v${RELEASE}" /opt/monica +cd /opt/monica +cp /opt/monica/.env.example /opt/monica/.env +HASH_SALT=$(openssl rand -base64 32) +sed -i -e "s|^DB_USERNAME=.*|DB_USERNAME=${DB_USER}|" \ + -e "s|^DB_PASSWORD=.*|DB_PASSWORD=${DB_PASS}|" \ + -e "s|^HASH_SALT=.*|HASH_SALT=${HASH_SALT}|" \ + /opt/monica/.env +$STD composer install --no-dev -o --no-interaction +$STD yarn install +$STD yarn run production +$STD php artisan key:generate +$STD php artisan setup:production --email=admin@helper-scripts.com --password=helper-scripts.com --force +chown -R www-data:www-data /opt/monica +chmod -R 775 /opt/monica/storage +echo "${RELEASE}" >/opt/${APPLICATION}_version.txt +msg_ok "Installed monica" + +msg_info "Creating Service" +cat </etc/apache2/sites-available/monica.conf + + ServerName monica + DocumentRoot /opt/monica/public + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + + ErrorLog /var/log/apache2/monica_error.log + CustomLog /var/log/apache2/monica_access.log combined + +EOF +$STD a2ensite monica +$STD a2enmod rewrite +$STD a2dissite 000-default.conf +$STD systemctl reload apache2 +msg_ok "Created Service" + +motd_ssh +customize + +msg_info "Cleaning up" +rm -rf "/opt/monica-v${RELEASE}.tar.bz2" +$STD apt-get -y autoremove +$STD apt-get -y autoclean +msg_ok "Cleaned" diff --git a/json/monica.json b/json/monica.json new file mode 100644 index 000000000..10b285974 --- /dev/null +++ b/json/monica.json @@ -0,0 +1,34 @@ +{ + "name": "Monica", + "slug": "monica", + "categories": [ + 24 + ], + "date_created": "2025-01-26", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 80, + "documentation": "https://github.com/monicahq/monica/tree/4.x/docs", + "website": "https://www.monicahq.com/", + "logo": "https://www.monicahq.com/img/logo_vertical.png", + "description": "Monica is an open-source personal CRM designed to help you manage and strengthen your relationships. It allows you to store important details about your contacts, track interactions, set reminders for special dates, and log activitiesβ€”all in one secure, private place. Perfect for busy individuals, Monica helps you stay organized, remember meaningful moments, and nurture your connections without ads or data mining. Install it on your own server for full control!", + "install_methods": [ + { + "type": "default", + "script": "ct/monica.sh", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 8, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": "admin@helper-scripts.com", + "password": "helper-scripts.com" + }, + "notes": [] +} From 8221614cab6ced4342a2daf34ad83bd95552ac81 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 28 Jan 2025 15:14:28 +0100 Subject: [PATCH 249/284] Update .app files (#1817) Co-authored-by: GitHub Actions --- ct/headers/monica | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 ct/headers/monica diff --git a/ct/headers/monica b/ct/headers/monica new file mode 100644 index 000000000..2e33c1858 --- /dev/null +++ b/ct/headers/monica @@ -0,0 +1,6 @@ + __ ___ _ + / |/ /___ ____ (_)________ _ + / /|_/ / __ \/ __ \/ / ___/ __ `/ + / / / / /_/ / / / / / /__/ /_/ / +/_/ /_/\____/_/ /_/_/\___/\__,_/ + From af166e3346f0cd375f1bfd9f0153d16fdd867f73 Mon Sep 17 00:00:00 2001 From: "community-scripts-pr-app[bot]" <189241966+community-scripts-pr-app[bot]@users.noreply.github.com> Date: Tue, 28 Jan 2025 15:16:48 +0100 Subject: [PATCH 250/284] Update CHANGELOG.md (#1816) Co-authored-by: github-actions[bot] --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c1b902f78..39497a213 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,7 @@ Do not break established syntax in this file, as it is automatically updated by ### ✨ New Scripts +- New script: Monica LXC [@bvdberg01](https://github.com/bvdberg01) ([#1813](https://github.com/community-scripts/ProxmoxVE/pull/1813)) - New Script: NodeBB [@MickLesk](https://github.com/MickLesk) ([#1811](https://github.com/community-scripts/ProxmoxVE/pull/1811)) - New Script: Pocket ID [@Snarkenfaugister](https://github.com/Snarkenfaugister) ([#1779](https://github.com/community-scripts/ProxmoxVE/pull/1779)) From 05e46a07cd19be24feec3eaf962cf0753e89e14f Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Tue, 28 Jan 2025 15:18:34 +0100 Subject: [PATCH 251/284] fix date & logo for monica --- json/monica.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/json/monica.json b/json/monica.json index 10b285974..6e91b210a 100644 --- a/json/monica.json +++ b/json/monica.json @@ -4,14 +4,14 @@ "categories": [ 24 ], - "date_created": "2025-01-26", + "date_created": "2025-01-28", "type": "ct", "updateable": true, "privileged": false, "interface_port": 80, "documentation": "https://github.com/monicahq/monica/tree/4.x/docs", "website": "https://www.monicahq.com/", - "logo": "https://www.monicahq.com/img/logo_vertical.png", + "logo": "https://raw.githubusercontent.com/monicahq/monica/0400350b4f9bf02300b030b9924b66ef2960b188/public/img/favicon.svg", "description": "Monica is an open-source personal CRM designed to help you manage and strengthen your relationships. It allows you to store important details about your contacts, track interactions, set reminders for special dates, and log activitiesβ€”all in one secure, private place. Perfect for busy individuals, Monica helps you stay organized, remember meaningful moments, and nurture your connections without ads or data mining. Install it on your own server for full control!", "install_methods": [ { From d366d24dea462ea04edc949d3280987bac06597c Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Tue, 28 Jan 2025 15:19:00 +0100 Subject: [PATCH 252/284] fix date for pocketid --- json/pocketid.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/json/pocketid.json b/json/pocketid.json index 8278073d2..2e9880aa9 100644 --- a/json/pocketid.json +++ b/json/pocketid.json @@ -4,7 +4,7 @@ "categories": [ 6 ], - "date_created": "2025-01-27", + "date_created": "2025-01-28", "type": "ct", "updateable": true, "privileged": false, From 97002e7047a95189bfa15ac5e6581598732a7754 Mon Sep 17 00:00:00 2001 From: Michel Roegl-Brunner <73236783+michelroegl-brunner@users.noreply.github.com> Date: Tue, 28 Jan 2025 15:46:50 +0100 Subject: [PATCH 253/284] Update pingvin.sh and pingvin-install.sh (#1819) --- ct/pingvin.sh | 54 +++++++++++++++++++++++--------------- install/pingvin-install.sh | 26 +++++++++++------- 2 files changed, 49 insertions(+), 31 deletions(-) diff --git a/ct/pingvin.sh b/ct/pingvin.sh index 95e097111..6e8eadc1d 100644 --- a/ct/pingvin.sh +++ b/ct/pingvin.sh @@ -32,30 +32,42 @@ function update_script() { msg_error "No ${APP} Installation Found!" exit fi - msg_info "Stopping Pingvin Share" - systemctl stop pm2-root.service - msg_ok "Stopped Pingvin Share" + + RELEASE=$(curl -s https://api.github.com/repos/stonith404/pingvin-share/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') + if [[ ! -f /opt/$pingvin_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/pingvin_version.txt)" ]]; then + + msg_info "Stopping Pingvin Share" + systemctl stop pm2-root.service + msg_ok "Stopped Pingvin Share" + + msg_info "Updating Pingvin Share to v${RELEASE}" + cd /opt + wget -q "https://github.com/stonith404/pingvin-share/archive/refs/tags/v${RELEASE}.zip" + unzip -q v${RELEASE}.zip + mv pingvin-share-${RELEASE} /opt/pingvin-share + cd /opt/pingvin-share + cd backend + npm install &>/dev/null + npm run build &>/dev/null + cd ../frontend + npm install &>/dev/null + npm run build &>/dev/null + echo "${RELEASE}" >"/opt/pingvin_version.txt" + rm -rf /opt/v${RELEASE}.zip + msg_ok "Updated Pingvin Share to v${RELEASE}" - msg_info "Updating Pingvin Share" - cd /opt/pingvin-share - git fetch --tags - git checkout $(git describe --tags $(git rev-list --tags --max-count=1)) &>/dev/null - cd backend - npm install &>/dev/null - npm run build &>/dev/null - cd ../frontend - npm install &>/dev/null - npm run build &>/dev/null - msg_ok "Updated Pingvin Share" + msg_info "Starting Pingvin Share" + systemctl start pm2-root.service + msg_ok "Started Pingvin Share" - msg_info "Starting Pingvin Share" - systemctl start pm2-root.service - msg_ok "Started Pingvin Share" - - msg_ok "Updated Successfully" - exit + msg_ok "Updated Successfully" + exit + else + msg_ok "No update required. Pingvin Share is already at v${RELEASE}." + fi } + start build_container description @@ -63,4 +75,4 @@ description msg_ok "Completed Successfully!\n" echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" echo -e "${INFO}${YW} Access it using the following URL:${CL}" -echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}" \ No newline at end of file +echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}" diff --git a/install/pingvin-install.sh b/install/pingvin-install.sh index 5478aab45..253e107a9 100644 --- a/install/pingvin-install.sh +++ b/install/pingvin-install.sh @@ -2,6 +2,7 @@ # Copyright (c) 2021-2025 tteck # Author: tteck (tteckster) +# Co-Author: michelroegl-brunner # License: MIT # https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE @@ -14,11 +15,12 @@ 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 git -$STD apt-get install -y gnupg +$STD apt-get install -y \ + curl \ + sudo \ + mc \ + git \ + gnupg msg_ok "Installed Dependencies" msg_info "Setting up Node.js Repository" @@ -34,11 +36,14 @@ $STD npm install pm2 -g msg_ok "Installed Node.js" msg_info "Installing Pingvin Share (Patience)" -git clone -q https://github.com/stonith404/pingvin-share /opt/pingvin-share -cd /opt/pingvin-share -$STD git fetch --tags -$STD git checkout $(git describe --tags `git rev-list --tags --max-count=1`) -cd backend +cd /opt +RELEASE=$(curl -s https://api.github.com/repos/stonith404/pingvin-share/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') +echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt" +wget -q "https://github.com/stonith404/pingvin-share/archive/refs/tags/v${RELEASE}.zip" +unzip -q v${RELEASE}.zip +echo "${RELEASE}" >"/opt/pingvin_version.txt" +mv pingvin-share-${RELEASE} /opt/pingvin-share +cd /opt/pingvin-share/backend $STD npm install $STD npm run build $STD pm2 start --name="pingvin-share-backend" npm -- run prod @@ -57,6 +62,7 @@ motd_ssh customize msg_info "Cleaning up" +rm -rf /opt/v${RELEASE}.zip $STD apt-get -y autoremove $STD apt-get -y autoclean msg_ok "Cleaned" From 1cf8f80c717c39831325e46bb94e766c7ff35e81 Mon Sep 17 00:00:00 2001 From: "community-scripts-pr-app[bot]" <189241966+community-scripts-pr-app[bot]@users.noreply.github.com> Date: Tue, 28 Jan 2025 15:49:00 +0100 Subject: [PATCH 254/284] Update CHANGELOG.md (#1823) Co-authored-by: github-actions[bot] --- CHANGELOG.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 39497a213..42a2b0972 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,19 +23,20 @@ Do not break established syntax in this file, as it is automatically updated by ### ✨ New Scripts -- New script: Monica LXC [@bvdberg01](https://github.com/bvdberg01) ([#1813](https://github.com/community-scripts/ProxmoxVE/pull/1813)) - New Script: NodeBB [@MickLesk](https://github.com/MickLesk) ([#1811](https://github.com/community-scripts/ProxmoxVE/pull/1811)) +- New script: Monica LXC [@bvdberg01](https://github.com/bvdberg01) ([#1813](https://github.com/community-scripts/ProxmoxVE/pull/1813)) - New Script: Pocket ID [@Snarkenfaugister](https://github.com/Snarkenfaugister) ([#1779](https://github.com/community-scripts/ProxmoxVE/pull/1779)) ### πŸš€ Updated Scripts -- [Standardization] Fix Spelling for "Setup Python3" [@MickLesk](https://github.com/MickLesk) ([#1810](https://github.com/community-scripts/ProxmoxVE/pull/1810)) +- Update pingvin.sh and pingvin-install.sh: Fix problem with update und switch to new method of getting files. [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1819](https://github.com/community-scripts/ProxmoxVE/pull/1819)) - Update all Alpine LXC's to 3.21 (Docker, Grafana, Nextcloud, Vaultwarden, Zigbee2Mqtt, Alpine) [@MickLesk](https://github.com/MickLesk) ([#1803](https://github.com/community-scripts/ProxmoxVE/pull/1803)) +- [Standardization] Fix Spelling for "Setup Python3" [@MickLesk](https://github.com/MickLesk) ([#1810](https://github.com/community-scripts/ProxmoxVE/pull/1810)) ### 🧰 Maintenance -- [docs] Update AppName.md: Make it clear where to change the URLs [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1809](https://github.com/community-scripts/ProxmoxVE/pull/1809)) - [core]: Remove Figlet | Get Headers by Repo & Store Local [@MickLesk](https://github.com/MickLesk) ([#1802](https://github.com/community-scripts/ProxmoxVE/pull/1802)) +- [docs] Update AppName.md: Make it clear where to change the URLs [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1809](https://github.com/community-scripts/ProxmoxVE/pull/1809)) ## 2025-01-27 From b973ca9d8da4a70a807a5c8ad1d65fc6e7f4ba54 Mon Sep 17 00:00:00 2001 From: "community-scripts-pr-app[bot]" <189241966+community-scripts-pr-app[bot]@users.noreply.github.com> Date: Tue, 28 Jan 2025 15:52:00 +0100 Subject: [PATCH 255/284] Update CHANGELOG.md (#1824) Co-authored-by: github-actions[bot] --- CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 42a2b0972..8126d1f0e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,10 @@ Do not break established syntax in this file, as it is automatically updated by ### Changed +### πŸ’₯ Breaking Changes + +- Update PingVin: Fix problem with update und switch to new method of getting files. [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1819](https://github.com/community-scripts/ProxmoxVE/pull/1819)) + ### ✨ New Scripts - New Script: NodeBB [@MickLesk](https://github.com/MickLesk) ([#1811](https://github.com/community-scripts/ProxmoxVE/pull/1811)) @@ -29,7 +33,6 @@ Do not break established syntax in this file, as it is automatically updated by ### πŸš€ Updated Scripts -- Update pingvin.sh and pingvin-install.sh: Fix problem with update und switch to new method of getting files. [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1819](https://github.com/community-scripts/ProxmoxVE/pull/1819)) - Update all Alpine LXC's to 3.21 (Docker, Grafana, Nextcloud, Vaultwarden, Zigbee2Mqtt, Alpine) [@MickLesk](https://github.com/MickLesk) ([#1803](https://github.com/community-scripts/ProxmoxVE/pull/1803)) - [Standardization] Fix Spelling for "Setup Python3" [@MickLesk](https://github.com/MickLesk) ([#1810](https://github.com/community-scripts/ProxmoxVE/pull/1810)) From dae705056cf504efa9cccf63c6c970db363b908d Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Tue, 28 Jan 2025 16:32:44 +0100 Subject: [PATCH 256/284] Breaking Change: Homarr (#1825) --- ct/homarr.sh | 38 +++++++++++++++--------------- install/homarr-install.sh | 49 +++++++++++++++++++++++---------------- 2 files changed, 48 insertions(+), 39 deletions(-) diff --git a/ct/homarr.sh b/ct/homarr.sh index 715796a27..cc0aa2016 100644 --- a/ct/homarr.sh +++ b/ct/homarr.sh @@ -32,46 +32,46 @@ function update_script() { msg_error "No ${APP} Installation Found!" exit fi - RELEASE=$(curl -s https://api.github.com/repos/ajnart/homarr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') +if [[ -f /opt/homarr/database/db.sqlite ]]; then + msg_error "Old Homarr detected due to existing database file (/opt/homarr/database/db.sqlite)." + msg_error "Update not supported. Refer to:" + msg_error " - https://github.com/community-scripts/ProxmoxVE/discussions/1551" + msg_error " - https://homarr.dev/docs/getting-started/after-the-installation/#importing-a-zip-from-version-before-100" + exit 1 +fi + RELEASE=$(curl -s https://api.github.com/repos/homarr-labs/homarr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then + msg_info "Stopping Services" systemctl stop homarr msg_ok "Services Stopped" - msg_info "Backing up Data" + msg_info "Backup Data" mkdir -p /opt/homarr-data-backup cp /opt/homarr/.env /opt/homarr-data-backup/.env - cp /opt/homarr/database/db.sqlite /opt/homarr-data-backup/db.sqlite - cp -r /opt/homarr/data/configs /opt/homarr-data-backup/configs - msg_ok "Backed up Data" + msg_ok "Backup Data" - msg_info "Updating ${APP} to ${RELEASE}" - wget -q "https://github.com/ajnart/homarr/archive/refs/tags/v${RELEASE}.zip" + msg_info "Updating ${APP} to v${RELEASE}" + wget -q "https://github.com/homarr-labs/homarr/archive/refs/tags/v${RELEASE}.zip" unzip -q v${RELEASE}.zip rm -rf v${RELEASE}.zip rm -rf /opt/homarr mv homarr-${RELEASE} /opt/homarr mv /opt/homarr-data-backup/.env /opt/homarr/.env cd /opt/homarr - yarn install &>/dev/null - yarn build &>/dev/null + pnpm run db:migration:sqlite:run &>/dev/null + pnpm build &>/dev/null + mkdir build + cp ./node_modules/better-sqlite3/build/Release/better_sqlite3.node ./build/better_sqlite3.node echo "${RELEASE}" >/opt/${APP}_version.txt msg_ok "Updated ${APP}" - msg_info "Restoring Data" - rm -rf /opt/homarr/data/configs - mv /opt/homarr-data-backup/configs /opt/homarr/data/configs - mv /opt/homarr-data-backup/db.sqlite /opt/homarr/database/db.sqlite - yarn db:migrate &>/dev/null - rm -rf /opt/homarr-data-backup - msg_ok "Restored Data" - msg_info "Starting Services" systemctl start homarr msg_ok "Started Services" msg_ok "Updated Successfully" else - msg_ok "No update required. ${APP} is already at ${RELEASE}" + msg_ok "No update required. ${APP} is already at v${RELEASE}" fi exit } @@ -83,4 +83,4 @@ description msg_ok "Completed Successfully!\n" echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" echo -e "${INFO}${YW} Access it using the following URL:${CL}" -echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}" \ No newline at end of file +echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}" diff --git a/install/homarr-install.sh b/install/homarr-install.sh index 410ba8aeb..d5d0965d2 100644 --- a/install/homarr-install.sh +++ b/install/homarr-install.sh @@ -1,8 +1,7 @@ #!/usr/bin/env bash -# Copyright (c) 2021-2025 tteck -# Author: tteck (tteckster) -# Co-Author: MickLesk (Canbiz) +# Copyright (c) 2021-2025 community-scripts ORG +# Author: MickLesk (Canbiz) # License: MIT # https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # Source: https://github.com/ajnart/homarr @@ -20,6 +19,7 @@ $STD apt-get install -y \ sudo \ mc \ curl \ + redis-server \ ca-certificates \ gnupg \ make \ @@ -30,32 +30,40 @@ msg_ok "Installed Dependencies" msg_info "Setting up Node.js Repository" 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 +echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_22.x nodistro main" >/etc/apt/sources.list.d/nodesource.list msg_ok "Set up Node.js Repository" -msg_info "Installing Node.js/Yarn" +msg_info "Installing Node.js/pnpm" $STD apt-get update $STD apt-get install -y nodejs -$STD npm install -g yarn -msg_ok "Installed Node.js/Yarn" +$STD npm install -g pnpm +msg_ok "Installed Node.js/pnpm" msg_info "Installing Homarr (Patience)" -RELEASE=$(curl -s https://api.github.com/repos/ajnart/homarr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') -wget -q "https://github.com/ajnart/homarr/archive/refs/tags/v${RELEASE}.zip" +cd /opt +RELEASE=$(curl -s https://api.github.com/repos/homarr-labs/homarr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') +wget -q "https://github.com/homarr-labs/homarr/archive/refs/tags/v${RELEASE}.zip" unzip -q v${RELEASE}.zip -rm -rf v${RELEASE}.zip mv homarr-${RELEASE} /opt/homarr +mkdir -p /opt/homarr_db +touch /opt/homarr_db/db.sqlite +AUTH_SECRET="$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | cut -c1-13)" +SECRET_ENCRYPTION_KEY="$(openssl rand -base64 32 | tr -dc 'a-zA-Z0-9' | cut -c1-32)" + cat </opt/homarr/.env -DATABASE_URL="file:./database/db.sqlite" -NEXTAUTH_URL="http://localhost:3000" -NEXTAUTH_SECRET="$(openssl rand -base64 32)" -NEXT_PUBLIC_DISABLE_ANALYTICS="true" -DEFAULT_COLOR_SCHEME="dark" +AUTH_SECRET="${AUTH_SECRET}" +DB_DRIVER='better-sqlite3' +SECRET_ENCRYPTION_KEY="${SECRET_ENCRYPTION_KEY}" +DB_URL='/opt/homarr_db/db.sqlite' +TURBO_TELEMETRY_DISABLED=1 +NODE_OPTIONS='-r @homarr/log/override' EOF + cd /opt/homarr -$STD yarn install -$STD yarn build -$STD yarn db:migrate +$STD pnpm run db:migration:sqlite:run +$STD pnpm build +mkdir build +cp ./node_modules/better-sqlite3/build/Release/better_sqlite3.node ./build/better_sqlite3.node echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt" msg_ok "Installed Homarr" @@ -69,18 +77,19 @@ After=network.target Type=exec WorkingDirectory=/opt/homarr EnvironmentFile=-/opt/homarr/.env -ExecStart=/usr/bin/yarn start +ExecStart=/usr/bin/pnpm start [Install] WantedBy=multi-user.target EOF -systemctl enable -q --now homarr.service +systemctl enable -q --now homarr msg_ok "Created Service" motd_ssh customize msg_info "Cleaning up" +rm -rf /opt/v${RELEASE}.zip $STD apt-get -y autoremove $STD apt-get -y autoclean msg_ok "Cleaned" From f10e625e41f5e1bfef1440eaeec5caef4f50de4e Mon Sep 17 00:00:00 2001 From: "community-scripts-pr-app[bot]" <189241966+community-scripts-pr-app[bot]@users.noreply.github.com> Date: Tue, 28 Jan 2025 16:34:22 +0100 Subject: [PATCH 257/284] Update CHANGELOG.md (#1826) Co-authored-by: github-actions[bot] --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8126d1f0e..668768b23 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,12 +23,13 @@ Do not break established syntax in this file, as it is automatically updated by ### πŸ’₯ Breaking Changes +- Breaking Change: Homarr v1 (Read Guide) [@MickLesk](https://github.com/MickLesk) ([#1825](https://github.com/community-scripts/ProxmoxVE/pull/1825)) - Update PingVin: Fix problem with update und switch to new method of getting files. [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1819](https://github.com/community-scripts/ProxmoxVE/pull/1819)) ### ✨ New Scripts -- New Script: NodeBB [@MickLesk](https://github.com/MickLesk) ([#1811](https://github.com/community-scripts/ProxmoxVE/pull/1811)) - New script: Monica LXC [@bvdberg01](https://github.com/bvdberg01) ([#1813](https://github.com/community-scripts/ProxmoxVE/pull/1813)) +- New Script: NodeBB [@MickLesk](https://github.com/MickLesk) ([#1811](https://github.com/community-scripts/ProxmoxVE/pull/1811)) - New Script: Pocket ID [@Snarkenfaugister](https://github.com/Snarkenfaugister) ([#1779](https://github.com/community-scripts/ProxmoxVE/pull/1779)) ### πŸš€ Updated Scripts From 94d60a79d6bd4d172abca9fc040e04717f8e2706 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Tue, 28 Jan 2025 16:36:23 +0100 Subject: [PATCH 258/284] bump homarr v1 to new date --- json/homarr.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/json/homarr.json b/json/homarr.json index dea87f136..7dc9d3988 100644 --- a/json/homarr.json +++ b/json/homarr.json @@ -4,7 +4,7 @@ "categories": [ 10 ], - "date_created": "2024-05-02", + "date_created": "2025-01-28", "type": "ct", "updateable": true, "privileged": false, From ad14b1b1d68a336ef1c1d3fb07e033e1c9d27dd0 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Tue, 28 Jan 2025 16:50:30 +0100 Subject: [PATCH 259/284] Update homarr-install.sh --- install/homarr-install.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install/homarr-install.sh b/install/homarr-install.sh index d5d0965d2..6cefae62f 100644 --- a/install/homarr-install.sh +++ b/install/homarr-install.sh @@ -2,8 +2,7 @@ # Copyright (c) 2021-2025 community-scripts ORG # Author: MickLesk (Canbiz) -# License: MIT -# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # Source: https://github.com/ajnart/homarr source /dev/stdin <<< "$FUNCTIONS_FILE_PATH" @@ -60,6 +59,7 @@ NODE_OPTIONS='-r @homarr/log/override' EOF cd /opt/homarr +$STD pnpm install $STD pnpm run db:migration:sqlite:run $STD pnpm build mkdir build From 41a836f9907803be24a212b0151840b0cdd4b3af Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Tue, 28 Jan 2025 16:53:33 +0100 Subject: [PATCH 260/284] add pnpm install --- ct/homarr.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/ct/homarr.sh b/ct/homarr.sh index cc0aa2016..39c74a742 100644 --- a/ct/homarr.sh +++ b/ct/homarr.sh @@ -59,6 +59,7 @@ fi mv homarr-${RELEASE} /opt/homarr mv /opt/homarr-data-backup/.env /opt/homarr/.env cd /opt/homarr + pnpm install &>/dev/null pnpm run db:migration:sqlite:run &>/dev/null pnpm build &>/dev/null mkdir build From 0680fbfac780763221d2d16acb3ed3a27b414dc4 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Tue, 28 Jan 2025 16:59:27 +0100 Subject: [PATCH 261/284] Update homarr-install.sh --- install/homarr-install.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/install/homarr-install.sh b/install/homarr-install.sh index 6cefae62f..07a620fc9 100644 --- a/install/homarr-install.sh +++ b/install/homarr-install.sh @@ -47,12 +47,12 @@ mv homarr-${RELEASE} /opt/homarr mkdir -p /opt/homarr_db touch /opt/homarr_db/db.sqlite AUTH_SECRET="$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | cut -c1-13)" -SECRET_ENCRYPTION_KEY="$(openssl rand -base64 32 | tr -dc 'a-zA-Z0-9' | cut -c1-32)" +SECRET_ENCRYPTION_KEY="$(openssl rand -hex 32)" cat </opt/homarr/.env -AUTH_SECRET="${AUTH_SECRET}" +AUTH_SECRET='${AUTH_SECRET}' DB_DRIVER='better-sqlite3' -SECRET_ENCRYPTION_KEY="${SECRET_ENCRYPTION_KEY}" +SECRET_ENCRYPTION_KEY='${SECRET_ENCRYPTION_KEY}' DB_URL='/opt/homarr_db/db.sqlite' TURBO_TELEMETRY_DISABLED=1 NODE_OPTIONS='-r @homarr/log/override' From 87a987ba35f6b62b21e4f278af825dfd1c67555e Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Tue, 28 Jan 2025 17:08:31 +0100 Subject: [PATCH 262/284] remove env --- install/homarr-install.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/install/homarr-install.sh b/install/homarr-install.sh index 07a620fc9..f4228c963 100644 --- a/install/homarr-install.sh +++ b/install/homarr-install.sh @@ -55,7 +55,6 @@ DB_DRIVER='better-sqlite3' SECRET_ENCRYPTION_KEY='${SECRET_ENCRYPTION_KEY}' DB_URL='/opt/homarr_db/db.sqlite' TURBO_TELEMETRY_DISABLED=1 -NODE_OPTIONS='-r @homarr/log/override' EOF cd /opt/homarr From 63061942b91a1036d1a360deaf9014920028a29a Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Tue, 28 Jan 2025 18:24:06 +0100 Subject: [PATCH 263/284] Aktualisieren von homarr-install.sh --- install/homarr-install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/homarr-install.sh b/install/homarr-install.sh index f4228c963..6a0ba36b6 100644 --- a/install/homarr-install.sh +++ b/install/homarr-install.sh @@ -35,7 +35,7 @@ msg_ok "Set up Node.js Repository" msg_info "Installing Node.js/pnpm" $STD apt-get update $STD apt-get install -y nodejs -$STD npm install -g pnpm +$STD npm install -g pnpm@latest msg_ok "Installed Node.js/pnpm" msg_info "Installing Homarr (Patience)" From 1f39208c1c4f0b12568aa1da0d9161e5497bae60 Mon Sep 17 00:00:00 2001 From: Bram Suurd <78373894+BramSuurdje@users.noreply.github.com> Date: Tue, 28 Jan 2025 19:33:22 +0100 Subject: [PATCH 264/284] Filter out duplicate scripts in LatestScripts component and sort by creation date (#1828) --- .../app/scripts/_components/ScriptInfoBlocks.tsx | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/frontend/src/app/scripts/_components/ScriptInfoBlocks.tsx b/frontend/src/app/scripts/_components/ScriptInfoBlocks.tsx index cf5edfb22..3713a165b 100644 --- a/frontend/src/app/scripts/_components/ScriptInfoBlocks.tsx +++ b/frontend/src/app/scripts/_components/ScriptInfoBlocks.tsx @@ -35,8 +35,18 @@ export function LatestScripts({ items }: { items: Category[] }) { const latestScripts = useMemo(() => { if (!items) return []; + const scripts = items.flatMap((category) => category.scripts || []); - return scripts.sort( + + // Filter out duplicates by slug + const uniqueScriptsMap = new Map(); + scripts.forEach((script) => { + if (!uniqueScriptsMap.has(script.slug)) { + uniqueScriptsMap.set(script.slug, script); + } + }); + + return Array.from(uniqueScriptsMap.values()).sort( (a, b) => new Date(b.date_created).getTime() - new Date(a.date_created).getTime(), ); @@ -49,7 +59,7 @@ export function LatestScripts({ items }: { items: Category[] }) { const goToPreviousPage = () => { setPage((prevPage) => prevPage - 1); }; - + const startIndex = (page - 1) * ITEMS_PER_PAGE; const endIndex = page * ITEMS_PER_PAGE; From cecf179b346f653a50a04a055645020569fdf9f6 Mon Sep 17 00:00:00 2001 From: "community-scripts-pr-app[bot]" <189241966+community-scripts-pr-app[bot]@users.noreply.github.com> Date: Tue, 28 Jan 2025 19:34:32 +0100 Subject: [PATCH 265/284] Update CHANGELOG.md (#1829) Co-authored-by: github-actions[bot] --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 668768b23..5c7b604eb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -37,6 +37,10 @@ Do not break established syntax in this file, as it is automatically updated by - Update all Alpine LXC's to 3.21 (Docker, Grafana, Nextcloud, Vaultwarden, Zigbee2Mqtt, Alpine) [@MickLesk](https://github.com/MickLesk) ([#1803](https://github.com/community-scripts/ProxmoxVE/pull/1803)) - [Standardization] Fix Spelling for "Setup Python3" [@MickLesk](https://github.com/MickLesk) ([#1810](https://github.com/community-scripts/ProxmoxVE/pull/1810)) +### 🌐 Website + +- Filter out duplicate scripts in LatestScripts component and sort by creation date [@BramSuurdje](https://github.com/BramSuurdje) ([#1828](https://github.com/community-scripts/ProxmoxVE/pull/1828)) + ### 🧰 Maintenance - [core]: Remove Figlet | Get Headers by Repo & Store Local [@MickLesk](https://github.com/MickLesk) ([#1802](https://github.com/community-scripts/ProxmoxVE/pull/1802)) From 24dfa9590edb29965026c507c9e4093a1c418db1 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Tue, 28 Jan 2025 21:13:21 +0100 Subject: [PATCH 266/284] Aktualisieren von homarr.sh --- ct/homarr.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ct/homarr.sh b/ct/homarr.sh index 39c74a742..986763562 100644 --- a/ct/homarr.sh +++ b/ct/homarr.sh @@ -9,7 +9,7 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m APP="Homarr" var_tags="arr;dashboard" var_cpu="2" -var_ram="2048" +var_ram="4096" var_disk="8" var_os="debian" var_version="12" From 645972077ee4ad2c9f4db70d58bd4a9951c4c384 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Tue, 28 Jan 2025 21:13:39 +0100 Subject: [PATCH 267/284] Aktualisieren von homarr.json --- json/homarr.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/json/homarr.json b/json/homarr.json index 7dc9d3988..ad0b72498 100644 --- a/json/homarr.json +++ b/json/homarr.json @@ -19,7 +19,7 @@ "script": "ct/homarr.sh", "resources": { "cpu": 2, - "ram": 2048, + "ram": 4096, "hdd": 8, "os": "debian", "version": "12" From c799e67ea566571f848797c65d3af92960621ea3 Mon Sep 17 00:00:00 2001 From: Michel Roegl-Brunner <73236783+michelroegl-brunner@users.noreply.github.com> Date: Wed, 29 Jan 2025 14:26:23 +0100 Subject: [PATCH 268/284] [Diagnostic] Introduced optional lxc install diagnostics via API call (#1801) * Update build.func * Update build.func * Update build.func * Update build.func * Update build.func * update build.func * update build.func * update build.func * update build.func * update build.func * update build.func * update build.func * update build.func --- misc/build.func | 291 +++++++++++++++++++++++++++++++++++------------- 1 file changed, 215 insertions(+), 76 deletions(-) diff --git a/misc/build.func b/misc/build.func index 38587512a..42e18452f 100644 --- a/misc/build.func +++ b/misc/build.func @@ -1,6 +1,7 @@ # Copyright (c) 2021-2025 tteck # Author: tteck (tteckster) # Co-Author: MickLesk +# Co-Author: michelroegl-brunner # License: MIT # https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE @@ -8,7 +9,9 @@ variables() { NSAPP=$(echo ${APP,,} | tr -d ' ') # This function sets the NSAPP variable by converting the value of the APP variable to lowercase and removing any spaces. var_install="${NSAPP}-install" # sets the var_install variable by appending "-install" to the value of NSAPP. INTEGER='^[0-9]+([.][0-9]+)?$' # it defines the INTEGER regular expression pattern. - PVEHOST_NAME=$(hostname) # gets the Proxmox Hostname and sets it to Uppercase + PVEHOST_NAME=$(hostname) # gets the Proxmox Hostname and sets it to Uppercase + DIAGNOSTICS="yes" # sets the DIAGNOSTICS variable to "yes", used for the API call. + METHOD="default" # sets the METHOD variable to "default", used for the API call. } # This function sets various color variables using ANSI escape codes for formatting text in the terminal. @@ -143,10 +146,10 @@ pve_check() { echo -e "Exiting..." sleep 2 exit -fi + fi } -# When a node is running tens of containers, it's possible to exceed the kernel's cryptographic key storage allocations. +# When a node is running tens of containers, it's possible to exceed the kernel's cryptographic key storage allocations. # These are tuneable, so verify if the currently deployment is approaching the limits, advise the user on how to tune the limits, and exit the script. # https://cleveruptime.com/docs/files/proc-key-users | https://docs.kernel.org/security/keys/core.html maxkeys_check() { @@ -222,11 +225,11 @@ get_current_ip() { # Function to update the IP address in the MOTD file update_motd_ip() { MOTD_FILE="/etc/motd" - + if [ -f "$MOTD_FILE" ]; then # Remove existing IP Address lines to prevent duplication sed -i '/IP Address:/d' "$MOTD_FILE" - + IP=$(get_current_ip) # Add the new IP address echo -e "${TAB}${NETWORK}${YW} IP Address: ${GN}${IP}${CL}" >> "$MOTD_FILE" @@ -359,34 +362,34 @@ exit_script() { advanced_settings() { whiptail --backtitle "Proxmox VE Helper Scripts" --msgbox --title "Here is an instructional tip:" "To make a selection, use the Spacebar." 8 58 whiptail --backtitle "Proxmox VE Helper Scripts" --msgbox --title "Default distribution for $APP" "Default is: ${var_os} ${var_version} \n \nIf the default Linux distribution is not adhered to, script support will be discontinued. \n" 10 58 - if [ "$var_os" != "alpine" ]; then + if [ "$var_os" != "alpine" ]; then var_default_os="${var_os}" var_os="" while [ -z "$var_os" ]; do - if [ "$var_default_os" == "debian" ]; then - if var_os=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "DISTRIBUTION" --radiolist "Choose Distribution" 10 58 2 \ - "debian" "" ON \ - "ubuntu" "" OFF \ - 3>&1 1>&2 2>&3); then - if [ -n "$var_os" ]; then - echo -e "${OS}${BOLD}${DGN}Operating System: ${BGN}$var_os${CL}" - fi - else - exit_script + if [ "$var_default_os" == "debian" ]; then + if var_os=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "DISTRIBUTION" --radiolist "Choose Distribution" 10 58 2 \ + "debian" "" ON \ + "ubuntu" "" OFF \ + 3>&1 1>&2 2>&3); then + if [ -n "$var_os" ]; then + echo -e "${OS}${BOLD}${DGN}Operating System: ${BGN}$var_os${CL}" fi + else + exit_script fi - if [ "$var_default_os" == "ubuntu" ]; then - if var_os=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "DISTRIBUTION" --radiolist "Choose Distribution" 10 58 2 \ - "debian" "" OFF \ - "ubuntu" "" ON \ - 3>&1 1>&2 2>&3); then - if [ -n "$var_os" ]; then - echo -e "${OS}${BOLD}${DGN}Operating System: ${BGN}$var_os${CL}" - fi - else - exit_script + fi + if [ "$var_default_os" == "ubuntu" ]; then + if var_os=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "DISTRIBUTION" --radiolist "Choose Distribution" 10 58 2 \ + "debian" "" OFF \ + "ubuntu" "" ON \ + 3>&1 1>&2 2>&3); then + if [ -n "$var_os" ]; then + echo -e "${OS}${BOLD}${DGN}Operating System: ${BGN}$var_os${CL}" fi + else + exit_script fi + fi done fi @@ -394,7 +397,7 @@ advanced_settings() { var_default_version="${var_version}" var_version="" while [ -z "$var_version" ]; do - if [ "$var_default_version" == "11" ]; then + if [ "$var_default_version" == "11" ]; then if var_version=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "DEBIAN VERSION" --radiolist "Choose Version" 10 58 2 \ "11" "Bullseye" ON \ "12" "Bookworm" OFF \ @@ -425,13 +428,13 @@ advanced_settings() { var_default_version="${var_version}" var_version="" while [ -z "$var_version" ]; do - if [ "$var_default_version" == "20.04" ]; then + if [ "$var_default_version" == "20.04" ]; then if var_version=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "UBUNTU VERSION" --radiolist "Choose Version" 10 58 4 \ "20.04" "Focal" ON \ "22.04" "Jammy" OFF \ "24.04" "Noble" OFF \ "24.10" "Oracular" OFF \ - 3>&1 1>&2 2>&3); then + 3>&1 1>&2 2>&3); then if [ -n "$var_version" ]; then echo -e "${OSVERSION}${BOLD}${DGN}Version: ${BGN}$var_version${CL}" fi @@ -444,7 +447,7 @@ advanced_settings() { "22.04" "Jammy" ON \ "24.04" "Noble" OFF \ "24.10" "Oracular" OFF \ - 3>&1 1>&2 2>&3); then + 3>&1 1>&2 2>&3); then if [ -n "$var_version" ]; then echo -e "${OSVERSION}${BOLD}${DGN}Version: ${BGN}$var_version${CL}" fi @@ -452,25 +455,25 @@ advanced_settings() { exit_script fi elif [ "$var_default_version" == "24.04" ]; then - if var_version=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "UBUNTU VERSION" --radiolist "Choose Version" 10 58 4 \ + if var_version=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "UBUNTU VERSION" --radiolist "Choose Version" 10 58 4 \ "20.04" "Focal" OFF \ "22.04" "Jammy" OFF \ "24.04" "Noble" ON \ "24.10" "Oracular" OFF \ - 3>&1 1>&2 2>&3); then + 3>&1 1>&2 2>&3); then if [ -n "$var_version" ]; then echo -e "${OSVERSION}${BOLD}${DGN}Version: ${BGN}$var_version${CL}" fi else exit_script - fi + fi else if var_version=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "UBUNTU VERSION" --radiolist "Choose Version" 10 58 4 \ "20.04" "Focal" OFF \ "22.04" "Jammy" OFF \ "24.04" "Noble" OFF \ "24.10" "Oracular" ON \ - 3>&1 1>&2 2>&3); then + 3>&1 1>&2 2>&3); then if [ -n "$var_version" ]; then echo -e "${OSVERSION}${BOLD}${DGN}Version: ${BGN}$var_version${CL}" fi @@ -485,7 +488,7 @@ advanced_settings() { CT_DEFAULT_TYPE="${CT_TYPE}" CT_TYPE="" while [ -z "$CT_TYPE" ]; do - if [ "$CT_DEFAULT_TYPE" == "1" ]; then + if [ "$CT_DEFAULT_TYPE" == "1" ]; then if CT_TYPE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "CONTAINER TYPE" --radiolist "Choose Type" 10 58 2 \ "1" "Unprivileged" ON \ "0" "Privileged" OFF \ @@ -550,7 +553,6 @@ advanced_settings() { fi done - if CT_ID=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set Container ID" 8 58 $NEXTID --title "CONTAINER ID" 3>&1 1>&2 2>&3); then if [ -z "$CT_ID" ]; then CT_ID="$NEXTID" @@ -741,14 +743,14 @@ advanced_settings() { if ADV_TAGS=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set Custom Tags?[If you remove all, there will be no tags!]" 8 58 ${TAGS} --title "Advanced Tags" 3>&1 1>&2 2>&3); then if [ -n "${ADV_TAGS}" ]; then - ADV_TAGS=$(echo "$ADV_TAGS" | tr -d '[:space:]') - TAGS="${ADV_TAGS}" + ADV_TAGS=$(echo "$ADV_TAGS" | tr -d '[:space:]') + TAGS="${ADV_TAGS}" else TAGS=";" fi - echo -e "${NETWORK}${BOLD}${DGN}Tags: ${BGN}$TAGS${CL}" - else - exit_script + echo -e "${NETWORK}${BOLD}${DGN}Tags: ${BGN}$TAGS${CL}" + else + exit_script fi if [[ "$PW" == -password* ]]; then @@ -771,7 +773,7 @@ advanced_settings() { fi else SSH_AUTHORIZED_KEY="" - fi + fi if (whiptail --backtitle "Proxmox VE Helper Scripts" --defaultno --title "VERBOSE MODE" --yesno "Enable Verbose Mode?" 10 58); then VERB="yes" else @@ -789,6 +791,116 @@ advanced_settings() { fi } +post_to_api() { + local API_URL="http://api.community-scripts.org/upload" + local pve_version="not found" + pve_version=$(pveversion | awk -F'[/ ]' '{print $2}') + + JSON_PAYLOAD=$( + cat </usr/local/community-scripts/diagnostics +DIAGNOSTICS=yes + +#This file is used to store the diagnostics settings for the Community-Scripts API. +#https://github.com/community-scripts/ProxmoxVE/discussions/1836 +#Your diagnostics will be sent to the Community-Scripts API for troubleshooting/statistical purposes. +#You can review the data at https://community-scripts.github.io/ProxmoxVE/data +#If you do not wish to send diagnostics, please set the variable 'DIAGNOSTICS' to "no" in /usr/local/community-scripts/diagnostics, or use the menue. +#This will disable the diagnostics feature. +#To send diagnostics, set the variable 'DIAGNOSTICS' to "yes" in /usr/local/community-scripts/diagnostics, or use the menue. +#This will enable the diagnostics feature. +#The following information will be sent: +#"ct_type" +#"disk_size" +#"core_count" +#"ram_size" +#"verbose" +#"os_type" +#"os_version" +#"hn" +#"disableip6" +#"ssh" +#"tags" +#"nsapp" +#"method" +#"pve_version" +#If you have any concerns, please review the source code at /misc/build.func +EOF + DIAGNOSTICS="yes" + else + cat </usr/local/community-scripts/diagnostics +DIAGNOSTICS=no + +#This file is used to store the diagnostics settings for the Community-Scripts API. +#https://github.com/community-scripts/ProxmoxVE/discussions/1836 +#Your diagnostics will be sent to the Community-Scripts API for troubleshooting/statistical purposes. +#You can review the data at https://community-scripts.github.io/ProxmoxVE/data +#If you do not wish to send diagnostics, please set the variable 'DIAGNOSTICS' to "no" in /usr/local/community-scripts/diagnostics, or use the menue. +#This will disable the diagnostics feature. +#To send diagnostics, set the variable 'DIAGNOSTICS' to "yes" in /usr/local/community-scripts/diagnostics, or use the menue. +#This will enable the diagnostics feature. +#The following information will be sent: +#"ct_type" +#"disk_size" +#"core_count" +#"ram_size" +#"verbose" +#"os_type" +#"os_version" +#"hn" +#"disableip6" +#"ssh" +#"tags" +#"nsapp" +#"method" +#"pve_version" +#If you have any concerns, please review the source code at /misc/build.func +EOF + DIAGNOSTICS="no" + fi + else + DIAGNOSTICS=$(awk -F '=' '/^DIAGNOSTICS/ {print $2}' /usr/local/community-scripts/diagnostics) + + fi + +} + install_script() { pve_check shell_check @@ -796,6 +908,7 @@ install_script() { arch_check ssh_check maxkeys_check + diagnostics_check if systemctl is-active -q ping-instances.service; then systemctl -q stop ping-instances.service @@ -804,12 +917,14 @@ install_script() { timezone=$(cat /etc/timezone) header_info while true; do + CHOICE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "SETTINGS" --menu "Choose an option:" \ - 12 50 4 \ + 12 50 5 \ "1" "Default Settings" \ "2" "Default Settings (with verbose)" \ "3" "Advanced Settings" \ - "4" "Exit" --nocancel --default-item "1" 3>&1 1>&2 2>&3) + "4" "Diagnostic Settings" \ + "5" "Exit" --nocancel --default-item "1" 3>&1 1>&2 2>&3) if [ $? -ne 0 ]; then echo -e "${CROSS}${RD} Menu canceled. Exiting.${CL}" @@ -817,35 +932,55 @@ install_script() { fi case $CHOICE in - 1) - header_info - echo -e "${DEFAULT}${BOLD}${BL}Using Default Settings on node $PVEHOST_NAME${CL}" - VERB="no" - base_settings "$VERB" - echo_default - break - ;; - 2) - header_info - echo -e "${DEFAULT}${BOLD}${BL}Using Default Settings on node $PVEHOST_NAME (${SEARCH}Verbose)${CL}" - VERB="yes" - base_settings "$VERB" - echo_default - break - ;; - 3) - header_info - echo -e "${ADVANCED}${BOLD}${RD}Using Advanced Settings on node $PVEHOST_NAME${CL}" - advanced_settings - break - ;; - 4) - echo -e "${CROSS}${RD}Exiting.${CL}" - exit 0 - ;; - *) - echo -e "${CROSS}${RD}Invalid option, please try again.${CL}" + 1) + header_info + echo -e "${DEFAULT}${BOLD}${BL}Using Default Settings on node $PVEHOST_NAME${CL}" + VERB="no" + METHOD="default" + base_settings "$VERB" + echo_default + break + ;; + 2) + header_info + echo -e "${DEFAULT}${BOLD}${BL}Using Default Settings on node $PVEHOST_NAME (${SEARCH}Verbose)${CL}" + VERB="yes" + METHOD="default" + base_settings "$VERB" + echo_default + break + ;; + 3) + header_info + echo -e "${ADVANCED}${BOLD}${RD}Using Advanced Settings on node $PVEHOST_NAME${CL}" + METHOD="advanced" + advanced_settings + break + ;; + 4) + if [[ $DIAGNOSTICS == "yes" ]]; then + if whiptail --backtitle "Proxmox VE Helper Scripts" --title "DIAGNOSTICS SETTINGS" --yesno "Send Diagnostics of LXC Installation?\n\nCurrent setting: ${DIAGNOSTICS}" 10 58 \ + --yes-button "No" --no-button "Back" ; then + DIAGNOSTICS="no" + sed -i 's/^DIAGNOSTICS=.*/DIAGNOSTICS=no/' /usr/local/community-scripts/diagnostics + whiptail --backtitle "Proxmox VE Helper Scripts" --title "DIAGNOSTICS SETTINGS" --msgbox "Diagnostics settings changed to ${DIAGNOSTICS}." 8 58 + fi + else + if whiptail --backtitle "Proxmox VE Helper Scripts" --title "DIAGNOSTICS SETTINGS" --yesno "Send Diagnostics of LXC Installation?\n\nCurrent setting: ${DIAGNOSTICS}" 10 58 \ + --yes-button "Yes" --no-button "Back" ; then + DIAGNOSTICS="yes" + sed -i 's/^DIAGNOSTICS=.*/DIAGNOSTICS=yes/' /usr/local/community-scripts/diagnostics + whiptail --backtitle "Proxmox VE Helper Scripts" --title "DIAGNOSTICS SETTINGS" --msgbox "Diagnostics settings changed to ${DIAGNOSTICS}." 8 58 + fi + fi ;; + 5) + echo -e "${CROSS}${RD}Exiting.${CL}" + exit 0 + ;; + *) + echo -e "${CROSS}${RD}Invalid option, please try again.${CL}" + ;; esac done } @@ -911,7 +1046,7 @@ start() { # This function collects user settings and integrates all the collected information. build_container() { -# if [ "$VERB" == "yes" ]; then set -x; fi + # if [ "$VERB" == "yes" ]; then set -x; fi if [ "$CT_TYPE" == "1" ]; then FEATURES="keyctl=1,nesting=1" @@ -919,6 +1054,9 @@ build_container() { FEATURES="nesting=1" fi + if [[ $DIAGNOSTICS == "yes" ]]; then + post_to_api + fi TEMP_DIR=$(mktemp -d) pushd $TEMP_DIR >/dev/null @@ -1012,7 +1150,7 @@ EOF msg_ok "Started LXC Container" if [ "$var_os" == "alpine" ]; then sleep 3 - pct exec "$CTID" -- /bin/sh -c 'cat </etc/apk/repositories + pct exec "$CTID" -- /bin/sh -c 'cat </etc/apk/repositories http://dl-cdn.alpinelinux.org/alpine/latest-stable/main http://dl-cdn.alpinelinux.org/alpine/latest-stable/community EOF' @@ -1027,7 +1165,8 @@ description() { IP=$(pct exec "$CTID" ip a s dev eth0 | awk '/inet / {print $2}' | cut -d/ -f1) # Generate LXC Description - DESCRIPTION=$(cat < Logo @@ -1055,7 +1194,7 @@ description() {
EOF -) + ) # Set Description in LXC pct set "$CTID" -description "$DESCRIPTION" From 0dff2b33634393f13bc097bb30ca6692990bd674 Mon Sep 17 00:00:00 2001 From: "community-scripts-pr-app[bot]" <189241966+community-scripts-pr-app[bot]@users.noreply.github.com> Date: Wed, 29 Jan 2025 14:27:31 +0100 Subject: [PATCH 269/284] Update CHANGELOG.md (#1837) Co-authored-by: github-actions[bot] --- CHANGELOG.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5c7b604eb..5d3ca8939 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,14 @@ All LXC instances created using this repository come pre-installed with Midnight Do not break established syntax in this file, as it is automatically updated by a Github Workflow +## 2025-01-29 + +### Changed + +### 🧰 Maintenance + +- [Diagnostic] Introduced optional lxc install diagnostics via API call [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1801](https://github.com/community-scripts/ProxmoxVE/pull/1801)) + ## 2025-01-28 ### Changed From 20d6162ac187cce6363f5ecfd376b252a61b2aba Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Wed, 29 Jan 2025 14:42:28 +0100 Subject: [PATCH 270/284] New Script: Clean Orphaned LVM (#1838) * New Script: Clean Orphaned LVM * Rename clean_orphaned_lvm.json to clean-orphaned-lvm.json * Rename clean_orphaned_lvm.sh to clean-orphaned-lvm.sh --- json/clean-orphaned-lvm.json | 39 +++++++++++++++++ misc/clean-orphaned-lvm.sh | 83 ++++++++++++++++++++++++++++++++++++ 2 files changed, 122 insertions(+) create mode 100644 json/clean-orphaned-lvm.json create mode 100644 misc/clean-orphaned-lvm.sh diff --git a/json/clean-orphaned-lvm.json b/json/clean-orphaned-lvm.json new file mode 100644 index 000000000..09cb15639 --- /dev/null +++ b/json/clean-orphaned-lvm.json @@ -0,0 +1,39 @@ +{ + "name": "Proxmox Clean Orphaned LVM", + "slug": "clean_orphaned_lvm", + "categories": [ + 1 + ], + "date_created": "2025-01-29", + "type": "misc", + "updateable": false, + "privileged": false, + "interface_port": null, + "documentation": null, + "website": null, + "logo": "https://raw.githubusercontent.com/home-assistant/brands/master/core_integrations/proxmoxve/icon.png", + "description": "This script helps Proxmox users identify and remove orphaned LVM volumes that are no longer associated with any VM or LXC container. It scans all LVM volumes, detects unused ones, and provides an interactive prompt to delete them safely. System-critical volumes like root, swap, and data are excluded to prevent accidental deletion.", + "install_methods": [ + { + "type": "default", + "script": "misc/clean_orphaned_lvm.sh", + "resources": { + "cpu": null, + "ram": null, + "hdd": null, + "os": null, + "version": null + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "Execute within the Proxmox shell", + "type": "info" + } + ] +} diff --git a/misc/clean-orphaned-lvm.sh b/misc/clean-orphaned-lvm.sh new file mode 100644 index 000000000..d8ad78207 --- /dev/null +++ b/misc/clean-orphaned-lvm.sh @@ -0,0 +1,83 @@ +#!/usr/bin/env bash + +# Copyright (c) 2021-2025 community-scripts ORG +# Author: MickLesk (CanbiZ) +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE + +function header_info { + clear + cat <<"EOF" + ____ ________ ____ __ __ __ _ ____ ___ + / __ \_________ _ ______ ___ ____ _ __ / ____/ /__ ____ _____ / __ \_________ / /_ ____ _____ ___ ____/ / / /| | / / |/ /____ + / /_/ / ___/ __ \| |/_/ __ `__ \/ __ \| |/_/ / / / / _ \/ __ `/ __ \ / / / / ___/ __ \/ __ \/ __ `/ __ \/ _ \/ __ / / / | | / / /|_/ / ___/ + / ____/ / / /_/ /> < / /___/ / __/ /_/ / / / / / /_/ / / / /_/ / / / / /_/ / / / / __/ /_/ / / /__| |/ / / / (__ ) +/_/ /_/ \____/_/|_/_/ /_/ /_/\____/_/|_| \____/_/\___/\__,_/_/ /_/ \____/_/ / .___/_/ /_/\__,_/_/ /_/\___/\__,_/ /_____/___/_/ /_/____/ + /_/ +EOF +} + +# Function to check for orphaned LVM volumes +function find_orphaned_lvm { + echo -e "\nπŸ” Scanning for orphaned LVM volumes...\n" + + orphaned_volumes=() + while read -r lv vg size; do + container_id=$(echo "$lv" | grep -oE "[0-9]+" | head -1) + + # Exclude system-critical LVs + if [[ "$lv" == "data" || "$lv" == "root" || "$lv" == "swap" ]]; then + continue + fi + + # Check if the ID exists as a VM or LXC container + if [ -f "/etc/pve/lxc/${container_id}.conf" ] || [ -f "/etc/pve/qemu-server/${container_id}.conf" ]; then + continue + fi + + orphaned_volumes+=("$lv" "$vg" "$size") + done < <(lvs --noheadings -o lv_name,vg_name,lv_size --separator ' ' | awk '{print $1, $2, $3}') + + if [ ${#orphaned_volumes[@]} -eq 0 ]; then + echo -e "βœ… No orphaned LVM volumes found.\n" + exit 0 + fi + + # Display orphaned volumes + echo -e "❗ The following orphaned LVM volumes were found:\n" + printf "%-25s %-10s %-10s\n" "LV Name" "VG" "Size" + printf "%-25s %-10s %-10s\n" "-------------------------" "----------" "----------" + + for ((i = 0; i < ${#orphaned_volumes[@]}; i+=3)); do + printf "%-25s %-10s %-10s\n" "${orphaned_volumes[i]}" "${orphaned_volumes[i+1]}" "${orphaned_volumes[i+2]}" + done + echo "" +} + +# Function to delete selected volumes +function delete_orphaned_lvm { + for ((i = 0; i < ${#orphaned_volumes[@]}; i+=3)); do + lv="${orphaned_volumes[i]}" + vg="${orphaned_volumes[i+1]}" + size="${orphaned_volumes[i+2]}" + + read -p "❓ Do you want to delete $lv (VG: $vg, Size: $size)? [y/N]: " confirm + if [[ "$confirm" =~ ^[Yy]$ ]]; then + echo -e "πŸ—‘οΈ Deleting $lv from $vg..." + lvremove -f "$vg/$lv" + if [ $? -eq 0 ]; then + echo -e "βœ… Successfully deleted $lv.\n" + else + echo -e "❌ Failed to delete $lv.\n" + fi + else + echo -e "⚠️ Skipping $lv.\n" + fi + done +} + +# Run script +header_info +find_orphaned_lvm +delete_orphaned_lvm + +echo -e "βœ… Cleanup process completed!\n" From 85a6819760dc4fc07d4ced1d8ab8f5d9652e9611 Mon Sep 17 00:00:00 2001 From: "community-scripts-pr-app[bot]" <189241966+community-scripts-pr-app[bot]@users.noreply.github.com> Date: Wed, 29 Jan 2025 15:08:18 +0100 Subject: [PATCH 271/284] Update CHANGELOG.md (#1839) Co-authored-by: github-actions[bot] --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5d3ca8939..0a7a42044 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,10 @@ Do not break established syntax in this file, as it is automatically updated by ### Changed +### ✨ New Scripts + +- New Script: Clean Orphaned LVM [@MickLesk](https://github.com/MickLesk) ([#1838](https://github.com/community-scripts/ProxmoxVE/pull/1838)) + ### 🧰 Maintenance - [Diagnostic] Introduced optional lxc install diagnostics via API call [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1801](https://github.com/community-scripts/ProxmoxVE/pull/1801)) From eb9633215c802708300526018e61be30a3b4dd30 Mon Sep 17 00:00:00 2001 From: Michel Roegl-Brunner <73236783+michelroegl-brunner@users.noreply.github.com> Date: Wed, 29 Jan 2025 15:10:12 +0100 Subject: [PATCH 272/284] Update clean-orphaned-lvm.json (#1843) --- json/clean-orphaned-lvm.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/json/clean-orphaned-lvm.json b/json/clean-orphaned-lvm.json index 09cb15639..ef74b68ad 100644 --- a/json/clean-orphaned-lvm.json +++ b/json/clean-orphaned-lvm.json @@ -1,6 +1,6 @@ { "name": "Proxmox Clean Orphaned LVM", - "slug": "clean_orphaned_lvm", + "slug": "clean-orphaned-lvm", "categories": [ 1 ], From 37c72059782aa6a9a2d484852bb72a6624d41496 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Wed, 29 Jan 2025 15:10:37 +0100 Subject: [PATCH 273/284] Update clean-orphaned-lvm.json --- json/clean-orphaned-lvm.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/json/clean-orphaned-lvm.json b/json/clean-orphaned-lvm.json index ef74b68ad..4382ce3f2 100644 --- a/json/clean-orphaned-lvm.json +++ b/json/clean-orphaned-lvm.json @@ -16,7 +16,7 @@ "install_methods": [ { "type": "default", - "script": "misc/clean_orphaned_lvm.sh", + "script": "misc/clean-orphaned-lvm.sh", "resources": { "cpu": null, "ram": null, From cd740e52f41918dc88875138fed4c0f95dfc4a1c Mon Sep 17 00:00:00 2001 From: "community-scripts-pr-app[bot]" <189241966+community-scripts-pr-app[bot]@users.noreply.github.com> Date: Wed, 29 Jan 2025 15:16:47 +0100 Subject: [PATCH 274/284] Update CHANGELOG.md (#1844) Co-authored-by: github-actions[bot] --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0a7a42044..314b05138 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,6 +25,10 @@ Do not break established syntax in this file, as it is automatically updated by - New Script: Clean Orphaned LVM [@MickLesk](https://github.com/MickLesk) ([#1838](https://github.com/community-scripts/ProxmoxVE/pull/1838)) +### 🌐 Website + +- Update clean-orphaned-lvm.json [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1843](https://github.com/community-scripts/ProxmoxVE/pull/1843)) + ### 🧰 Maintenance - [Diagnostic] Introduced optional lxc install diagnostics via API call [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1801](https://github.com/community-scripts/ProxmoxVE/pull/1801)) From 054b569e33708d61ceb37806192cc3a0603e48db Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Wed, 29 Jan 2025 17:21:16 +0100 Subject: [PATCH 275/284] edit --- .github/FUNDING.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 5f1f19727..2f1c07dfc 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1 +1,2 @@ ko_fi: community_scripts +github: community_scripts From 63e3619b68641f468036a48f0e8ca9c9f7b441fe Mon Sep 17 00:00:00 2001 From: Andy Grunwald Date: Wed, 29 Jan 2025 18:41:44 +0100 Subject: [PATCH 276/284] New Script: Prometheus Proxmox VE Exporter (#1805) * New Script: Prometheus Proxmox VE Exporter See https://github.com/prometheus-pve/prometheus-pve-exporter * Fix formatting of config file output after installation * Prometheus Proxmox VE Exporter: Set category 1 for Website * Removed blank lines * Remove `python3-dev`, as it was commented out * Prometheus Proxmox VE Exporter: Move configuration under /opt * Prometheus Proxmox VE Exporter: Add logo * Change `msg_info "Updating Python3"` to `msg_info "Setup Python3"` * Removed empty line * Add note about Proxmox credentials into the website * Temp: Replace GitHub URLs to test my fork * Set correct `APP="Prometheus-PVE-Exporter"` * Add `--root-user-action=ignore` to pip call (as root) * Revert "Temp: Replace GitHub URLs to test my fork" This reverts commit 2308d483763add499c49d874f8f35e3240f1c0f7. --- ct/prometheus-pve-exporter.sh | 57 ++++++++++++++++++ install/prometheus-pve-exporter-install.sh | 70 ++++++++++++++++++++++ json/prometheus-pve-exporter.json | 40 +++++++++++++ 3 files changed, 167 insertions(+) create mode 100644 ct/prometheus-pve-exporter.sh create mode 100644 install/prometheus-pve-exporter-install.sh create mode 100644 json/prometheus-pve-exporter.json diff --git a/ct/prometheus-pve-exporter.sh b/ct/prometheus-pve-exporter.sh new file mode 100644 index 000000000..198e42806 --- /dev/null +++ b/ct/prometheus-pve-exporter.sh @@ -0,0 +1,57 @@ +#!/usr/bin/env bash +source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) +# Copyright (c) 2021-2025 community-scripts ORG +# Author: Andy Grunwald (andygrunwald) +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE +# Source: https://github.com/prometheus-pve/prometheus-pve-exporter + +# App Default Values +APP="Prometheus-PVE-Exporter" +var_tags="monitoring" +var_cpu="1" +var_ram="1024" +var_disk="2" +var_os="debian" +var_version="12" +var_unprivileged="1" + +# App Output & Base Settings +header_info "$APP" +base_settings + +# Core +variables +color +catch_errors + +function update_script() { + header_info + check_container_storage + check_container_resources + if [[ ! -f /etc/systemd/system/prometheus-pve-exporter.service ]]; then + msg_error "No ${APP} Installation Found!" + exit + fi + msg_info "Stopping ${APP}" + systemctl stop prometheus-pve-exporter + msg_ok "Stopped ${APP}" + + msg_info "Updating ${APP}" + pip install prometheus-pve-exporter --upgrade --root-user-action=ignore &>/dev/null + msg_ok "Updated ${APP}" + + msg_info "Starting ${APP}" + systemctl start prometheus-pve-exporter + msg_ok "Started ${APP}" + msg_ok "Updated Successfully" + exit +} + +start +build_container +description + +msg_ok "Completed Successfully!\n" +echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" +echo -e "${INFO}${YW} Access it using the following URL:${CL}" +echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:9221${CL}" \ No newline at end of file diff --git a/install/prometheus-pve-exporter-install.sh b/install/prometheus-pve-exporter-install.sh new file mode 100644 index 000000000..a1e3c8918 --- /dev/null +++ b/install/prometheus-pve-exporter-install.sh @@ -0,0 +1,70 @@ +#!/usr/bin/env bash + +# Copyright (c) 2021-2025 community-scripts ORG +# Author: Andy Grunwald (andygrunwald) +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE +# Source: https://github.com/prometheus-pve/prometheus-pve-exporter + +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 \ + sudo \ + mc +msg_ok "Installed Dependencies" + +msg_info "Setup Python3" +$STD apt-get install -y \ + python3 \ + python3-pip +rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED +msg_ok "Setup Python3" + +msg_info "Installing Prometheus Proxmox VE Exporter" +python3 -m pip install --quiet --root-user-action=ignore prometheus-pve-exporter +mkdir -p /opt/prometheus-pve-exporter +cat < /opt/prometheus-pve-exporter/pve.yml +default: + user: prometheus@pve + password: sEcr3T! + verify_ssl: false +EOF +msg_ok "Installed Prometheus Proxmox VE Exporter" + +msg_info "Creating Service" +cat </etc/systemd/system/prometheus-pve-exporter.service +[Unit] +Description=Prometheus Proxmox VE Exporter +Documentation=https://github.com/znerol/prometheus-pve-exporter +After=syslog.target network.target + +[Service] +User=root +Restart=always +Type=simple +ExecStart=pve_exporter \ + --config.file=/opt/prometheus-pve-exporter/pve.yml \ + --web.listen-address=0.0.0.0:9221 +ExecReload=/bin/kill -HUP \$MAINPID + +[Install] +WantedBy=multi-user.target +EOF + +systemctl enable -q --now prometheus-pve-exporter +msg_ok "Created Service" + +motd_ssh +customize + +msg_info "Cleaning up" +$STD apt-get -y autoremove +$STD apt-get -y autoclean +msg_ok "Cleaned" diff --git a/json/prometheus-pve-exporter.json b/json/prometheus-pve-exporter.json new file mode 100644 index 000000000..cc028b4b3 --- /dev/null +++ b/json/prometheus-pve-exporter.json @@ -0,0 +1,40 @@ +{ + "name": "Prometheus Proxmox VE Exporter", + "slug": "prometheus-proxmox-ve-exporter", + "categories": [ + 1, + 9 + ], + "date_created": "2025-01-28", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 9221, + "documentation": "https://github.com/prometheus-pve/prometheus-pve-exporter", + "website": "https://github.com/prometheus-pve/prometheus-pve-exporter", + "logo": "https://raw.githubusercontent.com/home-assistant/brands/master/core_integrations/proxmoxve/icon.png", + "description": "An exporter that exposes information gathered from Proxmox VE node for use by the Prometheus monitoring system.", + "install_methods": [ + { + "type": "default", + "script": "ct/prometheus-pve-exporter.sh", + "resources": { + "cpu": 1, + "ram": 1024, + "hdd": 2, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "Please adjust the Proxmox credentials in the configuration file: /opt/prometheus-pve-exporter/pve.yml", + "type": "info" + } + ] +} \ No newline at end of file From 3fa4cf6e07645208404b927b0939b6dd331aa23b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 29 Jan 2025 18:43:09 +0100 Subject: [PATCH 277/284] Update .app files (#1846) Co-authored-by: GitHub Actions --- ct/headers/prometheus-pve-exporter | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 ct/headers/prometheus-pve-exporter diff --git a/ct/headers/prometheus-pve-exporter b/ct/headers/prometheus-pve-exporter new file mode 100644 index 000000000..35d5d2157 --- /dev/null +++ b/ct/headers/prometheus-pve-exporter @@ -0,0 +1,12 @@ + ____ __ __ ____ + / __ \_________ ____ ___ ___ / /_/ /_ ___ __ _______ / __ \ + / /_/ / ___/ __ \/ __ `__ \/ _ \/ __/ __ \/ _ \/ / / / ___/_____/ /_/ / + / ____/ / / /_/ / / / / / / __/ /_/ / / / __/ /_/ (__ )_____/ ____/ +/_/ /_/ \____/_/ /_/ /_/\___/\__/_/ /_/\___/\__,_/____/ /_/ + + _ ________ ______ __ +| | / / ____/ / ____/ ______ ____ _____/ /____ _____ +| | / / __/______/ __/ | |/_/ __ \/ __ \/ ___/ __/ _ \/ ___/ +| |/ / /__/_____/ /____> Date: Wed, 29 Jan 2025 18:43:59 +0100 Subject: [PATCH 278/284] Update CHANGELOG.md (#1847) Co-authored-by: github-actions[bot] --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 314b05138..245c29367 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,7 @@ Do not break established syntax in this file, as it is automatically updated by ### ✨ New Scripts +- New Script: Prometheus Proxmox VE Exporter [@andygrunwald](https://github.com/andygrunwald) ([#1805](https://github.com/community-scripts/ProxmoxVE/pull/1805)) - New Script: Clean Orphaned LVM [@MickLesk](https://github.com/MickLesk) ([#1838](https://github.com/community-scripts/ProxmoxVE/pull/1838)) ### 🌐 Website From 139f84a934bc39c394e053fdc3d41c1e2e19fc50 Mon Sep 17 00:00:00 2001 From: Michel Roegl-Brunner <73236783+michelroegl-brunner@users.noreply.github.com> Date: Wed, 29 Jan 2025 19:07:31 +0100 Subject: [PATCH 279/284] [Frontend] Add /data to show API results (#1841) * [Frontend] Add /data to show API results * [Frontend] Add /data to show API results * update page.tsx * update page.tsx * update page.tsx * update page.tsx --- frontend/package-lock.json | 53 +++++++- frontend/package.json | 1 + frontend/src/app/data/page.tsx | 236 +++++++++++++++++++++++++++++++++ 3 files changed, 287 insertions(+), 3 deletions(-) create mode 100644 frontend/src/app/data/page.tsx diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 024cb74ba..af124282a 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -38,6 +38,7 @@ "prettier-plugin-organize-imports": "^4.1.0", "react": "19.0.0-rc-02c0e824-20241028", "react-code-blocks": "^0.1.6", + "react-datepicker": "^7.6.0", "react-day-picker": "8.10.1", "react-dom": "19.0.0-rc-02c0e824-20241028", "react-icons": "^5.1.0", @@ -1083,9 +1084,9 @@ } }, "node_modules/@floating-ui/utils": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.8.tgz", - "integrity": "sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==", + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.9.tgz", + "integrity": "sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==", "license": "MIT" }, "node_modules/@humanfs/core": { @@ -8017,6 +8018,46 @@ "react": ">=16" } }, + "node_modules/react-datepicker": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/react-datepicker/-/react-datepicker-7.6.0.tgz", + "integrity": "sha512-9cQH6Z/qa4LrGhzdc3XoHbhrxNcMi9MKjZmYgF/1MNNaJwvdSjv3Xd+jjvrEEbKEf71ZgCA3n7fQbdwd70qCRw==", + "license": "MIT", + "dependencies": { + "@floating-ui/react": "^0.27.0", + "clsx": "^2.1.1", + "date-fns": "^3.6.0" + }, + "peerDependencies": { + "react": "^16.9.0 || ^17 || ^18 || ^19 || ^19.0.0-rc", + "react-dom": "^16.9.0 || ^17 || ^18 || ^19 || ^19.0.0-rc" + } + }, + "node_modules/react-datepicker/node_modules/@floating-ui/react": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.27.3.tgz", + "integrity": "sha512-CLHnes3ixIFFKVQDdICjel8muhFLOBdQH7fgtHNPY8UbCNqbeKZ262G7K66lGQOUQWWnYocf7ZbUsLJgGfsLHg==", + "license": "MIT", + "dependencies": { + "@floating-ui/react-dom": "^2.1.2", + "@floating-ui/utils": "^0.2.9", + "tabbable": "^6.0.0" + }, + "peerDependencies": { + "react": ">=17.0.0", + "react-dom": ">=17.0.0" + } + }, + "node_modules/react-datepicker/node_modules/date-fns": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-3.6.0.tgz", + "integrity": "sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/kossnocorp" + } + }, "node_modules/react-day-picker": { "version": "8.10.1", "resolved": "https://registry.npmjs.org/react-day-picker/-/react-day-picker-8.10.1.tgz", @@ -9055,6 +9096,12 @@ "dev": true, "license": "MIT" }, + "node_modules/tabbable": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz", + "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==", + "license": "MIT" + }, "node_modules/tailwind-merge": { "version": "2.5.4", "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.5.4.tgz", diff --git a/frontend/package.json b/frontend/package.json index 2309f43c5..e689ba4c0 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -49,6 +49,7 @@ "prettier-plugin-organize-imports": "^4.1.0", "react": "19.0.0-rc-02c0e824-20241028", "react-code-blocks": "^0.1.6", + "react-datepicker": "^7.6.0", "react-day-picker": "8.10.1", "react-dom": "19.0.0-rc-02c0e824-20241028", "react-icons": "^5.1.0", diff --git a/frontend/src/app/data/page.tsx b/frontend/src/app/data/page.tsx new file mode 100644 index 000000000..5fc44bc1f --- /dev/null +++ b/frontend/src/app/data/page.tsx @@ -0,0 +1,236 @@ +"use client"; + +import React, { useEffect, useState } from "react"; +import DatePicker from 'react-datepicker'; +import 'react-datepicker/dist/react-datepicker.css'; +import { string } from "zod"; + + +interface DataModel { + id: number; + ct_type: number; + disk_size: number; + core_count: number; + ram_size: number; + verbose: string; + os_type: string; + os_version: string; + hn: string; + disableip6: string; + ssh: string; + tags: string; + nsapp: string; + created_at: string; + method: string; + pve_version: string; +} + + +const DataFetcher: React.FC = () => { + const [data, setData] = useState([]); + const [loading, setLoading] = useState(true); + const [error, setError] = useState(null); + const [searchQuery, setSearchQuery] = useState(''); + const [startDate, setStartDate] = useState(null); + const [endDate, setEndDate] = useState(null); + const [sortConfig, setSortConfig] = useState<{ key: keyof DataModel | null, direction: 'ascending' | 'descending' }>({ key: 'id', direction: 'descending' }); + const [itemsPerPage, setItemsPerPage] = useState(5); + const [currentPage, setCurrentPage] = useState(1); + + useEffect(() => { + const fetchData = async () => { + try { + const response = await fetch("http://api.htl-braunau.at/data/json"); + if (!response.ok) throw new Error("Failed to fetch data: ${response.statusText}"); + const result: DataModel[] = await response.json(); + setData(result); + } catch (err) { + setError((err as Error).message); + } finally { + setLoading(false); + } + }; + + fetchData(); + }, []); + + + const filteredData = data.filter(item => { + const matchesSearchQuery = Object.values(item).some(value => + value.toString().toLowerCase().includes(searchQuery.toLowerCase()) + ); + const itemDate = new Date(item.created_at); + const matchesDateRange = (!startDate || itemDate >= startDate) && (!endDate || itemDate <= endDate); + return matchesSearchQuery && matchesDateRange; + }); + + const sortedData = React.useMemo(() => { + let sortableData = [...filteredData]; + if (sortConfig.key !== null) { + sortableData.sort((a, b) => { + if (sortConfig.key !== null && a[sortConfig.key] < b[sortConfig.key]) { + return sortConfig.direction === 'ascending' ? -1 : 1; + } + if (sortConfig.key !== null && a[sortConfig.key] > b[sortConfig.key]) { + return sortConfig.direction === 'ascending' ? 1 : -1; + } + return 0; + }); + } + return sortableData; + }, [filteredData, sortConfig]); + + const requestSort = (key: keyof DataModel | null) => { + let direction: 'ascending' | 'descending' = 'ascending'; + if (sortConfig.key === key && sortConfig.direction === 'ascending') { + direction = 'descending'; + } else if (sortConfig.key === key && sortConfig.direction === 'descending') { + direction = 'ascending'; + } else { + direction = 'descending'; + } + setSortConfig({ key, direction }); + }; + + interface SortConfig { + key: keyof DataModel | null; + direction: 'ascending' | 'descending'; + } + + const formatDate = (dateString: string): string => { + const date = new Date(dateString); + const year = date.getFullYear(); + const month = date.getMonth() + 1; + const day = date.getDate(); + const hours = String(date.getHours()).padStart(2, '0'); + const minutes = String(date.getMinutes()).padStart(2, '0'); + const timezoneOffset = dateString.slice(-6); + return `${day}.${month}.${year} ${hours}:${minutes} ${timezoneOffset} GMT`; + }; + + const handleItemsPerPageChange = (event: React.ChangeEvent) => { + setItemsPerPage(Number(event.target.value)); + setCurrentPage(1); + }; + + const paginatedData = sortedData.slice((currentPage - 1) * itemsPerPage, currentPage * itemsPerPage); + + if (loading) return

Loading...

; + if (error) return

Error: {error}

; + + + return ( +
+

Created LXCs

+
+
+ setSearchQuery(e.target.value)} + className="p-2 border" + /> + +
+
+ setStartDate(date)} + selectsStart + startDate={startDate} + endDate={endDate} + placeholderText="Start date" + className="p-2 border" + /> + +
+ +
+ setEndDate(date)} + selectsEnd + startDate={startDate} + endDate={endDate} + placeholderText="End date" + className="p-2 border" + /> + +
+
+
+

{filteredData.length} results found

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + {paginatedData.map((item, index) => ( + + + + + + + + + + + + + + + + ))} + +
requestSort('nsapp')}>Application requestSort('os_type')}>OS requestSort('os_version')}>OS Version requestSort('disk_size')}>Disk Size requestSort('core_count')}>Core Count requestSort('ram_size')}>RAM Size requestSort('hn')}>Hostname requestSort('ssh')}>SSH requestSort('verbose')}>Verb requestSort('tags')}>Tags requestSort('method')}>Method requestSort('pve_version')}>PVE Version requestSort('created_at')}>Created At
{item.nsapp}{item.os_type}{item.os_version}{item.disk_size}{item.core_count}{item.ram_size}{item.hn}{item.ssh}{item.verbose}{item.tags.replace(/;/g, ' ')}{item.method}{item.pve_version}{formatDate(item.created_at)}
+
+
+
+ + Page {currentPage} + +
+
+ ); +}; + + + +export default DataFetcher; From ca7fb9b929dd4967c962d4718072d8fb5643aab1 Mon Sep 17 00:00:00 2001 From: "community-scripts-pr-app[bot]" <189241966+community-scripts-pr-app[bot]@users.noreply.github.com> Date: Wed, 29 Jan 2025 19:08:37 +0100 Subject: [PATCH 280/284] Update CHANGELOG.md (#1848) Co-authored-by: github-actions[bot] --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 245c29367..15ff37c3a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,6 +28,7 @@ Do not break established syntax in this file, as it is automatically updated by ### 🌐 Website +- [Frontend] Add /data to show API results [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1841](https://github.com/community-scripts/ProxmoxVE/pull/1841)) - Update clean-orphaned-lvm.json [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1843](https://github.com/community-scripts/ProxmoxVE/pull/1843)) ### 🧰 Maintenance From 6fa540f0da8451169352cabcdc84e2477122f46a Mon Sep 17 00:00:00 2001 From: Michel Roegl-Brunner <73236783+michelroegl-brunner@users.noreply.github.com> Date: Wed, 29 Jan 2025 19:37:45 +0100 Subject: [PATCH 281/284] Patch http Url in build.func and /data/page.tsx (#1849) --- frontend/src/app/data/page.tsx | 2 +- misc/build.func | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/src/app/data/page.tsx b/frontend/src/app/data/page.tsx index 5fc44bc1f..59be8a01d 100644 --- a/frontend/src/app/data/page.tsx +++ b/frontend/src/app/data/page.tsx @@ -40,7 +40,7 @@ const DataFetcher: React.FC = () => { useEffect(() => { const fetchData = async () => { try { - const response = await fetch("http://api.htl-braunau.at/data/json"); + const response = await fetch("https://api.htl-braunau.at/data/json"); if (!response.ok) throw new Error("Failed to fetch data: ${response.statusText}"); const result: DataModel[] = await response.json(); setData(result); diff --git a/misc/build.func b/misc/build.func index 42e18452f..91efaba56 100644 --- a/misc/build.func +++ b/misc/build.func @@ -792,7 +792,7 @@ advanced_settings() { } post_to_api() { - local API_URL="http://api.community-scripts.org/upload" + local API_URL="https://api.community-scripts.org/upload" local pve_version="not found" pve_version=$(pveversion | awk -F'[/ ]' '{print $2}') From 1093fef23cb5a0a02641f7348cacc45c01c64ca6 Mon Sep 17 00:00:00 2001 From: "community-scripts-pr-app[bot]" <189241966+community-scripts-pr-app[bot]@users.noreply.github.com> Date: Wed, 29 Jan 2025 19:49:37 +0100 Subject: [PATCH 282/284] Update CHANGELOG.md (#1850) Co-authored-by: github-actions[bot] --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 15ff37c3a..28a99de5f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,6 +28,7 @@ Do not break established syntax in this file, as it is automatically updated by ### 🌐 Website +- Patch http Url to https in build.func and /data/page.tsx [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1849](https://github.com/community-scripts/ProxmoxVE/pull/1849)) - [Frontend] Add /data to show API results [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1841](https://github.com/community-scripts/ProxmoxVE/pull/1841)) - Update clean-orphaned-lvm.json [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1843](https://github.com/community-scripts/ProxmoxVE/pull/1843)) From 8c4e97d6cb66e8fdf590cf1d63e403f71f3f9cbb Mon Sep 17 00:00:00 2001 From: Michel Roegl-Brunner <73236783+michelroegl-brunner@users.noreply.github.com> Date: Wed, 29 Jan 2025 20:00:02 +0100 Subject: [PATCH 283/284] Update build.func (#1851) --- misc/build.func | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/misc/build.func b/misc/build.func index 91efaba56..42e18452f 100644 --- a/misc/build.func +++ b/misc/build.func @@ -792,7 +792,7 @@ advanced_settings() { } post_to_api() { - local API_URL="https://api.community-scripts.org/upload" + local API_URL="http://api.community-scripts.org/upload" local pve_version="not found" pve_version=$(pveversion | awk -F'[/ ]' '{print $2}') From e51c121af2f8e262eaa29eb38a3290573d0859eb Mon Sep 17 00:00:00 2001 From: "community-scripts-pr-app[bot]" <189241966+community-scripts-pr-app[bot]@users.noreply.github.com> Date: Wed, 29 Jan 2025 21:11:09 +0100 Subject: [PATCH 284/284] Update CHANGELOG.md (#1852) Co-authored-by: github-actions[bot] --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 28a99de5f..d4eb65f81 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -34,6 +34,7 @@ Do not break established syntax in this file, as it is automatically updated by ### 🧰 Maintenance +- Update build.func [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1851](https://github.com/community-scripts/ProxmoxVE/pull/1851)) - [Diagnostic] Introduced optional lxc install diagnostics via API call [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1801](https://github.com/community-scripts/ProxmoxVE/pull/1801)) ## 2025-01-28