From f9e0dfb2704f0c7ad8bde4308599e041f3bf5386 Mon Sep 17 00:00:00 2001 From: Dysfunctional Programming <157329672+DysfunctionalProgramming@users.noreply.github.com> Date: Sun, 17 Nov 2024 05:10:02 -0500 Subject: [PATCH] Add Komga LXC (#275) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add komga * fix syntax error * add co-author * Make this resemble other scripts * Get ready for PR * Address PR feedback to bring more in line with other scripts * Bring json in line * Harmonize Script * Update komga.sh * Make hdd match komga.sh * Update ascii * Update install/komga-install.sh Co-authored-by: Håvard Gjøby Thom <34199185+havardthom@users.noreply.github.com> * Update ct/komga.sh Co-authored-by: Håvard Gjøby Thom <34199185+havardthom@users.noreply.github.com> * Update ct/komga.sh Co-authored-by: Håvard Gjøby Thom <34199185+havardthom@users.noreply.github.com> * Update ct/komga.sh Co-authored-by: Håvard Gjøby Thom <34199185+havardthom@users.noreply.github.com> * Update install/komga-install.sh Co-authored-by: Håvard Gjøby Thom <34199185+havardthom@users.noreply.github.com> * Update install/komga-install.sh Co-authored-by: Håvard Gjøby Thom <34199185+havardthom@users.noreply.github.com> * Update install/komga-install.sh Co-authored-by: Håvard Gjøby Thom <34199185+havardthom@users.noreply.github.com> * Update install/komga-install.sh Co-authored-by: Håvard Gjøby Thom <34199185+havardthom@users.noreply.github.com> * Update install/komga-install.sh Co-authored-by: Håvard Gjøby Thom <34199185+havardthom@users.noreply.github.com> * Update install/komga-install.sh Co-authored-by: Håvard Gjøby Thom <34199185+havardthom@users.noreply.github.com> * Update json/komga.json Co-authored-by: Håvard Gjøby Thom <34199185+havardthom@users.noreply.github.com> * Uneeded group write permissions? --------- Co-authored-by: CanbiZ <47820557+MickLesk@users.noreply.github.com> Co-authored-by: Håvard Gjøby Thom <34199185+havardthom@users.noreply.github.com> --- ct/komga.sh | 90 ++++++++++++++++++++++++++++++++++++++++ install/komga-install.sh | 58 ++++++++++++++++++++++++++ json/komga.json | 34 +++++++++++++++ 3 files changed, 182 insertions(+) create mode 100644 ct/komga.sh create mode 100644 install/komga-install.sh create mode 100644 json/komga.json diff --git a/ct/komga.sh b/ct/komga.sh new file mode 100644 index 00000000..225316ed --- /dev/null +++ b/ct/komga.sh @@ -0,0 +1,90 @@ +#!/usr/bin/env bash +source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) +# Copyright (c) 2021-2024 community-scripts ORG +# Author: madelyn (DysfunctionalProgramming) +# License: MIT +# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE + +function header_info { +clear +cat <<"EOF" + __ __ + / //_/___ ____ ___ ____ _____ _ + / ,< / __ \/ __ `__ \/ __ `/ __ `/ + / /| / /_/ / / / / / / /_/ / /_/ / +/_/ |_\____/_/ /_/ /_/\__, /\__,_/ + /____/ +EOF +} +header_info +echo -e "Loading..." +APP="Komga" +var_disk="4" +var_cpu="1" +var_ram="2048" +var_os="debian" +var_version="12" +variables +color +catch_errors + +function default_settings() { + CT_TYPE="1" + PW="" + CT_ID=$NEXTID + HN=$NSAPP + DISK_SIZE="$var_disk" + CORE_COUNT="$var_cpu" + RAM_SIZE="$var_ram" + BRG="vmbr0" + NET="dhcp" + GATE="" + APT_CACHER="" + APT_CACHER_IP="" + DISABLEIP6="no" + MTU="" + SD="" + NS="" + MAC="" + VLAN="" + SSH="no" + VERB="no" + echo_default +} + +function update_script() { +header_info +check_container_storage +check_container_resources +if [[ ! -f /opt/komga/komga*.jar ]]; then msg_error "No ${APP} Installation Found!"; exit; fi +msg_info "Updating ${APP}" +RELEASE=$(curl -s https://api.github.com/repos/gotson/komga/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }') +if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then + msg_info "Stopping ${APP}" + systemctl stop komga + msg_ok "Stopped ${APP}" + + msg_info "Updating ${APP} to ${RELEASE}" + rm -rf /opt/komga/komga*.jar + wget -q "https://github.com/gotson/komga/releases/download/v${RELEASE}/komga-${RELEASE}.jar" + mv -f komga-${RELEASE}.jar /opt/komga/komga.jar + echo "${RELEASE}" >/opt/${APP}_version.txt + msg_ok "Updated ${APP} to ${RELEASE}" + + msg_info "Starting ${APP}" + systemctl start komga + 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 "${APP} should be reachable by going to the following URL. + ${BL}http://${IP}:25600 ${CL} \n" diff --git a/install/komga-install.sh b/install/komga-install.sh new file mode 100644 index 00000000..43f4ea92 --- /dev/null +++ b/install/komga-install.sh @@ -0,0 +1,58 @@ +#!/usr/bin/env bash + +# Copyright (c) 2021-2024 community-scripts ORG +# Author: madelyn (DysfunctionalProgramming) +# 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 install -y \ + curl \ + mc \ + sudo \ + openjdk-17-jre +msg_ok "Installed Dependencies" + +msg_info "Installing Komga" +RELEASE=$(curl -s https://api.github.com/repos/gotson/komga/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }') +wget -q https://github.com/gotson/komga/releases/download/${RELEASE}/komga-${RELEASE}.jar +mkdir -p /opt/komga +mv -f komga-${RELEASE}.jar /opt/komga/komga.jar +echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt" +msg_ok "Installed Komga" + +msg_info "Creating Service" +cat </etc/systemd/system/komga.service +[Unit] +Description=Komga +After=syslog.target network.target + +[Service] +Type=simple +WorkingDirectory=/opt/komga/ +ExecStart=/usr/bin/java -jar -Xmx2g komga.jar +TimeoutStopSec=20 +KillMode=process +Restart=on-failure + +[Install] +WantedBy=multi-user.target +EOF +systemctl enable --now -q komga +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/json/komga.json b/json/komga.json new file mode 100644 index 00000000..95196830 --- /dev/null +++ b/json/komga.json @@ -0,0 +1,34 @@ +{ + "name": "Komga", + "slug": "komga", + "categories": [ + 12 + ], + "date_created": "2024-11-15", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": "25600", + "documentation": "https://komga.org/docs/introduction", + "website": "https://komga.org/", + "logo": "https://github.com/gotson/komga/raw/master/.github/readme-images/app-icon.png", + "description": "A media server for your comics, mangas, BDs, magazines and eBooks. Organize your CBZ, CBR, PDF and EPUB files in different libraries, collections or reading lists. Use the integrated Webreader, the Mihon extension, any OPDS reader, or other integrations. Edit metadata for your series and books.", + "install_methods": [ + { + "type": "default", + "script": "ct/komga.sh", + "resources": { + "cpu": "1", + "ram": "2048", + "hdd": "4", + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] +} \ No newline at end of file