From fcea354de2d271e9a8d5d5680dd0d9e98104b3e5 Mon Sep 17 00:00:00 2001 From: finkerle <145992792+finkerle@users.noreply.github.com> Date: Mon, 19 May 2025 10:03:09 +0200 Subject: [PATCH] Add install script for configarr (#401) --- ct/configarr.sh | 66 +++++++++++++++++++++++++++ frontend/public/json/configarr.json | 40 +++++++++++++++++ install/configarr-install.sh | 70 +++++++++++++++++++++++++++++ 3 files changed, 176 insertions(+) create mode 100644 ct/configarr.sh create mode 100644 frontend/public/json/configarr.json create mode 100644 install/configarr-install.sh diff --git a/ct/configarr.sh b/ct/configarr.sh new file mode 100644 index 0000000..02ca312 --- /dev/null +++ b/ct/configarr.sh @@ -0,0 +1,66 @@ +#!/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: finkerle +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE +# Source: https://github.com/raydak-labs/configarr + +APP="Configarr" +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/configarr ]]; then + msg_error "No ${APP} Installation Found!" + exit + fi + RELEASE=$(curl -fsSL https://api.github.com/repos/raydak-labs/configarr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') + if [[ "${RELEASE}" != "$(cat /opt/configarr_version.txt)" ]] || [[ ! -f /opt/configarr_version.txt ]]; then + msg_info "Stopping $APP" + systemctl stop configarr-task.timer + msg_ok "Stopped $APP" + + msg_info "Updating $APP to v${RELEASE}" + mkdir -p /opt/backup/ + mv /opt/configarr/{config.yml,secrets.yml,.env} "/opt/backup/" + rm -rf /opt/configarr + fetch_and_deploy_gh_release "raydak-labs/configarr" + mv /opt/backup/* /opt/configarr/ + cd /opt/configarr + pnpm install + pnpm run build + msg_ok "Updated $APP to v${RELEASE}" + + msg_info "Starting $APP" + systemctl start configarr-task.timer + msg_ok "Started configarr" + + rm -rf /opt/backup + 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}:[PORT]${CL}" diff --git a/frontend/public/json/configarr.json b/frontend/public/json/configarr.json new file mode 100644 index 0000000..964c974 --- /dev/null +++ b/frontend/public/json/configarr.json @@ -0,0 +1,40 @@ +{ + "name": "Configarr", + "slug": "configarr", + "categories": [ + 14 + ], + "date_created": "2025-05-06", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": null, + "documentation": "https://configarr.raydak.de/docs/intro", + "config_path": "/opt/configarr/config.yml", + "website": "https://configarr.raydak.de/", + "logo": "https://github.com/raydak-labs/configarr/blob/main/docs/static/img/logo.webp", + "description": "Configarr is an open-source tool designed to simplify configuration and synchronization for Sonarr and Radarr (and other experimental). It integrates with TRaSH Guides to automate updates of custom formats, quality profiles, and other settings, while also supporting user-defined configurations.", + "install_methods": [ + { + "type": "default", + "script": "ct/configarr.sh", + "resources": { + "cpu": 1, + "ram": 512, + "hdd": 4, + "os": "Debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "change secrets file /opt/configarr/secrets.yml", + "type": "info" + } + ] +} diff --git a/install/configarr-install.sh b/install/configarr-install.sh new file mode 100644 index 0000000..d915ab5 --- /dev/null +++ b/install/configarr-install.sh @@ -0,0 +1,70 @@ +#!/usr/bin/env bash + +# Copyright (c) 2021-2025 community-scripts ORG +# Author: finkerle +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE +# Source: https://github.com/raydak-labs/configarr + +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 \ + git +msg_ok "Installed Dependencies" + +NODE_MODULE="pnpm@latest" install_node_and_modules +fetch_and_deploy_gh_release "raydak-labs/configarr" + +msg_info "Setup ${APPLICATION}" +cat </opt/configarr/.env +ROOT_PATH=/opt/configarr +CUSTOM_REPO_ROOT=/opt/configarr/repos +CONFIG_LOCATION=/opt/configarr/config.yml +SECRETS_LOCATION=/opt/configarr/secrets.yml +EOF +mv /opt/configarr/secrets.yml.template /opt/configarr/secrets.yml +sed 's|#localConfigTemplatesPath: /app/templates|#localConfigTemplatesPath: /opt/configarr/templates|' /opt/configarr/config.yml.template >/opt/configarr/config.yml +cd /opt/configarr +pnpm install +pnpm run build +msg_ok "Setup ${APPLICATION}" + +msg_info "Creating Service" +cat </etc/systemd/system/configarr-task.service +[Unit] +Description=Run Configarr Task + +[Service] +Type=oneshot +WorkingDirectory=/opt/configarr +ExecStart=/usr/bin/node /opt/configarr/bundle.cjs + +EOF +cat </etc/systemd/system/configarr-task.timer +[Unit] +Description=Run Configarr every 5 minutes + +[Timer] +OnBootSec=2min +OnUnitActiveSec=5min +Persistent=true + +[Install] +WantedBy=timers.target +EOF +systemctl enable -q --now configarr-task.timer +msg_ok "Created Service" + +motd_ssh +customize + +msg_info "Cleaning up" +$STD apt-get -y autoremove +$STD apt-get -y autoclean +msg_ok "Cleaned"