diff --git a/config/logrotate/nextcloud-syslog-ng b/config/logrotate/nextcloud-syslog-ng new file mode 100644 index 0000000000000000000000000000000000000000..2c67e9b3f0c792952ccc1705b41da381e0a8257e --- /dev/null +++ b/config/logrotate/nextcloud-syslog-ng @@ -0,0 +1,10 @@ +/var/log/nextcloud/nextcloud-syslog.log { + size 16M + rotate 5 + missingok + notifempty + compress + delaycompress + copytruncate + create 0644 root root +} diff --git a/config/nginx/templates/default.conf.template b/config/nginx/templates/default.conf.template index 034d8e3d5ba0def78d4180e35a9d8631ce915820..51a90069f0e53f5d96cc52b0b94eea02bd7f59ec 100644 --- a/config/nginx/templates/default.conf.template +++ b/config/nginx/templates/default.conf.template @@ -75,7 +75,6 @@ server { include mime.types; types { text/javascript mjs; - application/wasm wasm; } # Specify how to handle directories -- specifying `/index.php$request_uri` diff --git a/config/syslog-ng/syslog-ng.conf b/config/syslog-ng/syslog-ng.conf index 01ee99b9cd081315ac71c721b04d682623b69309..7c06f139ca2fc9a7d0b058af3d976e0ebf30dc3a 100644 --- a/config/syslog-ng/syslog-ng.conf +++ b/config/syslog-ng/syslog-ng.conf @@ -5,6 +5,16 @@ source s_local { internal(); }; +destination d_local { + file( + "/var/log/nextcloud/nextcloud-syslog.log" + create-dirs(yes) + dir-perm(0755) + perm(0644) + template("$ISODATE $HOST $PROGRAM[$PID]: $MSG\n") + ); +}; + filter f_nextcloud { program("${NEXTCLOUD_SYSLOG_TAG}"); }; @@ -26,5 +36,6 @@ destination d_remote { log { source(s_local); filter(f_nextcloud); + destination(d_local); destination(d_remote); }; diff --git a/custom_entrypoint-slim.sh b/custom_entrypoint-slim.sh index fabed8f0c90bcdec991a3eb92297aff1ab12a250..efd36d1202efa56b17e4aa412ffda91a0f11e585 100755 --- a/custom_entrypoint-slim.sh +++ b/custom_entrypoint-slim.sh @@ -10,6 +10,15 @@ if [ -n "${SYSLOG_HOST}" ]; then /etc/syslog-ng/syslog-ng.conf syslog-ng --no-caps echo "syslog-ng started." + + # Rotate local syslog-ng file output (max 16MB) hourly + if command -v logrotate >/dev/null 2>&1 && [ -f /etc/logrotate.conf ]; then + ( while true; do + logrotate /etc/logrotate.conf || true + sleep "${LOGROTATE_INTERVAL:-3600}" + done ) & + echo "logrotate timer started." + fi fi /entrypoint.sh "$@" diff --git a/slim.Dockerfile b/slim.Dockerfile index cc63f67ccf2547e905f60d1dca7a839e9c1c7002..9e091d0f5ca41aea5caaab562bd666ab7aa1dfba 100644 --- a/slim.Dockerfile +++ b/slim.Dockerfile @@ -31,7 +31,7 @@ RUN rm -rf ${BASE_DIR}/core/skeleton/* ${BASE_DIR}/themes/example \ && mkdir -p ${BASE_DIR}/themes/Murena COPY --chown=www-data:www-data samples/onlyoffice/ ${BASE_DIR}/core/skeleton/Documents/ -RUN apt-get update && apt-get install -y unzip ffmpeg syslog-ng +RUN apt-get update && apt-get install -y unzip ffmpeg syslog-ng logrotate # Murena apps RUN curl -sL ${CONTACTS_URL} | tar xzf - -C ${BASE_DIR}/custom_apps @@ -64,6 +64,7 @@ RUN rsync -rLDog --chown www-data:www-data --delete --exclude-from=/upgrade.excl && rsync -rLDog --chown www-data:www-data --include "version.php" --include "/custom_apps/" --include "/themes/" --exclude '/*' /usr/src/nextcloud/ /var/www/html/ COPY config/syslog-ng/syslog-ng.conf /etc/syslog-ng/syslog-ng.conf +COPY config/logrotate/nextcloud-syslog-ng /etc/logrotate.d/nextcloud-syslog-ng ENTRYPOINT ["/custom_entrypoint-slim.sh"] CMD ["php-fpm"]