diff --git a/ct/cleanuparr.sh b/ct/cleanuparr.sh new file mode 100755 index 00000000..05ef4ae0 --- /dev/null +++ b/ct/cleanuparr.sh @@ -0,0 +1,57 @@ +#!/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: community-scripts ORG +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE +# Source: https://github.com/Cleanuparr/Cleanuparr + +APP="Cleanuparr" +var_tags="${var_tags:-arr}" +var_cpu="${var_cpu:-2}" +var_ram="${var_ram:-1024}" +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 [[ ! -f /opt/cleanuparr/Cleanuparr ]]; then + msg_error "No ${APP} Installation Found!" + exit + fi + msg_info "Stopping ${APP}" + systemctl stop cleanuparr + msg_ok "Stopped ${APP}" + + msg_info "Updating ${APP}" + cd /opt/cleanuparr + RELEASE=$(curl -fsSL https://api.github.com/repos/Cleanuparr/Cleanuparr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4)}') + curl -fsSLO "https://github.com/Cleanuparr/Cleanuparr/releases/download/v${RELEASE}/Cleanuparr-${RELEASE}-linux-amd64.zip" + unzip -oq "Cleanuparr-${RELEASE}-linux-amd64.zip" + rm -f "Cleanuparr-${RELEASE}-linux-amd64.zip" + chmod +x /opt/cleanuparr/Cleanuparr + msg_ok "Updated ${APP}" + + msg_info "Starting ${APP}" + systemctl start cleanuparr + msg_ok "Started ${APP}" + 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}:11011${CL}" \ No newline at end of file diff --git a/ct/headers/cleanuparr b/ct/headers/cleanuparr new file mode 100644 index 00000000..ef403c52 --- /dev/null +++ b/ct/headers/cleanuparr @@ -0,0 +1,6 @@ + ________ + / ____/ /__ ____ _____ __ ______ ____ _________ + / / / / _ \/ __ `/ __ \/ / / / __ \/ __ `/ ___/ ___/ +/ /___/ / __/ /_/ / / / / /_/ / /_/ / /_/ / / / / +\____/_/\___/\__,_/_/ /_/\__,_/ .___/\__,_/_/ /_/ + /_/ \ No newline at end of file diff --git a/frontend/public/json/cleanuparr.json b/frontend/public/json/cleanuparr.json new file mode 100644 index 00000000..0a17cf64 --- /dev/null +++ b/frontend/public/json/cleanuparr.json @@ -0,0 +1,33 @@ +{ + "name": "Cleanuparr", + "slug": "cleanuparr", + "categories": [14], + "date_created": "2025-07-23", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 11011, + "documentation": null, + "website": "https://github.com/Cleanuparr/Cleanuparr", + "logo": "https://raw.githubusercontent.com/Cleanuparr/Cleanuparr/main/src/Cleanuparr.Web/wwwroot/logo.png", + "config_path": "", + "description": "Cleanuparr is a tool for automating the cleanup of unwanted or blocked files in Sonarr, Radarr, and supported download clients like qBittorrent, Transmission, and Deluge. It removes incomplete, blocked, or malicious downloads and can trigger replacement searches to ensure your media library stays complete and up-to-date.", + "install_methods": [ + { + "type": "default", + "script": "ct/cleanuparr.sh", + "resources": { + "cpu": 2, + "ram": 1024, + "hdd": 4, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] +} \ No newline at end of file diff --git a/install/cleanuparr-install.sh b/install/cleanuparr-install.sh new file mode 100755 index 00000000..89ae2dd9 --- /dev/null +++ b/install/cleanuparr-install.sh @@ -0,0 +1,62 @@ +#!/usr/bin/env bash + +# Copyright (c) 2021-2025 community-scripts ORG +# Author: community-scripts ORG +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE +# Source: https://github.com/Cleanuparr/Cleanuparr + +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 \ + curl \ + sudo \ + mc \ + unzip +msg_ok "Installed Dependencies" + +msg_info "Installing Cleanuparr" +RELEASE=$(curl -fsSL https://api.github.com/repos/Cleanuparr/Cleanuparr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4)}') +mkdir -p /opt/cleanuparr +cd /opt/cleanuparr +curl -fsSLO "https://github.com/Cleanuparr/Cleanuparr/releases/download/v${RELEASE}/Cleanuparr-${RELEASE}-linux-amd64.zip" +unzip -q "Cleanuparr-${RELEASE}-linux-amd64.zip" +rm -f "Cleanuparr-${RELEASE}-linux-amd64.zip" +chmod +x /opt/cleanuparr/Cleanuparr +msg_ok "Installed Cleanuparr" + +msg_info "Creating Service" +cat </etc/systemd/system/cleanuparr.service +[Unit] +Description=Cleanuparr Daemon +After=syslog.target network.target + +[Service] +Type=simple +User=root +WorkingDirectory=/opt/cleanuparr +ExecStart=/opt/cleanuparr/Cleanuparr +Restart=on-failure +RestartSec=5 +Environment="PORT=11011" +Environment="CONFIG_DIR=/opt/cleanuparr/config" + +[Install] +WantedBy=multi-user.target +EOF +systemctl enable -q --now cleanuparr +msg_ok "Created Service" + +motd_ssh +customize + +msg_info "Cleaning up" +$STD apt-get -y autoremove +$STD apt-get -y autoclean +msg_ok "Cleaned" \ No newline at end of file