14 Commits

Author SHA1 Message Date
45a234493e chore: update cosign 2024-03-29 15:49:51 +01:00
3e34e9ce75 chore: update Nextcloud to 26.0.13 2024-03-29 15:21:13 +01:00
e124f93eef chore: update Nextcloud to 26.0.12 2024-03-02 05:02:00 +01:00
a80fb64d67 chore: update Nextcloud to 26.0.11 2024-01-25 14:02:31 +01:00
33b04cc14c chore: update Nextcloud to 26.0.10 2023-12-15 21:21:59 +01:00
099ebeba30 chore: update Nextcloud to 26.0.9 2023-11-24 09:26:28 +01:00
8d52cdd1cd chore: update Nextcloud to 26.0.8 2023-10-30 10:19:05 +01:00
bc284dd800 chore: update Nextcloud to 26.0.7 2023-09-21 15:53:13 +02:00
16b55d47e4 chore: update Nextcloud to 26.0.6 2023-09-14 13:05:43 +02:00
b89abfd29c chore: update Nextcloud to 26.0.5 2023-08-10 12:35:16 +02:00
3df8828362 fix: disable snuffleupagus xxe protection
Nextcloud now prevents loading external entities by using libxml_set_external_entity_loader.

ref:
https://github.com/nextcloud/server/pull/39490
https://github.com/hoellen/docker-nextcloud/issues/42
2023-07-26 08:10:55 +02:00
9fab1bee28 chore: update Nextcloud to 26.0.4 2023-07-21 00:16:34 +03:00
33f4837a7a chore: update Nextcloud to 26.0.3 2023-06-22 18:18:23 +02:00
867943620a chore: split version-26 to new branch 2023-06-12 14:07:27 +02:00
9 changed files with 34 additions and 61 deletions

View File

@ -3,9 +3,7 @@ name: build
on:
workflow_dispatch:
push:
branches:
- master
- version-*
branches: [ version-26 ]
schedule:
# Build the image regularly (each Friday)
- cron: '23 04 * * 5'
@ -29,11 +27,8 @@ jobs:
- name: Extract version for tags
run: |
BRANCH="${GITHUB_REF#refs/heads/}"
VERSION=$(grep -oP '(?<=NEXTCLOUD_VERSION=).*' Dockerfile)
[ "$BRANCH" = "master" ] && echo "BRANCH_VERSION=latest" >> $GITHUB_ENV
echo "FULL_VERSION=${VERSION:0:7}" >> $GITHUB_ENV
echo "MAJOR_VERSION=${VERSION:0:2}" >> $GITHUB_ENV
echo "FULL_VERSION=$(grep -oP '(?<=NEXTCLOUD_VERSION=).*' Dockerfile | head -c6)" >> $GITHUB_ENV
echo "MAJOR_VERSION=$(grep -oP '(?<=NEXTCLOUD_VERSION=).*' Dockerfile | head -c2)" >> $GITHUB_ENV
- name: Install cosign
if: github.event_name != 'pull_request'
@ -58,7 +53,6 @@ jobs:
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
tags: |
${{ env.BRANCH_VERSION }}
${{ env.FULL_VERSION }}
${{ env.MAJOR_VERSION }}

View File

@ -1,29 +1,27 @@
# -------------- Build-time variables --------------
ARG NEXTCLOUD_VERSION=30.0.12
ARG PHP_VERSION=8.3
ARG NGINX_VERSION=1.26
ARG NEXTCLOUD_VERSION=26.0.13
ARG PHP_VERSION=8.1
ARG NGINX_VERSION=1.24
ARG ALPINE_VERSION=3.21
ARG ALPINE_VERSION=3.17
ARG HARDENED_MALLOC_VERSION=11
ARG SNUFFLEUPAGUS_VERSION=0.10.0
ARG SNUFFLEUPAGUS_VERSION=0.9.0
ARG UID=1000
ARG GID=1000
# nextcloud-30.0.12.tar.bz2
ARG SHA256_SUM="9e19b25f42273d4361218426b4762a766bee408cfa6aa8219f8c27f72095a7a8"
# nextcloud-26.0.13.tar.bz2
ARG SHA256_SUM="0a362df7a1233348f99d1853fd7e79f0667b552c145dc45012fab54ac31c79ae"
# Nextcloud Security <security@nextcloud.com> (D75899B9A724937A)
ARG GPG_FINGERPRINT="2880 6A87 8AE4 23A2 8372 792E D758 99B9 A724 937A"
# ---------------------------------------------------
### Build PHP base
FROM docker.io/library/php:${PHP_VERSION}-fpm-alpine${ALPINE_VERSION} as base
FROM php:${PHP_VERSION}-fpm-alpine${ALPINE_VERSION} as base
ARG SNUFFLEUPAGUS_VERSION
ENV IMAGICK_SHA 28f27044e435a2b203e32675e942eb8de620ee58
RUN apk -U upgrade \
&& apk add -t build-deps \
$PHPIZE_DEPS \
@ -45,7 +43,6 @@ RUN apk -U upgrade \
gmp \
icu \
libjpeg-turbo \
librsvg \
libpq \
libpq \
libwebp \
@ -61,7 +58,6 @@ RUN apk -U upgrade \
bcmath \
exif \
gd \
bz2 \
intl \
ldap \
opcache \
@ -74,8 +70,7 @@ RUN apk -U upgrade \
&& pecl install smbclient \
&& pecl install APCu \
&& pecl install redis \
&& curl -L -o /tmp/imagick.tar.gz https://github.com/Imagick/imagick/archive/${IMAGICK_SHA}.tar.gz && tar --strip-components=1 -xf /tmp/imagick.tar.gz && phpize && ./configure && make && make install \
&& apk add --no-cache --virtual .imagick-runtime-deps imagemagick \
&& pecl install imagick \
&& docker-php-ext-enable \
smbclient \
redis \
@ -88,7 +83,7 @@ RUN apk -U upgrade \
### Build Hardened Malloc
ARG ALPINE_VERSION
FROM docker.io/library/alpine:${ALPINE_VERSION} as build-malloc
FROM alpine:${ALPINE_VERSION} as build-malloc
ARG HARDENED_MALLOC_VERSION
ARG CONFIG_NATIVE=false
@ -102,7 +97,7 @@ RUN apk --no-cache add build-base git gnupg && cd /tmp \
### Fetch nginx
FROM docker.io/library/nginx:${NGINX_VERSION}-alpine as nginx
FROM nginx:${NGINX_VERSION}-alpine as nginx
### Build Nextcloud (production environemnt)

View File

@ -58,8 +58,8 @@ Verifying the signature isn't a requirement, and might not be as seamless as usi
## Tags
- `latest` : latest Nextcloud version
- `x` : latest Nextcloud x.x (e.g. `30`)
- `x.x.x` : Nextcloud x.x.x (e.g. `30.0.0`)
- `x` : latest Nextcloud x.x (e.g. `25`)
- `x.x.x` : Nextcloud x.x.x (e.g. `25.0.0`)
You can always have a glance [here](https://github.com/users/hoellen/packages/container/package/nextcloud).
Only the **latest stable version** will be maintained by myself.

View File

@ -7,18 +7,12 @@ and will receive the minor version updates and security patches.
| Version | Supported |
| ------- | ------------------ |
| 30. x | :white_check_mark: |
| 29. x | :white_check_mark: |
| 28. x | :white_check_mark: |
| 27. x | :negative_squared_cross_mark: |
| 26. x | :negative_squared_cross_mark: |
| 25. x | :negative_squared_cross_mark: |
| 24. x | :negative_squared_cross_mark: |
| 25. x | :white_check_mark: |
| 24. x | :white_check_mark: |
| 23. x | :negative_squared_cross_mark: |
| 22. x | :negative_squared_cross_mark: |
Please update to the latest version available. Major migrations are always tested before being pushed.
An up-to-date list of the currently maintained Nextcloud versions can also be found in the [Nextcloud Repository Wiki](https://github.com/nextcloud/server/wiki/Maintenance-and-Release-Schedule).
## Automated vulnerability scanning

View File

@ -18,6 +18,7 @@ server {
add_header Referrer-Policy "no-referrer" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-Download-Options "noopen" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Permitted-Cross-Domain-Policies "none" always;
add_header X-Robots-Tag "noindex, nofollow" always;
@ -30,8 +31,8 @@ server {
}
location ^~ /.well-known {
location = /.well-known/carddav { return 301 $nc_proto://$host/remote.php/dav/; }
location = /.well-known/caldav { return 301 $nc_proto://$host/remote.php/dav/; }
location = /.well-known/carddav { return 301 $nc_proto://$host/remote.php/dav; }
location = /.well-known/caldav { return 301 $nc_proto://$host/remote.php/dav; }
location ^~ /.well-known { return 301 $nc_proto://$host/index.php$uri; }
try_files $uri $uri/ =404;
}
@ -48,7 +49,7 @@ server {
return 404;
}
location ~ ^\/(?:index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|ocs-provider\/.+|.+\/richdocumentscode\/proxy)\.php(?:$|\/) {
location ~ ^\/(?:index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|oc[ms]-provider\/.+)\.php(?:$|\/) {
include /etc/nginx/fastcgi_params;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
@ -61,18 +62,18 @@ server {
fastcgi_read_timeout 1200;
}
location ~ ^\/(?:updater|ocs-provider)(?:$|\/) {
location ~ ^\/(?:updater|oc[ms]-provider)(?:$|\/) {
try_files $uri/ =404;
index index.php;
}
location ~ \.(?:css|js|mjs|svg|gif|png|jpg|ico|wasm|tflite|map|ogg|flac)$ {
location ~ \.(?:css|js|svg|gif|map)$ {
try_files $uri /index.php$uri$is_args$args;
expires 6M;
access_log off;
}
location ~ \.(otf|woff2)?$ {
location ~ \.woff2?$ {
try_files $uri /index.php$uri$is_args$args;
expires 7d;
access_log off;

View File

@ -9,11 +9,6 @@ events {
http {
include /etc/nginx/mime.types;
# Add .mjs as a file extension for javascript
# https://github.com/nextcloud/server/pull/36057
types {
application/javascript mjs;
}
default_type application/octet-stream;
access_log /nginx/logs/access.log combined;

View File

@ -15,16 +15,6 @@ if [ "$PHP_HARDENING" == "true" ] && [ ! -f /usr/local/etc/php/conf.d/snuffleupa
cp /usr/local/etc/php/snuffleupagus/* /usr/local/etc/php/conf.d
fi
# Check if database is available
if [ -n "${DB_TYPE}" ] && [ "${DB_TYPE}" != "sqlite3" ]; then
DB_PORT=${DB_PORT:-$( [ "${DB_TYPE}" = "pgsql" ] && echo 5432 || echo 3306 )}
until nc -z "${DB_HOST:-nextcloud-db}" "${DB_PORT}"
do
echo "waiting for the database container..."
sleep 1
done
fi
# If new install, run setup
if [ ! -f /nextcloud/config/config.php ]; then
touch /nextcloud/config/CAN_INSTALL
@ -34,4 +24,4 @@ else
fi
# Run processes
exec /usr/bin/s6-svscan /etc/s6.d
exec /bin/s6-svscan /etc/s6.d

View File

@ -55,6 +55,14 @@ cat >> /nextcloud/config/autoconfig.php <<EOF;
?>
EOF
if [ ${DB_TYPE} != "sqlite3" ]; then
until nc -z "${DB_HOST:-nextcloud-db}" "${DB_PORT:-3306}"
do
echo "waiting for the database container..."
sleep 1
done
fi
echo "Starting automatic configuration..."
# Execute setup
(cd /nextcloud; php index.php &>/dev/null)

View File

@ -47,10 +47,6 @@ sp.disable_function.function("ini_get").param("option").value("open_basedir").fi
sp.disable_function.function("ini_get").param("option").value("allow_url_fopen").filename("/nextcloud/3rdparty/guzzlehttp/guzzle/src/Utils.php").allow();
sp.disable_function.function("exec").param("command").value("apachectl -M | grep mpm").filename("/nextcloud/apps2/spreed/lib/Settings/Admin/AdminSettings.php").allow();
# Nextcloud inherently enables XXE-Protection since 27.0.1, therefore, drop setting a new external entity loader
sp.disable_function.function("libxml_set_external_entity_loader").filename("/nextcloud/lib/base.php").allow();
sp.disable_function.function("libxml_set_external_entity_loader").drop();
# Harden the `chmod` function (0777 (oct = 511, 0666 = 438)
sp.disable_function.function("chmod").param("permissions").value("438").drop();
sp.disable_function.function("chmod").param("permissions").value("511").drop();