Compare commits

...

139 Commits

Author SHA1 Message Date
Simon L.
9cd70294a2 Merge pull request #6985 from nextcloud/aio-helm-update
Helm Chart updates
2025-10-15 10:41:46 +02:00
szaimen
3fdd77e75d Helm Chart updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-10-15 08:40:45 +00:00
Simon L.
d83b9545f4 Merge pull request #6979 from nextcloud/dependabot/github_actions/dot-github/workflows/actions/setup-node-6
build(deps): bump actions/setup-node from 5 to 6 in /.github/workflows
2025-10-14 14:18:54 +02:00
dependabot[bot]
3137c43447 build(deps): bump actions/setup-node from 5 to 6 in /.github/workflows
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 5 to 6.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-14 12:16:14 +00:00
Simon L.
26bb93df91 fix typo
Signed-off-by: Simon L. <szaimen@e.mail.de>
2025-10-10 08:42:36 +02:00
Simon L.
9b345e9289 Merge pull request #6902 from nextcloud/jtr/refactor-cont-nc-entrypoint
refactor(nextcloud): Tidy up entrypoint.sh error/log output
2025-10-08 10:07:32 +02:00
Simon L.
bf7b4ba8e3 Merge pull request #6946 from nextcloud/dependabot/docker/Containers/talk-recording/python-3.14.0-alpine3.22
build(deps): bump python from 3.13.7-alpine3.22 to 3.14.0-alpine3.22 in /Containers/talk-recording
2025-10-08 08:19:07 +02:00
Simon L.
421b8bc260 Merge pull request #6945 from nextcloud/dependabot/docker/Containers/imaginary/golang-1.25.2-alpine3.22
build(deps): bump golang from 1.25.1-alpine3.22 to 1.25.2-alpine3.22 in /Containers/imaginary
2025-10-08 08:18:41 +02:00
dependabot[bot]
7d923db448 build(deps): bump python in /Containers/talk-recording
Bumps python from 3.13.7-alpine3.22 to 3.14.0-alpine3.22.

---
updated-dependencies:
- dependency-name: python
  dependency-version: 3.14.0-alpine3.22
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-08 04:20:52 +00:00
dependabot[bot]
c35e0809bd build(deps): bump golang in /Containers/imaginary
Bumps golang from 1.25.1-alpine3.22 to 1.25.2-alpine3.22.

---
updated-dependencies:
- dependency-name: golang
  dependency-version: 1.25.2-alpine3.22
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-08 04:20:04 +00:00
Simon L.
c1a99a6961 Merge pull request #6943 from nextcloud/dependabot/github_actions/dot-github/workflows/softprops/turnstyle-3.2.0
build(deps): bump softprops/turnstyle from 3.1.0 to 3.2.0 in /.github/workflows
2025-10-07 15:27:53 +02:00
dependabot[bot]
6d6183b9e8 build(deps): bump softprops/turnstyle in /.github/workflows
Bumps [softprops/turnstyle](https://github.com/softprops/turnstyle) from 3.1.0 to 3.2.0.
- [Release notes](https://github.com/softprops/turnstyle/releases)
- [Changelog](https://github.com/softprops/turnstyle/blob/master/CHANGELOG.md)
- [Commits](858c58d647...9d692f15fa)

---
updated-dependencies:
- dependency-name: softprops/turnstyle
  dependency-version: 3.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-07 13:08:54 +00:00
Simon L.
c9649f4b90 Merge pull request #6942 from nextcloud/dependabot/docker/Containers/fulltextsearch/elasticsearch-8.19.5
build(deps): bump elasticsearch from 8.19.4 to 8.19.5 in /Containers/fulltextsearch
2025-10-07 08:54:20 +02:00
dependabot[bot]
593379de56 build(deps): bump elasticsearch in /Containers/fulltextsearch
Bumps elasticsearch from 8.19.4 to 8.19.5.

---
updated-dependencies:
- dependency-name: elasticsearch
  dependency-version: 8.19.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-07 04:18:34 +00:00
Simon L.
481604507c Merge pull request #6906 from nextcloud/dev/6892/fix
Change ui_secret to use LLDAP_LDAP_USER_PASS
2025-10-06 16:07:08 +02:00
Josh
c1949573c9 refactor(nextcloud): Tidy up entrypoint.sh error/log output
- Cleaned up error messages
- Reformatted some code for readability

No logic changes.

Signed-off-by: Josh <josh.t.richards@gmail.com>
2025-10-06 16:04:28 +02:00
Simon L.
7fbc548d2d lldap: adjust hint how to retrieve the password
Signed-off-by: Simon L. <szaimen@e.mail.de>
2025-10-06 15:44:27 +02:00
Simon L.
3ad84e2ae0 Merge pull request #6916 from nextcloud/alexanderdd-patch-1
add comment about possibility of migration AIO->VM
2025-10-06 15:23:57 +02:00
Simon L.
a33ef5d1aa move the hint to a new line
Signed-off-by: Simon L. <szaimen@e.mail.de>
2025-10-06 15:12:31 +02:00
Simon L.
0d1c4e4a1c Merge pull request #6938 from nextcloud/dependabot/docker/Containers/watchtower/nicholas-fedor/watchtower-1.12.1
build(deps): bump nicholas-fedor/watchtower from 1.11.8 to 1.12.1 in /Containers/watchtower
2025-10-06 08:39:41 +02:00
Simon L.
d734475d7c Merge pull request #6937 from nextcloud/dependabot/docker/Containers/redis/redis-7.2.11-alpine
build(deps): bump redis from 7.2.10-alpine to 7.2.11-alpine in /Containers/redis
2025-10-06 08:39:21 +02:00
Simon L.
a5c273ad1d Merge pull request #6936 from nextcloud/dependabot/docker/Containers/mastercontainer/docker-28.5.0-cli
build(deps): bump docker from 28.4.0-cli to 28.5.0-cli in /Containers/mastercontainer
2025-10-06 08:39:02 +02:00
Simon L.
ca93a01624 Merge pull request #6935 from nextcloud/dependabot/docker/Containers/docker-socket-proxy/haproxy-3.2.6-alpine
build(deps): bump haproxy from 3.2.5-alpine to 3.2.6-alpine in /Containers/docker-socket-proxy
2025-10-06 08:38:37 +02:00
Simon L.
51a1d433fc Merge pull request #6934 from nextcloud/dependabot/docker/Containers/collabora/collabora/code-25.04.6.1.1
build(deps): bump collabora/code from 25.04.5.3.1 to 25.04.6.1.1 in /Containers/collabora
2025-10-06 08:38:10 +02:00
dependabot[bot]
ec07ef6fe7 build(deps): bump nicholas-fedor/watchtower in /Containers/watchtower
Bumps [nicholas-fedor/watchtower](https://github.com/nicholas-fedor/watchtower) from 1.11.8 to 1.12.1.
- [Release notes](https://github.com/nicholas-fedor/watchtower/releases)
- [Changelog](https://github.com/nicholas-fedor/watchtower/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nicholas-fedor/watchtower/compare/v1.11.8...v1.12.1)

---
updated-dependencies:
- dependency-name: nicholas-fedor/watchtower
  dependency-version: 1.12.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-06 04:21:19 +00:00
dependabot[bot]
7053a206e1 build(deps): bump redis in /Containers/redis
Bumps redis from 7.2.10-alpine to 7.2.11-alpine.

---
updated-dependencies:
- dependency-name: redis
  dependency-version: 7.2.11-alpine
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-06 04:20:53 +00:00
dependabot[bot]
5a4ba1c350 build(deps): bump docker in /Containers/mastercontainer
Bumps docker from 28.4.0-cli to 28.5.0-cli.

---
updated-dependencies:
- dependency-name: docker
  dependency-version: 28.5.0-cli
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-06 04:20:26 +00:00
dependabot[bot]
db66d618fd build(deps): bump haproxy in /Containers/docker-socket-proxy
Bumps haproxy from 3.2.5-alpine to 3.2.6-alpine.

---
updated-dependencies:
- dependency-name: haproxy
  dependency-version: 3.2.6-alpine
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-06 04:20:06 +00:00
dependabot[bot]
742e0906f0 build(deps): bump collabora/code in /Containers/collabora
Bumps collabora/code from 25.04.5.3.1 to 25.04.6.1.1.

---
updated-dependencies:
- dependency-name: collabora/code
  dependency-version: 25.04.6.1.1
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-06 04:20:04 +00:00
Simon L.
a8b4d1f0c9 Merge pull request #6928 from nextcloud/enh/noid/mino-follow-up
add minio storage to backup volumes and readme update
2025-10-01 15:27:25 +02:00
Simon L.
4153c692fd add minio storage to backup volumes and readme update
Signed-off-by: Simon L. <szaimen@e.mail.de>
2025-10-01 15:11:45 +02:00
Simon L.
2d3780d3b3 increase to v11.10.0
Signed-off-by: Simon L. <szaimen@e.mail.de>
2025-10-01 14:43:20 +02:00
Simon L.
0de8b9a550 Merge pull request #6927 from nextcloud/enh/noid/add-minio
add minio community container
2025-10-01 14:42:10 +02:00
Simon L.
36a39a3528 add minio community container
Signed-off-by: Simon L. <szaimen@e.mail.de>
2025-10-01 14:38:28 +02:00
Simon L.
816675e747 Merge pull request #6919 from nextcloud/enh/6893/delete-caddy-lock
delete caddy locks if existing on startup
2025-10-01 12:33:39 +02:00
Simon L.
fa06f1c425 delete caddy locks if existing on startup
Signed-off-by: Simon L. <szaimen@e.mail.de>
2025-10-01 12:29:14 +02:00
Simon L.
216d238625 Merge pull request #6903 from nextcloud/jtr/fix-s3-config-autocreate-ssl
fix: unify default initialization of s3 `autocreate`, `use_ssl`, `use_path_style` and `legacy_auth`
2025-09-29 11:20:03 +02:00
Simon L.
dbcd5d8955 also adjust use_path_style and legacy_auth
Signed-off-by: Simon L. <szaimen@e.mail.de>
2025-09-29 11:15:53 +02:00
Simon L.
a04a1a7336 Merge pull request #6913 from nextcloud/szaimen-patch-1
talk: update eturnal image tag to use alpine image
2025-09-29 11:11:32 +02:00
Simon L.
7c1cc4c2dd talk: update eturnal image tag to use alpine image
Signed-off-by: Simon L. <szaimen@e.mail.de>
2025-09-29 11:05:24 +02:00
Simon L.
b353ba0ab3 Merge pull request #6900 from nextcloud/enh/noid/blacklisted-files
nextcloud-entrypoint: allow to configure av_blocklisted_directories
2025-09-29 10:53:53 +02:00
Simon L.
7a5d3e7ec8 nextcloud-entrypoint: allow to configreav_blocklisted_directories
Signed-off-by: Simon L. <szaimen@e.mail.de>
2025-09-29 10:51:58 +02:00
Simon L.
cf4fb4d4a0 Merge pull request #6898 from nextcloud/enh/noid/postgres-rootcert
nextcloud: allow to define postgres root cert during install
2025-09-29 10:51:10 +02:00
Simon L.
b807a2c754 Merge pull request #6899 from nextcloud/enh/noid/allow-multibucket-s3-config
nextcloud-s3-config: allow multibucket config
2025-09-29 10:50:57 +02:00
Simon L.
74636bb509 Merge pull request #6894 from nextcloud/enh/noid/add-orbstack-recommendation
add recommendation to use orbstack on macOS
2025-09-29 09:05:36 +02:00
Simon L.
396085e6cd Merge pull request #6897 from nextcloud/dependabot/docker/Containers/mastercontainer/php-8.4.13-fpm-alpine3.22
build(deps): bump php from 8.4.12-fpm-alpine3.22 to 8.4.13-fpm-alpine3.22 in /Containers/mastercontainer
2025-09-29 09:05:09 +02:00
Simon L.
2b75746814 Merge pull request #6896 from nextcloud/dependabot/docker/Containers/collabora/collabora/code-25.04.5.3.1
build(deps): bump collabora/code from 25.04.5.2.1 to 25.04.5.3.1 in /Containers/collabora
2025-09-29 09:04:51 +02:00
Simon L.
4be5772509 Merge pull request #6891 from nextcloud/dependabot/github_actions/dot-github/workflows/softprops/turnstyle-3.1.0
build(deps): bump softprops/turnstyle from 3.0.0 to 3.1.0 in /.github/workflows
2025-09-29 09:04:30 +02:00
Simon L.
b9b09b4a98 Merge pull request #6890 from nextcloud/aio-dependency-update
PHP dependency updates
2025-09-29 09:04:01 +02:00
Simon L.
f500b246aa Merge pull request #6889 from nextcloud/dependabot/docker/Containers/whiteboard/nextcloud-releases/whiteboard-v1.2.1
build(deps): bump nextcloud-releases/whiteboard from v1.2.0 to v1.2.1 in /Containers/whiteboard
2025-09-29 09:03:29 +02:00
Simon L.
f5f9b04190 Merge pull request #6888 from nextcloud/dependabot/docker/Containers/docker-socket-proxy/haproxy-3.2.5-alpine
build(deps): bump haproxy from 3.2.4-alpine to 3.2.5-alpine in /Containers/docker-socket-proxy
2025-09-29 09:03:07 +02:00
Simon L.
4a7b8862a6 Merge pull request #6885 from nextcloud/dependabot/docker/Containers/talk/nats-2.12.0-scratch
build(deps): bump nats from 2.11.9-scratch to 2.12.0-scratch in /Containers/talk
2025-09-29 09:02:38 +02:00
Simon L.
b3121b0dfa Merge pull request #6917 from nextcloud/dependabot/docker/Containers/nextcloud/php-8.3.26-fpm-alpine3.22
build(deps): bump php from 8.3.25-fpm-alpine3.22 to 8.3.26-fpm-alpine3.22 in /Containers/nextcloud
2025-09-29 09:02:07 +02:00
dependabot[bot]
d5761aa52b build(deps): bump php in /Containers/nextcloud
Bumps php from 8.3.25-fpm-alpine3.22 to 8.3.26-fpm-alpine3.22.

---
updated-dependencies:
- dependency-name: php
  dependency-version: 8.3.26-fpm-alpine3.22
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-29 04:34:41 +00:00
Alexander Müller
b77af1a2f8 add comment about possibility of migration AIO->VM
Signed-off-by: Alexander Müller <28591861+alexanderdd@users.noreply.github.com>
2025-09-28 14:10:59 -05:00
szaimen
25c80f470b php dependency updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-28 12:03:19 +00:00
Jean-Yves
f8cc109b7e Change ui_secret to use LLDAP_LDAP_USER_PASS
Signed-off-by: Jean-Yves <7360784+docjyJ@users.noreply.github.com>
2025-09-27 12:26:56 +02:00
Simon L.
2b50ce73be Merge pull request #6904 from nextcloud/aio-helm-update
Helm Chart updates
2025-09-27 10:19:01 +02:00
szaimen
cc1933b51f Helm Chart updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-27 08:18:03 +00:00
Josh
f3c666df9a fix: unify default initialization of s3 autocreate and use_ssl
Unify with micro-services image fix: nextcloud/docker#2309

Signed-off-by: Josh <josh.t.richards@gmail.com>
2025-09-26 15:53:28 -04:00
Simon L.
19b1469d85 nextcloud-s3-config: allow multibucket config
Signed-off-by: Simon L. <szaimen@e.mail.de>
2025-09-26 11:38:14 +02:00
Simon L.
b692c1d049 nextcloud: allow to define postgres root cert during install
Signed-off-by: Simon L. <szaimen@e.mail.de>
2025-09-26 10:34:07 +02:00
dependabot[bot]
4ab852204f build(deps): bump php in /Containers/mastercontainer
Bumps php from 8.4.12-fpm-alpine3.22 to 8.4.13-fpm-alpine3.22.

---
updated-dependencies:
- dependency-name: php
  dependency-version: 8.4.13-fpm-alpine3.22
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-26 04:23:15 +00:00
dependabot[bot]
4b0c78376d build(deps): bump collabora/code in /Containers/collabora
Bumps collabora/code from 25.04.5.2.1 to 25.04.5.3.1.

---
updated-dependencies:
- dependency-name: collabora/code
  dependency-version: 25.04.5.3.1
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-26 04:22:54 +00:00
Simon L.
37132d805e add recommendation to use orbstack on macOS
Signed-off-by: Simon L. <szaimen@e.mail.de>
2025-09-25 15:10:41 +02:00
dependabot[bot]
456a06d968 build(deps): bump softprops/turnstyle in /.github/workflows
Bumps [softprops/turnstyle](https://github.com/softprops/turnstyle) from 3.0.0 to 3.1.0.
- [Release notes](https://github.com/softprops/turnstyle/releases)
- [Changelog](https://github.com/softprops/turnstyle/blob/master/CHANGELOG.md)
- [Commits](bff8432276...858c58d647)

---
updated-dependencies:
- dependency-name: softprops/turnstyle
  dependency-version: 3.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-24 12:18:30 +00:00
dependabot[bot]
68317a1eb3 build(deps): bump nextcloud-releases/whiteboard
Bumps nextcloud-releases/whiteboard from v1.2.0 to v1.2.1.

---
updated-dependencies:
- dependency-name: nextcloud-releases/whiteboard
  dependency-version: v1.2.1
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-24 04:24:33 +00:00
dependabot[bot]
21c62125f1 build(deps): bump haproxy in /Containers/docker-socket-proxy
Bumps haproxy from 3.2.4-alpine to 3.2.5-alpine.

---
updated-dependencies:
- dependency-name: haproxy
  dependency-version: 3.2.5-alpine
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-24 04:23:39 +00:00
dependabot[bot]
2324666591 build(deps): bump nats in /Containers/talk
Bumps nats from 2.11.9-scratch to 2.12.0-scratch.

---
updated-dependencies:
- dependency-name: nats
  dependency-version: 2.12.0-scratch
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-23 04:20:34 +00:00
Simon L.
1ce3b4ec06 Merge pull request #6879 from nextcloud/dependabot/github_actions/dot-github/workflows/shivammathur/setup-php-2.35.5
build(deps): bump shivammathur/setup-php from 2.35.4 to 2.35.5 in /.github/workflows
2025-09-19 14:37:52 +02:00
dependabot[bot]
caaf45143d build(deps): bump shivammathur/setup-php in /.github/workflows
Bumps [shivammathur/setup-php](https://github.com/shivammathur/setup-php) from 2.35.4 to 2.35.5.
- [Release notes](https://github.com/shivammathur/setup-php/releases)
- [Commits](ec406be512...bf6b4fbd49)

---
updated-dependencies:
- dependency-name: shivammathur/setup-php
  dependency-version: 2.35.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-19 12:16:59 +00:00
Simon L.
2aeb7b5ae5 Merge pull request #6874 from nextcloud/dependabot/docker/Containers/fulltextsearch/elasticsearch-8.19.4
build(deps): bump elasticsearch from 8.19.3 to 8.19.4 in /Containers/fulltextsearch
2025-09-19 08:37:11 +02:00
dependabot[bot]
d937739ef0 build(deps): bump elasticsearch in /Containers/fulltextsearch
Bumps elasticsearch from 8.19.3 to 8.19.4.

---
updated-dependencies:
- dependency-name: elasticsearch
  dependency-version: 8.19.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-19 04:20:39 +00:00
Simon L.
cda721d0dd Merge pull request #6870 from nextcloud/enh/6748/add-new-background
aio-interface: add new background for hub 25 Autumn
2025-09-18 11:46:24 +02:00
Simon L.
2bfae89461 Merge pull request #6869 from nextcloud/enh/noid/update-hub-version
aio-interface: to allow to install the latest hub version
2025-09-18 11:46:07 +02:00
Simon L.
f72546fada Merge pull request #6868 from nextcloud/enh/4380/add-languagetool
add LanguageTool for Collabora community container
2025-09-18 11:45:02 +02:00
Simon L.
5b76d6fac6 increase to 11.9.0
Signed-off-by: Simon L. <szaimen@e.mail.de>
2025-09-18 11:44:22 +02:00
Simon L.
beefc973c6 Merge pull request #6873 from nextcloud/aio-helm-update
Helm Chart updates
2025-09-18 11:33:26 +02:00
szaimen
bc92ebc65c Helm Chart updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-18 09:32:57 +00:00
Simon L.
c694177e27 aio-interface: add new background for hub 25 Autumn
Signed-off-by: Simon L. <szaimen@e.mail.de>
2025-09-16 13:32:20 +02:00
Simon L.
fae93b685b update AIO interface to allow to install the latest hub version
Signed-off-by: Simon L. <szaimen@e.mail.de>
2025-09-16 12:10:15 +02:00
Simon L.
c6911a228d add LanguageTool for Collabora community container
Signed-off-by: Simon L. <szaimen@e.mail.de>
2025-09-16 11:27:32 +02:00
Simon L.
4655294cfe Merge pull request #6628 from seclution/patch-1
rp-docs: increase Treafik timeout
2025-09-16 10:51:18 +02:00
Simon L.
c241ff57fb adjust traefik docs
Signed-off-by: Simon L. <szaimen@e.mail.de>
2025-09-16 10:49:57 +02:00
Verhoeckx
150ed0840a Added the section Removing the reverse proxy. (#6854)
* Added the section Removing the reverse proxy.
Signed-off-by: Verhoeckx <j.verhoeckx@protonmail.com>
Co-authored-by: Simon L. <szaimen@e.mail.de>
2025-09-12 14:48:56 +02:00
Simon L.
d59c9517c7 Merge pull request #6824 from nextcloud/aio-yaml-update
Yaml updates
2025-09-12 13:39:01 +02:00
Simon L.
2ec1a7173b fix detail with initializing Nextcloud
Signed-off-by: Simon L. <szaimen@e.mail.de>
2025-09-12 12:48:45 +02:00
Simon L.
9e5f74d9fa Merge pull request #6852 from nextcloud/enh/noid/adjust-some-details
nextcloud-entrypoint: adjust some details
2025-09-12 11:03:07 +02:00
Simon L.
f5f283dad4 Merge pull request #6858 from nextcloud/nextcloud-container-update
Nextcloud dependency update
2025-09-12 11:00:26 +02:00
Simon L.
38f54294ad Merge pull request #6837 from Grotax/prometheus-nextcloud-exporter
add Prometheus Node Exporter as community container
2025-09-12 10:55:28 +02:00
Benjamin Brahmer
7b23b48cf8 feat: add community container nextcloud-exporter
- allows monitoring your nextcloud with prometheus
- listens on localhost only, but caddy integration is available
- You can create a Dashboard in Grafana to visualize the collected data

Signed-off-by: Benjamin Brahmer <info@b-brahmer.de>
Co-Authored-By: Simon L. <szaimen@e.mail.de>
2025-09-12 10:53:48 +02:00
szaimen
29ff04f5e6 nextcloud-update automated change
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-12 08:36:44 +00:00
Simon L.
c31e8d8207 Merge pull request #6856 from nextcloud/dependabot/docker/Containers/whiteboard/nextcloud-releases/whiteboard-v1.2.0
build(deps): bump nextcloud-releases/whiteboard from v1.1.3 to v1.2.0 in /Containers/whiteboard
2025-09-12 09:05:35 +02:00
dependabot[bot]
1e77ea27f0 build(deps): bump nextcloud-releases/whiteboard
Bumps nextcloud-releases/whiteboard from v1.1.3 to v1.2.0.

---
updated-dependencies:
- dependency-name: nextcloud-releases/whiteboard
  dependency-version: v1.2.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-12 04:19:40 +00:00
Simon L.
b95ff056e0 nextcloud-entrypoint: adjust some details
Signed-off-by: Simon L. <szaimen@e.mail.de>
2025-09-11 17:01:41 +02:00
szaimen
3c8b6a0f3f Yaml updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-11 12:03:40 +00:00
Simon L.
d6dbcda9ed Merge pull request #6849 from nextcloud/dependabot/docker/Containers/collabora/collabora/code-25.04.5.2.1
build(deps): bump collabora/code from 25.04.5.1.1 to 25.04.5.2.1 in /Containers/collabora
2025-09-11 09:20:02 +02:00
dependabot[bot]
0b30904c91 build(deps): bump collabora/code in /Containers/collabora
Bumps collabora/code from 25.04.5.1.1 to 25.04.5.2.1.

---
updated-dependencies:
- dependency-name: collabora/code
  dependency-version: 25.04.5.2.1
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-11 04:22:25 +00:00
Simon L.
0d16e8184a Merge pull request #6734 from nextcloud/dependabot/github_actions/dot-github/workflows/actions/checkout-5
build(deps): bump actions/checkout from 4 to 5 in /.github/workflows
2025-09-10 15:20:20 +02:00
Simon L.
46ebd46d89 Merge pull request #6820 from nextcloud/dependabot/github_actions/dot-github/workflows/actions/setup-node-5
build(deps): bump actions/setup-node from 4 to 5 in /.github/workflows
2025-09-10 15:20:02 +02:00
Simon L.
9135bc407a Merge pull request #6839 from nextcloud/dependabot/github_actions/dot-github/workflows/softprops/turnstyle-3.0.0
build(deps): bump softprops/turnstyle from 2.4.0 to 3.0.0 in /.github/workflows
2025-09-10 15:19:29 +02:00
Simon L.
81e1bc1ef3 Merge pull request #6845 from nextcloud/enh/noid/monospace-fall-back
aio-interface setup page: fall back to system fonts if monospace does not exist
2025-09-10 15:12:04 +02:00
Simon L.
3251fa69d3 Merge pull request #6835 from nextcloud/enh/noid/update-facerecognition-json
facerecognition-cc: update json to use actual secret for api key
2025-09-10 14:15:49 +02:00
Simon L.
cfaf69fb58 Merge pull request #6841 from nextcloud/global-secrets
Register secrets for generation when their declarations are read
2025-09-10 13:47:58 +02:00
Simon L.
f3104bd661 Merge pull request #6846 from nextcloud/dependabot/docker/Containers/talk/nats-2.11.9-scratch
build(deps): bump nats from 2.11.8-scratch to 2.11.9-scratch in /Containers/talk
2025-09-10 09:25:59 +02:00
dependabot[bot]
f87bd7ae45 build(deps): bump nats in /Containers/talk
Bumps nats from 2.11.8-scratch to 2.11.9-scratch.

---
updated-dependencies:
- dependency-name: nats
  dependency-version: 2.11.9-scratch
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-10 04:21:22 +00:00
Alan Savage
29c093afae Make secrets global and init on first use.
This allows all containers to use any secret declared anywhere
in their placeholders but they will not be generated and
written to the configuration until they are used.

Signed-off-by: Alan Savage <3028205+asavageiv@users.noreply.github.com>
2025-09-09 14:59:41 -07:00
Simon L.
ee2f1fa262 aio-interface setup page: fall back to system fonts if monospace does not exist
Signed-off-by: Simon L. <szaimen@e.mail.de>
2025-09-09 20:46:40 +02:00
dependabot[bot]
6648cfbd65 build(deps): bump softprops/turnstyle in /.github/workflows
Bumps [softprops/turnstyle](https://github.com/softprops/turnstyle) from 2.4.0 to 3.0.0.
- [Release notes](https://github.com/softprops/turnstyle/releases)
- [Changelog](https://github.com/softprops/turnstyle/blob/master/CHANGELOG.md)
- [Commits](807f6009e7...bff8432276)

---
updated-dependencies:
- dependency-name: softprops/turnstyle
  dependency-version: 3.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-08 12:35:20 +00:00
Simon L.
e4c2f44d81 Merge pull request #6825 from nextcloud/alan/fix-wopi-serving
Use a fixed port for internal WOPI requests and callbacks
2025-09-08 11:42:45 +02:00
Simon L.
bb342bc64a facerecognition-cc: update json to use actual secret for api key
Signed-off-by: Simon L. <szaimen@e.mail.de>
2025-09-08 11:10:02 +02:00
Simon L.
eece6b97cc Merge pull request #6832 from nextcloud/dependabot/docker/Containers/imaginary/golang-1.25.1-alpine3.22
build(deps): bump golang from 1.25.0-alpine3.22 to 1.25.1-alpine3.22 in /Containers/imaginary
2025-09-08 10:08:02 +02:00
dependabot[bot]
f37d857b7b build(deps): bump golang in /Containers/imaginary
Bumps golang from 1.25.0-alpine3.22 to 1.25.1-alpine3.22.

---
updated-dependencies:
- dependency-name: golang
  dependency-version: 1.25.1-alpine3.22
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-08 04:30:50 +00:00
Alan Savage
d2e944f7dc Use a fixed port for internal WOPI requests and callbacks
This fixes the issue where Caddy fails to start when APACHE_PORT
was 443.

Signed-off-by: Alan Savage <3028205+asavageiv@users.noreply.github.com>
2025-09-05 06:18:18 -07:00
Simon L.
ca0e7980b3 increase to 11.8.0
Signed-off-by: Simon L. <szaimen@e.mail.de>
2025-09-05 12:57:57 +02:00
Simon L.
0521a87999 Merge pull request #6676 from asavageiv/alan/internal-wopi-requests
Configure WOPI requests to remain within the Docker network
2025-09-05 12:49:24 +02:00
Simon L.
600f34a58e Merge pull request #6822 from nextcloud/dependabot/docker/Containers/watchtower/nicholas-fedor/watchtower-1.11.8
build(deps): bump nicholas-fedor/watchtower from v1.11.7 to 1.11.8 in /Containers/watchtower
2025-09-05 12:45:18 +02:00
Simon L.
d9b1a8138e Merge pull request #6821 from nextcloud/dependabot/docker/Containers/mastercontainer/docker-28.4.0-cli
build(deps): bump docker from 28.3.3-cli to 28.4.0-cli in /Containers/mastercontainer
2025-09-05 12:44:48 +02:00
Simon L.
e4f2697eb5 Merge pull request #6819 from nextcloud/dependabot/docker/Containers/fulltextsearch/elasticsearch-8.19.3
build(deps): bump elasticsearch from 8.19.2 to 8.19.3 in /Containers/fulltextsearch
2025-09-05 12:44:09 +02:00
Simon L.
e91fac1722 Merge pull request #6809 from nextcloud/nextcloud-container-update
Nextcloud dependency update
2025-09-05 12:43:53 +02:00
Simon L.
06cb79e238 Merge pull request #6808 from nextcloud/aio-dependency-update
PHP dependency updates
2025-09-05 12:43:40 +02:00
Simon L.
bd2fb3d111 Merge pull request #6823 from nextcloud/aio-helm-update
Helm Chart updates
2025-09-05 12:15:21 +02:00
szaimen
d50e1d2dfc Helm Chart updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-05 10:14:26 +00:00
Simon L.
1e9afb833c fix update-helm script detail
Signed-off-by: Simon L. <szaimen@e.mail.de>
2025-09-05 12:12:33 +02:00
dependabot[bot]
f5dfa3193c build(deps): bump nicholas-fedor/watchtower in /Containers/watchtower
Bumps [nicholas-fedor/watchtower](https://github.com/nicholas-fedor/watchtower) from v1.11.7 to 1.11.8.
- [Release notes](https://github.com/nicholas-fedor/watchtower/releases)
- [Commits](https://github.com/nicholas-fedor/watchtower/compare/v1.11.7...v1.11.8)

---
updated-dependencies:
- dependency-name: nicholas-fedor/watchtower
  dependency-version: 1.11.8
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-05 04:21:52 +00:00
dependabot[bot]
bccdb62e80 build(deps): bump docker in /Containers/mastercontainer
Bumps docker from 28.3.3-cli to 28.4.0-cli.

---
updated-dependencies:
- dependency-name: docker
  dependency-version: 28.4.0-cli
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-05 04:21:14 +00:00
Alan Savage
5f4fae140a Make APACHE_HOST an optional param in apache/Caddyfile
Co-authored-by: Simon L. <szaimen@e.mail.de>
Signed-off-by: Alan Savage <asavageiv@users.noreply.github.com>
2025-09-04 08:57:40 -07:00
dependabot[bot]
8d5726af7c build(deps): bump actions/setup-node from 4 to 5 in /.github/workflows
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4 to 5.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-04 14:18:48 +00:00
szaimen
b65ee97702 nextcloud-update automated change
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-04 12:18:45 +00:00
szaimen
213388b65d php dependency updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-04 12:16:12 +00:00
dependabot[bot]
e255f29818 build(deps): bump elasticsearch in /Containers/fulltextsearch
Bumps elasticsearch from 8.19.2 to 8.19.3.

---
updated-dependencies:
- dependency-name: elasticsearch
  dependency-version: 8.19.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-03 20:59:02 +00:00
Simon L.
f4ae96a91d Merge pull request #6818 from nextcloud/enh/noid/add-new-tailscale-guide
update docs with new tailscale guide
2025-09-03 21:13:30 +02:00
Simon L.
43b04b36f5 update docs with new tailscale guide
Signed-off-by: Simon L. <szaimen@e.mail.de>
2025-09-03 21:04:22 +02:00
Simon L.
0f27bd9315 Merge pull request #6802 from nextcloud/enh/noid/add-further-compose-explanation
compose.yaml: add some more explanation and links to docs
2025-09-03 12:06:05 +02:00
Alan Savage
b26b2b4400 Use nextcloud-aio-apache for the wopi-url
This makes all the WOPI requests go through a single point
making debugging easier.

Signed-off-by: Alan Savage <3028205+asavageiv@users.noreply.github.com>
2025-08-30 10:24:45 -07:00
Alan Savage
1f7ccba5c8 Configure WOPI requests to remain within the Docker network
Signed-off-by: Alan Savage <3028205+asavageiv@users.noreply.github.com>
2025-08-29 08:27:32 -07:00
Simon L.
78bbb8a111 compose.yaml: add some more explanation and links to docs
Signed-off-by: Simon L. <szaimen@e.mail.de>
2025-08-29 10:43:03 +02:00
dependabot[bot]
84f92cd0ac build(deps): bump actions/checkout from 4 to 5 in /.github/workflows
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Commits](https://github.com/actions/checkout/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-27 12:53:34 +00:00
Kai Biebel
99b5454676 Update reverse-proxy.md
Increase timeouts to prevent connection reset on uploads >100MB in clean Traefik setup

Signed-off-by: Kai Biebel <38378574+seclution@users.noreply.github.com>
2025-07-07 09:59:34 +02:00
84 changed files with 586 additions and 257 deletions

View File

@@ -12,7 +12,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v4
uses: actions/checkout@v5
- name: Check spelling
uses: codespell-project/actions-codespell@406322ec52dd7b488e48c1c4b82e2a8b3a1bf630 # v2
with:

View File

@@ -16,7 +16,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
uses: actions/checkout@v5
- name: Validate structure
run: |
CONTAINERS="$(find ./community-containers -mindepth 1 -maxdepth 1 -type d)"

View File

@@ -10,8 +10,8 @@ jobs:
name: Run dependency update script
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 # v2
- uses: actions/checkout@v5
- uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f # v2
with:
php-version: 8.4
extensions: apcu

View File

@@ -25,7 +25,7 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v5
- name: Install hadolint
run: |

View File

@@ -13,10 +13,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v5
- name: Turnstyle
uses: softprops/turnstyle@807f6009e7cee5c2c9faa41ccef03a8bb24b06ab # v2
uses: softprops/turnstyle@9d692f15fa9f84928799bccac2dba6565e024bdf # v2
with:
continue-after-seconds: 180
env:

View File

@@ -10,7 +10,7 @@ jobs:
name: update to latest imaginary commit on master branch
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- name: Run imaginary-update
run: |
# Imaginary

View File

@@ -16,7 +16,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
uses: actions/checkout@v5
- name: Validate Json
run: |
sudo apt-get update

View File

@@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v5
with:
fetch-depth: 0

View File

@@ -33,10 +33,10 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
uses: actions/checkout@ff7abcd0c3c05ccf6adc123a8cd1fd4fb30fb493 # v4.1.1
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 # v2
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f # v2
with:
php-version: ${{ matrix.php-versions }}
coverage: none

View File

@@ -11,7 +11,7 @@ jobs:
name: Run nextcloud-update script
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- name: Run nextcloud-update script
run: |
# Inspired by https://github.com/nextcloud/docker/blob/master/update.sh

View File

@@ -16,9 +16,9 @@ jobs:
name: PHP Deprecation Detector
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- name: Set up php
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 # v2
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f # v2
with:
php-version: 8.4
extensions: apcu

View File

@@ -13,9 +13,9 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- uses: actions/setup-node@v4
- uses: actions/setup-node@v6
with:
node-version: lts/*

View File

@@ -10,10 +10,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- name: Set up php
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 # v2
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f # v2
with:
php-version: 8.4
extensions: apcu

View File

@@ -26,10 +26,10 @@ jobs:
name: static-psalm-analysis
steps:
- name: Checkout
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
uses: actions/checkout@ff7abcd0c3c05ccf6adc123a8cd1fd4fb30fb493 # v4.1.1
- name: Set up php
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 # v2
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f # v2
with:
php-version: 8.4
extensions: apcu

View File

@@ -15,7 +15,7 @@ jobs:
name: Check Shell
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- name: Run Shellcheck
uses: ludeeus/action-shellcheck@00cae500b08a931fb5698e11e79bfbd38e612a38 # v2.0.0
with:

View File

@@ -10,7 +10,7 @@ jobs:
name: update talk
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- name: Run talk-container-update
run: |
# Recording

View File

@@ -24,10 +24,10 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v5
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 # v2
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f # v2
with:
php-version: 8.4
extensions: apcu

View File

@@ -8,4 +8,4 @@ jobs:
name: update copyright
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5

View File

@@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
uses: actions/checkout@v5
- name: update helm chart
run: |
set -x

View File

@@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
uses: actions/checkout@v5
- name: update yaml files
run: |
sudo bash manual-install/update-yaml.sh

View File

@@ -15,6 +15,7 @@
}
https://{$ADDITIONAL_TRUSTED_DOMAIN}:443,
http://{$APACHE_HOST}:23973, # For Collabora callback and WOPI requests, see containers.json
{$PROTOCOL}://{$NC_DOMAIN}:{$APACHE_PORT} {
header -Server
header -X-Powered-By

View File

@@ -66,6 +66,11 @@ caddy fmt --overwrite /tmp/Caddyfile
# Add caddy path
mkdir -p /mnt/data/caddy/
# Fix caddy startup
if [ -d "/mnt/data/caddy/locks" ]; then
rm -rf /mnt/data/caddy/locks/*
fi
# Fix apache startup
rm -f /usr/local/apache2/logs/httpd.pid

View File

@@ -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:25.04.5.1.1
FROM collabora/code:25.04.6.1.1
USER root
ARG DEBIAN_FRONTEND=noninteractive

View File

@@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest
FROM haproxy:3.2.4-alpine
FROM haproxy:3.2.6-alpine
# hadolint ignore=DL3002
USER root

View File

@@ -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.19.2
FROM elasticsearch:8.19.5
USER root

View File

@@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest
FROM golang:1.25.0-alpine3.22 AS go
FROM golang:1.25.2-alpine3.22 AS go
ENV IMAGINARY_HASH=1d4e251cfcd58ea66f8361f8721d7b8cc85002a3

View File

@@ -1,12 +1,12 @@
# syntax=docker/dockerfile:latest
# Docker CLI is a requirement
FROM docker:28.3.3-cli AS docker
FROM docker:28.5.0-cli AS docker
# Caddy is a requirement
FROM caddy:2.10.2-alpine AS caddy
# From https://github.com/docker-library/php/blob/master/8.4/alpine3.22/fpm/Dockerfile
FROM php:8.4.12-fpm-alpine3.22
FROM php:8.4.13-fpm-alpine3.22
EXPOSE 80
EXPOSE 8080
@@ -49,7 +49,7 @@ RUN set -ex; \
apk add --no-cache --virtual .build-deps \
autoconf \
build-base; \
pecl install APCu-5.1.26; \
pecl install APCu-5.1.27; \
docker-php-ext-enable apcu; \
rm -r /tmp/pear; \
runDeps="$( \

View File

@@ -375,6 +375,11 @@ export TZ=Etc/UTC
# Fix apache startup
rm -f /var/run/apache2/httpd.pid
# Fix caddy startup
if [ -d "/mnt/docker-aio-config/caddy/locks" ]; then
rm -rf /mnt/docker-aio-config/caddy/locks/*
fi
# Fix the Caddyfile format
caddy fmt --overwrite /Caddyfile

View File

@@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest
FROM php:8.3.25-fpm-alpine3.22
FROM php:8.3.26-fpm-alpine3.22
ENV PHP_MEMORY_LIMIT=512M
ENV PHP_UPLOAD_LIMIT=16G
@@ -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=31.0.8
ENV NEXTCLOUD_VERSION=31.0.9
ENV AIO_TOKEN=123456
ENV AIO_URL=localhost
# AIO settings end # Do not remove or change this line!
@@ -83,7 +83,7 @@ RUN set -ex; \
\
# pecl will claim success even if one install fails, so we need to perform each install separately
pecl install -o igbinary-3.2.16; \
pecl install APCu-5.1.26; \
pecl install APCu-5.1.27; \
pecl install -D 'enable-memcached-igbinary="yes"' memcached-3.3.0; \
pecl install -oD 'enable-redis-igbinary="yes" enable-redis-zstd="yes" enable-redis-lz4="yes"' redis-6.2.0; \
pecl install -o imagick-3.8.0; \

View File

@@ -0,0 +1,9 @@
<?php
if (getenv('NEXTCLOUD_TRUSTED_CERTIFICATES_POSTGRES')) {
$CONFIG = array(
'pgsql_ssl' => array(
'mode' => 'verify-ca',
'rootcert' => '/var/www/html/data/certificates/POSTGRES',
),
);
}

View File

@@ -4,8 +4,9 @@ if (getenv('OBJECTSTORE_S3_BUCKET')) {
$use_path = getenv('OBJECTSTORE_S3_USEPATH_STYLE');
$use_legacyauth = getenv('OBJECTSTORE_S3_LEGACYAUTH');
$autocreate = getenv('OBJECTSTORE_S3_AUTOCREATE');
$multibucket = getenv('OBJECTSTORE_S3_MULTIBUCKET');
$CONFIG = array(
'objectstore' => array(
$multibucket === 'true' ? 'objectstore_multibucket' : 'objectstore' => array(
'class' => '\OC\Files\ObjectStore\S3',
'arguments' => array(
'bucket' => getenv('OBJECTSTORE_S3_BUCKET'),
@@ -16,12 +17,12 @@ if (getenv('OBJECTSTORE_S3_BUCKET')) {
'port' => getenv('OBJECTSTORE_S3_PORT') ?: '',
'storageClass' => getenv('OBJECTSTORE_S3_STORAGE_CLASS') ?: '',
'objectPrefix' => getenv("OBJECTSTORE_S3_OBJECT_PREFIX") ? getenv("OBJECTSTORE_S3_OBJECT_PREFIX") : "urn:oid:",
'autocreate' => (strtolower($autocreate) === 'false' || $autocreate == false) ? false : true,
'use_ssl' => (strtolower($use_ssl) === 'false' || $use_ssl == false) ? false : true,
'autocreate' => strtolower($autocreate) !== 'false',
'use_ssl' => strtolower($use_ssl) !== 'false',
// required for some non Amazon S3 implementations
'use_path_style' => $use_path == true && strtolower($use_path) !== 'false',
'use_path_style' => strtolower($use_path) === 'true',
// required for older protocol versions
'legacy_auth' => $use_legacyauth == true && strtolower($use_legacyauth) !== 'false'
'legacy_auth' => strtolower($use_legacyauth) === 'true'
)
)
);

View File

@@ -25,31 +25,34 @@ if [ "$DATABASE_TYPE" = postgres ]; then
export DATABASE_TYPE=pgsql
fi
# Only start container if redis is accessible
# Only start container if Redis is accessible
# shellcheck disable=SC2153
while ! nc -z "$REDIS_HOST" "6379"; do
echo "Waiting for redis to start..."
echo "Waiting for Redis to start..."
sleep 5
done
# Check permissions in ncdata
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.
Please adjust the permissions like mentioned below.
The found permissions are:
$(stat -c "%u:%g %a" "$NEXTCLOUD_DATA_DIR")
(userID:groupID permissions)
but they should be:
33:0 750
(userID:groupID permissions)
Also make sure that the parent directories on the host of the directory that you've chosen as datadir are publicly readable with e.g. 'sudo chmod +r /mnt' (adjust the command accordingly to your case) and the same for all subdirectories.
Additionally, if you want to use a Fuse-mount as datadir, set 'allow_other' as additional mount option.
For SMB/CIFS mounts as datadir, see https://github.com/nextcloud/all-in-one#can-i-use-a-cifssmb-share-as-nextclouds-datadir"
test_file="$NEXTCLOUD_DATA_DIR/this-is-a-test-file"
touch "$test_file"
if ! [ -f "$test_file" ]; then
echo "The www-data user does not appear to have access rights to the data directory."
echo "It is possible that the files are on a filesystem that does not support standard Linux permissions,"
echo "or the permissions simply need to be adjusted. Please change the permissions as described below."
echo "Current permissions are:"
stat -c "%u:%g %a" "$NEXTCLOUD_DATA_DIR"
echo "(userID:groupID permissions)"
echo "They should be:"
echo "33:0 750"
echo "(userID:groupID permissions)"
echo "Also, ensure that all parent directories on the host of your chosen data directory are publicly readable."
echo "For example: sudo chmod +r /mnt (adjust this command as needed)."
echo "If you want to use a FUSE mount as the data directory, add 'allow_other' as an additional mount option."
echo "For SMB/CIFS mounts as the data directory, see:"
echo " https://github.com/nextcloud/all-in-one#can-i-use-a-cifssmb-share-as-nextclouds-datadir"
exit 1
fi
rm "$NEXTCLOUD_DATA_DIR/this-is-a-test-file"
rm -f "$test_file"
if [ -f /var/www/html/version.php ]; then
# shellcheck disable=SC2016
@@ -71,26 +74,31 @@ fi
# Don't start the container if Nextcloud is not compatible with the PHP version
if [ -f "/var/www/html/lib/versioncheck.php" ] && ! php /var/www/html/lib/versioncheck.php; then
echo "It seems like your installed Nextcloud is not compatible with the by the container provided PHP version."
echo "This most likely happened because you tried to restore an old Nextcloud version from backup that is not compatible with the PHP version that comes with the container."
echo "Please try to restore a more recent backup which contains a Nextcloud version that is compatible with the PHP version that comes with the container."
echo "If you do not have a more recent backup, feel free to have a look at this documentation: https://github.com/nextcloud/all-in-one/blob/main/manual-upgrade.md"
echo "Your installed Nextcloud version is not compatible with the PHP version provided by this image."
echo "This typically occurs when you restore an older Nextcloud backup that does not support the"
echo "PHP version included in this image."
echo "Please restore a more recent backup that includes a compatible Nextcloud version."
echo "If you do not have a more recent backup, refer to the manual upgrade documentation:"
echo " https://github.com/nextcloud/all-in-one/blob/main/manual-upgrade.md"
exit 1
fi
# Do not start the container if the last update failed
if [ -f "$NEXTCLOUD_DATA_DIR/update.failed" ]; then
echo "The last Nextcloud update failed."
echo "Please restore from backup and try again!"
echo "If you do not have a backup in place, you can simply delete the update.failed file in the datadir which will allow the container to start again."
echo "Please restore from a backup and try again."
echo "If you do not have a backup, you can delete the update.failed file in the data directory"
echo "to allow the container to start again."
exit 1
fi
# Do not start the container if the install failed
if [ -f "$NEXTCLOUD_DATA_DIR/install.failed" ]; then
echo "The initial Nextcloud installation failed."
echo "Please reset AIO properly and try again. For further clues what went wrong, check the logs above."
echo "See https://github.com/nextcloud/all-in-one#how-to-properly-reset-the-instance"
echo "For more information about what went wrong, check the logs above."
echo "Please reset AIO properly and try again."
echo "See:"
echo " https://github.com/nextcloud/all-in-one#how-to-properly-reset-the-instance"
exit 1
fi
@@ -143,7 +151,7 @@ if ! [ -f "$NEXTCLOUD_DATA_DIR/skip.update" ]; then
if [ "$installed_version" != "0.0.0.0" ]; then
# Check connection to appstore start # Do not remove or change this line!
while true; do
echo -e "Checking connection to appstore"
echo -e "Checking connection to the app store..."
APPSTORE_URL="https://apps.nextcloud.com/api/v1"
if grep -q appstoreurl /var/www/html/config/config.php; then
set -x
@@ -154,10 +162,10 @@ if ! [ -f "$NEXTCLOUD_DATA_DIR/skip.update" ]; then
CURL_STATUS="$(curl -LI "$APPSTORE_URL"/apps.json -o /dev/null -w '%{http_code}\n' -s)"
if [[ "$CURL_STATUS" = "200" ]]
then
echo "Appstore is reachable"
echo "App store is reachable."
break
else
echo "Curl didn't produce a 200 status, is appstore reachable?"
echo "Curl did not return a 200 status. Is the app store reachable?"
sleep 5
fi
done
@@ -167,21 +175,21 @@ if ! [ -f "$NEXTCLOUD_DATA_DIR/skip.update" ]; then
php /var/www/html/occ maintenance:mode --off
echo "Getting and backing up the status of apps for later, this might take a while..."
echo "Getting and backing up the status of apps for later; this might take a while..."
NC_APPS="$(find /var/www/html/custom_apps/ -type d -maxdepth 1 -mindepth 1 | sed 's|/var/www/html/custom_apps/||g')"
if [ -z "$NC_APPS" ]; then
echo "No apps detected, aborting export of app status..."
echo "No apps detected. Aborting export of app status..."
APPSTORAGE="no-export-done"
else
mapfile -t NC_APPS_ARRAY <<< "$NC_APPS"
declare -Ag APPSTORAGE
echo "Disabling apps before the update in order to make the update procedure more safe. This can take a while..."
echo "Disabling apps before the update to make the update procedure safer. This can take a while..."
for app in "${NC_APPS_ARRAY[@]}"; do
if APPSTORAGE[$app]="$(php /var/www/html/occ config:app:get "$app" enabled)"; then
php /var/www/html/occ app:disable "$app"
else
APPSTORAGE[$app]=""
echo "Not disabling $app because the occ command to get the enabled state was failing."
echo "Not disabling $app because the occ command to get its enabled state failed."
fi
done
fi
@@ -195,19 +203,61 @@ if ! [ -f "$NEXTCLOUD_DATA_DIR/skip.update" ]; then
run_upgrade_if_needed_due_to_app_update
fi
echo "Initializing nextcloud $image_version ..."
rsync -rlD --delete --exclude-from=/upgrade.exclude "$SOURCE_LOCATION/" /var/www/html/
echo "Initializing Nextcloud $image_version ..."
# Copy over initial data from Nextcloud archive
rsync -rlD --delete \
--exclude-from=/upgrade.exclude \
"$SOURCE_LOCATION/" \
/var/www/html/
# Copy custom_apps from Nextcloud archive
if ! directory_empty "$SOURCE_LOCATION/custom_apps"; then
set -x
for app in "$SOURCE_LOCATION/custom_apps"/*; do
app_id="$(basename "$app")"
mkdir -p "/var/www/html/custom_apps/$app_id"
rsync -rlD --delete \
--include "/$app_id/" \
--exclude '/*' \
"$SOURCE_LOCATION/custom_apps/" \
/var/www/html/custom_apps/
done
set +x
fi
# Copy these from Nextcloud archive if they don't exist yet (i.e. new install)
for dir in config data custom_apps themes; do
if [ ! -d "/var/www/html/$dir" ] || directory_empty "/var/www/html/$dir"; then
rsync -rlD --include "/$dir/" --exclude '/*' "$SOURCE_LOCATION/" /var/www/html/
rsync -rlD \
--include "/$dir/" \
--exclude '/*' \
"$SOURCE_LOCATION/" \
/var/www/html/
fi
done
rsync -rlD --delete --include '/config/' --exclude '/*' --exclude '/config/CAN_INSTALL' --exclude '/config/config.sample.php' --exclude '/config/config.php' "$SOURCE_LOCATION/" /var/www/html/
rsync -rlD --include '/version.php' --exclude '/*' "$SOURCE_LOCATION/" /var/www/html/
rsync -rlD --delete \
--include '/config/' \
--exclude '/*' \
--exclude '/config/CAN_INSTALL' \
--exclude '/config/config.sample.php' \
--exclude '/config/config.php' \
"$SOURCE_LOCATION/" \
/var/www/html/
rsync -rlD \
--include '/version.php' \
--exclude '/*' \
"$SOURCE_LOCATION/" \
/var/www/html/
echo "Initializing finished"
#install
################
# Fresh Install
################
if [ "$installed_version" = "0.0.0.0" ]; then
echo "New Nextcloud instance."
@@ -221,22 +271,37 @@ if ! [ -f "$NEXTCLOUD_DATA_DIR/skip.update" ]; then
INSTALL_OPTIONS+=(--data-dir "$NEXTCLOUD_DATA_DIR")
fi
# We do our own permission check so the permission check is not needed
cat << DATADIR_PERMISSION_CONF > /var/www/html/config/datadir.permission.config.php
# Skip the default permission check (we do our own)
cat > /var/www/html/config/datadir.permission.config.php <<'EOF'
<?php
\$CONFIG = array (
'check_data_directory_permissions' => false
);
DATADIR_PERMISSION_CONF
$CONFIG = array (
'check_data_directory_permissions' => false
);
EOF
# Write out postgres root cert
if [ -n "$NEXTCLOUD_TRUSTED_CERTIFICATES_POSTGRES" ]; then
mkdir /var/www/html/data/certificates
echo "$NEXTCLOUD_TRUSTED_CERTIFICATES_POSTGRES" > "/var/www/html/data/certificates/POSTGRES"
fi
echo "Installing with $DATABASE_TYPE database"
# Set a default value for POSTGRES_PORT
if [ -z "$POSTGRES_PORT" ]; then
POSTGRES_PORT=5432
POSTGRES_PORT=5432
fi
# shellcheck disable=SC2153
INSTALL_OPTIONS+=(--database "$DATABASE_TYPE" --database-name "$POSTGRES_DB" --database-user "$POSTGRES_USER" --database-pass "$POSTGRES_PASSWORD" --database-host "$POSTGRES_HOST" --database-port "$POSTGRES_PORT")
# Add database options to INSTALL_OPTIONS
# shellcheck disable=SC2153
INSTALL_OPTIONS+=(
--database "$DATABASE_TYPE"
--database-name "$POSTGRES_DB"
--database-user "$POSTGRES_USER"
--database-pass "$POSTGRES_PASSWORD"
--database-host "$POSTGRES_HOST"
--database-port "$POSTGRES_PORT"
)
echo "Starting Nextcloud installation..."
if ! php /var/www/html/occ maintenance:install "${INSTALL_OPTIONS[@]}"; then
echo "Installation of Nextcloud failed!"
@@ -258,7 +323,7 @@ DATADIR_PERMISSION_CONF
if [ "$try" -ge "$max_retries" ]; then
echo "Installation of Nextcloud failed!"
echo "Install errors: $(cat /var/www/html/data/nextcloud.log)"
echo "Installation errors: $(cat /var/www/html/data/nextcloud.log)"
touch "$NEXTCLOUD_DATA_DIR/install.failed"
exit 1
fi
@@ -294,10 +359,12 @@ DATADIR_PERMISSION_CONF
installed_version="$(php -r 'require "/var/www/html/version.php"; echo implode(".", $OC_Version);')"
INSTALLED_MAJOR="${installed_version%%.*}"
IMAGE_MAJOR="${image_version%%.*}"
# If a valid upgrade path, trigger the Nextcloud built-in Updater
if ! [ "$INSTALLED_MAJOR" -gt "$IMAGE_MAJOR" ]; then
php /var/www/html/updater/updater.phar --no-interaction --no-backup
if ! php /var/www/html/occ -V || php /var/www/html/occ status | grep maintenance | grep -q 'true'; then
echo "Installation of Nextcloud failed!"
# TODO: Add a hint here about what to do / where to look / updater.log?
touch "$NEXTCLOUD_DATA_DIR/install.failed"
exit 1
fi
@@ -356,7 +423,7 @@ DATADIR_PERMISSION_CONF
read -ra STARTUP_APPS_ARRAY <<< "$STARTUP_APPS"
for app in "${STARTUP_APPS_ARRAY[@]}"; do
if ! echo "$app" | grep -q '^-'; then
if [ -z "$(find /var/www/html/apps -type d -maxdepth 1 -mindepth 1 -name "$app" )" ]; then
if [ -z "$(find /var/www/html/apps /var/www/html/custom_apps -type d -maxdepth 1 -mindepth 1 -name "$app" )" ]; then
# If not shipped, install and enable the app
php /var/www/html/occ app:install "$app"
else
@@ -374,11 +441,11 @@ DATADIR_PERMISSION_CONF
#upgrade
else
touch "$NEXTCLOUD_DATA_DIR/update.failed"
echo "Upgrading nextcloud from $installed_version to $image_version..."
echo "Upgrading Nextcloud from $installed_version to $image_version..."
php /var/www/html/occ config:system:delete integrity.check.disabled
if ! php /var/www/html/occ upgrade || ! php /var/www/html/occ -V; then
echo "Upgrade failed. Please restore from backup."
bash /notify.sh "Nextcloud update to $image_version failed!" "Please restore from backup!"
bash /notify.sh "Nextcloud update to $image_version failed!" "Please restore from backup."
exit 1
fi
@@ -386,7 +453,7 @@ DATADIR_PERMISSION_CONF
installed_version="$(php -r 'require "/var/www/html/version.php"; echo implode(".", $OC_Version);')"
rm "$NEXTCLOUD_DATA_DIR/update.failed"
bash /notify.sh "Nextcloud update to $image_version successful!" "Feel free to inspect the Nextcloud container logs for more info."
bash /notify.sh "Nextcloud update to $image_version successful!" "You may inspect the Nextcloud container logs for more information."
php /var/www/html/occ app:update --all
@@ -394,7 +461,7 @@ DATADIR_PERMISSION_CONF
# Restore app status
if [ "${APPSTORAGE[0]}" != "no-export-done" ]; then
echo "Restoring the status of apps. This can take a while..."
echo "Restoring app statuses. This may take a while..."
for app in "${!APPSTORAGE[@]}"; do
if [ -n "${APPSTORAGE[$app]}" ]; then
if [ "${APPSTORAGE[$app]}" != "no" ]; then
@@ -406,13 +473,13 @@ DATADIR_PERMISSION_CONF
php /var/www/html/occ maintenance:mode --off
fi
run_upgrade_if_needed_due_to_app_update
echo "The $app app could not get enabled. Probably because it is not compatible with the new Nextcloud version."
echo "The $app app could not be re-enabled, probably because it is not compatible with the new Nextcloud version."
if [ "$app" = apporder ]; then
CUSTOM_HINT="The apporder app was deprecated. A possible replacement is the side_menu app, aka 'Custom menu'."
else
CUSTOM_HINT="Most likely because it is not compatible with the new Nextcloud version."
CUSTOM_HINT="Most likely, it is not compatible with the new Nextcloud version."
fi
bash /notify.sh "Could not enable the $app app after the Nextcloud update!" "$CUSTOM_HINT Feel free to look at the Nextcloud update logs and force-enable the app again from the app-store UI."
bash /notify.sh "Could not re-enable the $app app after the Nextcloud update!" "$CUSTOM_HINT Feel free to review the Nextcloud update logs and force-enable the app again if you wish."
continue
fi
# Only restore the group settings, if the app was enabled (and is thus compatible with the new NC version)
@@ -434,7 +501,7 @@ DATADIR_PERMISSION_CONF
php /var/www/html/occ config:app:set updatenotification notify_groups --value="[]"
# Apply optimization
echo "Doing some optimizations..."
echo "Performing some optimizations..."
if [ "$NEXTCLOUD_SKIP_DATABASE_OPTIMIZATION" != yes ]; then
php /var/www/html/occ maintenance:repair --include-expensive
php /var/www/html/occ db:add-missing-indices
@@ -465,10 +532,10 @@ if [ -z "$OBJECTSTORE_S3_BUCKET" ] && [ -z "$OBJECTSTORE_SWIFT_URL" ]; then
# Check if appdata is present
# If not, something broke (e.g. changing ncdatadir after aio was first started)
if [ -z "$(find "$NEXTCLOUD_DATA_DIR/" -maxdepth 1 -mindepth 1 -type d -name "appdata_*")" ]; then
echo "Appdata is not present. Did you maybe change the datadir after the initial Nextcloud installation? This is not supported!"
echo "Appdata is not present. Did you change the datadir after the initial Nextcloud installation? This is not supported!"
echo "See https://github.com/nextcloud/all-in-one#how-to-change-the-default-location-of-nextclouds-datadir"
echo "If you adjusted the datadir to be located on an external drive, make sure that the drive is still mounted!"
echo "In the datadir was found:"
echo "If you moved the datadir to an external drive, make sure that the drive is still mounted."
echo "The following was found in the datadir:"
ls -la "$NEXTCLOUD_DATA_DIR/"
exit 1
fi
@@ -660,7 +727,7 @@ if [ "$COLLABORA_ENABLED" = 'yes' ]; then
fi
fi
else
echo "Warning: No ipv4-address found for $COLLABORA_HOST."
echo "Warning: No IPv4 address found for $COLLABORA_HOST."
fi
if [ -n "$COLLABORA_IPv6_ADDRESS" ]; then
if ! echo "$COLLABORA_ALLOW_LIST" | grep -q "$COLLABORA_IPv6_ADDRESS"; then
@@ -671,7 +738,7 @@ if [ "$COLLABORA_ENABLED" = 'yes' ]; then
fi
fi
else
echo "No ipv6-address found for $COLLABORA_HOST."
echo "No IPv6 address found for $COLLABORA_HOST."
fi
if [ -n "$COLLABORA_ALLOW_LIST" ]; then
PRIVATE_IP_RANGES='127.0.0.1/8,192.168.0.0/16,172.16.0.0/12,10.0.0.0/8,fd00::/8,::1'
@@ -685,7 +752,7 @@ if [ "$COLLABORA_ENABLED" = 'yes' ]; then
fi
php /var/www/html/occ config:app:set richdocuments wopi_allowlist --value="$COLLABORA_ALLOW_LIST"
else
echo "Warning: wopi_allowlist is empty which should not be the case!"
echo "Warning: wopi_allowlist is empty; this should not be the case!"
fi
else
if [ "$REMOVE_DISABLED_APPS" = yes ] && [ -d "/var/www/html/custom_apps/richdocuments" ]; then
@@ -695,15 +762,20 @@ fi
# OnlyOffice
if [ "$ONLYOFFICE_ENABLED" = 'yes' ]; then
# Determine OnlyOffice port based on host pattern
if echo "$ONLYOFFICE_HOST" | grep -q "nextcloud-.*-onlyoffice"; then
ONLYOFFICE_PORT=80
else
ONLYOFFICE_PORT=443
fi
# Wait for OnlyOffice to become available
while ! nc -z "$ONLYOFFICE_HOST" "$ONLYOFFICE_PORT"; do
echo "waiting for OnlyOffice to become available..."
echo "Waiting for OnlyOffice to become available..."
sleep 5
done
# Install or enable OnlyOffice app as needed
if ! [ -d "/var/www/html/custom_apps/onlyoffice" ]; then
php /var/www/html/occ app:install onlyoffice
elif [ "$(php /var/www/html/occ config:app:get onlyoffice enabled)" != "yes" ]; then
@@ -711,16 +783,25 @@ if [ "$ONLYOFFICE_ENABLED" = 'yes' ]; then
elif [ "$SKIP_UPDATE" != 1 ]; then
php /var/www/html/occ app:update onlyoffice
fi
# Set OnlyOffice configuration
php /var/www/html/occ config:system:set onlyoffice jwt_secret --value="$ONLYOFFICE_SECRET"
php /var/www/html/occ config:app:set onlyoffice jwt_secret --value="$ONLYOFFICE_SECRET"
php /var/www/html/occ config:system:set onlyoffice jwt_header --value="AuthorizationJwt"
# Adjust the OnlyOffice host if using internal pattern
if echo "$ONLYOFFICE_HOST" | grep -q "nextcloud-.*-onlyoffice"; then
ONLYOFFICE_HOST="$NC_DOMAIN/onlyoffice"
export ONLYOFFICE_HOST
fi
php /var/www/html/occ config:app:set onlyoffice DocumentServerUrl --value="https://$ONLYOFFICE_HOST"
else
if [ "$REMOVE_DISABLED_APPS" = yes ] && [ -d "/var/www/html/custom_apps/onlyoffice" ] && [ -n "$ONLYOFFICE_SECRET" ] && [ "$(php /var/www/html/occ config:system:get onlyoffice jwt_secret)" = "$ONLYOFFICE_SECRET" ]; then
# Remove OnlyOffice app if disabled and removal is requested
if [ "$REMOVE_DISABLED_APPS" = yes ] && \
[ -d "/var/www/html/custom_apps/onlyoffice" ] && \
[ -n "$ONLYOFFICE_SECRET" ] && \
[ "$(php /var/www/html/occ config:system:get onlyoffice jwt_secret)" = "$ONLYOFFICE_SECRET" ]; then
php /var/www/html/occ app:remove onlyoffice
fi
fi
@@ -766,7 +847,7 @@ fi
if [ -d "/var/www/html/custom_apps/spreed" ]; then
if [ "$TALK_RECORDING_ENABLED" = 'yes' ]; then
while ! nc -z "$TALK_RECORDING_HOST" 1234; do
echo "waiting for Talk Recording to become available..."
echo "Waiting for Talk Recording to become available..."
sleep 5
done
# TODO: migrate to occ command if that becomes available
@@ -781,12 +862,12 @@ fi
if [ "$CLAMAV_ENABLED" = 'yes' ]; then
count=0
while ! nc -z "$CLAMAV_HOST" 3310 && [ "$count" -lt 90 ]; do
echo "waiting for clamav to become available..."
echo "Waiting for ClamAV to become available..."
count=$((count+5))
sleep 5
done
if [ "$count" -ge 90 ]; then
echo "Clamav did not start in time. Skipping initialization and disabling files_antivirus app."
echo "ClamAV did not start in time. Skipping initialization and disabling files_antivirus app."
php /var/www/html/occ app:disable files_antivirus
else
if ! [ -d "/var/www/html/custom_apps/files_antivirus" ]; then
@@ -802,6 +883,9 @@ if [ "$CLAMAV_ENABLED" = 'yes' ]; then
php /var/www/html/occ config:app:set files_antivirus av_stream_max_length --value="$CLAMAV_MAX_SIZE"
php /var/www/html/occ config:app:set files_antivirus av_max_file_size --value="$CLAMAV_MAX_SIZE"
php /var/www/html/occ config:app:set files_antivirus av_infected_action --value="only_log"
if [ -n "$CLAMAV_BLOCKLISTED_DIRECTORIES" ]; then
php /var/www/html/occ config:app:set files_antivirus av_blocklisted_directories --value="$CLAMAV_BLOCKLISTED_DIRECTORIES"
fi
fi
else
if [ "$REMOVE_DISABLED_APPS" = yes ] && [ -d "/var/www/html/custom_apps/files_antivirus" ]; then
@@ -830,7 +914,7 @@ fi
if [ "$FULLTEXTSEARCH_ENABLED" = 'yes' ]; then
count=0
while ! nc -z "$FULLTEXTSEARCH_HOST" "$FULLTEXTSEARCH_PORT" && [ "$count" -lt 90 ]; do
echo "waiting for Fulltextsearch to become available..."
echo "Waiting for Fulltextsearch to become available..."
count=$((count+5))
sleep 5
done
@@ -867,14 +951,14 @@ if [ "$FULLTEXTSEARCH_ENABLED" = 'yes' ]; then
# Do the index
if ! [ -f "$NEXTCLOUD_DATA_DIR/fts-index.done" ]; then
echo "Waiting 10s before activating FTS..."
echo "Waiting 10 seconds before activating fulltextsearch..."
sleep 10
echo "Activating fulltextsearch..."
if php /var/www/html/occ fulltextsearch:test && php /var/www/html/occ fulltextsearch:index "{\"errors\": \"reset\"}" --no-readline; then
touch "$NEXTCLOUD_DATA_DIR/fts-index.done"
else
echo "Fulltextsearch failed. Could not index."
echo "Feel free to follow https://github.com/nextcloud/all-in-one/discussions/1709 if you want to skip the indexing in the future."
echo "If you want to skip indexing in the future, see https://github.com/nextcloud/all-in-one/discussions/1709"
fi
fi
fi

View File

@@ -66,8 +66,13 @@ if [ "$POSTGRES_USER" = nextcloud ]; then
export POSTGRES_USER
fi
# Postgres root cert
if [ -f "/nextcloud/data/certificates/POSTGRES" ]; then
POSTGRES_CERT="?sslmode=verify-ca&sslrootcert=/nextcloud/data/certificates/POSTGRES"
fi
# Set sensitive values as env
export DATABASE_URL="$DATABASE_TYPE://$POSTGRES_USER:$POSTGRES_PASSWORD@$POSTGRES_HOST:$POSTGRES_PORT/$POSTGRES_DB"
export DATABASE_URL="$DATABASE_TYPE://$POSTGRES_USER:$POSTGRES_PASSWORD@$POSTGRES_HOST:$POSTGRES_PORT/$POSTGRES_DB$POSTGRES_CERT"
export REDIS_URL="redis://$REDIS_USER:$REDIS_HOST_PASSWORD@$REDIS_HOST/$REDIS_DB_INDEX"
# Run it

View File

@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:latest
# From https://github.com/docker-library/redis/blob/master/7.2/alpine/Dockerfile
FROM redis:7.2.10-alpine
FROM redis:7.2.11-alpine
COPY --chmod=775 start.sh /start.sh

View File

@@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest
FROM python:3.13.7-alpine3.22
FROM python:3.14.0-alpine3.22
COPY --chmod=775 start.sh /start.sh
COPY --chmod=775 healthcheck.sh /healthcheck.sh

View File

@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:latest
FROM nats:2.11.8-scratch AS nats
FROM eturnal/eturnal:1.12.1 AS eturnal
FROM nats:2.12.0-scratch AS nats
FROM eturnal/eturnal:1.12.2-alpine AS eturnal
FROM strukturag/nextcloud-spreed-signaling:2.0.4 AS signaling
FROM alpine:3.22.1 AS janus

View File

@@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest
FROM ghcr.io/nicholas-fedor/watchtower:v1.11.7 AS watchtower
FROM ghcr.io/nicholas-fedor/watchtower:1.12.1 AS watchtower
FROM alpine:3.22.1

View File

@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:latest
# Probably from this file: https://github.com/nextcloud/whiteboard/blob/main/Dockerfile
FROM ghcr.io/nextcloud-releases/whiteboard:v1.1.3
FROM ghcr.io/nextcloud-releases/whiteboard:v1.2.1
USER root
RUN set -ex; \

View File

@@ -23,7 +23,8 @@
"environment": [
"TZ=%TIMEZONE%",
"NC_DOMAIN=%NC_DOMAIN%",
"APACHE_PORT=%APACHE_PORT%"
"APACHE_PORT=%APACHE_PORT%",
"NEXTCLOUD_EXPORTER_CADDY_PASSWORD=%NEXTCLOUD_EXPORTER_CADDY_PASSWORD%"
],
"volumes": [
{
@@ -37,6 +38,9 @@
"writeable": false
}
],
"secrets": [
"NEXTCLOUD_EXPORTER_CADDY_PASSWORD"
],
"aio_variables": [
"apache_ip_binding=@INTERNAL",
"apache_port=11000"

View File

@@ -1,5 +1,5 @@
## Caddy with geoblocking
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.
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. It also covers [nextcloud-exporter](https://github.com/nextcloud/all-in-one/tree/main/community-containers/nextcloud-exporter) by listening on `metrics.$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!
@@ -10,6 +10,7 @@ This container bundles caddy and auto-configures it for you. It also covers [vau
- 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.
- If you want to use this with [nextcloud-exporter](https://github.com/nextcloud/all-in-one/tree/main/community-containers/nextcloud-exporter), make sure that you point `metrics.your-nc-domain.com` to your server using a cname record so that caddy can get a certificate automatically for nextcloud-exporter.
- 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. **Please note:** If you do not have CLI access to the server, you can now run docker commands via a web session by using this community container: https://github.com/nextcloud/all-in-one/tree/main/community-containers/container-management
- See https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers how to add it to the AIO stack

View File

@@ -10,18 +10,21 @@
"restart": "unless-stopped",
"environment": [
"TZ=%TIMEZONE%",
"API_KEY=some-super-secret-api-key",
"API_KEY=%FACERECOGNITION_API_KEY%",
"FACE_MODEL=3"
],
"aio_variables": [
"nextcloud_memory_limit=2048M"
],
"secrets": [
"FACERECOGNITION_API_KEY"
],
"enable_nvidia_gpu": false,
"nextcloud_exec_commands": [
"php /var/www/html/occ app:install facerecognition",
"php /var/www/html/occ app:enable facerecognition",
"php /var/www/html/occ config:system:set facerecognition.external_model_url --value nextcloud-aio-facerecognition:5000",
"php /var/www/html/occ config:system:set facerecognition.external_model_api_key --value some-super-secret-api-key",
"php /var/www/html/occ config:system:set facerecognition.external_model_api_key --value %FACERECOGNITION_API_KEY%",
"php /var/www/html/occ face:setup -m 5",
"php /var/www/html/occ face:setup -M 1G",
"php /var/www/html/occ config:app:set facerecognition analysis_image_area --value 4320000",

View File

@@ -0,0 +1,16 @@
{
"aio_services_v1": [
{
"container_name": "nextcloud-aio-languagetool",
"display_name": "LanguageTool for Collabora",
"documentation": "https://github.com/nextcloud/all-in-one/tree/main/community-containers/languagetool",
"image": "erikvl87/languagetool",
"image_tag": "latest",
"internal_port": "8010",
"restart": "unless-stopped",
"environment": [
"TZ=%TIMEZONE%"
]
}
]
}

View File

@@ -0,0 +1,13 @@
## LanguageTool for Collabora
This container bundles a LanguageTool for Collabora which adds spell checking functionality to Collabora.
### Notes
- Make sure to have collabora enabled via the AIO interface
- After adding this container via the AIO Interface, while all containers are still stopped, you need to scroll down to the `Additional Collabora options` section and enter `--o:languagetool.enabled=true --o:languagetool.base_url=http://nextcloud-aio-languagetool:8010/v2`.
- 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/Erikvl87/docker-languagetool
### Maintainer
https://github.com/szaimen

View File

@@ -27,7 +27,7 @@
"LLDAP_JWT_SECRET",
"LLDAP_LDAP_USER_PASS"
],
"ui_secret": "LLDAP_JWT_SECRET",
"ui_secret": "LLDAP_LDAP_USER_PASS",
"volumes": [
{
"source": "nextcloud_aio_lldap",

View File

@@ -18,10 +18,7 @@ Functionality with this configuration:
> For simplicity, this configuration is done via the command line (don't worry, it's very simple).
First, you need to retrieve the LLDAP admin password, this will be used later on. Which you need to type in or copy and paste:
```bash
sudo docker inspect nextcloud-aio-lldap | grep LLDAP_LDAP_USER_PASS
```
First, you need to retrieve the LLDAP admin password that you can see next to the container in the AIO interface. There you can configure smtp first and then invite users via mail.
Now go into the Nextcloud container:<br>
**Please note:** If you do not have CLI access to the server, you can now run docker commands via a web session by using this community container: https://github.com/nextcloud/all-in-one/tree/main/community-containers/container-management. This script below can be run from inside the container-management container via `bash /lldap.sh`.

View File

@@ -0,0 +1,41 @@
{
"aio_services_v1": [
{
"container_name": "nextcloud-aio-minio",
"image_tag": "v1",
"display_name": "Minio S3 Storage",
"documentation": "https://github.com/nextcloud/all-in-one/tree/main/community-containers/minio",
"image": "ghcr.io/szaimen/aio-minio",
"internal_port": "9000",
"environment": [
"MINIO_ROOT_USER=nextcloud",
"MINIO_ROOT_PASSWORD=%MINIO_ROOT_PASSWORD%"
],
"secrets": [
"MINIO_ROOT_PASSWORD"
],
"volumes": [
{
"source": "nextcloud_aio_minio",
"destination": "/data",
"writeable": true
}
],
"backup_volumes": [
"nextcloud_aio_minio"
],
"nextcloud_exec_commands": [
"php /var/www/html/occ config:system:set objectstore class --value 'OC\\Files\\ObjectStore\\S3'",
"php /var/www/html/occ config:system:set objectstore arguments autocreate --value true --type bool",
"php /var/www/html/occ config:system:set objectstore arguments use_path_style --value true --type bool",
"php /var/www/html/occ config:system:set objectstore arguments use_ssl --value false --type bool",
"php /var/www/html/occ config:system:set objectstore arguments region --value ''",
"php /var/www/html/occ config:system:set objectstore arguments bucket --value nextcloud",
"php /var/www/html/occ config:system:set objectstore arguments key --value nextcloud",
"php /var/www/html/occ config:system:set objectstore arguments secret --value %MINIO_ROOT_PASSWORD%",
"php /var/www/html/occ config:system:set objectstore arguments port --value 9000",
"php /var/www/html/occ config:system:set objectstore arguments hostname --value nextcloud-aio-minio"
]
}
]
}

View File

@@ -0,0 +1,18 @@
## Minio
This container bundles minio s3 storage and auto-configures it for you.
>[!WARNING]
> Enabling this container will remove access to all the files formerly written to the data directory.
> So only enable this on a clean instance directly after installing AIO.
> All additional users that are added via Nextcloud afterwards are going to work correctly.
> Also, after enabling and using it, make sure to not disable the container as you cannot migrate from s3 to local storage anymore and s3 is a critical part of your infrastructure from then on.
### Notes
- The data of Minio 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-minio
### Maintainer
https://github.com/szaimen

View File

@@ -0,0 +1,35 @@
{
"aio_services_v1": [
{
"container_name": "nextcloud-aio-nextcloud-exporter",
"display_name": "Prometheus Nextcloud Exporter",
"documentation": "https://github.com/nextcloud/all-in-one/tree/main/community-containers/nextcloud-exporter",
"image": "ghcr.io/xperimental/nextcloud-exporter",
"image_tag": "0.8.0",
"internal_port": "9205",
"restart": "unless-stopped",
"ports": [
{
"ip_binding": "127.0.0.1",
"port_number": "9205",
"protocol": "tcp"
}
],
"environment": [
"TZ=%TIMEZONE%",
"NEXTCLOUD_SERVER=https://%NC_DOMAIN%",
"NEXTCLOUD_AUTH_TOKEN=%NEXTCLOUD_EXPORTER_TOKEN%",
"NEXTCLOUD_LISTEN_ADDRESS=0.0.0.0:9205",
"NEXTCLOUD_TIMEOUT=5s"
],
"ui_secret": "NEXTCLOUD_EXPORTER_CADDY_PASSWORD",
"secrets": [
"NEXTCLOUD_EXPORTER_TOKEN",
"NEXTCLOUD_EXPORTER_CADDY_PASSWORD"
],
"nextcloud_exec_commands": [
"php /var/www/html/occ config:app:set serverinfo token --value %NEXTCLOUD_EXPORTER_TOKEN%"
]
}
]
}

View File

@@ -0,0 +1,72 @@
## Prometheus Nextcloud Exporter
A Prometheus exporter that collects metrics from your Nextcloud instance for monitoring and alerting.
### How to install
See the [Community Containers documentation](https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers) for instructions on how to install this in your Nextcloud All-in-One setup.
### Security & Access
**Important:** This container is configured to bind only to `127.0.0.1` (localhost) for security reasons. Prometheus exporters typically don't include authentication, so direct network exposure is not recommended.
#### Access Options
1. **With Caddy Container (Recommended)**: If you also install the [Caddy community container](https://github.com/nextcloud/all-in-one/tree/main/community-containers/caddy), it will automatically configure secure HTTPS access to your metrics with authentication at `metrics.your-domain.com`
**Getting Authentication Credentials**:
- **Username**: Always `metrics`
- **Password**: After deploying the nextcloud-exporter container, the automatically generated password will be displayed in the AIO interface. Look for it in the container section below the container name "Prometheus Nextcloud Exporter".
2. **Custom Reverse Proxy**: Set up your own reverse proxy (nginx, Apache, etc.) to provide HTTPS and authentication. See configuration guides:
- [NGINX Authentication](https://nginx.org/en/docs/http/ngx_http_auth_basic_module.html) + [Reverse Proxy](https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/)
- [Apache Authentication](https://httpd.apache.org/docs/2.4/howto/auth.html) + [Reverse Proxy](https://httpd.apache.org/docs/2.4/mod/mod_proxy.html)
- [Traefik BasicAuth](https://doc.traefik.io/traefik/middlewares/http/basicauth/)
- [Prometheus Security Best Practices](https://prometheus.io/docs/operating/security/)
3. **Direct Local Access**: Access metrics directly from the server at `http://127.0.0.1:9205/metrics` (no authentication)
### What it monitors
- User activity (active users hourly, daily)
- File counts and storage usage
- System health and database size
- App statistics and update availability
- Nextcloud performance metrics
### Prometheus Configuration
For **local server access** (if Prometheus runs on the same server):
```yaml
scrape_configs:
- job_name: 'nextcloud'
scrape_interval: 90s
static_configs:
- targets: ['127.0.0.1:9205']
metrics_path: /metrics
scheme: http
```
For **Caddy integration** (secure external access):
```yaml
scrape_configs:
- job_name: 'nextcloud'
scrape_interval: 90s
static_configs:
- targets: ['metrics.your-domain.com']
metrics_path: /
scheme: https
basic_auth:
username: 'metrics'
password: 'your-generated-password'
```
### Visualization
Compatible with Grafana for creating monitoring dashboards:
- Pre-built dashboard available: [Grafana Dashboard #20716](https://grafana.com/grafana/dashboards/20716-nextcloud/)
### Repository
https://github.com/xperimental/nextcloud-exporter
### Maintainer
https://github.com/grotax

View File

@@ -1,8 +1,8 @@
services:
nextcloud-aio-mastercontainer:
image: ghcr.io/nextcloud-releases/all-in-one:latest
init: true
restart: always
image: ghcr.io/nextcloud-releases/all-in-one:latest # This is the container image used. You can switch to ghcr.io/nextcloud-releases/all-in-one:beta if you want to help testing new releases. See https://github.com/nextcloud/all-in-one#how-to-switch-the-channel
init: true # This setting makes sure that signals from main process inside the container are correctly forwarded to children. See https://docs.docker.com/reference/compose-file/services/#init
restart: always # This makes sure that the container starts always together with the host OS. See https://docs.docker.com/reference/compose-file/services/#restart
container_name: nextcloud-aio-mastercontainer # This line is not allowed to be changed as otherwise AIO will not work correctly
volumes:
- nextcloud_aio_mastercontainer:/mnt/docker-aio-config # This line is not allowed to be changed as otherwise the built-in backup solution will not work
@@ -11,9 +11,9 @@ services:
# networks: ["nextcloud-aio"]
ports:
- 80:80 # Can be removed when running behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else). See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md
- 8080:8080
- 8080:8080 # This is the AIO interface, served via https and self-signed certificate. See https://github.com/nextcloud/all-in-one#explanation-of-used-ports
- 8443:8443 # Can be removed when running behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else). See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md
# security_opt: ["label:disable"] # Is needed when using SELinux
# security_opt: ["label:disable"] # Is needed when using SELinux. See https://github.com/nextcloud/all-in-one#are-there-known-problems-when-selinux-is-enabled
# environment: # Is needed when using any of the options below
# AIO_DISABLE_BACKUP_SECTION: false # Setting this to true allows to hide the backup section in the AIO interface. See https://github.com/nextcloud/all-in-one#how-to-disable-the-backup-section
# APACHE_PORT: 11000 # Is needed when running behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else). See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md
@@ -39,7 +39,7 @@ services:
# WATCHTOWER_DOCKER_SOCKET_PATH: /var/run/docker.sock # Needs to be specified if the docker socket on the host is not located in the default '/var/run/docker.sock'. Otherwise mastercontainer updates will fail. For macos it needs to be '/var/run/docker.sock'
# # Optional: Caddy reverse proxy. See https://github.com/nextcloud/all-in-one/discussions/575
# # Alternatively, use Tailscale if you don't have a domain yet. See https://github.com/nextcloud/all-in-one/discussions/5439
# # Alternatively, use Tailscale if you don't have a domain yet. See https://github.com/nextcloud/all-in-one/discussions/6817
# # Hint: You need to uncomment APACHE_PORT: 11000 above, adjust cloud.example.com to your domain and uncomment the necessary docker volumes at the bottom of this file in order to make it work
# # You can find further examples here: https://github.com/nextcloud/all-in-one/discussions/588
# caddy:

View File

@@ -9,7 +9,7 @@ It is possible due to several reasons that you do not want or cannot open Nextcl
- [5. Buy a certificate and use that](#5-buy-a-certificate-and-use-that)
## 1. Tailscale
This is the recommended way. For a reverse proxy example guide for Tailscale, see this guide by @flll: https://github.com/nextcloud/all-in-one/discussions/5439
This is the recommended way. For a reverse proxy example guide for Tailscale, see this guide by [@Perseus333](https://github.com/Perseus333): https://github.com/nextcloud/all-in-one/discussions/6817
## 2. The normal way
The normal way is the following:

View File

@@ -255,7 +255,7 @@ services:
expose:
- "9980"
environment:
- aliasgroup1=https://${NC_DOMAIN}:443
- aliasgroup1=https://${NC_DOMAIN}:443,http://nextcloud-aio-apache:23973
- extra_params=--o:ssl.enable=false --o:ssl.termination=true --o:mount_jail_tree=false --o:logging.level=warning --o:logging.level_startup=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}

View File

@@ -1,6 +1,6 @@
name: nextcloud-aio-helm-chart
description: A generated Helm Chart for Nextcloud AIO from Skippbox Kompose
version: 11.6.0
version: 11.10.0
apiVersion: v2
keywords:
- latest

View File

@@ -61,7 +61,7 @@ spec:
value: "{{ .Values.TIMEZONE }}"
- name: WHITEBOARD_HOST
value: nextcloud-aio-whiteboard
image: ghcr.io/nextcloud-releases/aio-apache:20250822_112758
image: ghcr.io/nextcloud-releases/aio-apache:20251015_082711
readinessProbe:
exec:
command:

View File

@@ -36,7 +36,7 @@ spec:
{{- end }}
initContainers:
- name: init-subpath
image: ghcr.io/nextcloud-releases/aio-alpine:20250822_112758
image: ghcr.io/nextcloud-releases/aio-alpine:20251015_082711
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:20250822_112758
image: ghcr.io/nextcloud-releases/aio-clamav:20251015_082711
readinessProbe:
exec:
command:

View File

@@ -28,14 +28,14 @@ spec:
- name: TZ
value: "{{ .Values.TIMEZONE }}"
- name: aliasgroup1
value: https://{{ .Values.NC_DOMAIN }}:443
value: https://{{ .Values.NC_DOMAIN }}:443,http://nextcloud-aio-apache:23973
- 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:logging.level_startup=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:20250822_112758
image: ghcr.io/nextcloud-releases/aio-collabora:20251015_082711
readinessProbe:
exec:
command:
@@ -61,5 +61,7 @@ spec:
add:
- MKNOD
- CAP_SYS_ADMIN
- SYS_CHROOT
- FOWNER
- CHOWN
{{- end }}

View File

@@ -35,7 +35,7 @@ spec:
{{- end }}
initContainers:
- name: init-subpath
image: ghcr.io/nextcloud-releases/aio-alpine:20250822_112758
image: ghcr.io/nextcloud-releases/aio-alpine:20251015_082711
command:
- mkdir
- "-p"
@@ -64,7 +64,7 @@ spec:
value: nextcloud
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: ghcr.io/nextcloud-releases/aio-postgresql:20250822_112758
image: ghcr.io/nextcloud-releases/aio-postgresql:20251015_082711
readinessProbe:
exec:
command:

View File

@@ -24,7 +24,7 @@ spec:
spec:
initContainers:
- name: init-volumes
image: ghcr.io/nextcloud-releases/aio-alpine:20250822_112758
image: ghcr.io/nextcloud-releases/aio-alpine:20251015_082711
command:
- chmod
- "777"
@@ -54,7 +54,7 @@ spec:
value: basic
- name: xpack.security.enabled
value: "false"
image: ghcr.io/nextcloud-releases/aio-fulltextsearch:20250822_112758
image: ghcr.io/nextcloud-releases/aio-fulltextsearch:20251015_082711
readinessProbe:
exec:
command:

View File

@@ -38,7 +38,7 @@ spec:
value: "{{ .Values.IMAGINARY_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: ghcr.io/nextcloud-releases/aio-imaginary:20250822_112758
image: ghcr.io/nextcloud-releases/aio-imaginary:20251015_082711
readinessProbe:
exec:
command:

View File

@@ -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:20250822_112758
image: ghcr.io/nextcloud-releases/aio-alpine:20251015_082711
command:
- chmod
- "777"
@@ -188,7 +188,7 @@ spec:
value: "{{ .Values.WHITEBOARD_ENABLED }}"
- name: WHITEBOARD_SECRET
value: "{{ .Values.WHITEBOARD_SECRET }}"
image: ghcr.io/nextcloud-releases/aio-nextcloud:20250822_112758
image: ghcr.io/nextcloud-releases/aio-nextcloud:20251015_082711
{{- if eq (.Values.RPSS_ENABLED | default "no") "yes" }} # AIO-config - do not change this comment!
securityContext:
# The items below only work in container context

View File

@@ -55,7 +55,7 @@ spec:
value: "{{ .Values.REDIS_PASSWORD }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: ghcr.io/nextcloud-releases/aio-notify-push:20250822_112758
image: ghcr.io/nextcloud-releases/aio-notify-push:20251015_082711
readinessProbe:
exec:
command:

View File

@@ -24,7 +24,7 @@ spec:
spec:
initContainers:
- name: init-volumes
image: ghcr.io/nextcloud-releases/aio-alpine:20250822_112758
image: ghcr.io/nextcloud-releases/aio-alpine:20251015_082711
command:
- chmod
- "777"
@@ -42,7 +42,7 @@ spec:
value: "{{ .Values.ONLYOFFICE_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: ghcr.io/nextcloud-releases/aio-onlyoffice:20250822_112758
image: ghcr.io/nextcloud-releases/aio-onlyoffice:20251015_082711
readinessProbe:
exec:
command:

View File

@@ -39,7 +39,7 @@ spec:
value: "{{ .Values.REDIS_PASSWORD }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: ghcr.io/nextcloud-releases/aio-redis:20250822_112758
image: ghcr.io/nextcloud-releases/aio-redis:20251015_082711
readinessProbe:
exec:
command:

View File

@@ -52,7 +52,7 @@ spec:
value: "{{ .Values.TURN_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: ghcr.io/nextcloud-releases/aio-talk:20250822_112758
image: ghcr.io/nextcloud-releases/aio-talk:20251015_082711
readinessProbe:
exec:
command:

View File

@@ -44,7 +44,7 @@ spec:
value: "{{ .Values.RECORDING_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: ghcr.io/nextcloud-releases/aio-talk-recording:20250822_112758
image: ghcr.io/nextcloud-releases/aio-talk-recording:20251015_082711
readinessProbe:
exec:
command:

View File

@@ -48,7 +48,7 @@ spec:
value: redis
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: ghcr.io/nextcloud-releases/aio-whiteboard:20250822_112758
image: ghcr.io/nextcloud-releases/aio-whiteboard:20251015_082711
readinessProbe:
exec:
command:

View File

@@ -27,7 +27,7 @@ cp latest.yml latest.yml.backup
# Additional config
# shellcheck disable=SC1083
sed -i -E '/^( *- )(NET_RAW|SYS_NICE|MKNOD|SYS_ADMIN|CHOWN)$/!s/( *- )([A-Z_]+)$/\1\2=${\2}/' latest.yml
sed -i -E '/^( *- )(NET_RAW|SYS_NICE|MKNOD|SYS_ADMIN|CHOWN|SYS_CHROOT|FOWNER)$/!s/( *- )([A-Z_]+)$/\1\2=${\2}/' latest.yml
cp sample.conf /tmp/
sed -i 's|^|export |' /tmp/sample.conf
# shellcheck disable=SC1091

85
php/composer.lock generated
View File

@@ -391,16 +391,16 @@
},
{
"name": "laravel/serializable-closure",
"version": "v2.0.4",
"version": "v2.0.5",
"source": {
"type": "git",
"url": "https://github.com/laravel/serializable-closure.git",
"reference": "b352cf0534aa1ae6b4d825d1e762e35d43f8a841"
"reference": "3832547db6e0e2f8bb03d4093857b378c66eceed"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/serializable-closure/zipball/b352cf0534aa1ae6b4d825d1e762e35d43f8a841",
"reference": "b352cf0534aa1ae6b4d825d1e762e35d43f8a841",
"url": "https://api.github.com/repos/laravel/serializable-closure/zipball/3832547db6e0e2f8bb03d4093857b378c66eceed",
"reference": "3832547db6e0e2f8bb03d4093857b378c66eceed",
"shasum": ""
},
"require": {
@@ -448,7 +448,7 @@
"issues": "https://github.com/laravel/serializable-closure/issues",
"source": "https://github.com/laravel/serializable-closure"
},
"time": "2025-03-19T13:51:03+00:00"
"time": "2025-09-22T17:29:40+00:00"
},
{
"name": "nikic/fast-route",
@@ -502,16 +502,16 @@
},
{
"name": "php-di/invoker",
"version": "2.3.6",
"version": "2.3.7",
"source": {
"type": "git",
"url": "https://github.com/PHP-DI/Invoker.git",
"reference": "59f15608528d8a8838d69b422a919fd6b16aa576"
"reference": "3c1ddfdef181431fbc4be83378f6d036d59e81e1"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/PHP-DI/Invoker/zipball/59f15608528d8a8838d69b422a919fd6b16aa576",
"reference": "59f15608528d8a8838d69b422a919fd6b16aa576",
"url": "https://api.github.com/repos/PHP-DI/Invoker/zipball/3c1ddfdef181431fbc4be83378f6d036d59e81e1",
"reference": "3c1ddfdef181431fbc4be83378f6d036d59e81e1",
"shasum": ""
},
"require": {
@@ -521,7 +521,7 @@
"require-dev": {
"athletic/athletic": "~0.1.8",
"mnapoli/hard-mode": "~0.3.0",
"phpunit/phpunit": "^9.0"
"phpunit/phpunit": "^9.0 || ^10 || ^11 || ^12"
},
"type": "library",
"autoload": {
@@ -545,7 +545,7 @@
],
"support": {
"issues": "https://github.com/PHP-DI/Invoker/issues",
"source": "https://github.com/PHP-DI/Invoker/tree/2.3.6"
"source": "https://github.com/PHP-DI/Invoker/tree/2.3.7"
},
"funding": [
{
@@ -553,7 +553,7 @@
"type": "github"
}
],
"time": "2025-01-17T12:49:27+00:00"
"time": "2025-08-30T10:22:22+00:00"
},
{
"name": "php-di/php-di",
@@ -1727,16 +1727,16 @@
"packages-dev": [
{
"name": "amphp/amp",
"version": "v3.1.0",
"version": "v3.1.1",
"source": {
"type": "git",
"url": "https://github.com/amphp/amp.git",
"reference": "7cf7fef3d667bfe4b2560bc87e67d5387a7bcde9"
"reference": "fa0ab33a6f47a82929c38d03ca47ebb71086a93f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/amphp/amp/zipball/7cf7fef3d667bfe4b2560bc87e67d5387a7bcde9",
"reference": "7cf7fef3d667bfe4b2560bc87e67d5387a7bcde9",
"url": "https://api.github.com/repos/amphp/amp/zipball/fa0ab33a6f47a82929c38d03ca47ebb71086a93f",
"reference": "fa0ab33a6f47a82929c38d03ca47ebb71086a93f",
"shasum": ""
},
"require": {
@@ -1796,7 +1796,7 @@
],
"support": {
"issues": "https://github.com/amphp/amp/issues",
"source": "https://github.com/amphp/amp/tree/v3.1.0"
"source": "https://github.com/amphp/amp/tree/v3.1.1"
},
"funding": [
{
@@ -1804,7 +1804,7 @@
"type": "github"
}
],
"time": "2025-01-26T16:07:39+00:00"
"time": "2025-08-27T21:42:00+00:00"
},
{
"name": "amphp/byte-stream",
@@ -2037,16 +2037,16 @@
},
{
"name": "amphp/parallel",
"version": "v2.3.1",
"version": "v2.3.2",
"source": {
"type": "git",
"url": "https://github.com/amphp/parallel.git",
"reference": "5113111de02796a782f5d90767455e7391cca190"
"reference": "321b45ae771d9c33a068186b24117e3cd1c48dce"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/amphp/parallel/zipball/5113111de02796a782f5d90767455e7391cca190",
"reference": "5113111de02796a782f5d90767455e7391cca190",
"url": "https://api.github.com/repos/amphp/parallel/zipball/321b45ae771d9c33a068186b24117e3cd1c48dce",
"reference": "321b45ae771d9c33a068186b24117e3cd1c48dce",
"shasum": ""
},
"require": {
@@ -2109,7 +2109,7 @@
],
"support": {
"issues": "https://github.com/amphp/parallel/issues",
"source": "https://github.com/amphp/parallel/tree/v2.3.1"
"source": "https://github.com/amphp/parallel/tree/v2.3.2"
},
"funding": [
{
@@ -2117,7 +2117,7 @@
"type": "github"
}
],
"time": "2024-12-21T01:56:09+00:00"
"time": "2025-08-27T21:55:40+00:00"
},
{
"name": "amphp/parser",
@@ -3571,16 +3571,16 @@
},
{
"name": "phpstan/phpdoc-parser",
"version": "2.2.0",
"version": "2.3.0",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpdoc-parser.git",
"reference": "b9e61a61e39e02dd90944e9115241c7f7e76bfd8"
"reference": "1e0cd5370df5dd2e556a36b9c62f62e555870495"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/b9e61a61e39e02dd90944e9115241c7f7e76bfd8",
"reference": "b9e61a61e39e02dd90944e9115241c7f7e76bfd8",
"url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/1e0cd5370df5dd2e556a36b9c62f62e555870495",
"reference": "1e0cd5370df5dd2e556a36b9c62f62e555870495",
"shasum": ""
},
"require": {
@@ -3612,9 +3612,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.2.0"
"source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.0"
},
"time": "2025-07-13T07:04:09+00:00"
"time": "2025-08-30T15:50:23+00:00"
},
{
"name": "revolt/event-loop",
@@ -3883,16 +3883,16 @@
},
{
"name": "symfony/console",
"version": "v6.4.24",
"version": "v6.4.26",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
"reference": "59266a5bf6a596e3e0844fd95e6ad7ea3c1d3350"
"reference": "492de6dfd93910d7d7a729c5a04ddcd2b9e99c4f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/console/zipball/59266a5bf6a596e3e0844fd95e6ad7ea3c1d3350",
"reference": "59266a5bf6a596e3e0844fd95e6ad7ea3c1d3350",
"url": "https://api.github.com/repos/symfony/console/zipball/492de6dfd93910d7d7a729c5a04ddcd2b9e99c4f",
"reference": "492de6dfd93910d7d7a729c5a04ddcd2b9e99c4f",
"shasum": ""
},
"require": {
@@ -3957,7 +3957,7 @@
"terminal"
],
"support": {
"source": "https://github.com/symfony/console/tree/v6.4.24"
"source": "https://github.com/symfony/console/tree/v6.4.26"
},
"funding": [
{
@@ -3977,7 +3977,7 @@
"type": "tidelift"
}
],
"time": "2025-07-30T10:38:54+00:00"
"time": "2025-09-26T12:13:46+00:00"
},
{
"name": "symfony/filesystem",
@@ -4449,16 +4449,16 @@
},
{
"name": "symfony/string",
"version": "v7.3.2",
"version": "v7.3.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
"reference": "42f505aff654e62ac7ac2ce21033818297ca89ca"
"reference": "f96476035142921000338bad71e5247fbc138872"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/string/zipball/42f505aff654e62ac7ac2ce21033818297ca89ca",
"reference": "42f505aff654e62ac7ac2ce21033818297ca89ca",
"url": "https://api.github.com/repos/symfony/string/zipball/f96476035142921000338bad71e5247fbc138872",
"reference": "f96476035142921000338bad71e5247fbc138872",
"shasum": ""
},
"require": {
@@ -4473,7 +4473,6 @@
},
"require-dev": {
"symfony/emoji": "^7.1",
"symfony/error-handler": "^6.4|^7.0",
"symfony/http-client": "^6.4|^7.0",
"symfony/intl": "^6.4|^7.0",
"symfony/translation-contracts": "^2.5|^3.0",
@@ -4516,7 +4515,7 @@
"utf8"
],
"support": {
"source": "https://github.com/symfony/string/tree/v7.3.2"
"source": "https://github.com/symfony/string/tree/v7.3.4"
},
"funding": [
{
@@ -4536,7 +4535,7 @@
"type": "tidelift"
}
],
"time": "2025-07-10T08:47:49+00:00"
"time": "2025-09-11T14:36:48+00:00"
},
{
"name": "vimeo/psalm",

View File

@@ -81,7 +81,7 @@
"properties": {
"ip_binding": {
"type": "string",
"pattern": "^(%[A-Z_]+%)?$"
"pattern": "^((%[A-Z_]+%)|127\\.0\\.0\\.1)?$"
},
"port_number": {
"type": "string",

View File

@@ -379,7 +379,7 @@
],
"internal_port": "9980",
"environment": [
"aliasgroup1=https://%NC_DOMAIN%:443",
"aliasgroup1=https://%NC_DOMAIN%:443,http://nextcloud-aio-apache:23973",
"extra_params=--o:ssl.enable=false --o:ssl.termination=true --o:mount_jail_tree=false --o:logging.level=warning --o:logging.level_startup=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]=.+",
"dictionaries=%COLLABORA_DICTIONARIES%",
"TZ=%TIMEZONE%",
@@ -389,7 +389,7 @@
"restart": "unless-stopped",
"nextcloud_exec_commands": [
"echo 'Activating Collabora config...'",
"php /var/www/html/occ richdocuments:activate-config"
"php /var/www/html/occ richdocuments:activate-config --wopi-url='http://nextcloud-aio-apache:23973' --callback-url='http://nextcloud-aio-apache:23973'"
],
"profiles": [
"collabora"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 176 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

View File

@@ -220,7 +220,7 @@ svg:not(:has(use)) .fallback-text {
}
.login > .monospace {
font-family: monospace;
font-family: monospace, monospace, system-ui, -apple-system, 'Segoe UI', Roboto, Oxygen-Sans, Cantarell, Ubuntu, 'Helvetica Neue', 'Noto Sans', 'Liberation Sans', Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
font-size: 17px;
}
@@ -251,7 +251,7 @@ svg:not(:has(use)) .fallback-text {
min-width: 100vw;
position: fixed;
width: 100vw;
background-image: url("img/jenna-kim-the-globe.webp");
background-image: url("img/jo-myoung-hee-fluid.webp");
background-position: center;
background-repeat: no-repeat;
background-size: cover;
@@ -260,7 +260,7 @@ svg:not(:has(use)) .fallback-text {
}
html[data-theme="dark"] .wrapper {
background-image: url("img/jenna-kim-the-globe-dark.webp");
background-image: url("img/jo-myoung-hee-fluid-dark.webp");
}
form {

View File

@@ -19,8 +19,6 @@ readonly class Container {
private ContainerEnvironmentVariables $containerEnvironmentVariables,
/** @var string[] */
private array $dependsOn,
/** @var string[] */
private array $secrets,
private string $uiSecret,
/** @var string[] */
private array $devices,
@@ -82,10 +80,6 @@ readonly class Container {
return $this->maxShutdownTime;
}
public function GetSecrets() : array {
return $this->secrets;
}
public function GetUiSecret() : string {
return $this->dockerActionManager->GetAndGenerateSecretWrapper($this->uiSecret);
}

View File

@@ -239,9 +239,12 @@ readonly class ContainerDefinitionFetcher {
$internalPort = $entry['internal_port'];
}
$secrets = [];
if (isset($entry['secrets'])) {
$secrets = $entry['secrets'];
// All secrets are registered with the configuration when they
// are discovered so they can be later generated at time-of-use.
foreach ($entry['secrets'] as $secret) {
$this->configurationManager->RegisterSecret($secret);
}
}
$uiSecret = '';
@@ -320,7 +323,6 @@ readonly class ContainerDefinitionFetcher {
$volumes,
$variables,
$dependsOn,
$secrets,
$uiSecret,
$devices,
$enableNvidiaGpu,

View File

@@ -177,7 +177,7 @@ readonly class DockerController {
}
if (isset($request->getParsedBody()['install_latest_major'])) {
$installLatestMajor = 31;
$installLatestMajor = 32;
} else {
$installLatestMajor = "";
}

View File

@@ -7,6 +7,8 @@ use AIO\Controller\DockerController;
class ConfigurationManager
{
private array $secrets = [];
public function GetConfig() : array
{
if(file_exists(DataConst::GetConfigFile()))
@@ -50,13 +52,15 @@ class ConfigurationManager
return $config['secrets'][$secretId];
}
public function GetSecret(string $secretId) : string {
$config = $this->GetConfig();
if(!isset($config['secrets'][$secretId])) {
$config['secrets'][$secretId] = "";
public function GetRegisteredSecret(string $secretId) : string {
if ($this->secrets[$secretId]) {
return $this->GetAndGenerateSecret($secretId);
}
throw new \Exception("The secret " . $secretId . " was not registered. Please check if it is defined in secrets of containers.json.");
}
return $config['secrets'][$secretId];
public function RegisterSecret(string $secretId) : void {
$this->secrets[$secretId] = true;
}
private function DoubleSafeBackupSecret(string $borgBackupPassword) : void {

View File

@@ -221,10 +221,6 @@ readonly class DockerActionManager {
$requestBody['HostConfig']['Binds'] = $volumes;
}
foreach ($container->GetSecrets() as $secret) {
$this->configurationManager->GetAndGenerateSecret($secret);
}
$aioVariables = $container->GetAioVariables()->GetVariables();
foreach ($aioVariables as $variable) {
$config = $this->configurationManager->GetConfig();
@@ -566,18 +562,10 @@ readonly class DockerActionManager {
// Allow to get local ip-address of caddy container and add it to trusted proxies automatically
'CADDY_IP_ADDRESS' => in_array('caddy', $this->configurationManager->GetEnabledCommunityContainers(), true) ? gethostbyname('nextcloud-aio-caddy') : '',
'WHITEBOARD_ENABLED' => $this->configurationManager->isWhiteboardEnabled() ? 'yes' : '',
default => $this->getSecretOrThrow($placeholder),
default => $this->configurationManager->GetRegisteredSecret($placeholder),
};
}
private function getSecretOrThrow(string $secretName): string {
$secret = $this->configurationManager->GetSecret($secretName);
if ($secret === "") {
throw new \Exception("The secret " . $secretName . " is empty. Cannot substitute its value. Please check if it is defined in secrets of containers.json.");
}
return $secret;
}
private function isContainerUpdateAvailable(string $id): string {
$container = $this->containerDefinitionFetcher->GetContainerById($id);

View File

@@ -17,7 +17,7 @@
<div class="container">
<main>
<h1>Nextcloud AIO v11.7.0</h1>
<h1>Nextcloud AIO v11.10.0</h1>
{# Add 2nd tab warning #}
<script type="text/javascript" src="second-tab-warning.js"></script>
@@ -36,7 +36,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 newMajorVersionString = '25 Autumn' %}
{% if is_backup_container_running == true %}
{% if borg_backup_mode == 'backup' or borg_backup_mode == 'restore' %}
@@ -118,7 +118,7 @@
<p>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.</p>
<details>
<summary>Click here for further hints</summary>
<p>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 <a target="_blank" href="https://github.com/nextcloud/all-in-one/discussions/5439">Tailscale</a></p>
<p>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 <a target="_blank" href="https://github.com/nextcloud/all-in-one/discussions/6817">Tailscale</a></p>
<p>If you have a dynamic public IP-address, you can use e.g. <a target="_blank" href="https://ddclient.net/">DDclient</a> with a compatible domain provider for DNS updates.</p>
<p>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 <a target="_blank" href="https://github.com/nextcloud/all-in-one/blob/main/local-instance.md">this documentation</a>.</p>
<p>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.</p>
@@ -290,10 +290,10 @@
{% else %}
{% if is_mastercontainer_update_available == false %}
<p>Your containers are up-to-date.</p>
{% if newMajorVersion != '' and isAnyRunning == true and isApacheStarting != true %}
{% if newMajorVersionString != '' and isAnyRunning == true and isApacheStarting != true %}
<details>
<summary>Note about <strong>Nextcloud Hub {{ newMajorVersion - 21 }}</strong></summary>
<p>If you haven't upgraded to Nextcloud Hub {{ newMajorVersion - 21 }} yet and want to do that now, feel free to follow <strong><a target="_blank" href="https://github.com/nextcloud/all-in-one/discussions/6053">this documentation</a></strong></p>
<summary>Note about <strong>Nextcloud Hub {{ newMajorVersionString }}</strong></summary>
<p>If you haven't upgraded to Nextcloud Hub {{ newMajorVersionString }} yet and want to do that now, feel free to follow <strong><a target="_blank" href="https://github.com/nextcloud/all-in-one/discussions/6865">this documentation</a></strong></p>
</details>
{% endif %}
{% endif %}
@@ -337,8 +337,8 @@
<form method="POST" action="/api/docker/start" class="xhr">
<input type="hidden" name="{{csrf.keys.name}}" value="{{csrf.name}}">
<input type="hidden" name="{{csrf.keys.value}}" value="{{csrf.value}}">
{% if newMajorVersion != '' %}
<input type="checkbox" id="install_latest_major" name="install_latest_major"><label for="install_latest_major">Install Nextcloud Hub {{ newMajorVersion - 21 }} (if unchecked, Nextcloud Hub {{ newMajorVersion - 22 }} will get installed)</label><br>
{% if newMajorVersionString != '' %}
<input type="checkbox" id="install_latest_major" name="install_latest_major"><label for="install_latest_major">Install Nextcloud Hub {{ newMajorVersionString }} (if unchecked, Nextcloud Hub 10 will get installed)</label><br>
{% endif %}
<input type="submit" value="Download and start containers" />
</form>

View File

@@ -1,7 +1,7 @@
<html>
<head>
<title>AIO</title>
<link rel="stylesheet" href="/style.css?v5" media="all" />
<link rel="stylesheet" href="/style.css?v6" media="all" />
<link rel="icon" href="/img/favicon.png">
<script type="text/javascript" src="forms.js"></script>
<script type="text/javascript" src="toggle-dark-mode.js"></script>

View File

@@ -32,7 +32,7 @@ Included are:
- A+ security in Nextcloud security scan
- Ready to be used behind existing [Reverse proxies](https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md)
- Can be used behind [Cloudflare Tunnel](https://github.com/nextcloud/all-in-one#how-to-run-nextcloud-behind-a-cloudflare-tunnel)
- Can be used via [Tailscale](https://github.com/nextcloud/all-in-one/discussions/5439)
- Can be used via [Tailscale](https://github.com/nextcloud/all-in-one/discussions/6817)
- Ready for big file uploads up to 10 GB on public links, [adjustable](https://github.com/nextcloud/all-in-one#how-to-adjust-the-upload-limit-for-nextcloud) (logged in users can upload much bigger files using the webinterface or the mobile/desktop clients since chunking is used in that case)
- PHP and web server timeouts set to 3600s, [adjustable](https://github.com/nextcloud/all-in-one#how-to-adjust-the-max-execution-time-for-nextcloud) (important for big file uploads)
- Defaults to a max of 512 MB RAM per PHP process, [adjustable](https://github.com/nextcloud/all-in-one#how-to-adjust-the-php-memory-limit-for-nextcloud)
@@ -52,7 +52,8 @@ Included are:
- Possibility included to [pass the needed device for hardware transcoding](https://github.com/nextcloud/all-in-one#how-to-enable-hardware-acceleration-for-nextcloud) to the Nextcloud container
- Possibility included to [store all docker related files on a separate drive](https://github.com/nextcloud/all-in-one#how-to-store-the-filesinstallation-on-a-separate-drive)
- [LDAP can be used as user backend for Nextcloud](https://github.com/nextcloud/all-in-one/tree/main#ldap)
- Migration from any former Nextcloud installation to AIO is possible. See [this documentation](https://github.com/nextcloud/all-in-one/blob/main/migration.md)
- Migration from any former Nextcloud installation to AIO is possible. See [this documentation](https://github.com/nextcloud/all-in-one/blob/main/migration.md).
- Migration in the other direction (e.g. from AIO to a VM-based installation) is also possible.
- [Fail2Ban can be added](https://github.com/nextcloud/all-in-one#fail2ban)
- [phpMyAdmin, Adminer or pgAdmin can be added](https://github.com/nextcloud/all-in-one#phpmyadmin-adminer-or-pgadmin)
- [Mail server can be added](https://github.com/nextcloud/all-in-one#mail-server)
@@ -282,7 +283,7 @@ Only those (if you access the Mastercontainer Interface internally via port 8080
- `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.
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/6817) 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
@@ -300,7 +301,7 @@ Since Cloudflare Proxy/Tunnel comes with a lot of limitations which are listed b
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
For a reverse proxy example guide for Tailscale, see this guide by [@Perseus333](https://github.com/Perseus333): https://github.com/nextcloud/all-in-one/discussions/6817
### 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.
@@ -309,22 +310,22 @@ You can install AIO in reverse proxy mode where is also documented how to get it
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).
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/6817).
### 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).
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/6817).
### 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.
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/6817) 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.
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/6817) 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.
@@ -359,7 +360,7 @@ You can adjust the MTU size of the docker network by creating it beforehand with
```
docker network create --driver bridge --opt com.docker.network.driver.mtu=1440 nextcloud-aio
```
When you open the AIO interface for the first time after you execute the `docker run` command, it will automatically connect to the `aio-nextcloud` network with the custom MTU. Keep in mind that if you previously started the mastercontainer without creating the network with the extra options, you will need to remove the old `aio-nextcloud` network and recreate it with the new configuration.
When you open the AIO interface for the first time after you execute the `docker run` command, it will automatically connect to the `nextcloud-aio` network with the custom MTU. Keep in mind that if you previously started the mastercontainer without creating the network with the extra options, you will need to remove the old `nextcloud-aio` network and recreate it with the new configuration.
If you want to use docker compose, you can check out the comments in the `compose.yaml` file for more details.
@@ -523,7 +524,11 @@ The Fulltextsearch Java options are by default set to `-Xms512M -Xmx512M` which
## 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.
> [!NOTE]
> On macOS, it is recommended to use OrbStack instead of Docker Desktop which has much better compatibility with docker for Linux compared to Docker Desktop. See https://orbstack.dev/
Generally, on macOS, there is only one thing different for the docker run command 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.
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.

View File

@@ -4,7 +4,7 @@
> Please note that AIO comes secured with TLS out-of-the-box. So you don't need to necessarily set up your own reverse proxy if you only want to run Nextcloud AIO which is much easier. See [the normal readme](https://github.com/nextcloud/all-in-one?tab=readme-ov-file#how-to-use-this) in that case. However if port 443 should already be used because you already run a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else), you need to follow this reverse proxy documentation to set up Nextcloud AIO.
> [!TIP]
> If you don't have a domain yet, [Tailscale is recommended](https://github.com/nextcloud/all-in-one/discussions/5439). If you don't have a reverse proxy yet, [Caddy is recommended](https://github.com/nextcloud/all-in-one/discussions/575).
> If you don't have a domain yet, [Tailscale is recommended](https://github.com/nextcloud/all-in-one/discussions/6817). If you don't have a reverse proxy yet, [Caddy is recommended](https://github.com/nextcloud/all-in-one/discussions/575).
## Introduction
In order to run Nextcloud behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else), you need to:
@@ -679,6 +679,9 @@ The examples below define the dynamic configuration in YAML files. If you rather
entryPoints:
https:
address: ":443" # Create an entrypoint called "https" that uses port 443
transport:
respondingTimeouts:
readTimeout: 24h # Allows uploads > 100MB; prevents connection reset due to chunking (public upload-only links)
# If you want to enable HTTP/3 support, uncomment the line below
# http3: {}
@@ -766,6 +769,9 @@ The examples below define the dynamic configuration in YAML files. If you rather
entryPoints:
https:
address: ":443" # Create an entrypoint called "https" that uses port 443
transport:
respondingTimeouts:
readTimeout: 24h # Allows uploads > 100MB; prevents connection reset due to chunking (public upload-only links)
# If you want to enable HTTP/3 support, uncomment the line below
# http3: {}
@@ -905,7 +911,7 @@ Add the following `web.config` file to the root of the site you created as the r
<summary>click here to expand</summary>
For a reverse proxy example guide for Tailscale, see this guide by @flll: https://github.com/nextcloud/all-in-one/discussions/5439
For a reverse proxy example guide for Tailscale, see this guide by [@Perseus333](https://github.com/Perseus333): https://github.com/nextcloud/all-in-one/discussions/6817
</details>
@@ -1048,3 +1054,22 @@ If something does not work, follow the steps below:
1. [Enable Hairpin NAT in your router](https://github.com/nextcloud/all-in-one/discussions/5849) or [set up a local DNS server and add a custom dns-record](https://github.com/nextcloud/all-in-one#how-can-i-access-nextcloud-locally) that allows the server to reach itself locally
1. Try to configure everything from scratch - if it still does not work by following https://github.com/nextcloud/all-in-one#how-to-properly-reset-the-instance.
1. As last resort, you may disable the domain validation by adding `--env SKIP_DOMAIN_VALIDATION=true` to the docker run command. But only use this if you are completely sure that you've correctly configured everything!
## 8. Removing the reverse proxy
If you, at some point, want to remove the reverse proxy, here are some general steps:
1. Stop all running containers in the AIO Interface.
2. Stop and remove the mastercontainer.
```
sudo docker stop nextcloud-aio-mastercontainer
sudo docker rm nextcloud-aio-mastercontainer
```
3. Remove the software and configuration file that you used for the reverse proxy (see section 1).
4. Restart the mastercontainer with the [docker run command from the main readme](https://github.com/nextcloud/all-in-one?tab=readme-ov-file#how-to-use-this) but add the two options:
```
--env APACHE_IP_BINDING=0.0.0.0 \
--env APACHE_PORT=443 \
```
Do this *before* the last line of the run command!
*The first command ensures that the Apache container is listening on all available network interfaces and the second command configures it to listen to port 443.*
5. Restart all other containers in the AIO interface.