Compare commits

...

124 Commits

Author SHA1 Message Date
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.
0f84872fbf fix start and update of containers after #6702
Signed-off-by: Simon L. <szaimen@e.mail.de>
2025-08-29 11:21:42 +02:00
Simon L.
5f067cc03e clamav: fix initial freshclam update
Signed-off-by: Simon L. <szaimen@e.mail.de>
2025-08-29 11:00:37 +02:00
Simon L.
76be50d42d increase to 11.7.0
Signed-off-by: Simon L. <szaimen@e.mail.de>
2025-08-29 10:52:06 +02: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
Lorenzo Moscati
2e54b15544 Add docs how to adjust MTU size of the docker network (#6779)
Signed-off-by: Lorenzo Moscati <lorenzo@moscati.page>
2025-08-29 10:16:13 +02:00
Simon L.
dd71fd3be3 Merge pull request #6806 from nextcloud/dependabot/docker/Containers/nextcloud/php-8.3.25-fpm-alpine3.22
build(deps): bump php from 8.3.24-fpm-alpine3.22 to 8.3.25-fpm-alpine3.22 in /Containers/nextcloud
2025-08-29 08:41:18 +02:00
Simon L.
80fabe720a Merge pull request #6805 from nextcloud/dependabot/docker/Containers/mastercontainer/php-8.4.12-fpm-alpine3.22
build(deps): bump php from 8.4.11-fpm-alpine3.22 to 8.4.12-fpm-alpine3.22 in /Containers/mastercontainer
2025-08-29 08:40:56 +02:00
dependabot[bot]
b9a8409047 build(deps): bump php in /Containers/nextcloud
Bumps php from 8.3.24-fpm-alpine3.22 to 8.3.25-fpm-alpine3.22.

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-29 04:20:39 +00:00
dependabot[bot]
e2518d93a8 build(deps): bump php in /Containers/mastercontainer
Bumps php from 8.4.11-fpm-alpine3.22 to 8.4.12-fpm-alpine3.22.

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-29 04:20:22 +00:00
Simon L.
3badbf2d05 compose.yaml: move the security_opt setting up for easier discovery
Signed-off-by: Simon L. <szaimen@e.mail.de>
2025-08-28 15:59:37 +02:00
Simon L.
074418dc73 Merge pull request #6798 from nextcloud/enh/6797/adjust-permissions
clamav: set permissions for `/var/lib/clamav` correctly
2025-08-28 11:09:11 +02:00
Simon L.
a2394e4621 clamav: set permissions for /var/lib/clamav correctly
Signed-off-by: Simon L. <szaimen@e.mail.de>
2025-08-28 10:28:14 +02:00
Simon L.
d05dca85ea Merge pull request #6800 from nextcloud/dependabot/docker/Containers/apache/caddy-2.10.2-alpine
build(deps): bump caddy from 2.10.0-alpine to 2.10.2-alpine in /Containers/apache
2025-08-28 09:10:09 +02:00
Simon L.
2a49bfff20 Merge pull request #6799 from nextcloud/dependabot/docker/Containers/mastercontainer/caddy-2.10.2-alpine
build(deps): bump caddy from 2.10.0-alpine to 2.10.2-alpine in /Containers/mastercontainer
2025-08-28 09:09:48 +02:00
dependabot[bot]
1e579b049e build(deps): bump caddy in /Containers/apache
Bumps caddy from 2.10.0-alpine to 2.10.2-alpine.

---
updated-dependencies:
- dependency-name: caddy
  dependency-version: 2.10.2-alpine
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-28 05:55:45 +00:00
dependabot[bot]
bc04ee6aea build(deps): bump caddy in /Containers/mastercontainer
Bumps caddy from 2.10.0-alpine to 2.10.2-alpine.

---
updated-dependencies:
- dependency-name: caddy
  dependency-version: 2.10.2-alpine
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-28 05:49:58 +00:00
Simon L.
0d5da95a66 Merge pull request #6796 from nextcloud/dependabot/docker/Containers/collabora/collabora/code-25.04.5.1.1
build(deps): bump collabora/code from 25.04.4.3.1 to 25.04.5.1.1 in /Containers/collabora
2025-08-27 18:08:10 +02:00
dependabot[bot]
681cd2cb17 build(deps): bump collabora/code in /Containers/collabora
Bumps collabora/code from 25.04.4.3.1 to 25.04.5.1.1.

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-27 13:55:56 +00: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
Simon L.
4cdf43f551 Merge pull request #6789 from nextcloud/dependabot/github_actions/dot-github/workflows/shivammathur/setup-php-2.35.4
build(deps): bump shivammathur/setup-php from 2.35.3 to 2.35.4 in /.github/workflows
2025-08-26 11:57:53 +02:00
dependabot[bot]
6d44c1d477 build(deps): bump shivammathur/setup-php in /.github/workflows
Bumps [shivammathur/setup-php](https://github.com/shivammathur/setup-php) from 2.35.3 to 2.35.4.
- [Release notes](https://github.com/shivammathur/setup-php/releases)
- [Commits](20529878ed...ec406be512)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-26 01:05:44 +00:00
Simon L.
a5010cca87 Merge pull request #6787 from nextcloud/aio-dependency-update
PHP dependency updates
2025-08-25 14:28:23 +02:00
szaimen
913179c7a6 php dependency updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-08-25 12:13:50 +00:00
Simon L.
c5d236eed8 Merge pull request #6786 from nextcloud/dependabot/docker/Containers/collabora/collabora/code-25.04.4.3.1
build(deps): bump collabora/code from 25.04.4.2.1 to 25.04.4.3.1 in /Containers/collabora
2025-08-25 09:20:19 +02:00
dependabot[bot]
0ddc2d4ea9 build(deps): bump collabora/code in /Containers/collabora
Bumps collabora/code from 25.04.4.2.1 to 25.04.4.3.1.

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-25 06:43:28 +00:00
Simon L.
3cd087a3e3 Merge pull request #6784 from nextcloud/aio-dependency-update
PHP dependency updates
2025-08-24 15:35:16 +02:00
szaimen
676398f3af php dependency updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-08-24 12:02:49 +00:00
Simon L.
f9f3a037d5 Merge pull request #6783 from nextcloud/aio-dependency-update
PHP dependency updates
2025-08-23 14:33:36 +02:00
szaimen
52975f35ee php dependency updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-08-23 12:02:56 +00:00
Simon L.
2efc19a389 Merge pull request #6781 from nextcloud/aio-yaml-update
Yaml updates
2025-08-22 14:07:53 +02:00
szaimen
13b09e2497 Yaml updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-08-22 12:03:41 +00:00
Simon L.
40391452ab Merge pull request #6765 from nextcloud/dependabot/docker/Containers/whiteboard/nextcloud-releases/whiteboard-v1.1.3
build(deps): bump nextcloud-releases/whiteboard from v1.1.2 to v1.1.3 in /Containers/whiteboard
2025-08-22 13:54:19 +02:00
Simon L.
dd97930c11 Merge pull request #6758 from nextcloud/dependabot/docker/Containers/talk-recording/python-3.13.7-alpine3.22
build(deps): bump python from 3.13.6-alpine3.22 to 3.13.7-alpine3.22 in /Containers/talk-recording
2025-08-22 13:54:08 +02:00
Simon L.
3ebe97d020 Merge pull request #6753 from nextcloud/dependabot/docker/Containers/talk/nats-2.11.8-scratch
build(deps): bump nats from 2.11.7-scratch to 2.11.8-scratch in /Containers/talk
2025-08-22 13:53:55 +02:00
Simon L.
73324bc062 Merge pull request #6752 from nextcloud/dependabot/docker/Containers/postgresql/postgres-17.6-alpine
build(deps): bump postgres from 17.5-alpine to 17.6-alpine in /Containers/postgresql
2025-08-22 13:53:41 +02:00
Simon L.
e6a1c45450 Merge pull request #6747 from nextcloud/aio-dependency-update
PHP dependency updates
2025-08-22 13:53:31 +02:00
Simon L.
51b32578a2 Merge pull request #6760 from nextcloud/talk-container-update
talk container update
2025-08-22 13:51:58 +02:00
Simon L.
423ba1cc3c talk: update script to use the new urls syntax
Signed-off-by: Simon L. <szaimen@e.mail.de>
2025-08-22 13:51:35 +02:00
Simon L.
ad9d877289 Merge pull request #6766 from nextcloud/dependabot/docker/Containers/talk/strukturag/nextcloud-spreed-signaling-2.0.4
build(deps): bump strukturag/nextcloud-spreed-signaling from 2.0.3 to 2.0.4 in /Containers/talk
2025-08-22 13:49:14 +02:00
Alan Savage
dd495d76a1 Add support for bypass_container_update param for easier local build and testing (#6702)
Signed-off-by: Alan Savage <3028205+asavageiv@users.noreply.github.com>
Signed-off-by: Simon L. <szaimen@e.mail.de>
Signed-off-by: Alan Savage <asavageiv@users.noreply.github.com>
Co-authored-by: Alan Savage <asavage@ifrit.internal>
Co-authored-by: Alan Savage <3028205+asavageiv@users.noreply.github.com>
Co-authored-by: Simon L. <szaimen@e.mail.de>
2025-08-22 13:47:29 +02:00
Alan Savage
49aa732ec5 add CGNAT range to Caddy and document support for additional trusted proxies to rp docs (#6703)
Signed-off-by: Alan Savage <3028205+asavageiv@users.noreply.github.com>
Signed-off-by: Alan Savage <asavageiv@users.noreply.github.com>
Signed-off-by: Simon L. <szaimen@e.mail.de>
Co-authored-by: Alan Savage <3028205+asavageiv@users.noreply.github.com>
Co-authored-by: Simon L. <szaimen@e.mail.de>
2025-08-22 13:43:55 +02:00
Simon L.
4b4184f248 Merge pull request #6777 from nextcloud/enh/6776/add-further-caps
collabora: add further caps
2025-08-22 13:38:32 +02:00
Simon L.
8764307d68 Merge pull request #6770 from nextcloud/ench/noid/stalwart-clamav
stalwart: add support for ClamAV
2025-08-22 13:38:17 +02:00
Simon L.
51a9d47c74 Merge pull request #6780 from nextcloud/aio-helm-update
Helm Chart updates
2025-08-22 13:37:59 +02:00
szaimen
c3d1d96d19 Helm Chart updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-08-22 11:32:53 +00:00
Simon L.
f0f023346a Merge pull request #6778 from lavocatt/docs
readme: docs for moving install to different drive: use force to prune docker resources
2025-08-21 16:28:51 +02:00
Thomas Lavocat
afde995ac6 documentation: use force to prune docker resources
In the documentation there is reference of a manipulation to perform in
case the collabora container is missing some permissions to access the
filesystem, however `docker system prune` might not clean what's needed.
Adding `-a` is very broad however but will most definitely clean the
image.

Fixes #6776

Signed-off-by: Thomas Lavocat <tlavocat@redhat.com>
2025-08-21 16:23:55 +02:00
Simon L.
1e750fdcf6 collabora: add further caps
Signed-off-by: Simon L. <szaimen@e.mail.de>
2025-08-21 15:05:59 +02:00
szaimen
3e71a789e1 talk-update automated change
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-08-21 12:04:43 +00:00
szaimen
0eb6bceb6f php dependency updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-08-21 12:03:50 +00:00
Jean-Yves
9ffb91bd04 Update stalwart.json
Signed-off-by: Jean-Yves <7360784+docjyJ@users.noreply.github.com>
2025-08-20 22:23:09 +02:00
Simon L.
6d147a99cf Merge pull request #6769 from nextcloud/dependabot/github_actions/dot-github/workflows/azure/setup-helm-4.3.1
build(deps): bump azure/setup-helm from 4.3.0 to 4.3.1 in /.github/workflows
2025-08-20 15:44:33 +02:00
dependabot[bot]
74b8363f9d build(deps): bump azure/setup-helm in /.github/workflows
Bumps [azure/setup-helm](https://github.com/azure/setup-helm) from 4.3.0 to 4.3.1.
- [Release notes](https://github.com/azure/setup-helm/releases)
- [Changelog](https://github.com/Azure/setup-helm/blob/main/CHANGELOG.md)
- [Commits](b9e51907a0...1a275c3b69)

---
updated-dependencies:
- dependency-name: azure/setup-helm
  dependency-version: 4.3.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-20 13:17:33 +00:00
dependabot[bot]
01dc07e8f1 build(deps): bump strukturag/nextcloud-spreed-signaling
Bumps strukturag/nextcloud-spreed-signaling from 2.0.3 to 2.0.4.

---
updated-dependencies:
- dependency-name: strukturag/nextcloud-spreed-signaling
  dependency-version: 2.0.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-19 16:10:27 +00:00
dependabot[bot]
25f0021a81 build(deps): bump nextcloud-releases/whiteboard
Bumps nextcloud-releases/whiteboard from v1.1.2 to v1.1.3.

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-19 14:25:49 +00:00
dependabot[bot]
149febb8d3 build(deps): bump python in /Containers/talk-recording
Bumps python from 3.13.6-alpine3.22 to 3.13.7-alpine3.22.

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-18 07:51:58 +00:00
dependabot[bot]
de2dfcc7ed build(deps): bump nats in /Containers/talk
Bumps nats from 2.11.7-scratch to 2.11.8-scratch.

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-15 04:44:08 +00:00
dependabot[bot]
b9e52fef5c build(deps): bump postgres in /Containers/postgresql
Bumps postgres from 17.5-alpine to 17.6-alpine.

---
updated-dependencies:
- dependency-name: postgres
  dependency-version: 17.6-alpine
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-15 04:44:01 +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
95 changed files with 625 additions and 357 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@20529878ed81ef8e78ddf08b480401e6101a850f # v2
- uses: actions/checkout@v5
- uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 # 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@bff843227669a0c34c7f791ebd53a4b7c2a3febd # v2
with:
continue-after-seconds: 180
env:
@@ -32,7 +32,7 @@ jobs:
# See https://github.com/helm/chart-releaser-action/issues/6
- name: Set up Helm
uses: azure/setup-helm@b9e51907a09c216f16ebe8536097933489208112 # v4
uses: azure/setup-helm@1a275c3b69536ee54be43f2070a358922e12c8d4 # v4
with:
version: v3.6.3

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,12 +11,12 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v5
with:
fetch-depth: 0
- name: Install Helm
uses: azure/setup-helm@b9e51907a09c216f16ebe8536097933489208112 # v4
uses: azure/setup-helm@1a275c3b69536ee54be43f2070a358922e12c8d4 # v4
with:
version: v3.11.1

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@20529878ed81ef8e78ddf08b480401e6101a850f # v2
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 # 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@20529878ed81ef8e78ddf08b480401e6101a850f # v2
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 # 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@v5
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@20529878ed81ef8e78ddf08b480401e6101a850f # v2
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 # 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@20529878ed81ef8e78ddf08b480401e6101a850f # v2
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 # 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@20529878ed81ef8e78ddf08b480401e6101a850f # v2
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 # 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

@@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest
FROM caddy:2.10.0-alpine AS caddy
FROM caddy:2.10.2-alpine AS caddy
# From https://github.com/docker-library/httpd/blob/master/2.4/alpine/Dockerfile
FROM httpd:2.4.65-alpine3.22

View File

@@ -46,7 +46,9 @@ echo "$CADDYFILE" > /tmp/Caddyfile
# Change the trusted_proxies in case of reverse proxies
if [ "$APACHE_PORT" != '443' ]; then
CADDYFILE="$(sed 's|# trusted_proxies placeholder|trusted_proxies static private_ranges|' /tmp/Caddyfile)"
# Here the 100.64.0.0/10 range gets added which is the CGNAT range used by Tailscale nodes
# See https://github.com/nextcloud/all-in-one/pull/6703 for reference
CADDYFILE="$(sed 's|# trusted_proxies placeholder|trusted_proxies static private_ranges 100.64.0.0/10|' /tmp/Caddyfile)"
else
CADDYFILE="$(sed "s|# trusted_proxies placeholder|trusted_proxies static $IPv4_ADDRESS|" /tmp/Caddyfile)"
fi

View File

@@ -4,21 +4,23 @@ FROM alpine:3.22.1
RUN set -ex; \
apk upgrade --no-cache -a; \
apk add --no-cache tzdata clamav supervisor bash; \
mkdir -p /run/clamav /var/log/supervisord /var/run/supervisord; \
mkdir -p /var/lib/clamav /run/clamav /var/log/supervisord /var/run/supervisord; \
chmod 777 -R /run/clamav /var/log/clamav /var/log/supervisord /var/run/supervisord; \
chown -R 100:100 /var/lib/clamav; \
sed -i "s|#\?MaxDirectoryRecursion.*|MaxDirectoryRecursion 30|g" /etc/clamav/clamd.conf; \
sed -i "s|#\?MaxFileSize.*|MaxFileSize 2G|g" /etc/clamav/clamd.conf; \
sed -i "s|#\?PCREMaxFileSize.*|PCREMaxFileSize aio-placeholder|g" /etc/clamav/clamd.conf; \
sed -i "s|#\?StreamMaxLength.*|StreamMaxLength aio-placeholder|g" /etc/clamav/clamd.conf; \
sed -i "s|#\?TCPSocket|TCPSocket|g" /etc/clamav/clamd.conf; \
sed -i "s|^LocalSocket .*|LocalSocket /tmp/clamd.sock|g" /etc/clamav/clamd.conf; \
freshclam --foreground --stdout
sed -i "s|^LocalSocket .*|LocalSocket /tmp/clamd.sock|g" /etc/clamav/clamd.conf
COPY --chmod=775 start.sh /start.sh
COPY --chmod=775 healthcheck.sh /healthcheck.sh
COPY --chmod=664 supervisord.conf /supervisord.conf
USER 100
RUN set -ex; \
freshclam --foreground --stdout
VOLUME /var/lib/clamav
ENTRYPOINT ["/start.sh"]
CMD ["/usr/bin/supervisord", "-c", "/supervisord.conf"]

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.4.2.1
FROM collabora/code:25.04.5.2.1
USER root
ARG DEBIAN_FRONTEND=noninteractive

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.4
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.1-alpine3.22 AS go
ENV IMAGINARY_HASH=1d4e251cfcd58ea66f8361f8721d7b8cc85002a3

View File

@@ -1,15 +1,12 @@
# syntax=docker/dockerfile:latest
# Docker CLI is a requirement
FROM docker:28.3.3-cli AS docker
FROM docker:28.4.0-cli AS docker
# Caddy is a requirement
FROM caddy:2.10.0-alpine AS caddy
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.11-fpm-alpine3.22
ARG AIO_GIT_URL="https://github.com/nextcloud-releases/all-in-one.git"
ARG AIO_GIT_BRANCH="main"
FROM php:8.4.12-fpm-alpine3.22
EXPOSE 80
EXPOSE 8080
@@ -18,6 +15,13 @@ EXPOSE 8443
COPY --from=caddy /usr/bin/caddy /usr/bin/caddy
COPY --from=docker /usr/local/bin/docker /usr/local/bin/docker
COPY community-containers /var/www/docker-aio/community-containers
COPY php /var/www/docker-aio/php
COPY --chmod=775 Containers/mastercontainer/*.sh /
COPY --chmod=664 Containers/mastercontainer/Caddyfile /Caddyfile
COPY --chmod=664 Containers/mastercontainer/supervisord.conf /supervisord.conf
COPY Containers/mastercontainer/mastercontainer.conf /etc/apache2/sites-available/mastercontainer.conf
WORKDIR /var/www/docker-aio
# hadolint ignore=SC2086,DL3047,DL3003,DL3004
@@ -45,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="$( \
@@ -67,8 +71,6 @@ RUN set -ex; \
wget https://getcomposer.org/installer -O - | php -- --install-dir=/usr/local/bin --filename=composer; \
chmod +x /usr/local/bin/composer; \
cd /var/www/docker-aio; \
git clone "$AIO_GIT_URL" --depth 1 --single-branch --branch "$AIO_GIT_BRANCH" .; \
find ./ -maxdepth 1 -mindepth 1 -not -path ./php -not -path ./community-containers -exec rm -r {} \; ; \
rm -r ./php/tests; \
chown www-data:www-data -R /var/www/docker-aio; \
cd php; \
@@ -120,11 +122,6 @@ RUN set -ex; \
mkdir /var/log/supervisord; \
mkdir /var/run/supervisord;
COPY --chmod=775 *.sh /
COPY --chmod=664 Caddyfile /Caddyfile
COPY --chmod=664 supervisord.conf /supervisord.conf
COPY mastercontainer.conf /etc/apache2/sites-available/mastercontainer.conf
LABEL org.label-schema.vendor="Nextcloud"
# hadolint ignore=DL3002

View File

@@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest
FROM php:8.3.24-fpm-alpine3.22
FROM php:8.3.25-fpm-alpine3.22
ENV PHP_MEMORY_LIMIT=512M
ENV PHP_UPLOAD_LIMIT=16G
@@ -8,16 +8,20 @@ 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!
COPY --chmod=775 *.sh /
COPY --chmod=774 upgrade.exclude /upgrade.exclude
COPY config/*.php /
COPY supervisord.conf /supervisord.conf
COPY root.motd /root.motd
COPY --chmod=775 Containers/nextcloud/*.sh /
COPY --chmod=774 Containers/nextcloud/upgrade.exclude /upgrade.exclude
COPY Containers/nextcloud/config/*.php /
COPY Containers/nextcloud/supervisord.conf /supervisord.conf
# AIO cloning start # Do not remove or change this line!
COPY app /usr/src/nextcloud/apps/nextcloud-aio
COPY Containers/nextcloud/root.motd /root.motd
# AIO cloning end # Do not remove or change this line!
VOLUME /mnt/ncdata
VOLUME /var/www/html
@@ -79,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; \
@@ -242,15 +246,7 @@ RUN set -ex; \
sed -i 's/^pm.max_children =.*/pm.max_children = 5000/' /usr/local/etc/php-fpm.d/www.conf; \
sed -i 's|access.log = /proc/self/fd/2|access.log = /proc/self/fd/1|' /usr/local/etc/php-fpm.d/docker.conf; \
\
# AIO cloning start # Do not remove or change this line!
rm -rf /tmp/nextcloud-aio && \
mkdir -p /tmp/nextcloud-aio && \
cd /tmp/nextcloud-aio && \
git clone https://github.com/nextcloud-releases/all-in-one.git --depth 1 .; \
mkdir -p /usr/src/nextcloud/apps/nextcloud-aio; \
cp -r ./app/* /usr/src/nextcloud/apps/nextcloud-aio/; \
echo "[ -n \"\$TERM\" ] && cat /root.motd" >> /root/.bashrc; \
# AIO cloning end # Do not remove or change this line!
echo "[ -n \"\$TERM\" ] && [ -f /root.motd ] && cat /root.motd" >> /root/.bashrc; \
\
chown www-data:root -R /usr/src && \
chmod 777 -R /usr/local/etc/php/conf.d && \

View File

@@ -198,6 +198,18 @@ if ! [ -f "$NEXTCLOUD_DATA_DIR/skip.update" ]; then
echo "Initializing nextcloud $image_version ..."
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 over initial data from Nextcloud archive
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/
@@ -356,7 +368,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

View File

@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:latest
# From https://github.com/docker-library/postgres/blob/master/17/alpine3.22/Dockerfile
FROM postgres:17.5-alpine
FROM postgres:17.6-alpine
COPY --chmod=775 start.sh /start.sh
COPY --chmod=775 healthcheck.sh /healthcheck.sh

View File

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

View File

@@ -1,7 +1,7 @@
# syntax=docker/dockerfile:latest
FROM nats:2.11.7-scratch AS nats
FROM nats:2.11.9-scratch AS nats
FROM eturnal/eturnal:1.12.1 AS eturnal
FROM strukturag/nextcloud-spreed-signaling:2.0.3 AS signaling
FROM strukturag/nextcloud-spreed-signaling:2.0.4 AS signaling
FROM alpine:3.22.1 AS janus
ARG JANUS_VERSION=v1.3.2

View File

@@ -84,7 +84,8 @@ internalsecret = the-shared-secret-for-internal-clients
# For backend type "etcd":
# Key prefix of backend entries. All keys below will be watched and assumed to
# contain a JSON document with the following entries:
# - "url": Url of the Nextcloud instance.
# - "urls": List of urls of the Nextcloud instance.
# - "url": Url of the Nextcloud instance (deprecated).
# - "secret": Shared secret for requests from and to the backend servers.
#
# Additional optional entries:
@@ -93,8 +94,8 @@ internalsecret = the-shared-secret-for-internal-clients
# - "sessionlimit": Number of sessions that are allowed to connect.
#
# Example:
# "/signaling/backend/one" -> {"url": "https://nextcloud.domain1.invalid", ...}
# "/signaling/backend/two" -> {"url": "https://domain2.invalid/nextcloud", ...}
# "/signaling/backend/one" -> {"urls": ["https://nextcloud.domain1.invalid"], ...}
# "/signaling/backend/two" -> {"urls": ["https://domain2.invalid/nextcloud"], ...}
#backendprefix = /signaling/backend
# Allow any hostname as backend endpoint. This is extremely insecure and should
@@ -122,8 +123,8 @@ connectionsperhost = 8
# Backend configurations as defined in the "[backend]" section above. The
# section names must match the ids used in "backends" above.
#[backend-id]
# URL of the Nextcloud instance
#url = https://cloud.domain.invalid
# Comma-separated list of urls of the Nextcloud instance
#urls = https://cloud.domain.invalid
# Shared secret for requests from and to the backend servers. Leave empty to use
# the common shared secret from above.
@@ -143,8 +144,8 @@ connectionsperhost = 8
#maxscreenbitrate = 2097152
#[another-backend]
# URL of the Nextcloud instance
#url = https://cloud.otherdomain.invalid
# Comma-separated list of urls of the Nextcloud instance
#urls = https://cloud.otherdomain.invalid
# Shared secret for requests from and to the backend servers. Leave empty to use
# the common shared secret from above.
@@ -179,6 +180,13 @@ connectionsperhost = 8
# proxy server that is used.
#maxscreenbitrate = 2097152
# List of IP addresses / subnets that are allowed to be used by clients in
# candidates. The allowed list has preference over the blocked list below.
#allowedcandidates = 10.0.0.0/8
# List of IP addresses / subnets to filter from candidates received by clients.
#blockedcandidates = 1.2.3.0/24
# For type "proxy": timeout in seconds for requests to the proxy server.
#proxytimeout = 2

View File

@@ -98,7 +98,7 @@ connectionsperhost = 8
skipverify = ${SKIP_CERT_VERIFY}
[backend-1]
url = https://${NC_DOMAIN}
urls = https://${NC_DOMAIN}
secret = ${SIGNALING_SECRET}
maxstreambitrate = ${TALK_MAX_STREAM_BITRATE}
maxscreenbitrate = ${TALK_MAX_SCREEN_BITRATE}

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.11.8 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.2
FROM ghcr.io/nextcloud-releases/whiteboard:v1.2.0
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

@@ -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

@@ -48,7 +48,8 @@
"environment": [
"TZ=%TIMEZONE%",
"NC_DOMAIN=%NC_DOMAIN%",
"STALWART_USER_PASS=%STALWART_USER_PASS%"
"STALWART_USER_PASS=%STALWART_USER_PASS%",
"CLAMAV_ENABLED=%CLAMAV_ENABLED%"
],
"secrets": [
"STALWART_USER_PASS"

View File

@@ -1,17 +1,19 @@
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
- /var/run/docker.sock:/var/run/docker.sock:ro # May be changed on macOS, Windows or docker rootless. See the applicable documentation. If adjusting, don't forget to also set 'WATCHTOWER_DOCKER_SOCKET_PATH'!
network_mode: bridge # add to the same network as docker run would do
network_mode: bridge # This adds the container to the same network as docker run would do. Comment this line and uncomment the line below and the networks section at the end of the file if you want to define a custom MTU size for the docker network
# 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. 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
@@ -35,10 +37,9 @@ services:
# SKIP_DOMAIN_VALIDATION: false # This should only be set to true if things are correctly configured. See https://github.com/nextcloud/all-in-one?tab=readme-ov-file#how-to-skip-the-domain-validation
# TALK_PORT: 3478 # This allows to adjust the port that the talk container is using which is exposed on the host. See https://github.com/nextcloud/all-in-one#how-to-adjust-the-talk-port
# 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'
# security_opt: ["label:disable"] # Is needed when using SELinux
# # 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:
@@ -69,3 +70,10 @@ volumes: # If you want to store the data on a different drive, see https://githu
# caddy_config:
# caddy_data:
# caddy_sites:
# # Adjust the MTU size of the docker network. See https://github.com/nextcloud/all-in-one#how-to-adjust-the-mtu-size-of-the-docker-network
# networks:
# nextcloud-aio:
# name: nextcloud-aio
# driver_opts:
# com.docker.network.driver.mtu: 1440

View File

@@ -26,7 +26,7 @@ Simply use https://github.com/nextcloud/all-in-one/issues/6198 as template.
Go to https://github.com/nextcloud-releases/all-in-one/actions/workflows/repo-sync.yml and run the workflow that will first sync the repo and then build new container that automatically get published to `develop` and `develop-arm64`.
## How to test things correctly?
Before testing, make sure that at least the amd64 containers are built successfully by checking the last workflow here: https://github.com/nextcloud-releases/all-in-one/actions/workflows/build_images.yml.
Before testing, make sure that at least the amd64 containers are built successfully by checking the last workflow here: https://github.com/nextcloud-releases/all-in-one/actions/workflows/build_images.yml.
There is a testing-VM available for the maintainer of AIO that allows for some final testing before releasing new version. See [this](https://cloud.nextcloud.com/apps/collectives/Nextcloud%20Handbook/Technical/AIO%20testing%20VM?fileId=6350152) for details.
@@ -48,12 +48,25 @@ This is documented here: https://github.com/nextcloud-releases/all-in-one/tree/m
## How to connect to the database?
Simply run `sudo docker exec -it nextcloud-aio-database psql -U oc_nextcloud nextcloud_database` and you should be in.
## How to locally build and test changes to mastercontainer?
1. Push changes to your own git fork and branch.
1. Use below commands to build mastercontainer image for a custom git url and branch:
## How to locally build and test changes to mastercontainer
1. Ensure you are on the developer channel per the instructions above.
1. Use the commands below from the project root to build the mastercontainer image:
```
cd Containers/mastercontainer
docker buildx build -t ghcr.io/nextcloud-releases/all-in-one:latest --build-arg AIO_GIT_URL="https://github.com/my-fork-repo/all-in-one.git" --build-arg AIO_GIT_BRANCH="my-feature-branch" --load .
docker buildx build --file Containers/mastercontainer/Dockerfile --tag ghcr.io/nextcloud-releases/all-in-one:develop --load .
```
1. Start a container with above built image.
1. Since the hash of a locally built image doesn't match the latest release mastercontainer, it prompts for a mandatory update. To temporarily bypass the update suffix `?bypass_mastercontainer_update` to the URL. Eg: `https://localhost:8080/containers?bypass_mastercontainer_update`
## How to locally build and test changes to other containers using the bypass_container_update param
1. Ensure you are on the developer channel per the instructions above.
1. Use the commands below from the project root to build the container image:
```
# For the "nextcloud" container
docker buildx build --file Containers/nextcloud/Dockerfile --tag ghcr.io/nextcloud-releases/aio-nextcloud:develop --load .
# For all other containers
docker buildx build --file Containers/{container}/Dockerfile --tag ghcr.io/nextcloud-releases/aio-{container}:develop --load Containers/{container}
```
1. Stop the containers using the AIO admin interface.
1. Reload the AIO admin interface with the param `bypass_container_update` to avoid overwriting your local changes, e.g. `https://localhost:8080/containers?bypass_container_update`.
1. Click "Start and update containers" and test your changes. Containers will not be updated, despite the button text.

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}
@@ -267,6 +267,8 @@ services:
cap_add:
- MKNOD
- SYS_ADMIN
- SYS_CHROOT
- FOWNER
- CHOWN
cap_drop:
- NET_RAW

View File

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

View File

@@ -2,7 +2,7 @@ apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
kompose.version: 1.36.0 (ae2a39403)
kompose.version: 1.37.0 (fb0539e64)
labels:
io.kompose.service: nextcloud-aio-apache
name: nextcloud-aio-apache
@@ -17,7 +17,7 @@ spec:
template:
metadata:
annotations:
kompose.version: 1.36.0 (ae2a39403)
kompose.version: 1.37.0 (fb0539e64)
labels:
io.kompose.service: nextcloud-aio-apache
spec:
@@ -61,7 +61,7 @@ spec:
value: "{{ .Values.TIMEZONE }}"
- name: WHITEBOARD_HOST
value: nextcloud-aio-whiteboard
image: ghcr.io/nextcloud-releases/aio-apache:20250811_115851
image: ghcr.io/nextcloud-releases/aio-apache:20250918_093027
readinessProbe:
exec:
command:

View File

@@ -2,7 +2,7 @@ apiVersion: v1
kind: Service
metadata:
annotations:
kompose.version: 1.36.0 (ae2a39403)
kompose.version: 1.37.0 (fb0539e64)
labels:
io.kompose.service: nextcloud-aio-apache
name: nextcloud-aio-apache

View File

@@ -3,7 +3,7 @@ apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
kompose.version: 1.36.0 (ae2a39403)
kompose.version: 1.37.0 (fb0539e64)
labels:
io.kompose.service: nextcloud-aio-clamav
name: nextcloud-aio-clamav
@@ -18,7 +18,7 @@ spec:
template:
metadata:
annotations:
kompose.version: 1.36.0 (ae2a39403)
kompose.version: 1.37.0 (fb0539e64)
labels:
io.kompose.service: nextcloud-aio-clamav
spec:
@@ -36,7 +36,7 @@ spec:
{{- end }}
initContainers:
- name: init-subpath
image: ghcr.io/nextcloud-releases/aio-alpine:20250811_115851
image: ghcr.io/nextcloud-releases/aio-alpine:20250918_093027
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:20250811_115851
image: ghcr.io/nextcloud-releases/aio-clamav:20250918_093027
readinessProbe:
exec:
command:

View File

@@ -3,7 +3,7 @@ apiVersion: v1
kind: Service
metadata:
annotations:
kompose.version: 1.36.0 (ae2a39403)
kompose.version: 1.37.0 (fb0539e64)
labels:
io.kompose.service: nextcloud-aio-clamav
name: nextcloud-aio-clamav

View File

@@ -3,7 +3,7 @@ apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
kompose.version: 1.36.0 (ae2a39403)
kompose.version: 1.37.0 (fb0539e64)
labels:
io.kompose.service: nextcloud-aio-collabora
name: nextcloud-aio-collabora
@@ -16,7 +16,7 @@ spec:
template:
metadata:
annotations:
kompose.version: 1.36.0 (ae2a39403)
kompose.version: 1.37.0 (fb0539e64)
labels:
io.kompose.service: nextcloud-aio-collabora
spec:
@@ -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:20250811_115851
image: ghcr.io/nextcloud-releases/aio-collabora:20250918_093027
readinessProbe:
exec:
command:
@@ -61,5 +61,7 @@ spec:
add:
- MKNOD
- CAP_SYS_ADMIN
- SYS_CHROOT
- FOWNER
- CHOWN
{{- end }}

View File

@@ -3,7 +3,7 @@ apiVersion: v1
kind: Service
metadata:
annotations:
kompose.version: 1.36.0 (ae2a39403)
kompose.version: 1.37.0 (fb0539e64)
labels:
io.kompose.service: nextcloud-aio-collabora
name: nextcloud-aio-collabora

View File

@@ -2,7 +2,7 @@ apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
kompose.version: 1.36.0 (ae2a39403)
kompose.version: 1.37.0 (fb0539e64)
labels:
io.kompose.service: nextcloud-aio-database
name: nextcloud-aio-database
@@ -17,7 +17,7 @@ spec:
template:
metadata:
annotations:
kompose.version: 1.36.0 (ae2a39403)
kompose.version: 1.37.0 (fb0539e64)
labels:
io.kompose.service: nextcloud-aio-database
spec:
@@ -35,7 +35,7 @@ spec:
{{- end }}
initContainers:
- name: init-subpath
image: ghcr.io/nextcloud-releases/aio-alpine:20250811_115851
image: ghcr.io/nextcloud-releases/aio-alpine:20250918_093027
command:
- mkdir
- "-p"
@@ -64,7 +64,7 @@ spec:
value: nextcloud
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: ghcr.io/nextcloud-releases/aio-postgresql:20250811_115851
image: ghcr.io/nextcloud-releases/aio-postgresql:20250918_093027
readinessProbe:
exec:
command:

View File

@@ -2,7 +2,7 @@ apiVersion: v1
kind: Service
metadata:
annotations:
kompose.version: 1.36.0 (ae2a39403)
kompose.version: 1.37.0 (fb0539e64)
labels:
io.kompose.service: nextcloud-aio-database
name: nextcloud-aio-database

View File

@@ -3,7 +3,7 @@ apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
kompose.version: 1.36.0 (ae2a39403)
kompose.version: 1.37.0 (fb0539e64)
labels:
io.kompose.service: nextcloud-aio-fulltextsearch
name: nextcloud-aio-fulltextsearch
@@ -18,13 +18,13 @@ spec:
template:
metadata:
annotations:
kompose.version: 1.36.0 (ae2a39403)
kompose.version: 1.37.0 (fb0539e64)
labels:
io.kompose.service: nextcloud-aio-fulltextsearch
spec:
initContainers:
- name: init-volumes
image: ghcr.io/nextcloud-releases/aio-alpine:20250811_115851
image: ghcr.io/nextcloud-releases/aio-alpine:20250918_093027
command:
- chmod
- "777"
@@ -54,7 +54,7 @@ spec:
value: basic
- name: xpack.security.enabled
value: "false"
image: ghcr.io/nextcloud-releases/aio-fulltextsearch:20250811_115851
image: ghcr.io/nextcloud-releases/aio-fulltextsearch:20250918_093027
readinessProbe:
exec:
command:

View File

@@ -3,7 +3,7 @@ apiVersion: v1
kind: Service
metadata:
annotations:
kompose.version: 1.36.0 (ae2a39403)
kompose.version: 1.37.0 (fb0539e64)
labels:
io.kompose.service: nextcloud-aio-fulltextsearch
name: nextcloud-aio-fulltextsearch

View File

@@ -3,7 +3,7 @@ apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
kompose.version: 1.36.0 (ae2a39403)
kompose.version: 1.37.0 (fb0539e64)
labels:
io.kompose.service: nextcloud-aio-imaginary
name: nextcloud-aio-imaginary
@@ -16,7 +16,7 @@ spec:
template:
metadata:
annotations:
kompose.version: 1.36.0 (ae2a39403)
kompose.version: 1.37.0 (fb0539e64)
labels:
io.kompose.service: nextcloud-aio-imaginary
spec:
@@ -38,7 +38,7 @@ spec:
value: "{{ .Values.IMAGINARY_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: ghcr.io/nextcloud-releases/aio-imaginary:20250811_115851
image: ghcr.io/nextcloud-releases/aio-imaginary:20250918_093027
readinessProbe:
exec:
command:

View File

@@ -3,7 +3,7 @@ apiVersion: v1
kind: Service
metadata:
annotations:
kompose.version: 1.36.0 (ae2a39403)
kompose.version: 1.37.0 (fb0539e64)
labels:
io.kompose.service: nextcloud-aio-imaginary
name: nextcloud-aio-imaginary

View File

@@ -2,7 +2,7 @@ apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
kompose.version: 1.36.0 (ae2a39403)
kompose.version: 1.37.0 (fb0539e64)
labels:
io.kompose.service: nextcloud-aio-nextcloud
name: nextcloud-aio-nextcloud
@@ -17,7 +17,7 @@ spec:
template:
metadata:
annotations:
kompose.version: 1.36.0 (ae2a39403)
kompose.version: 1.37.0 (fb0539e64)
labels:
io.kompose.service: nextcloud-aio-nextcloud
spec:
@@ -38,7 +38,7 @@ spec:
# AIO settings start # Do not remove or change this line!
initContainers:
- name: init-volumes
image: ghcr.io/nextcloud-releases/aio-alpine:20250811_115851
image: ghcr.io/nextcloud-releases/aio-alpine:20250918_093027
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:20250811_115851
image: ghcr.io/nextcloud-releases/aio-nextcloud:20250918_093027
{{- 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

@@ -2,7 +2,7 @@ apiVersion: v1
kind: Service
metadata:
annotations:
kompose.version: 1.36.0 (ae2a39403)
kompose.version: 1.37.0 (fb0539e64)
labels:
io.kompose.service: nextcloud-aio-nextcloud
name: nextcloud-aio-nextcloud

View File

@@ -2,7 +2,7 @@ apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
kompose.version: 1.36.0 (ae2a39403)
kompose.version: 1.37.0 (fb0539e64)
labels:
io.kompose.service: nextcloud-aio-notify-push
name: nextcloud-aio-notify-push
@@ -17,7 +17,7 @@ spec:
template:
metadata:
annotations:
kompose.version: 1.36.0 (ae2a39403)
kompose.version: 1.37.0 (fb0539e64)
labels:
io.kompose.service: nextcloud-aio-notify-push
spec:
@@ -55,7 +55,7 @@ spec:
value: "{{ .Values.REDIS_PASSWORD }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: ghcr.io/nextcloud-releases/aio-notify-push:20250811_115851
image: ghcr.io/nextcloud-releases/aio-notify-push:20250918_093027
readinessProbe:
exec:
command:

View File

@@ -2,7 +2,7 @@ apiVersion: v1
kind: Service
metadata:
annotations:
kompose.version: 1.36.0 (ae2a39403)
kompose.version: 1.37.0 (fb0539e64)
labels:
io.kompose.service: nextcloud-aio-notify-push
name: nextcloud-aio-notify-push

View File

@@ -3,7 +3,7 @@ apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
kompose.version: 1.36.0 (ae2a39403)
kompose.version: 1.37.0 (fb0539e64)
labels:
io.kompose.service: nextcloud-aio-onlyoffice
name: nextcloud-aio-onlyoffice
@@ -18,13 +18,13 @@ spec:
template:
metadata:
annotations:
kompose.version: 1.36.0 (ae2a39403)
kompose.version: 1.37.0 (fb0539e64)
labels:
io.kompose.service: nextcloud-aio-onlyoffice
spec:
initContainers:
- name: init-volumes
image: ghcr.io/nextcloud-releases/aio-alpine:20250811_115851
image: ghcr.io/nextcloud-releases/aio-alpine:20250918_093027
command:
- chmod
- "777"
@@ -42,7 +42,7 @@ spec:
value: "{{ .Values.ONLYOFFICE_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: ghcr.io/nextcloud-releases/aio-onlyoffice:20250811_115851
image: ghcr.io/nextcloud-releases/aio-onlyoffice:20250918_093027
readinessProbe:
exec:
command:

View File

@@ -3,7 +3,7 @@ apiVersion: v1
kind: Service
metadata:
annotations:
kompose.version: 1.36.0 (ae2a39403)
kompose.version: 1.37.0 (fb0539e64)
labels:
io.kompose.service: nextcloud-aio-onlyoffice
name: nextcloud-aio-onlyoffice

View File

@@ -2,7 +2,7 @@ apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
kompose.version: 1.36.0 (ae2a39403)
kompose.version: 1.37.0 (fb0539e64)
labels:
io.kompose.service: nextcloud-aio-redis
name: nextcloud-aio-redis
@@ -17,7 +17,7 @@ spec:
template:
metadata:
annotations:
kompose.version: 1.36.0 (ae2a39403)
kompose.version: 1.37.0 (fb0539e64)
labels:
io.kompose.service: nextcloud-aio-redis
spec:
@@ -39,7 +39,7 @@ spec:
value: "{{ .Values.REDIS_PASSWORD }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: ghcr.io/nextcloud-releases/aio-redis:20250811_115851
image: ghcr.io/nextcloud-releases/aio-redis:20250918_093027
readinessProbe:
exec:
command:

View File

@@ -2,7 +2,7 @@ apiVersion: v1
kind: Service
metadata:
annotations:
kompose.version: 1.36.0 (ae2a39403)
kompose.version: 1.37.0 (fb0539e64)
labels:
io.kompose.service: nextcloud-aio-redis
name: nextcloud-aio-redis

View File

@@ -3,7 +3,7 @@ apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
kompose.version: 1.36.0 (ae2a39403)
kompose.version: 1.37.0 (fb0539e64)
labels:
io.kompose.service: nextcloud-aio-talk
name: nextcloud-aio-talk
@@ -16,7 +16,7 @@ spec:
template:
metadata:
annotations:
kompose.version: 1.36.0 (ae2a39403)
kompose.version: 1.37.0 (fb0539e64)
labels:
io.kompose.service: nextcloud-aio-talk
spec:
@@ -52,7 +52,7 @@ spec:
value: "{{ .Values.TURN_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: ghcr.io/nextcloud-releases/aio-talk:20250811_115851
image: ghcr.io/nextcloud-releases/aio-talk:20250918_093027
readinessProbe:
exec:
command:

View File

@@ -3,7 +3,7 @@ apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
kompose.version: 1.36.0 (ae2a39403)
kompose.version: 1.37.0 (fb0539e64)
labels:
io.kompose.service: nextcloud-aio-talk-recording
name: nextcloud-aio-talk-recording
@@ -18,7 +18,7 @@ spec:
template:
metadata:
annotations:
kompose.version: 1.36.0 (ae2a39403)
kompose.version: 1.37.0 (fb0539e64)
labels:
io.kompose.service: nextcloud-aio-talk-recording
spec:
@@ -44,7 +44,7 @@ spec:
value: "{{ .Values.RECORDING_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: ghcr.io/nextcloud-releases/aio-talk-recording:20250811_115851
image: ghcr.io/nextcloud-releases/aio-talk-recording:20250918_093027
readinessProbe:
exec:
command:

View File

@@ -3,7 +3,7 @@ apiVersion: v1
kind: Service
metadata:
annotations:
kompose.version: 1.36.0 (ae2a39403)
kompose.version: 1.37.0 (fb0539e64)
labels:
io.kompose.service: nextcloud-aio-talk-recording
name: nextcloud-aio-talk-recording

View File

@@ -4,7 +4,7 @@ apiVersion: v1
kind: Service
metadata:
annotations:
kompose.version: 1.36.0 (ae2a39403)
kompose.version: 1.37.0 (fb0539e64)
labels:
io.kompose.service: nextcloud-aio-talk
name: nextcloud-aio-talk-public
@@ -28,7 +28,7 @@ apiVersion: v1
kind: Service
metadata:
annotations:
kompose.version: 1.36.0 (ae2a39403)
kompose.version: 1.37.0 (fb0539e64)
labels:
io.kompose.service: nextcloud-aio-talk
name: nextcloud-aio-talk

View File

@@ -3,7 +3,7 @@ apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
kompose.version: 1.36.0 (ae2a39403)
kompose.version: 1.37.0 (fb0539e64)
labels:
io.kompose.service: nextcloud-aio-whiteboard
name: nextcloud-aio-whiteboard
@@ -16,7 +16,7 @@ spec:
template:
metadata:
annotations:
kompose.version: 1.36.0 (ae2a39403)
kompose.version: 1.37.0 (fb0539e64)
labels:
io.kompose.service: nextcloud-aio-whiteboard
spec:
@@ -48,7 +48,7 @@ spec:
value: redis
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: ghcr.io/nextcloud-releases/aio-whiteboard:20250811_115851
image: ghcr.io/nextcloud-releases/aio-whiteboard:20250918_093027
readinessProbe:
exec:
command:

View File

@@ -3,7 +3,7 @@ apiVersion: v1
kind: Service
metadata:
annotations:
kompose.version: 1.36.0 (ae2a39403)
kompose.version: 1.37.0 (fb0539e64)
labels:
io.kompose.service: nextcloud-aio-whiteboard
name: nextcloud-aio-whiteboard

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

280
php/composer.lock generated
View File

@@ -8,22 +8,22 @@
"packages": [
{
"name": "guzzlehttp/guzzle",
"version": "7.9.3",
"version": "7.10.0",
"source": {
"type": "git",
"url": "https://github.com/guzzle/guzzle.git",
"reference": "7b2f29fe81dc4da0ca0ea7d42107a0845946ea77"
"reference": "b51ac707cfa420b7bfd4e4d5e510ba8008e822b4"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/7b2f29fe81dc4da0ca0ea7d42107a0845946ea77",
"reference": "7b2f29fe81dc4da0ca0ea7d42107a0845946ea77",
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/b51ac707cfa420b7bfd4e4d5e510ba8008e822b4",
"reference": "b51ac707cfa420b7bfd4e4d5e510ba8008e822b4",
"shasum": ""
},
"require": {
"ext-json": "*",
"guzzlehttp/promises": "^1.5.3 || ^2.0.3",
"guzzlehttp/psr7": "^2.7.0",
"guzzlehttp/promises": "^2.3",
"guzzlehttp/psr7": "^2.8",
"php": "^7.2.5 || ^8.0",
"psr/http-client": "^1.0",
"symfony/deprecation-contracts": "^2.2 || ^3.0"
@@ -114,7 +114,7 @@
],
"support": {
"issues": "https://github.com/guzzle/guzzle/issues",
"source": "https://github.com/guzzle/guzzle/tree/7.9.3"
"source": "https://github.com/guzzle/guzzle/tree/7.10.0"
},
"funding": [
{
@@ -130,20 +130,20 @@
"type": "tidelift"
}
],
"time": "2025-03-27T13:37:11+00:00"
"time": "2025-08-23T22:36:01+00:00"
},
{
"name": "guzzlehttp/promises",
"version": "2.2.0",
"version": "2.3.0",
"source": {
"type": "git",
"url": "https://github.com/guzzle/promises.git",
"reference": "7c69f28996b0a6920945dd20b3857e499d9ca96c"
"reference": "481557b130ef3790cf82b713667b43030dc9c957"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/guzzle/promises/zipball/7c69f28996b0a6920945dd20b3857e499d9ca96c",
"reference": "7c69f28996b0a6920945dd20b3857e499d9ca96c",
"url": "https://api.github.com/repos/guzzle/promises/zipball/481557b130ef3790cf82b713667b43030dc9c957",
"reference": "481557b130ef3790cf82b713667b43030dc9c957",
"shasum": ""
},
"require": {
@@ -151,7 +151,7 @@
},
"require-dev": {
"bamarni/composer-bin-plugin": "^1.8.2",
"phpunit/phpunit": "^8.5.39 || ^9.6.20"
"phpunit/phpunit": "^8.5.44 || ^9.6.25"
},
"type": "library",
"extra": {
@@ -197,7 +197,7 @@
],
"support": {
"issues": "https://github.com/guzzle/promises/issues",
"source": "https://github.com/guzzle/promises/tree/2.2.0"
"source": "https://github.com/guzzle/promises/tree/2.3.0"
},
"funding": [
{
@@ -213,20 +213,20 @@
"type": "tidelift"
}
],
"time": "2025-03-27T13:27:01+00:00"
"time": "2025-08-22T14:34:08+00:00"
},
{
"name": "guzzlehttp/psr7",
"version": "2.7.1",
"version": "2.8.0",
"source": {
"type": "git",
"url": "https://github.com/guzzle/psr7.git",
"reference": "c2270caaabe631b3b44c85f99e5a04bbb8060d16"
"reference": "21dc724a0583619cd1652f673303492272778051"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/guzzle/psr7/zipball/c2270caaabe631b3b44c85f99e5a04bbb8060d16",
"reference": "c2270caaabe631b3b44c85f99e5a04bbb8060d16",
"url": "https://api.github.com/repos/guzzle/psr7/zipball/21dc724a0583619cd1652f673303492272778051",
"reference": "21dc724a0583619cd1652f673303492272778051",
"shasum": ""
},
"require": {
@@ -242,7 +242,7 @@
"require-dev": {
"bamarni/composer-bin-plugin": "^1.8.2",
"http-interop/http-factory-tests": "0.9.0",
"phpunit/phpunit": "^8.5.39 || ^9.6.20"
"phpunit/phpunit": "^8.5.44 || ^9.6.25"
},
"suggest": {
"laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
@@ -313,7 +313,7 @@
],
"support": {
"issues": "https://github.com/guzzle/psr7/issues",
"source": "https://github.com/guzzle/psr7/tree/2.7.1"
"source": "https://github.com/guzzle/psr7/tree/2.8.0"
},
"funding": [
{
@@ -329,7 +329,7 @@
"type": "tidelift"
}
],
"time": "2025-03-27T12:30:47+00:00"
"time": "2025-08-23T21:21:41+00:00"
},
{
"name": "http-interop/http-factory-guzzle",
@@ -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,20 +553,20 @@
"type": "github"
}
],
"time": "2025-01-17T12:49:27+00:00"
"time": "2025-08-30T10:22:22+00:00"
},
{
"name": "php-di/php-di",
"version": "7.0.11",
"version": "7.1.1",
"source": {
"type": "git",
"url": "https://github.com/PHP-DI/PHP-DI.git",
"reference": "32f111a6d214564520a57831d397263e8946c1d2"
"reference": "f88054cc052e40dbe7b383c8817c19442d480352"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/PHP-DI/PHP-DI/zipball/32f111a6d214564520a57831d397263e8946c1d2",
"reference": "32f111a6d214564520a57831d397263e8946c1d2",
"url": "https://api.github.com/repos/PHP-DI/PHP-DI/zipball/f88054cc052e40dbe7b383c8817c19442d480352",
"reference": "f88054cc052e40dbe7b383c8817c19442d480352",
"shasum": ""
},
"require": {
@@ -614,7 +614,7 @@
],
"support": {
"issues": "https://github.com/PHP-DI/PHP-DI/issues",
"source": "https://github.com/PHP-DI/PHP-DI/tree/7.0.11"
"source": "https://github.com/PHP-DI/PHP-DI/tree/7.1.1"
},
"funding": [
{
@@ -626,7 +626,7 @@
"type": "tidelift"
}
],
"time": "2025-06-03T07:45:57+00:00"
"time": "2025-08-16T11:10:48+00:00"
},
{
"name": "php-di/slim-bridge",
@@ -1150,22 +1150,22 @@
},
{
"name": "slim/slim",
"version": "4.14.0",
"version": "4.15.0",
"source": {
"type": "git",
"url": "https://github.com/slimphp/Slim.git",
"reference": "5943393b88716eb9e82c4161caa956af63423913"
"reference": "17eba5182975878a0ab9b27982cd2e2cfcb67ea2"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/slimphp/Slim/zipball/5943393b88716eb9e82c4161caa956af63423913",
"reference": "5943393b88716eb9e82c4161caa956af63423913",
"url": "https://api.github.com/repos/slimphp/Slim/zipball/17eba5182975878a0ab9b27982cd2e2cfcb67ea2",
"reference": "17eba5182975878a0ab9b27982cd2e2cfcb67ea2",
"shasum": ""
},
"require": {
"ext-json": "*",
"nikic/fast-route": "^1.3",
"php": "^7.4 || ^8.0",
"php": "~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0",
"psr/container": "^1.0 || ^2.0",
"psr/http-factory": "^1.1",
"psr/http-message": "^1.1 || ^2.0",
@@ -1174,7 +1174,7 @@
"psr/log": "^1.1 || ^2.0 || ^3.0"
},
"require-dev": {
"adriansuter/php-autoload-override": "^1.4",
"adriansuter/php-autoload-override": "^1.4 || ^2",
"ext-simplexml": "*",
"guzzlehttp/psr7": "^2.6",
"httpsoft/http-message": "^1.1",
@@ -1184,12 +1184,12 @@
"nyholm/psr7-server": "^1.1",
"phpspec/prophecy": "^1.19",
"phpspec/prophecy-phpunit": "^2.1",
"phpstan/phpstan": "^1.11",
"phpstan/phpstan": "^1 || ^2",
"phpunit/phpunit": "^9.6",
"slim/http": "^1.3",
"slim/psr7": "^1.6",
"squizlabs/php_codesniffer": "^3.10",
"vimeo/psalm": "^5.24"
"vimeo/psalm": "^5 || ^6"
},
"suggest": {
"ext-simplexml": "Needed to support XML format in BodyParsingMiddleware",
@@ -1216,17 +1216,17 @@
{
"name": "Andrew Smith",
"email": "a.smith@silentworks.co.uk",
"homepage": "http://silentworks.co.uk"
"homepage": "https://silentworks.co.uk"
},
{
"name": "Rob Allen",
"email": "rob@akrabat.com",
"homepage": "http://akrabat.com"
"homepage": "https://akrabat.com"
},
{
"name": "Pierre Berube",
"email": "pierre@lgse.com",
"homepage": "http://www.lgse.com"
"homepage": "https://www.lgse.com"
},
{
"name": "Gabriel Manricks",
@@ -1262,7 +1262,7 @@
"type": "tidelift"
}
],
"time": "2024-06-13T08:54:48+00:00"
"time": "2025-08-20T18:16:16+00:00"
},
{
"name": "slim/twig-view",
@@ -1398,7 +1398,7 @@
},
{
"name": "symfony/polyfill-ctype",
"version": "v1.32.0",
"version": "v1.33.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-ctype.git",
@@ -1457,7 +1457,7 @@
"portable"
],
"support": {
"source": "https://github.com/symfony/polyfill-ctype/tree/v1.32.0"
"source": "https://github.com/symfony/polyfill-ctype/tree/v1.33.0"
},
"funding": [
{
@@ -1468,6 +1468,10 @@
"url": "https://github.com/fabpot",
"type": "github"
},
{
"url": "https://github.com/nicolas-grekas",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
@@ -1477,7 +1481,7 @@
},
{
"name": "symfony/polyfill-mbstring",
"version": "v1.32.0",
"version": "v1.33.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git",
@@ -1538,7 +1542,7 @@
"shim"
],
"support": {
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.32.0"
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.33.0"
},
"funding": [
{
@@ -1549,6 +1553,10 @@
"url": "https://github.com/fabpot",
"type": "github"
},
{
"url": "https://github.com/nicolas-grekas",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
@@ -1558,7 +1566,7 @@
},
{
"name": "symfony/polyfill-php81",
"version": "v1.32.0",
"version": "v1.33.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php81.git",
@@ -1614,7 +1622,7 @@
"shim"
],
"support": {
"source": "https://github.com/symfony/polyfill-php81/tree/v1.32.0"
"source": "https://github.com/symfony/polyfill-php81/tree/v1.33.0"
},
"funding": [
{
@@ -1625,6 +1633,10 @@
"url": "https://github.com/fabpot",
"type": "github"
},
{
"url": "https://github.com/nicolas-grekas",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
@@ -1715,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": {
@@ -1784,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": [
{
@@ -1792,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",
@@ -2025,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": {
@@ -2097,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": [
{
@@ -2105,7 +2117,7 @@
"type": "github"
}
],
"time": "2024-12-21T01:56:09+00:00"
"time": "2025-08-27T21:55:40+00:00"
},
{
"name": "amphp/parser",
@@ -2602,16 +2614,16 @@
},
{
"name": "composer/semver",
"version": "3.4.3",
"version": "3.4.4",
"source": {
"type": "git",
"url": "https://github.com/composer/semver.git",
"reference": "4313d26ada5e0c4edfbd1dc481a92ff7bff91f12"
"reference": "198166618906cb2de69b95d7d47e5fa8aa1b2b95"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/composer/semver/zipball/4313d26ada5e0c4edfbd1dc481a92ff7bff91f12",
"reference": "4313d26ada5e0c4edfbd1dc481a92ff7bff91f12",
"url": "https://api.github.com/repos/composer/semver/zipball/198166618906cb2de69b95d7d47e5fa8aa1b2b95",
"reference": "198166618906cb2de69b95d7d47e5fa8aa1b2b95",
"shasum": ""
},
"require": {
@@ -2663,7 +2675,7 @@
"support": {
"irc": "ircs://irc.libera.chat:6697/composer",
"issues": "https://github.com/composer/semver/issues",
"source": "https://github.com/composer/semver/tree/3.4.3"
"source": "https://github.com/composer/semver/tree/3.4.4"
},
"funding": [
{
@@ -2673,13 +2685,9 @@
{
"url": "https://github.com/composer",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/composer/composer",
"type": "tidelift"
}
],
"time": "2024-09-19T14:15:21+00:00"
"time": "2025-08-20T19:15:30+00:00"
},
{
"name": "composer/xdebug-handler",
@@ -2986,16 +2994,16 @@
},
{
"name": "fidry/cpu-core-counter",
"version": "1.2.0",
"version": "1.3.0",
"source": {
"type": "git",
"url": "https://github.com/theofidry/cpu-core-counter.git",
"reference": "8520451a140d3f46ac33042715115e290cf5785f"
"reference": "db9508f7b1474469d9d3c53b86f817e344732678"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/8520451a140d3f46ac33042715115e290cf5785f",
"reference": "8520451a140d3f46ac33042715115e290cf5785f",
"url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/db9508f7b1474469d9d3c53b86f817e344732678",
"reference": "db9508f7b1474469d9d3c53b86f817e344732678",
"shasum": ""
},
"require": {
@@ -3005,10 +3013,10 @@
"fidry/makefile": "^0.2.0",
"fidry/php-cs-fixer-config": "^1.1.2",
"phpstan/extension-installer": "^1.2.0",
"phpstan/phpstan": "^1.9.2",
"phpstan/phpstan-deprecation-rules": "^1.0.0",
"phpstan/phpstan-phpunit": "^1.2.2",
"phpstan/phpstan-strict-rules": "^1.4.4",
"phpstan/phpstan": "^2.0",
"phpstan/phpstan-deprecation-rules": "^2.0.0",
"phpstan/phpstan-phpunit": "^2.0",
"phpstan/phpstan-strict-rules": "^2.0",
"phpunit/phpunit": "^8.5.31 || ^9.5.26",
"webmozarts/strict-phpunit": "^7.5"
},
@@ -3035,7 +3043,7 @@
],
"support": {
"issues": "https://github.com/theofidry/cpu-core-counter/issues",
"source": "https://github.com/theofidry/cpu-core-counter/tree/1.2.0"
"source": "https://github.com/theofidry/cpu-core-counter/tree/1.3.0"
},
"funding": [
{
@@ -3043,7 +3051,7 @@
"type": "github"
}
],
"time": "2024-08-06T10:04:20+00:00"
"time": "2025-08-14T07:29:31+00:00"
},
{
"name": "kelunik/certificate",
@@ -3330,16 +3338,16 @@
},
{
"name": "nikic/php-parser",
"version": "v5.6.0",
"version": "v5.6.1",
"source": {
"type": "git",
"url": "https://github.com/nikic/PHP-Parser.git",
"reference": "221b0d0fdf1369c71047ad1d18bb5880017bbc56"
"reference": "f103601b29efebd7ff4a1ca7b3eeea9e3336a2a2"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/221b0d0fdf1369c71047ad1d18bb5880017bbc56",
"reference": "221b0d0fdf1369c71047ad1d18bb5880017bbc56",
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/f103601b29efebd7ff4a1ca7b3eeea9e3336a2a2",
"reference": "f103601b29efebd7ff4a1ca7b3eeea9e3336a2a2",
"shasum": ""
},
"require": {
@@ -3358,7 +3366,7 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "5.0-dev"
"dev-master": "5.x-dev"
}
},
"autoload": {
@@ -3382,9 +3390,9 @@
],
"support": {
"issues": "https://github.com/nikic/PHP-Parser/issues",
"source": "https://github.com/nikic/PHP-Parser/tree/v5.6.0"
"source": "https://github.com/nikic/PHP-Parser/tree/v5.6.1"
},
"time": "2025-07-27T20:03:57+00:00"
"time": "2025-08-13T20:13:15+00:00"
},
{
"name": "phpdocumentor/reflection-common",
@@ -3441,16 +3449,16 @@
},
{
"name": "phpdocumentor/reflection-docblock",
"version": "5.6.2",
"version": "5.6.3",
"source": {
"type": "git",
"url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
"reference": "92dde6a5919e34835c506ac8c523ef095a95ed62"
"reference": "94f8051919d1b0369a6bcc7931d679a511c03fe9"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/92dde6a5919e34835c506ac8c523ef095a95ed62",
"reference": "92dde6a5919e34835c506ac8c523ef095a95ed62",
"url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/94f8051919d1b0369a6bcc7931d679a511c03fe9",
"reference": "94f8051919d1b0369a6bcc7931d679a511c03fe9",
"shasum": ""
},
"require": {
@@ -3499,9 +3507,9 @@
"description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
"support": {
"issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues",
"source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.6.2"
"source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.6.3"
},
"time": "2025-04-13T19:20:35+00:00"
"time": "2025-08-01T19:43:32+00:00"
},
{
"name": "phpdocumentor/type-resolver",
@@ -3563,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": {
@@ -3604,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",
@@ -3875,16 +3883,16 @@
},
{
"name": "symfony/console",
"version": "v6.4.24",
"version": "v6.4.25",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
"reference": "59266a5bf6a596e3e0844fd95e6ad7ea3c1d3350"
"reference": "273fd29ff30ba0a88ca5fb83f7cf1ab69306adae"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/console/zipball/59266a5bf6a596e3e0844fd95e6ad7ea3c1d3350",
"reference": "59266a5bf6a596e3e0844fd95e6ad7ea3c1d3350",
"url": "https://api.github.com/repos/symfony/console/zipball/273fd29ff30ba0a88ca5fb83f7cf1ab69306adae",
"reference": "273fd29ff30ba0a88ca5fb83f7cf1ab69306adae",
"shasum": ""
},
"require": {
@@ -3949,7 +3957,7 @@
"terminal"
],
"support": {
"source": "https://github.com/symfony/console/tree/v6.4.24"
"source": "https://github.com/symfony/console/tree/v6.4.25"
},
"funding": [
{
@@ -3969,7 +3977,7 @@
"type": "tidelift"
}
],
"time": "2025-07-30T10:38:54+00:00"
"time": "2025-08-22T10:21:53+00:00"
},
{
"name": "symfony/filesystem",
@@ -4111,16 +4119,16 @@
},
{
"name": "symfony/polyfill-intl-grapheme",
"version": "v1.32.0",
"version": "v1.33.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-grapheme.git",
"reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe"
"reference": "380872130d3a5dd3ace2f4010d95125fde5d5c70"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe",
"reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe",
"url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/380872130d3a5dd3ace2f4010d95125fde5d5c70",
"reference": "380872130d3a5dd3ace2f4010d95125fde5d5c70",
"shasum": ""
},
"require": {
@@ -4169,7 +4177,7 @@
"shim"
],
"support": {
"source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.32.0"
"source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.33.0"
},
"funding": [
{
@@ -4180,16 +4188,20 @@
"url": "https://github.com/fabpot",
"type": "github"
},
{
"url": "https://github.com/nicolas-grekas",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
"time": "2024-09-09T11:45:10+00:00"
"time": "2025-06-27T09:58:17+00:00"
},
{
"name": "symfony/polyfill-intl-normalizer",
"version": "v1.32.0",
"version": "v1.33.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
@@ -4250,7 +4262,7 @@
"shim"
],
"support": {
"source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.32.0"
"source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.33.0"
},
"funding": [
{
@@ -4261,6 +4273,10 @@
"url": "https://github.com/fabpot",
"type": "github"
},
{
"url": "https://github.com/nicolas-grekas",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
@@ -4270,16 +4286,16 @@
},
{
"name": "symfony/polyfill-php84",
"version": "v1.32.0",
"version": "v1.33.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php84.git",
"reference": "000df7860439609837bbe28670b0be15783b7fbf"
"reference": "d8ced4d875142b6a7426000426b8abc631d6b191"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-php84/zipball/000df7860439609837bbe28670b0be15783b7fbf",
"reference": "000df7860439609837bbe28670b0be15783b7fbf",
"url": "https://api.github.com/repos/symfony/polyfill-php84/zipball/d8ced4d875142b6a7426000426b8abc631d6b191",
"reference": "d8ced4d875142b6a7426000426b8abc631d6b191",
"shasum": ""
},
"require": {
@@ -4326,7 +4342,7 @@
"shim"
],
"support": {
"source": "https://github.com/symfony/polyfill-php84/tree/v1.32.0"
"source": "https://github.com/symfony/polyfill-php84/tree/v1.33.0"
},
"funding": [
{
@@ -4337,12 +4353,16 @@
"url": "https://github.com/fabpot",
"type": "github"
},
{
"url": "https://github.com/nicolas-grekas",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
"time": "2025-02-20T12:04:08+00:00"
"time": "2025-06-24T13:30:11+00:00"
},
{
"name": "symfony/service-contracts",
@@ -4429,16 +4449,16 @@
},
{
"name": "symfony/string",
"version": "v7.3.2",
"version": "v7.3.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
"reference": "42f505aff654e62ac7ac2ce21033818297ca89ca"
"reference": "17a426cce5fd1f0901fefa9b2a490d0038fd3c9c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/string/zipball/42f505aff654e62ac7ac2ce21033818297ca89ca",
"reference": "42f505aff654e62ac7ac2ce21033818297ca89ca",
"url": "https://api.github.com/repos/symfony/string/zipball/17a426cce5fd1f0901fefa9b2a490d0038fd3c9c",
"reference": "17a426cce5fd1f0901fefa9b2a490d0038fd3c9c",
"shasum": ""
},
"require": {
@@ -4496,7 +4516,7 @@
"utf8"
],
"support": {
"source": "https://github.com/symfony/string/tree/v7.3.2"
"source": "https://github.com/symfony/string/tree/v7.3.3"
},
"funding": [
{
@@ -4516,7 +4536,7 @@
"type": "tidelift"
}
],
"time": "2025-07-10T08:47:49+00:00"
"time": "2025-08-25T06:35:40+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"
@@ -397,6 +397,8 @@
"cap_add": [
"MKNOD",
"SYS_ADMIN",
"SYS_CHROOT",
"FOWNER",
"CHOWN"
],
"cap_drop": [

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

@@ -86,6 +86,7 @@ $app->get('/containers', function (Request $request, Response $response, array $
// Check if bypass_mastercontainer_update is provided on the URL, a special developer mode to bypass a mastercontainer update and use local image.
$params = $request->getQueryParams();
$bypass_mastercontainer_update = isset($params['bypass_mastercontainer_update']);
$bypass_container_update = isset($params['bypass_container_update']);
return $view->render($response, 'containers.twig', [
'domain' => $configurationManager->GetDomain(),
@@ -136,6 +137,7 @@ $app->get('/containers', function (Request $request, Response $response, array $
'is_whiteboard_enabled' => $configurationManager->isWhiteboardEnabled(),
'community_containers' => $configurationManager->listAvailableCommunityContainers(),
'community_containers_enabled' => $configurationManager->GetEnabledCommunityContainers(),
'bypass_container_update' => $bypass_container_update,
]);
})->setName('profile');
$app->get('/login', function (Request $request, Response $response, array $args) use ($container) {

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 = "";
}
@@ -191,8 +191,14 @@ readonly class DockerController {
$config['install_latest_major'] = $installLatestMajor;
$this->configurationManager->WriteConfig($config);
// Do not pull container images in case 'bypass_container_update' is set via url params
// Needed for local testing
$pullImage = !isset($request->getParsedBody()['bypass_container_update']);
if ($pullImage === false) {
error_log('WARNING: Not pulling container images. Instead, using local ones.');
}
// Start container
$this->startTopContainer(true);
$this->startTopContainer($pullImage);
// Clear apcu cache in order to check if container updates are available
// Temporarily disabled as it leads much faster to docker rate limits

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 {
@@ -389,7 +393,7 @@ class ConfigurationManager
if ($port === '443') {
$notice .= " If you should be using Cloudflare, make sure to disable the Cloudflare Proxy feature as it might block the domain validation. Same for any other firewall or service that blocks unencrypted access on port 443.";
} else {
error_log('Please follow https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md#6-how-to-debug-things in order to debug things!');
error_log('Please follow https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md#how-to-debug in order to debug things!');
}
throw new InvalidSettingConfigurationException($notice);
}

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.6.0</h1>
<h1>Nextcloud AIO v11.9.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,12 +118,12 @@
<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>
{% if apache_port != '443' %}
<p>If you run into issues with your domain being accepted, see <a target="_blank" href="https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md#6-how-to-debug-things">these steps</a> for how to debug things.</p>
<p>If you run into issues with your domain being accepted, see <a target="_blank" href="https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md#how-to-debug">these steps</a> for how to debug things.</p>
{% endif %}
<p><strong>Hint:</strong> If the domain validation fails but you are completely sure that you've configured everything correctly, you may skip the domain validation by following <a target="_blank" href="https://github.com/nextcloud/all-in-one#how-to-skip-the-domain-validation">this documentation</a>.</p>
</details>
@@ -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>
@@ -352,6 +352,9 @@
<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 bypass_container_update == true %}
<input type="hidden" name="bypass_container_update" value="{{bypass_container_update}}">
{% endif %}
<input class="button " type="submit" value="Start and update containers" onclick="return confirm('Start and update containers? You should consider creating a backup first.')" />
</form>
{% endif %}

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)
@@ -171,6 +171,7 @@ If your firewall/router has port 80 and 8443 open/forwarded and you point a doma
- [How to skip the domain validation?](#how-to-skip-the-domain-validation)
- [How to resolve firewall problems with Fedora Linux, RHEL OS, CentOS, SUSE Linux and others?](#how-to-resolve-firewall-problems-with-fedora-linux-rhel-os-centos-suse-linux-and-others)
- [What can I do to fix the internal or reserved ip-address error?](#what-can-i-do-to-fix-the-internal-or-reserved-ip-address-error)
- [How to adjust the MTU size of the docker network](#how-to-adjust-the-mtu-size-of-the-docker-network)
- [Infrastructure](#infrastructure)
- [Which CPU architectures are supported?](#which-cpu-architectures-are-supported)
- [Disrecommended VPS providers](#disrecommended-vps-providers)
@@ -281,7 +282,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
@@ -299,7 +300,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.
@@ -308,22 +309,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.
@@ -353,6 +354,15 @@ See https://dev.to/ozorest/fedora-32-how-to-solve-docker-internal-network-issue-
### What can I do to fix the internal or reserved ip-address error?
If you get an error during the domain validation which states that your ip-address is an internal or reserved ip-address, you can fix this by first making sure that your domain indeed has the correct public ip-address that points to the server and then adding `--add-host yourdomain.com:<public-ip-address>` to the docker run command of the mastercontainer (but before the last line `ghcr.io/nextcloud-releases/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used) which will allow the domain validation to work correctly. And so that you know: even if the `A` record of your domain should change over time, this is no problem since the mastercontainer will not make any attempt to access the chosen domain after the initial domain validation.
### How to adjust the MTU size of the docker network
You can adjust the MTU size of the docker network by creating it beforehand with the custom MTU:
```
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.
If you want to use docker compose, you can check out the comments in the `compose.yaml` file for more details.
## Infrastructure
### Which CPU architectures are supported?
@@ -409,7 +419,7 @@ You can move the whole docker library and all its files including all Nextcloud
1. Stop all the containers from the AIO Interface.
2. Go to your terminal and delete the Collabora container (`docker rm nextcloud-aio-collabora`) AND the Collabora image (`docker image rm nextcloud/aio-collabora`).
3. You might also want to prune your Docker (`docker system prune`) (no data will be lost).
3. You might also want to prune your Docker (`docker system prune -a`) (no data will be lost).
4. Restart your containers from the AIO Interface.
This should solve the problem.

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:
@@ -42,7 +42,7 @@ ghcr.io/nextcloud-releases/all-in-one:latest
- `--env APACHE_PORT=11000` This is the port that is published on the host that runs Docker and Nextcloud AIO at which the reverse proxy should point at.
- `--env APACHE_IP_BINDING=0.0.0.0` This can be modified to allow access to the published port on the host only from certain ip-addresses. [See this documentation](#3-limit-the-access-to-the-apache-container)
- `--env APACHE_ADDITIONAL_NETWORK=""` This can be used to put the sibling apache container that is created by AIO into a specified network - useful if your reverse proxy runs as a container on the same host. [See this documentation](#adapting-the-sample-web-server-configurations-below)
- `--env SKIP_DOMAIN_VALIDATION=false` This can be set to `true` if the domain validation does not work and you are sure that you configured everything correctly after you followed [the debug documentation](#6-how-to-debug-things).
- `--env SKIP_DOMAIN_VALIDATION=false` This can be set to `true` if the domain validation does not work and you are sure that you configured everything correctly after you followed [the debug documentation](#7-how-to-debug-things).
- `--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config` This means that the files that are created by the mastercontainer will be stored in a docker volume that is called `nextcloud_aio_mastercontainer`. This line is not allowed to be changed, since built-in backups would fail later on.
- `--volume /var/run/docker.sock:/var/run/docker.sock:ro` The docker socket is mounted into the container which is used for spinning up all the other containers and for further features. It needs to be adjusted on Windows/macOS and on docker rootless. See the applicable documentation on this. If adjusting, don't forget to also set `WATCHTOWER_DOCKER_SOCKET_PATH`! If you dislike this, see https://github.com/nextcloud/all-in-one/tree/main/manual-install.
- `ghcr.io/nextcloud-releases/all-in-one:latest` This is the docker container image that is used.
@@ -51,7 +51,7 @@ ghcr.io/nextcloud-releases/all-in-one:latest
</details>
> [!Note]
> If you run into troubles, see [the debug section](#6-how-to-debug-things).
> If you run into troubles, see [the debug section](#7-how-to-debug-things).
---
@@ -68,8 +68,9 @@ The process to run Nextcloud behind a reverse proxy consists of at least steps 1
1. **Use this startup command! See [point 2](#2-use-this-startup-command)**
1. Optional: if the reverse proxy is installed on the same host and in the host network, you should limit the apache container to only listen on localhost. See [point 3](#3-limit-the-access-to-the-apache-container)
1. **Open the AIO interface. See [point 4](#4-open-the-aio-interface)**
1. Optional: get a valid certificate for the AIO interface! See [point 5](#5-optional-get-a-valid-certificate-for-the-aio-interface)
1. Optional: how to debug things? See [point 6](#6-how-to-debug-things)
1. Optional: if the reverse proxy is outside the host network, configure AIO to trust it. See [point 5](#5-optional-configure-aio-for-reverse-proxies-that-connect-to-nextcloud-using-an-ip-address-and-not-localhost-nor-127001)
1. Optional: get a valid certificate for the AIO interface! See [point 6](#6-optional-get-a-valid-certificate-for-the-aio-interface)
1. Optional: how to debug things? See [point 7](#7-how-to-debug-things)
## 1. Configure the reverse proxy
@@ -678,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: {}
@@ -765,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: {}
@@ -904,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>
@@ -990,7 +997,28 @@ After starting AIO, you should be able to access the AIO Interface via `https://
⚠️ **Important:** do always use an ip-address if you access this port and not a domain as HSTS might block access to it later! (It is also expected that this port uses a self-signed certificate due to security concerns which you need to accept in your browser)<br>
Enter your domain in the AIO interface that you've used in the reverse proxy config and you should be done. Please do not forget to open/forward port `3478/TCP` and `3478/UDP` in your firewall/router for the Talk container!
## 5. Optional: get a valid certificate for the AIO interface
## 5. Optional: Configure AIO for reverse proxies that connect to nextcloud using an ip-address and not localhost nor 127.0.0.1
If your reverse proxy connects to nextcloud using an ip-address and not localhost or 127.0.0.1<sup>*</sup> you must make the following configuration changes
<small>*: The IP address it uses to connect to AIO is not in a private IP range such as these: `127.0.0.1/8,192.168.0.0/16,172.16.0.0/12,10.0.0.0/8,fd00::/8,::1`</small>
### Nextcloud trusted proxies
Add the IP it uses connect to AIO to the Nextcloud trusted_proxies like this:
```
sudo docker exec --user www-data -it nextcloud-aio-nextcloud php occ config:system:set trusted_proxies 2 --value=ip.address.of.proxy
```
### Collabora WOPI allow list
If your reverse proxy connects to Nextcloud with an IP address that is different from the one for your domain<sup>*</sup> and you are using the Collabora server then you must also add the IP to the WOPI request allow list via `Administration Settings > Administration > Office > Allow list for WOPI requests`.
<small>*: For example, the reverse proxy has a public globally routable IP and connects to your AIO instance via Tailscale with an IP in the `100.64.0.0/10` range, or you are using a Cloudflare tunnel ([cloudflare notes](https://github.com/nextcloud/all-in-one?tab=readme-ov-file#notes-on-cloudflare-proxytunnel): You must add all [Cloudflare IP-Ranges](https://www.cloudflare.com/ips/) to the WOPI allowlist.)</small>
### External reverse proxies connecting via VPN (e.g. Tailscale)
If your reverse proxy is outside your LAN and connecting via VPN such as Tailscale, you may want to set `APACHE_IP_BINDING=AIO.VPN.host.IP` to ensure only traffic coming from the VPN can connect.
## 6. Optional: get a valid certificate for the AIO interface
If you want to also access your AIO interface publicly with a valid certificate, you can add e.g. the following config to your Caddyfile:
@@ -1007,7 +1035,9 @@ https://<your-nc-domain>:8443 {
Afterwards should the AIO interface be accessible via `https://ip.address.of.the.host:8443`. You can alternatively change the domain to a different subdomain by using `https://<your-alternative-domain>:443` instead of `https://<your-nc-domain>:8443` in the Caddyfile and use that to access the AIO interface.
## 6. How to debug things?
## 7. How to debug things?
<a id="how-to-debug"></a> <!-- for external linking -->
<a id="6-how-to-debug-things"></a> <!-- For backwards compatibility-->
If something does not work, follow the steps below:
1. Make sure to exactly follow the whole reverse proxy documentation step-for-step from top to bottom!
@@ -1024,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.