---
nextcloud-aio-helm-chart/update-helm.sh | 2 +-
php/templates/containers.twig | 3 ++-
php/templates/includes/aio-version.twig | 1 +
3 files changed, 4 insertions(+), 2 deletions(-)
create mode 100644 php/templates/includes/aio-version.twig
diff --git a/nextcloud-aio-helm-chart/update-helm.sh b/nextcloud-aio-helm-chart/update-helm.sh
index f39d3035..9e5aba86 100755
--- a/nextcloud-aio-helm-chart/update-helm.sh
+++ b/nextcloud-aio-helm-chart/update-helm.sh
@@ -407,7 +407,7 @@ rm latest.yml
mv latest.yml.backup latest.yml
# Get version of AIO
-AIO_VERSION="$(grep 'Nextcloud AIO ' ../php/templates/containers.twig | grep -oP '[0-9]+.[0-9]+.[0-9]+')"
+AIO_VERSION="$(grep 'Nextcloud AIO ' ../php/templates/includes/aio-version.twig | grep -oP '[0-9]+.[0-9]+.[0-9]+')"
sed -i "s|^version:.*|version: $AIO_VERSION|" ../helm-chart/Chart.yaml
# Conversion of sample.conf
diff --git a/php/templates/containers.twig b/php/templates/containers.twig
index 9c55350e..d0ed38b1 100644
--- a/php/templates/containers.twig
+++ b/php/templates/containers.twig
@@ -17,7 +17,8 @@
- Nextcloud AIO v12.5.0
+ {% set aio_version = include('includes/aio-version.twig') %}
+ Nextcloud AIO v{{ aio_version }}
{# Add 2nd tab warning #}
diff --git a/php/templates/includes/aio-version.twig b/php/templates/includes/aio-version.twig
new file mode 100644
index 00000000..b7d7205d
--- /dev/null
+++ b/php/templates/includes/aio-version.twig
@@ -0,0 +1 @@
+12.5.0
From 4a65c04e3d7410109ca35121c6aedd0d8e4f0986 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 19 Jan 2026 04:28:14 +0000
Subject: [PATCH 03/25] build(deps): bump docker in /Containers/mastercontainer
Bumps docker from 29.1.4-cli to 29.1.5-cli.
---
updated-dependencies:
- dependency-name: docker
dependency-version: 29.1.5-cli
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
Containers/mastercontainer/Dockerfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Containers/mastercontainer/Dockerfile b/Containers/mastercontainer/Dockerfile
index d2019e49..a719c71a 100644
--- a/Containers/mastercontainer/Dockerfile
+++ b/Containers/mastercontainer/Dockerfile
@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:latest
# Docker CLI is a requirement
-FROM docker:29.1.4-cli AS docker
+FROM docker:29.1.5-cli AS docker
# Caddy is a requirement
FROM caddy:2.10.2-alpine AS caddy
From 9822a63c44dc965a202b539fcacb2ad9339243c3 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Mon, 19 Jan 2026 10:07:52 +0100
Subject: [PATCH 04/25] nextcloud-entrypoint: make recording server dependent
on `REMOVE_DISABLED_APPS`
Signed-off-by: Simon L.
---
Containers/nextcloud/entrypoint.sh | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/Containers/nextcloud/entrypoint.sh b/Containers/nextcloud/entrypoint.sh
index 43432e6d..5f47a0f4 100644
--- a/Containers/nextcloud/entrypoint.sh
+++ b/Containers/nextcloud/entrypoint.sh
@@ -894,7 +894,9 @@ if [ -d "/var/www/html/custom_apps/spreed" ]; then
RECORDING_SERVERS_STRING="{\"servers\":[{\"server\":\"http://$TALK_RECORDING_HOST:1234/\",\"verify\":true}],\"secret\":\"$RECORDING_SECRET\"}"
php /var/www/html/occ config:app:set spreed recording_servers --value="$RECORDING_SERVERS_STRING"
else
- php /var/www/html/occ config:app:delete spreed recording_servers
+ if [ "$REMOVE_DISABLED_APPS" = yes ]; then
+ php /var/www/html/occ config:app:delete spreed recording_servers
+ fi
fi
fi
From 0e22f38d16b4a1a0eb375ce1945f796d5b40da4d Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Mon, 19 Jan 2026 10:25:14 +0100
Subject: [PATCH 05/25] add `wud.watch=false` to all containers
Signed-off-by: Simon L.
---
Containers/apache/Dockerfile | 1 +
Containers/borgbackup/Dockerfile | 1 +
Containers/clamav/Dockerfile | 1 +
Containers/collabora-online/Dockerfile | 1 +
Containers/collabora/Dockerfile | 1 +
Containers/docker-socket-proxy/Dockerfile | 1 +
Containers/domaincheck/Dockerfile | 1 +
Containers/fulltextsearch/Dockerfile | 1 +
Containers/imaginary/Dockerfile | 3 ++-
Containers/nextcloud/Dockerfile | 1 +
Containers/notify-push/Dockerfile | 1 +
Containers/onlyoffice/Dockerfile | 1 +
Containers/postgresql/Dockerfile | 1 +
Containers/redis/Dockerfile | 1 +
Containers/talk-recording/Dockerfile | 1 +
Containers/talk/Dockerfile | 1 +
Containers/watchtower/Dockerfile | 1 +
Containers/whiteboard/Dockerfile | 1 +
php/src/Docker/DockerActionManager.php | 2 +-
19 files changed, 20 insertions(+), 2 deletions(-)
diff --git a/Containers/apache/Dockerfile b/Containers/apache/Dockerfile
index 0948fb25..9ccadfb8 100644
--- a/Containers/apache/Dockerfile
+++ b/Containers/apache/Dockerfile
@@ -88,4 +88,5 @@ CMD ["/usr/bin/supervisord", "-c", "/supervisord.conf"]
HEALTHCHECK CMD /healthcheck.sh
LABEL com.centurylinklabs.watchtower.enable="false" \
+ wud.watch="false" \
org.label-schema.vendor="Nextcloud"
diff --git a/Containers/borgbackup/Dockerfile b/Containers/borgbackup/Dockerfile
index 637d035c..97d6198b 100644
--- a/Containers/borgbackup/Dockerfile
+++ b/Containers/borgbackup/Dockerfile
@@ -24,5 +24,6 @@ ENTRYPOINT ["/start.sh"]
USER root
LABEL com.centurylinklabs.watchtower.enable="false" \
+ wud.watch="false" \
org.label-schema.vendor="Nextcloud"
ENV BORG_RETENTION_POLICY="--keep-within=7d --keep-weekly=4 --keep-monthly=6"
diff --git a/Containers/clamav/Dockerfile b/Containers/clamav/Dockerfile
index 196b109a..e81fb06e 100644
--- a/Containers/clamav/Dockerfile
+++ b/Containers/clamav/Dockerfile
@@ -33,5 +33,6 @@ VOLUME /var/lib/clamav
ENTRYPOINT ["/start.sh"]
CMD ["/usr/bin/supervisord", "-c", "/supervisord.conf"]
LABEL com.centurylinklabs.watchtower.enable="false" \
+ wud.watch="false" \
org.label-schema.vendor="Nextcloud"
HEALTHCHECK --start-period=60s --retries=9 CMD /healthcheck.sh
diff --git a/Containers/collabora-online/Dockerfile b/Containers/collabora-online/Dockerfile
index 72f79928..ec8b63f0 100644
--- a/Containers/collabora-online/Dockerfile
+++ b/Containers/collabora-online/Dockerfile
@@ -12,4 +12,5 @@ USER 1001
HEALTHCHECK --start-period=60s --retries=9 CMD /healthcheck.sh
LABEL com.centurylinklabs.watchtower.enable="false" \
+ wud.watch="false" \
org.label-schema.vendor="Nextcloud"
diff --git a/Containers/collabora/Dockerfile b/Containers/collabora/Dockerfile
index 50b6cfef..976360cb 100644
--- a/Containers/collabora/Dockerfile
+++ b/Containers/collabora/Dockerfile
@@ -11,4 +11,5 @@ USER 1001
HEALTHCHECK --start-period=60s --retries=9 CMD /healthcheck.sh
LABEL com.centurylinklabs.watchtower.enable="false" \
+ wud.watch="false" \
org.label-schema.vendor="Nextcloud"
diff --git a/Containers/docker-socket-proxy/Dockerfile b/Containers/docker-socket-proxy/Dockerfile
index 796c855a..62590f6f 100644
--- a/Containers/docker-socket-proxy/Dockerfile
+++ b/Containers/docker-socket-proxy/Dockerfile
@@ -19,4 +19,5 @@ COPY --chmod=664 haproxy.cfg /haproxy.cfg
ENTRYPOINT ["/start.sh"]
HEALTHCHECK CMD /healthcheck.sh
LABEL com.centurylinklabs.watchtower.enable="false" \
+ wud.watch="false" \
org.label-schema.vendor="Nextcloud"
diff --git a/Containers/domaincheck/Dockerfile b/Containers/domaincheck/Dockerfile
index 769c24ac..8122f315 100644
--- a/Containers/domaincheck/Dockerfile
+++ b/Containers/domaincheck/Dockerfile
@@ -18,4 +18,5 @@ ENTRYPOINT ["/start.sh"]
HEALTHCHECK CMD nc -z 127.0.0.1 $APACHE_PORT || exit 1
LABEL com.centurylinklabs.watchtower.enable="false" \
+ wud.watch="false" \
org.label-schema.vendor="Nextcloud"
diff --git a/Containers/fulltextsearch/Dockerfile b/Containers/fulltextsearch/Dockerfile
index ed0cafe9..ff1e923f 100644
--- a/Containers/fulltextsearch/Dockerfile
+++ b/Containers/fulltextsearch/Dockerfile
@@ -22,5 +22,6 @@ USER 1000:0
HEALTHCHECK --interval=10s --timeout=5s --start-period=1m --retries=5 CMD /healthcheck.sh
LABEL com.centurylinklabs.watchtower.enable="false" \
+ wud.watch="false" \
org.label-schema.vendor="Nextcloud"
ENV ES_JAVA_OPTS="-Xms512M -Xmx512M"
diff --git a/Containers/imaginary/Dockerfile b/Containers/imaginary/Dockerfile
index 11250a43..04f190b5 100644
--- a/Containers/imaginary/Dockerfile
+++ b/Containers/imaginary/Dockerfile
@@ -1,7 +1,7 @@
# syntax=docker/dockerfile:latest
FROM golang:1.25.5-alpine3.23 AS go
-ENV IMAGINARY_HASH=6a274b488759a896aff02f52afee6e50b5e3a3ee
+ENV IMAGINARY_HASH=6a274b488759a896aff02f52afee6e50b5e3a3ee
RUN set -ex; \
apk upgrade --no-cache -a; \
@@ -43,4 +43,5 @@ ENTRYPOINT ["/start.sh"]
HEALTHCHECK CMD /healthcheck.sh
LABEL com.centurylinklabs.watchtower.enable="false" \
+ wud.watch="false" \
org.label-schema.vendor="Nextcloud"
diff --git a/Containers/nextcloud/Dockerfile b/Containers/nextcloud/Dockerfile
index 9c468bbb..afb3def5 100644
--- a/Containers/nextcloud/Dockerfile
+++ b/Containers/nextcloud/Dockerfile
@@ -264,4 +264,5 @@ CMD ["/usr/bin/supervisord", "-c", "/supervisord.conf"]
HEALTHCHECK CMD /healthcheck.sh
LABEL com.centurylinklabs.watchtower.enable="false" \
+ wud.watch="false" \
org.label-schema.vendor="Nextcloud"
diff --git a/Containers/notify-push/Dockerfile b/Containers/notify-push/Dockerfile
index 029c93f2..425115c4 100644
--- a/Containers/notify-push/Dockerfile
+++ b/Containers/notify-push/Dockerfile
@@ -23,4 +23,5 @@ ENTRYPOINT ["/start.sh"]
HEALTHCHECK CMD /healthcheck.sh
LABEL com.centurylinklabs.watchtower.enable="false" \
+ wud.watch="false" \
org.label-schema.vendor="Nextcloud"
diff --git a/Containers/onlyoffice/Dockerfile b/Containers/onlyoffice/Dockerfile
index d028ccbc..13b4d456 100644
--- a/Containers/onlyoffice/Dockerfile
+++ b/Containers/onlyoffice/Dockerfile
@@ -8,4 +8,5 @@ COPY --chmod=775 healthcheck.sh /healthcheck.sh
HEALTHCHECK --start-period=60s --retries=9 CMD /healthcheck.sh
LABEL com.centurylinklabs.watchtower.enable="false" \
+ wud.watch="false" \
org.label-schema.vendor="Nextcloud"
diff --git a/Containers/postgresql/Dockerfile b/Containers/postgresql/Dockerfile
index 725b8042..56090f26 100644
--- a/Containers/postgresql/Dockerfile
+++ b/Containers/postgresql/Dockerfile
@@ -44,4 +44,5 @@ ENTRYPOINT ["/start.sh"]
HEALTHCHECK CMD /healthcheck.sh
LABEL com.centurylinklabs.watchtower.enable="false" \
+ wud.watch="false" \
org.label-schema.vendor="Nextcloud"
diff --git a/Containers/redis/Dockerfile b/Containers/redis/Dockerfile
index 7cc1ff84..cc9181ad 100644
--- a/Containers/redis/Dockerfile
+++ b/Containers/redis/Dockerfile
@@ -21,4 +21,5 @@ ENTRYPOINT ["/start.sh"]
HEALTHCHECK CMD /healthcheck.sh
LABEL com.centurylinklabs.watchtower.enable="false" \
+ wud.watch="false" \
org.label-schema.vendor="Nextcloud"
diff --git a/Containers/talk-recording/Dockerfile b/Containers/talk-recording/Dockerfile
index 65af7db4..8df5b89e 100644
--- a/Containers/talk-recording/Dockerfile
+++ b/Containers/talk-recording/Dockerfile
@@ -58,4 +58,5 @@ CMD ["python", "-m", "nextcloud.talk.recording", "--config", "/conf/recording.co
HEALTHCHECK CMD /healthcheck.sh
LABEL com.centurylinklabs.watchtower.enable="false" \
+ wud.watch="false" \
org.label-schema.vendor="Nextcloud"
diff --git a/Containers/talk/Dockerfile b/Containers/talk/Dockerfile
index fc5f0379..fb78f943 100644
--- a/Containers/talk/Dockerfile
+++ b/Containers/talk/Dockerfile
@@ -107,4 +107,5 @@ CMD ["supervisord", "-c", "/supervisord.conf"]
HEALTHCHECK CMD /healthcheck.sh
LABEL com.centurylinklabs.watchtower.enable="false" \
+ wud.watch="false" \
org.label-schema.vendor="Nextcloud"
diff --git a/Containers/watchtower/Dockerfile b/Containers/watchtower/Dockerfile
index cd5238ac..6b948c9b 100644
--- a/Containers/watchtower/Dockerfile
+++ b/Containers/watchtower/Dockerfile
@@ -24,4 +24,5 @@ USER root
ENTRYPOINT ["/start.sh"]
LABEL com.centurylinklabs.watchtower.enable="false" \
+ wud.watch="false" \
org.label-schema.vendor="Nextcloud"
diff --git a/Containers/whiteboard/Dockerfile b/Containers/whiteboard/Dockerfile
index 37ba25e0..0a45981d 100644
--- a/Containers/whiteboard/Dockerfile
+++ b/Containers/whiteboard/Dockerfile
@@ -23,4 +23,5 @@ WORKDIR /tmp
ENTRYPOINT ["/start.sh"]
LABEL com.centurylinklabs.watchtower.enable="false" \
+ wud.watch="false" \
org.label-schema.vendor="Nextcloud"
diff --git a/php/src/Docker/DockerActionManager.php b/php/src/Docker/DockerActionManager.php
index 9e8a8ff2..99264d54 100644
--- a/php/src/Docker/DockerActionManager.php
+++ b/php/src/Docker/DockerActionManager.php
@@ -434,7 +434,7 @@ readonly class DockerActionManager {
// All AIO-managed containers should not be updated externally via watchtower but gracefully by AIO's backup and update feature.
// Also DIUN should not send update notifications. See https://crazymax.dev/diun/providers/docker/#docker-labels
// Additionally set a default org.label-schema.vendor and com.docker.compose.project
- $requestBody['Labels'] = ["com.centurylinklabs.watchtower.enable" => "false", "diun.enable" => "false", "org.label-schema.vendor" => "Nextcloud", "com.docker.compose.project" => "nextcloud-aio"];
+ $requestBody['Labels'] = ["com.centurylinklabs.watchtower.enable" => "false", "wud.watch" => "false", "diun.enable" => "false", "org.label-schema.vendor" => "Nextcloud", "com.docker.compose.project" => "nextcloud-aio"];
// Containers should have a fixed host name. See https://github.com/nextcloud/all-in-one/discussions/6589
$requestBody['Hostname'] = $container->GetIdentifier();
From c5b146f84c1b517d956cc5e1796f953b8381e385 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 20 Jan 2026 04:08:44 +0000
Subject: [PATCH 06/25] build(deps): bump golang in /Containers/imaginary
Bumps golang from 1.25.5-alpine3.23 to 1.25.6-alpine3.23.
---
updated-dependencies:
- dependency-name: golang
dependency-version: 1.25.6-alpine3.23
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
Containers/imaginary/Dockerfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Containers/imaginary/Dockerfile b/Containers/imaginary/Dockerfile
index 11250a43..a0c583e0 100644
--- a/Containers/imaginary/Dockerfile
+++ b/Containers/imaginary/Dockerfile
@@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest
-FROM golang:1.25.5-alpine3.23 AS go
+FROM golang:1.25.6-alpine3.23 AS go
ENV IMAGINARY_HASH=6a274b488759a896aff02f52afee6e50b5e3a3ee
From dbabfe14f0b35d0d6df9e16dd09d626888ae602d Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 20 Jan 2026 04:09:56 +0000
Subject: [PATCH 07/25] build(deps): bump golang in /Containers/watchtower
Bumps golang from 1.25.5-alpine3.23 to 1.25.6-alpine3.23.
---
updated-dependencies:
- dependency-name: golang
dependency-version: 1.25.6-alpine3.23
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
Containers/watchtower/Dockerfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Containers/watchtower/Dockerfile b/Containers/watchtower/Dockerfile
index cd5238ac..2ee06f51 100644
--- a/Containers/watchtower/Dockerfile
+++ b/Containers/watchtower/Dockerfile
@@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest
-FROM golang:1.25.5-alpine3.23 AS go
+FROM golang:1.25.6-alpine3.23 AS go
ENV WATCHTOWER_COMMIT_HASH=f6a7b29c312bec5f389a4fb52259919f0678800b
From f58465f93022b1960428c88d4c5a65c4636aec7d Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Mon, 19 Jan 2026 15:21:28 +0100
Subject: [PATCH 08/25] DockeractionManager: rewrite `PullImage` function to
re-try 3 times before failing
Signed-off-by: Simon L.
---
php/src/Docker/DockerActionManager.php | 26 ++++++++++++++++++--------
1 file changed, 18 insertions(+), 8 deletions(-)
diff --git a/php/src/Docker/DockerActionManager.php b/php/src/Docker/DockerActionManager.php
index 9e8a8ff2..34ca4f56 100644
--- a/php/src/Docker/DockerActionManager.php
+++ b/php/src/Docker/DockerActionManager.php
@@ -503,14 +503,24 @@ readonly class DockerActionManager {
} catch (\Throwable $e) {
$imageIsThere = false;
}
- try {
- $this->guzzleClient->post($url);
- } catch (RequestException $e) {
- $message = "Could not pull image " . $imageName . ": " . $e->getResponse()?->getBody()->getContents();
- if ($imageIsThere === false) {
- throw new \Exception($message);
- } else {
- error_log($message);
+
+ $maxRetries = 3;
+ for ($attempt = 1; $attempt <= $maxRetries; $attempt++) {
+ try {
+ $this->guzzleClient->post($url);
+ break;
+ } catch (RequestException $e) {
+ $message = "Could not pull image " . $imageName . " (attempt $attempt/$maxRetries): " . $e->getResponse()?->getBody()->getContents();
+ if ($attempt === $maxRetries) {
+ if ($imageIsThere === false) {
+ throw new \Exception($message);
+ } else {
+ error_log($message);
+ }
+ } else {
+ error_log($message . ' Retrying...');
+ sleep(1);
+ }
}
}
}
From fcdd000731f025f11f6bcfe26c6e47c46bc64e63 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 21 Jan 2026 04:10:21 +0000
Subject: [PATCH 09/25] build(deps): bump nextcloud-releases/whiteboard
Bumps nextcloud-releases/whiteboard from v1.5.1 to v1.5.3.
---
updated-dependencies:
- dependency-name: nextcloud-releases/whiteboard
dependency-version: v1.5.3
dependency-type: direct:production
...
Signed-off-by: dependabot[bot]
---
Containers/whiteboard/Dockerfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Containers/whiteboard/Dockerfile b/Containers/whiteboard/Dockerfile
index 37ba25e0..31500313 100644
--- a/Containers/whiteboard/Dockerfile
+++ b/Containers/whiteboard/Dockerfile
@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:latest
# Probably from this file: https://github.com/nextcloud/whiteboard/blob/main/Dockerfile
-FROM ghcr.io/nextcloud-releases/whiteboard:v1.5.1
+FROM ghcr.io/nextcloud-releases/whiteboard:v1.5.3
USER root
RUN set -ex; \
From 3b3eea7ef02e7bf5f11dc632cfc3b654d101859f Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Wed, 21 Jan 2026 10:54:39 +0100
Subject: [PATCH 10/25] don't ask for a cute anmial picture
Signed-off-by: Simon L.
---
.github/ISSUE_TEMPLATE/Bug_report.md | 2 --
1 file changed, 2 deletions(-)
diff --git a/.github/ISSUE_TEMPLATE/Bug_report.md b/.github/ISSUE_TEMPLATE/Bug_report.md
index 5d6cc059..aca2e718 100644
--- a/.github/ISSUE_TEMPLATE/Bug_report.md
+++ b/.github/ISSUE_TEMPLATE/Bug_report.md
@@ -37,5 +37,3 @@ labels: 0. Needs triage
#### Output of `sudo docker ps -a`
#### Other valuable info
-
-#### A picture of a cute animal
From 2c968917ebcac51b6c0a6cc033fde63e8fb72cc7 Mon Sep 17 00:00:00 2001
From: szaimen <42591237+szaimen@users.noreply.github.com>
Date: Wed, 21 Jan 2026 12:03:53 +0000
Subject: [PATCH 11/25] php dependency updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
---
php/composer.lock | 48 +++++++++++++++++++++++------------------------
1 file changed, 24 insertions(+), 24 deletions(-)
diff --git a/php/composer.lock b/php/composer.lock
index ce1ae80f..75e53dfe 100644
--- a/php/composer.lock
+++ b/php/composer.lock
@@ -3111,20 +3111,20 @@
},
{
"name": "league/uri",
- "version": "7.7.0",
+ "version": "7.8.0",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/uri.git",
- "reference": "8d587cddee53490f9b82bf203d3a9aa7ea4f9807"
+ "reference": "4436c6ec8d458e4244448b069cc572d088230b76"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/uri/zipball/8d587cddee53490f9b82bf203d3a9aa7ea4f9807",
- "reference": "8d587cddee53490f9b82bf203d3a9aa7ea4f9807",
+ "url": "https://api.github.com/repos/thephpleague/uri/zipball/4436c6ec8d458e4244448b069cc572d088230b76",
+ "reference": "4436c6ec8d458e4244448b069cc572d088230b76",
"shasum": ""
},
"require": {
- "league/uri-interfaces": "^7.7",
+ "league/uri-interfaces": "^7.8",
"php": "^8.1",
"psr/http-factory": "^1"
},
@@ -3138,11 +3138,11 @@
"ext-gmp": "to improve IPV4 host parsing",
"ext-intl": "to handle IDN host with the best performance",
"ext-uri": "to use the PHP native URI class",
- "jeremykendall/php-domain-parser": "to resolve Public Suffix and Top Level Domain",
- "league/uri-components": "Needed to easily manipulate URI objects components",
- "league/uri-polyfill": "Needed to backport the PHP URI extension for older versions of PHP",
+ "jeremykendall/php-domain-parser": "to further parse the URI host and resolve its Public Suffix and Top Level Domain",
+ "league/uri-components": "to provide additional tools to manipulate URI objects components",
+ "league/uri-polyfill": "to backport the PHP URI extension for older versions of PHP",
"php-64bit": "to improve IPV4 host parsing",
- "rowbot/url": "to handle WHATWG URL",
+ "rowbot/url": "to handle URLs using the WHATWG URL Living Standard specification",
"symfony/polyfill-intl-idn": "to handle IDN host via the Symfony polyfill if ext-intl is not present"
},
"type": "library",
@@ -3197,7 +3197,7 @@
"docs": "https://uri.thephpleague.com",
"forum": "https://thephpleague.slack.com",
"issues": "https://github.com/thephpleague/uri-src/issues",
- "source": "https://github.com/thephpleague/uri/tree/7.7.0"
+ "source": "https://github.com/thephpleague/uri/tree/7.8.0"
},
"funding": [
{
@@ -3205,20 +3205,20 @@
"type": "github"
}
],
- "time": "2025-12-07T16:02:06+00:00"
+ "time": "2026-01-14T17:24:56+00:00"
},
{
"name": "league/uri-interfaces",
- "version": "7.7.0",
+ "version": "7.8.0",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/uri-interfaces.git",
- "reference": "62ccc1a0435e1c54e10ee6022df28d6c04c2946c"
+ "reference": "c5c5cd056110fc8afaba29fa6b72a43ced42acd4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/62ccc1a0435e1c54e10ee6022df28d6c04c2946c",
- "reference": "62ccc1a0435e1c54e10ee6022df28d6c04c2946c",
+ "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/c5c5cd056110fc8afaba29fa6b72a43ced42acd4",
+ "reference": "c5c5cd056110fc8afaba29fa6b72a43ced42acd4",
"shasum": ""
},
"require": {
@@ -3231,7 +3231,7 @@
"ext-gmp": "to improve IPV4 host parsing",
"ext-intl": "to handle IDN host with the best performance",
"php-64bit": "to improve IPV4 host parsing",
- "rowbot/url": "to handle WHATWG URL",
+ "rowbot/url": "to handle URLs using the WHATWG URL Living Standard specification",
"symfony/polyfill-intl-idn": "to handle IDN host via the Symfony polyfill if ext-intl is not present"
},
"type": "library",
@@ -3281,7 +3281,7 @@
"docs": "https://uri.thephpleague.com",
"forum": "https://thephpleague.slack.com",
"issues": "https://github.com/thephpleague/uri-src/issues",
- "source": "https://github.com/thephpleague/uri-interfaces/tree/7.7.0"
+ "source": "https://github.com/thephpleague/uri-interfaces/tree/7.8.0"
},
"funding": [
{
@@ -3289,7 +3289,7 @@
"type": "github"
}
],
- "time": "2025-12-07T16:03:21+00:00"
+ "time": "2026-01-15T06:54:53+00:00"
},
{
"name": "netresearch/jsonmapper",
@@ -3455,16 +3455,16 @@
},
{
"name": "phpdocumentor/reflection-docblock",
- "version": "6.0.0",
+ "version": "6.0.1",
"source": {
"type": "git",
"url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
- "reference": "02600c041e7d0f4b7d1fe1d260565ec525472fa9"
+ "reference": "2f5cbed597cb261d1ea458f3da3a9ad32e670b1e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/02600c041e7d0f4b7d1fe1d260565ec525472fa9",
- "reference": "02600c041e7d0f4b7d1fe1d260565ec525472fa9",
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/2f5cbed597cb261d1ea458f3da3a9ad32e670b1e",
+ "reference": "2f5cbed597cb261d1ea458f3da3a9ad32e670b1e",
"shasum": ""
},
"require": {
@@ -3514,9 +3514,9 @@
"description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
"support": {
"issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues",
- "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/6.0.0"
+ "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/6.0.1"
},
- "time": "2026-01-07T20:22:53+00:00"
+ "time": "2026-01-20T15:30:42+00:00"
},
{
"name": "phpdocumentor/type-resolver",
From b12c36f675274fd159ead5b19f7c74adf83302d7 Mon Sep 17 00:00:00 2001
From: szaimen <42591237+szaimen@users.noreply.github.com>
Date: Wed, 21 Jan 2026 12:12:48 +0000
Subject: [PATCH 12/25] watchtower-update automated change
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
---
Containers/watchtower/Dockerfile | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Containers/watchtower/Dockerfile b/Containers/watchtower/Dockerfile
index cd5238ac..0aeb6fd7 100644
--- a/Containers/watchtower/Dockerfile
+++ b/Containers/watchtower/Dockerfile
@@ -1,13 +1,13 @@
# syntax=docker/dockerfile:latest
FROM golang:1.25.5-alpine3.23 AS go
-ENV WATCHTOWER_COMMIT_HASH=f6a7b29c312bec5f389a4fb52259919f0678800b
+ENV WATCHTOWER_COMMIT_HASH=f522ce27e1fbe4618da54833025a95be62aa838a
RUN set -ex; \
apk upgrade --no-cache -a; \
apk add --no-cache \
build-base; \
- go install github.com/nicholas-fedor/watchtower@$WATCHTOWER_COMMIT_HASH # v1.13.1
+ go install github.com/nicholas-fedor/watchtower@$WATCHTOWER_COMMIT_HASH # v1.14.0
FROM alpine:3.23.2
From 708e542270df92a7baf4e01fc314bb45054f8183 Mon Sep 17 00:00:00 2001
From: szaimen <42591237+szaimen@users.noreply.github.com>
Date: Wed, 21 Jan 2026 12:16:29 +0000
Subject: [PATCH 13/25] nextcloud-update automated change
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
---
Containers/nextcloud/Dockerfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Containers/nextcloud/Dockerfile b/Containers/nextcloud/Dockerfile
index 9c468bbb..6968ac31 100644
--- a/Containers/nextcloud/Dockerfile
+++ b/Containers/nextcloud/Dockerfile
@@ -8,7 +8,7 @@ ENV SOURCE_LOCATION=/usr/src/nextcloud
ENV REDIS_DB_INDEX=0
# AIO settings start # Do not remove or change this line!
-ENV NEXTCLOUD_VERSION=32.0.4
+ENV NEXTCLOUD_VERSION=32.0.5
ENV AIO_TOKEN=123456
ENV AIO_URL=localhost
# AIO settings end # Do not remove or change this line!
From f59b2776c796ea4216ec8c6d5063ba5fb877e0dd Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 22 Jan 2026 04:08:30 +0000
Subject: [PATCH 14/25] build(deps): bump php in /Containers/mastercontainer
Bumps php from 8.4.16-fpm-alpine3.23 to 8.4.17-fpm-alpine3.23.
---
updated-dependencies:
- dependency-name: php
dependency-version: 8.4.17-fpm-alpine3.23
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
Containers/mastercontainer/Dockerfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Containers/mastercontainer/Dockerfile b/Containers/mastercontainer/Dockerfile
index d2019e49..ed930781 100644
--- a/Containers/mastercontainer/Dockerfile
+++ b/Containers/mastercontainer/Dockerfile
@@ -6,7 +6,7 @@ FROM docker:29.1.4-cli AS docker
FROM caddy:2.10.2-alpine AS caddy
# From https://github.com/docker-library/php/blob/master/8.4/alpine3.23/fpm/Dockerfile
-FROM php:8.4.16-fpm-alpine3.23
+FROM php:8.4.17-fpm-alpine3.23
EXPOSE 80
EXPOSE 8080
From 8eed705a906351ed15e8f379650e1c6d22021d44 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 22 Jan 2026 04:08:35 +0000
Subject: [PATCH 15/25] build(deps): bump php in /Containers/nextcloud
Bumps php from 8.3.29-fpm-alpine3.23 to 8.3.30-fpm-alpine3.23.
---
updated-dependencies:
- dependency-name: php
dependency-version: 8.3.30-fpm-alpine3.23
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
Containers/nextcloud/Dockerfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Containers/nextcloud/Dockerfile b/Containers/nextcloud/Dockerfile
index 9c468bbb..f3181a05 100644
--- a/Containers/nextcloud/Dockerfile
+++ b/Containers/nextcloud/Dockerfile
@@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest
-FROM php:8.3.29-fpm-alpine3.23
+FROM php:8.3.30-fpm-alpine3.23
ENV PHP_MEMORY_LIMIT=512M
ENV PHP_UPLOAD_LIMIT=16G
From a7c091a5b26835db3ca579e9266fa02cc37172d0 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Thu, 22 Jan 2026 12:21:26 +0100
Subject: [PATCH 16/25] mastercontainer: also add `wud.watch` label
Signed-off-by: Simon L.
---
Containers/mastercontainer/Dockerfile | 1 +
1 file changed, 1 insertion(+)
diff --git a/Containers/mastercontainer/Dockerfile b/Containers/mastercontainer/Dockerfile
index e92d0a86..2fea59d1 100644
--- a/Containers/mastercontainer/Dockerfile
+++ b/Containers/mastercontainer/Dockerfile
@@ -127,6 +127,7 @@ RUN set -ex; \
# hadolint ignore=DL3048
LABEL org.label-schema.vendor="Nextcloud" \
+ wud.watch="false" \
com.docker.compose.project="nextcloud-aio"
# hadolint ignore=DL3002
From 8fb3126ce7e11bdc9d6d2f7c609478ce72c89848 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Wed, 21 Jan 2026 14:30:23 +0100
Subject: [PATCH 17/25] `CreateContainer`: also insert the max shutdown time
into the container itself
Signed-off-by: Simon L.
---
php/src/Docker/DockerActionManager.php | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/php/src/Docker/DockerActionManager.php b/php/src/Docker/DockerActionManager.php
index 1743c4a5..fb3701a4 100644
--- a/php/src/Docker/DockerActionManager.php
+++ b/php/src/Docker/DockerActionManager.php
@@ -356,6 +356,11 @@ readonly class DockerActionManager {
$requestBody['HostConfig']['Init'] = $container->init;
+ $maxShutDownTime = $container->maxShutdownTime;
+ if ($maxShutDownTime > 0) {
+ $requestBody['StopTimeout'] = $maxShutDownTime;
+ }
+
$capAdds = $container->capAdd;
if (count($capAdds) > 0) {
$requestBody['HostConfig']['CapAdd'] = $capAdds;
From 00688a52bd9e85768398eb01c8389f940233268d Mon Sep 17 00:00:00 2001
From: szaimen <42591237+szaimen@users.noreply.github.com>
Date: Thu, 22 Jan 2026 13:12:02 +0000
Subject: [PATCH 18/25] Helm Chart updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
---
nextcloud-aio-helm-chart/Chart.yaml | 2 +-
.../templates/nextcloud-aio-apache-deployment.yaml | 6 +++---
.../templates/nextcloud-aio-apache-service.yaml | 2 +-
.../templates/nextcloud-aio-clamav-deployment.yaml | 8 ++++----
.../templates/nextcloud-aio-clamav-service.yaml | 2 +-
.../templates/nextcloud-aio-collabora-deployment.yaml | 8 ++++----
.../templates/nextcloud-aio-collabora-service.yaml | 2 +-
.../templates/nextcloud-aio-database-deployment.yaml | 8 ++++----
.../templates/nextcloud-aio-database-service.yaml | 2 +-
.../nextcloud-aio-fulltextsearch-deployment.yaml | 8 ++++----
.../templates/nextcloud-aio-fulltextsearch-service.yaml | 2 +-
.../templates/nextcloud-aio-imaginary-deployment.yaml | 6 +++---
.../templates/nextcloud-aio-imaginary-service.yaml | 2 +-
.../templates/nextcloud-aio-nextcloud-deployment.yaml | 8 ++++----
.../templates/nextcloud-aio-nextcloud-service.yaml | 2 +-
.../templates/nextcloud-aio-notify-push-deployment.yaml | 6 +++---
.../templates/nextcloud-aio-notify-push-service.yaml | 2 +-
.../templates/nextcloud-aio-onlyoffice-deployment.yaml | 8 ++++----
.../templates/nextcloud-aio-onlyoffice-service.yaml | 2 +-
.../templates/nextcloud-aio-redis-deployment.yaml | 6 +++---
.../templates/nextcloud-aio-redis-service.yaml | 2 +-
.../templates/nextcloud-aio-talk-deployment.yaml | 6 +++---
.../nextcloud-aio-talk-recording-deployment.yaml | 6 +++---
.../templates/nextcloud-aio-talk-recording-service.yaml | 2 +-
.../templates/nextcloud-aio-talk-service.yaml | 4 ++--
.../templates/nextcloud-aio-whiteboard-deployment.yaml | 6 +++---
.../templates/nextcloud-aio-whiteboard-service.yaml | 2 +-
27 files changed, 60 insertions(+), 60 deletions(-)
diff --git a/nextcloud-aio-helm-chart/Chart.yaml b/nextcloud-aio-helm-chart/Chart.yaml
index 7d990549..6288a381 100755
--- a/nextcloud-aio-helm-chart/Chart.yaml
+++ b/nextcloud-aio-helm-chart/Chart.yaml
@@ -1,6 +1,6 @@
name: nextcloud-aio-helm-chart
description: A generated Helm Chart for Nextcloud AIO from Skippbox Kompose
-version: 12.4.0
+version: 12.5.0
apiVersion: v2
keywords:
- latest
diff --git a/nextcloud-aio-helm-chart/templates/nextcloud-aio-apache-deployment.yaml b/nextcloud-aio-helm-chart/templates/nextcloud-aio-apache-deployment.yaml
index 6cdf8db8..e540791c 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-apache-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-apache-deployment.yaml
@@ -2,7 +2,7 @@ apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
- kompose.version: 1.37.0 (fb0539e64)
+ kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: nextcloud-aio-apache
name: nextcloud-aio-apache
@@ -17,7 +17,7 @@ spec:
template:
metadata:
annotations:
- kompose.version: 1.37.0 (fb0539e64)
+ kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: nextcloud-aio-apache
spec:
@@ -61,7 +61,7 @@ spec:
value: "{{ .Values.TIMEZONE }}"
- name: WHITEBOARD_HOST
value: nextcloud-aio-whiteboard
- image: ghcr.io/nextcloud-releases/aio-apache:20260114_114729
+ image: ghcr.io/nextcloud-releases/aio-apache:20260122_105751
readinessProbe:
exec:
command:
diff --git a/nextcloud-aio-helm-chart/templates/nextcloud-aio-apache-service.yaml b/nextcloud-aio-helm-chart/templates/nextcloud-aio-apache-service.yaml
index 404ee626..98e33a4d 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-apache-service.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-apache-service.yaml
@@ -2,7 +2,7 @@ apiVersion: v1
kind: Service
metadata:
annotations:
- kompose.version: 1.37.0 (fb0539e64)
+ kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: nextcloud-aio-apache
name: nextcloud-aio-apache
diff --git a/nextcloud-aio-helm-chart/templates/nextcloud-aio-clamav-deployment.yaml b/nextcloud-aio-helm-chart/templates/nextcloud-aio-clamav-deployment.yaml
index d7627802..57ec7739 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-clamav-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-clamav-deployment.yaml
@@ -3,7 +3,7 @@ apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
- kompose.version: 1.37.0 (fb0539e64)
+ kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: nextcloud-aio-clamav
name: nextcloud-aio-clamav
@@ -18,7 +18,7 @@ spec:
template:
metadata:
annotations:
- kompose.version: 1.37.0 (fb0539e64)
+ kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: nextcloud-aio-clamav
spec:
@@ -36,7 +36,7 @@ spec:
{{- end }}
initContainers:
- name: init-subpath
- image: ghcr.io/nextcloud-releases/aio-alpine:20260114_114729
+ image: ghcr.io/nextcloud-releases/aio-alpine:20260122_105751
command:
- mkdir
- "-p"
@@ -59,7 +59,7 @@ spec:
value: "{{ .Values.NEXTCLOUD_UPLOAD_LIMIT }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
- image: ghcr.io/nextcloud-releases/aio-clamav:20260114_114729
+ image: ghcr.io/nextcloud-releases/aio-clamav:20260122_105751
readinessProbe:
exec:
command:
diff --git a/nextcloud-aio-helm-chart/templates/nextcloud-aio-clamav-service.yaml b/nextcloud-aio-helm-chart/templates/nextcloud-aio-clamav-service.yaml
index 8dc8597d..8b236093 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-clamav-service.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-clamav-service.yaml
@@ -3,7 +3,7 @@ apiVersion: v1
kind: Service
metadata:
annotations:
- kompose.version: 1.37.0 (fb0539e64)
+ kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: nextcloud-aio-clamav
name: nextcloud-aio-clamav
diff --git a/nextcloud-aio-helm-chart/templates/nextcloud-aio-collabora-deployment.yaml b/nextcloud-aio-helm-chart/templates/nextcloud-aio-collabora-deployment.yaml
index 7e86c402..cd4e1368 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-collabora-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-collabora-deployment.yaml
@@ -3,7 +3,7 @@ apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
- kompose.version: 1.37.0 (fb0539e64)
+ kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: nextcloud-aio-collabora
name: nextcloud-aio-collabora
@@ -16,7 +16,7 @@ spec:
template:
metadata:
annotations:
- kompose.version: 1.37.0 (fb0539e64)
+ kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: nextcloud-aio-collabora
spec:
@@ -36,9 +36,9 @@ spec:
- name: server_name
value: "{{ .Values.NC_DOMAIN }}"
{{- if contains "--o:support_key=" (join " " (.Values.ADDITIONAL_COLLABORA_OPTIONS | default list)) }}
- image: ghcr.io/nextcloud-releases/aio-collabora-online:20260114_114729
+ image: ghcr.io/nextcloud-releases/aio-collabora-online:20260122_105751
{{- else }}
- image: ghcr.io/nextcloud-releases/aio-collabora:20260114_114729
+ image: ghcr.io/nextcloud-releases/aio-collabora:20260122_105751
{{- end }}
readinessProbe:
exec:
diff --git a/nextcloud-aio-helm-chart/templates/nextcloud-aio-collabora-service.yaml b/nextcloud-aio-helm-chart/templates/nextcloud-aio-collabora-service.yaml
index ebe7bf3f..5c81ef3e 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-collabora-service.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-collabora-service.yaml
@@ -3,7 +3,7 @@ apiVersion: v1
kind: Service
metadata:
annotations:
- kompose.version: 1.37.0 (fb0539e64)
+ kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: nextcloud-aio-collabora
name: nextcloud-aio-collabora
diff --git a/nextcloud-aio-helm-chart/templates/nextcloud-aio-database-deployment.yaml b/nextcloud-aio-helm-chart/templates/nextcloud-aio-database-deployment.yaml
index 055ecd0a..be6a9c90 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-database-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-database-deployment.yaml
@@ -2,7 +2,7 @@ apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
- kompose.version: 1.37.0 (fb0539e64)
+ kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: nextcloud-aio-database
name: nextcloud-aio-database
@@ -17,7 +17,7 @@ spec:
template:
metadata:
annotations:
- kompose.version: 1.37.0 (fb0539e64)
+ kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: nextcloud-aio-database
spec:
@@ -35,7 +35,7 @@ spec:
{{- end }}
initContainers:
- name: init-subpath
- image: ghcr.io/nextcloud-releases/aio-alpine:20260114_114729
+ image: ghcr.io/nextcloud-releases/aio-alpine:20260122_105751
command:
- mkdir
- "-p"
@@ -64,7 +64,7 @@ spec:
value: nextcloud
- name: TZ
value: "{{ .Values.TIMEZONE }}"
- image: ghcr.io/nextcloud-releases/aio-postgresql:20260114_114729
+ image: ghcr.io/nextcloud-releases/aio-postgresql:20260122_105751
readinessProbe:
exec:
command:
diff --git a/nextcloud-aio-helm-chart/templates/nextcloud-aio-database-service.yaml b/nextcloud-aio-helm-chart/templates/nextcloud-aio-database-service.yaml
index 9451d908..45fdce3a 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-database-service.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-database-service.yaml
@@ -2,7 +2,7 @@ apiVersion: v1
kind: Service
metadata:
annotations:
- kompose.version: 1.37.0 (fb0539e64)
+ kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: nextcloud-aio-database
name: nextcloud-aio-database
diff --git a/nextcloud-aio-helm-chart/templates/nextcloud-aio-fulltextsearch-deployment.yaml b/nextcloud-aio-helm-chart/templates/nextcloud-aio-fulltextsearch-deployment.yaml
index df30e6a8..bed60a0c 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-fulltextsearch-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-fulltextsearch-deployment.yaml
@@ -3,7 +3,7 @@ apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
- kompose.version: 1.37.0 (fb0539e64)
+ kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: nextcloud-aio-fulltextsearch
name: nextcloud-aio-fulltextsearch
@@ -18,13 +18,13 @@ spec:
template:
metadata:
annotations:
- kompose.version: 1.37.0 (fb0539e64)
+ kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: nextcloud-aio-fulltextsearch
spec:
initContainers:
- name: init-volumes
- image: ghcr.io/nextcloud-releases/aio-alpine:20260114_114729
+ image: ghcr.io/nextcloud-releases/aio-alpine:20260122_105751
command:
- chmod
- "777"
@@ -54,7 +54,7 @@ spec:
value: basic
- name: xpack.security.enabled
value: "false"
- image: ghcr.io/nextcloud-releases/aio-fulltextsearch:20260114_114729
+ image: ghcr.io/nextcloud-releases/aio-fulltextsearch:20260122_105751
readinessProbe:
exec:
command:
diff --git a/nextcloud-aio-helm-chart/templates/nextcloud-aio-fulltextsearch-service.yaml b/nextcloud-aio-helm-chart/templates/nextcloud-aio-fulltextsearch-service.yaml
index ae759475..efe474b3 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-fulltextsearch-service.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-fulltextsearch-service.yaml
@@ -3,7 +3,7 @@ apiVersion: v1
kind: Service
metadata:
annotations:
- kompose.version: 1.37.0 (fb0539e64)
+ kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: nextcloud-aio-fulltextsearch
name: nextcloud-aio-fulltextsearch
diff --git a/nextcloud-aio-helm-chart/templates/nextcloud-aio-imaginary-deployment.yaml b/nextcloud-aio-helm-chart/templates/nextcloud-aio-imaginary-deployment.yaml
index d2fc1375..af15d4b3 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-imaginary-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-imaginary-deployment.yaml
@@ -3,7 +3,7 @@ apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
- kompose.version: 1.37.0 (fb0539e64)
+ kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: nextcloud-aio-imaginary
name: nextcloud-aio-imaginary
@@ -16,7 +16,7 @@ spec:
template:
metadata:
annotations:
- kompose.version: 1.37.0 (fb0539e64)
+ kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: nextcloud-aio-imaginary
spec:
@@ -38,7 +38,7 @@ spec:
value: "{{ .Values.IMAGINARY_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
- image: ghcr.io/nextcloud-releases/aio-imaginary:20260114_114729
+ image: ghcr.io/nextcloud-releases/aio-imaginary:20260122_105751
readinessProbe:
exec:
command:
diff --git a/nextcloud-aio-helm-chart/templates/nextcloud-aio-imaginary-service.yaml b/nextcloud-aio-helm-chart/templates/nextcloud-aio-imaginary-service.yaml
index a5fb3266..44a57006 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-imaginary-service.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-imaginary-service.yaml
@@ -3,7 +3,7 @@ apiVersion: v1
kind: Service
metadata:
annotations:
- kompose.version: 1.37.0 (fb0539e64)
+ kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: nextcloud-aio-imaginary
name: nextcloud-aio-imaginary
diff --git a/nextcloud-aio-helm-chart/templates/nextcloud-aio-nextcloud-deployment.yaml b/nextcloud-aio-helm-chart/templates/nextcloud-aio-nextcloud-deployment.yaml
index fe72d307..8b6e8211 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-nextcloud-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-nextcloud-deployment.yaml
@@ -2,7 +2,7 @@ apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
- kompose.version: 1.37.0 (fb0539e64)
+ kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: nextcloud-aio-nextcloud
name: nextcloud-aio-nextcloud
@@ -17,7 +17,7 @@ spec:
template:
metadata:
annotations:
- kompose.version: 1.37.0 (fb0539e64)
+ kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: nextcloud-aio-nextcloud
spec:
@@ -38,7 +38,7 @@ spec:
# AIO settings start # Do not remove or change this line!
initContainers:
- name: init-volumes
- image: ghcr.io/nextcloud-releases/aio-alpine:20260114_114729
+ image: ghcr.io/nextcloud-releases/aio-alpine:20260122_105751
command:
- chmod
- "777"
@@ -190,7 +190,7 @@ spec:
value: "{{ .Values.WHITEBOARD_ENABLED }}"
- name: WHITEBOARD_SECRET
value: "{{ .Values.WHITEBOARD_SECRET }}"
- image: ghcr.io/nextcloud-releases/aio-nextcloud:20260114_114729
+ image: ghcr.io/nextcloud-releases/aio-nextcloud:20260122_105751
{{- if eq (.Values.RPSS_ENABLED | default "no") "yes" }} # AIO-config - do not change this comment!
securityContext:
# The items below only work in container context
diff --git a/nextcloud-aio-helm-chart/templates/nextcloud-aio-nextcloud-service.yaml b/nextcloud-aio-helm-chart/templates/nextcloud-aio-nextcloud-service.yaml
index 18cf84d8..08ab70f2 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-nextcloud-service.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-nextcloud-service.yaml
@@ -2,7 +2,7 @@ apiVersion: v1
kind: Service
metadata:
annotations:
- kompose.version: 1.37.0 (fb0539e64)
+ kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: nextcloud-aio-nextcloud
name: nextcloud-aio-nextcloud
diff --git a/nextcloud-aio-helm-chart/templates/nextcloud-aio-notify-push-deployment.yaml b/nextcloud-aio-helm-chart/templates/nextcloud-aio-notify-push-deployment.yaml
index 5b05336e..c8e30d05 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-notify-push-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-notify-push-deployment.yaml
@@ -2,7 +2,7 @@ apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
- kompose.version: 1.37.0 (fb0539e64)
+ kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: nextcloud-aio-notify-push
name: nextcloud-aio-notify-push
@@ -17,7 +17,7 @@ spec:
template:
metadata:
annotations:
- kompose.version: 1.37.0 (fb0539e64)
+ kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: nextcloud-aio-notify-push
spec:
@@ -57,7 +57,7 @@ spec:
value: "6379"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
- image: ghcr.io/nextcloud-releases/aio-notify-push:20260114_114729
+ image: ghcr.io/nextcloud-releases/aio-notify-push:20260122_105751
readinessProbe:
exec:
command:
diff --git a/nextcloud-aio-helm-chart/templates/nextcloud-aio-notify-push-service.yaml b/nextcloud-aio-helm-chart/templates/nextcloud-aio-notify-push-service.yaml
index 2b7bfccd..986d98d4 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-notify-push-service.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-notify-push-service.yaml
@@ -2,7 +2,7 @@ apiVersion: v1
kind: Service
metadata:
annotations:
- kompose.version: 1.37.0 (fb0539e64)
+ kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: nextcloud-aio-notify-push
name: nextcloud-aio-notify-push
diff --git a/nextcloud-aio-helm-chart/templates/nextcloud-aio-onlyoffice-deployment.yaml b/nextcloud-aio-helm-chart/templates/nextcloud-aio-onlyoffice-deployment.yaml
index 0e3a7fda..2bb79f19 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-onlyoffice-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-onlyoffice-deployment.yaml
@@ -3,7 +3,7 @@ apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
- kompose.version: 1.37.0 (fb0539e64)
+ kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: nextcloud-aio-onlyoffice
name: nextcloud-aio-onlyoffice
@@ -18,13 +18,13 @@ spec:
template:
metadata:
annotations:
- kompose.version: 1.37.0 (fb0539e64)
+ kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: nextcloud-aio-onlyoffice
spec:
initContainers:
- name: init-volumes
- image: ghcr.io/nextcloud-releases/aio-alpine:20260114_114729
+ image: ghcr.io/nextcloud-releases/aio-alpine:20260122_105751
command:
- chmod
- "777"
@@ -42,7 +42,7 @@ spec:
value: "{{ .Values.ONLYOFFICE_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
- image: ghcr.io/nextcloud-releases/aio-onlyoffice:20260114_114729
+ image: ghcr.io/nextcloud-releases/aio-onlyoffice:20260122_105751
readinessProbe:
exec:
command:
diff --git a/nextcloud-aio-helm-chart/templates/nextcloud-aio-onlyoffice-service.yaml b/nextcloud-aio-helm-chart/templates/nextcloud-aio-onlyoffice-service.yaml
index 6ff9afa1..5fc10b85 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-onlyoffice-service.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-onlyoffice-service.yaml
@@ -3,7 +3,7 @@ apiVersion: v1
kind: Service
metadata:
annotations:
- kompose.version: 1.37.0 (fb0539e64)
+ kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: nextcloud-aio-onlyoffice
name: nextcloud-aio-onlyoffice
diff --git a/nextcloud-aio-helm-chart/templates/nextcloud-aio-redis-deployment.yaml b/nextcloud-aio-helm-chart/templates/nextcloud-aio-redis-deployment.yaml
index 1ccebd79..28335e64 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-redis-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-redis-deployment.yaml
@@ -2,7 +2,7 @@ apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
- kompose.version: 1.37.0 (fb0539e64)
+ kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: nextcloud-aio-redis
name: nextcloud-aio-redis
@@ -17,7 +17,7 @@ spec:
template:
metadata:
annotations:
- kompose.version: 1.37.0 (fb0539e64)
+ kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: nextcloud-aio-redis
spec:
@@ -39,7 +39,7 @@ spec:
value: "{{ .Values.REDIS_PASSWORD }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
- image: ghcr.io/nextcloud-releases/aio-redis:20260114_114729
+ image: ghcr.io/nextcloud-releases/aio-redis:20260122_105751
readinessProbe:
exec:
command:
diff --git a/nextcloud-aio-helm-chart/templates/nextcloud-aio-redis-service.yaml b/nextcloud-aio-helm-chart/templates/nextcloud-aio-redis-service.yaml
index af82a0bb..a6a9a0a5 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-redis-service.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-redis-service.yaml
@@ -2,7 +2,7 @@ apiVersion: v1
kind: Service
metadata:
annotations:
- kompose.version: 1.37.0 (fb0539e64)
+ kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: nextcloud-aio-redis
name: nextcloud-aio-redis
diff --git a/nextcloud-aio-helm-chart/templates/nextcloud-aio-talk-deployment.yaml b/nextcloud-aio-helm-chart/templates/nextcloud-aio-talk-deployment.yaml
index 8635a6ce..679dd66e 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-talk-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-talk-deployment.yaml
@@ -3,7 +3,7 @@ apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
- kompose.version: 1.37.0 (fb0539e64)
+ kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: nextcloud-aio-talk
name: nextcloud-aio-talk
@@ -16,7 +16,7 @@ spec:
template:
metadata:
annotations:
- kompose.version: 1.37.0 (fb0539e64)
+ kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: nextcloud-aio-talk
spec:
@@ -52,7 +52,7 @@ spec:
value: "{{ .Values.TURN_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
- image: ghcr.io/nextcloud-releases/aio-talk:20260114_114729
+ image: ghcr.io/nextcloud-releases/aio-talk:20260122_105751
readinessProbe:
exec:
command:
diff --git a/nextcloud-aio-helm-chart/templates/nextcloud-aio-talk-recording-deployment.yaml b/nextcloud-aio-helm-chart/templates/nextcloud-aio-talk-recording-deployment.yaml
index 2cfcaa53..8e631656 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-talk-recording-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-talk-recording-deployment.yaml
@@ -3,7 +3,7 @@ apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
- kompose.version: 1.37.0 (fb0539e64)
+ kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: nextcloud-aio-talk-recording
name: nextcloud-aio-talk-recording
@@ -18,7 +18,7 @@ spec:
template:
metadata:
annotations:
- kompose.version: 1.37.0 (fb0539e64)
+ kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: nextcloud-aio-talk-recording
spec:
@@ -44,7 +44,7 @@ spec:
value: "{{ .Values.RECORDING_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
- image: ghcr.io/nextcloud-releases/aio-talk-recording:20260114_114729
+ image: ghcr.io/nextcloud-releases/aio-talk-recording:20260122_105751
readinessProbe:
exec:
command:
diff --git a/nextcloud-aio-helm-chart/templates/nextcloud-aio-talk-recording-service.yaml b/nextcloud-aio-helm-chart/templates/nextcloud-aio-talk-recording-service.yaml
index 4410ed72..87fe0355 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-talk-recording-service.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-talk-recording-service.yaml
@@ -3,7 +3,7 @@ apiVersion: v1
kind: Service
metadata:
annotations:
- kompose.version: 1.37.0 (fb0539e64)
+ kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: nextcloud-aio-talk-recording
name: nextcloud-aio-talk-recording
diff --git a/nextcloud-aio-helm-chart/templates/nextcloud-aio-talk-service.yaml b/nextcloud-aio-helm-chart/templates/nextcloud-aio-talk-service.yaml
index 10d17177..65388792 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-talk-service.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-talk-service.yaml
@@ -4,7 +4,7 @@ apiVersion: v1
kind: Service
metadata:
annotations:
- kompose.version: 1.37.0 (fb0539e64)
+ kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: nextcloud-aio-talk
name: nextcloud-aio-talk-public
@@ -27,7 +27,7 @@ apiVersion: v1
kind: Service
metadata:
annotations:
- kompose.version: 1.37.0 (fb0539e64)
+ kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: nextcloud-aio-talk
name: nextcloud-aio-talk
diff --git a/nextcloud-aio-helm-chart/templates/nextcloud-aio-whiteboard-deployment.yaml b/nextcloud-aio-helm-chart/templates/nextcloud-aio-whiteboard-deployment.yaml
index 50dfc3c4..5788cfa0 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-whiteboard-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-whiteboard-deployment.yaml
@@ -3,7 +3,7 @@ apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
- kompose.version: 1.37.0 (fb0539e64)
+ kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: nextcloud-aio-whiteboard
name: nextcloud-aio-whiteboard
@@ -16,7 +16,7 @@ spec:
template:
metadata:
annotations:
- kompose.version: 1.37.0 (fb0539e64)
+ kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: nextcloud-aio-whiteboard
spec:
@@ -50,7 +50,7 @@ spec:
value: redis
- name: TZ
value: "{{ .Values.TIMEZONE }}"
- image: ghcr.io/nextcloud-releases/aio-whiteboard:20260114_114729
+ image: ghcr.io/nextcloud-releases/aio-whiteboard:20260122_105751
readinessProbe:
exec:
command:
diff --git a/nextcloud-aio-helm-chart/templates/nextcloud-aio-whiteboard-service.yaml b/nextcloud-aio-helm-chart/templates/nextcloud-aio-whiteboard-service.yaml
index 8c8cb5aa..299f1ec3 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-whiteboard-service.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-whiteboard-service.yaml
@@ -3,7 +3,7 @@ apiVersion: v1
kind: Service
metadata:
annotations:
- kompose.version: 1.37.0 (fb0539e64)
+ kompose.version: 1.38.0 (a8f5d1cbd)
labels:
io.kompose.service: nextcloud-aio-whiteboard
name: nextcloud-aio-whiteboard
From c47ace7718a790c01e631ec3b4398293a298fa11 Mon Sep 17 00:00:00 2001
From: szaimen <42591237+szaimen@users.noreply.github.com>
Date: Thu, 22 Jan 2026 13:33:38 +0000
Subject: [PATCH 19/25] imaginary-update automated change
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
---
Containers/imaginary/Dockerfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Containers/imaginary/Dockerfile b/Containers/imaginary/Dockerfile
index 0a0c14ce..650c4c67 100644
--- a/Containers/imaginary/Dockerfile
+++ b/Containers/imaginary/Dockerfile
@@ -1,7 +1,7 @@
# syntax=docker/dockerfile:latest
FROM golang:1.25.6-alpine3.23 AS go
-ENV IMAGINARY_HASH=6a274b488759a896aff02f52afee6e50b5e3a3ee
+ENV IMAGINARY_HASH=6a274b488759a896aff02f52afee6e50b5e3a3ee
RUN set -ex; \
apk upgrade --no-cache -a; \
From 664ca0b26d0e69e1ebda9ea2010113b1f63b4d90 Mon Sep 17 00:00:00 2001
From: Jean-Yves <7360784+docjyJ@users.noreply.github.com>
Date: Thu, 22 Jan 2026 21:08:08 +0100
Subject: [PATCH 20/25] Add Code of conduct
See: https://github.com/nextcloud/server/blob/master/CODE_OF_CONDUCT.md
Signed-off-by: Jean-Yves <7360784+docjyJ@users.noreply.github.com>
---
CODE_OF_CONDUCT.md | 13 +++++++++++++
1 file changed, 13 insertions(+)
create mode 100644 CODE_OF_CONDUCT.md
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
new file mode 100644
index 00000000..fec85a59
--- /dev/null
+++ b/CODE_OF_CONDUCT.md
@@ -0,0 +1,13 @@
+
+In the Nextcloud community, participants from all over the world come together to create Free Software for a free internet. This is made possible by the support, hard work and enthusiasm of thousands of people, including those who create and use Nextcloud software.
+
+Our code of conduct offers some guidance to ensure Nextcloud participants can cooperate effectively in a positive and inspiring atmosphere, and to explain how together we can strengthen and support each other.
+
+The Code of Conduct is shared by all contributors and users who engage with the Nextcloud team and its community services. It presents a summary of the shared values and “common sense” thinking in our community.
+
+You can find our full code of conduct on our website: https://nextcloud.com/code-of-conduct/
+
+Please, keep our CoC in mind when you contribute! That way, everyone can be a part of our community in a productive, positive, creative and fun way.
From db07c79db1cc692903a637cb0cadd5d9b79755ca Mon Sep 17 00:00:00 2001
From: Jean-Yves <7360784+docjyJ@users.noreply.github.com>
Date: Thu, 22 Jan 2026 21:20:36 +0100
Subject: [PATCH 21/25] novodb: add (deprecated) to its display name
Signed-off-by: Jean-Yves <7360784+docjyJ@users.noreply.github.com>
---
community-containers/nocodb/nocodb.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/community-containers/nocodb/nocodb.json b/community-containers/nocodb/nocodb.json
index 7ef4cc5c..e93d173c 100644
--- a/community-containers/nocodb/nocodb.json
+++ b/community-containers/nocodb/nocodb.json
@@ -2,7 +2,7 @@
"aio_services_v1": [
{
"container_name": "nextcloud-aio-nocodb",
- "display_name": "NocoDB",
+ "display_name": "NocoDB (deprecated)",
"documentation": "https://github.com/nextcloud/all-in-one/tree/main/community-containers/nocodb",
"image": "nocodb/nocodb",
"image_tag": "latest",
From e1718faf0b4364283a4925a8b7163511f272ffae Mon Sep 17 00:00:00 2001
From: Jean-Yves <7360784+docjyJ@users.noreply.github.com>
Date: Thu, 22 Jan 2026 21:24:35 +0100
Subject: [PATCH 22/25] Update README with licensing and maintenance notes
Added caution and note about NocoDB licensing and maintenance status.
Signed-off-by: Jean-Yves <7360784+docjyJ@users.noreply.github.com>
---
community-containers/nocodb/readme.md | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/community-containers/nocodb/readme.md b/community-containers/nocodb/readme.md
index 4c1281b5..fa23f8f6 100644
--- a/community-containers/nocodb/readme.md
+++ b/community-containers/nocodb/readme.md
@@ -1,3 +1,8 @@
+> [!CAUTION]
+> NocoDB is licensed under a non-free license.
+>
+> And is no longer maintained.
+
> [!NOTE]
> This container is there to compensate for the lack of functionality in Nextcloud Tables.
>
From 0e868c4570826497fd32b24d3d4bbd7d03d6557d Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Fri, 23 Jan 2026 12:08:36 +0000
Subject: [PATCH 23/25] build(deps): bump actions/checkout in
/.github/workflows
Bumps [actions/checkout](https://github.com/actions/checkout) from 6.0.1 to 6.0.2.
- [Release notes](https://github.com/actions/checkout/releases)
- [Commits](https://github.com/actions/checkout/compare/v6.0.1...v6.0.2)
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: 6.0.2
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
.github/workflows/codespell.yml | 2 +-
.github/workflows/collabora.yml | 2 +-
.github/workflows/community-containers.yml | 2 +-
.github/workflows/dependency-updates.yml | 2 +-
.github/workflows/docker-lint.yml | 2 +-
.github/workflows/helm-release.yml | 2 +-
.github/workflows/imaginary-update.yml | 2 +-
.github/workflows/json-validator.yml | 2 +-
.github/workflows/lint-helm.yml | 2 +-
.github/workflows/lint-php.yml | 2 +-
.github/workflows/lint-yaml.yml | 2 +-
.github/workflows/nextcloud-update.yml | 2 +-
.github/workflows/php-deprecation-detector.yml | 2 +-
.github/workflows/playwright-on-push.yml | 2 +-
.github/workflows/playwright-on-workflow-dispatch.yml | 2 +-
.github/workflows/psalm-update-baseline.yml | 2 +-
.github/workflows/psalm.yml | 2 +-
.github/workflows/shellcheck.yml | 2 +-
.github/workflows/talk.yml | 2 +-
.github/workflows/twig-lint.yml | 2 +-
.github/workflows/update-copyright.yml | 2 +-
.github/workflows/update-helm.yml | 2 +-
.github/workflows/update-yaml.yml | 2 +-
.github/workflows/watchtower-update.yml | 2 +-
24 files changed, 24 insertions(+), 24 deletions(-)
diff --git a/.github/workflows/codespell.yml b/.github/workflows/codespell.yml
index 2bd4823a..2fff5ddb 100644
--- a/.github/workflows/codespell.yml
+++ b/.github/workflows/codespell.yml
@@ -12,7 +12,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out code
- uses: actions/checkout@v6.0.1
+ uses: actions/checkout@v6.0.2
- name: Check spelling
uses: codespell-project/actions-codespell@8f01853be192eb0f849a5c7d721450e7a467c579 # v2
with:
diff --git a/.github/workflows/collabora.yml b/.github/workflows/collabora.yml
index 8e464925..abf5d520 100644
--- a/.github/workflows/collabora.yml
+++ b/.github/workflows/collabora.yml
@@ -10,7 +10,7 @@ jobs:
name: update collabora
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v6.0.1
+ - uses: actions/checkout@v6.0.2
- name: Run collabora-profile-update
run: |
rm -f php/cool-seccomp-profile.json
diff --git a/.github/workflows/community-containers.yml b/.github/workflows/community-containers.yml
index 7446677f..cfe35ee0 100644
--- a/.github/workflows/community-containers.yml
+++ b/.github/workflows/community-containers.yml
@@ -16,7 +16,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
- uses: actions/checkout@v6.0.1
+ uses: actions/checkout@v6.0.2
- name: Validate structure
run: |
CONTAINERS="$(find ./community-containers -mindepth 1 -maxdepth 1 -type d)"
diff --git a/.github/workflows/dependency-updates.yml b/.github/workflows/dependency-updates.yml
index 1b448139..3a40363b 100644
--- a/.github/workflows/dependency-updates.yml
+++ b/.github/workflows/dependency-updates.yml
@@ -10,7 +10,7 @@ jobs:
name: Run dependency update script
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v6.0.1
+ - uses: actions/checkout@v6.0.2
- uses: shivammathur/setup-php@7bf05c6b704e0b9bfee22300130a31b5ea68d593 # v2
with:
php-version: 8.4
diff --git a/.github/workflows/docker-lint.yml b/.github/workflows/docker-lint.yml
index 917df1d6..b9ce68ef 100644
--- a/.github/workflows/docker-lint.yml
+++ b/.github/workflows/docker-lint.yml
@@ -25,7 +25,7 @@ jobs:
steps:
- name: Checkout
- uses: actions/checkout@v6.0.1
+ uses: actions/checkout@v6.0.2
- name: Install hadolint
run: |
diff --git a/.github/workflows/helm-release.yml b/.github/workflows/helm-release.yml
index a4f441c2..f621f229 100644
--- a/.github/workflows/helm-release.yml
+++ b/.github/workflows/helm-release.yml
@@ -13,7 +13,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
- uses: actions/checkout@v6.0.1
+ uses: actions/checkout@v6.0.2
- name: Turnstyle
uses: softprops/turnstyle@e565d2d86403c5d23533937e95980570545e5586 # v2
diff --git a/.github/workflows/imaginary-update.yml b/.github/workflows/imaginary-update.yml
index 060b376e..7440a09f 100644
--- a/.github/workflows/imaginary-update.yml
+++ b/.github/workflows/imaginary-update.yml
@@ -10,7 +10,7 @@ jobs:
name: update to latest imaginary commit on master branch
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v6.0.1
+ - uses: actions/checkout@v6.0.2
- name: Run imaginary-update
run: |
# Imaginary
diff --git a/.github/workflows/json-validator.yml b/.github/workflows/json-validator.yml
index 4cbd28ed..4213296b 100644
--- a/.github/workflows/json-validator.yml
+++ b/.github/workflows/json-validator.yml
@@ -16,7 +16,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
- uses: actions/checkout@v6.0.1
+ uses: actions/checkout@v6.0.2
- name: Validate Json
run: |
sudo apt-get update
diff --git a/.github/workflows/lint-helm.yml b/.github/workflows/lint-helm.yml
index 7beec865..1ea877a6 100644
--- a/.github/workflows/lint-helm.yml
+++ b/.github/workflows/lint-helm.yml
@@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
- uses: actions/checkout@v6.0.1
+ uses: actions/checkout@v6.0.2
with:
fetch-depth: 0
diff --git a/.github/workflows/lint-php.yml b/.github/workflows/lint-php.yml
index 0c5e2c74..12cba439 100644
--- a/.github/workflows/lint-php.yml
+++ b/.github/workflows/lint-php.yml
@@ -36,7 +36,7 @@ jobs:
steps:
- name: Checkout
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v5.0.1
+ uses: actions/checkout@0c366fd6a839edf440554fa01a7085ccba70ac98 # v5.0.1
with:
persist-credentials: false
diff --git a/.github/workflows/lint-yaml.yml b/.github/workflows/lint-yaml.yml
index 3bb1d33f..010077ca 100644
--- a/.github/workflows/lint-yaml.yml
+++ b/.github/workflows/lint-yaml.yml
@@ -24,7 +24,7 @@ jobs:
steps:
- name: Checkout
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
+ uses: actions/checkout@0c366fd6a839edf440554fa01a7085ccba70ac98 # v6.0.1
with:
persist-credentials: false
diff --git a/.github/workflows/nextcloud-update.yml b/.github/workflows/nextcloud-update.yml
index 7fe5bbf9..b96ac2b9 100644
--- a/.github/workflows/nextcloud-update.yml
+++ b/.github/workflows/nextcloud-update.yml
@@ -11,7 +11,7 @@ jobs:
name: Run nextcloud-update script
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v6.0.1
+ - uses: actions/checkout@v6.0.2
- name: Run nextcloud-update script
run: |
# Inspired by https://github.com/nextcloud/docker/blob/master/update.sh
diff --git a/.github/workflows/php-deprecation-detector.yml b/.github/workflows/php-deprecation-detector.yml
index c8638683..ee35830c 100644
--- a/.github/workflows/php-deprecation-detector.yml
+++ b/.github/workflows/php-deprecation-detector.yml
@@ -16,7 +16,7 @@ jobs:
name: PHP Deprecation Detector
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v6.0.1
+ - uses: actions/checkout@v6.0.2
- name: Set up php
uses: shivammathur/setup-php@7bf05c6b704e0b9bfee22300130a31b5ea68d593 # v2
with:
diff --git a/.github/workflows/playwright-on-push.yml b/.github/workflows/playwright-on-push.yml
index af8dec02..28ba7d9c 100644
--- a/.github/workflows/playwright-on-push.yml
+++ b/.github/workflows/playwright-on-push.yml
@@ -24,7 +24,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v6.0.1
+ - uses: actions/checkout@v6.0.2
- uses: actions/setup-node@v6
with:
diff --git a/.github/workflows/playwright-on-workflow-dispatch.yml b/.github/workflows/playwright-on-workflow-dispatch.yml
index 252a6510..483811f2 100644
--- a/.github/workflows/playwright-on-workflow-dispatch.yml
+++ b/.github/workflows/playwright-on-workflow-dispatch.yml
@@ -13,7 +13,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v6.0.1
+ - uses: actions/checkout@v6.0.2
- uses: actions/setup-node@v6
with:
diff --git a/.github/workflows/psalm-update-baseline.yml b/.github/workflows/psalm-update-baseline.yml
index 1bd47ac4..14715108 100644
--- a/.github/workflows/psalm-update-baseline.yml
+++ b/.github/workflows/psalm-update-baseline.yml
@@ -10,7 +10,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v6.0.1
+ - uses: actions/checkout@v6.0.2
- name: Set up php
uses: shivammathur/setup-php@7bf05c6b704e0b9bfee22300130a31b5ea68d593 # v2
diff --git a/.github/workflows/psalm.yml b/.github/workflows/psalm.yml
index bdae585e..cbc77bf5 100644
--- a/.github/workflows/psalm.yml
+++ b/.github/workflows/psalm.yml
@@ -32,7 +32,7 @@ jobs:
name: static-psalm-analysis
steps:
- name: Checkout
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v5.0.1
+ uses: actions/checkout@0c366fd6a839edf440554fa01a7085ccba70ac98 # v5.0.1
with:
persist-credentials: false
diff --git a/.github/workflows/shellcheck.yml b/.github/workflows/shellcheck.yml
index 86954033..0ef69085 100644
--- a/.github/workflows/shellcheck.yml
+++ b/.github/workflows/shellcheck.yml
@@ -15,7 +15,7 @@ jobs:
name: Check Shell
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v6.0.1
+ - uses: actions/checkout@v6.0.2
- name: Run Shellcheck
uses: ludeeus/action-shellcheck@00cae500b08a931fb5698e11e79bfbd38e612a38 # v2.0.0
with:
diff --git a/.github/workflows/talk.yml b/.github/workflows/talk.yml
index f28ad9f2..c1b96d24 100644
--- a/.github/workflows/talk.yml
+++ b/.github/workflows/talk.yml
@@ -10,7 +10,7 @@ jobs:
name: update talk
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v6.0.1
+ - uses: actions/checkout@v6.0.2
- name: Run talk-container-update
run: |
# Recording
diff --git a/.github/workflows/twig-lint.yml b/.github/workflows/twig-lint.yml
index 7e9b5cdc..3b04704d 100644
--- a/.github/workflows/twig-lint.yml
+++ b/.github/workflows/twig-lint.yml
@@ -24,7 +24,7 @@ jobs:
steps:
- name: Checkout
- uses: actions/checkout@v6.0.1
+ uses: actions/checkout@v6.0.2
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@7bf05c6b704e0b9bfee22300130a31b5ea68d593 # v2
diff --git a/.github/workflows/update-copyright.yml b/.github/workflows/update-copyright.yml
index f7960ead..95329d3c 100644
--- a/.github/workflows/update-copyright.yml
+++ b/.github/workflows/update-copyright.yml
@@ -8,4 +8,4 @@ jobs:
name: update copyright
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v6.0.1
+ - uses: actions/checkout@v6.0.2
diff --git a/.github/workflows/update-helm.yml b/.github/workflows/update-helm.yml
index ee8e4669..2f441735 100644
--- a/.github/workflows/update-helm.yml
+++ b/.github/workflows/update-helm.yml
@@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
- uses: actions/checkout@v6.0.1
+ uses: actions/checkout@v6.0.2
- name: update helm chart
run: |
set -x
diff --git a/.github/workflows/update-yaml.yml b/.github/workflows/update-yaml.yml
index ba92fd50..41b0adf2 100644
--- a/.github/workflows/update-yaml.yml
+++ b/.github/workflows/update-yaml.yml
@@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
- uses: actions/checkout@v6.0.1
+ uses: actions/checkout@v6.0.2
- name: update yaml files
run: |
sudo bash manual-install/update-yaml.sh
diff --git a/.github/workflows/watchtower-update.yml b/.github/workflows/watchtower-update.yml
index be929285..b26cd1a4 100644
--- a/.github/workflows/watchtower-update.yml
+++ b/.github/workflows/watchtower-update.yml
@@ -10,7 +10,7 @@ jobs:
name: update watchtower
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v6.0.1
+ - uses: actions/checkout@v6.0.2
- name: Run watchtower-container-update
run: |
# Watchtower
From 9c464bcf1d8874129c76d4c0e5d770defb3b48ef Mon Sep 17 00:00:00 2001
From: Josh
Date: Tue, 20 Jan 2026 13:28:35 -0500
Subject: [PATCH 24/25] refactor(app/public): tidy up bootstrapper/main
endpoint
Signed-off-by: Josh
---
php/public/index.php | 244 ++++++++++++++++++++++++++-----------------
1 file changed, 148 insertions(+), 96 deletions(-)
diff --git a/php/public/index.php b/php/public/index.php
index b57f65a5..10ad662f 100644
--- a/php/public/index.php
+++ b/php/public/index.php
@@ -1,148 +1,205 @@
get(\AIO\Data\DataConst::class);
ini_set('session.save_path', $dataConst->GetSessionDirectory());
-// Auto logout on browser close
-ini_set('session.cookie_lifetime', '0');
-
-# Keep session for 24h max
-ini_set('session.gc_maxlifetime', '86400');
-
-// Create app
-AppFactory::setContainer($container);
+//-------------------------------------------------
+// Application Creation and Core Middleware
+//-------------------------------------------------
$app = AppFactory::create();
$responseFactory = $app->getResponseFactory();
-// Register Middleware On Container
-$container->set(Guard::class, function () use ($responseFactory) {
+$container->set(Guard::class, function () use ($responseFactory): Guard {
$guard = new Guard($responseFactory);
$guard->setPersistentTokenMode(true);
return $guard;
});
-// Register Middleware To Be Executed On All Routes
session_start();
$app->add(Guard::class);
-// Create Twig
-$twig = Twig::create(__DIR__ . '/../templates/', ['cache' => false]);
+$twig = Twig::create(__DIR__ . '/../templates/',
+ [ 'cache' => AIO_TWIG_CACHE_PATH ]
+);
$app->add(TwigMiddleware::create($app, $twig));
+
$twig->addExtension(new \AIO\Twig\CsrfExtension($container->get(Guard::class)));
-// Auth Middleware
$app->add(new \AIO\Middleware\AuthMiddleware($container->get(\AIO\Auth\AuthManager::class)));
-// API
-$app->post('/api/docker/watchtower', AIO\Controller\DockerController::class . ':StartWatchtowerContainer');
-$app->get('/api/docker/getwatchtower', AIO\Controller\DockerController::class . ':StartWatchtowerContainer');
-$app->post('/api/docker/start', AIO\Controller\DockerController::class . ':StartContainer');
-$app->post('/api/docker/backup', AIO\Controller\DockerController::class . ':StartBackupContainerBackup');
-$app->post('/api/docker/backup-check', AIO\Controller\DockerController::class . ':StartBackupContainerCheck');
-$app->post('/api/docker/backup-list', AIO\Controller\DockerController::class . ':StartBackupContainerList');
-$app->post('/api/docker/backup-check-repair', AIO\Controller\DockerController::class . ':StartBackupContainerCheckRepair');
-$app->post('/api/docker/backup-test', AIO\Controller\DockerController::class . ':StartBackupContainerTest');
-$app->post('/api/docker/restore', AIO\Controller\DockerController::class . ':StartBackupContainerRestore');
-$app->post('/api/docker/stop', AIO\Controller\DockerController::class . ':StopContainer');
-$app->get('/api/docker/logs', AIO\Controller\DockerController::class . ':GetLogs');
-$app->post('/api/auth/login', AIO\Controller\LoginController::class . ':TryLogin');
-$app->get('/api/auth/getlogin', AIO\Controller\LoginController::class . ':GetTryLogin');
-$app->post('/api/auth/logout', AIO\Controller\LoginController::class . ':Logout');
-$app->post('/api/configuration', \AIO\Controller\ConfigurationController::class . ':SetConfig');
+//-------------------------------------------------
+// API Routes
+//-------------------------------------------------
+$app->group('/api/docker', function (RouteCollectorProxy $group): void {
+ // Docker Container management
+ $group->post('/watchtower', AIO\Controller\DockerController::class . ':StartWatchtowerContainer');
+ $group->get('/getwatchtower', AIO\Controller\DockerController::class . ':StartWatchtowerContainer');
+ $group->post('/start', AIO\Controller\DockerController::class . ':StartContainer');
+ $group->post('/stop', AIO\Controller\DockerController::class . ':StopContainer');
+ $group->get('/logs', AIO\Controller\DockerController::class . ':GetLogs');
+ // Backups
+ $group->post('/backup', AIO\Controller\DockerController::class . ':StartBackupContainerBackup');
+ $group->post('/backup-check', AIO\Controller\DockerController::class . ':StartBackupContainerCheck');
+ $group->post('/backup-list', AIO\Controller\DockerController::class . ':StartBackupContainerList');
+ $group->post('/backup-check-repair', AIO\Controller\DockerController::class . ':StartBackupContainerCheckRepair');
+ $group->post('/backup-test', AIO\Controller\DockerController::class . ':StartBackupContainerTest');
+ $group->post('/restore', AIO\Controller\DockerController::class . ':StartBackupContainerRestore');
+});
-// Views
-$app->get('/containers', function (Request $request, Response $response, array $args) use ($container) {
+// Auth-related
+$app->group('/api/auth', function (RouteCollectorProxy $group): void {
+ $group->post('/login', AIO\Controller\LoginController::class . ':TryLogin');
+ $group->get('/getlogin', AIO\Controller\LoginController::class . ':GetTryLogin');
+ $group->post('/logout', AIO\Controller\LoginController::class . ':Logout');
+});
+
+// Configuration endpoints
+$app->post('/api/configuration', AIO\Controller\ConfigurationController::class . ':SetConfig');
+
+//-------------------------------------------------
+// Views Routes
+//-------------------------------------------------
+
+// Containers
+$app->get('/containers', function (Request $request, Response $response, array $args) use ($container): Response {
$view = Twig::fromRequest($request);
$view->addExtension(new \AIO\Twig\ClassExtension());
+
/** @var \AIO\Data\ConfigurationManager $configurationManager */
$configurationManager = $container->get(\AIO\Data\ConfigurationManager::class);
/** @var \AIO\Docker\DockerActionManager $dockerActionManager */
$dockerActionManager = $container->get(\AIO\Docker\DockerActionManager::class);
/** @var \AIO\Controller\DockerController $dockerController */
$dockerController = $container->get(\AIO\Controller\DockerController::class);
+
+ // Ensure master container is attached to the required Docker network
$dockerActionManager->ConnectMasterContainerToNetwork();
+ // Ensure the domaincheck container is started for domain configuration validation
$dockerController->StartDomaincheckContainer();
- // Check if bypass_mastercontainer_update is provided on the URL, a special developer mode to bypass a mastercontainer update and use local image.
+ // URL parameters
$params = $request->getQueryParams();
- $bypass_mastercontainer_update = isset($params['bypass_mastercontainer_update']);
- $bypass_container_update = isset($params['bypass_container_update']);
- $skip_domain_validation = isset($params['skip_domain_validation']);
+ $bypassMastercontainerUpdate = isset($params['bypass_mastercontainer_update']);
+ $bypassContainerUpdate = isset($params['bypass_container_update']);
+ $skipDomainValidation = isset($params['skip_domain_validation']);
return $view->render($response, 'containers.twig', [
+ // === Instance & Domain Information ===
'domain' => $configurationManager->GetDomain(),
+ 'timezone' => $configurationManager->GetTimezone(),
+ 'current_channel' => $dockerActionManager->GetCurrentChannel(),
+
+ // ---- Ports & Networking ----
'apache_port' => $configurationManager->GetApachePort(),
+ 'talk_port' => $configurationManager->GetTalkPort(),
+
+ // ---- Containers & Status ----
+ 'containers' => (new \AIO\ContainerDefinitionFetcher($configurationManager, $container))->FetchDefinition(),
+ 'is_mastercontainer_update_available' => $bypassMastercontainerUpdate ? false : $dockerActionManager->IsMastercontainerUpdateAvailable(),
+ 'was_start_button_clicked' => $configurationManager->wasStartButtonClicked(),
+ 'has_update_available' => $dockerActionManager->isAnyUpdateAvailable(),
+ 'automatic_updates' => $configurationManager->areAutomaticUpdatesEnabled(),
+
+ // ---- Backups ----
'borg_backup_host_location' => $configurationManager->GetBorgBackupHostLocation(),
'borg_remote_repo' => $configurationManager->GetBorgRemoteRepo(),
'borg_public_key' => $configurationManager->GetBorgPublicKey(),
- 'nextcloud_password' => $configurationManager->GetAndGenerateSecret('NEXTCLOUD_PASSWORD'),
- 'containers' => (new \AIO\ContainerDefinitionFetcher($container->get(\AIO\Data\ConfigurationManager::class), $container))->FetchDefinition(),
'borgbackup_password' => $configurationManager->GetAndGenerateSecret('BORGBACKUP_PASSWORD'),
- 'is_mastercontainer_update_available' => ( $bypass_mastercontainer_update ? false : $dockerActionManager->IsMastercontainerUpdateAvailable() ),
'has_backup_run_once' => $configurationManager->hasBackupRunOnce(),
'is_backup_container_running' => $dockerActionManager->isBackupContainerRunning(),
'backup_exit_code' => $dockerActionManager->GetBackupcontainerExitCode(),
'is_instance_restore_attempt' => $configurationManager->isInstanceRestoreAttempt(),
'borg_backup_mode' => $configurationManager->GetBackupMode(),
- 'was_start_button_clicked' => $configurationManager->wasStartButtonClicked(),
- 'has_update_available' => $dockerActionManager->isAnyUpdateAvailable(),
'last_backup_time' => $configurationManager->GetLastBackupTime(),
'backup_times' => $configurationManager->GetBackupTimes(),
- 'current_channel' => $dockerActionManager->GetCurrentChannel(),
- 'is_clamav_enabled' => $configurationManager->isClamavEnabled(),
- 'is_onlyoffice_enabled' => $configurationManager->isOnlyofficeEnabled(),
- 'is_collabora_enabled' => $configurationManager->isCollaboraEnabled(),
- 'is_talk_enabled' => $configurationManager->isTalkEnabled(),
'borg_restore_password' => $configurationManager->GetBorgRestorePassword(),
'daily_backup_time' => $configurationManager->GetDailyBackupTime(),
'is_daily_backup_running' => $configurationManager->isDailyBackupRunning(),
- 'timezone' => $configurationManager->GetTimezone(),
- 'skip_domain_validation' => $configurationManager->shouldDomainValidationBeSkipped($skip_domain_validation),
- 'talk_port' => $configurationManager->GetTalkPort(),
- 'collabora_dictionaries' => $configurationManager->GetCollaboraDictionaries(),
- 'collabora_additional_options' => $configurationManager->GetAdditionalCollaboraOptions(),
- 'automatic_updates' => $configurationManager->areAutomaticUpdatesEnabled(),
- 'is_backup_section_enabled' => $configurationManager->isBackupSectionEnabled(),
- 'is_imaginary_enabled' => $configurationManager->isImaginaryEnabled(),
- 'is_fulltextsearch_enabled' => $configurationManager->isFulltextsearchEnabled(),
'additional_backup_directories' => $configurationManager->GetAdditionalBackupDirectoriesString(),
+
+ // ---- Nextcloud and PHP Config ----
+ 'nextcloud_password' => $configurationManager->GetAndGenerateSecret('NEXTCLOUD_PASSWORD'),
'nextcloud_datadir' => $configurationManager->GetNextcloudDatadirMount(),
'nextcloud_mount' => $configurationManager->GetNextcloudMount(),
'nextcloud_upload_limit' => $configurationManager->GetNextcloudUploadLimit(),
'nextcloud_max_time' => $configurationManager->GetNextcloudMaxTime(),
'nextcloud_memory_limit' => $configurationManager->GetNextcloudMemoryLimit(),
+
+ // ---- Feature/App Enablement ----
+ 'is_clamav_enabled' => $configurationManager->isClamavEnabled(),
+ 'is_onlyoffice_enabled' => $configurationManager->isOnlyofficeEnabled(),
+ 'is_collabora_enabled' => $configurationManager->isCollaboraEnabled(),
+ 'is_talk_enabled' => $configurationManager->isTalkEnabled(),
+ 'is_backup_section_enabled' => $configurationManager->isBackupSectionEnabled(),
+ 'is_imaginary_enabled' => $configurationManager->isImaginaryEnabled(),
+ 'is_fulltextsearch_enabled' => $configurationManager->isFulltextsearchEnabled(),
'is_dri_device_enabled' => $configurationManager->isDriDeviceEnabled(),
'is_nvidia_gpu_enabled' => $configurationManager->isNvidiaGpuEnabled(),
'is_talk_recording_enabled' => $configurationManager->isTalkRecordingEnabled(),
'is_docker_socket_proxy_enabled' => $configurationManager->isDockerSocketProxyEnabled(),
'is_whiteboard_enabled' => $configurationManager->isWhiteboardEnabled(),
+
+ // ---- Integration-specific Customization ----
+ 'collabora_dictionaries' => $configurationManager->GetCollaboraDictionaries(),
+ 'collabora_additional_options' => $configurationManager->GetAdditionalCollaboraOptions(),
+
+ // ---- Community Containers ----
'community_containers' => $configurationManager->listAvailableCommunityContainers(),
'community_containers_enabled' => $configurationManager->GetEnabledCommunityContainers(),
- 'bypass_container_update' => $bypass_container_update,
+
+ // ---- Misc Flags ----
+ 'skip_domain_validation' => $configurationManager->shouldDomainValidationBeSkipped($skipDomainValidation),
+ 'bypass_container_update' => $bypassContainerUpdate,
]);
-})->setName('profile');
-$app->get('/login', function (Request $request, Response $response, array $args) use ($container) {
+});
+
+// Login
+$app->get('/login', function (Request $request, Response $response, array $args) use ($container): Response {
$view = Twig::fromRequest($request);
/** @var \AIO\Docker\DockerActionManager $dockerActionManager */
$dockerActionManager = $container->get(\AIO\Docker\DockerActionManager::class);
@@ -150,51 +207,46 @@ $app->get('/login', function (Request $request, Response $response, array $args)
'is_login_allowed' => $dockerActionManager->isLoginAllowed(),
]);
});
-$app->get('/setup', function (Request $request, Response $response, array $args) use ($container) {
+
+// Setup
+$app->get('/setup', function (Request $request, Response $response, array $args) use ($container): Response {
$view = Twig::fromRequest($request);
/** @var \AIO\Data\Setup $setup */
$setup = $container->get(\AIO\Data\Setup::class);
- if(!$setup->CanBeInstalled()) {
- return $view->render(
- $response,
- 'already-installed.twig'
- );
+ if (!$setup->CanBeInstalled()) {
+ return $view->render($response, 'already-installed.twig');
}
-
- return $view->render(
- $response,
- 'setup.twig',
- [
+ return $view->render($response, 'setup.twig', [
'password' => $setup->Setup(),
- ]
- );
+ ]);
});
-// Auth Redirector
-$app->get('/', function (\Psr\Http\Message\RequestInterface $request, Response $response, array $args) use ($container) {
+//-------------------------------------------------
+// Root Redirector
+//-------------------------------------------------
+$app->get('/', function (Request $request, Response $response, array $args) use ($container): Response {
/** @var \AIO\Auth\AuthManager $authManager */
$authManager = $container->get(\AIO\Auth\AuthManager::class);
-
/** @var \AIO\Data\Setup $setup */
$setup = $container->get(\AIO\Data\Setup::class);
- if($setup->CanBeInstalled()) {
- return $response
- ->withHeader('Location', 'setup')
- ->withStatus(302);
- }
- if($authManager->IsAuthenticated()) {
- return $response
- ->withHeader('Location', 'containers')
- ->withStatus(302);
- } else {
- return $response
- ->withHeader('Location', 'login')
- ->withStatus(302);
+ if ($setup->CanBeInstalled()) {
+ return $response->withHeader('Location', 'setup')->withStatus(302);
}
+ if ($authManager->IsAuthenticated()) {
+ return $response->withHeader('Location', 'containers')->withStatus(302);
+ }
+ return $response->withHeader('Location', 'login')->withStatus(302);
});
-$errorMiddleware = $app->addErrorMiddleware(false, true, true);
+//-------------------------------------------------
+// Error Middleware
+//-------------------------------------------------
+
+// TODO: Figure out why the default plain text renderer is being used by logging
+// TODO: Change logging to not generate stack traces for 404s
+// TODO: Change logging to log the path
+$errorMiddleware = $app->addErrorMiddleware(AIO_DISPLAY_ERRORS, true, true);
$app->run();
From 4a2d5bbfda047ca9d4466c5c6cfb4520755af89e Mon Sep 17 00:00:00 2001
From: Josh
Date: Tue, 20 Jan 2026 13:50:05 -0500
Subject: [PATCH 25/25] chore: some additional refvisions
Signed-off-by: Josh
---
php/public/index.php | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/php/public/index.php b/php/public/index.php
index 10ad662f..102a9fd9 100644
--- a/php/public/index.php
+++ b/php/public/index.php
@@ -25,7 +25,6 @@ const AIO_MAX_EXECUTION_TIME = '7200'; // (2h) in case of a very slow inter
const AIO_SESSION_MAX_LIFETIME = '86400'; // (24h)
const AIO_COOKIE_LIFETIME = '0'; // Auto logout on browser close
const AIO_LOG_ERRORS_MAX_LEN = '0'; // Log whole log messages
-
const AIO_TWIG_CACHE_PATH = false; // e.g., __DIR__ . '/../var/twig-cache'
const AIO_DISPLAY_ERRORS = false;
@@ -54,6 +53,7 @@ ini_set('session.save_path', $dataConst->GetSessionDirectory());
$app = AppFactory::create();
$responseFactory = $app->getResponseFactory();
+// Register CSRF middleware (container-only)
$container->set(Guard::class, function () use ($responseFactory): Guard {
$guard = new Guard($responseFactory);
$guard->setPersistentTokenMode(true);
@@ -61,15 +61,20 @@ $container->set(Guard::class, function () use ($responseFactory): Guard {
});
session_start();
+
+// Activate CSRF middleware for all routes
$app->add(Guard::class);
+// Setup and activate Twig middleware
$twig = Twig::create(__DIR__ . '/../templates/',
[ 'cache' => AIO_TWIG_CACHE_PATH ]
);
$app->add(TwigMiddleware::create($app, $twig));
+// Add CSRF extension to Twig so templates can access CSRF tokens
$twig->addExtension(new \AIO\Twig\CsrfExtension($container->get(Guard::class)));
+// Establish and activate authentication middleware for all routes
$app->add(new \AIO\Middleware\AuthMiddleware($container->get(\AIO\Auth\AuthManager::class)));
//-------------------------------------------------