From e2c329b9c726a66b6cd1373c1e2de5775999cb39 Mon Sep 17 00:00:00 2001 From: Camron B Date: Tue, 21 Jan 2025 22:47:36 -0700 Subject: [PATCH 01/58] 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 497f90a8..08198556 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 02/58] 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 cd68a8a2..05059fc7 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 03/58] 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 1dc8cc04..736f6133 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 04/58] 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 63f8e01f..19afa300 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 05/58] 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 19afa300..440e3c3f 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 08198556..818b88c4 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 06/58] 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 d6f5f29c..82bd7238 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 07/58] 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 440e3c3f..976da387 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 08/58] 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 976da387..5b9a7145 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 09/58] 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 5b9a7145..5680fb00 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 10/58] 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 2de0eca5..b5310721 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 11/58] 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 5680fb00..8043310b 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 12/58] 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 8043310b..82ceeec9 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 13/58] 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 0851bc68..27d3a38b 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 14/58] 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 736f6133..ce156b95 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 15/58] 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 ce156b95..92bd05c6 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 16/58] 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 92bd05c6..82adda21 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 17/58] 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 f0a43916..c8602222 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 18/58] 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 c6fad745..69f8fb10 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 38a93803..56062d6f 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 5a8e2fa7..5cc75fe1 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 19/58] Update CHANGELOG.md (#1680) --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 27d3a38b..9b906dd1 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 20/58] 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 24f9dce2..3680210f 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 21/58] Update CHANGELOG.md (#1683) --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9b906dd1..6a4e05e3 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 22/58] 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 00000000..23178b11 --- /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 23/58] 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 23178b11..991447f7 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 24/58] 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 991447f7..90c232c0 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 25/58] 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 90c232c0..611c28a2 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 26/58] 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 611c28a2..edf62ac8 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 27/58] 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 edf62ac8..171912a8 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 28/58] 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 171912a8..a49bdc5e 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 29/58] 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 a49bdc5e..f12990ff 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 30/58] 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 f12990ff..159902a4 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 42/58] 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 efb63296..c1ad9aa8 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 43/58] 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 42752f81..4d6c6a3a 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 44/58] 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 c1ad9aa8..336fa6c5 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 45/58] 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 336fa6c5..094c1419 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 46/58] Update CHANGELOG.md (#1689) --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index bada3f55..e1713056 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 47/58] 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 094c1419..0ba6b650 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 48/58] 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 4d6c6a3a..93d305af 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 49/58] 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 0ba6b650..a6af3070 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 50/58] 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 a6af3070..7aaa8248 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 51/58] 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 7aaa8248..6050f4ae 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 52/58] 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 93d305af..16c56ead 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 53/58] 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 57d373fd..857c0ad6 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 54/58] 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 e1713056..fe4c9748 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 55/58] 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 1c418c94..cf5edfb2 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 56/58] 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 fe4c9748..8378a2b4 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 57/58] 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 e9267b7a..ef98462f 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 58/58] Update CHANGELOG.md (#1702) --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8378a2b4..aaba48e6 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