From 1ad0fcf1b6b414e629be3b92e486653713902a56 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Fri, 17 Jan 2025 13:52:33 +0100
Subject: [PATCH 0001/1064] improve check for auth.docker.io
Signed-off-by: Simon L.
---
Containers/mastercontainer/start.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Containers/mastercontainer/start.sh b/Containers/mastercontainer/start.sh
index 7424c436..bca074ae 100644
--- a/Containers/mastercontainer/start.sh
+++ b/Containers/mastercontainer/start.sh
@@ -285,7 +285,7 @@ fi
# Check if auth.docker.io is reachable
# Solves issues like https://github.com/nextcloud/all-in-one/discussions/5268
-if ! curl https://auth.docker.io/token | grep -q token; then
+if ! curl https://auth.docker.io/token 2>&1 | grep -q token; then
print_red "Could not reach https://auth.docker.io."
echo "Most likely is something blocking access to it."
echo "You should be able to fix this by using https://github.com/nextcloud/all-in-one/tree/main/manual-install"
From a425f5b49bc2a82eeb9e714acdb799ef0a4c96e1 Mon Sep 17 00:00:00 2001
From: Thorsten Schaefer
Date: Fri, 17 Jan 2025 19:07:37 +0100
Subject: [PATCH 0002/1064] Support custom port for onlyoffice
Signed-off-by: Thorsten Schaefer
---
Containers/apache/Caddyfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Containers/apache/Caddyfile b/Containers/apache/Caddyfile
index d635f329..64fb5f93 100644
--- a/Containers/apache/Caddyfile
+++ b/Containers/apache/Caddyfile
@@ -40,7 +40,7 @@ https://{$ADDITIONAL_TRUSTED_DOMAIN}:443,
route /onlyoffice/* {
uri strip_prefix /onlyoffice
reverse_proxy {$ONLYOFFICE_HOST}:80 {
- header_up X-Forwarded-Host {http.request.host}/onlyoffice
+ header_up X-Forwarded-Host {http.request.hostport}/onlyoffice
header_up X-Forwarded-Proto https
}
}
From ec3895beef69361672a1d32374050f9123eab647 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Mon, 20 Jan 2025 13:36:10 +0100
Subject: [PATCH 0003/1064] apache: add docs to aio interface
Signed-off-by: Simon L.
---
php/containers.json | 1 +
1 file changed, 1 insertion(+)
diff --git a/php/containers.json b/php/containers.json
index 1457b0de..57117d83 100644
--- a/php/containers.json
+++ b/php/containers.json
@@ -3,6 +3,7 @@
{
"container_name": "nextcloud-aio-apache",
"image_tag": "%AIO_CHANNEL%",
+ "documentation": "https://github.com/nextcloud/all-in-one/discussions/2105",
"depends_on": [
"nextcloud-aio-onlyoffice",
"nextcloud-aio-collabora",
From c578a6e3f3d521a01361e83d4e278a429031f9f4 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Mon, 20 Jan 2025 13:20:06 +0100
Subject: [PATCH 0004/1064] DockerActionManager: improve the logging
Signed-off-by: Simon L.
---
php/src/Controller/DockerController.php | 2 +-
php/src/Docker/DockerActionManager.php | 8 ++++----
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/php/src/Controller/DockerController.php b/php/src/Controller/DockerController.php
index f040e169..8c2d3abe 100644
--- a/php/src/Controller/DockerController.php
+++ b/php/src/Controller/DockerController.php
@@ -46,7 +46,7 @@ readonly class DockerController {
if ($pullImage) {
if (!$this->dockerActionManager->isDockerHubReachable($container)) {
$pullImage = false;
- error_log('Not pulling the image for the ' . $container->GetContainerName() . ' container because docker hub does not seem to be reachable.');
+ error_log('Not pulling the ' . $container->GetContainerName() . ' image for the ' . $container->GetIdentifier() . ' container because docker hub does not seem to be reachable.');
}
}
diff --git a/php/src/Docker/DockerActionManager.php b/php/src/Docker/DockerActionManager.php
index e3d7c337..3ec37499 100644
--- a/php/src/Docker/DockerActionManager.php
+++ b/php/src/Docker/DockerActionManager.php
@@ -167,7 +167,7 @@ readonly class DockerActionManager {
try {
$this->guzzleClient->post($url);
} catch (RequestException $e) {
- throw new \Exception("Could not start container " . $container->GetIdentifier() . ": " . $e->getMessage());
+ throw new \Exception("Could not start container " . $container->GetIdentifier() . ": " . $e->getResponse()?->getBody()->getContents());
}
}
@@ -588,7 +588,7 @@ readonly class DockerActionManager {
]
);
} catch (RequestException $e) {
- throw new \Exception("Could not create container " . $container->GetIdentifier() . ": " . $e->getMessage());
+ throw new \Exception("Could not create container " . $container->GetIdentifier() . ": " . $e->getResponse()?->getBody()->getContents());
}
}
@@ -623,7 +623,7 @@ readonly class DockerActionManager {
try {
$this->guzzleClient->post($url);
} catch (RequestException $e) {
- $message = "Could not pull image " . $imageName . ". Please run 'sudo docker exec -it nextcloud-aio-mastercontainer docker pull " . $imageName . "' in order to find out why it failed.";
+ $message = "Could not pull image " . $imageName . ": " . $e->getResponse()?->getBody()->getContents();
if ($imageIsThere === false) {
throw new \Exception($message);
} else {
@@ -883,7 +883,7 @@ readonly class DockerActionManager {
} catch (RequestException $e) {
// 409 is undocumented and gets thrown if the network already exists.
if ($e->getCode() !== 409) {
- throw new \Exception("Could not create the nextcloud-aio network: " . $e->getMessage());
+ throw new \Exception("Could not create the nextcloud-aio network: " . $e->getResponse()?->getBody()->getContents());
}
}
}
From 03b846b3f435e9eb9b7df06463cea76eddf98387 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Tue, 21 Jan 2025 14:49:56 +0100
Subject: [PATCH 0005/1064] aio-interface: update wording for entering the
domain
Signed-off-by: Simon L.
---
php/templates/containers.twig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/php/templates/containers.twig b/php/templates/containers.twig
index 57dfc3f1..54dc563d 100644
--- a/php/templates/containers.twig
+++ b/php/templates/containers.twig
@@ -101,7 +101,7 @@
{% else %}
AIO is currently in "reverse proxy mode" which means that it can be installed behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else) and does not do the TLS proxying itself.
{% endif %}
-
Please type the domain that will be used for Nextcloud below in order to create a new AIO instance.
+
Please type the domain that will be used for Nextcloud.
{% if skip_domain_validation == true %}
Please note: The domain validation is disabled so any domain will be accepted here! Make sure you do not make a typo here as you will not be able to change it afterwards!
{% endif %}
From bfc5f4044836740f814567f58e4ba1c9dfaac4a9 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Thu, 27 Jun 2024 10:59:08 +0200
Subject: [PATCH 0006/1064] community-containers: add makemkv
Signed-off-by: Simon L.
---
community-containers/makemkv/makemkv.json | 58 +++++++++++++++++++++++
community-containers/makemkv/readme.md | 20 ++++++++
php/containers-schema.json | 2 +-
3 files changed, 79 insertions(+), 1 deletion(-)
create mode 100644 community-containers/makemkv/makemkv.json
create mode 100644 community-containers/makemkv/readme.md
diff --git a/community-containers/makemkv/makemkv.json b/community-containers/makemkv/makemkv.json
new file mode 100644
index 00000000..e8d7f8dd
--- /dev/null
+++ b/community-containers/makemkv/makemkv.json
@@ -0,0 +1,58 @@
+{
+ "aio_services_v1": [
+ {
+ "container_name": "nextcloud-aio-makekv",
+ "display_name": "MakeMKV",
+ "documentation": "https://github.com/nextcloud/all-in-one/tree/main/community-containers/makemkv",
+ "image": "jlesage/makemkv",
+ "image_tag": "latest",
+ "internal_port": "5802",
+ "restart": "unless-stopped",
+ "ports": [
+ {
+ "ip_binding": "",
+ "port_number": "5802",
+ "protocol": "tcp"
+ }
+ ],
+ "volumes": [
+ {
+ "source": "nextcloud_aio_makemkv",
+ "destination": "/config",
+ "writeable": true
+ },
+ {
+ "source": "%NEXTCLOUD_DATADIR%",
+ "destination": "/storage",
+ "writeable": false
+ },
+ {
+ "source": "%NEXTCLOUD_MOUNT%",
+ "destination": "/output",
+ "writeable": true
+ },
+ {
+ "source": "/dev",
+ "destination": "/dev",
+ "writeable": false
+ }
+ ],
+ "environment": [
+ "TZ=%TIMEZONE%",
+ "SECURE_CONNECTION=1",
+ "WEB_AUTHENTICATION=1",
+ "USER_ID=33",
+ "GROUP_ID=33",
+ "WEB_AUTHENTICATION_USERNAME=makemkv",
+ "WEB_AUTHENTICATION_PASSWORD=%MAKEMKV_PASSWORD%",
+ "WEB_LISTENING_PORT=5802"
+ ],
+ "secrets": [
+ "MAKEMKV_PASSWORD"
+ ],
+ "backup_volumes": [
+ "nextcloud_aio_makemkv"
+ ]
+ }
+ ]
+}
diff --git a/community-containers/makemkv/readme.md b/community-containers/makemkv/readme.md
new file mode 100644
index 00000000..fa26be40
--- /dev/null
+++ b/community-containers/makemkv/readme.md
@@ -0,0 +1,20 @@
+## MakeMKV
+This container bundles MakeMKV and auto-configures it for you.
+
+### Notes
+- This container should only be run in home networks
+- ⚠️ This container mounts all devices from the host inside the container in order to be able to access the external DVD/Blu-ray drives which is a security issue. However no better solution was found for the time being.
+- This container only works on Linux and not on Docker-Desktop.
+- This container requires the [`NEXTCLOUD_MOUNT` variable in AIO to be set](https://github.com/nextcloud/all-in-one?tab=readme-ov-file#how-to-allow-the-nextcloud-container-to-access-directories-on-the-host). Otherwise the output will not be saved correctly..
+- After adding and starting the container, you need to visit `https://internal.ip.of.server:5802` in order to log in with the `makemkv` user and the password that you can retrieve when running `sudo docker inspect nextcloud-aio-makemkv | grep WEB_AUTHENTICATION_PASSWORD`. (It uses a self-signed certificate, so you need to accept the warning).
+- After the first login, you can adjust the `/output` directory in the MakeMKV settings to a subdirectory of the root of your chosen `NEXTCLOUD_MOUNT`. (by default `NEXTCLOUD_MOUNT` is mounted to `/output` inside the container. Thus all data is written to the root of it)
+- The configured `NEXTCLOUD_DATADIR` is getting mounted to `/storage` inside the container.
+- The config data of MakeMKV will be automatically included in AIOs backup solution!
+- ⚠️ After you are done doing your operations, remove the container for better security again from the stack: https://github.com/nextcloud/all-in-one/tree/main/community-containers#how-to-remove-containers-from-aios-stack
+- See https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers how to add it to the AIO stack
+
+### Repository
+https://github.com/jlesage/docker-makemkv
+
+### Maintainer
+https://github.com/szaimen
diff --git a/php/containers-schema.json b/php/containers-schema.json
index 9f2141d3..8b59c3d8 100644
--- a/php/containers-schema.json
+++ b/php/containers-schema.json
@@ -213,7 +213,7 @@
},
"source": {
"type": "string",
- "pattern": "^((nextcloud_aio_[a-z_]+)|(%[A-Z_]+%))$"
+ "pattern": "^((nextcloud_aio_[a-z_]+)|(%[A-Z_]+%)|(/dev))$"
},
"writeable": {
"type": "boolean"
From 7468386397b23fb9828bc8e8de961f2ca581fe63 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Thu, 16 Jan 2025 16:37:37 +0100
Subject: [PATCH 0007/1064] add borgbackup-viewer community container
Signed-off-by: Simon L.
---
.../borgbackup-viewer/borgbackup-viewer.json | 70 +++++++++++++++++++
.../borgbackup-viewer/readme.md | 17 +++++
php/src/Docker/DockerActionManager.php | 10 ++-
php/templates/containers.twig | 3 +
readme.md | 6 ++
5 files changed, 103 insertions(+), 3 deletions(-)
create mode 100644 community-containers/borgbackup-viewer/borgbackup-viewer.json
create mode 100644 community-containers/borgbackup-viewer/readme.md
diff --git a/community-containers/borgbackup-viewer/borgbackup-viewer.json b/community-containers/borgbackup-viewer/borgbackup-viewer.json
new file mode 100644
index 00000000..417cc660
--- /dev/null
+++ b/community-containers/borgbackup-viewer/borgbackup-viewer.json
@@ -0,0 +1,70 @@
+{
+ "aio_services_v1": [
+ {
+ "container_name": "nextcloud-aio-borgbackup-viewer",
+ "image_tag": "v1",
+ "display_name": "Borg Backup Viewer",
+ "documentation": "https://github.com/nextcloud/all-in-one/tree/main/community-containers/borgbackup-viewer",
+ "image": "szaimen/aio-borgbackup-viewer",
+ "internal_port": "5801",
+ "ports": [
+ {
+ "ip_binding": "",
+ "port_number": "5801",
+ "protocol": "tcp"
+ }
+ ],
+ "environment": [
+ "BORG_HOST_ID=nextcloud-aio-borgbackup-viewer",
+ "WEB_AUTHENTICATION_USERNAME=nextcloud",
+ "WEB_AUTHENTICATION_PASSWORD=%BORGBACKUP_VIEWER_PASSWORD%",
+ "WEB_LISTENING_PORT=5801",
+ "BORG_PASSPHRASE=%BORGBACKUP_PASSWORD%",
+ "BORG_REPO=/mnt/borgbackup/borg"
+ ],
+ "secrets": [
+ "BORGBACKUP_VIEWER_PASSWORD",
+ "BORGBACKUP_PASSWORD"
+ ],
+ "volumes": [
+ {
+ "source": "nextcloud_aio_backup_cache",
+ "destination": "/root",
+ "writeable": true
+ },
+ {
+ "source": "%NEXTCLOUD_DATADIR%",
+ "destination": "/nextcloud_aio_volumes/nextcloud_aio_nextcloud_data",
+ "writeable": true
+ },
+ {
+ "source": "nextcloud_aio_mastercontainer",
+ "destination": "/nextcloud_aio_volumes/nextcloud_aio_mastercontainer",
+ "writeable": true
+ },
+ {
+ "source": "%BORGBACKUP_HOST_LOCATION%",
+ "destination": "/mnt/borgbackup",
+ "writeable": true
+ },
+ {
+ "source": "nextcloud_aio_elasticsearch",
+ "destination": "/nextcloud_aio_volumes/nextcloud_aio_elasticsearch",
+ "writeable": true
+ },
+ {
+ "source": "nextcloud_aio_redis",
+ "destination": "/mnt/redis",
+ "writeable": true
+ }
+ ],
+ "devices": [
+ "/dev/fuse"
+ ],
+ "cap_add": [
+ "SYS_ADMIN"
+ ],
+ "apparmor_unconfined": true
+ }
+ ]
+}
diff --git a/community-containers/borgbackup-viewer/readme.md b/community-containers/borgbackup-viewer/readme.md
new file mode 100644
index 00000000..42b692ec
--- /dev/null
+++ b/community-containers/borgbackup-viewer/readme.md
@@ -0,0 +1,17 @@
+## Borgbackup Viewer
+This container allows to view the local borg repository in a web session. It also allows you to restore files and folders from the backup by using desktop programs in a web browser.
+
+### Notes
+- After adding and starting the container, you need to visit `https://ip.address.of.this.server:5801` in order to log in with the user `nextcloud` and the password that you can retrieve when running `sudo docker inspect nextcloud-aio-borgbackup-viewer | grep WEB_AUTHENTICATION_PASSWORD`. (It uses a self-signed certificate, so you need to accept the warning).
+- Then, you should see a terminal. There type in `borg mount /mnt/borgbackup/borg /tmp/borg` to mount the backup archive at `/tmp/borg` inside the container. Afterwards type in `nautilus /tmp/borg` which will show a file explorer and allows you to see all the files. You can then copy files and folders back to their initial mountpoints inside `/nextcloud_aio_volumes/`, `/host_mounts/` and `/docker_volumes/`. ⚠️ Be very carefully while doing that as can break your instance!
+- After you are done with the operation, click on the terminal in the background and press `[CTRL]+[c]` multiple times to close any open application. Then run `umount /tmp/borg` to unmount the mountpoint correctly.
+- You can also delete specific archives by running `borg list`, delete a specific archive e.g. via `borg delete --stats --progress "::20220223_174237-nextcloud-aio"` and compact the archives via `borg compact`. After doing so, make sure to update the backup archives list in the AIO interface! You can do so by clicking on the `Check backup integrity` button or `Create backup` button.
+- ⚠️ After you are done doing your operations, remove the container for better security again from the stack: https://github.com/nextcloud/all-in-one/tree/main/community-containers#how-to-remove-containers-from-aios-stack
+- See https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers how to add it to the AIO stack
+
+### Repository
+https://github.com/szaimen/aio-borgbackup-viewer
+
+### Maintainer
+https://github.com/szaimen
+
diff --git a/php/src/Docker/DockerActionManager.php b/php/src/Docker/DockerActionManager.php
index e3d7c337..39c612cf 100644
--- a/php/src/Docker/DockerActionManager.php
+++ b/php/src/Docker/DockerActionManager.php
@@ -541,19 +541,23 @@ readonly class DockerActionManager {
$mounts = [];
// Special things for the backup container which should not be exposed in the containers.json
- if ($container->GetIdentifier() === 'nextcloud-aio-borgbackup') {
+ if (str_starts_with($container->GetIdentifier(), 'nextcloud-aio-borgbackup')) {
// Additional backup directories
foreach ($this->getAllBackupVolumes() as $additionalBackupVolumes) {
if ($additionalBackupVolumes !== '') {
$mounts[] = ["Type" => "volume", "Source" => $additionalBackupVolumes, "Target" => "/nextcloud_aio_volumes/" . $additionalBackupVolumes, "ReadOnly" => false];
}
}
+
+ // Make volumes read only in case of borgbackup container. The viewer makes them writeable
+ $isReadOnly = $container->GetIdentifier() === 'nextcloud-aio-borgbackup';
+
foreach ($this->configurationManager->GetAdditionalBackupDirectoriesArray() as $additionalBackupDirectories) {
if ($additionalBackupDirectories !== '') {
if (!str_starts_with($additionalBackupDirectories, '/')) {
- $mounts[] = ["Type" => "volume", "Source" => $additionalBackupDirectories, "Target" => "/docker_volumes/" . $additionalBackupDirectories, "ReadOnly" => true];
+ $mounts[] = ["Type" => "volume", "Source" => $additionalBackupDirectories, "Target" => "/docker_volumes/" . $additionalBackupDirectories, "ReadOnly" => $isReadOnly];
} else {
- $mounts[] = ["Type" => "bind", "Source" => $additionalBackupDirectories, "Target" => "/host_mounts" . $additionalBackupDirectories, "ReadOnly" => true, "BindOptions" => ["NonRecursive" => true]];
+ $mounts[] = ["Type" => "bind", "Source" => $additionalBackupDirectories, "Target" => "/host_mounts" . $additionalBackupDirectories, "ReadOnly" => $isReadOnly, "BindOptions" => ["NonRecursive" => true]];
}
}
}
diff --git a/php/templates/containers.twig b/php/templates/containers.twig
index 57dfc3f1..91c5f2a7 100644
--- a/php/templates/containers.twig
+++ b/php/templates/containers.twig
@@ -504,6 +504,9 @@
{% endif %}
{% if has_backup_run_once == true %}
+
Backup Viewer
+
There is now a community container that allows to access your backups in a web session. See this documentation.
+
Backup check
Click on the button below to perform a backup integrity check. This is an option that verifies that your backup is intact. It shouldn't be needed in most situations.
{# Add 2nd tab warning #}
From 21dfc131ad552e9504119f23cd6f309d1ad2f49d Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Tue, 28 Jan 2025 11:11:41 +0100
Subject: [PATCH 0031/1064] fix showing ui-secret in aio-interface
Signed-off-by: Simon L.
---
php/templates/containers.twig | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/php/templates/containers.twig b/php/templates/containers.twig
index 756b3f98..43468d84 100644
--- a/php/templates/containers.twig
+++ b/php/templates/containers.twig
@@ -283,7 +283,7 @@
(docs)
{% endif %}
{% if container.GetUiSecret() != '' %}
- (password: {{ GetUiSecret.GetUiSecret() }} )
+ (password: {{ container.GetUiSecret() }} )
{% endif %}
{% elseif container.GetRunningState().value == 'running' %}
@@ -293,7 +293,7 @@
(docs)
{% endif %}
{% if container.GetUiSecret() != '' %}
- (password: {{ GetUiSecret.GetUiSecret() }} )
+ (password: {{ container.GetUiSecret() }} )
{% endif %}
{% else %}
@@ -303,7 +303,7 @@
(docs)
{% endif %}
{% if container.GetUiSecret() != '' %}
- (password: {{ GetUiSecret.GetUiSecret() }} )
+ (password: {{ container.GetUiSecret() }} )
{% endif %}
{% endif %}
From 1542c894c12de690da5d052e0334144204b5a85a Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Tue, 28 Jan 2025 11:48:06 +0100
Subject: [PATCH 0032/1064] fix formatting of password in aio-interface
Signed-off-by: Simon L.
---
php/templates/containers.twig | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/php/templates/containers.twig b/php/templates/containers.twig
index 43468d84..f167dd5d 100644
--- a/php/templates/containers.twig
+++ b/php/templates/containers.twig
@@ -283,7 +283,7 @@
(docs)
{% endif %}
{% if container.GetUiSecret() != '' %}
- (password: {{ container.GetUiSecret() }} )
+ (password: {{ container.GetUiSecret() }})
{% endif %}
{% elseif container.GetRunningState().value == 'running' %}
@@ -293,7 +293,7 @@
(docs)
{% endif %}
{% if container.GetUiSecret() != '' %}
- (password: {{ container.GetUiSecret() }} )
+ (password: {{ container.GetUiSecret() }})
{% endif %}
{% else %}
@@ -303,7 +303,7 @@
(docs)
{% endif %}
{% if container.GetUiSecret() != '' %}
- (password: {{ container.GetUiSecret() }} )
+ (password: {{ container.GetUiSecret() }})
{% endif %}
{% endif %}
From a87d7b3aa97190cc0a5af7e5ebe27887032ab176 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Tue, 28 Jan 2025 11:49:35 +0100
Subject: [PATCH 0033/1064] scrutiny does not allow init
Signed-off-by: Simon L.
---
community-containers/scrutiny/scrutiny.json | 1 +
1 file changed, 1 insertion(+)
diff --git a/community-containers/scrutiny/scrutiny.json b/community-containers/scrutiny/scrutiny.json
index 6d0900fd..7fe369c5 100644
--- a/community-containers/scrutiny/scrutiny.json
+++ b/community-containers/scrutiny/scrutiny.json
@@ -7,6 +7,7 @@
"image": "szaimen/aio-scrutiny",
"image_tag": "v1",
"internal_port": "8000",
+ "init": false,
"restart": "unless-stopped",
"ports": [
{
From 365e8f6f79d326ad6d2b5c4a2c83e5bba1a870d1 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Tue, 28 Jan 2025 12:16:51 +0100
Subject: [PATCH 0034/1064] whiteboard: add tmpfs in app as this seems to be
required now
Signed-off-by: Simon L.
---
php/containers.json | 3 +++
1 file changed, 3 insertions(+)
diff --git a/php/containers.json b/php/containers.json
index 57117d83..7a4d455f 100644
--- a/php/containers.json
+++ b/php/containers.json
@@ -857,6 +857,9 @@
"expose": [
"3002"
],
+ "tmpfs": [
+ "/app"
+ ],
"internal_port": "3002",
"environment": [
"TZ=%TIMEZONE%",
From 92f0f2bc4472bb51a9c8ff021c7d63a88e532009 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Tue, 28 Jan 2025 12:36:47 +0100
Subject: [PATCH 0035/1064] try to fix whiteboard
Signed-off-by: Simon L.
---
Containers/whiteboard/Dockerfile | 2 ++
Containers/whiteboard/start.sh | 2 +-
php/containers.json | 2 +-
3 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/Containers/whiteboard/Dockerfile b/Containers/whiteboard/Dockerfile
index d20705ef..1000ecbb 100644
--- a/Containers/whiteboard/Dockerfile
+++ b/Containers/whiteboard/Dockerfile
@@ -13,6 +13,8 @@ COPY --chmod=775 healthcheck.sh /healthcheck.sh
HEALTHCHECK CMD /healthcheck.sh
+WORKDIR /tmp
+
ENTRYPOINT ["/start.sh"]
LABEL com.centurylinklabs.watchtower.enable="false"
diff --git a/Containers/whiteboard/start.sh b/Containers/whiteboard/start.sh
index 576bd094..962df9b9 100644
--- a/Containers/whiteboard/start.sh
+++ b/Containers/whiteboard/start.sh
@@ -14,4 +14,4 @@ fi
export REDIS_URL="redis://$REDIS_USER:$REDIS_HOST_PASSWORD@$REDIS_HOST/$REDIS_DB_INDEX"
# Run it
-exec npm run server:start
+exec npm --prefix /app run server:start
diff --git a/php/containers.json b/php/containers.json
index 7a4d455f..32978f20 100644
--- a/php/containers.json
+++ b/php/containers.json
@@ -858,7 +858,7 @@
"3002"
],
"tmpfs": [
- "/app"
+ "/tmp"
],
"internal_port": "3002",
"environment": [
From 417d36644f4ed51cecd262bd2422a266da4803ca Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Tue, 28 Jan 2025 12:42:33 +0100
Subject: [PATCH 0036/1064] talk: add set x for easier debugging
Signed-off-by: Simon L.
---
Containers/talk/start.sh | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Containers/talk/start.sh b/Containers/talk/start.sh
index d1037f8c..185dde8a 100644
--- a/Containers/talk/start.sh
+++ b/Containers/talk/start.sh
@@ -30,12 +30,14 @@ if [ -n "$IPv4_ADDRESS_TALK" ] && [ "$IPv4_ADDRESS_TALK_RELAY" = "$IPv4_ADDRESS_
IPv4_ADDRESS_TALK=""
fi
+set -x
IP_BINDING="::"
if grep -q "1" /sys/module/ipv6/parameters/disable \
|| grep -q "1" /proc/sys/net/ipv6/conf/all/disable_ipv6 \
|| grep -q "1" /proc/sys/net/ipv6/conf/default/disable_ipv6; then
IP_BINDING="0.0.0.0"
fi
+set +x
# Turn
cat << TURN_CONF > "/conf/eturnal.yml"
From f03990199363ebd9cf4f78ac726980cd4bf2ffce Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Tue, 28 Jan 2025 13:03:43 +0100
Subject: [PATCH 0037/1064] fix whiteboard
Signed-off-by: Simon L.
---
php/containers.json | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/php/containers.json b/php/containers.json
index 32978f20..d384053c 100644
--- a/php/containers.json
+++ b/php/containers.json
@@ -867,7 +867,8 @@
"JWT_SECRET_KEY=%WHITEBOARD_SECRET%",
"STORAGE_STRATEGY=redis",
"REDIS_HOST=nextcloud-aio-redis",
- "REDIS_HOST_PASSWORD=%REDIS_PASSWORD%"
+ "REDIS_HOST_PASSWORD=%REDIS_PASSWORD%",
+ "BACKUP_DIR=/tmp"
],
"secrets": [
"WHITEBOARD_SECRET",
From bd09fc02b83528492c5eab6d9ebafe5cafd7f317 Mon Sep 17 00:00:00 2001
From: szaimen <42591237+szaimen@users.noreply.github.com>
Date: Tue, 28 Jan 2025 12:32:17 +0000
Subject: [PATCH 0038/1064] Yaml updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
---
manual-install/latest.yml | 3 +++
1 file changed, 3 insertions(+)
diff --git a/manual-install/latest.yml b/manual-install/latest.yml
index 99efa300..8bebf41c 100644
--- a/manual-install/latest.yml
+++ b/manual-install/latest.yml
@@ -459,6 +459,8 @@ services:
retries: 3
expose:
- "3002"
+ tmpfs:
+ - /tmp
environment:
- TZ=${TIMEZONE}
- NEXTCLOUD_URL=https://${NC_DOMAIN}
@@ -466,6 +468,7 @@ services:
- STORAGE_STRATEGY=redis
- REDIS_HOST=nextcloud-aio-redis
- REDIS_HOST_PASSWORD=${REDIS_PASSWORD}
+ - BACKUP_DIR=/tmp
restart: unless-stopped
profiles:
- whiteboard
From 3a2b1a2efefd7e083fefe081d888df1a72663688 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Wed, 29 Jan 2025 10:28:36 +0100
Subject: [PATCH 0039/1064] fix space
Signed-off-by: Simon L.
---
Containers/nextcloud/config/s3.config.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Containers/nextcloud/config/s3.config.php b/Containers/nextcloud/config/s3.config.php
index b973fbc4..cd08f7fc 100644
--- a/Containers/nextcloud/config/s3.config.php
+++ b/Containers/nextcloud/config/s3.config.php
@@ -30,4 +30,4 @@ if (getenv('OBJECTSTORE_S3_BUCKET')) {
if ($sse_c_key) {
$CONFIG['objectstore']['arguments']['sse_c_key'] = $sse_c_key;
}
-}
+}
From f3ed548add2c9132e41144e68a350128708b3c43 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 30 Jan 2025 04:24:44 +0000
Subject: [PATCH 0040/1064] build(deps): bump haproxy in
/Containers/docker-socket-proxy
Bumps haproxy from 3.1.2-alpine to 3.1.3-alpine.
---
updated-dependencies:
- dependency-name: haproxy
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
Containers/docker-socket-proxy/Dockerfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Containers/docker-socket-proxy/Dockerfile b/Containers/docker-socket-proxy/Dockerfile
index 93ce5884..bad6ea3e 100644
--- a/Containers/docker-socket-proxy/Dockerfile
+++ b/Containers/docker-socket-proxy/Dockerfile
@@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest
-FROM haproxy:3.1.2-alpine
+FROM haproxy:3.1.3-alpine
# hadolint ignore=DL3002
USER root
From ee3d2a4db75b87fb9eadcdb9cf6aa0dc7ca0413a Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Thu, 30 Jan 2025 11:36:12 +0100
Subject: [PATCH 0041/1064] run-exec-commands.sh. adjust message when waiting
for container
Signed-off-by: Simon L.
---
Containers/nextcloud/run-exec-commands.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Containers/nextcloud/run-exec-commands.sh b/Containers/nextcloud/run-exec-commands.sh
index e917a96d..4fff009c 100644
--- a/Containers/nextcloud/run-exec-commands.sh
+++ b/Containers/nextcloud/run-exec-commands.sh
@@ -2,7 +2,7 @@
# Wait until the apache container is ready
while ! nc -z "$APACHE_HOST" "$APACHE_PORT"; do
- echo "Waiting for Apache to become available..."
+ echo "Waiting for $APACHE_HOST to become available..."
sleep 15
done
From 8bac3fd2fe5499f745300611ecff6fade6987114 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Fri, 31 Jan 2025 05:09:47 +0000
Subject: [PATCH 0042/1064] build(deps): bump collabora/code in
/Containers/collabora
Bumps collabora/code from 24.04.12.1.1 to 24.04.12.2.1.
---
updated-dependencies:
- dependency-name: collabora/code
dependency-type: direct:production
...
Signed-off-by: dependabot[bot]
---
Containers/collabora/Dockerfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Containers/collabora/Dockerfile b/Containers/collabora/Dockerfile
index 08470f88..450d201e 100644
--- a/Containers/collabora/Dockerfile
+++ b/Containers/collabora/Dockerfile
@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:latest
# From a file located probably somewhere here: https://github.com/CollaboraOnline/online/tree/master/docker
-FROM collabora/code:24.04.12.1.1
+FROM collabora/code:24.04.12.2.1
USER root
ARG DEBIAN_FRONTEND=noninteractive
From 1b3b38523869751d4bc6026e2efabca2e79b20d6 Mon Sep 17 00:00:00 2001
From: Anvil5465 <119350594+Anvil5465@users.noreply.github.com>
Date: Sun, 2 Feb 2025 08:40:36 -0500
Subject: [PATCH 0043/1064] Update readme.md
Add requirement for proxy support setting with fail2ban
Signed-off-by: Anvil5465 <119350594+Anvil5465@users.noreply.github.com>
---
community-containers/jellyseerr/readme.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/community-containers/jellyseerr/readme.md b/community-containers/jellyseerr/readme.md
index d6e606df..756f2475 100644
--- a/community-containers/jellyseerr/readme.md
+++ b/community-containers/jellyseerr/readme.md
@@ -5,7 +5,7 @@ This container bundles Jellyseerr and auto-configures it for you.
- This container is only intended to be used inside home networks as it uses http for its management page by default.
- After adding and starting the container, you can directly visit `http://ip.address.of.server:5055` and access your new Jellyseerr instance, which can be used to manage Plex, Jellyfin, and Emby.
- In order to access your Jellyseerr 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 [Jellyseerr's reverse proxy documentation.](https://docs.jellyseerr.dev/extending-jellyseerr/reverse-proxy), OR use the Caddy community container that will automatically configure requests.$NC_DOMAIN to redirect to your Jellyseerr.
-- If you want to secure the installation with fail2ban, you might want to check out https://github.com/nextcloud/all-in-one/tree/main/community-containers/fail2ban
+- If you want to secure the installation with fail2ban, you might want to check out https://github.com/nextcloud/all-in-one/tree/main/community-containers/fail2ban. Note that [enabling the proxy support option in Jellyseerr](https://docs.jellyseerr.dev/using-jellyseerr/settings/general#enable-proxy-support) is required for this to work properly.
- The config of Jellyseerr will be automatically included in AIO's backup solution!
- See [here](https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers) how to add it to the AIO stack.
From 844dcd068b2e9a5bbf77ce24865903afce008153 Mon Sep 17 00:00:00 2001
From: Anvil5465 <119350594+Anvil5465@users.noreply.github.com>
Date: Sun, 2 Feb 2025 08:47:02 -0500
Subject: [PATCH 0044/1064] Update readme.md
Recommendation to enable CSRF protection when using with the caddy container
Signed-off-by: Anvil5465 <119350594+Anvil5465@users.noreply.github.com>
---
community-containers/jellyseerr/readme.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/community-containers/jellyseerr/readme.md b/community-containers/jellyseerr/readme.md
index 756f2475..0d8e049d 100644
--- a/community-containers/jellyseerr/readme.md
+++ b/community-containers/jellyseerr/readme.md
@@ -4,7 +4,7 @@ This container bundles Jellyseerr and auto-configures it for you.
### Notes
- This container is only intended to be used inside home networks as it uses http for its management page by default.
- After adding and starting the container, you can directly visit `http://ip.address.of.server:5055` and access your new Jellyseerr instance, which can be used to manage Plex, Jellyfin, and Emby.
-- In order to access your Jellyseerr 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 [Jellyseerr's reverse proxy documentation.](https://docs.jellyseerr.dev/extending-jellyseerr/reverse-proxy), OR use the Caddy community container that will automatically configure requests.$NC_DOMAIN to redirect to your Jellyseerr.
+- In order to access your Jellyseerr 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 [Jellyseerr's reverse proxy documentation.](https://docs.jellyseerr.dev/extending-jellyseerr/reverse-proxy), OR use the Caddy community container that will automatically configure requests.$NC_DOMAIN to redirect to your Jellyseerr. Note that it is recommended to [enable CSRF protection in Jellyseerr](https://docs.jellyseerr.dev/using-jellyseerr/settings/general#enable-csrf-protection) for added security if you plan to use Jellyseerr outside the local network, but make sure to read up on it and understand the caveats first.
- If you want to secure the installation with fail2ban, you might want to check out https://github.com/nextcloud/all-in-one/tree/main/community-containers/fail2ban. Note that [enabling the proxy support option in Jellyseerr](https://docs.jellyseerr.dev/using-jellyseerr/settings/general#enable-proxy-support) is required for this to work properly.
- The config of Jellyseerr will be automatically included in AIO's backup solution!
- See [here](https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers) how to add it to the AIO stack.
From 13da99fa91ed73dbe72862d85603df9f34f864e0 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Sun, 2 Feb 2025 14:51:11 +0100
Subject: [PATCH 0045/1064] also add ui-secret to pi-hole and vaultwarden
Signed-off-by: Simon L.
---
community-containers/pi-hole/pi-hole.json | 1 +
community-containers/pi-hole/readme.md | 2 +-
community-containers/vaultwarden/readme.md | 2 +-
community-containers/vaultwarden/vaultwarden.json | 1 +
4 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/community-containers/pi-hole/pi-hole.json b/community-containers/pi-hole/pi-hole.json
index da07fb8c..0f2f397b 100644
--- a/community-containers/pi-hole/pi-hole.json
+++ b/community-containers/pi-hole/pi-hole.json
@@ -48,6 +48,7 @@
"nextcloud_aio_pihole",
"nextcloud_aio_pihole_dnsmasq"
],
+ "ui_secret": "PIHOLE_WEBPASSWORD",
"secrets": [
"PIHOLE_WEBPASSWORD"
]
diff --git a/community-containers/pi-hole/readme.md b/community-containers/pi-hole/readme.md
index cdfdf641..7254f585 100644
--- a/community-containers/pi-hole/readme.md
+++ b/community-containers/pi-hole/readme.md
@@ -6,7 +6,7 @@ This container bundles pi-hole and auto-configures it for you.
- Make sure that no dns server is already running by checking with `sudo netstat -tulpn | grep 53`. Otherwise the container will not be able to start!
- The DHCP functionality of Pi-hole has been disabled!
- The data of pi-hole will be automatically included in AIOs backup solution!
-- After adding and starting the container, you can visit `http://ip.address.of.this.server:8573/admin` in order to log in with the admin key that you can retrieve when running `sudo docker inspect nextcloud-aio-pihole | grep WEBPASSWORD`. There you can configure the pi-hole setup. Also you can add local dns records.
+- After adding and starting the container, you can visit `http://ip.address.of.this.server:8573/admin` in order to log in with the admin key that you can see next to the container in the AIO interface. There you can configure the pi-hole setup. Also you can add local dns records.
- You can configure your home network now to use pi-hole as its dns server by configuring your router.
- Additionally, you can configure the docker daemon to use that by editing `/etc/docker/daemon.json` and adding ` { "dns" : [ "ip.address.of.this.server" , "8.8.8.8" ] } `.
- See https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers how to add it to the AIO stack
diff --git a/community-containers/vaultwarden/readme.md b/community-containers/vaultwarden/readme.md
index 450f8838..81f37010 100644
--- a/community-containers/vaultwarden/readme.md
+++ b/community-containers/vaultwarden/readme.md
@@ -6,7 +6,7 @@ This container bundles vaultwarden and auto-configures it for you.
- Currently, only `bw.$NC_DOMAIN` is supported as subdomain! So if Nextcloud is using `your-domain.com`, vaultwarden will use `bw.your-domain.com`. The reverse proxy and domain must be configured accordingly!
- If you want to secure the installation with fail2ban, you might want to check out https://github.com/nextcloud/all-in-one/tree/main/community-containers/fail2ban
- The data of Vaultwarden will be automatically included in AIOs backup solution!
-- After adding and starting the container, you need to visit `https://bw.your-domain.com/admin` in order to log in with the admin key that you can retrieve when running `sudo docker inspect nextcloud-aio-vaultwarden | grep ADMIN_TOKEN`. There you can configure smtp first and then invite users via mail. After this is done, you might disable the admin panel via the reverse proxy by blocking connections to the subdirectory.
+- After adding and starting the container, you need to visit `https://bw.your-domain.com/admin` in order to log in with the admin key that you can see next to the container in the AIO interface. There you can configure smtp first and then invite users via mail. After this is done, you might disable the admin panel via the reverse proxy by blocking connections to the subdirectory.
- If using the caddy community container, the vaultwarden admin interface can be disabled by creating a `block-vaultwarden-admin` file in the `nextcloud-aio-caddy` folder when you open the Nextcloud files app with the default `admin` user. Afterwards restart all containers from the AIO interface and the admin interface should be disabled! You can unlock the admin interface by removing the file again and afterwards restarting the containers via the AIO interface.
- See https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers how to add it to the AIO stack
diff --git a/community-containers/vaultwarden/vaultwarden.json b/community-containers/vaultwarden/vaultwarden.json
index 0bacff7a..15f2114d 100644
--- a/community-containers/vaultwarden/vaultwarden.json
+++ b/community-containers/vaultwarden/vaultwarden.json
@@ -40,6 +40,7 @@
"backup_volumes": [
"nextcloud_aio_vaultwarden"
],
+ "ui_secret": "VAULTWARDEN_ADMIN_TOKEN",
"secrets": [
"VAULTWARDEN_ADMIN_TOKEN"
]
From 033c8b679832d535f58d563e600f8f88226f282c Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 3 Feb 2025 04:52:11 +0000
Subject: [PATCH 0046/1064] build(deps): bump clamav/clamav in
/Containers/clamav
Bumps clamav/clamav from 1.4.2-24 to 1.4.2-25.
---
updated-dependencies:
- dependency-name: clamav/clamav
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
Containers/clamav/Dockerfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Containers/clamav/Dockerfile b/Containers/clamav/Dockerfile
index 7f039908..d6c266de 100644
--- a/Containers/clamav/Dockerfile
+++ b/Containers/clamav/Dockerfile
@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:latest
# Probably from this file: https://github.com/Cisco-Talos/clamav-docker/blob/main/clamav/1.3/alpine/Dockerfile
-FROM clamav/clamav:1.4.2-24
+FROM clamav/clamav:1.4.2-25
COPY clamav.conf /clamav.conf
COPY --chmod=775 start.script /start.script
From f2987232dab63d7ed117444930160706d4207e6a Mon Sep 17 00:00:00 2001
From: Anvil5465 <119350594+Anvil5465@users.noreply.github.com>
Date: Mon, 3 Feb 2025 20:29:04 -0500
Subject: [PATCH 0047/1064] Update jellyseerr.json
Eliminate tini errors
Signed-off-by: Anvil5465 <119350594+Anvil5465@users.noreply.github.com>
---
community-containers/jellyseerr/jellyseerr.json | 1 +
1 file changed, 1 insertion(+)
diff --git a/community-containers/jellyseerr/jellyseerr.json b/community-containers/jellyseerr/jellyseerr.json
index 1dc2895c..64472a8a 100644
--- a/community-containers/jellyseerr/jellyseerr.json
+++ b/community-containers/jellyseerr/jellyseerr.json
@@ -8,6 +8,7 @@
"image_tag": "latest",
"internal_port": "5055",
"restart": "unless-stopped",
+ "init": false,
"ports": [
{
"ip_binding": "%APACHE_IP_BINDING%",
From cefdec414e4db395ebfbb0a1871aa775c284bdcc Mon Sep 17 00:00:00 2001
From: szaimen <42591237+szaimen@users.noreply.github.com>
Date: Tue, 4 Feb 2025 11:00:55 +0000
Subject: [PATCH 0048/1064] 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 | 2 +-
.../templates/nextcloud-aio-clamav-deployment.yaml | 2 +-
.../templates/nextcloud-aio-collabora-deployment.yaml | 2 +-
.../templates/nextcloud-aio-database-deployment.yaml | 2 +-
.../templates/nextcloud-aio-fulltextsearch-deployment.yaml | 2 +-
.../templates/nextcloud-aio-imaginary-deployment.yaml | 2 +-
.../templates/nextcloud-aio-nextcloud-deployment.yaml | 2 +-
.../templates/nextcloud-aio-notify-push-deployment.yaml | 2 +-
.../templates/nextcloud-aio-onlyoffice-deployment.yaml | 2 +-
.../templates/nextcloud-aio-redis-deployment.yaml | 2 +-
.../templates/nextcloud-aio-talk-deployment.yaml | 2 +-
.../templates/nextcloud-aio-talk-recording-deployment.yaml | 2 +-
.../templates/nextcloud-aio-whiteboard-deployment.yaml | 4 +++-
14 files changed, 16 insertions(+), 14 deletions(-)
diff --git a/nextcloud-aio-helm-chart/Chart.yaml b/nextcloud-aio-helm-chart/Chart.yaml
index 97571e93..3931dc76 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: 10.4.0
+version: 10.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 eae786e2..782ba09b 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-apache-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-apache-deployment.yaml
@@ -61,7 +61,7 @@ spec:
value: "{{ .Values.TIMEZONE }}"
- name: WHITEBOARD_HOST
value: nextcloud-aio-whiteboard
- image: nextcloud/aio-apache:20250122_091948
+ image: nextcloud/aio-apache:20250204_102259
readinessProbe:
exec:
command:
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 730f9cf5..8beccf20 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-clamav-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-clamav-deployment.yaml
@@ -61,7 +61,7 @@ spec:
value: "{{ .Values.NEXTCLOUD_UPLOAD_LIMIT }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
- image: nextcloud/aio-clamav:20250122_091948
+ image: nextcloud/aio-clamav:20250204_102259
readinessProbe:
exec:
command:
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 69da6e1b..7c6341de 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-collabora-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-collabora-deployment.yaml
@@ -34,7 +34,7 @@ spec:
value: --o:ssl.enable=false --o:ssl.termination=true --o:mount_jail_tree=false --o:logging.level=warning --o:home_mode.enable=true {{ .Values.COLLABORA_SECCOMP_POLICY }} --o:remote_font_config.url=https://{{ .Values.NC_DOMAIN }}/apps/richdocuments/settings/fonts.json --o:net.post_allow.host[0]=.+
- name: server_name
value: "{{ .Values.NC_DOMAIN }}"
- image: nextcloud/aio-collabora:20250122_091948
+ image: nextcloud/aio-collabora:20250204_102259
readinessProbe:
exec:
command:
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 1ab61316..f27bac21 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-database-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-database-deployment.yaml
@@ -64,7 +64,7 @@ spec:
value: nextcloud
- name: TZ
value: "{{ .Values.TIMEZONE }}"
- image: nextcloud/aio-postgresql:20250122_091948
+ image: nextcloud/aio-postgresql:20250204_102259
readinessProbe:
exec:
command:
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 d4d3c1ad..9979136b 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-fulltextsearch-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-fulltextsearch-deployment.yaml
@@ -54,7 +54,7 @@ spec:
value: basic
- name: xpack.security.enabled
value: "false"
- image: nextcloud/aio-fulltextsearch:20250122_091948
+ image: nextcloud/aio-fulltextsearch:20250204_102259
readinessProbe:
exec:
command:
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 f0dc68f6..302ed3b6 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-imaginary-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-imaginary-deployment.yaml
@@ -38,7 +38,7 @@ spec:
value: "{{ .Values.IMAGINARY_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
- image: nextcloud/aio-imaginary:20250122_091948
+ image: nextcloud/aio-imaginary:20250204_102259
readinessProbe:
exec:
command:
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 75c74fa1..fbbb6fb2 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-nextcloud-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-nextcloud-deployment.yaml
@@ -180,7 +180,7 @@ spec:
value: "{{ .Values.WHITEBOARD_ENABLED }}"
- name: WHITEBOARD_SECRET
value: "{{ .Values.WHITEBOARD_SECRET }}"
- image: nextcloud/aio-nextcloud:20250122_091948
+ image: nextcloud/aio-nextcloud:20250204_102259
{{- 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-notify-push-deployment.yaml b/nextcloud-aio-helm-chart/templates/nextcloud-aio-notify-push-deployment.yaml
index ef0455ad..2089d5bb 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
@@ -53,7 +53,7 @@ spec:
value: nextcloud-aio-redis
- name: REDIS_HOST_PASSWORD
value: "{{ .Values.REDIS_PASSWORD }}"
- image: nextcloud/aio-notify-push:20250122_091948
+ image: nextcloud/aio-notify-push:20250204_102259
readinessProbe:
exec:
command:
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 0bf7c2a6..c10aed88 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-onlyoffice-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-onlyoffice-deployment.yaml
@@ -42,7 +42,7 @@ spec:
value: "{{ .Values.ONLYOFFICE_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
- image: nextcloud/aio-onlyoffice:20250122_091948
+ image: nextcloud/aio-onlyoffice:20250204_102259
readinessProbe:
exec:
command:
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 b2cfd07e..0b338e86 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-redis-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-redis-deployment.yaml
@@ -39,7 +39,7 @@ spec:
value: "{{ .Values.REDIS_PASSWORD }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
- image: nextcloud/aio-redis:20250122_091948
+ image: nextcloud/aio-redis:20250204_102259
readinessProbe:
exec:
command:
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 3e827062..64a71bf6 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-talk-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-talk-deployment.yaml
@@ -52,7 +52,7 @@ spec:
value: "{{ .Values.TURN_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
- image: nextcloud/aio-talk:20250122_091948
+ image: nextcloud/aio-talk:20250204_102259
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 10218a93..24a866ad 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
@@ -44,7 +44,7 @@ spec:
value: "{{ .Values.RECORDING_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
- image: nextcloud/aio-talk-recording:20250122_091948
+ image: nextcloud/aio-talk-recording:20250204_102259
readinessProbe:
exec:
command:
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 1ef71833..f72b98a1 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-whiteboard-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-whiteboard-deployment.yaml
@@ -34,6 +34,8 @@ spec:
{{- end }}
containers:
- env:
+ - name: BACKUP_DIR
+ value: /tmp
- name: JWT_SECRET_KEY
value: "{{ .Values.WHITEBOARD_SECRET }}"
- name: NEXTCLOUD_URL
@@ -46,7 +48,7 @@ spec:
value: redis
- name: TZ
value: "{{ .Values.TIMEZONE }}"
- image: nextcloud/aio-whiteboard:20250122_091948
+ image: nextcloud/aio-whiteboard:20250204_102259
readinessProbe:
exec:
command:
From 7b65109126885966b091e2a6a58f1f83e3bb3eda Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Tue, 4 Feb 2025 17:19:55 +0100
Subject: [PATCH 0049/1064] readme: add TOC
Signed-off-by: Simon L.
---
readme.md | 94 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 94 insertions(+)
diff --git a/readme.md b/readme.md
index dd6f8334..79cdbb60 100644
--- a/readme.md
+++ b/readme.md
@@ -138,6 +138,100 @@ If your firewall/router has port 80 and 8443 open/forwarded and you point a doma
5. Please do not forget to open port `3478/TCP` and `3478/UDP` in your firewall/router for the Talk container!
## FAQ
+- [Where can I find additional documentation?](#where-can-i-find-additional-documentation)
+- [How does it work?](#how-does-it-work)
+- [How to contribute?](#how-to-contribute)
+- [How many users are possible?](#how-many-users-are-possible)
+- [Are reverse proxies supported?](#are-reverse-proxies-supported)
+- [Which CPU architectures are supported?](#which-cpu-architectures-are-supported)
+- [Which ports are mandatory to be open in your firewall/router?](#which-ports-are-mandatory-to-be-open-in-your-firewallrouter)
+- [Explanation of used ports:](#explanation-of-used-ports)
+- [How to run AIO on macOS?](#how-to-run-aio-on-macos)
+- [How to run AIO on Windows?](#how-to-run-aio-on-windows)
+- [How to run AIO on Synology DSM](#how-to-run-aio-on-synology-dsm)
+- [How to run AIO with Portainer?](#how-to-run-aio-with-portainer)
+- [Can I run AIO on TrueNAS SCALE?](#can-i-run-aio-on-truenas-scale)
+- [Notes on Cloudflare (proxy/tunnel)](#notes-on-cloudflare-proxytunnel)
+- [How to run Nextcloud behind a Cloudflare Tunnel?](#how-to-run-nextcloud-behind-a-cloudflare-tunnel)
+- [How to run Nextcloud via Tailscale?](#how-to-run-nextcloud-via-tailscale)
+- [Disrecommended VPS providers](#disrecommended-vps-providers)
+- [Recommended VPS](#recommended-vps)
+- [Note on storage options](#note-on-storage-options)
+- [How to get Nextcloud running using the ACME DNS-challenge?](#how-to-get-nextcloud-running-using-the-acme-dns-challenge)
+- [How to run Nextcloud locally? No domain wanted, or wanting intranet access within your LAN.](#how-to-run-nextcloud-locally-no-domain-wanted-or-wanting-intranet-access-within-your-lan)
+- [Can I use an ip-address for Nextcloud instead of a domain?](#can-i-use-an-ip-address-for-nextcloud-instead-of-a-domain)
+- [Can I run AIO offline or in an airgapped system?](#can-i-run-aio-offline-or-in-an-airgapped-system)
+- [Are self-signed certificates supported for Nextcloud?](#are-self-signed-certificates-supported-for-nextcloud)
+- [Can I use AIO with multiple domains?](#can-i-use-aio-with-multiple-domains)
+- [Are other ports than the default 443 for Nextcloud supported?](#are-other-ports-than-the-default-443-for-nextcloud-supported)
+- [Can I run Nextcloud in a subdirectory on my domain?](#can-i-run-nextcloud-in-a-subdirectory-on-my-domain)
+- [How can I access Nextcloud locally?](#how-can-i-access-nextcloud-locally)
+- [How to skip the domain validation?](#how-to-skip-the-domain-validation)
+- [How to resolve firewall problems with Fedora Linux, RHEL OS, CentOS, SUSE Linux and others?](#how-to-resolve-firewall-problems-with-fedora-linux-rhel-os-centos-suse-linux-and-others)
+- [Are there known problems when SELinux is enabled?](#are-there-known-problems-when-selinux-is-enabled)
+- [How to run `occ` commands?](#how-to-run-occ-commands)
+- [How to resolve `Security & setup warnings displays the "missing default phone region" after initial install`?](#how-to-resolve-security--setup-warnings-displays-the-missing-default-phone-region-after-initial-install)
+- [How to run multiple AIO instances on one server?](#how-to-run-multiple-aio-instances-on-one-server)
+- [Bruteforce protection FAQ](#bruteforce-protection-faq)
+- [Update policy](#update-policy)
+- [How to switch the channel?](#how-to-switch-the-channel)
+- [How to update the containers?](#how-to-update-the-containers)
+ - [How often are update notifications sent?](#how-often-are-update-notifications-sent)
+- [How to easily log in to the AIO interface?](#how-to-easily-log-in-to-the-aio-interface)
+- [How to change the domain?](#how-to-change-the-domain)
+- [How to properly reset the instance?](#how-to-properly-reset-the-instance)
+- [Backup solution](#backup-solution)
+ - [What is getting backed up by AIO's backup solution?](#what-is-getting-backed-up-by-aios-backup-solution)
+ - [How to adjust borgs retention policy?](#how-to-adjust-borgs-retention-policy)
+ - [How to migrate from AIO to AIO?](#how-to-migrate-from-aio-to-aio)
+ - [Are remote borg backups supported?](#are-remote-borg-backups-supported)
+ - [Failure of the backup container in LXC containers](#failure-of-the-backup-container-in-lxc-containers)
+ - [How to create the backup volume on Windows?](#how-to-create-the-backup-volume-on-windows)
+ - [Pro-tip: Backup archives access](#pro-tip-backup-archives-access)
+ - [Delete backup archives manually](#delete-backup-archives-manually)
+ - [Sync local backups regularly to another drive](#sync-local-backups-regularly-to-another-drive)
+- [How to stop/start/update containers or trigger the daily backup from a script externally?](#how-to-stopstartupdate-containers-or-trigger-the-daily-backup-from-a-script-externally)
+- [How to disable the backup section?](#how-to-disable-the-backup-section)
+- [How to change the default location of Nextcloud's Datadir?](#how-to-change-the-default-location-of-nextclouds-datadir)
+- [Can I use a CIFS/SMB share as Nextcloud's datadir?](#can-i-use-a-cifssmb-share-as-nextclouds-datadir)
+- [How to allow the Nextcloud container to access directories on the host?](#how-to-allow-the-nextcloud-container-to-access-directories-on-the-host)
+- [How to adjust the Talk port?](#how-to-adjust-the-talk-port)
+- [How to adjust the upload limit for Nextcloud?](#how-to-adjust-the-upload-limit-for-nextcloud)
+- [How to adjust the max execution time for Nextcloud?](#how-to-adjust-the-max-execution-time-for-nextcloud)
+- [How to adjust the PHP memory limit for Nextcloud?](#how-to-adjust-the-php-memory-limit-for-nextcloud)
+- [What can I do to fix the internal or reserved ip-address error?](#what-can-i-do-to-fix-the-internal-or-reserved-ip-address-error)
+- [Can I run this with Docker swarm?](#can-i-run-this-with-docker-swarm)
+- [Can I run this with Kubernetes?](#can-i-run-this-with-kubernetes)
+- [How to run this with Docker rootless?](#can-i-run-this-with-podman-instead-of-docker)
+- [How to change the Nextcloud apps that are installed on the first startup?](#how-to-change-the-nextcloud-apps-that-are-installed-on-the-first-startup)
+- [How to add OS packages permanently to the Nextcloud container?](#how-to-add-os-packages-permanently-to-the-nextcloud-container)
+- [How to add PHP extensions permanently to the Nextcloud container?](#how-to-add-php-extensions-permanently-to-the-nextcloud-container)
+- [What about the pdlib PHP extension for the facerecognition app?](#what-about-the-pdlib-php-extension-for-the-facerecognition-app)
+- [How to enable hardware acceleration for Nextcloud?](#how-to-enable-hardware-acceleration-for-nextcloud)
+ - [With open source drivers MESA for AMD, Intel and **new** drivers `Nouveau` for Nvidia](#with-open-source-drivers-mesa-for-amd-intel-and-new-drivers-nouveau-for-nvidia)
+ - [With proprietary drivers for Nvidia :warning: BETA](#with-proprietary-drivers-for-nvidia-warning-beta)
+- [How to keep disabled apps?](#how-to-keep-disabled-apps)
+- [Huge docker logs](#huge-docker-logs)
+- [Access/Edit Nextcloud files/folders manually](#accessedit-nextcloud-filesfolders-manually)
+- [How to store the files/installation on a separate drive?](#how-to-store-the-filesinstallation-on-a-separate-drive)
+- [How to edit Nextclouds config.php file with a texteditor?](#how-to-edit-nextclouds-configphp-file-with-a-texteditor)
+- [How to change default files by creating a custom skeleton directory?](#how-to-change-default-files-by-creating-a-custom-skeleton-directory)
+- [Fail2ban](#fail2ban)
+- [LDAP](#ldap)
+- [Netdata](#netdata)
+- [USER_SQL](#user_sql)
+- [phpMyAdmin, Adminer or pgAdmin](#phpmyadmin-adminer-or-pgadmin)
+- [Mail server](#mail-server)
+- [How to migrate from an already existing Nextcloud installation to Nextcloud AIO?](#how-to-migrate-from-an-already-existing-nextcloud-installation-to-nextcloud-aio)
+- [Requirements for integrating new containers](#requirements-for-integrating-new-containers)
+- [How to trust user-defined Certification Authorities (CA)?](#how-to-trust-user-defined-certification-authorities-ca)
+- [How to disable Collabora's Seccomp feature?](#how-to-disable-collaboras-seccomp-feature)
+- [How to enable automatic updates without creating a backup beforehand?](#how-to-enable-automatic-updates-without-creating-a-backup-beforehand)
+- [Securing the AIO interface from unauthorized ACME challenges](#securing-the-aio-interface-from-unauthorized-acme-challenges)
+
+## Where can I find additional documentation?
+Some of the documentation is available on [GitHub Discussions](https://github.com/nextcloud/all-in-one/discussions/categories/wiki).
+
### How does it work?
Nextcloud AIO is inspired by projects like Portainer that manage the docker daemon by talking to it through the docker socket directly. This concept allows a user to install only one container with a single command that does the heavy lifting of creating and managing all containers that are needed in order to provide a Nextcloud installation with most features included. It also makes updating a breeze and is not bound to the host system (and its slow updates) anymore as everything is in containers. Additionally, it is very easy to handle from a user perspective because a simple interface for managing your Nextcloud AIO installation is provided.
From 69ea9d1a7262e807224e1196eb8274e1e8302213 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Tue, 4 Feb 2025 17:29:10 +0100
Subject: [PATCH 0050/1064] adjust detail
Signed-off-by: Simon L.
---
readme.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/readme.md b/readme.md
index 79cdbb60..5d8f735c 100644
--- a/readme.md
+++ b/readme.md
@@ -229,7 +229,7 @@ If your firewall/router has port 80 and 8443 open/forwarded and you point a doma
- [How to enable automatic updates without creating a backup beforehand?](#how-to-enable-automatic-updates-without-creating-a-backup-beforehand)
- [Securing the AIO interface from unauthorized ACME challenges](#securing-the-aio-interface-from-unauthorized-acme-challenges)
-## Where can I find additional documentation?
+### Where can I find additional documentation?
Some of the documentation is available on [GitHub Discussions](https://github.com/nextcloud/all-in-one/discussions/categories/wiki).
### How does it work?
From 13afcd944ada6c754ddd784975fe8b9d7c504b1a Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Tue, 4 Feb 2025 19:29:22 +0100
Subject: [PATCH 0051/1064] borg: allow to exclude datadir and preview folder
from backup via `.noaiobackup` file
Signed-off-by: Simon L.
---
Containers/borgbackup/backupscript.sh | 38 +++++++++++++++++++++++----
readme.md | 14 ++++++++++
2 files changed, 47 insertions(+), 5 deletions(-)
diff --git a/Containers/borgbackup/backupscript.sh b/Containers/borgbackup/backupscript.sh
index 9317d71a..5c6ddd99 100644
--- a/Containers/borgbackup/backupscript.sh
+++ b/Containers/borgbackup/backupscript.sh
@@ -185,13 +185,27 @@ if [ "$BORG_MODE" = backup ]; then
# Borg options
# auto,zstd compression seems to has the best ratio based on:
# https://forum.level1techs.com/t/optimal-compression-for-borg-backups/145870/6
- BORG_OPTS=(-v --stats --compression "auto,zstd" --exclude-caches)
+ BORG_OPTS=(-v --stats --compression "auto,zstd")
if [ "$NEW_REPOSITORY" = 1 ]; then
BORG_OPTS+=(--progress)
fi
# Exclude the nextcloud log and audit log for GDPR reasons
BORG_EXCLUDE=(--exclude "/nextcloud_aio_volumes/nextcloud_aio_nextcloud/data/nextcloud.log*" --exclude "/nextcloud_aio_volumes/nextcloud_aio_nextcloud/data/audit.log")
+ BORG_INCLUDE=()
+
+ # Exclude datadir if .noaiobackup file was found
+ # shellcheck disable=SC2144
+ if [ -f "/nextcloud_aio_volumes/nextcloud_aio_nextcloud_data/.noaiobackup" ]; then
+ BORG_EXCLUDE+=(--exclude "/nextcloud_aio_volumes/nextcloud_aio_nextcloud_data/")
+ BORG_INCLUDE+=(--pattern="+/nextcloud_aio_volumes/nextcloud_aio_nextcloud_data/.noaiobackup")
+ echo "⚠️⚠️⚠️ '.noaiobackup' file was found in Nextclouds data directory. Excluding the data directory from backup!"
+ # Exclude preview folder if .noaiobackup file was found
+ elif [ -f /nextcloud_aio_volumes/nextcloud_aio_nextcloud_data/appdata_*/preview/.noaiobackup ]; then
+ BORG_EXCLUDE+=(--exclude "/nextcloud_aio_volumes/nextcloud_aio_nextcloud_data/appdata_*/preview/")
+ BORG_INCLUDE+=(--pattern="+/nextcloud_aio_volumes/nextcloud_aio_nextcloud_data/appdata_*/preview/.noaiobackup")
+ echo "⚠️⚠️⚠️ '.noaiobackup' file was found in the preview directory. Excluding the preview directory from backup!"
+ fi
# Make sure that there is always a borg.config file before creating a new backup
if ! [ -f "/nextcloud_aio_volumes/nextcloud_aio_mastercontainer/data/borg.config" ]; then
@@ -203,7 +217,7 @@ if [ "$BORG_MODE" = backup ]; then
# Create the backup
echo "Starting the backup..."
get_start_time
- if ! borg create "${BORG_OPTS[@]}" "${BORG_EXCLUDE[@]}" "::$CURRENT_DATE-nextcloud-aio" "/nextcloud_aio_volumes/" --exclude-from /borg_excludes; then
+ if ! borg create "${BORG_OPTS[@]}" "${BORG_INCLUDE[@]}" "${BORG_EXCLUDE[@]}" "::$CURRENT_DATE-nextcloud-aio" "/nextcloud_aio_volumes/" --exclude-from /borg_excludes; then
echo "Deleting the failed backup archive..."
borg delete --stats "::$CURRENT_DATE-nextcloud-aio"
echo "Backup failed!"
@@ -320,16 +334,30 @@ if [ "$BORG_MODE" = restore ]; then
fi
echo "Restoring '$SELECTED_ARCHIVE'..."
- # Exclude previews from restore if selected to speed up process
ADDITIONAL_RSYNC_EXCLUDES=()
ADDITIONAL_BORG_EXCLUDES=()
ADDITIONAL_FIND_EXCLUDES=()
- if [ -n "$RESTORE_EXCLUDE_PREVIEWS" ]; then
+ # Exclude datadir if .noaiobackup file was found
+ # shellcheck disable=SC2144
+ if [ -f "/nextcloud_aio_volumes/nextcloud_aio_nextcloud_data/.noaiobackup" ]; then
+ # Keep these 3 in sync. Beware, the pattern syntax and the paths differ
+ ADDITIONAL_RSYNC_EXCLUDES=(--exclude "nextcloud_aio_nextcloud_data/**")
+ ADDITIONAL_BORG_EXCLUDES=(--exclude "sh:nextcloud_aio_volumes/nextcloud_aio_nextcloud_data/**")
+ ADDITIONAL_FIND_EXCLUDES=(-o -regex 'nextcloud_aio_volumes/nextcloud_aio_nextcloud_data\(/.*\)?')
+ echo "⚠️⚠️⚠️ '.noaiobackup' file was found in Nextclouds data directory. Excluding the data directory from restore!"
+ echo "You might run into problems due to this afterwards as potentially this makes the directory go out of sync with the database."
+ echo "You might be able to fix this by running 'occ files:scan --all' and 'occ maintenance:repair' and 'occ files:scan-app-data' after the restore."
+ echo "See https://github.com/nextcloud/all-in-one#how-to-run-occ-commands"
+ # Exclude previews from restore if selected to speed up process or exclude preview folder if .noaiobackup file was found
+ elif [ -n "$RESTORE_EXCLUDE_PREVIEWS" ] || [ -f /nextcloud_aio_volumes/nextcloud_aio_nextcloud_data/appdata_*/preview/.noaiobackup ]; then
# Keep these 3 in sync. Beware, the pattern syntax and the paths differ
ADDITIONAL_RSYNC_EXCLUDES=(--exclude "nextcloud_aio_nextcloud_data/appdata_*/preview/**")
ADDITIONAL_BORG_EXCLUDES=(--exclude "sh:nextcloud_aio_volumes/nextcloud_aio_nextcloud_data/appdata_*/preview/**")
ADDITIONAL_FIND_EXCLUDES=(-o -regex 'nextcloud_aio_volumes/nextcloud_aio_nextcloud_data/appdata_[^/]*/preview\(/.*\)?')
- echo "Excluding previews from restore"
+ echo "⚠️⚠️⚠️ Excluding previews from restore!"
+ echo "You might run into problems due to this afterwards as potentially this makes the directory go out of sync with the database."
+ echo "You might be able to fix this by running 'occ files:scan-app-data preview' after the restore."
+ echo "See https://github.com/nextcloud/all-in-one#how-to-run-occ-commands"
fi
# Save Additional Backup dirs
diff --git a/readme.md b/readme.md
index 5d8f735c..d64ac365 100644
--- a/readme.md
+++ b/readme.md
@@ -190,6 +190,7 @@ If your firewall/router has port 80 and 8443 open/forwarded and you point a doma
- [Pro-tip: Backup archives access](#pro-tip-backup-archives-access)
- [Delete backup archives manually](#delete-backup-archives-manually)
- [Sync local backups regularly to another drive](#sync-local-backups-regularly-to-another-drive)
+ - [How to exclude Nextcloud's data directory or the preview folder from backup?](#how-to-exclude-nextclouds-data-directory-or-the-preview-folder-from-backup)
- [How to stop/start/update containers or trigger the daily backup from a script externally?](#how-to-stopstartupdate-containers-or-trigger-the-daily-backup-from-a-script-externally)
- [How to disable the backup section?](#how-to-disable-the-backup-section)
- [How to change the default location of Nextcloud's Datadir?](#how-to-change-the-default-location-of-nextclouds-datadir)
@@ -749,6 +750,19 @@ Afterwards apply the correct permissions with `sudo chown root:root /root/backup
1. Add the following new line to the crontab if not already present: `0 20 * * 7 /root/backup-script.sh` which will run the script at 20:00 on Sundays each week.
1. save and close the crontab (when using nano are the shortcuts for this `Ctrl + o` -> `Enter` and close the editor with `Ctrl + x`).
+#### How to exclude Nextcloud's data directory or the preview folder from backup?
+In order to speed up the backups and to keep the backup archives small, you might want to exclude Nextcloud's data directory or its preview folder from backup.
+
+> [!WARNING]
+> However please note that you will run into problems if the database and the data directory or preview folder get out of sync. **So please only read further, if you have an additional external backup of the data directory!** See [this guide](#how-to-enable-automatic-updates-without-creating-a-backup-beforehand) for example.
+
+> [!TIP]
+> A better option is to use the external storage app inside Nextcloud as the data connected via the external storage app is not backed up by AIO's backup solution. See [this documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/external_storage_configuration_gui.html) on how to configure the app.
+
+If you still want to proceed, you can exclude the data directory by simply creating a `.noaiobackup` file in the root directory of the specified `NEXTCLOUD_DATADIR` target. The same logic is implemented for the preview folder that is located inside the data directory, inside the `appdata_*/preview` folder. So simply create a `.noaiobackup` file in there if you want to exclude the preview folder.
+
+After doing a restore via the AIO interface, you might run into problems due to the data directory and database being out of sync. You might be able to fix this by running `occ files:scan --all` and `occ maintenance:repair` and `occ files:scan-app-data`. See https://github.com/nextcloud/all-in-one#how-to-run-occ-commands. If only the preview folder is excluded, the command `occ files:scan-app-data preview` should be used.
+
### How to stop/start/update containers or trigger the daily backup from a script externally?
> [!WARNING]
> The below script will only work after the initial setup of AIO. So you will always need to first visit the AIO interface, type in your domain and start the containers the first time or restore an older AIO instance from its borg backup before you can use the script.
From 4a00eb93470f047b9127593790b895724c52e241 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Wed, 5 Feb 2025 13:48:54 +0100
Subject: [PATCH 0052/1064] scrutiny-cc: improve documentation
Signed-off-by: Simon L.
---
community-containers/scrutiny/readme.md | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/community-containers/scrutiny/readme.md b/community-containers/scrutiny/readme.md
index 8beb3869..dc972d44 100644
--- a/community-containers/scrutiny/readme.md
+++ b/community-containers/scrutiny/readme.md
@@ -1,11 +1,12 @@
## Scrutiny
-This container bundles Scrutiny and auto-configures it for you.
+This container bundles Scrutiny which is a frontend for SMART stats and auto-configures it for you.
### Notes
- This container should only be run in home networks
- ⚠️ This container mounts all devices from the host inside the container in order to be able to access the drives and smartctl stats which is a security issue. However no better solution was found for the time being.
- This container only works on Linux and not on Docker-Desktop.
- After adding and starting the container, you need to visit `http://internal.ip.of.server:8000` which will show the dashboard for your drives.
+- It currently does not support sending notifications as no good solution was found yet that makes this possible. See https://github.com/szaimen/aio-scrutiny/issues/3
- See https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers how to add it to the AIO stack
### Repository
From 75f00d4e7e17b74b770b0e805201fa8d7c51a30a Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 6 Feb 2025 04:48:12 +0000
Subject: [PATCH 0053/1064] build(deps): bump golang in /Containers/imaginary
Bumps golang from 1.23.5-alpine3.21 to 1.23.6-alpine3.21.
---
updated-dependencies:
- dependency-name: golang
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 f78f2ad5..d8847808 100644
--- a/Containers/imaginary/Dockerfile
+++ b/Containers/imaginary/Dockerfile
@@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest
-FROM golang:1.23.5-alpine3.21 AS go
+FROM golang:1.23.6-alpine3.21 AS go
ENV IMAGINARY_HASH=1d4e251cfcd58ea66f8361f8721d7b8cc85002a3
From 3a19de9e654d7ee62727345e8e205612226a0359 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Fri, 7 Feb 2025 05:02:37 +0000
Subject: [PATCH 0054/1064] build(deps): bump python in
/Containers/talk-recording
Bumps python from 3.13.1-alpine3.21 to 3.13.2-alpine3.21.
---
updated-dependencies:
- dependency-name: python
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
Containers/talk-recording/Dockerfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Containers/talk-recording/Dockerfile b/Containers/talk-recording/Dockerfile
index 26b7baab..bc971ab4 100644
--- a/Containers/talk-recording/Dockerfile
+++ b/Containers/talk-recording/Dockerfile
@@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest
-FROM python:3.13.1-alpine3.21
+FROM python:3.13.2-alpine3.21
COPY --chmod=775 start.sh /start.sh
COPY --chmod=775 healthcheck.sh /healthcheck.sh
From 3c83570360606362a25221ea4610f6215e420623 Mon Sep 17 00:00:00 2001
From: szaimen <42591237+szaimen@users.noreply.github.com>
Date: Fri, 7 Feb 2025 12:06:53 +0000
Subject: [PATCH 0055/1064] php dependency updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
---
php/composer.lock | 52 +++++++++++++++++++++++------------------------
1 file changed, 26 insertions(+), 26 deletions(-)
diff --git a/php/composer.lock b/php/composer.lock
index 37cc3db7..4ae29f5a 100644
--- a/php/composer.lock
+++ b/php/composer.lock
@@ -391,32 +391,32 @@
},
{
"name": "laravel/serializable-closure",
- "version": "v1.3.7",
+ "version": "v2.0.2",
"source": {
"type": "git",
"url": "https://github.com/laravel/serializable-closure.git",
- "reference": "4f48ade902b94323ca3be7646db16209ec76be3d"
+ "reference": "2e1a362527783bcab6c316aad51bf36c5513ae44"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/4f48ade902b94323ca3be7646db16209ec76be3d",
- "reference": "4f48ade902b94323ca3be7646db16209ec76be3d",
+ "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/2e1a362527783bcab6c316aad51bf36c5513ae44",
+ "reference": "2e1a362527783bcab6c316aad51bf36c5513ae44",
"shasum": ""
},
"require": {
- "php": "^7.3|^8.0"
+ "php": "^8.1"
},
"require-dev": {
- "illuminate/support": "^8.0|^9.0|^10.0|^11.0",
- "nesbot/carbon": "^2.61|^3.0",
- "pestphp/pest": "^1.21.3",
- "phpstan/phpstan": "^1.8.2",
- "symfony/var-dumper": "^5.4.11|^6.2.0|^7.0.0"
+ "illuminate/support": "^10.0|^11.0|^12.0",
+ "nesbot/carbon": "^2.67|^3.0",
+ "pestphp/pest": "^2.36|^3.0",
+ "phpstan/phpstan": "^2.0",
+ "symfony/var-dumper": "^6.2.0|^7.0.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.x-dev"
+ "dev-master": "2.x-dev"
}
},
"autoload": {
@@ -448,7 +448,7 @@
"issues": "https://github.com/laravel/serializable-closure/issues",
"source": "https://github.com/laravel/serializable-closure"
},
- "time": "2024-11-14T18:34:49+00:00"
+ "time": "2025-01-24T15:42:37+00:00"
},
{
"name": "nikic/fast-route",
@@ -557,20 +557,20 @@
},
{
"name": "php-di/php-di",
- "version": "7.0.7",
+ "version": "7.0.8",
"source": {
"type": "git",
"url": "https://github.com/PHP-DI/PHP-DI.git",
- "reference": "e87435e3c0e8f22977adc5af0d5cdcc467e15cf1"
+ "reference": "98ddc81f8f768a2ad39e4cbe737285eaeabe577a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/PHP-DI/PHP-DI/zipball/e87435e3c0e8f22977adc5af0d5cdcc467e15cf1",
- "reference": "e87435e3c0e8f22977adc5af0d5cdcc467e15cf1",
+ "url": "https://api.github.com/repos/PHP-DI/PHP-DI/zipball/98ddc81f8f768a2ad39e4cbe737285eaeabe577a",
+ "reference": "98ddc81f8f768a2ad39e4cbe737285eaeabe577a",
"shasum": ""
},
"require": {
- "laravel/serializable-closure": "^1.0",
+ "laravel/serializable-closure": "^1.0 || ^2.0",
"php": ">=8.0",
"php-di/invoker": "^2.0",
"psr/container": "^1.1 || ^2.0"
@@ -582,7 +582,7 @@
"friendsofphp/php-cs-fixer": "^3",
"friendsofphp/proxy-manager-lts": "^1",
"mnapoli/phpunit-easymock": "^1.3",
- "phpunit/phpunit": "^9.5",
+ "phpunit/phpunit": "^9.6",
"vimeo/psalm": "^4.6"
},
"suggest": {
@@ -614,7 +614,7 @@
],
"support": {
"issues": "https://github.com/PHP-DI/PHP-DI/issues",
- "source": "https://github.com/PHP-DI/PHP-DI/tree/7.0.7"
+ "source": "https://github.com/PHP-DI/PHP-DI/tree/7.0.8"
},
"funding": [
{
@@ -626,7 +626,7 @@
"type": "tidelift"
}
],
- "time": "2024-07-21T15:55:45+00:00"
+ "time": "2025-01-28T21:02:46+00:00"
},
{
"name": "php-di/slim-bridge",
@@ -1633,16 +1633,16 @@
},
{
"name": "twig/twig",
- "version": "v3.18.0",
+ "version": "v3.19.0",
"source": {
"type": "git",
"url": "https://github.com/twigphp/Twig.git",
- "reference": "acffa88cc2b40dbe42eaf3a5025d6c0d4600cc50"
+ "reference": "d4f8c2b86374f08efc859323dbcd95c590f7124e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/twigphp/Twig/zipball/acffa88cc2b40dbe42eaf3a5025d6c0d4600cc50",
- "reference": "acffa88cc2b40dbe42eaf3a5025d6c0d4600cc50",
+ "url": "https://api.github.com/repos/twigphp/Twig/zipball/d4f8c2b86374f08efc859323dbcd95c590f7124e",
+ "reference": "d4f8c2b86374f08efc859323dbcd95c590f7124e",
"shasum": ""
},
"require": {
@@ -1697,7 +1697,7 @@
],
"support": {
"issues": "https://github.com/twigphp/Twig/issues",
- "source": "https://github.com/twigphp/Twig/tree/v3.18.0"
+ "source": "https://github.com/twigphp/Twig/tree/v3.19.0"
},
"funding": [
{
@@ -1709,7 +1709,7 @@
"type": "tidelift"
}
],
- "time": "2024-12-29T10:51:50+00:00"
+ "time": "2025-01-29T07:06:14+00:00"
}
],
"packages-dev": [
From ee5db17004124b03a3e0d0dcc571e206e41eb6b5 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 10 Feb 2025 04:43:37 +0000
Subject: [PATCH 0056/1064] build(deps): bump clamav/clamav in
/Containers/clamav
Bumps clamav/clamav from 1.4.2-25 to 1.4.2-26.
---
updated-dependencies:
- dependency-name: clamav/clamav
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
Containers/clamav/Dockerfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Containers/clamav/Dockerfile b/Containers/clamav/Dockerfile
index d6c266de..73737720 100644
--- a/Containers/clamav/Dockerfile
+++ b/Containers/clamav/Dockerfile
@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:latest
# Probably from this file: https://github.com/Cisco-Talos/clamav-docker/blob/main/clamav/1.3/alpine/Dockerfile
-FROM clamav/clamav:1.4.2-25
+FROM clamav/clamav:1.4.2-26
COPY clamav.conf /clamav.conf
COPY --chmod=775 start.script /start.script
From b340152d80fe90f047539601463a2a28d7f207f3 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 11 Feb 2025 04:45:11 +0000
Subject: [PATCH 0057/1064] build(deps): bump collabora/code in
/Containers/collabora
Bumps collabora/code from 24.04.12.2.1 to 24.04.12.3.1.
---
updated-dependencies:
- dependency-name: collabora/code
dependency-type: direct:production
...
Signed-off-by: dependabot[bot]
---
Containers/collabora/Dockerfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Containers/collabora/Dockerfile b/Containers/collabora/Dockerfile
index 450d201e..8766eb32 100644
--- a/Containers/collabora/Dockerfile
+++ b/Containers/collabora/Dockerfile
@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:latest
# From a file located probably somewhere here: https://github.com/CollaboraOnline/online/tree/master/docker
-FROM collabora/code:24.04.12.2.1
+FROM collabora/code:24.04.12.3.1
USER root
ARG DEBIAN_FRONTEND=noninteractive
From abec1ef10283a4bf33d976145d41b7313398c712 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Tue, 11 Feb 2025 10:11:38 +0100
Subject: [PATCH 0058/1064] notify-push: add timezone to container
Signed-off-by: Simon L.
---
php/containers.json | 1 +
1 file changed, 1 insertion(+)
diff --git a/php/containers.json b/php/containers.json
index d384053c..4bfe5d0e 100644
--- a/php/containers.json
+++ b/php/containers.json
@@ -300,6 +300,7 @@
"environment": [
"NC_DOMAIN=%NC_DOMAIN%",
"NEXTCLOUD_HOST=nextcloud-aio-nextcloud",
+ "TZ=%TIMEZONE%",
"REDIS_HOST=nextcloud-aio-redis",
"REDIS_HOST_PASSWORD=%REDIS_PASSWORD%",
"POSTGRES_HOST=nextcloud-aio-database",
From 6170e699c50960265940dc4d4c84a25b9fefeb63 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Tue, 11 Feb 2025 14:21:17 +0100
Subject: [PATCH 0059/1064] manual-upgrade: add note that method 1 seems to be
currently broken
Signed-off-by: Simon L.
---
manual-upgrade.md | 13 ++++++-------
1 file changed, 6 insertions(+), 7 deletions(-)
diff --git a/manual-upgrade.md b/manual-upgrade.md
index 517c217f..43aaebb2 100644
--- a/manual-upgrade.md
+++ b/manual-upgrade.md
@@ -7,7 +7,11 @@ The only way to fix this on your side is upgrading regularly (e.g. by enabling d
---
-## Method 1
+## Method 1 using `assaflavie/runlike`
+
+> [!Warning]
+> Please note that this method is apparently currently broken. See https://help.nextcloud.com/t/manual-upgrade-keeps-failing/217164/10
+> So please refer to method 2 using Portainer.
1. Start all containers from the AIO interface
- Now, it will report that Nextcloud is restarting because it is not able to start due to the above mentioned problem
@@ -54,14 +58,11 @@ The only way to fix this on your side is upgrading regularly (e.g. by enabling d
---
-## Method 2
+## Method 2 using Portainer
#### *Approach using portainer if method 1 does not work for you*
Prerequisite: have all containers from AIO interface running.
-
-Click to expand
-
##### 1. Install portainer if not installed:
```bash
docker volume create portainer_data
@@ -119,5 +120,3 @@ docker rm portainer
docker volume rm portainer_data
```
- Make sure you close port 9443 on your firewall and delete any necessary reverse proxy hosts.
-
-
From b3d8cf78fbb1864e8719f4fecbbff227e83d2a18 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Tue, 11 Feb 2025 14:32:47 +0100
Subject: [PATCH 0060/1064] readme: add chapter how to adjust version and
trashbin retention policy
Signed-off-by: Simon L.
---
readme.md | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/readme.md b/readme.md
index 5d8f735c..ad370f3e 100644
--- a/readme.md
+++ b/readme.md
@@ -216,6 +216,7 @@ If your firewall/router has port 80 and 8443 open/forwarded and you point a doma
- [How to store the files/installation on a separate drive?](#how-to-store-the-filesinstallation-on-a-separate-drive)
- [How to edit Nextclouds config.php file with a texteditor?](#how-to-edit-nextclouds-configphp-file-with-a-texteditor)
- [How to change default files by creating a custom skeleton directory?](#how-to-change-default-files-by-creating-a-custom-skeleton-directory)
+- [How to adjust the version retention policy and trashbin retention policy?](#how-to-adjust-the-version-retention-policy-and-trashbin-retention-policy)
- [Fail2ban](#fail2ban)
- [LDAP](#ldap)
- [Netdata](#netdata)
@@ -926,6 +927,9 @@ You can edit Nextclouds config.php file directly from the host with your favorit
### How to change default files by creating a custom skeleton directory?
All users see a set of [default files and folders](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/default_files_configuration.html) as dictated by Nextcloud's configuration. To change these default files and folders a custom skeleton directory must first be created; this can be accomplished by copying your skeleton files `sudo docker cp --follow-link /path/to/nextcloud/skeleton/ nextcloud-aio-nextcloud:/mnt/ncdata/skeleton/`, applying the correct permissions with `sudo docker exec nextcloud-aio-nextcloud chown -R 33:0 /mnt/ncdata/skeleton/` and `sudo docker exec nextcloud-aio-nextcloud chmod -R 750 /mnt/ncdata/skeleton/` and setting the skeleton directory option with `sudo docker exec --user www-data -it nextcloud-aio-nextcloud php occ config:system:set skeletondirectory --value="/mnt/ncdata/skeleton"`. Further information is available in the Nextcloud documentation on [configuration parameters for the skeleton directory](https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html#skeletondirectory).
+### How to adjust the version retention policy and trashbin retention policy?
+By default, AIO sets the `versions_retention_obligation` and `versions_retention_obligation` both to `auto, 30` which means that versions and items in the trashbin get deleted after 30 days. If you want to change this, see https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/file_versioning.html.
+
### Fail2ban
You can configure your server to block certain ip-addresses using fail2ban as bruteforce protection. Here is how to set it up: https://docs.nextcloud.com/server/stable/admin_manual/installation/harden_server.html#setup-fail2ban. The logpath of AIO is by default `/var/lib/docker/volumes/nextcloud_aio_nextcloud/_data/data/nextcloud.log`. Do not forget to add `chain=DOCKER-USER` to your nextcloud jail config (`nextcloud.local`) otherwise the nextcloud service running on docker will still be accessible even if the IP is banned. Also, you may change the blocked ports to cover all AIO ports: by default `80,443,8080,8443,3478` (see [this](https://github.com/nextcloud/all-in-one#explanation-of-used-ports)). Apart from that there is now a community container that can be added to the AIO stack: https://github.com/nextcloud/all-in-one/tree/main/community-containers/fail2ban
From b87b3f7efea7472f7a06efecda57a05ae531556f Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Tue, 11 Feb 2025 14:35:11 +0100
Subject: [PATCH 0061/1064] update OO
Signed-off-by: Simon L.
---
Containers/onlyoffice/Dockerfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Containers/onlyoffice/Dockerfile b/Containers/onlyoffice/Dockerfile
index 6fdac5bd..3289e1b1 100644
--- a/Containers/onlyoffice/Dockerfile
+++ b/Containers/onlyoffice/Dockerfile
@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:latest
# From https://github.com/ONLYOFFICE/Docker-DocumentServer/blob/master/Dockerfile
-FROM onlyoffice/documentserver:8.2.2.1
+FROM onlyoffice/documentserver:8.3.0.1
# USER root is probably used
From f9fe028f77f16e655e8e7416c82bfc5a50c452e3 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 12 Feb 2025 04:43:19 +0000
Subject: [PATCH 0062/1064] build(deps): bump elasticsearch in
/Containers/fulltextsearch
Bumps elasticsearch from 8.17.1 to 8.17.2.
---
updated-dependencies:
- dependency-name: elasticsearch
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
Containers/fulltextsearch/Dockerfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Containers/fulltextsearch/Dockerfile b/Containers/fulltextsearch/Dockerfile
index 7bcac338..68f12b7b 100644
--- a/Containers/fulltextsearch/Dockerfile
+++ b/Containers/fulltextsearch/Dockerfile
@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:latest
# Probably from here https://github.com/elastic/elasticsearch/blob/main/distribution/docker/src/docker/Dockerfile
-FROM elasticsearch:8.17.1
+FROM elasticsearch:8.17.2
USER root
From 4f86b0ad0a8557c1aa211104a29c664d5cc0fe01 Mon Sep 17 00:00:00 2001
From: szaimen <42591237+szaimen@users.noreply.github.com>
Date: Wed, 12 Feb 2025 12:03:01 +0000
Subject: [PATCH 0063/1064] php dependency updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
---
php/composer.lock | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/php/composer.lock b/php/composer.lock
index 4ae29f5a..ec60ad7f 100644
--- a/php/composer.lock
+++ b/php/composer.lock
@@ -391,16 +391,16 @@
},
{
"name": "laravel/serializable-closure",
- "version": "v2.0.2",
+ "version": "v2.0.3",
"source": {
"type": "git",
"url": "https://github.com/laravel/serializable-closure.git",
- "reference": "2e1a362527783bcab6c316aad51bf36c5513ae44"
+ "reference": "f379c13663245f7aa4512a7869f62eb14095f23f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/2e1a362527783bcab6c316aad51bf36c5513ae44",
- "reference": "2e1a362527783bcab6c316aad51bf36c5513ae44",
+ "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/f379c13663245f7aa4512a7869f62eb14095f23f",
+ "reference": "f379c13663245f7aa4512a7869f62eb14095f23f",
"shasum": ""
},
"require": {
@@ -448,7 +448,7 @@
"issues": "https://github.com/laravel/serializable-closure/issues",
"source": "https://github.com/laravel/serializable-closure"
},
- "time": "2025-01-24T15:42:37+00:00"
+ "time": "2025-02-11T15:03:05+00:00"
},
{
"name": "nikic/fast-route",
From 1ea7f48f9f6d5d8710aef33d7736314ebe3abe5c Mon Sep 17 00:00:00 2001
From: szaimen <42591237+szaimen@users.noreply.github.com>
Date: Wed, 12 Feb 2025 12:03:12 +0000
Subject: [PATCH 0064/1064] Yaml updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
---
manual-install/latest.yml | 1 +
1 file changed, 1 insertion(+)
diff --git a/manual-install/latest.yml b/manual-install/latest.yml
index 8bebf41c..d0f74a5a 100644
--- a/manual-install/latest.yml
+++ b/manual-install/latest.yml
@@ -202,6 +202,7 @@ services:
environment:
- NC_DOMAIN
- NEXTCLOUD_HOST=nextcloud-aio-nextcloud
+ - TZ=${TIMEZONE}
- REDIS_HOST=nextcloud-aio-redis
- REDIS_HOST_PASSWORD=${REDIS_PASSWORD}
- POSTGRES_HOST=nextcloud-aio-database
From b1f14ea1871666d49531e03df4b482ce51191145 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 13 Feb 2025 04:16:57 +0000
Subject: [PATCH 0065/1064] build(deps): bump golang in /Containers/imaginary
Bumps golang from 1.23.6-alpine3.21 to 1.24.0-alpine3.21.
---
updated-dependencies:
- dependency-name: golang
dependency-type: direct:production
update-type: version-update:semver-minor
...
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 d8847808..29935325 100644
--- a/Containers/imaginary/Dockerfile
+++ b/Containers/imaginary/Dockerfile
@@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest
-FROM golang:1.23.6-alpine3.21 AS go
+FROM golang:1.24.0-alpine3.21 AS go
ENV IMAGINARY_HASH=1d4e251cfcd58ea66f8361f8721d7b8cc85002a3
From aa94662aa7668606db8552cc2c54820a62123c7c Mon Sep 17 00:00:00 2001
From: szaimen <42591237+szaimen@users.noreply.github.com>
Date: Thu, 13 Feb 2025 12:03:05 +0000
Subject: [PATCH 0066/1064] php dependency updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
---
php/composer.lock | 17 ++++++++---------
1 file changed, 8 insertions(+), 9 deletions(-)
diff --git a/php/composer.lock b/php/composer.lock
index ec60ad7f..8cb814c0 100644
--- a/php/composer.lock
+++ b/php/composer.lock
@@ -1633,24 +1633,23 @@
},
{
"name": "twig/twig",
- "version": "v3.19.0",
+ "version": "v3.20.0",
"source": {
"type": "git",
"url": "https://github.com/twigphp/Twig.git",
- "reference": "d4f8c2b86374f08efc859323dbcd95c590f7124e"
+ "reference": "3468920399451a384bef53cf7996965f7cd40183"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/twigphp/Twig/zipball/d4f8c2b86374f08efc859323dbcd95c590f7124e",
- "reference": "d4f8c2b86374f08efc859323dbcd95c590f7124e",
+ "url": "https://api.github.com/repos/twigphp/Twig/zipball/3468920399451a384bef53cf7996965f7cd40183",
+ "reference": "3468920399451a384bef53cf7996965f7cd40183",
"shasum": ""
},
"require": {
- "php": ">=8.0.2",
+ "php": ">=8.1.0",
"symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-ctype": "^1.8",
- "symfony/polyfill-mbstring": "^1.3",
- "symfony/polyfill-php81": "^1.29"
+ "symfony/polyfill-mbstring": "^1.3"
},
"require-dev": {
"phpstan/phpstan": "^2.0",
@@ -1697,7 +1696,7 @@
],
"support": {
"issues": "https://github.com/twigphp/Twig/issues",
- "source": "https://github.com/twigphp/Twig/tree/v3.19.0"
+ "source": "https://github.com/twigphp/Twig/tree/v3.20.0"
},
"funding": [
{
@@ -1709,7 +1708,7 @@
"type": "tidelift"
}
],
- "time": "2025-01-29T07:06:14+00:00"
+ "time": "2025-02-13T08:34:43+00:00"
}
],
"packages-dev": [
From afba1368eaaf2c3336e5c266e16e816c6bd38e6e Mon Sep 17 00:00:00 2001
From: szaimen <42591237+szaimen@users.noreply.github.com>
Date: Fri, 14 Feb 2025 12:02:55 +0000
Subject: [PATCH 0067/1064] php dependency updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
---
php/composer.lock | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/php/composer.lock b/php/composer.lock
index 8cb814c0..0c72e6dd 100644
--- a/php/composer.lock
+++ b/php/composer.lock
@@ -2699,16 +2699,16 @@
},
{
"name": "phpstan/phpdoc-parser",
- "version": "2.0.0",
+ "version": "2.0.1",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpdoc-parser.git",
- "reference": "c00d78fb6b29658347f9d37ebe104bffadf36299"
+ "reference": "72e51f7c32c5aef7c8b462195b8c599b11199893"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/c00d78fb6b29658347f9d37ebe104bffadf36299",
- "reference": "c00d78fb6b29658347f9d37ebe104bffadf36299",
+ "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/72e51f7c32c5aef7c8b462195b8c599b11199893",
+ "reference": "72e51f7c32c5aef7c8b462195b8c599b11199893",
"shasum": ""
},
"require": {
@@ -2740,9 +2740,9 @@
"description": "PHPDoc parser with support for nullable, intersection and generic types",
"support": {
"issues": "https://github.com/phpstan/phpdoc-parser/issues",
- "source": "https://github.com/phpstan/phpdoc-parser/tree/2.0.0"
+ "source": "https://github.com/phpstan/phpdoc-parser/tree/2.0.1"
},
- "time": "2024-10-13T11:29:49+00:00"
+ "time": "2025-02-13T12:25:43+00:00"
},
{
"name": "sebastian/diff",
From 52b8f7bccb9365fc40e62b6e98bb0c4ff208c1ad Mon Sep 17 00:00:00 2001
From: szaimen <42591237+szaimen@users.noreply.github.com>
Date: Fri, 14 Feb 2025 12:11:15 +0000
Subject: [PATCH 0068/1064] 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 04606113..3bd9b5f7 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=30.0.5
+ENV NEXTCLOUD_VERSION=30.0.6
ENV AIO_TOKEN=123456
ENV AIO_URL=localhost
# AIO settings end # Do not remove or change this line!
From db77606f55f456bbf285be5cd51c66b42d19181f Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 17 Feb 2025 04:59:41 +0000
Subject: [PATCH 0069/1064] build(deps): bump alpine from 3.21.2 to 3.21.3 in
/Containers/borgbackup
Bumps alpine from 3.21.2 to 3.21.3.
---
updated-dependencies:
- dependency-name: alpine
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
Containers/borgbackup/Dockerfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Containers/borgbackup/Dockerfile b/Containers/borgbackup/Dockerfile
index 120bedf2..d2f78df2 100644
--- a/Containers/borgbackup/Dockerfile
+++ b/Containers/borgbackup/Dockerfile
@@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest
-FROM alpine:3.21.2
+FROM alpine:3.21.3
RUN set -ex; \
\
From da2358644113ff38a12cf2cc0e7bf754f761ce8b Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 17 Feb 2025 04:59:43 +0000
Subject: [PATCH 0070/1064] build(deps): bump clamav/clamav in
/Containers/clamav
Bumps clamav/clamav from 1.4.2-26 to 1.4.2-27.
---
updated-dependencies:
- dependency-name: clamav/clamav
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
Containers/clamav/Dockerfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Containers/clamav/Dockerfile b/Containers/clamav/Dockerfile
index 73737720..3825d6c8 100644
--- a/Containers/clamav/Dockerfile
+++ b/Containers/clamav/Dockerfile
@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:latest
# Probably from this file: https://github.com/Cisco-Talos/clamav-docker/blob/main/clamav/1.3/alpine/Dockerfile
-FROM clamav/clamav:1.4.2-26
+FROM clamav/clamav:1.4.2-27
COPY clamav.conf /clamav.conf
COPY --chmod=775 start.script /start.script
From 847fe97e47e3f52b6121d017d72a5e21fe55df32 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 17 Feb 2025 04:59:49 +0000
Subject: [PATCH 0071/1064] build(deps): bump alpine in /Containers/domaincheck
Bumps alpine from 3.21.2 to 3.21.3.
---
updated-dependencies:
- dependency-name: alpine
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
Containers/domaincheck/Dockerfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Containers/domaincheck/Dockerfile b/Containers/domaincheck/Dockerfile
index b1fe44be..d36a2611 100644
--- a/Containers/domaincheck/Dockerfile
+++ b/Containers/domaincheck/Dockerfile
@@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest
-FROM alpine:3.21.2
+FROM alpine:3.21.3
RUN set -ex; \
apk upgrade --no-cache -a; \
apk add --no-cache bash lighttpd netcat-openbsd; \
From 7cf6486c520facf609ec97212d3d663f10eb4ddd Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 17 Feb 2025 04:59:54 +0000
Subject: [PATCH 0072/1064] build(deps): bump alpine from 3.21.2 to 3.21.3 in
/Containers/imaginary
Bumps alpine from 3.21.2 to 3.21.3.
---
updated-dependencies:
- dependency-name: alpine
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 29935325..dfa97d11 100644
--- a/Containers/imaginary/Dockerfile
+++ b/Containers/imaginary/Dockerfile
@@ -13,7 +13,7 @@ RUN set -ex; \
build-base; \
go install github.com/h2non/imaginary@"$IMAGINARY_HASH";
-FROM alpine:3.21.2
+FROM alpine:3.21.3
RUN set -ex; \
apk upgrade --no-cache -a; \
apk add --no-cache \
From 07bfea3b6c1ef59d0425010a249d1032f7aa311e Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 17 Feb 2025 05:00:04 +0000
Subject: [PATCH 0073/1064] build(deps): bump php in
/Containers/mastercontainer
Bumps php from 8.3.16-fpm-alpine3.21 to 8.3.17-fpm-alpine3.21.
---
updated-dependencies:
- dependency-name: php
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 51081511..c7da9741 100644
--- a/Containers/mastercontainer/Dockerfile
+++ b/Containers/mastercontainer/Dockerfile
@@ -6,7 +6,7 @@ FROM docker:27.5.1-cli AS docker
FROM caddy:2.9.1-alpine AS caddy
# From https://github.com/docker-library/php/blob/master/8.3/alpine3.21/fpm/Dockerfile
-FROM php:8.3.16-fpm-alpine3.21
+FROM php:8.3.17-fpm-alpine3.21
EXPOSE 80
EXPOSE 8080
From c4a332eab13b7096fc4c26219ac95beacdae3075 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 17 Feb 2025 05:00:25 +0000
Subject: [PATCH 0074/1064] build(deps): bump php in /Containers/nextcloud
Bumps php from 8.3.16-fpm-alpine3.21 to 8.3.17-fpm-alpine3.21.
---
updated-dependencies:
- dependency-name: php
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 3bd9b5f7..9af52cd8 100644
--- a/Containers/nextcloud/Dockerfile
+++ b/Containers/nextcloud/Dockerfile
@@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest
-FROM php:8.3.16-fpm-alpine3.21
+FROM php:8.3.17-fpm-alpine3.21
ENV PHP_MEMORY_LIMIT=512M
ENV PHP_UPLOAD_LIMIT=16G
From c58c789f58b78162c3118859dc80293054f86f72 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 17 Feb 2025 05:00:28 +0000
Subject: [PATCH 0075/1064] build(deps): bump alpine in /Containers/notify-push
Bumps alpine from 3.21.2 to 3.21.3.
---
updated-dependencies:
- dependency-name: alpine
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
Containers/notify-push/Dockerfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Containers/notify-push/Dockerfile b/Containers/notify-push/Dockerfile
index 21b83b68..15fd98a0 100644
--- a/Containers/notify-push/Dockerfile
+++ b/Containers/notify-push/Dockerfile
@@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest
-FROM alpine:3.21.2
+FROM alpine:3.21.3
COPY --chmod=775 start.sh /start.sh
COPY --chmod=775 healthcheck.sh /healthcheck.sh
From dd74c9b3af05703a8cb2c7628c6f789ea1da9ff7 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 17 Feb 2025 05:00:45 +0000
Subject: [PATCH 0076/1064] build(deps): bump alpine from 3.21.2 to 3.21.3 in
/Containers/talk
Bumps alpine from 3.21.2 to 3.21.3.
---
updated-dependencies:
- dependency-name: alpine
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
Containers/talk/Dockerfile | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Containers/talk/Dockerfile b/Containers/talk/Dockerfile
index b334fd1b..e050e926 100644
--- a/Containers/talk/Dockerfile
+++ b/Containers/talk/Dockerfile
@@ -2,7 +2,7 @@
FROM nats:2.10.25-scratch AS nats
FROM eturnal/eturnal:1.12.1 AS eturnal
FROM strukturag/nextcloud-spreed-signaling:2.0.2 AS signaling
-FROM alpine:3.21.2 AS janus
+FROM alpine:3.21.3 AS janus
ARG JANUS_VERSION=v1.3.0
WORKDIR /src
@@ -34,7 +34,7 @@ RUN set -ex; \
make configs; \
rename -v ".jcfg.sample" ".jcfg" /usr/local/etc/janus/*.jcfg.sample
-FROM alpine:3.21.2
+FROM alpine:3.21.3
ENV ETURNAL_ETC_DIR="/conf"
COPY --from=janus --chmod=777 --chown=1000:1000 /usr/local /usr/local
COPY --from=eturnal --chmod=777 --chown=1000:1000 /opt/eturnal /opt/eturnal
From 50050574c72004a8cb7c54c669ecb7c6cb838f2e Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 17 Feb 2025 05:01:02 +0000
Subject: [PATCH 0077/1064] build(deps): bump alpine from 3.21.2 to 3.21.3 in
/Containers/watchtower
Bumps alpine from 3.21.2 to 3.21.3.
---
updated-dependencies:
- dependency-name: alpine
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 8a0592fe..8bd5da34 100644
--- a/Containers/watchtower/Dockerfile
+++ b/Containers/watchtower/Dockerfile
@@ -2,7 +2,7 @@
# From https://github.com/containrrr/watchtower/blob/main/dockerfiles/Dockerfile.self-contained
FROM containrrr/watchtower:1.7.1 AS watchtower
-FROM alpine:3.21.2
+FROM alpine:3.21.3
RUN set -ex; \
apk upgrade --no-cache -a; \
From cca7eef06be5bf62d4e0558e39974eeab33d97bb Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Tue, 4 Feb 2025 18:05:09 +0100
Subject: [PATCH 0078/1064] FTS: allow to adjust the ES_JAVA_OPTS
Signed-off-by: Simon L.
---
Containers/fulltextsearch/Dockerfile | 1 +
compose.yaml | 1 +
manual-install/latest.yml | 2 +-
manual-install/sample.conf | 1 +
manual-install/update-yaml.sh | 1 +
.../templates/nextcloud-aio-fulltextsearch-deployment.yaml | 2 +-
nextcloud-aio-helm-chart/update-helm.sh | 2 ++
nextcloud-aio-helm-chart/values.yaml | 1 +
php/containers.json | 2 +-
php/src/Data/ConfigurationManager.php | 7 +++++++
php/src/Docker/DockerActionManager.php | 2 ++
readme.md | 6 +++++-
tests/QA/060-environmental-variables.md | 1 +
13 files changed, 25 insertions(+), 4 deletions(-)
diff --git a/Containers/fulltextsearch/Dockerfile b/Containers/fulltextsearch/Dockerfile
index 7bcac338..dcc52fda 100644
--- a/Containers/fulltextsearch/Dockerfile
+++ b/Containers/fulltextsearch/Dockerfile
@@ -22,3 +22,4 @@ USER 1000:0
HEALTHCHECK --interval=10s --timeout=5s --start-period=1m --retries=5 CMD /healthcheck.sh
LABEL com.centurylinklabs.watchtower.enable="false"
+ENV ES_JAVA_OPTS="-Xms512M -Xmx512M"
diff --git a/compose.yaml b/compose.yaml
index 61c81a44..a72fbf50 100644
--- a/compose.yaml
+++ b/compose.yaml
@@ -20,6 +20,7 @@ services:
# 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
# COLLABORA_SECCOMP_DISABLED: false # Setting this to true allows to disable Collabora's Seccomp feature. See https://github.com/nextcloud/all-in-one#how-to-disable-collaboras-seccomp-feature
+ # FULLTEXTSEARCH_JAVA_OPTIONS: "-Xms1024M -Xmx1024M" # Allows to adjust the fulltextsearch java options. See https://github.com/nextcloud/all-in-one#how-to-adjust-the-fulltextsearch-java-options
# NEXTCLOUD_DATADIR: /mnt/ncdata # Allows to set the host directory for Nextcloud's datadir. ⚠️⚠️⚠️ Warning: do not set or adjust this value after the initial Nextcloud installation is done! See https://github.com/nextcloud/all-in-one#how-to-change-the-default-location-of-nextclouds-datadir
# NEXTCLOUD_MOUNT: /mnt/ # Allows the Nextcloud container to access the chosen directory on the host. See https://github.com/nextcloud/all-in-one#how-to-allow-the-nextcloud-container-to-access-directories-on-the-host
# NEXTCLOUD_UPLOAD_LIMIT: 16G # Can be adjusted if you need more. See https://github.com/nextcloud/all-in-one#how-to-adjust-the-upload-limit-for-nextcloud
diff --git a/manual-install/latest.yml b/manual-install/latest.yml
index 8bebf41c..daf85630 100644
--- a/manual-install/latest.yml
+++ b/manual-install/latest.yml
@@ -429,7 +429,7 @@ services:
- "9200"
environment:
- TZ=${TIMEZONE}
- - ES_JAVA_OPTS=-Xms512M -Xmx512M
+ - ES_JAVA_OPTS=${FULLTEXTSEARCH_JAVA_OPTIONS}
- bootstrap.memory_lock=true
- cluster.name=nextcloud-aio
- discovery.type=single-node
diff --git a/manual-install/sample.conf b/manual-install/sample.conf
index 79fa9b36..de7dd709 100644
--- a/manual-install/sample.conf
+++ b/manual-install/sample.conf
@@ -26,6 +26,7 @@ APACHE_MAX_SIZE=17179869184 # This needs to be an integer and in sync w
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).
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_SECCOMP_POLICY=--o:security.seccomp=true # Changing the value to false allows to disable the seccomp feature of the Collabora container.
+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
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.
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.
diff --git a/manual-install/update-yaml.sh b/manual-install/update-yaml.sh
index 95c99426..5a4af271 100644
--- a/manual-install/update-yaml.sh
+++ b/manual-install/update-yaml.sh
@@ -93,6 +93,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|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|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|' 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_PHP_EXTENSIONS=|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.|' sample.conf
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 9979136b..ab8ba44a 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-fulltextsearch-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-fulltextsearch-deployment.yaml
@@ -35,7 +35,7 @@ spec:
containers:
- env:
- name: ES_JAVA_OPTS
- value: -Xms512M -Xmx512M
+ value: "{{ .Values.FULLTEXTSEARCH_JAVA_OPTIONS | default "-Xms512M -Xmx512M" }}"
- name: FULLTEXTSEARCH_PASSWORD
value: "{{ .Values.FULLTEXTSEARCH_PASSWORD }}"
- name: TZ
diff --git a/nextcloud-aio-helm-chart/update-helm.sh b/nextcloud-aio-helm-chart/update-helm.sh
index 3a8fff29..6f54d824 100755
--- a/nextcloud-aio-helm-chart/update-helm.sh
+++ b/nextcloud-aio-helm-chart/update-helm.sh
@@ -306,6 +306,8 @@ cat << EOL > /tmp/additional.config
EOL
# shellcheck disable=SC1083
find ./ -name '*nextcloud-deployment.yaml' -exec sed -i "/^.*\- env:/r /tmp/additional.config" \{} \;
+# shellcheck disable=SC1083
+find ./ -name '*fulltextsearch-deployment.yaml' -exec sed -i 's/{{ .Values.FULLTEXTSEARCH_JAVA_OPTIONS }}/{{ .Values.FULLTEXTSEARCH_JAVA_OPTIONS | default "-Xms512M -Xmx512M" }}/' \{} \;
# Additional config
cat << EOL > /tmp/additional-apache.config
diff --git a/nextcloud-aio-helm-chart/values.yaml b/nextcloud-aio-helm-chart/values.yaml
index 3f760504..bbf597f3 100755
--- a/nextcloud-aio-helm-chart/values.yaml
+++ b/nextcloud-aio-helm-chart/values.yaml
@@ -25,6 +25,7 @@ APACHE_MAX_SIZE: "17179869184" # This needs to be an integer and in syn
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).
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_SECCOMP_POLICY: --o:security.seccomp=true # Changing the value to false allows to disable the seccomp feature of the Collabora container.
+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
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.
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.
diff --git a/php/containers.json b/php/containers.json
index d384053c..846a60d8 100644
--- a/php/containers.json
+++ b/php/containers.json
@@ -785,7 +785,7 @@
"internal_port": "9200",
"environment": [
"TZ=%TIMEZONE%",
- "ES_JAVA_OPTS=-Xms512M -Xmx512M",
+ "ES_JAVA_OPTS=%FULLTEXTSEARCH_JAVA_OPTIONS%",
"bootstrap.memory_lock=true",
"cluster.name=nextcloud-aio",
"discovery.type=single-node",
diff --git a/php/src/Data/ConfigurationManager.php b/php/src/Data/ConfigurationManager.php
index a06f666c..d8c0c8ec 100644
--- a/php/src/Data/ConfigurationManager.php
+++ b/php/src/Data/ConfigurationManager.php
@@ -714,6 +714,13 @@ class ConfigurationManager
return $this->GetEnvironmentalVariableOrConfig($envVariableName, $configName, $defaultValue);
}
+ public function GetFulltextsearchJavaOptions() : string {
+ $envVariableName = 'FULLTEXTSEARCH_JAVA_OPTIONS';
+ $configName = 'fulltextsearch_java_options';
+ $defaultValue = '-Xms512M -Xmx512M';
+ return $this->GetEnvironmentalVariableOrConfig($envVariableName, $configName, $defaultValue);
+ }
+
public function GetDockerSocketPath() : string {
$envVariableName = 'WATCHTOWER_DOCKER_SOCKET_PATH';
$configName = 'docker_socket_path';
diff --git a/php/src/Docker/DockerActionManager.php b/php/src/Docker/DockerActionManager.php
index e98a5237..a22b2efb 100644
--- a/php/src/Docker/DockerActionManager.php
+++ b/php/src/Docker/DockerActionManager.php
@@ -357,6 +357,8 @@ readonly class DockerActionManager {
$replacements[1] = $this->configurationManager->GetNextcloudMaxTime();
} elseif ($out[1] === 'BORG_RETENTION_POLICY') {
$replacements[1] = $this->configurationManager->GetBorgRetentionPolicy();
+ } elseif ($out[1] === 'FULLTEXTSEARCH_JAVA_OPTIONS') {
+ $replacements[1] = $this->configurationManager->GetFulltextsearchJavaOptions();
} elseif ($out[1] === 'NEXTCLOUD_TRUSTED_CACERTS_DIR') {
$replacements[1] = $this->configurationManager->GetTrustedCacertsDir();
} elseif ($out[1] === 'ADDITIONAL_DIRECTORIES_BACKUP') {
diff --git a/readme.md b/readme.md
index 5d8f735c..dbd4eda5 100644
--- a/readme.md
+++ b/readme.md
@@ -226,6 +226,7 @@ If your firewall/router has port 80 and 8443 open/forwarded and you point a doma
- [Requirements for integrating new containers](#requirements-for-integrating-new-containers)
- [How to trust user-defined Certification Authorities (CA)?](#how-to-trust-user-defined-certification-authorities-ca)
- [How to disable Collabora's Seccomp feature?](#how-to-disable-collaboras-seccomp-feature)
+- [How to adjust the Fulltextsearch Java options?](#how-to-adjust-the-fulltextsearch-java-options)
- [How to enable automatic updates without creating a backup beforehand?](#how-to-enable-automatic-updates-without-creating-a-backup-beforehand)
- [Securing the AIO interface from unauthorized ACME challenges](#securing-the-aio-interface-from-unauthorized-acme-challenges)
@@ -970,7 +971,10 @@ When using `docker run`, the environmental variable can be set with `--env NEXTC
In order for the value to be valid, the path should start with `/` and not end with `/` and point to an existing **directory**. Pointing the variable directly to a certificate **file** will not work and may also break things.
### How to disable Collabora's Seccomp feature?
-The Collabora container enables Seccomp by default, which is a security feature of the Linux kernel. On systems without this kernel feature enabled, you need to provide `--env COLLABORA_SECCOMP_DISABLED=true` to the initial docker run command in order to make it work.
+The Collabora container enables Seccomp by default, which is a security feature of the Linux kernel. On systems without this kernel feature enabled, you need to provide `--env COLLABORA_SECCOMP_DISABLED=true` to the initial docker run command in order to make it work. If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used.
+
+### How to adjust the Fulltextsearch Java options?
+The Fulltextsearch Java options are by default set to `-Xms512M -Xmx512M` which might not be enough on some systems. You can adjust this by adding e.g. `--env FULLTEXTSEARCH_JAVA_OPTIONS="-Xms1024M -Xmx1024M"` to the initial docker run command. If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used.
### How to enable automatic updates without creating a backup beforehand?
If you have an external backup solution, you might want to enable automatic updates without creating a backup first. However note that doing this is disrecommended since you will not be able to easily create and restore a backup from the AIO interface anymore and you need to make sure to shut down all the containers properly before creating the backup, e.g. by stopping them from the AIO interface first.
diff --git a/tests/QA/060-environmental-variables.md b/tests/QA/060-environmental-variables.md
index fd6a4dca..b2fadceb 100644
--- a/tests/QA/060-environmental-variables.md
+++ b/tests/QA/060-environmental-variables.md
@@ -12,6 +12,7 @@
- [ ] When starting the mastercontainer with `--env NEXTCLOUD_MEMORY_LIMIT=1024M` it should change Nextclouds PHP memory limit to 1024M. See https://github.com/nextcloud/all-in-one#how-to-adjust-the-php-memory-limit-for-nextcloud for allowed values.
- [ ] When starting the mastercontainer with `--env NEXTCLOUD_MAX_TIME=4000` it should change Nextclouds upload max time 4000s. See https://github.com/nextcloud/all-in-one#how-to-adjust-the-max-execution-time-for-nextcloud for allowed values.
- [ ] When starting the mastercontainer with `--env BORG_RETENTION_POLICY="--keep-within=1d --keep-weekly=1 --keep-monthly=1"` it should change borgs retention policy to the defined one. This can be checked when creating a backup and looking at the logs.
+- [ ] When starting the mastercontainer with `--env FULLTEXTSEARCH_JAVA_OPTIONS="-Xms1024M -Xmx1024M"` it should change Elasticsearchs `ES_JAVA_OPTS` options to the defined one. This can be checked by checking the `ES_JAVA_OPTS` variable for the nextcloud-aio-fulltextsearch container.
- [ ] When starting the mastercontainer with `--env WATCHTOWER_DOCKER_SOCKET_PATH="$XDG_RUNTIME_DIR/docker.sock"` it should map `$XDG_RUNTIME_DIR/docker.sock` to `/var/run/docker.sock` inside the watchtower container which allow to update the mastercontainer on docker rootless.
- [ ] When starting the mastercontainer with `--env AIO_DISABLE_BACKUP_SECTION=true` it should hide the backup section that gets shown after AIO is set up (everything of [020-backup-and-restore](./020-backup-and-restore.md)) and simply show that the backup section is disabled.
- [ ] When starting the mastercontainer with `--env NEXTCLOUD_TRUSTED_CACERTS_DIR=/path/to/my/cacerts`, the resulting nextcloud container should trust all the Certification Authorities, whose certificates are included in the directory `/path/to/my/cacerts` on the host.
From b60db873218299f82ca64f106e57a17d270dc4be Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Mon, 17 Feb 2025 11:50:52 +0100
Subject: [PATCH 0079/1064] aio-interface: show checkbox for hub 10
Signed-off-by: Simon L.
---
php/src/Controller/DockerController.php | 2 +-
php/templates/containers.twig | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/php/src/Controller/DockerController.php b/php/src/Controller/DockerController.php
index 8c2d3abe..ee439824 100644
--- a/php/src/Controller/DockerController.php
+++ b/php/src/Controller/DockerController.php
@@ -171,7 +171,7 @@ readonly class DockerController {
}
if (isset($request->getParsedBody()['install_latest_major'])) {
- $installLatestMajor = 30;
+ $installLatestMajor = 31;
} else {
$installLatestMajor = "";
}
diff --git a/php/templates/containers.twig b/php/templates/containers.twig
index f167dd5d..fb5c5b24 100644
--- a/php/templates/containers.twig
+++ b/php/templates/containers.twig
@@ -33,7 +33,7 @@
{% set isBackupOrRestoreRunning = false %}
{% set isApacheStarting = false %}
{# Setting newMajorVersion to '' will hide corresponding options/elements, can be set to an integer like 26 in order to show corresponding elements. If set, also increase installLatestMajor in https://github.com/nextcloud/all-in-one/blob/main/php/src/Controller/DockerController.php #}
- {% set newMajorVersion = '' %}
+ {% set newMajorVersion = 31 %}
{% if is_backup_container_running == true %}
{% if borg_backup_mode == 'backup' or borg_backup_mode == 'restore' %}
@@ -322,7 +322,7 @@
{% if newMajorVersion != '' and isAnyRunning == true and isApacheStarting != true %}
Note about Nextcloud Hub {{ newMajorVersion - 21 }}
-
If you haven't upgraded to Nextcloud Hub {{ newMajorVersion - 21 }} yet and want to do that now, feel free to follow this documentation
+
If you haven't upgraded to Nextcloud Hub {{ newMajorVersion - 21 }} yet and want to do that now, feel free to follow this documentation
{% endif %}
{% endif %}
From 62c4cd4188661c9949a0cff186ee536829a8137f Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Mon, 17 Feb 2025 11:53:14 +0100
Subject: [PATCH 0080/1064] increase to 10.6.0
Signed-off-by: Simon L.
---
php/templates/containers.twig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/php/templates/containers.twig b/php/templates/containers.twig
index fb5c5b24..03fe7802 100644
--- a/php/templates/containers.twig
+++ b/php/templates/containers.twig
@@ -17,7 +17,7 @@
-
Nextcloud AIO v10.5.0
+
Nextcloud AIO v10.6.0
{# Add 2nd tab warning #}
From c684ce206c41c1d9f67f87b0e6368ad653be780b Mon Sep 17 00:00:00 2001
From: Anvil5465 <119350594+Anvil5465@users.noreply.github.com>
Date: Mon, 10 Feb 2025 08:19:47 -0500
Subject: [PATCH 0081/1064] Allow Jellyfin write access to NEXTCLOUD_MOUNT
Signed-off-by: Anvil5465 <119350594+Anvil5465@users.noreply.github.com>
---
community-containers/jellyfin/jellyfin.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/community-containers/jellyfin/jellyfin.json b/community-containers/jellyfin/jellyfin.json
index 47972588..f0840913 100644
--- a/community-containers/jellyfin/jellyfin.json
+++ b/community-containers/jellyfin/jellyfin.json
@@ -25,7 +25,7 @@
{
"source": "%NEXTCLOUD_MOUNT%",
"destination": "%NEXTCLOUD_MOUNT%",
- "writeable": false
+ "writeable": true
}
],
"devices": [
From 577b22192dc32f7f0d934bf7308601d4ab202a14 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 18 Feb 2025 05:04:22 +0000
Subject: [PATCH 0082/1064] build(deps): bump postgres in
/Containers/postgresql
Bumps postgres from 16.6-alpine to 16.7-alpine.
---
updated-dependencies:
- dependency-name: postgres
dependency-type: direct:production
...
Signed-off-by: dependabot[bot]
---
Containers/postgresql/Dockerfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Containers/postgresql/Dockerfile b/Containers/postgresql/Dockerfile
index 40479f97..a537d0a2 100644
--- a/Containers/postgresql/Dockerfile
+++ b/Containers/postgresql/Dockerfile
@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:latest
# From https://github.com/docker-library/postgres/blob/master/16/alpine3.21/Dockerfile
-FROM postgres:16.6-alpine
+FROM postgres:16.7-alpine
COPY --chmod=775 start.sh /start.sh
COPY --chmod=775 healthcheck.sh /healthcheck.sh
From 61749514a179ab32d32c7157968411f23bdac5ab Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Tue, 18 Feb 2025 11:36:52 +0100
Subject: [PATCH 0083/1064] readme: re-order the faq section and add chapters
Signed-off-by: Simon L.
---
readme.md | 896 ++++++++++++++++++++++++++++--------------------------
1 file changed, 457 insertions(+), 439 deletions(-)
diff --git a/readme.md b/readme.md
index 513e0e03..5f6abfd6 100644
--- a/readme.md
+++ b/readme.md
@@ -137,50 +137,84 @@ If your firewall/router has port 80 and 8443 open/forwarded and you point a doma
`https://your-domain-that-points-to-this-server.tld:8443`
5. Please do not forget to open port `3478/TCP` and `3478/UDP` in your firewall/router for the Talk container!
-## FAQ
-- [Where can I find additional documentation?](#where-can-i-find-additional-documentation)
-- [How does it work?](#how-does-it-work)
-- [How to contribute?](#how-to-contribute)
-- [How many users are possible?](#how-many-users-are-possible)
-- [Are reverse proxies supported?](#are-reverse-proxies-supported)
-- [Which CPU architectures are supported?](#which-cpu-architectures-are-supported)
-- [Which ports are mandatory to be open in your firewall/router?](#which-ports-are-mandatory-to-be-open-in-your-firewallrouter)
-- [Explanation of used ports:](#explanation-of-used-ports)
-- [How to run AIO on macOS?](#how-to-run-aio-on-macos)
-- [How to run AIO on Windows?](#how-to-run-aio-on-windows)
-- [How to run AIO on Synology DSM](#how-to-run-aio-on-synology-dsm)
-- [How to run AIO with Portainer?](#how-to-run-aio-with-portainer)
-- [Can I run AIO on TrueNAS SCALE?](#can-i-run-aio-on-truenas-scale)
-- [Notes on Cloudflare (proxy/tunnel)](#notes-on-cloudflare-proxytunnel)
-- [How to run Nextcloud behind a Cloudflare Tunnel?](#how-to-run-nextcloud-behind-a-cloudflare-tunnel)
-- [How to run Nextcloud via Tailscale?](#how-to-run-nextcloud-via-tailscale)
-- [Disrecommended VPS providers](#disrecommended-vps-providers)
-- [Recommended VPS](#recommended-vps)
-- [Note on storage options](#note-on-storage-options)
-- [How to get Nextcloud running using the ACME DNS-challenge?](#how-to-get-nextcloud-running-using-the-acme-dns-challenge)
-- [How to run Nextcloud locally? No domain wanted, or wanting intranet access within your LAN.](#how-to-run-nextcloud-locally-no-domain-wanted-or-wanting-intranet-access-within-your-lan)
-- [Can I use an ip-address for Nextcloud instead of a domain?](#can-i-use-an-ip-address-for-nextcloud-instead-of-a-domain)
-- [Can I run AIO offline or in an airgapped system?](#can-i-run-aio-offline-or-in-an-airgapped-system)
-- [Are self-signed certificates supported for Nextcloud?](#are-self-signed-certificates-supported-for-nextcloud)
-- [Can I use AIO with multiple domains?](#can-i-use-aio-with-multiple-domains)
-- [Are other ports than the default 443 for Nextcloud supported?](#are-other-ports-than-the-default-443-for-nextcloud-supported)
-- [Can I run Nextcloud in a subdirectory on my domain?](#can-i-run-nextcloud-in-a-subdirectory-on-my-domain)
-- [How can I access Nextcloud locally?](#how-can-i-access-nextcloud-locally)
-- [How to skip the domain validation?](#how-to-skip-the-domain-validation)
-- [How to resolve firewall problems with Fedora Linux, RHEL OS, CentOS, SUSE Linux and others?](#how-to-resolve-firewall-problems-with-fedora-linux-rhel-os-centos-suse-linux-and-others)
-- [Are there known problems when SELinux is enabled?](#are-there-known-problems-when-selinux-is-enabled)
-- [How to run `occ` commands?](#how-to-run-occ-commands)
-- [How to resolve `Security & setup warnings displays the "missing default phone region" after initial install`?](#how-to-resolve-security--setup-warnings-displays-the-missing-default-phone-region-after-initial-install)
-- [How to run multiple AIO instances on one server?](#how-to-run-multiple-aio-instances-on-one-server)
-- [Bruteforce protection FAQ](#bruteforce-protection-faq)
-- [Update policy](#update-policy)
-- [How to switch the channel?](#how-to-switch-the-channel)
-- [How to update the containers?](#how-to-update-the-containers)
- - [How often are update notifications sent?](#how-often-are-update-notifications-sent)
-- [How to easily log in to the AIO interface?](#how-to-easily-log-in-to-the-aio-interface)
-- [How to change the domain?](#how-to-change-the-domain)
-- [How to properly reset the instance?](#how-to-properly-reset-the-instance)
-- [Backup solution](#backup-solution)
+# FAQ
+- [TOC](#faq)
+ - [Where can I find additional documentation?](#where-can-i-find-additional-documentation)
+ - [How does it work?](#how-does-it-work)
+ - [How to contribute?](#how-to-contribute)
+ - [How many users are possible?](#how-many-users-are-possible)
+- [Network](#network)
+ - [Are reverse proxies supported?](#are-reverse-proxies-supported)
+ - [Which ports are mandatory to be open in your firewall/router?](#which-ports-are-mandatory-to-be-open-in-your-firewallrouter)
+ - [Explanation of used ports](#explanation-of-used-ports)
+ - [Notes on Cloudflare (proxy/tunnel)](#notes-on-cloudflare-proxytunnel)
+ - [How to run Nextcloud behind a Cloudflare Tunnel?](#how-to-run-nextcloud-behind-a-cloudflare-tunnel)
+ - [How to run Nextcloud via Tailscale?](#how-to-run-nextcloud-via-tailscale)
+ - [How to get Nextcloud running using the ACME DNS-challenge?](#how-to-get-nextcloud-running-using-the-acme-dns-challenge)
+ - [How to run Nextcloud locally? No domain wanted, or wanting intranet access within your LAN.](#how-to-run-nextcloud-locally-no-domain-wanted-or-wanting-intranet-access-within-your-lan)
+ - [Can I use an ip-address for Nextcloud instead of a domain?](#can-i-use-an-ip-address-for-nextcloud-instead-of-a-domain)
+ - [Can I run AIO offline or in an airgapped system?](#can-i-run-aio-offline-or-in-an-airgapped-system)
+ - [Are self-signed certificates supported for Nextcloud?](#are-self-signed-certificates-supported-for-nextcloud)
+ - [Can I use AIO with multiple domains?](#can-i-use-aio-with-multiple-domains)
+ - [Are other ports than the default 443 for Nextcloud supported?](#are-other-ports-than-the-default-443-for-nextcloud-supported)
+ - [Can I run Nextcloud in a subdirectory on my domain?](#can-i-run-nextcloud-in-a-subdirectory-on-my-domain)
+ - [How can I access Nextcloud locally?](#how-can-i-access-nextcloud-locally)
+ - [How to skip the domain validation?](#how-to-skip-the-domain-validation)
+ - [How to resolve firewall problems with Fedora Linux, RHEL OS, CentOS, SUSE Linux and others?](#how-to-resolve-firewall-problems-with-fedora-linux-rhel-os-centos-suse-linux-and-others)
+ - [What can I do to fix the internal or reserved ip-address error?](#what-can-i-do-to-fix-the-internal-or-reserved-ip-address-error)
+- [Infrastructure](#infrastructure)
+ - [Which CPU architectures are supported?](#which-cpu-architectures-are-supported)
+ - [Disrecommended VPS providers](#disrecommended-vps-providers)
+ - [Recommended VPS](#recommended-vps)
+ - [Note on storage options](#note-on-storage-options)
+ - [Are there known problems when SELinux is enabled?](#are-there-known-problems-when-selinux-is-enabled)
+- [Customization](#customization)
+ - [How to change the default location of Nextcloud's Datadir?](#how-to-change-the-default-location-of-nextclouds-datadir)
+ - [How to store the files/installation on a separate drive?](#how-to-store-the-filesinstallation-on-a-separate-drive)
+ - [How to allow the Nextcloud container to access directories on the host?](#how-to-allow-the-nextcloud-container-to-access-directories-on-the-host)
+ - [How to adjust the Talk port?](#how-to-adjust-the-talk-port)
+ - [How to adjust the upload limit for Nextcloud?](#how-to-adjust-the-upload-limit-for-nextcloud)
+ - [How to adjust the max execution time for Nextcloud?](#how-to-adjust-the-max-execution-time-for-nextcloud)
+ - [How to adjust the PHP memory limit for Nextcloud?](#how-to-adjust-the-php-memory-limit-for-nextcloud)
+ - [How to change the Nextcloud apps that are installed on the first startup?](#how-to-change-the-nextcloud-apps-that-are-installed-on-the-first-startup)
+ - [How to add OS packages permanently to the Nextcloud container?](#how-to-add-os-packages-permanently-to-the-nextcloud-container)
+ - [How to add PHP extensions permanently to the Nextcloud container?](#how-to-add-php-extensions-permanently-to-the-nextcloud-container)
+ - [What about the pdlib PHP extension for the facerecognition app?](#what-about-the-pdlib-php-extension-for-the-facerecognition-app)
+ - [How to enable hardware acceleration for Nextcloud?](#how-to-enable-hardware-acceleration-for-nextcloud)
+ - [With open source drivers MESA for AMD, Intel and **new** drivers `Nouveau` for Nvidia](#with-open-source-drivers-mesa-for-amd-intel-and-new-drivers-nouveau-for-nvidia)
+ - [With proprietary drivers for Nvidia :warning: BETA](#with-proprietary-drivers-for-nvidia-warning-beta)
+ - [How to keep disabled apps?](#how-to-keep-disabled-apps)
+ - [How to trust user-defined Certification Authorities (CA)?](#how-to-trust-user-defined-certification-authorities-ca)
+ - [How to disable Collabora's Seccomp feature?](#how-to-disable-collaboras-seccomp-feature)
+ - [How to adjust the Fulltextsearch Java options?](#how-to-adjust-the-fulltextsearch-java-options)
+- [Guides](#guides)
+ - [How to run AIO on macOS?](#how-to-run-aio-on-macos)
+ - [How to run AIO on Windows?](#how-to-run-aio-on-windows)
+ - [How to run AIO on Synology DSM](#how-to-run-aio-on-synology-dsm)
+ - [How to run AIO with Portainer?](#how-to-run-aio-with-portainer)
+ - [Can I run AIO on TrueNAS SCALE?](#can-i-run-aio-on-truenas-scale)
+ - [How to run `occ` commands?](#how-to-run-occ-commands)
+ - [How to resolve `Security & setup warnings displays the "missing default phone region" after initial install`?](#how-to-resolve-security--setup-warnings-displays-the-missing-default-phone-region-after-initial-install)
+ - [How to run multiple AIO instances on one server?](#how-to-run-multiple-aio-instances-on-one-server)
+ - [Bruteforce protection FAQ](#bruteforce-protection-faq)
+ - [How to switch the channel?](#how-to-switch-the-channel)
+ - [How to update the containers?](#how-to-update-the-containers)
+ - [How to easily log in to the AIO interface?](#how-to-easily-log-in-to-the-aio-interface)
+ - [How to change the domain?](#how-to-change-the-domain)
+ - [How to properly reset the instance?](#how-to-properly-reset-the-instance)
+ - [Can I use a CIFS/SMB share as Nextcloud's datadir?](#can-i-use-a-cifssmb-share-as-nextclouds-datadir)
+ - [Can I run this with Docker swarm?](#can-i-run-this-with-docker-swarm)
+ - [Can I run this with Kubernetes?](#can-i-run-this-with-kubernetes)
+ - [How to run this with Docker rootless?](#can-i-run-this-with-podman-instead-of-docker)
+ - [Can I run this with Podman instead of Docker?](#can-i-run-this-with-podman-instead-of-docker)
+ - [Access/Edit Nextcloud files/folders manually](#accessedit-nextcloud-filesfolders-manually)
+ - [How to edit Nextclouds config.php file with a texteditor?](#how-to-edit-nextclouds-configphp-file-with-a-texteditor)
+ - [How to change default files by creating a custom skeleton directory?](#how-to-change-default-files-by-creating-a-custom-skeleton-directory)
+ - [How to adjust the version retention policy and trashbin retention policy?](#how-to-adjust-the-version-retention-policy-and-trashbin-retention-policy)
+ - [How to enable automatic updates without creating a backup beforehand?](#how-to-enable-automatic-updates-without-creating-a-backup-beforehand)
+ - [Securing the AIO interface from unauthorized ACME challenges](#securing-the-aio-interface-from-unauthorized-acme-challenges)
+ - [How to migrate from an already existing Nextcloud installation to Nextcloud AIO?](#how-to-migrate-from-an-already-existing-nextcloud-installation-to-nextcloud-aio)
+- [Backup](#backup)
- [What is getting backed up by AIO's backup solution?](#what-is-getting-backed-up-by-aios-backup-solution)
- [How to adjust borgs retention policy?](#how-to-adjust-borgs-retention-policy)
- [How to migrate from AIO to AIO?](#how-to-migrate-from-aio-to-aio)
@@ -191,46 +225,20 @@ If your firewall/router has port 80 and 8443 open/forwarded and you point a doma
- [Delete backup archives manually](#delete-backup-archives-manually)
- [Sync local backups regularly to another drive](#sync-local-backups-regularly-to-another-drive)
- [How to exclude Nextcloud's data directory or the preview folder from backup?](#how-to-exclude-nextclouds-data-directory-or-the-preview-folder-from-backup)
-- [How to stop/start/update containers or trigger the daily backup from a script externally?](#how-to-stopstartupdate-containers-or-trigger-the-daily-backup-from-a-script-externally)
-- [How to disable the backup section?](#how-to-disable-the-backup-section)
-- [How to change the default location of Nextcloud's Datadir?](#how-to-change-the-default-location-of-nextclouds-datadir)
-- [Can I use a CIFS/SMB share as Nextcloud's datadir?](#can-i-use-a-cifssmb-share-as-nextclouds-datadir)
-- [How to allow the Nextcloud container to access directories on the host?](#how-to-allow-the-nextcloud-container-to-access-directories-on-the-host)
-- [How to adjust the Talk port?](#how-to-adjust-the-talk-port)
-- [How to adjust the upload limit for Nextcloud?](#how-to-adjust-the-upload-limit-for-nextcloud)
-- [How to adjust the max execution time for Nextcloud?](#how-to-adjust-the-max-execution-time-for-nextcloud)
-- [How to adjust the PHP memory limit for Nextcloud?](#how-to-adjust-the-php-memory-limit-for-nextcloud)
-- [What can I do to fix the internal or reserved ip-address error?](#what-can-i-do-to-fix-the-internal-or-reserved-ip-address-error)
-- [Can I run this with Docker swarm?](#can-i-run-this-with-docker-swarm)
-- [Can I run this with Kubernetes?](#can-i-run-this-with-kubernetes)
-- [How to run this with Docker rootless?](#can-i-run-this-with-podman-instead-of-docker)
-- [How to change the Nextcloud apps that are installed on the first startup?](#how-to-change-the-nextcloud-apps-that-are-installed-on-the-first-startup)
-- [How to add OS packages permanently to the Nextcloud container?](#how-to-add-os-packages-permanently-to-the-nextcloud-container)
-- [How to add PHP extensions permanently to the Nextcloud container?](#how-to-add-php-extensions-permanently-to-the-nextcloud-container)
-- [What about the pdlib PHP extension for the facerecognition app?](#what-about-the-pdlib-php-extension-for-the-facerecognition-app)
-- [How to enable hardware acceleration for Nextcloud?](#how-to-enable-hardware-acceleration-for-nextcloud)
- - [With open source drivers MESA for AMD, Intel and **new** drivers `Nouveau` for Nvidia](#with-open-source-drivers-mesa-for-amd-intel-and-new-drivers-nouveau-for-nvidia)
- - [With proprietary drivers for Nvidia :warning: BETA](#with-proprietary-drivers-for-nvidia-warning-beta)
-- [How to keep disabled apps?](#how-to-keep-disabled-apps)
-- [Huge docker logs](#huge-docker-logs)
-- [Access/Edit Nextcloud files/folders manually](#accessedit-nextcloud-filesfolders-manually)
-- [How to store the files/installation on a separate drive?](#how-to-store-the-filesinstallation-on-a-separate-drive)
-- [How to edit Nextclouds config.php file with a texteditor?](#how-to-edit-nextclouds-configphp-file-with-a-texteditor)
-- [How to change default files by creating a custom skeleton directory?](#how-to-change-default-files-by-creating-a-custom-skeleton-directory)
-- [How to adjust the version retention policy and trashbin retention policy?](#how-to-adjust-the-version-retention-policy-and-trashbin-retention-policy)
-- [Fail2ban](#fail2ban)
-- [LDAP](#ldap)
-- [Netdata](#netdata)
-- [USER_SQL](#user_sql)
-- [phpMyAdmin, Adminer or pgAdmin](#phpmyadmin-adminer-or-pgadmin)
-- [Mail server](#mail-server)
-- [How to migrate from an already existing Nextcloud installation to Nextcloud AIO?](#how-to-migrate-from-an-already-existing-nextcloud-installation-to-nextcloud-aio)
-- [Requirements for integrating new containers](#requirements-for-integrating-new-containers)
-- [How to trust user-defined Certification Authorities (CA)?](#how-to-trust-user-defined-certification-authorities-ca)
-- [How to disable Collabora's Seccomp feature?](#how-to-disable-collaboras-seccomp-feature)
-- [How to adjust the Fulltextsearch Java options?](#how-to-adjust-the-fulltextsearch-java-options)
-- [How to enable automatic updates without creating a backup beforehand?](#how-to-enable-automatic-updates-without-creating-a-backup-beforehand)
-- [Securing the AIO interface from unauthorized ACME challenges](#securing-the-aio-interface-from-unauthorized-acme-challenges)
+ - [How to stop/start/update containers or trigger the daily backup from a script externally?](#how-to-stopstartupdate-containers-or-trigger-the-daily-backup-from-a-script-externally)
+ - [How to disable the backup section?](#how-to-disable-the-backup-section)
+- [Addons](#addons)
+ - [Fail2ban](#fail2ban)
+ - [LDAP](#ldap)
+ - [Netdata](#netdata)
+ - [USER_SQL](#user_sql)
+ - [phpMyAdmin, Adminer or pgAdmin](#phpmyadmin-adminer-or-pgadmin)
+ - [Mail server](#mail-server)
+- [Miscellaneous](#miscellaneous)
+ - [Requirements for integrating new containers](#requirements-for-integrating-new-containers)
+ - [Update policy](#update-policy)
+ - [How often are update notifications sent?](#how-often-are-update-notifications-sent)
+ - [Huge docker logs](#huge-docker-logs)
### Where can I find additional documentation?
Some of the documentation is available on [GitHub Discussions](https://github.com/nextcloud/all-in-one/discussions/categories/wiki).
@@ -244,21 +252,18 @@ See [this issue](https://github.com/nextcloud/all-in-one/issues/5251) for a list
### How many users are possible?
Up to 100 users are free, more are possible with [Nextcloud Enterprise](https://nextcloud.com/all-in-one/)
+## Network
+
### Are reverse proxies supported?
Yes. Please refer to the following documentation on this: [reverse-proxy.md](https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md)
-### Which CPU architectures are supported?
-You can check this on Linux by running: `uname -m`
-- x86_64/x64/amd64
-- aarch64/arm64/armv8 (Note: ClamAV is currently not supported on this CPU architecture)
-
### Which ports are mandatory to be open in your firewall/router?
Only those (if you access the Mastercontainer Interface internally via port 8080):
- `443/TCP` for the Apache container
- `443/UDP` if you want to enable http3 for the Apache container
- `3478/TCP` and `3478/UDP` for the Talk container
-### Explanation of used ports:
+### Explanation of used ports
- `8080/TCP`: Mastercontainer Interface with self-signed certificate (works always, also if only access via IP-address is possible, e.g. `https://ip.address.of.this.server:8080/`) ⚠️ **Important:** do always use an ip-address if you access this port and not a domain as HSTS might block access to it later! (It is also expected that this port uses a self-signed certificate due to security concerns which you need to accept in your browser)
- `80/TCP`: redirects to Nextcloud (is used for getting the certificate via ACME http-challenge for the Mastercontainer)
- `8443/TCP`: Mastercontainer Interface with valid certificate (only works if port 80 and 8443 are open/forwarded in your firewall/router and you point a domain to your server. It generates a valid certificate then automatically and access via e.g. `https://public.domain.com:8443/` is possible.)
@@ -266,6 +271,235 @@ Only those (if you access the Mastercontainer Interface internally via port 8080
- `443/UDP`: will be used by the Apache container later on and needs to be open/forwarded in your firewall/router if you want to enable http3
- `3478/TCP` and `3478/UDP`: will be used by the Turnserver inside the Talk container and needs to be open/forwarded in your firewall/router
+### Notes on Cloudflare (proxy/tunnel)
+Since Cloudflare Proxy/Tunnel comes with a lot of limitations which are listed below, it is rather recommended to switch to [Tailscale](https://github.com/nextcloud/all-in-one/discussions/5439) if possible.
+- Cloudflare Proxy and Cloudflare Tunnel both require Cloudflare to perform TLS termination on their side and thus decrypt all the traffic on their infrastructure. This is a privacy concern and you will need to look for other solutions if it's unacceptable for you.
+- Using Cloudflare Tunnel might potentially slow down Nextcloud since local access via the configured domain is not possible because TLS termination is in that case offloaded to Cloudflare's infrastructure. There is no way to disable this behavior in Cloudflare Tunnel.
+- It is known that the domain validation may not work correctly behind Cloudflare since Cloudflare might block the validation attempt. You can simply skip it in that case by following: https://github.com/nextcloud/all-in-one#how-to-skip-the-domain-validation
+- Make sure to [disable Cloudflares Rocket Loader feature](https://help.nextcloud.com/t/login-page-not-working-solved/149417/8) as otherwise Nextcloud's login prompt will not be shown.
+- Cloudflare only supports uploading files up to 100 MB in the free plan, if you try to upload bigger files you will get an error (413 - Payload Too Large) if no chunking is used (e.g. for public uploads in the web, or if chunks are configured to be bigger than 100 MB in the clients or the web). If you need to upload bigger files, you need to disable the proxy option in your DNS settings. Note that this will both disable Cloudflare DDoS protection and Cloudflare Tunnel as these services require the proxy option to be enabled.
+- If using Cloudflare Tunnel and the Nextcloud Desktop Client [Set Chunking on Nextcloud Desktop Client](https://github.com/nextcloud/desktop/issues/4271#issuecomment-1159578065)
+- Cloudflare only allows a max timeout of 100s for requests which is not configurable. This means that any server-side processing e.g. for assembling chunks for big files during upload that take longer than 100s will simply not work. See https://github.com/nextcloud/server/issues/19223. If you need to upload big files reliably, you need to disable the proxy option in your DNS settings. Note that this will both disable Cloudflare DDoS protection and Cloudflare Tunnel as these services require the proxy option to be enabled.
+- It is known that the in AIO included collabora (Nextcloud Office) does not work out of the box behind Cloudflare. To make it work, you need to add all [Cloudflare IP-ranges](https://www.cloudflare.com/ips/) to the wopi-allowlist in `https://yourdomain.com/settings/admin/richdocuments`
+- Cloudflare Proxy might block the Turnserver for Nextcloud Talk from working correctly. You might want to disable Cloudflare Proxy thus. See https://github.com/nextcloud/all-in-one/discussions/2463#discussioncomment-5779981
+- The built-in turn-server for Nextcloud Talk will not work behind Cloudflare Tunnel since it needs a separate port (by default 3478 or as chosen) available on the same domain. If you still want to use the feature, you will need to install your own turnserver or use a publicly available one and adjust and test your stun and turn settings in `https://yourdomain.com/settings/admin/talk`.
+- If you get an error in Nextcloud's admin overview that the HSTS header is not set correctly, you might need to enable it in Cloudflare manually.
+- If you are using AIO's built-in Reverse Proxy and don't use your own, then the certificate issuing may possibly not work out-of-the-box because Cloudflare might block the attempt. In that case you need to disable the Proxy feature at least temporarily in order to make it work. Note that this isn't an option if you need Cloudflare Tunnel as disabling the proxy would also disable Cloudflare Tunnel which would in turn make your server unreachable for the verification. See https://github.com/nextcloud/all-in-one/discussions/1101.
+
+### How to run Nextcloud behind a Cloudflare Tunnel?
+Although it does not seems like it is the case but from AIO perspective a Cloudflare Tunnel works like a reverse proxy. So please follow the [reverse proxy documentation](./reverse-proxy.md) where is documented how to make it run behind a Cloudflare Tunnel. However please see the [caveats](https://github.com/nextcloud/all-in-one#notes-on-cloudflare-proxytunnel) before proceeding.
+
+### How to run Nextcloud via Tailscale?
+For a reverse proxy example guide for Tailscale, see this guide by @flll: https://github.com/nextcloud/all-in-one/discussions/5439
+
+### How to get Nextcloud running using the ACME DNS-challenge?
+You can install AIO in reverse proxy mode where is also documented how to get it running using the ACME DNS-challenge for getting a valid certificate for AIO. See the [reverse proxy documentation](./reverse-proxy.md). (Meant is the `Caddy with ACME DNS-challenge` section). Also see https://github.com/dani-garcia/vaultwarden/wiki/Running-a-private-vaultwarden-instance-with-Let%27s-Encrypt-certs#getting-a-custom-caddy-build for additional docs on this topic.
+
+### How to run Nextcloud locally? No domain wanted, or wanting intranet access within your LAN.
+If you do not want to open Nextcloud to the public internet, you may have a look at the following documentation on how to set it up locally: [local-instance.md](./local-instance.md), but keep in mind you're still required to have https working properly.
+
+### Can I use an ip-address for Nextcloud instead of a domain?
+No and it will not be added. If you only want to run it locally, you may have a look at the following documentation: [local-instance.md](./local-instance.md). Recommended is to use [Tailscale](https://github.com/nextcloud/all-in-one/discussions/5439).
+
+### Can I run AIO offline or in an airgapped system?
+No. This is not possible and will not be added due to multiple reasons: update checks, app installs via app-store, downloading additional docker images on demand and more.
+
+### Are self-signed certificates supported for Nextcloud?
+No and they will not be. If you want to run it locally, without opening Nextcloud to the public internet, please have a look at the [local instance documentation](./local-instance.md). Recommended is to use [Tailscale](https://github.com/nextcloud/all-in-one/discussions/5439).
+
+### Can I use AIO with multiple domains?
+No and it will not be added. However you can use [this feature](https://github.com/nextcloud/all-in-one/blob/main/multiple-instances.md) in order to create multiple AIO instances, one for each domain.
+
+### Are other ports than the default 443 for Nextcloud supported?
+No and they will not be. If port 443 and/or 80 is blocked for you, you may use [Tailscale](https://github.com/nextcloud/all-in-one/discussions/5439) if you want to publish it online. If you already run a different service on port 443, please use a dedicated domain for Nextcloud and set it up correctly by following the [reverse proxy documentation](./reverse-proxy.md). However in all cases the Nextcloud interface will redirect you to port 443.
+
+### Can I run Nextcloud in a subdirectory on my domain?
+No and it will not be added. Please use a dedicated (sub-)domain for Nextcloud and set it up correctly by following the [reverse proxy documentation](./reverse-proxy.md). Alternatively, you may use [Tailscale](https://github.com/nextcloud/all-in-one/discussions/5439) if you want to publish it online.
+
+### How can I access Nextcloud locally?
+Please note that local access is not possible if you are running AIO behind Cloudflare Tunnel since TLS proxying is in that case offloaded to Cloudflares infrastructure. You can fix this by setting up your own reverse proxy that handles TLS proxying locally and will make the steps below work.
+
+Please make sure that if you are running AIO behind a reverse proxy, that the reverse proxy is configured to use port 443 on the server that runs it. Otherwise the steps below will not work.
+
+Now that this is out of the way, the recommended way how to access Nextcloud locally, is to set up a local dns-server like a pi-hole and set up a custom dns-record for that domain that points to the internal ip-adddress of your server that runs Nextcloud AIO. Below are some guides:
+- https://www.howtogeek.com/devops/how-to-run-your-own-dns-server-on-your-local-network/
+- https://help.nextcloud.com/t/need-help-to-configure-internal-access/156075/6
+- https://howchoo.com/pi/pi-hole-setup together with https://web.archive.org/web/20221203223505/https://docs.callitkarma.me/posts/PiHole-Local-DNS/
+- https://dockerlabs.collabnix.com/intermediate/networking/Configuring_DNS.html
+Apart from that there is now a community container that can be added to the AIO stack: https://github.com/nextcloud/all-in-one/tree/main/community-containers/pi-hole
+
+### How to skip the domain validation?
+If you are completely sure that you've configured everything correctly and are not able to pass the domain validation, you may skip the domain validation by adding `--env SKIP_DOMAIN_VALIDATION=true` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used).
+
+### How to resolve firewall problems with Fedora Linux, RHEL OS, CentOS, SUSE Linux and others?
+It is known that Linux distros that use [firewalld](https://firewalld.org) as their firewall daemon have problems with docker networks. In case the containers are not able to communicate with each other, you may change your firewalld to use the iptables backend by running:
+```
+sudo sed -i 's/FirewallBackend=nftables/FirewallBackend=iptables/g' /etc/firewalld/firewalld.conf
+sudo systemctl restart firewalld docker
+```
+Afterwards it should work.
+
+See https://dev.to/ozorest/fedora-32-how-to-solve-docker-internal-network-issue-22me for more details on this. This limitation is even mentioned on the official firewalld website: https://firewalld.org/#who-is-using-it
+
+### What can I do to fix the internal or reserved ip-address error?
+If you get an error during the domain validation which states that your ip-address is an internal or reserved ip-address, you can fix this by first making sure that your domain indeed has the correct public ip-address that points to the server and then adding `--add-host yourdomain.com:` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used) which will allow the domain validation to work correctly. And so that you know: even if the `A` record of your domain should change over time, this is no problem since the mastercontainer will not make any attempt to access the chosen domain after the initial domain validation.
+
+## Infrastructure
+
+### Which CPU architectures are supported?
+You can check this on Linux by running: `uname -m`
+- x86_64/x64/amd64
+- aarch64/arm64/armv8 (Note: ClamAV is currently not supported on this CPU architecture)
+
+### Disrecommended VPS providers
+- *Older* Strato VPS using Virtuozzo caused problems though ones from Q3 2023 and later should work.
+ If your VPS has a `/proc/user_beancounters` file and a low `numproc` limit set in it
+ your server will likely misbehave once it reaches this limit
+ which is very quickly reached by AIO, see [here](https://github.com/nextcloud/all-in-one/discussions/1747#discussioncomment-4716164).
+- Hostingers VPS seem to miss a specific Kernel feature which is required for AIO to run correctly. See [here](https://help.nextcloud.com/t/help-installing-nc-via-aio-on-vps/153956).
+
+### Recommended VPS
+In general recommended VPS are those that are KVM/non-virtualized as Docker should work best on them.
+
+### Note on storage options
+- SD-cards are disrecommended for AIO since they cripple the performance and they are not meant for many write operations which is needed for the database and other parts
+- SSD storage is recommended
+- HDD storage should work as well but is of course much slower than SSD storage
+
+### Are there known problems when SELinux is enabled?
+Yes. If SELinux is enabled, you might need to add the `--security-opt label:disable` option to the docker run command of the mastercontainer in order to allow it to access the docker socket (or `security_opt: ["label:disable"]` in compose.yaml). See https://github.com/nextcloud/all-in-one/discussions/485
+
+## Customization
+
+### How to change the default location of Nextcloud's Datadir?
+> [!WARNING]
+> Do not set or adjust this value after the initial Nextcloud installation is done! If you still want to do it afterwards, see [this](https://github.com/nextcloud/all-in-one/discussions/890#discussioncomment-3089903) on how to do it.
+
+You can configure the Nextcloud container to use a specific directory on your host as data directory. You can do so by adding the environmental variable `NEXTCLOUD_DATADIR` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used). Allowed values for that variable are strings that start with `/` and are not equal to `/`. The chosen directory or volume will then be mounted to `/mnt/ncdata` inside the container.
+
+- An example for Linux is `--env NEXTCLOUD_DATADIR="/mnt/ncdata"`. ⚠️ Please note: If you should be using an external BTRFS drive that is mounted to `/mnt/ncdata`, make sure to choose a subfolder like e.g. `/mnt/ncdata/nextcloud` as datadir, since the root folder is not suited as datadir in that case. See https://github.com/nextcloud/all-in-one/discussions/2696.
+- On macOS it might be `--env NEXTCLOUD_DATADIR="/var/nextcloud-data"`
+- For Synology it may be `--env NEXTCLOUD_DATADIR="/volume1/docker/nextcloud/data"`.
+- On Windows it might be `--env NEXTCLOUD_DATADIR="/run/desktop/mnt/host/c/ncdata"`. (This path is equivalent to `C:\ncdata` on your Windows host so you need to translate the path accordingly. Hint: the path that you enter needs to start with `/run/desktop/mnt/host/`. Append to that the exact location on your windows host, e.g. `c/ncdata` which is equivalent to `C:\ncdata`.) ⚠️ **Please note**: This does not work with external drives like USB or network drives and only with internal drives like SATA or NVME drives.
+- Another option is to provide a specific volume name here with: `--env NEXTCLOUD_DATADIR="nextcloud_aio_nextcloud_datadir"`. This volume needs to be created beforehand manually by you in order to be able to use it. e.g. on Windows with:
+ ```
+ docker volume create ^
+ --driver local ^
+ --name nextcloud_aio_nextcloud_datadir ^
+ -o device="/host_mnt/e/your/data/path" ^
+ -o type="none" ^
+ -o o="bind"
+ ```
+ In this example, it would mount `E:\your\data\path` into the volume so for a different location you need to adjust `/host_mnt/e/your/data/path` accordingly.
+
+### How to store the files/installation on a separate drive?
+You can move the whole docker library and all its files including all Nextcloud AIO files and folders to a separate drive by first mounting the drive in the host OS (NTFS is not supported and ext4 is recommended as FS) and then following this tutorial: https://www.guguweb.com/2019/02/07/how-to-move-docker-data-directory-to-another-location-on-ubuntu/
+(Of course docker needs to be installed first for this to work.)
+
+⚠️ If you encounter errors from richdocuments in your Nextcloud logs, check in your Collabora container if the message "Capabilities are not set for the coolforkit program." appears. If so, follow these steps:
+
+1. Stop all the containers from the AIO Interface.
+2. Go to your terminal and delete the Collabora container (`docker rm nextcloud-aio-collabora`) AND the Collabora image (`docker image rm nextcloud/aio-collabora`).
+3. You might also want to prune your Docker (`docker system prune`) (no data will be lost).
+4. Restart your containers from the AIO Interface.
+
+This should solve the problem.
+
+### How to allow the Nextcloud container to access directories on the host?
+By default, the Nextcloud container is confined and cannot access directories on the host OS. You might want to change this when you are planning to use local external storage in Nextcloud to store some files outside the data directory and can do so by adding the environmental variable `NEXTCLOUD_MOUNT` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used). Allowed values for that variable are strings that start with `/` and are not equal to `/`.
+
+- Two examples for Linux are `--env NEXTCLOUD_MOUNT="/mnt/"` and `--env NEXTCLOUD_MOUNT="/media/"`.
+- On macOS it might be `--env NEXTCLOUD_MOUNT="/Volumes/your_drive/"`
+- For Synology it may be `--env NEXTCLOUD_MOUNT="/volume1/"`.
+- On Windows it might be `--env NEXTCLOUD_MOUNT="/run/desktop/mnt/host/d/your-folder/"`. (This path is equivalent to `D:\your-folder` on your Windows host so you need to translate the path accordingly. Hint: the path that you enter needs to start with `/run/desktop/mnt/host/`. Append to that the exact location on your windows host, e.g. `d/your-folder/` which is equivalent to `D:\your-folder`.) ⚠️ **Please note**: This does not work with external drives like USB or network drives and only with internal drives like SATA or NVME drives.
+
+After using this option, please make sure to apply the correct permissions to the directories that you want to use in Nextcloud. E.g. `sudo chown -R 33:0 /mnt/your-drive-mountpoint` and `sudo chmod -R 750 /mnt/your-drive-mountpoint` should make it work on Linux when you have used `--env NEXTCLOUD_MOUNT="/mnt/"`. On Windows you could do this e.g. with `docker exec -it nextcloud-aio-nextcloud chown -R 33:0 /run/desktop/mnt/host/d/your-folder/` and `docker exec -it nextcloud-aio-nextcloud chmod -R 750 /run/desktop/mnt/host/d/your-folder/`.
+
+You can then navigate to `https://your-nc-domain.com/settings/apps/disabled`, activate the external storage app, navigate to `https://your-nc-domain.com/settings/admin/externalstorages` and add a local external storage directory that will be accessible inside the container at the same place that you've entered. E.g. `/mnt/your-drive-mountpoint` will be mounted to `/mnt/your-drive-mountpoint` inside the container, etc.
+
+Be aware though that these locations will not be covered by the built-in backup solution - but you can add further Docker volumes and host paths that you want to back up after the initial backup is done.
+
+> [!NOTE]
+> If you can't see the type "local storage" in the external storage admin options, a restart of the containers from the AIO interface may be required.
+
+### How to adjust the Talk port?
+By default will the talk container use port `3478/UDP` and `3478/TCP` for connections. This should be set to something higher than 1024! You can adjust the port by adding e.g. `--env TALK_PORT=3478` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used) and adjusting the port to your desired value. Best is to use a port over 1024, so e.g. 3479 to not run into this: https://github.com/nextcloud/all-in-one/discussions/2517
+
+### How to adjust the upload limit for Nextcloud?
+By default, public uploads to Nextcloud are limited to a max of 16G (logged in users can upload much bigger files using the webinterface or the mobile/desktop clients, since chunking is used in that case). You can adjust the upload limit by providing `--env NEXTCLOUD_UPLOAD_LIMIT=16G` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used) and customize the value to your fitting. It must start with a number and end with `G` e.g. `16G`.
+
+### How to adjust the max execution time for Nextcloud?
+By default, uploads to Nextcloud are limited to a max of 3600s. You can adjust the upload time limit by providing `--env NEXTCLOUD_MAX_TIME=3600` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used) and customize the value to your fitting. It must be a number e.g. `3600`.
+
+### How to adjust the PHP memory limit for Nextcloud?
+By default, each PHP process in the Nextcloud container is limited to a max of 512 MB. You can adjust the memory limit by providing `--env NEXTCLOUD_MEMORY_LIMIT=512M` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used) and customize the value to your fitting. It must start with a number and end with `M` e.g. `1024M`.
+
+### How to change the Nextcloud apps that are installed on the first startup?
+You might want to adjust the Nextcloud apps that are installed upon the first startup of the Nextcloud container. You can do so by adding `--env NEXTCLOUD_STARTUP_APPS="deck twofactor_totp tasks calendar contacts notes"` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used) and customize the value to your fitting. It must be a string with small letters a-z, 0-9, spaces and hyphens or '_'. You can disable shipped and by default enabled apps by adding a hyphen in front of the appid. E.g. `-contactsinteraction`.
+
+### How to add OS packages permanently to the Nextcloud container?
+Some Nextcloud apps require additional external dependencies that must be bundled within Nextcloud container in order to work correctly. As we cannot put each and every dependency for all apps into the container - as this would make the project quickly unmaintainable - there is an official way in which you can add additional dependencies into the Nextcloud container. However note that doing this is disrecommended since we do not test Nextcloud apps that require external dependencies.
+
+You can do so by adding `--env NEXTCLOUD_ADDITIONAL_APKS="imagemagick dependency2 dependency3"` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used) and customize the value to your fitting. It must be a string with small letters a-z, digits 0-9, spaces, dots and hyphens or '_'. You can find available packages here: https://pkgs.alpinelinux.org/packages?branch=v3.21. By default `imagemagick` is added. If you want to keep it, you need to specify it as well.
+
+### How to add PHP extensions permanently to the Nextcloud container?
+Some Nextcloud apps require additional php extensions that must be bundled within Nextcloud container in order to work correctly. As we cannot put each and every dependency for all apps into the container - as this would make the project quickly unmaintainable - there is an official way in which you can add additional php extensions into the Nextcloud container. However note that doing this is disrecommended since we do not test Nextcloud apps that require additional php extensions.
+
+You can do so by adding `--env NEXTCLOUD_ADDITIONAL_PHP_EXTENSIONS="imagick extension1 extension2"` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used) and customize the value to your fitting. It must be a string with small letters a-z, digits 0-9, spaces, dots and hyphens or '_'. You can find available extensions here: https://pecl.php.net/packages.php. By default `imagick` is added. If you want to keep it, you need to specify it as well.
+
+### What about the pdlib PHP extension for the facerecognition app?
+The [facerecognition app](https://apps.nextcloud.com/apps/facerecognition) requires the pdlib PHP extension to be installed. Unfortunately, it is not available on PECL nor via PHP core, so there is no way to add this into AIO currently. However you can use [this community container](https://github.com/nextcloud/all-in-one/tree/main/community-containers/facerecognition) in order to run facerecognition.
+
+### How to enable hardware acceleration for Nextcloud?
+Some container can use GPU acceleration to increase performance like [memories app](https://apps.nextcloud.com/apps/memories) allows to enable hardware transcoding for videos.
+
+#### With open source drivers MESA for AMD, Intel and **new** drivers `Nouveau` for Nvidia
+
+> [!WARNING]
+> This only works if the `/dev/dri` device is present on the host! If it does not exist on your host, don't proceed as otherwise the Nextcloud container will fail to start! If you are unsure about this, better do not proceed with the instructions below. Make sure that your driver is correctly configured on the host.
+
+A list of supported device can be fond in [MESA 3D documentation](https://docs.mesa3d.org/systems.html).
+
+This method use the [Direct Rendering Infrastructure](https://dri.freedesktop.org/wiki/) with the access to the `/dev/dri` device.
+
+In order to use that, you need to add `--env NEXTCLOUD_ENABLE_DRI_DEVICE=true` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used) which will mount the `/dev/dri` device into the container.
+
+
+#### With proprietary drivers for Nvidia :warning: BETA
+
+> [!WARNING]
+> This only works if the Nvidia Toolkit is installed on the host and an NVIDIA GPU is enabled! Make sure that it is correctly configured on the host. If it does not exist on your host, don't proceed as otherwise the Nextcloud container will fail to start! If you are unsure about this, better do not proceed with the instructions below.
+>
+> This feature is in beta. Since the proprietary, we haven't a lot of user using proprietary drivers, we can't guarantee the stability of this feature. Your feedback is welcome.
+
+This method use the [Nvidia Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/index.html) with the nvidia runtime.
+
+In order to use that, you need to add `--env NEXTCLOUD_ENABLE_NVIDIA_GPU=true` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used) which will enable the nvidia runtime.
+
+If you're using WSL2 and want to use the NVIDIA runtime, please follow the instructions to [install the NVIDIA Container Toolkit meta-version in WSL](https://docs.nvidia.com/cuda/wsl-user-guide/index.html#cuda-support-for-wsl-2).
+
+### How to keep disabled apps?
+In certain situations you might want to keep Nextcloud apps that are disabled in the AIO interface and not uninstall them if they should be installed in Nextcloud. You can do so by adding `--env NEXTCLOUD_KEEP_DISABLED_APPS=true` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used).
+> [!WARNING]
+> Doing this might cause unintended problems in Nextcloud if an app that requires an external dependency is still installed but the external dependency not for example.
+
+### How to trust user-defined Certification Authorities (CA)?
+For some applications it might be necessary to establish a secure connection to another host/server which is using a certificate issued by a Certification Authority that is not trusted out of the box. An example could be configuring LDAPS against a domain controller (Active Directory or Samba-based) of an organization.
+
+You can make the Nextcloud container trust any Certification Authority by providing the environmental variable `NEXTCLOUD_TRUSTED_CACERTS_DIR` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used). The value of the variables should be set to the absolute paths of the directory on the host, which contains one or more Certification Authorities certificates. You should use X.509 certificates, Base64 encoded. (Other formats may work but have not been tested!) All the certificates in the directory will be trusted.
+
+When using `docker run`, the environmental variable can be set with `--env NEXTCLOUD_TRUSTED_CACERTS_DIR=/path/to/my/cacerts`.
+
+In order for the value to be valid, the path should start with `/` and not end with `/` and point to an existing **directory**. Pointing the variable directly to a certificate **file** will not work and may also break things.
+
+### How to disable Collabora's Seccomp feature?
+The Collabora container enables Seccomp by default, which is a security feature of the Linux kernel. On systems without this kernel feature enabled, you need to provide `--env COLLABORA_SECCOMP_DISABLED=true` to the initial docker run command in order to make it work. If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used.
+
+### How to adjust the Fulltextsearch Java options?
+The Fulltextsearch Java options are by default set to `-Xms512M -Xmx512M` which might not be enough on some systems. You can adjust this by adding e.g. `--env FULLTEXTSEARCH_JAVA_OPTIONS="-Xms1024M -Xmx1024M"` to the initial docker run command. If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used.
+
+## Guides
+
### How to run AIO on macOS?
On macOS, there is only one thing different in comparison to Linux: instead of using `--volume /var/run/docker.sock:/var/run/docker.sock:ro`, you need to use `--volume /var/run/docker.sock.raw:/var/run/docker.sock:ro` to run it after you installed [Docker Desktop](https://www.docker.com/products/docker-desktop/) (and don't forget to [enable ipv6](https://github.com/nextcloud/all-in-one/blob/main/docker-ipv6-support.md) if you should need that). Apart from that it should work and behave the same like on Linux.
@@ -319,7 +553,6 @@ If you have the NAS setup on your local network (which is most often the case) y
The easiest way to run it with Portainer on Linux is to use Portainer's stacks feature and use [this docker-compose file](./compose.yaml) in order to start AIO correctly.
### Can I run AIO on TrueNAS SCALE?
-
With the Truenas Scale Release 24.10.0 (which was officially released on October 29th 2024 as a stable release) IX Systems ditched the Kubernetes integration and implemented a fully working docker environment.
For a more complete guide, see this guide by @zybster: https://github.com/nextcloud/all-in-one/discussions/5506
@@ -328,94 +561,6 @@ On older TrueNAS SCALE releases with Kubernetes environment, there are two ways
Another but untested way is to install Portainer on your TrueNAS SCALE from here https://truecharts.org/charts/stable/portainer/installation-notes and add the Helm-chart repository https://nextcloud.github.io/all-in-one/ into Portainer by following https://docs.portainer.io/user/kubernetes/helm. More docs on AIOs Helm Chart are available here: https://github.com/nextcloud/all-in-one/tree/main/nextcloud-aio-helm-chart#nextcloud-aio-helm-chart.
-### Notes on Cloudflare (proxy/tunnel)
-Since Cloudflare Proxy/Tunnel comes with a lot of limitations which are listed below, it is rather recommended to switch to [Tailscale](https://github.com/nextcloud/all-in-one/discussions/5439) if possible.
-- Cloudflare Proxy and Cloudflare Tunnel both require Cloudflare to perform TLS termination on their side and thus decrypt all the traffic on their infrastructure. This is a privacy concern and you will need to look for other solutions if it's unacceptable for you.
-- Using Cloudflare Tunnel might potentially slow down Nextcloud since local access via the configured domain is not possible because TLS termination is in that case offloaded to Cloudflare's infrastructure. There is no way to disable this behavior in Cloudflare Tunnel.
-- It is known that the domain validation may not work correctly behind Cloudflare since Cloudflare might block the validation attempt. You can simply skip it in that case by following: https://github.com/nextcloud/all-in-one#how-to-skip-the-domain-validation
-- Make sure to [disable Cloudflares Rocket Loader feature](https://help.nextcloud.com/t/login-page-not-working-solved/149417/8) as otherwise Nextcloud's login prompt will not be shown.
-- Cloudflare only supports uploading files up to 100 MB in the free plan, if you try to upload bigger files you will get an error (413 - Payload Too Large) if no chunking is used (e.g. for public uploads in the web, or if chunks are configured to be bigger than 100 MB in the clients or the web). If you need to upload bigger files, you need to disable the proxy option in your DNS settings. Note that this will both disable Cloudflare DDoS protection and Cloudflare Tunnel as these services require the proxy option to be enabled.
-- If using Cloudflare Tunnel and the Nextcloud Desktop Client [Set Chunking on Nextcloud Desktop Client](https://github.com/nextcloud/desktop/issues/4271#issuecomment-1159578065)
-- Cloudflare only allows a max timeout of 100s for requests which is not configurable. This means that any server-side processing e.g. for assembling chunks for big files during upload that take longer than 100s will simply not work. See https://github.com/nextcloud/server/issues/19223. If you need to upload big files reliably, you need to disable the proxy option in your DNS settings. Note that this will both disable Cloudflare DDoS protection and Cloudflare Tunnel as these services require the proxy option to be enabled.
-- It is known that the in AIO included collabora (Nextcloud Office) does not work out of the box behind Cloudflare. To make it work, you need to add all [Cloudflare IP-ranges](https://www.cloudflare.com/ips/) to the wopi-allowlist in `https://yourdomain.com/settings/admin/richdocuments`
-- Cloudflare Proxy might block the Turnserver for Nextcloud Talk from working correctly. You might want to disable Cloudflare Proxy thus. See https://github.com/nextcloud/all-in-one/discussions/2463#discussioncomment-5779981
-- The built-in turn-server for Nextcloud Talk will not work behind Cloudflare Tunnel since it needs a separate port (by default 3478 or as chosen) available on the same domain. If you still want to use the feature, you will need to install your own turnserver or use a publicly available one and adjust and test your stun and turn settings in `https://yourdomain.com/settings/admin/talk`.
-- If you get an error in Nextcloud's admin overview that the HSTS header is not set correctly, you might need to enable it in Cloudflare manually.
-- If you are using AIO's built-in Reverse Proxy and don't use your own, then the certificate issuing may possibly not work out-of-the-box because Cloudflare might block the attempt. In that case you need to disable the Proxy feature at least temporarily in order to make it work. Note that this isn't an option if you need Cloudflare Tunnel as disabling the proxy would also disable Cloudflare Tunnel which would in turn make your server unreachable for the verification. See https://github.com/nextcloud/all-in-one/discussions/1101.
-
-### How to run Nextcloud behind a Cloudflare Tunnel?
-Although it does not seems like it is the case but from AIO perspective a Cloudflare Tunnel works like a reverse proxy. So please follow the [reverse proxy documentation](./reverse-proxy.md) where is documented how to make it run behind a Cloudflare Tunnel. However please see the [caveats](https://github.com/nextcloud/all-in-one#notes-on-cloudflare-proxytunnel) before proceeding.
-
-### How to run Nextcloud via Tailscale?
-For a reverse proxy example guide for Tailscale, see this guide by @flll: https://github.com/nextcloud/all-in-one/discussions/5439
-
-### Disrecommended VPS providers
-- *Older* Strato VPS using Virtuozzo caused problems though ones from Q3 2023 and later should work.
- If your VPS has a `/proc/user_beancounters` file and a low `numproc` limit set in it
- your server will likely misbehave once it reaches this limit
- which is very quickly reached by AIO, see [here](https://github.com/nextcloud/all-in-one/discussions/1747#discussioncomment-4716164).
-- Hostingers VPS seem to miss a specific Kernel feature which is required for AIO to run correctly. See [here](https://help.nextcloud.com/t/help-installing-nc-via-aio-on-vps/153956).
-
-### Recommended VPS
-In general recommended VPS are those that are KVM/non-virtualized as Docker should work best on them.
-
-### Note on storage options
-- SD-cards are disrecommended for AIO since they cripple the performance and they are not meant for many write operations which is needed for the database and other parts
-- SSD storage is recommended
-- HDD storage should work as well but is of course much slower than SSD storage
-
-### How to get Nextcloud running using the ACME DNS-challenge?
-You can install AIO in reverse proxy mode where is also documented how to get it running using the ACME DNS-challenge for getting a valid certificate for AIO. See the [reverse proxy documentation](./reverse-proxy.md). (Meant is the `Caddy with ACME DNS-challenge` section). Also see https://github.com/dani-garcia/vaultwarden/wiki/Running-a-private-vaultwarden-instance-with-Let%27s-Encrypt-certs#getting-a-custom-caddy-build for additional docs on this topic.
-
-### How to run Nextcloud locally? No domain wanted, or wanting intranet access within your LAN.
-If you do not want to open Nextcloud to the public internet, you may have a look at the following documentation on how to set it up locally: [local-instance.md](./local-instance.md), but keep in mind you're still required to have https working properly.
-
-### Can I use an ip-address for Nextcloud instead of a domain?
-No and it will not be added. If you only want to run it locally, you may have a look at the following documentation: [local-instance.md](./local-instance.md). Recommended is to use [Tailscale](https://github.com/nextcloud/all-in-one/discussions/5439).
-
-### Can I run AIO offline or in an airgapped system?
-No. This is not possible and will not be added due to multiple reasons: update checks, app installs via app-store, downloading additional docker images on demand and more.
-
-### Are self-signed certificates supported for Nextcloud?
-No and they will not be. If you want to run it locally, without opening Nextcloud to the public internet, please have a look at the [local instance documentation](./local-instance.md). Recommended is to use [Tailscale](https://github.com/nextcloud/all-in-one/discussions/5439).
-
-### Can I use AIO with multiple domains?
-No and it will not be added. However you can use [this feature](https://github.com/nextcloud/all-in-one/blob/main/multiple-instances.md) in order to create multiple AIO instances, one for each domain.
-
-### Are other ports than the default 443 for Nextcloud supported?
-No and they will not be. If port 443 and/or 80 is blocked for you, you may use [Tailscale](https://github.com/nextcloud/all-in-one/discussions/5439) if you want to publish it online. If you already run a different service on port 443, please use a dedicated domain for Nextcloud and set it up correctly by following the [reverse proxy documentation](./reverse-proxy.md). However in all cases the Nextcloud interface will redirect you to port 443.
-
-### Can I run Nextcloud in a subdirectory on my domain?
-No and it will not be added. Please use a dedicated (sub-)domain for Nextcloud and set it up correctly by following the [reverse proxy documentation](./reverse-proxy.md). Alternatively, you may use [Tailscale](https://github.com/nextcloud/all-in-one/discussions/5439) if you want to publish it online.
-
-### How can I access Nextcloud locally?
-Please note that local access is not possible if you are running AIO behind Cloudflare Tunnel since TLS proxying is in that case offloaded to Cloudflares infrastructure. You can fix this by setting up your own reverse proxy that handles TLS proxying locally and will make the steps below work.
-
-Please make sure that if you are running AIO behind a reverse proxy, that the reverse proxy is configured to use port 443 on the server that runs it. Otherwise the steps below will not work.
-
-Now that this is out of the way, the recommended way how to access Nextcloud locally, is to set up a local dns-server like a pi-hole and set up a custom dns-record for that domain that points to the internal ip-adddress of your server that runs Nextcloud AIO. Below are some guides:
-- https://www.howtogeek.com/devops/how-to-run-your-own-dns-server-on-your-local-network/
-- https://help.nextcloud.com/t/need-help-to-configure-internal-access/156075/6
-- https://howchoo.com/pi/pi-hole-setup together with https://web.archive.org/web/20221203223505/https://docs.callitkarma.me/posts/PiHole-Local-DNS/
-- https://dockerlabs.collabnix.com/intermediate/networking/Configuring_DNS.html
-Apart from that there is now a community container that can be added to the AIO stack: https://github.com/nextcloud/all-in-one/tree/main/community-containers/pi-hole
-
-### How to skip the domain validation?
-If you are completely sure that you've configured everything correctly and are not able to pass the domain validation, you may skip the domain validation by adding `--env SKIP_DOMAIN_VALIDATION=true` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used).
-
-### How to resolve firewall problems with Fedora Linux, RHEL OS, CentOS, SUSE Linux and others?
-It is known that Linux distros that use [firewalld](https://firewalld.org) as their firewall daemon have problems with docker networks. In case the containers are not able to communicate with each other, you may change your firewalld to use the iptables backend by running:
-```
-sudo sed -i 's/FirewallBackend=nftables/FirewallBackend=iptables/g' /etc/firewalld/firewalld.conf
-sudo systemctl restart firewalld docker
-```
-Afterwards it should work.
-
-See https://dev.to/ozorest/fedora-32-how-to-solve-docker-internal-network-issue-22me for more details on this. This limitation is even mentioned on the official firewalld website: https://firewalld.org/#who-is-using-it
-
-### Are there known problems when SELinux is enabled?
-Yes. If SELinux is enabled, you might need to add the `--security-opt label:disable` option to the docker run command of the mastercontainer in order to allow it to access the docker socket (or `security_opt: ["label:disable"]` in compose.yaml). See https://github.com/nextcloud/all-in-one/discussions/485
-
### How to run `occ` commands?
Simply run the following: `sudo docker exec --user www-data -it nextcloud-aio-nextcloud php occ your-command`. Of course `your-command` needs to be exchanged with the command that you want to run.
@@ -428,9 +573,6 @@ See [multiple-instances.md](./multiple-instances.md) for some documentation on t
### Bruteforce protection FAQ
Nextcloud features a built-in bruteforce protection which may get triggered and will block an ip-address or disable a user. You can unblock an ip-address by running `sudo docker exec --user www-data -it nextcloud-aio-nextcloud php occ security:bruteforce:reset ` and enable a disabled user by running `sudo docker exec --user www-data -it nextcloud-aio-nextcloud php occ user:enable `. See https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/occ_command.html#security for further information.
-### Update policy
-This project values stability over new features. That means that when a new major Nextcloud update gets introduced, we will wait at least until the first patch release, e.g. `24.0.1` is out before upgrading to it. Also we will wait with the upgrade until all important apps are compatible with the new major version. Minor or patch releases for Nextcloud and all dependencies as well as all containers will be updated to new versions as soon as possible but we try to give all updates first a good test round before pushing them. That means that it can take around 2 weeks before new updates reach the `latest` channel. If you want to help testing, you can switch to the `beta` channel by following [this documentation](#how-to-switch-the-channel) which will also give you the updates earlier.
-
### How to switch the channel?
You can switch to a different channel like e.g. the beta channel or from the beta channel back to the latest channel by stopping the mastercontainer, removing it (no data will be lost) and recreating the container using the same command that you used initially to create the mastercontainer. You simply need to change the last line `nextcloud/all-in-one:latest` to `nextcloud/all-in-one:beta` and vice versa.
@@ -441,9 +583,6 @@ If a new `mastercontainer` update was found, you'll see a note below the `Stop c
Additionally, there is a cronjob that runs once a day that checks for container and mastercontainer updates and sends a notification to all Nextcloud admins if a new update was found.
-#### How often are update notifications sent?
-AIO ships its own update notifications implementation. It checks if container updates are available. If so, it sends a notification with the title `Container updates available!` on saturdays to Nextcloud users that are part of the `admin` group. If the Nextcloud container image should be older than 90 days (~3 months) and thus badly outdated, AIO sends a notification to all Nextcloud users with the title `AIO is outdated!`. Thus admins should make sure to update the container images at least once every 3 months in order to make sure that the instance gets all security bugfixes as soon as possible.
-
### How to easily log in to the AIO interface?
If your Nextcloud is running and you are logged in as admin in your Nextcloud, you can easily log in to the AIO interface by opening `https://yourdomain.tld/settings/admin/overview` which will show a button on top that enables you to log in to the AIO interface by just clicking on this button.
@@ -483,7 +622,121 @@ Here is how to reset the AIO instance properly:
1. Optional: You can remove all docker images with `sudo docker image prune -a`.
1. And you are done! Now feel free to start over with the recommended docker run command!
-### Backup solution
+### Can I use a CIFS/SMB share as Nextcloud's datadir?
+Sure. Add this to the `/etc/fstab` file on the host system:
+` cifs rw,mfsymlinks,seal,credentials=,uid=33,gid=0,file_mode=0770,dir_mode=0770 0 0`
+(Of course you need to modify ``, `` and `` for your specific case.)
+
+One example could look like this:
+`//your-storage-host/subpath /mnt/storagebox cifs rw,mfsymlinks,seal,credentials=/etc/storage-credentials,uid=33,gid=0,file_mode=0770,dir_mode=0770 0 0`
+and add into `/etc/storage-credentials`:
+```
+username=
+password=
+```
+(Of course you need to modify `` and `` for your specific case.)
+
+Now you can use `/mnt/storagebox` as Nextcloud's datadir like described in the section above this one.
+
+### Can I run this with Docker swarm?
+Yes. For that to work, you need to use and follow the [manual-install documentation](./manual-install/).
+
+### Can I run this with Kubernetes?
+Yes. For that to work, you need to use and follow the [helm-chart documentation](./nextcloud-aio-helm-chart/).
+
+### How to run this with Docker rootless?
+You can run AIO also with docker rootless. How to do this is documented here: [docker-rootless.md](https://github.com/nextcloud/all-in-one/blob/main/docker-rootless.md)
+
+### Can I run this with Podman instead of Docker?
+Since Podman is not 100% compatible with the Docker API, Podman is not supported (since that would add yet another platform where the maintainer would need to test on). However you can use and follow the [manual-install documentation](./manual-install/) to get AIO's containers running with Podman or use Docker rootless, as described in the above section. Also there is this now: https://github.com/nextcloud/all-in-one/discussions/3487
+
+### Access/Edit Nextcloud files/folders manually
+The files and folders that you add to Nextcloud are by default stored in the following docker directory: `nextcloud_aio_nextcloud:/mnt/ncdata/` (usually `/var/lib/docker/volumes/nextcloud_aio_nextcloud_data/_data/` on linux host systems). If needed, you can modify/add/delete files/folders there but **ATTENTION**: be very careful when doing so because you might corrupt your AIO installation! Best is to create a backup using the built-in backup solution before editing/changing files/folders in there because you will then be able to restore your instance to the backed up state.
+
+After you are done modifying/adding/deleting files/folders, don't forget to apply the correct permissions by running: `sudo docker exec nextcloud-aio-nextcloud chown -R 33:0 /mnt/ncdata/` and `sudo docker exec nextcloud-aio-nextcloud chmod -R 750 /mnt/ncdata/` and rescan the files with `sudo docker exec --user www-data -it nextcloud-aio-nextcloud php occ files:scan --all`.
+
+### How to edit Nextclouds config.php file with a texteditor?
+You can edit Nextclouds config.php file directly from the host with your favorite text editor. E.g. like this: `sudo docker run -it --rm --volume nextcloud_aio_nextcloud:/var/www/html:rw alpine sh -c "apk add --no-cache nano && nano /var/www/html/config/config.php"`. Make sure to not break the file though which might corrupt your Nextcloud instance otherwise. In best case, create a backup using the built-in backup solution before editing the file.
+
+### How to change default files by creating a custom skeleton directory?
+All users see a set of [default files and folders](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/default_files_configuration.html) as dictated by Nextcloud's configuration. To change these default files and folders a custom skeleton directory must first be created; this can be accomplished by copying your skeleton files `sudo docker cp --follow-link /path/to/nextcloud/skeleton/ nextcloud-aio-nextcloud:/mnt/ncdata/skeleton/`, applying the correct permissions with `sudo docker exec nextcloud-aio-nextcloud chown -R 33:0 /mnt/ncdata/skeleton/` and `sudo docker exec nextcloud-aio-nextcloud chmod -R 750 /mnt/ncdata/skeleton/` and setting the skeleton directory option with `sudo docker exec --user www-data -it nextcloud-aio-nextcloud php occ config:system:set skeletondirectory --value="/mnt/ncdata/skeleton"`. Further information is available in the Nextcloud documentation on [configuration parameters for the skeleton directory](https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html#skeletondirectory).
+
+### How to adjust the version retention policy and trashbin retention policy?
+By default, AIO sets the `versions_retention_obligation` and `versions_retention_obligation` both to `auto, 30` which means that versions and items in the trashbin get deleted after 30 days. If you want to change this, see https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/file_versioning.html.
+
+### How to enable automatic updates without creating a backup beforehand?
+If you have an external backup solution, you might want to enable automatic updates without creating a backup first. However note that doing this is disrecommended since you will not be able to easily create and restore a backup from the AIO interface anymore and you need to make sure to shut down all the containers properly before creating the backup, e.g. by stopping them from the AIO interface first.
+
+But anyhow, is here a guide that helps you automate the whole procedure:
+
+
+Click here to expand
+
+```bash
+#!/bin/bash
+
+# Stop the containers
+docker exec --env STOP_CONTAINERS=1 nextcloud-aio-mastercontainer /daily-backup.sh
+
+# Below is optional if you run AIO in a VM which will shut down the VM afterwards
+# poweroff
+
+```
+
+
+
+You can simply copy and paste the script into a file e.g. named `shutdown-script.sh` e.g. here: `/root/shutdown-script.sh`.
+
+Afterwards apply the correct permissions with `sudo chown root:root /root/shutdown-script.sh` and `sudo chmod 700 /root/shutdown-script.sh`. Then you can create a cronjob that runs it on a schedule e.g. runs the script at `04:00` each day like this:
+1. Open the cronjob with `sudo crontab -u root -e` (and choose your editor of choice if not already done. I'd recommend nano).
+1. Add the following new line to the crontab if not already present: `0 4 * * * /root/shutdown-script.sh` which will run the script at 04:00 each day.
+1. save and close the crontab (when using nano the shortcuts for this are `Ctrl + o` and then `Enter` to save, and close the editor with `Ctrl + x`).
+
+
+**After that is in place, you should schedule a backup from your backup solution that creates a backup after AIO is shut down properly. Hint: If your backup runs on the same host, make sure to at least back up all docker volumes and additionally Nextcloud's datadir if it is not stored in a docker volume.**
+
+**Afterwards, you can create a second script that automatically updates the containers:**
+
+
+Click here to expand
+
+```bash
+#!/bin/bash
+
+# Run container update once
+if ! docker exec --env AUTOMATIC_UPDATES=1 nextcloud-aio-mastercontainer /daily-backup.sh; then
+ while docker ps --format "{{.Names}}" | grep -q "^nextcloud-aio-watchtower$"; do
+ echo "Waiting for watchtower to stop"
+ sleep 30
+ done
+
+ while ! docker ps --format "{{.Names}}" | grep -q "^nextcloud-aio-mastercontainer$"; do
+ echo "Waiting for Mastercontainer to start"
+ sleep 30
+ done
+
+ # Run container update another time to make sure that all containers are updated correctly.
+ docker exec --env AUTOMATIC_UPDATES=1 nextcloud-aio-mastercontainer /daily-backup.sh
+fi
+
+```
+
+
+
+You can simply copy and paste the script into a file e.g. named `automatic-updates.sh` e.g. here: `/root/automatic-updates.sh`.
+
+Afterwards apply the correct permissions with `sudo chown root:root /root/automatic-updates.sh` and `sudo chmod 700 /root/automatic-updates.sh`. Then you can create a cronjob that runs e.g. at `05:00` each day like this:
+1. Open the cronjob with `sudo crontab -u root -e` (and choose your editor of choice if not already done. I'd recommend nano).
+1. Add the following new line to the crontab if not already present: `0 5 * * * /root/automatic-updates.sh` which will run the script at 05:00 each day.
+1. save and close the crontab (when using nano the shortcuts for this are `Ctrl + o` then `Enter` to save, and close the editor with `Ctrl + x`).
+
+### Securing the AIO interface from unauthorized ACME challenges
+[By design](https://github.com/nextcloud/all-in-one/discussions/4882#discussioncomment-9858384), Caddy that runs inside the mastercontainer, which handles automatic TLS certificate generation for the AIO interface, is vulnerable to receiving DNS challenges for arbitrary hostnames from anyone on the internet. While this does not compromise your server's security, it can result in cluttered logs and rejected certificate renewal attempts due to rate limit abuse. To mitigate this issue, it is recommended to place the AIO interface behind a VPN and/or limit its public exposure.
+
+### How to migrate from an already existing Nextcloud installation to Nextcloud AIO?
+Please see the following documentation on this: [migration.md](https://github.com/nextcloud/all-in-one/blob/main/migration.md)
+
+## Backup
Nextcloud AIO provides a backup solution based on [BorgBackup](https://github.com/borgbackup/borg#what-is-borgbackup). These backups act as a restore point in case the installation gets corrupted. By using this tool, backups are incremental, differential, compressed and encrypted – so only the first backup will take a while. Further backups should be fast as only changes are taken into account.
It is recommended to create a backup before any container update. By doing this, you will be safe regarding any possible complication during updates because you will be able to restore the whole instance with basically one click.
@@ -526,13 +779,13 @@ Be aware that this solution does not back up files and folders that are mounted
---
-#### What is getting backed up by AIO's backup solution?
+### What is getting backed up by AIO's backup solution?
Backed up will get all important data of your Nextcloud AIO instance required to restore the instance, like the database, your files and configuration files of the mastercontainer and else. Files and folders that are mounted into Nextcloud using the external storage app are not getting backed up. There is currently no way to exclude the data directory because it would require hacks like running files:scan and would make the backup solution much more unreliable (since the database and your files/folders need to stay in sync). If you still don't want your datadirectory to be backed up, see https://github.com/nextcloud/all-in-one#how-to-enable-automatic-updates-without-creating-a-backup-beforehand for options (there is a hint what needs to be backed up in which order).
-#### How to adjust borgs retention policy?
+### How to adjust borgs retention policy?
The built-in borg-based backup solution has by default a retention policy of `--keep-within=7d --keep-weekly=4 --keep-monthly=6`. See https://borgbackup.readthedocs.io/en/stable/usage/prune.html for what these values mean. You can adjust the retention policy by providing `--env BORG_RETENTION_POLICY="--keep-within=7d --keep-weekly=4 --keep-monthly=6"` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used) and customize the value to your fitting. ⚠️ Please make sure that this value is valid, otherwise backup pruning will bug out!
-#### How to migrate from AIO to AIO?
+### How to migrate from AIO to AIO?
If you have the borg backup feature enabled, you can copy it over to the new host and restore from the backup. This guide assumes the new installation data dir will be on `/mnt/datadir`, you can adjust the steps if it's elsewhere.
1. Set the DNS entry to 60 seconds TTL if applicable
@@ -556,7 +809,7 @@ If you have the borg backup feature enabled, you can copy it over to the new hos
1. Wait until the backup is restored
1. Start the containers in the AIO interface
-#### Are remote borg backups supported?
+### Are remote borg backups supported?
Backing up directly to a remote borg repository is supported. This avoids having to store a local copy of your backups, supports append-only borg keys to counter ransomware and allows using the AIO interface to manage your backups.
Some alternatives, which do not have all the above benefits:
@@ -569,12 +822,12 @@ Some alternatives, which do not have all the above benefits:
---
-#### Failure of the backup container in LXC containers
+### Failure of the backup container in LXC containers
If you are running AIO in a LXC container, you need to make sure that FUSE is enabled in the LXC container settings. Also, if using Alpine Linux as host OS, make sure to add fuse via `apk add fuse`. Otherwise the backup container will not be able to start as FUSE is required for it to work.
---
-#### How to create the backup volume on Windows?
+### How to create the backup volume on Windows?
As stated in the AIO interface, it is possible to use a docker volume as backup target. Before you can use that, you need to create it first. Here is an example how to create one on Windows:
```
docker volume create ^
@@ -588,7 +841,7 @@ In this example, it would mount `E:\your\backup\path` into the volume so for a d
---
-#### Pro-tip: Backup archives access
+### Pro-tip: Backup archives access
You can open the BorgBackup archives on your host by following these steps:
(instructions for Ubuntu Desktop)
@@ -618,7 +871,7 @@ sudo umount /tmp/borg
---
-#### Delete backup archives manually
+### Delete backup archives manually
You can delete BorgBackup archives on your host manually by following these steps:
(instructions for Debian based OS' like Ubuntu)
@@ -654,7 +907,7 @@ You can do so by clicking on the `Check backup integrity` button or `Create back
---
-#### Sync local backups regularly to another drive
+### Sync local backups regularly to another drive
For increased backup security, you might consider syncing the local backup repository regularly to another drive.
To do that, first add the drive to `/etc/fstab` so that it is able to get automatically mounted and then create a script that does all the things automatically. Here is an example for such a script:
@@ -752,7 +1005,7 @@ Afterwards apply the correct permissions with `sudo chown root:root /root/backup
1. Add the following new line to the crontab if not already present: `0 20 * * 7 /root/backup-script.sh` which will run the script at 20:00 on Sundays each week.
1. save and close the crontab (when using nano are the shortcuts for this `Ctrl + o` -> `Enter` and close the editor with `Ctrl + x`).
-#### How to exclude Nextcloud's data directory or the preview folder from backup?
+### How to exclude Nextcloud's data directory or the preview folder from backup?
In order to speed up the backups and to keep the backup archives small, you might want to exclude Nextcloud's data directory or its preview folder from backup.
> [!WARNING]
@@ -784,166 +1037,7 @@ One example for this would be `sudo docker exec -it --env DAILY_BACKUP=1 nextclo
### How to disable the backup section?
If you already have a backup solution in place, you may want to hide the backup section. You can do so by adding `--env AIO_DISABLE_BACKUP_SECTION=true` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used).
-### How to change the default location of Nextcloud's Datadir?
-> [!WARNING]
-> Do not set or adjust this value after the initial Nextcloud installation is done! If you still want to do it afterwards, see [this](https://github.com/nextcloud/all-in-one/discussions/890#discussioncomment-3089903) on how to do it.
-
-You can configure the Nextcloud container to use a specific directory on your host as data directory. You can do so by adding the environmental variable `NEXTCLOUD_DATADIR` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used). Allowed values for that variable are strings that start with `/` and are not equal to `/`. The chosen directory or volume will then be mounted to `/mnt/ncdata` inside the container.
-
-- An example for Linux is `--env NEXTCLOUD_DATADIR="/mnt/ncdata"`. ⚠️ Please note: If you should be using an external BTRFS drive that is mounted to `/mnt/ncdata`, make sure to choose a subfolder like e.g. `/mnt/ncdata/nextcloud` as datadir, since the root folder is not suited as datadir in that case. See https://github.com/nextcloud/all-in-one/discussions/2696.
-- On macOS it might be `--env NEXTCLOUD_DATADIR="/var/nextcloud-data"`
-- For Synology it may be `--env NEXTCLOUD_DATADIR="/volume1/docker/nextcloud/data"`.
-- On Windows it might be `--env NEXTCLOUD_DATADIR="/run/desktop/mnt/host/c/ncdata"`. (This path is equivalent to `C:\ncdata` on your Windows host so you need to translate the path accordingly. Hint: the path that you enter needs to start with `/run/desktop/mnt/host/`. Append to that the exact location on your windows host, e.g. `c/ncdata` which is equivalent to `C:\ncdata`.) ⚠️ **Please note**: This does not work with external drives like USB or network drives and only with internal drives like SATA or NVME drives.
-- Another option is to provide a specific volume name here with: `--env NEXTCLOUD_DATADIR="nextcloud_aio_nextcloud_datadir"`. This volume needs to be created beforehand manually by you in order to be able to use it. e.g. on Windows with:
- ```
- docker volume create ^
- --driver local ^
- --name nextcloud_aio_nextcloud_datadir ^
- -o device="/host_mnt/e/your/data/path" ^
- -o type="none" ^
- -o o="bind"
- ```
- In this example, it would mount `E:\your\data\path` into the volume so for a different location you need to adjust `/host_mnt/e/your/data/path` accordingly.
-
-### Can I use a CIFS/SMB share as Nextcloud's datadir?
-
-Sure. Add this to the `/etc/fstab` file on the host system:
-` cifs rw,mfsymlinks,seal,credentials=,uid=33,gid=0,file_mode=0770,dir_mode=0770 0 0`
-(Of course you need to modify ``, `` and `` for your specific case.)
-
-One example could look like this:
-`//your-storage-host/subpath /mnt/storagebox cifs rw,mfsymlinks,seal,credentials=/etc/storage-credentials,uid=33,gid=0,file_mode=0770,dir_mode=0770 0 0`
-and add into `/etc/storage-credentials`:
-```
-username=
-password=
-```
-(Of course you need to modify `` and `` for your specific case.)
-
-Now you can use `/mnt/storagebox` as Nextcloud's datadir like described in the section above this one.
-
-### How to allow the Nextcloud container to access directories on the host?
-By default, the Nextcloud container is confined and cannot access directories on the host OS. You might want to change this when you are planning to use local external storage in Nextcloud to store some files outside the data directory and can do so by adding the environmental variable `NEXTCLOUD_MOUNT` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used). Allowed values for that variable are strings that start with `/` and are not equal to `/`.
-
-- Two examples for Linux are `--env NEXTCLOUD_MOUNT="/mnt/"` and `--env NEXTCLOUD_MOUNT="/media/"`.
-- On macOS it might be `--env NEXTCLOUD_MOUNT="/Volumes/your_drive/"`
-- For Synology it may be `--env NEXTCLOUD_MOUNT="/volume1/"`.
-- On Windows it might be `--env NEXTCLOUD_MOUNT="/run/desktop/mnt/host/d/your-folder/"`. (This path is equivalent to `D:\your-folder` on your Windows host so you need to translate the path accordingly. Hint: the path that you enter needs to start with `/run/desktop/mnt/host/`. Append to that the exact location on your windows host, e.g. `d/your-folder/` which is equivalent to `D:\your-folder`.) ⚠️ **Please note**: This does not work with external drives like USB or network drives and only with internal drives like SATA or NVME drives.
-
-After using this option, please make sure to apply the correct permissions to the directories that you want to use in Nextcloud. E.g. `sudo chown -R 33:0 /mnt/your-drive-mountpoint` and `sudo chmod -R 750 /mnt/your-drive-mountpoint` should make it work on Linux when you have used `--env NEXTCLOUD_MOUNT="/mnt/"`. On Windows you could do this e.g. with `docker exec -it nextcloud-aio-nextcloud chown -R 33:0 /run/desktop/mnt/host/d/your-folder/` and `docker exec -it nextcloud-aio-nextcloud chmod -R 750 /run/desktop/mnt/host/d/your-folder/`.
-
-You can then navigate to `https://your-nc-domain.com/settings/apps/disabled`, activate the external storage app, navigate to `https://your-nc-domain.com/settings/admin/externalstorages` and add a local external storage directory that will be accessible inside the container at the same place that you've entered. E.g. `/mnt/your-drive-mountpoint` will be mounted to `/mnt/your-drive-mountpoint` inside the container, etc.
-
-Be aware though that these locations will not be covered by the built-in backup solution - but you can add further Docker volumes and host paths that you want to back up after the initial backup is done.
-
-> [!NOTE]
-> If you can't see the type "local storage" in the external storage admin options, a restart of the containers from the AIO interface may be required.
-
-### How to adjust the Talk port?
-By default will the talk container use port `3478/UDP` and `3478/TCP` for connections. This should be set to something higher than 1024! You can adjust the port by adding e.g. `--env TALK_PORT=3478` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used) and adjusting the port to your desired value. Best is to use a port over 1024, so e.g. 3479 to not run into this: https://github.com/nextcloud/all-in-one/discussions/2517
-
-### How to adjust the upload limit for Nextcloud?
-By default, public uploads to Nextcloud are limited to a max of 16G (logged in users can upload much bigger files using the webinterface or the mobile/desktop clients, since chunking is used in that case). You can adjust the upload limit by providing `--env NEXTCLOUD_UPLOAD_LIMIT=16G` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used) and customize the value to your fitting. It must start with a number and end with `G` e.g. `16G`.
-
-### How to adjust the max execution time for Nextcloud?
-By default, uploads to Nextcloud are limited to a max of 3600s. You can adjust the upload time limit by providing `--env NEXTCLOUD_MAX_TIME=3600` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used) and customize the value to your fitting. It must be a number e.g. `3600`.
-
-### How to adjust the PHP memory limit for Nextcloud?
-By default, each PHP process in the Nextcloud container is limited to a max of 512 MB. You can adjust the memory limit by providing `--env NEXTCLOUD_MEMORY_LIMIT=512M` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used) and customize the value to your fitting. It must start with a number and end with `M` e.g. `1024M`.
-
-### What can I do to fix the internal or reserved ip-address error?
-If you get an error during the domain validation which states that your ip-address is an internal or reserved ip-address, you can fix this by first making sure that your domain indeed has the correct public ip-address that points to the server and then adding `--add-host yourdomain.com:` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used) which will allow the domain validation to work correctly. And so that you know: even if the `A` record of your domain should change over time, this is no problem since the mastercontainer will not make any attempt to access the chosen domain after the initial domain validation.
-
-### Can I run this with Docker swarm?
-Yes. For that to work, you need to use and follow the [manual-install documentation](./manual-install/).
-
-### Can I run this with Kubernetes?
-Yes. For that to work, you need to use and follow the [helm-chart documentation](./nextcloud-aio-helm-chart/).
-
-### How to run this with Docker rootless?
-You can run AIO also with docker rootless. How to do this is documented here: [docker-rootless.md](https://github.com/nextcloud/all-in-one/blob/main/docker-rootless.md)
-
-### Can I run this with Podman instead of Docker?
-Since Podman is not 100% compatible with the Docker API, Podman is not supported (since that would add yet another platform where the maintainer would need to test on). However you can use and follow the [manual-install documentation](./manual-install/) to get AIO's containers running with Podman or use Docker rootless, as described in the above section. Also there is this now: https://github.com/nextcloud/all-in-one/discussions/3487
-
-### How to change the Nextcloud apps that are installed on the first startup?
-You might want to adjust the Nextcloud apps that are installed upon the first startup of the Nextcloud container. You can do so by adding `--env NEXTCLOUD_STARTUP_APPS="deck twofactor_totp tasks calendar contacts notes"` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used) and customize the value to your fitting. It must be a string with small letters a-z, 0-9, spaces and hyphens or '_'. You can disable shipped and by default enabled apps by adding a hyphen in front of the appid. E.g. `-contactsinteraction`.
-
-### How to add OS packages permanently to the Nextcloud container?
-Some Nextcloud apps require additional external dependencies that must be bundled within Nextcloud container in order to work correctly. As we cannot put each and every dependency for all apps into the container - as this would make the project quickly unmaintainable - there is an official way in which you can add additional dependencies into the Nextcloud container. However note that doing this is disrecommended since we do not test Nextcloud apps that require external dependencies.
-
-You can do so by adding `--env NEXTCLOUD_ADDITIONAL_APKS="imagemagick dependency2 dependency3"` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used) and customize the value to your fitting. It must be a string with small letters a-z, digits 0-9, spaces, dots and hyphens or '_'. You can find available packages here: https://pkgs.alpinelinux.org/packages?branch=v3.21. By default `imagemagick` is added. If you want to keep it, you need to specify it as well.
-
-### How to add PHP extensions permanently to the Nextcloud container?
-Some Nextcloud apps require additional php extensions that must be bundled within Nextcloud container in order to work correctly. As we cannot put each and every dependency for all apps into the container - as this would make the project quickly unmaintainable - there is an official way in which you can add additional php extensions into the Nextcloud container. However note that doing this is disrecommended since we do not test Nextcloud apps that require additional php extensions.
-
-You can do so by adding `--env NEXTCLOUD_ADDITIONAL_PHP_EXTENSIONS="imagick extension1 extension2"` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used) and customize the value to your fitting. It must be a string with small letters a-z, digits 0-9, spaces, dots and hyphens or '_'. You can find available extensions here: https://pecl.php.net/packages.php. By default `imagick` is added. If you want to keep it, you need to specify it as well.
-
-### What about the pdlib PHP extension for the facerecognition app?
-The [facerecognition app](https://apps.nextcloud.com/apps/facerecognition) requires the pdlib PHP extension to be installed. Unfortunately, it is not available on PECL nor via PHP core, so there is no way to add this into AIO currently. However you can use [this community container](https://github.com/nextcloud/all-in-one/tree/main/community-containers/facerecognition) in order to run facerecognition.
-
-### How to enable hardware acceleration for Nextcloud?
-Some container can use GPU acceleration to increase performance like [memories app](https://apps.nextcloud.com/apps/memories) allows to enable hardware transcoding for videos.
-
-#### With open source drivers MESA for AMD, Intel and **new** drivers `Nouveau` for Nvidia
-
-> [!WARNING]
-> This only works if the `/dev/dri` device is present on the host! If it does not exist on your host, don't proceed as otherwise the Nextcloud container will fail to start! If you are unsure about this, better do not proceed with the instructions below. Make sure that your driver is correctly configured on the host.
-
-A list of supported device can be fond in [MESA 3D documentation](https://docs.mesa3d.org/systems.html).
-
-This method use the [Direct Rendering Infrastructure](https://dri.freedesktop.org/wiki/) with the access to the `/dev/dri` device.
-
-In order to use that, you need to add `--env NEXTCLOUD_ENABLE_DRI_DEVICE=true` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used) which will mount the `/dev/dri` device into the container.
-
-
-#### With proprietary drivers for Nvidia :warning: BETA
-
-> [!WARNING]
-> This only works if the Nvidia Toolkit is installed on the host and an NVIDIA GPU is enabled! Make sure that it is correctly configured on the host. If it does not exist on your host, don't proceed as otherwise the Nextcloud container will fail to start! If you are unsure about this, better do not proceed with the instructions below.
->
-> This feature is in beta. Since the proprietary, we haven't a lot of user using proprietary drivers, we can't guarantee the stability of this feature. Your feedback is welcome.
-
-This method use the [Nvidia Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/index.html) with the nvidia runtime.
-
-In order to use that, you need to add `--env NEXTCLOUD_ENABLE_NVIDIA_GPU=true` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used) which will enable the nvidia runtime.
-
-If you're using WSL2 and want to use the NVIDIA runtime, please follow the instructions to [install the NVIDIA Container Toolkit meta-version in WSL](https://docs.nvidia.com/cuda/wsl-user-guide/index.html#cuda-support-for-wsl-2).
-
-### How to keep disabled apps?
-In certain situations you might want to keep Nextcloud apps that are disabled in the AIO interface and not uninstall them if they should be installed in Nextcloud. You can do so by adding `--env NEXTCLOUD_KEEP_DISABLED_APPS=true` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used).
-> [!WARNING]
-> Doing this might cause unintended problems in Nextcloud if an app that requires an external dependency is still installed but the external dependency not for example.
-
-### Huge docker logs
-If you should run into issues with huge docker logs, you can adjust the log size by following https://docs.docker.com/config/containers/logging/local/#usage. However for the included AIO containers, this should usually not be needed because almost all of them have the log level set to warn so they should not produce many logs.
-
-### Access/Edit Nextcloud files/folders manually
-The files and folders that you add to Nextcloud are by default stored in the following docker directory: `nextcloud_aio_nextcloud:/mnt/ncdata/` (usually `/var/lib/docker/volumes/nextcloud_aio_nextcloud_data/_data/` on linux host systems). If needed, you can modify/add/delete files/folders there but **ATTENTION**: be very careful when doing so because you might corrupt your AIO installation! Best is to create a backup using the built-in backup solution before editing/changing files/folders in there because you will then be able to restore your instance to the backed up state.
-
-After you are done modifying/adding/deleting files/folders, don't forget to apply the correct permissions by running: `sudo docker exec nextcloud-aio-nextcloud chown -R 33:0 /mnt/ncdata/` and `sudo docker exec nextcloud-aio-nextcloud chmod -R 750 /mnt/ncdata/` and rescan the files with `sudo docker exec --user www-data -it nextcloud-aio-nextcloud php occ files:scan --all`.
-
-### How to store the files/installation on a separate drive?
-You can move the whole docker library and all its files including all Nextcloud AIO files and folders to a separate drive by first mounting the drive in the host OS (NTFS is not supported and ext4 is recommended as FS) and then following this tutorial: https://www.guguweb.com/2019/02/07/how-to-move-docker-data-directory-to-another-location-on-ubuntu/
-(Of course docker needs to be installed first for this to work.)
-
-⚠️ If you encounter errors from richdocuments in your Nextcloud logs, check in your Collabora container if the message "Capabilities are not set for the coolforkit program." appears. If so, follow these steps:
-
-1. Stop all the containers from the AIO Interface.
-2. Go to your terminal and delete the Collabora container (`docker rm nextcloud-aio-collabora`) AND the Collabora image (`docker image rm nextcloud/aio-collabora`).
-3. You might also want to prune your Docker (`docker system prune`) (no data will be lost).
-4. Restart your containers from the AIO Interface.
-
-This should solve the problem.
-
-### How to edit Nextclouds config.php file with a texteditor?
-You can edit Nextclouds config.php file directly from the host with your favorite text editor. E.g. like this: `sudo docker run -it --rm --volume nextcloud_aio_nextcloud:/var/www/html:rw alpine sh -c "apk add --no-cache nano && nano /var/www/html/config/config.php"`. Make sure to not break the file though which might corrupt your Nextcloud instance otherwise. In best case, create a backup using the built-in backup solution before editing the file.
-
-### How to change default files by creating a custom skeleton directory?
-All users see a set of [default files and folders](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/default_files_configuration.html) as dictated by Nextcloud's configuration. To change these default files and folders a custom skeleton directory must first be created; this can be accomplished by copying your skeleton files `sudo docker cp --follow-link /path/to/nextcloud/skeleton/ nextcloud-aio-nextcloud:/mnt/ncdata/skeleton/`, applying the correct permissions with `sudo docker exec nextcloud-aio-nextcloud chown -R 33:0 /mnt/ncdata/skeleton/` and `sudo docker exec nextcloud-aio-nextcloud chmod -R 750 /mnt/ncdata/skeleton/` and setting the skeleton directory option with `sudo docker exec --user www-data -it nextcloud-aio-nextcloud php occ config:system:set skeletondirectory --value="/mnt/ncdata/skeleton"`. Further information is available in the Nextcloud documentation on [configuration parameters for the skeleton directory](https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html#skeletondirectory).
-
-### How to adjust the version retention policy and trashbin retention policy?
-By default, AIO sets the `versions_retention_obligation` and `versions_retention_obligation` both to `auto, 30` which means that versions and items in the trashbin get deleted after 30 days. If you want to change this, see https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/file_versioning.html.
+## Addons
### Fail2ban
You can configure your server to block certain ip-addresses using fail2ban as bruteforce protection. Here is how to set it up: https://docs.nextcloud.com/server/stable/admin_manual/installation/harden_server.html#setup-fail2ban. The logpath of AIO is by default `/var/lib/docker/volumes/nextcloud_aio_nextcloud/_data/data/nextcloud.log`. Do not forget to add `chain=DOCKER-USER` to your nextcloud jail config (`nextcloud.local`) otherwise the nextcloud service running on docker will still be accessible even if the IP is banned. Also, you may change the blocked ports to cover all AIO ports: by default `80,443,8080,8443,3478` (see [this](https://github.com/nextcloud/all-in-one#explanation-of-used-ports)). Apart from that there is now a community container that can be added to the AIO stack: https://github.com/nextcloud/all-in-one/tree/main/community-containers/fail2ban
@@ -963,8 +1057,7 @@ It is possible to install any of these to get a GUI for your AIO database. The p
### Mail server
You can configure one yourself by using either of these four recommended projects: [Docker Mailserver](https://github.com/docker-mailserver/docker-mailserver/#docker-mailserver), [Mailu](https://github.com/Mailu/Mailu), [Maddy Mail Server](https://github.com/foxcpp/maddy#maddy-mail-server), [Mailcow](https://github.com/mailcow/mailcow-dockerized#mailcow-dockerized-------) or [Stalwart](https://stalw.art/). There is now a community container which allows to easily add Stalwart Mail server to AIO: https://github.com/nextcloud/all-in-one/tree/main/community-containers/stalwart
-### How to migrate from an already existing Nextcloud installation to Nextcloud AIO?
-Please see the following documentation on this: [migration.md](https://github.com/nextcloud/all-in-one/blob/main/migration.md)
+## Miscellaneous
### Requirements for integrating new containers
For integrating new containers, they must pass specific requirements for being considered to get integrated in AIO itself. Even if not considered, we may add some documentation on it. Also there is this now: https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers
@@ -979,86 +1072,11 @@ What are the requirements?
7. No additional setup should be needed after adding the container - it should work completely out of the box.
8. If the container requires being exposed, only subfolders are supported. So the container should not require its own (sub-)domain and must be able to run in a subfolder.
-### How to trust user-defined Certification Authorities (CA)?
-For some applications it might be necessary to establish a secure connection to another host/server which is using a certificate issued by a Certification Authority that is not trusted out of the box. An example could be configuring LDAPS against a domain controller (Active Directory or Samba-based) of an organization.
+### Update policy
+This project values stability over new features. That means that when a new major Nextcloud update gets introduced, we will wait at least until the first patch release, e.g. `24.0.1` is out before upgrading to it. Also we will wait with the upgrade until all important apps are compatible with the new major version. Minor or patch releases for Nextcloud and all dependencies as well as all containers will be updated to new versions as soon as possible but we try to give all updates first a good test round before pushing them. That means that it can take around 2 weeks before new updates reach the `latest` channel. If you want to help testing, you can switch to the `beta` channel by following [this documentation](#how-to-switch-the-channel) which will also give you the updates earlier.
-You can make the Nextcloud container trust any Certification Authority by providing the environmental variable `NEXTCLOUD_TRUSTED_CACERTS_DIR` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used). The value of the variables should be set to the absolute paths of the directory on the host, which contains one or more Certification Authorities certificates. You should use X.509 certificates, Base64 encoded. (Other formats may work but have not been tested!) All the certificates in the directory will be trusted.
+### How often are update notifications sent?
+AIO ships its own update notifications implementation. It checks if container updates are available. If so, it sends a notification with the title `Container updates available!` on saturdays to Nextcloud users that are part of the `admin` group. If the Nextcloud container image should be older than 90 days (~3 months) and thus badly outdated, AIO sends a notification to all Nextcloud users with the title `AIO is outdated!`. Thus admins should make sure to update the container images at least once every 3 months in order to make sure that the instance gets all security bugfixes as soon as possible.
-When using `docker run`, the environmental variable can be set with `--env NEXTCLOUD_TRUSTED_CACERTS_DIR=/path/to/my/cacerts`.
-
-In order for the value to be valid, the path should start with `/` and not end with `/` and point to an existing **directory**. Pointing the variable directly to a certificate **file** will not work and may also break things.
-
-### How to disable Collabora's Seccomp feature?
-The Collabora container enables Seccomp by default, which is a security feature of the Linux kernel. On systems without this kernel feature enabled, you need to provide `--env COLLABORA_SECCOMP_DISABLED=true` to the initial docker run command in order to make it work. If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used.
-
-### How to adjust the Fulltextsearch Java options?
-The Fulltextsearch Java options are by default set to `-Xms512M -Xmx512M` which might not be enough on some systems. You can adjust this by adding e.g. `--env FULLTEXTSEARCH_JAVA_OPTIONS="-Xms1024M -Xmx1024M"` to the initial docker run command. If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used.
-
-### How to enable automatic updates without creating a backup beforehand?
-If you have an external backup solution, you might want to enable automatic updates without creating a backup first. However note that doing this is disrecommended since you will not be able to easily create and restore a backup from the AIO interface anymore and you need to make sure to shut down all the containers properly before creating the backup, e.g. by stopping them from the AIO interface first.
-
-But anyhow, is here a guide that helps you automate the whole procedure:
-
-
-Click here to expand
-
-```bash
-#!/bin/bash
-
-# Stop the containers
-docker exec --env STOP_CONTAINERS=1 nextcloud-aio-mastercontainer /daily-backup.sh
-
-# Below is optional if you run AIO in a VM which will shut down the VM afterwards
-# poweroff
-
-```
-
-
-
-You can simply copy and paste the script into a file e.g. named `shutdown-script.sh` e.g. here: `/root/shutdown-script.sh`.
-
-Afterwards apply the correct permissions with `sudo chown root:root /root/shutdown-script.sh` and `sudo chmod 700 /root/shutdown-script.sh`. Then you can create a cronjob that runs it on a schedule e.g. runs the script at `04:00` each day like this:
-1. Open the cronjob with `sudo crontab -u root -e` (and choose your editor of choice if not already done. I'd recommend nano).
-1. Add the following new line to the crontab if not already present: `0 4 * * * /root/shutdown-script.sh` which will run the script at 04:00 each day.
-1. save and close the crontab (when using nano the shortcuts for this are `Ctrl + o` and then `Enter` to save, and close the editor with `Ctrl + x`).
-
-
-**After that is in place, you should schedule a backup from your backup solution that creates a backup after AIO is shut down properly. Hint: If your backup runs on the same host, make sure to at least back up all docker volumes and additionally Nextcloud's datadir if it is not stored in a docker volume.**
-
-**Afterwards, you can create a second script that automatically updates the containers:**
-
-
-Click here to expand
-
-```bash
-#!/bin/bash
-
-# Run container update once
-if ! docker exec --env AUTOMATIC_UPDATES=1 nextcloud-aio-mastercontainer /daily-backup.sh; then
- while docker ps --format "{{.Names}}" | grep -q "^nextcloud-aio-watchtower$"; do
- echo "Waiting for watchtower to stop"
- sleep 30
- done
-
- while ! docker ps --format "{{.Names}}" | grep -q "^nextcloud-aio-mastercontainer$"; do
- echo "Waiting for Mastercontainer to start"
- sleep 30
- done
-
- # Run container update another time to make sure that all containers are updated correctly.
- docker exec --env AUTOMATIC_UPDATES=1 nextcloud-aio-mastercontainer /daily-backup.sh
-fi
-
-```
-
-
-
-You can simply copy and paste the script into a file e.g. named `automatic-updates.sh` e.g. here: `/root/automatic-updates.sh`.
-
-Afterwards apply the correct permissions with `sudo chown root:root /root/automatic-updates.sh` and `sudo chmod 700 /root/automatic-updates.sh`. Then you can create a cronjob that runs e.g. at `05:00` each day like this:
-1. Open the cronjob with `sudo crontab -u root -e` (and choose your editor of choice if not already done. I'd recommend nano).
-1. Add the following new line to the crontab if not already present: `0 5 * * * /root/automatic-updates.sh` which will run the script at 05:00 each day.
-1. save and close the crontab (when using nano the shortcuts for this are `Ctrl + o` then `Enter` to save, and close the editor with `Ctrl + x`).
-
-### Securing the AIO interface from unauthorized ACME challenges
-[By design](https://github.com/nextcloud/all-in-one/discussions/4882#discussioncomment-9858384), Caddy that runs inside the mastercontainer, which handles automatic TLS certificate generation for the AIO interface, is vulnerable to receiving DNS challenges for arbitrary hostnames from anyone on the internet. While this does not compromise your server's security, it can result in cluttered logs and rejected certificate renewal attempts due to rate limit abuse. To mitigate this issue, it is recommended to place the AIO interface behind a VPN and/or limit its public exposure.
+### Huge docker logs
+If you should run into issues with huge docker logs, you can adjust the log size by following https://docs.docker.com/config/containers/logging/local/#usage. However for the included AIO containers, this should usually not be needed because almost all of them have the log level set to warn so they should not produce many logs.
From c531f516d3ab1d151c0252af10cfba2f0965290e Mon Sep 17 00:00:00 2001
From: szaimen <42591237+szaimen@users.noreply.github.com>
Date: Tue, 18 Feb 2025 12:11:54 +0000
Subject: [PATCH 0084/1064] php dependency updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
---
php/composer.lock | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/php/composer.lock b/php/composer.lock
index 0c72e6dd..1cce5d4a 100644
--- a/php/composer.lock
+++ b/php/composer.lock
@@ -2699,16 +2699,16 @@
},
{
"name": "phpstan/phpdoc-parser",
- "version": "2.0.1",
+ "version": "2.0.2",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpdoc-parser.git",
- "reference": "72e51f7c32c5aef7c8b462195b8c599b11199893"
+ "reference": "51087f87dcce2663e1fed4dfd4e56eccd580297e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/72e51f7c32c5aef7c8b462195b8c599b11199893",
- "reference": "72e51f7c32c5aef7c8b462195b8c599b11199893",
+ "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/51087f87dcce2663e1fed4dfd4e56eccd580297e",
+ "reference": "51087f87dcce2663e1fed4dfd4e56eccd580297e",
"shasum": ""
},
"require": {
@@ -2740,9 +2740,9 @@
"description": "PHPDoc parser with support for nullable, intersection and generic types",
"support": {
"issues": "https://github.com/phpstan/phpdoc-parser/issues",
- "source": "https://github.com/phpstan/phpdoc-parser/tree/2.0.1"
+ "source": "https://github.com/phpstan/phpdoc-parser/tree/2.0.2"
},
- "time": "2025-02-13T12:25:43+00:00"
+ "time": "2025-02-17T20:25:51+00:00"
},
{
"name": "sebastian/diff",
From efe9aac94db6c222cde087b41d0b1dbf2ca8c3ac Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Tue, 18 Feb 2025 22:42:23 +0100
Subject: [PATCH 0085/1064] add info box in how-to sectioin
Signed-off-by: Simon L.
---
readme.md | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/readme.md b/readme.md
index 5f6abfd6..27c45154 100644
--- a/readme.md
+++ b/readme.md
@@ -81,7 +81,9 @@ Included are:
|  |  |
## How to use this?
-The following instructions are meant for installations without a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else) already being in place. If you want to run AIO behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else), see the [reverse proxy documentation](https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md). Also, the instructions below are especially meant for Linux. For macOS see [this](#how-to-run-aio-on-macos), for Windows see [this](#how-to-run-aio-on-windows) and for Synology see [this](#how-to-run-aio-on-synology-dsm).
+> [!INFO]
+> The following instructions are meant for installations without a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else) already being in place. If you want to run AIO behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else), see the [reverse proxy documentation](https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md). Also, the instructions below are especially meant for Linux. For macOS see [this](#how-to-run-aio-on-macos), for Windows see [this](#how-to-run-aio-on-windows) and for Synology see [this](#how-to-run-aio-on-synology-dsm).
+
1. Install Docker on your Linux installation by following the official documentation: https://docs.docker.com/engine/install/#supported-platforms.
>[!WARNING]
> You could use the convenience script below to install docker. However we recommend to not blindly download and execute scripts as sudo. But if you feel like it, you can of course use it. See below:
From 77a44ee7ff6a7dc3c48a9d5713ed4f8033be95a8 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Tue, 18 Feb 2025 22:52:21 +0100
Subject: [PATCH 0086/1064] aio-interface: adjust aplicable links to always
open in a new tab
Signed-off-by: Simon L.
---
php/templates/containers.twig | 58 +++++++++----------
php/templates/includes/aio-config.twig | 18 +++---
php/templates/includes/backup-dirs.twig | 2 +-
.../includes/optional-containers.twig | 12 ++--
php/templates/login.twig | 2 +-
5 files changed, 46 insertions(+), 46 deletions(-)
diff --git a/php/templates/containers.twig b/php/templates/containers.twig
index 03fe7802..cc038cf4 100644
--- a/php/templates/containers.twig
+++ b/php/templates/containers.twig
@@ -81,7 +81,7 @@
{% if is_backup_container_running == false and domain == "" %}
{% if isDomaincheckRunning == false %}
Domaincheck container is not running
-
This is not expected. Most likely this happened because port {{ apache_port }} is already in use on your server. You can check the mastercontainer logs and domaincheck container logs for further clues. You should be able to resolve this by adjusting the APACHE_PORT by following the reverse proxy documentation. Advice: have a detailed look at the changed docker run command for AIO.
+
This is not expected. Most likely this happened because port {{ apache_port }} is already in use on your server. You can check the mastercontainer logs and domaincheck container logs for further clues. You should be able to resolve this by adjusting the APACHE_PORT by following the reverse proxy documentation. Advice: have a detailed look at the changed docker run command for AIO.
AIO is currently in "normal mode" which means that it handles the TLS proxying itself. This also means that it cannot be installed behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else). If you want to run AIO behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else), see the reverse proxy documentation. Advice: have a detailed look at the changed docker run command for AIO.
+
AIO is currently in "normal mode" which means that it handles the TLS proxying itself. This also means that it cannot be installed behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else). If you want to run AIO behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else), see the reverse proxy documentation. Advice: have a detailed look at the changed docker run command for AIO.
{% else %}
AIO is currently in "reverse proxy mode" which means that it can be installed behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else) and does not do the TLS proxying itself.
{% endif %}
@@ -115,14 +115,14 @@
Make sure that this server is reachable on port 443 (port 443/tcp is open/forwarded in your firewall/router and 443/udp as well if you want to enable http3) and that you've correctly set up the DNS config for the domain that you enter (set the A record to your public ipv4-address and if you need ipv6, set the AAAA record to your public ipv6-address. A CNAME record is, of course, also possible). You should see hints on what went wrong in the top right corner if your domain is not accepted.
Click here for further hints
-
If you do not have a domain yet, you can get one for free e.g. from duckdns.org and others. Recommended is to use Tailscale
-
If you have a dynamic public IP-address, you can use e.g. DDclient with a compatible domain provider for DNS updates.
-
If you only want to install AIO locally without exposing it to the public internet or if you cannot do so, feel free to follow this documentation.
+
If you do not have a domain yet, you can get one for free e.g. from duckdns.org and others. Recommended is to use Tailscale
+
If you have a dynamic public IP-address, you can use e.g. DDclient with a compatible domain provider for DNS updates.
+
If you only want to install AIO locally without exposing it to the public internet or if you cannot do so, feel free to follow this documentation.
If you should be using Cloudflare Proxy for your domain, make sure to disable the Proxy feature temporarily as it might block the domain validation attempts.
{% if apache_port != '443' %}
-
If you run into issues with your domain being accepted, see these steps for how to debug things.
+
If you run into issues with your domain being accepted, see these steps for how to debug things.
{% endif %}
-
Hint: If the domain validation fails but you are completely sure that you've configured everything correctly, you may skip the domain validation by following this documentation.
+
Hint: If the domain validation fails but you are completely sure that you've configured everything correctly, you may skip the domain validation by following this documentation.
Please adjust the path and/or the encryption password in order to make it work!
{% elseif borg_backup_mode == 'check' %}
-
The backup archive seems to be corrupt. Please try to use a different intact backup archive or try to fix it by following this documentation
+
The backup archive seems to be corrupt. Please try to use a different intact backup archive or try to fix it by following this documentation
Reveal repair option
Below is the option to repair the integrity of your backup. Please note: Please only use this after you have read the documentation above! (It will run the command 'borg check --repair' for you.)
@@ -160,7 +160,7 @@
{% endif %}
Choose the backup that you want to restore and click on the button below to restore the selected backup. This will restore the whole AIO instance. Please note that the current AIO passphrase will be kept and the previous AIO passphrase will not be restored from backup!
-
Please note: If the backup that you want to restore contained any community container, but you did not specify the same community containers via environmental variable while creating this new AIO instance, you need to restore the same backup a second time after this attempt so that the community container data is also correctly restored.
+
Please note: If the backup that you want to restore contained any community container, but you did not specify the same community containers via environmental variable while creating this new AIO instance, you need to restore the same backup a second time after this attempt so that the community container data is also correctly restored.
-
The new passphrase needs to be at least 24 characters long. Allowed characters are the latin charactersa-z, A-Z, 0-9 and spaces.
+
The new passphrase needs to be at least 24 characters long. Allowed characters are the latin charactersa-z, A-Z, 0-9 and spaces.
{% endif %}
{% endif %}
@@ -623,7 +623,7 @@
-
You need to make sure that the timezone that you enter is valid. An example is Europe/Berlin. You can get valid values by looking at the 'TZ identifier' column of this list: click here. The default is Etc/UTC if nothing is entered.
+
You need to make sure that the timezone that you enter is valid. An example is Europe/Berlin. You can get valid values by looking at the 'TZ identifier' column of this list: click here. The default is Etc/UTC if nothing is entered.
{% else %}
The timezone for Nextcloud is currently set to {{ timezone }}. You can change the timezone by clicking on the button below.
diff --git a/php/templates/includes/aio-config.twig b/php/templates/includes/aio-config.twig
index 07672ce3..7535ad93 100644
--- a/php/templates/includes/aio-config.twig
+++ b/php/templates/includes/aio-config.twig
@@ -1,8 +1,8 @@
Click here to view the current AIO config and documentation links
{% if was_start_button_clicked == true %}
-
Nextcloud's config.php file is stored in the nextcloud_aio_nextcloud Docker volume and can be edited by following the config.php documentation.
-
You can run Nextcloud's usual occ commands by following the occ documentation.
+
Nextcloud's config.php file is stored in the nextcloud_aio_nextcloud Docker volume and can be edited by following the config.php documentation.
+
You can run Nextcloud's usual occ commands by following the occ documentation.
{% endif %}
@@ -11,7 +11,7 @@
{% else %}
Nextcloud's datadir is getting stored in the {{ nextcloud_datadir }} Docker volume.
{% endif %}
- See the NEXTCLOUD_DATADIR documentation on how to change this.
+ See the NEXTCLOUD_DATADIR documentation on how to change this.
@@ -20,13 +20,13 @@
{% else %}
The Nextcloud container is getting access to the {{ nextcloud_mount }} directory and local external storage in Nextcloud is enabled.
{% endif %}
- See the NEXTCLOUD_MOUNT documentation on how to change this.
Nextcloud has an upload limit of {{ nextcloud_upload_limit }} configured (for public link uploads. Bigger uploads are always possible when users are logged in). See the NEXTCLOUD_UPLOAD_LIMIT documentation on how to change this.
+
Nextcloud has an upload limit of {{ nextcloud_upload_limit }} configured (for public link uploads. Bigger uploads are always possible when users are logged in). See the NEXTCLOUD_UPLOAD_LIMIT documentation on how to change this.
-
For Nextcloud, a memory limit of {{ nextcloud_memory_limit }} per PHP process is configured. See the NEXTCLOUD_MEMORY_LIMIT documentation on how to change this.
+
For Nextcloud, a memory limit of {{ nextcloud_memory_limit }} per PHP process is configured. See the NEXTCLOUD_MEMORY_LIMIT documentation on how to change this.
-
Nextcloud has a timeout of {{ nextcloud_max_time }} seconds configured (important for big file uploads). See the NEXTCLOUD_MAX_TIME documentation on how to change this.
+
Nextcloud has a timeout of {{ nextcloud_max_time }} seconds configured (important for big file uploads). See the NEXTCLOUD_MAX_TIME documentation on how to change this.
{% if is_dri_device_enabled == true and is_nvidia_gpu_enabled == true %}
@@ -38,7 +38,7 @@
{% else %}
Hardware acceleration is not enabled. It's recommended to enable hardware transcoding for better performance.
{% endif %}
- See the hardware acceleration documentation on how to change this.
For further documentation on AIO, refer to this page. You can use the browser search [CTRL]+[F] to search through the documentation. Additional documentation can be found here.
+
For further documentation on AIO, refer to this page. You can use the browser search [CTRL]+[F] to search through the documentation. Additional documentation can be found here.
On Synology it could be /volume1/docker/nextcloud/backup.
For macOS it may be /var/backup.
On Windows it might be /run/desktop/mnt/host/c/backup. (This path is equivalent to 'C:\backup' on your Windows host so you need to translate the path accordingly. Hint: the path that you enter needs to start with '/run/desktop/mnt/host/'. Append to that the exact location on your windows host, e.g. 'c/backup' which is equivalent to 'C:\backup'.) ⚠️ Please note: This does not work with external drives like USB or network drives and only with internal drives like SATA or NVME drives.
-
Another option is to enter a specific volume name here: nextcloud_aio_backupdir. This volume needs to be created beforehand manually by you in order to be able to use it. See this documentation for an example.
+
Another option is to enter a specific volume name here: nextcloud_aio_backupdir. This volume needs to be created beforehand manually by you in order to be able to use it. See this documentation for an example.
In this section you can enable or disable optional containers. There are further community containers available that are not listed below. See this documentation how to add them.
+
In this section you can enable or disable optional containers. There are further community containers available that are not listed below. See this documentation how to add them.
{% if isAnyRunning == true %}
Please note: You can enable or disable the options below only when your containers are stopped.
{% else %}
@@ -50,7 +50,7 @@
{% endif %}
>
-
Minimal system requirements: When any optional container is enabled, at least 2GB RAM, a dual-core CPU and 40GB system storage are required. When enabling ClamAV, Nextcloud Talk Recording-server or Fulltextsearch, at least 3GB RAM are required. For Talk Recording-server additional 2 vCPUs are required. When enabling everything, at least 5GB RAM and a quad-core CPU are required. Recommended are at least 1GB more RAM than the minimal requirement. For further advice and recommendations see this documentation
+
Minimal system requirements: When any optional container is enabled, at least 2GB RAM, a dual-core CPU and 40GB system storage are required. When enabling ClamAV, Nextcloud Talk Recording-server or Fulltextsearch, at least 3GB RAM are required. For Talk Recording-server additional 2 vCPUs are required. When enabling everything, at least 5GB RAM and a quad-core CPU are required. Recommended are at least 1GB more RAM than the minimal requirement. For further advice and recommendations see this documentation
The login is blocked since Nextcloud is running. Please use the automatic login from your Nextcloud.
+
The login is blocked since Nextcloud is running. Please use the automatic login from your Nextcloud.
If that is not possible, you can unblock the login by running sudo docker stop nextcloud-aio-apache
{% endif %}
From 61b1576c92a1ed2e88277c85fa59243d8b823b43 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Tue, 18 Feb 2025 23:12:59 +0100
Subject: [PATCH 0087/1064] fix typo
Signed-off-by: Simon L.
---
readme.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/readme.md b/readme.md
index 27c45154..b10a262d 100644
--- a/readme.md
+++ b/readme.md
@@ -81,7 +81,7 @@ Included are:
|  |  |
## How to use this?
-> [!INFO]
+> [!NOTE]
> The following instructions are meant for installations without a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else) already being in place. If you want to run AIO behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else), see the [reverse proxy documentation](https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md). Also, the instructions below are especially meant for Linux. For macOS see [this](#how-to-run-aio-on-macos), for Windows see [this](#how-to-run-aio-on-windows) and for Synology see [this](#how-to-run-aio-on-synology-dsm).
1. Install Docker on your Linux installation by following the official documentation: https://docs.docker.com/engine/install/#supported-platforms.
From 072010467fad785d7872362502087cce1ca4a2a2 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Wed, 19 Feb 2025 13:14:21 +0100
Subject: [PATCH 0088/1064] increase to 10.6.1
Signed-off-by: Simon L.
---
php/templates/containers.twig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/php/templates/containers.twig b/php/templates/containers.twig
index 03fe7802..c48baeaf 100644
--- a/php/templates/containers.twig
+++ b/php/templates/containers.twig
@@ -17,7 +17,7 @@
-
Nextcloud AIO v10.6.0
+
Nextcloud AIO v10.6.1
{# Add 2nd tab warning #}
From 64cd9acbce02cb2c7816671979b6b0bfcb79429c Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Fri, 21 Feb 2025 04:57:30 +0000
Subject: [PATCH 0089/1064] build(deps): bump collabora/code in
/Containers/collabora
Bumps collabora/code from 24.04.12.3.1 to 24.04.12.4.1.
---
updated-dependencies:
- dependency-name: collabora/code
dependency-type: direct:production
...
Signed-off-by: dependabot[bot]
---
Containers/collabora/Dockerfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Containers/collabora/Dockerfile b/Containers/collabora/Dockerfile
index 8766eb32..e9ca4d01 100644
--- a/Containers/collabora/Dockerfile
+++ b/Containers/collabora/Dockerfile
@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:latest
# From a file located probably somewhere here: https://github.com/CollaboraOnline/online/tree/master/docker
-FROM collabora/code:24.04.12.3.1
+FROM collabora/code:24.04.12.4.1
USER root
ARG DEBIAN_FRONTEND=noninteractive
From 4e56d89ea66494f5efafdea21d809a98d863411a Mon Sep 17 00:00:00 2001
From: David Hund
Date: Fri, 21 Feb 2025 16:29:57 +0100
Subject: [PATCH 0090/1064] fix: `pihole/pihole@latest` Web Admin interface
See: https://github.com/nextcloud/all-in-one/discussions/6064
`pihole/pihole@latest` has been updated to `v6`,
breaking the Web Admin interface at (http://192.168.x.x:8573/admin)
(Pi-hole itself continues working fine, it seems)
**Cause:** V6 replaced `lighttpd` with an *embedded webserver*
and changed most `pi-hole.json` *environment variables*.
**Fix:** This PR updates the environment variables to match the new v6 configuration.
Stopping and starting the container will apply the changes and
should fix the Web Admin interface.
Signed-off-by: David Hund
---
community-containers/pi-hole/pi-hole.json | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/community-containers/pi-hole/pi-hole.json b/community-containers/pi-hole/pi-hole.json
index 0f2f397b..2cecb9ec 100644
--- a/community-containers/pi-hole/pi-hole.json
+++ b/community-containers/pi-hole/pi-hole.json
@@ -28,9 +28,9 @@
],
"environment": [
"TZ=%TIMEZONE%",
- "WEBPASSWORD=%PIHOLE_WEBPASSWORD%",
- "DNSMASQ_LISTENING=all",
- "WEB_PORT=8573"
+ "FTLCONF_webserver_api_password=%PIHOLE_WEBPASSWORD%",
+ "FTLCONF_dns_listeningMode=all",
+ "FTLCONF_webserver_port=8573"
],
"volumes": [
{
From 68e278d651ee924422bd6c707c3691a145d0eb27 Mon Sep 17 00:00:00 2001
From: Anvil5465 <119350594+Anvil5465@users.noreply.github.com>
Date: Sat, 22 Feb 2025 17:11:43 -0500
Subject: [PATCH 0091/1064] Update readme.md
Add mention of jellyseerr at the beginning
Signed-off-by: Anvil5465 <119350594+Anvil5465@users.noreply.github.com>
---
community-containers/caddy/readme.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/community-containers/caddy/readme.md b/community-containers/caddy/readme.md
index 3c97c5b6..79d6935e 100644
--- a/community-containers/caddy/readme.md
+++ b/community-containers/caddy/readme.md
@@ -1,5 +1,5 @@
## Caddy with geoblocking
-This container bundles caddy and auto-configures it for you. It also covers https://github.com/nextcloud/all-in-one/tree/main/community-containers/vaultwarden by listening on `bw.$NC_DOMAIN`, if installed. It also covers https://github.com/nextcloud/all-in-one/tree/main/community-containers/stalwart by listening on `mail.$NC_DOMAIN`, if installed. It also covers https://github.com/nextcloud/all-in-one/tree/main/community-containers/jellyfin by listening on `media.$NC_DOMAIN`, if installed. It also covers https://github.com/nextcloud/all-in-one/tree/main/community-containers/lldap by listening on `ldap.$NC_DOMAIN`, if installed. It also covers https://github.com/nextcloud/all-in-one/tree/main/community-containers/nocodb by listening on `tables.$NC_DOMAIN`, if installed.
+This container bundles caddy and auto-configures it for you. It also covers https://github.com/nextcloud/all-in-one/tree/main/community-containers/vaultwarden by listening on `bw.$NC_DOMAIN`, if installed. It also covers https://github.com/nextcloud/all-in-one/tree/main/community-containers/stalwart by listening on `mail.$NC_DOMAIN`, if installed. It also covers https://github.com/nextcloud/all-in-one/tree/main/community-containers/jellyfin by listening on `media.$NC_DOMAIN`, if installed. It also covers https://github.com/nextcloud/all-in-one/tree/main/community-containers/lldap by listening on `ldap.$NC_DOMAIN`, if installed. It also covers https://github.com/nextcloud/all-in-one/tree/main/community-containers/nocodb by listening on `tables.$NC_DOMAIN`, if installed. It also covers https://github.com/nextcloud/all-in-one/tree/main/community-containers/jellyseerr by listening on `requests.$NC_DOMAIN`, if installed.
### Notes
- This container is incompatible with the [npmplus](https://github.com/nextcloud/all-in-one/tree/main/community-containers/npmplus) community container. So make sure that you do not enable both at the same time!
From 1325393805449af6478379bb93c9dbffd18542ee Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 24 Feb 2025 04:47:06 +0000
Subject: [PATCH 0092/1064] build(deps): bump clamav/clamav in
/Containers/clamav
Bumps clamav/clamav from 1.4.2-27 to 1.4.2-28.
---
updated-dependencies:
- dependency-name: clamav/clamav
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
Containers/clamav/Dockerfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Containers/clamav/Dockerfile b/Containers/clamav/Dockerfile
index 3825d6c8..19ac5176 100644
--- a/Containers/clamav/Dockerfile
+++ b/Containers/clamav/Dockerfile
@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:latest
# Probably from this file: https://github.com/Cisco-Talos/clamav-docker/blob/main/clamav/1.3/alpine/Dockerfile
-FROM clamav/clamav:1.4.2-27
+FROM clamav/clamav:1.4.2-28
COPY clamav.conf /clamav.conf
COPY --chmod=775 start.script /start.script
From c509118457e5845bc4e66be1bb61150840fb815b Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 24 Feb 2025 04:47:11 +0000
Subject: [PATCH 0093/1064] build(deps): bump haproxy in
/Containers/docker-socket-proxy
Bumps haproxy from 3.1.3-alpine to 3.1.5-alpine.
---
updated-dependencies:
- dependency-name: haproxy
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
Containers/docker-socket-proxy/Dockerfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Containers/docker-socket-proxy/Dockerfile b/Containers/docker-socket-proxy/Dockerfile
index bad6ea3e..79bd22ac 100644
--- a/Containers/docker-socket-proxy/Dockerfile
+++ b/Containers/docker-socket-proxy/Dockerfile
@@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest
-FROM haproxy:3.1.3-alpine
+FROM haproxy:3.1.5-alpine
# hadolint ignore=DL3002
USER root
From 647c2ca93d138817aad655930cf4c84965f8e63b Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 24 Feb 2025 04:47:42 +0000
Subject: [PATCH 0094/1064] build(deps): bump postgres in
/Containers/postgresql
Bumps postgres from 16.7-alpine to 16.8-alpine.
---
updated-dependencies:
- dependency-name: postgres
dependency-type: direct:production
...
Signed-off-by: dependabot[bot]
---
Containers/postgresql/Dockerfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Containers/postgresql/Dockerfile b/Containers/postgresql/Dockerfile
index a537d0a2..7abeaedb 100644
--- a/Containers/postgresql/Dockerfile
+++ b/Containers/postgresql/Dockerfile
@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:latest
# From https://github.com/docker-library/postgres/blob/master/16/alpine3.21/Dockerfile
-FROM postgres:16.7-alpine
+FROM postgres:16.8-alpine
COPY --chmod=775 start.sh /start.sh
COPY --chmod=775 healthcheck.sh /healthcheck.sh
From 4837de43e051f98cb5eeb2cc1b3fe20cbfc22b67 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Tue, 25 Feb 2025 10:23:24 +0100
Subject: [PATCH 0095/1064] remove `rel="noopener"` as it is implied by
`target="_blank"`
Signed-off-by: Simon L.
---
app/templates/admin.php | 2 +-
php/templates/containers.twig | 86 +++++++++----------
php/templates/includes/aio-config.twig | 18 ++--
php/templates/includes/backup-dirs.twig | 2 +-
.../includes/optional-containers.twig | 12 +--
php/templates/login.twig | 2 +-
php/templates/setup.twig | 2 +-
7 files changed, 62 insertions(+), 62 deletions(-)
diff --git a/app/templates/admin.php b/app/templates/admin.php
index 8256dfab..df675cad 100644
--- a/app/templates/admin.php
+++ b/app/templates/admin.php
@@ -11,6 +11,6 @@ declare(strict_types=1);
/** @var array $_ */ ?>
If the daily backup is stuck somehow, you can unstick it by running sudo docker exec nextcloud-aio-mastercontainer rm /mnt/docker-aio-config/data/daily_backup_running and afterwards reloading this interface.
{% elseif isWatchtowerRunning == true %}
-
Mastercontainer update currently running. Once the update is complete the mastercontainer will restart, making it unavailable for a moment. Please wait until it's done. (Logs)
+
Mastercontainer update currently running. Once the update is complete the mastercontainer will restart, making it unavailable for a moment. Please wait until it's done. (Logs)
{% else %}
{% if is_backup_container_running == false and domain == "" %}
{% if isDomaincheckRunning == false %}
Domaincheck container is not running
-
This is not expected. Most likely this happened because port {{ apache_port }} is already in use on your server. You can check the mastercontainer logs and domaincheck container logs for further clues. You should be able to resolve this by adjusting the APACHE_PORT by following the reverse proxy documentation. Advice: have a detailed look at the changed docker run command for AIO.
+
This is not expected. Most likely this happened because port {{ apache_port }} is already in use on your server. You can check the mastercontainer logs and domaincheck container logs for further clues. You should be able to resolve this by adjusting the APACHE_PORT by following the reverse proxy documentation. Advice: have a detailed look at the changed docker run command for AIO.
AIO is currently in "normal mode" which means that it handles the TLS proxying itself. This also means that it cannot be installed behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else). If you want to run AIO behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else), see the reverse proxy documentation. Advice: have a detailed look at the changed docker run command for AIO.
+
AIO is currently in "normal mode" which means that it handles the TLS proxying itself. This also means that it cannot be installed behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else). If you want to run AIO behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else), see the reverse proxy documentation. Advice: have a detailed look at the changed docker run command for AIO.
{% else %}
AIO is currently in "reverse proxy mode" which means that it can be installed behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else) and does not do the TLS proxying itself.
{% endif %}
@@ -115,14 +115,14 @@
Make sure that this server is reachable on port 443 (port 443/tcp is open/forwarded in your firewall/router and 443/udp as well if you want to enable http3) and that you've correctly set up the DNS config for the domain that you enter (set the A record to your public ipv4-address and if you need ipv6, set the AAAA record to your public ipv6-address. A CNAME record is, of course, also possible). You should see hints on what went wrong in the top right corner if your domain is not accepted.
Click here for further hints
-
If you do not have a domain yet, you can get one for free e.g. from duckdns.org and others. Recommended is to use Tailscale
-
If you have a dynamic public IP-address, you can use e.g. DDclient with a compatible domain provider for DNS updates.
-
If you only want to install AIO locally without exposing it to the public internet or if you cannot do so, feel free to follow this documentation.
+
If you do not have a domain yet, you can get one for free e.g. from duckdns.org and others. Recommended is to use Tailscale
+
If you have a dynamic public IP-address, you can use e.g. DDclient with a compatible domain provider for DNS updates.
+
If you only want to install AIO locally without exposing it to the public internet or if you cannot do so, feel free to follow this documentation.
If you should be using Cloudflare Proxy for your domain, make sure to disable the Proxy feature temporarily as it might block the domain validation attempts.
{% if apache_port != '443' %}
-
If you run into issues with your domain being accepted, see these steps for how to debug things.
+
If you run into issues with your domain being accepted, see these steps for how to debug things.
{% endif %}
-
Hint: If the domain validation fails but you are completely sure that you've configured everything correctly, you may skip the domain validation by following this documentation.
+
Hint: If the domain validation fails but you are completely sure that you've configured everything correctly, you may skip the domain validation by following this documentation.
{% endif %}
@@ -134,11 +134,11 @@
{% if hasBackupLocation %}
{% if borg_backup_mode in ['test', 'check'] %}
{% if backup_exit_code > 0 %}
-
Please adjust the path and/or the encryption password in order to make it work!
{% elseif borg_backup_mode == 'check' %}
-
The backup archive seems to be corrupt. Please try to use a different intact backup archive or try to fix it by following this documentation
+
The backup archive seems to be corrupt. Please try to use a different intact backup archive or try to fix it by following this documentation
Reveal repair option
Below is the option to repair the integrity of your backup. Please note: Please only use this after you have read the documentation above! (It will run the command 'borg check --repair' for you.)
Feel free to check the integrity of the backup archive below before starting the restore process in order to make ensure that the restore will work. This can take a long time though depending on the size of the backup archive and is thus not required.
@@ -160,7 +160,7 @@
{% endif %}
Choose the backup that you want to restore and click on the button below to restore the selected backup. This will restore the whole AIO instance. Please note that the current AIO passphrase will be kept and the previous AIO passphrase will not be restored from backup!
-
Please note: If the backup that you want to restore contained any community container, but you did not specify the same community containers via environmental variable while creating this new AIO instance, you need to restore the same backup a second time after this attempt so that the community container data is also correctly restored.
+
Please note: If the backup that you want to restore contained any community container, but you did not specify the same community containers via environmental variable while creating this new AIO instance, you need to restore the same backup a second time after this attempt so that the community container data is also correctly restored.
The restore process has unexpectedly failed! Please adjust the path and encryption password, test it and try to restore again!
{% endif %}
{% endif %}
@@ -191,7 +191,7 @@
Please enter the location of the backup archive on your host or a
- remote borg repo url
+ remote borg repo url
if stored remotely; and the encryption password of the backup archive below:
@@ -215,19 +215,19 @@
{% endif %}
{% endif %}
How to reset the AIO instance?
-
If something should be going wrong, for example during the initial installation, you can reset the instance by following this documentation.
+
If something should be going wrong, for example during the initial installation, you can reset the instance by following this documentation.
{% endif %}
{% if was_start_button_clicked == true %}
{% if current_channel starts with 'latest' or current_channel starts with 'beta' or current_channel starts with 'develop' %}
-
No channel was found. This means that AIO is not able to update itself and its component and will also not be able to report about updates. Updates need to be done externally.
Please enter the directory path below where backups will be created on the host system. It's best to choose a location on a separate drive and not on your root drive.
The backup check was not successful. This might indicate a corrupt archive (look at the logs). If that should be the case, you can try to fix it by following this documentation
+
The backup check was not successful. This might indicate a corrupt archive (look at the logs). If that should be the case, you can try to fix it by following this documentation
Reveal repair option
Below is the option to repair the integrity of your backup. Please note: Please only use this after you have read the documentation above! (It will run the command 'borg check --repair' for you.)
This is your encryption password for backups: {{ borgbackup_password }}
Please save this password in a safe place. You won't be able to restore from backup if you lose this password!
All important data from your Nextcloud AIO instance such as the database, your files and the mastercontainer's configuration files, will be backed up.
-
The backup uses a tool called BorgBackup, a well-known server backup tool that efficiently backs up your files and encrypts them on the fly.
+
The backup uses a tool called BorgBackup, a well-known server backup tool that efficiently backs up your files and encrypts them on the fly.
By using this tool, backups are incremental, differential, compressed and encrypted – so only the first backup will take a while. Further backups should be fast as only changes are taken into account.
{% if borg_remote_repo != '' %}
@@ -482,9 +482,9 @@
Backups will be created in the following directory on the host: {{ borg_backup_host_location }}/borg
{% endif %}
Be aware that this solution does not backup files and folders that are mounted into Nextcloud using the external storage app, but you can add further Docker volumes and host paths that you want to back up after the initial backup is done.
Daily backups can be enabled after the initial backup is done. Enabling this also allows you to enable an option to update all containers, Nextcloud, and its apps automatically.
-
For further documentation and options on this backup solution refer to this section and below.
+
For further documentation and options on this backup solution refer to this section and below.
{% if isApacheStarting != true %}
Backup creation
@@ -514,7 +514,7 @@
{% if has_backup_run_once == true %}
Backup Viewer
-
There is now a community container that allows to access your backups in a web session. See this documentation.
+
There is now a community container that allows to access your backups in a web session. See this documentation.
Backup check
Click on the button below to perform a backup integrity check. This is an option that verifies that your backup is intact. It shouldn't be needed in most situations.
@@ -571,7 +571,7 @@
Each line and entry needs to start with a slash or letter/digit. Only a-z, A-Z, ., 0-9, _, -, and / are allowed. If the entry begins with a letter/digit slashes are not supported. Two valid entries are /directory/on/the/host and my_custom_docker_volume. You need to make sure that all given directories exist or the backup container will fail to start!
-
Be sure to individually specify all storage that you want to back up as storage will not be mounted recursively. E.g. providing / as additional backup directory will only back up files and folders that are stored on the root partition and not on the EFI partition or any other. Excluded by the backup will be caches and a few other directories. If you want to back up the root partition you should make sure to stop all services before the backup so it can run correctly. For automating this see this documentation
+
Be sure to individually specify all storage that you want to back up as storage will not be mounted recursively. E.g. providing / as additional backup directory will only back up files and folders that are stored on the root partition and not on the EFI partition or any other. Excluded by the backup will be caches and a few other directories. If you want to back up the root partition you should make sure to stop all services before the backup so it can run correctly. For automating this see this documentation
Please note that the chosen directories/volumes will not be restored when you restore your instance, so this would need to be done manually.
{% if additional_backup_directories != "" %}
This option is currently set. You can disable it again by clearing the field and submitting your changes.
@@ -598,7 +598,7 @@
-
The new passphrase needs to be at least 24 characters long. Allowed characters are the latin charactersa-z, A-Z, 0-9 and spaces.
+
The new passphrase needs to be at least 24 characters long. Allowed characters are the latin charactersa-z, A-Z, 0-9 and spaces.
{% endif %}
{% endif %}
@@ -623,7 +623,7 @@
-
You need to make sure that the timezone that you enter is valid. An example is Europe/Berlin. You can get valid values by looking at the 'TZ identifier' column of this list: click here. The default is Etc/UTC if nothing is entered.
+
You need to make sure that the timezone that you enter is valid. An example is Europe/Berlin. You can get valid values by looking at the 'TZ identifier' column of this list: click here. The default is Etc/UTC if nothing is entered.
{% else %}
The timezone for Nextcloud is currently set to {{ timezone }}. You can change the timezone by clicking on the button below.
diff --git a/php/templates/includes/aio-config.twig b/php/templates/includes/aio-config.twig
index 7535ad93..981d7997 100644
--- a/php/templates/includes/aio-config.twig
+++ b/php/templates/includes/aio-config.twig
@@ -1,8 +1,8 @@
Click here to view the current AIO config and documentation links
{% if was_start_button_clicked == true %}
-
Nextcloud's config.php file is stored in the nextcloud_aio_nextcloud Docker volume and can be edited by following the config.php documentation.
-
You can run Nextcloud's usual occ commands by following the occ documentation.
+
Nextcloud's config.php file is stored in the nextcloud_aio_nextcloud Docker volume and can be edited by following the config.php documentation.
+
You can run Nextcloud's usual occ commands by following the occ documentation.
{% endif %}
@@ -11,7 +11,7 @@
{% else %}
Nextcloud's datadir is getting stored in the {{ nextcloud_datadir }} Docker volume.
{% endif %}
- See the NEXTCLOUD_DATADIR documentation on how to change this.
+ See the NEXTCLOUD_DATADIR documentation on how to change this.
@@ -20,13 +20,13 @@
{% else %}
The Nextcloud container is getting access to the {{ nextcloud_mount }} directory and local external storage in Nextcloud is enabled.
{% endif %}
- See the NEXTCLOUD_MOUNT documentation on how to change this.
Nextcloud has an upload limit of {{ nextcloud_upload_limit }} configured (for public link uploads. Bigger uploads are always possible when users are logged in). See the NEXTCLOUD_UPLOAD_LIMIT documentation on how to change this.
+
Nextcloud has an upload limit of {{ nextcloud_upload_limit }} configured (for public link uploads. Bigger uploads are always possible when users are logged in). See the NEXTCLOUD_UPLOAD_LIMIT documentation on how to change this.
-
For Nextcloud, a memory limit of {{ nextcloud_memory_limit }} per PHP process is configured. See the NEXTCLOUD_MEMORY_LIMIT documentation on how to change this.
+
For Nextcloud, a memory limit of {{ nextcloud_memory_limit }} per PHP process is configured. See the NEXTCLOUD_MEMORY_LIMIT documentation on how to change this.
-
Nextcloud has a timeout of {{ nextcloud_max_time }} seconds configured (important for big file uploads). See the NEXTCLOUD_MAX_TIME documentation on how to change this.
+
Nextcloud has a timeout of {{ nextcloud_max_time }} seconds configured (important for big file uploads). See the NEXTCLOUD_MAX_TIME documentation on how to change this.
{% if is_dri_device_enabled == true and is_nvidia_gpu_enabled == true %}
@@ -38,7 +38,7 @@
{% else %}
Hardware acceleration is not enabled. It's recommended to enable hardware transcoding for better performance.
{% endif %}
- See the hardware acceleration documentation on how to change this.
For further documentation on AIO, refer to this page. You can use the browser search [CTRL]+[F] to search through the documentation. Additional documentation can be found here.
+
For further documentation on AIO, refer to this page. You can use the browser search [CTRL]+[F] to search through the documentation. Additional documentation can be found here.
On Synology it could be /volume1/docker/nextcloud/backup.
For macOS it may be /var/backup.
On Windows it might be /run/desktop/mnt/host/c/backup. (This path is equivalent to 'C:\backup' on your Windows host so you need to translate the path accordingly. Hint: the path that you enter needs to start with '/run/desktop/mnt/host/'. Append to that the exact location on your windows host, e.g. 'c/backup' which is equivalent to 'C:\backup'.) ⚠️ Please note: This does not work with external drives like USB or network drives and only with internal drives like SATA or NVME drives.
-
Another option is to enter a specific volume name here: nextcloud_aio_backupdir. This volume needs to be created beforehand manually by you in order to be able to use it. See this documentation for an example.
+
Another option is to enter a specific volume name here: nextcloud_aio_backupdir. This volume needs to be created beforehand manually by you in order to be able to use it. See this documentation for an example.
In this section you can enable or disable optional containers. There are further community containers available that are not listed below. See this documentation how to add them.
+
In this section you can enable or disable optional containers. There are further community containers available that are not listed below. See this documentation how to add them.
{% if isAnyRunning == true %}
Please note: You can enable or disable the options below only when your containers are stopped.
{% else %}
@@ -50,7 +50,7 @@
{% endif %}
>
- Fulltextsearch (needs ~1GB additional RAM, does not work on Kernels without Seccomp)
+ Fulltextsearch (needs ~1GB additional RAM, does not work on Kernels without Seccomp)
{% if is_fulltextsearch_enabled == false %}
. Please note: the initial indexing can take a long time during which Nextcloud will be unavailable
{% endif %}
@@ -68,7 +68,7 @@
data-initial-state="false"
{% endif %}
>
- Imaginary (for previews of heic, heif, illustrator, pdf, svg, tiff and webp. Imaginary is currently incompatible with server-side-encryption)
+ Imaginary (for previews of heic, heif, illustrator, pdf, svg, tiff and webp. Imaginary is currently incompatible with server-side-encryption)
- Nextcloud Talk Recording-server (needs Nextcloud Talk being enabled and ~1GB additional RAM and ~2 additional vCPUs, currently only works on x86_64)
+ Nextcloud Talk Recording-server (needs Nextcloud Talk being enabled and ~1GB additional RAM and ~2 additional vCPUs, currently only works on x86_64)
Minimal system requirements: When any optional container is enabled, at least 2GB RAM, a dual-core CPU and 40GB system storage are required. When enabling ClamAV, Nextcloud Talk Recording-server or Fulltextsearch, at least 3GB RAM are required. For Talk Recording-server additional 2 vCPUs are required. When enabling everything, at least 5GB RAM and a quad-core CPU are required. Recommended are at least 1GB more RAM than the minimal requirement. For further advice and recommendations see this documentation
+
Minimal system requirements: When any optional container is enabled, at least 2GB RAM, a dual-core CPU and 40GB system storage are required. When enabling ClamAV, Nextcloud Talk Recording-server or Fulltextsearch, at least 3GB RAM are required. For Talk Recording-server additional 2 vCPUs are required. When enabling everything, at least 5GB RAM and a quad-core CPU are required. Recommended are at least 1GB more RAM than the minimal requirement. For further advice and recommendations see this documentation
The official Nextcloud installation method. Nextcloud All-in-One provides easy deployment and maintenance with most features included in this one Nextcloud instance.
⚠️ Please note down the passphrase to access the AIO interface and don't lose it!
{% endblock %}
From d74b0da0ee3b8bc9bc42f712a58c2685b4d2ee0f Mon Sep 17 00:00:00 2001
From: szaimen <42591237+szaimen@users.noreply.github.com>
Date: Tue, 25 Feb 2025 12:59:30 +0000
Subject: [PATCH 0096/1064] 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 | 2 +-
.../templates/nextcloud-aio-clamav-deployment.yaml | 2 +-
.../templates/nextcloud-aio-collabora-deployment.yaml | 2 +-
.../templates/nextcloud-aio-database-deployment.yaml | 2 +-
.../templates/nextcloud-aio-fulltextsearch-deployment.yaml | 2 +-
.../templates/nextcloud-aio-imaginary-deployment.yaml | 2 +-
.../templates/nextcloud-aio-nextcloud-deployment.yaml | 2 +-
.../templates/nextcloud-aio-notify-push-deployment.yaml | 4 +++-
.../templates/nextcloud-aio-onlyoffice-deployment.yaml | 2 +-
.../templates/nextcloud-aio-redis-deployment.yaml | 2 +-
.../templates/nextcloud-aio-talk-deployment.yaml | 2 +-
.../templates/nextcloud-aio-talk-recording-deployment.yaml | 2 +-
.../templates/nextcloud-aio-whiteboard-deployment.yaml | 2 +-
14 files changed, 16 insertions(+), 14 deletions(-)
diff --git a/nextcloud-aio-helm-chart/Chart.yaml b/nextcloud-aio-helm-chart/Chart.yaml
index 3931dc76..a66038f9 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: 10.5.0
+version: 10.6.1
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 782ba09b..df7a6f0b 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-apache-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-apache-deployment.yaml
@@ -61,7 +61,7 @@ spec:
value: "{{ .Values.TIMEZONE }}"
- name: WHITEBOARD_HOST
value: nextcloud-aio-whiteboard
- image: nextcloud/aio-apache:20250204_102259
+ image: nextcloud/aio-apache:20250225_125724
readinessProbe:
exec:
command:
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 8beccf20..ef33fcce 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-clamav-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-clamav-deployment.yaml
@@ -61,7 +61,7 @@ spec:
value: "{{ .Values.NEXTCLOUD_UPLOAD_LIMIT }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
- image: nextcloud/aio-clamav:20250204_102259
+ image: nextcloud/aio-clamav:20250225_125724
readinessProbe:
exec:
command:
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 7c6341de..f9efa705 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-collabora-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-collabora-deployment.yaml
@@ -34,7 +34,7 @@ spec:
value: --o:ssl.enable=false --o:ssl.termination=true --o:mount_jail_tree=false --o:logging.level=warning --o:home_mode.enable=true {{ .Values.COLLABORA_SECCOMP_POLICY }} --o:remote_font_config.url=https://{{ .Values.NC_DOMAIN }}/apps/richdocuments/settings/fonts.json --o:net.post_allow.host[0]=.+
- name: server_name
value: "{{ .Values.NC_DOMAIN }}"
- image: nextcloud/aio-collabora:20250204_102259
+ image: nextcloud/aio-collabora:20250225_125724
readinessProbe:
exec:
command:
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 f27bac21..7ff15db8 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-database-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-database-deployment.yaml
@@ -64,7 +64,7 @@ spec:
value: nextcloud
- name: TZ
value: "{{ .Values.TIMEZONE }}"
- image: nextcloud/aio-postgresql:20250204_102259
+ image: nextcloud/aio-postgresql:20250225_125724
readinessProbe:
exec:
command:
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 ab8ba44a..8a7f661b 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-fulltextsearch-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-fulltextsearch-deployment.yaml
@@ -54,7 +54,7 @@ spec:
value: basic
- name: xpack.security.enabled
value: "false"
- image: nextcloud/aio-fulltextsearch:20250204_102259
+ image: nextcloud/aio-fulltextsearch:20250225_125724
readinessProbe:
exec:
command:
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 302ed3b6..0ba476bf 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-imaginary-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-imaginary-deployment.yaml
@@ -38,7 +38,7 @@ spec:
value: "{{ .Values.IMAGINARY_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
- image: nextcloud/aio-imaginary:20250204_102259
+ image: nextcloud/aio-imaginary:20250225_125724
readinessProbe:
exec:
command:
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 fbbb6fb2..d07960e3 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-nextcloud-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-nextcloud-deployment.yaml
@@ -180,7 +180,7 @@ spec:
value: "{{ .Values.WHITEBOARD_ENABLED }}"
- name: WHITEBOARD_SECRET
value: "{{ .Values.WHITEBOARD_SECRET }}"
- image: nextcloud/aio-nextcloud:20250204_102259
+ image: nextcloud/aio-nextcloud:20250225_125724
{{- 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-notify-push-deployment.yaml b/nextcloud-aio-helm-chart/templates/nextcloud-aio-notify-push-deployment.yaml
index 2089d5bb..2121d95c 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
@@ -53,7 +53,9 @@ spec:
value: nextcloud-aio-redis
- name: REDIS_HOST_PASSWORD
value: "{{ .Values.REDIS_PASSWORD }}"
- image: nextcloud/aio-notify-push:20250204_102259
+ - name: TZ
+ value: "{{ .Values.TIMEZONE }}"
+ image: nextcloud/aio-notify-push:20250225_125724
readinessProbe:
exec:
command:
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 c10aed88..7ef6cc79 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-onlyoffice-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-onlyoffice-deployment.yaml
@@ -42,7 +42,7 @@ spec:
value: "{{ .Values.ONLYOFFICE_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
- image: nextcloud/aio-onlyoffice:20250204_102259
+ image: nextcloud/aio-onlyoffice:20250225_125724
readinessProbe:
exec:
command:
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 0b338e86..72346b86 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-redis-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-redis-deployment.yaml
@@ -39,7 +39,7 @@ spec:
value: "{{ .Values.REDIS_PASSWORD }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
- image: nextcloud/aio-redis:20250204_102259
+ image: nextcloud/aio-redis:20250225_125724
readinessProbe:
exec:
command:
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 64a71bf6..ac514adc 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-talk-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-talk-deployment.yaml
@@ -52,7 +52,7 @@ spec:
value: "{{ .Values.TURN_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
- image: nextcloud/aio-talk:20250204_102259
+ image: nextcloud/aio-talk:20250225_125724
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 24a866ad..b34b3f71 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
@@ -44,7 +44,7 @@ spec:
value: "{{ .Values.RECORDING_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
- image: nextcloud/aio-talk-recording:20250204_102259
+ image: nextcloud/aio-talk-recording:20250225_125724
readinessProbe:
exec:
command:
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 f72b98a1..49f0e836 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-whiteboard-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-whiteboard-deployment.yaml
@@ -48,7 +48,7 @@ spec:
value: redis
- name: TZ
value: "{{ .Values.TIMEZONE }}"
- image: nextcloud/aio-whiteboard:20250204_102259
+ image: nextcloud/aio-whiteboard:20250225_125724
readinessProbe:
exec:
command:
From 2631b3922a966bcc2e538bca509567cfe7de05d2 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 26 Feb 2025 04:16:07 +0000
Subject: [PATCH 0097/1064] build(deps): bump nats in /Containers/talk
Bumps nats from 2.10.25-scratch to 2.10.26-scratch.
---
updated-dependencies:
- dependency-name: nats
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
Containers/talk/Dockerfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Containers/talk/Dockerfile b/Containers/talk/Dockerfile
index e050e926..2b3045b6 100644
--- a/Containers/talk/Dockerfile
+++ b/Containers/talk/Dockerfile
@@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest
-FROM nats:2.10.25-scratch AS nats
+FROM nats:2.10.26-scratch AS nats
FROM eturnal/eturnal:1.12.1 AS eturnal
FROM strukturag/nextcloud-spreed-signaling:2.0.2 AS signaling
FROM alpine:3.21.3 AS janus
From 6764b03eebde9311bbe0a2d18b48815d11821f5e Mon Sep 17 00:00:00 2001
From: szaimen <42591237+szaimen@users.noreply.github.com>
Date: Wed, 26 Feb 2025 12:03:08 +0000
Subject: [PATCH 0098/1064] php dependency updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
---
php/composer.lock | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/php/composer.lock b/php/composer.lock
index 1cce5d4a..8bd74ba9 100644
--- a/php/composer.lock
+++ b/php/composer.lock
@@ -2699,16 +2699,16 @@
},
{
"name": "phpstan/phpdoc-parser",
- "version": "2.0.2",
+ "version": "2.1.0",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpdoc-parser.git",
- "reference": "51087f87dcce2663e1fed4dfd4e56eccd580297e"
+ "reference": "9b30d6fd026b2c132b3985ce6b23bec09ab3aa68"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/51087f87dcce2663e1fed4dfd4e56eccd580297e",
- "reference": "51087f87dcce2663e1fed4dfd4e56eccd580297e",
+ "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/9b30d6fd026b2c132b3985ce6b23bec09ab3aa68",
+ "reference": "9b30d6fd026b2c132b3985ce6b23bec09ab3aa68",
"shasum": ""
},
"require": {
@@ -2740,9 +2740,9 @@
"description": "PHPDoc parser with support for nullable, intersection and generic types",
"support": {
"issues": "https://github.com/phpstan/phpdoc-parser/issues",
- "source": "https://github.com/phpstan/phpdoc-parser/tree/2.0.2"
+ "source": "https://github.com/phpstan/phpdoc-parser/tree/2.1.0"
},
- "time": "2025-02-17T20:25:51+00:00"
+ "time": "2025-02-19T13:28:12+00:00"
},
{
"name": "sebastian/diff",
From 147630df6d1529ca507de3365197341039091aa9 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Wed, 26 Feb 2025 13:33:37 +0100
Subject: [PATCH 0099/1064] make readme better readable by adjusting links
Signed-off-by: Simon L.
---
community-containers/caddy/readme.md | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/community-containers/caddy/readme.md b/community-containers/caddy/readme.md
index 79d6935e..d6e63e41 100644
--- a/community-containers/caddy/readme.md
+++ b/community-containers/caddy/readme.md
@@ -1,15 +1,15 @@
## Caddy with geoblocking
-This container bundles caddy and auto-configures it for you. It also covers https://github.com/nextcloud/all-in-one/tree/main/community-containers/vaultwarden by listening on `bw.$NC_DOMAIN`, if installed. It also covers https://github.com/nextcloud/all-in-one/tree/main/community-containers/stalwart by listening on `mail.$NC_DOMAIN`, if installed. It also covers https://github.com/nextcloud/all-in-one/tree/main/community-containers/jellyfin by listening on `media.$NC_DOMAIN`, if installed. It also covers https://github.com/nextcloud/all-in-one/tree/main/community-containers/lldap by listening on `ldap.$NC_DOMAIN`, if installed. It also covers https://github.com/nextcloud/all-in-one/tree/main/community-containers/nocodb by listening on `tables.$NC_DOMAIN`, if installed. It also covers https://github.com/nextcloud/all-in-one/tree/main/community-containers/jellyseerr by listening on `requests.$NC_DOMAIN`, if installed.
+This container bundles caddy and auto-configures it for you. It also covers [vaultwarden](https://github.com/nextcloud/all-in-one/tree/main/community-containers/vaultwarden) by listening on `bw.$NC_DOMAIN`, if installed. It also covers [stalwart](https://github.com/nextcloud/all-in-one/tree/main/community-containers/stalwart) by listening on `mail.$NC_DOMAIN`, if installed. It also covers [jellyfin](https://github.com/nextcloud/all-in-one/tree/main/community-containers/jellyfin) by listening on `media.$NC_DOMAIN`, if installed. It also covers [lldap](https://github.com/nextcloud/all-in-one/tree/main/community-containers/lldap) by listening on `ldap.$NC_DOMAIN`, if installed. It also covers [nocodb](https://github.com/nextcloud/all-in-one/tree/main/community-containers/nocodb) by listening on `tables.$NC_DOMAIN`, if installed. It also covers [jellyseerr](https://github.com/nextcloud/all-in-one/tree/main/community-containers/jellyseerr) by listening on `requests.$NC_DOMAIN`, if installed.
### Notes
- This container is incompatible with the [npmplus](https://github.com/nextcloud/all-in-one/tree/main/community-containers/npmplus) community container. So make sure that you do not enable both at the same time!
- Make sure that no other service is using port 443 on your host as otherwise the containers will fail to start. You can check this with `sudo netstat -tulpn | grep 443` before installing AIO.
-- If you want to use this with https://github.com/nextcloud/all-in-one/tree/main/community-containers/vaultwarden, make sure that you point `bw.your-nc-domain.com` to your server using a cname record so that caddy can get a certificate automatically for vaultwarden.
-- If you want to use this with https://github.com/nextcloud/all-in-one/tree/main/community-containers/stalwart, make sure that you point `mail.your-nc-domain.com` to your server using an A, AAAA or CNAME record so that caddy can get a certificate automatically for stalwart.
-- If you want to use this with https://github.com/nextcloud/all-in-one/tree/main/community-containers/jellyfin, make sure that you point `media.your-nc-domain.com` to your server using a cname record so that caddy can get a certificate automatically for jellyfin.
-- If you want to use this with https://github.com/nextcloud/all-in-one/tree/main/community-containers/lldap, make sure that you point `ldap.your-nc-domain.com` to your server using a cname record so that caddy can get a certificate automatically for lldap.
-- If you want to use this with https://github.com/nextcloud/all-in-one/tree/main/community-containers/nocodb, make sure that you point `tables.your-nc-domain.com` to your server using a cname record so that caddy can get a certificate automatically for nocodb.
-- If you want to use this with https://github.com/nextcloud/all-in-one/tree/main/community-containers/jellyseerr, make sure that you point `requests.your-nc-domain.com` to your server using a cname record so that caddy can get a certificate automatically for jellyseerr.
+- If you want to use this with [vaultwarden](https://github.com/nextcloud/all-in-one/tree/main/community-containers/vaultwarden), make sure that you point `bw.your-nc-domain.com` to your server using a cname record so that caddy can get a certificate automatically for vaultwarden.
+- If you want to use this with [stalwart](https://github.com/nextcloud/all-in-one/tree/main/community-containers/stalwart), make sure that you point `mail.your-nc-domain.com` to your server using an A, AAAA or CNAME record so that caddy can get a certificate automatically for stalwart.
+- If you want to use this with [jellyfin](https://github.com/nextcloud/all-in-one/tree/main/community-containers/jellyfin), make sure that you point `media.your-nc-domain.com` to your server using a cname record so that caddy can get a certificate automatically for jellyfin.
+- If you want to use this with [lldap](https://github.com/nextcloud/all-in-one/tree/main/community-containers/lldap), make sure that you point `ldap.your-nc-domain.com` to your server using a cname record so that caddy can get a certificate automatically for lldap.
+- If you want to use this with [nocodb](https://github.com/nextcloud/all-in-one/tree/main/community-containers/nocodb), make sure that you point `tables.your-nc-domain.com` to your server using a cname record so that caddy can get a certificate automatically for nocodb.
+- If you want to use this with [jellyseerr](https://github.com/nextcloud/all-in-one/tree/main/community-containers/jellyseerr), make sure that you point `requests.your-nc-domain.com` to your server using a cname record so that caddy can get a certificate automatically for jellyseerr.
- After the container was started the first time, you should see a new `nextcloud-aio-caddy` folder and inside there an `allowed-countries.txt` file when you open the files app with the default `admin` user. In there you can adjust the allowed country codes for caddy by adding them to the first line, e.g. `IT FR` would allow access from italy and france. Private ip-ranges are always allowed. Additionally, in order to activate this config, you need to get an account at https://dev.maxmind.com/geoip/geolite2-free-geolocation-data and download the `GeoLite2-Country.mmdb` and upload it with this exact name into the `nextcloud-aio-caddy` folder. Afterwards restart all containers from the AIO interface and your new config should be active!
- You can add your own Caddy configurations in `/data/caddy-imports/` inside the Caddy container (`sudo docker exec -it nextcloud-aio-caddy bash`). These will be imported on container startup.
- See https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers how to add it to the AIO stack
From 4e84080f568d45eb10afd4708dce4b80dbc22928 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Wed, 26 Feb 2025 14:30:55 +0100
Subject: [PATCH 0100/1064] collabora: allow to configure additional options
Signed-off-by: Simon L.
---
manual-install/latest.yml | 3 +-
manual-install/sample.conf | 2 +-
manual-install/update-yaml.sh | 8 +++++
.../nextcloud-aio-collabora-deployment.yaml | 5 +--
nextcloud-aio-helm-chart/update-helm.sh | 6 ++++
nextcloud-aio-helm-chart/values.yaml | 2 +-
php/public/index.php | 1 +
.../Controller/ConfigurationController.php | 9 +++++
php/src/Data/ConfigurationManager.php | 36 +++++++++++++++++++
php/src/Docker/DockerActionManager.php | 5 +++
.../includes/optional-containers.twig | 22 ++++++++++++
11 files changed, 94 insertions(+), 5 deletions(-)
diff --git a/manual-install/latest.yml b/manual-install/latest.yml
index 17bf7ad6..c16aee79 100644
--- a/manual-install/latest.yml
+++ b/manual-install/latest.yml
@@ -239,6 +239,7 @@ services:
- NET_RAW
nextcloud-aio-collabora:
+ command: ${ADDITIONAL_COLLABORA_OPTIONS}
image: nextcloud/aio-collabora:latest
init: true
healthcheck:
@@ -252,7 +253,7 @@ services:
- "9980"
environment:
- aliasgroup1=https://${NC_DOMAIN}:443
- - extra_params=--o:ssl.enable=false --o:ssl.termination=true --o:mount_jail_tree=false --o:logging.level=warning --o:home_mode.enable=true ${COLLABORA_SECCOMP_POLICY} --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:mount_jail_tree=false --o:logging.level=warning --o:home_mode.enable=true --o:remote_font_config.url=https://${NC_DOMAIN}/apps/richdocuments/settings/fonts.json --o:net.post_allow.host[0]=.+
- dictionaries=${COLLABORA_DICTIONARIES}
- TZ=${TIMEZONE}
- server_name=${NC_DOMAIN}
diff --git a/manual-install/sample.conf b/manual-install/sample.conf
index de7dd709..9ee01ab1 100644
--- a/manual-install/sample.conf
+++ b/manual-install/sample.conf
@@ -24,8 +24,8 @@ WHITEBOARD_ENABLED="no" # Setting this to "yes" (with quotes) enables t
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_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.
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_SECCOMP_POLICY=--o:security.seccomp=true # Changing the value to false allows to disable the seccomp feature of the Collabora container.
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
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.
diff --git a/manual-install/update-yaml.sh b/manual-install/update-yaml.sh
index 5a4af271..dc5e13f1 100644
--- a/manual-install/update-yaml.sh
+++ b/manual-install/update-yaml.sh
@@ -37,6 +37,7 @@ cd manual-install || exit
sed -i "s|'||g" containers.yml
sed -i '/display_name:/d' containers.yml
sed -i '/THIS_IS_AIO/d' containers.yml
+sed -i "s|%COLLABORA_SECCOMP_POLICY% ||g" containers.yml
sed -i '/stop_grace_period:/s/$/s/' containers.yml
sed -i '/: \[\]/d' containers.yml
sed -i 's|- source: |- |' containers.yml
@@ -129,6 +130,13 @@ echo "$OUTPUT" > containers.yml
sed -i '/container_name/d' containers.yml
sed -i 's|^ $||' containers.yml
+# Additional config for collabora
+cat << EOL > /tmp/additional-collabora.config
+ command: \${ADDITIONAL_COLLABORA_OPTIONS}
+EOL
+sed -i "/^ nextcloud-aio-collabora:/r /tmp/additional-collabora.config" containers.yml
+sed -i "/^COLLABORA_DICTIONARIES.*/i ADDITIONAL_COLLABORA_OPTIONS=['--o:security.seccomp=true'] # You can add additional collabora options here by using the array syntax." sample.conf
+
VOLUMES="$(grep -oP 'nextcloud_aio_[a-z_]+' containers.yml | sort -u)"
mapfile -t VOLUMES <<< "$VOLUMES"
echo "" >> containers.yml
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 f9efa705..ba8cb36a 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-collabora-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-collabora-deployment.yaml
@@ -21,7 +21,8 @@ spec:
io.kompose.service: nextcloud-aio-collabora
spec:
containers:
- - env:
+ - args: {{ .Values.ADDITIONAL_COLLABORA_OPTIONS | default [] }}
+ env:
- name: DONT_GEN_SSL_CERT
value: "1"
- name: TZ
@@ -31,7 +32,7 @@ spec:
- name: dictionaries
value: "{{ .Values.COLLABORA_DICTIONARIES }}"
- name: extra_params
- value: --o:ssl.enable=false --o:ssl.termination=true --o:mount_jail_tree=false --o:logging.level=warning --o:home_mode.enable=true {{ .Values.COLLABORA_SECCOMP_POLICY }} --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:mount_jail_tree=false --o:logging.level=warning --o:home_mode.enable=true --o:remote_font_config.url=https://{{ .Values.NC_DOMAIN }}/apps/richdocuments/settings/fonts.json --o:net.post_allow.host[0]=.+
- name: server_name
value: "{{ .Values.NC_DOMAIN }}"
image: nextcloud/aio-collabora:20250225_125724
diff --git a/nextcloud-aio-helm-chart/update-helm.sh b/nextcloud-aio-helm-chart/update-helm.sh
index 6f54d824..6eb92c83 100755
--- a/nextcloud-aio-helm-chart/update-helm.sh
+++ b/nextcloud-aio-helm-chart/update-helm.sh
@@ -42,6 +42,7 @@ sed -i "s|\${TALK_PORT}:\${TALK_PORT}/|$TALK_PORT:$TALK_PORT/|g" latest.yml
sed -i "s|- \${APACHE_PORT}|- $APACHE_PORT|" latest.yml
sed -i "s|- \${TALK_PORT}|- $TALK_PORT|" latest.yml
sed -i "s|\${NEXTCLOUD_DATADIR}|$NEXTCLOUD_DATADIR|" latest.yml
+sed -i "s|\${ADDITIONAL_COLLABORA_OPTIONS}|ADDITIONAL_COLLABORA_OPTIONS_PLACEHOLDER|" latest.yml
sed -i "/name: nextcloud-aio/,$ d" latest.yml
sed -i "/NEXTCLOUD_DATADIR/d" latest.yml
sed -i "/\${NEXTCLOUD_MOUNT}/d" latest.yml
@@ -467,6 +468,11 @@ EOL
# shellcheck disable=SC1083
find ./ \( -not -name '*collabora-deployment.yaml*' -not -name '*apache-deployment.yaml*' -not -name '*onlyoffice-deployment.yaml*' -name "*deployment.yaml" \) -exec sed -i "/^ securityContext:$/r /tmp/security.conf" \{} \;
+# shellcheck disable=SC1083
+find ./ -name '*collabora-deployment.yaml*' -exec sed -i "/ADDITIONAL_COLLABORA_OPTIONS_PLACEHOLDER/d" \{} \;
+# shellcheck disable=SC1083
+find ./ -name '*collabora-deployment.yaml*' -exec sed -i "s/- args:/- args: \{\{ .Values.ADDITIONAL_COLLABORA_OPTIONS \}\}/" \{} \;
+
cat << EOL > /tmp/security.conf
# The items below only work in container context
allowPrivilegeEscalation: false
diff --git a/nextcloud-aio-helm-chart/values.yaml b/nextcloud-aio-helm-chart/values.yaml
index bbf597f3..f0897240 100755
--- a/nextcloud-aio-helm-chart/values.yaml
+++ b/nextcloud-aio-helm-chart/values.yaml
@@ -23,8 +23,8 @@ WHITEBOARD_ENABLED: "no" # Setting this to "yes" (with quotes) enables
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).
+ADDITIONAL_COLLABORA_OPTIONS: ['--o:security.seccomp=true'] # You can add additional collabora options here by using the array syntax.
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_SECCOMP_POLICY: --o:security.seccomp=true # Changing the value to false allows to disable the seccomp feature of the Collabora container.
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
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.
diff --git a/php/public/index.php b/php/public/index.php
index e5823cb4..5e5c1896 100644
--- a/php/public/index.php
+++ b/php/public/index.php
@@ -114,6 +114,7 @@ $app->get('/containers', function (Request $request, Response $response, array $
'skip_domain_validation' => $configurationManager->shouldDomainValidationBeSkipped(),
'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(),
diff --git a/php/src/Controller/ConfigurationController.php b/php/src/Controller/ConfigurationController.php
index 67463ab1..561334c8 100644
--- a/php/src/Controller/ConfigurationController.php
+++ b/php/src/Controller/ConfigurationController.php
@@ -134,6 +134,15 @@ readonly class ConfigurationController {
$this->configurationManager->SetCollaboraDictionaries($collaboraDictionaries);
}
+ if (isset($request->getParsedBody()['delete_collabora_additional_options'])) {
+ $this->configurationManager->DeleteAdditionalCollaboraOptions();
+ }
+
+ if (isset($request->getParsedBody()['collabora_additional_options'])) {
+ $additionalCollaboraOptions = $request->getParsedBody()['collabora_additional_options'] ?? '';
+ $this->configurationManager->SetAdditionalCollaboraOptions($additionalCollaboraOptions);
+ }
+
if (isset($request->getParsedBody()['delete_borg_backup_location_vars'])) {
$this->configurationManager->DeleteBorgBackupLocationVars();
}
diff --git a/php/src/Data/ConfigurationManager.php b/php/src/Data/ConfigurationManager.php
index d8c0c8ec..2c0b79a8 100644
--- a/php/src/Data/ConfigurationManager.php
+++ b/php/src/Data/ConfigurationManager.php
@@ -950,6 +950,42 @@ class ConfigurationManager
$this->WriteConfig($config);
}
+ /**
+ * @throws InvalidSettingConfigurationException
+ */
+ public function SetAdditionalCollaboraOptions(string $additionalCollaboraOptions) : void {
+ if ($additionalCollaboraOptions === "") {
+ throw new InvalidSettingConfigurationException("The additional options must not be empty!");
+ }
+
+ if (!preg_match("#^--o:#", $additionalCollaboraOptions)) {
+ throw new InvalidSettingConfigurationException("The entered options must start with '--o:'. So the config does not seem to be a valid!");
+ }
+
+ $config = $this->GetConfig();
+ $config['collabora_additional_options'] = $additionalCollaboraOptions;
+ $this->WriteConfig($config);
+ }
+
+ public function GetAdditionalCollaboraOptions() : string {
+ $config = $this->GetConfig();
+ if(!isset($config['collabora_additional_options'])) {
+ $config['collabora_additional_options'] = '';
+ }
+
+ return $config['collabora_additional_options'];
+ }
+
+ public function GetAdditionalCollaboraOptionsArray() : array {
+ return explode(' ', $this->GetAdditionalCollaboraOptions());
+ }
+
+ public function DeleteAdditionalCollaboraOptions() : void {
+ $config = $this->GetConfig();
+ $config['collabora_additional_options'] = '';
+ $this->WriteConfig($config);
+ }
+
public function GetApacheAdditionalNetwork() : string {
$envVariableName = 'APACHE_ADDITIONAL_NETWORK';
$configName = 'apache_additional_network';
diff --git a/php/src/Docker/DockerActionManager.php b/php/src/Docker/DockerActionManager.php
index a22b2efb..d3eace3d 100644
--- a/php/src/Docker/DockerActionManager.php
+++ b/php/src/Docker/DockerActionManager.php
@@ -578,6 +578,11 @@ readonly class DockerActionManager {
// Special things for the caddy community container
} elseif ($container->GetIdentifier() === 'nextcloud-aio-caddy') {
$requestBody['HostConfig']['ExtraHosts'] = ['host.docker.internal:host-gateway'];
+ // Special things for the collabora container which should not be exposed in the containers.json
+ } elseif ($container->GetIdentifier() === 'nextcloud-aio-collabora') {
+ if ($this->configurationManager->GetAdditionalCollaboraOptions() !== '') {
+ $requestBody['HostConfig']['Config']['Cmd'] = $this->configurationManager->GetAdditionalCollaboraOptionsArray();
+ }
}
if (count($mounts) > 0) {
diff --git a/php/templates/includes/optional-containers.twig b/php/templates/includes/optional-containers.twig
index 60efcc5e..5b00a769 100644
--- a/php/templates/includes/optional-containers.twig
+++ b/php/templates/includes/optional-containers.twig
@@ -181,4 +181,26 @@
{% endif %}
+
+
Additional Collabora options
+
+ {% if collabora_additional_options == "" %}
+
You can configure additional options for collabora below.
+
(This can be used for configuring the net.content_security_policy and more)
+
+
+
+
+
+
+
You need to make sure that the options that you enter are valid. An example is --o:net.content_security_policy="frame-ancestors *.example.com:*;".
+ {% else %}
+
The additioinal options for Collabora are currently set to {{ collabora_additional_options }}. You can reset them again by clicking on the button below.
+
+
+
+
+
+
+ {% endif %}
{% endif %}
From 1759f14c376a2c4d3b8f148e068d8aeae99580ad Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 27 Feb 2025 04:41:43 +0000
Subject: [PATCH 0101/1064] build(deps): bump docker in
/Containers/mastercontainer
Bumps docker from 27.5.1-cli to 28.0.1-cli.
---
updated-dependencies:
- dependency-name: docker
dependency-type: direct:production
update-type: version-update:semver-major
...
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 c7da9741..6379ba85 100644
--- a/Containers/mastercontainer/Dockerfile
+++ b/Containers/mastercontainer/Dockerfile
@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:latest
# Docker CLI is a requirement
-FROM docker:27.5.1-cli AS docker
+FROM docker:28.0.1-cli AS docker
# Caddy is a requirement
FROM caddy:2.9.1-alpine AS caddy
From d01dc6ad8ad77549bfba2f683effbdca0d86e42a Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Thu, 27 Feb 2025 11:42:44 +0100
Subject: [PATCH 0102/1064] address review
Signed-off-by: Simon L.
---
.../templates/nextcloud-aio-collabora-deployment.yaml | 2 +-
nextcloud-aio-helm-chart/update-helm.sh | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
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 ba8cb36a..64e1347a 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-collabora-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-collabora-deployment.yaml
@@ -21,7 +21,7 @@ spec:
io.kompose.service: nextcloud-aio-collabora
spec:
containers:
- - args: {{ .Values.ADDITIONAL_COLLABORA_OPTIONS | default [] }}
+ - args: {{ .Values.ADDITIONAL_COLLABORA_OPTIONS | default list | toJson }}
env:
- name: DONT_GEN_SSL_CERT
value: "1"
diff --git a/nextcloud-aio-helm-chart/update-helm.sh b/nextcloud-aio-helm-chart/update-helm.sh
index 6eb92c83..3c976773 100755
--- a/nextcloud-aio-helm-chart/update-helm.sh
+++ b/nextcloud-aio-helm-chart/update-helm.sh
@@ -471,7 +471,7 @@ find ./ \( -not -name '*collabora-deployment.yaml*' -not -name '*apache-deployme
# shellcheck disable=SC1083
find ./ -name '*collabora-deployment.yaml*' -exec sed -i "/ADDITIONAL_COLLABORA_OPTIONS_PLACEHOLDER/d" \{} \;
# shellcheck disable=SC1083
-find ./ -name '*collabora-deployment.yaml*' -exec sed -i "s/- args:/- args: \{\{ .Values.ADDITIONAL_COLLABORA_OPTIONS \}\}/" \{} \;
+find ./ -name '*collabora-deployment.yaml*' -exec sed -i "s/- args:/- args: \{\{ .Values.ADDITIONAL_COLLABORA_OPTIONS | default list | toJson \}\}/" \{} \;
cat << EOL > /tmp/security.conf
# The items below only work in container context
From 7e3b07e7820f66ab0a8c4159227fb179c828badd Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Fri, 28 Feb 2025 14:29:40 +0100
Subject: [PATCH 0103/1064] update OO
Signed-off-by: Simon L.
---
Containers/onlyoffice/Dockerfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Containers/onlyoffice/Dockerfile b/Containers/onlyoffice/Dockerfile
index 3289e1b1..321cf5b4 100644
--- a/Containers/onlyoffice/Dockerfile
+++ b/Containers/onlyoffice/Dockerfile
@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:latest
# From https://github.com/ONLYOFFICE/Docker-DocumentServer/blob/master/Dockerfile
-FROM onlyoffice/documentserver:8.3.0.1
+FROM onlyoffice/documentserver:8.3.1.1
# USER root is probably used
From 91aeae98254258750479d009e7a339eaa2312ef8 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Fri, 28 Feb 2025 14:30:25 +0100
Subject: [PATCH 0104/1064] increase to 10.7.0
Signed-off-by: Simon L.
---
php/templates/containers.twig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/php/templates/containers.twig b/php/templates/containers.twig
index 0a6b1452..6f007751 100644
--- a/php/templates/containers.twig
+++ b/php/templates/containers.twig
@@ -17,7 +17,7 @@
-
Nextcloud AIO v10.6.1
+
Nextcloud AIO v10.7.0
{# Add 2nd tab warning #}
From ace709c485e13bddc0bfd14328b75a23b8b4515b Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Fri, 28 Feb 2025 14:46:12 +0100
Subject: [PATCH 0105/1064] aio-interface: fix broken link
Signed-off-by: Simon L.
---
php/templates/containers.twig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/php/templates/containers.twig b/php/templates/containers.twig
index 6f007751..1124c51a 100644
--- a/php/templates/containers.twig
+++ b/php/templates/containers.twig
@@ -484,7 +484,7 @@
Be aware that this solution does not backup files and folders that are mounted into Nextcloud using the external storage app, but you can add further Docker volumes and host paths that you want to back up after the initial backup is done.
Daily backups can be enabled after the initial backup is done. Enabling this also allows you to enable an option to update all containers, Nextcloud, and its apps automatically.
-
For further documentation and options on this backup solution refer to this section and below.
+
For further documentation and options on this backup solution refer to this section and below.
{% if isApacheStarting != true %}
Backup creation
From 68ffa35d6f151499132b163153a47542f1924b86 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Fri, 28 Feb 2025 14:49:35 +0100
Subject: [PATCH 0106/1064] Enable whiteboard by default
Signed-off-by: Simon L.
---
php/src/Data/ConfigurationManager.php | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/php/src/Data/ConfigurationManager.php b/php/src/Data/ConfigurationManager.php
index 2c0b79a8..038e9e10 100644
--- a/php/src/Data/ConfigurationManager.php
+++ b/php/src/Data/ConfigurationManager.php
@@ -170,10 +170,10 @@ class ConfigurationManager
public function isWhiteboardEnabled() : bool {
$config = $this->GetConfig();
- if (isset($config['isWhiteboardEnabled']) && $config['isWhiteboardEnabled'] === 1) {
- return true;
- } else {
+ if (isset($config['isWhiteboardEnabled']) && $config['isWhiteboardEnabled'] === 0) {
return false;
+ } else {
+ return true;
}
}
From de053c9b7d5fd38ff50ab67c17ee1abdef47df84 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Fri, 28 Feb 2025 15:14:22 +0100
Subject: [PATCH 0107/1064] DockerActionManager: fix setting CMD options for
collabora
Signed-off-by: Simon L.
---
php/src/Data/ConfigurationManager.php | 4 ----
php/src/Docker/DockerActionManager.php | 2 +-
2 files changed, 1 insertion(+), 5 deletions(-)
diff --git a/php/src/Data/ConfigurationManager.php b/php/src/Data/ConfigurationManager.php
index 038e9e10..60a95761 100644
--- a/php/src/Data/ConfigurationManager.php
+++ b/php/src/Data/ConfigurationManager.php
@@ -976,10 +976,6 @@ class ConfigurationManager
return $config['collabora_additional_options'];
}
- public function GetAdditionalCollaboraOptionsArray() : array {
- return explode(' ', $this->GetAdditionalCollaboraOptions());
- }
-
public function DeleteAdditionalCollaboraOptions() : void {
$config = $this->GetConfig();
$config['collabora_additional_options'] = '';
diff --git a/php/src/Docker/DockerActionManager.php b/php/src/Docker/DockerActionManager.php
index d3eace3d..48903d54 100644
--- a/php/src/Docker/DockerActionManager.php
+++ b/php/src/Docker/DockerActionManager.php
@@ -581,7 +581,7 @@ readonly class DockerActionManager {
// Special things for the collabora container which should not be exposed in the containers.json
} elseif ($container->GetIdentifier() === 'nextcloud-aio-collabora') {
if ($this->configurationManager->GetAdditionalCollaboraOptions() !== '') {
- $requestBody['HostConfig']['Config']['Cmd'] = $this->configurationManager->GetAdditionalCollaboraOptionsArray();
+ $requestBody['Cmd'] = [$this->configurationManager->GetAdditionalCollaboraOptions()];
}
}
From 0e88a15edb51990340322bca6146b05789350309 Mon Sep 17 00:00:00 2001
From: Jean-Yves <7360784+docjyJ@users.noreply.github.com>
Date: Sat, 1 Mar 2025 20:57:21 +0100
Subject: [PATCH 0108/1064] Add container state component for improved status
display and hide password by default
Signed-off-by: Jean-Yves <7360784+docjyJ@users.noreply.github.com>
---
php/templates/components/container-state.twig | 23 +++++++++++++
php/templates/containers.twig | 34 +------------------
2 files changed, 24 insertions(+), 33 deletions(-)
create mode 100644 php/templates/components/container-state.twig
diff --git a/php/templates/components/container-state.twig b/php/templates/components/container-state.twig
new file mode 100644
index 00000000..cdf70016
--- /dev/null
+++ b/php/templates/components/container-state.twig
@@ -0,0 +1,23 @@
+{# @var c \App\Containers\Container #}
+
\ No newline at end of file
diff --git a/php/templates/containers.twig b/php/templates/containers.twig
index 1124c51a..96687dac 100644
--- a/php/templates/containers.twig
+++ b/php/templates/containers.twig
@@ -275,39 +275,7 @@
{# @var containers \AIO\Container\Container[] #}
{% for container in containers %}
{% if container.GetDisplayName() != '' %}
-
\ No newline at end of file
From 9e95d966569b8b2b3e9c2d4db28e2fb900fbb56c Mon Sep 17 00:00:00 2001
From: Zoey
Date: Thu, 6 Mar 2025 16:00:53 +0100
Subject: [PATCH 0121/1064] Merge pull request #6094 from
nextcloud/clamav-alpine-aarch64
clamav: build the container also for aarch64/arm64 by using the alpine package
---
Containers/clamav/Dockerfile | 37 +++++++++----------
Containers/clamav/clamav.conf | 5 ---
Containers/clamav/healthcheck.sh | 9 +++++
Containers/clamav/start.script | 4 --
Containers/clamav/start.sh | 5 +++
Containers/clamav/supervisord.conf | 21 +++++++++++
Containers/whiteboard/Dockerfile | 3 +-
manual-install/readme.md | 6 +--
manual-install/update-yaml.sh | 2 +-
php/containers.json | 11 +++---
php/public/index.php | 1 -
php/src/Data/ConfigurationManager.php | 8 +---
.../includes/optional-containers.twig | 6 +--
readme.md | 2 +-
14 files changed, 69 insertions(+), 51 deletions(-)
delete mode 100644 Containers/clamav/clamav.conf
create mode 100644 Containers/clamav/healthcheck.sh
delete mode 100644 Containers/clamav/start.script
create mode 100644 Containers/clamav/start.sh
create mode 100644 Containers/clamav/supervisord.conf
diff --git a/Containers/clamav/Dockerfile b/Containers/clamav/Dockerfile
index 22227b71..9f86f5f9 100644
--- a/Containers/clamav/Dockerfile
+++ b/Containers/clamav/Dockerfile
@@ -1,28 +1,25 @@
# syntax=docker/dockerfile:latest
-# Probably from this file: https://github.com/Cisco-Talos/clamav-docker/blob/main/clamav/1.3/alpine/Dockerfile
-FROM clamav/clamav:1.4.2-29
-
-COPY clamav.conf /clamav.conf
-COPY --chmod=775 start.script /start.script
+FROM alpine:3.21.3
RUN set -ex; \
apk upgrade --no-cache -a; \
- apk add --no-cache tzdata bash; \
- mkdir -p /var/run/clamav /run/lock; \
- chown -R clamav:clamav /var/run/clamav /run/clamav /var/log/clamav /var/lock /run/lock; \
- chmod 777 -R /var/run/clamav /run/clamav /var/log/clamav /var/lock /run/lock /tmp; \
- sed -i "/^set -eu/r /start.script" /init-unprivileged; \
- rm /start.script; \
- grep -q 'clamd --foreground &' /init-unprivileged; \
- sed -i "s|clamd --foreground \&|clamd --foreground --config-file /tmp/clamd.conf \&|" /init-unprivileged; \
- cat /init-unprivileged
+ apk add --no-cache tzdata clamav supervisord; \
+ mkdir /run/clamav; \
+ chmod 777 -R /run/clamav /var/log/clamav /var/log/supervisord /var/run/supervisord; \
+ sed -i "s|#\?MaxDirectoryRecursion.*|MaxDirectoryRecursion 30|g" /etc/clamav/clamd.conf; \
+ sed -i "s|#\?MaxFileSize.*|MaxFileSize 2G|g" /etc/clamav/clamd.conf; \
+ sed -i "s|#\?PCREMaxFileSize.*|PCREMaxFileSize aio-placeholder|g" /etc/clamav/clamd.conf; \
+ sed -i "s|#\?StreamMaxLength.*|StreamMaxLength aio-placeholder|g" /etc/clamav/clamd.conf; \
+ sed -i "s|#\?TCPSocket|TCPSocket|g" /etc/clamav/clamd.conf; \
+ freshclam --foreground --stdout
-VOLUME /var/lib/clamav
+COPY --chmod=775 start.sh /start.sh
+COPY --chmod=775 healthcheck.sh /healthcheck.sh
+COPY --chmod=664 supervisord.conf /supervisord.conf
USER 100
-
+VOLUME /var/lib/clamav
+ENTRYPOINT ["/start.sh"]
+CMD ["/usr/bin/supervisord", "-c", "/supervisord.conf"]
LABEL com.centurylinklabs.watchtower.enable="false"
-
-HEALTHCHECK --start-period=60s --retries=9 CMD clamdcheck.sh
-
-ENTRYPOINT ["/init-unprivileged"]
+HEALTHCHECK --start-period=60s --retries=9 CMD /healthcheck.sh
diff --git a/Containers/clamav/clamav.conf b/Containers/clamav/clamav.conf
deleted file mode 100644
index b32636ba..00000000
--- a/Containers/clamav/clamav.conf
+++ /dev/null
@@ -1,5 +0,0 @@
-# AIO settings
-MaxDirectoryRecursion 30
-MaxFileSize 16G
-PCREMaxFileSize 16G
-StreamMaxLength 16G
diff --git a/Containers/clamav/healthcheck.sh b/Containers/clamav/healthcheck.sh
new file mode 100644
index 00000000..cef67500
--- /dev/null
+++ b/Containers/clamav/healthcheck.sh
@@ -0,0 +1,9 @@
+#!/usr/bin/env sh
+
+if [ "$(echo "PING" | nc 127.0.0.1 3310)" != "PONG" ]; then
+ echo "ERROR: Unable to contact server"
+ exit 1
+fi
+
+echo "Clamd is up"
+exit 0
diff --git a/Containers/clamav/start.script b/Containers/clamav/start.script
deleted file mode 100644
index da228462..00000000
--- a/Containers/clamav/start.script
+++ /dev/null
@@ -1,4 +0,0 @@
-# Adjust settings
-cat /etc/clamav/clamd.conf > /tmp/clamd.conf
-CLAMAV_FILE="$(sed "s|16G|$MAX_SIZE|" /clamav.conf)"
-echo "$CLAMAV_FILE" >> /tmp/clamd.conf
diff --git a/Containers/clamav/start.sh b/Containers/clamav/start.sh
new file mode 100644
index 00000000..fb7c8bd8
--- /dev/null
+++ b/Containers/clamav/start.sh
@@ -0,0 +1,5 @@
+#!/usr/bin/env sh
+
+sed "s|aio-placeholder|$MAX_SIZE|" /etc/clamav/clamd.conf > /tmp/clamd.conf
+
+exec "$@"
diff --git a/Containers/clamav/supervisord.conf b/Containers/clamav/supervisord.conf
new file mode 100644
index 00000000..a5475bce
--- /dev/null
+++ b/Containers/clamav/supervisord.conf
@@ -0,0 +1,21 @@
+[supervisord]
+nodaemon=true
+nodaemon=true
+logfile=/var/log/supervisord/supervisord.log
+pidfile=/var/run/supervisord/supervisord.pid
+childlogdir=/var/log/supervisord/
+logfile_maxbytes=50MB
+logfile_backups=10
+loglevel=error
+
+[program:freshclam]
+stdout_logfile=NONE
+stderr_logfile=/dev/stderr
+stderr_logfile_maxbytes=0
+command=freshclam --foreground --stdout --daemon
+
+[program:clamd]
+stdout_logfile=NONE
+stderr_logfile=/dev/stderr
+stderr_logfile_maxbytes=0
+command=clamd --foreground --config-file=/tmp/clamd.conf
diff --git a/Containers/whiteboard/Dockerfile b/Containers/whiteboard/Dockerfile
index 1000ecbb..c208a403 100644
--- a/Containers/whiteboard/Dockerfile
+++ b/Containers/whiteboard/Dockerfile
@@ -5,7 +5,8 @@ FROM ghcr.io/nextcloud-releases/whiteboard:v1.0.5
USER root
RUN set -ex; \
apk upgrade --no-cache -a; \
- apk add --no-cache bash
+ apk add --no-cache bash; \
+ chmod 777 -R /tmp
USER 65534
COPY --chmod=775 start.sh /start.sh
diff --git a/manual-install/readme.md b/manual-install/readme.md
index 9bf34c9c..874a5b4b 100644
--- a/manual-install/readme.md
+++ b/manual-install/readme.md
@@ -24,7 +24,7 @@ First, install docker and docker-compose (v2) if not already done. Then simply r
git clone https://github.com/nextcloud/all-in-one.git
cd all-in-one/manual-install
```
-Then copy the sample.conf to default environment file, e.g. `cp sample.conf .env`, open the new conf file, e.g. with `nano .env`, edit all values that are marked with `# TODO!`, close and save the file. (Note: there is no clamav image for arm64).
+Then copy the sample.conf to default environment file, e.g. `cp sample.conf .env`, open the new conf file, e.g. with `nano .env`, edit all values that are marked with `# TODO!`, close and save the file.
⚠️ **Warning**: Do not use the symbols `@` and `:` in your passwords. These symbols are used to build database connection strings. You will experience issues when using these symbols! Also please note that values inside the latest.yaml that are not exposed as variables are not officially supported to be changed. See for example [this report](https://github.com/nextcloud/all-in-one/issues/5612).
Now copy the provided yaml file to a compose.yaml file by running `cp latest.yml compose.yaml`.
@@ -32,9 +32,9 @@ Now copy the provided yaml file to a compose.yaml file by running `cp latest.yml
Now you should be ready to go with `sudo docker compose up`.
## Docker profiles
-The default profile of `latest.yml` only provide the minimum necessary services: nextcloud, database, redis and apache. To get optional services collabora, talk, whiteboard, talk-recording, clamav, imaginary or fulltextsearch use additional arguments for each of them, for example `--profile collabora`. (Note: there is no clamav image for arm64).
+The default profile of `latest.yml` only provide the minimum necessary services: nextcloud, database, redis and apache. To get optional services collabora, talk, whiteboard, talk-recording, clamav, imaginary or fulltextsearch use additional arguments for each of them, for example `--profile collabora`.
-For a complete all-in-one with collabora use `sudo docker compose --profile collabora --profile talk --profile talk-recording --profile clamav --profile imaginary --profile fulltextsearch --profile whiteboard up`. (Note: there is no clamav image for arm64).
+For a complete all-in-one with collabora use `sudo docker compose --profile collabora --profile talk --profile talk-recording --profile clamav --profile imaginary --profile fulltextsearch --profile whiteboard up`.
## How to update?
Since the AIO containers may change in the future, it is highly recommended to strictly follow the following procedure whenever you want to upgrade your containers.
diff --git a/manual-install/update-yaml.sh b/manual-install/update-yaml.sh
index dc5e13f1..70d14b4e 100644
--- a/manual-install/update-yaml.sh
+++ b/manual-install/update-yaml.sh
@@ -75,7 +75,7 @@ do
done
sed -i 's|_ENABLED=|_ENABLED="no" # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically.|' sample.conf
-sed -i 's|CLAMAV_ENABLED=no.*|CLAMAV_ENABLED="no" # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically. Note: arm64 has no clamav support|' sample.conf
+sed -i 's|CLAMAV_ENABLED=no.*|CLAMAV_ENABLED="no" # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically.|' sample.conf
sed -i 's|TALK_ENABLED=no|TALK_ENABLED="yes"|' sample.conf
sed -i 's|COLLABORA_ENABLED=no|COLLABORA_ENABLED="yes"|' sample.conf
sed -i 's|COLLABORA_DICTIONARIES=|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|' sample.conf
diff --git a/php/containers.json b/php/containers.json
index cc60249a..4f218af2 100644
--- a/php/containers.json
+++ b/php/containers.json
@@ -642,7 +642,7 @@
"init": false,
"healthcheck": {
"start_period": "60s",
- "test": "clamdcheck.sh",
+ "test": "/healthcheck.sh",
"interval": "30s",
"timeout": "30s",
"start_interval": "5s",
@@ -654,8 +654,7 @@
"internal_port": "3310",
"environment": [
"TZ=%TIMEZONE%",
- "MAX_SIZE=%NEXTCLOUD_UPLOAD_LIMIT%",
- "CLAMD_STARTUP_TIMEOUT=90"
+ "MAX_SIZE=%NEXTCLOUD_UPLOAD_LIMIT%"
],
"volumes": [
{
@@ -670,9 +669,11 @@
],
"read_only": true,
"tmpfs": [
- "/var/lock",
+ "/tmp",
"/var/log/clamav",
- "/tmp"
+ "/run/clamav",
+ "/var/log/supervisord",
+ "/var/run/supervisord"
],
"cap_drop": [
"NET_RAW"
diff --git a/php/public/index.php b/php/public/index.php
index 5e5c1896..a3ee8f7d 100644
--- a/php/public/index.php
+++ b/php/public/index.php
@@ -102,7 +102,6 @@ $app->get('/containers', function (Request $request, Response $response, array $
'last_backup_time' => $configurationManager->GetLastBackupTime(),
'backup_times' => $configurationManager->GetBackupTimes(),
'current_channel' => $dockerActionManger->GetCurrentChannel(),
- 'is_x64_platform' => $configurationManager->isx64Platform(),
'is_clamav_enabled' => $configurationManager->isClamavEnabled(),
'is_onlyoffice_enabled' => $configurationManager->isOnlyofficeEnabled(),
'is_collabora_enabled' => $configurationManager->isCollaboraEnabled(),
diff --git a/php/src/Data/ConfigurationManager.php b/php/src/Data/ConfigurationManager.php
index 60a95761..7c7039af 100644
--- a/php/src/Data/ConfigurationManager.php
+++ b/php/src/Data/ConfigurationManager.php
@@ -132,7 +132,7 @@ class ConfigurationManager
}
}
- public function isx64Platform() : bool {
+ private function isx64Platform() : bool {
if (php_uname('m') === 'x86_64') {
return true;
} else {
@@ -140,11 +140,7 @@ class ConfigurationManager
}
}
- public function isClamavEnabled() : bool {
- if (!$this->isx64Platform()) {
- return false;
- }
-
+ public function isClamavEnabled() : bool {
$config = $this->GetConfig();
if (isset($config['isClamavEnabled']) && $config['isClamavEnabled'] === 1) {
return true;
diff --git a/php/templates/includes/optional-containers.twig b/php/templates/includes/optional-containers.twig
index 5b00a769..16fef91f 100644
--- a/php/templates/includes/optional-containers.twig
+++ b/php/templates/includes/optional-containers.twig
@@ -21,7 +21,7 @@
data-initial-state="false"
{% endif %}
>
- ClamAV (Antivirus backend for Nextcloud, only supported on x86_64, needs ~1GB additional RAM)
+ ClamAV (Antivirus backend for Nextcloud, needs ~1GB additional RAM)
Minimal system requirements: When any optional container is enabled, at least 2GB RAM, a dual-core CPU and 40GB system storage are required. When enabling ClamAV, Nextcloud Talk Recording-server or Fulltextsearch, at least 3GB RAM are required. For Talk Recording-server additional 2 vCPUs are required. When enabling everything, at least 5GB RAM and a quad-core CPU are required. Recommended are at least 1GB more RAM than the minimal requirement. For further advice and recommendations see this documentation
-{% if isAnyRunning == true or is_x64_platform == false %}
-
-{% endif %}
{% if isAnyRunning == true %}
+
diff --git a/readme.md b/readme.md
index b10a262d..0eb92033 100644
--- a/readme.md
+++ b/readme.md
@@ -351,7 +351,7 @@ If you get an error during the domain validation which states that your ip-addre
### Which CPU architectures are supported?
You can check this on Linux by running: `uname -m`
- x86_64/x64/amd64
-- aarch64/arm64/armv8 (Note: ClamAV is currently not supported on this CPU architecture)
+- aarch64/arm64/armv8
### Disrecommended VPS providers
- *Older* Strato VPS using Virtuozzo caused problems though ones from Q3 2023 and later should work.
From 945f1341fd3df195e42d9aed378689ae7ccfde16 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Thu, 6 Mar 2025 16:14:46 +0100
Subject: [PATCH 0122/1064] increase to 10.8.0
Signed-off-by: Simon L.
---
php/templates/containers.twig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/php/templates/containers.twig b/php/templates/containers.twig
index 96687dac..1bbfc001 100644
--- a/php/templates/containers.twig
+++ b/php/templates/containers.twig
@@ -17,7 +17,7 @@
-
Nextcloud AIO v10.7.0
+
Nextcloud AIO v10.8.0
{# Add 2nd tab warning #}
From 0b027648974bc48bcc7d89571b816d1dafb816e7 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Thu, 6 Mar 2025 16:17:56 +0100
Subject: [PATCH 0123/1064] fix supervisor package name
Signed-off-by: Simon L.
---
Containers/clamav/Dockerfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Containers/clamav/Dockerfile b/Containers/clamav/Dockerfile
index 9f86f5f9..33bc538f 100644
--- a/Containers/clamav/Dockerfile
+++ b/Containers/clamav/Dockerfile
@@ -3,7 +3,7 @@ FROM alpine:3.21.3
RUN set -ex; \
apk upgrade --no-cache -a; \
- apk add --no-cache tzdata clamav supervisord; \
+ apk add --no-cache tzdata clamav supervisor; \
mkdir /run/clamav; \
chmod 777 -R /run/clamav /var/log/clamav /var/log/supervisord /var/run/supervisord; \
sed -i "s|#\?MaxDirectoryRecursion.*|MaxDirectoryRecursion 30|g" /etc/clamav/clamd.conf; \
From 405fc57bf45df60aa2c319727ffc451692bd2f52 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Thu, 6 Mar 2025 16:20:11 +0100
Subject: [PATCH 0124/1064] fix another detail
Signed-off-by: Simon L.
---
Containers/clamav/Dockerfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Containers/clamav/Dockerfile b/Containers/clamav/Dockerfile
index 33bc538f..672bd7ce 100644
--- a/Containers/clamav/Dockerfile
+++ b/Containers/clamav/Dockerfile
@@ -4,7 +4,7 @@ FROM alpine:3.21.3
RUN set -ex; \
apk upgrade --no-cache -a; \
apk add --no-cache tzdata clamav supervisor; \
- mkdir /run/clamav; \
+ mkdir -p /run/clamav /var/log/supervisord /var/run/supervisord; \
chmod 777 -R /run/clamav /var/log/clamav /var/log/supervisord /var/run/supervisord; \
sed -i "s|#\?MaxDirectoryRecursion.*|MaxDirectoryRecursion 30|g" /etc/clamav/clamd.conf; \
sed -i "s|#\?MaxFileSize.*|MaxFileSize 2G|g" /etc/clamav/clamd.conf; \
From fe310624ed00cd1ea6c419105a06833ff381eb0d Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Thu, 6 Mar 2025 16:50:57 +0100
Subject: [PATCH 0125/1064] Revert "build(deps): bump collabora/code from
24.04.12.4.1 to 24.04.13.1.1 in /Containers/collabora"
---
Containers/collabora/Dockerfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Containers/collabora/Dockerfile b/Containers/collabora/Dockerfile
index c4d76b3b..e9ca4d01 100644
--- a/Containers/collabora/Dockerfile
+++ b/Containers/collabora/Dockerfile
@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:latest
# From a file located probably somewhere here: https://github.com/CollaboraOnline/online/tree/master/docker
-FROM collabora/code:24.04.13.1.1
+FROM collabora/code:24.04.12.4.1
USER root
ARG DEBIAN_FRONTEND=noninteractive
From a661b488c3ab7a4598ff7a7a67881b5229982796 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Thu, 6 Mar 2025 16:58:25 +0100
Subject: [PATCH 0126/1064] clamav: adjust a few more things
Signed-off-by: Simon L.
---
Containers/clamav/Dockerfile | 2 +-
Containers/clamav/healthcheck.sh | 2 +-
Containers/clamav/start.sh | 4 +++-
Containers/clamav/supervisord.conf | 6 ++++--
4 files changed, 9 insertions(+), 5 deletions(-)
diff --git a/Containers/clamav/Dockerfile b/Containers/clamav/Dockerfile
index 672bd7ce..e79d452d 100644
--- a/Containers/clamav/Dockerfile
+++ b/Containers/clamav/Dockerfile
@@ -3,7 +3,7 @@ FROM alpine:3.21.3
RUN set -ex; \
apk upgrade --no-cache -a; \
- apk add --no-cache tzdata clamav supervisor; \
+ apk add --no-cache tzdata clamav supervisor bash; \
mkdir -p /run/clamav /var/log/supervisord /var/run/supervisord; \
chmod 777 -R /run/clamav /var/log/clamav /var/log/supervisord /var/run/supervisord; \
sed -i "s|#\?MaxDirectoryRecursion.*|MaxDirectoryRecursion 30|g" /etc/clamav/clamd.conf; \
diff --git a/Containers/clamav/healthcheck.sh b/Containers/clamav/healthcheck.sh
index cef67500..fe8b5daa 100644
--- a/Containers/clamav/healthcheck.sh
+++ b/Containers/clamav/healthcheck.sh
@@ -1,4 +1,4 @@
-#!/usr/bin/env sh
+#!/bin/bash
if [ "$(echo "PING" | nc 127.0.0.1 3310)" != "PONG" ]; then
echo "ERROR: Unable to contact server"
diff --git a/Containers/clamav/start.sh b/Containers/clamav/start.sh
index fb7c8bd8..fa10d0e5 100644
--- a/Containers/clamav/start.sh
+++ b/Containers/clamav/start.sh
@@ -1,5 +1,7 @@
-#!/usr/bin/env sh
+#!/bin/bash
sed "s|aio-placeholder|$MAX_SIZE|" /etc/clamav/clamd.conf > /tmp/clamd.conf
+echo "Clamav started"
+
exec "$@"
diff --git a/Containers/clamav/supervisord.conf b/Containers/clamav/supervisord.conf
index a5475bce..8f5c81a1 100644
--- a/Containers/clamav/supervisord.conf
+++ b/Containers/clamav/supervisord.conf
@@ -9,13 +9,15 @@ logfile_backups=10
loglevel=error
[program:freshclam]
-stdout_logfile=NONE
+stdout_logfile=/dev/stdout
+stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0
command=freshclam --foreground --stdout --daemon
[program:clamd]
-stdout_logfile=NONE
+stdout_logfile=/dev/stdout
+stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0
command=clamd --foreground --config-file=/tmp/clamd.conf
From 8d1a4653a076b33a0b511096e57076ae356f663a Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Thu, 6 Mar 2025 17:35:44 +0100
Subject: [PATCH 0127/1064] container-state-template: change order to old logic
as it is not interchangabel
Signed-off-by: Simon L.
---
php/templates/components/container-state.twig | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/php/templates/components/container-state.twig b/php/templates/components/container-state.twig
index 8bc8c559..4cf5dd4e 100644
--- a/php/templates/components/container-state.twig
+++ b/php/templates/components/container-state.twig
@@ -1,14 +1,14 @@
{# @var c \App\Containers\Container #}
- {% if c.GetRunningState().value == 'running' %}
-
- {{ c.GetDisplayName() }}
- (Running)
- {% elseif c.GetStartingState().value == 'starting' %}
+ {% if c.GetStartingState().value == 'starting' %}
{{ c.GetDisplayName() }}
(Starting)
+ {% elseif c.GetRunningState().value == 'running' %}
+
+ {{ c.GetDisplayName() }}
+ (Running)
{% else %}
{{ c.GetDisplayName() }}
From 113cd76c6a330f9cf45a1d25c1bb9c7d75efcba1 Mon Sep 17 00:00:00 2001
From: Zoey
Date: Sat, 8 Mar 2025 18:28:07 +0100
Subject: [PATCH 0128/1064] add workarround to NPMplus reverse proxy example to
fix collabora #6104
Signed-off-by: Zoey
---
reverse-proxy.md | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/reverse-proxy.md b/reverse-proxy.md
index 52f917a2..4d47f283 100644
--- a/reverse-proxy.md
+++ b/reverse-proxy.md
@@ -478,7 +478,9 @@ Second, see these screenshots for a working config:

-
+
+
+

From 47df5053c8dc7c176b73d00155593f329cfade3b Mon Sep 17 00:00:00 2001
From: Zoey
Date: Sat, 8 Mar 2025 18:30:29 +0100
Subject: [PATCH 0129/1064] Update reverse-proxy.md
Signed-off-by: Zoey
---
reverse-proxy.md | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/reverse-proxy.md b/reverse-proxy.md
index 4d47f283..a2b00abd 100644
--- a/reverse-proxy.md
+++ b/reverse-proxy.md
@@ -478,14 +478,16 @@ Second, see these screenshots for a working config:

-
+
-
+


+`proxy_set_header Accept-Encoding $http_accept_encoding;`
+
⚠️ **Please note:** Nextcloud will complain that X-XXS-Protection is set to the wrong value, this is intended by NPMplus.
⚠️ **Please note:** look into [this](#adapting-the-sample-web-server-configurations-below) to adapt the above example configuration.
From be0a738e8ce2569eefe99c8482ff478f2409dff6 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Wed, 12 Mar 2025 17:27:28 +0100
Subject: [PATCH 0130/1064] community-containers: add smb-server
Signed-off-by: Simon L.
---
community-containers/smbserver/readme.md | 15 +++++
community-containers/smbserver/smbserver.json | 60 +++++++++++++++++++
2 files changed, 75 insertions(+)
create mode 100644 community-containers/smbserver/readme.md
create mode 100644 community-containers/smbserver/smbserver.json
diff --git a/community-containers/smbserver/readme.md b/community-containers/smbserver/readme.md
new file mode 100644
index 00000000..d3380415
--- /dev/null
+++ b/community-containers/smbserver/readme.md
@@ -0,0 +1,15 @@
+## SMB-server
+This container bundles an SMB-server and allows to configure it via a graphical shell script.
+
+### Notes
+- This container should only be run in home networks
+- This container currently only works on amd64. See https://github.com/szaimen/aio-smbserver/issues/3
+- After adding and starting the container, you need to visit `https://internal.ip.of.server:5803` in order to log in with the `smbserver` user and the password that you can see next to the container in the AIO interface. (The web page uses a self-signed certificate, so you need to accept the warning). Then type in bash /smbserver.sh and you will see a graphical UI for configuring the smb-server interactively.
+- The config data of SMB-server will be automatically included in AIOs backup solution!
+- See https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers how to add it to the AIO stack
+
+### Repository
+https://github.com/szaimen/aio-smbserver/
+
+### Maintainer
+https://github.com/szaimen
diff --git a/community-containers/smbserver/smbserver.json b/community-containers/smbserver/smbserver.json
new file mode 100644
index 00000000..c6269134
--- /dev/null
+++ b/community-containers/smbserver/smbserver.json
@@ -0,0 +1,60 @@
+{
+ "aio_services_v1": [
+ {
+ "container_name": "nextcloud-aio-smbserver",
+ "display_name": "SMB-server",
+ "documentation": "https://github.com/nextcloud/all-in-one/tree/main/community-containers/smbserver",
+ "image": "szaimen/aio-smbserver",
+ "image_tag": "v1",
+ "internal_port": "5803",
+ "restart": "unless-stopped",
+ "ports": [
+ {
+ "ip_binding": "",
+ "port_number": "5803",
+ "protocol": "tcp"
+ },
+ {
+ "ip_binding": "",
+ "port_number": "445",
+ "protocol": "tcp"
+ },
+ {
+ "ip_binding": "",
+ "port_number": "139",
+ "protocol": "tcp"
+ }
+ ],
+ "volumes": [
+ {
+ "source": "nextcloud_aio_smbserver",
+ "destination": "/smbserver",
+ "writeable": true
+ },
+ {
+ "source": "%NEXTCLOUD_DATADIR%",
+ "destination": "/mnt/ncdata",
+ "writeable": true
+ },
+ {
+ "source": "%NEXTCLOUD_MOUNT%",
+ "destination": "/mnt",
+ "writeable": true
+ }
+ ],
+ "environment": [
+ "TZ=%TIMEZONE%",
+ "WEB_AUTHENTICATION_USERNAME=smbserver",
+ "WEB_AUTHENTICATION_PASSWORD=%SMBSERVER_PASSWORD%",
+ "WEB_LISTENING_PORT=5803"
+ ],
+ "secrets": [
+ "SMBSERVER_PASSWORD"
+ ],
+ "ui_secret": "SMBSERVER_PASSWORD",
+ "backup_volumes": [
+ "nextcloud_aio_smbserver"
+ ]
+ }
+ ]
+}
From a6246f954496db44ef62e452d87fa701dcaad2a1 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Wed, 12 Mar 2025 19:12:45 +0100
Subject: [PATCH 0131/1064] Improve small detail
Signed-off-by: Simon L.
---
community-containers/smbserver/readme.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/community-containers/smbserver/readme.md b/community-containers/smbserver/readme.md
index d3380415..9886f4b2 100644
--- a/community-containers/smbserver/readme.md
+++ b/community-containers/smbserver/readme.md
@@ -4,7 +4,7 @@ This container bundles an SMB-server and allows to configure it via a graphical
### Notes
- This container should only be run in home networks
- This container currently only works on amd64. See https://github.com/szaimen/aio-smbserver/issues/3
-- After adding and starting the container, you need to visit `https://internal.ip.of.server:5803` in order to log in with the `smbserver` user and the password that you can see next to the container in the AIO interface. (The web page uses a self-signed certificate, so you need to accept the warning). Then type in bash /smbserver.sh and you will see a graphical UI for configuring the smb-server interactively.
+- After adding and starting the container, you need to visit `https://internal.ip.of.server:5803` in order to log in with the `smbserver` user and the password that you can see next to the container in the AIO interface. (The web page uses a self-signed certificate, so you need to accept the warning). Then type in `bash /smbserver.sh` and you will see a graphical UI for configuring the smb-server interactively.
- The config data of SMB-server will be automatically included in AIOs backup solution!
- See https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers how to add it to the AIO stack
From e97d4b0a3e42ce4c1f37a711cb1de70b61c1dd47 Mon Sep 17 00:00:00 2001
From: Jean-Yves <7360784+docjyJ@users.noreply.github.com>
Date: Thu, 13 Mar 2025 12:55:18 +0100
Subject: [PATCH 0132/1064] Add support for ghcr.io (#6134)
Signed-off-by: Jean-Yves <7360784+docjyJ@users.noreply.github.com>
Signed-off-by: Simon L.
Co-authored-by: Simon L.
---
.../helloworld/helloworld.json | 12 ++
community-containers/helloworld/readme.md | 8 +
php/containers-schema.json | 2 +-
php/src/DependencyInjection.php | 9 +-
php/src/Docker/DockerActionManager.php | 193 +++++++++---------
.../Docker/GitHubContainerRegistryManager.php | 62 ++++++
6 files changed, 183 insertions(+), 103 deletions(-)
create mode 100644 community-containers/helloworld/helloworld.json
create mode 100644 community-containers/helloworld/readme.md
create mode 100644 php/src/Docker/GitHubContainerRegistryManager.php
diff --git a/community-containers/helloworld/helloworld.json b/community-containers/helloworld/helloworld.json
new file mode 100644
index 00000000..fed10008
--- /dev/null
+++ b/community-containers/helloworld/helloworld.json
@@ -0,0 +1,12 @@
+{
+ "aio_services_v1": [
+ {
+ "container_name": "nextcloud-aio-helloworld",
+ "display_name": "Hello world",
+ "documentation": "https://github.com/nextcloud/all-in-one/tree/main/community-containers/helloworld",
+ "image": "ghcr.io/docjyj/aio-helloworld",
+ "image_tag": "%AIO_CHANNEL%",
+ "restart": "unless-stopped"
+ }
+ ]
+}
diff --git a/community-containers/helloworld/readme.md b/community-containers/helloworld/readme.md
new file mode 100644
index 00000000..83c557ac
--- /dev/null
+++ b/community-containers/helloworld/readme.md
@@ -0,0 +1,8 @@
+## Hello World
+This container is a template for creating a community container.
+
+### Repository
+https://github.com/docjyj/aio-helloworld
+
+### Maintainer
+https://github.com/docjyj
diff --git a/php/containers-schema.json b/php/containers-schema.json
index 7a675e60..46782a33 100644
--- a/php/containers-schema.json
+++ b/php/containers-schema.json
@@ -15,7 +15,7 @@
"image": {
"type": "string",
"minLength": 1,
- "pattern": "^[a-z0-9/-]+$"
+ "pattern": "^(ghcr.io/)?[a-z0-9/-]+$"
},
"expose": {
"type": "array",
diff --git a/php/src/DependencyInjection.php b/php/src/DependencyInjection.php
index e37a0917..1fedada8 100644
--- a/php/src/DependencyInjection.php
+++ b/php/src/DependencyInjection.php
@@ -4,6 +4,7 @@ namespace AIO;
use AIO\Docker\DockerHubManager;
use DI\Container;
+use AIO\Docker\GitHubContainerRegistryManager;
class DependencyInjection
{
@@ -15,6 +16,11 @@ class DependencyInjection
new DockerHubManager()
);
+ $container->set(
+ GitHubContainerRegistryManager::class,
+ new GitHubContainerRegistryManager()
+ );
+
$container->set(
\AIO\Data\ConfigurationManager::class,
new \AIO\Data\ConfigurationManager()
@@ -24,7 +30,8 @@ class DependencyInjection
new \AIO\Docker\DockerActionManager(
$container->get(\AIO\Data\ConfigurationManager::class),
$container->get(\AIO\ContainerDefinitionFetcher::class),
- $container->get(DockerHubManager::class)
+ $container->get(DockerHubManager::class),
+ $container->get(GitHubContainerRegistryManager::class)
)
);
$container->set(
diff --git a/php/src/Docker/DockerActionManager.php b/php/src/Docker/DockerActionManager.php
index 48903d54..643b0f0e 100644
--- a/php/src/Docker/DockerActionManager.php
+++ b/php/src/Docker/DockerActionManager.php
@@ -3,12 +3,12 @@
namespace AIO\Docker;
use AIO\Container\Container;
-use AIO\Container\VersionState;
use AIO\Container\ContainerState;
+use AIO\Container\VersionState;
+use AIO\ContainerDefinitionFetcher;
use AIO\Data\ConfigurationManager;
use GuzzleHttp\Client;
use GuzzleHttp\Exception\RequestException;
-use AIO\ContainerDefinitionFetcher;
use http\Env\Response;
readonly class DockerActionManager {
@@ -16,18 +16,19 @@ readonly class DockerActionManager {
private Client $guzzleClient;
public function __construct(
- private ConfigurationManager $configurationManager,
- private ContainerDefinitionFetcher $containerDefinitionFetcher,
- private DockerHubManager $dockerHubManager
+ private ConfigurationManager $configurationManager,
+ private ContainerDefinitionFetcher $containerDefinitionFetcher,
+ private DockerHubManager $dockerHubManager,
+ private GitHubContainerRegistryManager $gitHubContainerRegistryManager
) {
$this->guzzleClient = new Client(['curl' => [CURLOPT_UNIX_SOCKET_PATH => '/var/run/docker.sock']]);
}
- private function BuildApiUrl(string $url) : string {
+ private function BuildApiUrl(string $url): string {
return sprintf('http://127.0.0.1/%s/%s', self::API_VERSION, $url);
}
- private function BuildImageName(Container $container) : string {
+ private function BuildImageName(Container $container): string {
$tag = $container->GetImageTag();
if ($tag === '%AIO_CHANNEL%') {
$tag = $this->GetCurrentChannel();
@@ -35,8 +36,7 @@ readonly class DockerActionManager {
return $container->GetContainerName() . ':' . $tag;
}
- public function GetContainerRunningState(Container $container) : ContainerState
- {
+ public function GetContainerRunningState(Container $container): ContainerState {
$url = $this->BuildApiUrl(sprintf('containers/%s/json', urlencode($container->GetIdentifier())));
try {
$response = $this->guzzleClient->get($url);
@@ -56,8 +56,7 @@ readonly class DockerActionManager {
}
}
- public function GetContainerRestartingState(Container $container) : ContainerState
- {
+ public function GetContainerRestartingState(Container $container): ContainerState {
$url = $this->BuildApiUrl(sprintf('containers/%s/json', urlencode($container->GetIdentifier())));
try {
$response = $this->guzzleClient->get($url);
@@ -77,8 +76,7 @@ readonly class DockerActionManager {
}
}
- public function GetContainerUpdateState(Container $container) : VersionState
- {
+ public function GetContainerUpdateState(Container $container): VersionState {
$tag = $container->GetImageTag();
if ($tag === '%AIO_CHANNEL%') {
$tag = $this->GetCurrentChannel();
@@ -88,12 +86,12 @@ readonly class DockerActionManager {
if ($runningDigests === null) {
return VersionState::Different;
}
- $remoteDigest = $this->dockerHubManager->GetLatestDigestOfTag($container->GetContainerName(), $tag);
+ $remoteDigest = $this->GetLatestDigestOfTag($container->GetContainerName(), $tag);
if ($remoteDigest === null) {
return VersionState::Equal;
}
- foreach($runningDigests as $runningDigest) {
+ foreach ($runningDigests as $runningDigest) {
if ($runningDigest === $remoteDigest) {
return VersionState::Equal;
}
@@ -101,8 +99,7 @@ readonly class DockerActionManager {
return VersionState::Different;
}
- public function GetContainerStartingState(Container $container) : ContainerState
- {
+ public function GetContainerStartingState(Container $container): ContainerState {
$runningState = $this->GetContainerRunningState($container);
if ($runningState === ContainerState::Stopped || $runningState === ContainerState::ImageDoesNotExist) {
return $runningState;
@@ -110,9 +107,9 @@ readonly class DockerActionManager {
$containerName = $container->GetIdentifier();
$internalPort = $container->GetInternalPort();
- if($internalPort === '%APACHE_PORT%') {
+ if ($internalPort === '%APACHE_PORT%') {
$internalPort = $this->configurationManager->GetApachePort();
- } elseif($internalPort === '%TALK_PORT%') {
+ } elseif ($internalPort === '%TALK_PORT%') {
$internalPort = $this->configurationManager->GetTalkPort();
}
@@ -129,7 +126,7 @@ readonly class DockerActionManager {
}
}
- public function DeleteContainer(Container $container) : void {
+ public function DeleteContainer(Container $container): void {
$url = $this->BuildApiUrl(sprintf('containers/%s?v=true', urlencode($container->GetIdentifier())));
try {
$this->guzzleClient->delete($url);
@@ -140,8 +137,7 @@ readonly class DockerActionManager {
}
}
- public function GetLogs(string $id) : string
- {
+ public function GetLogs(string $id): string {
$url = $this->BuildApiUrl(
sprintf(
'containers/%s/logs?stdout=true&stderr=true×tamps=true',
@@ -162,7 +158,7 @@ readonly class DockerActionManager {
return $response;
}
- public function StartContainer(Container $container) : void {
+ public function StartContainer(Container $container): void {
$url = $this->BuildApiUrl(sprintf('containers/%s/start', urlencode($container->GetIdentifier())));
try {
$this->guzzleClient->post($url);
@@ -171,10 +167,9 @@ readonly class DockerActionManager {
}
}
- public function CreateVolumes(Container $container): void
- {
+ public function CreateVolumes(Container $container): void {
$url = $this->BuildApiUrl('volumes/create');
- foreach($container->GetVolumes()->GetVolumes() as $volume) {
+ foreach ($container->GetVolumes()->GetVolumes() as $volume) {
$forbiddenChars = [
'/',
];
@@ -184,7 +179,7 @@ readonly class DockerActionManager {
}
$firstChar = substr($volume->name, 0, 1);
- if(!in_array($firstChar, $forbiddenChars)) {
+ if (!in_array($firstChar, $forbiddenChars)) {
$this->guzzleClient->request(
'POST',
$url,
@@ -198,7 +193,7 @@ readonly class DockerActionManager {
}
}
- public function CreateContainer(Container $container) : void {
+ public function CreateContainer(Container $container): void {
$volumes = [];
foreach ($container->GetVolumes()->GetVolumes() as $volume) {
// // NEXTCLOUD_MOUNT gets added via bind-mount later on
@@ -226,12 +221,12 @@ readonly class DockerActionManager {
$requestBody['HostConfig']['Binds'] = $volumes;
}
- foreach($container->GetSecrets() as $secret) {
+ foreach ($container->GetSecrets() as $secret) {
$this->configurationManager->GetAndGenerateSecret($secret);
}
$aioVariables = $container->GetAioVariables()->GetVariables();
- foreach($aioVariables as $variable) {
+ foreach ($aioVariables as $variable) {
$config = $this->configurationManager->GetConfig();
$variableArray = explode('=', $variable);
$config[$variableArray[0]] = $variableArray[1];
@@ -244,7 +239,7 @@ readonly class DockerActionManager {
if ($container->GetIdentifier() === 'nextcloud-aio-nextcloud') {
$envs[] = $this->GetAllNextcloudExecCommands();
}
- foreach($envs as $key => $env) {
+ foreach ($envs as $key => $env) {
// TODO: This whole block below is a hack and needs to get reworked in order to support multiple substitutions per line by default for all envs
if (str_starts_with($env, 'extra_params=')) {
$env = str_replace('%COLLABORA_SECCOMP_POLICY%', $this->configurationManager->GetCollaboraSeccompPolicy(), $env);
@@ -256,12 +251,12 @@ readonly class DockerActionManager {
// Original implementation
$patterns = ['/%(.*)%/'];
- if(preg_match($patterns[0], $env, $out) === 1) {
+ if (preg_match($patterns[0], $env, $out) === 1) {
$replacements = array();
- if($out[1] === 'NC_DOMAIN') {
+ if ($out[1] === 'NC_DOMAIN') {
$replacements[1] = $this->configurationManager->GetDomain();
- } elseif($out[1] === 'NC_BASE_DN') {
+ } elseif ($out[1] === 'NC_BASE_DN') {
$replacements[1] = $this->configurationManager->GetBaseDN();
} elseif ($out[1] === 'AIO_TOKEN') {
$replacements[1] = $this->configurationManager->GetToken();
@@ -391,10 +386,10 @@ readonly class DockerActionManager {
} else {
$replacements[1] = '';
}
- // Allow to get local ip-address of database container which allows to talk to it even in host mode (the container that requires this needs to be started first then)
+ // Allow to get local ip-address of database container which allows to talk to it even in host mode (the container that requires this needs to be started first then)
} elseif ($out[1] === 'AIO_DATABASE_HOST') {
$replacements[1] = gethostbyname('nextcloud-aio-database');
- // Allow to get local ip-address of caddy container and add it to trusted proxies automatically
+ // Allow to get local ip-address of caddy container and add it to trusted proxies automatically
} elseif ($out[1] === 'CADDY_IP_ADDRESS') {
$replacements[1] = '';
$communityContainers = $this->configurationManager->GetEnabledCommunityContainers();
@@ -419,7 +414,7 @@ readonly class DockerActionManager {
}
}
- if(count($envs) > 0) {
+ if (count($envs) > 0) {
$requestBody['Env'] = $envs;
}
@@ -429,7 +424,7 @@ readonly class DockerActionManager {
$exposedPorts = [];
if ($container->GetInternalPort() !== 'host') {
- foreach($container->GetPorts()->GetPorts() as $value) {
+ foreach ($container->GetPorts()->GetPorts() as $value) {
$port = $value->port;
$protocol = $value->protocol;
if ($port === '%APACHE_PORT%') {
@@ -449,7 +444,7 @@ readonly class DockerActionManager {
$requestBody['HostConfig']['NetworkMode'] = 'host';
}
- if(count($exposedPorts) > 0) {
+ if (count($exposedPorts) > 0) {
$requestBody['ExposedPorts'] = $exposedPorts;
foreach ($container->GetPorts()->GetPorts() as $value) {
$port = $value->port;
@@ -474,16 +469,16 @@ readonly class DockerActionManager {
$portWithProtocol = $port . '/' . $protocol;
$requestBody['HostConfig']['PortBindings'][$portWithProtocol] = [
[
- 'HostPort' => $port,
- 'HostIp' => $ipBinding,
+ 'HostPort' => $port,
+ 'HostIp' => $ipBinding,
]
];
}
}
$devices = [];
- foreach($container->GetDevices() as $device) {
- if ($device === '/dev/dri' && ! $this->configurationManager->isDriDeviceEnabled()) {
+ foreach ($container->GetDevices() as $device) {
+ if ($device === '/dev/dri' && !$this->configurationManager->isDriDeviceEnabled()) {
continue;
}
$devices[] = ["PathOnHost" => $device, "PathInContainer" => $device, "CgroupPermissions" => "rwm"];
@@ -510,7 +505,7 @@ readonly class DockerActionManager {
}
$tmpfs = [];
- foreach($container->GetTmpfs() as $tmp) {
+ foreach ($container->GetTmpfs() as $tmp) {
$mode = "";
if (str_contains($tmp, ':')) {
$mode = explode(':', $tmp)[1];
@@ -519,7 +514,7 @@ readonly class DockerActionManager {
$tmpfs[$tmp] = $mode;
}
if (count($tmpfs) > 0) {
- $requestBody['HostConfig']['Tmpfs'] = $tmpfs;
+ $requestBody['HostConfig']['Tmpfs'] = $tmpfs;
}
$requestBody['HostConfig']['Init'] = $container->GetInit();
@@ -563,22 +558,22 @@ readonly class DockerActionManager {
}
}
}
- // Special things for the talk container which should not be exposed in the containers.json
+ // Special things for the talk container which should not be exposed in the containers.json
} elseif ($container->GetIdentifier() === 'nextcloud-aio-talk') {
// This is needed due to a bug in libwebsockets which cannot handle unlimited ulimits
$requestBody['HostConfig']['Ulimits'] = [["Name" => "nofile", "Hard" => 200000, "Soft" => 200000]];
- // // Special things for the nextcloud container which should not be exposed in the containers.json
- // } elseif ($container->GetIdentifier() === 'nextcloud-aio-nextcloud') {
- // foreach ($container->GetVolumes()->GetVolumes() as $volume) {
- // if ($volume->name !== $this->configurationManager->GetNextcloudMount()) {
- // continue;
- // }
- // $mounts[] = ["Type" => "bind", "Source" => $volume->name, "Target" => $volume->mountPoint, "ReadOnly" => !$volume->isWritable, "BindOptions" => [ "Propagation" => "rshared"]];
- // }
- // Special things for the caddy community container
+ // // Special things for the nextcloud container which should not be exposed in the containers.json
+ // } elseif ($container->GetIdentifier() === 'nextcloud-aio-nextcloud') {
+ // foreach ($container->GetVolumes()->GetVolumes() as $volume) {
+ // if ($volume->name !== $this->configurationManager->GetNextcloudMount()) {
+ // continue;
+ // }
+ // $mounts[] = ["Type" => "bind", "Source" => $volume->name, "Target" => $volume->mountPoint, "ReadOnly" => !$volume->isWritable, "BindOptions" => [ "Propagation" => "rshared"]];
+ // }
+ // Special things for the caddy community container
} elseif ($container->GetIdentifier() === 'nextcloud-aio-caddy') {
$requestBody['HostConfig']['ExtraHosts'] = ['host.docker.internal:host-gateway'];
- // Special things for the collabora container which should not be exposed in the containers.json
+ // Special things for the collabora container which should not be exposed in the containers.json
} elseif ($container->GetIdentifier() === 'nextcloud-aio-collabora') {
if ($this->configurationManager->GetAdditionalCollaboraOptions() !== '') {
$requestBody['Cmd'] = [$this->configurationManager->GetAdditionalCollaboraOptions()];
@@ -604,13 +599,13 @@ readonly class DockerActionManager {
}
- public function isDockerHubReachable(Container $container) : bool {
+ public function isDockerHubReachable(Container $container): bool {
$tag = $container->GetImageTag();
if ($tag === '%AIO_CHANNEL%') {
$tag = $this->GetCurrentChannel();
}
- $remoteDigest = $this->dockerHubManager->GetLatestDigestOfTag($container->GetContainerName(), $tag);
+ $remoteDigest = $this->GetLatestDigestOfTag($container->GetContainerName(), $tag);
if ($remoteDigest === null) {
return false;
@@ -619,8 +614,7 @@ readonly class DockerActionManager {
}
}
- public function PullImage(Container $container) : void
- {
+ public function PullImage(Container $container): void {
$imageName = $this->BuildImageName($container);
$encodedImageName = urlencode($imageName);
$url = $this->BuildApiUrl(sprintf('images/create?fromImage=%s', $encodedImageName));
@@ -643,8 +637,7 @@ readonly class DockerActionManager {
}
}
- private function isContainerUpdateAvailable(string $id) : string
- {
+ private function isContainerUpdateAvailable(string $id): string {
$container = $this->containerDefinitionFetcher->GetContainerById($id);
$updateAvailable = "";
@@ -657,7 +650,7 @@ readonly class DockerActionManager {
return $updateAvailable;
}
- public function isAnyUpdateAvailable() : bool {
+ public function isAnyUpdateAvailable(): bool {
// return early if instance is not installed
if (!$this->configurationManager->wasStartButtonClicked()) {
return false;
@@ -671,8 +664,7 @@ readonly class DockerActionManager {
}
}
- private function getBackupVolumes(string $id) : string
- {
+ private function getBackupVolumes(string $id): string {
$container = $this->containerDefinitionFetcher->GetContainerById($id);
$backupVolumes = '';
@@ -685,14 +677,13 @@ readonly class DockerActionManager {
return $backupVolumes;
}
- private function getAllBackupVolumes() : array {
+ private function getAllBackupVolumes(): array {
$id = 'nextcloud-aio-apache';
$backupVolumesArray = explode(' ', $this->getBackupVolumes($id));
return array_unique($backupVolumesArray);
}
- private function GetNextcloudExecCommands(string $id) : string
- {
+ private function GetNextcloudExecCommands(string $id): string {
$container = $this->containerDefinitionFetcher->GetContainerById($id);
$nextcloudExecCommands = '';
@@ -705,13 +696,12 @@ readonly class DockerActionManager {
return $nextcloudExecCommands;
}
- private function GetAllNextcloudExecCommands() : string
- {
+ private function GetAllNextcloudExecCommands(): string {
$id = 'nextcloud-aio-apache';
return 'NEXTCLOUD_EXEC_COMMANDS=' . $this->GetNextcloudExecCommands($id);
}
- private function GetRepoDigestsOfContainer(string $containerName) : ?array {
+ private function GetRepoDigestsOfContainer(string $containerName): ?array {
try {
$containerUrl = $this->BuildApiUrl(sprintf('containers/%s/json', $containerName));
$containerOutput = json_decode($this->guzzleClient->get($containerUrl)->getBody()->getContents(), true);
@@ -732,7 +722,7 @@ readonly class DockerActionManager {
$repoDigestArray = [];
$oneDigestGiven = false;
- foreach($imageOutput['RepoDigests'] as $repoDigest) {
+ foreach ($imageOutput['RepoDigests'] as $repoDigest) {
$digestPosition = strpos($repoDigest, '@');
if ($digestPosition === false) {
error_log('Somehow the RepoDigest of ' . $containerName . ' does not contain a @.');
@@ -752,10 +742,10 @@ readonly class DockerActionManager {
}
}
- public function GetCurrentChannel() : string {
+ public function GetCurrentChannel(): string {
$cacheKey = 'aio-ChannelName';
$channelName = apcu_fetch($cacheKey);
- if($channelName !== false && is_string($channelName)) {
+ if ($channelName !== false && is_string($channelName)) {
return $channelName;
}
@@ -765,7 +755,7 @@ readonly class DockerActionManager {
$output = json_decode($this->guzzleClient->get($url)->getBody()->getContents(), true);
$containerChecksum = $output['Image'];
$tagArray = explode(':', $output['Config']['Image']);
- if (count($tagArray) === 2) {
+ if (count($tagArray) === 2) {
$tag = $tagArray[1];
} else {
error_log("No tag was found when getting the current channel. You probably did not follow the documentation correctly. Changing the channel to the default 'latest'.");
@@ -780,8 +770,7 @@ readonly class DockerActionManager {
return 'latest';
}
- public function IsMastercontainerUpdateAvailable() : bool
- {
+ public function IsMastercontainerUpdateAvailable(): bool {
$imageName = 'nextcloud/all-in-one';
$containerName = 'nextcloud-aio-mastercontainer';
@@ -791,7 +780,7 @@ readonly class DockerActionManager {
if ($runningDigests === null) {
return true;
}
- $remoteDigest = $this->dockerHubManager->GetLatestDigestOfTag($imageName, $tag);
+ $remoteDigest = $this->GetLatestDigestOfTag($imageName, $tag);
if ($remoteDigest === null) {
return false;
}
@@ -804,8 +793,7 @@ readonly class DockerActionManager {
return true;
}
- public function sendNotification(Container $container, string $subject, string $message, string $file = '/notify.sh') : void
- {
+ public function sendNotification(Container $container, string $subject, string $message, string $file = '/notify.sh'): void {
if ($this->GetContainerStartingState($container) === ContainerState::Running) {
$containerName = $container->GetIdentifier();
@@ -849,8 +837,7 @@ readonly class DockerActionManager {
}
}
- private function DisconnectContainerFromBridgeNetwork(string $id) : void
- {
+ private function DisconnectContainerFromBridgeNetwork(string $id): void {
$url = $this->BuildApiUrl(
sprintf('networks/%s/disconnect', 'bridge')
@@ -870,8 +857,7 @@ readonly class DockerActionManager {
}
}
- private function ConnectContainerIdToNetwork(string $id, string $internalPort, string $network = 'nextcloud-aio', bool $createNetwork = true, string $alias = '') : void
- {
+ private function ConnectContainerIdToNetwork(string $id, string $internalPort, string $network = 'nextcloud-aio', bool $createNetwork = true, string $alias = ''): void {
if ($internalPort === 'host') {
return;
}
@@ -902,9 +888,9 @@ readonly class DockerActionManager {
$url = $this->BuildApiUrl(
sprintf('networks/%s/connect', $network)
);
- $jsonPayload = [ 'Container' => $id ];
- if ($alias !== '' ) {
- $jsonPayload['EndpointConfig'] = ['Aliases' => [ $alias ]];
+ $jsonPayload = ['Container' => $id];
+ if ($alias !== '') {
+ $jsonPayload['EndpointConfig'] = ['Aliases' => [$alias]];
}
try {
@@ -923,15 +909,13 @@ readonly class DockerActionManager {
}
}
- public function ConnectMasterContainerToNetwork() : void
- {
+ public function ConnectMasterContainerToNetwork(): void {
$this->ConnectContainerIdToNetwork('nextcloud-aio-mastercontainer', '');
// Don't disconnect here since it slows down the initial login by a lot. Is getting done during cron.sh instead.
// $this->DisconnectContainerFromBridgeNetwork('nextcloud-aio-mastercontainer');
}
- public function ConnectContainerToNetwork(Container $container) : void
- {
+ public function ConnectContainerToNetwork(Container $container): void {
// Add a secondary alias for domaincheck container, to keep it as similar to actual apache controller as possible.
// If a reverse-proxy is relying on container name as hostname this allows it to operate as usual and still validate the domain
// The domaincheck container and apache container are never supposed to be active at the same time because they use the same APACHE_PORT anyway, so this doesn't add any new constraints.
@@ -947,7 +931,7 @@ readonly class DockerActionManager {
}
}
- public function StopContainer(Container $container) : void {
+ public function StopContainer(Container $container): void {
$url = $this->BuildApiUrl(sprintf('containers/%s/stop?t=%s', urlencode($container->GetIdentifier()), $container->GetMaxShutdownTime()));
try {
$this->guzzleClient->post($url);
@@ -958,8 +942,7 @@ readonly class DockerActionManager {
}
}
- public function GetBackupcontainerExitCode() : int
- {
+ public function GetBackupcontainerExitCode(): int {
$containerName = 'nextcloud-aio-borgbackup';
$url = $this->BuildApiUrl(sprintf('containers/%s/json', urlencode($containerName)));
try {
@@ -981,8 +964,7 @@ readonly class DockerActionManager {
}
}
- public function GetDatabasecontainerExitCode() : int
- {
+ public function GetDatabasecontainerExitCode(): int {
$containerName = 'nextcloud-aio-database';
$url = $this->BuildApiUrl(sprintf('containers/%s/json', urlencode($containerName)));
try {
@@ -1004,7 +986,7 @@ readonly class DockerActionManager {
}
}
- public function isLoginAllowed() : bool {
+ public function isLoginAllowed(): bool {
$id = 'nextcloud-aio-apache';
$apacheContainer = $this->containerDefinitionFetcher->GetContainerById($id);
if ($this->GetContainerStartingState($apacheContainer) === ContainerState::Running) {
@@ -1013,7 +995,7 @@ readonly class DockerActionManager {
return true;
}
- public function isBackupContainerRunning() : bool {
+ public function isBackupContainerRunning(): bool {
$id = 'nextcloud-aio-borgbackup';
$backupContainer = $this->containerDefinitionFetcher->GetContainerById($id);
if ($this->GetContainerRunningState($backupContainer) === ContainerState::Running) {
@@ -1022,7 +1004,7 @@ readonly class DockerActionManager {
return false;
}
- private function GetCreatedTimeOfNextcloudImage() : ?string {
+ private function GetCreatedTimeOfNextcloudImage(): ?string {
$imageName = 'nextcloud/aio-nextcloud' . ':' . $this->GetCurrentChannel();
try {
$imageUrl = $this->BuildApiUrl(sprintf('images/%s/json', $imageName));
@@ -1039,11 +1021,11 @@ readonly class DockerActionManager {
}
}
- public function GetAndGenerateSecretWrapper(string $secretId) : string {
+ public function GetAndGenerateSecretWrapper(string $secretId): string {
return $this->configurationManager->GetAndGenerateSecret($secretId);
}
- public function isNextcloudImageOutdated() : bool {
+ public function isNextcloudImageOutdated(): bool {
$createdTime = $this->GetCreatedTimeOfNextcloudImage();
if ($createdTime === null) {
@@ -1057,4 +1039,13 @@ readonly class DockerActionManager {
return false;
}
+
+ public function GetLatestDigestOfTag(string $imageName, string $tag): ?string {
+ $prefix = 'ghcr.io/';
+ if (str_starts_with($imageName, $prefix)) {
+ return $this->gitHubContainerRegistryManager->GetLatestDigestOfTag(str_replace($prefix, '', $imageName), $tag);
+ } else {
+ return $this->dockerHubManager->GetLatestDigestOfTag($imageName, $tag);
+ }
+ }
}
diff --git a/php/src/Docker/GitHubContainerRegistryManager.php b/php/src/Docker/GitHubContainerRegistryManager.php
new file mode 100644
index 00000000..d885ae09
--- /dev/null
+++ b/php/src/Docker/GitHubContainerRegistryManager.php
@@ -0,0 +1,62 @@
+guzzleClient = new Client();
+ }
+
+ public function GetLatestDigestOfTag(string $name, string $tag): ?string
+ {
+ $cacheKey = 'ghcr-manifest-' . $name . $tag;
+
+ $cachedVersion = apcu_fetch($cacheKey);
+ if ($cachedVersion !== false && is_string($cachedVersion)) {
+ return $cachedVersion;
+ }
+
+ // If one of the links below should ever become outdated, we can still upgrade the mastercontainer via the webinterface manually by opening '/api/docker/getwatchtower'
+
+ try {
+ $authTokenRequest = $this->guzzleClient->request(
+ 'GET',
+ 'https://ghcr.io/token?scope=repository:' . $name . ':pull'
+ );
+ $body = $authTokenRequest->getBody()->getContents();
+ $decodedBody = json_decode($body, true);
+ if (isset($decodedBody['token'])) {
+ $authToken = $decodedBody['token'];
+ $manifestRequest = $this->guzzleClient->request(
+ 'HEAD',
+ 'https://ghcr.io/v2/' . $name . '/manifests/' . $tag,
+ [
+ 'headers' => [
+ 'Accept' => 'application/vnd.oci.image.index.v1+json,application/vnd.docker.distribution.manifest.list.v2+json,application/vnd.docker.distribution.manifest.v2+json',
+ 'Authorization' => 'Bearer ' . $authToken,
+ ],
+ ]
+ );
+ $responseHeaders = $manifestRequest->getHeader('docker-content-digest');
+ if (count($responseHeaders) === 1) {
+ $latestVersion = $responseHeaders[0];
+ apcu_add($cacheKey, $latestVersion, 600);
+ return $latestVersion;
+ }
+ }
+
+ error_log('Could not get digest of container ' . $name . ':' . $tag);
+ return null;
+ } catch (\Exception $e) {
+ error_log('Could not get digest of container ' . $name . ':' . $tag . ' ' . $e->getMessage());
+ return null;
+ }
+ }
+}
From 016dde1e47751cba0b823d6ec6fcfbf9371f5986 Mon Sep 17 00:00:00 2001
From: Jean-Yves <7360784+docjyJ@users.noreply.github.com>
Date: Thu, 13 Mar 2025 13:02:19 +0100
Subject: [PATCH 0133/1064] Update docjyJ's community container images (#6157)
Signed-off-by: Jean-Yves <7360784+docjyJ@users.noreply.github.com>
---
community-containers/nocodb/nocodb.json | 4 ++--
community-containers/nocodb/readme.md | 2 +-
community-containers/stalwart/stalwart.json | 2 +-
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/community-containers/nocodb/nocodb.json b/community-containers/nocodb/nocodb.json
index a5d56e13..7ef4cc5c 100644
--- a/community-containers/nocodb/nocodb.json
+++ b/community-containers/nocodb/nocodb.json
@@ -4,8 +4,8 @@
"container_name": "nextcloud-aio-nocodb",
"display_name": "NocoDB",
"documentation": "https://github.com/nextcloud/all-in-one/tree/main/community-containers/nocodb",
- "image": "docjyj/aio-nocodb",
- "image_tag": "%AIO_CHANNEL%",
+ "image": "nocodb/nocodb",
+ "image_tag": "latest",
"internal_port": "10028",
"restart": "unless-stopped",
"ports": [
diff --git a/community-containers/nocodb/readme.md b/community-containers/nocodb/readme.md
index 748c8585..4c1281b5 100644
--- a/community-containers/nocodb/readme.md
+++ b/community-containers/nocodb/readme.md
@@ -22,7 +22,7 @@ This is an alternative of **Airtable**.
- See https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers how to add it to the AIO stack
### Repository
-https://github.com/docjyJ/aio-nocodb
+https://github.com/nocodb/nocodb
### Maintainer
https://github.com/docjyJ
diff --git a/community-containers/stalwart/stalwart.json b/community-containers/stalwart/stalwart.json
index 7858327c..1a5ffd41 100644
--- a/community-containers/stalwart/stalwart.json
+++ b/community-containers/stalwart/stalwart.json
@@ -4,7 +4,7 @@
"container_name": "nextcloud-aio-stalwart",
"display_name": "Stalwart",
"documentation": "https://github.com/nextcloud/all-in-one/tree/main/community-containers/stalwart",
- "image": "docjyj/aio-stalwart",
+ "image": "ghcr.io/docjyj/aio-stalwart",
"image_tag": "%AIO_CHANNEL%",
"internal_port": "10003",
"restart": "unless-stopped",
From af4700d86321cfaecafcf9c202f3df30a96cc697 Mon Sep 17 00:00:00 2001
From: Zoey
Date: Thu, 13 Mar 2025 15:38:04 +0100
Subject: [PATCH 0134/1064] pull npmplus from ghcr
Signed-off-by: Zoey
---
community-containers/npmplus/npmplus.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/community-containers/npmplus/npmplus.json b/community-containers/npmplus/npmplus.json
index 24f1c381..4b666c03 100644
--- a/community-containers/npmplus/npmplus.json
+++ b/community-containers/npmplus/npmplus.json
@@ -4,7 +4,7 @@
"container_name": "nextcloud-aio-npmplus",
"display_name": "NPMplus",
"documentation": "https://github.com/nextcloud/all-in-one/tree/main/community-containers/npmplus",
- "image": "zoeyvid/npmplus",
+ "image": "ghcr.io/zoeyvid/npmplus",
"image_tag": "latest",
"internal_port": "host",
"restart": "unless-stopped",
From 4b644d2fe7ab4e4b3902867a1801f4e4a3ff725a Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Thu, 13 Mar 2025 17:02:19 +0100
Subject: [PATCH 0135/1064] update Nextcloud to 30.0.7
Signed-off-by: Simon L.
---
Containers/nextcloud/Dockerfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Containers/nextcloud/Dockerfile b/Containers/nextcloud/Dockerfile
index 9af52cd8..1c74e213 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=30.0.6
+ENV NEXTCLOUD_VERSION=30.0.7
ENV AIO_TOKEN=123456
ENV AIO_URL=localhost
# AIO settings end # Do not remove or change this line!
From 36dc60e9d212c4b33409c5c78cec03403a4e677f Mon Sep 17 00:00:00 2001
From: Jean-Yves <7360784+docjyJ@users.noreply.github.com>
Date: Thu, 13 Mar 2025 17:45:35 +0100
Subject: [PATCH 0136/1064] Update stalwart.json
Signed-off-by: Jean-Yves <7360784+docjyJ@users.noreply.github.com>
---
community-containers/stalwart/stalwart.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/community-containers/stalwart/stalwart.json b/community-containers/stalwart/stalwart.json
index 1a5ffd41..e2061688 100644
--- a/community-containers/stalwart/stalwart.json
+++ b/community-containers/stalwart/stalwart.json
@@ -5,7 +5,7 @@
"display_name": "Stalwart",
"documentation": "https://github.com/nextcloud/all-in-one/tree/main/community-containers/stalwart",
"image": "ghcr.io/docjyj/aio-stalwart",
- "image_tag": "%AIO_CHANNEL%",
+ "image_tag": "v3",
"internal_port": "10003",
"restart": "unless-stopped",
"ports": [
From 5004a46e2a251d738f57a80ef435f8efeedecc65 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Fri, 14 Mar 2025 04:43:29 +0000
Subject: [PATCH 0137/1064] build(deps): bump collabora/code in
/Containers/collabora
Bumps collabora/code from 24.04.12.4.1 to 24.04.13.2.1.
---
updated-dependencies:
- dependency-name: collabora/code
dependency-type: direct:production
...
Signed-off-by: dependabot[bot]
---
Containers/collabora/Dockerfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Containers/collabora/Dockerfile b/Containers/collabora/Dockerfile
index e9ca4d01..d9c487a4 100644
--- a/Containers/collabora/Dockerfile
+++ b/Containers/collabora/Dockerfile
@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:latest
# From a file located probably somewhere here: https://github.com/CollaboraOnline/online/tree/master/docker
-FROM collabora/code:24.04.12.4.1
+FROM collabora/code:24.04.13.2.1
USER root
ARG DEBIAN_FRONTEND=noninteractive
From 8fe6821038fb1a2a53111d54524be4956cc2d7b8 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Fri, 14 Mar 2025 04:43:55 +0000
Subject: [PATCH 0138/1064] build(deps): bump php in
/Containers/mastercontainer
Bumps php from 8.3.17-fpm-alpine3.21 to 8.3.19-fpm-alpine3.21.
---
updated-dependencies:
- dependency-name: php
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 6379ba85..dca0a070 100644
--- a/Containers/mastercontainer/Dockerfile
+++ b/Containers/mastercontainer/Dockerfile
@@ -6,7 +6,7 @@ FROM docker:28.0.1-cli AS docker
FROM caddy:2.9.1-alpine AS caddy
# From https://github.com/docker-library/php/blob/master/8.3/alpine3.21/fpm/Dockerfile
-FROM php:8.3.17-fpm-alpine3.21
+FROM php:8.3.19-fpm-alpine3.21
EXPOSE 80
EXPOSE 8080
From fbb71586e8a7f6c2359dba0e7305b5290d4d22bf Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Fri, 14 Mar 2025 04:44:11 +0000
Subject: [PATCH 0139/1064] build(deps): bump php in /Containers/nextcloud
Bumps php from 8.3.17-fpm-alpine3.21 to 8.3.19-fpm-alpine3.21.
---
updated-dependencies:
- dependency-name: php
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 1c74e213..0f86cde2 100644
--- a/Containers/nextcloud/Dockerfile
+++ b/Containers/nextcloud/Dockerfile
@@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest
-FROM php:8.3.17-fpm-alpine3.21
+FROM php:8.3.19-fpm-alpine3.21
ENV PHP_MEMORY_LIMIT=512M
ENV PHP_UPLOAD_LIMIT=16G
From d164eea1ee84e57842c5a1c2dcd717ff43bb4df7 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Sun, 16 Mar 2025 14:05:12 +0100
Subject: [PATCH 0140/1064] nextcloud-entrypoint: output error message if touch
failed
Signed-off-by: Simon L.
---
Containers/nextcloud/entrypoint.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Containers/nextcloud/entrypoint.sh b/Containers/nextcloud/entrypoint.sh
index c97a56f9..e8992086 100644
--- a/Containers/nextcloud/entrypoint.sh
+++ b/Containers/nextcloud/entrypoint.sh
@@ -33,7 +33,7 @@ while ! nc -z "$REDIS_HOST" "6379"; do
done
# Check permissions in ncdata
-touch "$NEXTCLOUD_DATA_DIR/this-is-a-test-file" &>/dev/null
+touch "$NEXTCLOUD_DATA_DIR/this-is-a-test-file"
if ! [ -f "$NEXTCLOUD_DATA_DIR/this-is-a-test-file" ]; then
echo "The www-data user doesn't seem to have access rights in the datadir.
Most likely are the files located on a drive that does not follow linux permissions.
From 63d9343972cba7974f07dc15455e27a9b687aaea Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Mon, 17 Mar 2025 11:15:23 +0100
Subject: [PATCH 0141/1064] update Github Actions to use commit hashes for 3rd
party actions instead of version tags
Signed-off-by: Simon L.
---
.github/workflows/codespell.yml | 2 +-
.github/workflows/dependency-updates.yml | 4 ++--
.github/workflows/helm-release.yml | 6 +++---
.github/workflows/imaginary-update.yml | 2 +-
.github/workflows/lint-helm.yml | 2 +-
.github/workflows/lock-threads.yml | 2 +-
.github/workflows/nextcloud-update.yml | 2 +-
.github/workflows/php-deprecation-detector.yml | 2 +-
.github/workflows/psalm-update-baseline.yml | 4 ++--
.github/workflows/shellcheck.yml | 2 +-
.github/workflows/talk.yml | 2 +-
.github/workflows/twig-lint.yml | 2 +-
.github/workflows/update-helm.yml | 2 +-
.github/workflows/update-yaml.yml | 2 +-
14 files changed, 18 insertions(+), 18 deletions(-)
diff --git a/.github/workflows/codespell.yml b/.github/workflows/codespell.yml
index eeaeb427..51548e24 100644
--- a/.github/workflows/codespell.yml
+++ b/.github/workflows/codespell.yml
@@ -14,7 +14,7 @@ jobs:
- name: Check out code
uses: actions/checkout@v4
- name: Check spelling
- uses: codespell-project/actions-codespell@v2
+ uses: codespell-project/actions-codespell@406322ec52dd7b488e48c1c4b82e2a8b3a1bf630 # v2
with:
check_filenames: true
check_hidden: true
diff --git a/.github/workflows/dependency-updates.yml b/.github/workflows/dependency-updates.yml
index b131ab58..189ea516 100644
--- a/.github/workflows/dependency-updates.yml
+++ b/.github/workflows/dependency-updates.yml
@@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v4
- - uses: shivammathur/setup-php@v2
+ - uses: shivammathur/setup-php@a4e22b60bbb9c1021113f2860347b0759f66fe5d # v2
with:
php-version: 8.3
extensions: apcu
@@ -44,7 +44,7 @@ jobs:
)"
sed -i "s|pecl install APCu.*\;|pecl install APCu-$apcu_version\;|" ./Containers/mastercontainer/Dockerfile
- name: Create Pull Request
- uses: peter-evans/create-pull-request@v7
+ uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7
with:
commit-message: php dependency updates
signoff: true
diff --git a/.github/workflows/helm-release.yml b/.github/workflows/helm-release.yml
index baacd7de..28946230 100644
--- a/.github/workflows/helm-release.yml
+++ b/.github/workflows/helm-release.yml
@@ -16,7 +16,7 @@ jobs:
uses: actions/checkout@v4
- name: Turnstyle
- uses: softprops/turnstyle@v2
+ uses: softprops/turnstyle@25dcee5c3fcb84375f3a3f93a3c97ed0d42cfcdc # v2
with:
continue-after-seconds: 180
env:
@@ -32,7 +32,7 @@ jobs:
# See https://github.com/helm/chart-releaser-action/issues/6
- name: Set up Helm
- uses: azure/setup-helm@v4
+ uses: azure/setup-helm@b9e51907a09c216f16ebe8536097933489208112 # v4
with:
version: v3.6.3
@@ -41,7 +41,7 @@ jobs:
helm lint ./nextcloud-aio-helm-chart
- name: Run chart-releaser
- uses: helm/chart-releaser-action@v1.7.0
+ uses: helm/chart-releaser-action@cae68fefc6b5f367a0275617c9f83181ba54714f # v1.7.0
with:
mark_as_latest: false
charts_dir: .
diff --git a/.github/workflows/imaginary-update.yml b/.github/workflows/imaginary-update.yml
index 85c64a6e..707a4d7d 100644
--- a/.github/workflows/imaginary-update.yml
+++ b/.github/workflows/imaginary-update.yml
@@ -22,7 +22,7 @@ jobs:
sed -i "s|^ENV IMAGINARY_HASH.*$|ENV IMAGINARY_HASH=$imaginary_version|" ./Containers/imaginary/Dockerfile
- name: Create Pull Request
- uses: peter-evans/create-pull-request@v7
+ uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7
with:
commit-message: imaginary-update automated change
signoff: true
diff --git a/.github/workflows/lint-helm.yml b/.github/workflows/lint-helm.yml
index 41779d5c..476c1925 100644
--- a/.github/workflows/lint-helm.yml
+++ b/.github/workflows/lint-helm.yml
@@ -16,7 +16,7 @@ jobs:
fetch-depth: 0
- name: Install Helm
- uses: azure/setup-helm@v4
+ uses: azure/setup-helm@b9e51907a09c216f16ebe8536097933489208112 # v4
with:
version: v3.11.1
diff --git a/.github/workflows/lock-threads.yml b/.github/workflows/lock-threads.yml
index e4e2cc32..be8273d5 100644
--- a/.github/workflows/lock-threads.yml
+++ b/.github/workflows/lock-threads.yml
@@ -14,7 +14,7 @@ jobs:
action:
runs-on: ubuntu-latest
steps:
- - uses: dessant/lock-threads@v5
+ - uses: dessant/lock-threads@1bf7ec25051fe7c00bdd17e6a7cf3d7bfb7dc771 # v5
with:
issue-inactive-days: '14'
process-only: 'issues'
diff --git a/.github/workflows/nextcloud-update.yml b/.github/workflows/nextcloud-update.yml
index e4750c2a..914a4435 100644
--- a/.github/workflows/nextcloud-update.yml
+++ b/.github/workflows/nextcloud-update.yml
@@ -85,7 +85,7 @@ jobs:
fi
- name: Create Pull Request
- uses: peter-evans/create-pull-request@v7
+ uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7
with:
commit-message: nextcloud-update automated change
signoff: true
diff --git a/.github/workflows/php-deprecation-detector.yml b/.github/workflows/php-deprecation-detector.yml
index aed16094..dd8b0a02 100644
--- a/.github/workflows/php-deprecation-detector.yml
+++ b/.github/workflows/php-deprecation-detector.yml
@@ -18,7 +18,7 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: Set up php
- uses: shivammathur/setup-php@v2
+ uses: shivammathur/setup-php@a4e22b60bbb9c1021113f2860347b0759f66fe5d # v2
with:
php-version: 8.3
extensions: apcu
diff --git a/.github/workflows/psalm-update-baseline.yml b/.github/workflows/psalm-update-baseline.yml
index f4bf7198..2b42c4ff 100644
--- a/.github/workflows/psalm-update-baseline.yml
+++ b/.github/workflows/psalm-update-baseline.yml
@@ -13,7 +13,7 @@ jobs:
- uses: actions/checkout@v4
- name: Set up php
- uses: shivammathur/setup-php@v2
+ uses: shivammathur/setup-php@a4e22b60bbb9c1021113f2860347b0759f66fe5d # v2
with:
php-version: 8.3
extensions: apcu
@@ -30,7 +30,7 @@ jobs:
continue-on-error: true
- name: Create Pull Request
- uses: peter-evans/create-pull-request@v7
+ uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
commit-message: Update psalm baseline
diff --git a/.github/workflows/shellcheck.yml b/.github/workflows/shellcheck.yml
index 697b1807..d474d95f 100644
--- a/.github/workflows/shellcheck.yml
+++ b/.github/workflows/shellcheck.yml
@@ -17,7 +17,7 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: Run Shellcheck
- uses: ludeeus/action-shellcheck@2.0.0
+ uses: ludeeus/action-shellcheck@00cae500b08a931fb5698e11e79bfbd38e612a38 # v2.0.0
with:
check_together: 'yes'
env:
diff --git a/.github/workflows/talk.yml b/.github/workflows/talk.yml
index 674d6db8..1b541dd4 100644
--- a/.github/workflows/talk.yml
+++ b/.github/workflows/talk.yml
@@ -45,7 +45,7 @@ jobs:
sed -i "s|^ARG JANUS_VERSION=.*$|ARG JANUS_VERSION=$janus_version|" ./Containers/talk/Dockerfile
- name: Create Pull Request
- uses: peter-evans/create-pull-request@v7
+ uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7
with:
commit-message: talk-update automated change
signoff: true
diff --git a/.github/workflows/twig-lint.yml b/.github/workflows/twig-lint.yml
index 4544f993..59c5d4f1 100644
--- a/.github/workflows/twig-lint.yml
+++ b/.github/workflows/twig-lint.yml
@@ -27,7 +27,7 @@ jobs:
uses: actions/checkout@v4
- name: Set up php ${{ matrix.php-versions }}
- uses: shivammathur/setup-php@v2
+ uses: shivammathur/setup-php@a4e22b60bbb9c1021113f2860347b0759f66fe5d # v2
with:
php-version: 8.3
extensions: apcu
diff --git a/.github/workflows/update-helm.yml b/.github/workflows/update-helm.yml
index 43b37c8f..3065c4a9 100644
--- a/.github/workflows/update-helm.yml
+++ b/.github/workflows/update-helm.yml
@@ -20,7 +20,7 @@ jobs:
sudo bash nextcloud-aio-helm-chart/update-helm.sh "$DOCKER_TAG"
fi
- name: Create Pull Request
- uses: peter-evans/create-pull-request@v7
+ uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7
with:
commit-message: Helm Chart updates
signoff: true
diff --git a/.github/workflows/update-yaml.yml b/.github/workflows/update-yaml.yml
index 93a560fc..dca81879 100644
--- a/.github/workflows/update-yaml.yml
+++ b/.github/workflows/update-yaml.yml
@@ -16,7 +16,7 @@ jobs:
run: |
sudo bash manual-install/update-yaml.sh
- name: Create Pull Request
- uses: peter-evans/create-pull-request@v7
+ uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7
with:
commit-message: Yaml updates
signoff: true
From 1b6524b904485f52d376966813b66cfac08def01 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Mon, 17 Mar 2025 13:06:18 +0100
Subject: [PATCH 0142/1064] Update dependabot.yml
Signed-off-by: Simon L.
---
.github/dependabot.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index 8afcc4e4..38d4ad6d 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -1,7 +1,7 @@
version: 2
updates:
- package-ecosystem: "github-actions"
- directory: "/"
+ directory: ".github/workflows"
schedule:
interval: "daily"
time: "12:00"
From ccc64878772646d40914afac0b77df11ad5ddab9 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 17 Mar 2025 12:09:48 +0000
Subject: [PATCH 0143/1064] build(deps): bump shivammathur/setup-php in
/.github/workflows
Bumps [shivammathur/setup-php](https://github.com/shivammathur/setup-php) from 2.30.0 to 2.32.0.
- [Release notes](https://github.com/shivammathur/setup-php/releases)
- [Commits](https://github.com/shivammathur/setup-php/compare/a4e22b60bbb9c1021113f2860347b0759f66fe5d...9e72090525849c5e82e596468b86eb55e9cc5401)
---
updated-dependencies:
- dependency-name: shivammathur/setup-php
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
.github/workflows/dependency-updates.yml | 2 +-
.github/workflows/lint-php.yml | 2 +-
.github/workflows/php-deprecation-detector.yml | 2 +-
.github/workflows/psalm-update-baseline.yml | 2 +-
.github/workflows/psalm.yml | 2 +-
.github/workflows/twig-lint.yml | 2 +-
6 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/.github/workflows/dependency-updates.yml b/.github/workflows/dependency-updates.yml
index 189ea516..017828d6 100644
--- a/.github/workflows/dependency-updates.yml
+++ b/.github/workflows/dependency-updates.yml
@@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v4
- - uses: shivammathur/setup-php@a4e22b60bbb9c1021113f2860347b0759f66fe5d # v2
+ - uses: shivammathur/setup-php@9e72090525849c5e82e596468b86eb55e9cc5401 # v2
with:
php-version: 8.3
extensions: apcu
diff --git a/.github/workflows/lint-php.yml b/.github/workflows/lint-php.yml
index 69db96dd..9f17d7fa 100644
--- a/.github/workflows/lint-php.yml
+++ b/.github/workflows/lint-php.yml
@@ -36,7 +36,7 @@ jobs:
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Set up php ${{ matrix.php-versions }}
- uses: shivammathur/setup-php@a4e22b60bbb9c1021113f2860347b0759f66fe5d # v2
+ uses: shivammathur/setup-php@9e72090525849c5e82e596468b86eb55e9cc5401 # v2
with:
php-version: ${{ matrix.php-versions }}
coverage: none
diff --git a/.github/workflows/php-deprecation-detector.yml b/.github/workflows/php-deprecation-detector.yml
index dd8b0a02..50e57bc3 100644
--- a/.github/workflows/php-deprecation-detector.yml
+++ b/.github/workflows/php-deprecation-detector.yml
@@ -18,7 +18,7 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: Set up php
- uses: shivammathur/setup-php@a4e22b60bbb9c1021113f2860347b0759f66fe5d # v2
+ uses: shivammathur/setup-php@9e72090525849c5e82e596468b86eb55e9cc5401 # v2
with:
php-version: 8.3
extensions: apcu
diff --git a/.github/workflows/psalm-update-baseline.yml b/.github/workflows/psalm-update-baseline.yml
index 2b42c4ff..9e77421c 100644
--- a/.github/workflows/psalm-update-baseline.yml
+++ b/.github/workflows/psalm-update-baseline.yml
@@ -13,7 +13,7 @@ jobs:
- uses: actions/checkout@v4
- name: Set up php
- uses: shivammathur/setup-php@a4e22b60bbb9c1021113f2860347b0759f66fe5d # v2
+ uses: shivammathur/setup-php@9e72090525849c5e82e596468b86eb55e9cc5401 # v2
with:
php-version: 8.3
extensions: apcu
diff --git a/.github/workflows/psalm.yml b/.github/workflows/psalm.yml
index e4775674..a4a5cfdf 100644
--- a/.github/workflows/psalm.yml
+++ b/.github/workflows/psalm.yml
@@ -29,7 +29,7 @@ jobs:
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Set up php
- uses: shivammathur/setup-php@a4e22b60bbb9c1021113f2860347b0759f66fe5d # v2
+ uses: shivammathur/setup-php@9e72090525849c5e82e596468b86eb55e9cc5401 # v2
with:
php-version: 8.3
extensions: apcu
diff --git a/.github/workflows/twig-lint.yml b/.github/workflows/twig-lint.yml
index 59c5d4f1..7f0d3671 100644
--- a/.github/workflows/twig-lint.yml
+++ b/.github/workflows/twig-lint.yml
@@ -27,7 +27,7 @@ jobs:
uses: actions/checkout@v4
- name: Set up php ${{ matrix.php-versions }}
- uses: shivammathur/setup-php@a4e22b60bbb9c1021113f2860347b0759f66fe5d # v2
+ uses: shivammathur/setup-php@9e72090525849c5e82e596468b86eb55e9cc5401 # v2
with:
php-version: 8.3
extensions: apcu
From c525f802d5860dfa940a964420b0af861af3885e Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Tue, 18 Mar 2025 22:34:50 +0100
Subject: [PATCH 0144/1064] Update Bug_report.md
Signed-off-by: Simon L.
---
.github/ISSUE_TEMPLATE/Bug_report.md | 2 ++
1 file changed, 2 insertions(+)
diff --git a/.github/ISSUE_TEMPLATE/Bug_report.md b/.github/ISSUE_TEMPLATE/Bug_report.md
index c4d25e6d..66681d2e 100644
--- a/.github/ISSUE_TEMPLATE/Bug_report.md
+++ b/.github/ISSUE_TEMPLATE/Bug_report.md
@@ -5,8 +5,10 @@ labels: 0. Needs triage
---
From 38a11c462426dab7f24f4a1ed0347f66d6495a03 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Tue, 18 Mar 2025 22:39:17 +0100
Subject: [PATCH 0145/1064] Update config.yml
Signed-off-by: Simon L.
---
.github/ISSUE_TEMPLATE/config.yml | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
index e50507ae..af96f3c6 100644
--- a/.github/ISSUE_TEMPLATE/config.yml
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -1,5 +1,7 @@
blank_issues_enabled: false
contact_links:
+ - name: 📘 Documentation on Nextcloud AIO
+ url: https://github.com/nextcloud/all-in-one#faq
- name: ⛑️ General questions and support
url: https://help.nextcloud.com/tag/aio
about: For general questions, support and help
@@ -11,4 +13,4 @@ contact_links:
about: For questions specifically about AIO
- name: 💼 Nextcloud Enterprise
url: https://portal.nextcloud.com/
- about: If you are a Nextcloud Enterprise customer, or need Professional support, so it can be resolved directly by our dedicated engineers more quickly
\ No newline at end of file
+ about: If you are a Nextcloud Enterprise customer, or need Professional support, so it can be resolved directly by our dedicated engineers more quickly
From 7062b6aa9007d884628989af0935064b5a8a21ab Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Tue, 18 Mar 2025 23:44:03 +0100
Subject: [PATCH 0146/1064] add about info to documentation about aio section
Signed-off-by: Simon L.
---
.github/ISSUE_TEMPLATE/config.yml | 1 +
1 file changed, 1 insertion(+)
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
index af96f3c6..bbeee846 100644
--- a/.github/ISSUE_TEMPLATE/config.yml
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -2,6 +2,7 @@ blank_issues_enabled: false
contact_links:
- name: 📘 Documentation on Nextcloud AIO
url: https://github.com/nextcloud/all-in-one#faq
+ about: Please read the docs first before submitting any report or request!
- name: ⛑️ General questions and support
url: https://help.nextcloud.com/tag/aio
about: For general questions, support and help
From f90631125e0ad0dec7f9e836319826b596d2a7da Mon Sep 17 00:00:00 2001
From: Richard Steinmetz
Date: Wed, 19 Mar 2025 14:46:41 +0100
Subject: [PATCH 0147/1064] test: prepare for e2e tests
Signed-off-by: Richard Steinmetz
---
php/src/Data/ConfigurationManager.php | 2 +-
php/templates/containers.twig | 6 +++---
php/templates/setup.twig | 2 +-
3 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/php/src/Data/ConfigurationManager.php b/php/src/Data/ConfigurationManager.php
index 7c7039af..e2291a76 100644
--- a/php/src/Data/ConfigurationManager.php
+++ b/php/src/Data/ConfigurationManager.php
@@ -900,7 +900,7 @@ class ConfigurationManager
}
public function shouldDomainValidationBeSkipped() : bool {
- if (getenv('SKIP_DOMAIN_VALIDATION') !== false) {
+ if (getenv('SKIP_DOMAIN_VALIDATION') === 'true') {
return true;
}
return false;
diff --git a/php/templates/containers.twig b/php/templates/containers.twig
index 1bbfc001..92cfbde8 100644
--- a/php/templates/containers.twig
+++ b/php/templates/containers.twig
@@ -106,7 +106,7 @@
Please note: The domain validation is disabled so any domain will be accepted here! Make sure you do not make a typo here as you will not be able to change it afterwards!
{% endif %}
-
+
@@ -195,9 +195,9 @@
if stored remotely; and the encryption password of the backup archive below:
- Local backup location
+ Local backup location Remote borg repo
- Borg passphrase
+ Borg passphrase
diff --git a/php/templates/setup.twig b/php/templates/setup.twig
index ac8063a2..f1d4d1dc 100644
--- a/php/templates/setup.twig
+++ b/php/templates/setup.twig
@@ -10,7 +10,7 @@
All-in-One setup
The official Nextcloud installation method. Nextcloud All-in-One provides easy deployment and maintenance with most features included in this one Nextcloud instance.
⚠️ Please note down the passphrase to access the AIO interface and don't lose it!
{% endblock %}
From 80ae73663351a084f822d3ca5ee43e96212e412a Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 20 Mar 2025 04:31:25 +0000
Subject: [PATCH 0148/1064] build(deps): bump nats in /Containers/talk
Bumps nats from 2.10.26-scratch to 2.11.0-scratch.
---
updated-dependencies:
- dependency-name: nats
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
Containers/talk/Dockerfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Containers/talk/Dockerfile b/Containers/talk/Dockerfile
index 5058d449..915b4789 100644
--- a/Containers/talk/Dockerfile
+++ b/Containers/talk/Dockerfile
@@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest
-FROM nats:2.10.26-scratch AS nats
+FROM nats:2.11.0-scratch AS nats
FROM eturnal/eturnal:1.12.1 AS eturnal
FROM strukturag/nextcloud-spreed-signaling:2.0.2 AS signaling
FROM alpine:3.21.3 AS janus
From 38254f76ab8671b2348dce35479849896a69f409 Mon Sep 17 00:00:00 2001
From: Richard Steinmetz
Date: Thu, 20 Mar 2025 10:52:38 +0100
Subject: [PATCH 0149/1064] test: add more ids for e2e tests
Signed-off-by: Richard Steinmetz
---
php/templates/containers.twig | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/php/templates/containers.twig b/php/templates/containers.twig
index 92cfbde8..96623fc4 100644
--- a/php/templates/containers.twig
+++ b/php/templates/containers.twig
@@ -241,9 +241,9 @@
Initial Nextcloud username: admin
{% if hasBackupLocation %}
{# nextcloud_password needs to be duplicated due to a bug in Firefox. See https://github.com/nextcloud/all-in-one/issues/638. #}
-
- Local backup location
+ Local backup location Remote borg repo
@@ -408,7 +408,7 @@
To try again, click Create backup.
{% endif %}
-
+
You may change the backup path again since the initial backup was not successful. After submitting the new value, you need to click on Create Backup to test the new value.
Local backup location
@@ -433,7 +433,7 @@
Click here to reveal all backup options (including an option for automatic updates)
{% endif %}
Backup information
-
This is your encryption password for backups: {{ borgbackup_password }}
+
This is your encryption password for backups: {{ borgbackup_password }}
Please save this password in a safe place. You won't be able to restore from backup if you lose this password!
All important data from your Nextcloud AIO instance such as the database, your files and the mastercontainer's configuration files, will be backed up.
The backup uses a tool called BorgBackup, a well-known server backup tool that efficiently backs up your files and encrypts them on the fly.
{# Add 2nd tab warning #}
From 8ddd123568e8df71e6184ae0d75bd530253ce3e7 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Thu, 20 Mar 2025 12:45:05 +0100
Subject: [PATCH 0156/1064] fix removing tests from aio-interface
Signed-off-by: Simon L.
---
Containers/mastercontainer/Dockerfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Containers/mastercontainer/Dockerfile b/Containers/mastercontainer/Dockerfile
index 41fbae75..40204b72 100644
--- a/Containers/mastercontainer/Dockerfile
+++ b/Containers/mastercontainer/Dockerfile
@@ -66,7 +66,7 @@ RUN set -ex; \
cd /var/www/docker-aio; \
git clone https://github.com/nextcloud-releases/all-in-one.git --depth 1 .; \
find ./ -maxdepth 1 -mindepth 1 -not -path ./php -not -path ./community-containers -exec rm -r {} \; ; \
- rm -r ./php/test; \
+ rm -r ./php/tests; \
chown www-data:www-data -R /var/www/docker-aio; \
cd php; \
sudo -u www-data composer install --no-dev; \
From 7eabc593289cf2410bcbcf131bb138ee06139542 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Thu, 20 Mar 2025 13:08:54 +0100
Subject: [PATCH 0157/1064] adjust some details to actually do what the test is
intended to do
Signed-off-by: Simon L.
---
php/tests/tests/restore-instance.spec.js | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/php/tests/tests/restore-instance.spec.js b/php/tests/tests/restore-instance.spec.js
index fef4ec01..189acd0e 100644
--- a/php/tests/tests/restore-instance.spec.js
+++ b/php/tests/tests/restore-instance.spec.js
@@ -32,16 +32,16 @@ test('Restore instance', async ({ page: setupPage }) => {
// Reject invalid backup location
await containersPage.locator('#borg_restore_host_location').click();
- await containersPage.locator('#borg_restore_host_location').fill('/mnt/foobar');
+ await containersPage.locator('#borg_restore_host_location').fill('/mnt/test/aio-incorrect-path');
await containersPage.locator('#borg_restore_password').click();
- await containersPage.locator('#borg_restore_password').fill('foobar');
+ await containersPage.locator('#borg_restore_password').fill(borgBackupPassword);
await containersPage.getByRole('button', { name: 'Submit location and encryption password' }).click()
await containersPage.getByRole('button', { name: 'Test path and encryption' }).click();
await expect(containersPage.getByRole('main')).toContainText('Last test failed!', { timeout: 60 * 1000 });
// Reject invalid backup password
await containersPage.locator('#borg_restore_host_location').click();
- await containersPage.locator('#borg_restore_host_location').fill('/mnt/backup');
+ await containersPage.locator('#borg_restore_host_location').fill(borgBackupLocation);
await containersPage.locator('#borg_restore_password').click();
await containersPage.locator('#borg_restore_password').fill('foobar');
await containersPage.getByRole('button', { name: 'Submit location and encryption password' }).click()
From 0ed524baba7449c38d6732d7dd502a0648f3d825 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Thu, 20 Mar 2025 13:13:09 +0100
Subject: [PATCH 0158/1064] modify two details in initial-setup test
Signed-off-by: Simon L.
---
php/tests/tests/initial-setup.spec.js | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/php/tests/tests/initial-setup.spec.js b/php/tests/tests/initial-setup.spec.js
index 6e990767..ca8bc077 100644
--- a/php/tests/tests/initial-setup.spec.js
+++ b/php/tests/tests/initial-setup.spec.js
@@ -60,7 +60,8 @@ test('Initial setup', async ({ page: setupPage }) => {
// Start containers and wait for starting message
await containersPage.getByRole('button', { name: 'Download and start containers' }).click();
- await expect(containersPage.getByRole('link', { name: 'Open your Nextcloud ↗' })).toBeVisible({ timeout: 5 * 60 * 1000 });
+ await expect(containersPage.getByRole('main')).toContainText('Containers are currently starting.', { timeout: 3 * 60 * 1000 });
+ await expect(containersPage.getByRole('link', { name: 'Open your Nextcloud ↗' })).toBeVisible({ timeout: 2 * 60 * 1000 });
await expect(containersPage.getByRole('link', { name: 'Open your Nextcloud ↗' })).toHaveAttribute('href', 'https://example.com');
// Extract initial nextcloud password
From 6b9e68d55f6559a2a3f067d62e3983121dbbe968 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Thu, 20 Mar 2025 13:19:49 +0100
Subject: [PATCH 0159/1064] fix typo
Signed-off-by: Simon L.
---
develop.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/develop.md b/develop.md
index 133185a6..8bb21a2f 100644
--- a/develop.md
+++ b/develop.md
@@ -27,7 +27,7 @@ Before testing, make sure that at least the amd64 containers are built successfu
There is a testing-VM available for the maintainer of AIO that allows for some final testing before releasing new version. See [this](https://cloud.nextcloud.com/apps/collectives/Nextcloud%20Handbook/Technical/AIO%20testing%20VM?fileId=6350152) for details.
-Additionally, there are now E2EE tests available that can be run via https://github.com/nextcloud/all-in-one/actions/workflows/playwright.yml
+Additionally, there are now E2E tests available that can be run via https://github.com/nextcloud/all-in-one/actions/workflows/playwright.yml
## How to promote builds from develop to beta
1. Verify that no job is running here: https://github.com/nextcloud-releases/all-in-one/actions/workflows/build_images.yml
From 91e99dcba9fa235b7dd7396b0c8d3aefc4a92add Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Thu, 20 Mar 2025 17:30:49 +0100
Subject: [PATCH 0160/1064] Update develop.md
Signed-off-by: Simon L.
---
develop.md | 3 +++
1 file changed, 3 insertions(+)
diff --git a/develop.md b/develop.md
index 8bb21a2f..a35a521c 100644
--- a/develop.md
+++ b/develop.md
@@ -19,6 +19,9 @@ It will now also select the developer channel for all other containers automatic
## How to publish new releases?
Simply use https://github.com/nextcloud/all-in-one/issues/180 as template.
+## How to update existing instances to a new major Nextcloud version?
+Simply use https://github.com/nextcloud/all-in-one/issues/6198 as template.
+
## How to build new containers
Go to https://github.com/nextcloud-releases/all-in-one/actions/workflows/repo-sync.yml and run the workflow that will first sync the repo and then build new container that automatically get published to `develop` and `develop-arm64`.
From b9a04858ca1e8fcc4c7fd2783df9e9c80148ba82 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Fri, 21 Mar 2025 04:25:41 +0000
Subject: [PATCH 0161/1064] build(deps): bump haproxy in
/Containers/docker-socket-proxy
Bumps haproxy from 3.1.5-alpine to 3.1.6-alpine.
---
updated-dependencies:
- dependency-name: haproxy
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
Containers/docker-socket-proxy/Dockerfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Containers/docker-socket-proxy/Dockerfile b/Containers/docker-socket-proxy/Dockerfile
index 79bd22ac..a01a7485 100644
--- a/Containers/docker-socket-proxy/Dockerfile
+++ b/Containers/docker-socket-proxy/Dockerfile
@@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest
-FROM haproxy:3.1.5-alpine
+FROM haproxy:3.1.6-alpine
# hadolint ignore=DL3002
USER root
From 9b8a9de56586408659daecf0dde1ad64abba61dc Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Fri, 21 Mar 2025 04:26:03 +0000
Subject: [PATCH 0162/1064] build(deps): bump docker in
/Containers/mastercontainer
Bumps docker from 28.0.1-cli to 28.0.2-cli.
---
updated-dependencies:
- dependency-name: docker
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 40204b72..12e4aaa2 100644
--- a/Containers/mastercontainer/Dockerfile
+++ b/Containers/mastercontainer/Dockerfile
@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:latest
# Docker CLI is a requirement
-FROM docker:28.0.1-cli AS docker
+FROM docker:28.0.2-cli AS docker
# Caddy is a requirement
FROM caddy:2.9.1-alpine AS caddy
From 4c14fa9b131f019f57a4506ac118a78cdcee35b7 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Fri, 21 Mar 2025 10:06:41 +0100
Subject: [PATCH 0163/1064] nextcloud: adjust `default_socket_timeout` to
`${PHP_MAX_TIME}` in order to make it configurable
Signed-off-by: Simon L.
---
Containers/nextcloud/Dockerfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Containers/nextcloud/Dockerfile b/Containers/nextcloud/Dockerfile
index f9332b35..4ee8d0e2 100644
--- a/Containers/nextcloud/Dockerfile
+++ b/Containers/nextcloud/Dockerfile
@@ -142,7 +142,7 @@ RUN set -ex; \
echo 'post_max_size=${PHP_UPLOAD_LIMIT}'; \
echo 'max_execution_time=${PHP_MAX_TIME}'; \
echo 'max_input_time=${PHP_MAX_TIME}'; \
- echo 'default_socket_timeout=600'; \
+ echo 'default_socket_timeout=${PHP_MAX_TIME}'; \
} > /usr/local/etc/php/conf.d/nextcloud.ini; \
\
{ \
From 167c2dc38979a7ba8a6eda2ef7092ca751e1492f Mon Sep 17 00:00:00 2001
From: szaimen <42591237+szaimen@users.noreply.github.com>
Date: Fri, 21 Mar 2025 12:03:18 +0000
Subject: [PATCH 0164/1064] Yaml updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
---
manual-install/latest.yml | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/manual-install/latest.yml b/manual-install/latest.yml
index c16aee79..3d104f43 100644
--- a/manual-install/latest.yml
+++ b/manual-install/latest.yml
@@ -341,7 +341,7 @@ services:
init: false
healthcheck:
start_period: 60s
- test: clamdcheck.sh
+ test: /healthcheck.sh
interval: 30s
timeout: 30s
start_interval: 5s
@@ -351,7 +351,6 @@ services:
environment:
- TZ=${TIMEZONE}
- MAX_SIZE=${NEXTCLOUD_UPLOAD_LIMIT}
- - CLAMD_STARTUP_TIMEOUT=90
volumes:
- nextcloud_aio_clamav:/var/lib/clamav:rw
restart: unless-stopped
@@ -359,9 +358,11 @@ services:
- clamav
read_only: true
tmpfs:
- - /var/lock
- - /var/log/clamav
- /tmp
+ - /var/log/clamav
+ - /run/clamav
+ - /var/log/supervisord
+ - /var/run/supervisord
cap_drop:
- NET_RAW
From 348a08a720c5785ee03d8c0189af0d4ebc413c6b Mon Sep 17 00:00:00 2001
From: Oleksander Piskun
Date: Fri, 21 Mar 2025 18:45:00 +0200
Subject: [PATCH 0165/1064] more strict rules for the container creation
Signed-off-by: Oleksander Piskun
---
Containers/docker-socket-proxy/haproxy.cfg | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/Containers/docker-socket-proxy/haproxy.cfg b/Containers/docker-socket-proxy/haproxy.cfg
index 601b465f..defccda5 100644
--- a/Containers/docker-socket-proxy/haproxy.cfg
+++ b/Containers/docker-socket-proxy/haproxy.cfg
@@ -13,7 +13,7 @@ frontend http
bind :::2375 v4v6
http-request deny unless { src 127.0.0.1 } || { src ::1 } || { src NC_IPV4_PLACEHOLDER } || { src NC_IPV6_PLACEHOLDER }
# docker system _ping
- http-request allow if { path,url_dec -m reg -i ^(/v[\d\.]+)?/_ping } METH_GET
+ http-request allow if { path,url_dec -m reg -i ^(/v[\d\.]+)?/_ping$ } METH_GET
# container inspect: GET containers/%s/json
http-request allow if { path,url_dec -m reg -i ^(/v[\d\.]+)?/containers/nc_app_[a-zA-Z0-9_.-]+/json } METH_GET
# container inspect: GET containers/%s/logs
@@ -38,19 +38,19 @@ frontend http
# ACL to deny if there are any binds
acl binds_present req.body -m reg -i "\"HostConfig\"\s*:.*\"Binds\"\s*:"
# ACL to restrict the type of Mounts to volume
- acl type_not_volume req.body -m reg -i "\"Mounts\":\s*\[[^\]]*(\"Type\":\s*\"(?!volume\b)\w+\"[^\]]*)+\]"
+ acl type_not_volume req.body -m reg -i "\"Mounts\"\s*:\s*\[[^\]]*(\"Type\"\s*:\s*\"(?!volume\b)\w+\"[^\]]*)+\]"
http-request deny if { path,url_dec -m reg -i ^(/v[\d\.]+)?/containers/create } nc_app_container_name !one_mount_volume binds_present type_not_volume METH_POST
- # ACL to restrict container creation, that it has HostConfig.Privileged not set
- acl no_privileged_flag req.body -m reg -i "\"HostConfig\":\s?{[^}]*\"Privileged\""
+ # ACL to restrict container creation, that it has HostConfig.Privileged(by searching for "Privileged" word in all payload)
+ acl no_privileged_flag req.body -m reg -i "\"Privileged\""
# ACL to allow mount volume with strict pattern for name: nc_app_[a-zA-Z0-9_.-]+_data
- acl nc_app_volume_data_only req.body -m reg -i "\"Mounts\":\s?\[\s?{[^}]*\"Source\":\s?\"nc_app_[a-zA-Z0-9_.-]+_data\""
+ acl nc_app_volume_data_only req.body -m reg -i "\"Mounts\"\s*:\s*\[\s*{[^}]*\"Source\"\s*:\s*\"nc_app_[a-zA-Z0-9_.-]+_data\""
http-request allow if { path,url_dec -m reg -i ^(/v[\d\.]+)?/containers/create } nc_app_container_name !no_privileged_flag nc_app_volume_data_only METH_POST
# end of container create
# volume create: POST volumes/create
# restrict name
- acl nc_app_volume_data req.body -m reg -i "\"Name\":\s?\"nc_app_[a-zA-Z0-9_.-]+_data\""
+ acl nc_app_volume_data req.body -m reg -i "\"Name\"\s*:\s*\"nc_app_[a-zA-Z0-9_.-]+_data\""
# do not allow to use "device" word e.g., "--opt device=:/path/to/dir"
acl volume_no_device req.body -m reg -i "\"device\""
http-request allow if { path,url_dec -m reg -i ^(/v[\d\.]+)?/volumes/create } nc_app_volume_data !volume_no_device METH_POST
From 4669ad430c84467a42d6df6f1de43a5777d01706 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Thu, 20 Mar 2025 16:36:21 +0100
Subject: [PATCH 0166/1064] helm: allow to set the skeleton directory
Signed-off-by: Simon L.
---
Containers/nextcloud/entrypoint.sh | 7 +++++++
nextcloud-aio-helm-chart/update-helm.sh | 3 +++
2 files changed, 10 insertions(+)
diff --git a/Containers/nextcloud/entrypoint.sh b/Containers/nextcloud/entrypoint.sh
index e8992086..e84636dc 100644
--- a/Containers/nextcloud/entrypoint.sh
+++ b/Containers/nextcloud/entrypoint.sh
@@ -535,6 +535,13 @@ php /var/www/html/occ config:system:set upgrade.cli-upgrade-link --value="https:
php /var/www/html/occ config:system:set logfile --value="/var/www/html/data/nextcloud.log"
php /var/www/html/occ config:app:set admin_audit logfile --value="/var/www/html/data/audit.log"
php /var/www/html/occ config:system:set updatedirectory --value="/nc-updater"
+if [ -n "$NEXTCLOUD_SKELETON_DIRECTORY" ]; then
+ if [ "$NEXTCLOUD_SKELETON_DIRECTORY" = "empty" ]; then
+ php /var/www/html/occ config:system:set skeletondirectory --value=""
+ else
+ php /var/www/html/occ config:system:set skeletondirectory --value="$NEXTCLOUD_SKELETON_DIRECTORY"
+ fi
+fi
if [ -n "$SERVERINFO_TOKEN" ] && [ -z "$(php /var/www/html/occ config:app:get serverinfo token)" ]; then
php /var/www/html/occ config:app:set serverinfo token --value="$SERVERINFO_TOKEN"
fi
diff --git a/nextcloud-aio-helm-chart/update-helm.sh b/nextcloud-aio-helm-chart/update-helm.sh
index 3c976773..5ac19095 100755
--- a/nextcloud-aio-helm-chart/update-helm.sh
+++ b/nextcloud-aio-helm-chart/update-helm.sh
@@ -302,6 +302,8 @@ cat << EOL > /tmp/additional.config
value: "{{ .Values.SERVERINFO_TOKEN }}"
- name: NEXTCLOUD_DEFAULT_QUOTA
value: "{{ .Values.NEXTCLOUD_DEFAULT_QUOTA }}"
+ - name: NEXTCLOUD_SKELETON_DIRECTORY
+ value: "{{ .Values.NEXTCLOUD_SKELETON_DIRECTORY | default "" }}"
- name: NEXTCLOUD_MAINTENANCE_WINDOW
value: "{{ .Values.NEXTCLOUD_MAINTENANCE_WINDOW }}"
EOL
@@ -414,6 +416,7 @@ APPS_ALLOWLIST: # This allows to configure allowed apps that will be show
ADDITIONAL_TRUSTED_PROXY: # Allows to add one additional ip-address to Nextcloud's trusted proxies and to the Office WOPI-allowlist automatically. Set it e.g. like this: 'your.public.ip-address'. You can also use an ip-range here.
ADDITIONAL_TRUSTED_DOMAIN: # Allows to add one domain to Nextcloud's trusted domains and also generates a certificate automatically for it
NEXTCLOUD_DEFAULT_QUOTA: "10 GB" # Allows to adjust the default quota that will be taken into account in Nextcloud for new users. Setting it to "unlimited" will set it to unlimited
+NEXTCLOUD_SKELETON_DIRECTORY: # Allows to adjust the sekeleton dir for Nextcloud. Setting it to "empty" will set the value to an empty string "" which will turn off the setting for new users in Nextcloud.
NEXTCLOUD_MAINTENANCE_WINDOW: # Allows to define the maintenance window for Nextcloud. See https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/background_jobs_configuration.html#parameters for possible values
SMTP_HOST: # (empty by default): The hostname of the SMTP server.
SMTP_SECURE: # (empty by default): Set to 'ssl' to use SSL, or 'tls' to use STARTTLS.
From 630a0dc6aa6412a260030e2449fa14c6acc833a3 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Mon, 17 Mar 2025 14:57:39 +0100
Subject: [PATCH 0167/1064] database-import: update logic to consider wrong lin
endings
Signed-off-by: Simon L.
---
Containers/postgresql/start.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Containers/postgresql/start.sh b/Containers/postgresql/start.sh
index 10e46550..dbb74196 100644
--- a/Containers/postgresql/start.sh
+++ b/Containers/postgresql/start.sh
@@ -99,7 +99,7 @@ if ( [ -f "$DATADIR/PG_VERSION" ] && [ "$PG_MAJOR" != "$(cat "$DATADIR/PG_VERSIO
fi
# Get the Owner
- DB_OWNER="$(grep -a "$GREP_STRING" "$DUMP_FILE" | head -1 | grep -oP 'Owner:.*$' | sed 's|Owner:||;s| ||g')"
+ DB_OWNER="$(grep -a "$GREP_STRING" "$DUMP_FILE" | head -1 | grep -oP 'Owner:.*$' | sed 's|Owner:||;s|[[:space:]]||g')"
if [ "$DB_OWNER" = "$POSTGRES_USER" ]; then
echo "Unfortunately was the found database owner of the dump file the same as the POSTGRES_USER $POSTGRES_USER"
echo "It is not possible to import a database dump from this database owner."
From 5d090018f98c19b353d7e68ef15423ba0cc1be19 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Tue, 25 Mar 2025 09:13:06 +0100
Subject: [PATCH 0168/1064] move images to ghcr.io
Signed-off-by: Simon L.
---
.github/workflows/playwright.yml | 6 ++---
.github/workflows/update-helm.yml | 3 ++-
Containers/mastercontainer/start.sh | 6 ++---
develop.md | 2 +-
php/containers.json | 34 +++++++++++++-------------
php/src/Docker/DockerActionManager.php | 30 +++++++++++++++++++++--
6 files changed, 54 insertions(+), 27 deletions(-)
diff --git a/.github/workflows/playwright.yml b/.github/workflows/playwright.yml
index dfa6ad7e..67653783 100644
--- a/.github/workflows/playwright.yml
+++ b/.github/workflows/playwright.yml
@@ -29,7 +29,7 @@ jobs:
run: |
docker rm --force nextcloud-aio-{mastercontainer,apache,notify-push,nextcloud,redis,database,domaincheck,whiteboard,imaginary,talk,collabora,borgbackup} || true
docker volume rm nextcloud_aio_{mastercontainer,apache,database,database_dump,nextcloud,nextcloud_data,redis,backup_cache,elasticsearch} || true
- docker pull nextcloud/all-in-one:develop
+ docker pull ghcr.io/nextcloud-releases/all-in-one:develop
docker run \
-d \
--init \
@@ -40,7 +40,7 @@ jobs:
--volume /var/run/docker.sock:/var/run/docker.sock:ro \
--env SKIP_DOMAIN_VALIDATION=true \
--env APACHE_PORT=11000 \
- nextcloud/all-in-one:develop
+ ghcr.io/nextcloud-releases/all-in-one:develop
echo Waiting for 10 seconds for the development container to start ...
sleep 10
@@ -61,7 +61,7 @@ jobs:
--volume /var/run/docker.sock:/var/run/docker.sock:ro \
--env SKIP_DOMAIN_VALIDATION=false \
--env APACHE_PORT=11000 \
- nextcloud/all-in-one:develop
+ ghcr.io/nextcloud-releases/all-in-one:develop
echo Waiting for 10 seconds for the development container to start ...
sleep 10
diff --git a/.github/workflows/update-helm.yml b/.github/workflows/update-helm.yml
index 3065c4a9..83c35135 100644
--- a/.github/workflows/update-helm.yml
+++ b/.github/workflows/update-helm.yml
@@ -14,7 +14,8 @@ jobs:
uses: actions/checkout@v4
- name: update helm chart
run: |
- DOCKER_TAG="$(curl -L -s 'https://registry.hub.docker.com/v2/repositories/nextcloud/all-in-one/tags?page_size=1024' | jq '."results"[]["name"]' | sed 's|"||g' | grep '^20[0-9_]\+' | grep -v latest | sort -r | head -1)"
+ GHCR_TOKEN="$(curl https://ghcr.io/token\?scope\="repository:nextcloud-releases/all-in-one:pull" | jq '.token')"
+ DOCKER_TAG="$(curl -H "Authorization: Bearer ${GHCR_TOKEN}" -L -s 'https://ghcr.io/v2/nextcloud-releases/all-in-one/tags/list?page_size=1024' | jq '.tags' | sed 's|"||g' | grep '^20[0-9_]\+' | grep -v latest | sort -r | head -1)"
export DOCKER_TAG
if [ -n "$DOCKER_TAG" ] && ! grep -q "$DOCKER_TAG" ./nextcloud-aio-helm-chart/templates/nextcloud-aio-nextcloud-deployment.yaml; then
sudo bash nextcloud-aio-helm-chart/update-helm.sh "$DOCKER_TAG"
diff --git a/Containers/mastercontainer/start.sh b/Containers/mastercontainer/start.sh
index bca074ae..1a455626 100644
--- a/Containers/mastercontainer/start.sh
+++ b/Containers/mastercontainer/start.sh
@@ -283,10 +283,10 @@ if [ "$?" = 6 ]; then
exit 1
fi
-# Check if auth.docker.io is reachable
+# Check if ghcr.io is reachable
# Solves issues like https://github.com/nextcloud/all-in-one/discussions/5268
-if ! curl https://auth.docker.io/token 2>&1 | grep -q token; then
- print_red "Could not reach https://auth.docker.io."
+if ! curl https://ghcr.io 2>&1; then
+ print_red "Could not reach https://ghcr.io."
echo "Most likely is something blocking access to it."
echo "You should be able to fix this by using https://github.com/nextcloud/all-in-one/tree/main/manual-install"
exit 1
diff --git a/develop.md b/develop.md
index a35a521c..6f84b2d4 100644
--- a/develop.md
+++ b/develop.md
@@ -11,7 +11,7 @@ sudo docker run \
--publish 8443:8443 \
--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config \
--volume /var/run/docker.sock:/var/run/docker.sock:ro \
-nextcloud/all-in-one:develop
+ghcr.io/nextcloud-releases/all-in-one:develop
```
And you are done :)
It will now also select the developer channel for all other containers automatically.
diff --git a/php/containers.json b/php/containers.json
index 4f218af2..d87fe9ca 100644
--- a/php/containers.json
+++ b/php/containers.json
@@ -13,7 +13,7 @@
"nextcloud-aio-whiteboard"
],
"display_name": "Apache",
- "image": "nextcloud/aio-apache",
+ "image": "ghcr.io/nextcloud-releases/aio-apache",
"user": "33",
"init": true,
"healthcheck": {
@@ -84,7 +84,7 @@
"container_name": "nextcloud-aio-database",
"image_tag": "%AIO_CHANNEL%",
"display_name": "Database",
- "image": "nextcloud/aio-postgresql",
+ "image": "ghcr.io/nextcloud-releases/aio-postgresql",
"user": "999",
"init": true,
"healthcheck": {
@@ -149,7 +149,7 @@
"nextcloud-aio-docker-socket-proxy"
],
"display_name": "Nextcloud",
- "image": "nextcloud/aio-nextcloud",
+ "image": "ghcr.io/nextcloud-releases/aio-nextcloud",
"init": true,
"healthcheck": {
"start_period": "0s",
@@ -271,7 +271,7 @@
"container_name": "nextcloud-aio-notify-push",
"image_tag": "%AIO_CHANNEL%",
"display_name": "Notify Push",
- "image": "nextcloud/aio-notify-push",
+ "image": "ghcr.io/nextcloud-releases/aio-notify-push",
"user": "33",
"init": true,
"healthcheck": {
@@ -319,7 +319,7 @@
"container_name": "nextcloud-aio-redis",
"image_tag": "%AIO_CHANNEL%",
"display_name": "Redis",
- "image": "nextcloud/aio-redis",
+ "image": "ghcr.io/nextcloud-releases/aio-redis",
"user": "999",
"init": true,
"healthcheck": {
@@ -361,7 +361,7 @@
"image_tag": "%AIO_CHANNEL%",
"documentation": "https://github.com/nextcloud/all-in-one/discussions/1358",
"display_name": "Collabora",
- "image": "nextcloud/aio-collabora",
+ "image": "ghcr.io/nextcloud-releases/aio-collabora",
"init": true,
"healthcheck": {
"start_period": "60s",
@@ -404,7 +404,7 @@
"image_tag": "%AIO_CHANNEL%",
"documentation": "https://github.com/nextcloud/all-in-one/discussions/1358",
"display_name": "Talk",
- "image": "nextcloud/aio-talk",
+ "image": "ghcr.io/nextcloud-releases/aio-talk",
"user": "1000",
"init": true,
"healthcheck": {
@@ -466,7 +466,7 @@
"container_name": "nextcloud-aio-talk-recording",
"image_tag": "%AIO_CHANNEL%",
"display_name": "Talk Recording",
- "image": "nextcloud/aio-talk-recording",
+ "image": "ghcr.io/nextcloud-releases/aio-talk-recording",
"user": "122",
"init": true,
"healthcheck": {
@@ -518,7 +518,7 @@
{
"container_name": "nextcloud-aio-borgbackup",
"image_tag": "%AIO_CHANNEL%",
- "image": "nextcloud/aio-borgbackup",
+ "image": "ghcr.io/nextcloud-releases/aio-borgbackup",
"init": true,
"environment": [
"BORG_REMOTE_REPO=%BORGBACKUP_REMOTE_REPO%",
@@ -586,7 +586,7 @@
{
"container_name": "nextcloud-aio-watchtower",
"image_tag": "%AIO_CHANNEL%",
- "image": "nextcloud/aio-watchtower",
+ "image": "ghcr.io/nextcloud-releases/aio-watchtower",
"init": true,
"environment": [
"CONTAINER_TO_UPDATE=nextcloud-aio-mastercontainer"
@@ -606,7 +606,7 @@
{
"container_name": "nextcloud-aio-domaincheck",
"image_tag": "%AIO_CHANNEL%",
- "image": "nextcloud/aio-domaincheck",
+ "image": "ghcr.io/nextcloud-releases/aio-domaincheck",
"init": true,
"ports": [
{
@@ -637,7 +637,7 @@
"container_name": "nextcloud-aio-clamav",
"image_tag": "%AIO_CHANNEL%",
"display_name": "ClamAV",
- "image": "nextcloud/aio-clamav",
+ "image": "ghcr.io/nextcloud-releases/aio-clamav",
"user": "100",
"init": false,
"healthcheck": {
@@ -683,7 +683,7 @@
"container_name": "nextcloud-aio-onlyoffice",
"image_tag": "%AIO_CHANNEL%",
"display_name": "OnlyOffice",
- "image": "nextcloud/aio-onlyoffice",
+ "image": "ghcr.io/nextcloud-releases/aio-onlyoffice",
"init": true,
"healthcheck": {
"start_period": "60s",
@@ -729,7 +729,7 @@
"container_name": "nextcloud-aio-imaginary",
"image_tag": "%AIO_CHANNEL%",
"display_name": "Imaginary",
- "image": "nextcloud/aio-imaginary",
+ "image": "ghcr.io/nextcloud-releases/aio-imaginary",
"user": "65534",
"init": true,
"healthcheck": {
@@ -771,7 +771,7 @@
"image_tag": "%AIO_CHANNEL%",
"documentation": "https://github.com/nextcloud/all-in-one/discussions/1709",
"display_name": "Fulltextsearch",
- "image": "nextcloud/aio-fulltextsearch",
+ "image": "ghcr.io/nextcloud-releases/aio-fulltextsearch",
"init": false,
"healthcheck": {
"start_period": "60s",
@@ -819,7 +819,7 @@
"container_name": "nextcloud-aio-docker-socket-proxy",
"image_tag": "%AIO_CHANNEL%",
"display_name": "Docker Socket Proxy",
- "image": "nextcloud/aio-docker-socket-proxy",
+ "image": "ghcr.io/nextcloud-releases/aio-docker-socket-proxy",
"init": true,
"internal_port": "2375",
"environment": [
@@ -845,7 +845,7 @@
"container_name": "nextcloud-aio-whiteboard",
"image_tag": "%AIO_CHANNEL%",
"display_name": "Whiteboard",
- "image": "nextcloud/aio-whiteboard",
+ "image": "ghcr.io/nextcloud-releases/aio-whiteboard",
"user": "65534",
"init": true,
"healthcheck": {
diff --git a/php/src/Docker/DockerActionManager.php b/php/src/Docker/DockerActionManager.php
index 643b0f0e..bbcd4b77 100644
--- a/php/src/Docker/DockerActionManager.php
+++ b/php/src/Docker/DockerActionManager.php
@@ -742,6 +742,33 @@ readonly class DockerActionManager {
}
}
+ private function GetCurrentImageName(): string {
+ $cacheKey = 'aio-image-name';
+ $imageName = apcu_fetch($cacheKey);
+ if ($imageName !== false && is_string($imageName)) {
+ return $imageName;
+ }
+
+ $containerName = 'nextcloud-aio-mastercontainer';
+ $url = $this->BuildApiUrl(sprintf('containers/%s/json', $containerName));
+ try {
+ $output = json_decode($this->guzzleClient->get($url)->getBody()->getContents(), true);
+ $imageNameArray = explode(':', $output['Config']['Image']);
+ if (count($imageNameArray) === 2) {
+ $imageName = $imageNameArray[0];
+ } else {
+ error_log("No tag was found when getting the current channel. You probably did not follow the documentation correctly. Changing the imageName to the default " . $output['Config']['Image']);
+ $imageName = $output['Config']['Image'];
+ }
+ apcu_add($cacheKey, $imageName);
+ return $imageName;
+ } catch (\Exception $e) {
+ error_log('Could not get current imageName ' . $e->getMessage());
+ }
+
+ return 'nextcloud/all-in-one';
+ }
+
public function GetCurrentChannel(): string {
$cacheKey = 'aio-ChannelName';
$channelName = apcu_fetch($cacheKey);
@@ -753,7 +780,6 @@ readonly class DockerActionManager {
$url = $this->BuildApiUrl(sprintf('containers/%s/json', $containerName));
try {
$output = json_decode($this->guzzleClient->get($url)->getBody()->getContents(), true);
- $containerChecksum = $output['Image'];
$tagArray = explode(':', $output['Config']['Image']);
if (count($tagArray) === 2) {
$tag = $tagArray[1];
@@ -771,7 +797,7 @@ readonly class DockerActionManager {
}
public function IsMastercontainerUpdateAvailable(): bool {
- $imageName = 'nextcloud/all-in-one';
+ $imageName = $this->GetCurrentImageName();
$containerName = 'nextcloud-aio-mastercontainer';
$tag = $this->GetCurrentChannel();
From ac2c97a08ee41b539785f31815bddb4c37cec6c4 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Tue, 25 Mar 2025 10:45:35 +0100
Subject: [PATCH 0169/1064] Revert changes to helm-chart updates
Signed-off-by: Simon L.
---
.github/workflows/update-helm.yml | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/.github/workflows/update-helm.yml b/.github/workflows/update-helm.yml
index 83c35135..3065c4a9 100644
--- a/.github/workflows/update-helm.yml
+++ b/.github/workflows/update-helm.yml
@@ -14,8 +14,7 @@ jobs:
uses: actions/checkout@v4
- name: update helm chart
run: |
- GHCR_TOKEN="$(curl https://ghcr.io/token\?scope\="repository:nextcloud-releases/all-in-one:pull" | jq '.token')"
- DOCKER_TAG="$(curl -H "Authorization: Bearer ${GHCR_TOKEN}" -L -s 'https://ghcr.io/v2/nextcloud-releases/all-in-one/tags/list?page_size=1024' | jq '.tags' | sed 's|"||g' | grep '^20[0-9_]\+' | grep -v latest | sort -r | head -1)"
+ DOCKER_TAG="$(curl -L -s 'https://registry.hub.docker.com/v2/repositories/nextcloud/all-in-one/tags?page_size=1024' | jq '."results"[]["name"]' | sed 's|"||g' | grep '^20[0-9_]\+' | grep -v latest | sort -r | head -1)"
export DOCKER_TAG
if [ -n "$DOCKER_TAG" ] && ! grep -q "$DOCKER_TAG" ./nextcloud-aio-helm-chart/templates/nextcloud-aio-nextcloud-deployment.yaml; then
sudo bash nextcloud-aio-helm-chart/update-helm.sh "$DOCKER_TAG"
From 7f76f622e13661f8b2a86d6317a0f8223c5534ea Mon Sep 17 00:00:00 2001
From: szaimen <42591237+szaimen@users.noreply.github.com>
Date: Tue, 25 Mar 2025 09:46:29 +0000
Subject: [PATCH 0170/1064] 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 | 2 +-
.../templates/nextcloud-aio-clamav-deployment.yaml | 8 +++-----
.../templates/nextcloud-aio-collabora-deployment.yaml | 2 +-
.../templates/nextcloud-aio-database-deployment.yaml | 2 +-
.../nextcloud-aio-fulltextsearch-deployment.yaml | 2 +-
.../templates/nextcloud-aio-imaginary-deployment.yaml | 2 +-
.../templates/nextcloud-aio-nextcloud-deployment.yaml | 2 +-
.../templates/nextcloud-aio-notify-push-deployment.yaml | 2 +-
.../templates/nextcloud-aio-onlyoffice-deployment.yaml | 2 +-
.../templates/nextcloud-aio-redis-deployment.yaml | 2 +-
.../templates/nextcloud-aio-talk-deployment.yaml | 2 +-
.../nextcloud-aio-talk-recording-deployment.yaml | 2 +-
.../templates/nextcloud-aio-whiteboard-deployment.yaml | 2 +-
14 files changed, 16 insertions(+), 18 deletions(-)
diff --git a/nextcloud-aio-helm-chart/Chart.yaml b/nextcloud-aio-helm-chart/Chart.yaml
index a1bdc687..a9de2ae8 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: 10.7.0
+version: 10.9.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 8c67e748..b4e9e01c 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-apache-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-apache-deployment.yaml
@@ -61,7 +61,7 @@ spec:
value: "{{ .Values.TIMEZONE }}"
- name: WHITEBOARD_HOST
value: nextcloud-aio-whiteboard
- image: nextcloud/aio-apache:20250306_093458
+ image: nextcloud/aio-apache:20250325_084656
readinessProbe:
exec:
command:
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 8ed76d31..e1921203 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-clamav-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-clamav-deployment.yaml
@@ -55,17 +55,15 @@ spec:
{{- end }}
containers:
- env:
- - name: CLAMD_STARTUP_TIMEOUT
- value: "90"
- name: MAX_SIZE
value: "{{ .Values.NEXTCLOUD_UPLOAD_LIMIT }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
- image: nextcloud/aio-clamav:20250306_093458
+ image: nextcloud/aio-clamav:20250325_084656
readinessProbe:
exec:
command:
- - clamdcheck.sh
+ - /healthcheck.sh
failureThreshold: 9
initialDelaySeconds: 60
periodSeconds: 30
@@ -73,7 +71,7 @@ spec:
livenessProbe:
exec:
command:
- - clamdcheck.sh
+ - /healthcheck.sh
failureThreshold: 9
initialDelaySeconds: 60
periodSeconds: 30
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 08140b21..38d34bd0 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-collabora-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-collabora-deployment.yaml
@@ -35,7 +35,7 @@ spec:
value: --o:ssl.enable=false --o:ssl.termination=true --o:mount_jail_tree=false --o:logging.level=warning --o:home_mode.enable=true --o:remote_font_config.url=https://{{ .Values.NC_DOMAIN }}/apps/richdocuments/settings/fonts.json --o:net.post_allow.host[0]=.+
- name: server_name
value: "{{ .Values.NC_DOMAIN }}"
- image: nextcloud/aio-collabora:20250306_093458
+ image: nextcloud/aio-collabora:20250325_084656
readinessProbe:
exec:
command:
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 b96ddbb1..4d400202 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-database-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-database-deployment.yaml
@@ -64,7 +64,7 @@ spec:
value: nextcloud
- name: TZ
value: "{{ .Values.TIMEZONE }}"
- image: nextcloud/aio-postgresql:20250306_093458
+ image: nextcloud/aio-postgresql:20250325_084656
readinessProbe:
exec:
command:
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 3df053ec..0de772be 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-fulltextsearch-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-fulltextsearch-deployment.yaml
@@ -54,7 +54,7 @@ spec:
value: basic
- name: xpack.security.enabled
value: "false"
- image: nextcloud/aio-fulltextsearch:20250306_093458
+ image: nextcloud/aio-fulltextsearch:20250325_084656
readinessProbe:
exec:
command:
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 ed389199..5c922d36 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-imaginary-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-imaginary-deployment.yaml
@@ -38,7 +38,7 @@ spec:
value: "{{ .Values.IMAGINARY_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
- image: nextcloud/aio-imaginary:20250306_093458
+ image: nextcloud/aio-imaginary:20250325_084656
readinessProbe:
exec:
command:
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 d2bd1318..496cfed1 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-nextcloud-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-nextcloud-deployment.yaml
@@ -180,7 +180,7 @@ spec:
value: "{{ .Values.WHITEBOARD_ENABLED }}"
- name: WHITEBOARD_SECRET
value: "{{ .Values.WHITEBOARD_SECRET }}"
- image: nextcloud/aio-nextcloud:20250306_093458
+ image: nextcloud/aio-nextcloud:20250325_084656
{{- 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-notify-push-deployment.yaml b/nextcloud-aio-helm-chart/templates/nextcloud-aio-notify-push-deployment.yaml
index baab420b..b02d5d85 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
@@ -55,7 +55,7 @@ spec:
value: "{{ .Values.REDIS_PASSWORD }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
- image: nextcloud/aio-notify-push:20250306_093458
+ image: nextcloud/aio-notify-push:20250325_084656
readinessProbe:
exec:
command:
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 c04fd568..2a9db83a 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-onlyoffice-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-onlyoffice-deployment.yaml
@@ -42,7 +42,7 @@ spec:
value: "{{ .Values.ONLYOFFICE_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
- image: nextcloud/aio-onlyoffice:20250306_093458
+ image: nextcloud/aio-onlyoffice:20250325_084656
readinessProbe:
exec:
command:
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 e7a757fb..439ab944 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-redis-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-redis-deployment.yaml
@@ -39,7 +39,7 @@ spec:
value: "{{ .Values.REDIS_PASSWORD }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
- image: nextcloud/aio-redis:20250306_093458
+ image: nextcloud/aio-redis:20250325_084656
readinessProbe:
exec:
command:
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 e379d8f2..755a2f6a 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-talk-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-talk-deployment.yaml
@@ -52,7 +52,7 @@ spec:
value: "{{ .Values.TURN_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
- image: nextcloud/aio-talk:20250306_093458
+ image: nextcloud/aio-talk:20250325_084656
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 920cae8c..1967ff34 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
@@ -44,7 +44,7 @@ spec:
value: "{{ .Values.RECORDING_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
- image: nextcloud/aio-talk-recording:20250306_093458
+ image: nextcloud/aio-talk-recording:20250325_084656
readinessProbe:
exec:
command:
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 c6b25598..7d51f181 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-whiteboard-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-whiteboard-deployment.yaml
@@ -48,7 +48,7 @@ spec:
value: redis
- name: TZ
value: "{{ .Values.TIMEZONE }}"
- image: nextcloud/aio-whiteboard:20250306_093458
+ image: nextcloud/aio-whiteboard:20250325_084656
readinessProbe:
exec:
command:
From c65eb16a151099f34da46602264baa0bf8335b35 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Tue, 25 Mar 2025 10:47:12 +0100
Subject: [PATCH 0171/1064] Revert "Revert changes to helm-chart updates"
This reverts commit ac2c97a08ee41b539785f31815bddb4c37cec6c4.
---
.github/workflows/update-helm.yml | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/.github/workflows/update-helm.yml b/.github/workflows/update-helm.yml
index 3065c4a9..83c35135 100644
--- a/.github/workflows/update-helm.yml
+++ b/.github/workflows/update-helm.yml
@@ -14,7 +14,8 @@ jobs:
uses: actions/checkout@v4
- name: update helm chart
run: |
- DOCKER_TAG="$(curl -L -s 'https://registry.hub.docker.com/v2/repositories/nextcloud/all-in-one/tags?page_size=1024' | jq '."results"[]["name"]' | sed 's|"||g' | grep '^20[0-9_]\+' | grep -v latest | sort -r | head -1)"
+ GHCR_TOKEN="$(curl https://ghcr.io/token\?scope\="repository:nextcloud-releases/all-in-one:pull" | jq '.token')"
+ DOCKER_TAG="$(curl -H "Authorization: Bearer ${GHCR_TOKEN}" -L -s 'https://ghcr.io/v2/nextcloud-releases/all-in-one/tags/list?page_size=1024' | jq '.tags' | sed 's|"||g' | grep '^20[0-9_]\+' | grep -v latest | sort -r | head -1)"
export DOCKER_TAG
if [ -n "$DOCKER_TAG" ] && ! grep -q "$DOCKER_TAG" ./nextcloud-aio-helm-chart/templates/nextcloud-aio-nextcloud-deployment.yaml; then
sudo bash nextcloud-aio-helm-chart/update-helm.sh "$DOCKER_TAG"
From a4fa22ec221c53253bee620f8077b0d1ae5a053d Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Tue, 25 Mar 2025 10:49:03 +0100
Subject: [PATCH 0172/1064] increase to 10.10.0
Signed-off-by: Simon L.
---
php/templates/containers.twig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/php/templates/containers.twig b/php/templates/containers.twig
index b1f1901c..ce8a59cb 100644
--- a/php/templates/containers.twig
+++ b/php/templates/containers.twig
@@ -17,7 +17,7 @@
-
Nextcloud AIO v10.9.0
+
Nextcloud AIO v10.10.0
{# Add 2nd tab warning #}
From 13e9829a850ae27258b7e05f54849a3d33371cdb Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Tue, 25 Mar 2025 11:01:42 +0100
Subject: [PATCH 0173/1064] fix detail
Signed-off-by: Simon L.
---
Containers/mastercontainer/start.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Containers/mastercontainer/start.sh b/Containers/mastercontainer/start.sh
index 1a455626..dff289d3 100644
--- a/Containers/mastercontainer/start.sh
+++ b/Containers/mastercontainer/start.sh
@@ -285,7 +285,7 @@ fi
# Check if ghcr.io is reachable
# Solves issues like https://github.com/nextcloud/all-in-one/discussions/5268
-if ! curl https://ghcr.io 2>&1; then
+if ! curl https://ghcr.io &>/dev/null; then
print_red "Could not reach https://ghcr.io."
echo "Most likely is something blocking access to it."
echo "You should be able to fix this by using https://github.com/nextcloud/all-in-one/tree/main/manual-install"
From f7183b8d32b57cdd873b84c52d7c815503398e3d Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Tue, 25 Mar 2025 12:13:31 +0100
Subject: [PATCH 0174/1064] aio-interface: rename `isDockerHubReachable` to
`isRegistryReachable`
Signed-off-by: Simon L.
---
php/src/Controller/DockerController.php | 6 +++---
php/src/Docker/DockerActionManager.php | 2 +-
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/php/src/Controller/DockerController.php b/php/src/Controller/DockerController.php
index ee439824..6c55b3da 100644
--- a/php/src/Controller/DockerController.php
+++ b/php/src/Controller/DockerController.php
@@ -41,12 +41,12 @@ readonly class DockerController {
}
}
- // Check if docker hub is reachable in order to make sure that we do not try to pull an image if it is down
+ // Check if registry is reachable in order to make sure that we do not try to pull an image if it is down
// and try to mitigate issues that are arising due to that
if ($pullImage) {
- if (!$this->dockerActionManager->isDockerHubReachable($container)) {
+ if (!$this->dockerActionManager->isRegistryReachable($container)) {
$pullImage = false;
- error_log('Not pulling the ' . $container->GetContainerName() . ' image for the ' . $container->GetIdentifier() . ' container because docker hub does not seem to be reachable.');
+ error_log('Not pulling the ' . $container->GetContainerName() . ' image for the ' . $container->GetIdentifier() . ' container because the registry does not seem to be reachable.');
}
}
diff --git a/php/src/Docker/DockerActionManager.php b/php/src/Docker/DockerActionManager.php
index bbcd4b77..71242d92 100644
--- a/php/src/Docker/DockerActionManager.php
+++ b/php/src/Docker/DockerActionManager.php
@@ -599,7 +599,7 @@ readonly class DockerActionManager {
}
- public function isDockerHubReachable(Container $container): bool {
+ public function isRegistryReachable(Container $container): bool {
$tag = $container->GetImageTag();
if ($tag === '%AIO_CHANNEL%') {
$tag = $this->GetCurrentChannel();
From 328a85511f1bbbfc954e27da944e5dc5d0eb321c Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Tue, 25 Mar 2025 09:08:01 +0100
Subject: [PATCH 0175/1064] docs: nextcloud/all-in-one moved to ghcr.io
Signed-off-by: Simon L.
---
community-containers/readme.md | 2 +-
compose.yaml | 2 +-
manual-upgrade.md | 4 ++--
multiple-instances.md | 2 +-
php/README.md | 2 +-
readme.md | 44 +++++++++++++++++-----------------
reverse-proxy.md | 10 ++++----
7 files changed, 33 insertions(+), 33 deletions(-)
diff --git a/community-containers/readme.md b/community-containers/readme.md
index 0c82d6fe..07ba7602 100644
--- a/community-containers/readme.md
+++ b/community-containers/readme.md
@@ -7,7 +7,7 @@ All containers that are in this directory are community maintained so the respon
## How to use this?
Before adding any additional container, make sure to create a backup via the AIO interface!
-Afterwards, you might want to add additional community containers to the default AIO stack. You can do so by adding `--env AIO_COMMUNITY_CONTAINERS="container1 container2"` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used) and customize the value to your fitting. It must match the folder names in this directory! ⚠️⚠️⚠️ Please review the folder for documentation on each of the containers before adding them! Not reviewing the documentation for each of them first might break starting the AIO containers because e.g. fail2ban only works on Linux and not on Docker Desktop! **Hint:** If the containers where running already, in order to actually start the added container, you need to click on `Stop containers` and the `Update and start containers` in order to actually start it.
+Afterwards, you might want to add additional community containers to the default AIO stack. You can do so by adding `--env AIO_COMMUNITY_CONTAINERS="container1 container2"` to the docker run command of the mastercontainer (but before the last line `ghcr.io/nextcloud-releases/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used) and customize the value to your fitting. It must match the folder names in this directory! ⚠️⚠️⚠️ Please review the folder for documentation on each of the containers before adding them! Not reviewing the documentation for each of them first might break starting the AIO containers because e.g. fail2ban only works on Linux and not on Docker Desktop! **Hint:** If the containers where running already, in order to actually start the added container, you need to click on `Stop containers` and the `Update and start containers` in order to actually start it.
## How to add containers?
Simply submit a PR by creating a new folder in this directory: https://github.com/nextcloud/all-in-one/tree/main/community-containers with the name of your container. It must include a json file with the same name and with correct syntax and a readme.md with additional information. You might get inspired by caddy, fail2ban, local-ai, libretranslate, plex, pi-hole or vaultwarden (subfolders in this directory). For a full-blown example of the json file, see https://github.com/nextcloud/all-in-one/blob/main/php/containers.json. The json-schema that it validates against can be found here: https://github.com/nextcloud/all-in-one/blob/main/php/containers-schema.json.
diff --git a/compose.yaml b/compose.yaml
index a72fbf50..a2836446 100644
--- a/compose.yaml
+++ b/compose.yaml
@@ -1,6 +1,6 @@
services:
nextcloud-aio-mastercontainer:
- image: nextcloud/all-in-one:latest
+ image: ghcr.io/nextcloud-releases/all-in-one:latest
init: true
restart: always
container_name: nextcloud-aio-mastercontainer # This line is not allowed to be changed as otherwise AIO will not work correctly
diff --git a/manual-upgrade.md b/manual-upgrade.md
index 43aaebb2..c1478953 100644
--- a/manual-upgrade.md
+++ b/manual-upgrade.md
@@ -41,7 +41,7 @@ The only way to fix this on your side is upgrading regularly (e.g. by enabling d
- e.g. `nextcloud/aio-nextcloud:php8.0-latest` or `nextcloud/aio-nextcloud:php8.0-latest-arm64`
- - However, if you are unsure check the docker hub (https://hub.docker.com/r/nextcloud/aio-nextcloud/tags)
+ - However, if you are unsure check the ghcr.io (https://github.com/nextcloud-releases/all-in-one/pkgs/container/aio-nextcloud/versions?filters%5Bversion_type%5D=tagged)
- Using nano and the arrow keys to navigate:
- `sudo nano /tmp/nextcloud-aio-nextcloud` making changes as above, then `[Ctrl]+[o]` -> `[Enter]` and `[Ctrl]+[x]` to save and exit.
6. Next, stop and remove the current container:
@@ -95,7 +95,7 @@ Make **note** of the version which is compatible, rounding down to 1 digit after
##### 5. Find the correct container version
In general it should be ```nextcloud/aio-nextcloud:php8.x-latest-arm64``` or `nextcloud/aio-nextcloud:php8.x-latest` replacing `x` with the version you require.
-However, if you are unsure check the docker hub (https://hub.docker.com/r/nextcloud/aio-nextcloud/tags)
+However, if you are unsure check the ghcr.io (https://github.com/nextcloud-releases/all-in-one/pkgs/container/aio-nextcloud/versions?filters%5Bversion_type%5D=tagged)
##### 6. Replace the container
- Navigate to the ```nextcloud-aio-nextcloud``` container within portainer
diff --git a/multiple-instances.md b/multiple-instances.md
index f98f867a..00386e1b 100644
--- a/multiple-instances.md
+++ b/multiple-instances.md
@@ -149,7 +149,7 @@ apt install --no-install-recommends qemu-system qemu-utils libvirt-clients libvi
--env TALK_PORT=3478 \
--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config \
--volume /var/run/docker.sock:/var/run/docker.sock:ro \
- nextcloud/all-in-one:latest
+ ghcr.io/nextcloud-releases/all-in-one:latest
```
The last command may take a few minutes. When it's finished, you should see a success message, saying "Initial startup of Nextcloud All-in-One complete!". Now exit the console session with `Ctrl + [c]`. This concludes the setup for this particular VM.
diff --git a/php/README.md b/php/README.md
index 29ade4ae..af824818 100644
--- a/php/README.md
+++ b/php/README.md
@@ -34,7 +34,7 @@ docker run \
--name nextcloud-aio-mastercontainer \
--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config \
--volume /var/run/docker.sock:/var/run/docker.sock \
-nextcloud/all-in-one:latest
+ghcr.io/nextcloud-releases/all-in-one:latest
```
### 4. Start your server
diff --git a/readme.md b/readme.md
index 0eb92033..6e3a215c 100644
--- a/readme.md
+++ b/readme.md
@@ -111,7 +111,7 @@ curl -fsSL https://get.docker.com | sudo sh
--publish 8443:8443 \
--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config \
--volume /var/run/docker.sock:/var/run/docker.sock:ro \
- nextcloud/all-in-one:latest
+ ghcr.io/nextcloud-releases/all-in-one:latest
```
Explanation of the command
@@ -126,7 +126,7 @@ curl -fsSL https://get.docker.com | sudo sh
- `--publish 8443:8443` This means that port 8443 of the container should get published on the host using port 8443. If you publish port 80 and 8443 to the public internet, you can access the AIO interface via this port with a valid certificate. It is not needed if you run AIO behind a web server or reverse proxy and can get removed in that case as you can simply use port 8080 for the AIO interface then.
- `--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config` This means that the files that are created by the mastercontainer will be stored in a docker volume that is called `nextcloud_aio_mastercontainer`. This line is not allowed to be changed, since built-in backups would fail later on.
- `--volume /var/run/docker.sock:/var/run/docker.sock:ro` The docker socket is mounted into the container which is used for spinning up all the other containers and for further features. It needs to be adjusted on Windows/macOS and on docker rootless. See the applicable documentation on this. If adjusting, don't forget to also set `WATCHTOWER_DOCKER_SOCKET_PATH`! If you dislike this, see https://github.com/nextcloud/all-in-one/tree/main/manual-install.
- - `nextcloud/all-in-one:latest` This is the docker container image that is used.
+ - `ghcr.io/nextcloud-releases/all-in-one:latest` This is the docker container image that is used.
- Further options can be set using environment variables, for example `--env NEXTCLOUD_DATADIR="/mnt/ncdata"` (This is an example for Linux. See [this](https://github.com/nextcloud/all-in-one#how-to-change-the-default-location-of-nextclouds-datadir) for other OS' and for an explanation of what this value does. This specific one needs to be specified upon the first startup if you want to change it to a specific path instead of the default Docker volume). To see explanations and examples for further variables (like changing the location of Nextcloud's datadir or mounting some locations as external storage into the Nextcloud container), read through this readme and look at the docker-compose file: https://github.com/nextcloud/all-in-one/blob/main/compose.yaml
@@ -331,7 +331,7 @@ Now that this is out of the way, the recommended way how to access Nextcloud loc
Apart from that there is now a community container that can be added to the AIO stack: https://github.com/nextcloud/all-in-one/tree/main/community-containers/pi-hole
### How to skip the domain validation?
-If you are completely sure that you've configured everything correctly and are not able to pass the domain validation, you may skip the domain validation by adding `--env SKIP_DOMAIN_VALIDATION=true` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used).
+If you are completely sure that you've configured everything correctly and are not able to pass the domain validation, you may skip the domain validation by adding `--env SKIP_DOMAIN_VALIDATION=true` to the docker run command of the mastercontainer (but before the last line `ghcr.io/nextcloud-releases/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used).
### How to resolve firewall problems with Fedora Linux, RHEL OS, CentOS, SUSE Linux and others?
It is known that Linux distros that use [firewalld](https://firewalld.org) as their firewall daemon have problems with docker networks. In case the containers are not able to communicate with each other, you may change your firewalld to use the iptables backend by running:
@@ -344,7 +344,7 @@ Afterwards it should work.
See https://dev.to/ozorest/fedora-32-how-to-solve-docker-internal-network-issue-22me for more details on this. This limitation is even mentioned on the official firewalld website: https://firewalld.org/#who-is-using-it
### What can I do to fix the internal or reserved ip-address error?
-If you get an error during the domain validation which states that your ip-address is an internal or reserved ip-address, you can fix this by first making sure that your domain indeed has the correct public ip-address that points to the server and then adding `--add-host yourdomain.com:` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used) which will allow the domain validation to work correctly. And so that you know: even if the `A` record of your domain should change over time, this is no problem since the mastercontainer will not make any attempt to access the chosen domain after the initial domain validation.
+If you get an error during the domain validation which states that your ip-address is an internal or reserved ip-address, you can fix this by first making sure that your domain indeed has the correct public ip-address that points to the server and then adding `--add-host yourdomain.com:` to the docker run command of the mastercontainer (but before the last line `ghcr.io/nextcloud-releases/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used) which will allow the domain validation to work correctly. And so that you know: even if the `A` record of your domain should change over time, this is no problem since the mastercontainer will not make any attempt to access the chosen domain after the initial domain validation.
## Infrastructure
@@ -377,7 +377,7 @@ Yes. If SELinux is enabled, you might need to add the `--security-opt label:disa
> [!WARNING]
> Do not set or adjust this value after the initial Nextcloud installation is done! If you still want to do it afterwards, see [this](https://github.com/nextcloud/all-in-one/discussions/890#discussioncomment-3089903) on how to do it.
-You can configure the Nextcloud container to use a specific directory on your host as data directory. You can do so by adding the environmental variable `NEXTCLOUD_DATADIR` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used). Allowed values for that variable are strings that start with `/` and are not equal to `/`. The chosen directory or volume will then be mounted to `/mnt/ncdata` inside the container.
+You can configure the Nextcloud container to use a specific directory on your host as data directory. You can do so by adding the environmental variable `NEXTCLOUD_DATADIR` to the docker run command of the mastercontainer (but before the last line `ghcr.io/nextcloud-releases/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used). Allowed values for that variable are strings that start with `/` and are not equal to `/`. The chosen directory or volume will then be mounted to `/mnt/ncdata` inside the container.
- An example for Linux is `--env NEXTCLOUD_DATADIR="/mnt/ncdata"`. ⚠️ Please note: If you should be using an external BTRFS drive that is mounted to `/mnt/ncdata`, make sure to choose a subfolder like e.g. `/mnt/ncdata/nextcloud` as datadir, since the root folder is not suited as datadir in that case. See https://github.com/nextcloud/all-in-one/discussions/2696.
- On macOS it might be `--env NEXTCLOUD_DATADIR="/var/nextcloud-data"`
@@ -408,7 +408,7 @@ You can move the whole docker library and all its files including all Nextcloud
This should solve the problem.
### How to allow the Nextcloud container to access directories on the host?
-By default, the Nextcloud container is confined and cannot access directories on the host OS. You might want to change this when you are planning to use local external storage in Nextcloud to store some files outside the data directory and can do so by adding the environmental variable `NEXTCLOUD_MOUNT` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used). Allowed values for that variable are strings that start with `/` and are not equal to `/`.
+By default, the Nextcloud container is confined and cannot access directories on the host OS. You might want to change this when you are planning to use local external storage in Nextcloud to store some files outside the data directory and can do so by adding the environmental variable `NEXTCLOUD_MOUNT` to the docker run command of the mastercontainer (but before the last line `ghcr.io/nextcloud-releases/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used). Allowed values for that variable are strings that start with `/` and are not equal to `/`.
- Two examples for Linux are `--env NEXTCLOUD_MOUNT="/mnt/"` and `--env NEXTCLOUD_MOUNT="/media/"`.
- On macOS it might be `--env NEXTCLOUD_MOUNT="/Volumes/your_drive/"`
@@ -425,29 +425,29 @@ Be aware though that these locations will not be covered by the built-in backup
> If you can't see the type "local storage" in the external storage admin options, a restart of the containers from the AIO interface may be required.
### How to adjust the Talk port?
-By default will the talk container use port `3478/UDP` and `3478/TCP` for connections. This should be set to something higher than 1024! You can adjust the port by adding e.g. `--env TALK_PORT=3478` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used) and adjusting the port to your desired value. Best is to use a port over 1024, so e.g. 3479 to not run into this: https://github.com/nextcloud/all-in-one/discussions/2517
+By default will the talk container use port `3478/UDP` and `3478/TCP` for connections. This should be set to something higher than 1024! You can adjust the port by adding e.g. `--env TALK_PORT=3478` to the docker run command of the mastercontainer (but before the last line `ghcr.io/nextcloud-releases/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used) and adjusting the port to your desired value. Best is to use a port over 1024, so e.g. 3479 to not run into this: https://github.com/nextcloud/all-in-one/discussions/2517
### How to adjust the upload limit for Nextcloud?
-By default, public uploads to Nextcloud are limited to a max of 16G (logged in users can upload much bigger files using the webinterface or the mobile/desktop clients, since chunking is used in that case). You can adjust the upload limit by providing `--env NEXTCLOUD_UPLOAD_LIMIT=16G` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used) and customize the value to your fitting. It must start with a number and end with `G` e.g. `16G`.
+By default, public uploads to Nextcloud are limited to a max of 16G (logged in users can upload much bigger files using the webinterface or the mobile/desktop clients, since chunking is used in that case). You can adjust the upload limit by providing `--env NEXTCLOUD_UPLOAD_LIMIT=16G` to the docker run command of the mastercontainer (but before the last line `ghcr.io/nextcloud-releases/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used) and customize the value to your fitting. It must start with a number and end with `G` e.g. `16G`.
### How to adjust the max execution time for Nextcloud?
-By default, uploads to Nextcloud are limited to a max of 3600s. You can adjust the upload time limit by providing `--env NEXTCLOUD_MAX_TIME=3600` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used) and customize the value to your fitting. It must be a number e.g. `3600`.
+By default, uploads to Nextcloud are limited to a max of 3600s. You can adjust the upload time limit by providing `--env NEXTCLOUD_MAX_TIME=3600` to the docker run command of the mastercontainer (but before the last line `ghcr.io/nextcloud-releases/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used) and customize the value to your fitting. It must be a number e.g. `3600`.
### How to adjust the PHP memory limit for Nextcloud?
-By default, each PHP process in the Nextcloud container is limited to a max of 512 MB. You can adjust the memory limit by providing `--env NEXTCLOUD_MEMORY_LIMIT=512M` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used) and customize the value to your fitting. It must start with a number and end with `M` e.g. `1024M`.
+By default, each PHP process in the Nextcloud container is limited to a max of 512 MB. You can adjust the memory limit by providing `--env NEXTCLOUD_MEMORY_LIMIT=512M` to the docker run command of the mastercontainer (but before the last line `ghcr.io/nextcloud-releases/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used) and customize the value to your fitting. It must start with a number and end with `M` e.g. `1024M`.
### How to change the Nextcloud apps that are installed on the first startup?
-You might want to adjust the Nextcloud apps that are installed upon the first startup of the Nextcloud container. You can do so by adding `--env NEXTCLOUD_STARTUP_APPS="deck twofactor_totp tasks calendar contacts notes"` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used) and customize the value to your fitting. It must be a string with small letters a-z, 0-9, spaces and hyphens or '_'. You can disable shipped and by default enabled apps by adding a hyphen in front of the appid. E.g. `-contactsinteraction`.
+You might want to adjust the Nextcloud apps that are installed upon the first startup of the Nextcloud container. You can do so by adding `--env NEXTCLOUD_STARTUP_APPS="deck twofactor_totp tasks calendar contacts notes"` to the docker run command of the mastercontainer (but before the last line `ghcr.io/nextcloud-releases/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used) and customize the value to your fitting. It must be a string with small letters a-z, 0-9, spaces and hyphens or '_'. You can disable shipped and by default enabled apps by adding a hyphen in front of the appid. E.g. `-contactsinteraction`.
### How to add OS packages permanently to the Nextcloud container?
Some Nextcloud apps require additional external dependencies that must be bundled within Nextcloud container in order to work correctly. As we cannot put each and every dependency for all apps into the container - as this would make the project quickly unmaintainable - there is an official way in which you can add additional dependencies into the Nextcloud container. However note that doing this is disrecommended since we do not test Nextcloud apps that require external dependencies.
-You can do so by adding `--env NEXTCLOUD_ADDITIONAL_APKS="imagemagick dependency2 dependency3"` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used) and customize the value to your fitting. It must be a string with small letters a-z, digits 0-9, spaces, dots and hyphens or '_'. You can find available packages here: https://pkgs.alpinelinux.org/packages?branch=v3.21. By default `imagemagick` is added. If you want to keep it, you need to specify it as well.
+You can do so by adding `--env NEXTCLOUD_ADDITIONAL_APKS="imagemagick dependency2 dependency3"` to the docker run command of the mastercontainer (but before the last line `ghcr.io/nextcloud-releases/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used) and customize the value to your fitting. It must be a string with small letters a-z, digits 0-9, spaces, dots and hyphens or '_'. You can find available packages here: https://pkgs.alpinelinux.org/packages?branch=v3.21. By default `imagemagick` is added. If you want to keep it, you need to specify it as well.
### How to add PHP extensions permanently to the Nextcloud container?
Some Nextcloud apps require additional php extensions that must be bundled within Nextcloud container in order to work correctly. As we cannot put each and every dependency for all apps into the container - as this would make the project quickly unmaintainable - there is an official way in which you can add additional php extensions into the Nextcloud container. However note that doing this is disrecommended since we do not test Nextcloud apps that require additional php extensions.
-You can do so by adding `--env NEXTCLOUD_ADDITIONAL_PHP_EXTENSIONS="imagick extension1 extension2"` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used) and customize the value to your fitting. It must be a string with small letters a-z, digits 0-9, spaces, dots and hyphens or '_'. You can find available extensions here: https://pecl.php.net/packages.php. By default `imagick` is added. If you want to keep it, you need to specify it as well.
+You can do so by adding `--env NEXTCLOUD_ADDITIONAL_PHP_EXTENSIONS="imagick extension1 extension2"` to the docker run command of the mastercontainer (but before the last line `ghcr.io/nextcloud-releases/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used) and customize the value to your fitting. It must be a string with small letters a-z, digits 0-9, spaces, dots and hyphens or '_'. You can find available extensions here: https://pecl.php.net/packages.php. By default `imagick` is added. If you want to keep it, you need to specify it as well.
### What about the pdlib PHP extension for the facerecognition app?
The [facerecognition app](https://apps.nextcloud.com/apps/facerecognition) requires the pdlib PHP extension to be installed. Unfortunately, it is not available on PECL nor via PHP core, so there is no way to add this into AIO currently. However you can use [this community container](https://github.com/nextcloud/all-in-one/tree/main/community-containers/facerecognition) in order to run facerecognition.
@@ -464,7 +464,7 @@ A list of supported device can be fond in [MESA 3D documentation](https://docs.m
This method use the [Direct Rendering Infrastructure](https://dri.freedesktop.org/wiki/) with the access to the `/dev/dri` device.
-In order to use that, you need to add `--env NEXTCLOUD_ENABLE_DRI_DEVICE=true` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used) which will mount the `/dev/dri` device into the container.
+In order to use that, you need to add `--env NEXTCLOUD_ENABLE_DRI_DEVICE=true` to the docker run command of the mastercontainer (but before the last line `ghcr.io/nextcloud-releases/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used) which will mount the `/dev/dri` device into the container.
#### With proprietary drivers for Nvidia :warning: BETA
@@ -476,19 +476,19 @@ In order to use that, you need to add `--env NEXTCLOUD_ENABLE_DRI_DEVICE=true` t
This method use the [Nvidia Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/index.html) with the nvidia runtime.
-In order to use that, you need to add `--env NEXTCLOUD_ENABLE_NVIDIA_GPU=true` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used) which will enable the nvidia runtime.
+In order to use that, you need to add `--env NEXTCLOUD_ENABLE_NVIDIA_GPU=true` to the docker run command of the mastercontainer (but before the last line `ghcr.io/nextcloud-releases/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used) which will enable the nvidia runtime.
If you're using WSL2 and want to use the NVIDIA runtime, please follow the instructions to [install the NVIDIA Container Toolkit meta-version in WSL](https://docs.nvidia.com/cuda/wsl-user-guide/index.html#cuda-support-for-wsl-2).
### How to keep disabled apps?
-In certain situations you might want to keep Nextcloud apps that are disabled in the AIO interface and not uninstall them if they should be installed in Nextcloud. You can do so by adding `--env NEXTCLOUD_KEEP_DISABLED_APPS=true` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used).
+In certain situations you might want to keep Nextcloud apps that are disabled in the AIO interface and not uninstall them if they should be installed in Nextcloud. You can do so by adding `--env NEXTCLOUD_KEEP_DISABLED_APPS=true` to the docker run command of the mastercontainer (but before the last line `ghcr.io/nextcloud-releases/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used).
> [!WARNING]
> Doing this might cause unintended problems in Nextcloud if an app that requires an external dependency is still installed but the external dependency not for example.
### How to trust user-defined Certification Authorities (CA)?
For some applications it might be necessary to establish a secure connection to another host/server which is using a certificate issued by a Certification Authority that is not trusted out of the box. An example could be configuring LDAPS against a domain controller (Active Directory or Samba-based) of an organization.
-You can make the Nextcloud container trust any Certification Authority by providing the environmental variable `NEXTCLOUD_TRUSTED_CACERTS_DIR` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used). The value of the variables should be set to the absolute paths of the directory on the host, which contains one or more Certification Authorities certificates. You should use X.509 certificates, Base64 encoded. (Other formats may work but have not been tested!) All the certificates in the directory will be trusted.
+You can make the Nextcloud container trust any Certification Authority by providing the environmental variable `NEXTCLOUD_TRUSTED_CACERTS_DIR` to the docker run command of the mastercontainer (but before the last line `ghcr.io/nextcloud-releases/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used). The value of the variables should be set to the absolute paths of the directory on the host, which contains one or more Certification Authorities certificates. You should use X.509 certificates, Base64 encoded. (Other formats may work but have not been tested!) All the certificates in the directory will be trusted.
When using `docker run`, the environmental variable can be set with `--env NEXTCLOUD_TRUSTED_CACERTS_DIR=/path/to/my/cacerts`.
@@ -521,7 +521,7 @@ docker run ^
--publish 8443:8443 ^
--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config ^
--volume //var/run/docker.sock:/var/run/docker.sock:ro ^
-nextcloud/all-in-one:latest
+ghcr.io/nextcloud-releases/all-in-one:latest
```
Also, you may be interested in adjusting Nextcloud's Datadir to store the files on the host system. See [this documentation](https://github.com/nextcloud/all-in-one#how-to-change-the-default-location-of-nextclouds-datadir) on how to do it.
@@ -530,7 +530,7 @@ Also, you may be interested in adjusting Nextcloud's Datadir to store the files
> Almost all commands in this project's documentation use `sudo docker ...`. Since `sudo` is not available on Windows, you simply remove `sudo` from the commands and they should work.
### How to run AIO on Synology DSM
-On Synology, there are two things different in comparison to Linux: instead of using `--volume /var/run/docker.sock:/var/run/docker.sock:ro`, you need to use `--volume /volume1/docker/docker.sock:/var/run/docker.sock:ro` to run it. You also need to add `--env WATCHTOWER_DOCKER_SOCKET_PATH="/volume1/docker/docker.sock"`to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`). Apart from that it should work and behave the same like on Linux. Obviously the Synology Docker GUI will not work with that so you will need to either use SSH or create a user-defined script task in the task scheduler as the user 'root' in order to run the command.
+On Synology, there are two things different in comparison to Linux: instead of using `--volume /var/run/docker.sock:/var/run/docker.sock:ro`, you need to use `--volume /volume1/docker/docker.sock:/var/run/docker.sock:ro` to run it. You also need to add `--env WATCHTOWER_DOCKER_SOCKET_PATH="/volume1/docker/docker.sock"`to the docker run command of the mastercontainer (but before the last line `ghcr.io/nextcloud-releases/all-in-one:latest`). Apart from that it should work and behave the same like on Linux. Obviously the Synology Docker GUI will not work with that so you will need to either use SSH or create a user-defined script task in the task scheduler as the user 'root' in order to run the command.
> [!NOTE]
> It is possible that the docker socket on your Synology is located in `/var/run/docker.sock` like the default on Linux. Then you can just use the Linux command without having to change anything - you will notice this when you try to start the container and it says that the bind mount failed. E.g. `docker: Error response from daemon: Bind mount failed: '/volume1/docker/docker.sock' does not exists.`
@@ -576,7 +576,7 @@ See [multiple-instances.md](./multiple-instances.md) for some documentation on t
Nextcloud features a built-in bruteforce protection which may get triggered and will block an ip-address or disable a user. You can unblock an ip-address by running `sudo docker exec --user www-data -it nextcloud-aio-nextcloud php occ security:bruteforce:reset ` and enable a disabled user by running `sudo docker exec --user www-data -it nextcloud-aio-nextcloud php occ user:enable `. See https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/occ_command.html#security for further information.
### How to switch the channel?
-You can switch to a different channel like e.g. the beta channel or from the beta channel back to the latest channel by stopping the mastercontainer, removing it (no data will be lost) and recreating the container using the same command that you used initially to create the mastercontainer. You simply need to change the last line `nextcloud/all-in-one:latest` to `nextcloud/all-in-one:beta` and vice versa.
+You can switch to a different channel like e.g. the beta channel or from the beta channel back to the latest channel by stopping the mastercontainer, removing it (no data will be lost) and recreating the container using the same command that you used initially to create the mastercontainer. You simply need to change the last line `ghcr.io/nextcloud-releases/all-in-one:latest` to `ghcr.io/nextcloud-releases/all-in-one:beta` and vice versa.
### How to update the containers?
If we push new containers to `latest`, you will see in the AIO interface below the `containers` section that new container updates were found. In this case, just press `Stop containers` and `Start and update containers` in order to update the containers. The mastercontainer has its own update procedure though. See below. And don't forget to back up the current state of your instance using the built-in backup solution before starting the containers again! Otherwise you won't be able to restore your instance easily if something should break during the update.
@@ -785,7 +785,7 @@ Be aware that this solution does not back up files and folders that are mounted
Backed up will get all important data of your Nextcloud AIO instance required to restore the instance, like the database, your files and configuration files of the mastercontainer and else. Files and folders that are mounted into Nextcloud using the external storage app are not getting backed up. There is currently no way to exclude the data directory because it would require hacks like running files:scan and would make the backup solution much more unreliable (since the database and your files/folders need to stay in sync). If you still don't want your datadirectory to be backed up, see https://github.com/nextcloud/all-in-one#how-to-enable-automatic-updates-without-creating-a-backup-beforehand for options (there is a hint what needs to be backed up in which order).
### How to adjust borgs retention policy?
-The built-in borg-based backup solution has by default a retention policy of `--keep-within=7d --keep-weekly=4 --keep-monthly=6`. See https://borgbackup.readthedocs.io/en/stable/usage/prune.html for what these values mean. You can adjust the retention policy by providing `--env BORG_RETENTION_POLICY="--keep-within=7d --keep-weekly=4 --keep-monthly=6"` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used) and customize the value to your fitting. ⚠️ Please make sure that this value is valid, otherwise backup pruning will bug out!
+The built-in borg-based backup solution has by default a retention policy of `--keep-within=7d --keep-weekly=4 --keep-monthly=6`. See https://borgbackup.readthedocs.io/en/stable/usage/prune.html for what these values mean. You can adjust the retention policy by providing `--env BORG_RETENTION_POLICY="--keep-within=7d --keep-weekly=4 --keep-monthly=6"` to the docker run command of the mastercontainer (but before the last line `ghcr.io/nextcloud-releases/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used) and customize the value to your fitting. ⚠️ Please make sure that this value is valid, otherwise backup pruning will bug out!
### How to migrate from AIO to AIO?
If you have the borg backup feature enabled, you can copy it over to the new host and restore from the backup. This guide assumes the new installation data dir will be on `/mnt/datadir`, you can adjust the steps if it's elsewhere.
@@ -1037,7 +1037,7 @@ One example for this would be `sudo docker exec -it --env DAILY_BACKUP=1 nextclo
> None of the option returns error codes. So you need to check for the correct result yourself.
### How to disable the backup section?
-If you already have a backup solution in place, you may want to hide the backup section. You can do so by adding `--env AIO_DISABLE_BACKUP_SECTION=true` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used).
+If you already have a backup solution in place, you may want to hide the backup section. You can do so by adding `--env AIO_DISABLE_BACKUP_SECTION=true` to the docker run command of the mastercontainer (but before the last line `ghcr.io/nextcloud-releases/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used).
## Addons
diff --git a/reverse-proxy.md b/reverse-proxy.md
index a2b00abd..5835b283 100644
--- a/reverse-proxy.md
+++ b/reverse-proxy.md
@@ -26,7 +26,7 @@ sudo docker run \
--env SKIP_DOMAIN_VALIDATION=false \
--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config \
--volume /var/run/docker.sock:/var/run/docker.sock:ro \
-nextcloud/all-in-one:latest
+ghcr.io/nextcloud-releases/all-in-one:latest
```
@@ -45,7 +45,7 @@ nextcloud/all-in-one:latest
- `--env SKIP_DOMAIN_VALIDATION=false` This can be set to `true` if the domain validation does not work and you are sure that you configured everything correctly after you followed [the debug documentation](#6-how-to-debug-things).
- `--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config` This means that the files that are created by the mastercontainer will be stored in a docker volume that is called `nextcloud_aio_mastercontainer`. This line is not allowed to be changed, since built-in backups would fail later on.
- `--volume /var/run/docker.sock:/var/run/docker.sock:ro` The docker socket is mounted into the container which is used for spinning up all the other containers and for further features. It needs to be adjusted on Windows/macOS and on docker rootless. See the applicable documentation on this. If adjusting, don't forget to also set `WATCHTOWER_DOCKER_SOCKET_PATH`! If you dislike this, see https://github.com/nextcloud/all-in-one/tree/main/manual-install.
-- `nextcloud/all-in-one:latest` This is the docker container image that is used.
+- `ghcr.io/nextcloud-releases/all-in-one:latest` This is the docker container image that is used.
- Further options can be set using environment variables, for example `--env NEXTCLOUD_DATADIR="/mnt/ncdata"` (This is an example for Linux. See [this](https://github.com/nextcloud/all-in-one#how-to-change-the-default-location-of-nextclouds-datadir) for other OS' and for an explanation of what this value does. This specific one needs to be specified upon the first startup if you want to change it to a specific path instead of the default Docker volume). To see explanations and examples for further variables (like changing the location of Nextcloud's datadir or mounting some locations as external storage into the Nextcloud container), read through this readme and look at the docker-compose file: https://github.com/nextcloud/all-in-one/blob/main/compose.yaml
@@ -231,7 +231,7 @@ You can get AIO running using the ACME DNS-challenge. Here is how to do it.
You also need to adjust `` and `` to match your case.
-1. Now continue with [point 2](#2-use-this-startup-command) but additionally, add `--env SKIP_DOMAIN_VALIDATION=true` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`) which will disable the domain validation (because it is known that the domain validation will not work when using the DNS-challenge since no port is publicly opened).
+1. Now continue with [point 2](#2-use-this-startup-command) but additionally, add `--env SKIP_DOMAIN_VALIDATION=true` to the docker run command of the mastercontainer (but before the last line `ghcr.io/nextcloud-releases/all-in-one:latest`) which will disable the domain validation (because it is known that the domain validation will not work when using the DNS-challenge since no port is publicly opened).
**Advice:** In order to make it work in your home network, you may add the internal ipv4-address of your reverse proxy as A DNS-record to your domain and disable the dns-rebind-protection in your router. Another way it to set up a local dns-server like a pi-hole and set up a custom dns-record for that domain that points to the internal ip-adddress of your reverse proxy (see https://github.com/nextcloud/all-in-one#how-can-i-access-nextcloud-locally). If both is not possible, you may add the domain to the hosts file which is needed then for any devices that shall use the server.
@@ -845,7 +845,7 @@ sudo docker run \
--env SKIP_DOMAIN_VALIDATION=false \
--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config \
--volume /var/run/docker.sock:/var/run/docker.sock:ro \
-nextcloud/all-in-one:latest
+ghcr.io/nextcloud-releases/all-in-one:latest
```
Note: you may be interested in adjusting Nextcloud’s datadir to store the files in a different location than the default docker volume. See [this documentation](https://github.com/nextcloud/all-in-one#how-to-change-the-default-location-of-nextclouds-datadir) on how to do it.
@@ -873,7 +873,7 @@ docker run ^
--env SKIP_DOMAIN_VALIDATION=false ^
--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config ^
--volume //var/run/docker.sock:/var/run/docker.sock:ro ^
-nextcloud/all-in-one:latest
+ghcr.io/nextcloud-releases/all-in-one:latest
```
Also, you may be interested in adjusting Nextcloud's Datadir to store the files on the host system. See [this documentation](https://github.com/nextcloud/all-in-one#how-to-change-the-default-location-of-nextclouds-datadir) on how to do it.
From 23d0fd0cef46676b5351416b0f55b54ac2b2362d Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Tue, 25 Mar 2025 15:15:21 +0100
Subject: [PATCH 0176/1064] move szaimens community containers to ghcr.io
Signed-off-by: Simon L.
---
community-containers/borgbackup-viewer/borgbackup-viewer.json | 2 +-
community-containers/caddy/caddy.json | 2 +-
community-containers/fail2ban/fail2ban.json | 2 +-
community-containers/libretranslate/libretranslate.json | 2 +-
community-containers/local-ai/local-ai.json | 2 +-
community-containers/scrutiny/scrutiny.json | 2 +-
community-containers/smbserver/smbserver.json | 2 +-
7 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/community-containers/borgbackup-viewer/borgbackup-viewer.json b/community-containers/borgbackup-viewer/borgbackup-viewer.json
index 9b5c58e5..7f9bb0a0 100644
--- a/community-containers/borgbackup-viewer/borgbackup-viewer.json
+++ b/community-containers/borgbackup-viewer/borgbackup-viewer.json
@@ -5,7 +5,7 @@
"image_tag": "v1",
"display_name": "Borg Backup Viewer",
"documentation": "https://github.com/nextcloud/all-in-one/tree/main/community-containers/borgbackup-viewer",
- "image": "szaimen/aio-borgbackup-viewer",
+ "image": "ghcr.io/szaimen/aio-borgbackup-viewer",
"internal_port": "5801",
"ports": [
{
diff --git a/community-containers/caddy/caddy.json b/community-containers/caddy/caddy.json
index 47fef1db..d5f72cb8 100644
--- a/community-containers/caddy/caddy.json
+++ b/community-containers/caddy/caddy.json
@@ -4,7 +4,7 @@
"container_name": "nextcloud-aio-caddy",
"display_name": "Caddy with geoblocking",
"documentation": "https://github.com/nextcloud/all-in-one/tree/main/community-containers/caddy",
- "image": "szaimen/aio-caddy",
+ "image": "ghcr.io/szaimen/aio-caddy",
"image_tag": "v2",
"internal_port": "443",
"restart": "unless-stopped",
diff --git a/community-containers/fail2ban/fail2ban.json b/community-containers/fail2ban/fail2ban.json
index dbc733d4..78bf0a85 100644
--- a/community-containers/fail2ban/fail2ban.json
+++ b/community-containers/fail2ban/fail2ban.json
@@ -4,7 +4,7 @@
"container_name": "nextcloud-aio-fail2ban",
"display_name": "Fail2ban",
"documentation": "https://github.com/nextcloud/all-in-one/tree/main/community-containers/fail2ban",
- "image": "szaimen/aio-fail2ban",
+ "image": "ghcr.io/szaimen/aio-fail2ban",
"image_tag": "v1",
"internal_port": "host",
"restart": "unless-stopped",
diff --git a/community-containers/libretranslate/libretranslate.json b/community-containers/libretranslate/libretranslate.json
index 80312a9a..98970db4 100644
--- a/community-containers/libretranslate/libretranslate.json
+++ b/community-containers/libretranslate/libretranslate.json
@@ -4,7 +4,7 @@
"container_name": "nextcloud-aio-libretranslate",
"display_name": "LibreTranslate",
"documentation": "https://github.com/nextcloud/all-in-one/tree/main/community-containers/libretranslate",
- "image": "szaimen/aio-libretranslate",
+ "image": "ghcr.io/szaimen/aio-libretranslate",
"image_tag": "v1",
"internal_port": "5000",
"restart": "unless-stopped",
diff --git a/community-containers/local-ai/local-ai.json b/community-containers/local-ai/local-ai.json
index 6242a3b9..8e2aedb3 100644
--- a/community-containers/local-ai/local-ai.json
+++ b/community-containers/local-ai/local-ai.json
@@ -4,7 +4,7 @@
"container_name": "nextcloud-aio-local-ai",
"display_name": "Local AI",
"documentation": "https://github.com/nextcloud/all-in-one/tree/main/community-containers/local-ai",
- "image": "szaimen/aio-local-ai",
+ "image": "ghcr.io/szaimen/aio-local-ai",
"image_tag": "v2",
"internal_port": "8080",
"restart": "unless-stopped",
diff --git a/community-containers/scrutiny/scrutiny.json b/community-containers/scrutiny/scrutiny.json
index 7fe369c5..4b368291 100644
--- a/community-containers/scrutiny/scrutiny.json
+++ b/community-containers/scrutiny/scrutiny.json
@@ -4,7 +4,7 @@
"container_name": "nextcloud-aio-scrutiny",
"display_name": "Scrutiny",
"documentation": "https://github.com/nextcloud/all-in-one/tree/main/community-containers/scrutiny",
- "image": "szaimen/aio-scrutiny",
+ "image": "ghcr.io/szaimen/aio-scrutiny",
"image_tag": "v1",
"internal_port": "8000",
"init": false,
diff --git a/community-containers/smbserver/smbserver.json b/community-containers/smbserver/smbserver.json
index c6269134..d095eb7a 100644
--- a/community-containers/smbserver/smbserver.json
+++ b/community-containers/smbserver/smbserver.json
@@ -4,7 +4,7 @@
"container_name": "nextcloud-aio-smbserver",
"display_name": "SMB-server",
"documentation": "https://github.com/nextcloud/all-in-one/tree/main/community-containers/smbserver",
- "image": "szaimen/aio-smbserver",
+ "image": "ghcr.io/szaimen/aio-smbserver",
"image_tag": "v1",
"internal_port": "5803",
"restart": "unless-stopped",
From 627c2d3192feba2f4ba562cb5f62e20ad0408aaa Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 26 Mar 2025 04:38:04 +0000
Subject: [PATCH 0177/1064] build(deps): bump elasticsearch in
/Containers/fulltextsearch
Bumps elasticsearch from 8.17.3 to 8.17.4.
---
updated-dependencies:
- dependency-name: elasticsearch
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
Containers/fulltextsearch/Dockerfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Containers/fulltextsearch/Dockerfile b/Containers/fulltextsearch/Dockerfile
index 8cdaef6a..2299f0f5 100644
--- a/Containers/fulltextsearch/Dockerfile
+++ b/Containers/fulltextsearch/Dockerfile
@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:latest
# Probably from here https://github.com/elastic/elasticsearch/blob/main/distribution/docker/src/docker/Dockerfile
-FROM elasticsearch:8.17.3
+FROM elasticsearch:8.17.4
USER root
From d3ac48f352340a928c903ee3fa176ec77547340a Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Wed, 26 Mar 2025 10:45:15 +0100
Subject: [PATCH 0178/1064] add a note to `NEXTCLOUD_TRUSTED_CACERTS_DIR`
Signed-off-by: Simon L.
---
readme.md | 3 +++
1 file changed, 3 insertions(+)
diff --git a/readme.md b/readme.md
index 0eb92033..2b0f731a 100644
--- a/readme.md
+++ b/readme.md
@@ -486,6 +486,9 @@ In certain situations you might want to keep Nextcloud apps that are disabled in
> Doing this might cause unintended problems in Nextcloud if an app that requires an external dependency is still installed but the external dependency not for example.
### How to trust user-defined Certification Authorities (CA)?
+> [!NOTE]
+> Please note, that this feature is only intended to make LDAPS connections with self-signed certificates work. It will not make other interconnectivity between the different containers work, as they expect a valid publicly trusted certificate like one from Let's Encrypt.
+
For some applications it might be necessary to establish a secure connection to another host/server which is using a certificate issued by a Certification Authority that is not trusted out of the box. An example could be configuring LDAPS against a domain controller (Active Directory or Samba-based) of an organization.
You can make the Nextcloud container trust any Certification Authority by providing the environmental variable `NEXTCLOUD_TRUSTED_CACERTS_DIR` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used). The value of the variables should be set to the absolute paths of the directory on the host, which contains one or more Certification Authorities certificates. You should use X.509 certificates, Base64 encoded. (Other formats may work but have not been tested!) All the certificates in the directory will be trusted.
From 9e0f5b31d202930f64d7c76af40f5ceae398a700 Mon Sep 17 00:00:00 2001
From: Zoey
Date: Wed, 26 Mar 2025 12:21:45 +0100
Subject: [PATCH 0179/1064] fix #6230
Signed-off-by: Zoey
---
Containers/clamav/supervisord.conf | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Containers/clamav/supervisord.conf b/Containers/clamav/supervisord.conf
index 8f5c81a1..8f53856a 100644
--- a/Containers/clamav/supervisord.conf
+++ b/Containers/clamav/supervisord.conf
@@ -13,7 +13,7 @@ stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0
-command=freshclam --foreground --stdout --daemon
+command=freshclam --foreground --stdout --daemon --daemon-notify=/tmp/clamd.conf
[program:clamd]
stdout_logfile=/dev/stdout
From ca151e86ac2b40b34abdd601ac47eff0d4b8043e Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Wed, 26 Mar 2025 18:27:44 +0100
Subject: [PATCH 0180/1064] watchtower: install from github repo to fix some
security issues
Signed-off-by: Simon L.
---
Containers/watchtower/Dockerfile | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/Containers/watchtower/Dockerfile b/Containers/watchtower/Dockerfile
index 8bd5da34..a6940d40 100644
--- a/Containers/watchtower/Dockerfile
+++ b/Containers/watchtower/Dockerfile
@@ -1,14 +1,18 @@
# syntax=docker/dockerfile:latest
-# From https://github.com/containrrr/watchtower/blob/main/dockerfiles/Dockerfile.self-contained
-FROM containrrr/watchtower:1.7.1 AS watchtower
+FROM golang:1.24.1-alpine3.21 AS go
+
+RUN set -ex; \
+ apk add --no-cache \
+ build-base; \
+ go install github.com/containrrr/watchtower@76f9cea516593fabb8ca91ff13de55caa6aa0a8b;
FROM alpine:3.21.3
RUN set -ex; \
apk upgrade --no-cache -a; \
- apk add --no-cache bash
+ apk add --no-cache bash ca-certificates tzdata
-COPY --from=watchtower /watchtower /watchtower
+COPY --from=go /go/bin/watchtower /usr/local/bin/watchtower
COPY --chmod=775 start.sh /start.sh
From c5a9da8bb37c131cbbd2d71529345c7fc3123663 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Wed, 26 Mar 2025 18:39:32 +0100
Subject: [PATCH 0181/1064] run apk upgrade everywhere
Signed-off-by: Simon L.
---
Containers/imaginary/Dockerfile | 3 ++-
Containers/talk/Dockerfile | 1 +
Containers/watchtower/Dockerfile | 1 +
3 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/Containers/imaginary/Dockerfile b/Containers/imaginary/Dockerfile
index 9d2fd11d..cb6dbbe5 100644
--- a/Containers/imaginary/Dockerfile
+++ b/Containers/imaginary/Dockerfile
@@ -1,9 +1,10 @@
# syntax=docker/dockerfile:latest
FROM golang:1.24.1-alpine3.21 AS go
-ENV IMAGINARY_HASH=1d4e251cfcd58ea66f8361f8721d7b8cc85002a3
+ENV IMAGINARY_HASH=1d4e251cfcd58ea66f8361f8721d7b8cc85002a3
RUN set -ex; \
+ apk upgrade --no-cache -a; \
apk add --no-cache \
vips-dev \
vips-magick \
diff --git a/Containers/talk/Dockerfile b/Containers/talk/Dockerfile
index 915b4789..00d2153f 100644
--- a/Containers/talk/Dockerfile
+++ b/Containers/talk/Dockerfile
@@ -7,6 +7,7 @@ FROM alpine:3.21.3 AS janus
ARG JANUS_VERSION=v1.3.1
WORKDIR /src
RUN set -ex; \
+ apk upgrade --no-cache -a; \
apk add --no-cache \
ca-certificates \
git \
diff --git a/Containers/watchtower/Dockerfile b/Containers/watchtower/Dockerfile
index a6940d40..aad4f935 100644
--- a/Containers/watchtower/Dockerfile
+++ b/Containers/watchtower/Dockerfile
@@ -2,6 +2,7 @@
FROM golang:1.24.1-alpine3.21 AS go
RUN set -ex; \
+ apk upgrade --no-cache -a; \
apk add --no-cache \
build-base; \
go install github.com/containrrr/watchtower@76f9cea516593fabb8ca91ff13de55caa6aa0a8b;
From 80920778fbc5a5cf08e279ab228b9bc1e3be0790 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Wed, 26 Mar 2025 18:55:50 +0100
Subject: [PATCH 0182/1064] update update-helm with correct syntax
Signed-off-by: Simon L.
---
.github/workflows/update-helm.yml | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/.github/workflows/update-helm.yml b/.github/workflows/update-helm.yml
index 83c35135..0a97ee87 100644
--- a/.github/workflows/update-helm.yml
+++ b/.github/workflows/update-helm.yml
@@ -14,9 +14,11 @@ jobs:
uses: actions/checkout@v4
- name: update helm chart
run: |
- GHCR_TOKEN="$(curl https://ghcr.io/token\?scope\="repository:nextcloud-releases/all-in-one:pull" | jq '.token')"
+ set -x
+ GHCR_TOKEN="$(curl https://ghcr.io/token?scope=repository:nextcloud-releases/nce-php-fpm-mgmt:pull | jq '.token' | sed 's|"||g')"
DOCKER_TAG="$(curl -H "Authorization: Bearer ${GHCR_TOKEN}" -L -s 'https://ghcr.io/v2/nextcloud-releases/all-in-one/tags/list?page_size=1024' | jq '.tags' | sed 's|"||g' | grep '^20[0-9_]\+' | grep -v latest | sort -r | head -1)"
export DOCKER_TAG
+ set +x
if [ -n "$DOCKER_TAG" ] && ! grep -q "$DOCKER_TAG" ./nextcloud-aio-helm-chart/templates/nextcloud-aio-nextcloud-deployment.yaml; then
sudo bash nextcloud-aio-helm-chart/update-helm.sh "$DOCKER_TAG"
fi
From 25c580bca370eaead5f1fad9d3842a9c49562dff Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Wed, 26 Mar 2025 19:00:31 +0100
Subject: [PATCH 0183/1064] fix update-helm by removing spaces
Signed-off-by: Simon L.
---
.github/workflows/update-helm.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/update-helm.yml b/.github/workflows/update-helm.yml
index 0a97ee87..75aaceb5 100644
--- a/.github/workflows/update-helm.yml
+++ b/.github/workflows/update-helm.yml
@@ -16,7 +16,7 @@ jobs:
run: |
set -x
GHCR_TOKEN="$(curl https://ghcr.io/token?scope=repository:nextcloud-releases/nce-php-fpm-mgmt:pull | jq '.token' | sed 's|"||g')"
- DOCKER_TAG="$(curl -H "Authorization: Bearer ${GHCR_TOKEN}" -L -s 'https://ghcr.io/v2/nextcloud-releases/all-in-one/tags/list?page_size=1024' | jq '.tags' | sed 's|"||g' | grep '^20[0-9_]\+' | grep -v latest | sort -r | head -1)"
+ DOCKER_TAG="$(curl -H "Authorization: Bearer ${GHCR_TOKEN}" -L -s 'https://ghcr.io/v2/nextcloud-releases/all-in-one/tags/list?page_size=1024' | jq '.tags' | sed 's|"||g;s|[[:space:]]||g' | grep '^20[0-9_]\+' | grep -v latest | sort -r | head -1)"
export DOCKER_TAG
set +x
if [ -n "$DOCKER_TAG" ] && ! grep -q "$DOCKER_TAG" ./nextcloud-aio-helm-chart/templates/nextcloud-aio-nextcloud-deployment.yaml; then
From f415bba72b4e83e9c76524858d465035802c688e Mon Sep 17 00:00:00 2001
From: Zoey
Date: Wed, 26 Mar 2025 21:28:05 +0100
Subject: [PATCH 0184/1064] link to borg logs while borg is running
Not sure if mastercontainer is wanted, but I think it should link to borgs logs
Signed-off-by: Zoey
---
php/templates/containers.twig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/php/templates/containers.twig b/php/templates/containers.twig
index ce8a59cb..42860e6d 100644
--- a/php/templates/containers.twig
+++ b/php/templates/containers.twig
@@ -60,7 +60,7 @@
{% endfor %}
{% if is_daily_backup_running == true %}
-
{# Add 2nd tab warning #}
From d04d7c9fab979a4ffd1a5453d0a9803f188cd64f Mon Sep 17 00:00:00 2001
From: szaimen <42591237+szaimen@users.noreply.github.com>
Date: Mon, 31 Mar 2025 12:03:03 +0000
Subject: [PATCH 0200/1064] 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 cb6dbbe5..70c21702 100644
--- a/Containers/imaginary/Dockerfile
+++ b/Containers/imaginary/Dockerfile
@@ -1,7 +1,7 @@
# syntax=docker/dockerfile:latest
FROM golang:1.24.1-alpine3.21 AS go
-ENV IMAGINARY_HASH=1d4e251cfcd58ea66f8361f8721d7b8cc85002a3
+ENV IMAGINARY_HASH=1d4e251cfcd58ea66f8361f8721d7b8cc85002a3
RUN set -ex; \
apk upgrade --no-cache -a; \
From ae5f4b7999e4b8ca596e22218b7e9a805cfafd59 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Mon, 31 Mar 2025 14:37:14 +0200
Subject: [PATCH 0201/1064] collabora: fix permissions for
/etc/coolwsd/coolwsd.xml file
Signed-off-by: Simon L.
---
Containers/collabora/Dockerfile | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/Containers/collabora/Dockerfile b/Containers/collabora/Dockerfile
index d9c487a4..c6b65ff8 100644
--- a/Containers/collabora/Dockerfile
+++ b/Containers/collabora/Dockerfile
@@ -14,7 +14,9 @@ RUN set -ex; \
# # tzdata \
netcat-openbsd \
; \
- rm -rf /var/lib/apt/lists/*;
+ rm -rf /var/lib/apt/lists/*; \
+# Fix permissions for coolwsd.xml file. See https://github.com/CollaboraOnline/online/issues/11345
+ chmod +r /etc/coolwsd/coolwsd.xml
COPY --chmod=775 healthcheck.sh /healthcheck.sh
From d501b7cfcbe07ba627adca571a2541a572f09ff8 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Mon, 31 Mar 2025 14:42:41 +0200
Subject: [PATCH 0202/1064] fix detail in update helm script
Signed-off-by: Simon L.
---
nextcloud-aio-helm-chart/update-helm.sh | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/nextcloud-aio-helm-chart/update-helm.sh b/nextcloud-aio-helm-chart/update-helm.sh
index e9e8a476..7bf6d48a 100755
--- a/nextcloud-aio-helm-chart/update-helm.sh
+++ b/nextcloud-aio-helm-chart/update-helm.sh
@@ -72,7 +72,7 @@ find ./ -name '*networkpolicy.yaml' -exec sed -i "s|manual-install-nextcloud-aio
cat << EOL > /tmp/initcontainers
initContainers:
- name: init-volumes
- image: "ghcr.io/nextcloud-releases/alpine:$DOCKER_TAG"
+ image: "ghcr.io/nextcloud-releases/aio-alpine:$DOCKER_TAG"
command:
- chmod
- "777"
@@ -81,7 +81,7 @@ EOL
cat << EOL > /tmp/initcontainers.database
initContainers:
- name: init-subpath
- image: "ghcr.io/nextcloud-releases/alpine:$DOCKER_TAG"
+ image: "ghcr.io/nextcloud-releases/aio-alpine:$DOCKER_TAG"
command:
- mkdir
- "-p"
@@ -94,7 +94,7 @@ EOL
cat << EOL > /tmp/initcontainers.clamav
initContainers:
- name: init-subpath
- image: "ghcr.io/nextcloud-releases/alpine:$DOCKER_TAG"
+ image: "ghcr.io/nextcloud-releases/aio-alpine:$DOCKER_TAG"
command:
- mkdir
- "-p"
@@ -108,7 +108,7 @@ cat << EOL > /tmp/initcontainers.nextcloud
# AIO settings start # Do not remove or change this line!
initContainers:
- name: init-volumes
- image: "ghcr.io/nextcloud-releases/alpine:$DOCKER_TAG"
+ image: "ghcr.io/nextcloud-releases/aio-alpine:$DOCKER_TAG"
command:
- chmod
- "777"
From f0fd6bb44599715aedbd795937197d1efeb2aceb Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Mon, 31 Mar 2025 15:11:03 +0200
Subject: [PATCH 0203/1064] collabora: fix permissions correctly
Signed-off-by: Simon L.
---
Containers/collabora/Dockerfile | 10 +++-------
1 file changed, 3 insertions(+), 7 deletions(-)
diff --git a/Containers/collabora/Dockerfile b/Containers/collabora/Dockerfile
index c6b65ff8..26e9aa97 100644
--- a/Containers/collabora/Dockerfile
+++ b/Containers/collabora/Dockerfile
@@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest
-# From a file located probably somewhere here: https://github.com/CollaboraOnline/online/tree/master/docker
+# From a file located probably somewhere here: https://github.com/CollaboraOnline/online/blob/master/docker/from-packages/Dockerfile
FROM collabora/code:24.04.13.2.1
USER root
@@ -10,17 +10,13 @@ RUN set -ex; \
\
apt-get update; \
apt-get install -y --no-install-recommends \
-# # Disable because seems to be failing currently
-# # tzdata \
netcat-openbsd \
; \
- rm -rf /var/lib/apt/lists/*; \
-# Fix permissions for coolwsd.xml file. See https://github.com/CollaboraOnline/online/issues/11345
- chmod +r /etc/coolwsd/coolwsd.xml
+ rm -rf /var/lib/apt/lists/*;
COPY --chmod=775 healthcheck.sh /healthcheck.sh
-USER 100
+USER 1001
HEALTHCHECK --start-period=60s --retries=9 CMD /healthcheck.sh
LABEL com.centurylinklabs.watchtower.enable="false"
From c01148811109daa5e139229830c3348cfb45842e Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Mon, 31 Mar 2025 16:02:30 +0200
Subject: [PATCH 0204/1064] mastercontainer: remove check for nextcloud.com as
we check for ghcr.io instead
Signed-off-by: Simon L.
---
Containers/mastercontainer/start.sh | 11 -----------
1 file changed, 11 deletions(-)
diff --git a/Containers/mastercontainer/start.sh b/Containers/mastercontainer/start.sh
index dff289d3..f361cdcc 100644
--- a/Containers/mastercontainer/start.sh
+++ b/Containers/mastercontainer/start.sh
@@ -272,17 +272,6 @@ It is set to '$AIO_COMMUNITY_CONTAINERS'."
fi
fi
-# Check DNS resolution
-# Prevents issues like https://github.com/nextcloud/all-in-one/discussions/565
-curl https://nextcloud.com &>/dev/null
-if [ "$?" = 6 ]; then
- print_red "Could not resolve the host nextcloud.com."
- echo "Most likely the DNS resolving does not work."
- echo "You should be able to fix this by following https://dockerlabs.collabnix.com/intermediate/networking/Configuring_DNS.html"
- echo "Apart from that, there has been this: https://github.com/nextcloud/all-in-one/discussions/2065"
- exit 1
-fi
-
# Check if ghcr.io is reachable
# Solves issues like https://github.com/nextcloud/all-in-one/discussions/5268
if ! curl https://ghcr.io &>/dev/null; then
From 3dd5407301464e447cf9f39516de1d7408cd2152 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Tue, 1 Apr 2025 22:25:34 +0200
Subject: [PATCH 0205/1064] mastercontainer: improve check for ghcr.io
Signed-off-by: Simon L.
---
Containers/mastercontainer/start.sh | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/Containers/mastercontainer/start.sh b/Containers/mastercontainer/start.sh
index dff289d3..0c815464 100644
--- a/Containers/mastercontainer/start.sh
+++ b/Containers/mastercontainer/start.sh
@@ -285,10 +285,11 @@ fi
# Check if ghcr.io is reachable
# Solves issues like https://github.com/nextcloud/all-in-one/discussions/5268
-if ! curl https://ghcr.io &>/dev/null; then
+if ! curl --no-progress-meter https://ghcr.io/v2/ >/dev/null; then
print_red "Could not reach https://ghcr.io."
echo "Most likely is something blocking access to it."
- echo "You should be able to fix this by using https://github.com/nextcloud/all-in-one/tree/main/manual-install"
+ echo "You should be able to fix this by following https://dockerlabs.collabnix.com/intermediate/networking/Configuring_DNS.html"
+ echo "Another solution is using https://github.com/nextcloud/all-in-one/tree/main/manual-install"
exit 1
fi
From 855a1d00dca20f463832ed541d1fce438e783a81 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 2 Apr 2025 04:38:53 +0000
Subject: [PATCH 0206/1064] build(deps): bump golang in /Containers/imaginary
Bumps golang from 1.24.1-alpine3.21 to 1.24.2-alpine3.21.
---
updated-dependencies:
- dependency-name: golang
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 70c21702..08b03bd7 100644
--- a/Containers/imaginary/Dockerfile
+++ b/Containers/imaginary/Dockerfile
@@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest
-FROM golang:1.24.1-alpine3.21 AS go
+FROM golang:1.24.2-alpine3.21 AS go
ENV IMAGINARY_HASH=1d4e251cfcd58ea66f8361f8721d7b8cc85002a3
From df402362179eade787248bafe6ed6f16f0cf8538 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 2 Apr 2025 04:39:41 +0000
Subject: [PATCH 0207/1064] build(deps): bump golang in /Containers/watchtower
Bumps golang from 1.24.1-alpine3.21 to 1.24.2-alpine3.21.
---
updated-dependencies:
- dependency-name: golang
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 1b83fe17..2f204010 100644
--- a/Containers/watchtower/Dockerfile
+++ b/Containers/watchtower/Dockerfile
@@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest
-FROM golang:1.24.1-alpine3.21 AS go
+FROM golang:1.24.2-alpine3.21 AS go
RUN set -ex; \
apk upgrade --no-cache -a; \
From 6dac9179368260afb99a522b70059b31590f5780 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Thu, 3 Apr 2025 11:09:06 +0200
Subject: [PATCH 0208/1064] libretranslate-cc: add warning that it is
deprecated
Signed-off-by: Simon L.
---
community-containers/libretranslate/readme.md | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/community-containers/libretranslate/readme.md b/community-containers/libretranslate/readme.md
index ffab72ab..f9893f34 100644
--- a/community-containers/libretranslate/readme.md
+++ b/community-containers/libretranslate/readme.md
@@ -1,6 +1,11 @@
## LibreTranslate
This container bundles LibreTranslate and auto-configures it for you.
+> [!WARNING]
+> The LibreTranslate container and app is deprecated!
+> Please use the [translate2 app](https://apps.nextcloud.com/apps/translate2) instead.
+> You can activate it by first enabling the Docker-Socket-Proxy in the AIO-interface and then heading over to `https://your-nc-domain.com/settings/apps/tools` and installing and enabling the `Local Machine Translation` app.
+
### Notes
- After the initial startup is done, you might want to change the default language to translate from and to via:
```bash
From a5c44aae9a7c718d80d6afb0f25f97f44f110d59 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Mon, 7 Apr 2025 19:07:34 +0200
Subject: [PATCH 0209/1064] rp-docs: fix apache config
Signed-off-by: Simon L.
---
reverse-proxy.md | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/reverse-proxy.md b/reverse-proxy.md
index 5835b283..f3c11cfb 100644
--- a/reverse-proxy.md
+++ b/reverse-proxy.md
@@ -139,7 +139,8 @@ Add this as a new Apache site config:
RequestHeader set X-Real-IP %{REMOTE_ADDR}s
AllowEncodedSlashes NoDecode
- ProxyPass / http://localhost:11000/ nocanon # Adjust to match APACHE_PORT and APACHE_IP_BINDING. See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md#adapting-the-sample-web-server-configurations-below
+ # Adjust the value below to match APACHE_PORT and APACHE_IP_BINDING. See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md#adapting-the-sample-web-server-configurations-below
+ ProxyPass / http://localhost:11000/ nocanon
ProxyPassReverse / http://localhost:11000/ # Adjust to match APACHE_PORT and APACHE_IP_BINDING. See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md#adapting-the-sample-web-server-configurations-below
RewriteCond %{HTTP:Upgrade} websocket [NC]
From 3345e9a357347eb305c8e4a90cd28e89e206f367 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Mon, 7 Apr 2025 19:24:06 +0200
Subject: [PATCH 0210/1064] rp-docs-apache: adjust comment
Signed-off-by: Simon L.
---
reverse-proxy.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/reverse-proxy.md b/reverse-proxy.md
index f3c11cfb..ea9ac15a 100644
--- a/reverse-proxy.md
+++ b/reverse-proxy.md
@@ -139,9 +139,9 @@ Add this as a new Apache site config:
RequestHeader set X-Real-IP %{REMOTE_ADDR}s
AllowEncodedSlashes NoDecode
- # Adjust the value below to match APACHE_PORT and APACHE_IP_BINDING. See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md#adapting-the-sample-web-server-configurations-below
+ # Adjust the two lines below to match APACHE_PORT and APACHE_IP_BINDING. See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md#adapting-the-sample-web-server-configurations-below
ProxyPass / http://localhost:11000/ nocanon
- ProxyPassReverse / http://localhost:11000/ # Adjust to match APACHE_PORT and APACHE_IP_BINDING. See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md#adapting-the-sample-web-server-configurations-below
+ ProxyPassReverse / http://localhost:11000/
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteCond %{HTTP:Connection} upgrade [NC]
From 4eed6b6f384cde5faa6371ffa4be2d1398e3b422 Mon Sep 17 00:00:00 2001
From: szaimen <42591237+szaimen@users.noreply.github.com>
Date: Tue, 8 Apr 2025 08:20:51 +0000
Subject: [PATCH 0211/1064] 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 | 2 +-
.../templates/nextcloud-aio-clamav-deployment.yaml | 4 ++--
.../templates/nextcloud-aio-collabora-deployment.yaml | 2 +-
.../templates/nextcloud-aio-database-deployment.yaml | 4 ++--
.../templates/nextcloud-aio-fulltextsearch-deployment.yaml | 4 ++--
.../templates/nextcloud-aio-imaginary-deployment.yaml | 2 +-
.../templates/nextcloud-aio-nextcloud-deployment.yaml | 4 ++--
.../templates/nextcloud-aio-notify-push-deployment.yaml | 2 +-
.../templates/nextcloud-aio-onlyoffice-deployment.yaml | 4 ++--
.../templates/nextcloud-aio-redis-deployment.yaml | 2 +-
.../templates/nextcloud-aio-talk-deployment.yaml | 2 +-
.../templates/nextcloud-aio-talk-recording-deployment.yaml | 2 +-
.../templates/nextcloud-aio-whiteboard-deployment.yaml | 2 +-
14 files changed, 19 insertions(+), 19 deletions(-)
diff --git a/nextcloud-aio-helm-chart/Chart.yaml b/nextcloud-aio-helm-chart/Chart.yaml
index 8fd3a53d..2ba246ce 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: 10.10.0
+version: 10.11.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 ea4393f7..53439546 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-apache-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-apache-deployment.yaml
@@ -61,7 +61,7 @@ spec:
value: "{{ .Values.TIMEZONE }}"
- name: WHITEBOARD_HOST
value: nextcloud-aio-whiteboard
- image: ghcr.io/nextcloud-releases/aio-apache:20250331_082515
+ image: ghcr.io/nextcloud-releases/aio-apache:20250408_081359
readinessProbe:
exec:
command:
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 9c55ce9d..f06a63ce 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-clamav-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-clamav-deployment.yaml
@@ -36,7 +36,7 @@ spec:
{{- end }}
initContainers:
- name: init-subpath
- image: "alpine:3.20"
+ image: "ghcr.io/nextcloud-releases/aio-alpine:20250408_081359"
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:20250331_082515
+ image: ghcr.io/nextcloud-releases/aio-clamav:20250408_081359
readinessProbe:
exec:
command:
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 4a904d2a..25061be0 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-collabora-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-collabora-deployment.yaml
@@ -35,7 +35,7 @@ spec:
value: --o:ssl.enable=false --o:ssl.termination=true --o:mount_jail_tree=false --o:logging.level=warning --o:home_mode.enable=true --o:remote_font_config.url=https://{{ .Values.NC_DOMAIN }}/apps/richdocuments/settings/fonts.json --o:net.post_allow.host[0]=.+
- name: server_name
value: "{{ .Values.NC_DOMAIN }}"
- image: ghcr.io/nextcloud-releases/aio-collabora:20250331_082515
+ image: ghcr.io/nextcloud-releases/aio-collabora:20250408_081359
readinessProbe:
exec:
command:
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 cf138dd0..92eb8d4a 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-database-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-database-deployment.yaml
@@ -35,7 +35,7 @@ spec:
{{- end }}
initContainers:
- name: init-subpath
- image: "alpine:3.20"
+ image: "ghcr.io/nextcloud-releases/aio-alpine:20250408_081359"
command:
- mkdir
- "-p"
@@ -64,7 +64,7 @@ spec:
value: nextcloud
- name: TZ
value: "{{ .Values.TIMEZONE }}"
- image: ghcr.io/nextcloud-releases/aio-postgresql:20250331_082515
+ image: ghcr.io/nextcloud-releases/aio-postgresql:20250408_081359
readinessProbe:
exec:
command:
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 e081ffd5..5a72365b 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-fulltextsearch-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-fulltextsearch-deployment.yaml
@@ -24,7 +24,7 @@ spec:
spec:
initContainers:
- name: init-volumes
- image: "alpine:3.20"
+ image: "ghcr.io/nextcloud-releases/aio-alpine:20250408_081359"
command:
- chmod
- "777"
@@ -54,7 +54,7 @@ spec:
value: basic
- name: xpack.security.enabled
value: "false"
- image: ghcr.io/nextcloud-releases/aio-fulltextsearch:20250331_082515
+ image: ghcr.io/nextcloud-releases/aio-fulltextsearch:20250408_081359
readinessProbe:
exec:
command:
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 2a53ffdb..b5955c9f 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-imaginary-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-imaginary-deployment.yaml
@@ -38,7 +38,7 @@ spec:
value: "{{ .Values.IMAGINARY_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
- image: ghcr.io/nextcloud-releases/aio-imaginary:20250331_082515
+ image: ghcr.io/nextcloud-releases/aio-imaginary:20250408_081359
readinessProbe:
exec:
command:
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 f664091c..459dd03e 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-nextcloud-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-nextcloud-deployment.yaml
@@ -38,7 +38,7 @@ spec:
# AIO settings start # Do not remove or change this line!
initContainers:
- name: init-volumes
- image: "alpine:3.20"
+ image: "ghcr.io/nextcloud-releases/aio-alpine:20250408_081359"
command:
- chmod
- "777"
@@ -182,7 +182,7 @@ spec:
value: "{{ .Values.WHITEBOARD_ENABLED }}"
- name: WHITEBOARD_SECRET
value: "{{ .Values.WHITEBOARD_SECRET }}"
- image: ghcr.io/nextcloud-releases/aio-nextcloud:20250331_082515
+ image: ghcr.io/nextcloud-releases/aio-nextcloud:20250408_081359
{{- 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-notify-push-deployment.yaml b/nextcloud-aio-helm-chart/templates/nextcloud-aio-notify-push-deployment.yaml
index fb5412fe..6cca990d 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
@@ -55,7 +55,7 @@ spec:
value: "{{ .Values.REDIS_PASSWORD }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
- image: ghcr.io/nextcloud-releases/aio-notify-push:20250331_082515
+ image: ghcr.io/nextcloud-releases/aio-notify-push:20250408_081359
readinessProbe:
exec:
command:
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 483b6250..f7599ca9 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-onlyoffice-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-onlyoffice-deployment.yaml
@@ -24,7 +24,7 @@ spec:
spec:
initContainers:
- name: init-volumes
- image: "alpine:3.20"
+ image: "ghcr.io/nextcloud-releases/aio-alpine:20250408_081359"
command:
- chmod
- "777"
@@ -42,7 +42,7 @@ spec:
value: "{{ .Values.ONLYOFFICE_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
- image: ghcr.io/nextcloud-releases/aio-onlyoffice:20250331_082515
+ image: ghcr.io/nextcloud-releases/aio-onlyoffice:20250408_081359
readinessProbe:
exec:
command:
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 fc8eb5ed..57db6a8c 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-redis-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-redis-deployment.yaml
@@ -39,7 +39,7 @@ spec:
value: "{{ .Values.REDIS_PASSWORD }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
- image: ghcr.io/nextcloud-releases/aio-redis:20250331_082515
+ image: ghcr.io/nextcloud-releases/aio-redis:20250408_081359
readinessProbe:
exec:
command:
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 dc61ebd5..5b56aec0 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-talk-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-talk-deployment.yaml
@@ -52,7 +52,7 @@ spec:
value: "{{ .Values.TURN_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
- image: ghcr.io/nextcloud-releases/aio-talk:20250331_082515
+ image: ghcr.io/nextcloud-releases/aio-talk:20250408_081359
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 98f9e38c..dc43a31b 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
@@ -44,7 +44,7 @@ spec:
value: "{{ .Values.RECORDING_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
- image: ghcr.io/nextcloud-releases/aio-talk-recording:20250331_082515
+ image: ghcr.io/nextcloud-releases/aio-talk-recording:20250408_081359
readinessProbe:
exec:
command:
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 a319522a..a86d8f63 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-whiteboard-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-whiteboard-deployment.yaml
@@ -48,7 +48,7 @@ spec:
value: redis
- name: TZ
value: "{{ .Values.TIMEZONE }}"
- image: ghcr.io/nextcloud-releases/aio-whiteboard:20250331_082515
+ image: ghcr.io/nextcloud-releases/aio-whiteboard:20250408_081359
readinessProbe:
exec:
command:
From 7ce74e36e661a55b9138a7435d1e59a3fdada2e9 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Tue, 8 Apr 2025 10:30:33 +0200
Subject: [PATCH 0212/1064] fix detail with new aio-alpine syntax
Signed-off-by: Simon L.
---
.../templates/nextcloud-aio-clamav-deployment.yaml | 2 +-
.../templates/nextcloud-aio-database-deployment.yaml | 2 +-
.../nextcloud-aio-fulltextsearch-deployment.yaml | 2 +-
.../templates/nextcloud-aio-nextcloud-deployment.yaml | 2 +-
.../templates/nextcloud-aio-onlyoffice-deployment.yaml | 2 +-
nextcloud-aio-helm-chart/update-helm.sh | 8 ++++----
6 files changed, 9 insertions(+), 9 deletions(-)
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 f06a63ce..064d1a57 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-clamav-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-clamav-deployment.yaml
@@ -36,7 +36,7 @@ spec:
{{- end }}
initContainers:
- name: init-subpath
- image: "ghcr.io/nextcloud-releases/aio-alpine:20250408_081359"
+ image: ghcr.io/nextcloud-releases/aio-alpine:20250408_081359
command:
- mkdir
- "-p"
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 92eb8d4a..1321b9cd 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-database-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-database-deployment.yaml
@@ -35,7 +35,7 @@ spec:
{{- end }}
initContainers:
- name: init-subpath
- image: "ghcr.io/nextcloud-releases/aio-alpine:20250408_081359"
+ image: ghcr.io/nextcloud-releases/aio-alpine:20250408_081359
command:
- mkdir
- "-p"
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 5a72365b..b877358e 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-fulltextsearch-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-fulltextsearch-deployment.yaml
@@ -24,7 +24,7 @@ spec:
spec:
initContainers:
- name: init-volumes
- image: "ghcr.io/nextcloud-releases/aio-alpine:20250408_081359"
+ image: ghcr.io/nextcloud-releases/aio-alpine:20250408_081359
command:
- chmod
- "777"
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 459dd03e..793f3be3 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-nextcloud-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-nextcloud-deployment.yaml
@@ -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:20250408_081359"
+ image: ghcr.io/nextcloud-releases/aio-alpine:20250408_081359
command:
- chmod
- "777"
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 f7599ca9..20d0d426 100755
--- a/nextcloud-aio-helm-chart/templates/nextcloud-aio-onlyoffice-deployment.yaml
+++ b/nextcloud-aio-helm-chart/templates/nextcloud-aio-onlyoffice-deployment.yaml
@@ -24,7 +24,7 @@ spec:
spec:
initContainers:
- name: init-volumes
- image: "ghcr.io/nextcloud-releases/aio-alpine:20250408_081359"
+ image: ghcr.io/nextcloud-releases/aio-alpine:20250408_081359
command:
- chmod
- "777"
diff --git a/nextcloud-aio-helm-chart/update-helm.sh b/nextcloud-aio-helm-chart/update-helm.sh
index 7bf6d48a..b7da966f 100755
--- a/nextcloud-aio-helm-chart/update-helm.sh
+++ b/nextcloud-aio-helm-chart/update-helm.sh
@@ -72,7 +72,7 @@ find ./ -name '*networkpolicy.yaml' -exec sed -i "s|manual-install-nextcloud-aio
cat << EOL > /tmp/initcontainers
initContainers:
- name: init-volumes
- image: "ghcr.io/nextcloud-releases/aio-alpine:$DOCKER_TAG"
+ image: ghcr.io/nextcloud-releases/aio-alpine:$DOCKER_TAG
command:
- chmod
- "777"
@@ -81,7 +81,7 @@ EOL
cat << EOL > /tmp/initcontainers.database
initContainers:
- name: init-subpath
- image: "ghcr.io/nextcloud-releases/aio-alpine:$DOCKER_TAG"
+ image: ghcr.io/nextcloud-releases/aio-alpine:$DOCKER_TAG
command:
- mkdir
- "-p"
@@ -94,7 +94,7 @@ EOL
cat << EOL > /tmp/initcontainers.clamav
initContainers:
- name: init-subpath
- image: "ghcr.io/nextcloud-releases/aio-alpine:$DOCKER_TAG"
+ image: ghcr.io/nextcloud-releases/aio-alpine:$DOCKER_TAG
command:
- mkdir
- "-p"
@@ -108,7 +108,7 @@ cat << EOL > /tmp/initcontainers.nextcloud
# AIO settings start # Do not remove or change this line!
initContainers:
- name: init-volumes
- image: "ghcr.io/nextcloud-releases/aio-alpine:$DOCKER_TAG"
+ image: ghcr.io/nextcloud-releases/aio-alpine:$DOCKER_TAG
command:
- chmod
- "777"
From 25c31323c647c0d05127258aadb91cbe6b58dd56 Mon Sep 17 00:00:00 2001
From: szaimen <42591237+szaimen@users.noreply.github.com>
Date: Tue, 8 Apr 2025 12:03:09 +0000
Subject: [PATCH 0213/1064] php dependency updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
---
php/composer.lock | 21 ++++++++++++---------
1 file changed, 12 insertions(+), 9 deletions(-)
diff --git a/php/composer.lock b/php/composer.lock
index 8df472da..7e683c8b 100644
--- a/php/composer.lock
+++ b/php/composer.lock
@@ -2210,26 +2210,29 @@
},
{
"name": "doctrine/deprecations",
- "version": "1.1.4",
+ "version": "1.1.5",
"source": {
"type": "git",
"url": "https://github.com/doctrine/deprecations.git",
- "reference": "31610dbb31faa98e6b5447b62340826f54fbc4e9"
+ "reference": "459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/deprecations/zipball/31610dbb31faa98e6b5447b62340826f54fbc4e9",
- "reference": "31610dbb31faa98e6b5447b62340826f54fbc4e9",
+ "url": "https://api.github.com/repos/doctrine/deprecations/zipball/459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38",
+ "reference": "459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38",
"shasum": ""
},
"require": {
"php": "^7.1 || ^8.0"
},
+ "conflict": {
+ "phpunit/phpunit": "<=7.5 || >=13"
+ },
"require-dev": {
- "doctrine/coding-standard": "^9 || ^12",
- "phpstan/phpstan": "1.4.10 || 2.0.3",
+ "doctrine/coding-standard": "^9 || ^12 || ^13",
+ "phpstan/phpstan": "1.4.10 || 2.1.11",
"phpstan/phpstan-phpunit": "^1.0 || ^2",
- "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
+ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6 || ^10.5 || ^11.5 || ^12",
"psr/log": "^1 || ^2 || ^3"
},
"suggest": {
@@ -2249,9 +2252,9 @@
"homepage": "https://www.doctrine-project.org/",
"support": {
"issues": "https://github.com/doctrine/deprecations/issues",
- "source": "https://github.com/doctrine/deprecations/tree/1.1.4"
+ "source": "https://github.com/doctrine/deprecations/tree/1.1.5"
},
- "time": "2024-12-07T21:18:45+00:00"
+ "time": "2025-04-07T20:06:18+00:00"
},
{
"name": "felixfbecker/advanced-json-rpc",
From 9d9ef6e4b8ceb58d2d27a4340b2fe1f4ad62ecfa Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 9 Apr 2025 05:00:12 +0000
Subject: [PATCH 0214/1064] build(deps): bump nats in /Containers/talk
Bumps nats from 2.11.0-scratch to 2.11.1-scratch.
---
updated-dependencies:
- dependency-name: nats
dependency-version: 2.11.1-scratch
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
Containers/talk/Dockerfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Containers/talk/Dockerfile b/Containers/talk/Dockerfile
index 00d2153f..ce2b545b 100644
--- a/Containers/talk/Dockerfile
+++ b/Containers/talk/Dockerfile
@@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest
-FROM nats:2.11.0-scratch AS nats
+FROM nats:2.11.1-scratch AS nats
FROM eturnal/eturnal:1.12.1 AS eturnal
FROM strukturag/nextcloud-spreed-signaling:2.0.2 AS signaling
FROM alpine:3.21.3 AS janus
From 72fe74da71e772d4164d205e1f1fcb08fcc7d7ad Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 9 Apr 2025 12:57:07 +0000
Subject: [PATCH 0215/1064] build(deps): bump softprops/turnstyle in
/.github/workflows
Bumps [softprops/turnstyle](https://github.com/softprops/turnstyle) from 2.3.1 to 2.3.2.
- [Release notes](https://github.com/softprops/turnstyle/releases)
- [Changelog](https://github.com/softprops/turnstyle/blob/master/CHANGELOG.md)
- [Commits](https://github.com/softprops/turnstyle/compare/25dcee5c3fcb84375f3a3f93a3c97ed0d42cfcdc...f9f8ef3f634144b126a09ea5b3bfe51ddebc700f)
---
updated-dependencies:
- dependency-name: softprops/turnstyle
dependency-version: 2.3.2
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
.github/workflows/helm-release.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/helm-release.yml b/.github/workflows/helm-release.yml
index 28946230..13a69609 100644
--- a/.github/workflows/helm-release.yml
+++ b/.github/workflows/helm-release.yml
@@ -16,7 +16,7 @@ jobs:
uses: actions/checkout@v4
- name: Turnstyle
- uses: softprops/turnstyle@25dcee5c3fcb84375f3a3f93a3c97ed0d42cfcdc # v2
+ uses: softprops/turnstyle@f9f8ef3f634144b126a09ea5b3bfe51ddebc700f # v2
with:
continue-after-seconds: 180
env:
From b82943046d29941d9e47bf6f2dd5e304f114637c Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Wed, 9 Apr 2025 16:32:15 +0200
Subject: [PATCH 0216/1064] daily-backup.sh: connect mastercontainer to
nextcloud-aio network
Signed-off-by: Simon L.
---
Containers/mastercontainer/daily-backup.sh | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/Containers/mastercontainer/daily-backup.sh b/Containers/mastercontainer/daily-backup.sh
index 56302c80..13c0ad85 100644
--- a/Containers/mastercontainer/daily-backup.sh
+++ b/Containers/mastercontainer/daily-backup.sh
@@ -20,6 +20,11 @@ APACHE_PORT="$(docker inspect nextcloud-aio-apache --format "{{.Config.Env}}" |
if [ -z "$APACHE_PORT" ]; then
echo "APACHE_PORT is not set which is not expected..."
else
+ # Connect mastercontainer to nextcloud-aio network to make sure that nextcloud-aio-apache is reachable
+ # Prevent issues like https://github.com/nextcloud/all-in-one/discussions/5222
+ docker network connect nextcloud-aio nextcloud-aio-mastercontainer &>/dev/null
+
+ # Wait for apache to start
while docker ps --format "{{.Names}}" | grep -q "^nextcloud-aio-apache$" && ! nc -z nextcloud-aio-apache "$APACHE_PORT"; do
echo "Waiting for apache to become available"
sleep 30
From b05d22aa8101696a26fd75799c96d8823a69463e Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 10 Apr 2025 05:08:57 +0000
Subject: [PATCH 0217/1064] build(deps): bump python in
/Containers/talk-recording
Bumps python from 3.13.2-alpine3.21 to 3.13.3-alpine3.21.
---
updated-dependencies:
- dependency-name: python
dependency-version: 3.13.3-alpine3.21
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
Containers/talk-recording/Dockerfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Containers/talk-recording/Dockerfile b/Containers/talk-recording/Dockerfile
index bc971ab4..bfdc1f59 100644
--- a/Containers/talk-recording/Dockerfile
+++ b/Containers/talk-recording/Dockerfile
@@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest
-FROM python:3.13.2-alpine3.21
+FROM python:3.13.3-alpine3.21
COPY --chmod=775 start.sh /start.sh
COPY --chmod=775 healthcheck.sh /healthcheck.sh
From 71b932e910a0e55dd258a8a5dd3e6863ce4f2abb Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Thu, 10 Apr 2025 12:45:18 +0200
Subject: [PATCH 0218/1064] aio-interface: daily-backup: remove the pre-filled
value
Signed-off-by: Simon L.
---
php/templates/containers.twig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/php/templates/containers.twig b/php/templates/containers.twig
index a92d1e08..4d20ef7a 100644
--- a/php/templates/containers.twig
+++ b/php/templates/containers.twig
@@ -509,7 +509,7 @@
{% if daily_backup_time == "" %}
By entering a time below, you can enable daily backups. It will create them at the entered time in 24h format. E.g. 04:00 will create backups at 4 am UTC and 16:00 at 4 pm UTC. When creating the backup, containers will be stopped and restarted after the backup is complete.
-
+
From 417af36b5ff11f8b5610febad44450c9d6099cec Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Thu, 10 Apr 2025 13:18:16 +0200
Subject: [PATCH 0219/1064] aio-interface: describe that the submit button
needs to be pressed in a few places
Signed-off-by: Simon L.
---
php/templates/containers.twig | 14 +++++++-------
php/templates/includes/optional-containers.twig | 2 +-
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/php/templates/containers.twig b/php/templates/containers.twig
index 4d20ef7a..7dc7308a 100644
--- a/php/templates/containers.twig
+++ b/php/templates/containers.twig
@@ -101,7 +101,7 @@
{% else %}
AIO is currently in "reverse proxy mode" which means that it can be installed behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else) and does not do the TLS proxying itself.
{% endif %}
-
Please type the domain that will be used for Nextcloud.
+
Please type in the domain that will be used for Nextcloud and submit it.
{% if skip_domain_validation == true %}
Please note: The domain validation is disabled so any domain will be accepted here! Make sure you do not make a typo here as you will not be able to change it afterwards!
{% endif %}
@@ -192,7 +192,7 @@
Please enter the location of the backup archive on your host or a
remote borg repo url
- if stored remotely; and the encryption password of the backup archive below:
+ if stored remotely; and the encryption password of the backup archive below and submit all values:
Local backup location
@@ -364,10 +364,10 @@
{% else %}
{% if is_backup_container_running == false and not hasBackupLocation and isApacheStarting != true %}
Backup and restore
-
Please enter the directory path below where backups will be created on the host system. It's best to choose a location on a separate drive and not on your root drive.
+
Please enter the directory path below where backups will be created on the host system and submit it. It's best to choose a location on a separate drive and not on your root drive.
By entering a time below, you can enable daily backups. It will create them at the entered time in 24h format. E.g. 04:00 will create backups at 4 am UTC and 16:00 at 4 pm UTC. When creating the backup, containers will be stopped and restarted after the backup is complete.
+
By entering a time below and submitting it, you can enable daily backups. It will create them at the entered time in 24h format. E.g. 04:00 will create backups at 4 am UTC and 16:00 at 4 pm UTC. When creating the backup, containers will be stopped and restarted after the backup is complete.
@@ -531,7 +531,7 @@
{% endif %}
Back up additional directories and docker volumes of your host
-
Below you can enter directories and docker volumes of your host that will be backed up into the same borg backup archive.
+
Below you can enter directories and docker volumes of your host that will be backed up into the same borg backup archive. Make sure to press the submit button after changing anything.
To get the correct time values for certain Nextcloud features, set the timezone for Nextcloud to the one that your users mainly use. Please note that this setting does not apply to the mastercontainer and any backup option.
-
You can configure the timezone for Nextcloud below:
+
You can configure the timezone for Nextcloud below (Do not forget to submit the value!):
{# Add 2nd tab warning #}
From bd0ab4c9cc162fb6b84354f0a415b756805092dc Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Fri, 18 Apr 2025 04:35:05 +0000
Subject: [PATCH 0241/1064] build(deps): bump haproxy in
/Containers/docker-socket-proxy
Bumps haproxy from 3.1.6-alpine to 3.1.7-alpine.
---
updated-dependencies:
- dependency-name: haproxy
dependency-version: 3.1.7-alpine
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
Containers/docker-socket-proxy/Dockerfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Containers/docker-socket-proxy/Dockerfile b/Containers/docker-socket-proxy/Dockerfile
index a01a7485..1480d292 100644
--- a/Containers/docker-socket-proxy/Dockerfile
+++ b/Containers/docker-socket-proxy/Dockerfile
@@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest
-FROM haproxy:3.1.6-alpine
+FROM haproxy:3.1.7-alpine
# hadolint ignore=DL3002
USER root
From 4616ea8cbd31ca2ecb0055195c04504253272fa7 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Fri, 18 Apr 2025 14:04:45 +0200
Subject: [PATCH 0242/1064] Update dependency-updates.yml
Signed-off-by: Simon L.
---
.github/workflows/dependency-updates.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/dependency-updates.yml b/.github/workflows/dependency-updates.yml
index 8805c146..4fc8083f 100644
--- a/.github/workflows/dependency-updates.yml
+++ b/.github/workflows/dependency-updates.yml
@@ -8,7 +8,7 @@ on:
jobs:
dependency_updates:
name: Run dependency update script
- runs-on: ubuntu-20.04
+ runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a # v2
From 44ca709ac0e6c2179e2c753f5eee95ce9de98011 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 21 Apr 2025 06:00:28 +0000
Subject: [PATCH 0243/1064] build(deps): bump docker in
/Containers/mastercontainer
Bumps docker from 28.0.4-cli to 28.1.1-cli.
---
updated-dependencies:
- dependency-name: docker
dependency-version: 28.1.1-cli
dependency-type: direct:production
update-type: version-update:semver-minor
...
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 c387b6e3..d6e614d4 100644
--- a/Containers/mastercontainer/Dockerfile
+++ b/Containers/mastercontainer/Dockerfile
@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:latest
# Docker CLI is a requirement
-FROM docker:28.0.4-cli AS docker
+FROM docker:28.1.1-cli AS docker
# Caddy is a requirement
FROM caddy:2.9.1-alpine AS caddy
From 62878cc6943b18971cacf722c4572f8254f2cd93 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 22 Apr 2025 04:25:43 +0000
Subject: [PATCH 0244/1064] build(deps): bump caddy in /Containers/apache
Bumps caddy from 2.9.1-alpine to 2.10.0-alpine.
---
updated-dependencies:
- dependency-name: caddy
dependency-version: 2.10.0-alpine
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
Containers/apache/Dockerfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Containers/apache/Dockerfile b/Containers/apache/Dockerfile
index 1f866552..aeb3b12d 100644
--- a/Containers/apache/Dockerfile
+++ b/Containers/apache/Dockerfile
@@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest
-FROM caddy:2.9.1-alpine AS caddy
+FROM caddy:2.10.0-alpine AS caddy
# From https://github.com/docker-library/httpd/blob/master/2.4/alpine/Dockerfile
FROM httpd:2.4.63-alpine3.21
From bc6d37b629dadd63268d8e1e4e936d168746f0ac Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 22 Apr 2025 04:26:05 +0000
Subject: [PATCH 0245/1064] build(deps): bump caddy in
/Containers/mastercontainer
Bumps caddy from 2.9.1-alpine to 2.10.0-alpine.
---
updated-dependencies:
- dependency-name: caddy
dependency-version: 2.10.0-alpine
dependency-type: direct:production
update-type: version-update:semver-minor
...
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 c387b6e3..72b1dc58 100644
--- a/Containers/mastercontainer/Dockerfile
+++ b/Containers/mastercontainer/Dockerfile
@@ -3,7 +3,7 @@
FROM docker:28.0.4-cli AS docker
# Caddy is a requirement
-FROM caddy:2.9.1-alpine AS caddy
+FROM caddy:2.10.0-alpine AS caddy
# From https://github.com/docker-library/php/blob/master/8.3/alpine3.21/fpm/Dockerfile
FROM php:8.3.20-fpm-alpine3.21
From 2219994176bdcbaeae4cf839b665b9b423bc92f8 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Tue, 22 Apr 2025 10:17:11 +0200
Subject: [PATCH 0246/1064] aio-interface: adjust addtional collabora options
example
Signed-off-by: Simon L.
---
php/templates/includes/optional-containers.twig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/php/templates/includes/optional-containers.twig b/php/templates/includes/optional-containers.twig
index f206a602..53315b1c 100644
--- a/php/templates/includes/optional-containers.twig
+++ b/php/templates/includes/optional-containers.twig
@@ -191,7 +191,7 @@
-
You need to make sure that the options that you enter are valid. An example is --o:net.content_security_policy="frame-ancestors *.example.com:*;".
+
You need to make sure that the options that you enter are valid. An example is --o:net.content_security_policy=frame-ancestors *.example.com:*;.
{% else %}
The additioinal options for Collabora are currently set to {{ collabora_additional_options }}. You can reset them again by clicking on the button below.
+
+1. Access your OpenLiteSpeed dashboard.
+
+OpenLiteSpeed panel is installed on port 7080 per default.
+ You can access it by visiting :7080
+
+2. Create a new VHost.
+
+Here's how you can create a new Virtual Host:
+
+
+3. **Fill in things according to this information.**
+
+Host root being `/usr/local/lsws/Example/`
+And the config being `/usr/local/lsws/conf/vhosts/nextcloud.conf`
+
+
+
+If you'd like to change the address of Virtual Host Root or Document Root, make sure they actually exist in the server!
+
+4. Edit the new VHost.
+
+Now, we must inflict some changes to the Virtual Host we just created, so click on your new VHost!
+
+
+
+5. First check the basic tab to make sure everything's alright.
+
+
+
+6. Add these to the general tab.
+
+
+
+7. Create an "External Aplication"
+
+
+
+
+
+Fill it out accordingly and save
+
+
+8. In the same Vhost, Create a "Context"
+
+
+
+Set the new Context to proxy and procceed
+
+
+
+Add "/" as URI or address as URI and select your nextcloud web server
+
+
+
+9. Go to the Listener settings
+
+
+
+Add a new Virtual Host Mapping
+
+
+Now select your nextcloud VHost and write in your desired address
+
+
+
+10. Congratulations.
+
+Just do a gradeful restart by pressing on this green restart icon, and you should be good to go.
+
+
+
+
+
+
+
+
### Citrix ADC VPX / Citrix Netscaler
From 36d802945778b827fb59bb70164e740ca3458eed Mon Sep 17 00:00:00 2001
From: Morrow Shore <97566823+MorrowShore@users.noreply.github.com>
Date: Wed, 30 Apr 2025 12:21:02 +0000
Subject: [PATCH 0259/1064] Update reverse-proxy.md
Signed-off-by: Morrow Shore <97566823+MorrowShore@users.noreply.github.com>
---
reverse-proxy.md | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/reverse-proxy.md b/reverse-proxy.md
index 042b948c..1200ddbb 100644
--- a/reverse-proxy.md
+++ b/reverse-proxy.md
@@ -260,7 +260,8 @@ Here's how you can create a new Virtual Host:
3. **Fill in things according to this information.**
Host root being `/usr/local/lsws/Example/`
-And the config being `/usr/local/lsws/conf/vhosts/nextcloud.conf`
+And the config being `/usr/local/lsws/conf/vhosts/nextcloud.conf`
+And enable both Restrained and Scripts/ExtApps

@@ -276,7 +277,9 @@ Now, we must inflict some changes to the Virtual Host we just created, so click

-6. Add these to the general tab.
+6. Add Document Root and Domain Name in the general tab.
+The document Root should be `/usr/local/lsws/nextcloud/html/`
+And the domain name should be where you'd like your nextcloud to be!

@@ -284,9 +287,13 @@ Now, we must inflict some changes to the Virtual Host we just created, so click

+Select Web Server and procceed
+

-Fill it out accordingly and save
+Name it `nextcloud`
+Define the address as the default `127.0.0.1:11000`, or what you selected during installation
+

8. In the same Vhost, Create a "Context"
@@ -297,7 +304,7 @@ Set the new Context to proxy and procceed

-Add "/" as URI or address as URI and select your nextcloud web server
+Add "/" as URI, and select your nextcloud web server

From 2f64d7e608ddc6968c4fbc0645e7b094001e5e24 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 1 May 2025 04:59:26 +0000
Subject: [PATCH 0260/1064] build(deps): bump collabora/code in
/Containers/collabora
Bumps collabora/code from 24.04.13.3.1 to 25.04.1.1.1.
---
updated-dependencies:
- dependency-name: collabora/code
dependency-version: 25.04.1.1.1
dependency-type: direct:production
...
Signed-off-by: dependabot[bot]
---
Containers/collabora/Dockerfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Containers/collabora/Dockerfile b/Containers/collabora/Dockerfile
index 098e2cd5..4a698f86 100644
--- a/Containers/collabora/Dockerfile
+++ b/Containers/collabora/Dockerfile
@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:latest
# From a file located probably somewhere here: https://github.com/CollaboraOnline/online/blob/master/docker/from-packages/Dockerfile
-FROM collabora/code:24.04.13.3.1
+FROM collabora/code:25.04.1.1.1
USER root
ARG DEBIAN_FRONTEND=noninteractive
From bee7449718a091b999500ab4ca48d1cbb5a14c79 Mon Sep 17 00:00:00 2001
From: Oleksii Zolotarevskyi
<15846984+roundoutandabout@users.noreply.github.com>
Date: Thu, 1 May 2025 21:37:32 +0200
Subject: [PATCH 0261/1064] Update readme.md
Signed-off-by: Oleksii Zolotarevskyi <15846984+roundoutandabout@users.noreply.github.com>
---
readme.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/readme.md b/readme.md
index e85912c6..c44b8f83 100644
--- a/readme.md
+++ b/readme.md
@@ -667,7 +667,7 @@ You can edit Nextclouds config.php file directly from the host with your favorit
All users see a set of [default files and folders](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/default_files_configuration.html) as dictated by Nextcloud's configuration. To change these default files and folders a custom skeleton directory must first be created; this can be accomplished by copying your skeleton files `sudo docker cp --follow-link /path/to/nextcloud/skeleton/ nextcloud-aio-nextcloud:/mnt/ncdata/skeleton/`, applying the correct permissions with `sudo docker exec nextcloud-aio-nextcloud chown -R 33:0 /mnt/ncdata/skeleton/` and `sudo docker exec nextcloud-aio-nextcloud chmod -R 750 /mnt/ncdata/skeleton/` and setting the skeleton directory option with `sudo docker exec --user www-data -it nextcloud-aio-nextcloud php occ config:system:set skeletondirectory --value="/mnt/ncdata/skeleton"`. Further information is available in the Nextcloud documentation on [configuration parameters for the skeleton directory](https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html#skeletondirectory).
### How to adjust the version retention policy and trashbin retention policy?
-By default, AIO sets the `versions_retention_obligation` and `versions_retention_obligation` both to `auto, 30` which means that versions and items in the trashbin get deleted after 30 days. If you want to change this, see https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/file_versioning.html.
+By default, AIO sets the `versions_retention_obligation` and `trashbin_retention_obligation` both to `auto, 30` which means that versions and items in the trashbin get deleted after 30 days. If you want to change this, see https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/file_versioning.html.
### How to enable automatic updates without creating a backup beforehand?
If you have an external backup solution, you might want to enable automatic updates without creating a backup first. However note that doing this is disrecommended since you will not be able to easily create and restore a backup from the AIO interface anymore and you need to make sure to shut down all the containers properly before creating the backup, e.g. by stopping them from the AIO interface first.
From 34e7039e3668f6657cdbb75385754ba1baefcfa7 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Fri, 2 May 2025 05:01:00 +0000
Subject: [PATCH 0262/1064] build(deps): bump eturnal/eturnal in
/Containers/talk
Bumps eturnal/eturnal from 1.12.1 to 1.12.2.
---
updated-dependencies:
- dependency-name: eturnal/eturnal
dependency-version: 1.12.2
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
Containers/talk/Dockerfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Containers/talk/Dockerfile b/Containers/talk/Dockerfile
index ca4a7a89..b9fe8645 100644
--- a/Containers/talk/Dockerfile
+++ b/Containers/talk/Dockerfile
@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:latest
FROM nats:2.11.2-scratch AS nats
-FROM eturnal/eturnal:1.12.1 AS eturnal
+FROM eturnal/eturnal:1.12.2 AS eturnal
FROM strukturag/nextcloud-spreed-signaling:2.0.2 AS signaling
FROM alpine:3.21.3 AS janus
From 7197ba184f9da8b32c37bf93d4c734657c58aeb1 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Fri, 2 May 2025 07:12:52 +0000
Subject: [PATCH 0263/1064] build(deps): bump nats in /Containers/talk
Bumps nats from 2.11.2-scratch to 2.11.3-scratch.
---
updated-dependencies:
- dependency-name: nats
dependency-version: 2.11.3-scratch
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
Containers/talk/Dockerfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Containers/talk/Dockerfile b/Containers/talk/Dockerfile
index b9fe8645..0605fdad 100644
--- a/Containers/talk/Dockerfile
+++ b/Containers/talk/Dockerfile
@@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest
-FROM nats:2.11.2-scratch AS nats
+FROM nats:2.11.3-scratch AS nats
FROM eturnal/eturnal:1.12.2 AS eturnal
FROM strukturag/nextcloud-spreed-signaling:2.0.2 AS signaling
FROM alpine:3.21.3 AS janus
From 75d5a92ed5c2ee3edbbcc41ab79542e825b6d526 Mon Sep 17 00:00:00 2001
From: Morrow Shore <97566823+MorrowShore@users.noreply.github.com>
Date: Fri, 2 May 2025 11:53:28 +0000
Subject: [PATCH 0264/1064] OpenLiteSpeed Guide Linked
Just Linked the OLS guide as asked!
Signed-off-by: Morrow Shore <97566823+MorrowShore@users.noreply.github.com>
---
reverse-proxy.md | 84 +-----------------------------------------------
1 file changed, 1 insertion(+), 83 deletions(-)
diff --git a/reverse-proxy.md b/reverse-proxy.md
index 1200ddbb..27ee04eb 100644
--- a/reverse-proxy.md
+++ b/reverse-proxy.md
@@ -243,93 +243,11 @@ You can get AIO running using the ACME DNS-challenge. Here is how to do it.
click here to expand
-
-Here's how you can set up a name-based reverse proxy to your nextcloud on an OpenLiteSpeed server. Courtesy of Ruikai Wang from the LiteSpeed team, and Morrow Shore.
-
-
-1. Access your OpenLiteSpeed dashboard.
-
-OpenLiteSpeed panel is installed on port 7080 per default.
- You can access it by visiting :7080
-
-2. Create a new VHost.
-
-Here's how you can create a new Virtual Host:
-
-
-3. **Fill in things according to this information.**
-
-Host root being `/usr/local/lsws/Example/`
-And the config being `/usr/local/lsws/conf/vhosts/nextcloud.conf`
-And enable both Restrained and Scripts/ExtApps
-
-
-
-If you'd like to change the address of Virtual Host Root or Document Root, make sure they actually exist in the server!
-
-4. Edit the new VHost.
-
-Now, we must inflict some changes to the Virtual Host we just created, so click on your new VHost!
-
-
-
-5. First check the basic tab to make sure everything's alright.
-
-
-
-6. Add Document Root and Domain Name in the general tab.
-The document Root should be `/usr/local/lsws/nextcloud/html/`
-And the domain name should be where you'd like your nextcloud to be!
-
-
-
-7. Create an "External Aplication"
-
-
-
-Select Web Server and procceed
-
-
-
-Name it `nextcloud`
-Define the address as the default `127.0.0.1:11000`, or what you selected during installation
-
-
-
-8. In the same Vhost, Create a "Context"
-
-
-
-Set the new Context to proxy and procceed
-
-
-
-Add "/" as URI, and select your nextcloud web server
-
-
-
-9. Go to the Listener settings
-
-
-
-Add a new Virtual Host Mapping
-
-
-Now select your nextcloud VHost and write in your desired address
-
-
-
-10. Congratulations.
-
-Just do a gradeful restart by pressing on this green restart icon, and you should be good to go.
-
-
-
+You can find the OpenLiteSpeed reverse proxy guide by @MorrowShore here: https://github.com/nextcloud/all-in-one/discussions/6370
-
### Citrix ADC VPX / Citrix Netscaler
From f795742b394bf4e35bbd08922f745d6f2c882456 Mon Sep 17 00:00:00 2001
From: "Simon L."
Date: Fri, 2 May 2025 13:59:02 +0200
Subject: [PATCH 0265/1064] increase to v10.14.0
Signed-off-by: Simon L.
---
php/templates/containers.twig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/php/templates/containers.twig b/php/templates/containers.twig
index c3884fa3..769f70d9 100644
--- a/php/templates/containers.twig
+++ b/php/templates/containers.twig
@@ -17,7 +17,7 @@