diff --git a/.config/s3.config.php b/.config/s3.config.php index 38040ded..374cba2d 100644 --- a/.config/s3.config.php +++ b/.config/s3.config.php @@ -39,4 +39,10 @@ if (getenv('OBJECTSTORE_S3_BUCKET')) { } else { $CONFIG['objectstore']['arguments']['secret'] = ''; } + + if (getenv('OBJECTSTORE_S3_SSE_C_KEY_FILE') && file_exists(getenv('OBJECTSTORE_S3_SSE_C_KEY_FILE'))) { + $CONFIG['objectstore']['arguments']['sse_c_key'] = trim(file_get_contents(getenv('OBJECTSTORE_S3_SSE_C_KEY_FILE'))); + } elseif (getenv('OBJECTSTORE_S3_SSE_C_KEY')) { + $CONFIG['objectstore']['arguments']['sse_c_key'] = getenv('OBJECTSTORE_S3_SSE_C_KEY'); + } } diff --git a/26/apache/config/s3.config.php b/26/apache/config/s3.config.php index 38040ded..374cba2d 100644 --- a/26/apache/config/s3.config.php +++ b/26/apache/config/s3.config.php @@ -39,4 +39,10 @@ if (getenv('OBJECTSTORE_S3_BUCKET')) { } else { $CONFIG['objectstore']['arguments']['secret'] = ''; } + + if (getenv('OBJECTSTORE_S3_SSE_C_KEY_FILE') && file_exists(getenv('OBJECTSTORE_S3_SSE_C_KEY_FILE'))) { + $CONFIG['objectstore']['arguments']['sse_c_key'] = trim(file_get_contents(getenv('OBJECTSTORE_S3_SSE_C_KEY_FILE'))); + } elseif (getenv('OBJECTSTORE_S3_SSE_C_KEY')) { + $CONFIG['objectstore']['arguments']['sse_c_key'] = getenv('OBJECTSTORE_S3_SSE_C_KEY'); + } } diff --git a/26/fpm-alpine/Dockerfile b/26/fpm-alpine/Dockerfile index 6034a7a2..165496d1 100644 --- a/26/fpm-alpine/Dockerfile +++ b/26/fpm-alpine/Dockerfile @@ -1,5 +1,5 @@ # DO NOT EDIT: created by update.sh from Dockerfile-alpine.template -FROM php:8.2-fpm-alpine3.18 +FROM php:8.2-fpm-alpine3.19 # entrypoint.sh and cron.sh dependencies RUN set -ex; \ diff --git a/26/fpm-alpine/config/s3.config.php b/26/fpm-alpine/config/s3.config.php index 38040ded..374cba2d 100644 --- a/26/fpm-alpine/config/s3.config.php +++ b/26/fpm-alpine/config/s3.config.php @@ -39,4 +39,10 @@ if (getenv('OBJECTSTORE_S3_BUCKET')) { } else { $CONFIG['objectstore']['arguments']['secret'] = ''; } + + if (getenv('OBJECTSTORE_S3_SSE_C_KEY_FILE') && file_exists(getenv('OBJECTSTORE_S3_SSE_C_KEY_FILE'))) { + $CONFIG['objectstore']['arguments']['sse_c_key'] = trim(file_get_contents(getenv('OBJECTSTORE_S3_SSE_C_KEY_FILE'))); + } elseif (getenv('OBJECTSTORE_S3_SSE_C_KEY')) { + $CONFIG['objectstore']['arguments']['sse_c_key'] = getenv('OBJECTSTORE_S3_SSE_C_KEY'); + } } diff --git a/26/fpm/config/s3.config.php b/26/fpm/config/s3.config.php index 38040ded..374cba2d 100644 --- a/26/fpm/config/s3.config.php +++ b/26/fpm/config/s3.config.php @@ -39,4 +39,10 @@ if (getenv('OBJECTSTORE_S3_BUCKET')) { } else { $CONFIG['objectstore']['arguments']['secret'] = ''; } + + if (getenv('OBJECTSTORE_S3_SSE_C_KEY_FILE') && file_exists(getenv('OBJECTSTORE_S3_SSE_C_KEY_FILE'))) { + $CONFIG['objectstore']['arguments']['sse_c_key'] = trim(file_get_contents(getenv('OBJECTSTORE_S3_SSE_C_KEY_FILE'))); + } elseif (getenv('OBJECTSTORE_S3_SSE_C_KEY')) { + $CONFIG['objectstore']['arguments']['sse_c_key'] = getenv('OBJECTSTORE_S3_SSE_C_KEY'); + } } diff --git a/27/apache/config/s3.config.php b/27/apache/config/s3.config.php index 38040ded..374cba2d 100644 --- a/27/apache/config/s3.config.php +++ b/27/apache/config/s3.config.php @@ -39,4 +39,10 @@ if (getenv('OBJECTSTORE_S3_BUCKET')) { } else { $CONFIG['objectstore']['arguments']['secret'] = ''; } + + if (getenv('OBJECTSTORE_S3_SSE_C_KEY_FILE') && file_exists(getenv('OBJECTSTORE_S3_SSE_C_KEY_FILE'))) { + $CONFIG['objectstore']['arguments']['sse_c_key'] = trim(file_get_contents(getenv('OBJECTSTORE_S3_SSE_C_KEY_FILE'))); + } elseif (getenv('OBJECTSTORE_S3_SSE_C_KEY')) { + $CONFIG['objectstore']['arguments']['sse_c_key'] = getenv('OBJECTSTORE_S3_SSE_C_KEY'); + } } diff --git a/27/fpm-alpine/Dockerfile b/27/fpm-alpine/Dockerfile index c6bd258f..14546557 100644 --- a/27/fpm-alpine/Dockerfile +++ b/27/fpm-alpine/Dockerfile @@ -1,5 +1,5 @@ # DO NOT EDIT: created by update.sh from Dockerfile-alpine.template -FROM php:8.2-fpm-alpine3.18 +FROM php:8.2-fpm-alpine3.19 # entrypoint.sh and cron.sh dependencies RUN set -ex; \ diff --git a/27/fpm-alpine/config/s3.config.php b/27/fpm-alpine/config/s3.config.php index 38040ded..374cba2d 100644 --- a/27/fpm-alpine/config/s3.config.php +++ b/27/fpm-alpine/config/s3.config.php @@ -39,4 +39,10 @@ if (getenv('OBJECTSTORE_S3_BUCKET')) { } else { $CONFIG['objectstore']['arguments']['secret'] = ''; } + + if (getenv('OBJECTSTORE_S3_SSE_C_KEY_FILE') && file_exists(getenv('OBJECTSTORE_S3_SSE_C_KEY_FILE'))) { + $CONFIG['objectstore']['arguments']['sse_c_key'] = trim(file_get_contents(getenv('OBJECTSTORE_S3_SSE_C_KEY_FILE'))); + } elseif (getenv('OBJECTSTORE_S3_SSE_C_KEY')) { + $CONFIG['objectstore']['arguments']['sse_c_key'] = getenv('OBJECTSTORE_S3_SSE_C_KEY'); + } } diff --git a/27/fpm/config/s3.config.php b/27/fpm/config/s3.config.php index 38040ded..374cba2d 100644 --- a/27/fpm/config/s3.config.php +++ b/27/fpm/config/s3.config.php @@ -39,4 +39,10 @@ if (getenv('OBJECTSTORE_S3_BUCKET')) { } else { $CONFIG['objectstore']['arguments']['secret'] = ''; } + + if (getenv('OBJECTSTORE_S3_SSE_C_KEY_FILE') && file_exists(getenv('OBJECTSTORE_S3_SSE_C_KEY_FILE'))) { + $CONFIG['objectstore']['arguments']['sse_c_key'] = trim(file_get_contents(getenv('OBJECTSTORE_S3_SSE_C_KEY_FILE'))); + } elseif (getenv('OBJECTSTORE_S3_SSE_C_KEY')) { + $CONFIG['objectstore']['arguments']['sse_c_key'] = getenv('OBJECTSTORE_S3_SSE_C_KEY'); + } } diff --git a/28/apache/config/s3.config.php b/28/apache/config/s3.config.php index 38040ded..374cba2d 100644 --- a/28/apache/config/s3.config.php +++ b/28/apache/config/s3.config.php @@ -39,4 +39,10 @@ if (getenv('OBJECTSTORE_S3_BUCKET')) { } else { $CONFIG['objectstore']['arguments']['secret'] = ''; } + + if (getenv('OBJECTSTORE_S3_SSE_C_KEY_FILE') && file_exists(getenv('OBJECTSTORE_S3_SSE_C_KEY_FILE'))) { + $CONFIG['objectstore']['arguments']['sse_c_key'] = trim(file_get_contents(getenv('OBJECTSTORE_S3_SSE_C_KEY_FILE'))); + } elseif (getenv('OBJECTSTORE_S3_SSE_C_KEY')) { + $CONFIG['objectstore']['arguments']['sse_c_key'] = getenv('OBJECTSTORE_S3_SSE_C_KEY'); + } } diff --git a/28/fpm-alpine/Dockerfile b/28/fpm-alpine/Dockerfile index 1133744d..461b6b35 100644 --- a/28/fpm-alpine/Dockerfile +++ b/28/fpm-alpine/Dockerfile @@ -1,5 +1,5 @@ # DO NOT EDIT: created by update.sh from Dockerfile-alpine.template -FROM php:8.2-fpm-alpine3.18 +FROM php:8.2-fpm-alpine3.19 # entrypoint.sh and cron.sh dependencies RUN set -ex; \ diff --git a/28/fpm-alpine/config/s3.config.php b/28/fpm-alpine/config/s3.config.php index 38040ded..374cba2d 100644 --- a/28/fpm-alpine/config/s3.config.php +++ b/28/fpm-alpine/config/s3.config.php @@ -39,4 +39,10 @@ if (getenv('OBJECTSTORE_S3_BUCKET')) { } else { $CONFIG['objectstore']['arguments']['secret'] = ''; } + + if (getenv('OBJECTSTORE_S3_SSE_C_KEY_FILE') && file_exists(getenv('OBJECTSTORE_S3_SSE_C_KEY_FILE'))) { + $CONFIG['objectstore']['arguments']['sse_c_key'] = trim(file_get_contents(getenv('OBJECTSTORE_S3_SSE_C_KEY_FILE'))); + } elseif (getenv('OBJECTSTORE_S3_SSE_C_KEY')) { + $CONFIG['objectstore']['arguments']['sse_c_key'] = getenv('OBJECTSTORE_S3_SSE_C_KEY'); + } } diff --git a/28/fpm/config/s3.config.php b/28/fpm/config/s3.config.php index 38040ded..374cba2d 100644 --- a/28/fpm/config/s3.config.php +++ b/28/fpm/config/s3.config.php @@ -39,4 +39,10 @@ if (getenv('OBJECTSTORE_S3_BUCKET')) { } else { $CONFIG['objectstore']['arguments']['secret'] = ''; } + + if (getenv('OBJECTSTORE_S3_SSE_C_KEY_FILE') && file_exists(getenv('OBJECTSTORE_S3_SSE_C_KEY_FILE'))) { + $CONFIG['objectstore']['arguments']['sse_c_key'] = trim(file_get_contents(getenv('OBJECTSTORE_S3_SSE_C_KEY_FILE'))); + } elseif (getenv('OBJECTSTORE_S3_SSE_C_KEY')) { + $CONFIG['objectstore']['arguments']['sse_c_key'] = getenv('OBJECTSTORE_S3_SSE_C_KEY'); + } } diff --git a/README.md b/README.md index e51a8b3b..6f313954 100644 --- a/README.md +++ b/README.md @@ -191,6 +191,7 @@ To use an external S3 compatible object store as primary storage, set the follow - `OBJECTSTORE_S3_LEGACYAUTH` (default: `false`): Not required for AWS S3 - `OBJECTSTORE_S3_OBJECT_PREFIX` (default: `urn:oid:`): Prefix to prepend to the fileid - `OBJECTSTORE_S3_AUTOCREATE` (default: `true`): Create the container if it does not exist +- `OBJECTSTORE_S3_SSE_C_KEY` (not set by default): Base64 encoded key with a maximum length of 32 bytes for server side encryption (SSE-C) Check the [Nextcloud documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/primary_storage.html#simple-storage-service-s3) for more information. diff --git a/update.sh b/update.sh index 9556d8ce..bea95729 100755 --- a/update.sh +++ b/update.sh @@ -2,7 +2,7 @@ set -eo pipefail declare -A alpine_version=( - [default]='3.18' + [default]='3.19' ) declare -A debian_version=( diff --git a/versions.json b/versions.json index 855f9932..4b973639 100644 --- a/versions.json +++ b/versions.json @@ -20,7 +20,7 @@ "fpm-alpine": { "variant": "fpm-alpine", "base": "alpine", - "baseVersion": "3.18", + "baseVersion": "3.19", "phpVersion": "8.2" } } @@ -46,7 +46,7 @@ "fpm-alpine": { "variant": "fpm-alpine", "base": "alpine", - "baseVersion": "3.18", + "baseVersion": "3.19", "phpVersion": "8.2" } } @@ -72,7 +72,7 @@ "fpm-alpine": { "variant": "fpm-alpine", "base": "alpine", - "baseVersion": "3.18", + "baseVersion": "3.19", "phpVersion": "8.2" } }