From 41eac29fda423b8e97ea5de5805aef4f641a5bc4 Mon Sep 17 00:00:00 2001 From: hvmzx Date: Fri, 9 Aug 2024 19:30:29 +0200 Subject: [PATCH 01/10] calibre-web-kcc: initial release --- .github/workflows/BuildImage.yml | 8 ++--- Dockerfile | 27 +++++++++++++-- Dockerfile.complex | 33 ------------------- README.md | 26 +++------------ .../dependencies.d/init-mods | 0 .../run | 30 ----------------- .../type | 1 - .../init-mod-imagename-modname-add-package/up | 1 - .../dependencies.d/init-mods-package-install | 0 .../init-mod-imagename-modname-install/run | 8 ----- .../init-mod-imagename-modname-install/type | 1 - .../init-mod-imagename-modname-install/up | 1 - .../init-mod-imagename-modname-install | 0 .../init-mod-imagename-modname-add-package | 0 .../dependencies.d/init-services | 0 .../s6-rc.d/svc-mod-imagename-modname/run | 7 ---- .../s6-rc.d/svc-mod-imagename-modname/type | 1 - .../init-mod-imagename-modname-add-package | 0 .../init-mod-imagename-modname-install | 0 .../user/contents.d/svc-mod-imagename-modname | 0 20 files changed, 32 insertions(+), 112 deletions(-) delete mode 100644 Dockerfile.complex delete mode 100644 root/etc/s6-overlay/s6-rc.d/init-mod-imagename-modname-add-package/dependencies.d/init-mods delete mode 100755 root/etc/s6-overlay/s6-rc.d/init-mod-imagename-modname-add-package/run delete mode 100644 root/etc/s6-overlay/s6-rc.d/init-mod-imagename-modname-add-package/type delete mode 100644 root/etc/s6-overlay/s6-rc.d/init-mod-imagename-modname-add-package/up delete mode 100644 root/etc/s6-overlay/s6-rc.d/init-mod-imagename-modname-install/dependencies.d/init-mods-package-install delete mode 100755 root/etc/s6-overlay/s6-rc.d/init-mod-imagename-modname-install/run delete mode 100644 root/etc/s6-overlay/s6-rc.d/init-mod-imagename-modname-install/type delete mode 100644 root/etc/s6-overlay/s6-rc.d/init-mod-imagename-modname-install/up delete mode 100644 root/etc/s6-overlay/s6-rc.d/init-mods-end/dependencies.d/init-mod-imagename-modname-install delete mode 100644 root/etc/s6-overlay/s6-rc.d/init-mods-package-install/dependencies.d/init-mod-imagename-modname-add-package delete mode 100644 root/etc/s6-overlay/s6-rc.d/svc-mod-imagename-modname/dependencies.d/init-services delete mode 100755 root/etc/s6-overlay/s6-rc.d/svc-mod-imagename-modname/run delete mode 100644 root/etc/s6-overlay/s6-rc.d/svc-mod-imagename-modname/type delete mode 100644 root/etc/s6-overlay/s6-rc.d/user/contents.d/init-mod-imagename-modname-add-package delete mode 100644 root/etc/s6-overlay/s6-rc.d/user/contents.d/init-mod-imagename-modname-install delete mode 100644 root/etc/s6-overlay/s6-rc.d/user/contents.d/svc-mod-imagename-modname diff --git a/.github/workflows/BuildImage.yml b/.github/workflows/BuildImage.yml index 6008e850..3e52ab39 100644 --- a/.github/workflows/BuildImage.yml +++ b/.github/workflows/BuildImage.yml @@ -5,9 +5,9 @@ on: [push, pull_request_target, workflow_dispatch] env: GITHUB_REPO: "linuxserver/docker-mods" #don't modify ENDPOINT: "linuxserver/mods" #don't modify - BASEIMAGE: "replace_baseimage" #replace - MODNAME: "replace_modname" #replace - MULTI_ARCH: "true" #set to false if not needed + BASEIMAGE: "calibre-web" #replace + MODNAME: "kcc" #replace + MULTI_ARCH: "false" #set to false if not needed jobs: set-vars: @@ -22,7 +22,7 @@ jobs: echo "MODNAME=${{ env.MODNAME }}" >> $GITHUB_OUTPUT echo "MULTI_ARCH=${{ env.MULTI_ARCH }}" >> $GITHUB_OUTPUT # **** If the mod needs to be versioned, set the versioning logic below. Otherwise leave as is. **** - MOD_VERSION="" + MOD_VERSION="$(curl -s https://api.github.com/repos/ciromattia/kcc/releases/latest | jq -rc ".tag_name")" echo "MOD_VERSION=${MOD_VERSION}" >> $GITHUB_OUTPUT outputs: GITHUB_REPO: ${{ steps.outputs.outputs.GITHUB_REPO }} diff --git a/Dockerfile b/Dockerfile index aa661704..9b12135c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,8 +1,29 @@ # syntax=docker/dockerfile:1 +## Buildstage ## +FROM ghcr.io/linuxserver/baseimage-alpine:3.19 AS buildstage + +RUN curl -L https://archive.org/download/kindlegen_linux_2_6_i386_v2_9/kindlegen_linux_2.6_i386_v2_9.tar.gz > kindlegen.tar.gz +RUN tar -zxvf kindlegen.tar.gz kindlegen +RUN chmod +rwx 'kindlegen' +RUN rm kindlegen.tar.gz + +RUN latest_tag=$(curl -s https://api.github.com/repos/ciromattia/kcc/releases/latest | jq -rc ".tag_name") && \ + curl -L https://github.com/ciromattia/kcc/archive/refs/tags/$latest_tag.tar.gz > kcc.tar.gz && \ + tar -xzf kcc.tar.gz && \ + mv kcc-$(echo "$latest_tag" | sed 's/^.\(.*\)/\1/') kcc && \ + touch kcc/KCC_VERSION && \ + echo $latest_tag > kcc/KCC_VERSION && \ + mkdir -p /root-layer/usr/local/bin && \ + mv kindlegen /root-layer/usr/local/bin/ && \ + mv kcc /root-layer/usr/local/bin/ + +COPY root/ /root-layer/ + +## Single layer deployed image ## FROM scratch -LABEL maintainer="username" +LABEL maintainer="hvmzx" -# copy local files -COPY root/ / +# Add files from buildstage +COPY --from=buildstage /root-layer/ / \ No newline at end of file diff --git a/Dockerfile.complex b/Dockerfile.complex deleted file mode 100644 index eb80898f..00000000 --- a/Dockerfile.complex +++ /dev/null @@ -1,33 +0,0 @@ -# syntax=docker/dockerfile:1 - -## Buildstage ## -FROM ghcr.io/linuxserver/baseimage-alpine:3.19 as buildstage - -RUN \ - echo "**** install packages ****" && \ - apk add --no-cache \ - curl && \ - echo "**** grab rclone ****" && \ - mkdir -p /root-layer && \ - if [ $(uname -m) = "x86_64" ]; then \ - echo "Downloading x86_64 tarball" && \ - curl -o \ - /root-layer/rclone.deb -L \ - "https://downloads.rclone.org/v1.47.0/rclone-v1.47.0-linux-amd64.deb"; \ - elif [ $(uname -m) = "aarch64" ]; then \ - echo "Downloading aarch64 tarball" && \ - curl -o \ - /root-layer/rclone.deb -L \ - "https://downloads.rclone.org/v1.47.0/rclone-v1.47.0-linux-arm64.deb"; \ - fi && \ - -# copy local files -COPY root/ /root-layer/ - -## Single layer deployed image ## -FROM scratch - -LABEL maintainer="username" - -# Add files from buildstage -COPY --from=buildstage /root-layer/ / diff --git a/README.md b/README.md index 17006683..65cb3fd1 100644 --- a/README.md +++ b/README.md @@ -1,25 +1,7 @@ -# Rsync - Docker mod for openssh-server +# kcc - Docker mod for Calibre Web -This mod adds rsync to openssh-server, to be installed/updated during container start. +This mod adds kcc and its multitude of ebook processing (upscale, stretch, right to left for manga...) to Calibre Web, to be installed/updated during container start. -In openssh-server docker arguments, set an environment variable `DOCKER_MODS=linuxserver/mods:openssh-server-rsync` +In any container docker arguments, set an environment variable `DOCKER_MODS=linuxserver/mods:calibre-web-kcc` -If adding multiple mods, enter them in an array separated by `|`, such as `DOCKER_MODS=linuxserver/mods:openssh-server-rsync|linuxserver/mods:openssh-server-mod2` - -# Mod creation instructions - -* Fork the repo, create a new branch based on the branch `template`. -* Edit the `Dockerfile` for the mod. `Dockerfile.complex` is only an example and included for reference; it should be deleted when done. -* Inspect the `root` folder contents. Edit, add and remove as necessary. -* After all init scripts and services are created, run `find ./ -path "./.git" -prune -o \( -name "run" -o -name "finish" -o -name "check" \) -not -perm -u=x,g=x,o=x -print -exec chmod +x {} +` to fix permissions. -* Edit this readme with pertinent info, delete these instructions. -* Finally edit the `.github/workflows/BuildImage.yml`. Customize the vars for `BASEIMAGE` and `MODNAME`. Set the versioning logic and `MULTI_ARCH` if needed. -* Ask the team to create a new branch named `-`. Baseimage should be the name of the image the mod will be applied to. The new branch will be based on the `template` branch. -* Submit PR against the branch created by the team. - - -## Tips and tricks - -* Some images have helpers built in, these images are currently: - * [Openvscode-server](https://github.com/linuxserver/docker-openvscode-server/pull/10/files) - * [Code-server](https://github.com/linuxserver/docker-code-server/pull/95) +If adding multiple mods, enter them in an array separated by `|`, such as `DOCKER_MODS=linuxserver/mods:calibre-web-kcc|linuxserver/mods:calibre-web-mod2` \ No newline at end of file diff --git a/root/etc/s6-overlay/s6-rc.d/init-mod-imagename-modname-add-package/dependencies.d/init-mods b/root/etc/s6-overlay/s6-rc.d/init-mod-imagename-modname-add-package/dependencies.d/init-mods deleted file mode 100644 index e69de29b..00000000 diff --git a/root/etc/s6-overlay/s6-rc.d/init-mod-imagename-modname-add-package/run b/root/etc/s6-overlay/s6-rc.d/init-mod-imagename-modname-add-package/run deleted file mode 100755 index 063b5701..00000000 --- a/root/etc/s6-overlay/s6-rc.d/init-mod-imagename-modname-add-package/run +++ /dev/null @@ -1,30 +0,0 @@ -#!/usr/bin/with-contenv bash - -# This is the init file used for adding os or pip packages to install lists. -# It takes advantage of the built-in init-mods-package-install init script that comes with the baseimages. -# If using this, we need to make sure we set this init as a dependency of init-mods-package-install so this one runs first - -if ! command -v apprise; then - echo "**** Adding apprise and its deps to package install lists ****" - echo "apprise" >> /mod-pip-packages-to-install.list - ## Ubuntu - if [ -f /usr/bin/apt ]; then - echo "\ - python3 \ - python3-pip \ - runc" >> /mod-repo-packages-to-install.list - fi - # Alpine - if [ -f /sbin/apk ]; then - echo "\ - cargo \ - libffi-dev \ - openssl-dev \ - python3 \ - python3-dev \ - python3 \ - py3-pip" >> /mod-repo-packages-to-install.list - fi -else - echo "**** apprise already installed, skipping ****" -fi diff --git a/root/etc/s6-overlay/s6-rc.d/init-mod-imagename-modname-add-package/type b/root/etc/s6-overlay/s6-rc.d/init-mod-imagename-modname-add-package/type deleted file mode 100644 index 3d92b15f..00000000 --- a/root/etc/s6-overlay/s6-rc.d/init-mod-imagename-modname-add-package/type +++ /dev/null @@ -1 +0,0 @@ -oneshot \ No newline at end of file diff --git a/root/etc/s6-overlay/s6-rc.d/init-mod-imagename-modname-add-package/up b/root/etc/s6-overlay/s6-rc.d/init-mod-imagename-modname-add-package/up deleted file mode 100644 index 6414139f..00000000 --- a/root/etc/s6-overlay/s6-rc.d/init-mod-imagename-modname-add-package/up +++ /dev/null @@ -1 +0,0 @@ -/etc/s6-overlay/s6-rc.d/init-mod-imagename-modname-add-package/run \ No newline at end of file diff --git a/root/etc/s6-overlay/s6-rc.d/init-mod-imagename-modname-install/dependencies.d/init-mods-package-install b/root/etc/s6-overlay/s6-rc.d/init-mod-imagename-modname-install/dependencies.d/init-mods-package-install deleted file mode 100644 index e69de29b..00000000 diff --git a/root/etc/s6-overlay/s6-rc.d/init-mod-imagename-modname-install/run b/root/etc/s6-overlay/s6-rc.d/init-mod-imagename-modname-install/run deleted file mode 100755 index 59a4b77f..00000000 --- a/root/etc/s6-overlay/s6-rc.d/init-mod-imagename-modname-install/run +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/with-contenv bash - -# This is an install script that is designed to run after init-mods-package-install -# so it can take advantage of packages installed -# init-mods-end depends on this script so that later init and services wait until this script exits - -echo "**** Setting up apprise ****" -apprise blah blah diff --git a/root/etc/s6-overlay/s6-rc.d/init-mod-imagename-modname-install/type b/root/etc/s6-overlay/s6-rc.d/init-mod-imagename-modname-install/type deleted file mode 100644 index 3d92b15f..00000000 --- a/root/etc/s6-overlay/s6-rc.d/init-mod-imagename-modname-install/type +++ /dev/null @@ -1 +0,0 @@ -oneshot \ No newline at end of file diff --git a/root/etc/s6-overlay/s6-rc.d/init-mod-imagename-modname-install/up b/root/etc/s6-overlay/s6-rc.d/init-mod-imagename-modname-install/up deleted file mode 100644 index 03d298d2..00000000 --- a/root/etc/s6-overlay/s6-rc.d/init-mod-imagename-modname-install/up +++ /dev/null @@ -1 +0,0 @@ -/etc/s6-overlay/s6-rc.d/init-mod-imagename-modname-install/run \ No newline at end of file diff --git a/root/etc/s6-overlay/s6-rc.d/init-mods-end/dependencies.d/init-mod-imagename-modname-install b/root/etc/s6-overlay/s6-rc.d/init-mods-end/dependencies.d/init-mod-imagename-modname-install deleted file mode 100644 index e69de29b..00000000 diff --git a/root/etc/s6-overlay/s6-rc.d/init-mods-package-install/dependencies.d/init-mod-imagename-modname-add-package b/root/etc/s6-overlay/s6-rc.d/init-mods-package-install/dependencies.d/init-mod-imagename-modname-add-package deleted file mode 100644 index e69de29b..00000000 diff --git a/root/etc/s6-overlay/s6-rc.d/svc-mod-imagename-modname/dependencies.d/init-services b/root/etc/s6-overlay/s6-rc.d/svc-mod-imagename-modname/dependencies.d/init-services deleted file mode 100644 index e69de29b..00000000 diff --git a/root/etc/s6-overlay/s6-rc.d/svc-mod-imagename-modname/run b/root/etc/s6-overlay/s6-rc.d/svc-mod-imagename-modname/run deleted file mode 100755 index 02ffe39a..00000000 --- a/root/etc/s6-overlay/s6-rc.d/svc-mod-imagename-modname/run +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/with-contenv bash - -# This is an example service that would run for the mod -# It depends on init-services, the baseimage hook for start of all longrun services - -exec \ - s6-setuidgid abc run my app diff --git a/root/etc/s6-overlay/s6-rc.d/svc-mod-imagename-modname/type b/root/etc/s6-overlay/s6-rc.d/svc-mod-imagename-modname/type deleted file mode 100644 index 1780f9f4..00000000 --- a/root/etc/s6-overlay/s6-rc.d/svc-mod-imagename-modname/type +++ /dev/null @@ -1 +0,0 @@ -longrun \ No newline at end of file diff --git a/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-mod-imagename-modname-add-package b/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-mod-imagename-modname-add-package deleted file mode 100644 index e69de29b..00000000 diff --git a/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-mod-imagename-modname-install b/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-mod-imagename-modname-install deleted file mode 100644 index e69de29b..00000000 diff --git a/root/etc/s6-overlay/s6-rc.d/user/contents.d/svc-mod-imagename-modname b/root/etc/s6-overlay/s6-rc.d/user/contents.d/svc-mod-imagename-modname deleted file mode 100644 index e69de29b..00000000 From 966fd11c2050c60e59bbb592bd0d35a2d8f5b173 Mon Sep 17 00:00:00 2001 From: hvmzx Date: Fri, 9 Aug 2024 19:51:28 +0200 Subject: [PATCH 02/10] style: fixed indent to 2 to match the rest --- Dockerfile | 16 +++--- .../init-mod-calibre-web-kcc-add-package/run | 54 +++++++++++++++++++ 2 files changed, 62 insertions(+), 8 deletions(-) create mode 100755 root/etc/s6-overlay/s6-rc.d/init-mod-calibre-web-kcc-add-package/run diff --git a/Dockerfile b/Dockerfile index 9b12135c..b9455573 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,14 +9,14 @@ RUN chmod +rwx 'kindlegen' RUN rm kindlegen.tar.gz RUN latest_tag=$(curl -s https://api.github.com/repos/ciromattia/kcc/releases/latest | jq -rc ".tag_name") && \ - curl -L https://github.com/ciromattia/kcc/archive/refs/tags/$latest_tag.tar.gz > kcc.tar.gz && \ - tar -xzf kcc.tar.gz && \ - mv kcc-$(echo "$latest_tag" | sed 's/^.\(.*\)/\1/') kcc && \ - touch kcc/KCC_VERSION && \ - echo $latest_tag > kcc/KCC_VERSION && \ - mkdir -p /root-layer/usr/local/bin && \ - mv kindlegen /root-layer/usr/local/bin/ && \ - mv kcc /root-layer/usr/local/bin/ + curl -L https://github.com/ciromattia/kcc/archive/refs/tags/$latest_tag.tar.gz > kcc.tar.gz && \ + tar -xzf kcc.tar.gz && \ + mv kcc-$(echo "$latest_tag" | sed 's/^.\(.*\)/\1/') kcc && \ + touch kcc/KCC_VERSION && \ + echo $latest_tag > kcc/KCC_VERSION && \ + mkdir -p /root-layer/usr/local/bin && \ + mv kindlegen /root-layer/usr/local/bin/ && \ + mv kcc /root-layer/usr/local/bin/ COPY root/ /root-layer/ diff --git a/root/etc/s6-overlay/s6-rc.d/init-mod-calibre-web-kcc-add-package/run b/root/etc/s6-overlay/s6-rc.d/init-mod-calibre-web-kcc-add-package/run new file mode 100755 index 00000000..be3556f8 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-mod-calibre-web-kcc-add-package/run @@ -0,0 +1,54 @@ +#!/usr/bin/with-contenv bash + +# This is the init file used for adding os or pip packages to install lists. +# It takes advantage of the built-in init-mods-package-install init script that comes with the baseimages. +# If using this, we need to make sure we set this init as a dependency of init-mods-package-install so this one runs first + +echo "**** Adding kcc dependencies (repo and pip) to package install lists ****" +if ! python3 /usr/local/bin/kcc/kcc-c2e.py > /dev/null 2>&1 ; then + echo "\ + PySide6 \ + Pillow \ + psutil \ + requests \ + python-slugify \ + raven \ + mozjpeg-lossless-optimization \ + natsort[fast] \ + distro" >> /mod-pip-packages-to-install.list + ## Ubuntu + if [ -f /usr/bin/apt ]; then + echo "\ + python3 \ + python3-pip + python3-dev \ + libpng-dev \ + libjpeg-dev \ + p7zip-full \ + p7zip-rar \ + unrar-free \ + libgl1 \ + python3-pyqt5 \ + cmake" >> /mod-repo-packages-to-install.list + fi + # Alpine + if [ -f /sbin/apk ]; then + echo "\ + cargo \ + libffi-dev \ + openssl-dev \ + python3 \ + python3-dev \ + python3 \ + py3-pip \ + libpng-dev \ + libjpeg \ + p7zip \ + unrar \ + mesa-gl \ + py3-qt5 \ + cmake" >> /mod-repo-packages-to-install.list + fi +else + echo "**** kcc dependencies already installed, skipping ****" +fi \ No newline at end of file From 9f80fc6ea2192ff04dc3e381acb409988922cd35 Mon Sep 17 00:00:00 2001 From: hvmzx Date: Fri, 9 Aug 2024 19:52:53 +0200 Subject: [PATCH 03/10] fix: added missing files --- .../dependencies.d/init-mods | 0 .../s6-overlay/s6-rc.d/init-mod-calibre-web-kcc-add-package/type | 1 + .../s6-overlay/s6-rc.d/init-mod-calibre-web-kcc-add-package/up | 1 + .../dependencies.d/init-mod-calibre-web-kcc-add-package | 0 .../s6-rc.d/user/contents.d/init-mod-calibre-web-kcc-add-package | 0 5 files changed, 2 insertions(+) create mode 100644 root/etc/s6-overlay/s6-rc.d/init-mod-calibre-web-kcc-add-package/dependencies.d/init-mods create mode 100644 root/etc/s6-overlay/s6-rc.d/init-mod-calibre-web-kcc-add-package/type create mode 100644 root/etc/s6-overlay/s6-rc.d/init-mod-calibre-web-kcc-add-package/up create mode 100644 root/etc/s6-overlay/s6-rc.d/init-mods-package-install/dependencies.d/init-mod-calibre-web-kcc-add-package create mode 100644 root/etc/s6-overlay/s6-rc.d/user/contents.d/init-mod-calibre-web-kcc-add-package diff --git a/root/etc/s6-overlay/s6-rc.d/init-mod-calibre-web-kcc-add-package/dependencies.d/init-mods b/root/etc/s6-overlay/s6-rc.d/init-mod-calibre-web-kcc-add-package/dependencies.d/init-mods new file mode 100644 index 00000000..e69de29b diff --git a/root/etc/s6-overlay/s6-rc.d/init-mod-calibre-web-kcc-add-package/type b/root/etc/s6-overlay/s6-rc.d/init-mod-calibre-web-kcc-add-package/type new file mode 100644 index 00000000..3d92b15f --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-mod-calibre-web-kcc-add-package/type @@ -0,0 +1 @@ +oneshot \ No newline at end of file diff --git a/root/etc/s6-overlay/s6-rc.d/init-mod-calibre-web-kcc-add-package/up b/root/etc/s6-overlay/s6-rc.d/init-mod-calibre-web-kcc-add-package/up new file mode 100644 index 00000000..04835849 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-mod-calibre-web-kcc-add-package/up @@ -0,0 +1 @@ +/etc/s6-overlay/s6-rc.d/init-mod-calibre-web-kcc-add-package/run \ No newline at end of file diff --git a/root/etc/s6-overlay/s6-rc.d/init-mods-package-install/dependencies.d/init-mod-calibre-web-kcc-add-package b/root/etc/s6-overlay/s6-rc.d/init-mods-package-install/dependencies.d/init-mod-calibre-web-kcc-add-package new file mode 100644 index 00000000..e69de29b diff --git a/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-mod-calibre-web-kcc-add-package b/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-mod-calibre-web-kcc-add-package new file mode 100644 index 00000000..e69de29b From 669f5b14475edd28c8b4e7422696a53358f951cf Mon Sep 17 00:00:00 2001 From: hvmzx Date: Sat, 10 Aug 2024 21:40:22 +0200 Subject: [PATCH 04/10] feat: now using MOD_VERSION check --- Dockerfile | 13 +++++++++---- README.md | 4 ++-- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/Dockerfile b/Dockerfile index b9455573..1414a0f8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,17 +3,22 @@ ## Buildstage ## FROM ghcr.io/linuxserver/baseimage-alpine:3.19 AS buildstage +ARG MOD_VERSION + RUN curl -L https://archive.org/download/kindlegen_linux_2_6_i386_v2_9/kindlegen_linux_2.6_i386_v2_9.tar.gz > kindlegen.tar.gz RUN tar -zxvf kindlegen.tar.gz kindlegen RUN chmod +rwx 'kindlegen' RUN rm kindlegen.tar.gz -RUN latest_tag=$(curl -s https://api.github.com/repos/ciromattia/kcc/releases/latest | jq -rc ".tag_name") && \ - curl -L https://github.com/ciromattia/kcc/archive/refs/tags/$latest_tag.tar.gz > kcc.tar.gz && \ +RUN \ + if [ -z ${MOD_VERSION+x} ]; then \ + MOD_VERSION=$(curl -s https://api.github.com/repos/ciromattia/kcc/releases/latest | jq -rc ".tag_name"); \ + fi; \ + curl -L https://github.com/ciromattia/kcc/archive/refs/tags/${MOD_VERSION}.tar.gz > kcc.tar.gz && \ tar -xzf kcc.tar.gz && \ - mv kcc-$(echo "$latest_tag" | sed 's/^.\(.*\)/\1/') kcc && \ + mv kcc-$(echo "${MOD_VERSION}" | sed 's/^.\(.*\)/\1/') kcc && \ touch kcc/KCC_VERSION && \ - echo $latest_tag > kcc/KCC_VERSION && \ + echo ${MOD_VERSION} > kcc/KCC_VERSION && \ mkdir -p /root-layer/usr/local/bin && \ mv kindlegen /root-layer/usr/local/bin/ && \ mv kcc /root-layer/usr/local/bin/ diff --git a/README.md b/README.md index 65cb3fd1..f8256494 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -# kcc - Docker mod for Calibre Web +# KCC (Kindle Comic Converter) - Docker mod for Calibre Web -This mod adds kcc and its multitude of ebook processing (upscale, stretch, right to left for manga...) to Calibre Web, to be installed/updated during container start. +This mod adds KCC and its multitude of ebook processing (upscale, stretch, right to left for manga...) to Calibre Web, to be installed/updated during container start. In any container docker arguments, set an environment variable `DOCKER_MODS=linuxserver/mods:calibre-web-kcc` From 7c5d7e13a48028a35bafee9dafe26e53189ffd00 Mon Sep 17 00:00:00 2001 From: hvmzx Date: Sat, 10 Aug 2024 21:40:44 +0200 Subject: [PATCH 05/10] style: uncommented top --- .../s6-rc.d/init-mod-calibre-web-kcc-add-package/run | 4 ---- 1 file changed, 4 deletions(-) diff --git a/root/etc/s6-overlay/s6-rc.d/init-mod-calibre-web-kcc-add-package/run b/root/etc/s6-overlay/s6-rc.d/init-mod-calibre-web-kcc-add-package/run index be3556f8..70095404 100755 --- a/root/etc/s6-overlay/s6-rc.d/init-mod-calibre-web-kcc-add-package/run +++ b/root/etc/s6-overlay/s6-rc.d/init-mod-calibre-web-kcc-add-package/run @@ -1,9 +1,5 @@ #!/usr/bin/with-contenv bash -# This is the init file used for adding os or pip packages to install lists. -# It takes advantage of the built-in init-mods-package-install init script that comes with the baseimages. -# If using this, we need to make sure we set this init as a dependency of init-mods-package-install so this one runs first - echo "**** Adding kcc dependencies (repo and pip) to package install lists ****" if ! python3 /usr/local/bin/kcc/kcc-c2e.py > /dev/null 2>&1 ; then echo "\ From 87da4c2051a264ac3f7342f6b178e180abf4dd35 Mon Sep 17 00:00:00 2001 From: hvmzx Date: Sat, 10 Aug 2024 21:49:09 +0200 Subject: [PATCH 06/10] fix: indent --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 1414a0f8..28f43101 100644 --- a/Dockerfile +++ b/Dockerfile @@ -12,7 +12,7 @@ RUN rm kindlegen.tar.gz RUN \ if [ -z ${MOD_VERSION+x} ]; then \ - MOD_VERSION=$(curl -s https://api.github.com/repos/ciromattia/kcc/releases/latest | jq -rc ".tag_name"); \ + MOD_VERSION=$(curl -s https://api.github.com/repos/ciromattia/kcc/releases/latest | jq -rc ".tag_name"); \ fi; \ curl -L https://github.com/ciromattia/kcc/archive/refs/tags/${MOD_VERSION}.tar.gz > kcc.tar.gz && \ tar -xzf kcc.tar.gz && \ From acf2ecb5c9e1976a16436b31bbce4664b3dc4858 Mon Sep 17 00:00:00 2001 From: hvmzx Date: Sat, 10 Aug 2024 22:13:20 +0200 Subject: [PATCH 07/10] fix: fixing MOD_VERSION bug, tested in dev --- Dockerfile | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 28f43101..430423b3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,10 +10,26 @@ RUN tar -zxvf kindlegen.tar.gz kindlegen RUN chmod +rwx 'kindlegen' RUN rm kindlegen.tar.gz + +RUN \ + echo "**** grab transmissionic ****" && \ + mkdir -p /root-layer/themes && \ + if [ -z ${MOD_VERSION+x} ]; then \ + MOD_VERSION=$(curl -s "https://api.github.com/repos/6c65726f79/Transmissionic/releases/latest" \ + | jq -rc ".tag_name"); \ + fi && \ + curl -o \ + /tmp/transmissionic.zip -L \ + "https://github.com/6c65726f79/Transmissionic/releases/download/${MOD_VERSION}/Transmissionic-webui-${MOD_VERSION}.zip" && \ + unzip \ + /tmp/transmissionic.zip -d \ + /root-layer/themes && \ + mv /root-layer/themes/web /root-layer/themes/transmissionic RUN \ if [ -z ${MOD_VERSION+x} ]; then \ - MOD_VERSION=$(curl -s https://api.github.com/repos/ciromattia/kcc/releases/latest | jq -rc ".tag_name"); \ - fi; \ + MOD_VERSION=$(curl -s "https://api.github.com/repos/ciromattia/kcc/releases/latest" \ + | jq -rc ".tag_name"); \ + fi && \ curl -L https://github.com/ciromattia/kcc/archive/refs/tags/${MOD_VERSION}.tar.gz > kcc.tar.gz && \ tar -xzf kcc.tar.gz && \ mv kcc-$(echo "${MOD_VERSION}" | sed 's/^.\(.*\)/\1/') kcc && \ From aaa732210375d795b43f851408d4c818e4f9ca97 Mon Sep 17 00:00:00 2001 From: hvmzx Date: Sat, 10 Aug 2024 22:18:44 +0200 Subject: [PATCH 08/10] fix: removed unwanted code, file not saved properly --- Dockerfile | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/Dockerfile b/Dockerfile index 430423b3..732326de 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,21 +10,6 @@ RUN tar -zxvf kindlegen.tar.gz kindlegen RUN chmod +rwx 'kindlegen' RUN rm kindlegen.tar.gz - -RUN \ - echo "**** grab transmissionic ****" && \ - mkdir -p /root-layer/themes && \ - if [ -z ${MOD_VERSION+x} ]; then \ - MOD_VERSION=$(curl -s "https://api.github.com/repos/6c65726f79/Transmissionic/releases/latest" \ - | jq -rc ".tag_name"); \ - fi && \ - curl -o \ - /tmp/transmissionic.zip -L \ - "https://github.com/6c65726f79/Transmissionic/releases/download/${MOD_VERSION}/Transmissionic-webui-${MOD_VERSION}.zip" && \ - unzip \ - /tmp/transmissionic.zip -d \ - /root-layer/themes && \ - mv /root-layer/themes/web /root-layer/themes/transmissionic RUN \ if [ -z ${MOD_VERSION+x} ]; then \ MOD_VERSION=$(curl -s "https://api.github.com/repos/ciromattia/kcc/releases/latest" \ From f5341ad38e672be06f0daa098b12d0b24c02d5f0 Mon Sep 17 00:00:00 2001 From: hvmzx Date: Sat, 10 Aug 2024 22:33:33 +0200 Subject: [PATCH 09/10] fix: removed +x in condition --- Dockerfile | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 732326de..0bc0104f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,10 +11,13 @@ RUN chmod +rwx 'kindlegen' RUN rm kindlegen.tar.gz RUN \ - if [ -z ${MOD_VERSION+x} ]; then \ - MOD_VERSION=$(curl -s "https://api.github.com/repos/ciromattia/kcc/releases/latest" \ - | jq -rc ".tag_name"); \ + if [ -z ${MOD_VERSION } ]; then \ + echo "MOD_VERSION is not set. Fetching from GitHub..."; \ + MOD_VERSION=$(curl -s "https://api.github.com/repos/ciromattia/kcc/releases/latest" | jq -rc ".tag_name"); \ + else \ + echo "MOD_VERSION is already set to '${MOD_VERSION}'"; \ fi && \ + echo "Using MOD_VERSION=${MOD_VERSION}" && \ curl -L https://github.com/ciromattia/kcc/archive/refs/tags/${MOD_VERSION}.tar.gz > kcc.tar.gz && \ tar -xzf kcc.tar.gz && \ mv kcc-$(echo "${MOD_VERSION}" | sed 's/^.\(.*\)/\1/') kcc && \ From 46e55add6e296f7c86b3d17c66d8fe9d29d37dbb Mon Sep 17 00:00:00 2001 From: hvmzx Date: Sat, 10 Aug 2024 22:53:43 +0200 Subject: [PATCH 10/10] fix: removed space typo --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 0bc0104f..437b3675 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,7 +11,7 @@ RUN chmod +rwx 'kindlegen' RUN rm kindlegen.tar.gz RUN \ - if [ -z ${MOD_VERSION } ]; then \ + if [ -z ${MOD_VERSION} ]; then \ echo "MOD_VERSION is not set. Fetching from GitHub..."; \ MOD_VERSION=$(curl -s "https://api.github.com/repos/ciromattia/kcc/releases/latest" | jq -rc ".tag_name"); \ else \