Compare commits

..

2 Commits

60 changed files with 214 additions and 246 deletions
+1 -4
View File
@@ -10,16 +10,13 @@ on:
jobs: jobs:
release: release:
# Do not run this workflow on forked repositories, as they might not have the `gh-pages` branch created, or might
# want to use it for other purposes than publishing helm charts
if: github.repository == 'nextcloud/all-in-one'
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Turnstyle - name: Turnstyle
uses: softprops/turnstyle@e15e934b3f69ee283ba389ea05c8886baa656d93 # v2 uses: softprops/turnstyle@e565d2d86403c5d23533937e95980570545e5586 # v2
with: with:
continue-after-seconds: 180 continue-after-seconds: 180
env: env:
+1 -1
View File
@@ -30,7 +30,7 @@ jobs:
steps: steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 - uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6
with: with:
node-version: lts/* node-version: lts/*
@@ -15,7 +15,7 @@ jobs:
steps: steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 - uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6
with: with:
node-version: lts/* node-version: lts/*
+1 -1
View File
@@ -10,7 +10,7 @@
} }
log { log {
level ERROR level {$CADDY_LOG_LEVEL}
} }
} }
+2 -2
View File
@@ -1,8 +1,8 @@
# syntax=docker/dockerfile:latest # syntax=docker/dockerfile:latest
FROM caddy:2.11.3-alpine AS caddy FROM caddy:2.11.2-alpine AS caddy
# From https://github.com/docker-library/httpd/blob/master/2.4/alpine/Dockerfile # From https://github.com/docker-library/httpd/blob/master/2.4/alpine/Dockerfile
FROM httpd:2.4.67-alpine3.23 FROM httpd:2.4.66-alpine3.23
COPY --from=caddy /usr/bin/caddy /usr/bin/caddy COPY --from=caddy /usr/bin/caddy /usr/bin/caddy
+35 -2
View File
@@ -9,6 +9,34 @@ Listen 8000
ErrorLogFormat "[%t] [%l] [%E] [client: %{X-Forwarded-For}i] [%M] [%{User-Agent}i]" ErrorLogFormat "[%t] [%l] [%E] [client: %{X-Forwarded-For}i] [%M] [%{User-Agent}i]"
LogLevel ${AIO_LOG_LEVEL} LogLevel ${AIO_LOG_LEVEL}
# KeepAlive On: allow the same TCP connection to carry multiple HTTP requests.
# Without this each asset (JS, CSS, image) would require a full TCP handshake,
# which is especially expensive on TLS connections and noticeably slows down
# Nextcloud's login page and file manager that load dozens of resources at once.
KeepAlive On
# KeepAliveTimeout: close an idle keep-alive connection after 5 seconds.
# A short timeout frees Apache worker threads quickly so they are available
# for new requests; 5 s is long enough to cover the gap between requests
# that a browser issues while rendering a page (typically < 1 s), yet short
# enough to avoid holding threads open for idle or slow clients.
KeepAliveTimeout 5
# MaxKeepAliveRequests: allow at most 500 requests per persistent connection.
# 100 (the Apache default) is too low for Nextcloud: the desktop and mobile
# sync clients issue many small API calls (PROPFIND, GET, PUT, checksums …)
# per sync cycle and routinely exceed 100 requests on a single connection.
# Hitting the limit forces a new TCP/TLS handshake, adding latency and CPU
# overhead. 500 gives sync clients enough headroom while still periodically
# recycling threads to contain per-process memory growth.
MaxKeepAliveRequests 500
# sendfile(2) is disabled because it bypasses Apache's output-filter chain: with
# it enabled, mod_brotli is silently skipped for static files (JS, CSS, SVG),
# negating the compression configured below. MMAP is also
# disabled because files can be replaced by Nextcloud at any time and mmap'd
# pages could serve stale data.
EnableSendfile Off
EnableMMAP Off
# PHP match # PHP match
<FilesMatch "\.php$"> <FilesMatch "\.php$">
SetHandler "proxy:fcgi://${NEXTCLOUD_HOST}:9000" SetHandler "proxy:fcgi://${NEXTCLOUD_HOST}:9000"
@@ -17,12 +45,17 @@ Listen 8000
<Proxy "fcgi://${NEXTCLOUD_HOST}:9000" flushpackets=on> <Proxy "fcgi://${NEXTCLOUD_HOST}:9000" flushpackets=on>
</Proxy> </Proxy>
# Compress JS, CSS and SVG responses with Brotli. # Compress JS, CSS and SVG responses with Brotli (quality 4 gives good
# compression with reasonable CPU cost; the default of 0 barely compresses).
# Other plain-text files are already compressed by Nextcloud itself. # Other plain-text files are already compressed by Nextcloud itself.
# No deflate fallback is needed: every browser that Nextcloud supports
# (Chrome 49+, Firefox 44+, Safari 11+, Edge 15+ — all from 2016-2017)
# supports Brotli. Internet Explorer, the only browser that never gained
# Brotli support, was dropped by Nextcloud with NC15 (2019).
# Desktop and mobile sync clients never request JS/CSS/SVG assets. # Desktop and mobile sync clients never request JS/CSS/SVG assets.
<IfModule mod_brotli.c> <IfModule mod_brotli.c>
AddOutputFilterByType BROTLI_COMPRESS text/javascript application/javascript application/x-javascript text/css image/svg+xml AddOutputFilterByType BROTLI_COMPRESS text/javascript application/javascript application/x-javascript text/css image/svg+xml
BrotliCompressionQuality 0 BrotliCompressionQuality 4
</IfModule> </IfModule>
# Nextcloud dir # Nextcloud dir
+2
View File
@@ -9,6 +9,8 @@ if [ -z "$NC_DOMAIN" ]; then
exit 1 exit 1
fi fi
CADDY_LOG_LEVEL="$(echo "$AIO_LOG_LEVEL" | tr '[:lower:]' '[:upper:]')"
export CADDY_LOG_LEVEL
if [ "$AIO_LOG_LEVEL" = 'debug' ]; then if [ "$AIO_LOG_LEVEL" = 'debug' ]; then
export SUPERVISORD_STDOUT=/dev/stdout export SUPERVISORD_STDOUT=/dev/stdout
else else
+1 -1
View File
@@ -12,7 +12,7 @@ loglevel=%(ENV_AIO_LOG_LEVEL)s
stdout_logfile=%(ENV_SUPERVISORD_STDOUT)s stdout_logfile=%(ENV_SUPERVISORD_STDOUT)s
stderr_logfile=/dev/stderr stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0 stderr_logfile_maxbytes=0
command=httpd -DFOREGROUND command=apachectl -DFOREGROUND
[program:caddy] [program:caddy]
stdout_logfile=/dev/stdout stdout_logfile=/dev/stdout
+1 -2
View File
@@ -31,5 +31,4 @@ LABEL com.centurylinklabs.watchtower.enable="false" \
org.opencontainers.image.source="https://github.com/nextcloud/all-in-one" \ org.opencontainers.image.source="https://github.com/nextcloud/all-in-one" \
org.opencontainers.image.vendor="Nextcloud" \ org.opencontainers.image.vendor="Nextcloud" \
org.opencontainers.image.documentation="https://github.com/nextcloud/all-in-one/blob/main/readme.md" org.opencontainers.image.documentation="https://github.com/nextcloud/all-in-one/blob/main/readme.md"
ENV BORG_RETENTION_POLICY="--keep-within=7d --keep-weekly=4 --keep-monthly=6" \ ENV BORG_RETENTION_POLICY="--keep-within=7d --keep-weekly=4 --keep-monthly=6"
AIO_LOG_LEVEL="warn"
-2
View File
@@ -6,8 +6,6 @@ fi
if [ "$AIO_LOG_LEVEL" = "warn" ]; then if [ "$AIO_LOG_LEVEL" = "warn" ]; then
COLLABORA_LOG_LEVEL="warning" COLLABORA_LOG_LEVEL="warning"
elif [ "$AIO_LOG_LEVEL" = "info" ]; then
COLLABORA_LOG_LEVEL="notice"
else else
COLLABORA_LOG_LEVEL="$AIO_LOG_LEVEL" COLLABORA_LOG_LEVEL="$AIO_LOG_LEVEL"
fi fi
+1 -1
View File
@@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest # syntax=docker/dockerfile:latest
FROM haproxy:3.3.10-alpine FROM haproxy:3.3.7-alpine
# hadolint ignore=DL3002 # hadolint ignore=DL3002
USER root USER root
+1 -1
View File
@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:latest # syntax=docker/dockerfile:latest
# Probably from here https://github.com/elastic/dockerfiles/blob/9.3/elasticsearch/Dockerfile # Probably from here https://github.com/elastic/dockerfiles/blob/9.3/elasticsearch/Dockerfile
FROM elasticsearch:9.4.1 FROM elasticsearch:9.3.3
USER root USER root
+1 -1
View File
@@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest # syntax=docker/dockerfile:latest
FROM golang:1.26.3-alpine3.23 AS go FROM golang:1.26.2-alpine3.23 AS go
ENV IMAGINARY_HASH=6a274b488759a896aff02f52afee6e50b5e3a3ee ENV IMAGINARY_HASH=6a274b488759a896aff02f52afee6e50b5e3a3ee
+4 -4
View File
@@ -1,17 +1,17 @@
# syntax=docker/dockerfile:latest # syntax=docker/dockerfile:latest
# Docker CLI is a requirement # Docker CLI is a requirement
FROM docker:29.5.1-cli AS docker FROM docker:29.4.1-cli AS docker
ARG CADDY_REMOTE_HOST_HASH=e80a9931765a8dbcbb47db415863387f0df0e1b3 ARG CADDY_REMOTE_HOST_HASH=b21775afa730ffb52a24ddff310c8a6d1fd37276
# Caddy is a requirement # Caddy is a requirement
FROM caddy:2.11.3-builder-alpine AS caddy FROM caddy:2.11.2-builder-alpine AS caddy
RUN set -ex; \ RUN set -ex; \
xcaddy build --with github.com/muety/caddy-remote-host@"$CADDY_REMOTE_HOST_HASH"; \ xcaddy build --with github.com/muety/caddy-remote-host@"$CADDY_REMOTE_HOST_HASH"; \
/usr/bin/caddy list-modules /usr/bin/caddy list-modules
# From https://github.com/docker-library/php/blob/master/8.5/alpine3.23/fpm/Dockerfile # From https://github.com/docker-library/php/blob/master/8.5/alpine3.23/fpm/Dockerfile
FROM php:8.5.6-fpm-alpine3.23 FROM php:8.5.5-fpm-alpine3.23
EXPOSE 80 EXPOSE 80
EXPOSE 8080 EXPOSE 8080
+1 -1
View File
@@ -10,7 +10,7 @@
} }
log { log {
level ERROR level {$CADDY_LOG_LEVEL}
# We need to exclude the remote-host plugin from logging as it would spam the logs # We need to exclude the remote-host plugin from logging as it would spam the logs
# See https://github.com/nextcloud/all-in-one/pull/7006#issuecomment-4003238239 # See https://github.com/nextcloud/all-in-one/pull/7006#issuecomment-4003238239
exclude http.matchers.remote_host exclude http.matchers.remote_host
+3 -3
View File
@@ -18,9 +18,9 @@ header {
Referrer-Policy "no-referrer" # Tells the browser to never sent a Referer header. See https://developer.mozilla.org/de/docs/Web/HTTP/Reference/Headers/Referrer-Policy Referrer-Policy "no-referrer" # Tells the browser to never sent a Referer header. See https://developer.mozilla.org/de/docs/Web/HTTP/Reference/Headers/Referrer-Policy
X-Robots-Tag "noindex, nofollow" # Tells web crawlers to not index this page. See https://developer.mozilla.org/de/docs/Web/HTTP/Reference/Headers/X-Robots-Tag X-Robots-Tag "noindex, nofollow" # Tells web crawlers to not index this page. See https://developer.mozilla.org/de/docs/Web/HTTP/Reference/Headers/X-Robots-Tag
Origin-Agent-Cluster "?1" # Isolates AIO from other same site pages. See https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Origin-Agent-Cluster Origin-Agent-Cluster "?1" # Isolates AIO from other same site pages. See https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Origin-Agent-Cluster
Cross-Origin-Opener-Policy "same-origin" # AIO does not use any popup, still we can isolate its BCG if it is opened as a pop up by another page. See https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Cross-Origin-Opener-Policy Cross-Origin-Opener-Policy "same-origin"; # AIO does not use any popup, still we can isolate its BCG if it is opened as a pop up by another page. See https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Cross-Origin-Opener-Policy
Cross-Origin-Embedder-Policy "require-corp" # Harder rules for cross origin embeds. See https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Cross-Origin-Embedder-Policy Cross-Origin-Embedder-Policy "require-corp"; # Harder rules for cross origin embeds. See https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Cross-Origin-Embedder-Policy
Cross-Origin-Resource-Policy "same-origin" # Only allow the same origin to load resources. See https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/Cross-Origin_Resource_Policy Cross-Origin-Resource-Policy "same-origin"; # Only allow the same origin to load resources. See https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/Cross-Origin_Resource_Policy
# Permissions-Policy disables browser features that AIO does not use. Since there is no "deny all" option, all known features need to be listed explicitly. See https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Permissions-Policy # Permissions-Policy disables browser features that AIO does not use. Since there is no "deny all" option, all known features need to be listed explicitly. See https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Permissions-Policy
Permissions-Policy "accelerometer=(), ambient-light-sensor=(), aria-notify=(), attribution-reporting=(), autoplay=(), bluetooth=(), browsing-topics=(), camera=(), captured-surface-control=(), ch-ua-high-entropy-values=(), compute-pressure=(), cross-origin-isolated=(), deferred-fetch=(), deferred-fetch-minimal=(), display-capture=(), encrypted-media=(), fullscreen=(), gamepad=(), geolocation=(), gyroscope=(), hid=(), identity-credentials-get=(), idle-detection=(), local-fonts=(), local-network=(), local-network-access=(), loopback-network=(), magnetometer=(), microphone=(), midi=(), on-device-speech-recognition=(), otp-credentials=(), payment=(), picture-in-picture=(), private-state-token-issuance=(), private-state-token-redemption=(), publickey-credentials-create=(), publickey-credentials-get=(), screen-wake-lock=(), serial=(), storage-access=(), summarizer=(), usb=(), web-share=(), window-management=(), xr-spatial-tracking=()" Permissions-Policy "accelerometer=(), ambient-light-sensor=(), aria-notify=(), attribution-reporting=(), autoplay=(), bluetooth=(), browsing-topics=(), camera=(), captured-surface-control=(), ch-ua-high-entropy-values=(), compute-pressure=(), cross-origin-isolated=(), deferred-fetch=(), deferred-fetch-minimal=(), display-capture=(), encrypted-media=(), fullscreen=(), gamepad=(), geolocation=(), gyroscope=(), hid=(), identity-credentials-get=(), idle-detection=(), local-fonts=(), local-network=(), local-network-access=(), loopback-network=(), magnetometer=(), microphone=(), midi=(), on-device-speech-recognition=(), otp-credentials=(), payment=(), picture-in-picture=(), private-state-token-issuance=(), private-state-token-redemption=(), publickey-credentials-create=(), publickey-credentials-get=(), screen-wake-lock=(), serial=(), storage-access=(), summarizer=(), usb=(), web-share=(), window-management=(), xr-spatial-tracking=()"
@@ -9,7 +9,7 @@
} }
log { log {
level ERROR level {$CADDY_LOG_LEVEL}
# We need to exclude the remote-host plugin from logging as it would spam the logs # We need to exclude the remote-host plugin from logging as it would spam the logs
# See https://github.com/nextcloud/all-in-one/pull/7006#issuecomment-4003238239 # See https://github.com/nextcloud/all-in-one/pull/7006#issuecomment-4003238239
exclude http.matchers.remote_host exclude http.matchers.remote_host
+3 -1
View File
@@ -338,7 +338,7 @@ else
fi fi
# Log level logics # Log level logics
if [ -n "$AIO_LOG_LEVEL" ] && ! echo "$AIO_LOG_LEVEL" | grep -q "^debug$\|^info$\|^warn$\|^error$"; then if [ -n "$AIO_LOG_LEVEL" ] && ! grep -q "^debug$\|^info$\|^warn$\|^error$"; then
print_red "AIO_LOG_LEVEL must be one of 'debug', 'info', 'warn' or 'error'. print_red "AIO_LOG_LEVEL must be one of 'debug', 'info', 'warn' or 'error'.
It is set to '$AIO_LOG_LEVEL'". It is set to '$AIO_LOG_LEVEL'".
exit 1 exit 1
@@ -347,11 +347,13 @@ if [ -z "$AIO_LOG_LEVEL" ]; then
export AIO_LOG_LEVEL="warn" export AIO_LOG_LEVEL="warn"
fi fi
CADDY_LOG_LEVEL="$(echo "$AIO_LOG_LEVEL" | tr '[:lower:]' '[:upper:]')"
if [ "$AIO_LOG_LEVEL" = 'debug' ]; then if [ "$AIO_LOG_LEVEL" = 'debug' ]; then
export SUPERVISORD_STDOUT=/dev/stdout export SUPERVISORD_STDOUT=/dev/stdout
else else
export SUPERVISORD_STDOUT=NONE export SUPERVISORD_STDOUT=NONE
fi fi
export CADDY_LOG_LEVEL
# Check if ghcr.io is reachable # Check if ghcr.io is reachable
# Solves issues like https://github.com/nextcloud/all-in-one/discussions/5268 # Solves issues like https://github.com/nextcloud/all-in-one/discussions/5268
+1 -1
View File
@@ -54,7 +54,7 @@ stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0 stderr_logfile_maxbytes=0
command=/session-deduplicator.sh command=/session-deduplicator.sh
user=www-data user=root
[program:domain-validator] [program:domain-validator]
# Logging is disabled as otherwise all attempts will be logged which spams the logs # Logging is disabled as otherwise all attempts will be logged which spams the logs
+2 -2
View File
@@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest # syntax=docker/dockerfile:latest
FROM php:8.3.31-fpm-alpine3.23 FROM php:8.3.30-fpm-alpine3.23
ENV PHP_MEMORY_LIMIT=512M ENV PHP_MEMORY_LIMIT=512M
ENV PHP_UPLOAD_LIMIT=16G ENV PHP_UPLOAD_LIMIT=16G
@@ -8,7 +8,7 @@ ENV SOURCE_LOCATION=/usr/src/nextcloud
ENV REDIS_DB_INDEX=0 ENV REDIS_DB_INDEX=0
# AIO settings start # Do not remove or change this line! # AIO settings start # Do not remove or change this line!
ENV NEXTCLOUD_VERSION=33.0.3 ENV NEXTCLOUD_VERSION=33.0.2
ENV AIO_TOKEN=123456 ENV AIO_TOKEN=123456
ENV AIO_URL=localhost ENV AIO_URL=localhost
# AIO settings end # Do not remove or change this line! # AIO settings end # Do not remove or change this line!
-1
View File
@@ -671,7 +671,6 @@ fi
# Adjusting log files to be stored on a volume # Adjusting log files to be stored on a volume
echo "Adjusting log files..." echo "Adjusting log files..."
php /var/www/html/occ config:system:set upgrade.cli-upgrade-link --value="https://github.com/nextcloud/all-in-one/discussions/2726" php /var/www/html/occ config:system:set upgrade.cli-upgrade-link --value="https://github.com/nextcloud/all-in-one/discussions/2726"
php /var/www/html/occ config:system:set loglevel --value="$NEXTCLOUD_LOG_LEVEL" --type=integer
if [ "$NEXTCLOUD_LOG_TYPE" = "errorlog" ]; then if [ "$NEXTCLOUD_LOG_TYPE" = "errorlog" ]; then
php /var/www/html/occ config:system:set log_type --value="errorlog" php /var/www/html/occ config:system:set log_type --value="errorlog"
php /var/www/html/occ config:system:set log_type_audit --value="errorlog" php /var/www/html/occ config:system:set log_type_audit --value="errorlog"
+2 -8
View File
@@ -28,7 +28,7 @@ elif [ "$CPU_ARCH" != "x86_64" ]; then
fi fi
# Add warning # Add warning
if ! [ -f /var/www/html/custom_apps/notify_push/bin/"$CPU_ARCH"/notify_push ] && ! [ -f /var/www/html/apps/notify_push/bin/"$CPU_ARCH"/notify_push ]; then if ! [ -f /var/www/html/custom_apps/notify_push/bin/"$CPU_ARCH"/notify_push ]; then
echo "The notify_push binary was not found." echo "The notify_push binary was not found."
echo "Most likely is DNS resolution not working correctly." echo "Most likely is DNS resolution not working correctly."
echo "You can try to fix this by configuring a DNS server globally in dockers daemon.json." echo "You can try to fix this by configuring a DNS server globally in dockers daemon.json."
@@ -44,13 +44,7 @@ fi
echo "notify-push was started" echo "notify-push was started"
if [ -f /var/www/html/custom_apps/notify_push/bin/"$CPU_ARCH"/notify_push ]; then
PUSH_PATH="/var/www/html/custom_apps/notify_push/bin/$CPU_ARCH/notify_push"
else
PUSH_PATH="/var/www/html/apps/notify_push/bin/$CPU_ARCH/notify_push"
fi
# Run it # Run it
exec "$PUSH_PATH" \ exec /var/www/html/custom_apps/notify_push/bin/"$CPU_ARCH"/notify_push \
--port 7867 \ --port 7867 \
/var/www/html/config/config.php /var/www/html/config/config.php
+1 -2
View File
@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:latest # syntax=docker/dockerfile:latest
# From https://github.com/docker-library/postgres/blob/master/18/alpine3.23/Dockerfile # From https://github.com/docker-library/postgres/blob/master/18/alpine3.23/Dockerfile
FROM postgres:18.4-alpine FROM postgres:18.3-alpine
ENV PGDATA=/var/lib/postgresql/data ENV PGDATA=/var/lib/postgresql/data
@@ -14,7 +14,6 @@ RUN set -ex; \
bash \ bash \
openssl \ openssl \
shadow \ shadow \
netcat-openbsd \
grep; \ grep; \
\ \
# We need to use the same gid and uid as on old installations # We need to use the same gid and uid as on old installations
+1 -4
View File
@@ -6,9 +6,6 @@ fi
test -f "/mnt/data/backup-is-running" && exit 0 test -f "/mnt/data/backup-is-running" && exit 0
# If database import is running, do not continue with the health check PGPASSWORD="$POSTGRES_PASSWORD" psql -h 127.0.0.1 -p 11000 -U "oc_$POSTGRES_USER" -d "$POSTGRES_DB" -c "select now()" && exit 0
if nc -z 127.0.0.1 11000; then
exit 0
fi
PGPASSWORD="$POSTGRES_PASSWORD" psql -h 127.0.0.1 -p 5432 -U "oc_$POSTGRES_USER" -d "$POSTGRES_DB" -c "select now()" || exit 1 PGPASSWORD="$POSTGRES_PASSWORD" psql -h 127.0.0.1 -p 5432 -U "oc_$POSTGRES_USER" -d "$POSTGRES_DB" -c "select now()" || exit 1
+1 -1
View File
@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:latest # syntax=docker/dockerfile:latest
# From https://github.com/redis/docker-library-redis/blob/release/8.2/alpine/Dockerfile # From https://github.com/redis/docker-library-redis/blob/release/8.2/alpine/Dockerfile
FROM redis:8.6.3-alpine FROM redis:8.6.2-alpine
COPY --chmod=775 start.sh /start.sh COPY --chmod=775 start.sh /start.sh
+1 -4
View File
@@ -4,11 +4,8 @@ if [ "$AIO_LOG_LEVEL" = 'debug' ]; then
set -x set -x
fi fi
# Redis only supports [debug, verbose, notice, warning, nothing] as log level if [ "$AIO_LOG_LEVEL" = "warn" ]; then
if [ "$AIO_LOG_LEVEL" = "warn" ] || [ "$AIO_LOG_LEVEL" = "error" ]; then
REDIS_LOG_LEVEL="warning" REDIS_LOG_LEVEL="warning"
elif [ "$AIO_LOG_LEVEL" = "info" ]; then
REDIS_LOG_LEVEL="notice"
else else
REDIS_LOG_LEVEL="$AIO_LOG_LEVEL" REDIS_LOG_LEVEL="$AIO_LOG_LEVEL"
fi fi
+3 -6
View File
@@ -1,11 +1,11 @@
# syntax=docker/dockerfile:latest # syntax=docker/dockerfile:latest
FROM python:3.14.5-alpine3.23 FROM python:3.14.3-alpine3.23
COPY --chmod=775 start.sh /start.sh COPY --chmod=775 start.sh /start.sh
COPY --chmod=775 healthcheck.sh /healthcheck.sh COPY --chmod=775 healthcheck.sh /healthcheck.sh
ENV RECORDING_VERSION=v0.2.1 ENV RECORDING_VERSION=v0.2.1 \
ENV ALLOW_ALL=false \ ALLOW_ALL=false \
HPB_PROTOCOL=https \ HPB_PROTOCOL=https \
NC_PROTOCOL=https \ NC_PROTOCOL=https \
SKIP_VERIFY=false \ SKIP_VERIFY=false \
@@ -35,9 +35,6 @@ RUN set -ex; \
build-base \ build-base \
linux-headers \ linux-headers \
geckodriver; \ geckodriver; \
if [ "$(apk --print-arch)" = "x86_64" ]; then \
apk add --no-cache intel-media-driver; \
fi; \
useradd -d /tmp --system recording -u 122; \ useradd -d /tmp --system recording -u 122; \
# Give root a random password # Give root a random password
echo "root:$(openssl rand -base64 12)" | chpasswd; \ echo "root:$(openssl rand -base64 12)" | chpasswd; \
+1 -1
View File
@@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest # syntax=docker/dockerfile:latest
FROM nats:2.14.0-scratch AS nats FROM nats:2.12.8-scratch AS nats
FROM eturnal/eturnal:1.12.2-alpine AS eturnal FROM eturnal/eturnal:1.12.2-alpine AS eturnal
FROM strukturag/nextcloud-spreed-signaling:2.1.1 AS signaling FROM strukturag/nextcloud-spreed-signaling:2.1.1 AS signaling
FROM alpine:3.23.4 AS janus FROM alpine:3.23.4 AS janus
+1 -3
View File
@@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest # syntax=docker/dockerfile:latest
FROM golang:1.26.3-alpine3.23 AS go FROM golang:1.26.2-alpine3.23 AS go
ENV WATCHTOWER_COMMIT_HASH=652c89577076f6bc6f2af4465217589641216ee3 ENV WATCHTOWER_COMMIT_HASH=652c89577076f6bc6f2af4465217589641216ee3
@@ -22,8 +22,6 @@ COPY --chmod=775 start.sh /start.sh
# hadolint ignore=DL3002 # hadolint ignore=DL3002
USER root USER root
ENV AIO_LOG_LEVEL="warn"
ENTRYPOINT ["/start.sh"] ENTRYPOINT ["/start.sh"]
LABEL com.centurylinklabs.watchtower.enable="false" \ LABEL com.centurylinklabs.watchtower.enable="false" \
wud.watch="false" \ wud.watch="false" \
+1 -1
View File
@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:latest # syntax=docker/dockerfile:latest
# Probably from this file: https://github.com/nextcloud/whiteboard/blob/main/Dockerfile # Probably from this file: https://github.com/nextcloud/whiteboard/blob/main/Dockerfile
FROM ghcr.io/nextcloud-releases/whiteboard:v1.5.8 FROM ghcr.io/nextcloud-releases/whiteboard:v1.5.7
USER root USER root
RUN set -ex; \ RUN set -ex; \
@@ -6,8 +6,6 @@ This container bundles Home Assistant and auto-configures it for you.
- After adding and starting the container, you can visit `http://ip.address.of.this.server:8123` in order to set up your Home Assistant instance. - After adding and starting the container, you can visit `http://ip.address.of.this.server:8123` in order to set up your Home Assistant instance.
- The data of Home Assistant will be automatically included in AIOs backup solution! - The data of Home Assistant will be automatically included in AIOs backup solution!
- In order to access your Home Assistant outside the local network, you have to set up your own reverse proxy. You can set up a reverse proxy following [these instructions](https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md). - In order to access your Home Assistant outside the local network, you have to set up your own reverse proxy. You can set up a reverse proxy following [these instructions](https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md).
- And to allow the traffic from the reverse proxy to be accepted by Home Assistant, follow [these instructions](https://www.home-assistant.io/integrations/http/#reverse-proxies) from the Home Assistant documentation.
- Or, to use the Caddy with geoblocking community container, follow the following instruction to add your own Caddyfile, to use it for Home Assistant: https://github.com/nextcloud/all-in-one/tree/main/community-containers/caddy#notes
- See https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers how to add it to the AIO stack - See https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers how to add it to the AIO stack
### Repository ### Repository
+2 -2
View File
@@ -4,8 +4,8 @@
"container_name": "nextcloud-aio-lldap", "container_name": "nextcloud-aio-lldap",
"display_name": "Light LDAP implementation", "display_name": "Light LDAP implementation",
"documentation": "https://github.com/nextcloud/all-in-one/tree/main/community-containers/lldap", "documentation": "https://github.com/nextcloud/all-in-one/tree/main/community-containers/lldap",
"image": "ghcr.io/lldap/lldap", "image": "lldap/lldap",
"image_tag": "latest-alpine", "image_tag": "v0-alpine",
"internal_port": "17170", "internal_port": "17170",
"restart": "unless-stopped", "restart": "unless-stopped",
"ports": [ "ports": [
-3
View File
@@ -1,9 +1,6 @@
## Minio ## Minio
This container bundles minio s3 storage and auto-configures it for you. This container bundles minio s3 storage and auto-configures it for you.
> [!CAUTION]
> The Minio upstream project is no longer maintained. The container should still work in its current form...
>[!WARNING] >[!WARNING]
> Enabling this container will remove access to all the files formerly written to the data directory. > Enabling this container will remove access to all the files formerly written to the data directory.
> So only enable this on a clean instance directly after installing AIO. > So only enable this on a clean instance directly after installing AIO.
+4 -4
View File
@@ -1,4 +1,4 @@
name: nextcloud-aio # Add the container to the same compose project to which all the sibling containers are added automatically name: nextcloud-aio # Add the container to the same compose project like all the sibling containers are added to automatically.
services: services:
nextcloud-aio-mastercontainer: nextcloud-aio-mastercontainer:
image: ghcr.io/nextcloud-releases/all-in-one:latest # This is the container image used. You can switch to ghcr.io/nextcloud-releases/all-in-one:beta if you want to help testing new releases. See https://github.com/nextcloud/all-in-one#how-to-switch-the-channel image: ghcr.io/nextcloud-releases/all-in-one:latest # This is the container image used. You can switch to ghcr.io/nextcloud-releases/all-in-one:beta if you want to help testing new releases. See https://github.com/nextcloud/all-in-one#how-to-switch-the-channel
@@ -15,10 +15,10 @@ services:
- "80:80" # Can be removed when running behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else). See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md - "80:80" # Can be removed when running behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else). See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md
- "8080:8080" # This is the AIO interface, served via https and self-signed certificate. See https://github.com/nextcloud/all-in-one#explanation-of-used-ports - "8080:8080" # This is the AIO interface, served via https and self-signed certificate. See https://github.com/nextcloud/all-in-one#explanation-of-used-ports
- "8443:8443" # Can be removed when running behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else). See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md - "8443:8443" # Can be removed when running behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else). See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md
# security_opt: ["label:disable"] # Needed when using SELinux. See https://github.com/nextcloud/all-in-one#are-there-known-problems-when-selinux-is-enabled # security_opt: ["label:disable"] # Is needed when using SELinux. See https://github.com/nextcloud/all-in-one#are-there-known-problems-when-selinux-is-enabled
# environment: # This line is needed (has to be uncommented) when using any of the options below # environment: # Is needed when using any of the options below
# AIO_DISABLE_BACKUP_SECTION: false # Setting this to true allows to hide the backup section in the AIO interface. See https://github.com/nextcloud/all-in-one#how-to-disable-the-backup-section # AIO_DISABLE_BACKUP_SECTION: false # Setting this to true allows to hide the backup section in the AIO interface. See https://github.com/nextcloud/all-in-one#how-to-disable-the-backup-section
# APACHE_PORT: 11000 # Needed when running behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else). See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md # APACHE_PORT: 11000 # Is needed when running behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else). See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md
# APACHE_IP_BINDING: 127.0.0.1 # Should be set when running behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else) that is running on the same host. See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md # APACHE_IP_BINDING: 127.0.0.1 # Should be set when running behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else) that is running on the same host. See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md
# APACHE_ADDITIONAL_NETWORK: frontend_net # (Optional) Connect the apache container to an additional docker network. Needed when behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else) running in a different docker network on same server. See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md # APACHE_ADDITIONAL_NETWORK: frontend_net # (Optional) Connect the apache container to an additional docker network. Needed when behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else) running in a different docker network on same server. See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md
# BORG_RETENTION_POLICY: --keep-within=7d --keep-weekly=4 --keep-monthly=6 # Allows to adjust borgs retention policy. See https://github.com/nextcloud/all-in-one#how-to-adjust-borgs-retention-policy # BORG_RETENTION_POLICY: --keep-within=7d --keep-weekly=4 --keep-monthly=6 # Allows to adjust borgs retention policy. See https://github.com/nextcloud/all-in-one#how-to-adjust-borgs-retention-policy
+3 -15
View File
@@ -39,13 +39,13 @@ services:
- COLLABORA_HOST=nextcloud-aio-collabora - COLLABORA_HOST=nextcloud-aio-collabora
- TALK_HOST=nextcloud-aio-talk - TALK_HOST=nextcloud-aio-talk
- APACHE_PORT - APACHE_PORT
- AIO_LOG_LEVEL
- ONLYOFFICE_HOST=nextcloud-aio-onlyoffice - ONLYOFFICE_HOST=nextcloud-aio-onlyoffice
- TZ=${TIMEZONE} - TZ=${TIMEZONE}
- APACHE_MAX_SIZE - APACHE_MAX_SIZE
- APACHE_MAX_TIME=${NEXTCLOUD_MAX_TIME} - APACHE_MAX_TIME=${NEXTCLOUD_MAX_TIME}
- NOTIFY_PUSH_HOST=nextcloud-aio-notify-push - NOTIFY_PUSH_HOST=nextcloud-aio-notify-push
- WHITEBOARD_HOST=nextcloud-aio-whiteboard - WHITEBOARD_HOST=nextcloud-aio-whiteboard
- HARP_HOST=nextcloud-aio-harp
volumes: volumes:
- nextcloud_aio_nextcloud:/var/www/html:ro - nextcloud_aio_nextcloud:/var/www/html:ro
- nextcloud_aio_apache:/mnt/data:rw - nextcloud_aio_apache:/mnt/data:rw
@@ -80,7 +80,6 @@ services:
- POSTGRES_PASSWORD=${DATABASE_PASSWORD} - POSTGRES_PASSWORD=${DATABASE_PASSWORD}
- POSTGRES_DB=nextcloud_database - POSTGRES_DB=nextcloud_database
- POSTGRES_USER=nextcloud - POSTGRES_USER=nextcloud
- AIO_LOG_LEVEL
- TZ=${TIMEZONE} - TZ=${TIMEZONE}
- PGTZ=${TIMEZONE} - PGTZ=${TIMEZONE}
stop_grace_period: 1800s stop_grace_period: 1800s
@@ -150,7 +149,6 @@ services:
- TURN_SECRET - TURN_SECRET
- SIGNALING_SECRET - SIGNALING_SECRET
- ONLYOFFICE_SECRET - ONLYOFFICE_SECRET
- AIO_LOG_LEVEL
- NEXTCLOUD_MOUNT - NEXTCLOUD_MOUNT
- CLAMAV_ENABLED - CLAMAV_ENABLED
- CLAMAV_HOST=nextcloud-aio-clamav - CLAMAV_HOST=nextcloud-aio-clamav
@@ -209,7 +207,6 @@ services:
- nextcloud_aio_nextcloud:/var/www/html:ro - nextcloud_aio_nextcloud:/var/www/html:ro
environment: environment:
- NEXTCLOUD_HOST=nextcloud-aio-nextcloud - NEXTCLOUD_HOST=nextcloud-aio-nextcloud
- AIO_LOG_LEVEL
- TZ=${TIMEZONE} - TZ=${TIMEZONE}
restart: unless-stopped restart: unless-stopped
read_only: true read_only: true
@@ -231,7 +228,6 @@ services:
- "6379" - "6379"
environment: environment:
- REDIS_HOST_PASSWORD=${REDIS_PASSWORD} - REDIS_HOST_PASSWORD=${REDIS_PASSWORD}
- AIO_LOG_LEVEL
- TZ=${TIMEZONE} - TZ=${TIMEZONE}
volumes: volumes:
- nextcloud_aio_redis:/data:rw - nextcloud_aio_redis:/data:rw
@@ -255,9 +251,8 @@ services:
- "9980" - "9980"
environment: environment:
- aliasgroup1=https://${NC_DOMAIN}:443,http://nextcloud-aio-apache.nextcloud-aio:23973 - aliasgroup1=https://${NC_DOMAIN}:443,http://nextcloud-aio-apache.nextcloud-aio:23973
- extra_params=--o:ssl.enable=false --o:ssl.termination=true --o:logging.disable_server_audit=true --o:welcome.enable=false --o:fetch_update_check=0 --o:allow_update_popup=false --o:remote_font_config.url=https://${NC_DOMAIN}/apps/richdocuments/settings/fonts.json --o:net.post_allow.host[0]=.+ - extra_params=--o:ssl.enable=false --o:ssl.termination=true --o:logging.disable_server_audit=true --o:logging.level=warning --o:logging.level_startup=warning --o:welcome.enable=false --o:fetch_update_check=0 --o:allow_update_popup=false --o:remote_font_config.url=https://${NC_DOMAIN}/apps/richdocuments/settings/fonts.json --o:net.post_allow.host[0]=.+
- dictionaries=${COLLABORA_DICTIONARIES} - dictionaries=${COLLABORA_DICTIONARIES}
- AIO_LOG_LEVEL
- TZ=${TIMEZONE} - TZ=${TIMEZONE}
- server_name=${NC_DOMAIN} - server_name=${NC_DOMAIN}
- DONT_GEN_SSL_CERT=1 - DONT_GEN_SSL_CERT=1
@@ -298,7 +293,6 @@ services:
- TALK_HOST=nextcloud-aio-talk - TALK_HOST=nextcloud-aio-talk
- TURN_SECRET - TURN_SECRET
- SIGNALING_SECRET - SIGNALING_SECRET
- AIO_LOG_LEVEL
- TZ=${TIMEZONE} - TZ=${TIMEZONE}
- TALK_PORT - TALK_PORT
- INTERNAL_SECRET=${TALK_INTERNAL_SECRET} - INTERNAL_SECRET=${TALK_INTERNAL_SECRET}
@@ -331,7 +325,6 @@ services:
- "1234" - "1234"
environment: environment:
- NC_DOMAIN - NC_DOMAIN
- AIO_LOG_LEVEL
- TZ=${TIMEZONE} - TZ=${TIMEZONE}
- RECORDING_SECRET - RECORDING_SECRET
- INTERNAL_SECRET=${TALK_INTERNAL_SECRET} - INTERNAL_SECRET=${TALK_INTERNAL_SECRET}
@@ -361,7 +354,6 @@ services:
expose: expose:
- "3310" - "3310"
environment: environment:
- AIO_LOG_LEVEL
- TZ=${TIMEZONE} - TZ=${TIMEZONE}
- MAX_SIZE=${NEXTCLOUD_UPLOAD_LIMIT} - MAX_SIZE=${NEXTCLOUD_UPLOAD_LIMIT}
volumes: volumes:
@@ -392,8 +384,6 @@ services:
expose: expose:
- "80" - "80"
environment: environment:
- AIO_LOG_LEVEL
- LOG_LEVEL=${AIO_LOG_LEVEL}
- TZ=${TIMEZONE} - TZ=${TIMEZONE}
- JWT_ENABLED=true - JWT_ENABLED=true
- JWT_HEADER=AuthorizationJwt - JWT_HEADER=AuthorizationJwt
@@ -420,7 +410,6 @@ services:
expose: expose:
- "9000" - "9000"
environment: environment:
- AIO_LOG_LEVEL
- TZ=${TIMEZONE} - TZ=${TIMEZONE}
- IMAGINARY_SECRET - IMAGINARY_SECRET
restart: unless-stopped restart: unless-stopped
@@ -447,12 +436,12 @@ services:
expose: expose:
- "9200" - "9200"
environment: environment:
- AIO_LOG_LEVEL
- TZ=${TIMEZONE} - TZ=${TIMEZONE}
- ES_JAVA_OPTS=${FULLTEXTSEARCH_JAVA_OPTIONS} - ES_JAVA_OPTS=${FULLTEXTSEARCH_JAVA_OPTIONS}
- bootstrap.memory_lock=false - bootstrap.memory_lock=false
- cluster.name=nextcloud-aio - cluster.name=nextcloud-aio
- discovery.type=single-node - discovery.type=single-node
- logger.level=WARN
- http.port=9200 - http.port=9200
- xpack.license.self_generated.type=basic - xpack.license.self_generated.type=basic
- xpack.security.enabled=false - xpack.security.enabled=false
@@ -484,7 +473,6 @@ services:
tmpfs: tmpfs:
- /tmp - /tmp
environment: environment:
- AIO_LOG_LEVEL
- TZ=${TIMEZONE} - TZ=${TIMEZONE}
- NEXTCLOUD_URL=https://${NC_DOMAIN} - NEXTCLOUD_URL=https://${NC_DOMAIN}
- JWT_SECRET_KEY=${WHITEBOARD_SECRET} - JWT_SECRET_KEY=${WHITEBOARD_SECRET}
+1 -1
View File
@@ -21,11 +21,11 @@ TALK_ENABLED="no" # Setting this to "yes" (with quotes) enables the opt
TALK_RECORDING_ENABLED="no" # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically. TALK_RECORDING_ENABLED="no" # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically.
WHITEBOARD_ENABLED="no" # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically. WHITEBOARD_ENABLED="no" # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically.
AIO_LOG_LEVEL=warn # Allows to adjust the global AIO log level. Valid values are debug, info, warn and error.
APACHE_IP_BINDING=0.0.0.0 # This can be changed to e.g. 127.0.0.1 if you want to run AIO behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else) and if that is running on the same host and using localhost to connect APACHE_IP_BINDING=0.0.0.0 # This can be changed to e.g. 127.0.0.1 if you want to run AIO behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else) and if that is running on the same host and using localhost to connect
APACHE_MAX_SIZE=17179869184 # This needs to be an integer and in sync with NEXTCLOUD_UPLOAD_LIMIT APACHE_MAX_SIZE=17179869184 # This needs to be an integer and in sync with NEXTCLOUD_UPLOAD_LIMIT
APACHE_PORT=443 # Changing this to a different value than 443 will allow you to run it behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else). APACHE_PORT=443 # Changing this to a different value than 443 will allow you to run it behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else).
ADDITIONAL_COLLABORA_OPTIONS=['--o:security.seccomp=true'] # You can add additional collabora options here by using the array syntax. ADDITIONAL_COLLABORA_OPTIONS=['--o:security.seccomp=true'] # You can add additional collabora options here by using the array syntax.
AIO_LOG_LEVEL=warn # Allows to adjust the global AIO log level. Valid values are debug, info, warn and error.
COLLABORA_DICTIONARIES="de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru" # You can change this in order to enable other dictionaries for collabora COLLABORA_DICTIONARIES="de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru" # You can change this in order to enable other dictionaries for collabora
FULLTEXTSEARCH_JAVA_OPTIONS="-Xms512M -Xmx512M" # Allows to adjust the fulltextsearch java options. FULLTEXTSEARCH_JAVA_OPTIONS="-Xms512M -Xmx512M" # Allows to adjust the fulltextsearch java options.
INSTALL_LATEST_MAJOR=no # Setting this to yes will install the latest Major Nextcloud version upon the first installation INSTALL_LATEST_MAJOR=no # Setting this to yes will install the latest Major Nextcloud version upon the first installation
+1 -2
View File
@@ -48,7 +48,6 @@ sed -i '/AIO_TOKEN/d' containers.yml
sed -i '/AIO_URL/d' containers.yml sed -i '/AIO_URL/d' containers.yml
sed -i '/DOCKER_SOCKET_PROXY_ENABLED/d' containers.yml sed -i '/DOCKER_SOCKET_PROXY_ENABLED/d' containers.yml
sed -i '/HARP_ENABLED/d' containers.yml sed -i '/HARP_ENABLED/d' containers.yml
sed -i '/HARP_HOST/d' containers.yml
sed -i '/HP_SHARED_KEY/d' containers.yml sed -i '/HP_SHARED_KEY/d' containers.yml
sed -i '/ADDITIONAL_TRUSTED_PROXY/d' containers.yml sed -i '/ADDITIONAL_TRUSTED_PROXY/d' containers.yml
sed -i '/TURN_DOMAIN/d' containers.yml sed -i '/TURN_DOMAIN/d' containers.yml
@@ -101,7 +100,7 @@ sed -i 's|NC_DOMAIN=|NC_DOMAIN=yourdomain.com # TODO! Needs to be chang
sed -i 's|NEXTCLOUD_PASSWORD=|NEXTCLOUD_PASSWORD= # TODO! This is the password of the initially created Nextcloud admin with username "admin".|' sample.conf sed -i 's|NEXTCLOUD_PASSWORD=|NEXTCLOUD_PASSWORD= # TODO! This is the password of the initially created Nextcloud admin with username "admin".|' sample.conf
sed -i 's|TIMEZONE=|TIMEZONE=Europe/Berlin # TODO! This is the timezone that your containers will use.|' sample.conf sed -i 's|TIMEZONE=|TIMEZONE=Europe/Berlin # TODO! This is the timezone that your containers will use.|' sample.conf
sed -i 's|COLLABORA_SECCOMP_POLICY=|COLLABORA_SECCOMP_POLICY=--o:security.seccomp=true # Changing the value to false allows to disable the seccomp feature of the Collabora container.|' sample.conf sed -i 's|COLLABORA_SECCOMP_POLICY=|COLLABORA_SECCOMP_POLICY=--o:security.seccomp=true # Changing the value to false allows to disable the seccomp feature of the Collabora container.|' sample.conf
sed -i 's|AIO_LOG_LEVEL=|AIO_LOG_LEVEL=warn # Allows to adjust the global AIO log level. Valid values are debug, info, warn and error.|' sample.conf sed -i 's|AIO_LOG_LEVEL=|AIO_LOG_LEVEL=warning # Allows to adjust the global AIO log level. Valid values are debug, info, warn and error.|' sample.conf
sed -i 's|FULLTEXTSEARCH_JAVA_OPTIONS=|FULLTEXTSEARCH_JAVA_OPTIONS="-Xms512M -Xmx512M" # Allows to adjust the fulltextsearch java options.|' sample.conf sed -i 's|FULLTEXTSEARCH_JAVA_OPTIONS=|FULLTEXTSEARCH_JAVA_OPTIONS="-Xms512M -Xmx512M" # Allows to adjust the fulltextsearch java options.|' sample.conf
sed -i 's|NEXTCLOUD_STARTUP_APPS=|NEXTCLOUD_STARTUP_APPS="deck twofactor_totp tasks calendar contacts notes" # Allows to modify the Nextcloud apps that are installed on starting AIO the first time. You can also disable apps by using a hyphen in front of them. E.g. "-app_api"|' sample.conf sed -i 's|NEXTCLOUD_STARTUP_APPS=|NEXTCLOUD_STARTUP_APPS="deck twofactor_totp tasks calendar contacts notes" # Allows to modify the Nextcloud apps that are installed on starting AIO the first time. You can also disable apps by using a hyphen in front of them. E.g. "-app_api"|' sample.conf
sed -i 's|NEXTCLOUD_ADDITIONAL_APKS=|NEXTCLOUD_ADDITIONAL_APKS=imagemagick # This allows to add additional packages to the Nextcloud container permanently. Default is imagemagick but can be overwritten by modifying this value.|' sample.conf sed -i 's|NEXTCLOUD_ADDITIONAL_APKS=|NEXTCLOUD_ADDITIONAL_APKS=imagemagick # This allows to add additional packages to the Nextcloud container permanently. Default is imagemagick but can be overwritten by modifying this value.|' sample.conf
+1 -1
View File
@@ -1,6 +1,6 @@
name: nextcloud-aio-helm-chart name: nextcloud-aio-helm-chart
description: A generated Helm Chart for Nextcloud AIO from Skippbox Kompose description: A generated Helm Chart for Nextcloud AIO from Skippbox Kompose
version: 13.0.4 version: 12.9.2
apiVersion: v2 apiVersion: v2
keywords: keywords:
- latest - latest
@@ -37,8 +37,6 @@ spec:
- env: - env:
- name: ADDITIONAL_TRUSTED_DOMAIN - name: ADDITIONAL_TRUSTED_DOMAIN
value: "{{ .Values.ADDITIONAL_TRUSTED_DOMAIN }}" value: "{{ .Values.ADDITIONAL_TRUSTED_DOMAIN }}"
- name: AIO_LOG_LEVEL
value: "{{ .Values.AIO_LOG_LEVEL }}"
- name: APACHE_HOST - name: APACHE_HOST
value: nextcloud-aio-apache value: nextcloud-aio-apache
- name: APACHE_MAX_SIZE - name: APACHE_MAX_SIZE
@@ -65,7 +63,7 @@ spec:
value: "{{ .Values.TIMEZONE }}" value: "{{ .Values.TIMEZONE }}"
- name: WHITEBOARD_HOST - name: WHITEBOARD_HOST
value: nextcloud-aio-whiteboard value: nextcloud-aio-whiteboard
image: ghcr.io/nextcloud-releases/aio-apache:20260515_145717 image: ghcr.io/nextcloud-releases/aio-apache:20260409_094910
readinessProbe: readinessProbe:
exec: exec:
command: command:
@@ -36,7 +36,7 @@ spec:
{{- end }} {{- end }}
initContainers: initContainers:
- name: init-subpath - name: init-subpath
image: ghcr.io/nextcloud-releases/aio-alpine:20260515_145717 image: ghcr.io/nextcloud-releases/aio-alpine:20260409_094910
command: command:
- mkdir - mkdir
- "-p" - "-p"
@@ -55,13 +55,11 @@ spec:
{{- end }} {{- end }}
containers: containers:
- env: - env:
- name: AIO_LOG_LEVEL
value: "{{ .Values.AIO_LOG_LEVEL }}"
- name: MAX_SIZE - name: MAX_SIZE
value: "{{ .Values.NEXTCLOUD_UPLOAD_LIMIT }}" value: "{{ .Values.NEXTCLOUD_UPLOAD_LIMIT }}"
- name: TZ - name: TZ
value: "{{ .Values.TIMEZONE }}" value: "{{ .Values.TIMEZONE }}"
image: ghcr.io/nextcloud-releases/aio-clamav:20260515_145717 image: ghcr.io/nextcloud-releases/aio-clamav:20260409_094910
readinessProbe: readinessProbe:
exec: exec:
command: command:
@@ -23,8 +23,6 @@ spec:
containers: containers:
- args: {{ .Values.ADDITIONAL_COLLABORA_OPTIONS | default list | toJson }} - args: {{ .Values.ADDITIONAL_COLLABORA_OPTIONS | default list | toJson }}
env: env:
- name: AIO_LOG_LEVEL
value: "{{ .Values.AIO_LOG_LEVEL }}"
- name: DONT_GEN_SSL_CERT - name: DONT_GEN_SSL_CERT
value: "1" value: "1"
- name: TZ - name: TZ
@@ -34,13 +32,13 @@ spec:
- name: dictionaries - name: dictionaries
value: "{{ .Values.COLLABORA_DICTIONARIES }}" value: "{{ .Values.COLLABORA_DICTIONARIES }}"
- name: extra_params - name: extra_params
value: --o:ssl.enable=false --o:ssl.termination=true --o:logging.disable_server_audit=true --o:welcome.enable=false --o:fetch_update_check=0 --o:allow_update_popup=false --o:remote_font_config.url=https://{{ .Values.NC_DOMAIN }}/apps/richdocuments/settings/fonts.json --o:net.post_allow.host[0]=.+ value: --o:ssl.enable=false --o:ssl.termination=true --o:logging.disable_server_audit=true --o:logging.level=warning --o:logging.level_startup=warning --o:welcome.enable=false --o:fetch_update_check=0 --o:allow_update_popup=false --o:remote_font_config.url=https://{{ .Values.NC_DOMAIN }}/apps/richdocuments/settings/fonts.json --o:net.post_allow.host[0]=.+
- name: server_name - name: server_name
value: "{{ .Values.NC_DOMAIN }}" value: "{{ .Values.NC_DOMAIN }}"
{{- if contains "--o:support_key=" (join " " (.Values.ADDITIONAL_COLLABORA_OPTIONS | default list)) }} {{- if contains "--o:support_key=" (join " " (.Values.ADDITIONAL_COLLABORA_OPTIONS | default list)) }}
image: ghcr.io/nextcloud-releases/aio-collabora-online:20260515_145717 image: ghcr.io/nextcloud-releases/aio-collabora-online:20260409_094910
{{- else }} {{- else }}
image: ghcr.io/nextcloud-releases/aio-collabora:20260515_145717 image: ghcr.io/nextcloud-releases/aio-collabora:20260409_094910
{{- end }} {{- end }}
readinessProbe: readinessProbe:
exec: exec:
@@ -35,7 +35,7 @@ spec:
{{- end }} {{- end }}
initContainers: initContainers:
- name: init-subpath - name: init-subpath
image: ghcr.io/nextcloud-releases/aio-alpine:20260515_145717 image: ghcr.io/nextcloud-releases/aio-alpine:20260409_094910
command: command:
- mkdir - mkdir
- "-p" - "-p"
@@ -54,8 +54,6 @@ spec:
{{- end }} {{- end }}
containers: containers:
- env: - env:
- name: AIO_LOG_LEVEL
value: "{{ .Values.AIO_LOG_LEVEL }}"
- name: PGTZ - name: PGTZ
value: "{{ .Values.TIMEZONE }}" value: "{{ .Values.TIMEZONE }}"
- name: POSTGRES_DB - name: POSTGRES_DB
@@ -66,7 +64,7 @@ spec:
value: nextcloud value: nextcloud
- name: TZ - name: TZ
value: "{{ .Values.TIMEZONE }}" value: "{{ .Values.TIMEZONE }}"
image: ghcr.io/nextcloud-releases/aio-postgresql:20260515_145717 image: ghcr.io/nextcloud-releases/aio-postgresql:20260409_094910
readinessProbe: readinessProbe:
exec: exec:
command: command:
@@ -24,7 +24,7 @@ spec:
spec: spec:
initContainers: initContainers:
- name: init-volumes - name: init-volumes
image: ghcr.io/nextcloud-releases/aio-alpine:20260515_145717 image: ghcr.io/nextcloud-releases/aio-alpine:20260409_094910
command: command:
- chmod - chmod
- "777" - "777"
@@ -34,8 +34,6 @@ spec:
mountPath: /nextcloud-aio-elasticsearch mountPath: /nextcloud-aio-elasticsearch
containers: containers:
- env: - env:
- name: AIO_LOG_LEVEL
value: "{{ .Values.AIO_LOG_LEVEL }}"
- name: ES_JAVA_OPTS - name: ES_JAVA_OPTS
value: "{{ .Values.FULLTEXTSEARCH_JAVA_OPTIONS | default "-Xms512M -Xmx512M" }}" value: "{{ .Values.FULLTEXTSEARCH_JAVA_OPTIONS | default "-Xms512M -Xmx512M" }}"
- name: FULLTEXTSEARCH_PASSWORD - name: FULLTEXTSEARCH_PASSWORD
@@ -50,17 +48,13 @@ spec:
value: single-node value: single-node
- name: http.port - name: http.port
value: "9200" value: "9200"
- name: indices.fielddata.cache.size - name: logger.level
value: 20% value: WARN
- name: indices.memory.index_buffer_size
value: 20%
- name: thread_pool.write.queue_size
value: "1000"
- name: xpack.license.self_generated.type - name: xpack.license.self_generated.type
value: basic value: basic
- name: xpack.security.enabled - name: xpack.security.enabled
value: "false" value: "false"
image: ghcr.io/nextcloud-releases/aio-fulltextsearch:20260515_145717 image: ghcr.io/nextcloud-releases/aio-fulltextsearch:20260409_094910
readinessProbe: readinessProbe:
exec: exec:
command: command:
@@ -34,13 +34,11 @@ spec:
{{- end }} {{- end }}
containers: containers:
- env: - env:
- name: AIO_LOG_LEVEL
value: "{{ .Values.AIO_LOG_LEVEL }}"
- name: IMAGINARY_SECRET - name: IMAGINARY_SECRET
value: "{{ .Values.IMAGINARY_SECRET }}" value: "{{ .Values.IMAGINARY_SECRET }}"
- name: TZ - name: TZ
value: "{{ .Values.TIMEZONE }}" value: "{{ .Values.TIMEZONE }}"
image: ghcr.io/nextcloud-releases/aio-imaginary:20260515_145717 image: ghcr.io/nextcloud-releases/aio-imaginary:20260409_094910
readinessProbe: readinessProbe:
exec: exec:
command: command:
@@ -38,7 +38,7 @@ spec:
# AIO settings start # Do not remove or change this line! # AIO settings start # Do not remove or change this line!
initContainers: initContainers:
- name: init-volumes - name: init-volumes
image: ghcr.io/nextcloud-releases/aio-alpine:20260515_145717 image: ghcr.io/nextcloud-releases/aio-alpine:20260409_094910
command: command:
- chmod - chmod
- "777" - "777"
@@ -92,8 +92,6 @@ spec:
value: "{{ .Values.NEXTCLOUD_PASSWORD }}" value: "{{ .Values.NEXTCLOUD_PASSWORD }}"
- name: ADMIN_USER - name: ADMIN_USER
value: admin value: admin
- name: AIO_LOG_LEVEL
value: "{{ .Values.AIO_LOG_LEVEL }}"
- name: APACHE_HOST - name: APACHE_HOST
value: nextcloud-aio-apache value: nextcloud-aio-apache
- name: APACHE_PORT - name: APACHE_PORT
@@ -192,7 +190,7 @@ spec:
value: "{{ .Values.WHITEBOARD_ENABLED }}" value: "{{ .Values.WHITEBOARD_ENABLED }}"
- name: WHITEBOARD_SECRET - name: WHITEBOARD_SECRET
value: "{{ .Values.WHITEBOARD_SECRET }}" value: "{{ .Values.WHITEBOARD_SECRET }}"
image: ghcr.io/nextcloud-releases/aio-nextcloud:20260515_145717 image: ghcr.io/nextcloud-releases/aio-nextcloud:20260409_094910
{{- if eq (.Values.RPSS_ENABLED | default "no") "yes" }} # AIO-config - do not change this comment! {{- if eq (.Values.RPSS_ENABLED | default "no") "yes" }} # AIO-config - do not change this comment!
securityContext: securityContext:
# The items below only work in container context # The items below only work in container context
@@ -35,13 +35,11 @@ spec:
{{- end }} {{- end }}
containers: containers:
- env: - env:
- name: AIO_LOG_LEVEL
value: "{{ .Values.AIO_LOG_LEVEL }}"
- name: NEXTCLOUD_HOST - name: NEXTCLOUD_HOST
value: nextcloud-aio-nextcloud value: nextcloud-aio-nextcloud
- name: TZ - name: TZ
value: "{{ .Values.TIMEZONE }}" value: "{{ .Values.TIMEZONE }}"
image: ghcr.io/nextcloud-releases/aio-notify-push:20260515_145717 image: ghcr.io/nextcloud-releases/aio-notify-push:20260409_094910
readinessProbe: readinessProbe:
exec: exec:
command: command:
@@ -24,7 +24,7 @@ spec:
spec: spec:
initContainers: initContainers:
- name: init-volumes - name: init-volumes
image: ghcr.io/nextcloud-releases/aio-alpine:20260515_145717 image: ghcr.io/nextcloud-releases/aio-alpine:20260409_094910
command: command:
- chmod - chmod
- "777" - "777"
@@ -34,19 +34,15 @@ spec:
mountPath: /nextcloud-aio-onlyoffice mountPath: /nextcloud-aio-onlyoffice
containers: containers:
- env: - env:
- name: AIO_LOG_LEVEL
value: "{{ .Values.AIO_LOG_LEVEL }}"
- name: JWT_ENABLED - name: JWT_ENABLED
value: "true" value: "true"
- name: JWT_HEADER - name: JWT_HEADER
value: AuthorizationJwt value: AuthorizationJwt
- name: JWT_SECRET - name: JWT_SECRET
value: "{{ .Values.ONLYOFFICE_SECRET }}" value: "{{ .Values.ONLYOFFICE_SECRET }}"
- name: LOG_LEVEL
value: "{{ .Values.AIO_LOG_LEVEL }}"
- name: TZ - name: TZ
value: "{{ .Values.TIMEZONE }}" value: "{{ .Values.TIMEZONE }}"
image: ghcr.io/nextcloud-releases/aio-onlyoffice:20260515_145717 image: ghcr.io/nextcloud-releases/aio-onlyoffice:20260409_094910
readinessProbe: readinessProbe:
exec: exec:
command: command:
@@ -35,13 +35,11 @@ spec:
{{- end }} {{- end }}
containers: containers:
- env: - env:
- name: AIO_LOG_LEVEL
value: "{{ .Values.AIO_LOG_LEVEL }}"
- name: REDIS_HOST_PASSWORD - name: REDIS_HOST_PASSWORD
value: "{{ .Values.REDIS_PASSWORD }}" value: "{{ .Values.REDIS_PASSWORD }}"
- name: TZ - name: TZ
value: "{{ .Values.TIMEZONE }}" value: "{{ .Values.TIMEZONE }}"
image: ghcr.io/nextcloud-releases/aio-redis:20260515_145717 image: ghcr.io/nextcloud-releases/aio-redis:20260409_094910
readinessProbe: readinessProbe:
exec: exec:
command: command:
@@ -40,8 +40,6 @@ spec:
value: "{{ .Values.TALK_MAX_STREAM_BITRATE }}" value: "{{ .Values.TALK_MAX_STREAM_BITRATE }}"
- name: TALK_MAX_SCREEN_BITRATE - name: TALK_MAX_SCREEN_BITRATE
value: "{{ .Values.TALK_MAX_SCREEN_BITRATE }}" value: "{{ .Values.TALK_MAX_SCREEN_BITRATE }}"
- name: AIO_LOG_LEVEL
value: "{{ .Values.AIO_LOG_LEVEL }}"
- name: INTERNAL_SECRET - name: INTERNAL_SECRET
value: "{{ .Values.TALK_INTERNAL_SECRET }}" value: "{{ .Values.TALK_INTERNAL_SECRET }}"
- name: NC_DOMAIN - name: NC_DOMAIN
@@ -56,7 +54,7 @@ spec:
value: "{{ .Values.TURN_SECRET }}" value: "{{ .Values.TURN_SECRET }}"
- name: TZ - name: TZ
value: "{{ .Values.TIMEZONE }}" value: "{{ .Values.TIMEZONE }}"
image: ghcr.io/nextcloud-releases/aio-talk:20260515_145717 image: ghcr.io/nextcloud-releases/aio-talk:20260409_094910
readinessProbe: readinessProbe:
exec: exec:
command: command:
@@ -36,8 +36,6 @@ spec:
{{- end }} {{- end }}
containers: containers:
- env: - env:
- name: AIO_LOG_LEVEL
value: "{{ .Values.AIO_LOG_LEVEL }}"
- name: INTERNAL_SECRET - name: INTERNAL_SECRET
value: "{{ .Values.TALK_INTERNAL_SECRET }}" value: "{{ .Values.TALK_INTERNAL_SECRET }}"
- name: NC_DOMAIN - name: NC_DOMAIN
@@ -46,7 +44,7 @@ spec:
value: "{{ .Values.RECORDING_SECRET }}" value: "{{ .Values.RECORDING_SECRET }}"
- name: TZ - name: TZ
value: "{{ .Values.TIMEZONE }}" value: "{{ .Values.TIMEZONE }}"
image: ghcr.io/nextcloud-releases/aio-talk-recording:20260515_145717 image: ghcr.io/nextcloud-releases/aio-talk-recording:20260409_094910
readinessProbe: readinessProbe:
exec: exec:
command: command:
@@ -34,8 +34,6 @@ spec:
{{- end }} {{- end }}
containers: containers:
- env: - env:
- name: AIO_LOG_LEVEL
value: "{{ .Values.AIO_LOG_LEVEL }}"
- name: BACKUP_DIR - name: BACKUP_DIR
value: /tmp value: /tmp
- name: JWT_SECRET_KEY - name: JWT_SECRET_KEY
@@ -52,7 +50,7 @@ spec:
value: redis value: redis
- name: TZ - name: TZ
value: "{{ .Values.TIMEZONE }}" value: "{{ .Values.TIMEZONE }}"
image: ghcr.io/nextcloud-releases/aio-whiteboard:20260515_145717 image: ghcr.io/nextcloud-releases/aio-whiteboard:20260409_094910
readinessProbe: readinessProbe:
exec: exec:
command: command:
+1 -2
View File
@@ -21,7 +21,6 @@ TALK_ENABLED: "no" # Setting this to "yes" (with quotes) enables the op
TALK_RECORDING_ENABLED: "no" # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically. TALK_RECORDING_ENABLED: "no" # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically.
WHITEBOARD_ENABLED: "no" # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically. WHITEBOARD_ENABLED: "no" # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically.
AIO_LOG_LEVEL: warn # Allows to adjust the global AIO log level. Valid values are debug, info, warn and error.
APACHE_MAX_SIZE: "17179869184" # This needs to be an integer and in sync with NEXTCLOUD_UPLOAD_LIMIT APACHE_MAX_SIZE: "17179869184" # This needs to be an integer and in sync with NEXTCLOUD_UPLOAD_LIMIT
APACHE_PORT: 443 # Changing this to a different value than 443 will allow you to run it behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else). APACHE_PORT: 443 # Changing this to a different value than 443 will allow you to run it behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else).
ADDITIONAL_COLLABORA_OPTIONS: ['--o:security.seccomp=true'] # You can add additional collabora options here by using the array syntax. ADDITIONAL_COLLABORA_OPTIONS: ['--o:security.seccomp=true'] # You can add additional collabora options here by using the array syntax.
@@ -32,7 +31,7 @@ NEXTCLOUD_ADDITIONAL_APKS: imagemagick # This allows to add additional pa
NEXTCLOUD_ADDITIONAL_PHP_EXTENSIONS: imagick # This allows to add additional php extensions to the Nextcloud container permanently. Default is imagick but can be overwritten by modifying this value. NEXTCLOUD_ADDITIONAL_PHP_EXTENSIONS: imagick # This allows to add additional php extensions to the Nextcloud container permanently. Default is imagick but can be overwritten by modifying this value.
NEXTCLOUD_MAX_TIME: 3600 # This allows to change the upload time limit of the Nextcloud container NEXTCLOUD_MAX_TIME: 3600 # This allows to change the upload time limit of the Nextcloud container
NEXTCLOUD_MEMORY_LIMIT: 512M # This allows to change the PHP memory limit of the Nextcloud container NEXTCLOUD_MEMORY_LIMIT: 512M # This allows to change the PHP memory limit of the Nextcloud container
NEXTCLOUD_STARTUP_APPS: deck twofactor_totp tasks calendar contacts notes # Allows to modify the Nextcloud apps that are installed on starting AIO the first time. You can also disable apps by using a hyphen in front of them. E.g. -app_api NEXTCLOUD_STARTUP_APPS: deck twofactor_totp tasks calendar contacts notes # Allows to modify the Nextcloud apps that are installed on starting AIO the first time
NEXTCLOUD_TRUSTED_CACERTS_DIR: # Setting this to any value allows to automatically import root certificates into the Nextcloud container NEXTCLOUD_TRUSTED_CACERTS_DIR: # Setting this to any value allows to automatically import root certificates into the Nextcloud container
NEXTCLOUD_UPLOAD_LIMIT: 16G # This allows to change the upload limit of the Nextcloud container NEXTCLOUD_UPLOAD_LIMIT: 16G # This allows to change the upload limit of the Nextcloud container
REMOVE_DISABLED_APPS: "yes" # Setting this to "no" keep Nextcloud apps that are disabled via their switch and not uninstall them if they should be installed in Nextcloud. REMOVE_DISABLED_APPS: "yes" # Setting this to "no" keep Nextcloud apps that are disabled via their switch and not uninstall them if they should be installed in Nextcloud.
+71 -75
View File
@@ -448,16 +448,16 @@
}, },
{ {
"name": "laravel/serializable-closure", "name": "laravel/serializable-closure",
"version": "v2.0.13", "version": "v2.0.12",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/laravel/serializable-closure.git", "url": "https://github.com/laravel/serializable-closure.git",
"reference": "b566ee0dd251f3c4078bed003a7ce015f5ea6dce" "reference": "a6abb4e54f6fcd3138120b9ad497f0bd146f9919"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/laravel/serializable-closure/zipball/b566ee0dd251f3c4078bed003a7ce015f5ea6dce", "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/a6abb4e54f6fcd3138120b9ad497f0bd146f9919",
"reference": "b566ee0dd251f3c4078bed003a7ce015f5ea6dce", "reference": "a6abb4e54f6fcd3138120b9ad497f0bd146f9919",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -505,7 +505,7 @@
"issues": "https://github.com/laravel/serializable-closure/issues", "issues": "https://github.com/laravel/serializable-closure/issues",
"source": "https://github.com/laravel/serializable-closure" "source": "https://github.com/laravel/serializable-closure"
}, },
"time": "2026-04-16T14:03:50+00:00" "time": "2026-04-14T13:33:34+00:00"
}, },
{ {
"name": "nikic/fast-route", "name": "nikic/fast-route",
@@ -1465,16 +1465,16 @@
}, },
{ {
"name": "symfony/deprecation-contracts", "name": "symfony/deprecation-contracts",
"version": "v3.7.0", "version": "v3.6.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/deprecation-contracts.git", "url": "https://github.com/symfony/deprecation-contracts.git",
"reference": "50f59d1f3ca46d41ac911f97a78626b6756af35b" "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/50f59d1f3ca46d41ac911f97a78626b6756af35b", "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/63afe740e99a13ba87ec199bb07bbdee937a5b62",
"reference": "50f59d1f3ca46d41ac911f97a78626b6756af35b", "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -1487,7 +1487,7 @@
"name": "symfony/contracts" "name": "symfony/contracts"
}, },
"branch-alias": { "branch-alias": {
"dev-main": "3.7-dev" "dev-main": "3.6-dev"
} }
}, },
"autoload": { "autoload": {
@@ -1512,7 +1512,7 @@
"description": "A generic function and convention to trigger deprecation notices", "description": "A generic function and convention to trigger deprecation notices",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/deprecation-contracts/tree/v3.7.0" "source": "https://github.com/symfony/deprecation-contracts/tree/v3.6.0"
}, },
"funding": [ "funding": [
{ {
@@ -1523,16 +1523,12 @@
"url": "https://github.com/fabpot", "url": "https://github.com/fabpot",
"type": "github" "type": "github"
}, },
{
"url": "https://github.com/nicolas-grekas",
"type": "github"
},
{ {
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2026-04-13T15:52:40+00:00" "time": "2024-09-25T14:21:43+00:00"
}, },
{ {
"name": "symfony/polyfill-ctype", "name": "symfony/polyfill-ctype",
@@ -1784,16 +1780,16 @@
}, },
{ {
"name": "twig/twig", "name": "twig/twig",
"version": "v3.25.0", "version": "v3.24.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/twigphp/Twig.git", "url": "https://github.com/twigphp/Twig.git",
"reference": "0dade995be754556af4dcbf8721d45cb3271f9b4" "reference": "a6769aefb305efef849dc25c9fd1653358c148f0"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/twigphp/Twig/zipball/0dade995be754556af4dcbf8721d45cb3271f9b4", "url": "https://api.github.com/repos/twigphp/Twig/zipball/a6769aefb305efef849dc25c9fd1653358c148f0",
"reference": "0dade995be754556af4dcbf8721d45cb3271f9b4", "reference": "a6769aefb305efef849dc25c9fd1653358c148f0",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -1848,7 +1844,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/twigphp/Twig/issues", "issues": "https://github.com/twigphp/Twig/issues",
"source": "https://github.com/twigphp/Twig/tree/v3.25.0" "source": "https://github.com/twigphp/Twig/tree/v3.24.0"
}, },
"funding": [ "funding": [
{ {
@@ -1860,7 +1856,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2026-05-17T07:41:26+00:00" "time": "2026-03-17T21:31:11+00:00"
} }
], ],
"packages-dev": [ "packages-dev": [
@@ -2176,16 +2172,16 @@
}, },
{ {
"name": "amphp/parallel", "name": "amphp/parallel",
"version": "v2.4.0", "version": "v2.3.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/amphp/parallel.git", "url": "https://github.com/amphp/parallel.git",
"reference": "37f5b2754fadc229c00f9416bd68fb8d04529a81" "reference": "296b521137a54d3a02425b464e5aee4c93db2c60"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/amphp/parallel/zipball/37f5b2754fadc229c00f9416bd68fb8d04529a81", "url": "https://api.github.com/repos/amphp/parallel/zipball/296b521137a54d3a02425b464e5aee4c93db2c60",
"reference": "37f5b2754fadc229c00f9416bd68fb8d04529a81", "reference": "296b521137a54d3a02425b464e5aee4c93db2c60",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -2205,7 +2201,7 @@
"amphp/php-cs-fixer-config": "^2", "amphp/php-cs-fixer-config": "^2",
"amphp/phpunit-util": "^3", "amphp/phpunit-util": "^3",
"phpunit/phpunit": "^9", "phpunit/phpunit": "^9",
"psalm/phar": "6.16.1" "psalm/phar": "^5.18"
}, },
"type": "library", "type": "library",
"autoload": { "autoload": {
@@ -2248,7 +2244,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/amphp/parallel/issues", "issues": "https://github.com/amphp/parallel/issues",
"source": "https://github.com/amphp/parallel/tree/v2.4.0" "source": "https://github.com/amphp/parallel/tree/v2.3.3"
}, },
"funding": [ "funding": [
{ {
@@ -2256,7 +2252,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2026-05-16T16:54:01+00:00" "time": "2025-11-15T06:23:42+00:00"
}, },
{ {
"name": "amphp/parser", "name": "amphp/parser",
@@ -2322,16 +2318,16 @@
}, },
{ {
"name": "amphp/pipeline", "name": "amphp/pipeline",
"version": "v1.2.4", "version": "v1.2.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/amphp/pipeline.git", "url": "https://github.com/amphp/pipeline.git",
"reference": "a044733e080940d1483f56caff0c412ad6982776" "reference": "7b52598c2e9105ebcddf247fc523161581930367"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/amphp/pipeline/zipball/a044733e080940d1483f56caff0c412ad6982776", "url": "https://api.github.com/repos/amphp/pipeline/zipball/7b52598c2e9105ebcddf247fc523161581930367",
"reference": "a044733e080940d1483f56caff0c412ad6982776", "reference": "7b52598c2e9105ebcddf247fc523161581930367",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -2343,7 +2339,7 @@
"amphp/php-cs-fixer-config": "^2", "amphp/php-cs-fixer-config": "^2",
"amphp/phpunit-util": "^3", "amphp/phpunit-util": "^3",
"phpunit/phpunit": "^9", "phpunit/phpunit": "^9",
"psalm/phar": "6.16.1" "psalm/phar": "^5.18"
}, },
"type": "library", "type": "library",
"autoload": { "autoload": {
@@ -2377,7 +2373,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/amphp/pipeline/issues", "issues": "https://github.com/amphp/pipeline/issues",
"source": "https://github.com/amphp/pipeline/tree/v1.2.4" "source": "https://github.com/amphp/pipeline/tree/v1.2.3"
}, },
"funding": [ "funding": [
{ {
@@ -2385,7 +2381,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2026-05-06T05:37:57+00:00" "time": "2025-03-16T16:33:53+00:00"
}, },
{ {
"name": "amphp/process", "name": "amphp/process",
@@ -3775,16 +3771,16 @@
}, },
{ {
"name": "revolt/event-loop", "name": "revolt/event-loop",
"version": "v1.0.9", "version": "v1.0.8",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/revoltphp/event-loop.git", "url": "https://github.com/revoltphp/event-loop.git",
"reference": "44061cf513e53c6200372fc935ac42271566295d" "reference": "b6fc06dce8e9b523c9946138fa5e62181934f91c"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/revoltphp/event-loop/zipball/44061cf513e53c6200372fc935ac42271566295d", "url": "https://api.github.com/repos/revoltphp/event-loop/zipball/b6fc06dce8e9b523c9946138fa5e62181934f91c",
"reference": "44061cf513e53c6200372fc935ac42271566295d", "reference": "b6fc06dce8e9b523c9946138fa5e62181934f91c",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -3794,7 +3790,7 @@
"ext-json": "*", "ext-json": "*",
"jetbrains/phpstorm-stubs": "^2019.3", "jetbrains/phpstorm-stubs": "^2019.3",
"phpunit/phpunit": "^9", "phpunit/phpunit": "^9",
"psalm/phar": "6.16.*" "psalm/phar": "^5.15"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
@@ -3841,22 +3837,22 @@
], ],
"support": { "support": {
"issues": "https://github.com/revoltphp/event-loop/issues", "issues": "https://github.com/revoltphp/event-loop/issues",
"source": "https://github.com/revoltphp/event-loop/tree/v1.0.9" "source": "https://github.com/revoltphp/event-loop/tree/v1.0.8"
}, },
"time": "2026-05-16T17:55:38+00:00" "time": "2025-08-27T21:33:23+00:00"
}, },
{ {
"name": "sebastian/diff", "name": "sebastian/diff",
"version": "8.3.0", "version": "8.1.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/diff.git", "url": "https://github.com/sebastianbergmann/diff.git",
"reference": "b36d33b6e796513de7cb7df053afb3f55eefcd47" "reference": "9c957d730257f49c873f3761674559bd90098a7d"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/b36d33b6e796513de7cb7df053afb3f55eefcd47", "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/9c957d730257f49c873f3761674559bd90098a7d",
"reference": "b36d33b6e796513de7cb7df053afb3f55eefcd47", "reference": "9c957d730257f49c873f3761674559bd90098a7d",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -3869,7 +3865,7 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-main": "8.3-dev" "dev-main": "8.1-dev"
} }
}, },
"autoload": { "autoload": {
@@ -3902,7 +3898,7 @@
"support": { "support": {
"issues": "https://github.com/sebastianbergmann/diff/issues", "issues": "https://github.com/sebastianbergmann/diff/issues",
"security": "https://github.com/sebastianbergmann/diff/security/policy", "security": "https://github.com/sebastianbergmann/diff/security/policy",
"source": "https://github.com/sebastianbergmann/diff/tree/8.3.0" "source": "https://github.com/sebastianbergmann/diff/tree/8.1.0"
}, },
"funding": [ "funding": [
{ {
@@ -3922,7 +3918,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2026-05-15T04:58:09+00:00" "time": "2026-04-05T12:02:33+00:00"
}, },
{ {
"name": "spatie/array-to-xml", "name": "spatie/array-to-xml",
@@ -4052,16 +4048,16 @@
}, },
{ {
"name": "symfony/console", "name": "symfony/console",
"version": "v6.4.39", "version": "v6.4.36",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/console.git", "url": "https://github.com/symfony/console.git",
"reference": "c132f1215fe4aa45b70173cc00ce9a755dd31ec5" "reference": "9f481cfb580db8bcecc9b2d4c63f3e13df022ad5"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/console/zipball/c132f1215fe4aa45b70173cc00ce9a755dd31ec5", "url": "https://api.github.com/repos/symfony/console/zipball/9f481cfb580db8bcecc9b2d4c63f3e13df022ad5",
"reference": "c132f1215fe4aa45b70173cc00ce9a755dd31ec5", "reference": "9f481cfb580db8bcecc9b2d4c63f3e13df022ad5",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -4126,7 +4122,7 @@
"terminal" "terminal"
], ],
"support": { "support": {
"source": "https://github.com/symfony/console/tree/v6.4.39" "source": "https://github.com/symfony/console/tree/v6.4.36"
}, },
"funding": [ "funding": [
{ {
@@ -4146,20 +4142,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2026-05-12T06:50:03+00:00" "time": "2026-03-27T15:30:51+00:00"
}, },
{ {
"name": "symfony/filesystem", "name": "symfony/filesystem",
"version": "v8.0.11", "version": "v8.0.8",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/filesystem.git", "url": "https://github.com/symfony/filesystem.git",
"reference": "224db910898ce1317b892a9a1338f1f8f17eb7c7" "reference": "66b769ae743ce2d13e435528fbef4af03d623e5a"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/filesystem/zipball/224db910898ce1317b892a9a1338f1f8f17eb7c7", "url": "https://api.github.com/repos/symfony/filesystem/zipball/66b769ae743ce2d13e435528fbef4af03d623e5a",
"reference": "224db910898ce1317b892a9a1338f1f8f17eb7c7", "reference": "66b769ae743ce2d13e435528fbef4af03d623e5a",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -4196,7 +4192,7 @@
"description": "Provides basic utilities for the filesystem", "description": "Provides basic utilities for the filesystem",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/filesystem/tree/v8.0.11" "source": "https://github.com/symfony/filesystem/tree/v8.0.8"
}, },
"funding": [ "funding": [
{ {
@@ -4216,7 +4212,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2026-05-11T16:39:47+00:00" "time": "2026-03-30T15:14:47+00:00"
}, },
{ {
"name": "symfony/finder", "name": "symfony/finder",
@@ -4535,16 +4531,16 @@
}, },
{ {
"name": "symfony/service-contracts", "name": "symfony/service-contracts",
"version": "v3.7.0", "version": "v3.6.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/service-contracts.git", "url": "https://github.com/symfony/service-contracts.git",
"reference": "d25d82433a80eba6aa0e6c24b61d7370d99e444a" "reference": "45112560a3ba2d715666a509a0bc9521d10b6c43"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/service-contracts/zipball/d25d82433a80eba6aa0e6c24b61d7370d99e444a", "url": "https://api.github.com/repos/symfony/service-contracts/zipball/45112560a3ba2d715666a509a0bc9521d10b6c43",
"reference": "d25d82433a80eba6aa0e6c24b61d7370d99e444a", "reference": "45112560a3ba2d715666a509a0bc9521d10b6c43",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -4562,7 +4558,7 @@
"name": "symfony/contracts" "name": "symfony/contracts"
}, },
"branch-alias": { "branch-alias": {
"dev-main": "3.7-dev" "dev-main": "3.6-dev"
} }
}, },
"autoload": { "autoload": {
@@ -4598,7 +4594,7 @@
"standards" "standards"
], ],
"support": { "support": {
"source": "https://github.com/symfony/service-contracts/tree/v3.7.0" "source": "https://github.com/symfony/service-contracts/tree/v3.6.1"
}, },
"funding": [ "funding": [
{ {
@@ -4618,20 +4614,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2026-03-28T09:44:51+00:00" "time": "2025-07-15T11:30:57+00:00"
}, },
{ {
"name": "symfony/string", "name": "symfony/string",
"version": "v7.4.11", "version": "v7.4.8",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/string.git", "url": "https://github.com/symfony/string.git",
"reference": "965f7306a43383d02c6aca1e3f3bd2f0ea5dee15" "reference": "114ac57257d75df748eda23dd003878080b8e688"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/string/zipball/965f7306a43383d02c6aca1e3f3bd2f0ea5dee15", "url": "https://api.github.com/repos/symfony/string/zipball/114ac57257d75df748eda23dd003878080b8e688",
"reference": "965f7306a43383d02c6aca1e3f3bd2f0ea5dee15", "reference": "114ac57257d75df748eda23dd003878080b8e688",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -4689,7 +4685,7 @@
"utf8" "utf8"
], ],
"support": { "support": {
"source": "https://github.com/symfony/string/tree/v7.4.11" "source": "https://github.com/symfony/string/tree/v7.4.8"
}, },
"funding": [ "funding": [
{ {
@@ -4709,7 +4705,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2026-05-13T12:04:42+00:00" "time": "2026-03-24T13:12:05+00:00"
}, },
{ {
"name": "vimeo/psalm", "name": "vimeo/psalm",
+1
View File
@@ -892,6 +892,7 @@
"environment": [ "environment": [
"HP_SHARED_KEY=%HP_SHARED_KEY%", "HP_SHARED_KEY=%HP_SHARED_KEY%",
"NC_INSTANCE_URL=https://%NC_DOMAIN%", "NC_INSTANCE_URL=https://%NC_DOMAIN%",
"HP_LOG_LEVEL=%COLLABORA_LOG_LEVEL%",
"HP_FRP_DISABLE_TLS=true", "HP_FRP_DISABLE_TLS=true",
"TZ=%TIMEZONE%" "TZ=%TIMEZONE%"
], ],
+3 -14
View File
@@ -68,7 +68,7 @@ session_start([
"use_strict_mode" => true, // Only allow initialized session IDs. See https://www.php.net/manual/en/session.configuration.php#ini.session.use-strict-mode "use_strict_mode" => true, // Only allow initialized session IDs. See https://www.php.net/manual/en/session.configuration.php#ini.session.use-strict-mode
"cookie_secure" => true, // Only send cookies over https (not http). See https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Set-Cookie#secure "cookie_secure" => true, // Only send cookies over https (not http). See https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Set-Cookie#secure
"cookie_httponly" => true, // Block the cookie from being read with js in the browser, will still be send for fetch request triggered by js. See https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Set-Cookie#httponly "cookie_httponly" => true, // Block the cookie from being read with js in the browser, will still be send for fetch request triggered by js. See https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Set-Cookie#httponly
"cookie_samesite" => "Lax", // Send the cookie with same-site requests and top-level cross-site navigations (e.g. redirect after token-based getlogin). "Strict" would block the session cookie on the redirect that follows a cross-site navigation, breaking the getlogin flow from Nextcloud's admin panel. See https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Set-Cookie#samesitesamesite-value "cookie_samesite" => "Strict", // Only send the cookie with requests triggered by AIO itself. See https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Set-Cookie#samesitesamesite-value
]); ]);
if ($wasAuthenticated) { if ($wasAuthenticated) {
@@ -105,6 +105,7 @@ $app->post('/api/docker/restore', AIO\Controller\DockerController::class . ':Sta
$app->post('/api/docker/stop', AIO\Controller\DockerController::class . ':StopContainer'); $app->post('/api/docker/stop', AIO\Controller\DockerController::class . ':StopContainer');
$app->post('/api/docker/backup-reset-location', AIO\Controller\DockerController::class . ':DeleteBorgBackupConfig'); $app->post('/api/docker/backup-reset-location', AIO\Controller\DockerController::class . ':DeleteBorgBackupConfig');
$app->post('/api/docker/prune', AIO\Controller\DockerController::class . ':SystemPrune'); $app->post('/api/docker/prune', AIO\Controller\DockerController::class . ':SystemPrune');
$app->post('/api/docker/pull-images', AIO\Controller\DockerController::class . ':PullImages');
$app->get('/api/docker/logs', AIO\Controller\DockerController::class . ':GetLogs'); $app->get('/api/docker/logs', AIO\Controller\DockerController::class . ':GetLogs');
$app->post('/api/auth/login', AIO\Controller\LoginController::class . ':TryLogin'); $app->post('/api/auth/login', AIO\Controller\LoginController::class . ':TryLogin');
$app->get('/api/auth/getlogin', AIO\Controller\LoginController::class . ':GetTryLogin'); $app->get('/api/auth/getlogin', AIO\Controller\LoginController::class . ':GetTryLogin');
@@ -245,7 +246,6 @@ $app->get('/', function (\Psr\Http\Message\RequestInterface $request, Response $
} }
}); });
// Default error handler
$errorMiddleware = $app->addErrorMiddleware(false, true, true); $errorMiddleware = $app->addErrorMiddleware(false, true, true);
// Set a custom Not Found handler, which doesn't pollute the app output with 404 errors. // Set a custom Not Found handler, which doesn't pollute the app output with 404 errors.
@@ -255,17 +255,6 @@ $errorMiddleware->setErrorHandler(
$response = $app->getResponseFactory()->createResponse(); $response = $app->getResponseFactory()->createResponse();
$response->getBody()->write('Not Found'); $response->getBody()->write('Not Found');
return $response->withStatus(404); return $response->withStatus(404);
} });
);
// Set another custom error handler, which doesn't pollute the app output with 405 errors.
$errorMiddleware->setErrorHandler(
\Slim\Exception\HttpMethodNotAllowedException::class,
function (Request $request, Throwable $exception, bool $displayErrorDetails) use ($app) {
$response = $app->getResponseFactory()->createResponse();
$response->getBody()->write('Method not allowed');
return $response->withStatus(405);
}
);
$app->run(); $app->run();
+18 -3
View File
@@ -45,15 +45,15 @@ readonly class DockerController {
$this->dockerActionManager->ConnectContainerToNetwork($container); $this->dockerActionManager->ConnectContainerToNetwork($container);
} }
private function PerformRecursiveImagePull(string $id) : void { private function PerformRecursiveImagePull(string $id, ?\Closure $addToStreamingResponseBody = null) : void {
$container = $this->containerDefinitionFetcher->GetContainerById($id); $container = $this->containerDefinitionFetcher->GetContainerById($id);
// Pull all dependencies first and then itself // Pull all dependencies first and then itself
foreach($container->dependsOn as $dependency) { foreach($container->dependsOn as $dependency) {
$this->PerformRecursiveImagePull($dependency); $this->PerformRecursiveImagePull($dependency, $addToStreamingResponseBody);
} }
$this->dockerActionManager->PullImage($container, true); $this->dockerActionManager->PullImage($container, true, $addToStreamingResponseBody);
} }
public function PullAllContainerImages(): void { public function PullAllContainerImages(): void {
@@ -63,6 +63,21 @@ readonly class DockerController {
$this->PerformRecursiveImagePull($id); $this->PerformRecursiveImagePull($id);
} }
public function PullImages(Request $request, Response $response, array $args) : Response {
// Get streaming response start and closure
$nonbufResp = $this->startStreamingResponse($response);
$addToStreamingResponseBody = $this->getAddToStreamingResponseBody($nonbufResp);
$id = self::TOP_CONTAINER;
$this->PerformRecursiveImagePull($id, $addToStreamingResponseBody);
$nonbufResp->getBody()->write('<div>Done pulling images. The new images will automatically be used whenever the containers are recreated manually or automatically via AIO.</div>');
// End streaming response
$this->finalizeStreamingResponse($nonbufResp);
return $nonbufResp;
}
public function GetLogs(Request $request, Response $response, array $args) : Response public function GetLogs(Request $request, Response $response, array $args) : Response
{ {
$requestParams = $request->getQueryParams(); $requestParams = $request->getQueryParams();
+8
View File
@@ -291,6 +291,14 @@
{% if has_update_available == true %} {% if has_update_available == true %}
{% if is_mastercontainer_update_available == false %} {% if is_mastercontainer_update_available == false %}
<p>⚠️ Container updates are available. Click on <strong>Stop containers</strong> and <strong>Start and update containers</strong> to update them. You should consider creating a backup first.</p> <p>⚠️ Container updates are available. Click on <strong>Stop containers</strong> and <strong>Start and update containers</strong> to update them. You should consider creating a backup first.</p>
{% if isAnyRunning == true and isApacheStarting != true %}
<p>Alternatively, you can pull the new images now while your containers are still running. The new images will automatically be used whenever the containers are recreated manually or automatically via AIO.</p>
<form method="POST" action="api/docker/pull-images" target="overlay-log">
<input type="hidden" name="{{csrf.keys.name}}" value="{{csrf.name}}">
<input type="hidden" name="{{csrf.keys.value}}" value="{{csrf.value}}">
<input type="submit" value="Pull new images" />
</form>
{% endif %}
{% endif %} {% endif %}
{% else %} {% else %}
{% if is_mastercontainer_update_available == false %} {% if is_mastercontainer_update_available == false %}
+1 -1
View File
@@ -1 +1 @@
13.0.4 13.0.0
+1 -3
View File
@@ -1,11 +1,9 @@
<html lang="en"> <html lang="en">
<head> <head>
<title>AIO</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/> <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<link rel="stylesheet" href="style.css"> <link rel="stylesheet" href="style.css">
<link rel="stylesheet" href="logs.css"> <link rel="stylesheet" href="logs.css">
<link rel="icon" href="img/favicon.png"> <script src="log-view.js?v1"></script>
<script src="log-load.js?v1"></script>
</head> </head>
<body data-container-id="{{ id }}"> <body data-container-id="{{ id }}">
<div id="floating-box"> <div id="floating-box">