diff --git a/.github/workflows/frontend-cicd.yml b/.github/workflows/frontend-cicd.yml index 77f9533a8..c476fe9a6 100644 --- a/.github/workflows/frontend-cicd.yml +++ b/.github/workflows/frontend-cicd.yml @@ -65,9 +65,6 @@ jobs: - name: Install dependencies run: npm ci --prefer-offline --legacy-peer-deps - - name: Run tests - run: npm run test - - name: Configure Next.js for pages uses: actions/configure-pages@v5 with: diff --git a/.github/workflows/push-to-gitea.yaml b/.github/workflows/push-to-gitea.yaml new file mode 100644 index 000000000..bd927f4a4 --- /dev/null +++ b/.github/workflows/push-to-gitea.yaml @@ -0,0 +1,48 @@ +name: Sync to Gitea + +on: + push: + branches: + - main + +jobs: + sync: + if: github.repository == 'community-scripts/ProxmoxVE' + runs-on: ubuntu-latest + + steps: + - name: Checkout source repo + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Change all links to git.community-scripts.org + run: | + echo "Searching for files containing raw.githubusercontent.com URLs..." + + # Find all files containing GitHub raw URLs, excluding certain directories + files_with_github_urls=$(grep -r "https://raw.githubusercontent.com/community-scripts/ProxmoxVE" . --exclude-dir=.git --exclude-dir=node_modules --exclude-dir=.github/workflows --files-with-matches || true) + + if [ -n "$files_with_github_urls" ]; then + echo "$files_with_github_urls" | while read file; do + if [ -f "$file" ]; then + sed -i 's|https://raw\.githubusercontent\.com/community-scripts/ProxmoxVE/|https://git.community-scripts.org/community-scripts/ProxmoxVE/raw/branch/|g' "$file" + fi + done + else + echo "No files found containing GitHub raw URLs" + fi + + + + - name: Push to Gitea + run: | + git config --global user.name "Push From Github" + git config --global user.email "actions@github.com" + git remote add gitea https://$GITEA_USER:$GITEA_TOKEN@git.community-scripts.org/community-scripts/ProxmoxVE.git + git add . + git commit -m "Sync to Gitea" + git push gitea --all --force + env: + GITEA_USER: ${{ secrets.GITEA_USERNAME }} + GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }} diff --git a/CHANGELOG.md b/CHANGELOG.md index b7c519433..e4706d9e1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,18 +14,116 @@ 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-06-24 +## 2025-06-29 + +## 2025-06-28 ### ๐ Updated Scripts - #### ๐ Bug Fixes + - Ollama: Clean up old Ollama files before running update [@tremor021](https://github.com/tremor021) ([#5534](https://github.com/community-scripts/ProxmoxVE/pull/5534)) + - ONLYOFFICE: Update install script to manually create RabbitMQ user [@tremor021](https://github.com/tremor021) ([#5535](https://github.com/community-scripts/ProxmoxVE/pull/5535)) + +### ๐ Website + + - #### ๐ Script Information + + - Booklore: Correct documentation and website [@pieman3000](https://github.com/pieman3000) ([#5528](https://github.com/community-scripts/ProxmoxVE/pull/5528)) + +## 2025-06-27 + +### ๐ New Scripts + + - BookLore ([#5524](https://github.com/community-scripts/ProxmoxVE/pull/5524)) + +### ๐ Updated Scripts + + - #### ๐ Bug Fixes + + - wizarr: remove unneeded tmp file [@MickLesk](https://github.com/MickLesk) ([#5517](https://github.com/community-scripts/ProxmoxVE/pull/5517)) + +### ๐งฐ Maintenance + + - #### ๐ Bug Fixes + + - Remove npm legacy errors, created single source of truth for ESlint. updated analytics url. updated script background [@BramSuurdje](https://github.com/BramSuurdje) ([#5498](https://github.com/community-scripts/ProxmoxVE/pull/5498)) + + - #### ๐ Github + + - New workflow to push to gitea and change links to gitea [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#5510](https://github.com/community-scripts/ProxmoxVE/pull/5510)) + +### ๐ Website + + - #### ๐ Script Information + + - Wireguard, Update Link to Documentation. [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#5514](https://github.com/community-scripts/ProxmoxVE/pull/5514)) + +## 2025-06-26 + +### ๐ New Scripts + + - ConvertX ([#5484](https://github.com/community-scripts/ProxmoxVE/pull/5484)) + +### ๐ Updated Scripts + + - [tools] Update setup_nodejs function [@tremor021](https://github.com/tremor021) ([#5488](https://github.com/community-scripts/ProxmoxVE/pull/5488)) +- [tools] Fix setup_mongodb function [@tremor021](https://github.com/tremor021) ([#5486](https://github.com/community-scripts/ProxmoxVE/pull/5486)) + +## 2025-06-25 + +### ๐ Updated Scripts + + - #### ๐ Bug Fixes + + - Docmost: Increase resources [@tremor021](https://github.com/tremor021) ([#5458](https://github.com/community-scripts/ProxmoxVE/pull/5458)) + + - #### โจ New Features + + - tools.func: new helper for imagemagick [@MickLesk](https://github.com/MickLesk) ([#5452](https://github.com/community-scripts/ProxmoxVE/pull/5452)) + - YunoHost: add Update-Function [@MickLesk](https://github.com/MickLesk) ([#5450](https://github.com/community-scripts/ProxmoxVE/pull/5450)) + + - #### ๐ง Refactor + + - Refactor: Tailscale [@MickLesk](https://github.com/MickLesk) ([#5454](https://github.com/community-scripts/ProxmoxVE/pull/5454)) + +### ๐ Website + + - #### ๐ Bug Fixes + + - Update Tooltips component to conditionally display updateable status based on item type [@BramSuurdje](https://github.com/BramSuurdje) ([#5461](https://github.com/community-scripts/ProxmoxVE/pull/5461)) + - Refactor CommandMenu to prevent duplicate scripts across categories [@BramSuurdje](https://github.com/BramSuurdje) ([#5463](https://github.com/community-scripts/ProxmoxVE/pull/5463)) + + - #### โจ New Features + + - Enhance InstallCommand component to support Gitea as an alternative source for installation scripts. [@BramSuurdje](https://github.com/BramSuurdje) ([#5464](https://github.com/community-scripts/ProxmoxVE/pull/5464)) + + - #### ๐ Script Information + + - Website: mark VM's and "OS"-LXC's as updatable [@MickLesk](https://github.com/MickLesk) ([#5453](https://github.com/community-scripts/ProxmoxVE/pull/5453)) + +## 2025-06-24 + +### ๐ New Scripts + + - ONLYOFFICE Docs ([#5420](https://github.com/community-scripts/ProxmoxVE/pull/5420)) + +### ๐ Updated Scripts + + - #### ๐ Bug Fixes + + - GoMFT: tmpl bugfix to work with current version until a new release pushed [@MickLesk](https://github.com/MickLesk) ([#5435](https://github.com/community-scripts/ProxmoxVE/pull/5435)) - Update all Alpine Scripts to atleast 1GB HDD [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#5418](https://github.com/community-scripts/ProxmoxVE/pull/5418)) - #### โจ New Features - - [core]: Improve GitHub release fetch robustness with split timeouts and retry logic [@MickLesk](https://github.com/MickLesk) ([#5422](https://github.com/community-scripts/ProxmoxVE/pull/5422)) + - general: update all alpine scripts to version 3.22 [@MickLesk](https://github.com/MickLesk) ([#5428](https://github.com/community-scripts/ProxmoxVE/pull/5428)) - Minio: use latest version or latest feature rich version [@MickLesk](https://github.com/MickLesk) ([#5423](https://github.com/community-scripts/ProxmoxVE/pull/5423)) + - [core]: Improve GitHub release fetch robustness with split timeouts and retry logic [@MickLesk](https://github.com/MickLesk) ([#5422](https://github.com/community-scripts/ProxmoxVE/pull/5422)) + + - #### ๐ฅ Breaking Changes + + - bump scripts (Installer) from Ubuntu 22.04 to Ubuntu 24.04 (agentdvr, emby, jellyfin, plex, shinobi) [@MickLesk](https://github.com/MickLesk) ([#5434](https://github.com/community-scripts/ProxmoxVE/pull/5434)) - #### ๐ง Refactor diff --git a/ct/agentdvr.sh b/ct/agentdvr.sh index 7c91015a2..ebbf315af 100644 --- a/ct/agentdvr.sh +++ b/ct/agentdvr.sh @@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}" var_ram="${var_ram:-2048}" var_disk="${var_disk:-8}" var_os="${var_os:-ubuntu}" -var_version="${var_version:-22.04}" +var_version="${var_version:-24.04}" var_unprivileged="${var_unprivileged:-0}" header_info "$APP" @@ -20,15 +20,15 @@ color catch_errors function update_script() { - header_info - check_container_storage - check_container_resources - if [[ ! -d /opt/agentdvr ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - msg_error "Currently we don't provide an update function for this ${APP}." + header_info + check_container_storage + check_container_resources + if [[ ! -d /opt/agentdvr ]]; then + msg_error "No ${APP} Installation Found!" exit + fi + msg_error "Currently we don't provide an update function for this ${APP}." + exit } start diff --git a/ct/alpine-adguard.sh b/ct/alpine-adguard.sh index a40d59401..c7faee3c7 100644 --- a/ct/alpine-adguard.sh +++ b/ct/alpine-adguard.sh @@ -11,7 +11,7 @@ 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.21}" +var_version="${var_version:-3.22}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" diff --git a/ct/alpine-bitmagnet.sh b/ct/alpine-bitmagnet.sh index d408187d0..006e30d17 100644 --- a/ct/alpine-bitmagnet.sh +++ b/ct/alpine-bitmagnet.sh @@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}" var_ram="${var_ram:-1024}" var_disk="${var_disk:-3}" var_os="${var_os:-alpine}" -var_version="${var_version:-3.21}" +var_version="${var_version:-3.22}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" diff --git a/ct/alpine-docker.sh b/ct/alpine-docker.sh index 52ee62866..4feb87930 100644 --- a/ct/alpine-docker.sh +++ b/ct/alpine-docker.sh @@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}" var_ram="${var_ram:-1024}" var_disk="${var_disk:-2}" var_os="${var_os:-alpine}" -var_version="${var_version:-3.21}" +var_version="${var_version:-3.22}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" diff --git a/ct/alpine-forgejo.sh b/ct/alpine-forgejo.sh index 508b2940a..63568a2b5 100644 --- a/ct/alpine-forgejo.sh +++ b/ct/alpine-forgejo.sh @@ -11,7 +11,7 @@ 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.21}" +var_version="${var_version:-3.22}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" @@ -31,7 +31,7 @@ function update_script() { msg_info "Restarting Forgejo" $STD rc-service forgejo restart msg_ok "Restarted Forgejo" - + exit 0 } diff --git a/ct/alpine-gatus.sh b/ct/alpine-gatus.sh index 499f6d375..f34b49aaa 100644 --- a/ct/alpine-gatus.sh +++ b/ct/alpine-gatus.sh @@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}" var_ram="${var_ram:-256}" var_disk="${var_disk:-3}" var_os="${var_os:-alpine}" -var_version="${var_version:-3.21}" +var_version="${var_version:-3.22}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" diff --git a/ct/alpine-gitea.sh b/ct/alpine-gitea.sh index d5af84d99..606c76ed3 100644 --- a/ct/alpine-gitea.sh +++ b/ct/alpine-gitea.sh @@ -11,7 +11,7 @@ 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.21}" +var_version="${var_version:-3.22}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" diff --git a/ct/alpine-grafana.sh b/ct/alpine-grafana.sh index 971740f1e..a6974b376 100644 --- a/ct/alpine-grafana.sh +++ b/ct/alpine-grafana.sh @@ -11,7 +11,7 @@ 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.21}" +var_version="${var_version:-3.22}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" diff --git a/ct/alpine-it-tools.sh b/ct/alpine-it-tools.sh index d0b77e0e4..90ba5491e 100644 --- a/ct/alpine-it-tools.sh +++ b/ct/alpine-it-tools.sh @@ -11,7 +11,7 @@ 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.21}" +var_version="${var_version:-3.22}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" diff --git a/ct/alpine-komodo.sh b/ct/alpine-komodo.sh index 59c12a76c..738359f25 100644 --- a/ct/alpine-komodo.sh +++ b/ct/alpine-komodo.sh @@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}" var_ram="${var_ram:-1024}" var_disk="${var_disk:-10}" var_os="${var_os:-alpine}" -var_version="${var_version:-3.21}" +var_version="${var_version:-3.22}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" diff --git a/ct/alpine-mariadb.sh b/ct/alpine-mariadb.sh index cbbb705c7..0af149857 100644 --- a/ct/alpine-mariadb.sh +++ b/ct/alpine-mariadb.sh @@ -11,7 +11,7 @@ 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.21}" +var_version="${var_version:-3.22}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" diff --git a/ct/alpine-nextcloud.sh b/ct/alpine-nextcloud.sh index bacc4ff87..f6ce48c65 100644 --- a/ct/alpine-nextcloud.sh +++ b/ct/alpine-nextcloud.sh @@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}" var_ram="${var_ram:-1024}" var_disk="${var_disk:-2}" var_os="${var_os:-alpine}" -var_version="${var_version:-3.21}" +var_version="${var_version:-3.22}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" diff --git a/ct/alpine-node-red.sh b/ct/alpine-node-red.sh index 291c239d4..9c6bedf8a 100644 --- a/ct/alpine-node-red.sh +++ b/ct/alpine-node-red.sh @@ -11,7 +11,7 @@ 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.21}" +var_version="${var_version:-3.22}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" diff --git a/ct/alpine-postgresql.sh b/ct/alpine-postgresql.sh index 7653e91d0..18d45158e 100644 --- a/ct/alpine-postgresql.sh +++ b/ct/alpine-postgresql.sh @@ -11,7 +11,7 @@ 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.21}" +var_version="${var_version:-3.22}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" diff --git a/ct/alpine-prometheus.sh b/ct/alpine-prometheus.sh index 949eb1c0d..fc5527a19 100644 --- a/ct/alpine-prometheus.sh +++ b/ct/alpine-prometheus.sh @@ -11,7 +11,7 @@ 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.21}" +var_version="${var_version:-3.22}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" diff --git a/ct/alpine-rclone.sh b/ct/alpine-rclone.sh index c070b83b1..14deaa7ed 100644 --- a/ct/alpine-rclone.sh +++ b/ct/alpine-rclone.sh @@ -11,7 +11,7 @@ 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.21}" +var_version="${var_version:-3.22}" var_unprivileged="${var_unprivileged:-1}" var_fuse="${var_fuse:-yes}" diff --git a/ct/alpine-redis.sh b/ct/alpine-redis.sh index 8b171f6a2..8a6cd4c24 100644 --- a/ct/alpine-redis.sh +++ b/ct/alpine-redis.sh @@ -11,7 +11,7 @@ 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.21}" +var_version="${var_version:-3.22}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" @@ -69,4 +69,4 @@ description msg_ok "Completed Successfully!\n" echo -e "${APP} should be reachable on port 6379. - ${BL}redis-cli -h ${IP} -p 6379${CL} \n" \ No newline at end of file + ${BL}redis-cli -h ${IP} -p 6379${CL} \n" diff --git a/ct/alpine-tinyauth.sh b/ct/alpine-tinyauth.sh index 15f28456c..8e4bc46a5 100644 --- a/ct/alpine-tinyauth.sh +++ b/ct/alpine-tinyauth.sh @@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}" var_ram="${var_ram:-256}" var_disk="${var_disk:-2}" var_os="${var_os:-alpine}" -var_version="${var_version:-3.21}" +var_version="${var_version:-3.22}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" @@ -31,13 +31,13 @@ function update_script() { msg_info "Updating Tinyauth" RELEASE=$(curl -s https://api.github.com/repos/steveiliop56/tinyauth/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') - + if [ "${RELEASE}" != "$(cat /opt/tinyauth_version.txt)" ] || [ ! -f /opt/tinyauth_version.txt ]; then $STD service tinyauth stop rm -f /opt/tinyauth/tinyauth curl -fsSL "https://github.com/steveiliop56/tinyauth/releases/download/v${RELEASE}/tinyauth-amd64" -o /opt/tinyauth/tinyauth chmod +x /opt/tinyauth/tinyauth - echo "${RELEASE}" > /opt/tinyauth_version.txt + echo "${RELEASE}" >/opt/tinyauth_version.txt msg_info "Restarting Tinyauth" $STD service tinyauth start msg_ok "Restarted Tinyauth" diff --git a/ct/alpine-traefik.sh b/ct/alpine-traefik.sh index 14787f919..119dbc803 100644 --- a/ct/alpine-traefik.sh +++ b/ct/alpine-traefik.sh @@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}" var_ram="${var_ram:-512}" var_disk="${var_disk:-1}" var_os="${var_os:-alpine}" -var_version="${var_version:-3.21}" +var_version="${var_version:-3.22}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" diff --git a/ct/alpine-transmission.sh b/ct/alpine-transmission.sh index fdecf484f..cd6110e5c 100644 --- a/ct/alpine-transmission.sh +++ b/ct/alpine-transmission.sh @@ -11,7 +11,7 @@ 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.21}" +var_version="${var_version:-3.22}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" diff --git a/ct/alpine-vaultwarden.sh b/ct/alpine-vaultwarden.sh index 12b475736..de2243205 100644 --- a/ct/alpine-vaultwarden.sh +++ b/ct/alpine-vaultwarden.sh @@ -11,7 +11,7 @@ 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.21}" +var_version="${var_version:-3.22}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" diff --git a/ct/alpine-wireguard.sh b/ct/alpine-wireguard.sh index f049de09a..ea35fd8bb 100644 --- a/ct/alpine-wireguard.sh +++ b/ct/alpine-wireguard.sh @@ -11,7 +11,7 @@ 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.21}" +var_version="${var_version:-3.22}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" diff --git a/ct/alpine-zigbee2mqtt.sh b/ct/alpine-zigbee2mqtt.sh index 5f2ba042a..6b89dc40b 100644 --- a/ct/alpine-zigbee2mqtt.sh +++ b/ct/alpine-zigbee2mqtt.sh @@ -11,7 +11,7 @@ var_disk="${var_disk:-1}" var_cpu="${var_cpu:-1}" var_ram="${var_ram:-256}" var_os="${var_os:-alpine}" -var_version="${var_version:-3.21}" +var_version="${var_version:-3.22}" var_unprivileged="${var_unprivileged:-0}" header_info "$APP" diff --git a/ct/alpine.sh b/ct/alpine.sh index 3968be748..572edff1c 100644 --- a/ct/alpine.sh +++ b/ct/alpine.sh @@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}" var_ram="${var_ram:-512}" var_disk="${var_disk:-1}" var_os="${var_os:-alpine}" -var_version="${var_version:-3.21}" +var_version="${var_version:-3.22}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" diff --git a/ct/booklore.sh b/ct/booklore.sh new file mode 100644 index 000000000..59dd81c30 --- /dev/null +++ b/ct/booklore.sh @@ -0,0 +1,79 @@ +#!/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://github.com/adityachandelgit/BookLore + +APP="BookLore" +var_tags="${var_tags:-books;library}" +var_cpu="${var_cpu:-3}" +var_ram="${var_ram:-2048}" +var_disk="${var_disk:-7}" +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 [[ ! -d /opt/booklore ]]; then + msg_error "No ${APP} Installation Found!" + exit + fi + + RELEASE=$(curl -fsSL https://api.github.com/repos/adityachandelgit/BookLore/releases/latest | yq '.tag_name' | sed 's/^v//') + if [[ "${RELEASE}" != "$(cat ~/.booklore 2>/dev/null)" ]] || [[ ! -f ~/.booklore ]]; then + msg_info "Stopping $APP" + systemctl stop booklore + msg_ok "Stopped $APP" + + fetch_and_deploy_gh_release "booklore" "adityachandelgit/BookLore" + + msg_info "Building Frontend" + cd /opt/booklore/booklore-ui + $STD npm install --force + $STD npm run build --configuration=production + msg_ok "Built Frontend" + + msg_info "Building Backend" + cd /opt/booklore/booklore-api + APP_VERSION=$(curl -fsSL https://api.github.com/repos/adityachandelgit/BookLore/releases/latest | yq '.tag_name' | sed 's/^v//') + yq eval ".app.version = \"${APP_VERSION}\"" -i src/main/resources/application.yaml + $STD ./gradlew clean build --no-daemon + mkdir -p /opt/booklore/dist + JAR_PATH=$(find /opt/booklore/booklore-api/build/libs -maxdepth 1 -type f -name "booklore-api-*.jar" ! -name "*plain*" | head -n1) + if [[ -z "$JAR_PATH" ]]; then + msg_error "Backend JAR not found" + exit 1 + fi + cp "$JAR_PATH" /opt/booklore/dist/app.jar + msg_ok "Built Backend" + + msg_info "Starting $APP" + systemctl start booklore + systemctl reload nginx + msg_ok "Started $APP" + + msg_ok "Update Successful" + else + msg_ok "No update required. ${APP} is already at v${RELEASE}" + fi + exit +} + +start +build_container +description + +msg_ok "Completed Successfully!\n" +echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" +echo -e "${INFO}${YW} Access it using the following URL:${CL}" +echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:6060${CL}" diff --git a/ct/convertx.sh b/ct/convertx.sh new file mode 100644 index 000000000..8c0c15ff1 --- /dev/null +++ b/ct/convertx.sh @@ -0,0 +1,70 @@ +#!/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: Omar Minaya | MickLesk (CanbiZ) +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE +# Source: https://github.com/C4illin/ConvertX + +APP="ConvertX" +var_tags="${var_tags:-converter}" +var_cpu="${var_cpu:-2}" +var_ram="${var_ram:-4096}" +var_disk="${var_disk:-20}" +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 [[ ! -d /var ]]; then + msg_error "No ${APP} Installation Found!" + exit + fi + RELEASE=$(curl -fsSL https://api.github.com/repos/C4illin/ConvertX/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }') + if [[ "${RELEASE}" != "$(cat ~/.convertx 2>/dev/null)" ]] || [[ ! -f ~/.convertx ]]; then + msg_info "Stopping $APP" + systemctl stop convertx + msg_ok "Stopped $APP" + + msg_info "Move data-Folder" + if [[ -d /opt/convertx/data ]]; then + mv /opt/convertx/data /opt/data + fi + msg_ok "Moved data-Folder" + + fetch_and_deploy_gh_release "ConvertX" "C4illin/ConvertX" "tarball" "latest" "/opt/convertx" + + msg_info "Updating $APP to v${RELEASE}" + if [[ -d /opt/data ]]; then + mv /opt/data /opt/convertx/data + fi + cd /opt/convertx + $STD bun install + msg_ok "Updated $APP to v${RELEASE}" + + msg_info "Starting $APP" + systemctl start convertx + msg_ok "Started $APP" + + msg_ok "Update Successful" + else + msg_ok "No update required. ${APP} is already at v${RELEASE}" + fi + exit +} + +start +build_container +description + +msg_ok "Completed Successfully!\n" +echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" +echo -e "${INFO}${YW} Access it using the following URL:${CL}" +echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}" diff --git a/ct/docmost.sh b/ct/docmost.sh index c3f080276..735750c37 100644 --- a/ct/docmost.sh +++ b/ct/docmost.sh @@ -8,8 +8,8 @@ source <(curl -fsSL https://raw.githubusercontent.com/asylumexp/Proxmox/main/mis APP="Docmost" var_tags="${var_tags:-documents}" var_cpu="${var_cpu:-3}" -var_ram="${var_ram:-3072}" -var_disk="${var_disk:-7}" +var_ram="${var_ram:-4096}" +var_disk="${var_disk:-8}" var_os="${var_os:-debian}" var_version="${var_version:-12}" diff --git a/ct/emby.sh b/ct/emby.sh index 452d0cdf2..24a57c257 100644 --- a/ct/emby.sh +++ b/ct/emby.sh @@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}" var_ram="${var_ram:-2048}" var_disk="${var_disk:-8}" var_os="${var_os:-ubuntu}" -var_version="${var_version:-22.04}" +var_version="${var_version:-24.04}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" diff --git a/ct/gomft.sh b/ct/gomft.sh index f7f1cb3aa..51f34d591 100644 --- a/ct/gomft.sh +++ b/ct/gomft.sh @@ -45,6 +45,9 @@ function update_script() { msg_ok "Stopped $APP" msg_info "Updating $APP to ${RELEASE}" + if ! command -v git >/dev/null 2>&1; then + $STD apt-get install -y git + fi rm -f /opt/gomft/gomft temp_file=$(mktemp) curl -fsSL "https://github.com/StarFleetCPTN/GoMFT/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file" @@ -53,6 +56,43 @@ function update_script() { cd /opt/gomft $STD npm install $STD npm run build + TEMPL_VERSION="$(awk '/github.com\/a-h\/templ/{print $2}' go.mod)" + $STD go install github.com/a-h/templ/cmd/templ@${TEMPL_VERSION} + # dirty hack to fix templ + cat <<'EOF' >/opt/gomft/components/file_metadata/search/file_metadata_search_content.templ +package search + +import ( + "context" + "github.com/starfleetcptn/gomft/components/file_metadata" + "github.com/starfleetcptn/gomft/components/file_metadata/list" +) + +templ FileMetadataSearchContent(ctx context.Context, data file_metadata.FileMetadataSearchData) { + +
No files found matching your search criteria.
+No categories available. Please check the API endpoint.
)} - {selectedCategoryIndex !== null ? ( -- {categories.reduce((total, category) => total + (category.scripts?.length || 0), 0)} Total scripts -
-+ Created at: + {" "} + {script.date_created || "No date available"} +
++ {truncateDescription(script.description || "No description available.")} +
+ {renderResources(script)} ++ {categories.reduce((total, category) => total + (category.scripts?.length || 0), 0)} + {" "} + Total scripts +
++ {(category as any).description || "No description available."} +
+Loading...
; - if (error) returnError: {error}
; + if (loading) + returnLoading...
; + if (error) { + return ( ++ Error: + {error} +
+ ); + } const requestSort = (key: string) => { - let direction: 'ascending' | 'descending' = 'ascending'; - if (sortConfig && sortConfig.key === key && sortConfig.direction === 'ascending') { - direction = 'descending'; + let direction: "ascending" | "descending" = "ascending"; + if (sortConfig && sortConfig.key === key && sortConfig.direction === "ascending") { + direction = "descending"; } setSortConfig({ key, direction }); }; @@ -102,8 +116,8 @@ const DataFetcher: React.FC = () => { const year = date.getFullYear(); const month = date.getMonth() + 1; const day = date.getDate(); - const hours = String(date.getHours()).padStart(2, '0'); - const minutes = String(date.getMinutes()).padStart(2, '0'); + const hours = String(date.getHours()).padStart(2, "0"); + const minutes = String(date.getMinutes()).padStart(2, "0"); const timezoneOffset = dateString.slice(-6); return `${day}.${month}.${year} ${hours}:${minutes} ${timezoneOffset} GMT`; }; @@ -114,49 +128,76 @@ const DataFetcher: React.FC = () => {
{summary?.total_entries} results found
-Status Legend: ๐ installing {summary?.status_count["installing"] ?? 0} | โ๏ธ completed {summary?.status_count["done"] ?? 0} | โ failed {summary?.status_count["failed"] ?? 0} | โ unknown
-+ {summary?.total_entries} + {" "} + results found +
++ Status Legend: ๐ installing + {summary?.status_count.installing ?? 0} + {" "} + | โ๏ธ completed + {summary?.status_count.done ?? 0} + {" "} + | โ failed + {summary?.status_count.failed ?? 0} + {" "} + | โ unknown +
+| requestSort('status')}>Status | -requestSort('type')}>Type | -requestSort('nsapp')}>Application | -requestSort('os_type')}>OS | -requestSort('os_version')}>OS Version | -requestSort('disk_size')}>Disk Size | -requestSort('core_count')}>Core Count | -requestSort('ram_size')}>RAM Size | -requestSort('method')}>Method | -requestSort('pve_version')}>PVE Version | -requestSort('error')}>Error Message | -requestSort('created_at')}>Created At | +requestSort("status")}>Status | +requestSort("type")}>Type | +requestSort("nsapp")}>Application | +requestSort("os_type")}>OS | +requestSort("os_version")}>OS Version | +requestSort("disk_size")}>Disk Size | +requestSort("core_count")}>Core Count | +requestSort("ram_size")}>RAM Size | +requestSort("method")}>Method | +requestSort("pve_version")}>PVE Version | +requestSort("error")}>Error Message | +requestSort("created_at")}>Created At |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| - {item.status === "done" ? ( - "โ๏ธ" - ) : item.status === "failed" ? ( - "โ" - ) : item.status === "installing" ? ( - "๐" - ) : ( - item.status - )} + {item.status === "done" + ? ( + "โ๏ธ" + ) + : item.status === "failed" + ? ( + "โ" + ) + : item.status === "installing" + ? ( + "๐" + ) + : ( + item.status + )} + | ++ {item.type === "lxc" + ? ( + "๐ฆ" + ) + : item.type === "vm" + ? ( + "๐ฅ๏ธ" + ) + : ( + item.type + )} | -{item.type === "lxc" ? ( - "๐ฆ" - ) : item.type === "vm" ? ( - "๐ฅ๏ธ" - ) : ( - item.type - )} | {item.nsapp} | {item.os_type} | {item.os_version} | @@ -175,11 +216,14 @@ const DataFetcher: React.FC = () => {