From 3b4a27f384b758c4940109ea515c8f71cc074bc6 Mon Sep 17 00:00:00 2001 From: Bram Prieshof Date: Sat, 27 Jul 2024 00:27:39 +0200 Subject: [PATCH] CT: kavita added --- CT-Build/Alpine.Jenkinsfile | 2 +- CT-Build/Alpine.yaml | 20 ++++++++++++++++++++ CT-Files/kavita/Configs/kavita.service | 14 ++++++++++++++ CT-Files/kavita/Scripts/Init.sh | 25 +++++++++++++++++++++++++ CT-Files/kavita/Scripts/PTKAppUpdate.sh | 3 +++ CT-Files/kavita/Scripts/UpdateKavita.sh | 20 ++++++++++++++++++++ Readme.md | 4 ++++ 7 files changed, 87 insertions(+), 1 deletion(-) create mode 100644 CT-Files/kavita/Configs/kavita.service create mode 100644 CT-Files/kavita/Scripts/Init.sh create mode 100644 CT-Files/kavita/Scripts/PTKAppUpdate.sh create mode 100644 CT-Files/kavita/Scripts/UpdateKavita.sh diff --git a/CT-Build/Alpine.Jenkinsfile b/CT-Build/Alpine.Jenkinsfile index 4ef4b4e..885477b 100644 --- a/CT-Build/Alpine.Jenkinsfile +++ b/CT-Build/Alpine.Jenkinsfile @@ -7,7 +7,7 @@ pipeline { string defaultValue: '192.168.200.11', description: 'Proxy server for packages, when enabled', name: 'ProxyServer' booleanParam description: 'will disable use of proxy server', name: 'DisProxy' checkboxParameter(name: 'ImgVariantList', format: 'JSON', displayNodePath: "//Variants/Variant", valueNodePath: "//Variants/Variant", description: 'Select the variant(s) that should be build', - pipelineSubmitContent: '{"Variants": [{"Variant": "minimal"},{"Variant": "default"},{"Variant": "gitea"},{"Variant": "nginx"},{"Variant": "ddns"},{"Variant": "transfersh"},{"Variant": "iscsi"},{"Variant": "z2mqtt"},{"Variant": "nodered"},{"Variant": "nodejs"},{"Variant": "nextcloud"},{"Variant": "mqtt"},{"Variant": "hass"},{"Variant": "mailbackup"},{"Variant": "elkarbackupALP"},{"Variant": "heimdall"},{"Variant": "vouchproxy"},{"Variant": "freshrss"},{"Variant": "uptimekuma"}]}') + pipelineSubmitContent: '{"Variants": [{"Variant": "minimal"},{"Variant": "default"},{"Variant": "gitea"},{"Variant": "nginx"},{"Variant": "ddns"},{"Variant": "transfersh"},{"Variant": "iscsi"},{"Variant": "z2mqtt"},{"Variant": "nodered"},{"Variant": "nodejs"},{"Variant": "nextcloud"},{"Variant": "mqtt"},{"Variant": "hass"},{"Variant": "mailbackup"},{"Variant": "elkarbackupALP"},{"Variant": "heimdall"},{"Variant": "vouchproxy"},{"Variant": "freshrss"},{"Variant": "uptimekuma"},{"Variant": "kavita"}]}') } options { skipDefaultCheckout() diff --git a/CT-Build/Alpine.yaml b/CT-Build/Alpine.yaml index 12a2c81..b3bacbd 100644 --- a/CT-Build/Alpine.yaml +++ b/CT-Build/Alpine.yaml @@ -393,6 +393,13 @@ files: variants: - uptimekuma +#FileForKavita +- path: /opt/Setup + generator: copy + source: CT-Files/kavita + variants: + - kavita + packages: manager: apk update: true @@ -596,6 +603,18 @@ packages: variants: - uptimekuma +#PKGS for kavita + - packages: + - curl + - ca-certificates + - libcap + - libgcc + - libstdc++ + - icu-libs + action: install + variants: + - kavita + repositories: - name: /etc/apk/repositories url: |- @@ -702,6 +721,7 @@ actions: - vouchproxy - freshrss - uptimekuma + - kavita #Move App update script for ProxmoxHelper/ProxMoxToolKit, if CT has this script - trigger: post-files diff --git a/CT-Files/kavita/Configs/kavita.service b/CT-Files/kavita/Configs/kavita.service new file mode 100644 index 0000000..db21412 --- /dev/null +++ b/CT-Files/kavita/Configs/kavita.service @@ -0,0 +1,14 @@ +#!/sbin/openrc-run +supervisor=supervise-daemon +name=kavita + +command_user="kavita" +command="/opt/kavita/Kavita" +supervise_daemon_args="--chdir '/opt/kavita' " + +pidfile="/run/kavita.pid" + +depend() { + use logger dns + need net +} \ No newline at end of file diff --git a/CT-Files/kavita/Scripts/Init.sh b/CT-Files/kavita/Scripts/Init.sh new file mode 100644 index 0000000..496fdc5 --- /dev/null +++ b/CT-Files/kavita/Scripts/Init.sh @@ -0,0 +1,25 @@ +#!/bin/ash + +#Get Resources +#CurrentVersion=$(curl -s https://api.github.com/repos/Kareadita/Kavita/releases/latest | grep 'tag_name.*' | cut -d : -f 2,3 | tr -d \" |tr -d , |tr -d " " |tr -d : ) +CurrentVersion=v0.8.1 +echo $CurrentVersion > /opt/kavita-installed +curl -L --retry 7 --retry-delay 5 https://github.com/Kareadita/Kavita/releases/download/$CurrentVersion/kavita-linux-musl-x64.tar.gz -o "/opt/Setup/kavita.tar.gz" || exit 1 + +#Install Kavita +mkdir /opt/kavita +tar -C /opt/kavita --strip-components=1 -xf /opt/Setup/kavita.tar.gz +addgroup kavita +adduser -h /opt/kavita -D -G kavita -s /bin/sh kavita +chown kavita: -R /opt/kavita +chmod +x /opt/kavita/Kavita +setcap 'cap_net_bind_service=+ep' /opt/kavita/Kavita +sed -i 's#\"Port\": 5000,#\"Port\": 80,#g' /opt/kavita/config/appsettings.json + +#Update script +mv /opt/Setup/Scripts/UpdateKavita.sh /opt/UpdateKavita.sh + +#Setup HomeAssistant service +mv /opt/Setup/Configs/kavita.service /etc/init.d/kavita +chmod +x /etc/init.d/kavita +rc-update add kavita \ No newline at end of file diff --git a/CT-Files/kavita/Scripts/PTKAppUpdate.sh b/CT-Files/kavita/Scripts/PTKAppUpdate.sh new file mode 100644 index 0000000..aa27160 --- /dev/null +++ b/CT-Files/kavita/Scripts/PTKAppUpdate.sh @@ -0,0 +1,3 @@ +#!/bin/sh +# Update script for updating apps with ProxmoxHelper/ProxMoxToolKit +ash /opt/UpdateKavita.sh \ No newline at end of file diff --git a/CT-Files/kavita/Scripts/UpdateKavita.sh b/CT-Files/kavita/Scripts/UpdateKavita.sh new file mode 100644 index 0000000..018c55d --- /dev/null +++ b/CT-Files/kavita/Scripts/UpdateKavita.sh @@ -0,0 +1,20 @@ +#!/bin/ash +NewKavitaVersion=$(curl -s https://api.github.com/repos/Kareadita/Kavita/releases/latest | grep 'tag_name.*' | cut -d : -f 2,3 | tr -d \" |tr -d , |tr -d " " |tr -d : ) +if test "$NewKavitaVersion" = "$(cat /opt/kavita-installed)" ; then + echo 'Kavita up-to-date' + exit +else + echo 'Updating Kavita' + service kavita stop + mv /opt/kavita/config /tmp/kavitacfg + curl -L --retry 7 --retry-delay 5 https://github.com/Kareadita/Kavita/releases/download/$NewKavitaVersion/kavita-linux-musl-x64.tar.gz -o "/tmp/kavita.tar.gz" || exit + rm -rf /opt/kavita/* + tar -C /opt/kavita --strip-components=1 -xf /tmp/kavita.tar.gz + chown kavita: -R /opt/kavita + rm -rf /tmp/kavita.tar.gz + mv /tmp/kavitacfg/* /opt/kavita/config + setcap 'cap_net_bind_service=+ep' /opt/kavita/Kavita + chmod +x /opt/kavita/Kavita + echo $NewKavitaVersion > /opt/kavita-installed + service kavita start +fi \ No newline at end of file diff --git a/Readme.md b/Readme.md index 4dfb72d..9fd7aa1 100644 --- a/Readme.md +++ b/Readme.md @@ -52,6 +52,7 @@ This can be done on a privileged Debian CT (make sure to enable the Fuse, Nestin | vouchproxy | Alpine | Vouch-proxy, A SSO solution for Nginx | | freshrss | Alpine | FreshRSS, a self-hosted RSS feed aggregator | | uptimekuma | Alpine | Uptime Kuma a self-hosted monitoring tool. | +| kavita | Alpine | A self-hosted digital library which supports a vast array of file formats. | ## TODO **Begin original list** @@ -276,6 +277,9 @@ lxc.mount.entry: /dev/ttyACM-Zwave dev/ttyACM-Zwave none bind,optional,create=fi ## uptimekuma * Available on http://``:80 +## kavita +* Available on http://``:80 + # Further CT documentation ## iscsi