diff --git a/CHANGELOG.md b/CHANGELOG.md index e4706d9e1..bc80e0b10 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,8 +14,55 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit All LXC instances created using this repository come pre-installed with Midnight Commander, which is a command-line tool (`mc`) that offers a user-friendly file and directory management interface for the terminal environment. +## 2025-07-01 + +## 2025-06-30 + +### 🆕 New Scripts + + - Alpine Syncthing [@MickLesk](https://github.com/MickLesk) ([#5586](https://github.com/community-scripts/ProxmoxVE/pull/5586)) +- Kapowarr ([#5584](https://github.com/community-scripts/ProxmoxVE/pull/5584)) + +### 🚀 Updated Scripts + + - Fixing Cloudflare DDNS - lack of resources [@meszolym](https://github.com/meszolym) ([#5600](https://github.com/community-scripts/ProxmoxVE/pull/5600)) + + - #### 🐞 Bug Fixes + + - Immich: make changes to automatically enable QuickSync [@vhsdream](https://github.com/vhsdream) ([#5560](https://github.com/community-scripts/ProxmoxVE/pull/5560)) + - Apache Guacamole: Install auth-jdbc component that matches release version [@tremor021](https://github.com/tremor021) ([#5563](https://github.com/community-scripts/ProxmoxVE/pull/5563)) + + - #### ✨ New Features + + - tools.func: optimize binary installs with fetch_and_deploy helper [@MickLesk](https://github.com/MickLesk) ([#5588](https://github.com/community-scripts/ProxmoxVE/pull/5588)) + - [core]: add ipv6 configuration support [@MickLesk](https://github.com/MickLesk) ([#5575](https://github.com/community-scripts/ProxmoxVE/pull/5575)) + ## 2025-06-29 +### 🚀 Updated Scripts + + - #### 🐞 Bug Fixes + + - Linkwarden: Add backing up of data folder to the update function [@tremor021](https://github.com/tremor021) ([#5548](https://github.com/community-scripts/ProxmoxVE/pull/5548)) + + - #### ✨ New Features + + - Add cron-job api-key env variable to homarr script [@Meierschlumpf](https://github.com/Meierschlumpf) ([#5204](https://github.com/community-scripts/ProxmoxVE/pull/5204)) + +### 🧰 Maintenance + + - #### 📝 Documentation + + - update readme with valid discord link. other one expired [@BramSuurdje](https://github.com/BramSuurdje) ([#5567](https://github.com/community-scripts/ProxmoxVE/pull/5567)) + +### 🌐 Website + + - Update script-item.tsx [@ape364](https://github.com/ape364) ([#5549](https://github.com/community-scripts/ProxmoxVE/pull/5549)) + + - #### 🐞 Bug Fixes + + - fix bug in tooltip that would always render 'updateable' [@BramSuurdje](https://github.com/BramSuurdje) ([#5552](https://github.com/community-scripts/ProxmoxVE/pull/5552)) + ## 2025-06-28 ### 🚀 Updated Scripts diff --git a/ct/alpine-syncthing.sh b/ct/alpine-syncthing.sh new file mode 100644 index 000000000..3d41f5dba --- /dev/null +++ b/ct/alpine-syncthing.sh @@ -0,0 +1,45 @@ +#!/usr/bin/env bash +source <(curl -fsSL 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 +# Source: https://syncthing.net/ + +APP="Alpine-Syncthing" +var_tags="${var_tags:-alpine;networking}" +var_cpu="${var_cpu:-1}" +var_ram="${var_ram:-256}" +var_disk="${var_disk:-1}" +var_os="${var_os:-alpine}" +var_version="${var_version:-3.22}" +var_unprivileged="${var_unprivileged:-1}" + +header_info "$APP" +variables +color +catch_errors + +function update_script() { + msg_info "Updating Alpine Packages" + $STD apk -U upgrade + msg_ok "Updated Alpine Packages" + + msg_info "Updating Syncthing" + $STD apk upgrade syncthing + msg_ok "Updated Syncthing" + + msg_info "Restarting Syncthing" + $STD rc-service syncthing restart + msg_ok "Restarted Syncthing" + + exit 1 +} + +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}:8384${CL}" diff --git a/ct/cloudflare-ddns.sh b/ct/cloudflare-ddns.sh index 40511f698..1ff2a3668 100644 --- a/ct/cloudflare-ddns.sh +++ b/ct/cloudflare-ddns.sh @@ -7,8 +7,8 @@ source <(curl -fsSL https://raw.githubusercontent.com/asylumexp/Proxmox/main/mis APP="Cloudflare-DDNS" var_tags="${var_tags:-network}" -var_cpu="${var_cpu:-1}" -var_ram="${var_ram:-512}" +var_cpu="${var_cpu:-2}" +var_ram="${var_ram:-1024}" var_disk="${var_disk:-3}" var_os="${var_os:-debian}" var_version="${var_version:-12}" diff --git a/ct/headers/alpine-syncthing b/ct/headers/alpine-syncthing new file mode 100644 index 000000000..8d684d61b --- /dev/null +++ b/ct/headers/alpine-syncthing @@ -0,0 +1,6 @@ + ___ __ _ _____ __ __ _ + / | / /___ (_)___ ___ / ___/__ ______ _____/ /_/ /_ (_)___ ____ _ + / /| | / / __ \/ / __ \/ _ \______\__ \/ / / / __ \/ ___/ __/ __ \/ / __ \/ __ `/ + / ___ |/ / /_/ / / / / / __/_____/__/ / /_/ / / / / /__/ /_/ / / / / / / / /_/ / +/_/ |_/_/ .___/_/_/ /_/\___/ /____/\__, /_/ /_/\___/\__/_/ /_/_/_/ /_/\__, / + /_/ /____/ /____/ diff --git a/ct/headers/kapowarr b/ct/headers/kapowarr new file mode 100644 index 000000000..e127f3647 --- /dev/null +++ b/ct/headers/kapowarr @@ -0,0 +1,6 @@ + __ __ + / //_/___ _____ ____ _ ______ ___________ + / ,< / __ `/ __ \/ __ \ | /| / / __ `/ ___/ ___/ + / /| / /_/ / /_/ / /_/ / |/ |/ / /_/ / / / / +/_/ |_\__,_/ .___/\____/|__/|__/\__,_/_/ /_/ + /_/ diff --git a/ct/homarr.sh b/ct/homarr.sh index afa498a7e..10484bd64 100644 --- a/ct/homarr.sh +++ b/ct/homarr.sh @@ -48,6 +48,7 @@ source /opt/homarr/.env set +a export DB_DIALECT='sqlite' export AUTH_SECRET=$(openssl rand -base64 32) +export CRON_JOB_API_KEY=$(openssl rand -base64 32) node /opt/homarr_db/migrations/$DB_DIALECT/migrate.cjs /opt/homarr_db/migrations/$DB_DIALECT for dir in $(find /opt/homarr_db/migrations/migrations -mindepth 1 -maxdepth 1 -type d); do dirname=$(basename "$dir") @@ -114,6 +115,7 @@ source /opt/homarr/.env set +a export DB_DIALECT='sqlite' export AUTH_SECRET=$(openssl rand -base64 32) +export CRON_JOB_API_KEY=$(openssl rand -base64 32) node /opt/homarr_db/migrations/$DB_DIALECT/migrate.cjs /opt/homarr_db/migrations/$DB_DIALECT for dir in $(find /opt/homarr_db/migrations/migrations -mindepth 1 -maxdepth 1 -type d); do dirname=$(basename "$dir") diff --git a/ct/kapowarr.sh b/ct/kapowarr.sh new file mode 100644 index 000000000..d3104fed4 --- /dev/null +++ b/ct/kapowarr.sh @@ -0,0 +1,66 @@ +#!/usr/bin/env bash +source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) +# Copyright (c) 2021-2025 community-scripts ORG +# Author: Slaviša Arežina (tremor021) +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE +# Source: https://github.com/Casvt/Kapowarr + +APP="Kapowarr" +var_tags="${var_tags:-Arr}" +var_cpu="${var_cpu:-1}" +var_ram="${var_ram:-256}" +var_disk="${var_disk:-2}" +var_os="${var_os:-debian}" +var_version="${var_version:-12}" +var_unprivileged="${var_unprivileged:-1}" + +header_info "$APP" +variables +color +catch_errors + +function update_script() { + header_info + check_container_storage + check_container_resources + + if [[ ! -f /etc/systemd/system/kapowarr.service ]]; then + msg_error "No ${APP} Installation Found!" + exit + fi + RELEASE=$(curl -s https://api.github.com/repos/Casvt/Kapowarr/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }') + if [[ "${RELEASE}" != "$(cat $HOME/.kapowarr)" ]] || [[ ! -f $HOME/.kapowarr ]]; then + setup_uv + + msg_info "Stopping $APP" + systemctl stop kapowarr + msg_ok "Stopped $APP" + + msg_info "Creating Backup" + mv /opt/kapowarr/db /opt/ + msg_ok "Backup Created" + + fetch_and_deploy_gh_release "kapowarr" "Casvt/Kapowarr" + msg_info "Updating $APP to ${RELEASE}" + mv /opt/db /opt/kapowarr + msg_ok "Updated $APP to ${RELEASE}" + + msg_info "Starting $APP" + systemctl start kapowarr + msg_ok "Started $APP" + + 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} Access it using the following URL:${CL}" +echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:5656${CL}" diff --git a/ct/linkwarden.sh b/ct/linkwarden.sh index a111ffd8b..012dff37a 100644 --- a/ct/linkwarden.sh +++ b/ct/linkwarden.sh @@ -37,6 +37,7 @@ function update_script() { msg_info "Updating ${APP} to ${RELEASE}" mv /opt/linkwarden/.env /opt/.env + [ -d /opt/linkwarden/data ] && mv /opt/linkwarden/data /opt/data.bak rm -rf /opt/linkwarden fetch_and_deploy_gh_release "linkwarden" "linkwarden/linkwarden" cd /opt/linkwarden @@ -47,6 +48,7 @@ function update_script() { $STD yarn prisma:generate $STD yarn web:build $STD yarn prisma:deploy + [ -d /opt/data.bak ] && mv /opt/data.bak /opt/linkwarden/data msg_ok "Updated ${APP} to ${RELEASE}" msg_info "Starting ${APP}" diff --git a/frontend/public/json/cloudflare-ddns.json b/frontend/public/json/cloudflare-ddns.json index 54fb39952..cb0c4a3d3 100644 --- a/frontend/public/json/cloudflare-ddns.json +++ b/frontend/public/json/cloudflare-ddns.json @@ -19,8 +19,8 @@ "type": "default", "script": "ct/cloudflare-ddns.sh", "resources": { - "cpu": 1, - "ram": 512, + "cpu": 2, + "ram": 1024, "hdd": 2, "os": "Debian", "version": "12" diff --git a/frontend/public/json/kapowarr.json b/frontend/public/json/kapowarr.json new file mode 100644 index 000000000..6468f1eac --- /dev/null +++ b/frontend/public/json/kapowarr.json @@ -0,0 +1,35 @@ +{ + "name": "Kapowarr", + "slug": "kapowarr", + "categories": [ + 14 + ], + "date_created": "2025-06-30", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 5656, + "documentation": "https://casvt.github.io/Kapowarr/general_info/workings/", + "website": "https://casvt.github.io/Kapowarr/", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/kapowarr.webp", + "config_path": "", + "description": "Kapowarr allows you to build a digital library of comics. You can add volumes, map them to a folder and start managing! Download, rename, move and convert issues of the volume (including TPB's, One Shots, Hard Covers, and more). The whole process is automated and can be customised in the settings.", + "install_methods": [ + { + "type": "default", + "script": "ct/kapowarr.sh", + "resources": { + "cpu": 1, + "ram": 256, + "hdd": 2, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] +} diff --git a/frontend/public/json/syncthing.json b/frontend/public/json/syncthing.json index b6a195b99..4cc6cae25 100644 --- a/frontend/public/json/syncthing.json +++ b/frontend/public/json/syncthing.json @@ -12,7 +12,7 @@ "documentation": null, "website": "https://syncthing.net/", "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/syncthing.webp", - "config_path": "/root/.local/state/syncthing/config.xml", + "config_path": "/root/.local/state/syncthing/config.xml - Alpine: /var/lib/syncthing/.local/state/syncthing/config.xml", "description": "Syncthing is an open-source file syncing tool that allows users to keep their files in sync across multiple devices by using peer-to-peer synchronization. It doesn't rely on any central server, so all data transfers are directly between devices.", "install_methods": [ { @@ -25,8 +25,19 @@ "os": "debian", "version": "12" } - } - ], + }, + { + "type": "alpine", + "script": "ct/alpine-syncthing.sh", + "resources": { + "cpu": 1, + "ram": 256, + "hdd": 1, + "os": "alpine", + "version": "3.22" + } + } + ], "default_credentials": { "username": null, "password": null diff --git a/frontend/public/json/versions.json b/frontend/public/json/versions.json index 48f4e6a2f..fd51efbb8 100644 --- a/frontend/public/json/versions.json +++ b/frontend/public/json/versions.json @@ -1,13 +1,123 @@ [ + { + "name": "MagicMirrorOrg/MagicMirror", + "version": "v2.32.0", + "date": "2025-06-30T22:12:48Z" + }, + { + "name": "mongodb/mongo", + "version": "r8.0.11", + "date": "2025-06-30T20:30:31Z" + }, + { + "name": "docker/compose", + "version": "v2.38.1", + "date": "2025-06-30T20:07:35Z" + }, { "name": "home-assistant/core", "version": "2025.6.3", "date": "2025-06-24T13:00:12Z" }, + { + "name": "rcourtman/Pulse", + "version": "v3.33.1", + "date": "2025-06-30T11:29:32Z" + }, + { + "name": "jhuckaby/Cronicle", + "version": "v0.9.81", + "date": "2025-06-30T16:40:33Z" + }, + { + "name": "ollama/ollama", + "version": "v0.9.4-rc2", + "date": "2025-06-27T18:45:33Z" + }, + { + "name": "prometheus/prometheus", + "version": "v2.53.5", + "date": "2025-06-30T11:01:12Z" + }, + { + "name": "n8n-io/n8n", + "version": "n8n@1.100.0", + "date": "2025-06-23T12:48:35Z" + }, + { + "name": "jupyter/notebook", + "version": "v7.4.4", + "date": "2025-06-30T13:04:22Z" + }, + { + "name": "keycloak/keycloak", + "version": "26.3.0", + "date": "2025-06-30T12:53:32Z" + }, + { + "name": "Graylog2/graylog2-server", + "version": "6.3.0", + "date": "2025-06-30T11:26:45Z" + }, + { + "name": "grokability/snipe-it", + "version": "v8.1.17", + "date": "2025-06-30T11:26:27Z" + }, + { + "name": "documenso/documenso", + "version": "v1.12.0-rc.8", + "date": "2025-06-30T09:47:37Z" + }, { "name": "PrivateBin/PrivateBin", - "version": "1.7.7", - "date": "2025-06-28T19:57:56Z" + "version": "1.7.8", + "date": "2025-06-30T09:00:54Z" + }, + { + "name": "fuma-nama/fumadocs", + "version": "fumadocs-mdx@11.6.10", + "date": "2025-06-30T07:07:36Z" + }, + { + "name": "mattermost/mattermost", + "version": "preview-v0.1", + "date": "2025-06-27T14:35:47Z" + }, + { + "name": "Jackett/Jackett", + "version": "v0.22.2097", + "date": "2025-06-30T05:53:30Z" + }, + { + "name": "typesense/typesense", + "version": "v29.0", + "date": "2025-06-30T03:52:33Z" + }, + { + "name": "firefly-iii/firefly-iii", + "version": "v6.2.19", + "date": "2025-06-28T06:53:45Z" + }, + { + "name": "sysadminsmedia/homebox", + "version": "v0.20.0", + "date": "2025-06-29T18:50:03Z" + }, + { + "name": "dgtlmoon/changedetection.io", + "version": "0.50.5", + "date": "2025-06-29T08:54:47Z" + }, + { + "name": "emqx/emqx", + "version": "e5.9.1-rc.1", + "date": "2025-06-29T07:27:21Z" + }, + { + "name": "theonedev/onedev", + "version": "v11.11.2", + "date": "2025-06-29T01:40:39Z" }, { "name": "linkwarden/linkwarden", @@ -19,21 +129,11 @@ "version": "v1.22.5", "date": "2025-06-28T16:06:19Z" }, - { - "name": "Jackett/Jackett", - "version": "v0.22.2075", - "date": "2025-06-28T10:16:17Z" - }, { "name": "Luligu/matterbridge", "version": "3.1.0", "date": "2025-06-28T09:02:38Z" }, - { - "name": "firefly-iii/firefly-iii", - "version": "v6.2.19", - "date": "2025-06-28T06:53:45Z" - }, { "name": "esphome/esphome", "version": "2025.6.2", @@ -59,36 +159,16 @@ "version": "v1.26.0", "date": "2025-06-27T19:15:24Z" }, - { - "name": "ollama/ollama", - "version": "v0.9.4-rc1", - "date": "2025-06-27T18:45:33Z" - }, - { - "name": "mattermost/mattermost", - "version": "preview-v0.1", - "date": "2025-06-27T14:35:47Z" - }, { "name": "goauthentik/authentik", "version": "version/2025.6.3", "date": "2025-06-27T14:01:06Z" }, - { - "name": "keycloak/keycloak", - "version": "26.2.5", - "date": "2025-05-28T06:49:43Z" - }, { "name": "rclone/rclone", "version": "v1.70.2", "date": "2025-06-27T13:21:17Z" }, - { - "name": "documenso/documenso", - "version": "v1.12.0-rc.7", - "date": "2025-06-27T12:17:45Z" - }, { "name": "sabnzbd/sabnzbd", "version": "4.5.1", @@ -119,11 +199,6 @@ "version": "4.9.1.2", "date": "2025-06-26T22:08:00Z" }, - { - "name": "prometheus/prometheus", - "version": "v3.4.2", - "date": "2025-06-26T21:45:21Z" - }, { "name": "home-assistant/operating-system", "version": "15.2", @@ -144,11 +219,6 @@ "version": "v1.84.3", "date": "2025-06-26T16:31:57Z" }, - { - "name": "fuma-nama/fumadocs", - "version": "fumadocs-ui@15.5.5", - "date": "2025-06-26T15:54:17Z" - }, { "name": "traefik/traefik", "version": "v3.5.0-rc1", @@ -174,16 +244,6 @@ "version": "18.0.7", "date": "2025-06-26T09:16:33Z" }, - { - "name": "mongodb/mongo", - "version": "r8.1.2-rc1", - "date": "2025-06-25T22:42:04Z" - }, - { - "name": "rcourtman/Pulse", - "version": "v3.32.0", - "date": "2025-06-25T22:27:01Z" - }, { "name": "gristlabs/grist-core", "version": "v1.6.1", @@ -214,11 +274,6 @@ "version": "testing", "date": "2025-06-16T18:10:42Z" }, - { - "name": "n8n-io/n8n", - "version": "n8n@1.100.0", - "date": "2025-06-23T12:48:35Z" - }, { "name": "moghtech/komodo", "version": "v1.18.4", @@ -249,11 +304,6 @@ "version": "v1.132.0", "date": "2025-06-17T13:49:30Z" }, - { - "name": "docker/compose", - "version": "v2.37.3", - "date": "2025-06-24T14:05:33Z" - }, { "name": "Checkmk/checkmk", "version": "v2.4.0p5", @@ -284,11 +334,6 @@ "version": "pmm-6401-v1.120.0", "date": "2025-06-23T15:12:12Z" }, - { - "name": "Graylog2/graylog2-server", - "version": "6.3.0-rc.2", - "date": "2025-06-23T11:31:38Z" - }, { "name": "gotson/komga", "version": "1.22.0", @@ -329,21 +374,11 @@ "version": "v2.0.114", "date": "2025-06-21T11:20:21Z" }, - { - "name": "theonedev/onedev", - "version": "v11.11.1", - "date": "2025-06-21T09:23:39Z" - }, { "name": "pocketbase/pocketbase", "version": "v0.28.4", "date": "2025-06-21T08:29:04Z" }, - { - "name": "dgtlmoon/changedetection.io", - "version": "0.50.4", - "date": "2025-06-21T07:47:02Z" - }, { "name": "go-gitea/gitea", "version": "v1.24.2", @@ -494,21 +529,11 @@ "version": "2.36.1", "date": "2025-06-16T19:20:54Z" }, - { - "name": "emqx/emqx", - "version": "e5.9.1-alpha.1", - "date": "2025-06-16T15:34:01Z" - }, { "name": "open-webui/open-webui", "version": "v0.6.15", "date": "2025-06-16T14:34:42Z" }, - { - "name": "grokability/snipe-it", - "version": "v8.1.16", - "date": "2025-06-16T13:49:37Z" - }, { "name": "jellyfin/jellyfin", "version": "v10.10.7", @@ -779,11 +804,6 @@ "version": "1.34.1", "date": "2025-05-26T21:40:54Z" }, - { - "name": "jupyter/notebook", - "version": "v7.4.3", - "date": "2025-05-26T14:27:27Z" - }, { "name": "stonith404/pingvin-share", "version": "v1.13.0", @@ -894,11 +914,6 @@ "version": "2025-05-07-r1", "date": "2025-05-07T12:18:42Z" }, - { - "name": "sysadminsmedia/homebox", - "version": "v0.19.0", - "date": "2025-05-06T18:05:42Z" - }, { "name": "garethgeorge/backrest", "version": "v1.8.1", @@ -919,11 +934,6 @@ "version": "v1.13.5", "date": "2025-05-03T09:48:44Z" }, - { - "name": "jhuckaby/Cronicle", - "version": "v0.9.80", - "date": "2025-05-02T16:48:15Z" - }, { "name": "WordPress/WordPress", "version": "6.8.1", @@ -1039,11 +1049,6 @@ "version": "2.3", "date": "2025-04-05T18:05:36Z" }, - { - "name": "MagicMirrorOrg/MagicMirror", - "version": "v2.31.0", - "date": "2025-04-01T18:12:45Z" - }, { "name": "Kometa-Team/Kometa", "version": "v2.2.0", @@ -1184,11 +1189,6 @@ "version": "v2.7.1", "date": "2025-02-22T01:14:41Z" }, - { - "name": "typesense/typesense", - "version": "v28.0", - "date": "2025-02-18T15:49:57Z" - }, { "name": "recyclarr/recyclarr", "version": "v7.4.1", diff --git a/frontend/src/app/scripts/_components/ScriptItems/install-command.tsx b/frontend/src/app/scripts/_components/ScriptItems/install-command.tsx deleted file mode 100644 index 75aafe7c2..000000000 --- a/frontend/src/app/scripts/_components/ScriptItems/install-command.tsx +++ /dev/null @@ -1,147 +0,0 @@ -import { Info } from "lucide-react"; - -import type { Script } from "@/lib/types"; - -import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; -import { Alert, AlertDescription } from "@/components/ui/alert"; -import CodeCopyButton from "@/components/ui/code-copy-button"; - -import { getDisplayValueFromType } from "../script-info-blocks"; - -function getInstallCommand(scriptPath = "", isAlpine = false, useGitea = false) { - const githubUrl = `https://raw.githubusercontent.com/asylumexp/Proxmox/main/${scriptPath}`; - const giteaUrl = `https://git.community-scripts.org/asylumexp/Proxmox/raw/branch/main/${scriptPath}`; - const url = useGitea ? giteaUrl : githubUrl; - return isAlpine ? `bash -c "$(curl -fsSL ${url})"` : `bash -c "$(curl -fsSL ${url})"`; -} -export default function InstallCommand({ item }: { item: Script }) { - const alpineScript = item.install_methods.find(method => method.type === "alpine"); - const defaultScript = item.install_methods.find(method => method.type === "default"); - - const renderInstructions = (isAlpine = false) => ( - <> -
- {isAlpine - ? ( - <> - As an alternative option, you can use Alpine Linux and the - {" "} - {item.name} - {" "} - package to create a - {" "} - {item.name} - {" "} - {getDisplayValueFromType(item.type)} - {" "} - container with faster creation time and minimal system resource usage. - You are also obliged to adhere to updates provided by the package maintainer. - > - ) - : item.type === "pve" - ? ( - <> - To use the - {" "} - {item.name} - {" "} - script, run the command below **only** in the Proxmox VE Shell. This script is - intended for managing or enhancing the host system directly. - > - ) - : item.type === "addon" - ? ( - <> - This script enhances an existing setup. You can use it inside a running LXC container or directly on the - Proxmox VE host to extend functionality with - {" "} - {item.name} - . - > - ) - : ( - <> - To create a new Proxmox VE - {" "} - {item.name} - {" "} - {getDisplayValueFromType(item.type)} - , run the command below in the - Proxmox VE Shell. - > - )} -
- {isAlpine && ( -- To create a new Proxmox VE Alpine- - {item.name} - {" "} - {getDisplayValueFromType(item.type)} - , run the command below in - the Proxmox VE Shell. -
- )} - > - ); - - const renderGiteaInfo = () => ( -