From 3a363e5d2739a94682491c1acc02e1d089e2867d Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Wed, 22 Oct 2025 08:38:41 +0200 Subject: [PATCH] cleanup --- ct/gitea-mirror.sh | 130 ------------ ct/guardian.sh | 79 -------- ct/limesurvey.sh | 42 ---- ct/nginxproxymanager.sh | 171 ---------------- ct/open-archiver.sh | 61 ------ ct/palmr.sh | 75 ------- ct/plex.sh | 60 ------ ct/prometheus-blackbox-exporter.sh | 62 ------ ct/proxmox-datacenter-manager.sh | 54 ----- ct/pve-scripts-local.sh | 41 ---- ct/sonarqube.sh | 71 ------- frontend/public/json/freepbx.json | 40 ---- frontend/public/json/guardian.json | 35 ---- frontend/public/json/limesurvey.json | 40 ---- frontend/public/json/open-archiver.json | 40 ---- .../json/prometheus-blackbox-exporter.json | 41 ---- frontend/public/json/pve-scripts-local.json | 35 ---- frontend/public/json/sonarqube.json | 36 ---- install/gitea-mirror-install.sh | 77 ------- install/guardian-install.sh | 74 ------- install/jellyfin-install.sh | 51 ----- install/limesurvey-install.sh | 74 ------- install/nginxproxymanager-install.sh | 189 ------------------ install/open-archiver-install.sh | 124 ------------ install/palmr-install.sh | 95 --------- install/plex-install.sh | 55 ----- .../prometheus-blackbox-exporter-install.sh | 42 ---- install/pve-scripts-local-install.sh | 64 ------ install/sonarqube-install.sh | 81 -------- 29 files changed, 2039 deletions(-) delete mode 100644 ct/gitea-mirror.sh delete mode 100755 ct/guardian.sh delete mode 100644 ct/limesurvey.sh delete mode 100644 ct/nginxproxymanager.sh delete mode 100644 ct/open-archiver.sh delete mode 100644 ct/palmr.sh delete mode 100644 ct/plex.sh delete mode 100644 ct/prometheus-blackbox-exporter.sh delete mode 100644 ct/proxmox-datacenter-manager.sh delete mode 100644 ct/pve-scripts-local.sh delete mode 100644 ct/sonarqube.sh delete mode 100644 frontend/public/json/freepbx.json delete mode 100644 frontend/public/json/guardian.json delete mode 100644 frontend/public/json/limesurvey.json delete mode 100644 frontend/public/json/open-archiver.json delete mode 100644 frontend/public/json/prometheus-blackbox-exporter.json delete mode 100644 frontend/public/json/pve-scripts-local.json delete mode 100644 frontend/public/json/sonarqube.json delete mode 100644 install/gitea-mirror-install.sh delete mode 100644 install/guardian-install.sh delete mode 100644 install/jellyfin-install.sh delete mode 100644 install/limesurvey-install.sh delete mode 100644 install/nginxproxymanager-install.sh delete mode 100644 install/open-archiver-install.sh delete mode 100644 install/palmr-install.sh delete mode 100644 install/plex-install.sh delete mode 100644 install/prometheus-blackbox-exporter-install.sh delete mode 100644 install/pve-scripts-local-install.sh delete mode 100644 install/sonarqube-install.sh diff --git a/ct/gitea-mirror.sh b/ct/gitea-mirror.sh deleted file mode 100644 index bfe93ff8..00000000 --- a/ct/gitea-mirror.sh +++ /dev/null @@ -1,130 +0,0 @@ -#!/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: CrazyWolf13 -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://github.com/RayLabsHQ/gitea-mirror - -APP="gitea-mirror" -var_tags="${var_tags:-mirror;gitea}" -var_cpu="${var_cpu:-2}" -var_ram="${var_ram:-2048}" -var_disk="${var_disk:-6}" -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/gitea-mirror ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - - APP_VERSION=$(grep -o '"version": *"[^"]*"' /opt/gitea-mirror/package.json | cut -d'"' -f4) - if [[ $APP_VERSION =~ ^2\. ]]; then - if ! whiptail --backtitle "Gitea Mirror Update" --title "⚠️ VERSION 2.x DETECTED" --yesno \ - "WARNING: Version $APP_VERSION detected!\n\nUpdating from version 2.x will CLEAR ALL CONFIGURATION.\n\nThis includes:\n• API tokens\n• User settings\n• Repository configurations\n• All custom settings\n\nDo you want to continue with the update process?" 15 70 --defaultno; then - exit 0 - fi - - if ! whiptail --backtitle "Gitea Mirror Update" --title "⚠️ FINAL CONFIRMATION" --yesno \ - "FINAL WARNING: This update WILL clear all configuration!\n\nBEFORE PROCEEDING, please:\n\n• Copy API tokens to a safe location\n• Backup any custom configurations\n• Note down repository settings\n\nThis action CANNOT be undone!" 18 70 --defaultno; then - whiptail --backtitle "Gitea Mirror Update" --title "Update Cancelled" --msgbox "Update process cancelled. Please backup your configuration before proceeding." 8 60 - exit 0 - fi - whiptail --backtitle "Gitea Mirror Update" --title "Proceeding with Update" --msgbox \ - "Proceeding with version $APP_VERSION update.\n\nAll configuration will be cleared as warned." 8 50 - rm -rf /opt/gitea-mirror - fi - - if [[ ! -f /opt/gitea-mirror.env ]]; then - msg_info "Detected old Enviroment, updating files" - APP_SECRET=$(openssl rand -base64 32) - HOST_IP=$(hostname -I | awk '{print $1}') - cat </opt/gitea-mirror.env -# See here for config options: https://github.com/RayLabsHQ/gitea-mirror/blob/main/docs/ENVIRONMENT_VARIABLES.md -NODE_ENV=production -HOST=0.0.0.0 -PORT=4321 -DATABASE_URL=sqlite://data/gitea-mirror.db -BETTER_AUTH_URL=http://${HOST_IP}:4321 -BETTER_AUTH_SECRET=${APP_SECRET} -npm_package_version=${APP_VERSION} -EOF - rm /etc/systemd/system/gitea-mirror.service - cat </etc/systemd/system/gitea-mirror.service -[Unit] -Description=Gitea Mirror -After=network.target -[Service] -Type=simple -WorkingDirectory=/opt/gitea-mirror -ExecStart=/usr/local/bin/bun dist/server/entry.mjs -Restart=on-failure -RestartSec=10 -EnvironmentFile=/opt/gitea-mirror.env -[Install] -WantedBy=multi-user.target -EOF - systemctl daemon-reload - msg_ok "Old Enviroment fixed" -fi - - if check_for_gh_release "gitea-mirror" "RayLabsHQ/gitea-mirror"; then - msg_info "Stopping Services" - systemctl stop gitea-mirror - msg_ok "Services Stopped" - - msg_info "Backup Data" - mkdir -p /opt/gitea-mirror-backup/data - cp /opt/gitea-mirror/data/* /opt/gitea-mirror-backup/data/ - msg_ok "Backup Data" - - msg_info "Installing Bun" - export BUN_INSTALL=/opt/bun - curl -fsSL https://bun.sh/install | $STD bash - ln -sf /opt/bun/bin/bun /usr/local/bin/bun - ln -sf /opt/bun/bin/bun /usr/local/bin/bunx - msg_ok "Installed Bun" - - rm -rf /opt/gitea-mirror - fetch_and_deploy_gh_release "gitea-mirror" "RayLabsHQ/gitea-mirror" "tarball" "v3.8.1" - - msg_info "Updating and rebuilding ${APP}" - cd /opt/gitea-mirror - $STD bun run setup - $STD bun run build - APP_VERSION=$(grep -o '"version": *"[^"]*"' package.json | cut -d'"' -f4) - - sudo sed -i.bak "s|^npm_package_version=.*|npm_package_version=${APP_VERSION}|" /opt/gitea-mirror.env - msg_ok "Updated and rebuilt ${APP}" - - msg_info "Restoring Data" - cp /opt/gitea-mirror-backup/data/* /opt/gitea-mirror/data - msg_ok "Restored Data" - - msg_info "Starting Service" - systemctl start gitea-mirror - msg_ok "Service Started" - msg_ok "Update Successfully" - 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}:4321${CL}" diff --git a/ct/guardian.sh b/ct/guardian.sh deleted file mode 100755 index 41fbaf30..00000000 --- a/ct/guardian.sh +++ /dev/null @@ -1,79 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func) -# Copyright (c) 2021-2025 community-scripts ORG -# Author: HydroshieldMKII -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://github.com/HydroshieldMKII/Guardian - -APP="Guardian" -var_tags="${var_tags:-media;monitoring}" -var_cpu="${var_cpu:-2}" -var_ram="${var_ram:-2048}" -var_disk="${var_disk:-6}" -var_os="${var_os:-debian}" -var_version="${var_version:-13}" -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/guardian" ]] ; then - msg_error "No ${APP} Installation Found!" - exit -fi - -if check_for_gh_release "guardian" "HydroshieldMKII/Guardian" ; then - msg_info "Stopping Services" - systemctl stop guardian-backend guardian-frontend - msg_ok "Stopped Services" - - if [[ -f "/opt/guardian/backend/plex-guard.db" ]] ; then - msg_info "Saving Database" - cp "/opt/guardian/backend/plex-guard.db" "/tmp/plex-guard.db.backup" - msg_ok "Database backed up" - fi - - cp /opt/guardian/.env /opt - CLEAN_INSTALL=1 fetch_and_deploy_gh_release "guardian" "HydroshieldMKII/Guardian" "tarball" "latest" "/opt/guardian" - mv /opt/.env /opt/guardian - - if [[ -f "/tmp/plex-guard.db.backup" ]] ; then - msg_info "Restoring Database" - cp "/tmp/plex-guard.db.backup" "/opt/guardian/backend/plex-guard.db" - rm "/tmp/plex-guard.db.backup" - msg_ok "Database restored" - fi - - msg_info "Updating Guardian" - cd /opt/guardian/backend - $STD npm ci - $STD npm run build - - cd /opt/guardian/frontend - $STD npm ci - $STD DEPLOYMENT_MODE=standalone npm run build - msg_ok "Updated Guardian" - - msg_info "Starting Services" - systemctl start guardian-backend guardian-frontend - msg_ok "Started Services" - msg_ok "Updated Successfully" -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/limesurvey.sh b/ct/limesurvey.sh deleted file mode 100644 index c0ee8221..00000000 --- a/ct/limesurvey.sh +++ /dev/null @@ -1,42 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/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://community.limesurvey.org/ - -APP="LimeSurvey" -var_tags="${var_tags:-os}" -var_cpu="${var_cpu:-1}" -var_ram="${var_ram:-512}" -var_disk="${var_disk:-2}" -var_os="${var_os:-debian}" -var_version="${var_version:-13}" -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/limesurvey ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - - msg_warn "Application is updated via Web Interface" - exit -} - -start -build_container -description - -msg_ok "Completed Successfully!\n" -echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" -echo -e "${INFO}${YW} Access it using the following URL:${CL}" -echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}" diff --git a/ct/nginxproxymanager.sh b/ct/nginxproxymanager.sh deleted file mode 100644 index 82eef714..00000000 --- a/ct/nginxproxymanager.sh +++ /dev/null @@ -1,171 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func) -# Copyright (c) 2021-2025 tteck -# Author: tteck (tteckster) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://nginxproxymanager.com/ - -APP="Nginx Proxy Manager" -var_tags="${var_tags:-proxy}" -var_cpu="${var_cpu:-2}" -var_ram="${var_ram:-1024}" -var_disk="${var_disk:-4}" -var_os="${var_os:-debian}" -var_version="${var_version:-13}" -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 /lib/systemd/system/npm.service ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - - if ! command -v yarn &>/dev/null; then - msg_info "Installing Yarn" - $STD npm install -g yarn - msg_ok "Installed Yarn" - fi - - export NODE_OPTIONS="--openssl-legacy-provider" - - RELEASE=$(curl -fsSL https://api.github.com/repos/NginxProxyManager/nginx-proxy-manager/releases/latest | - grep "tag_name" | - awk '{print substr($2, 3, length($2)-4) }') - - msg_info "Downloading NPM v${RELEASE}" - curl -fsSL "https://codeload.github.com/NginxProxyManager/nginx-proxy-manager/tar.gz/v${RELEASE}" | tar -xz - cd nginx-proxy-manager-"${RELEASE}" || exit - msg_ok "Downloaded NPM v${RELEASE}" - - msg_info "Building Frontend" - ( - sed -i "s|\"version\": \"0.0.0\"|\"version\": \"$RELEASE\"|" backend/package.json - sed -i "s|\"version\": \"0.0.0\"|\"version\": \"$RELEASE\"|" frontend/package.json - cd ./frontend || exit - # Replace node-sass with sass in package.json before installation - sed -i 's/"node-sass".*$/"sass": "^1.92.1",/g' package.json - $STD yarn install --network-timeout 600000 - $STD yarn build - ) - msg_ok "Built Frontend" - - msg_info "Stopping Services" - systemctl stop openresty - systemctl stop npm - msg_ok "Stopped Services" - - msg_info "Cleaning Old Files" - rm -rf /app \ - /var/www/html \ - /etc/nginx \ - /var/log/nginx \ - /var/lib/nginx \ - "$STD" /var/cache/nginx - msg_ok "Cleaned Old Files" - - msg_info "Setting up Environment" - ln -sf /usr/bin/python3 /usr/bin/python - ln -sf /opt/certbot/bin/certbot /usr/local/bin/certbot - ln -sf /usr/local/openresty/nginx/sbin/nginx /usr/sbin/nginx - ln -sf /usr/local/openresty/nginx/ /etc/nginx - sed -i 's+^daemon+#daemon+g' docker/rootfs/etc/nginx/nginx.conf - NGINX_CONFS=$(find "$(pwd)" -type f -name "*.conf") - for NGINX_CONF in $NGINX_CONFS; do - sed -i 's+include conf.d+include /etc/nginx/conf.d+g' "$NGINX_CONF" - done - mkdir -p /var/www/html /etc/nginx/logs - cp -r docker/rootfs/var/www/html/* /var/www/html/ - cp -r docker/rootfs/etc/nginx/* /etc/nginx/ - cp docker/rootfs/etc/letsencrypt.ini /etc/letsencrypt.ini - cp docker/rootfs/etc/logrotate.d/nginx-proxy-manager /etc/logrotate.d/nginx-proxy-manager - ln -sf /etc/nginx/nginx.conf /etc/nginx/conf/nginx.conf - rm -f /etc/nginx/conf.d/dev.conf - mkdir -p /tmp/nginx/body \ - /run/nginx \ - /data/nginx \ - /data/custom_ssl \ - /data/logs \ - /data/access \ - /data/nginx/default_host \ - /data/nginx/default_www \ - /data/nginx/proxy_host \ - /data/nginx/redirection_host \ - /data/nginx/stream \ - /data/nginx/dead_host \ - /data/nginx/temp \ - /var/lib/nginx/cache/public \ - /var/lib/nginx/cache/private \ - /var/cache/nginx/proxy_temp - chmod -R 777 /var/cache/nginx - chown root /tmp/nginx - echo resolver "$(awk 'BEGIN{ORS=" "} $1=="nameserver" {print ($2 ~ ":")? "["$2"]": $2}' /etc/resolv.conf);" >/etc/nginx/conf.d/include/resolvers.conf - if [ ! -f /data/nginx/dummycert.pem ] || [ ! -f /data/nginx/dummykey.pem ]; then - $STD openssl req -new -newkey rsa:2048 -days 3650 -nodes -x509 -subj "/O=Nginx Proxy Manager/OU=Dummy Certificate/CN=localhost" -keyout /data/nginx/dummykey.pem -out /data/nginx/dummycert.pem - fi - mkdir -p /app/global /app/frontend/images - cp -r frontend/dist/* /app/frontend - cp -r frontend/app-images/* /app/frontend/images - cp -r backend/* /app - cp -r global/* /app/global - - # Update Certbot and plugins in virtual environment - if [ -d /opt/certbot ]; then - $STD /opt/certbot/bin/pip install --upgrade pip setuptools wheel - $STD /opt/certbot/bin/pip install --upgrade certbot certbot-dns-cloudflare - fi - msg_ok "Setup Environment" - - msg_info "Initializing Backend" - $STD rm -rf /app/config/default.json - if [ ! -f /app/config/production.json ]; then - cat <<'EOF' >/app/config/production.json -{ - "database": { - "engine": "knex-native", - "knex": { - "client": "sqlite3", - "connection": { - "filename": "/data/database.sqlite" - } - } - } -} -EOF - fi - cd /app || exit - export NODE_OPTIONS="--openssl-legacy-provider" - $STD yarn install --network-timeout 600000 - msg_ok "Initialized Backend" - - msg_info "Starting Services" - sed -i 's/user npm/user root/g; s/^pid/#pid/g' /usr/local/openresty/nginx/conf/nginx.conf - sed -i 's/su npm npm/su root root/g' /etc/logrotate.d/nginx-proxy-manager - sed -i 's/include-system-site-packages = false/include-system-site-packages = true/g' /opt/certbot/pyvenv.cfg - systemctl enable -q --now openresty - systemctl enable -q --now npm - msg_ok "Started Services" - - msg_info "Cleaning up" - rm -rf ~/nginx-proxy-manager-* - msg_ok "Cleaned" - - msg_ok "Updated Successfully" - exit -} - -start -build_container -description - -msg_ok "Completed Successfully!\n" -echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" -echo -e "${INFO}${YW} Access it using the following URL:${CL}" -echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:81${CL}" diff --git a/ct/open-archiver.sh b/ct/open-archiver.sh deleted file mode 100644 index 8bc105a2..00000000 --- a/ct/open-archiver.sh +++ /dev/null @@ -1,61 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/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://openarchiver.com/ - -APP="Open-Archiver" -var_tags="${var_tags:-os}" -var_cpu="${var_cpu:-2}" -var_ram="${var_ram:-3072}" -var_disk="${var_disk:-8}" -var_os="${var_os:-debian}" -var_version="${var_version:-13}" -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/openarchiver ]]; then - msg_error "No Open Archiver Installation Found!" - exit - fi - - if check_for_gh_release "openarchiver" "LogicLabs-OU/OpenArchiver"; then - msg_info "Stopping Services" - systemctl stop openarchiver - msg_ok "Stopped Services" - - cp /opt/openarchiver/.env /opt/openarchiver.env - CLEAN_INSTALL=1 fetch_and_deploy_gh_release "openarchiver" "LogicLabs-OU/OpenArchiver" "tarball" "latest" "/opt/openarchiver" - mv /opt/openarchiver.env /opt/openarchiver/.env - - msg_info "Updating Open Archiver" - $STD pnpm install --shamefully-hoist --frozen-lockfile --prod=false - $STD pnpm build - $STD pnpm db:migrate - msg_ok "Updated Open Archiver" - - msg_info "Starting Services" - systemctl start openarchiver - msg_ok "Started Services" - msg_ok "Updated Successfully" - 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/palmr.sh b/ct/palmr.sh deleted file mode 100644 index eb7fec6f..00000000 --- a/ct/palmr.sh +++ /dev/null @@ -1,75 +0,0 @@ -#!/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: vhsdream -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://github.com/kyantech/Palmr - -APP="Palmr" -var_tags="${var_tags:-files}" -var_cpu="${var_cpu:-4}" -var_ram="${var_ram:-6144}" -var_disk="${var_disk:-6}" -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/palmr_data ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - if check_for_gh_release "palmr" "kyantech/Palmr"; then - msg_info "Stopping Services" - systemctl stop palmr-frontend palmr-backend - msg_ok "Stopped Services" - - cp /opt/palmr/apps/server/.env /opt/palmr.env - rm -rf /opt/palmr - fetch_and_deploy_gh_release "Palmr" "kyantech/Palmr" "tarball" "latest" "/opt/palmr" - - PNPM="$(jq -r '.packageManager' /opt/palmr/package.json)" - NODE_VERSION="20" NODE_MODULE="$PNPM" setup_nodejs - - msg_info "Updating ${APP}" - cd /opt/palmr/apps/server - mv /opt/palmr.env /opt/palmr/apps/server/.env - $STD pnpm install - $STD npx prisma generate - $STD npx prisma migrate deploy - $STD npx prisma db push - $STD pnpm build - - cd /opt/palmr/apps/web - export NODE_ENV=production - export NEXT_TELEMETRY_DISABLED=1 - mv ./.env.example ./.env - $STD pnpm install - $STD pnpm build - chown -R palmr:palmr /opt/palmr_data /opt/palmr - msg_ok "Updated ${APP}" - - msg_info "Starting Services" - systemctl start palmr-backend palmr-frontend - msg_ok "Started Services" - msg_ok "Updated Successfully" - 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/plex.sh b/ct/plex.sh deleted file mode 100644 index ef3fd9d6..00000000 --- a/ct/plex.sh +++ /dev/null @@ -1,60 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func) -# Copyright (c) 2021-2025 tteck -# Author: tteck (tteckster) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://www.plex.tv/ - -APP="Plex" -var_tags="${var_tags:-media}" -var_cpu="${var_cpu:-2}" -var_ram="${var_ram:-2048}" -var_disk="${var_disk:-8}" -var_os="${var_os:-ubuntu}" -var_version="${var_version:-24.04}" -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/apt/sources.list.d/plexmediaserver.list ]]; then - msg_info "Migrating Plex repository to Deb822 format" - rm -f /etc/apt/sources.list.d/plexmediaserver.list - curl -fsSL https://downloads.plex.tv/plex-keys/PlexSign.key | tee /usr/share/keyrings/PlexSign.asc >/dev/null - cat </etc/apt/sources.list.d/plexmediaserver.sources -Types: deb -URIs: https://downloads.plex.tv/repo/deb/ -Suites: public -Components: main -Signed-By: /usr/share/keyrings/PlexSign.asc -EOF - msg_ok "Migrated Plex repository to Deb822" - fi - - if [[ ! -f /etc/apt/sources.list.d/plexmediaserver.sources ]]; then - msg_error "No ${APP} repository found!" - exit 1 - fi - - msg_info "Updating ${APP}" - $STD apt update - $STD apt -y -o Dpkg::Options::="--force-confold" upgrade plexmediaserver - msg_ok "Updated ${APP}" - exit -} - -start -build_container -description - -msg_ok "Completed Successfully!\n" -echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" -echo -e "${INFO}${YW} Access it using the following URL:${CL}" -echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:32400/web${CL}" diff --git a/ct/prometheus-blackbox-exporter.sh b/ct/prometheus-blackbox-exporter.sh deleted file mode 100644 index 44a62d49..00000000 --- a/ct/prometheus-blackbox-exporter.sh +++ /dev/null @@ -1,62 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func) -# Copyright (c) 2021-2025 community-scripts ORG -# Author: Marfnl -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://github.com/prometheus/blackbox_exporter - -APP="Prometheus-Blackbox-Exporter" -var_tags="${var_tags:-monitoring;prometheus}" -var_cpu="${var_cpu:-1}" -var_ram="${var_ram:-512}" -var_disk="${var_disk:-4}" -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/blackbox-exporter ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - - if check_for_gh_release "blackbox-exporter" "prometheus/blackbox_exporter"; then - msg_info "Stopping $APP" - systemctl stop blackbox-exporter - msg_ok "Stopped $APP" - - msg_info "Creating backup" - mv /opt/blackbox-exporter/blackbox.yml /opt - msg_ok "Backup created" - - fetch_and_deploy_gh_release "blackbox-exporter" "prometheus/blackbox_exporter" "prebuild" "latest" "/opt/blackbox-exporter" "blackbox_exporter-*.linux-amd64.tar.gz" - - msg_info "Restoring backup" - cp -r /opt/blackbox.yml /opt/blackbox-exporter - rm -f /opt/blackbox.yml - msg_ok "Backup restored" - - msg_info "Starting $APP" - systemctl start blackbox-exporter - msg_ok "Started $APP" - msg_ok "Update Successful" - 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}:9115${CL}" diff --git a/ct/proxmox-datacenter-manager.sh b/ct/proxmox-datacenter-manager.sh deleted file mode 100644 index dfcb1120..00000000 --- a/ct/proxmox-datacenter-manager.sh +++ /dev/null @@ -1,54 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func) -# Copyright (c) 2021-2025 community-scripts ORG -# Author: CrazyWolf13 -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: Proxmox Server Solution GmbH - -APP="Proxmox-Datacenter-Manager" -var_tags="${var_tags:-datacenter}" -var_cpu="${var_cpu:-2}" -var_ram="${var_ram:-2048}" -var_disk="${var_disk:-10}" -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 [[ ! -e /usr/sbin/proxmox-datacenter-manager-admin ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - - if grep -q 'Debian GNU/Linux 12' /etc/os-release && [ -f /etc/apt/sources.list.d/proxmox-release-bookworm.list ] && [ -f /etc/apt/sources.list.d/pdm-test.list ]; then - msg_info "Updating outdated outdated source formats" - echo "deb [signed-by=/usr/share/keyrings/proxmox-archive-keyring.gpg] http://download.proxmox.com/debian/pdm bookworm pdm-test" >/etc/apt/sources.list.d/pdm-test.list - curl -fsSL https://enterprise.proxmox.com/debian/proxmox-archive-keyring-trixie.gpg -o /usr/share/keyrings/proxmox-archive-keyring.gpg - rm -f /etc/apt/keyrings/proxmox-release-bookworm.gpg /etc/apt/sources.list.d/proxmox-release-bookworm.list - $STD apt-get update - msg_ok "Updated old sources" - fi - - msg_info "Updating $APP LXC" - $STD apt-get update - $STD apt-get -y upgrade - msg_ok "Updated $APP LXC" - 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}https://${IP}:8443${CL}" diff --git a/ct/pve-scripts-local.sh b/ct/pve-scripts-local.sh deleted file mode 100644 index d3ee234a..00000000 --- a/ct/pve-scripts-local.sh +++ /dev/null @@ -1,41 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func) -# Copyright (c) 2021-2025 community-scripts ORG -# Author: michelroegl-brunner -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://www.debian.org/ - -APP="PVE-Scripts-Local" -var_tags="${var_tags:-pve-scritps-local}" -var_cpu="${var_cpu:-2}" -var_ram="${var_ram:-4096}" -var_disk="${var_disk:-4}" -var_os="${var_os:-debian}" -var_version="${var_version:-13}" -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 - msg_info "No Update function implementd" - 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/sonarqube.sh b/ct/sonarqube.sh deleted file mode 100644 index c8338e4a..00000000 --- a/ct/sonarqube.sh +++ /dev/null @@ -1,71 +0,0 @@ -#!/usr/bin/env bash -source <(curl -fsSL https://git.community-scripts.org/community-scripts/ProxmoxVED/raw/branch/main/misc/build.func) -# Copyright (c) 2021-2025 community-scripts ORG -# Author: prop4n -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://docs.sonarsource.com/sonarqube-server - -APP="SonarQube" -var_tags="${var_tags:-automation}" -var_cpu="${var_cpu:-4}" -var_ram="${var_ram:-6144}" -var_disk="${var_disk:-25}" -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/sonarqube ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - - if check_for_gh_release "sonarqube" "SonarSource/sonarqube"; then - msg_info "Stopping service" - systemctl stop sonarqube - msg_ok "Service stopped" - - msg_info "Creating backup" - BACKUP_DIR="/opt/sonarqube-backup" - mv /opt/sonarqube ${BACKUP_DIR} - msg_ok "Backup created" - - msg_info "Installing sonarqube" - RELEASE=$(curl -fsSL https://api.github.com/repos/SonarSource/sonarqube/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }') - curl -fsSL "https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-${RELEASE}.zip" -o $temp_file - unzip -q "$temp_file" -d /opt - mv /opt/sonarqube-* /opt/sonarqube - msg_ok "Installed sonarqube" - - msg_info "Restoring backup" - cp -rp ${BACKUP_DIR}/data/ /opt/sonarqube/data/ - cp -rp ${BACKUP_DIR}/extensions/ /opt/sonarqube/extensions/ - cp -p ${BACKUP_DIR}/conf/sonar.properties /opt/sonarqube/conf/sonar.properties - rm -rf ${BACKUP_DIR} - chown -R sonarqube:sonarqube /opt/sonarqube - msg_ok "Backup restored" - - msg_info "Starting service" - systemctl start sonarqube - msg_ok "Service started" - msg_ok "Updated Successfully" - 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}:9000${CL}" diff --git a/frontend/public/json/freepbx.json b/frontend/public/json/freepbx.json deleted file mode 100644 index 11040c04..00000000 --- a/frontend/public/json/freepbx.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "FreePBX", - "slug": "freepbx", - "categories": [ - 0 - ], - "date_created": "2025-05-22", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 80, - "documentation": "https://sangomakb.atlassian.net/wiki/spaces/FP/overview?homepageId=8454359", - "website": "https://www.freepbx.org/", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/freepbx.webp", - "config_path": "", - "description": "FreePBX is a web-based open-source graphical user interface that manages Asterisk, a voice over IP and telephony server.", - "install_methods": [ - { - "type": "default", - "script": "ct/freepbx.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 10, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [ - { - "text": "This script uses the official FreePBX install script. Check it here: https://github.com/FreePBX/sng_freepbx_debian_install", - "type": "info" - } - ] -} diff --git a/frontend/public/json/guardian.json b/frontend/public/json/guardian.json deleted file mode 100644 index b7c6761d..00000000 --- a/frontend/public/json/guardian.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "Guardian", - "slug": "guardian", - "categories": [ - 13 - ], - "date_created": "2025-09-22", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 3000, - "documentation": "https://github.com/HydroshieldMKII/Guardian/blob/main/README.md", - "config_path": "/opt/guardian/.env", - "website": "https://github.com/HydroshieldMKII/Guardian", - "logo": null, - "description": "Guardian is a lightweight companion app for Plex that lets you monitor, approve or block devices in real time. It helps you enforce per-user or global policies, stop unwanted sessions automatically and grant temporary access - all through a simple web interface.", - "install_methods": [ - { - "type": "default", - "script": "ct/guardian.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 6, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [] -} diff --git a/frontend/public/json/limesurvey.json b/frontend/public/json/limesurvey.json deleted file mode 100644 index 0d67ef39..00000000 --- a/frontend/public/json/limesurvey.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "LimeSurvey", - "slug": "limesurvey", - "categories": [ - 25 - ], - "date_created": "2025-09-22", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 80, - "documentation": "https://www.limesurvey.org/manual/LimeSurvey_Manual", - "config_path": "", - "website": "https://community.limesurvey.org/", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/limesurvey.webp", - "description": "LimeSurvey is the simple, quick and anonymous online survey tool that's bursting with juicy insights. Calling students, professionals and enterprises: design a survey and get the best insights, it’s free and as easy as squeezing a lime. Make a free online survey now!", - "install_methods": [ - { - "type": "default", - "script": "ct/limesurvey.sh", - "resources": { - "cpu": 1, - "ram": 512, - "hdd": 2, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [ - { - "text": "You will need to input database credentials into LimeSurvey installer. Use `cat ~/limesurvey.creds` inside LXC.", - "type": "info" - } - ] -} diff --git a/frontend/public/json/open-archiver.json b/frontend/public/json/open-archiver.json deleted file mode 100644 index b203d38c..00000000 --- a/frontend/public/json/open-archiver.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "Open-Archiver", - "slug": "open-archiver", - "categories": [ - 7 - ], - "date_created": "2025-09-30", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 3000, - "documentation": "https://docs.openarchiver.com/", - "config_path": "/opt/openarchiver/.env", - "website": "https://openarchiver.com/", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/OpenArchiver.webp", - "description": "Open Archiver is a secure, self-hosted email archiving solution, and it's completely open source. Get an email archiver that enables full-text search across email and attachments. Create a permanent, searchable, and compliant mail archive from Google Workspace, Microsoft 35, and any IMAP server.", - "install_methods": [ - { - "type": "default", - "script": "ct/open-archiver.sh", - "resources": { - "cpu": 2, - "ram": 3072, - "hdd": 8, - "os": "debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [ - { - "text": "Data directory is: `/opt/openarchiver-data`. If you have a lot of email, you might consider mounting external storage to this directory.", - "type": "info" - } - ] -} diff --git a/frontend/public/json/prometheus-blackbox-exporter.json b/frontend/public/json/prometheus-blackbox-exporter.json deleted file mode 100644 index bc20843e..00000000 --- a/frontend/public/json/prometheus-blackbox-exporter.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "name": "Prometheus Blackbox Exporter", - "slug": "prometheus-blackbox-exporter", - "categories": [ - 1, - 9 - ], - "date_created": "2025-09-29", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 9115, - "documentation": "https://github.com/prometheus/blackbox_exporter", - "website": "https://github.com/prometheus/blackbox_exporter", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/prometheus.webp", - "config_path": "/opt/blackbox-exporter/blackbox.yml", - "description": "An exporter allows blackbox probing of endpoints over HTTP, HTTPS, DNS, TCP, ICMP and gRPC for use by the Prometheus monitoring system.", - "install_methods": [ - { - "type": "default", - "script": "ct/prometheus-blackbox-exporter.sh", - "resources": { - "cpu": 1, - "ram": 512, - "hdd": 4, - "os": "debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [ - { - "text": "Please adjust the Proxmox credentials in the configuration file!", - "type": "info" - } - ] -} diff --git a/frontend/public/json/pve-scripts-local.json b/frontend/public/json/pve-scripts-local.json deleted file mode 100644 index c8d5061f..00000000 --- a/frontend/public/json/pve-scripts-local.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "PVEScriptsLocal", - "slug": "pve-scripts-local", - "categories": [ - 1 - ], - "date_created": "2025-10-03", - "type": "ct", - "updateable": false, - "privileged": false, - "interface_port": 3000, - "documentation": "https://github.com/community-scripts/ProxmoxVE-Local", - "config_path": "/opt/PVEScripts-Local/.env", - "website": "https://community-scripts.github.io/ProxmoxVE", - "logo": "https://community-scripts.github.io/ProxmoxVE/logo.png", - "description": "A modern web-based management interface for Proxmox VE (PVE) helper scripts. This tool provides a user-friendly way to discover, download, and execute community-sourced Proxmox scripts locally with real-time terminal output streaming.", - "install_methods": [ - { - "type": "default", - "script": "ct/pve-scripts-local.sh", - "resources": { - "cpu": 2, - "ram": 4096, - "hdd": 4, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [] -} diff --git a/frontend/public/json/sonarqube.json b/frontend/public/json/sonarqube.json deleted file mode 100644 index d3a822f3..00000000 --- a/frontend/public/json/sonarqube.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "sonarqube", - "slug": "sonarqube", - "categories": [ - 20, - 19 - ], - "date_created": "2025-09-30", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 9000, - "documentation": "https://docs.sonarsource.com/sonarqube-server", - "config_path": "/opt/sonarqube/conf/sonar.properties", - "website": "https://www.sonarsource.com/products/sonarqube/", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/sonarqube.webp", - "description": "SonarQube Server automates code quality and security reviews and provides actionable code intelligence so developers can focus on building better, faster.", - "install_methods": [ - { - "type": "default", - "script": "ct/sonarqube.sh", - "resources": { - "cpu": 4, - "ram": 6144, - "hdd": 25, - "os": "Debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": "admin", - "password": "admin" - }, - "notes": [] -} diff --git a/install/gitea-mirror-install.sh b/install/gitea-mirror-install.sh deleted file mode 100644 index 7f15bd7a..00000000 --- a/install/gitea-mirror-install.sh +++ /dev/null @@ -1,77 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2021-2025 community-scripts ORG -# Author: CrazyWolf13 -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://github.com/RayLabsHQ/gitea-mirror - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -msg_info "Installing dependencies" -$STD apt-get install -y \ - build-essential \ - openssl \ - sqlite3 \ - unzip -msg_ok "Installed Dependencies" - -msg_info "Installing Bun" -export BUN_INSTALL=/opt/bun -curl -fsSL https://bun.sh/install | $STD bash -ln -sf /opt/bun/bin/bun /usr/local/bin/bun -ln -sf /opt/bun/bin/bun /usr/local/bin/bunx -msg_ok "Installed Bun" - -fetch_and_deploy_gh_release "gitea-mirror" "RayLabsHQ/gitea-mirror" - -msg_info "Installing gitea-mirror" -cd /opt/gitea-mirror -$STD bun run setup -$STD bun run build -msg_ok "Installed gitea-mirror" - -msg_info "Creating Services" -APP_SECRET=$(openssl rand -base64 32) -APP_VERSION=$(grep -o '"version": *"[^"]*"' package.json | cut -d'"' -f4) -HOST_IP=$(hostname -I | awk '{print $1}') -cat </opt/gitea-mirror.env -# See here for config options: https://github.com/RayLabsHQ/gitea-mirror/blob/main/docs/ENVIRONMENT_VARIABLES.md -NODE_ENV=production -HOST=0.0.0.0 -PORT=4321 -DATABASE_URL=sqlite://data/gitea-mirror.db -BETTER_AUTH_URL=http://${HOST_IP}:4321 -BETTER_AUTH_SECRET=${APP_SECRET} -npm_package_version=${APP_VERSION} -EOF - -cat </etc/systemd/system/gitea-mirror.service -[Unit] -Description=Gitea Mirror -After=network.target -[Service] -Type=simple -WorkingDirectory=/opt/gitea-mirror -ExecStart=/usr/local/bin/bun dist/server/entry.mjs -Restart=on-failure -RestartSec=10 -EnvironmentFile=/opt/gitea-mirror.env -[Install] -WantedBy=multi-user.target -EOF -systemctl enable -q --now gitea-mirror -msg_ok "Created Service" - -motd_ssh -customize - -msg_info "Cleaning up" -$STD apt-get -y autoremove -$STD apt-get -y autoclean -msg_ok "Cleaned" diff --git a/install/guardian-install.sh b/install/guardian-install.sh deleted file mode 100644 index 8c917a7f..00000000 --- a/install/guardian-install.sh +++ /dev/null @@ -1,74 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2021-2025 community-scripts ORG -# Author: HydroshieldMKII -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://github.com/HydroshieldMKII/Guardian - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -msg_info "Installing Dependencies" -$STD apt install -y sqlite3 -msg_ok "Installed Dependencies" - -NODE_VERSION="24" setup_nodejs -fetch_and_deploy_gh_release "guardian" "HydroshieldMKII/Guardian" "tarball" "latest" "/opt/guardian" - -msg_info "Configuring ${APPLICATION}" -cd /opt/guardian/backend -$STD npm ci -$STD npm run build -cd /opt/guardian/frontend -$STD npm ci -export DEPLOYMENT_MODE=standalone -$STD npm run build -msg_ok "Configured ${APPLICATION}" - -msg_info "Creating Service" -cat </etc/systemd/system/guardian-backend.service -[Unit] -Description=Guardian Backend -After=network.target - -[Service] -WorkingDirectory=/opt/guardian/backend -ExecStart=/usr/bin/node dist/main.js -Restart=always -RestartSec=3 -[Install] -WantedBy=multi-user.target -EOF - -cat </etc/systemd/system/guardian-frontend.service -[Unit] -Description=Guardian Frontend -After=guardian-backend.service network.target -Wants=guardian-backend.service - -[Service] -WorkingDirectory=/opt/guardian/frontend -Environment=DEPLOYMENT_MODE=standalone -ExecStart=/usr/bin/npm run start -Restart=always -RestartSec=3 -[Install] -WantedBy=multi-user.target -EOF - -systemctl enable -q --now guardian-backend -systemctl enable -q --now guardian-frontend -msg_ok "Created Service" - -motd_ssh -customize - -apt -y autoremove -apt -y autoclean -apt -y clean -msg_ok "Cleaned" diff --git a/install/jellyfin-install.sh b/install/jellyfin-install.sh deleted file mode 100644 index 05b6572d..00000000 --- a/install/jellyfin-install.sh +++ /dev/null @@ -1,51 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2021-2025 Community-Scripts ORG -# Author: tteck (tteckster) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://jellyfin.org/ - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os -setup_hwaccel - -msg_info "Installing Jellyfin" -if [[ ! -d /etc/apt/keyrings ]]; then - mkdir -p /etc/apt/keyrings -fi -VERSION="$(awk -F'=' '/^VERSION_CODENAME=/{ print $NF }' /etc/os-release)" -curl -fsSL https://repo.jellyfin.org/jellyfin_team.gpg.key | gpg --dearmor --yes --output /etc/apt/keyrings/jellyfin.gpg -cat </etc/apt/sources.list.d/jellyfin.sources -Types: deb -URIs: https://repo.jellyfin.org/${PCT_OSTYPE} -Suites: ${VERSION} -Components: main -Architectures: amd64 -Signed-By: /etc/apt/keyrings/jellyfin.gpg -EOF -$STD apt update -$STD apt install -y jellyfin -sed -i 's/"MinimumLevel": "Information"/"MinimumLevel": "Error"/g' /etc/jellyfin/logging.json -chown -R jellyfin:adm /etc/jellyfin -sleep 10 -systemctl restart jellyfin -if [[ "$CTTYPE" == "0" ]]; then - sed -i -e 's/^ssl-cert:x:104:$/render:x:104:root,jellyfin/' -e 's/^render:x:108:root,jellyfin$/ssl-cert:x:108:/' /etc/group -else - sed -i -e 's/^ssl-cert:x:104:$/render:x:104:jellyfin/' -e 's/^render:x:108:jellyfin$/ssl-cert:x:108:/' /etc/group -fi -msg_ok "Installed Jellyfin" - -motd_ssh -customize - -msg_info "Cleaning up" -$STD apt -y autoremove -$STD apt -y autoclean -$STD apt -y clean -msg_ok "Cleaned" diff --git a/install/limesurvey-install.sh b/install/limesurvey-install.sh deleted file mode 100644 index 2f619776..00000000 --- a/install/limesurvey-install.sh +++ /dev/null @@ -1,74 +0,0 @@ -#!/usr/bin/env bash - -# 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://community.limesurvey.org/ - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -PHP_VERSION="8.3" PHP_APACHE="YES" PHP_FPM="YES" PHP_MODULE="imap,ldap,mysql" setup_php -setup_mariadb - -msg_info "Configuring MariaDB Database" -DB_NAME=limesurvey_db -DB_USER=limesurvey -DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13) -$STD mariadb -u root -e "CREATE DATABASE $DB_NAME CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" -$STD mariadb -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED BY '$DB_PASS';" -$STD mariadb -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;" -{ - echo "LimeSurvey-Credentials" - echo "LimeSurvey Database User: $DB_USER" - echo "LimeSurvey Database Password: $DB_PASS" - echo "LimeSurvey Database Name: $DB_NAME" -} >>~/limesurvey.creds -msg_ok "Configured MariaDB Database" - -msg_info "Setting up LimeSurvey" -temp_file=$(mktemp) -RELEASE=$(curl -s https://community.limesurvey.org/downloads/ | grep -oE 'https://download\.limesurvey\.org/latest-master/limesurvey[0-9.+]+\.zip' | head -n1) -curl -fsSL "$RELEASE" -o "$temp_file" -unzip -q "$temp_file" -d /opt - -cat </etc/apache2/sites-enabled/000-default.conf - - ServerAdmin webmaster@localhost - DocumentRoot /opt/limesurvey - DirectoryIndex index.php index.html index.cgi index.pl index.xhtml - Options +ExecCGI - - - Options FollowSymLinks - Require all granted - AllowOverride All - - - - Require all granted - - - ErrorLog /var/log/apache2/error.log - CustomLog /var/log/apache2/access.log combined - -EOF -chown -R www-data:www-data "/opt/limesurvey" -chmod -R 750 "/opt/limesurvey" -systemctl reload apache2 -msg_ok "Set up LimeSurvey" - -motd_ssh -customize - -msg_info "Cleaning up" -rm -rf "$temp_file" -$STD apt -y autoremove -$STD apt -y autoclean -$STD apt -y clean -msg_ok "Cleaned" diff --git a/install/nginxproxymanager-install.sh b/install/nginxproxymanager-install.sh deleted file mode 100644 index 66487813..00000000 --- a/install/nginxproxymanager-install.sh +++ /dev/null @@ -1,189 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2021-2025 tteck -# Author: tteck (tteckster) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://nginxproxymanager.com/ - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -msg_info "Installing Dependencies" -$STD apt update -$STD apt -y install \ - ca-certificates \ - apache2-utils \ - logrotate \ - build-essential \ - git -msg_ok "Installed Dependencies" - -msg_info "Installing Python Dependencies" -$STD apt install -y \ - python3 \ - python3-dev \ - python3-pip \ - python3-venv \ - python3-cffi -msg_ok "Installed Python Dependencies" - -msg_info "Setting up Certbot" -$STD python3 -m venv /opt/certbot -$STD /opt/certbot/bin/pip install --upgrade pip setuptools wheel -$STD /opt/certbot/bin/pip install certbot certbot-dns-cloudflare -ln -sf /opt/certbot/bin/certbot /usr/local/bin/certbot -msg_ok "Set up Certbot" - -VERSION="$(awk -F'=' '/^VERSION_CODENAME=/{ print $NF }' /etc/os-release)" - -msg_info "Installing Openresty" -curl -fsSL "https://openresty.org/package/pubkey.gpg" | gpg --dearmor -o /etc/apt/trusted.gpg.d/openresty-archive-keyring.gpg -case "$VERSION" in -trixie) - echo -e "deb http://openresty.org/package/debian bookworm openresty" >/etc/apt/sources.list.d/openresty.list - ;; -*) - echo -e "deb http://openresty.org/package/debian $VERSION openresty" >/etc/apt/sources.list.d/openresty.list - ;; -esac -$STD apt update -$STD apt -y install openresty -msg_ok "Installed Openresty" - -NODE_VERSION="22" NODE_MODULE="yarn" setup_nodejs - -RELEASE=$(curl -fsSL https://api.github.com/repos/NginxProxyManager/nginx-proxy-manager/releases/latest | - grep "tag_name" | - awk '{print substr($2, 3, length($2)-4) }') - -msg_info "Downloading Nginx Proxy Manager v${RELEASE}" -curl -fsSL "https://codeload.github.com/NginxProxyManager/nginx-proxy-manager/tar.gz/v${RELEASE}" | tar -xz -cd ./nginx-proxy-manager-"${RELEASE}" -msg_ok "Downloaded Nginx Proxy Manager v${RELEASE}" - -msg_info "Setting up Environment" -ln -sf /usr/bin/python3 /usr/bin/python -ln -sf /usr/local/openresty/nginx/sbin/nginx /usr/sbin/nginx -ln -sf /usr/local/openresty/nginx/ /etc/nginx -sed -i "s|\"version\": \"0.0.0\"|\"version\": \"$RELEASE\"|" backend/package.json -sed -i "s|\"version\": \"0.0.0\"|\"version\": \"$RELEASE\"|" frontend/package.json -sed -i 's+^daemon+#daemon+g' docker/rootfs/etc/nginx/nginx.conf -NGINX_CONFS=$(find "$(pwd)" -type f -name "*.conf") -for NGINX_CONF in $NGINX_CONFS; do - sed -i 's+include conf.d+include /etc/nginx/conf.d+g' "$NGINX_CONF" -done - -mkdir -p /var/www/html /etc/nginx/logs -cp -r docker/rootfs/var/www/html/* /var/www/html/ -cp -r docker/rootfs/etc/nginx/* /etc/nginx/ -cp docker/rootfs/etc/letsencrypt.ini /etc/letsencrypt.ini -cp docker/rootfs/etc/logrotate.d/nginx-proxy-manager /etc/logrotate.d/nginx-proxy-manager -ln -sf /etc/nginx/nginx.conf /etc/nginx/conf/nginx.conf -rm -f /etc/nginx/conf.d/dev.conf - -mkdir -p /tmp/nginx/body \ - /run/nginx \ - /data/nginx \ - /data/custom_ssl \ - /data/logs \ - /data/access \ - /data/nginx/default_host \ - /data/nginx/default_www \ - /data/nginx/proxy_host \ - /data/nginx/redirection_host \ - /data/nginx/stream \ - /data/nginx/dead_host \ - /data/nginx/temp \ - /var/lib/nginx/cache/public \ - /var/lib/nginx/cache/private \ - /var/cache/nginx/proxy_temp - -chmod -R 777 /var/cache/nginx -chown root /tmp/nginx - -echo resolver "$(awk 'BEGIN{ORS=" "} $1=="nameserver" {print ($2 ~ ":")? "["$2"]": $2}' /etc/resolv.conf);" >/etc/nginx/conf.d/include/resolvers.conf - -if [ ! -f /data/nginx/dummycert.pem ] || [ ! -f /data/nginx/dummykey.pem ]; then - openssl req -new -newkey rsa:2048 -days 3650 -nodes -x509 -subj "/O=Nginx Proxy Manager/OU=Dummy Certificate/CN=localhost" -keyout /data/nginx/dummykey.pem -out /data/nginx/dummycert.pem &>/dev/null -fi - -mkdir -p /app/global /app/frontend/images -cp -r backend/* /app -cp -r global/* /app/global -msg_ok "Set up Environment" - -msg_info "Building Frontend" -cd ./frontend -export NODE_OPTIONS="--openssl-legacy-provider" -# Replace node-sass with sass in package.json before installation -sed -i 's/"node-sass".*$/"sass": "^1.92.1",/g' package.json -$STD yarn install --network-timeout 600000 -$STD yarn build -cp -r dist/* /app/frontend -cp -r app-images/* /app/frontend/images -msg_ok "Built Frontend" - -msg_info "Initializing Backend" -rm -rf /app/config/default.json -if [ ! -f /app/config/production.json ]; then - cat <<'EOF' >/app/config/production.json -{ - "database": { - "engine": "knex-native", - "knex": { - "client": "sqlite3", - "connection": { - "filename": "/data/database.sqlite" - } - } - } -} -EOF -fi -cd /app -export NODE_OPTIONS="--openssl-legacy-provider" -$STD yarn install --network-timeout 600000 -msg_ok "Initialized Backend" - -msg_info "Creating Service" -cat <<'EOF' >/lib/systemd/system/npm.service -[Unit] -Description=Nginx Proxy Manager -After=network.target -Wants=openresty.service - -[Service] -Type=simple -Environment=NODE_ENV=production -ExecStartPre=-mkdir -p /tmp/nginx/body /data/letsencrypt-acme-challenge -ExecStart=/usr/bin/node index.js --abort_on_uncaught_exception --max_old_space_size=250 -WorkingDirectory=/app -Restart=on-failure - -[Install] -WantedBy=multi-user.target -EOF -msg_ok "Created Service" - -motd_ssh -customize - -msg_info "Starting Services" -sed -i 's/user npm/user root/g; s/^pid/#pid/g' /usr/local/openresty/nginx/conf/nginx.conf -sed -r -i 's/^([[:space:]]*)su npm npm/\1#su npm npm/g;' /etc/logrotate.d/nginx-proxy-manager -systemctl enable -q --now openresty -systemctl enable -q --now npm -msg_ok "Started Services" - -msg_info "Cleaning up" -rm -rf ../nginx-proxy-manager-* -systemctl restart openresty -$STD apt -y autoremove -$STD apt -y autoclean -$STD apt -y clean -msg_ok "Cleaned" diff --git a/install/open-archiver-install.sh b/install/open-archiver-install.sh deleted file mode 100644 index 628ede76..00000000 --- a/install/open-archiver-install.sh +++ /dev/null @@ -1,124 +0,0 @@ -#!/usr/bin/env bash - -# 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://openarchiver.com/ - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -msg_info "Installing dependendencies" -$STD apt install -y valkey -msg_ok "Installed dependendencies" - -NODE_VERSION="22" NODE_MODULE="pnpm" setup_nodejs -PG_VERSION="17" setup_postgresql -fetch_and_deploy_gh_release "meilisearch" "meilisearch/meilisearch" "binary" -fetch_and_deploy_gh_release "openarchiver" "LogicLabs-OU/OpenArchiver" "tarball" -JWT_KEY="$(openssl rand -hex 32)" -SECRET_KEY="$(openssl rand -hex 32)" -IP_ADDR=$(hostname -I | awk '{print $1}') - -msg_info "Setting up PostgreSQL" -DB_NAME="openarchiver_db" -DB_USER="openarchiver" -DB_PASS="$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | cut -c1-18)" -$STD sudo -u postgres psql -c "CREATE ROLE $DB_USER WITH LOGIN PASSWORD '$DB_PASS';" -$STD sudo -u postgres psql -c "CREATE DATABASE $DB_NAME WITH OWNER $DB_USER ENCODING 'UTF8' TEMPLATE template0;" -$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET client_encoding TO 'utf8';" -$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET default_transaction_isolation TO 'read committed';" -$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET timezone TO 'UTC';" -{ - echo "Open Archiver DB Credentials" - echo "Database Name: $DB_NAME" - echo "Database User: $DB_USER" - echo "Database Password: $DB_PASS" -} >>~/openarchiver.creds -msg_ok "Set up PostgreSQL" - -msg_info "Configuring MeiliSearch" -curl -fsSL https://raw.githubusercontent.com/meilisearch/meilisearch/latest/config.toml -o /etc/meilisearch.toml -MASTER_KEY=$(openssl rand -base64 12) -sed -i \ - -e 's|^env =.*|env = "production"|' \ - -e "s|^# master_key =.*|master_key = \"$MASTER_KEY\"|" \ - -e 's|^db_path =.*|db_path = "/var/lib/meilisearch/data"|' \ - -e 's|^dump_dir =.*|dump_dir = "/var/lib/meilisearch/dumps"|' \ - -e 's|^snapshot_dir =.*|snapshot_dir = "/var/lib/meilisearch/snapshots"|' \ - -e 's|^# no_analytics = true|no_analytics = true|' \ - -e 's|^http_addr =.*|http_addr = "127.0.0.1:7700"|' \ - /etc/meilisearch.toml - -cat </etc/systemd/system/meilisearch.service -[Unit] -Description=Meilisearch -After=network.target - -[Service] -ExecStart=/usr/bin/meilisearch --config-file-path /etc/meilisearch.toml -Restart=always - -[Install] -WantedBy=multi-user.target -EOF -systemctl enable -q --now meilisearch -sleep 5 -msg_ok "Configured MeiliSearch" - -msg_info "Setting up Open Archiver" -mkdir -p /opt/openarchiver-data -cd /opt/openarchiver -cp .env.example .env -sed -i "s|^NODE_ENV=.*|NODE_ENV=production|g" /opt/openarchiver/.env -sed -i "s|^POSTGRES_DB=.*|POSTGRES_DB=openarchiver_db|g" /opt/openarchiver/.env -sed -i "s|^POSTGRES_USER=.*|POSTGRES_USER=openarchiver|g" /opt/openarchiver/.env -sed -i "s|^POSTGRES_PASSWORD=.*|POSTGRES_PASSWORD=$DB_PASS|g" /opt/openarchiver/.env -sed -i "s|^DATABASE_URL=.*|DATABASE_URL=\"postgresql://openarchiver:$DB_PASS@localhost:5432/openarchiver_db\"|g" /opt/openarchiver/.env -sed -i "s|^MEILI_HOST=.*|MEILI_HOST=http://localhost:7700|g" /opt/openarchiver/.env -sed -i "s|^MEILI_MASTER_KEY=.*|MEILI_MASTER_KEY=$MASTER_KEY|g" /opt/openarchiver/.env -sed -i "s|^REDIS_HOST=.*|REDIS_HOST=localhost|g" /opt/openarchiver/.env -sed -i "s|^REDIS_PASSWORD=.*|REDIS_PASSWORD=|g" /opt/openarchiver/.env -sed -i "s|^STORAGE_LOCAL_ROOT_PATH=.*|STORAGE_LOCAL_ROOT_PATH=/opt/openarchiver-data|g" /opt/openarchiver/.env -sed -i "s|^JWT_SECRET=.*|JWT_SECRET=$JWT_KEY|g" /opt/openarchiver/.env -sed -i "s|^ENCRYPTION_KEY=.*|ENCRYPTION_KEY=$SECRET_KEY|g" /opt/openarchiver/.env -sed -i "s|^TIKA_URL=.*|TIKA_URL=|g" /opt/openarchiver/.env -echo "ORIGIN=http://$IP_ADDR:3000" >> /opt/openarchiver/.env -$STD pnpm install --shamefully-hoist --frozen-lockfile --prod=false -$STD pnpm build -$STD pnpm db:migrate -msg_ok "Setup Open Archiver" - -msg_info "Creating Service" -cat </etc/systemd/system/openarchiver.service -[Unit] -Description=Open Archiver Service -After=network-online.target - -[Service] -Type=simple -User=root -EnvironmentFile=/opt/openarchiver/.env -WorkingDirectory=/opt/openarchiver -ExecStart=/usr/bin/pnpm docker-start -Restart=on-failure - -[Install] -WantedBy=multi-user.target -EOF -systemctl enable -q --now openarchiver -msg_ok "Created Service" - -motd_ssh -customize - -msg_info "Cleaning up" -$STD apt -y autoremove -$STD apt -y autoclean -$STD apt -y clean -msg_ok "Cleaned" diff --git a/install/palmr-install.sh b/install/palmr-install.sh deleted file mode 100644 index 9833ed5d..00000000 --- a/install/palmr-install.sh +++ /dev/null @@ -1,95 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2025 Community Scripts ORG -# Author: vhsdream -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://github.com/kyantech/Palmr - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -fetch_and_deploy_gh_release "Palmr" "kyantech/Palmr" "tarball" "latest" "/opt/palmr" -PNPM="$(jq -r '.packageManager' /opt/palmr/package.json)" -NODE_VERSION="20" NODE_MODULE="$PNPM" setup_nodejs - -msg_info "Configuring palmr backend" -PALMR_DIR="/opt/palmr_data" -mkdir -p "$PALMR_DIR" -PALMR_DB="${PALMR_DIR}/palmr.db" -PALMR_KEY="$(openssl rand -hex 32)" -cd /opt/palmr/apps/server -sed -e 's/_ENCRYPTION=true/_ENCRYPTION=false/' \ - -e '/^# ENC/s/# //' \ - -e "s/ENCRYPTION_KEY=.*$/ENCRYPTION_KEY=$PALMR_KEY/" \ - -e "s|file:.*$|file:$PALMR_DB\"|" \ - -e "\|db\"$|a\\# Uncomment below when using a reverse proxy\\ -# SECURE_SITE=true\\ -# Uncomment and add your path if using symlinks for data storage\\ -# CUSTOM_PATH=" \ - .env.example >./.env -$STD pnpm install -$STD npx prisma generate -$STD npx prisma migrate deploy -$STD npx prisma db push -$STD pnpm db:seed -$STD pnpm build -msg_ok "Configured palmr backend" - -msg_info "Configuring palmr frontend" -cd /opt/palmr/apps/web -mv ./.env.example ./.env -export NODE_ENV=production -export NEXT_TELEMETRY_DISABLED=1 -$STD pnpm install -$STD pnpm build -msg_ok "Configured palmr frontend" - -msg_info "Creating service" -useradd -d "$PALMR_DIR" -M -s /usr/sbin/nologin -U palmr -chown -R palmr:palmr "$PALMR_DIR" /opt/palmr -cat </etc/systemd/system/palmr-backend.service -[Unit] -Description=palmr Backend Service -After=network.target - -[Service] -Type=simple -User=palmr -Group=palmr -WorkingDirectory=/opt/palmr_data -ExecStart=/usr/bin/node /opt/palmr/apps/server/dist/server.js - -[Install] -WantedBy=multi-user.target -EOF - -cat </etc/systemd/system/palmr-frontend.service -[Unit] -Description=palmr Frontend Service -After=network.target palmr-backend.service - -[Service] -Type=simple -User=palmr -Group=palmr -WorkingDirectory=/opt/palmr/apps/web -ExecStart=/usr/bin/pnpm start - -[Install] -WantedBy=multi-user.target -EOF -systemctl enable -q --now palmr-backend palmr-frontend -msg_ok "Created service" - -motd_ssh -customize - -msg_info "Cleaning up" -$STD apt-get -y autoremove -$STD apt-get -y autoclean -msg_ok "Cleaned" diff --git a/install/plex-install.sh b/install/plex-install.sh deleted file mode 100644 index d04d20c7..00000000 --- a/install/plex-install.sh +++ /dev/null @@ -1,55 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2021-2025 tteck -# Author: tteck (tteckster) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://www.plex.tv/ - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -msg_info "Setting Up Hardware Acceleration" -$STD apt -y install va-driver-all ocl-icd-libopencl1 intel-opencl-icd vainfo intel-gpu-tools -if [[ "$CTTYPE" == "0" ]]; then - chgrp video /dev/dri - chmod 755 /dev/dri - chmod 660 /dev/dri/* - $STD adduser $(id -u -n) video - $STD adduser $(id -u -n) render -fi -msg_ok "Set Up Hardware Acceleration" - -msg_info "Setting Up Plex Media Server Repository" -curl -fsSL https://downloads.plex.tv/plex-keys/PlexSign.key | tee /usr/share/keyrings/PlexSign.asc >/dev/null -cat </etc/apt/sources.list.d/plexmediaserver.sources -Types: deb -URIs: https://downloads.plex.tv/repo/deb/ -Suites: public -Components: main -Signed-By: /usr/share/keyrings/PlexSign.asc -EOF -msg_ok "Set Up Plex Media Server Repository" - -msg_info "Installing Plex Media Server" -$STD apt update -$STD apt -y -o Dpkg::Options::="--force-confold" install plexmediaserver -if [[ "$CTTYPE" == "0" ]]; then - sed -i -e 's/^ssl-cert:x:104:plex$/render:x:104:root,plex/' -e 's/^render:x:108:root$/ssl-cert:x:108:plex/' /etc/group -else - sed -i -e 's/^ssl-cert:x:104:plex$/render:x:104:plex/' -e 's/^render:x:108:$/ssl-cert:x:108:/' /etc/group -fi -msg_ok "Installed Plex Media Server" - -motd_ssh -customize - -msg_info "Cleaning up" -$STD apt -y autoremove -$STD apt -y autoclean -$STD apt -y clean -msg_ok "Cleaned" diff --git a/install/prometheus-blackbox-exporter-install.sh b/install/prometheus-blackbox-exporter-install.sh deleted file mode 100644 index be95d964..00000000 --- a/install/prometheus-blackbox-exporter-install.sh +++ /dev/null @@ -1,42 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2021-2025 community-scripts ORG -# Author: Marfnl -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://github.com/prometheus/blackbox_exporter - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -fetch_and_deploy_gh_release "blackbox-exporter" "prometheus/blackbox_exporter" "prebuild" "latest" "/opt/blackbox-exporter" "blackbox_exporter-*.linux-amd64.tar.gz" - -msg_info "Creating Service" -cat </etc/systemd/system/blackbox-exporter.service -[Unit] -Description=Blackbox Exporter Service -After=network.target - -[Service] -Type=simple -WorkingDirectory=/opt/blackbox-exporter -ExecStart=/opt/blackbox-exporter/blackbox_exporter -Restart=on-failure - -[Install] -WantedBy=multi-user.target -EOF -systemctl enable -q --now blackbox-exporter -msg_ok "Service Created" - -motd_ssh -customize - -msg_info "Cleaning up" -$STD apt-get -y autoremove -$STD apt-get -y autoclean -msg_ok "Cleaned" diff --git a/install/pve-scripts-local-install.sh b/install/pve-scripts-local-install.sh deleted file mode 100644 index 368fb308..00000000 --- a/install/pve-scripts-local-install.sh +++ /dev/null @@ -1,64 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2021-2025 community-scripts ORG -# Author: michelroegl-brunner -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -msg_info "Installing Dependencies" - $STD apt-get update - $STD apt-get install -y \ - build-essential \ - sshpass \ - rsync \ - expect -msg_ok "Dependencies installed." - -NODE_VERSION=22 setup_nodejs -fetch_and_deploy_gh_release "ProxmoxVE-Local" "community-scripts/ProxmoxVE-Local" - -msg_info "Installing PVE Scripts local" -cd /opt/ProxmoxVE-Local -$STD npm install -cp .env.example .env -mkdir -p data -chmod 755 data -$STD npm run build -msg_ok "Installed PVE Scripts local" - -msg_info "Creating Service" -cat </etc/systemd/system/pvescriptslocal.service -[Unit] -Description=PVEScriptslocal Service -After=network.target - -[Service] -WorkingDirectory=/opt/ProxmoxVE-Local -ExecStart=/usr/bin/npm start -Restart=always -RestartSec=10 -Environment=NODE_ENV=production -User=root - -[Install] -WantedBy=multi-user.target -EOF - -systemctl enable -q --now pvescriptslocal -msg_ok "Created Service" - -motd_ssh -customize - -msg_info "Cleaning up" -$STD apt -y autoremove -$STD apt -y autoclean -$STD apt -y clean -msg_ok "Cleaned" diff --git a/install/sonarqube-install.sh b/install/sonarqube-install.sh deleted file mode 100644 index 57211e96..00000000 --- a/install/sonarqube-install.sh +++ /dev/null @@ -1,81 +0,0 @@ -#!/usr/bin/env bash -# Copyright (c) 2021-2025 community-scripts ORG -# Author: prop4n -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://docs.sonarsource.com/sonarqube-server - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -JAVA_VERSION="21" setup_java -PG_VERSION="17" setup_postgresql - -msg_info "Installing Postgresql" -DB_NAME="sonarqube" -DB_USER="sonarqube" -DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | cut -c1-13) -$STD sudo -u postgres psql -c "CREATE USER $DB_USER WITH PASSWORD '$DB_PASS';" -$STD sudo -u postgres psql -c "CREATE DATABASE $DB_NAME OWNER $DB_USER;" -{ - echo "Application Credentials" - echo "DB_NAME: $DB_NAME" - echo "DB_USER: $DB_USER" - echo "DB_PASS: $DB_PASS" -} >>~/sonarqube.creds -msg_ok "Installed PostgreSQL" - -msg_info "Configuring SonarQube" -temp_file=$(mktemp) -RELEASE=$(curl -fsSL https://api.github.com/repos/SonarSource/sonarqube/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }') -curl -fsSL "https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-${RELEASE}.zip" -o $temp_file -unzip -q "$temp_file" -d /opt -mv /opt/sonarqube-* /opt/sonarqube -$STD useradd -r -m -U -d /opt/sonarqube -s /bin/bash sonarqube -chown -R sonarqube:sonarqube /opt/sonarqube -chmod -R 755 /opt/sonarqube -mkdir -p /opt/sonarqube/conf -cat </opt/sonarqube/conf/sonar.properties -sonar.jdbc.username=${DB_USER} -sonar.jdbc.password=${DB_PASS} -sonar.jdbc.url=jdbc:postgresql://localhost/${DB_NAME} -sonar.web.host=0.0.0.0 -sonar.web.port=9000 -EOF -chmod +x /opt/sonarqube/bin/linux-x86-64/sonar.sh -echo ${RELEASE} >>~/.sonarqube -msg_ok "Configured SonarQube" - -msg_info "Creating Service" -cat </etc/systemd/system/sonarqube.service -[Unit] -Description=SonarQube service -After=postgresql.service - -[Service] -Type=forking -ExecStart=/opt/sonarqube/bin/linux-x86-64/sonar.sh start -ExecStop=/opt/sonarqube/bin/linux-x86-64/sonar.sh stop -User=sonarqube -Group=sonarqube -Restart=on-failure -LimitNOFILE=131072 -LimitNPROC=8192 - -[Install] -WantedBy=multi-user.target -EOF -systemctl enable -q --now sonarqube -msg_ok "Service Created" - -motd_ssh -customize - -msg_info "Cleaning up" -$STD apt-get -y autoremove -$STD apt-get -y autoclean -msg_ok "Cleaned"