From edfffebcd2ed18d42f891f6f73a74299c7e371a8 Mon Sep 17 00:00:00 2001 From: Eric Nemchik Date: Sun, 15 Jan 2023 09:49:16 -0600 Subject: [PATCH 1/7] Format shell scripts --- root/etc/cont-init.d/30-config | 54 ++++++++++++++--------------- root/migrations/02-default-location | 3 +- 2 files changed, 28 insertions(+), 29 deletions(-) diff --git a/root/etc/cont-init.d/30-config b/root/etc/cont-init.d/30-config index 47700e7..1109a2a 100644 --- a/root/etc/cont-init.d/30-config +++ b/root/etc/cont-init.d/30-config @@ -1,4 +1,5 @@ #!/usr/bin/with-contenv bash +# shellcheck shell=bash if [ -d /app/www/public-tmp ]; then echo "New container detected. Setting up app folder and fixing permissions." @@ -24,7 +25,7 @@ sed -i \ -e "s#;*max_file_uploads =.*#max_file_uploads = ${PHP_MAX_FILE_UPLOAD}#i" \ -e "s#;*post_max_size =.*#post_max_size = ${USABLE_MAX_UPLOAD}M#i" \ -e "s#;*cgi.fix_pathinfo=.*#cgi.fix_pathinfo= 0#i" \ - /etc/php8/php.ini + /etc/php8/php.ini # copy config PREV_DIR=$(pwd) @@ -32,13 +33,12 @@ PREV_DIR=$(pwd) cd /defaults/upload || exit 1 shopt -s globstar nullglob shopt -s dotglob - for i in * - do - if [ ! -e "/data/projectsend/${i}" ] ; then +for i in *; do + if [ ! -e "/data/projectsend/${i}" ]; then cp -R "${i}" "/data/projectsend/${i}" chown abc:abc "/data/projectsend/${i}" - fi - done + fi +done shopt -u globstar nullglob shopt -u dotglob @@ -64,39 +64,37 @@ shopt -s globstar dotglob #check if there are newer translation files in the container and if so copy them to /config if [[ -d /config/translations/lang && ! -L /app/www/public/lang ]]; then - for file in /app/www/public/lang/* - do + for file in /app/www/public/lang/*; do if [ $(date -r "$file" +%s) -ge $(date -r "/config/translations/lang/$(echo $file | awk -F '/' '{print $(NF)}')" +%s) ]; then cp "$file" /config/translations/lang/ fi done fi # symlink translations -[[ -d /config/translations/lang && ! -L /app/www/public/lang ]] && rm -rf /app/www/public/lang -[[ ! -d /config/translations/lang && ! -L /app/www/public/lang ]] && mv /app/www/public/lang /config/translations/ -[[ -d /config/translations/lang && ! -L /app/www/public/lang ]] && ln -s /config/translations/lang /app/www/public/lang +[[ -d /config/translations/lang && ! -L /app/www/public/lang ]] && rm -rf /app/www/public/lang +[[ ! -d /config/translations/lang && ! -L /app/www/public/lang ]] && mv /app/www/public/lang /config/translations/ +[[ -d /config/translations/lang && ! -L /app/www/public/lang ]] && ln -s /config/translations/lang /app/www/public/lang -symlinks=( \ -/app/www/public/templates/default/lang \ -/app/www/public/templates/gallery/lang \ -/app/www/public/templates/pinboxes/lang \ +symlinks=( + /app/www/public/templates/default/lang + /app/www/public/templates/gallery/lang + /app/www/public/templates/pinboxes/lang ) for i in "${symlinks[@]}"; do -path=$(echo "$i" | awk -F '/' '{print $(NF-1)"/"$NF}') -#check if there are newer translation files in the container and if so copy them to /config -if [[ -d /config/translations/"$path" && ! -L "$i" ]]; then - for file in "$i"/* - do - if [ $(date -r "$file" +%s) -ge $(date -r "/config/translations/$(echo $i | awk -F '/' '{print $(NF-1)}')/$(echo $file | awk -F '/' '{print $(NF)}')" +%s) ]; then - cp "$file" "/config/translations/$(echo $i | awk -F '/' '{print $(NF-1)}')" + path=$(echo "$i" | awk -F '/' '{print $(NF-1)"/"$NF}') + #check if there are newer translation files in the container and if so copy them to /config + if [[ -d /config/translations/"$path" && ! -L "$i" ]]; then + for file in "$i"/*; do + if [ $(date -r "$file" +%s) -ge $(date -r "/config/translations/$(echo $i | awk -F '/' '{print $(NF-1)}')/$(echo $file | awk -F '/' '{print $(NF)}')" +%s) ]; then + cp "$file" "/config/translations/$(echo $i | awk -F '/' '{print $(NF-1)}')" + fi + done fi -done -fi -# symlink translations -[[ -d /config/translations/"$path" && ! -L "$i" ]] && rm -rf "$i" -[[ ! -d /config/translations/"$path" && ! -L "$i" ]] && mv "$i" /config/translations/"$(echo $i | awk -F '/' '{print $(NF-1)}')" -[[ -d /config/translations/"$path" && ! -L "$i" ]] && ln -s /config/translations/"$path" "$i" + # symlink translations + [[ -d /config/translations/"$path" && ! -L "$i" ]] && rm -rf "$i" + [[ ! -d /config/translations/"$path" && ! -L "$i" ]] && mv "$i" /config/translations/"$(echo $i | awk -F '/' '{print $(NF-1)}')" + [[ -d /config/translations/"$path" && ! -L "$i" ]] && ln -s /config/translations/"$path" "$i" done diff --git a/root/migrations/02-default-location b/root/migrations/02-default-location index 4b2195f..bf4edc6 100644 --- a/root/migrations/02-default-location +++ b/root/migrations/02-default-location @@ -1,10 +1,11 @@ #!/usr/bin/with-contenv bash +# shellcheck shell=bash DEFAULT_CONF="/config/nginx/site-confs/default.conf" OLD_ROOT="root /app/projectsend;" NEW_ROOT="root /app/www/public;" -if grep -q "${OLD_ROOT}" "${DEFAULT_CONF}";then +if grep -q "${OLD_ROOT}" "${DEFAULT_CONF}"; then echo "updating root in ${DEFAULT_CONF}" sed -i "s|${OLD_ROOT}|${NEW_ROOT}|" "${DEFAULT_CONF}" fi From bc56c7e475324ca982c279655f99fc3afb8c5cf1 Mon Sep 17 00:00:00 2001 From: Eric Nemchik Date: Sun, 15 Jan 2023 10:17:44 -0600 Subject: [PATCH 2/7] Format shell scripts --- root/etc/cont-init.d/30-config | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/root/etc/cont-init.d/30-config b/root/etc/cont-init.d/30-config index 1109a2a..e11b12f 100644 --- a/root/etc/cont-init.d/30-config +++ b/root/etc/cont-init.d/30-config @@ -92,9 +92,15 @@ for i in "${symlinks[@]}"; do done fi # symlink translations - [[ -d /config/translations/"$path" && ! -L "$i" ]] && rm -rf "$i" - [[ ! -d /config/translations/"$path" && ! -L "$i" ]] && mv "$i" /config/translations/"$(echo $i | awk -F '/' '{print $(NF-1)}')" - [[ -d /config/translations/"$path" && ! -L "$i" ]] && ln -s /config/translations/"$path" "$i" + if [[ -d /config/translations/"$path" && ! -L "$i" ]]; then + rm -rf "$i" + fi + if [[ ! -d /config/translations/"$path" && ! -L "$i" ]]; then + mv "$i" /config/translations/"$(echo $i | awk -F '/' '{print $(NF-1)}')" + fi + if [[ -d /config/translations/"$path" && ! -L "$i" ]]; then + ln -s /config/translations/"$path" "$i" + fi done From c64c8b6a91dc0141dee732c8738f5a74d0f6ed1d Mon Sep 17 00:00:00 2001 From: Eric Nemchik Date: Sun, 15 Jan 2023 10:37:59 -0600 Subject: [PATCH 3/7] Rebasing to alpine 3.17 --- Dockerfile | 61 +++++++++---------- Dockerfile.aarch64 | 61 +++++++++---------- Dockerfile.armhf | 61 +++++++++---------- readme-vars.yml | 1 + .../dependencies.d/init-config | 0 .../s6-rc.d/init-projectsend-config/run} | 8 +-- .../s6-rc.d/init-projectsend-config/type | 1 + .../s6-rc.d/init-projectsend-config/up | 1 + .../user/contents.d/init-projectsend-config | 0 9 files changed, 97 insertions(+), 97 deletions(-) create mode 100644 root/etc/s6-overlay/s6-rc.d/init-projectsend-config/dependencies.d/init-config rename root/etc/{cont-init.d/30-config => s6-overlay/s6-rc.d/init-projectsend-config/run} (97%) mode change 100644 => 100755 create mode 100644 root/etc/s6-overlay/s6-rc.d/init-projectsend-config/type create mode 100644 root/etc/s6-overlay/s6-rc.d/init-projectsend-config/up create mode 100644 root/etc/s6-overlay/s6-rc.d/user/contents.d/init-projectsend-config diff --git a/Dockerfile b/Dockerfile index 67c9c8a..9a091dc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,6 @@ -FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.15 +# syntax=docker/dockerfile:1 + +FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.17 # set version label ARG BUILD_DATE @@ -10,41 +12,38 @@ LABEL maintainer="TheSpad" RUN \ echo "**** install runtime packages ****" && \ apk add -U --upgrade --no-cache \ - curl \ - php8-bcmath \ - php8-bz2 \ - php8-cli \ - php8-ctype \ - php8-curl \ - php8-dom \ - php8-fileinfo \ - php8-gd \ - php8-gettext \ - php8-gmp \ - php8-iconv \ - php8-json \ - php8-mbstring \ - php8-mysqli \ - php8-openssl \ - php8-pdo \ - php8-pdo_dblib \ - php8-pdo_mysql \ - php8-pecl-apcu \ - php8-pecl-mcrypt \ - php8-pecl-memcached \ - php8-phar \ - php8-soap \ - php8-xmlreader \ - php8-zip \ - unzip && \ + php81-bcmath \ + php81-bz2 \ + php81-cli \ + php81-ctype \ + php81-curl \ + php81-dom \ + php81-fileinfo \ + php81-gd \ + php81-gettext \ + php81-gmp \ + php81-iconv \ + php81-json \ + php81-mbstring \ + php81-mysqli \ + php81-openssl \ + php81-pdo \ + php81-pdo_dblib \ + php81-pdo_mysql \ + php81-pecl-apcu \ + php81-pecl-mcrypt \ + php81-pecl-memcached \ + php81-phar \ + php81-soap \ + php81-xmlreader \ + php81-zip && \ apk add --no-cache \ --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing \ - php8-pecl-xmlrpc && \ + php81-pecl-xmlrpc && \ echo "**** install projectsend ****" && \ mkdir -p /app/www/public && \ if [ -z ${PROJECTSEND_VERSION+x} ]; then \ - PROJECTSEND_VERSION=$(curl -sX GET "https://api.github.com/repos/projectsend/projectsend/releases/latest" \ - | awk '/tag_name/{print $4;exit}' FS='[""]'); \ + PROJECTSEND_VERSION=$(curl -s https://api.github.com/repos/projectsend/projectsend/releases/latest | jq -r '. | .tag_name'); \ fi && \ curl -s -o \ /tmp/projectsend.zip -L \ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 46cdd5c..08485f9 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -1,4 +1,6 @@ -FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.15 +# syntax=docker/dockerfile:1 + +FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.17 # set version label ARG BUILD_DATE @@ -10,41 +12,38 @@ LABEL maintainer="TheSpad" RUN \ echo "**** install runtime packages ****" && \ apk add -U --upgrade --no-cache \ - curl \ - php8-bcmath \ - php8-bz2 \ - php8-cli \ - php8-ctype \ - php8-curl \ - php8-dom \ - php8-fileinfo \ - php8-gd \ - php8-gettext \ - php8-gmp \ - php8-iconv \ - php8-json \ - php8-mbstring \ - php8-mysqli \ - php8-openssl \ - php8-pdo \ - php8-pdo_dblib \ - php8-pdo_mysql \ - php8-pecl-apcu \ - php8-pecl-mcrypt \ - php8-pecl-memcached \ - php8-phar \ - php8-soap \ - php8-xmlreader \ - php8-zip \ - unzip && \ + php81-bcmath \ + php81-bz2 \ + php81-cli \ + php81-ctype \ + php81-curl \ + php81-dom \ + php81-fileinfo \ + php81-gd \ + php81-gettext \ + php81-gmp \ + php81-iconv \ + php81-json \ + php81-mbstring \ + php81-mysqli \ + php81-openssl \ + php81-pdo \ + php81-pdo_dblib \ + php81-pdo_mysql \ + php81-pecl-apcu \ + php81-pecl-mcrypt \ + php81-pecl-memcached \ + php81-phar \ + php81-soap \ + php81-xmlreader \ + php81-zip && \ apk add --no-cache \ --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing \ - php8-pecl-xmlrpc && \ + php81-pecl-xmlrpc && \ echo "**** install projectsend ****" && \ mkdir -p /app/www/public && \ if [ -z ${PROJECTSEND_VERSION+x} ]; then \ - PROJECTSEND_VERSION=$(curl -sX GET "https://api.github.com/repos/projectsend/projectsend/releases/latest" \ - | awk '/tag_name/{print $4;exit}' FS='[""]'); \ + PROJECTSEND_VERSION=$(curl -s https://api.github.com/repos/projectsend/projectsend/releases/latest | jq -r '. | .tag_name'); \ fi && \ curl -s -o \ /tmp/projectsend.zip -L \ diff --git a/Dockerfile.armhf b/Dockerfile.armhf index dd9449c..a617cee 100644 --- a/Dockerfile.armhf +++ b/Dockerfile.armhf @@ -1,4 +1,6 @@ -FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm32v7-3.15 +# syntax=docker/dockerfile:1 + +FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm32v7-3.17 # set version label ARG BUILD_DATE @@ -10,41 +12,38 @@ LABEL maintainer="TheSpad" RUN \ echo "**** install runtime packages ****" && \ apk add -U --upgrade --no-cache \ - curl \ - php8-bcmath \ - php8-bz2 \ - php8-cli \ - php8-ctype \ - php8-curl \ - php8-dom \ - php8-fileinfo \ - php8-gd \ - php8-gettext \ - php8-gmp \ - php8-iconv \ - php8-json \ - php8-mbstring \ - php8-mysqli \ - php8-openssl \ - php8-pdo \ - php8-pdo_dblib \ - php8-pdo_mysql \ - php8-pecl-apcu \ - php8-pecl-mcrypt \ - php8-pecl-memcached \ - php8-phar \ - php8-soap \ - php8-xmlreader \ - php8-zip \ - unzip && \ + php81-bcmath \ + php81-bz2 \ + php81-cli \ + php81-ctype \ + php81-curl \ + php81-dom \ + php81-fileinfo \ + php81-gd \ + php81-gettext \ + php81-gmp \ + php81-iconv \ + php81-json \ + php81-mbstring \ + php81-mysqli \ + php81-openssl \ + php81-pdo \ + php81-pdo_dblib \ + php81-pdo_mysql \ + php81-pecl-apcu \ + php81-pecl-mcrypt \ + php81-pecl-memcached \ + php81-phar \ + php81-soap \ + php81-xmlreader \ + php81-zip && \ apk add --no-cache \ --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing \ - php8-pecl-xmlrpc && \ + php81-pecl-xmlrpc && \ echo "**** install projectsend ****" && \ mkdir -p /app/www/public && \ if [ -z ${PROJECTSEND_VERSION+x} ]; then \ - PROJECTSEND_VERSION=$(curl -sX GET "https://api.github.com/repos/projectsend/projectsend/releases/latest" \ - | awk '/tag_name/{print $4;exit}' FS='[""]'); \ + PROJECTSEND_VERSION=$(curl -s https://api.github.com/repos/projectsend/projectsend/releases/latest | jq -r '. | .tag_name'); \ fi && \ curl -s -o \ /tmp/projectsend.zip -L \ diff --git a/readme-vars.yml b/readme-vars.yml index e9b7f4b..8b9e60e 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -56,6 +56,7 @@ app_setup_block: | # changelog changelogs: + - { date: "15.01.23:", desc: "Rebasing to alpine 3.17." } - { date: "23.08.22:", desc: "Add translation support"} - { date: "20.08.22:", desc: "Rebasing to alpine 3.15 with php8. Restructure nginx configs ([see changes announcement](https://info.linuxserver.io/issues/2022-08-20-nginx-base))." } - { date: "24.06.21:", desc: "Rebasing to alpine 3.14, switch to nginx"} diff --git a/root/etc/s6-overlay/s6-rc.d/init-projectsend-config/dependencies.d/init-config b/root/etc/s6-overlay/s6-rc.d/init-projectsend-config/dependencies.d/init-config new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/cont-init.d/30-config b/root/etc/s6-overlay/s6-rc.d/init-projectsend-config/run old mode 100644 new mode 100755 similarity index 97% rename from root/etc/cont-init.d/30-config rename to root/etc/s6-overlay/s6-rc.d/init-projectsend-config/run index e11b12f..b4c6667 --- a/root/etc/cont-init.d/30-config +++ b/root/etc/s6-overlay/s6-rc.d/init-projectsend-config/run @@ -4,7 +4,7 @@ if [ -d /app/www/public-tmp ]; then echo "New container detected. Setting up app folder and fixing permissions." mv /app/www/public-tmp /app/www/public - chown -R abc:abc /app + lsiown -R abc:abc /app fi # set default values for variables @@ -36,7 +36,7 @@ shopt -s dotglob for i in *; do if [ ! -e "/data/projectsend/${i}" ]; then cp -R "${i}" "/data/projectsend/${i}" - chown abc:abc "/data/projectsend/${i}" + lsiown abc:abc "/data/projectsend/${i}" fi done @@ -108,7 +108,7 @@ shopt -u globstar dotglob # permissions echo "Fixing app data permissions." -chown abc:abc \ +lsiown abc:abc \ /data/projectsend -chown -R abc:abc \ +lsiown -R abc:abc \ /config diff --git a/root/etc/s6-overlay/s6-rc.d/init-projectsend-config/type b/root/etc/s6-overlay/s6-rc.d/init-projectsend-config/type new file mode 100644 index 0000000..bdd22a1 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-projectsend-config/type @@ -0,0 +1 @@ +oneshot diff --git a/root/etc/s6-overlay/s6-rc.d/init-projectsend-config/up b/root/etc/s6-overlay/s6-rc.d/init-projectsend-config/up new file mode 100644 index 0000000..1183f28 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-projectsend-config/up @@ -0,0 +1 @@ +/etc/s6-overlay/s6-rc.d/init-projectsend-config/run diff --git a/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-projectsend-config b/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-projectsend-config new file mode 100644 index 0000000..e69de29 From 52d01520a7064bb98cfcd1e5107d4a80fb25eafa Mon Sep 17 00:00:00 2001 From: Eric Nemchik Date: Sun, 15 Jan 2023 10:44:54 -0600 Subject: [PATCH 4/7] Remove mcrypt --- Dockerfile | 1 - Dockerfile.aarch64 | 1 - Dockerfile.armhf | 1 - 3 files changed, 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 9a091dc..582a00c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -31,7 +31,6 @@ RUN \ php81-pdo_dblib \ php81-pdo_mysql \ php81-pecl-apcu \ - php81-pecl-mcrypt \ php81-pecl-memcached \ php81-phar \ php81-soap \ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 08485f9..7e91202 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -31,7 +31,6 @@ RUN \ php81-pdo_dblib \ php81-pdo_mysql \ php81-pecl-apcu \ - php81-pecl-mcrypt \ php81-pecl-memcached \ php81-phar \ php81-soap \ diff --git a/Dockerfile.armhf b/Dockerfile.armhf index a617cee..5c1e694 100644 --- a/Dockerfile.armhf +++ b/Dockerfile.armhf @@ -31,7 +31,6 @@ RUN \ php81-pdo_dblib \ php81-pdo_mysql \ php81-pecl-apcu \ - php81-pecl-mcrypt \ php81-pecl-memcached \ php81-phar \ php81-soap \ From 5a673968bcb3a6870812b42c746513d9056284f2 Mon Sep 17 00:00:00 2001 From: Eric Nemchik Date: Thu, 19 Jan 2023 20:13:11 -0600 Subject: [PATCH 5/7] Fix php.ini path --- root/etc/s6-overlay/s6-rc.d/init-projectsend-config/run | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/root/etc/s6-overlay/s6-rc.d/init-projectsend-config/run b/root/etc/s6-overlay/s6-rc.d/init-projectsend-config/run index b4c6667..4fab6d8 100755 --- a/root/etc/s6-overlay/s6-rc.d/init-projectsend-config/run +++ b/root/etc/s6-overlay/s6-rc.d/init-projectsend-config/run @@ -25,7 +25,7 @@ sed -i \ -e "s#;*max_file_uploads =.*#max_file_uploads = ${PHP_MAX_FILE_UPLOAD}#i" \ -e "s#;*post_max_size =.*#post_max_size = ${USABLE_MAX_UPLOAD}M#i" \ -e "s#;*cgi.fix_pathinfo=.*#cgi.fix_pathinfo= 0#i" \ - /etc/php8/php.ini + /etc/php81/php.ini # copy config PREV_DIR=$(pwd) @@ -107,8 +107,7 @@ done shopt -u globstar dotglob # permissions -echo "Fixing app data permissions." -lsiown abc:abc \ - /data/projectsend lsiown -R abc:abc \ /config +lsiown abc:abc \ + /data/projectsend From 918ec2019f083172babf62f64fb62a87a38b7b7d Mon Sep 17 00:00:00 2001 From: aptalca <541623+aptalca@users.noreply.github.com> Date: Wed, 8 Mar 2023 12:05:28 -0500 Subject: [PATCH 6/7] fall back to misnamed artifact base migration on conf existence various init and template updates --- .editorconfig | 2 +- .github/workflows/call_invalid_helper.yml | 12 ++++ .github/workflows/greetings.yml | 2 +- .github/workflows/permissions.yml | 9 +++ Dockerfile | 8 ++- Dockerfile.aarch64 | 8 ++- Dockerfile.armhf | 8 ++- Jenkinsfile | 72 ++++++++----------- README.md | 10 +-- readme-vars.yml | 2 +- .../dependencies.d/init-projectsend-config} | 0 .../dependencies.d/init-nginx-end | 0 .../s6-rc.d/init-projectsend-config/run | 14 ++-- root/migrations/02-default-location | 2 +- 14 files changed, 90 insertions(+), 59 deletions(-) create mode 100644 .github/workflows/call_invalid_helper.yml create mode 100644 .github/workflows/permissions.yml rename root/etc/s6-overlay/s6-rc.d/{init-projectsend-config/dependencies.d/init-config => init-config-end/dependencies.d/init-projectsend-config} (100%) create mode 100644 root/etc/s6-overlay/s6-rc.d/init-projectsend-config/dependencies.d/init-nginx-end diff --git a/.editorconfig b/.editorconfig index a92f7df..5f150f3 100755 --- a/.editorconfig +++ b/.editorconfig @@ -15,6 +15,6 @@ trim_trailing_whitespace = false indent_style = space indent_size = 2 -[{**.sh,root/etc/cont-init.d/**,root/etc/services.d/**}] +[{**.sh,root/etc/s6-overlay/s6-rc.d/**,root/etc/cont-init.d/**,root/etc/services.d/**}] indent_style = space indent_size = 4 diff --git a/.github/workflows/call_invalid_helper.yml b/.github/workflows/call_invalid_helper.yml new file mode 100644 index 0000000..773767c --- /dev/null +++ b/.github/workflows/call_invalid_helper.yml @@ -0,0 +1,12 @@ +name: Comment on invalid interaction +on: + issues: + types: + - labeled +jobs: + add-comment-on-invalid: + if: github.event.label.name == 'invalid' + permissions: + issues: write + uses: linuxserver/github-workflows/.github/workflows/invalid-interaction-helper.yml@v1 + secrets: inherit diff --git a/.github/workflows/greetings.yml b/.github/workflows/greetings.yml index 9832d77..ba0a9b2 100755 --- a/.github/workflows/greetings.yml +++ b/.github/workflows/greetings.yml @@ -8,6 +8,6 @@ jobs: steps: - uses: actions/first-interaction@v1 with: - issue-message: 'Thanks for opening your first issue here! Be sure to follow the [bug](https://github.com/linuxserver/docker-projectsend/blob/master/.github/ISSUE_TEMPLATE/issue.bug.yml) or [feature](https://github.com/linuxserver/docker-projectsend/blob/master/.github/ISSUE_TEMPLATE/issue.feature.yml) issue templates!' + issue-message: 'Thanks for opening your first issue here! Be sure to follow the relevant issue templates, or risk having this issue marked as invalid.' pr-message: 'Thanks for opening this pull request! Be sure to follow the [pull request template](https://github.com/linuxserver/docker-projectsend/blob/master/.github/PULL_REQUEST_TEMPLATE.md)!' repo-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/permissions.yml b/.github/workflows/permissions.yml new file mode 100644 index 0000000..2df6b61 --- /dev/null +++ b/.github/workflows/permissions.yml @@ -0,0 +1,9 @@ +name: Permission check +on: + pull_request: + paths: + - '**/run' + - '**/finish' +jobs: + permission_check: + uses: linuxserver/github-workflows/.github/workflows/init-svc-executable-permissions.yml@v1 diff --git a/Dockerfile b/Dockerfile index 582a00c..a0ae7ad 100644 --- a/Dockerfile +++ b/Dockerfile @@ -38,15 +38,19 @@ RUN \ php81-zip && \ apk add --no-cache \ --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing \ + php81-pecl-mcrypt \ php81-pecl-xmlrpc && \ echo "**** install projectsend ****" && \ mkdir -p /app/www/public && \ if [ -z ${PROJECTSEND_VERSION+x} ]; then \ PROJECTSEND_VERSION=$(curl -s https://api.github.com/repos/projectsend/projectsend/releases/latest | jq -r '. | .tag_name'); \ fi && \ - curl -s -o \ + curl -fso \ /tmp/projectsend.zip -L \ - "https://github.com/projectsend/projectsend/releases/download/${PROJECTSEND_VERSION}/projectsend-${PROJECTSEND_VERSION}.zip" && \ + "https://github.com/projectsend/projectsend/releases/download/${PROJECTSEND_VERSION}/projectsend-${PROJECTSEND_VERSION}.zip" || \ + curl -fso \ + /tmp/projectsend.zip -L \ + "https://github.com/projectsend/projectsend/releases/download/${PROJECTSEND_VERSION}/projectsend.zip" && \ unzip \ /tmp/projectsend.zip -d \ /app/www/public && \ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 7e91202..e4b166b 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -38,15 +38,19 @@ RUN \ php81-zip && \ apk add --no-cache \ --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing \ + php81-pecl-mcrypt \ php81-pecl-xmlrpc && \ echo "**** install projectsend ****" && \ mkdir -p /app/www/public && \ if [ -z ${PROJECTSEND_VERSION+x} ]; then \ PROJECTSEND_VERSION=$(curl -s https://api.github.com/repos/projectsend/projectsend/releases/latest | jq -r '. | .tag_name'); \ fi && \ - curl -s -o \ + curl -fso \ /tmp/projectsend.zip -L \ - "https://github.com/projectsend/projectsend/releases/download/${PROJECTSEND_VERSION}/projectsend-${PROJECTSEND_VERSION}.zip" && \ + "https://github.com/projectsend/projectsend/releases/download/${PROJECTSEND_VERSION}/projectsend-${PROJECTSEND_VERSION}.zip" || \ + curl -fso \ + /tmp/projectsend.zip -L \ + "https://github.com/projectsend/projectsend/releases/download/${PROJECTSEND_VERSION}/projectsend.zip" && \ unzip \ /tmp/projectsend.zip -d \ /app/www/public && \ diff --git a/Dockerfile.armhf b/Dockerfile.armhf index 5c1e694..83435f1 100644 --- a/Dockerfile.armhf +++ b/Dockerfile.armhf @@ -38,15 +38,19 @@ RUN \ php81-zip && \ apk add --no-cache \ --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing \ + php81-pecl-mcrypt \ php81-pecl-xmlrpc && \ echo "**** install projectsend ****" && \ mkdir -p /app/www/public && \ if [ -z ${PROJECTSEND_VERSION+x} ]; then \ PROJECTSEND_VERSION=$(curl -s https://api.github.com/repos/projectsend/projectsend/releases/latest | jq -r '. | .tag_name'); \ fi && \ - curl -s -o \ + curl -fso \ /tmp/projectsend.zip -L \ - "https://github.com/projectsend/projectsend/releases/download/${PROJECTSEND_VERSION}/projectsend-${PROJECTSEND_VERSION}.zip" && \ + "https://github.com/projectsend/projectsend/releases/download/${PROJECTSEND_VERSION}/projectsend-${PROJECTSEND_VERSION}.zip" || \ + curl -fso \ + /tmp/projectsend.zip -L \ + "https://github.com/projectsend/projectsend/releases/download/${PROJECTSEND_VERSION}/projectsend.zip" && \ unzip \ /tmp/projectsend.zip -d \ /app/www/public && \ diff --git a/Jenkinsfile b/Jenkinsfile index 59dd1df..f8c6a23 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -59,7 +59,7 @@ pipeline { env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/commit/' + env.GIT_COMMIT env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DOCKERHUB_IMAGE + '/tags/' env.PULL_REQUEST = env.CHANGE_ID - env.TEMPLATED_FILES = 'Jenkinsfile README.md LICENSE .editorconfig ./.github/CONTRIBUTING.md ./.github/FUNDING.yml ./.github/ISSUE_TEMPLATE/config.yml ./.github/ISSUE_TEMPLATE/issue.bug.yml ./.github/ISSUE_TEMPLATE/issue.feature.yml ./.github/PULL_REQUEST_TEMPLATE.md ./.github/workflows/external_trigger_scheduler.yml ./.github/workflows/greetings.yml ./.github/workflows/package_trigger_scheduler.yml ./.github/workflows/stale.yml ./.github/workflows/external_trigger.yml ./.github/workflows/package_trigger.yml' + env.TEMPLATED_FILES = 'Jenkinsfile README.md LICENSE .editorconfig ./.github/CONTRIBUTING.md ./.github/FUNDING.yml ./.github/ISSUE_TEMPLATE/config.yml ./.github/ISSUE_TEMPLATE/issue.bug.yml ./.github/ISSUE_TEMPLATE/issue.feature.yml ./.github/PULL_REQUEST_TEMPLATE.md ./.github/workflows/external_trigger_scheduler.yml ./.github/workflows/greetings.yml ./.github/workflows/package_trigger_scheduler.yml ./.github/workflows/stale.yml ./.github/workflows/call_invalid_helper.yml ./.github/workflows/permissions.yml ./.github/workflows/external_trigger.yml ./.github/workflows/package_trigger.yml' } script{ env.LS_RELEASE_NUMBER = sh( @@ -452,7 +452,8 @@ pipeline { } steps { echo "Running on node: ${NODE_NAME}" - sh "docker build \ + sh "sed -r -i 's|(^FROM .*)|\\1\\n\\nENV LSIO_FIRST_PARTY=true|g' Dockerfile" + sh "docker buildx build \ --label \"org.opencontainers.image.created=${GITHUB_DATE}\" \ --label \"org.opencontainers.image.authors=linuxserver.io\" \ --label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-projectsend/packages\" \ @@ -465,7 +466,7 @@ pipeline { --label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \ --label \"org.opencontainers.image.title=Projectsend\" \ --label \"org.opencontainers.image.description=[Projectsend](http://www.projectsend.org) is a self-hosted application that lets you upload files and assign them to specific clients that you create yourself. Secure, private and easy. No more depending on external services or e-mail to send those files.\" \ - --no-cache --pull -t ${IMAGE}:${META_TAG} \ + --no-cache --pull -t ${IMAGE}:${META_TAG} --platform=linux/amd64 \ --build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." } } @@ -482,7 +483,8 @@ pipeline { stage('Build X86') { steps { echo "Running on node: ${NODE_NAME}" - sh "docker build \ + sh "sed -r -i 's|(^FROM .*)|\\1\\n\\nENV LSIO_FIRST_PARTY=true|g' Dockerfile" + sh "docker buildx build \ --label \"org.opencontainers.image.created=${GITHUB_DATE}\" \ --label \"org.opencontainers.image.authors=linuxserver.io\" \ --label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-projectsend/packages\" \ @@ -495,7 +497,7 @@ pipeline { --label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \ --label \"org.opencontainers.image.title=Projectsend\" \ --label \"org.opencontainers.image.description=[Projectsend](http://www.projectsend.org) is a self-hosted application that lets you upload files and assign them to specific clients that you create yourself. Secure, private and easy. No more depending on external services or e-mail to send those files.\" \ - --no-cache --pull -t ${IMAGE}:amd64-${META_TAG} \ + --no-cache --pull -t ${IMAGE}:amd64-${META_TAG} --platform=linux/amd64 \ --build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." } } @@ -509,7 +511,8 @@ pipeline { sh '''#! /bin/bash echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin ''' - sh "docker build \ + sh "sed -r -i 's|(^FROM .*)|\\1\\n\\nENV LSIO_FIRST_PARTY=true|g' Dockerfile.armhf" + sh "docker buildx build \ --label \"org.opencontainers.image.created=${GITHUB_DATE}\" \ --label \"org.opencontainers.image.authors=linuxserver.io\" \ --label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-projectsend/packages\" \ @@ -522,7 +525,7 @@ pipeline { --label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \ --label \"org.opencontainers.image.title=Projectsend\" \ --label \"org.opencontainers.image.description=[Projectsend](http://www.projectsend.org) is a self-hosted application that lets you upload files and assign them to specific clients that you create yourself. Secure, private and easy. No more depending on external services or e-mail to send those files.\" \ - --no-cache --pull -f Dockerfile.armhf -t ${IMAGE}:arm32v7-${META_TAG} \ + --no-cache --pull -f Dockerfile.armhf -t ${IMAGE}:arm32v7-${META_TAG} --platform=linux/arm/v7 \ --build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." sh "docker tag ${IMAGE}:arm32v7-${META_TAG} ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}" retry(5) { @@ -543,7 +546,8 @@ pipeline { sh '''#! /bin/bash echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin ''' - sh "docker build \ + sh "sed -r -i 's|(^FROM .*)|\\1\\n\\nENV LSIO_FIRST_PARTY=true|g' Dockerfile.aarch64" + sh "docker buildx build \ --label \"org.opencontainers.image.created=${GITHUB_DATE}\" \ --label \"org.opencontainers.image.authors=linuxserver.io\" \ --label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-projectsend/packages\" \ @@ -556,7 +560,7 @@ pipeline { --label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \ --label \"org.opencontainers.image.title=Projectsend\" \ --label \"org.opencontainers.image.description=[Projectsend](http://www.projectsend.org) is a self-hosted application that lets you upload files and assign them to specific clients that you create yourself. Secure, private and easy. No more depending on external services or e-mail to send those files.\" \ - --no-cache --pull -f Dockerfile.aarch64 -t ${IMAGE}:arm64v8-${META_TAG} \ + --no-cache --pull -f Dockerfile.aarch64 -t ${IMAGE}:arm64v8-${META_TAG} --platform=linux/arm64 \ --build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." sh "docker tag ${IMAGE}:arm64v8-${META_TAG} ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}" retry(5) { @@ -585,26 +589,12 @@ pipeline { else LOCAL_CONTAINER=${IMAGE}:${META_TAG} fi - if [ "${DIST_IMAGE}" == "alpine" ]; then - docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\ - apk info -v > /tmp/package_versions.txt && \ - sort -o /tmp/package_versions.txt /tmp/package_versions.txt && \ - chmod 777 /tmp/package_versions.txt' - elif [ "${DIST_IMAGE}" == "ubuntu" ]; then - docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\ - apt list -qq --installed | sed "s#/.*now ##g" | cut -d" " -f1 > /tmp/package_versions.txt && \ - sort -o /tmp/package_versions.txt /tmp/package_versions.txt && \ - chmod 777 /tmp/package_versions.txt' - elif [ "${DIST_IMAGE}" == "fedora" ]; then - docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\ - rpm -qa > /tmp/package_versions.txt && \ - sort -o /tmp/package_versions.txt /tmp/package_versions.txt && \ - chmod 777 /tmp/package_versions.txt' - elif [ "${DIST_IMAGE}" == "arch" ]; then - docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\ - pacman -Q > /tmp/package_versions.txt && \ - chmod 777 /tmp/package_versions.txt' - fi + touch ${TEMPDIR}/package_versions.txt + docker run --rm \ + -v /var/run/docker.sock:/var/run/docker.sock:ro \ + -v ${TEMPDIR}:/tmp \ + ghcr.io/anchore/syft:latest \ + ${LOCAL_CONTAINER} -o table=/tmp/package_versions.txt NEW_PACKAGE_TAG=$(md5sum ${TEMPDIR}/package_versions.txt | cut -c1-8 ) echo "Package tag sha from current packages in buit container is ${NEW_PACKAGE_TAG} comparing to old ${PACKAGE_TAG} from github" if [ "${NEW_PACKAGE_TAG}" != "${PACKAGE_TAG}" ]; then @@ -815,19 +805,19 @@ pipeline { echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin if [ "${CI}" == "false" ]; then docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} - docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG} + docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG} fi for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do docker tag ${IMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} - docker tag ${IMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} - docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-latest - docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-latest - docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-latest docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} + docker tag ${IMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} + docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-latest docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} + docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} + docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-latest docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} if [ -n "${SEMVER}" ]; then docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${SEMVER} @@ -835,13 +825,13 @@ pipeline { docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${SEMVER} fi docker push ${MANIFESTIMAGE}:amd64-${META_TAG} - docker push ${MANIFESTIMAGE}:arm32v7-${META_TAG} - docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG} - docker push ${MANIFESTIMAGE}:amd64-latest - docker push ${MANIFESTIMAGE}:arm32v7-latest - docker push ${MANIFESTIMAGE}:arm64v8-latest docker push ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} + docker push ${MANIFESTIMAGE}:amd64-latest + docker push ${MANIFESTIMAGE}:arm32v7-${META_TAG} + docker push ${MANIFESTIMAGE}:arm32v7-latest docker push ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} + docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG} + docker push ${MANIFESTIMAGE}:arm64v8-latest docker push ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} if [ -n "${SEMVER}" ]; then docker push ${MANIFESTIMAGE}:amd64-${SEMVER} @@ -987,12 +977,12 @@ pipeline { sh 'echo "build aborted"' } else if (currentBuild.currentResult == "SUCCESS"){ - sh ''' curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://wiki.jenkins-ci.org/download/attachments/2916393/headshot.png","embeds": [{"color": 1681177,\ + sh ''' curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/jenkins-avatar.png","embeds": [{"color": 1681177,\ "description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_URL}'\\n**ShellCheck Results:** '${SHELLCHECK_URL}'\\n**Status:** Success\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\ "username": "Jenkins"}' ${BUILDS_DISCORD} ''' } else { - sh ''' curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://wiki.jenkins-ci.org/download/attachments/2916393/headshot.png","embeds": [{"color": 16711680,\ + sh ''' curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/jenkins-avatar.png","embeds": [{"color": 16711680,\ "description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_URL}'\\n**ShellCheck Results:** '${SHELLCHECK_URL}'\\n**Status:** failure\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\ "username": "Jenkins"}' ${BUILDS_DISCORD} ''' } diff --git a/README.md b/README.md index d009bfb..4dd96b3 100644 --- a/README.md +++ b/README.md @@ -56,7 +56,7 @@ The architectures supported by this image are: | :----: | :----: | ---- | | x86-64 | ✅ | amd64-\ | | arm64 | ✅ | arm64v8-\ | -| armhf| ✅ | arm32v7-\ | +| armhf | ✅ | arm32v7-\ | ## Application Setup @@ -84,7 +84,7 @@ services: environment: - PUID=1000 - PGID=1000 - - TZ=Europe/London + - TZ=Etc/UTC - MAX_UPLOAD=5000 volumes: - :/config @@ -101,13 +101,14 @@ docker run -d \ --name=projectsend \ -e PUID=1000 \ -e PGID=1000 \ - -e TZ=Europe/London \ + -e TZ=Etc/UTC \ -e MAX_UPLOAD=5000 \ -p 80:80 \ -v :/config \ -v :/data \ --restart unless-stopped \ lscr.io/linuxserver/projectsend:latest + ``` ## Parameters @@ -119,7 +120,7 @@ Container images are configured using parameters passed at runtime (such as thos | `-p 80` | WebUI | | `-e PUID=1000` | for UserID - see below for explanation | | `-e PGID=1000` | for GroupID - see below for explanation | -| `-e TZ=Europe/London` | Specify a timezone to use EG Europe/London. | +| `-e TZ=Etc/UTC` | specify a timezone to use, see this [list](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). | | `-e MAX_UPLOAD=5000` | To set maximum upload size (in MB), default if unset is 5000. | | `-v /config` | Where to store projectsend config files. | | `-v /data` | Where to store files to share. | @@ -233,6 +234,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64 ## Versions +* **08.03.23:** - Rebasing to alpine 3.17 and upgrading to s6v3. * **23.08.22:** - Add translation support * **20.08.22:** - Rebasing to alpine 3.15 with php8. Restructure nginx configs ([see changes announcement](https://info.linuxserver.io/issues/2022-08-20-nginx-base)). * **24.06.21:** - Rebasing to alpine 3.14, switch to nginx diff --git a/readme-vars.yml b/readme-vars.yml index 8b9e60e..bfc17f3 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -56,7 +56,7 @@ app_setup_block: | # changelog changelogs: - - { date: "15.01.23:", desc: "Rebasing to alpine 3.17." } + - { date: "08.03.23:", desc: "Rebasing to alpine 3.17 and upgrading to s6v3." } - { date: "23.08.22:", desc: "Add translation support"} - { date: "20.08.22:", desc: "Rebasing to alpine 3.15 with php8. Restructure nginx configs ([see changes announcement](https://info.linuxserver.io/issues/2022-08-20-nginx-base))." } - { date: "24.06.21:", desc: "Rebasing to alpine 3.14, switch to nginx"} diff --git a/root/etc/s6-overlay/s6-rc.d/init-projectsend-config/dependencies.d/init-config b/root/etc/s6-overlay/s6-rc.d/init-config-end/dependencies.d/init-projectsend-config similarity index 100% rename from root/etc/s6-overlay/s6-rc.d/init-projectsend-config/dependencies.d/init-config rename to root/etc/s6-overlay/s6-rc.d/init-config-end/dependencies.d/init-projectsend-config diff --git a/root/etc/s6-overlay/s6-rc.d/init-projectsend-config/dependencies.d/init-nginx-end b/root/etc/s6-overlay/s6-rc.d/init-projectsend-config/dependencies.d/init-nginx-end new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/s6-overlay/s6-rc.d/init-projectsend-config/run b/root/etc/s6-overlay/s6-rc.d/init-projectsend-config/run index 4fab6d8..8298c66 100755 --- a/root/etc/s6-overlay/s6-rc.d/init-projectsend-config/run +++ b/root/etc/s6-overlay/s6-rc.d/init-projectsend-config/run @@ -1,7 +1,7 @@ #!/usr/bin/with-contenv bash # shellcheck shell=bash -if [ -d /app/www/public-tmp ]; then +if [[ -d /app/www/public-tmp ]]; then echo "New container detected. Setting up app folder and fixing permissions." mv /app/www/public-tmp /app/www/public lsiown -R abc:abc /app @@ -71,9 +71,15 @@ if [[ -d /config/translations/lang && ! -L /app/www/public/lang ]]; then done fi # symlink translations -[[ -d /config/translations/lang && ! -L /app/www/public/lang ]] && rm -rf /app/www/public/lang -[[ ! -d /config/translations/lang && ! -L /app/www/public/lang ]] && mv /app/www/public/lang /config/translations/ -[[ -d /config/translations/lang && ! -L /app/www/public/lang ]] && ln -s /config/translations/lang /app/www/public/lang +if [[ -d /config/translations/lang && ! -L /app/www/public/lang ]]; then + rm -rf /app/www/public/lang +fi +if [[ ! -d /config/translations/lang && ! -L /app/www/public/lang ]]; then + mv /app/www/public/lang /config/translations/ +fi +if [[ -d /config/translations/lang && ! -L /app/www/public/lang ]]; then + ln -s /config/translations/lang /app/www/public/lang +fi symlinks=( /app/www/public/templates/default/lang diff --git a/root/migrations/02-default-location b/root/migrations/02-default-location index bf4edc6..d9b149f 100644 --- a/root/migrations/02-default-location +++ b/root/migrations/02-default-location @@ -5,7 +5,7 @@ DEFAULT_CONF="/config/nginx/site-confs/default.conf" OLD_ROOT="root /app/projectsend;" NEW_ROOT="root /app/www/public;" -if grep -q "${OLD_ROOT}" "${DEFAULT_CONF}"; then +if [[ -f "${DEFAULT_CONF}" ]] && grep -q "${OLD_ROOT}" "${DEFAULT_CONF}"; then echo "updating root in ${DEFAULT_CONF}" sed -i "s|${OLD_ROOT}|${NEW_ROOT}|" "${DEFAULT_CONF}" fi From 632e417b1d498c76e01c7faa7ddc6fca73243868 Mon Sep 17 00:00:00 2001 From: aptalca <541623+aptalca@users.noreply.github.com> Date: Wed, 8 Mar 2023 12:09:44 -0500 Subject: [PATCH 7/7] attempt to reconcile --- .github/workflows/call_invalid_helper.yml | 12 ------------ .github/workflows/permissions.yml | 9 --------- 2 files changed, 21 deletions(-) delete mode 100644 .github/workflows/call_invalid_helper.yml delete mode 100644 .github/workflows/permissions.yml diff --git a/.github/workflows/call_invalid_helper.yml b/.github/workflows/call_invalid_helper.yml deleted file mode 100644 index 773767c..0000000 --- a/.github/workflows/call_invalid_helper.yml +++ /dev/null @@ -1,12 +0,0 @@ -name: Comment on invalid interaction -on: - issues: - types: - - labeled -jobs: - add-comment-on-invalid: - if: github.event.label.name == 'invalid' - permissions: - issues: write - uses: linuxserver/github-workflows/.github/workflows/invalid-interaction-helper.yml@v1 - secrets: inherit diff --git a/.github/workflows/permissions.yml b/.github/workflows/permissions.yml deleted file mode 100644 index 2df6b61..0000000 --- a/.github/workflows/permissions.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: Permission check -on: - pull_request: - paths: - - '**/run' - - '**/finish' -jobs: - permission_check: - uses: linuxserver/github-workflows/.github/workflows/init-svc-executable-permissions.yml@v1