From c511f7d9e5ef10a4bb8792f9a0c0915c1124cd37 Mon Sep 17 00:00:00 2001 From: "push-app-to-main[bot]" <203845782+push-app-to-main[bot]@users.noreply.github.com> Date: Mon, 30 Jun 2025 20:24:26 +0200 Subject: [PATCH] Kapowarr (#5584) --- ct/headers/kapowarr | 6 +++ ct/kapowarr.sh | 66 ++++++++++++++++++++++++++++++ frontend/public/json/kapowarr.json | 35 ++++++++++++++++ install/kapowarr-install.sh | 54 ++++++++++++++++++++++++ 4 files changed, 161 insertions(+) create mode 100644 ct/headers/kapowarr create mode 100644 ct/kapowarr.sh create mode 100644 frontend/public/json/kapowarr.json create mode 100644 install/kapowarr-install.sh diff --git a/ct/headers/kapowarr b/ct/headers/kapowarr new file mode 100644 index 000000000..e127f3647 --- /dev/null +++ b/ct/headers/kapowarr @@ -0,0 +1,6 @@ + __ __ + / //_/___ _____ ____ _ ______ ___________ + / ,< / __ `/ __ \/ __ \ | /| / / __ `/ ___/ ___/ + / /| / /_/ / /_/ / /_/ / |/ |/ / /_/ / / / / +/_/ |_\__,_/ .___/\____/|__/|__/\__,_/_/ /_/ + /_/ diff --git a/ct/kapowarr.sh b/ct/kapowarr.sh new file mode 100644 index 000000000..d3104fed4 --- /dev/null +++ b/ct/kapowarr.sh @@ -0,0 +1,66 @@ +#!/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: Slaviša Arežina (tremor021) +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE +# Source: https://github.com/Casvt/Kapowarr + +APP="Kapowarr" +var_tags="${var_tags:-Arr}" +var_cpu="${var_cpu:-1}" +var_ram="${var_ram:-256}" +var_disk="${var_disk:-2}" +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 /etc/systemd/system/kapowarr.service ]]; then + msg_error "No ${APP} Installation Found!" + exit + fi + RELEASE=$(curl -s https://api.github.com/repos/Casvt/Kapowarr/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }') + if [[ "${RELEASE}" != "$(cat $HOME/.kapowarr)" ]] || [[ ! -f $HOME/.kapowarr ]]; then + setup_uv + + msg_info "Stopping $APP" + systemctl stop kapowarr + msg_ok "Stopped $APP" + + msg_info "Creating Backup" + mv /opt/kapowarr/db /opt/ + msg_ok "Backup Created" + + fetch_and_deploy_gh_release "kapowarr" "Casvt/Kapowarr" + msg_info "Updating $APP to ${RELEASE}" + mv /opt/db /opt/kapowarr + msg_ok "Updated $APP to ${RELEASE}" + + msg_info "Starting $APP" + systemctl start kapowarr + msg_ok "Started $APP" + + msg_ok "Update Successful" + 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}:5656${CL}" diff --git a/frontend/public/json/kapowarr.json b/frontend/public/json/kapowarr.json new file mode 100644 index 000000000..e5d69d07a --- /dev/null +++ b/frontend/public/json/kapowarr.json @@ -0,0 +1,35 @@ +{ + "name": "Kapowarr", + "slug": "kapowarr", + "categories": [ + 14 + ], + "date_created": "2025-06-09", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 5656, + "documentation": "https://casvt.github.io/Kapowarr/general_info/workings/", + "website": "https://casvt.github.io/Kapowarr/", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/kapowarr.webp", + "config_path": "", + "description": "Kapowarr allows you to build a digital library of comics. You can add volumes, map them to a folder and start managing! Download, rename, move and convert issues of the volume (including TPB's, One Shots, Hard Covers, and more). The whole process is automated and can be customised in the settings.", + "install_methods": [ + { + "type": "default", + "script": "ct/kapowarr.sh", + "resources": { + "cpu": 1, + "ram": 256, + "hdd": 2, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] +} diff --git a/install/kapowarr-install.sh b/install/kapowarr-install.sh new file mode 100644 index 000000000..c5f29a7b3 --- /dev/null +++ b/install/kapowarr-install.sh @@ -0,0 +1,54 @@ +#!/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/Casvt/Kapowarr + +source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" +color +verb_ip6 +catch_errors +setting_up_container +network_check +update_os + +msg_info "Setup Python3" +$STD apt-get install -y python3-pip +msg_ok "Setup Python3" + +setup_uv +fetch_and_deploy_gh_release "kapowarr" "Casvt/Kapowarr" + +msg_info "Setup Kapowarr" +cd /opt/kapowarr +$STD uv venv .venv +$STD source .venv/bin/activate +$STD uv pip install --upgrade pip +$STD uv pip install --no-cache-dir -r requirements.txt +msg_ok "Installed Kapowarr" + +msg_info "Creating Service" +cat </etc/systemd/system/kapowarr.service +[Unit] +Description=Kapowarr Service +After=network.target + +[Service] +WorkingDirectory=/opt/kapowarr/ +ExecStart=/opt/kapowarr/.venv/bin/python3 Kapowarr.py +Restart=always + +[Install] +WantedBy=multi-user.target +EOF +systemctl enable -q --now kapowarr +msg_ok "Created Service" + +motd_ssh +customize + +msg_info "Cleaning up" +$STD apt-get -y autoremove +$STD apt-get -y autoclean +msg_ok "Cleaned"