From c6f80bdd16bd9d27f47f0903a59d358d354233f0 Mon Sep 17 00:00:00 2001 From: Alexandre Date: Tue, 1 Nov 2022 18:58:37 +0100 Subject: [PATCH] Switch to 1.8.2 --- paperless_ngx/CHANGELOG.md | 32 +++++++++++++ paperless_ngx/Dockerfile | 45 +++++++++---------- paperless_ngx/build.json | 8 ++-- paperless_ngx/config.json | 5 ++- paperless_ngx/rootfs/entrypoint.sh | 27 +++++++++++ .../rootfs/etc/cont-init.d/20-folders.sh | 12 +---- .../rootfs/etc/cont-init.d/91-pikepdf.sh | 14 ------ .../rootfs/etc/cont-init.d/93-multiocr.sh | 16 ------- .../rootfs/etc/cont-init.d/99-run.sh | 7 +++ paperless_ngx/updater.json | 6 +-- 10 files changed, 99 insertions(+), 73 deletions(-) create mode 100644 paperless_ngx/rootfs/entrypoint.sh delete mode 100644 paperless_ngx/rootfs/etc/cont-init.d/91-pikepdf.sh delete mode 100644 paperless_ngx/rootfs/etc/cont-init.d/93-multiocr.sh diff --git a/paperless_ngx/CHANGELOG.md b/paperless_ngx/CHANGELOG.md index 06d8513bc..d059c291d 100644 --- a/paperless_ngx/CHANGELOG.md +++ b/paperless_ngx/CHANGELOG.md @@ -1,89 +1,121 @@ +## v1.8.2 (01-11-2022) + +- BACKUP BEFORE UPDATE : switch to paperless-ngx image. Please backup before switch. ## v1.8.0-ls30 (24-09-2022) + - Update to latest version from linuxserver/docker-paperless-ngx ## v1.8.0-ls29 (17-09-2022) + - Update to latest version from linuxserver/docker-paperless-ngx ## v1.8.0-ls28 (09-09-2022) + - Update to latest version from linuxserver/docker-paperless-ngx ## v1.8.0-ls27 (02-09-2022) + - Update to latest version from linuxserver/docker-paperless-ngx ## v1.8.0-ls26 (20-08-2022) + - Update to latest version from linuxserver/docker-paperless-ngx ## v1.8.0-ls25 (11-08-2022) + - Update to latest version from linuxserver/docker-paperless-ngx ## v1.7.1-ls24 (23-07-2022) + - Update to latest version from linuxserver/docker-paperless-ngx ## v1.7.1-ls23 (16-07-2022) + - Update to latest version from linuxserver/docker-paperless-ngx ## v1.7.1-ls22 (09-07-2022) + - Update to latest version from linuxserver/docker-paperless-ngx ## v1.7.1-ls21 (07-07-2022) + - Update to latest version from linuxserver/docker-paperless-ngx ## v1.7.1-ls20 (02-07-2022) + - Update to latest version from linuxserver/docker-paperless-ngx ## v1.7.1-ls19 (25-06-2022) + - Update to latest version from linuxserver/docker-paperless-ngx ## v1.7.1-ls18 (18-06-2022) + - Update to latest version from linuxserver/docker-paperless-ngx ## v1.7.1-ls17 (11-06-2022) + - Update to latest version from linuxserver/docker-paperless-ngx ## v1.7.1-ls16 (04-06-2022) + - Update to latest version from linuxserver/docker-paperless-ngx ## v1.7.1-ls15 (31-05-2022) + - Update to latest version from linuxserver/docker-paperless-ngx ## v1.7.1-ls14 (19-05-2022) + - Update to latest version from linuxserver/docker-paperless-ngx ## v1.7.1-ls13 (17-05-2022) + - Update to latest version from linuxserver/docker-paperless-ngx ## v1.7.1-ls12 (14-05-2022) + - Update to latest version from linuxserver/docker-paperless-ngx ## v1.7.1-ls10 (12-05-2022) + - Update to latest version from linuxserver/docker-paperless-ngx ## ngx-1.7.0-ls9 (10-05-2022) + - Update to latest version from linuxserver/docker-paperless-ngx ## ngx-1.7.0-ls8 (06-05-2022) + - Update to latest version from linuxserver/docker-paperless-ngx ## ngx-1.7.0-ls7 (01-05-2022) + - Update to latest version from linuxserver/docker-paperless-ngx ## ngx-1.7.0-ls6 (29-04-2022) + - Update to latest version from linuxserver/docker-paperless-ngx ## ngx-1.7.0-ls5 (27-04-2022) + - Update to latest version from linuxserver/docker-paperless-ngx ## ngx-1.6.0-ls4 (14-04-2022) + - Update to latest version from linuxserver/docker-paperless-ngx ## ngx-1.6.0-ls3 (09-04-2022) + - Update to latest version from linuxserver/docker-paperless-ngx ## ngx-1.6.0-ls2 (02-04-2022) + - Update to latest version from linuxserver/docker-paperless-ngx ## ngx-1.6.0-ls1 (28-03-2022) + - Update to latest version from linuxserver/docker-paperless-ngx - Major change : switch to paperless NGX - Add codenotary sign diff --git a/paperless_ngx/Dockerfile b/paperless_ngx/Dockerfile index 36b09797e..f83550779 100644 --- a/paperless_ngx/Dockerfile +++ b/paperless_ngx/Dockerfile @@ -27,25 +27,6 @@ ENV S6_CMD_WAIT_FOR_SERVICES=1 \ S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0 \ S6_SERVICES_GRACETIME=0 -# Global LSIO modifications -ARG CONFIGLOCATION="/config/addons_config/paperless_ng" -# hadolint ignore=SC2015, SC2013, SC2086 -RUN \ - # Avoid custom-init.d duplications - for file in $(grep -sril 'Potential tampering with custom' /etc/cont-init.d /etc/services.d /etc/s6-overlay/s6-rc.d); do rm -f $file; done \ - \ - # Create new config folder if needed - && for file in $(grep -srl "PUID" /etc/cont-init.d /etc/s6-overlay/s6-rc.d); do sed -i "1a mkdir -p $CONFIGLOCATION" $file; done \ - \ - # Allow UID and GID setting - && for file in $(grep -srl "PUID" /etc/cont-init.d /etc/s6-overlay/s6-rc.d); do sed -i 's/bash/bashio/g' $file && sed -i '1a PUID="$(if bashio::config.has_value "PUID"; then bashio::config "PUID"; else echo "0"; fi)"' $file && sed -i '1a PGID="$(if bashio::config.has_value "PGID"; then bashio::config "PGID"; else echo "0"; fi)"' $file; done \ - \ - # Correct config location - && for file in $(grep -Esril "/config[ '\"/]|/config\$" /etc /defaults); do sed -Ei "s=(/config)+(/| |$|\"|\')=$CONFIGLOCATION\2=g" $file; done \ - \ - # Avoid chmod /config - && for file in /etc/services.d/*/* /etc/cont-init.d/* /etc/s6-overlay/s6-rc.d/*/*;do if [ -f $files ] && [[ ! -z $(awk '/chown.*abc:abc.*\\/,/.*\/config( |$)/{print FILENAME}' $file) ]] ; then sed -i "s|/config$|/data|g" $file; fi ;done - ################## # 3 Install apps # ################## @@ -58,6 +39,24 @@ RUN if [ -d /etc/cont-init.d ]; then chmod -R 755 /etc/cont-init.d; fi && \ if [ -d /etc/services.d ]; then chmod -R 755 /etc/services.d; fi && \ if [ -f /entrypoint.sh ]; then chmod 755 /entrypoint.sh; fi +ENV \ + PAPERLESS_DATA_DIR=/config/addons_config/paperless_ng \ + PAPERLESS_MEDIA_ROOT=/config/addons_config/paperless_ng/media \ + PAPERLESS_CONSUMPTION_DIR=/config/addons_config/paperless_ng/consume + +# Modify image +RUN \ + sed -i 's|usr/bin/env bash|usr/bin/env bashio|g' /sbin/docker-entrypoint.sh && \ + # Run entrypoint + sed -i '2i /./entrypoint.sh' /sbin/docker-entrypoint.sh && \ + # Set variables + sed -i '2i bashio::log.info "Defining variables"' /sbin/docker-entrypoint.sh && \ + sed -i '2i if bashio::config.has_value "PUID"; then export USERMAP_UID=$(bashio::config "PUID"); fi' /sbin/docker-entrypoint.sh && \ + sed -i '2i if bashio::config.has_value "PGID"; then export USERMAP_GID=$(bashio::config "PGID"); fi' /sbin/docker-entrypoint.sh && \ + sed -i '2i if bashio::config.has_value "TZ"; then export PAPERLESS_TIME_ZONE=$(bashio::config "TZ"); fi' /sbin/docker-entrypoint.sh && \ + sed -i '2i if bashio::config.has_value "OCRLANG"; then export PAPERLESS_OCR_LANGUAGES=$(bashio::config "OCRLANG"); fi' /sbin/docker-entrypoint.sh && \ + sed -i '2i if bashio::config.has_value "PAPERLESS_OCR_MODE"; then export PAPERLESS_OCR_MODE=$(bashio::config "PAPERLESS_OCR_MODE"); fi' /sbin/docker-entrypoint.sh + # Modules ARG MODULES="00-banner.sh 92-local_mounts.sh 92-smb_mounts.sh 90-config_yaml.sh" @@ -70,9 +69,7 @@ RUN if ! command -v bash >/dev/null 2>/dev/null; then (apt-get update && apt-get && chmod -R 755 /etc/cont-init.d || printf '%s\n' "${MODULES}" >/MODULESFILE # Manual apps -ENV PACKAGES="yamllint \ - pip \ - libxml2-dev libxslt-dev python-dev libjpeg-dev zlib1g-dev python3-dev build-essential" +ENV PACKAGES="redis-server yamllint pip libxml2-dev libxslt-dev python-dev libjpeg-dev zlib1g-dev python3-dev build-essential" # Automatic apps & bashio # hadolint ignore=SC2015 @@ -88,10 +85,10 @@ RUN if ! command -v bash >/dev/null 2>/dev/null; then (apt-get update && apt-get # 4 Entrypoint # ################ -#RUN chmod 777 /entrypoint.sh +RUN chmod 777 /entrypoint.sh #WORKDIR / #ENTRYPOINT [ "/usr/bin/env" ] -#CMD [ "/entrypoint.sh" ] +#ENTRYPOINT [ "/entrypoint.sh" ] #SHELL ["/bin/bash", "-o", "pipefail", "-c"] ############ diff --git a/paperless_ngx/build.json b/paperless_ngx/build.json index aeed85df6..b8f9af604 100644 --- a/paperless_ngx/build.json +++ b/paperless_ngx/build.json @@ -1,10 +1,10 @@ { "build_from": { - "aarch64": "lscr.io/linuxserver/paperless-ngx:arm64v8-latest", - "amd64": "lscr.io/linuxserver/paperless-ngx:amd64-latest", - "armv7": "lscr.io/linuxserver/paperless-ngx:arm32v7-latest" + "aarch64": "ghcr.io/paperless-ngx/paperless-ngx:latest", + "amd64": "ghcr.io/paperless-ngx/paperless-ngx:latest", + "armv7": "ghcr.io/paperless-ngx/paperless-ngx:latest" }, "codenotary": { "signer": "alexandrep.github@gmail.com" } -} +} \ No newline at end of file diff --git a/paperless_ngx/config.json b/paperless_ngx/config.json index 5366823b8..ef56f1e06 100644 --- a/paperless_ngx/config.json +++ b/paperless_ngx/config.json @@ -74,6 +74,7 @@ "PGID": "int", "PUID": "int", "TZ": "str?", + "PAPERLESS_OCR_MODE": "list(skip|redo|force|skip_noarchive)?", "cifspassword": "str?", "cifsusername": "str?", "localdisks": "str?", @@ -81,6 +82,6 @@ }, "slug": "paperless_ng", "url": "https://github.com/alexbelgium/hassio-addons", - "version": "v1.8.0-ls30", + "version": "1.8.2", "webui": "[PROTO:ssl]://[HOST]:[PORT:8000]" -} +} \ No newline at end of file diff --git a/paperless_ngx/rootfs/entrypoint.sh b/paperless_ngx/rootfs/entrypoint.sh new file mode 100644 index 000000000..85d8a9212 --- /dev/null +++ b/paperless_ngx/rootfs/entrypoint.sh @@ -0,0 +1,27 @@ +#!/bin/bash +echo "Starting..." + +############################ +# Backup Dockerfile Script # +############################ + +if [ -f /etc/cont-init.d/00-aaa_dockerfile_backup.sh ]; then + chown "$(id -u)":"$(id -g)" /etc/cont-init.d/00-aaa_dockerfile_backup.sh + chmod +x /etc/cont-init.d/00-aaa_dockerfile_backup.sh + /./etc/cont-init.d/00-aaa_dockerfile_backup.sh + rm /etc/cont-init.d/00-aaa_dockerfile_backup.sh +fi + +#################### +# Starting scripts # +#################### + +for SCRIPTS in /etc/cont-init.d/*; do + [ -e "$SCRIPTS" ] || continue + echo "$SCRIPTS: executing" + chown "$(id -u)":"$(id -g)" "$SCRIPTS" + chmod a+x "$SCRIPTS" + # Change shebang if no s6 supervision + sed -i 's|/usr/bin/with-contenv bashio|/usr/bin/env bashio|g' "$SCRIPTS" + /."$SCRIPTS" || echo "$SCRIPTS: exiting $?" +done diff --git a/paperless_ngx/rootfs/etc/cont-init.d/20-folders.sh b/paperless_ngx/rootfs/etc/cont-init.d/20-folders.sh index bd2369978..4c55c4d46 100644 --- a/paperless_ngx/rootfs/etc/cont-init.d/20-folders.sh +++ b/paperless_ngx/rootfs/etc/cont-init.d/20-folders.sh @@ -4,16 +4,8 @@ slug=paperless_ng if [ ! -d /config/addons_config/$slug ]; then - - if [ -d /config/$slug ]; then - echo "Moving to new location /config/addons_config/$slug" - mkdir -p /config/addons_config/$slug - chmod 777 /config/addons_config/$slug - mv /config/$slug/* /config/addons_config/$slug/ - rm -r /config/$slug - fi - echo "Creating /config/addons_config/$slug" mkdir -p /config/addons_config/$slug - chmod 777 /config/addons_config/$slug fi + +chmod 777 /config/addons_config/$slug diff --git a/paperless_ngx/rootfs/etc/cont-init.d/91-pikepdf.sh b/paperless_ngx/rootfs/etc/cont-init.d/91-pikepdf.sh deleted file mode 100644 index bf7a9682b..000000000 --- a/paperless_ngx/rootfs/etc/cont-init.d/91-pikepdf.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/usr/bin/with-contenv bashio -# shellcheck shell=bash - -echo "Installing pikepdf..." -( - export DEBIAN_FRONTEND="noninteractive" - export TERM="xterm-256color" - apt-get update - apt-get install -yq libxml2-dev libxslt-dev python-dev - apt-get install -yq libjpeg-dev zlib1g-dev - apt-get install -yq python3-dev build-essential - pip install pikepdf --force-reinstall -) >/dev/null -echo "... success!" diff --git a/paperless_ngx/rootfs/etc/cont-init.d/93-multiocr.sh b/paperless_ngx/rootfs/etc/cont-init.d/93-multiocr.sh deleted file mode 100644 index 36578a964..000000000 --- a/paperless_ngx/rootfs/etc/cont-init.d/93-multiocr.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/usr/bin/with-contenv bashio -# shellcheck shell=bash - -OCRLANG=$(bashio::config 'OCRLANG') -if [ -n "$OCRLANG" ]; then - apt-get update &>/dev/null - echo "OCRLANG variable is set, processing the language packages" - for i in ${OCRLANG//,/ }; do - if apt-cache show tesseract-ocr-"${i}" >/dev/null 2>&1; then - apt-get install -yq tesseract-ocr-"${i}" - bashio::log.info "OCR Language installed : $i" || bashio::log.fatal "Couldn't install OCR lang $i. Please check its format is conform" - else - echo "package tesseract-ocr-${i} not found in the repository, skipping" - fi - done -fi diff --git a/paperless_ngx/rootfs/etc/cont-init.d/99-run.sh b/paperless_ngx/rootfs/etc/cont-init.d/99-run.sh index bccae88fc..1846c4d18 100644 --- a/paperless_ngx/rootfs/etc/cont-init.d/99-run.sh +++ b/paperless_ngx/rootfs/etc/cont-init.d/99-run.sh @@ -1,4 +1,11 @@ #!/usr/bin/with-contenv bashio # shellcheck shell=bash +# Staring redis +exec redis-server & bashio::log.info "Starting redis" + +# Avoid overcommit memory +bashio::log.info "Avoid overcommit memory" +sysctl vm.overcommit_memory=1 + bashio::log.info "Initial username and password are admin. Please change in the administration panel of the webUI after login." diff --git a/paperless_ngx/updater.json b/paperless_ngx/updater.json index c59829557..9324c8092 100644 --- a/paperless_ngx/updater.json +++ b/paperless_ngx/updater.json @@ -4,6 +4,6 @@ "repository": "alexbelgium/hassio-addons", "slug": "paperless_ngx", "source": "github", - "upstream_repo": "linuxserver/docker-paperless-ngx", - "upstream_version": "v1.8.0-ls30" -} + "upstream_repo": "paperless-ngx/paperless-ngx", + "upstream_version": "1.8.2" +} \ No newline at end of file