diff --git a/Dockerfile b/Dockerfile index 48e4199..ac8a2aa 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,65 +8,65 @@ LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DA LABEL maintainer="chbmb" RUN \ - echo "**** install build packages ****" && \ - apt-get update && \ - apt-get install -y \ - git \ - libldap2-dev \ - libsasl2-dev \ - python3-pip && \ - echo "**** install runtime packages ****" && \ - apt-get install -y \ - imagemagick \ - libnss3 \ - libxcomposite1 \ - libxi6 \ - libxslt1.1 \ - libldap-2.4-2 \ - libsasl2-2 \ - libxrandr2 \ - python3-minimal \ - python3-pkg-resources \ - unrar && \ - echo "**** install calibre-web ****" && \ - if [ -z ${CALIBREWEB_RELEASE+x} ]; then \ - CALIBREWEB_RELEASE=$(curl -sX GET "https://api.github.com/repos/janeczku/calibre-web/releases/latest" \ - | awk '/tag_name/{print $4;exit}' FS='[""]'); \ - fi && \ - curl -o \ - /tmp/calibre-web.tar.gz -L \ - https://github.com/janeczku/calibre-web/archive/${CALIBREWEB_RELEASE}.tar.gz && \ - mkdir -p \ - /app/calibre-web && \ - tar xf \ - /tmp/calibre-web.tar.gz -C \ - /app/calibre-web --strip-components=1 && \ - cd /app/calibre-web && \ - pip3 install --no-cache-dir -U \ - pip && \ - pip install --no-cache-dir -U -r \ - requirements.txt -r \ - optional-requirements.txt && \ - echo "***install kepubify" && \ - if [ -z ${KEPUBIFY_RELEASE+x} ]; then \ + echo "**** install build packages ****" && \ + apt-get update && \ + apt-get install -y \ + git \ + libldap2-dev \ + libsasl2-dev \ + python3-pip && \ + echo "**** install runtime packages ****" && \ + apt-get install -y \ + imagemagick \ + libnss3 \ + libxcomposite1 \ + libxi6 \ + libxslt1.1 \ + libldap-2.4-2 \ + libsasl2-2 \ + libxrandr2 \ + python3-minimal \ + python3-pkg-resources \ + unrar && \ + echo "**** install calibre-web ****" && \ + if [ -z ${CALIBREWEB_RELEASE+x} ]; then \ + CALIBREWEB_RELEASE=$(curl -sX GET "https://api.github.com/repos/janeczku/calibre-web/releases/latest" \ + | awk '/tag_name/{print $4;exit}' FS='[""]'); \ + fi && \ + curl -o \ + /tmp/calibre-web.tar.gz -L \ + https://github.com/janeczku/calibre-web/archive/${CALIBREWEB_RELEASE}.tar.gz && \ + mkdir -p \ + /app/calibre-web && \ + tar xf \ + /tmp/calibre-web.tar.gz -C \ + /app/calibre-web --strip-components=1 && \ + cd /app/calibre-web && \ + pip3 install --no-cache-dir -U \ + pip && \ + pip install --no-cache-dir -U --find-links https://wheel-index.linuxserver.io/ubuntu/ -r \ + requirements.txt -r \ + optional-requirements.txt && \ + echo "***install kepubify" && \ + if [ -z ${KEPUBIFY_RELEASE+x} ]; then \ KEPUBIFY_RELEASE=$(curl -sX GET "https://api.github.com/repos/pgaskin/kepubify/releases/latest" \ - | awk '/tag_name/{print $4;exit}' FS='[""]'); \ - fi && \ - curl -o \ - /usr/bin/kepubify -L \ - https://github.com/pgaskin/kepubify/releases/download/${KEPUBIFY_RELEASE}/kepubify-linux-64bit && \ - echo "**** cleanup ****" && \ - apt-get -y purge \ - git \ - libldap2-dev \ - libsasl2-dev \ - python3-pip && \ - apt-get -y autoremove && \ - rm -rf \ - /tmp/* \ - /var/lib/apt/lists/* \ - /var/tmp/* \ - /root/.cache + | awk '/tag_name/{print $4;exit}' FS='[""]'); \ + fi && \ + curl -o \ + /usr/bin/kepubify -L \ + https://github.com/pgaskin/kepubify/releases/download/${KEPUBIFY_RELEASE}/kepubify-linux-64bit && \ + echo "**** cleanup ****" && \ + apt-get -y purge \ + git \ + libldap2-dev \ + libsasl2-dev \ + python3-pip && \ + apt-get -y autoremove && \ + rm -rf \ + /tmp/* \ + /var/lib/apt/lists/* \ + /var/tmp/* \ + /root/.cache # add local files COPY root/ / diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 7b065b1..e289ed4 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -8,79 +8,79 @@ LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DA LABEL maintainer="chbmb" RUN \ - echo "**** install build packages ****" && \ - apt-get update && \ - apt-get install -y \ - g++ \ - gcc \ - git \ - libffi-dev \ - libjpeg-dev \ - libldap2-dev \ - libsasl2-dev \ - libxml2-dev \ - libxslt1-dev \ - python3-pip \ - zlib1g-dev && \ - echo "**** install runtime packages ****" && \ - apt-get install -y \ - imagemagick \ - libldap-2.4-2 \ - libnss3 \ - libsasl2-2 \ - libxcomposite1 \ - libxi6 \ - libxrandr2 \ - libxslt1.1 \ - python3-minimal \ - python3-pkg-resources \ - unrar && \ - echo "**** install calibre-web ****" && \ - if [ -z ${CALIBREWEB_RELEASE+x} ]; then \ - CALIBREWEB_RELEASE=$(curl -sX GET "https://api.github.com/repos/janeczku/calibre-web/releases/latest" \ - | awk '/tag_name/{print $4;exit}' FS='[""]'); \ - fi && \ - curl -o \ - /tmp/calibre-web.tar.gz -L \ - https://github.com/janeczku/calibre-web/archive/${CALIBREWEB_RELEASE}.tar.gz && \ - mkdir -p \ - /app/calibre-web && \ - tar xf \ - /tmp/calibre-web.tar.gz -C \ - /app/calibre-web --strip-components=1 && \ - cd /app/calibre-web && \ - pip3 install --no-cache-dir -U \ - pip && \ - pip install --no-cache-dir -U -r \ - requirements.txt -r \ - optional-requirements.txt && \ - echo "***install kepubify" && \ - if [ -z ${KEPUBIFY_RELEASE+x} ]; then \ + echo "**** install build packages ****" && \ + apt-get update && \ + apt-get install -y \ + g++ \ + gcc \ + git \ + libffi-dev \ + libjpeg-dev \ + libldap2-dev \ + libsasl2-dev \ + libxml2-dev \ + libxslt1-dev \ + python3-pip \ + zlib1g-dev && \ + echo "**** install runtime packages ****" && \ + apt-get install -y \ + imagemagick \ + libldap-2.4-2 \ + libnss3 \ + libsasl2-2 \ + libxcomposite1 \ + libxi6 \ + libxrandr2 \ + libxslt1.1 \ + python3-minimal \ + python3-pkg-resources \ + unrar && \ + echo "**** install calibre-web ****" && \ + if [ -z ${CALIBREWEB_RELEASE+x} ]; then \ + CALIBREWEB_RELEASE=$(curl -sX GET "https://api.github.com/repos/janeczku/calibre-web/releases/latest" \ + | awk '/tag_name/{print $4;exit}' FS='[""]'); \ + fi && \ + curl -o \ + /tmp/calibre-web.tar.gz -L \ + https://github.com/janeczku/calibre-web/archive/${CALIBREWEB_RELEASE}.tar.gz && \ + mkdir -p \ + /app/calibre-web && \ + tar xf \ + /tmp/calibre-web.tar.gz -C \ + /app/calibre-web --strip-components=1 && \ + cd /app/calibre-web && \ + pip3 install --no-cache-dir -U \ + pip && \ + pip install --no-cache-dir -U --find-links https://wheel-index.linuxserver.io/ubuntu/ -r \ + requirements.txt -r \ + optional-requirements.txt && \ + echo "***install kepubify" && \ + if [ -z ${KEPUBIFY_RELEASE+x} ]; then \ KEPUBIFY_RELEASE=$(curl -sX GET "https://api.github.com/repos/pgaskin/kepubify/releases/latest" \ - | awk '/tag_name/{print $4;exit}' FS='[""]'); \ - fi && \ - curl -o \ - /usr/bin/kepubify -L \ - https://github.com/pgaskin/kepubify/releases/download/${KEPUBIFY_RELEASE}/kepubify-linux-arm64 && \ - echo "**** cleanup ****" && \ - apt-get -y purge \ - g++ \ - gcc \ - git \ - libffi-dev \ - libjpeg-dev \ - libldap2-dev \ - libsasl2-dev \ - libxml2-dev \ - libxslt1-dev \ - python3-pip \ - zlib1g-dev && \ - apt-get -y autoremove && \ - rm -rf \ - /tmp/* \ - /var/lib/apt/lists/* \ - /var/tmp/* \ - /root/.cache + | awk '/tag_name/{print $4;exit}' FS='[""]'); \ + fi && \ + curl -o \ + /usr/bin/kepubify -L \ + https://github.com/pgaskin/kepubify/releases/download/${KEPUBIFY_RELEASE}/kepubify-linux-arm64 && \ + echo "**** cleanup ****" && \ + apt-get -y purge \ + g++ \ + gcc \ + git \ + libffi-dev \ + libjpeg-dev \ + libldap2-dev \ + libsasl2-dev \ + libxml2-dev \ + libxslt1-dev \ + python3-pip \ + zlib1g-dev && \ + apt-get -y autoremove && \ + rm -rf \ + /tmp/* \ + /var/lib/apt/lists/* \ + /var/tmp/* \ + /root/.cache # add local files COPY root/ / diff --git a/Dockerfile.armhf b/Dockerfile.armhf index 9f81634..f3a2197 100644 --- a/Dockerfile.armhf +++ b/Dockerfile.armhf @@ -8,84 +8,84 @@ LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DA LABEL maintainer="chbmb" RUN \ - echo "**** install build packages ****" && \ - apt-get update && \ - apt-get install -y \ - g++ \ - gcc \ - git \ - libffi-dev \ - libjpeg-dev \ - libldap2-dev \ - libsasl2-dev \ - libssl-dev \ - libxml2-dev \ - libxslt1-dev \ - python3-pip \ - rustc \ - zlib1g-dev && \ - echo "**** install runtime packages ****" && \ - apt-get install -y \ - imagemagick \ - libldap-2.4-2 \ - libnss3 \ - libsasl2-2 \ - libxcomposite1 \ - libxi6 \ - libxrandr2 \ - libxslt1.1 \ - python3-minimal \ + echo "**** install build packages ****" && \ + apt-get update && \ + apt-get install -y \ + g++ \ + gcc \ + git \ + libffi-dev \ + libjpeg-dev \ + libldap2-dev \ + libsasl2-dev \ + libssl-dev \ + libxml2-dev \ + libxslt1-dev \ + python3-pip \ + rustc \ + zlib1g-dev && \ + echo "**** install runtime packages ****" && \ + apt-get install -y \ + imagemagick \ + libldap-2.4-2 \ + libnss3 \ + libsasl2-2 \ + libxcomposite1 \ + libxi6 \ + libxrandr2 \ + libxslt1.1 \ + python3-minimal \ python3-pkg-resources \ - unrar && \ - echo "**** install calibre-web ****" && \ - if [ -z ${CALIBREWEB_RELEASE+x} ]; then \ - CALIBREWEB_RELEASE=$(curl -sX GET "https://api.github.com/repos/janeczku/calibre-web/releases/latest" \ - | awk '/tag_name/{print $4;exit}' FS='[""]'); \ - fi && \ - curl -o \ - /tmp/calibre-web.tar.gz -L \ - https://github.com/janeczku/calibre-web/archive/${CALIBREWEB_RELEASE}.tar.gz && \ - mkdir -p \ - /app/calibre-web && \ - tar xf \ - /tmp/calibre-web.tar.gz -C \ - /app/calibre-web --strip-components=1 && \ - cd /app/calibre-web && \ - pip3 install --no-cache-dir -U \ - pip && \ - pip install --no-cache-dir -U -r \ - requirements.txt -r \ - optional-requirements.txt && \ - echo "***install kepubify" && \ - if [ -z ${KEPUBIFY_RELEASE+x} ]; then \ + unrar && \ + echo "**** install calibre-web ****" && \ + if [ -z ${CALIBREWEB_RELEASE+x} ]; then \ + CALIBREWEB_RELEASE=$(curl -sX GET "https://api.github.com/repos/janeczku/calibre-web/releases/latest" \ + | awk '/tag_name/{print $4;exit}' FS='[""]'); \ + fi && \ + curl -o \ + /tmp/calibre-web.tar.gz -L \ + https://github.com/janeczku/calibre-web/archive/${CALIBREWEB_RELEASE}.tar.gz && \ + mkdir -p \ + /app/calibre-web && \ + tar xf \ + /tmp/calibre-web.tar.gz -C \ + /app/calibre-web --strip-components=1 && \ + cd /app/calibre-web && \ + pip3 install --no-cache-dir -U \ + pip && \ + pip install --no-cache-dir -U --find-links https://wheel-index.linuxserver.io/ubuntu/ -r \ + requirements.txt -r \ + optional-requirements.txt && \ + echo "***install kepubify" && \ + if [ -z ${KEPUBIFY_RELEASE+x} ]; then \ KEPUBIFY_RELEASE=$(curl -sX GET "https://api.github.com/repos/pgaskin/kepubify/releases/latest" \ - | awk '/tag_name/{print $4;exit}' FS='[""]'); \ - fi && \ - curl -o \ - /usr/bin/kepubify -L \ - https://github.com/pgaskin/kepubify/releases/download/${KEPUBIFY_RELEASE}/kepubify-linux-arm && \ - echo "**** cleanup ****" && \ - apt-get -y purge \ - g++ \ - gcc \ - git \ - libffi-dev \ - libjpeg-dev \ - libldap2-dev \ - libsasl2-dev \ - libssl-dev \ - libxml2-dev \ - libxslt1-dev \ - python3-pip \ - rustc \ - zlib1g-dev && \ - apt-get -y autoremove && \ - rm -rf \ - /tmp/* \ - /var/lib/apt/lists/* \ - /var/tmp/* \ - /root/.cache \ - /root/.cargo + | awk '/tag_name/{print $4;exit}' FS='[""]'); \ + fi && \ + curl -o \ + /usr/bin/kepubify -L \ + https://github.com/pgaskin/kepubify/releases/download/${KEPUBIFY_RELEASE}/kepubify-linux-arm && \ + echo "**** cleanup ****" && \ + apt-get -y purge \ + g++ \ + gcc \ + git \ + libffi-dev \ + libjpeg-dev \ + libldap2-dev \ + libsasl2-dev \ + libssl-dev \ + libxml2-dev \ + libxslt1-dev \ + python3-pip \ + rustc \ + zlib1g-dev && \ + apt-get -y autoremove && \ + rm -rf \ + /tmp/* \ + /var/lib/apt/lists/* \ + /var/tmp/* \ + /root/.cache \ + /root/.cargo # add local files COPY root/ / diff --git a/README.md b/README.md index f10f158..9ea4dbb 100644 --- a/README.md +++ b/README.md @@ -118,8 +118,8 @@ services: - TZ=Europe/London - DOCKER_MODS=linuxserver/calibre-web:calibre volumes: - - :/config - - :/books + - /path/to/data:/config + - /path/to/calibre/library:/books ports: - 8083:8083 restart: unless-stopped @@ -135,8 +135,8 @@ docker run -d \ -e TZ=Europe/London \ -e DOCKER_MODS=linuxserver/calibre-web:calibre \ -p 8083:8083 \ - -v :/config \ - -v :/books \ + -v /path/to/data:/config \ + -v /path/to/calibre/library:/books \ --restart unless-stopped \ ghcr.io/linuxserver/calibre-web ``` @@ -153,7 +153,7 @@ Container images are configured using parameters passed at runtime (such as thos | `-e TZ=Europe/London` | Specify a timezone to use EG Europe/London. | | `-e DOCKER_MODS=linuxserver/calibre-web:calibre` | #optional & **x86-64 only** Adds the ability to perform ebook conversion | | `-v /config` | Where calibre-web stores the internal database and config. | -| `-v /books` | Where your preexisting calibre database is locate. | +| `-v /books` | Where your preexisting calibre database is located. | ## Environment variables from files (Docker secrets) @@ -264,6 +264,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64 ## Versions +* **17.05.21:** - Add linuxserver wheel index. * **10.02.21:** - Add libxrandr2 * **25.01.21:** - Add nightly tag * **19.01.21:** - Add python3-pkg-resources diff --git a/readme-vars.yml b/readme-vars.yml index 85f4093..40522a3 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -31,8 +31,8 @@ param_env_vars: - { env_var: "DOCKER_MODS", env_value: "linuxserver/calibre-web:calibre", desc: "#optional & **x86-64 only** Adds the ability to perform ebook conversion"} param_usage_include_vols: true param_volumes: - - { vol_path: "/config", vol_host_path: "", desc: "Where calibre-web stores the internal database and config." } - - { vol_path: "/books", vol_host_path: "", desc: "Where your preexisting calibre database is locate." } + - { vol_path: "/config", vol_host_path: "/path/to/data", desc: "Where calibre-web stores the internal database and config." } + - { vol_path: "/books", vol_host_path: "/path/to/calibre/library", desc: "Where your preexisting calibre database is located." } param_usage_include_ports: true param_ports: - { external_port: "8083", internal_port: "8083", port_desc: "WebUI" } @@ -77,6 +77,7 @@ app_setup_block: | # changelog changelogs: + - { date: "17.05.21:", desc: "Add linuxserver wheel index."} - { date: "10.02.21:", desc: "Add libxrandr2"} - { date: "25.01.21:", desc: "Add nightly tag"} - { date: "19.01.21:", desc: "Add python3-pkg-resources"} diff --git a/root/etc/cont-init.d/30-config b/root/etc/cont-init.d/30-config index 384f5cb..4ca17b9 100644 --- a/root/etc/cont-init.d/30-config +++ b/root/etc/cont-init.d/30-config @@ -2,48 +2,48 @@ # create symlinks for imagemagick policy.xml [[ -f /etc/ImageMagick-6/policy.xml ]] && \ - rm /etc/ImageMagick-6/policy.xml + rm /etc/ImageMagick-6/policy.xml [[ ! -L /etc/ImageMagick-6/policy.xml ]] && \ - ln -s /defaults/policy.xml /etc/ImageMagick-6/policy.xml + ln -s /defaults/policy.xml /etc/ImageMagick-6/policy.xml # create symlinks for database and log [[ ! -f /config/app.db ]] && \ - cp /defaults/app.db /config/app.db + cp /defaults/app.db /config/app.db [[ -f /app/calibre-web/app.db ]] && \ - rm /app/calibre-web/app.db + rm /app/calibre-web/app.db [[ ! -L /app/calibre-web/app.db ]] && \ - ln -s /config/app.db /app/calibre-web/app.db + ln -s /config/app.db /app/calibre-web/app.db # create symlinks for log [[ ! -f /config/calibre-web.log ]] && \ - touch /config/calibre-web.log + touch /config/calibre-web.log [[ -f /app/calibre-web/calibre-web.log ]] && \ - rm /app/calibre-web/calibre-web.log + rm /app/calibre-web/calibre-web.log [[ ! -L /app/calibre-web/calibre-web.log ]] && \ - ln -s /config/calibre-web.log /app/calibre-web/calibre-web.log + ln -s /config/calibre-web.log /app/calibre-web/calibre-web.log # create Google drive client_secrets.json file [[ ! -f /config/client_secrets.json ]] && \ - echo "{}" > /config/client_secrets.json + echo "{}" > /config/client_secrets.json [[ -f /app/calibre-web/client_secrets.json ]] && - rm /app/calibre-web/client_secrets.json + rm /app/calibre-web/client_secrets.json [[ ! -L /app/calibre-web/client_secrets.json ]] && - ln -s /config/client_secrets.json /app/calibre-web/client_secrets.json + ln -s /config/client_secrets.json /app/calibre-web/client_secrets.json # create Google drive symlinks for database [[ ! -f /config/gdrive.db ]] && \ - cp /app/calibre-web/gdrive.db /config/gdrive.db + cp /app/calibre-web/gdrive.db /config/gdrive.db [[ -f /app/calibre-web/gdrive.db ]] && \ - rm /app/calibre-web/gdrive.db + rm /app/calibre-web/gdrive.db [[ ! -L /app/calibre-web/gdrive.db ]] && \ - ln -s /config/gdrive.db /app/calibre-web/gdrive.db + ln -s /config/gdrive.db /app/calibre-web/gdrive.db # check if kepubify is present and if so make executable [[ -f /usr/bin/kepubify ]] && \ [[ ! -x /usr/bin/kepubify ]] && \ - chmod +x /usr/bin/kepubify + chmod +x /usr/bin/kepubify # permissions chown -R abc:abc \ - /config \ - /app/calibre-web + /config \ + /app/calibre-web diff --git a/root/etc/services.d/calibre-web/run b/root/etc/services.d/calibre-web/run index 228e498..98523a3 100644 --- a/root/etc/services.d/calibre-web/run +++ b/root/etc/services.d/calibre-web/run @@ -3,4 +3,4 @@ cd /app/calibre-web || exit exec \ - s6-setuidgid abc python3 /app/calibre-web/cps.py + s6-setuidgid abc python3 /app/calibre-web/cps.py