From 5eecfb536641556d780c263c770577886b3656a0 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Fri, 8 Aug 2025 08:05:12 +0200 Subject: [PATCH] cleanup --- ct/alpine-teamspeak-server.sh | 64 --------- ct/hortusfox.sh | 73 ----------- ct/jeedom.sh | 46 ------- ct/palmr.sh | 79 ------------ ct/tandoor.sh | 92 ------------- ct/victoriametrics.sh | 66 ---------- frontend/public/json/hortusfox.json | 45 ------- frontend/public/json/jeedom.json | 44 ------- frontend/public/json/palmr.json | 44 ------- frontend/public/json/teamspeak-server.json | 40 ------ install/hortusfox-install.sh | 103 --------------- install/palmr-install.sh | 97 -------------- install/tandoor-install.sh | 143 --------------------- install/victoriametrics-install.sh | 82 ------------ 14 files changed, 1018 deletions(-) delete mode 100644 ct/alpine-teamspeak-server.sh delete mode 100644 ct/hortusfox.sh delete mode 100644 ct/jeedom.sh delete mode 100644 ct/palmr.sh delete mode 100644 ct/tandoor.sh delete mode 100644 ct/victoriametrics.sh delete mode 100644 frontend/public/json/hortusfox.json delete mode 100644 frontend/public/json/jeedom.json delete mode 100644 frontend/public/json/palmr.json delete mode 100644 frontend/public/json/teamspeak-server.json delete mode 100644 install/hortusfox-install.sh delete mode 100644 install/palmr-install.sh delete mode 100644 install/tandoor-install.sh delete mode 100644 install/victoriametrics-install.sh diff --git a/ct/alpine-teamspeak-server.sh b/ct/alpine-teamspeak-server.sh deleted file mode 100644 index 104b18f6..00000000 --- a/ct/alpine-teamspeak-server.sh +++ /dev/null @@ -1,64 +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: tremor021 (Slaviša Arežina) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://teamspeak.com/en/ - -APP="Alpine-TeamSpeak-Server" -var_tags="${var_tags:-alpine;communication}" -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.22}" -var_unprivileged="${var_unprivileged:-1}" - -header_info "$APP" -variables -color -catch_errors - -function update_script() { - header_info - - if [[ ! -d /opt/teamspeak-server ]]; then - msg_error "No ${APP} installation found!" - exit 1 - fi - - # define custom command to scrape version - local CUSTOM_CMD="curl -fsSL https://teamspeak.com/en/downloads/#server \ - | sed -n '/teamspeak3-server_linux_amd64-/ { s/.*teamspeak3-server_linux_amd64-\([0-9]\+\.[0-9]\+\.[0-9]\+\).*/\1/p; q }'" - - if check_for_update "${APP}" "${CUSTOM_CMD}"; then - local release="$CHECK_UPDATE_RELEASE" - - msg_info "Updating ${APP} LXC to v${release}" - $STD apk -U upgrade - $STD service teamspeak stop - - curl -fsSL "https://files.teamspeak-services.com/releases/server/${release}/teamspeak3-server_linux_amd64-${release}.tar.bz2" -o ts3server.tar.bz2 - tar -xf ts3server.tar.bz2 - cp -ru teamspeak3-server_linux_amd64/* /opt/teamspeak-server/ - - rm -f ts3server.tar.bz2 - rm -rf teamspeak3-server_linux_amd64 - - echo "${release}" >~/.teamspeak-server - - $STD service teamspeak start - msg_ok "Updated ${APP} successfully to v${release}" - fi - - exit 0 -} - -start -build_container -description - -msg_ok "Completed Successfully!\n" -echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" -echo -e "${INFO}${YW} Access it using the following IP:${CL}" -echo -e "${TAB}${GATEWAY}${BGN}${IP}:9987${CL}" diff --git a/ct/hortusfox.sh b/ct/hortusfox.sh deleted file mode 100644 index 2d32b380..00000000 --- a/ct/hortusfox.sh +++ /dev/null @@ -1,73 +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: MickLesk (CanbiZ) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://github.com/danielbrendel/hortusfox-web - -APP="HortusFox" -var_tags="${var_tags:-plants}" -var_cpu="${var_cpu:-2}" -var_ram="${var_ram:-2048}" -var_disk="${var_disk:-5}" -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/hortusfox ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - RELEASE=$(curl -fsSL https://api.github.com/repos/danielbrendel/hortusfox-web/releases/latest | jq -r .tag_name | sed 's/^v//') - if [[ ! -f ~/.hortusfox ]] || [[ "${RELEASE}" != "$(cat ~/.hortusfox)" ]]; then - msg_info "Stopping Service" - systemctl stop apache2 - msg_ok "Stopped Service" - - msg_info "Backing up current HortusFox installation" - cd /opt - mv /opt/hortusfox/ /opt/hortusfox-backup - msg_ok "Backed up current HortusFox installation" - - fetch_and_deploy_gh_release "hortusfox" "danielbrendel/hortusfox-web" - - msg_info "Updating HortusFox" - cd /opt/hortusfox - mv /opt/hortusfox-backup/.env /opt/hortusfox/.env - $STD composer install --no-dev --optimize-autoloader - php asatru migrate --no-interaction - php asatru plants:attributes - php asatru calendar:classes - msg_ok "Updated HortusFox" - - msg_info "Starting Service" - systemctl start apache2 - msg_ok "Started Service" - - msg_info "Cleaning up" - rm -r /opt/hortusfox-backup - msg_ok "Cleaned" - msg_ok "Updated Successfully" - else - msg_ok "No update required. ${APP} is already at v${RELEASE}" - fi - exit -} - -start -build_container -description - -msg_ok "Completed Successfully!\n" -echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" -echo -e "${INFO}${YW} Access it using the following URL:${CL}" -echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}" diff --git a/ct/jeedom.sh b/ct/jeedom.sh deleted file mode 100644 index 36f98a14..00000000 --- a/ct/jeedom.sh +++ /dev/null @@ -1,46 +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: Mips2648 -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://jeedom.com/ - -APP="Jeedom" -var_tags="${var_tags:-automation;smarthome}" -var_cpu="${var_cpu:-2}" -var_ram="${var_ram:-2048}" -var_disk="${var_disk:-16}" -var_os="${var_os:-debian}" -var_version="${var_version:-12}" -var_unprivileged="${var_unprivileged:-1}" - -header_info "$APP" -variables -color -catch_errors - -function update_script() { - header_info - check_container_storage - check_container_resources - - if [[ ! -f /var/www/html/core/config/version ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - - msg_info "Updating OS" - $STD apt-get update - $STD apt-get -y upgrade - msg_ok "OS updated, you can now update Jeedom from the Web UI." - 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/palmr.sh b/ct/palmr.sh deleted file mode 100644 index 52e8c5fc..00000000 --- a/ct/palmr.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: 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:-4096}" -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 - - RELEASE=$(curl -fsSL https://api.github.com/repos/kyantech/palmr/releases/latest | jq '.tag_name' | sed 's/^v//') - if [[ "${RELEASE}" != "$(cat ~/.palmr 2>/dev/null)" ]] || [[ ! -f ~/.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" - msg_info "Updating ${APP}" - PNPM="$(jq -r '.packageManager' /opt/palmr/package.json)" - NODE_VERSION="20" NODE_MODULE="$PNPM" setup_nodejs - cd /opt/palmr/apps/server - PALMR_DIR="/opt/palmr_data" - $STD pnpm install - mv /opt/palmr.env ./.env - $STD pnpm dlx prisma generate - $STD pnpm dlx prisma migrate deploy - $STD pnpm dlx 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 "$PALMR_DIR" /opt/palmr - msg_ok "Updated $APP" - - msg_info "Starting Services" - systemctl start palmr-backend palmr-frontend - msg_ok "Started Services" - - msg_ok "Updated Successfully" - else - msg_ok "Already up to date" - 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/tandoor.sh b/ct/tandoor.sh deleted file mode 100644 index 8b7b874d..00000000 --- a/ct/tandoor.sh +++ /dev/null @@ -1,92 +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: MickLesk (Canbiz) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://tandoor.dev/ - -APP="Tandoor" -var_tags="${var_tags:-recipes}" -var_cpu="${var_cpu:-4}" -var_ram="${var_ram:-4096}" -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 [[ ! -d /opt/tandoor ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - - if [[ ! -f ~/.tandoor ]]; then - msg_error "v1 Installation found, please export your data and create an new LXC." - exit - fi - - RELEASE=$(curl -fsSL https://api.github.com/repos/TandoorRecipes/recipes/releases/latest | jq -r '.tag_name' | sed 's/^v//') - if [[ "${RELEASE}" != "$(cat ~/.tandoor 2>/dev/null)" ]] || [[ ! -f ~/.tandoor ]]; then - msg_info "Stopping $APP" - systemctl stop tandoor - msg_ok "Stopped $APP" - - msg_info "Creating Backup" - mv /opt/tandoor /opt/tandoor.bak - msg_ok "Backup Created" - - NODE_VERSION="20" NODE_MODULE="yarn" setup_nodejs - PYTHON_VERSION="3.13" setup_uv - fetch_and_deploy_gh_release "tandoor" "TandoorRecipes/recipes" "tarball" "latest" "/opt/tandoor" - - msg_info "Updating $APP to ${RELEASE}" - cp -r /opt/tandoor.bak/{config,api,mediafiles,staticfiles} /opt/tandoor/ - mv /opt/.env /opt/tandoor/.env - cd /opt/tandoor - $STD uv venv .venv --python=python3 - $STD uv pip install -r requirements.txt --python .venv/bin/python - cd /opt/tandoor/vue3 - $STD yarn install - $STD yarn build - TANDOOR_VERSION="$(curl -fsSL https://api.github.com/repos/TandoorRecipes/recipes/releases/latest | jq -r .tag_name)" - cat </opt/tandoor/cookbook/version_info.py -TANDOOR_VERSION = "$TANDOOR_VERSION" -TANDOOR_REF = "bare-metal" -VERSION_INFO = [] -EOF - cd /opt/tandoor - $STD /opt/tandoor/.venv/bin/python manage.py migrate - $STD /opt/tandoor/.venv/bin/python manage.py collectstatic --no-input - msg_ok "Updated $APP to ${RELEASE}" - - msg_info "Starting $APP" - systemctl start tandoor - systemctl reload nginx - msg_ok "Started $APP" - - msg_info "Cleaning Up" - rm -rf /opt/tandoor.bak - msg_ok "Cleanup Completed" - 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}:8002${CL}" diff --git a/ct/victoriametrics.sh b/ct/victoriametrics.sh deleted file mode 100644 index 00e38edb..00000000 --- a/ct/victoriametrics.sh +++ /dev/null @@ -1,66 +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://github.com/VictoriaMetrics/VictoriaMetrics - -APP="VictoriaMetrics" -var_tags="${var_tags:-database}" -var_cpu="${var_cpu:-2}" -var_ram="${var_ram:-2048}" -var_disk="${var_disk:-16}" -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/victoriametrics ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - - RELEASE=$(curl -fsSL https://api.github.com/repos/VictoriaMetrics/VictoriaMetrics/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') - if [[ ! -f ~/.victoriametrics ]] || [[ "${RELEASE}" != "$(cat ~/.victoriametrics)" ]]; then - msg_info "Stopping $APP" - systemctl stop victoriametrics - [[ -f /etc/systemd/system/victoriametrics-logs.service ]] && systemctl stop victoriametrics-logs - msg_ok "Stopped $APP" - - fetch_and_deploy_gh_release "victoriametrics" "VictoriaMetrics/VictoriaMetrics" "prebuild" "latest" "/opt/victoriametrics" "victoria-metrics-linux-amd64-v+([0-9.]).tar.gz" - fetch_and_deploy_gh_release "vmutils" "VictoriaMetrics/VictoriaMetrics" "prebuild" "latest" "/opt/victoriametrics" "vmutils-linux-amd64-v+([0-9.]).tar.gz" - - if [[ -f /etc/systemd/system/victoriametrics-logs.service ]]; then - fetch_and_deploy_gh_release "victorialogs" "VictoriaMetrics/VictoriaLogs" "prebuild" "latest" "/opt/victoriametrics" "victoria-logs-linux-amd64*.tar.gz" - fetch_and_deploy_gh_release "vlutils" "VictoriaMetrics/VictoriaLogs" "prebuild" "latest" "/opt/victoriametrics" "vlutils-linux-amd64*.tar.gz" - fi - chmod +x /opt/victoriametrics/* - - msg_info "Starting $APP" - systemctl start victoriametrics - [[ -f /etc/systemd/system/victoriametrics-logs.service ]] && systemctl start victoriametrics-logs - msg_ok "Started $APP" - - msg_ok "Updated Successfully" - else - msg_ok "No update required. ${APP} is already at ${RELEASE}" - fi - exit -} - -start -build_container -description - -msg_ok "Completed Successfully!\n" -echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" -echo -e "${INFO}${YW} Access it using the following URL:${CL}" -echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8428/vmui${CL}" diff --git a/frontend/public/json/hortusfox.json b/frontend/public/json/hortusfox.json deleted file mode 100644 index f878e5f4..00000000 --- a/frontend/public/json/hortusfox.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "name": "HortusFox", - "slug": "hortusfox", - "categories": [ - 21, - 26 - ], - "type": "ct", - "updateable": true, - "privileged": false, - "date_created": "2025-08-04", - "config_path": "/opt/hortusfox/.env", - "interface_port": 80, - "documentation": "https://github.com/danielbrendel/hortusfox-web", - "website": "https://www.hortusfox.com/", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/hortusfox.webp", - "description": "HortusFox is a collaborative plant management system for plant enthusiasts. Manage, document and track your entire plant collection – self-hosted and privacy-friendly.", - "install_methods": [ - { - "type": "default", - "script": "ct/hortusfox.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 6, - "os": "Debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": "admin@example.com", - "password": null - }, - "notes": [ - { - "text": "Initial password is generated and saved in ~/hortusfox.creds after install.", - "type": "info" - }, - { - "text": "After installation, access the web UI on http:/// and log in as admin@example.com with the generated password.", - "type": "info" - } - ] -} diff --git a/frontend/public/json/jeedom.json b/frontend/public/json/jeedom.json deleted file mode 100644 index 60641af8..00000000 --- a/frontend/public/json/jeedom.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "Jeedom", - "slug": "jeedom", - "categories": [ - 16 - ], - "date_created": "2025-03-06", - "type": "ct", - "updateable": false, - "privileged": false, - "interface_port": 80, - "documentation": "https://doc.jeedom.com", - "config_path": "", - "website": "https://jeedom.com/", - "logo": "https://jeedom.com/_next/image?url=%2Fassets%2Fimg%2Flogo.png&w=256&q=75", - "description": "Jeedom is a home automation system that is free, open, and cloudless. It allows users to manage and automate various aspects of their homes by creating objects, installing plugins for added functionalities, and connecting to a Market account for services. It also supports direct access URLs and user management.", - "install_methods": [ - { - "type": "default", - "script": "ct/jeedom.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 16, - "os": "Debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": "admin", - "password": "admin" - }, - "notes": [ - { - "text": "WARNING: Installation sources scripts outside of Community Scripts repo. Please check the source before installing.", - "type": "warning" - }, - { - "text": "Only OS packages are updateable. To update Jeedom, please use the web interface.", - "type": "info" - } - ] -} diff --git a/frontend/public/json/palmr.json b/frontend/public/json/palmr.json deleted file mode 100644 index 0f5fffd2..00000000 --- a/frontend/public/json/palmr.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "Palmr", - "slug": "palmr", - "categories": [ - 11 - ], - "date_created": "2025-08-03", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 3000, - "documentation": "https://palmr.kyantech.com.br/docs/3.1-beta", - "config_path": "/opt/palmr/apps/server/.env, /opt/palmr/apps/web/.env", - "website": "https://palmr.kyantech.com.br/", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/palmr.webp", - "description": "Palmr is a fast and secure platform for sharing files, built with performance and privacy in mind.", - "install_methods": [ - { - "type": "default", - "script": "ct/palmr.sh", - "resources": { - "cpu": 4, - "ram": 4096, - "hdd": 6, - "os": "Debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [ - { - "text": "To use a bind mount for storage, create symlinks to your mount for both `uploads` and `temp-uploads` in `/opt/palmr_data`", - "type": "info" - }, - { - "text": "To use Palmr with a reverse proxy, uncomment `SECURE_SITE` in `/opt/palmr/apps/server/.env`", - "type": "info" - } - ] -} diff --git a/frontend/public/json/teamspeak-server.json b/frontend/public/json/teamspeak-server.json deleted file mode 100644 index 1e23459b..00000000 --- a/frontend/public/json/teamspeak-server.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "Teamspeak-Server", - "slug": "teamspeak-server", - "categories": [ - 24 - ], - "date_created": "2025-07-21", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 9987, - "documentation": "https://support.teamspeak.com/hc/en-us/categories/360000302017-TeamSpeak-3", - "website": "https://teamspeak.com/", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/teamspeak-light.webp", - "config_path": "", - "description": "TeamSpeak is a voice over IP (VoIP) application, primarily used by gamers and teams to chat in real time on dedicated servers. It delivers crystal‑clear, low‑latency voice communication.", - "install_methods": [ - { - "type": "alpine", - "script": "ct/alpine-teamspeak-server.sh", - "resources": { - "cpu": 1, - "ram": 256, - "hdd": 2, - "os": "alpine", - "version": "3.22" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [ - { - "text": "Use `journalctl -u teamspeak-server.service` inside LXC console to check for admin credentials!", - "type": "info" - } - ] -} diff --git a/install/hortusfox-install.sh b/install/hortusfox-install.sh deleted file mode 100644 index 57312198..00000000 --- a/install/hortusfox-install.sh +++ /dev/null @@ -1,103 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2021-2025 community-scripts ORG -# Author: MickLesk (CanbiZ) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://github.com/danielbrendel/hortusfox-web - -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 apache2 -msg_ok "Installed Dependencies" - -PHP_MODULE="exif,mysql" PHP_APACHE="YES" PHP_FPM="NO" PHP_VERSION="8.3" setup_php -setup_mariadb -setup_composer - -msg_info "Setting up database" -DB_NAME=hortusfox -DB_USER=hortusfox -DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13) -$STD mariadb -u root -e "CREATE DATABASE $DB_NAME;" -$STD mariadb -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED BY '$DB_PASS';" -$STD mariadb -u root -e "GRANT ALL PRIVILEGES ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;" -{ - echo "HortusFox Database Credentials" - echo "Database: $DB_NAME" - echo "Username: $DB_USER" - echo "Password: $DB_PASS" -} >>~/hortusfox.creds -msg_ok "Set up database" - -fetch_and_deploy_gh_release "hortusfox" "danielbrendel/hortusfox-web" - -msg_info "Configuring .env" -cp /opt/hortusfox/.env.example /opt/hortusfox/.env -sed -i "s|^DB_HOST=.*|DB_HOST=localhost|" /opt/hortusfox/.env -sed -i "s|^DB_USER=.*|DB_USER=$DB_USER|" /opt/hortusfox/.env -sed -i "s|^DB_PASSWORD=.*|DB_PASSWORD=$DB_PASS|" /opt/hortusfox/.env -sed -i "s|^DB_DATABASE=.*|DB_DATABASE=$DB_NAME|" /opt/hortusfox/.env -sed -i "s|^DB_ENABLE=.*|DB_ENABLE=true|" /opt/hortusfox/.env -sed -i "s|^APP_TIMEZONE=.*|APP_TIMEZONE=Europe/Berlin|" /opt/hortusfox/.env -msg_ok ".env configured" - -msg_info "Installing Composer dependencies" -cd /opt/hortusfox -$STD composer install --no-dev --optimize-autoloader -msg_ok "Composer dependencies installed" - -msg_info "Running DB migration" -php asatru migrate:fresh -msg_ok "Migration finished" - -msg_info "Setting up HortusFox" -$STD mariadb -u root -D $DB_NAME -e "INSERT IGNORE INTO AppModel (workspace, language, created_at) VALUES ('Default Workspace', 'en', NOW());" -php asatru plants:attributes -php asatru calendar:classes -ADMIN_EMAIL="admin@example.com" -ADMIN_PASS="$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)" -ADMIN_HASH=$(php -r "echo password_hash('$ADMIN_PASS', PASSWORD_BCRYPT);") -$STD mariadb -u root -D $DB_NAME -e "INSERT IGNORE INTO UserModel (name, email, password, admin) VALUES ('Admin', '$ADMIN_EMAIL', '$ADMIN_HASH', 1);" -{ - echo "" - echo "HortusFox-Admin-Creds:" - echo "E-Mail: $ADMIN_EMAIL" - echo "Passwort: $ADMIN_PASS" -} >>~/hortusfox.creds -$STD mariadb -u root -D $DB_NAME -e "INSERT IGNORE INTO LocationsModel (name, active, created_at) VALUES ('Home', 1, NOW());" -msg_ok "Set up HortusFox" - -msg_info "Configuring Apache vHost" -cat </etc/apache2/sites-available/hortusfox.conf - - ServerAdmin webmaster@localhost - DocumentRoot /opt/hortusfox/public - - Options Indexes FollowSymLinks - AllowOverride All - Require all granted - - ErrorLog \${APACHE_LOG_DIR}/hortusfox_error.log - CustomLog \${APACHE_LOG_DIR}/hortusfox_access.log combined - -EOF -$STD a2dissite 000-default -$STD a2ensite hortusfox -$STD a2enmod rewrite -systemctl restart apache2 -msg_ok "Apache configured" - -motd_ssh -customize - -msg_info "Cleaning up" -$STD apt-get -y autoremove -$STD apt-get -y autoclean -msg_ok "Cleaned" diff --git a/install/palmr-install.sh b/install/palmr-install.sh deleted file mode 100644 index 30759aa2..00000000 --- a/install/palmr-install.sh +++ /dev/null @@ -1,97 +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 - -msg_info "Installing dependencies" -$STD apt-get install yq -y -msg_ok "Installed dependencies" - -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 reverse proxy\ -# SECURE_SITE=true' \ - .env.example >./.env -$STD pnpm install -$STD pnpm dlx prisma generate -$STD pnpm dlx prisma migrate deploy -$STD pnpm dlx 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 user & services" -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 user & services" - -motd_ssh -customize - -msg_info "Cleaning up" -$STD apt-get -y autoremove -$STD apt-get -y autoclean -msg_ok "Cleaned" diff --git a/install/tandoor-install.sh b/install/tandoor-install.sh deleted file mode 100644 index a70621a8..00000000 --- a/install/tandoor-install.sh +++ /dev/null @@ -1,143 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2021-2025 community-scripts ORG -# Author: MickLesk (Canbiz) -# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://tandoor.dev/ - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -msg_info "Installing Dependencies (Patience)" -$STD apt-get install -y --no-install-recommends \ - build-essential \ - python3 \ - libpq-dev \ - libmagic-dev \ - libzbar0 \ - nginx \ - libsasl2-dev \ - libldap2-dev \ - libssl-dev \ - pkg-config \ - libxmlsec1-dev \ - libxml2-dev \ - libxmlsec1-openssl -msg_ok "Installed Dependencies" - -NODE_VERSION="20" NODE_MODULE="yarn" setup_nodejs -fetch_and_deploy_gh_release "tandoor" "TandoorRecipes/recipes" "tarball" "latest" "/opt/tandoor" -PG_VERSION="16" setup_postgresql -PYTHON_VERSION="3.13" setup_uv - -msg_info "Set up PostgreSQL Database" -DB_NAME=db_recipes -DB_USER=tandoor -SECRET_KEY=$(openssl rand -base64 45 | sed 's/\//\\\//g') -DB_PASS="$(openssl rand -base64 18 | cut -c1-13)" -$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 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 "Tandoor-Credentials" - echo "Tandoor Database Name: $DB_NAME" - echo "Tandoor Database User: $DB_USER" - echo "Tandoor Database Password: $DB_PASS" -} >>~/tandoor.creds -msg_ok "Set up PostgreSQL Database" - -msg_info "Setup Tandoor" -mkdir -p /opt/tandoor/{config,api,mediafiles,staticfiles} -cd /opt/tandoor -$STD uv venv .venv --python=python3 -$STD uv pip install -r requirements.txt --python .venv/bin/python -cd /opt/tandoor/vue3 -$STD yarn install -$STD yarn build -cat </opt/tandoor/.env -SECRET_KEY=$SECRET_KEY -TZ=Europe/Berlin - -DB_ENGINE=django.db.backends.postgresql -POSTGRES_HOST=localhost -POSTGRES_DB=$DB_NAME -POSTGRES_PORT=5432 -POSTGRES_USER=$DB_USER -POSTGRES_PASSWORD=$DB_PASS - -STATIC_URL=/staticfiles/ -MEDIA_URL=/mediafiles/ -EOF - -TANDOOR_VERSION="$(curl -s https://api.github.com/repos/TandoorRecipes/recipes/releases/latest | jq -r .tag_name)" -cat </opt/tandoor/cookbook/version_info.py -TANDOOR_VERSION = "$TANDOOR_VERSION" -TANDOOR_REF = "bare-metal" -VERSION_INFO = [] -EOF - -cd /opt/tandoor -$STD /opt/tandoor/.venv/bin/python manage.py migrate -$STD /opt/tandoor/.venv/bin/python manage.py collectstatic --no-input -msg_ok "Installed Tandoor" - -msg_info "Creating Services" -cat </etc/systemd/system/tandoor.service -[Unit] -Description=gunicorn daemon for tandoor -After=network.target - -[Service] -Type=simple -Restart=always -RestartSec=3 -WorkingDirectory=/opt/tandoor -EnvironmentFile=/opt/tandoor/.env -ExecStart=/opt/tandoor/.venv/bin/gunicorn --error-logfile /tmp/gunicorn_err.log --log-level debug --capture-output --bind unix:/opt/tandoor/tandoor.sock recipes.wsgi:application - -[Install] -WantedBy=multi-user.target -EOF - -cat <<'EOF' >/etc/nginx/conf.d/tandoor.conf -server { - listen 8002; - access_log /var/log/nginx/access.log; - error_log /var/log/nginx/error.log; - client_max_body_size 128M; - # serve media files - location /static/ { - alias /opt/tandoor/staticfiles/; - } - - location /media/ { - alias /opt/tandoor/mediafiles/; - } - - location / { - proxy_set_header Host $http_host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - proxy_pass http://unix:/opt/tandoor/tandoor.sock; - } -} -EOF -systemctl reload nginx -systemctl enable -q --now tandoor -msg_ok "Created Services" - -motd_ssh -customize - -msg_info "Cleaning up" -$STD apt-get -y autoremove -$STD apt-get -y autoclean -msg_ok "Cleaned" diff --git a/install/victoriametrics-install.sh b/install/victoriametrics-install.sh deleted file mode 100644 index 82a93ade..00000000 --- a/install/victoriametrics-install.sh +++ /dev/null @@ -1,82 +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://github.com/VictoriaMetrics/VictoriaMetrics - -source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" -color -verb_ip6 -catch_errors -setting_up_container -network_check -update_os - -msg_info "Getting latest version of VictoriaMetrics" -victoriametrics_filename=$(curl -fsSL "https://api.github.com/repos/VictoriaMetrics/VictoriaMetrics/releases/latest" | - jq -r '.assets[].name' | - grep -E '^victoria-metrics-linux-amd64-v[0-9.]+\.tar\.gz$') -vmutils_filename=$(curl -fsSL "https://api.github.com/repos/VictoriaMetrics/VictoriaMetrics/releases/latest" | - jq -r '.assets[].name' | - grep -E '^vmutils-linux-amd64-v[0-9.]+\.tar\.gz$') -msg_ok "Got latest version of VictoriaMetrics" - -fetch_and_deploy_gh_release "victoriametrics" "VictoriaMetrics/VictoriaMetrics" "prebuild" "latest" "/opt/victoriametrics" "$victoriametrics_filename" -fetch_and_deploy_gh_release "vmutils" "VictoriaMetrics/VictoriaMetrics" "prebuild" "latest" "/opt/victoriametrics" "$vmutils_filename" - -read -r -p "${TAB3}Would you like to add VictoriaLogs? " prompt - -if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then - fetch_and_deploy_gh_release "victorialogs" "VictoriaMetrics/VictoriaLogs" "prebuild" "latest" "/opt/victoriametrics" "victoria-logs-linux-amd64*.tar.gz" - fetch_and_deploy_gh_release "vlutils" "VictoriaMetrics/VictoriaLogs" "prebuild" "latest" "/opt/victoriametrics" "vlutils-linux-amd64*.tar.gz" -fi - -msg_info "Setup VictoriaMetrics" -mkdir -p /opt/victoriametrics/data -chmod +x /opt/victoriametrics/* -msg_ok "Setup VictoriaMetrics" - -msg_info "Creating Service" -cat </etc/systemd/system/victoriametrics.service -[Unit] -Description=VictoriaMetrics Service - -[Service] -Type=simple -Restart=always -User=root -WorkingDirectory=/opt/victoriametrics -ExecStart=/opt/victoriametrics/victoria-metrics-prod --storageDataPath="/opt/victoriametrics/data" - -[Install] -WantedBy=multi-user.target -EOF -systemctl enable -q --now victoriametrics - -if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then - cat </etc/systemd/system/victoriametrics-logs.service -[Unit] -Description=VictoriaMetrics Service - -[Service] -Type=simple -Restart=always -User=root -WorkingDirectory=/opt/victoriametrics -ExecStart=/opt/victoriametrics/victoria-logs-prod - -[Install] -WantedBy=multi-user.target -EOF - systemctl enable -q --now victoriametrics-logs -fi -msg_ok "Created Service" - -motd_ssh -customize - -msg_info "Cleaning up" -$STD apt-get -y autoremove -$STD apt-get -y autoclean -msg_ok "Cleaned"