Compare commits

...

210 Commits

Author SHA1 Message Date
Jean-Yves
0f69143531 Merge branch 'main' into enh/noid/overwrite 2024-09-28 20:26:14 +02:00
Simon L.
0be33a9973 Merge pull request #5333 from nextcloud/aio-dependency-update
PHP dependency updates
2024-09-27 14:06:17 +02:00
szaimen
460791c516 php dependency updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-09-27 12:02:57 +00:00
Simon L.
a740c10edd adjust readme for local-ai
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-09-27 10:53:48 +02:00
Simon L.
8e5612977e Merge pull request #5330 from nextcloud/aio-dependency-update
PHP dependency updates
2024-09-26 14:16:35 +02:00
szaimen
26f76e95b1 php dependency updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-09-26 12:03:02 +00:00
Simon L.
7c0caaef82 Merge pull request #5324 from nextcloud/aio-dependency-update
PHP dependency updates
2024-09-25 14:37:01 +02:00
szaimen
6756330ec7 php dependency updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-09-25 12:02:53 +00:00
Simon L.
0544abbced Merge pull request #5306 from qudiqudi/patch-1
Update containers.json to fix inter-container-connectivity
2024-09-25 13:02:41 +02:00
Simon L.
6ddf0fb077 also add the other services that use direct communication
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-09-25 13:00:27 +02:00
Simon L.
4351034143 Merge pull request #5293 from nextcloud/enh/noid/remove-whitespace
aio-interface: setup.twig: remove whitespace after br, before span tag
2024-09-25 11:45:21 +02:00
Simon L.
d6887a3184 Merge pull request #5322 from nextcloud/aio-helm-update
Helm Chart updates
2024-09-25 10:26:56 +02:00
Simon L.
94c280566e Merge pull request #5303 from nextcloud/aio-dependency-update
PHP dependency updates
2024-09-25 10:16:04 +02:00
Simon L.
24a1fefc03 Merge pull request #5305 from nextcloud/dependabot/docker/Containers/docker-socket-proxy/haproxy-3.0.5-alpine
build(deps): bump haproxy from 3.0.4-alpine to 3.0.5-alpine in /Containers/docker-socket-proxy
2024-09-25 10:15:28 +02:00
Simon L.
c55eece802 Merge pull request #5310 from nextcloud/nextcloud-container-update
Nextcloud dependency update
2024-09-25 10:14:57 +02:00
Simon L.
2eb917f30b Merge pull request #5313 from nextcloud/dependabot/docker/Containers/mastercontainer/docker-27.3.1-cli
build(deps): bump docker from 27.2.1-cli to 27.3.1-cli in /Containers/mastercontainer
2024-09-25 10:14:44 +02:00
szaimen
c4d4aad415 Helm Chart updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-09-25 08:14:31 +00:00
Simon L.
f8dd3abd20 dependabot: adjust time to 04:00
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-09-25 10:12:26 +02:00
Simon L.
848195c8fa fix typo
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-09-25 10:07:33 +02:00
Simon L.
d56730254b Merge pull request #5280 from nextcloud/aio-yaml-update
Yaml updates
2024-09-25 10:06:17 +02:00
Simon L.
b4a12dad39 Merge pull request #5321 from nextcloud/enh/noid/condense-dependabot-list
dependabot: condense docker update list
2024-09-25 10:04:51 +02:00
Simon L.
8b19e456fe dependabot: condense docker update list
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-09-25 09:54:12 +02:00
Jos Poortvliet
ff19098f48 Merge pull request #5319 from nextcloud/enh/noid/use-hub-naming
aio-interface: use Nextcloud Hub naming scheme
2024-09-24 15:40:23 +02:00
Simon L.
af72da74f0 aio-interface: use Nextcloud Hub naming scheme
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-09-24 15:36:51 +02:00
dependabot[bot]
42ab59dfe2 build(deps): bump docker in /Containers/mastercontainer
Bumps docker from 27.2.1-cli to 27.3.1-cli.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-23 13:07:51 +00:00
szaimen
70d166fc03 nextcloud-update automated change
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-09-22 12:09:30 +00:00
szaimen
a319a67134 php dependency updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-09-22 12:02:44 +00:00
Basti Qdoba
c46b6b13a7 Update containers.json
correct FULLTEXTSEARCH_HOST resolution to get the fulltextsearch container connect to the right network and the nextcloud container, fixes https://github.com/nextcloud/fulltextsearch/issues/831

Signed-off-by: Basti Qdoba <sebastian.chudoba@googlemail.com>
2024-09-21 13:26:49 +02:00
dependabot[bot]
cded2dbb86 build(deps): bump haproxy in /Containers/docker-socket-proxy
Bumps haproxy from 3.0.4-alpine to 3.0.5-alpine.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-20 12:49:59 +00:00
szaimen
8e24b06d06 Yaml updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-09-20 12:09:05 +00:00
Simon L.
cd4c294799 Merge pull request #5297 from nextcloud/enh/noid/improve-network-mode-host
docs: remove hint that network_mode host does not work on Docker Desktop
2024-09-19 15:04:45 +02:00
Simon L.
88026afab3 Merge pull request #5298 from nextcloud/enh/noid/update-screenshots
readme: update screenshots
2024-09-19 15:01:26 +02:00
Simon L.
56f6934263 readme: update screenshots
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-09-19 14:59:01 +02:00
Simon L.
3a8db48322 docs: remove hint that network_mode host does not work on Docker Desktop
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-09-19 14:36:54 +02:00
Simon L.
24357e34b2 aio-interface: setup.twig: remove whitespace after br, before span tag
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-09-19 10:51:07 +02:00
Simon L.
4ce04eba4a Merge pull request #5284 from nextcloud/dependabot/docker/Containers/whiteboard/nextcloud-releases/whiteboard-v1.0.2
build(deps): bump nextcloud-releases/whiteboard from v1.0.1 to v1.0.2 in /Containers/whiteboard
2024-09-18 15:31:09 +02:00
dependabot[bot]
eacca1ad5e build(deps): bump nextcloud-releases/whiteboard
Bumps nextcloud-releases/whiteboard from v1.0.1 to v1.0.2.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-18 13:29:37 +00:00
Simon L.
973774a401 Merge pull request #5283 from nextcloud/aio-dependency-update
PHP dependency updates
2024-09-18 14:23:24 +02:00
szaimen
abcf8bfeb9 php dependency updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-09-18 12:06:06 +00:00
Simon L.
bf2f0fd65e Merge pull request #5279 from nextcloud/enh/noid/whiteboard-read-only
whiteboard: make the container read-only
2024-09-17 14:44:54 +02:00
Simon L.
89984e6c92 whiteboard: make the container read-only
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-09-17 12:11:44 +02:00
Simon L.
e09aacd29e Revert "whiteboard needs to have a trailing slash"
This reverts commit 2faf4f2452.
2024-09-17 11:44:17 +02:00
Simon L.
2faf4f2452 whiteboard needs to have a trailing slash
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-09-17 11:43:44 +02:00
Simon L.
6d6f50c966 always configure whiteboard
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-09-17 10:43:22 +02:00
Simon L.
2aa8aa7dda change to root user to install bash
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-09-17 10:40:03 +02:00
Simon L.
f529714a07 fix whiteboard container
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-09-17 10:35:54 +02:00
Simon L.
a2f7a221d7 increase to 9.6.0
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-09-17 10:18:35 +02:00
Simon L.
b3f63e5f74 Merge pull request #5274 from nextcloud/enh/5063/add-whiteboard
add whiteboard container
2024-09-17 10:17:28 +02:00
Simon L.
8d062f7461 use exec for npm run
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-09-17 10:10:54 +02:00
Simon L.
5d3afccb71 Merge pull request #5275 from nextcloud/automated/noid/psalm-baseline-update
[Automated] Update psalm-baseline.xml
2024-09-17 07:56:08 +02:00
nextcloud-command
f803cea6f1 Update psalm baseline
Signed-off-by: GitHub <noreply@github.com>
2024-09-17 04:09:35 +00:00
Simon L.
3218e429ec add whiteboard to readme
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-09-16 18:08:35 +02:00
Simon L.
2ed94446d7 add whiteboard also to manual-install readme
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-09-16 18:05:46 +02:00
Simon L.
546f11a654 add whiteboard container
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-09-16 17:59:15 +02:00
Simon L.
9a4f132998 Merge pull request #5216 from nextcloud/aio-dependency-update
PHP dependency updates
2024-09-16 16:09:30 +02:00
Simon L.
5d4cbeccd4 Merge pull request #5270 from nextcloud/dependabot/docker/Containers/clamav/clamav/clamav-1.4.1-5
build(deps): bump clamav/clamav from 1.4.0-1 to 1.4.1-5 in /Containers/clamav
2024-09-16 16:08:33 +02:00
Simon L.
72b892088a Merge pull request #5260 from nextcloud/dependabot/docker/Containers/collabora/collabora/code-24.04.7.2.1
build(deps): bump collabora/code from 24.04.7.1.2 to 24.04.7.2.1 in /Containers/collabora
2024-09-16 16:08:19 +02:00
Simon L.
78431692ee Merge pull request #5259 from nextcloud/nextcloud-container-update
Nextcloud dependency update
2024-09-16 16:07:59 +02:00
Simon L.
959f067598 Merge pull request #5250 from nextcloud/enh/noid/improve-borg-backup-check
borgbackup: also check for .ncdata
2024-09-16 16:06:21 +02:00
Simon L.
1911b573d4 Merge pull request #5246 from nextcloud/talk-container-update
talk container update
2024-09-16 16:06:03 +02:00
Simon L.
d84c7bf704 Merge pull request #5238 from nextcloud/dependabot/docker/Containers/mastercontainer/docker-27.2.1-cli
build(deps): bump docker from 27.2.0-cli to 27.2.1-cli in /Containers/mastercontainer
2024-09-16 16:05:51 +02:00
Simon L.
9e72a29726 Merge pull request #5237 from nextcloud/dependabot/docker/Containers/talk-recording/python-3.12.6-alpine3.20
build(deps): bump python from 3.12.5-alpine3.20 to 3.12.6-alpine3.20 in /Containers/talk-recording
2024-09-16 16:05:28 +02:00
Simon L.
5a910a33f0 Merge pull request #5236 from nextcloud/dependabot/docker/Containers/talk/alpine-3.20.3
build(deps): bump alpine from 3.20.2 to 3.20.3 in /Containers/talk
2024-09-16 16:05:00 +02:00
Simon L.
649ac3d226 Merge pull request #5231 from nextcloud/dependabot/docker/Containers/notify-push/alpine-3.20.3
build(deps): bump alpine from 3.20.2 to 3.20.3 in /Containers/notify-push
2024-09-16 16:04:37 +02:00
Simon L.
c29911f006 Merge pull request #5230 from nextcloud/dependabot/docker/Containers/imaginary/alpine-3.20.3
build(deps): bump alpine from 3.20.2 to 3.20.3 in /Containers/imaginary
2024-09-16 16:04:24 +02:00
Simon L.
8b564a74c5 Merge pull request #5229 from nextcloud/dependabot/docker/Containers/watchtower/alpine-3.20.3
build(deps): bump alpine from 3.20.2 to 3.20.3 in /Containers/watchtower
2024-09-16 16:04:13 +02:00
Simon L.
e6119332ee Merge pull request #5228 from nextcloud/dependabot/docker/Containers/domaincheck/alpine-3.20.3
build(deps): bump alpine from 3.20.2 to 3.20.3 in /Containers/domaincheck
2024-09-16 16:04:00 +02:00
Simon L.
8261ce0ad9 Merge pull request #5227 from nextcloud/dependabot/docker/Containers/borgbackup/alpine-3.20.3
build(deps): bump alpine from 3.20.2 to 3.20.3 in /Containers/borgbackup
2024-09-16 16:03:49 +02:00
Simon L.
e94525eb5f Merge pull request #5215 from nextcloud/dependabot/docker/Containers/onlyoffice/onlyoffice/documentserver-8.1.3.2
build(deps): bump onlyoffice/documentserver from 8.1.1.2 to 8.1.3.2 in /Containers/onlyoffice
2024-09-16 16:03:07 +02:00
Simon L.
af1483a4d4 Merge pull request #5214 from nextcloud/dependabot/docker/Containers/fulltextsearch/elasticsearch-8.15.1
build(deps): bump elasticsearch from 8.15.0 to 8.15.1 in /Containers/fulltextsearch
2024-09-16 16:02:51 +02:00
Simon L.
eb26e68b0c Merge pull request #5213 from nextcloud/dependabot/docker/Containers/imaginary/golang-1.23.1-alpine3.20
build(deps): bump golang from 1.23.0-alpine3.20 to 1.23.1-alpine3.20 in /Containers/imaginary
2024-09-16 16:02:37 +02:00
Simon L.
3c8a262fd7 Merge pull request #5208 from nextcloud/dependabot/docker/Containers/docker-socket-proxy/haproxy-3.0.4-alpine
build(deps): bump haproxy from 3.0.3-alpine to 3.0.4-alpine in /Containers/docker-socket-proxy
2024-09-16 16:00:41 +02:00
dependabot[bot]
50b56ed363 build(deps): bump clamav/clamav in /Containers/clamav
Bumps clamav/clamav from 1.4.0-1 to 1.4.1-5.

---
updated-dependencies:
- dependency-name: clamav/clamav
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-16 12:43:39 +00:00
szaimen
8761289d06 nextcloud-update automated change
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-09-14 12:09:16 +00:00
szaimen
343db3de13 talk-update automated change
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-09-14 12:03:23 +00:00
szaimen
9982bb2156 php dependency updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-09-14 12:02:46 +00:00
Simon L.
8a575e96fb Merge pull request #5261 from nextcloud/aio-helm-update
Helm Chart updates
2024-09-14 08:45:50 +02:00
szaimen
ab1fc6bcbc Helm Chart updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-09-14 06:44:44 +00:00
Simon L.
e8215a112b Update update-helm.sh
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-09-14 08:43:13 +02:00
dependabot[bot]
7a39ec46c6 build(deps): bump collabora/code in /Containers/collabora
Bumps collabora/code from 24.04.7.1.2 to 24.04.7.2.1.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-13 12:36:49 +00:00
Simon L.
281c276df0 Fix it
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-09-12 17:49:12 +02:00
Simon L.
ad93ccd476 Update link to cc requests
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-09-12 17:48:02 +02:00
Simon L.
23aa99dc8f Merge pull request #5253 from nextcloud/enh/noid/add-how-to-contribute-section
readme.md: add section how to contribute
2024-09-12 17:22:35 +02:00
Simon L.
4e11ae3d22 readme.md: add section how to contribute
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-09-12 17:15:39 +02:00
Simon L.
5204ea633f borgbackup: also check for .ncdata
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-09-12 16:37:59 +02:00
dependabot[bot]
147e81c503 build(deps): bump docker in /Containers/mastercontainer
Bumps docker from 27.2.0-cli to 27.2.1-cli.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-10 12:55:58 +00:00
dependabot[bot]
0800fd4458 build(deps): bump python in /Containers/talk-recording
Bumps python from 3.12.5-alpine3.20 to 3.12.6-alpine3.20.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-10 12:51:43 +00:00
dependabot[bot]
d1125142cc build(deps): bump alpine from 3.20.2 to 3.20.3 in /Containers/talk
Bumps alpine from 3.20.2 to 3.20.3.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-10 12:45:37 +00:00
Joas Schilling
a8ced69ab4 Merge pull request #5234 from nextcloud/ci/noid/update-workflow-109
ci: Update workflows
2024-09-10 10:26:54 +02:00
Simon L.
9d0b52296d increase to 9.5.1
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-09-10 10:26:18 +02:00
Simon L.
06b1116402 Merge pull request #5203 from nextcloud/enh/noid/install-nc-30-directly
aio-interface: allow to install nc 30 directly
2024-09-10 10:24:46 +02:00
Simon L.
473007f4cd update link to update docs
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-09-10 10:24:09 +02:00
Joas Schilling
142d3e8997 ci: Update workflows
Signed-off-by: Joas Schilling <coding@schilljs.com>
2024-09-10 10:19:41 +02:00
Simon L.
e2946faf02 Merge pull request #5233 from nextcloud/dependabot/composer/php/twig/twig-3.14.0
build(deps): bump twig/twig from 3.12.0 to 3.14.0 in /php
2024-09-09 23:44:22 +02:00
dependabot[bot]
3474801116 build(deps): bump twig/twig from 3.12.0 to 3.14.0 in /php
Bumps [twig/twig](https://github.com/twigphp/Twig) from 3.12.0 to 3.14.0.
- [Changelog](https://github.com/twigphp/Twig/blob/3.x/CHANGELOG)
- [Commits](https://github.com/twigphp/Twig/compare/v3.12.0...v3.14.0)

---
updated-dependencies:
- dependency-name: twig/twig
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-09 21:16:39 +00:00
dependabot[bot]
cf70d53c5b build(deps): bump alpine in /Containers/notify-push
Bumps alpine from 3.20.2 to 3.20.3.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-09 12:56:14 +00:00
dependabot[bot]
73ef6db4cf build(deps): bump alpine from 3.20.2 to 3.20.3 in /Containers/imaginary
Bumps alpine from 3.20.2 to 3.20.3.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-09 12:55:47 +00:00
dependabot[bot]
9f92af0259 build(deps): bump alpine from 3.20.2 to 3.20.3 in /Containers/watchtower
Bumps alpine from 3.20.2 to 3.20.3.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-09 12:40:01 +00:00
dependabot[bot]
d2e330a78f build(deps): bump alpine in /Containers/domaincheck
Bumps alpine from 3.20.2 to 3.20.3.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-09 12:39:31 +00:00
dependabot[bot]
939e5fec8a build(deps): bump alpine from 3.20.2 to 3.20.3 in /Containers/borgbackup
Bumps alpine from 3.20.2 to 3.20.3.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-09 12:36:31 +00:00
Simon L.
26695effa2 update bug report and feature request templates
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-09-06 18:40:15 +02:00
dependabot[bot]
f17a27b80c build(deps): bump onlyoffice/documentserver in /Containers/onlyoffice
Bumps onlyoffice/documentserver from 8.1.1.2 to 8.1.3.2.

---
updated-dependencies:
- dependency-name: onlyoffice/documentserver
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-06 12:57:15 +00:00
dependabot[bot]
d6dd6140c3 build(deps): bump elasticsearch in /Containers/fulltextsearch
Bumps elasticsearch from 8.15.0 to 8.15.1.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-06 12:46:09 +00:00
dependabot[bot]
e92cbc211b build(deps): bump golang in /Containers/imaginary
Bumps golang from 1.23.0-alpine3.20 to 1.23.1-alpine3.20.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-06 12:12:59 +00:00
dependabot[bot]
c701ae38f8 build(deps): bump haproxy in /Containers/docker-socket-proxy
Bumps haproxy from 3.0.3-alpine to 3.0.4-alpine.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-05 13:04:31 +00:00
Simon L.
ed857db3c1 aio-interface: allow to install nc 30 directly
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-09-04 17:23:49 +02:00
Simon L.
1321f875e9 Merge pull request #5202 from nextcloud/enh/noid/include-expensive
nextcloud-entrypoint: maintenance-repair: include-expensive
2024-09-04 16:30:50 +02:00
Simon L.
2af1eaf207 nextcloud-entrypoint: maintenance-repair: include-expensive
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-09-04 16:23:18 +02:00
Simon L.
4c162237bf fix styles 2
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-09-04 16:22:08 +02:00
Simon L.
0445b4c5f1 Merge pull request #5201 from nextcloud/revert-5200-revert-5158-nextcloud-container-update
Revert "Revert "Nextcloud dependency update""
2024-09-04 16:13:32 +02:00
Simon L.
ba4446f565 Revert "Revert "Nextcloud dependency update"" 2024-09-04 16:12:53 +02:00
Simon L.
3c74ebf347 Merge pull request #5200 from nextcloud/revert-5158-nextcloud-container-update
Revert "Nextcloud dependency update"
2024-09-04 16:06:58 +02:00
Simon L.
0db3f95219 Revert "Nextcloud dependency update" 2024-09-04 16:06:20 +02:00
Simon L.
7a3bcc73c6 fix open nextcloud-aio login button
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-09-04 16:01:06 +02:00
Simon L.
8e55a6f35f Merge pull request #5191 from nextcloud/talk-container-update
talk container update
2024-09-04 15:29:33 +02:00
Simon L.
992608a2b0 Merge pull request #5192 from nextcloud/dependabot/docker/Containers/talk/strukturag/nextcloud-spreed-signaling-2.0.0
build(deps): bump strukturag/nextcloud-spreed-signaling from 1.3.2 to 2.0.0 in /Containers/talk
2024-09-04 15:28:57 +02:00
szaimen
0be1f9827b talk-update automated change
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-09-04 12:04:31 +00:00
Simon L.
3389af0bdf Merge pull request #5158 from nextcloud/nextcloud-container-update
Nextcloud dependency update
2024-09-04 12:10:23 +02:00
Simon L.
fb815dd5b4 Merge pull request #5181 from nextcloud/enh/noid/remove-richdocumentscode
nextcloud-entrypoint: remove richdocumentscode if installed
2024-09-04 11:47:02 +02:00
Simon L.
c7cd473c99 Merge pull request #5195 from nextcloud/dependabot/github_actions/peter-evans/create-pull-request-7
build(deps): bump peter-evans/create-pull-request from 6 to 7
2024-09-04 11:41:28 +02:00
Simon L.
dbe3fb4472 Merge pull request #5193 from nextcloud/dependabot/docker/Containers/collabora/collabora/code-24.04.7.1.2
build(deps): bump collabora/code from 24.04.7.1.1 to 24.04.7.1.2 in /Containers/collabora
2024-09-04 11:41:11 +02:00
dependabot[bot]
84bbc6d936 build(deps): bump peter-evans/create-pull-request from 6 to 7
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 6 to 7.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](https://github.com/peter-evans/create-pull-request/compare/v6...v7)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-03 13:07:52 +00:00
dependabot[bot]
6737c188a3 build(deps): bump collabora/code in /Containers/collabora
Bumps collabora/code from 24.04.7.1.1 to 24.04.7.1.2.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-03 12:45:52 +00:00
dependabot[bot]
e53ffb85a4 build(deps): bump strukturag/nextcloud-spreed-signaling
Bumps strukturag/nextcloud-spreed-signaling from 1.3.2 to 2.0.0.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-03 12:38:38 +00:00
szaimen
d791161357 nextcloud-update automated change
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-09-03 12:36:17 +00:00
Simon L.
2251a218dd Merge pull request #5187 from nextcloud/dependabot/docker/Containers/mastercontainer/php-8.3.11-fpm-alpine3.20
build(deps): bump php from 8.3.10-fpm-alpine3.20 to 8.3.11-fpm-alpine3.20 in /Containers/mastercontainer
2024-09-02 15:19:04 +02:00
dependabot[bot]
52fd6d63c7 build(deps): bump php in /Containers/mastercontainer
Bumps php from 8.3.10-fpm-alpine3.20 to 8.3.11-fpm-alpine3.20.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-02 13:02:14 +00:00
Simon L.
fd1d21c364 Merge pull request #5186 from nextcloud/dependabot/docker/Containers/nextcloud/php-8.2.23-fpm-alpine3.20
build(deps): bump php from 8.2.22-fpm-alpine3.20 to 8.2.23-fpm-alpine3.20 in /Containers/nextcloud
2024-09-02 14:34:53 +02:00
dependabot[bot]
b252bc7730 build(deps): bump php in /Containers/nextcloud
Bumps php from 8.2.22-fpm-alpine3.20 to 8.2.23-fpm-alpine3.20.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-02 12:28:17 +00:00
Simon L.
4d3d8b9158 Merge pull request #5182 from nextcloud/aio-dependency-update
PHP dependency updates
2024-08-31 14:18:32 +02:00
szaimen
3ba0995dd7 php dependency updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-08-31 12:02:10 +00:00
Simon L.
91faf2bd34 nextcloud-entrypoint: remove richdocumentscode if installed
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-08-30 16:56:46 +02:00
Simon L.
d62e3b70ff Merge pull request #5180 from nextcloud/dependabot/docker/Containers/talk/nats-2.10.20-scratch
build(deps): bump nats from 2.10.19-scratch to 2.10.20-scratch in /Containers/talk
2024-08-30 14:52:19 +02:00
Simon L.
25ca271055 Merge pull request #5179 from nextcloud/dependabot/docker/Containers/collabora/collabora/code-24.04.7.1.1
build(deps): bump collabora/code from 24.04.6.2.1 to 24.04.7.1.1 in /Containers/collabora
2024-08-30 14:52:06 +02:00
dependabot[bot]
2d8b8ab542 build(deps): bump nats in /Containers/talk
Bumps nats from 2.10.19-scratch to 2.10.20-scratch.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-30 12:50:07 +00:00
dependabot[bot]
da3d20d648 build(deps): bump collabora/code in /Containers/collabora
Bumps collabora/code from 24.04.6.2.1 to 24.04.7.1.1.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-30 12:20:07 +00:00
Simon L.
01f3813308 Merge pull request #5126 from nextcloud/enh/noid/redis-connector
adjust redis connector to point at correct db-index
2024-08-29 16:33:31 +02:00
Simon L.
7e8402aeb0 adjust redis connector to point at correct db-index
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-08-29 16:24:12 +02:00
Simon L.
7c1d337d47 Merge pull request #5177 from nextcloud/dependabot/docker/Containers/mastercontainer/docker-27.2.0-cli
build(deps): bump docker from 27.1.2-cli to 27.2.0-cli in /Containers/mastercontainer
2024-08-29 16:07:54 +02:00
dependabot[bot]
43e1dbb107 build(deps): bump docker in /Containers/mastercontainer
Bumps docker from 27.1.2-cli to 27.2.0-cli.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-29 12:54:32 +00:00
Simon L.
3d9c51baee Merge pull request #5176 from nextcloud/aio-dependency-update
PHP dependency updates
2024-08-29 14:42:24 +02:00
szaimen
c2744fb788 php dependency updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-08-29 12:02:45 +00:00
Simon L.
5d6fc71a61 Merge pull request #5175 from nextcloud/enh/4890/add-snap-warning
mastercontainer: add warning if snap install was found
2024-08-29 12:34:50 +02:00
Simon L.
2f70096a52 migration: add hint that calendar data is excluded when only files are migrated
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-08-29 11:17:42 +02:00
Simon L.
03c900ca09 mastercontainer: add warning if snap install was found
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-08-29 11:01:24 +02:00
Simon L.
95e8a461ce update bug-report template
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-08-29 10:56:03 +02:00
Simon L.
841e80e3b2 Merge pull request #5173 from nextcloud/aio-dependency-update
PHP dependency updates
2024-08-28 15:26:28 +02:00
Simon L.
b413877c6f Merge pull request #5174 from nextcloud/dependabot/docker/Containers/talk/nats-2.10.19-scratch
build(deps): bump nats from 2.10.18-scratch to 2.10.19-scratch in /Containers/talk
2024-08-28 15:26:09 +02:00
dependabot[bot]
8712b3fa17 build(deps): bump nats in /Containers/talk
Bumps nats from 2.10.18-scratch to 2.10.19-scratch.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-28 12:16:51 +00:00
szaimen
7e9a39a074 php dependency updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-08-28 12:07:03 +00:00
Simon L.
b9c30adab4 Merge pull request #5159 from nextcloud/dependabot/docker/Containers/collabora/collabora/code-24.04.6.2.1
build(deps): bump collabora/code from 24.04.6.1.1 to 24.04.6.2.1 in /Containers/collabora
2024-08-26 21:29:50 +02:00
Simon L.
a86c92a94a Merge pull request #5157 from nextcloud/aio-dependency-update
PHP dependency updates
2024-08-26 21:29:36 +02:00
Simon L.
32fac05807 Merge pull request #5139 from nextcloud/doc/stalwart-patch
Update Stalwart doc
2024-08-26 21:29:18 +02:00
Jean-Yves
f2e71532e7 Add feature
Signed-off-by: Jean-Yves <7360784+docjyJ@users.noreply.github.com>
2024-08-25 17:21:38 +02:00
Jean-Yves
d7caa2a7b4 Fix
Signed-off-by: Jean-Yves <7360784+docjyJ@users.noreply.github.com>
2024-08-25 11:54:52 +02:00
szaimen
f67015732f php dependency updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-08-22 12:03:20 +00:00
dependabot[bot]
50acbb62d8 build(deps): bump collabora/code in /Containers/collabora
Bumps collabora/code from 24.04.6.1.1 to 24.04.6.2.1.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-21 12:34:28 +00:00
Simon L.
3ccdd332a9 increase to 9.5.0
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-08-19 15:08:57 +02:00
Simon L.
6587f9ff68 Revert "increase to 9.5.0"
This reverts commit 22aa12d875.
2024-08-19 15:07:40 +02:00
Simon L.
22aa12d875 increase to 9.5.0
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-08-19 15:02:10 +02:00
Simon L.
108035c720 update bug-report template
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-08-19 11:48:33 +02:00
Jean-Yves
1792d4c2fc Delete community-containers/stalwart/upgrading.md
Signed-off-by: Jean-Yves <7360784+docjyJ@users.noreply.github.com>
2024-08-16 16:41:41 +02:00
Jean-Yves
12e4b0d561 Update readme.md
Signed-off-by: Jean-Yves <7360784+docjyJ@users.noreply.github.com>
2024-08-16 16:40:35 +02:00
Simon L.
a67fe51bbc Merge pull request #5138 from nextcloud/dependabot/docker/Containers/clamav/clamav/clamav-1.4.0-1
build(deps): bump clamav/clamav from 1.3.1-61 to 1.4.0-1 in /Containers/clamav
2024-08-16 14:20:20 +02:00
dependabot[bot]
f37b474708 build(deps): bump clamav/clamav in /Containers/clamav
Bumps clamav/clamav from 1.3.1-61 to 1.4.0-1.

---
updated-dependencies:
- dependency-name: clamav/clamav
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-16 12:17:39 +00:00
Simon L.
5318d66d6d Merge pull request #5007 from nextcloud/enn/4955/adjust-design
aio-interface: adjust design for nc30
2024-08-16 14:07:37 +02:00
Simon L.
b892917671 Revert some things in "Proposal"
This reverts parts of commit ef66df0f08.
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-08-16 14:06:08 +02:00
Jean-Yves
ef66df0f08 Proposal
Signed-off-by: Jean-Yves <7360784+docjyJ@users.noreply.github.com>
2024-08-16 13:15:25 +02:00
Simon L.
8e8f5f1a04 aio-interface: adjust design for nc30
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-08-16 13:15:24 +02:00
Simon L.
a41dc9f2c0 Merge pull request #5137 from nextcloud/enh/noid/improve-initcontainers
helm-chart: simplify logic around image for initcontainers
2024-08-16 12:03:13 +02:00
Simon L.
e74f52aaeb helm-chart: simplify logic around image for initcontainers
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-08-16 12:01:30 +02:00
Simon L.
6a383ef27a Merge pull request #5136 from nextcloud/enh/noid/fix-alpine-image-org
helm-chart: fix ALPINE_IMAGE_ORG variable
2024-08-16 11:54:27 +02:00
Simon L.
52305ce9e9 helm-chart: fix ALPINE_IMAGE_ORG variable
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-08-16 11:46:21 +02:00
Simon L.
db55a1c282 helm-chart: document that IMAGE_MIRROR_PREFIX needs a trailing slash
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-08-16 10:00:47 +02:00
Simon L.
c63440f2ee update OO
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-08-15 19:54:54 +02:00
Simon L.
a27a255d3d Merge pull request #5128 from nextcloud/dependabot/docker/Containers/imaginary/golang-1.23.0-alpine3.20
build(deps): bump golang from 1.22.6-alpine3.20 to 1.23.0-alpine3.20 in /Containers/imaginary
2024-08-15 11:16:49 +02:00
Simon L.
8c4eda9d75 Merge pull request #5127 from nextcloud/dependabot/docker/Containers/mastercontainer/docker-27.1.2-cli
build(deps): bump docker from 27.1.1-cli to 27.1.2-cli in /Containers/mastercontainer
2024-08-15 11:16:34 +02:00
dependabot[bot]
4e24200301 build(deps): bump golang in /Containers/imaginary
Bumps golang from 1.22.6-alpine3.20 to 1.23.0-alpine3.20.

---
updated-dependencies:
- dependency-name: golang
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-14 12:44:56 +00:00
dependabot[bot]
2cd955a7f2 build(deps): bump docker in /Containers/mastercontainer
Bumps docker from 27.1.1-cli to 27.1.2-cli.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-14 12:21:23 +00:00
Simon L.
6986eccad4 Merge pull request #5117 from nextcloud/enh/noid/improve-config
nextcloud: config files: do not compare against false
2024-08-12 16:43:02 +02:00
Simon L.
c369b1f4ae aio-interface: update stylesheet with update
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-08-12 12:04:33 +02:00
Simon L.
bbcbf71e6b Merge pull request #5118 from nextcloud/nextcloud-container-update
Nextcloud dependency update
2024-08-11 14:23:56 +02:00
szaimen
8c1f6ac4f6 nextcloud-update automated change
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-08-11 12:09:16 +00:00
Simon L.
151b05ec01 nextcloud: config files: do not compare against false
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-08-09 16:36:16 +02:00
Simon L.
164d4fb997 Merge pull request #5116 from nextcloud/dependabot/docker/Containers/fulltextsearch/elasticsearch-8.15.0
build(deps): bump elasticsearch from 8.14.3 to 8.15.0 in /Containers/fulltextsearch
2024-08-09 15:30:37 +02:00
dependabot[bot]
a23026889f build(deps): bump elasticsearch in /Containers/fulltextsearch
Bumps elasticsearch from 8.14.3 to 8.15.0.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-09 12:58:22 +00:00
Simon L.
9cd2d7eb7b Merge pull request #5114 from nextcloud/aio-dependency-update
PHP dependency updates
2024-08-09 14:30:08 +02:00
Simon L.
0315d4c10f Merge pull request #5115 from nextcloud/dependabot/docker/Containers/postgresql/postgres-16.4-alpine
build(deps): bump postgres from 16.3-alpine to 16.4-alpine in /Containers/postgresql
2024-08-09 14:29:37 +02:00
dependabot[bot]
30981b9afa build(deps): bump postgres in /Containers/postgresql
Bumps postgres from 16.3-alpine to 16.4-alpine.

---
updated-dependencies:
- dependency-name: postgres
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-09 12:10:45 +00:00
szaimen
c990d03b91 php dependency updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-08-09 12:02:59 +00:00
Simon L.
35c641265c Merge pull request #5093 from nextcloud/enh/noid/configure-proxy
nextcloud: allow to configure proxy options via env
2024-08-08 20:40:56 +02:00
Simon L.
69a3087359 Merge pull request #5016 from nextcloud/enh/noid/better-front
Refactor the frontend
2024-08-08 16:39:45 +02:00
Jean-Yves
bc6dfe8711 Update Tags
Signed-off-by: Jean-Yves <7360784+docjyJ@users.noreply.github.com>
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-08-08 16:34:06 +02:00
Simon L.
2603941d35 Merge pull request #5113 from nextcloud/dependabot/docker/Containers/talk-recording/python-3.12.5-alpine3.20
build(deps): bump python from 3.12.4-alpine3.20 to 3.12.5-alpine3.20 in /Containers/talk-recording
2024-08-08 13:31:30 +02:00
dependabot[bot]
e058ab96ea build(deps): bump python in /Containers/talk-recording
Bumps python from 3.12.4-alpine3.20 to 3.12.5-alpine3.20.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-08 11:29:57 +00:00
Simon L.
c5cc5d1521 ignore minor updates for redis
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-08-08 13:28:20 +02:00
Simon L.
41e6d7cf6d fix detail
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-08-08 11:25:38 +02:00
Simon L.
c8447f2713 Merge pull request #5106 from nextcloud/enh/5102/improve-update-logic
nextcloud: improve update logic
2024-08-08 11:24:03 +02:00
Simon L.
f1114a2b23 Merge pull request #5108 from nextcloud/dependabot/docker/Containers/imaginary/golang-1.22.6-alpine3.20
build(deps): bump golang from 1.22.5-alpine3.20 to 1.22.6-alpine3.20 in /Containers/imaginary
2024-08-08 11:19:41 +02:00
Simon L.
f9cc25bb59 Merge pull request #5107 from nextcloud/aio-dependency-update
PHP dependency updates
2024-08-08 11:19:25 +02:00
Simon L.
63d05b6065 Merge pull request #5096 from nextcloud/dependabot/docker/Containers/collabora/collabora/code-24.04.6.1.1
build(deps): bump collabora/code from 24.04.5.2.1 to 24.04.6.1.1 in /Containers/collabora
2024-08-08 11:19:06 +02:00
Simon L.
4cacd38be2 Merge pull request #5084 from nextcloud/dependabot/docker/Containers/nextcloud/php-8.2.22-fpm-alpine3.20
build(deps): bump php from 8.2.21-fpm-alpine3.20 to 8.2.22-fpm-alpine3.20 in /Containers/nextcloud
2024-08-08 11:18:50 +02:00
Simon L.
b31286ae11 Merge pull request #5083 from nextcloud/dependabot/docker/Containers/mastercontainer/php-8.3.10-fpm-alpine3.20
build(deps): bump php from 8.3.9-fpm-alpine3.20 to 8.3.10-fpm-alpine3.20 in /Containers/mastercontainer
2024-08-08 11:18:35 +02:00
dependabot[bot]
149688803c build(deps): bump golang in /Containers/imaginary
Bumps golang from 1.22.5-alpine3.20 to 1.22.6-alpine3.20.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-07 12:20:01 +00:00
szaimen
9ad7ea1456 php dependency updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-08-07 12:05:56 +00:00
Simon L.
bc084eca93 nextcloud: improve update logic
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-08-07 13:30:23 +02:00
dependabot[bot]
0020bb45b2 build(deps): bump collabora/code in /Containers/collabora
Bumps collabora/code from 24.04.5.2.1 to 24.04.6.1.1.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-06 13:38:04 +00:00
Simon L.
f6fd960ba0 nextcloud: allow to configure proxy options via env
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-08-05 14:01:30 +02:00
dependabot[bot]
a9710944f0 build(deps): bump php in /Containers/nextcloud
Bumps php from 8.2.21-fpm-alpine3.20 to 8.2.22-fpm-alpine3.20.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-02 12:33:10 +00:00
dependabot[bot]
b84611a5ac build(deps): bump php in /Containers/mastercontainer
Bumps php from 8.3.9-fpm-alpine3.20 to 8.3.10-fpm-alpine3.20.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-02 12:30:29 +00:00
89 changed files with 920 additions and 944 deletions

View File

@@ -1,7 +1,7 @@
---
name: 🐛 Bug report
about: Help us improving by reporting a bug
labels: bug, 0. Needs triage
labels: 0. Needs triage
---
<!---
@@ -20,11 +20,11 @@ labels: bug, 0. Needs triage
### Actual behavior <!--- Tell us what happens instead -->
### Host OS <!--- (the host OS on which you are trying to install AIO on) -->
### Other information
#### Host OS <!--- (the host OS on which you are trying to install AIO on) -->
#### Output of `sudo docker info`
#### Nextcloud AIO version <!--- (see Nextcloud AIO interface) -->
#### Current channel <!--- (see the channel name in the AIO interface) -->
#### Docker run command or docker-compose file that you used
#### Other valuable info <!--- (like logs, screenshots & Co.) -->

View File

@@ -1,7 +1,7 @@
---
name: 📖 Existing feature/documentation enhancement
about: Suggest an enhancement of an existing feature/documentation - for other types, please use the feature request option below
labels: enhancement, 0. Needs triage
labels: 0. Needs triage
---
<!--- Please fill out the whole template below -->

174
.github/dependabot.yml vendored
View File

@@ -16,170 +16,38 @@ updates:
- 3. to review
- dependencies
- package-ecosystem: "docker"
directory: "/Containers/apache"
directories:
- "/Containers/apache"
- "/Containers/borgbackup"
- "/Containers/clamav"
- "/Containers/collabora"
- "/Containers/docker-socket-proxy"
- "/Containers/domaincheck"
- "/Containers/fulltextsearch"
- "/Containers/imaginary"
- "/Containers/mastercontainer"
- "/Containers/nextcloud"
- "/Containers/notify-push"
- "/Containers/onlyoffice"
- "/Containers/postgresql"
- "/Containers/redis"
- "/Containers/talk"
- "/Containers/talk-recording"
- "/Containers/watchtower"
- "/Containers/whiteboard"
schedule:
interval: "daily"
time: "12:00"
time: "04:00"
open-pull-requests-limit: 10
labels:
- 3. to review
- dependencies
- package-ecosystem: "docker"
directory: "/Containers/borgbackup"
schedule:
interval: "daily"
time: "12:00"
open-pull-requests-limit: 10
labels:
- 3. to review
- dependencies
- package-ecosystem: "docker"
directory: "/Containers/collabora"
schedule:
interval: "daily"
time: "12:00"
open-pull-requests-limit: 10
labels:
- 3. to review
- dependencies
- package-ecosystem: "docker"
directory: "/Containers/domaincheck"
schedule:
interval: "daily"
time: "12:00"
open-pull-requests-limit: 10
labels:
- 3. to review
- dependencies
- package-ecosystem: "docker"
directory: "/Containers/mastercontainer"
schedule:
interval: "daily"
time: "12:00"
ignore:
- dependency-name: "php"
update-types: ["version-update:semver-major", "version-update:semver-minor"]
open-pull-requests-limit: 10
labels:
- 3. to review
- dependencies
- package-ecosystem: "docker"
directory: "/Containers/nextcloud"
schedule:
interval: "daily"
time: "12:00"
ignore:
- dependency-name: "php"
update-types: ["version-update:semver-major", "version-update:semver-minor"]
open-pull-requests-limit: 10
labels:
- 3. to review
- dependencies
- package-ecosystem: "docker"
directory: "/Containers/postgresql"
schedule:
interval: "daily"
time: "12:00"
ignore:
- dependency-name: "postgres"
update-types: ["version-update:semver-major"]
open-pull-requests-limit: 10
labels:
- 3. to review
- dependencies
- package-ecosystem: "docker"
directory: "/Containers/redis"
schedule:
interval: "daily"
time: "12:00"
ignore:
- dependency-name: "redis"
update-types: ["version-update:semver-major"]
open-pull-requests-limit: 10
labels:
- 3. to review
- dependencies
- package-ecosystem: "docker"
directory: "/Containers/talk"
schedule:
interval: "daily"
time: "12:00"
open-pull-requests-limit: 10
labels:
- 3. to review
- dependencies
- package-ecosystem: "docker"
directory: "/Containers/talk-recording"
schedule:
interval: "daily"
time: "12:00"
open-pull-requests-limit: 10
labels:
- 3. to review
- dependencies
- package-ecosystem: "docker"
directory: "/Containers/watchtower"
schedule:
interval: "daily"
time: "12:00"
open-pull-requests-limit: 10
labels:
- 3. to review
- dependencies
- package-ecosystem: "docker"
directory: "/Containers/clamav"
schedule:
interval: "daily"
time: "12:00"
open-pull-requests-limit: 10
labels:
- 3. to review
- dependencies
- package-ecosystem: "docker"
directory: "/Containers/onlyoffice"
schedule:
interval: "daily"
time: "12:00"
open-pull-requests-limit: 10
labels:
- 3. to review
- dependencies
- package-ecosystem: "docker"
directory: "/Containers/imaginary"
schedule:
interval: "daily"
time: "12:00"
open-pull-requests-limit: 10
labels:
- 3. to review
- dependencies
- package-ecosystem: "docker"
directory: "/Containers/fulltextsearch"
schedule:
interval: "daily"
time: "12:00"
ignore:
update-types: ["version-update:semver-major", "version-update:semver-minor"]
- dependency-name: "elasticsearch"
update-types: ["version-update:semver-major"]
open-pull-requests-limit: 10
labels:
- 3. to review
- dependencies
- package-ecosystem: "docker"
directory: "/Containers/notify-push"
schedule:
interval: "daily"
time: "12:00"
open-pull-requests-limit: 10
labels:
- 3. to review
- dependencies
- package-ecosystem: "docker"
directory: "/Containers/docker-socket-proxy"
schedule:
interval: "daily"
time: "12:00"
open-pull-requests-limit: 10
labels:
- 3. to review
- dependencies

View File

@@ -1,51 +0,0 @@
# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
name: Rebase command
on:
issue_comment:
types: created
permissions:
contents: read
jobs:
rebase:
runs-on: ubuntu-latest
permissions:
contents: none
# On pull requests and if the comment starts with `/rebase`
if: github.event.issue.pull_request != '' && startsWith(github.event.comment.body, '/rebase')
steps:
- name: Add reaction on start
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
repository: ${{ github.event.repository.full_name }}
comment-id: ${{ github.event.comment.id }}
reaction-type: "+1"
- name: Checkout the latest code
uses: actions/checkout@v4 # v3.5.2
with:
fetch-depth: 0
token: ${{ secrets.COMMAND_BOT_PAT }}
- name: Automatic Rebase
uses: cirrus-actions/rebase@b87d48154a87a85666003575337e27b8cd65f691 # 1.8
env:
GITHUB_TOKEN: ${{ secrets.COMMAND_BOT_PAT }}
- name: Add reaction on failure
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0
if: failure()
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
repository: ${{ github.event.repository.full_name }}
comment-id: ${{ github.event.comment.id }}
reaction-type: "-1"

View File

@@ -44,7 +44,7 @@ jobs:
)"
sed -i "s|pecl install APCu.*\;|pecl install APCu-$apcu_version\;|" ./Containers/mastercontainer/Dockerfile
- name: Create Pull Request
uses: peter-evans/create-pull-request@v6
uses: peter-evans/create-pull-request@v7
with:
commit-message: php dependency updates
signoff: true

View File

@@ -22,7 +22,7 @@ jobs:
sed -i "s|^ENV IMAGINARY_HASH.*$|ENV IMAGINARY_HASH=$imaginary_version|" ./Containers/imaginary/Dockerfile
- name: Create Pull Request
uses: peter-evans/create-pull-request@v6
uses: peter-evans/create-pull-request@v7
with:
commit-message: imaginary-update automated change
signoff: true

View File

@@ -79,7 +79,7 @@ jobs:
fi
- name: Create Pull Request
uses: peter-evans/create-pull-request@v6
uses: peter-evans/create-pull-request@v7
with:
commit-message: nextcloud-update automated change
signoff: true

View File

@@ -30,7 +30,7 @@ jobs:
continue-on-error: true
- name: Create Pull Request
uses: peter-evans/create-pull-request@v6
uses: peter-evans/create-pull-request@v7
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
commit-message: Update psalm baseline

View File

@@ -45,7 +45,7 @@ jobs:
sed -i "s|^ARG JANUS_VERSION=.*$|ARG JANUS_VERSION=$janus_version|" ./Containers/talk/Dockerfile
- name: Create Pull Request
uses: peter-evans/create-pull-request@v6
uses: peter-evans/create-pull-request@v7
with:
commit-message: talk-update automated change
signoff: true

View File

@@ -20,7 +20,7 @@ jobs:
sudo bash nextcloud-aio-helm-chart/update-helm.sh "$DOCKER_TAG"
fi
- name: Create Pull Request
uses: peter-evans/create-pull-request@v6
uses: peter-evans/create-pull-request@v7
with:
commit-message: Helm Chart updates
signoff: true

View File

@@ -16,7 +16,7 @@ jobs:
run: |
sudo bash manual-install/update-yaml.sh
- name: Create Pull Request
uses: peter-evans/create-pull-request@v6
uses: peter-evans/create-pull-request@v7
with:
commit-message: Yaml updates
signoff: true

View File

@@ -51,6 +51,12 @@ https://{$ADDITIONAL_TRUSTED_DOMAIN}:443,
reverse_proxy {$TALK_HOST}:8081
}
# Whiteboard
route /whiteboard/* {
uri strip_prefix /whiteboard
reverse_proxy {$WHITEBOARD_HOST}:3002
}
# Nextcloud
route {
header Strict-Transport-Security max-age=31536000;

View File

@@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest
FROM alpine:3.20.2
FROM alpine:3.20.3
RUN set -ex; \
\

View File

@@ -71,8 +71,8 @@ if [ "$BORG_MODE" = backup ]; then
echo "database-dump is missing. Cannot perform backup!"
echo "Please check the database container logs!"
exit 1
elif ! [ -f "/nextcloud_aio_volumes/nextcloud_aio_nextcloud_data/.ocdata" ]; then
echo "The .ocdata file is missing in Nextcloud datadir which means it is invalid!"
elif ! [ -f "/nextcloud_aio_volumes/nextcloud_aio_nextcloud_data/.ocdata" ] && ! [ -f "/nextcloud_aio_volumes/nextcloud_aio_nextcloud_data/.ncdata" ]; then
echo "The .ncdata or .ocdata file is missing in Nextcloud datadir which means it is invalid!"
echo "Is the drive where the datadir is located on still mounted?"
exit 1
fi

View File

@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:latest
# Probably from this file: https://github.com/Cisco-Talos/clamav-docker/blob/main/clamav/1.3/alpine/Dockerfile
FROM clamav/clamav:1.3.1-61
FROM clamav/clamav:1.4.1-5
COPY clamav.conf /clamav.conf
COPY --chmod=775 start.script /start.script

View File

@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:latest
# From a file located probably somewhere here: https://github.com/CollaboraOnline/online/tree/master/docker
FROM collabora/code:24.04.5.2.1
FROM collabora/code:24.04.7.2.1
USER root
ARG DEBIAN_FRONTEND=noninteractive

View File

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

View File

@@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest
FROM alpine:3.20.2
FROM alpine:3.20.3
RUN set -ex; \
apk upgrade --no-cache -a; \
apk add --no-cache bash lighttpd netcat-openbsd; \

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.14.3
FROM elasticsearch:8.15.1
USER root

View File

@@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest
FROM golang:1.22.5-alpine3.20 AS go
FROM golang:1.23.1-alpine3.20 AS go
ENV IMAGINARY_HASH=6cd9edd1d3fb151eb773c14552886e4fc8e50138
@@ -13,7 +13,7 @@ RUN set -ex; \
build-base; \
go install github.com/h2non/imaginary@"$IMAGINARY_HASH";
FROM alpine:3.20.2
FROM alpine:3.20.3
RUN set -ex; \
apk upgrade --no-cache -a; \
apk add --no-cache \

View File

@@ -1,12 +1,12 @@
# syntax=docker/dockerfile:latest
# Docker CLI is a requirement
FROM docker:27.1.1-cli AS docker
FROM docker:27.3.1-cli AS docker
# Caddy is a requirement
FROM caddy:2.8.4-alpine AS caddy
# From https://github.com/docker-library/php/blob/master/8.3/alpine3.20/fpm/Dockerfile
FROM php:8.3.9-fpm-alpine3.20
FROM php:8.3.11-fpm-alpine3.20
EXPOSE 80
EXPOSE 8080
@@ -42,7 +42,7 @@ RUN set -ex; \
apk add --no-cache --virtual .build-deps \
autoconf \
build-base; \
pecl install APCu-5.1.23; \
pecl install APCu-5.1.24; \
docker-php-ext-enable apcu; \
rm -r /tmp/pear; \
runDeps="$( \

View File

@@ -91,14 +91,21 @@ else
fi
# Check Storage drivers
STORAGE_DRIVER="$(docker info | grep "Storage Driver")"
STORAGE_DRIVER="$(sudo -u www-data docker info | grep "Storage Driver")"
# Check if vfs is used: https://github.com/nextcloud/all-in-one/discussions/1467
if echo "$STORAGE_DRIVER" | grep -q vfs; then
echo "$STORAGE_DRIVER"
echo "Warning: It seems like the storage driver vfs is used. This will lead to problems with disk space and performance and is disrecommended!"
print_red "Warning: It seems like the storage driver vfs is used. This will lead to problems with disk space and performance and is disrecommended!"
elif echo "$STORAGE_DRIVER" | grep -q fuse-overlayfs; then
echo "$STORAGE_DRIVER"
echo "Warning: It seems like the storage driver fuse-overlayfs is used. Please check if you can switch to overlay2 instead."
print_red "Warning: It seems like the storage driver fuse-overlayfs is used. Please check if you can switch to overlay2 instead."
fi
# Check if snap install
if sudo -u www-data docker info | grep "Docker Root Dir" | grep "/var/snap/docker/"; then
print_red "Warning: It looks like your installation uses docker installed via snap."
print_red "This comes with some limitations and is disrecommended by the docker maintainers."
print_red "See for example https://github.com/nextcloud/all-in-one/discussions/4890#discussioncomment-10386752"
fi
# Check if startup command was executed correctly

View File

@@ -1,13 +1,14 @@
# syntax=docker/dockerfile:latest
FROM php:8.2.21-fpm-alpine3.20
FROM php:8.2.23-fpm-alpine3.20
ENV PHP_MEMORY_LIMIT=512M
ENV PHP_UPLOAD_LIMIT=10G
ENV PHP_MAX_TIME=3600
ENV SOURCE_LOCATION=/usr/src/nextcloud
ENV REDIS_DB_INDEX=0
# AIO settings start # Do not remove or change this line!
ENV NEXTCLOUD_VERSION=29.0.4
ENV NEXTCLOUD_VERSION=29.0.7
ENV AIO_TOKEN=123456
ENV AIO_URL=localhost
# AIO settings end # Do not remove or change this line!
@@ -77,8 +78,8 @@ RUN set -ex; \
; \
\
# pecl will claim success even if one install fails, so we need to perform each install separately
pecl install igbinary-3.2.15; \
pecl install APCu-5.1.23; \
pecl install igbinary-3.2.16; \
pecl install APCu-5.1.24; \
pecl install memcached-3.2.0 \
--configureoptions 'enable-memcached-igbinary="yes"'; \
pecl install redis-6.0.2 \
@@ -131,7 +132,7 @@ RUN set -ex; \
\
{ \
echo 'session.save_handler = redis'; \
echo 'session.save_path = "tcp://${REDIS_HOST}:6379?auth=${REDIS_HOST_PASSWORD}"'; \
echo 'session.save_path = "tcp://${REDIS_HOST}:6379/${REDIS_DB_INDEX}?auth=${REDIS_HOST_PASSWORD}"'; \
echo 'redis.session.locking_enabled = 1'; \
echo 'redis.session.lock_retries = -1'; \
echo 'redis.session.lock_wait_time = 10000'; \

View File

@@ -13,6 +13,6 @@ $CONFIG = array (
),
),
);
if (getenv('APPS_ALLOWLIST') !== false) {
if (getenv('APPS_ALLOWLIST')) {
$CONFIG['appsallowlist'] = explode(" ", getenv('APPS_ALLOWLIST'));
}

View File

@@ -0,0 +1,13 @@
<?php
if (getenv('HTTP_PROXY')) {
$CONFIG['proxy'] = getenv('HTTP_PROXY');
}
if (getenv('HTTPS_PROXY')) {
$CONFIG['proxy'] = getenv('HTTPS_PROXY');
}
if (getenv('PROXY_USER_PASSWORD')) {
$CONFIG['proxyuserpwd'] = getenv('PROXY_USER_PASSWORD');
}
if (getenv('NO_PROXY')) {
$CONFIG['proxyexclude'] = explode(',', getenv('NO_PROXY'));
}

View File

@@ -9,13 +9,13 @@ if (getenv('REDIS_HOST')) {
),
);
if (getenv('REDIS_HOST_PORT') !== false) {
if (getenv('REDIS_HOST_PORT')) {
$CONFIG['redis']['port'] = (int) getenv('REDIS_HOST_PORT');
} elseif (getenv('REDIS_HOST')[0] != '/') {
$CONFIG['redis']['port'] = 6379;
}
if (getenv('REDIS_DB_INDEX') !== false) {
if (getenv('REDIS_DB_INDEX')) {
$CONFIG['redis']['dbindex'] = (int) getenv('REDIS_DB_INDEX');
}
}

View File

@@ -11,9 +11,10 @@ directory_empty() {
}
run_upgrade_if_needed_due_to_app_update() {
if php /var/www/html/occ status | grep maintenance | grep -q true; then
php /var/www/html/occ maintenance:mode --off
fi
if php /var/www/html/occ status | grep needsDbUpgrade | grep -q true; then
# Disable integrity check temporarily until next update
php /var/www/html/occ config:system:set integrity.check.disabled --type bool --value true
php /var/www/html/occ upgrade
php /var/www/html/occ app:enable nextcloud-aio --force
fi
@@ -99,6 +100,20 @@ if ! [ -f "$NEXTCLOUD_DATA_DIR/skip.update" ]; then
# Write output to logfile.
exec > >(tee -i "/var/www/html/data/update.log")
exec 2>&1
# Run built-in upgrader if version is below 28.0.2 to upgrade to 28.0.x first
touch "$NEXTCLOUD_DATA_DIR/update.failed"
if ! version_greater "$installed_version" "28.0.1.20"; then
php /var/www/html/updater/updater.phar --no-interaction --no-backup
if ! php /var/www/html/occ upgrade || php /var/www/html/occ status | grep maintenance | grep -q 'true'; then
echo "Upgrade failed. Please restore from backup."
bash /notify.sh "Nextcloud update to $image_version failed!" "Please restore from backup!"
exit 1
fi
rm "$NEXTCLOUD_DATA_DIR/update.failed"
# shellcheck disable=SC2016
installed_version="$(php -r 'require "/var/www/html/version.php"; echo implode(".", $OC_Version);')"
INSTALLED_MAJOR="${installed_version%%.*}"
fi
fi
if [ "$installed_version" != "0.0.0.0" ] && [ "$((IMAGE_MAJOR - INSTALLED_MAJOR))" -gt 1 ]; then
@@ -421,12 +436,14 @@ DATADIR_PERMISSION_CONF
# Apply optimization
echo "Doing some optimizations..."
php /var/www/html/occ maintenance:repair
if [ "$NEXTCLOUD_SKIP_DATABASE_OPTIMIZATION" != yes ]; then
php /var/www/html/occ maintenance:repair --include-expensive
php /var/www/html/occ db:add-missing-indices
php /var/www/html/occ db:add-missing-columns
php /var/www/html/occ db:add-missing-primary-keys
yes | php /var/www/html/occ db:convert-filecache-bigint
else
php /var/www/html/occ maintenance:repair
fi
fi
fi
@@ -582,6 +599,10 @@ if [ "$COLLABORA_ENABLED" = 'yes' ]; then
COLLABORA_HOST="$NC_DOMAIN"
fi
set +x
# Remove richdcoumentscode if it should be incorrectly installed
if [ -d "/var/www/html/custom_apps/richdocumentscode" ]; then
php /var/www/html/occ app:remove richdocumentscode
fi
if ! [ -d "/var/www/html/custom_apps/richdocuments" ]; then
php /var/www/html/occ app:install richdocuments
elif [ "$(php /var/www/html/occ config:app:get richdocuments enabled)" != "yes" ]; then
@@ -816,19 +837,34 @@ else
fi
# Docker socket proxy
if version_greater "$installed_version" "27.1.2.0"; then
if [ "$DOCKER_SOCKET_PROXY_ENABLED" = 'yes' ]; then
if ! [ -d "/var/www/html/custom_apps/app_api" ]; then
php /var/www/html/occ app:install app_api
elif [ "$(php /var/www/html/occ config:app:get app_api enabled)" != "yes" ]; then
php /var/www/html/occ app:enable app_api
elif [ "$SKIP_UPDATE" != 1 ]; then
php /var/www/html/occ app:update app_api
fi
else
if [ "$REMOVE_DISABLED_APPS" = yes ] && [ -d "/var/www/html/custom_apps/app_api" ]; then
php /var/www/html/occ app:remove app_api
fi
if [ "$DOCKER_SOCKET_PROXY_ENABLED" = 'yes' ]; then
if ! [ -d "/var/www/html/custom_apps/app_api" ]; then
php /var/www/html/occ app:install app_api
elif [ "$(php /var/www/html/occ config:app:get app_api enabled)" != "yes" ]; then
php /var/www/html/occ app:enable app_api
elif [ "$SKIP_UPDATE" != 1 ]; then
php /var/www/html/occ app:update app_api
fi
else
if [ "$REMOVE_DISABLED_APPS" = yes ] && [ -d "/var/www/html/custom_apps/app_api" ]; then
php /var/www/html/occ app:remove app_api
fi
fi
# Whiteboard app
if [ "$WHITEBOARD_ENABLED" = 'yes' ]; then
if ! [ -d "/var/www/html/custom_apps/whiteboard" ]; then
php /var/www/html/occ app:install whiteboard
elif [ "$(php /var/www/html/occ config:app:get whiteboard enabled)" != "yes" ]; then
php /var/www/html/occ app:enable whiteboard
elif [ "$SKIP_UPDATE" != 1 ]; then
php /var/www/html/occ app:update whiteboard
fi
php /var/www/html/occ config:app:set whiteboard collabBackendUrl --value="https://$NC_DOMAIN/whiteboard"
php /var/www/html/occ config:app:set whiteboard jwt_secret_key --value="$WHITEBOARD_SECRET"
else
if [ "$REMOVE_DISABLED_APPS" = yes ] && [ -d "/var/www/html/custom_apps/whiteboard" ]; then
php /var/www/html/occ app:remove whiteboard
fi
fi

View File

@@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest
FROM alpine:3.20.2
FROM alpine:3.20.3
COPY --chmod=775 start.sh /start.sh
COPY --chmod=775 healthcheck.sh /healthcheck.sh

View File

@@ -48,9 +48,14 @@ echo "notify-push was started"
if [ -z "$POSTGRES_PORT" ]; then
POSTGRES_PORT=5432
fi
# Set a default for redis db index
if [ -z "$REDIS_DB_INDEX" ]; then
REDIS_DB_INDEX=0
fi
# Set sensitive values as env
export DATABASE_URL="postgres://oc_$POSTGRES_USER:$POSTGRES_PASSWORD@$POSTGRES_HOST:$POSTGRES_PORT/$POSTGRES_DB"
export REDIS_URL="redis://:$REDIS_HOST_PASSWORD@$REDIS_HOST"
export REDIS_URL="redis://:$REDIS_HOST_PASSWORD@$REDIS_HOST/$REDIS_DB_INDEX"
# Run it
/nextcloud/custom_apps/notify_push/bin/"$CPU_ARCH"/notify_push \

View File

@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:latest
# From https://github.com/ONLYOFFICE/Docker-DocumentServer/blob/master/Dockerfile
FROM onlyoffice/documentserver:8.1.1.1
FROM onlyoffice/documentserver:8.1.3.2
# USER root is probably used

View File

@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:latest
# From https://github.com/docker-library/postgres/blob/master/16/alpine3.20/Dockerfile
FROM postgres:16.3-alpine
FROM postgres:16.4-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.12.4-alpine3.20
FROM python:3.12.6-alpine3.20
COPY --chmod=775 start.sh /start.sh

View File

@@ -1,10 +1,10 @@
# syntax=docker/dockerfile:latest
FROM nats:2.10.18-scratch AS nats
FROM nats:2.10.20-scratch AS nats
FROM eturnal/eturnal:1.12.0 AS eturnal
FROM strukturag/nextcloud-spreed-signaling:1.3.2 AS signaling
FROM alpine:3.20.2 AS janus
FROM strukturag/nextcloud-spreed-signaling:2.0.0 AS signaling
FROM alpine:3.20.3 AS janus
ARG JANUS_VERSION=v0.14.3
ARG JANUS_VERSION=v0.14.4
WORKDIR /src
RUN set -ex; \
apk add --no-cache \
@@ -34,7 +34,7 @@ RUN set -ex; \
make configs; \
rename -v ".jcfg.sample" ".jcfg" /usr/local/etc/janus/*.jcfg.sample
FROM alpine:3.20.2
FROM alpine:3.20.3
ENV ETURNAL_ETC_DIR="/conf"
COPY --from=janus --chmod=777 --chown=1000:1000 /usr/local /usr/local
COPY --from=eturnal --chmod=777 --chown=1000:1000 /opt/eturnal /opt/eturnal

View File

@@ -55,6 +55,15 @@ blockkey = -encryption-key-
# value as configured in the respective internal services.
internalsecret = the-shared-secret-for-internal-clients
[federation]
# If set to "true", certificate validation of federation targets will be skipped.
# This should only be enabled during development, e.g. to work with self-signed
# certificates.
#skipverify = false
# Timeout in seconds for requests to federation targets.
#timeout = 10
[backend]
# Type of backend configuration.
# Defaults to "static".

View File

@@ -2,9 +2,10 @@
# From https://github.com/containrrr/watchtower/blob/main/dockerfiles/Dockerfile.self-contained
FROM containrrr/watchtower:1.7.1 AS watchtower
FROM alpine:3.20.2
FROM alpine:3.20.3
RUN apk upgrade --no-cache -a; \
RUN set -ex; \
apk upgrade --no-cache -a; \
apk add --no-cache bash
COPY --from=watchtower /watchtower /watchtower

View File

@@ -0,0 +1,14 @@
# syntax=docker/dockerfile:latest
FROM ghcr.io/nextcloud-releases/whiteboard:v1.0.2
USER root
RUN set -ex; \
apk upgrade --no-cache -a; \
apk add --no-cache bash
USER nobody
COPY --chmod=775 start.sh /start.sh
ENTRYPOINT ["/start.sh"]
LABEL com.centurylinklabs.watchtower.enable="false"

View File

@@ -0,0 +1,17 @@
#!/bin/bash
# Only start container if nextcloud is accessible
while ! nc -z "$REDIS_HOST" 6379; do
echo "Waiting for redis to start..."
sleep 5
done
# Set a default for redis db index
if [ -z "$REDIS_DB_INDEX" ]; then
REDIS_DB_INDEX=0
fi
export REDIS_URL="redis://:$REDIS_HOST_PASSWORD@$REDIS_HOST/$REDIS_DB_INDEX"
# Run it
exec npm run server:start

View File

@@ -3,7 +3,6 @@ This container bundles DLNA server for your Nextcloud files to be accessible by
### Notes
- This container will work only if the Nextcloud installation is in your home network, it is not suitable for installations on remote servers.
- This is not working with Docker Desktop since it requires the `host` networking mode in docker, and it doesn't really share the host's network interfaces in this system
- If you have a firewall like ufw configured, you might need to open at least port 9999 TCP and 1900 UDP first in order to make it work.
- See https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers how to add it to the AIO stack

View File

@@ -2,7 +2,6 @@
This container bundles fail2ban and auto-configures it for you in order to block ip-addresses automatically. It also covers https://github.com/nextcloud/all-in-one/tree/main/community-containers/vaultwarden, if installed.
### Notes
- This is not working on Docker Desktop since it needs `network_mode: host` in order to work correctly.
- If you get an error like `"ip6tables v1.8.9 (legacy): can't initialize ip6tables table filter': Table does not exist (do you need to insmod?)"`, you need to enable ip6tables on your host via `sudo modprobe ip6table_filter`.
- If you get an error like `stderr: 'iptables: No chain/target/match by that name.'` and `stderr: 'ip6tables: No chain/target/match by that name.'`, you need to follow https://github.com/szaimen/aio-fail2ban/issues/9#issuecomment-2026898790 in order to resolve this.
- See https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers how to add it to the AIO stack

View File

@@ -3,7 +3,6 @@ This container bundles Jellyfin and auto-configures it for you.
### Notes
- This container is incompatible with the [Plex](https://github.com/nextcloud/all-in-one/tree/main/community-containers/plex) community container. So make sure that you do not enable both at the same time!
- This container does not work on Docker Desktop since it needs `network_mode: host` in order to work correctly.
- After adding and starting the container, you can directly visit http://ip.address.of.server:8096/ and access your new Jellyfin instance!
- This container should usually only be run in home networks as it exposes unencrypted services like DLNA by default which can be disabld via the web interface though.
- In order to access your Jellyfin outside the local network, you have to set up your own reverse proxy. You can set up a reverse proxy following [these instructions](https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md) and [Jellyfin's networking documentation](https://jellyfin.org/docs/general/networking/#running-jellyfin-behind-a-reverse-proxy), OR use the [Caddy](https://github.com/nextcloud/all-in-one/tree/main/community-containers/caddy) community container that will automatically configure `media.$NC_DOMAIN` to redirect to your Jellyfin.

View File

@@ -18,8 +18,7 @@ This container bundles Local AI and auto-configures it for you.
- url: github:go-skynet/model-gallery/gpt4all-j.yaml
name: gpt4all-j
```
- You need to add gpt4all-j under Text Generation (Default completion model to use) in Connected Accounts in the Administration Settings in Nextcloud, the default does not work.
- Additionally after doing so, you might want to enable or disable specific features for your models in the integration_openai settings: `https://your-nc-domain.com/settings/admin/connected-accounts`
- To make it work, you first need to browse `https://your-nc-domain.com/settings/admin/ai` and enable or disable specific features for your models in the openAI settings. Afterwards using the Nextcloud Assistant should work.
- See https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers how to add it to the AIO stack
### Repository

View File

@@ -3,7 +3,6 @@ This container contains a fork of the Nginx Proxy Manager, which is a WebUI for
### Notes
- This container is incompatible with the [caddy](https://github.com/nextcloud/all-in-one/tree/main/community-containers/caddy) community container. So make sure that you do not enable both at the same time!
- Only works on linux since it uses network mode host
- You can ignore the NPM configuration of the reverse-proxy.md. The NPMplus fork already contains the changes of the advanced tab.
- Make sure that no other service is using port `443 (tcp/upd)` or `81 (tcp)` on your host as otherwise the containers will fail to start. You can check this with `sudo netstat -tulpn | grep "443\|81"` before installing AIO.
- Please change the default login data first, after you can read inside the logs that the default config for AIO is created and there are no errors.

View File

@@ -4,7 +4,6 @@ This container bundles Plex and auto-configures it for you.
### Notes
- This container is incompatible with the [Jellyfin](https://github.com/nextcloud/all-in-one/tree/main/community-containers/jellyfin) community container. So make sure that you do not enable both at the same time!
- This is not working on arm64 since Plex does only provide x64 docker images.
- This is not working on Docker Desktop since it needs `network_mode: host` in order to work correctly.
- This container should usually only be run in home networks as it exposes unencrypted services like DLNA by default which can be disabld via the web interface though.
- If you have a firewall like ufw configured, you might need to open all Plex ports in there first in order to make it work. Especially port 32400 is important!
- After adding and starting the container, you need to visit http://ip.address.of.server:32400/manage in order to claim your server with a plex account

View File

@@ -13,7 +13,7 @@ Afterwards, you might want to add additional community containers to the default
Simply submit a PR by creating a new folder in this directory: https://github.com/nextcloud/all-in-one/tree/main/community-containers with the name of your container. It must include a json file with the same name and with correct syntax and a readme.md with additional information. You might get inspired by caddy, fail2ban, local-ai, libretranslate, plex, pi-hole or vaultwarden (subfolders in this directory). For a full-blown example of the json file, see https://github.com/nextcloud/all-in-one/blob/main/php/containers.json. The json-schema that it validates against can be found here: https://github.com/nextcloud/all-in-one/blob/main/php/containers-schema.json.
### Is there a list of ideas for new community containers?
Yes, see [this list](https://github.com/nextcloud/all-in-one/discussions/categories/ideas?discussions_q=is%3Aopen+category%3AIdeas+label%3A%22help+wanted%22+sort%3Atop) for already existing ideas for new community containers. Feel free to pick one up and add it to this folder by following the instructions above.
Yes, see [this list](https://github.com/nextcloud/all-in-one/issues/5251) for already existing ideas for new community containers. Feel free to pick one up and add it to this folder by following the instructions above.
## How to remove containers from AIOs stack?
In some cases, you might want to remove some community containers from the AIO stack again. Here is how to do this.

View File

@@ -1,23 +1,17 @@
> [!WARNING]
> The Stalwart server is under development.
> [!CAUTION]
> Be aware that the mail server is the most difficult service to deploy.
>
> The stability of Stalwart services is not guaranteed.
> Do not use this feature as a main mail server without a redundancy system and without knowledge.
>
> To learn or use as a secondary server enjoy it and please report bugs at [docjyj/aio-stalwart](https://github.com/docjyj/aio-stalwart/issues).
> Do not use this feature as a main mail server or without a redundancy system and without knowledge.
## Stalwart mail server
This container bundles stalwart mail server and auto-configures it for you.
### Notes
- This is only intended to run on a VPS with static ip-address.
- Check with `sudo netstat -tulpn` that no other service is using port 25, 143, 465, 587, 993 nor 4190 yet as otherwise the container will fail to start.
- You need to configure a reverse proxy in order to run this container since stalwart needs a dedicated (sub)domain! For that, you might have a look at https://github.com/nextcloud/all-in-one/tree/main/community-containers/caddy.
- Currently, only `mail.$NC_DOMAIN` is supported as subdomain! So if Nextcloud is using `your-domain.com`, Stalwart will use `mail.your-domain.com`.
- The data of Stalwart will be automatically included in AIOs backup solution!
- After adding and starting the container, you need to run `docker inspect nextcloud-aio-stalwart | grep STALWART_USER_PASS` to obtain the system administrator password (username: `admin`). With this information, you can log in to the web interface at `https://mail.your-domain.com/login`
- See https://stalw.art/docs/install/docker/ for next steps.
- Additionally, you might want to install and configure [snappymail](https://apps.nextcloud.com/apps/snappymail) or [mail](https://apps.nextcloud.com/apps/mail) inside Nextcloud in order to use your mail accounts for sending and retrieving mails.
Documentation is available on the container repository.
This documentation is regularly updated and is intended to be as simple and detailed as possible.
Thanks for all your feedback!
- See https://github.com/docjyJ/aio-stalwart#getting-started for getting start with this container.
- See https://stalw.art/docs/faq for further faq and docs on the project
- See https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers how to add it to the AIO stack

View File

@@ -1,29 +0,0 @@
> [!NOTE]
> Unless the starting script tells you, you have no action to do to update.
# UPGRADING
During a major server update, this message will be displayed:
> Your data is in an old format.
>
> Make a backup and see https://github.com/nextcloud/all-in-one/blob/main/community-containers/stalwart/upgrading.md
>
> To avoid any loss of data, Stalwart will not launch.
If there is no update, delete the `/opt/stalwart-mail/aio.lock` file from the container. Beware of data loss.
See https://github.com/stalwartlabs/mail-server/blob/main/UPGRADING.md
> [!CAUTION]
> Before each update don't forget to make a backup.
## Upgrading from 0.7.x to 0.8.x
Before upgrading, do a backup of your data !
```bash
sudo docker run --rm -v nextcloud_aio_stalwart:/opt/stalwart-mail -it --entrypoint /usr/local/bin/stalwart-mail stalwartlabs/mail-server:v0.7.3 --config /opt/stalwart-mail/etc/config.toml --export /opt/stalwart-mail/export
sudo docker run --rm -v nextcloud_aio_stalwart:/opt/stalwart-mail -it --entrypoint /usr/local/bin/stalwart-mail stalwartlabs/mail-server:v0.8.0 --config /opt/stalwart-mail/etc/config.toml --import /opt/stalwart-mail/export
sudo docker run --rm -v nextcloud_aio_stalwart:/opt/stalwart-mail -it --entrypoint /bin/rm alpine /opt/stalwart-mail/aio.lock
```

View File

@@ -29,6 +29,7 @@ services:
# NEXTCLOUD_ADDITIONAL_PHP_EXTENSIONS: imagick # This allows to add additional php extensions to the Nextcloud container permanently. Default is imagick but can be overwritten by modifying this value. See https://github.com/nextcloud/all-in-one#how-to-add-php-extensions-permanently-to-the-nextcloud-container
# NEXTCLOUD_ENABLE_DRI_DEVICE: true # This allows to enable the /dev/dri device in the Nextcloud container. ⚠️⚠️⚠️ Warning: this only works if the '/dev/dri' device is present on the host! If it should not exist on your host, don't set this to true as otherwise the Nextcloud container will fail to start! See https://github.com/nextcloud/all-in-one#how-to-enable-hardware-transcoding-for-nextcloud
# NEXTCLOUD_KEEP_DISABLED_APPS: false # Setting this to true will keep Nextcloud apps that are disabled in the AIO interface and not uninstall them if they should be installed. See https://github.com/nextcloud/all-in-one#how-to-keep-disabled-apps
# DISABLE_OVERWRITE_URL: true # Setting this to true will disable the ability to overwrite the URL in the AIO interface. See https://github.com/nextcloud/all-in-one#can-i-use-aio-with-multiple-domains
# TALK_PORT: 3478 # This allows to adjust the port that the talk container is using. 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

View File

@@ -16,6 +16,9 @@ services:
nextcloud-aio-notify-push:
condition: service_started
required: false
nextcloud-aio-whiteboard:
condition: service_started
required: false
image: nextcloud/aio-apache:latest
init: true
ports:
@@ -33,6 +36,7 @@ services:
- APACHE_MAX_SIZE=${APACHE_MAX_SIZE}
- APACHE_MAX_TIME=${NEXTCLOUD_MAX_TIME}
- NOTIFY_PUSH_HOST=nextcloud-aio-notify-push
- WHITEBOARD_HOST=nextcloud-aio-whiteboard
volumes:
- nextcloud_aio_nextcloud:/var/www/html:ro
- nextcloud_aio_apache:/mnt/data:rw
@@ -152,6 +156,8 @@ services:
- REMOVE_DISABLED_APPS=${REMOVE_DISABLED_APPS}
- APACHE_PORT=${APACHE_PORT}
- IMAGINARY_SECRET=${IMAGINARY_SECRET}
- WHITEBOARD_SECRET=${WHITEBOARD_SECRET}
- WHITEBOARD_ENABLED=${WHITEBOARD_ENABLED}
stop_grace_period: 600s
restart: unless-stopped
networks:
@@ -369,6 +375,27 @@ services:
cap_drop:
- NET_RAW
nextcloud-aio-whiteboard:
image: nextcloud/aio-whiteboard:latest
init: true
expose:
- "3002"
environment:
- TZ=${TIMEZONE}
- NEXTCLOUD_URL=https://${NC_DOMAIN}
- JWT_SECRET_KEY=${WHITEBOARD_SECRET}
- STORAGE_STRATEGY=redis
- REDIS_HOST=nextcloud-aio-redis
- REDIS_HOST_PASSWORD=${REDIS_PASSWORD}
restart: unless-stopped
profiles:
- whiteboard
read_only: true
networks:
- nextcloud-aio
cap_drop:
- NET_RAW
volumes:
nextcloud_aio_apache:
name: nextcloud_aio_apache

View File

@@ -30,9 +30,9 @@ Now copy the provided yaml file to a compose.yaml file by running `cp latest.yml
Now you should be ready to go with `sudo docker compose up`.
## Docker profiles
The default profile of `latest.yml` only provide the minimum necessary services: nextcloud, database, redis and apache. To get optional services collabora, talk, talk-recording, clamav, imaginary or fulltextsearch use additional arguments for each of them, for example `--profile collabora`. (Note: there is no clamav image for arm64).
The default profile of `latest.yml` only provide the minimum necessary services: nextcloud, database, redis and apache. To get optional services collabora, talk, whiteboard, talk-recording, clamav, imaginary or fulltextsearch use additional arguments for each of them, for example `--profile collabora`. (Note: there is no clamav image for arm64).
For a complete all-in-one with collabora use `sudo docker compose --profile collabora --profile talk --profile talk-recording --profile clamav --profile imaginary --profile fulltextsearch up`. (Note: there is no clamav image for arm64).
For a complete all-in-one with collabora use `sudo docker compose --profile collabora --profile talk --profile talk-recording --profile clamav --profile imaginary --profile fulltextsearch --profile whiteboard up`. (Note: there is no clamav image for arm64).
## How to update?
Since the AIO containers may change in the future, it is highly recommended to strictly follow the following procedure whenever you want to upgrade your containers.

View File

@@ -10,6 +10,7 @@ SIGNALING_SECRET= # TODO! This needs to be a unique and good password!
TALK_INTERNAL_SECRET= # TODO! This needs to be a unique and good password!
TIMEZONE=Europe/Berlin # TODO! This is the timezone that your containers will use.
TURN_SECRET= # TODO! This needs to be a unique and good password!
WHITEBOARD_SECRET= # TODO! This needs to be a unique and good password!
CLAMAV_ENABLED="no" # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically.
COLLABORA_ENABLED="no" # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically.
@@ -18,6 +19,7 @@ IMAGINARY_ENABLED="no" # Setting this to "yes" (with quotes) enables th
ONLYOFFICE_ENABLED="no" # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically.
TALK_ENABLED="no" # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically.
TALK_RECORDING_ENABLED="no" # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically.
WHITEBOARD_ENABLED="no" # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically.
APACHE_IP_BINDING=0.0.0.0 # This can be changed to e.g. 127.0.0.1 if you want to run AIO behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else) and if that is running on the same host and using localhost to connect
APACHE_MAX_SIZE=10737418240 # This needs to be an integer and in sync with NEXTCLOUD_UPLOAD_LIMIT

View File

@@ -2,12 +2,12 @@
There are basically three ways how to migrate from an already existing Nextcloud installation to Nextcloud AIO:
1. Migrate only the files which is the easiest way
1. Migrate only the files which is the easiest way (this excludes all calendar data for example)
1. Migrate the files and the database which is much more complicated (and doesn't work on former snap installations)
1. Use the user_migration app that allows to migrate some of the user's data from a former instance to a new instance but needs to be done manually for each user
## Migrate only the files
**Please note**: If you used groupfolders or encrypted your files before, you will need to restore the database, as well!
**Please note**: If you used groupfolders or encrypted your files before, you will need to restore the database, as well! (This will also exclude all calendar data for example).
The procedure for migrating only the files works like this:
1. Take a backup of your former instance (especially from your datadirectory, see `'datadirectory'` in your `config.php`)

View File

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

View File

@@ -25,11 +25,7 @@ spec:
spec:
initContainers:
- name: init-volumes
{{- if or .Values.IMAGE_MIRROR_PREFIX .Values.ALPINE_IMAGE_ORG }}
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.ALPINE_IMAGE_ORG}}/alpine"
{{- else }}
image: alpine
{{- end }}
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.ALPINE_IMAGE_ORG }}alpine"
command:
- chmod
- "777"
@@ -66,7 +62,9 @@ spec:
value: nextcloud-aio-talk
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-apache:20240808_083748"
- name: WHITEBOARD_HOST
value: nextcloud-aio-whiteboard
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-apache:20240925_080419"
name: nextcloud-aio-apache
ports:
- containerPort: {{ .Values.APACHE_PORT }}

View File

@@ -26,11 +26,7 @@ spec:
spec:
initContainers:
- name: init-subpath
{{- if or .Values.IMAGE_MIRROR_PREFIX .Values.ALPINE_IMAGE_ORG }}
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.ALPINE_IMAGE_ORG}}/alpine"
{{- else }}
image: alpine
{{- end }}
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.ALPINE_IMAGE_ORG }}alpine"
command:
- mkdir
- "-p"
@@ -40,11 +36,7 @@ spec:
- name: nextcloud-aio-clamav
mountPath: /nextcloud-aio-clamav
- name: init-volumes
{{- if or .Values.IMAGE_MIRROR_PREFIX .Values.ALPINE_IMAGE_ORG }}
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.ALPINE_IMAGE_ORG}}/alpine"
{{- else }}
image: alpine
{{- end }}
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.ALPINE_IMAGE_ORG }}alpine"
command:
- chown
- 100:100
@@ -61,7 +53,7 @@ spec:
value: "{{ .Values.NEXTCLOUD_UPLOAD_LIMIT }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-clamav:20240808_083748"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-clamav:20240925_080419"
name: nextcloud-aio-clamav
ports:
- containerPort: 3310

View File

@@ -36,7 +36,7 @@ spec:
value: --o:ssl.enable=false --o:ssl.termination=true --o:mount_jail_tree=false --o:logging.level=warning --o:home_mode.enable=true {{ .Values.COLLABORA_SECCOMP_POLICY }} --o:remote_font_config.url=https://{{ .Values.NC_DOMAIN }}/apps/richdocuments/settings/fonts.json
- name: server_name
value: "{{ .Values.NC_DOMAIN }}"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-collabora:20240808_083748"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-collabora:20240925_080419"
name: nextcloud-aio-collabora
ports:
- containerPort: 9980

View File

@@ -25,11 +25,7 @@ spec:
spec:
initContainers:
- name: init-subpath
{{- if or .Values.IMAGE_MIRROR_PREFIX .Values.ALPINE_IMAGE_ORG }}
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.ALPINE_IMAGE_ORG}}/alpine"
{{- else }}
image: alpine
{{- end }}
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.ALPINE_IMAGE_ORG }}alpine"
command:
- mkdir
- "-p"
@@ -42,11 +38,7 @@ spec:
- name: nextcloud-aio-database
mountPath: /nextcloud-aio-database
- name: init-volumes
{{- if or .Values.IMAGE_MIRROR_PREFIX .Values.ALPINE_IMAGE_ORG }}
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.ALPINE_IMAGE_ORG}}/alpine"
{{- else }}
image: alpine
{{- end }}
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.ALPINE_IMAGE_ORG }}alpine"
command:
- chown
- 999:999
@@ -70,7 +62,7 @@ spec:
value: nextcloud
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-postgresql:20240808_083748"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-postgresql:20240925_080419"
name: nextcloud-aio-database
ports:
- containerPort: 5432

View File

@@ -26,11 +26,7 @@ spec:
spec:
initContainers:
- name: init-volumes
{{- if or .Values.IMAGE_MIRROR_PREFIX .Values.ALPINE_IMAGE_ORG }}
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.ALPINE_IMAGE_ORG}}/alpine"
{{- else }}
image: alpine
{{- end }}
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.ALPINE_IMAGE_ORG }}alpine"
command:
- chmod
- "777"
@@ -60,7 +56,7 @@ spec:
value: basic
- name: xpack.security.enabled
value: "false"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-fulltextsearch:20240808_083748"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-fulltextsearch:20240925_080419"
name: nextcloud-aio-fulltextsearch
ports:
- containerPort: 9200

View File

@@ -28,7 +28,7 @@ spec:
value: "{{ .Values.IMAGINARY_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-imaginary:20240808_083748"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-imaginary:20240925_080419"
name: nextcloud-aio-imaginary
ports:
- containerPort: 9000

View File

@@ -25,11 +25,7 @@ spec:
spec:
initContainers:
- name: "delete-lost-found"
{{- if or .Values.IMAGE_MIRROR_PREFIX .Values.ALPINE_IMAGE_ORG }}
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.ALPINE_IMAGE_ORG}}/alpine"
{{- else }}
image: alpine
{{- end }}
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.ALPINE_IMAGE_ORG }}alpine"
command:
- rm
- "-rf"
@@ -40,11 +36,7 @@ spec:
- name: nextcloud-aio-nextcloud
mountPath: /nextcloud-aio-nextcloud
- name: init-volumes
{{- if or .Values.IMAGE_MIRROR_PREFIX .Values.ALPINE_IMAGE_ORG }}
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.ALPINE_IMAGE_ORG}}/alpine"
{{- else }}
image: alpine
{{- end }}
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.ALPINE_IMAGE_ORG }}alpine"
command:
- chmod
- "777"
@@ -177,7 +169,11 @@ spec:
value: "{{ .Values.TIMEZONE }}"
- name: UPDATE_NEXTCLOUD_APPS
value: "{{ .Values.UPDATE_NEXTCLOUD_APPS }}"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-nextcloud:20240808_083748"
- name: WHITEBOARD_ENABLED
value: "{{ .Values.WHITEBOARD_ENABLED }}"
- name: WHITEBOARD_SECRET
value: "{{ .Values.WHITEBOARD_SECRET }}"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-nextcloud:20240925_080419"
name: nextcloud-aio-nextcloud
ports:
- containerPort: 9000

View File

@@ -25,11 +25,7 @@ spec:
spec:
initContainers:
- name: init-volumes
{{- if or .Values.IMAGE_MIRROR_PREFIX .Values.ALPINE_IMAGE_ORG }}
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.ALPINE_IMAGE_ORG}}/alpine"
{{- else }}
image: alpine
{{- end }}
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.ALPINE_IMAGE_ORG }}alpine"
command:
- chmod
- "777"
@@ -57,7 +53,7 @@ spec:
value: nextcloud-aio-redis
- name: REDIS_HOST_PASSWORD
value: "{{ .Values.REDIS_PASSWORD }}"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-notify-push:20240808_083748"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-notify-push:20240925_080419"
name: nextcloud-aio-notify-push
ports:
- containerPort: 7867

View File

@@ -26,11 +26,7 @@ spec:
spec:
initContainers:
- name: init-volumes
{{- if or .Values.IMAGE_MIRROR_PREFIX .Values.ALPINE_IMAGE_ORG }}
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.ALPINE_IMAGE_ORG}}/alpine"
{{- else }}
image: alpine
{{- end }}
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.ALPINE_IMAGE_ORG }}alpine"
command:
- chmod
- "777"
@@ -48,7 +44,7 @@ spec:
value: "{{ .Values.ONLYOFFICE_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-onlyoffice:20240808_083748"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-onlyoffice:20240925_080419"
name: nextcloud-aio-onlyoffice
ports:
- containerPort: 80

View File

@@ -25,11 +25,7 @@ spec:
spec:
initContainers:
- name: init-volumes
{{- if or .Values.IMAGE_MIRROR_PREFIX .Values.ALPINE_IMAGE_ORG }}
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.ALPINE_IMAGE_ORG}}/alpine"
{{- else }}
image: alpine
{{- end }}
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.ALPINE_IMAGE_ORG }}alpine"
command:
- chmod
- "777"
@@ -43,7 +39,7 @@ spec:
value: "{{ .Values.REDIS_PASSWORD }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-redis:20240808_083748"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-redis:20240925_080419"
name: nextcloud-aio-redis
ports:
- containerPort: 6379

View File

@@ -42,7 +42,7 @@ spec:
value: "{{ .Values.TURN_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-talk:20240808_083748"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-talk:20240925_080419"
name: nextcloud-aio-talk
ports:
- containerPort: {{ .Values.TALK_PORT }}

View File

@@ -32,7 +32,7 @@ spec:
value: "{{ .Values.RECORDING_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-talk-recording:20240808_083748"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-talk-recording:20240925_080419"
name: nextcloud-aio-talk-recording
ports:
- containerPort: 1234

View File

@@ -0,0 +1,48 @@
{{- if eq .Values.WHITEBOARD_ENABLED "yes" }}
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace "{{ .Values.NAMESPACE }}"
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.service: nextcloud-aio-whiteboard
name: nextcloud-aio-whiteboard
namespace: "{{ .Values.NAMESPACE }}"
spec:
replicas: 1
selector:
matchLabels:
io.kompose.service: nextcloud-aio-whiteboard
template:
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace "{{ .Values.NAMESPACE }}"
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.service: nextcloud-aio-whiteboard
spec:
containers:
- env:
- name: JWT_SECRET_KEY
value: "{{ .Values.WHITEBOARD_SECRET }}"
- name: NEXTCLOUD_URL
value: https://{{ .Values.NC_DOMAIN }}
- name: REDIS_HOST
value: nextcloud-aio-redis
- name: REDIS_HOST_PASSWORD
value: "{{ .Values.REDIS_PASSWORD }}"
- name: STORAGE_STRATEGY
value: redis
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-whiteboard:20240925_080419"
name: nextcloud-aio-whiteboard
ports:
- containerPort: 3002
protocol: TCP
securityContext:
capabilities:
drop:
- NET_RAW
{{- end }}

View File

@@ -0,0 +1,20 @@
{{- if eq .Values.WHITEBOARD_ENABLED "yes" }}
apiVersion: v1
kind: Service
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace "{{ .Values.NAMESPACE }}"
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.service: nextcloud-aio-whiteboard
name: nextcloud-aio-whiteboard
namespace: "{{ .Values.NAMESPACE }}"
spec:
ipFamilyPolicy: PreferDualStack
ports:
- name: "3002"
port: 3002
targetPort: 3002
selector:
io.kompose.service: nextcloud-aio-whiteboard
{{- end }}

View File

@@ -59,11 +59,7 @@ find ./ -name '*networkpolicy.yaml' -exec sed -i "s|manual-install-nextcloud-aio
cat << EOL > /tmp/initcontainers
initContainers:
- name: init-volumes
{{- if or .Values.IMAGE_MIRROR_PREFIX .Values.ALPINE_IMAGE_ORG }}
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.ALPINE_IMAGE_ORG}}/alpine"
{{- else }}
image: alpine
{{- end }}
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.ALPINE_IMAGE_ORG }}alpine"
command:
- chmod
- "777"
@@ -72,22 +68,14 @@ EOL
cat << EOL > /tmp/initcontainers.database
initContainers:
- name: init-subpath
{{- if or .Values.IMAGE_MIRROR_PREFIX .Values.ALPINE_IMAGE_ORG }}
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.ALPINE_IMAGE_ORG}}/alpine"
{{- else }}
image: alpine
{{- end }}
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.ALPINE_IMAGE_ORG }}alpine"
command:
- mkdir
- "-p"
- /nextcloud-aio-database/data
volumeMountsInitContainer:
- name: init-volumes
{{- if or .Values.IMAGE_MIRROR_PREFIX .Values.ALPINE_IMAGE_ORG }}
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.ALPINE_IMAGE_ORG}}/alpine"
{{- else }}
image: alpine
{{- end }}
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.ALPINE_IMAGE_ORG }}alpine"
command:
- chown
- 999:999
@@ -97,22 +85,14 @@ EOL
cat << EOL > /tmp/initcontainers.clamav
initContainers:
- name: init-subpath
{{- if or .Values.IMAGE_MIRROR_PREFIX .Values.ALPINE_IMAGE_ORG }}
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.ALPINE_IMAGE_ORG}}/alpine"
{{- else }}
image: alpine
{{- end }}
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.ALPINE_IMAGE_ORG }}alpine"
command:
- mkdir
- "-p"
- /nextcloud-aio-clamav/data
volumeMountsInitContainer:
- name: init-volumes
{{- if or .Values.IMAGE_MIRROR_PREFIX .Values.ALPINE_IMAGE_ORG }}
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.ALPINE_IMAGE_ORG}}/alpine"
{{- else }}
image: alpine
{{- end }}
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.ALPINE_IMAGE_ORG }}alpine"
command:
- chown
- 100:100
@@ -122,22 +102,14 @@ EOL
cat << EOL > /tmp/initcontainers.nextcloud
initContainers:
- name: "delete-lost-found"
{{- if or .Values.IMAGE_MIRROR_PREFIX .Values.ALPINE_IMAGE_ORG }}
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.ALPINE_IMAGE_ORG}}/alpine"
{{- else }}
image: alpine
{{- end }}
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.ALPINE_IMAGE_ORG }}alpine"
command:
- rm
- "-rf"
- "/nextcloud-aio-nextcloud/lost+found"
volumeMountsInitRmLostFound:
- name: init-volumes
{{- if or .Values.IMAGE_MIRROR_PREFIX .Values.ALPINE_IMAGE_ORG }}
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.ALPINE_IMAGE_ORG}}/alpine"
{{- else }}
image: alpine
{{- end }}
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.ALPINE_IMAGE_ORG }}alpine"
command:
- chmod
- "777"
@@ -399,9 +371,9 @@ MAIL_DOMAIN: # (not set by default): Set a different domain for the emai
TALK_MAX_STREAM_BITRATE: "1048576" # This allows to adjust the max stream bitrate of the talk hpb
TALK_MAX_SCREEN_BITRATE: "2097152" # This allows to adjust the max stream bitrate of the talk hpb
IMAGE_MIRROR_PREFIX: # Setting this allows you to pull Nextcloud images through a mirror registry.
IMAGE_MIRROR_PREFIX: # Setting this allows you to pull Nextcloud images through a mirror registry. It needs a trailing slash!
NEXTCLOUD_IMAGE_ORG: nextcloud # Setting this allows you to change the image's org name in case a different image needs to be used e.g. for compliance reasons.
ALPINE_IMAGE_ORG: # Setting this allows you to change the image's org name in case a different image needs to be used e.g. for compliance reasons.
ALPINE_IMAGE_ORG: # Setting this allows you to change the image's org name in case a different image needs to be used e.g. for compliance reasons. It needs a trailing slash!
ADDITIONAL_CONFIG
mv /tmp/sample.conf ../helm-chart/values.yaml

View File

@@ -10,6 +10,7 @@ SIGNALING_SECRET: # TODO! This needs to be a unique and good password!
TALK_INTERNAL_SECRET: # TODO! This needs to be a unique and good password!
TIMEZONE: Europe/Berlin # TODO! This is the timezone that your containers will use.
TURN_SECRET: # TODO! This needs to be a unique and good password!
WHITEBOARD_SECRET: # TODO! This needs to be a unique and good password!
CLAMAV_ENABLED: "no" # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically.
COLLABORA_ENABLED: "no" # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically.
@@ -18,6 +19,7 @@ IMAGINARY_ENABLED: "no" # Setting this to "yes" (with quotes) enables t
ONLYOFFICE_ENABLED: "no" # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically.
TALK_ENABLED: "no" # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically.
TALK_RECORDING_ENABLED: "no" # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically.
WHITEBOARD_ENABLED: "no" # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically.
APACHE_MAX_SIZE: "10737418240" # This needs to be an integer and in sync with NEXTCLOUD_UPLOAD_LIMIT
APACHE_PORT: 443 # Changing this to a different value than 443 will allow you to run it behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else).
@@ -68,6 +70,6 @@ MAIL_DOMAIN: # (not set by default): Set a different domain for the emai
TALK_MAX_STREAM_BITRATE: "1048576" # This allows to adjust the max stream bitrate of the talk hpb
TALK_MAX_SCREEN_BITRATE: "2097152" # This allows to adjust the max stream bitrate of the talk hpb
IMAGE_MIRROR_PREFIX: # Setting this allows you to pull Nextcloud images through a mirror registry.
IMAGE_MIRROR_PREFIX: # Setting this allows you to pull Nextcloud images through a mirror registry. It needs a trailing slash!
NEXTCLOUD_IMAGE_ORG: nextcloud # Setting this allows you to change the image's org name in case a different image needs to be used e.g. for compliance reasons.
ALPINE_IMAGE_ORG: # Setting this allows you to change the image's org name in case a different image needs to be used e.g. for compliance reasons.
ALPINE_IMAGE_ORG: # Setting this allows you to change the image's org name in case a different image needs to be used e.g. for compliance reasons. It needs a trailing slash!

373
php/composer.lock generated
View File

@@ -391,26 +391,27 @@
},
{
"name": "laravel/serializable-closure",
"version": "v1.3.3",
"version": "v1.3.5",
"source": {
"type": "git",
"url": "https://github.com/laravel/serializable-closure.git",
"reference": "3dbf8a8e914634c48d389c1234552666b3d43754"
"reference": "1dc4a3dbfa2b7628a3114e43e32120cce7cdda9c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/serializable-closure/zipball/3dbf8a8e914634c48d389c1234552666b3d43754",
"reference": "3dbf8a8e914634c48d389c1234552666b3d43754",
"url": "https://api.github.com/repos/laravel/serializable-closure/zipball/1dc4a3dbfa2b7628a3114e43e32120cce7cdda9c",
"reference": "1dc4a3dbfa2b7628a3114e43e32120cce7cdda9c",
"shasum": ""
},
"require": {
"php": "^7.3|^8.0"
},
"require-dev": {
"nesbot/carbon": "^2.61",
"illuminate/support": "^8.0|^9.0|^10.0|^11.0",
"nesbot/carbon": "^2.61|^3.0",
"pestphp/pest": "^1.21.3",
"phpstan/phpstan": "^1.8.2",
"symfony/var-dumper": "^5.4.11"
"symfony/var-dumper": "^5.4.11|^6.2.0|^7.0.0"
},
"type": "library",
"extra": {
@@ -447,7 +448,7 @@
"issues": "https://github.com/laravel/serializable-closure/issues",
"source": "https://github.com/laravel/serializable-closure"
},
"time": "2023-11-08T14:08:06+00:00"
"time": "2024-09-23T13:33:08+00:00"
},
{
"name": "nikic/fast-route",
@@ -996,16 +997,16 @@
},
{
"name": "psr/log",
"version": "3.0.0",
"version": "3.0.2",
"source": {
"type": "git",
"url": "https://github.com/php-fig/log.git",
"reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001"
"reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001",
"reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001",
"url": "https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3",
"reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3",
"shasum": ""
},
"require": {
@@ -1040,9 +1041,9 @@
"psr-3"
],
"support": {
"source": "https://github.com/php-fig/log/tree/3.0.0"
"source": "https://github.com/php-fig/log/tree/3.0.2"
},
"time": "2021-07-14T16:46:02+00:00"
"time": "2024-09-11T13:17:53+00:00"
},
{
"name": "ralouphie/getallheaders",
@@ -1264,16 +1265,16 @@
},
{
"name": "slim/twig-view",
"version": "3.4.0",
"version": "3.4.1",
"source": {
"type": "git",
"url": "https://github.com/slimphp/Twig-View.git",
"reference": "1b351536b9a07ed90a3563ee9d71a987c5d74610"
"reference": "b4268d87d0e327feba5f88d32031e9123655b909"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/slimphp/Twig-View/zipball/1b351536b9a07ed90a3563ee9d71a987c5d74610",
"reference": "1b351536b9a07ed90a3563ee9d71a987c5d74610",
"url": "https://api.github.com/repos/slimphp/Twig-View/zipball/b4268d87d0e327feba5f88d32031e9123655b909",
"reference": "b4268d87d0e327feba5f88d32031e9123655b909",
"shasum": ""
},
"require": {
@@ -1281,12 +1282,12 @@
"psr/http-message": "^1.1 || ^2.0",
"slim/slim": "^4.12",
"symfony/polyfill-php81": "^1.29",
"twig/twig": "^3.8"
"twig/twig": "^3.11"
},
"require-dev": {
"phpspec/prophecy-phpunit": "^2.0",
"phpstan/phpstan": "^1.10.59",
"phpunit/phpunit": "^9.6",
"phpunit/phpunit": "^9.6 || ^10",
"psr/http-factory": "^1.0",
"squizlabs/php_codesniffer": "^3.9"
},
@@ -1323,9 +1324,9 @@
],
"support": {
"issues": "https://github.com/slimphp/Twig-View/issues",
"source": "https://github.com/slimphp/Twig-View/tree/3.4.0"
"source": "https://github.com/slimphp/Twig-View/tree/3.4.1"
},
"time": "2024-04-28T20:36:39+00:00"
"time": "2024-09-26T05:42:02+00:00"
},
{
"name": "symfony/deprecation-contracts",
@@ -1396,20 +1397,20 @@
},
{
"name": "symfony/polyfill-ctype",
"version": "v1.30.0",
"version": "v1.31.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-ctype.git",
"reference": "0424dff1c58f028c451efff2045f5d92410bd540"
"reference": "a3cc8b044a6ea513310cbd48ef7333b384945638"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/0424dff1c58f028c451efff2045f5d92410bd540",
"reference": "0424dff1c58f028c451efff2045f5d92410bd540",
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/a3cc8b044a6ea513310cbd48ef7333b384945638",
"reference": "a3cc8b044a6ea513310cbd48ef7333b384945638",
"shasum": ""
},
"require": {
"php": ">=7.1"
"php": ">=7.2"
},
"provide": {
"ext-ctype": "*"
@@ -1455,7 +1456,7 @@
"portable"
],
"support": {
"source": "https://github.com/symfony/polyfill-ctype/tree/v1.30.0"
"source": "https://github.com/symfony/polyfill-ctype/tree/v1.31.0"
},
"funding": [
{
@@ -1471,24 +1472,24 @@
"type": "tidelift"
}
],
"time": "2024-05-31T15:07:36+00:00"
"time": "2024-09-09T11:45:10+00:00"
},
{
"name": "symfony/polyfill-mbstring",
"version": "v1.30.0",
"version": "v1.31.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git",
"reference": "fd22ab50000ef01661e2a31d850ebaa297f8e03c"
"reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/fd22ab50000ef01661e2a31d850ebaa297f8e03c",
"reference": "fd22ab50000ef01661e2a31d850ebaa297f8e03c",
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/85181ba99b2345b0ef10ce42ecac37612d9fd341",
"reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341",
"shasum": ""
},
"require": {
"php": ">=7.1"
"php": ">=7.2"
},
"provide": {
"ext-mbstring": "*"
@@ -1535,7 +1536,7 @@
"shim"
],
"support": {
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.30.0"
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.31.0"
},
"funding": [
{
@@ -1551,104 +1552,24 @@
"type": "tidelift"
}
],
"time": "2024-06-19T12:30:46+00:00"
},
{
"name": "symfony/polyfill-php80",
"version": "v1.30.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php80.git",
"reference": "77fa7995ac1b21ab60769b7323d600a991a90433"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/77fa7995ac1b21ab60769b7323d600a991a90433",
"reference": "77fa7995ac1b21ab60769b7323d600a991a90433",
"shasum": ""
},
"require": {
"php": ">=7.1"
},
"type": "library",
"extra": {
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
}
},
"autoload": {
"files": [
"bootstrap.php"
],
"psr-4": {
"Symfony\\Polyfill\\Php80\\": ""
},
"classmap": [
"Resources/stubs"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Ion Bazan",
"email": "ion.bazan@gmail.com"
},
{
"name": "Nicolas Grekas",
"email": "p@tchwork.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
"polyfill",
"portable",
"shim"
],
"support": {
"source": "https://github.com/symfony/polyfill-php80/tree/v1.30.0"
},
"funding": [
{
"url": "https://symfony.com/sponsor",
"type": "custom"
},
{
"url": "https://github.com/fabpot",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
"time": "2024-05-31T15:07:36+00:00"
"time": "2024-09-09T11:45:10+00:00"
},
{
"name": "symfony/polyfill-php81",
"version": "v1.30.0",
"version": "v1.31.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php81.git",
"reference": "3fb075789fb91f9ad9af537c4012d523085bd5af"
"reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/3fb075789fb91f9ad9af537c4012d523085bd5af",
"reference": "3fb075789fb91f9ad9af537c4012d523085bd5af",
"url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c",
"reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c",
"shasum": ""
},
"require": {
"php": ">=7.1"
"php": ">=7.2"
},
"type": "library",
"extra": {
@@ -1691,7 +1612,7 @@
"shim"
],
"support": {
"source": "https://github.com/symfony/polyfill-php81/tree/v1.30.0"
"source": "https://github.com/symfony/polyfill-php81/tree/v1.31.0"
},
"funding": [
{
@@ -1707,28 +1628,28 @@
"type": "tidelift"
}
],
"time": "2024-06-19T12:30:46+00:00"
"time": "2024-09-09T11:45:10+00:00"
},
{
"name": "twig/twig",
"version": "v3.10.3",
"version": "v3.14.0",
"source": {
"type": "git",
"url": "https://github.com/twigphp/Twig.git",
"reference": "67f29781ffafa520b0bbfbd8384674b42db04572"
"reference": "126b2c97818dbff0cdf3fbfc881aedb3d40aae72"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/twigphp/Twig/zipball/67f29781ffafa520b0bbfbd8384674b42db04572",
"reference": "67f29781ffafa520b0bbfbd8384674b42db04572",
"url": "https://api.github.com/repos/twigphp/Twig/zipball/126b2c97818dbff0cdf3fbfc881aedb3d40aae72",
"reference": "126b2c97818dbff0cdf3fbfc881aedb3d40aae72",
"shasum": ""
},
"require": {
"php": ">=7.2.5",
"php": ">=8.0.2",
"symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-ctype": "^1.8",
"symfony/polyfill-mbstring": "^1.3",
"symfony/polyfill-php80": "^1.22"
"symfony/polyfill-php81": "^1.29"
},
"require-dev": {
"psr/container": "^1.0|^2.0",
@@ -1774,7 +1695,7 @@
],
"support": {
"issues": "https://github.com/twigphp/Twig/issues",
"source": "https://github.com/twigphp/Twig/tree/v3.10.3"
"source": "https://github.com/twigphp/Twig/tree/v3.14.0"
},
"funding": [
{
@@ -1786,7 +1707,7 @@
"type": "tidelift"
}
],
"time": "2024-05-16T10:04:27+00:00"
"time": "2024-09-09T17:55:12+00:00"
}
],
"packages-dev": [
@@ -2025,26 +1946,26 @@
},
{
"name": "composer/pcre",
"version": "3.2.0",
"version": "3.3.1",
"source": {
"type": "git",
"url": "https://github.com/composer/pcre.git",
"reference": "ea4ab6f9580a4fd221e0418f2c357cdd39102a90"
"reference": "63aaeac21d7e775ff9bc9d45021e1745c97521c4"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/composer/pcre/zipball/ea4ab6f9580a4fd221e0418f2c357cdd39102a90",
"reference": "ea4ab6f9580a4fd221e0418f2c357cdd39102a90",
"url": "https://api.github.com/repos/composer/pcre/zipball/63aaeac21d7e775ff9bc9d45021e1745c97521c4",
"reference": "63aaeac21d7e775ff9bc9d45021e1745c97521c4",
"shasum": ""
},
"require": {
"php": "^7.4 || ^8.0"
},
"conflict": {
"phpstan/phpstan": "<1.11.8"
"phpstan/phpstan": "<1.11.10"
},
"require-dev": {
"phpstan/phpstan": "^1.11.8",
"phpstan/phpstan": "^1.11.10",
"phpstan/phpstan-strict-rules": "^1.1",
"phpunit/phpunit": "^8 || ^9"
},
@@ -2084,7 +2005,7 @@
],
"support": {
"issues": "https://github.com/composer/pcre/issues",
"source": "https://github.com/composer/pcre/tree/3.2.0"
"source": "https://github.com/composer/pcre/tree/3.3.1"
},
"funding": [
{
@@ -2100,28 +2021,28 @@
"type": "tidelift"
}
],
"time": "2024-07-25T09:36:02+00:00"
"time": "2024-08-27T18:44:43+00:00"
},
{
"name": "composer/semver",
"version": "3.4.2",
"version": "3.4.3",
"source": {
"type": "git",
"url": "https://github.com/composer/semver.git",
"reference": "c51258e759afdb17f1fd1fe83bc12baaef6309d6"
"reference": "4313d26ada5e0c4edfbd1dc481a92ff7bff91f12"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/composer/semver/zipball/c51258e759afdb17f1fd1fe83bc12baaef6309d6",
"reference": "c51258e759afdb17f1fd1fe83bc12baaef6309d6",
"url": "https://api.github.com/repos/composer/semver/zipball/4313d26ada5e0c4edfbd1dc481a92ff7bff91f12",
"reference": "4313d26ada5e0c4edfbd1dc481a92ff7bff91f12",
"shasum": ""
},
"require": {
"php": "^5.3.2 || ^7.0 || ^8.0"
},
"require-dev": {
"phpstan/phpstan": "^1.4",
"symfony/phpunit-bridge": "^4.2 || ^5"
"phpstan/phpstan": "^1.11",
"symfony/phpunit-bridge": "^3 || ^7"
},
"type": "library",
"extra": {
@@ -2165,7 +2086,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.2"
"source": "https://github.com/composer/semver/tree/3.4.3"
},
"funding": [
{
@@ -2181,7 +2102,7 @@
"type": "tidelift"
}
],
"time": "2024-07-12T11:35:52+00:00"
"time": "2024-09-19T14:15:21+00:00"
},
{
"name": "composer/xdebug-handler",
@@ -2380,16 +2301,16 @@
},
{
"name": "felixfbecker/language-server-protocol",
"version": "v1.5.2",
"version": "v1.5.3",
"source": {
"type": "git",
"url": "https://github.com/felixfbecker/php-language-server-protocol.git",
"reference": "6e82196ffd7c62f7794d778ca52b69feec9f2842"
"reference": "a9e113dbc7d849e35b8776da39edaf4313b7b6c9"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/felixfbecker/php-language-server-protocol/zipball/6e82196ffd7c62f7794d778ca52b69feec9f2842",
"reference": "6e82196ffd7c62f7794d778ca52b69feec9f2842",
"url": "https://api.github.com/repos/felixfbecker/php-language-server-protocol/zipball/a9e113dbc7d849e35b8776da39edaf4313b7b6c9",
"reference": "a9e113dbc7d849e35b8776da39edaf4313b7b6c9",
"shasum": ""
},
"require": {
@@ -2430,22 +2351,22 @@
],
"support": {
"issues": "https://github.com/felixfbecker/php-language-server-protocol/issues",
"source": "https://github.com/felixfbecker/php-language-server-protocol/tree/v1.5.2"
"source": "https://github.com/felixfbecker/php-language-server-protocol/tree/v1.5.3"
},
"time": "2022-03-02T22:36:06+00:00"
"time": "2024-04-30T00:40:11+00:00"
},
{
"name": "fidry/cpu-core-counter",
"version": "1.1.0",
"version": "1.2.0",
"source": {
"type": "git",
"url": "https://github.com/theofidry/cpu-core-counter.git",
"reference": "f92996c4d5c1a696a6a970e20f7c4216200fcc42"
"reference": "8520451a140d3f46ac33042715115e290cf5785f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/f92996c4d5c1a696a6a970e20f7c4216200fcc42",
"reference": "f92996c4d5c1a696a6a970e20f7c4216200fcc42",
"url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/8520451a140d3f46ac33042715115e290cf5785f",
"reference": "8520451a140d3f46ac33042715115e290cf5785f",
"shasum": ""
},
"require": {
@@ -2485,7 +2406,7 @@
],
"support": {
"issues": "https://github.com/theofidry/cpu-core-counter/issues",
"source": "https://github.com/theofidry/cpu-core-counter/tree/1.1.0"
"source": "https://github.com/theofidry/cpu-core-counter/tree/1.2.0"
},
"funding": [
{
@@ -2493,20 +2414,20 @@
"type": "github"
}
],
"time": "2024-02-07T09:43:46+00:00"
"time": "2024-08-06T10:04:20+00:00"
},
{
"name": "netresearch/jsonmapper",
"version": "v4.4.1",
"version": "v4.5.0",
"source": {
"type": "git",
"url": "https://github.com/cweiske/jsonmapper.git",
"reference": "132c75c7dd83e45353ebb9c6c9f591952995bbf0"
"reference": "8e76efb98ee8b6afc54687045e1b8dba55ac76e5"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/132c75c7dd83e45353ebb9c6c9f591952995bbf0",
"reference": "132c75c7dd83e45353ebb9c6c9f591952995bbf0",
"url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/8e76efb98ee8b6afc54687045e1b8dba55ac76e5",
"reference": "8e76efb98ee8b6afc54687045e1b8dba55ac76e5",
"shasum": ""
},
"require": {
@@ -2542,22 +2463,22 @@
"support": {
"email": "cweiske@cweiske.de",
"issues": "https://github.com/cweiske/jsonmapper/issues",
"source": "https://github.com/cweiske/jsonmapper/tree/v4.4.1"
"source": "https://github.com/cweiske/jsonmapper/tree/v4.5.0"
},
"time": "2024-01-31T06:18:54+00:00"
"time": "2024-09-08T10:13:13+00:00"
},
{
"name": "nikic/php-parser",
"version": "v4.19.1",
"version": "v4.19.2",
"source": {
"type": "git",
"url": "https://github.com/nikic/PHP-Parser.git",
"reference": "4e1b88d21c69391150ace211e9eaf05810858d0b"
"reference": "0ed4c8949a32986043e977dbe14776c14d644c45"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/4e1b88d21c69391150ace211e9eaf05810858d0b",
"reference": "4e1b88d21c69391150ace211e9eaf05810858d0b",
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/0ed4c8949a32986043e977dbe14776c14d644c45",
"reference": "0ed4c8949a32986043e977dbe14776c14d644c45",
"shasum": ""
},
"require": {
@@ -2598,9 +2519,9 @@
],
"support": {
"issues": "https://github.com/nikic/PHP-Parser/issues",
"source": "https://github.com/nikic/PHP-Parser/tree/v4.19.1"
"source": "https://github.com/nikic/PHP-Parser/tree/v4.19.2"
},
"time": "2024-03-17T08:10:35+00:00"
"time": "2024-09-17T19:36:00+00:00"
},
{
"name": "phpdocumentor/reflection-common",
@@ -2779,16 +2700,16 @@
},
{
"name": "phpstan/phpdoc-parser",
"version": "1.29.1",
"version": "1.32.0",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpdoc-parser.git",
"reference": "fcaefacf2d5c417e928405b71b400d4ce10daaf4"
"reference": "6ca22b154efdd9e3c68c56f5d94670920a1c19a4"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/fcaefacf2d5c417e928405b71b400d4ce10daaf4",
"reference": "fcaefacf2d5c417e928405b71b400d4ce10daaf4",
"url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/6ca22b154efdd9e3c68c56f5d94670920a1c19a4",
"reference": "6ca22b154efdd9e3c68c56f5d94670920a1c19a4",
"shasum": ""
},
"require": {
@@ -2820,9 +2741,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/1.29.1"
"source": "https://github.com/phpstan/phpdoc-parser/tree/1.32.0"
},
"time": "2024-05-31T08:52:43+00:00"
"time": "2024-09-26T07:23:32+00:00"
},
{
"name": "sebastian/diff",
@@ -2965,12 +2886,12 @@
"source": {
"type": "git",
"url": "https://github.com/sserbin/twig-linter.git",
"reference": "0b7cc4d61b6cf423ec837a0969ea5e0c8f017ddb"
"reference": "c4cb0d08c8290d8fed541eb027bd85dba90a5914"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sserbin/twig-linter/zipball/0b7cc4d61b6cf423ec837a0969ea5e0c8f017ddb",
"reference": "0b7cc4d61b6cf423ec837a0969ea5e0c8f017ddb",
"url": "https://api.github.com/repos/sserbin/twig-linter/zipball/c4cb0d08c8290d8fed541eb027bd85dba90a5914",
"reference": "c4cb0d08c8290d8fed541eb027bd85dba90a5914",
"shasum": ""
},
"require": {
@@ -2983,7 +2904,7 @@
"require-dev": {
"phpunit/phpunit": "^7.3||^8.2|^9.5",
"squizlabs/php_codesniffer": "^3.3",
"vimeo/psalm": "^4.7"
"vimeo/psalm": "^4.7 || ^5.8"
},
"default-branch": true,
"bin": [
@@ -3013,22 +2934,22 @@
],
"support": {
"issues": "https://github.com/sserbin/twig-linter/issues",
"source": "https://github.com/sserbin/twig-linter/tree/3.1.0"
"source": "https://github.com/sserbin/twig-linter/tree/3.1.1"
},
"time": "2022-06-29T11:06:19+00:00"
"time": "2024-09-09T16:51:23+00:00"
},
{
"name": "symfony/console",
"version": "v6.4.10",
"version": "v6.4.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
"reference": "504974cbe43d05f83b201d6498c206f16fc0cdbc"
"reference": "72d080eb9edf80e36c19be61f72c98ed8273b765"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/console/zipball/504974cbe43d05f83b201d6498c206f16fc0cdbc",
"reference": "504974cbe43d05f83b201d6498c206f16fc0cdbc",
"url": "https://api.github.com/repos/symfony/console/zipball/72d080eb9edf80e36c19be61f72c98ed8273b765",
"reference": "72d080eb9edf80e36c19be61f72c98ed8273b765",
"shasum": ""
},
"require": {
@@ -3093,7 +3014,7 @@
"terminal"
],
"support": {
"source": "https://github.com/symfony/console/tree/v6.4.10"
"source": "https://github.com/symfony/console/tree/v6.4.12"
},
"funding": [
{
@@ -3109,20 +3030,20 @@
"type": "tidelift"
}
],
"time": "2024-07-26T12:30:32+00:00"
"time": "2024-09-20T08:15:52+00:00"
},
{
"name": "symfony/filesystem",
"version": "v7.1.2",
"version": "v7.1.5",
"source": {
"type": "git",
"url": "https://github.com/symfony/filesystem.git",
"reference": "92a91985250c251de9b947a14bb2c9390b1a562c"
"reference": "61fe0566189bf32e8cfee78335d8776f64a66f5a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/filesystem/zipball/92a91985250c251de9b947a14bb2c9390b1a562c",
"reference": "92a91985250c251de9b947a14bb2c9390b1a562c",
"url": "https://api.github.com/repos/symfony/filesystem/zipball/61fe0566189bf32e8cfee78335d8776f64a66f5a",
"reference": "61fe0566189bf32e8cfee78335d8776f64a66f5a",
"shasum": ""
},
"require": {
@@ -3159,7 +3080,7 @@
"description": "Provides basic utilities for the filesystem",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/filesystem/tree/v7.1.2"
"source": "https://github.com/symfony/filesystem/tree/v7.1.5"
},
"funding": [
{
@@ -3175,20 +3096,20 @@
"type": "tidelift"
}
],
"time": "2024-06-28T10:03:55+00:00"
"time": "2024-09-17T09:16:35+00:00"
},
{
"name": "symfony/finder",
"version": "v6.4.10",
"version": "v6.4.11",
"source": {
"type": "git",
"url": "https://github.com/symfony/finder.git",
"reference": "af29198d87112bebdd397bd7735fbd115997824c"
"reference": "d7eb6daf8cd7e9ac4976e9576b32042ef7253453"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/finder/zipball/af29198d87112bebdd397bd7735fbd115997824c",
"reference": "af29198d87112bebdd397bd7735fbd115997824c",
"url": "https://api.github.com/repos/symfony/finder/zipball/d7eb6daf8cd7e9ac4976e9576b32042ef7253453",
"reference": "d7eb6daf8cd7e9ac4976e9576b32042ef7253453",
"shasum": ""
},
"require": {
@@ -3223,7 +3144,7 @@
"description": "Finds files and directories via an intuitive fluent interface",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/finder/tree/v6.4.10"
"source": "https://github.com/symfony/finder/tree/v6.4.11"
},
"funding": [
{
@@ -3239,24 +3160,24 @@
"type": "tidelift"
}
],
"time": "2024-07-24T07:06:38+00:00"
"time": "2024-08-13T14:27:37+00:00"
},
{
"name": "symfony/polyfill-intl-grapheme",
"version": "v1.30.0",
"version": "v1.31.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-grapheme.git",
"reference": "64647a7c30b2283f5d49b874d84a18fc22054b7a"
"reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/64647a7c30b2283f5d49b874d84a18fc22054b7a",
"reference": "64647a7c30b2283f5d49b874d84a18fc22054b7a",
"url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe",
"reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe",
"shasum": ""
},
"require": {
"php": ">=7.1"
"php": ">=7.2"
},
"suggest": {
"ext-intl": "For best performance"
@@ -3301,7 +3222,7 @@
"shim"
],
"support": {
"source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.30.0"
"source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.31.0"
},
"funding": [
{
@@ -3317,24 +3238,24 @@
"type": "tidelift"
}
],
"time": "2024-05-31T15:07:36+00:00"
"time": "2024-09-09T11:45:10+00:00"
},
{
"name": "symfony/polyfill-intl-normalizer",
"version": "v1.30.0",
"version": "v1.31.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
"reference": "a95281b0be0d9ab48050ebd988b967875cdb9fdb"
"reference": "3833d7255cc303546435cb650316bff708a1c75c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/a95281b0be0d9ab48050ebd988b967875cdb9fdb",
"reference": "a95281b0be0d9ab48050ebd988b967875cdb9fdb",
"url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/3833d7255cc303546435cb650316bff708a1c75c",
"reference": "3833d7255cc303546435cb650316bff708a1c75c",
"shasum": ""
},
"require": {
"php": ">=7.1"
"php": ">=7.2"
},
"suggest": {
"ext-intl": "For best performance"
@@ -3382,7 +3303,7 @@
"shim"
],
"support": {
"source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.30.0"
"source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.31.0"
},
"funding": [
{
@@ -3398,7 +3319,7 @@
"type": "tidelift"
}
],
"time": "2024-05-31T15:07:36+00:00"
"time": "2024-09-09T11:45:10+00:00"
},
{
"name": "symfony/service-contracts",
@@ -3485,16 +3406,16 @@
},
{
"name": "symfony/string",
"version": "v7.1.3",
"version": "v7.1.5",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
"reference": "ea272a882be7f20cad58d5d78c215001617b7f07"
"reference": "d66f9c343fa894ec2037cc928381df90a7ad4306"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/string/zipball/ea272a882be7f20cad58d5d78c215001617b7f07",
"reference": "ea272a882be7f20cad58d5d78c215001617b7f07",
"url": "https://api.github.com/repos/symfony/string/zipball/d66f9c343fa894ec2037cc928381df90a7ad4306",
"reference": "d66f9c343fa894ec2037cc928381df90a7ad4306",
"shasum": ""
},
"require": {
@@ -3552,7 +3473,7 @@
"utf8"
],
"support": {
"source": "https://github.com/symfony/string/tree/v7.1.3"
"source": "https://github.com/symfony/string/tree/v7.1.5"
},
"funding": [
{
@@ -3568,20 +3489,20 @@
"type": "tidelift"
}
],
"time": "2024-07-22T10:25:37+00:00"
"time": "2024-09-20T08:28:38+00:00"
},
{
"name": "vimeo/psalm",
"version": "5.25.0",
"version": "5.26.1",
"source": {
"type": "git",
"url": "https://github.com/vimeo/psalm.git",
"reference": "01a8eb06b9e9cc6cfb6a320bf9fb14331919d505"
"reference": "d747f6500b38ac4f7dfc5edbcae6e4b637d7add0"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/vimeo/psalm/zipball/01a8eb06b9e9cc6cfb6a320bf9fb14331919d505",
"reference": "01a8eb06b9e9cc6cfb6a320bf9fb14331919d505",
"url": "https://api.github.com/repos/vimeo/psalm/zipball/d747f6500b38ac4f7dfc5edbcae6e4b637d7add0",
"reference": "d747f6500b38ac4f7dfc5edbcae6e4b637d7add0",
"shasum": ""
},
"require": {
@@ -3602,7 +3523,7 @@
"felixfbecker/language-server-protocol": "^1.5.2",
"fidry/cpu-core-counter": "^0.4.1 || ^0.5.1 || ^1.0.0",
"netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0",
"nikic/php-parser": "^4.16",
"nikic/php-parser": "^4.17",
"php": "^7.4 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0",
"sebastian/diff": "^4.0 || ^5.0 || ^6.0",
"spatie/array-to-xml": "^2.17.0 || ^3.0",
@@ -3678,7 +3599,7 @@
"issues": "https://github.com/vimeo/psalm/issues",
"source": "https://github.com/vimeo/psalm"
},
"time": "2024-06-16T15:08:35+00:00"
"time": "2024-09-08T18:53:08+00:00"
},
{
"name": "wapmorgan/php-deprecation-detector",

View File

@@ -8,7 +8,8 @@
"nextcloud-aio-collabora",
"nextcloud-aio-talk",
"nextcloud-aio-nextcloud",
"nextcloud-aio-notify-push"
"nextcloud-aio-notify-push",
"nextcloud-aio-whiteboard"
],
"display_name": "Apache",
"image": "nextcloud/aio-apache",
@@ -37,7 +38,8 @@
"TZ=%TIMEZONE%",
"APACHE_MAX_SIZE=%APACHE_MAX_SIZE%",
"APACHE_MAX_TIME=%NEXTCLOUD_MAX_TIME%",
"NOTIFY_PUSH_HOST=nextcloud-aio-notify-push"
"NOTIFY_PUSH_HOST=nextcloud-aio-notify-push",
"WHITEBOARD_HOST=nextcloud-aio-whiteboard"
],
"volumes": [
{
@@ -148,7 +150,8 @@
"TURN_SECRET",
"SIGNALING_SECRET",
"FULLTEXTSEARCH_PASSWORD",
"IMAGINARY_SECRET"
"IMAGINARY_SECRET",
"WHITEBOARD_SECRET"
],
"volumes": [
{
@@ -185,15 +188,15 @@
"ADMIN_USER=admin",
"ADMIN_PASSWORD=%NEXTCLOUD_PASSWORD%",
"NEXTCLOUD_DATA_DIR=/mnt/ncdata",
"OVERWRITEHOST=%NC_DOMAIN%",
"OVERWRITEPROTOCOL=https",
"OVERWRITEHOST=%OVERWRITEHOST%",
"OVERWRITEPROTOCOL=%OVERWRITEPROTOCOL%",
"TURN_SECRET=%TURN_SECRET%",
"SIGNALING_SECRET=%SIGNALING_SECRET%",
"ONLYOFFICE_SECRET=%ONLYOFFICE_SECRET%",
"AIO_URL=%AIO_URL%",
"NEXTCLOUD_MOUNT=%NEXTCLOUD_MOUNT%",
"CLAMAV_ENABLED=%CLAMAV_ENABLED%",
"CLAMAV_HOST=nextcloud-aio-clamav",
"CLAMAV_HOST=nextcloud-aio-clamav.nextcloud-aio",
"ONLYOFFICE_ENABLED=%ONLYOFFICE_ENABLED%",
"COLLABORA_ENABLED=%COLLABORA_ENABLED%",
"COLLABORA_HOST=nextcloud-aio-collabora",
@@ -203,12 +206,12 @@
"TZ=%TIMEZONE%",
"TALK_PORT=%TALK_PORT%",
"IMAGINARY_ENABLED=%IMAGINARY_ENABLED%",
"IMAGINARY_HOST=nextcloud-aio-imaginary",
"IMAGINARY_HOST=nextcloud-aio-imaginary.nextcloud-aio",
"CLAMAV_MAX_SIZE=%APACHE_MAX_SIZE%",
"PHP_UPLOAD_LIMIT=%NEXTCLOUD_UPLOAD_LIMIT%",
"PHP_MEMORY_LIMIT=%NEXTCLOUD_MEMORY_LIMIT%",
"FULLTEXTSEARCH_ENABLED=%FULLTEXTSEARCH_ENABLED%",
"FULLTEXTSEARCH_HOST=nextcloud-aio-fulltextsearch",
"FULLTEXTSEARCH_HOST=nextcloud-aio-fulltextsearch.nextcloud-aio",
"PHP_MAX_TIME=%NEXTCLOUD_MAX_TIME%",
"TRUSTED_CACERTS_DIR=%NEXTCLOUD_TRUSTED_CACERTS_DIR%",
"STARTUP_APPS=%NEXTCLOUD_STARTUP_APPS%",
@@ -217,14 +220,16 @@
"INSTALL_LATEST_MAJOR=%INSTALL_LATEST_MAJOR%",
"TALK_RECORDING_ENABLED=%TALK_RECORDING_ENABLED%",
"RECORDING_SECRET=%RECORDING_SECRET%",
"TALK_RECORDING_HOST=nextcloud-aio-talk-recording",
"TALK_RECORDING_HOST=nextcloud-aio-talk-recording.nextcloud-aio",
"FULLTEXTSEARCH_PASSWORD=%FULLTEXTSEARCH_PASSWORD%",
"DOCKER_SOCKET_PROXY_ENABLED=%DOCKER_SOCKET_PROXY_ENABLED%",
"REMOVE_DISABLED_APPS=%REMOVE_DISABLED_APPS%",
"APACHE_PORT=%APACHE_PORT%",
"ADDITIONAL_TRUSTED_PROXY=%CADDY_IP_ADDRESS%",
"THIS_IS_AIO=true",
"IMAGINARY_SECRET=%IMAGINARY_SECRET%"
"IMAGINARY_SECRET=%IMAGINARY_SECRET%",
"WHITEBOARD_SECRET=%WHITEBOARD_SECRET%",
"WHITEBOARD_ENABLED=%WHITEBOARD_ENABLED%"
],
"stop_grace_period": 600,
"restart": "unless-stopped",
@@ -746,6 +751,40 @@
"cap_drop": [
"NET_RAW"
]
},
{
"container_name": "nextcloud-aio-whiteboard",
"image_tag": "%AIO_CHANNEL%",
"display_name": "Whiteboard",
"image": "nextcloud/aio-whiteboard",
"init": true,
"expose": [
"3002"
],
"internal_port": "3002",
"environment": [
"TZ=%TIMEZONE%",
"NEXTCLOUD_URL=https://%NC_DOMAIN%",
"JWT_SECRET_KEY=%WHITEBOARD_SECRET%",
"STORAGE_STRATEGY=redis",
"REDIS_HOST=nextcloud-aio-redis",
"REDIS_HOST_PASSWORD=%REDIS_PASSWORD%"
],
"secrets": [
"WHITEBOARD_SECRET",
"REDIS_PASSWORD"
],
"restart": "unless-stopped",
"profiles": [
"whiteboard"
],
"read_only": true,
"networks": [
"nextcloud-aio"
],
"cap_drop": [
"NET_RAW"
]
}
]
}

View File

@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<files psalm-version="5.25.0@01a8eb06b9e9cc6cfb6a320bf9fb14331919d505"/>
<files psalm-version="5.26.1@d747f6500b38ac4f7dfc5edbcae6e4b637d7add0"/>

View File

@@ -0,0 +1,5 @@
document.addEventListener("DOMContentLoaded", function(event) {
// Whiteboard
let whiteboard = document.getElementById("whiteboard");
whiteboard.disabled = true;
});

Binary file not shown.

After

Width:  |  Height:  |  Size: 661 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

View File

@@ -125,6 +125,7 @@ $app->get('/containers', function (Request $request, Response $response, array $
'is_dri_device_enabled' => $configurationManager->isDriDeviceEnabled(),
'is_talk_recording_enabled' => $configurationManager->isTalkRecordingEnabled(),
'is_docker_socket_proxy_enabled' => $configurationManager->isDockerSocketProxyEnabled(),
'is_whiteboard_enabled' => $configurationManager->isWhiteboardEnabled(),
]);
})->setName('profile');
$app->get('/login', function (Request $request, Response $response, array $args) use ($container) {

View File

@@ -66,4 +66,8 @@ document.addEventListener("DOMContentLoaded", function(event) {
dockerSocketProxy.addEventListener('change', makeOptionsFormSubmitVisible);
// dockerSocketProxy.addEventListener('change', handleDockerSocketProxyWarning);
}
// Whiteboard
let whiteboard = document.getElementById("whiteboard");
whiteboard.addEventListener('change', makeOptionsFormSubmitVisible);
});

View File

@@ -9,28 +9,25 @@ a {
color: #0082c9;
}
.button {
padding: 6px 16px;
a.button,
input[type="submit"] {
padding: 8px 16px;
width: auto;
min-height: 34px;
height: 34px;
cursor: pointer;
background-color:#0082c9;
background-color: #0082c9;
font-weight: bold;
border-radius: 100px;
border-radius: 8px;
margin: 3px 3px 3px 0;
font-size: 13px;
font-size: 14px;
color: white;
border: 1px solid black;
border: .5px solid black;
outline: none;
}
.button:focus {
color:black;
border: 2px solid black;
}
#logout {
margin-top: 7px;
a.button:focus,
input[type="submit"]:focus {
border: 1px solid black;
}
summary {
@@ -88,8 +85,7 @@ div.toast {
position: fixed;
z-index: 1000;
border-radius: 3px;
background: none;
background-color: white;
background: white none;
}
.login {
@@ -100,7 +96,7 @@ div.toast {
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
border-radius: 16px;
border-radius: 12px;
}
.login > .monospace {
@@ -108,12 +104,36 @@ div.toast {
font-size: 17px;
}
input {
padding: 10px;
margin-bottom: 15px;
form {
margin: 0;
}
.login > form > input {
input[type="text"],
input[type="password"],
select {
padding-left: 8px;
padding-right: 8px;
height: 34px;
margin-bottom: 15px;
border-radius: 8px;
border: .5px solid black;
}
textarea {
border-radius: 8px;
border: .5px solid black;
}
input[type="text"]:focus,
input[type="password"]:focus,
textarea:focus,
select:focus {
border: 1px solid black;
}
.login > form > input[type="password"],
.login > form > input[type="text"],
.login > form > input[type="submit"] {
width: 100%;
}
@@ -123,30 +143,30 @@ input {
display: block;
}
.login > .button {
.login a.button,
.login input[type="submit"] {
margin-left: auto;
margin-right: auto;
display: block;
text-align: center;
line-height: 33px;
margin-top: 20px;
padding: 0px;
align-content: center;
}
.login-wrapper {
height: 100%;
width: 100%;
background-color: #0082c9;
background-image: linear-gradient(
40deg
, #0082c9 0%, #30b6ff 100%);
background-size: contain;
background-image: url('/img/background.png'), linear-gradient(
40deg
, #0082c9 0%, #30b6ff 100%);
position: relative;
min-height: 100dvh;
min-width: 100vw;
position: fixed;
width: 100vw;
height: auto;
background-image: url("img/Background_Light.jpg");
background-position: center;
background-repeat: no-repeat;
background-size: cover;
}
.content {
main {
padding: 20px;
max-width: 100%;
word-break: break-word;
@@ -173,26 +193,31 @@ header {
background-image: linear-gradient(40deg, #0082c9 0%, #30b6ff 100%);
height: 50px;
justify-content: space-between;
align-items: center;
display: flex;
}
header > form {
margin: 0 8px;
}
.loading {
color: grey;
}
#overlay {
position: fixed; /* Sit on top of the page content */
display: none; /* Hidden by default */
width: 100%; /* Full width (cover the whole page) */
height: 100%; /* Full height (cover the whole page) */
top: 0;
left: 0;
background-color: rgba(0,0,0,0.5); /* Black background with opacity */
z-index: 2;
position: fixed; /* Sit on top of the page content */
display: none; /* Hidden by default */
width: 100%; /* Full width (cover the whole page) */
height: 100%; /* Full height (cover the whole page) */
top: 0;
left: 0;
background-color: rgba(0, 0, 0, 0.5); /* Black background with opacity */
z-index: 2;
}
#overlay.loading {
display: block;
display: block;
}
.loader {
@@ -206,15 +231,15 @@ header {
position: absolute;
top: calc(50% - 60px);
left: calc(50% - 60px);
}
/* Safari */
@-webkit-keyframes spin {
}
/* Safari */
@-webkit-keyframes spin {
0% { -webkit-transform: rotate(0deg); }
100% { -webkit-transform: rotate(360deg); }
}
@keyframes spin {
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
}

View File

@@ -95,6 +95,10 @@ class ContainerDefinitionFetcher
if (!$this->configurationManager->isDockerSocketProxyEnabled()) {
continue;
}
} elseif ($entry['container_name'] === 'nextcloud-aio-whiteboard') {
if (!$this->configurationManager->isWhiteboardEnabled()) {
continue;
}
}
$ports = new ContainerPorts();
@@ -200,6 +204,10 @@ class ContainerDefinitionFetcher
if (!$this->configurationManager->isDockerSocketProxyEnabled()) {
continue;
}
} elseif ($value === 'nextcloud-aio-whiteboard') {
if (!$this->configurationManager->isWhiteboardEnabled()) {
continue;
}
}
$dependsOn[] = $value;
}

View File

@@ -120,6 +120,11 @@ class ConfigurationController
} else {
$this->configurationManager->SetDockerSocketProxyEnabledState(0);
}
if (isset($request->getParsedBody()['whiteboard'])) {
$this->configurationManager->SetWhiteboardEnabledState(1);
} else {
$this->configurationManager->SetWhiteboardEnabledState(0);
}
}
if (isset($request->getParsedBody()['delete_collabora_dictionaries'])) {

View File

@@ -173,7 +173,7 @@ class DockerController
}
if (isset($request->getParsedBody()['install_latest_major'])) {
$installLatestMajor = 29;
$installLatestMajor = 30;
} else {
$installLatestMajor = "";
}

View File

@@ -71,7 +71,7 @@ class ConfigurationManager
if (!file_exists(DataConst::GetBackupArchivesList())) {
return '';
}
$content = file_get_contents(DataConst::GetBackupArchivesList());
if ($content === '') {
return '';
@@ -91,7 +91,7 @@ class ConfigurationManager
if ($lastBackupTime === "") {
return '';
}
return $lastBackupTime;
}
@@ -99,7 +99,7 @@ class ConfigurationManager
if (!file_exists(DataConst::GetBackupArchivesList())) {
return [];
}
$content = file_get_contents(DataConst::GetBackupArchivesList());
if ($content === '') {
return [];
@@ -110,7 +110,7 @@ class ConfigurationManager
foreach($backupLines as $lines) {
if ($lines !== "") {
$backupTimesTemp = explode(',', $lines);
$backupTimes[] = $backupTimesTemp[1];
$backupTimes[] = $backupTimesTemp[1];
}
}
@@ -140,7 +140,7 @@ class ConfigurationManager
if (!$this->isx64Platform()) {
return false;
}
$config = $this->GetConfig();
if (isset($config['isClamavEnabled']) && $config['isClamavEnabled'] === 1) {
return true;
@@ -164,6 +164,21 @@ class ConfigurationManager
$this->WriteConfig($config);
}
public function isWhiteboardEnabled() : bool {
$config = $this->GetConfig();
if (isset($config['isWhiteboardEnabled']) && $config['isWhiteboardEnabled'] === 1) {
return true;
} else {
return false;
}
}
public function SetWhiteboardEnabledState(int $value) : void {
$config = $this->GetConfig();
$config['isWhiteboardEnabled'] = $value;
$this->WriteConfig($config);
}
public function SetClamavEnabledState(int $value) : void {
$config = $this->GetConfig();
$config['isClamavEnabled'] = $value;
@@ -349,7 +364,7 @@ class ConfigurationManager
$testUrl = $protocol . $domain . ':443';
curl_setopt($ch, CURLOPT_URL, $testUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$response = (string)curl_exec($ch);
# Get rid of trailing \n
@@ -455,7 +470,7 @@ class ConfigurationManager
if ($location === '') {
throw new InvalidSettingConfigurationException("Please enter a path!");
}
$isValidPath = false;
if (str_starts_with($location, '/') && !str_ends_with($location, '/')) {
$isValidPath = true;
@@ -520,6 +535,10 @@ class ConfigurationManager
return $this->GetEnvironmentalVariableOrConfig($envVariableName, $configName, $defaultValue);
}
public function IsOverwriteEnable() : bool {
return getenv('DISABLE_OVERWRITE_URL') !== 'yes';
}
/**
* @throws InvalidSettingConfigurationException
*/
@@ -698,7 +717,7 @@ class ConfigurationManager
if (!preg_match("#^[0-1][0-9]:[0-5][0-9]$#", $time) && !preg_match("#^2[0-3]:[0-5][0-9]$#", $time)) {
throw new InvalidSettingConfigurationException("You did not enter a correct time! One correct example is '04:00'!");
}
if ($enableAutomaticUpdates === false) {
$time .= PHP_EOL . 'automaticUpdatesAreNotEnabled';
} else {

View File

@@ -297,6 +297,18 @@ class DockerActionManager
$replacements[1] = $this->configurationManager->GetApachePort();
} elseif ($out[1] === 'TALK_PORT') {
$replacements[1] = $this->configurationManager->GetTalkPort();
} elseif($out[1] === 'OVERWRITEHOST') {
if ($this->configurationManager->IsOverwriteEnable()) {
$replacements[1] = $this->configurationManager->GetDomain();
} else {
$replacements[1] = '';
}
} elseif($out[1] === 'OVERWRITEPROTOCOL') {
if ($this->configurationManager->IsOverwriteEnable()) {
$replacements[1] = 'https';
} else {
$replacements[1] = '';
}
} elseif ($out[1] === 'NEXTCLOUD_MOUNT') {
$replacements[1] = $this->configurationManager->GetNextcloudMount();
} elseif ($out[1] === 'BACKUP_RESTORE_PASSWORD') {
@@ -417,6 +429,12 @@ class DockerActionManager
if (in_array('caddy', $communityContainers, true)) {
$replacements[1] = gethostbyname('nextcloud-aio-caddy');
}
} elseif ($out[1] === 'WHITEBOARD_ENABLED') {
if ($this->configurationManager->isWhiteboardEnabled()) {
$replacements[1] = 'yes';
} else {
$replacements[1] = '';
}
} else {
$secret = $this->configurationManager->GetSecret($out[1]);
if ($secret === "") {

View File

@@ -11,12 +11,12 @@
<form method="POST" action="/api/auth/logout">
<input type="hidden" name="{{csrf.keys.name}}" value="{{csrf.name}}">
<input type="hidden" name="{{csrf.keys.value}}" value="{{csrf.value}}">
<input class="button" type="submit" id="logout" value="Log out" />
<input type="submit" value="Log out" />
</form>
</header>
<div class="content">
<h1>Nextcloud AIO v9.4.1</h1>
<main>
<h1>Nextcloud AIO v9.6.0</h1>
{# Add 2nd tab warning #}
<script type="text/javascript" src="second-tab-warning.js"></script>
@@ -31,7 +31,7 @@
{% set isBackupOrRestoreRunning = false %}
{% set isApacheStarting = false %}
{# Setting newMajorVersion to '' will hide corresponding options/elements, can be set to an integer like 26 in order to show corresponding elements. If set, also increase installLatestMajor in https://github.com/nextcloud/all-in-one/blob/main/php/src/Controller/DockerController.php #}
{% set newMajorVersion = '' %}
{% set newMajorVersion = 30 %}
{% if is_backup_container_running == true %}
{% if borg_backup_mode == 'backup' or borg_backup_mode == 'restore' %}
@@ -58,107 +58,107 @@
{% endfor %}
{% if is_daily_backup_running == true %}
<span class="status running"></span> Daily backup currently running. (<a href="/api/docker/logs?id=nextcloud-aio-mastercontainer" target="_blank" rel="noopener">Logs</a>)<br /><br />
<p><span class="status running"></span> Daily backup currently running. (<a href="/api/docker/logs?id=nextcloud-aio-mastercontainer" target="_blank" rel="noopener">Logs</a>)</p>
{% if automatic_updates == true %}
This will update your containers, the mastercontainer and, on Saturdays, your Nextcloud apps if the backup is successful.<br /><br />
<p>This will update your containers, the mastercontainer and, on Saturdays, your Nextcloud apps if the backup is successful.</p>
{% if is_mastercontainer_update_available == true %}
When the mastercontainer is updated it will restart, making it unavailable for a moment. (<a href="/api/docker/logs?id=nextcloud-aio-watchtower" target="_blank" rel="noopener">Logs</a>)<br /><br />
<p>When the mastercontainer is updated it will restart, making it unavailable for a moment. (<a href="/api/docker/logs?id=nextcloud-aio-watchtower" target="_blank" rel="noopener">Logs</a>)</p>
{% endif %}
{% endif %}
{% if has_update_available == false %}
The whole process should not take more than a few minutes.<br /><br />
<p>The whole process should not take more than a few minutes.</p>
{% elseif automatic_updates == true %}
The whole process can take a while as your containers will be updated.<br /><br />
<p>The whole process can take a while as your containers will be updated.</p>
{% endif %}
<a href="" class="button reload">Reload ↻</a><br/><br/>
If the daily backup is stuck somehow, you can unstick it by running <strong>sudo docker exec nextcloud-aio-mastercontainer rm /mnt/docker-aio-config/data/daily_backup_running</strong> and afterwards reloading this interface.<br /><br />
<p><a href="" class="button reload">Reload ↻</a></p>
<p>If the daily backup is stuck somehow, you can unstick it by running <strong>sudo docker exec nextcloud-aio-mastercontainer rm /mnt/docker-aio-config/data/daily_backup_running</strong> and afterwards reloading this interface.</p>
{% elseif isWatchtowerRunning == true %}
<span class="status running"></span> Mastercontainer update currently running. Once the update is complete the mastercontainer will restart, making it unavailable for a moment. Please wait until it's done. (<a href="/api/docker/logs?id=nextcloud-aio-watchtower" target="_blank" rel="noopener">Logs</a>)<br /><br />
<a href="" class="button reload">Reload ↻</a><br/>
<p><span class="status running"></span> Mastercontainer update currently running. Once the update is complete the mastercontainer will restart, making it unavailable for a moment. Please wait until it's done. (<a href="/api/docker/logs?id=nextcloud-aio-watchtower" target="_blank" rel="noopener">Logs</a>)</p>
<p><a href="" class="button reload">Reload ↻</a></p>
{% else %}
{% if is_backup_container_running == false and domain == "" %}
{% if isDomaincheckRunning == false %}
<h2>Domaincheck container is not running</h2>
This is not expected. Most likely this happened because port {{ apache_port }} is already in use on your server. You can check the mastercontainer logs and domaincheck container logs for further clues. You should be able to resolve this by adjusting the APACHE_PORT by following the <strong><a href="https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md">reverse proxy documentation</a></strong>. Advice: have a detailed look at the changed docker run command for AIO.
<p>This is not expected. Most likely this happened because port {{ apache_port }} is already in use on your server. You can check the mastercontainer logs and domaincheck container logs for further clues. You should be able to resolve this by adjusting the APACHE_PORT by following the <strong><a href="https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md">reverse proxy documentation</a></strong>. Advice: have a detailed look at the changed docker run command for AIO.</p>
{% elseif is_mastercontainer_update_available == true %}
<h2>Mastercontainer update</h2>
⚠️ A mastercontainer update is available. Please click on the button below to update it. Afterwards, you will be able to proceed with the setup.<br><br>
<p>⚠️ A mastercontainer update is available. Please click on the button below to update it. Afterwards, you will be able to proceed with the setup.</p>
<form method="POST" action="/api/docker/watchtower" class="xhr">
<input type="hidden" name="{{csrf.keys.name}}" value="{{csrf.name}}">
<input type="hidden" name="{{csrf.keys.value}}" value="{{csrf.value}}">
<input class="button" type="submit" value="Update mastercontainer" />
<input type="submit" value="Update mastercontainer" />
</form>
{% else %}
{% if borg_backup_host_location == '' and borg_restore_password == '' %}
The official Nextcloud installation method. Nextcloud All-in-One provides easy deployment and maintenance with most features included in this one Nextcloud instance.<br><br>
You can either create a new AIO instance or restore a former AIO instance from backup. See the two sections below.<br><br>
<p>The official Nextcloud installation method. Nextcloud All-in-One provides easy deployment and maintenance with most features included in this one Nextcloud instance.</p>
<p>You can either create a new AIO instance or restore a former AIO instance from backup. See the two sections below.</p>
{{ include('includes/aio-config.twig') }}
<h2>New AIO instance</h2>
{% if apache_port == '443' %}
AIO is currently in "normal mode" which means that it handles the TLS proxying itself. This also means that it cannot be installed behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else). If you want to run AIO behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else), see the <strong><a href="https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md">reverse proxy documentation</a></strong>. Advice: have a detailed look at the changed docker run command for AIO.<br><br>
<p>AIO is currently in "normal mode" which means that it handles the TLS proxying itself. This also means that it cannot be installed behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else). If you want to run AIO behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else), see the <strong><a href="https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md">reverse proxy documentation</a></strong>. Advice: have a detailed look at the changed docker run command for AIO.</p>
{% else %}
AIO is currently in "reverse proxy mode" which means that it can be installed behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else) and does not do the TLS proxying itself.<br><br>
<p>AIO is currently in "reverse proxy mode" which means that it can be installed behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else) and does not do the TLS proxying itself.</p>
{% endif %}
Please type the domain that will be used for Nextcloud below in order to create a new AIO instance.<br><br />
<p>Please type the domain that will be used for Nextcloud below in order to create a new AIO instance.</p>
{% if skip_domain_validation == true %}
<strong>Please note:</strong> The domain validation is disabled so any domain will be accepted here! Make sure you do not make a typo here as you will not be able to change it afterwards!<br><br>
<p><strong>Please note:</strong> The domain validation is disabled so any domain will be accepted here! Make sure you do not make a typo here as you will not be able to change it afterwards!</p>
{% endif %}
<form method="POST" action="/api/configuration" class="xhr">
<input type="text" name="domain" value="{{ domain }}" placeholder="nextcloud.yourdomain.com"/>
<input type="hidden" name="{{csrf.keys.name}}" value="{{csrf.name}}">
<input type="hidden" name="{{csrf.keys.value}}" value="{{csrf.value}}">
<input class="button" type="submit" value="Submit domain" />
<input type="submit" value="Submit domain" />
</form>
{% if skip_domain_validation == false %}
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.<br><br>
<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><br />
If you do not have a domain yet, you can get one for free e.g. from duckdns.org and others.<br><br>
If you have a dynamic public IP-address, you can use e.g. <a href="https://ddclient.net/">DDclient</a> with a compatible domain provider for DNS updates.<br /><br/>
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 href="https://github.com/nextcloud/all-in-one/blob/main/local-instance.md">this documentation</a>.<br><br>
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.<br /><br/>
<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.</p>
<p>If you have a dynamic public IP-address, you can use e.g. <a 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 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' %}
If you run into issues with your domain being accepted, see <a 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. <br /><br/>
<p>If you run into issues with your domain being accepted, see <a 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>
{% endif %}
<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 href="https://github.com/nextcloud/all-in-one#how-to-skip-the-domain-validation">this documentation</a>.<br />
<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 href="https://github.com/nextcloud/all-in-one#how-to-skip-the-domain-validation">this documentation</a>.</p>
</details>
{% endif %}
<h2>Restore former AIO instance from backup</h2>
You can alternatively restore a former AIO instance from backup.<br><br>
<p>You can alternatively restore a former AIO instance from backup.</p>
{% endif %}
{% if is_instance_restore_attempt == false %}
{% if borg_backup_host_location != '' and borg_restore_password != '' %}
{% if borg_backup_mode in ['test', 'check'] %}
{% if backup_exit_code > 0 %}
<span class="status error"></span> Last {{ borg_backup_mode }} failed! (<a href="/api/docker/logs?id=nextcloud-aio-borgbackup" target="_blank" rel="noopener">Logs</a>)<br /><br />
<p><span class="status error"></span> Last {{ borg_backup_mode }} failed! (<a href="/api/docker/logs?id=nextcloud-aio-borgbackup" target="_blank" rel="noopener">Logs</a>)</p>
{% if borg_backup_mode == 'test' %}
Please adjust the path and/or the encryption password in order to make it work!<br><br>
<p>Please adjust the path and/or the encryption password in order to make it work!</p>
{% elseif borg_backup_mode == 'check' %}
The backup archive seems to be corrupt. Please try to use a different intact backup archive or try to fix it by following <a href="https://borgbackup.readthedocs.io/en/stable/faq.html#i-get-an-integrityerror-or-similar-what-now"><strong>this documentation</strong></a><br><br>
<p>The backup archive seems to be corrupt. Please try to use a different intact backup archive or try to fix it by following <a href="https://borgbackup.readthedocs.io/en/stable/faq.html#i-get-an-integrityerror-or-similar-what-now"><strong>this documentation</strong></a></p>
<details>
<summary>Reveal repair option</summary><br />
Below is the option to repair the integrity of your backup. <strong>Please note:</strong> Please only use this after you have read the documentation above! (It will run the command 'borg check --repair' for you.)<br><br>
<summary>Reveal repair option</summary>
<p>Below is the option to repair the integrity of your backup. <strong>Please note:</strong> Please only use this after you have read the documentation above! (It will run the command 'borg check --repair' for you.)</p>
<form method="POST" action="/api/docker/backup-check-repair" class="xhr">
<input type="hidden" name="{{csrf.keys.name}}" value="{{csrf.name}}">
<input type="hidden" name="{{csrf.keys.value}}" value="{{csrf.value}}">
<input class="button" type="submit" value="Check and repair backup integrity" onclick="return confirm('Check and repair backup integrity? Are you sure that you want to check and repair the backup integrity? This should only be done after reading the mentioned documentation.')"/><br/>
</form><br />
</details><br />
<input type="submit" value="Check and repair backup integrity" onclick="return confirm('Check and repair backup integrity? Are you sure that you want to check and repair the backup integrity? This should only be done after reading the mentioned documentation.')"/>
</form>
</details>
{% endif %}
{% elseif backup_exit_code == 0 %}
<span class="status success"></span> Last {{ borg_backup_mode }} successful! (<a href="/api/docker/logs?id=nextcloud-aio-borgbackup" target="_blank" rel="noopener">Logs</a>)<br /><br />
<p><span class="status success"></span> Last {{ borg_backup_mode }} successful! (<a href="/api/docker/logs?id=nextcloud-aio-borgbackup" target="_blank" rel="noopener">Logs</a>)</p>
{% if borg_backup_mode == 'test' %}
Feel free to check the integrity of the backup archive below before starting the restore process in order to make ensure that the restore will work. This can take a long time though depending on the size of the backup archive and is thus not required.<br><br>
<p>Feel free to check the integrity of the backup archive below before starting the restore process in order to make ensure that the restore will work. This can take a long time though depending on the size of the backup archive and is thus not required.</p>
<form method="POST" action="/api/docker/backup-check" class="xhr">
<input type="hidden" name="{{csrf.keys.name}}" value="{{csrf.name}}">
<input type="hidden" name="{{csrf.keys.value}}" value="{{csrf.value}}">
<input class="button" type="submit" value="Check backup integrity"/><br/>
<input type="submit" value="Check backup integrity"/>
</form>
{% endif %}
Choose the backup that you want to restore and click on the button below to restore the selected backup. This will restore the whole AIO instance. Please note that the current AIO passphrase will be kept and the previous AIO passphrase will not be restored from backup!<br><br>
<strong>Please note:</strong> If the backup that you want to restore contained any <a href="https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers">community container</a>, but you did not specify the same community containers via environmental variable while creating this new AIO instance, you need to restore the same backup a second time after this attempt so that the community container data is also correctly restored.<br><br>
<p>Choose the backup that you want to restore and click on the button below to restore the selected backup. This will restore the whole AIO instance. Please note that the current AIO passphrase will be kept and the previous AIO passphrase will not be restored from backup!</p>
<p><strong>Please note:</strong> If the backup that you want to restore contained any <a href="https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers">community container</a>, but you did not specify the same community containers via environmental variable while creating this new AIO instance, you need to restore the same backup a second time after this attempt so that the community container data is also correctly restored.</p>
<form method="POST" action="/api/docker/restore" class="xhr" id="restore_selection">
<input type="hidden" name="{{csrf.keys.name}}" value="{{csrf.name}}">
<input type="hidden" name="{{csrf.keys.value}}" value="{{csrf.value}}">
@@ -167,53 +167,53 @@
<option value="{{ restore_time }}">{{ restore_time }} UTC</option>
{% endfor %}
</select>
<input class="button" type="submit" value="Restore selected backup"/>
<input type="submit" value="Restore selected backup"/>
</form>
{% endif %}
{% elseif borg_backup_mode == 'restore' %}
{% if backup_exit_code > 0 %}
<span class="status error"></span> Last restore failed! (<a href="/api/docker/logs?id=nextcloud-aio-borgbackup" target="_blank" rel="noopener">Logs</a>)<br /><br />
The restore process has unexpectedly failed! Please adjust the path and encryption password, test it and try to restore again!
<p><span class="status error"></span> Last restore failed! (<a href="/api/docker/logs?id=nextcloud-aio-borgbackup" target="_blank" rel="noopener">Logs</a>)</p>
<p>The restore process has unexpectedly failed! Please adjust the path and encryption password, test it and try to restore again!</p>
{% endif %}
{% endif %}
{% endif %}
{% if borg_backup_host_location == '' or borg_restore_password == '' or borg_backup_mode not in ['test', 'check', ''] or backup_exit_code > 0 %}
Please enter the location of the backup archive on your host and the encryption password of the backup archive below:<br><br>
<p>Please enter the location of the backup archive on your host and the encryption password of the backup archive below:</p>
<form method="POST" action="/api/configuration" class="xhr">
<input type="text" name="borg_restore_host_location" value="{{borg_backup_host_location}}" placeholder="/mnt/backup"/>
<input type="text" name="borg_restore_password" value="{{borg_restore_password}}" placeholder="encryption password"/>
<input type="hidden" name="{{csrf.keys.name}}" value="{{csrf.name}}">
<input type="hidden" name="{{csrf.keys.value}}" value="{{csrf.value}}">
<input class="button" type="submit" value="Submit location and encryption password" />
<input type="submit" value="Submit location and encryption password" />
</form>
{{ include('includes/backup-dirs.twig') }}
⚠️ Please note that the backup archive must be located in a subfolder of the folder that you enter here and the subfolder which contains the archive must be named 'borg', or the backup container will not be able to find the backup archive!<br><br>
<p>⚠️ Please note that the backup archive must be located in a subfolder of the folder that you enter here and the subfolder which contains the archive must be named 'borg', or the backup container will not be able to find the backup archive!</p>
{% endif %}
{% else %}
<strong>Everything set!</strong> Click on the button below to test the path and encryption password:<br/><br/>
<p><strong>Everything set!</strong> Click on the button below to test the path and encryption password:</p>
<form method="POST" action="/api/docker/backup-test" class="xhr">
<input type="hidden" name="{{csrf.keys.name}}" value="{{csrf.name}}">
<input type="hidden" name="{{csrf.keys.value}}" value="{{csrf.value}}">
<input class="button" type="submit" value="Test path and encryption password"/><br/>
<input type="submit" value="Test path and encryption password"/>
</form>
{% endif %}
{% endif %}
<h2>How to reset the AIO instance?</h2>
If something should be going wrong, for example during the initial installation, you can reset the instance by following <a href="https://github.com/nextcloud/all-in-one#how-to-properly-reset-the-instance">this documentation</a>.<br><br>
<p>If something should be going wrong, for example during the initial installation, you can reset the instance by following <a href="https://github.com/nextcloud/all-in-one#how-to-properly-reset-the-instance">this documentation</a>.</p>
{% endif %}
{% if was_start_button_clicked == true %}
{% if current_channel starts with 'latest' or current_channel starts with 'beta' or current_channel starts with 'develop' %}
You are running the <a href="https://github.com/nextcloud/all-in-one#how-to-switch-the-channel"><strong>{{ current_channel }}</strong></a> channel. (<a href="/api/docker/logs?id=nextcloud-aio-mastercontainer" target="_blank" rel="noopener">Logs</a>)<br><br>
<p>You are running the <a href="https://github.com/nextcloud/all-in-one#how-to-switch-the-channel"><strong>{{ current_channel }}</strong></a> channel. (<a href="/api/docker/logs?id=nextcloud-aio-mastercontainer" target="_blank" rel="noopener">Logs</a>)</p>
{% else %}
No channel was found. This means that AIO is not able to update itself and its component and will also not be able to report about updates. Updates need to be done externally.
<p>No channel was found. This means that AIO is not able to update itself and its component and will also not be able to report about updates. Updates need to be done externally.</p>
{% endif %}
{% endif %}
{% if is_backup_container_running == true %}
<span class="status running"></span> Backup container is currently running: {{ borg_backup_mode }} (<a href="/api/docker/logs?id=nextcloud-aio-borgbackup" target="_blank" rel="noopener">Logs</a>)<br /><br />
<a href="" class="button reload">Reload ↻</a><br/><br>
<p><span class="status running"></span> Backup container is currently running: {{ borg_backup_mode }} (<a href="/api/docker/logs?id=nextcloud-aio-borgbackup" target="_blank" rel="noopener">Logs</a>)</p>
<p><a href="" class="button reload">Reload ↻</a></p>
{% endif %}
{% if domain != "" %}
@@ -221,31 +221,30 @@
{% if isApacheStarting != true %}
{% if borg_backup_host_location != '' %}
<details>
<summary>Click here to reveal the initial Nextcloud credentials</summary><br />
<summary>Click here to reveal the initial Nextcloud credentials</summary>
{% endif %}
Initial Nextcloud username: <strong>admin</strong><br />
Initial Nextcloud password:
<p>Initial Nextcloud username: <strong>admin</strong></p>
{% if borg_backup_host_location != '' %}
{# nextcloud_password needs to be duplicated due to a bug in Firefox. See https://github.com/nextcloud/all-in-one/issues/638. #}
<strong>{{ nextcloud_password }}</strong><br /></details><br />
<p>Initial Nextcloud password: <strong>{{ nextcloud_password }}</strong></p></details>
{% else %}
<strong>{{ nextcloud_password }}</strong><br><br>
<p>Initial Nextcloud password: <strong>{{ nextcloud_password }}</strong></p>
{% endif %}
<a href="https://{{ domain }}" class="button" target="_blank" rel="noopener">Open your Nextcloud ↗</a><br/><br>
<p><a href="https://{{ domain }}" class="button" target="_blank" rel="noopener">Open your Nextcloud ↗</a></p>
{% if borg_backup_host_location == '' %}
If your Nextcloud does not open when clicking the button above, see <strong><a href="https://github.com/nextcloud/all-in-one/discussions/2105">this documentation</a></strong><br><br>
<p>If your Nextcloud does not open when clicking the button above, see <strong><a href="https://github.com/nextcloud/all-in-one/discussions/2105">this documentation</a></strong></p>
{% endif %}
{% else %}
{% if isAnyRestarting == false %}
<span class="status running"></span> Containers are currently starting. You might inspect the container logs by clicking on <strong>Starting</strong> next to each container for further details.<br /><br />
<a href="" class="button reload">Reload ↻</a><br/><br>
<p><span class="status running"></span> Containers are currently starting. You might inspect the container logs by clicking on <strong>Starting</strong> next to each container for further details.</p>
<p><a href="" class="button reload">Reload ↻</a></p>
{% else %}
It seems at least one container was not able to start correctly and is currently restarting.<br><br>
To break this endless loop, you can stop the containers below and investigate the issue in the container logs before starting the containers again.<br><br>
<p>It seems at least one container was not able to start correctly and is currently restarting.</p>
<p>To break this endless loop, you can stop the containers below and investigate the issue in the container logs before starting the containers again.</p>
<form method="POST" action="/api/docker/stop" class="xhr">
<input type="hidden" name="{{csrf.keys.name}}" value="{{csrf.name}}">
<input type="hidden" name="{{csrf.keys.value}}" value="{{csrf.value}}">
<input class="button" type="submit" value="Stop containers" />
<input type="submit" value="Stop containers" />
</form>
{% endif %}
{% endif %}
@@ -291,16 +290,16 @@
{% if has_update_available == true %}
{% if is_mastercontainer_update_available == false %}
⚠️ Container updates are available. Click on <strong>Stop containers</strong> and <strong>Start and update containers</strong> to update them. You should consider creating a backup first.<br><br>
<p>⚠️ Container updates are available. Click on <strong>Stop containers</strong> and <strong>Start and update containers</strong> to update them. You should consider creating a backup first.</p>
{% endif %}
{% else %}
{% if is_mastercontainer_update_available == false %}
Your containers are up-to-date.<br><br>
<p>Your containers are up-to-date.</p>
{% if newMajorVersion != '' and isAnyRunning == true and isApacheStarting != true %}
<details>
<summary>Note about <strong>Nextcloud {{ newMajorVersion }}</strong></summary><br>
If you haven't upgraded to Nextcloud {{ newMajorVersion }} yet and want to do that now, feel free to follow <strong><a href="https://github.com/nextcloud/all-in-one/discussions/4542">this documentation</a></strong><br/>
</details><br>
<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 href="https://github.com/nextcloud/all-in-one/discussions/5133">this documentation</a></strong></p>
</details>
{% endif %}
{% endif %}
{% endif %}
@@ -309,34 +308,34 @@
{% if isAnyRunning == true %}
{% if isApacheStarting != true %}
{% if is_mastercontainer_update_available == true %}
⚠️ A mastercontainer update is available. Please click on the button below to stop your containers in order to update the mastercontainer.<br /><br />
<p>⚠️ A mastercontainer update is available. Please click on the button below to stop your containers in order to update the mastercontainer.</p>
{% if current_channel starts with 'latest' %}
You can find the changelog <a href="https://github.com/nextcloud/all-in-one/releases/latest"><strong>here</strong></a><br><br>
<p>You can find the changelog <a href="https://github.com/nextcloud/all-in-one/releases/latest"><strong>here</strong></a></p>
{% elseif current_channel starts with 'beta' %}
You can find the changelog <a href="https://github.com/nextcloud/all-in-one/releases"><strong>here</strong></a><br><br>
<p>You can find the changelog <a href="https://github.com/nextcloud/all-in-one/releases"><strong>here</strong></a></p>
{% elseif current_channel starts with 'develop' %}
You can find all changes <a href="https://github.com/nextcloud-releases/all-in-one/commits/main"><strong>here</strong></a><br><br>
<p>You can find all changes <a href="https://github.com/nextcloud-releases/all-in-one/commits/main"><strong>here</strong></a></p>
{% endif %}
{% endif %}
<form method="POST" action="/api/docker/stop" class="xhr">
<input type="hidden" name="{{csrf.keys.name}}" value="{{csrf.name}}">
<input type="hidden" name="{{csrf.keys.value}}" value="{{csrf.value}}">
<input class="button" type="submit" value="Stop containers" />
<input type="submit" value="Stop containers" />
</form>
{% endif %}
{% else %}
{% if isBackupOrRestoreRunning == true %}
Restore or Backup currently running. Cannot start the containers until Restore or Backup is complete.<br /><br />
<p>Restore or Backup currently running. Cannot start the containers until Restore or Backup is complete.</p>
{% else %}
{% if was_start_button_clicked == false %}
<br>Clicking on the button below will download all docker containers and start them. This can take a long time depending on your internet connection. Since the overall size is a few GB, this can take around 5-10 min or more. Please be patient!<br><br>
<p>Clicking on the button below will download all docker containers and start them. This can take a long time depending on your internet connection. Since the overall size is a few GB, this can take around 5-10 min or more. Please be patient!</p>
{% endif %}
{% if is_mastercontainer_update_available == true %}
⚠️ A mastercontainer update is available. Please click on the button below to update it.<br><br>
<p>⚠️ A mastercontainer update is available. Please click on the button below to update it.</p>
<form method="POST" action="/api/docker/watchtower" class="xhr">
<input type="hidden" name="{{csrf.keys.name}}" value="{{csrf.name}}">
<input type="hidden" name="{{csrf.keys.value}}" value="{{csrf.value}}">
<input class="button" type="submit" value="Update mastercontainer" />
<input type="submit" value="Update mastercontainer" />
</form>
{% else %}
{% if was_start_button_clicked == false %}
@@ -344,15 +343,15 @@
<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 {{ newMajorVersion }} (if unchecked, Nextcloud {{ newMajorVersion - 1 }} will get installed)</label><br>
<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>
{% endif %}
<input class="button" type="submit" value="Download and start containers" />
<input type="submit" value="Download and start containers" />
</form>
{% elseif has_update_available == false %}
<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}}">
<input class="button" type="submit" value="Start containers" />
<input type="submit" value="Start containers" />
</form>
{% else %}
<form method="POST" action="/api/docker/start" class="xhr">
@@ -369,16 +368,16 @@
{% if is_backup_section_enabled == false %}
<h2>Backup and restore</h2>
The backup section is disabled via environmental variable.<br><br>
<p>The backup section is disabled via environmental variable.</p>
{% else %}
{% if is_backup_container_running == false and borg_backup_host_location == "" and isApacheStarting != true %}
<h2>Backup and restore</h2>
Please enter the directory path below where backups will be created on the host system. It's best to choose a location on a separate drive and not on your root drive.<br><br>
<p>Please enter the directory path below where backups will be created on the host system. It's best to choose a location on a separate drive and not on your root drive.</p>
<form method="POST" action="/api/configuration" class="xhr">
<input type="text" name="borg_backup_host_location" placeholder="/mnt/backup"/>
<input type="hidden" name="{{csrf.keys.name}}" value="{{csrf.name}}">
<input type="hidden" name="{{csrf.keys.value}}" value="{{csrf.value}}">
<input class="button" type="submit" value="Submit backup location" />
<input type="submit" value="Submit backup location" />
</form>
{{ include('includes/backup-dirs.twig') }}
{% endif %}
@@ -390,33 +389,33 @@
{% if is_backup_container_running == false %}
<h2>Backup and restore</h2>
{% if backup_exit_code > 0 %}
<span class="status error"></span> Last {{ borg_backup_mode }} failed! (<a href="/api/docker/logs?id=nextcloud-aio-borgbackup" target="_blank" rel="noopener">Logs</a>)<br /><br />
<p><span class="status error"></span> Last {{ borg_backup_mode }} failed! (<a href="/api/docker/logs?id=nextcloud-aio-borgbackup" target="_blank" rel="noopener">Logs</a>)</p>
{% if borg_backup_mode == "check" %}
The backup check was not successful. This might indicate a corrupt archive (look at the logs). If that should be the case, you can try to fix it by following <a href="https://borgbackup.readthedocs.io/en/stable/faq.html#i-get-an-integrityerror-or-similar-what-now"><strong>this documentation</strong></a><br /><br />
<p>The backup check was not successful. This might indicate a corrupt archive (look at the logs). If that should be the case, you can try to fix it by following <a href="https://borgbackup.readthedocs.io/en/stable/faq.html#i-get-an-integrityerror-or-similar-what-now"><strong>this documentation</strong></a></p>
<details>
<summary>Reveal repair option</summary><br />
Below is the option to repair the integrity of your backup. <strong>Please note:</strong> Please only use this after you have read the documentation above! (It will run the command 'borg check --repair' for you.)<br><br>
<summary>Reveal repair option</summary>
<p>Below is the option to repair the integrity of your backup. <strong>Please note:</strong> Please only use this after you have read the documentation above! (It will run the command 'borg check --repair' for you.)</p>
<form method="POST" action="/api/docker/backup-check-repair" class="xhr">
<input type="hidden" name="{{csrf.keys.name}}" value="{{csrf.name}}">
<input type="hidden" name="{{csrf.keys.value}}" value="{{csrf.value}}">
<input class="button" type="submit" value="Check and repair backup integrity" onclick="return confirm('Check and repair backup integrity? Are you sure that you want to check and repair the backup integrity? This should only be done after reading the mentioned documentation.')"/><br/>
</form><br />
</details><br />
<input type="submit" value="Check and repair backup integrity" onclick="return confirm('Check and repair backup integrity? Are you sure that you want to check and repair the backup integrity? This should only be done after reading the mentioned documentation.')"/>
</form>
</details>
{% endif %}
{% if has_backup_run_once == false %}
You may change the backup path again since the initial backup was not successful. After submitting the new value, you need to click on <strong>Create Backup</strong> to test the new value.<br /><br />
<p>You may change the backup path again since the initial backup was not successful. After submitting the new value, you need to click on <strong>Create Backup</strong> to test the new value.</p>
<form method="POST" action="/api/configuration" class="xhr">
<input type="text" value="{{borg_backup_host_location}}" name="borg_backup_host_location" placeholder="/mnt/backup" />
<input type="hidden" name="{{csrf.keys.name}}" value="{{csrf.name}}">
<input type="hidden" name="{{csrf.keys.value}}" value="{{csrf.value}}">
<input class="button" type="submit" value="Set backup location again" />
<input type="submit" value="Set backup location again" />
</form>
{% endif %}
{% elseif backup_exit_code == 0 %}
{% if borg_backup_mode == "backup" %}
<span class="status success"></span> Last {{ borg_backup_mode }} successful on {{ last_backup_time }} UTC! (<a href="/api/docker/logs?id=nextcloud-aio-borgbackup" target="_blank" rel="noopener">Logs</a>)<br /><br />
<p><span class="status success"></span> Last {{ borg_backup_mode }} successful on {{ last_backup_time }} UTC! (<a href="/api/docker/logs?id=nextcloud-aio-borgbackup" target="_blank" rel="noopener">Logs</a>)</p>
{% else %}
<span class="status success"></span> Last {{ borg_backup_mode }} successful! (<a href="/api/docker/logs?id=nextcloud-aio-borgbackup" target="_blank" rel="noopener">Logs</a>)<br /><br />
<p><span class="status success"></span> Last {{ borg_backup_mode }} successful! (<a href="/api/docker/logs?id=nextcloud-aio-borgbackup" target="_blank" rel="noopener">Logs</a>)</p>
{% endif %}
{% endif %}
{% endif %}
@@ -424,51 +423,51 @@
{% if is_backup_container_running == false and isApacheStarting == false %}
{% if has_backup_run_once == true %}
<details>
<summary>Click here to reveal all backup options (including an option for automatic updates)</summary><br />
<summary>Click here to reveal all backup options (including an option for automatic updates)</summary>
{% endif %}
<h3>Backup information</h3>
This is your encryption password for backups: <strong>{{ borgbackup_password }}</strong><br /><br/>
Please save this password in a safe place. You won't be able to restore from backup if you lose this password! <br /><br/>
All important data from your Nextcloud AIO instance such as the database, your files and the mastercontainer's configuration files, will be backed up.<br /><br/>
The backup uses a tool called <a href="https://github.com/borgbackup/borg#what-is-borgbackup"><strong>BorgBackup</strong></a>, a well-known server backup tool that efficiently backs up your files and encrypts them on the fly. <br /><br/>
By using this tool, backups are incremental, differential, compressed and encrypted so only the first backup will take a while. Further backups should be fast as only changes are taken into account.<br /><br/>
Backups will be created in the following directory on the host: <strong>{{ borg_backup_host_location }}/borg</strong> <br /><br/>
Be aware that this solution does not backup files and folders that are mounted into Nextcloud using the external storage app, but you can add further Docker volumes and host paths that you want to back up after the initial backup is done.<br><br>
For information about backup retention, see <strong><a href="https://github.com/nextcloud/all-in-one#how-to-adjust-borgs-retention-policy">this</a></strong>.<br><br>
Daily backups can be enabled after the initial backup is done. Enabling this also allows you to enable an option to update all containers, Nextcloud, and its apps automatically.<br><br>
For further documentation and options on this backup solution refer to <strong><a href="https://github.com/nextcloud/all-in-one#backup-solution">this section</a></strong> and below.<br>
<p>This is your encryption password for backups: <strong>{{ borgbackup_password }}</strong></p>
<p>Please save this password in a safe place. You won't be able to restore from backup if you lose this password!</p>
<p>All important data from your Nextcloud AIO instance such as the database, your files and the mastercontainer's configuration files, will be backed up.</p>
<p>The backup uses a tool called <a href="https://github.com/borgbackup/borg#what-is-borgbackup"><strong>BorgBackup</strong></a>, a well-known server backup tool that efficiently backs up your files and encrypts them on the fly.</p>
<p>By using this tool, backups are incremental, differential, compressed and encrypted so only the first backup will take a while. Further backups should be fast as only changes are taken into account.</p>
<p>Backups will be created in the following directory on the host: <strong>{{ borg_backup_host_location }}/borg</strong></p>
<p>Be aware that this solution does not backup files and folders that are mounted into Nextcloud using the external storage app, but you can add further Docker volumes and host paths that you want to back up after the initial backup is done.</p>
<p>For information about backup retention, see <strong><a href="https://github.com/nextcloud/all-in-one#how-to-adjust-borgs-retention-policy">this</a></strong>.</p>
<p>Daily backups can be enabled after the initial backup is done. Enabling this also allows you to enable an option to update all containers, Nextcloud, and its apps automatically.</p>
<p>For further documentation and options on this backup solution refer to <strong><a href="https://github.com/nextcloud/all-in-one#backup-solution">this section</a></strong> and below.</p>
{% if isApacheStarting != true %}
<h3>Backup creation</h3>
Clicking on the button below will create a backup.<br><br/>
<p>Clicking on the button below will create a backup.</p>
<form method="POST" action="/api/docker/backup" class="xhr">
<input type="hidden" name="{{csrf.keys.name}}" value="{{csrf.name}}">
<input type="hidden" name="{{csrf.keys.value}}" value="{{csrf.value}}">
<input class="button" type="submit" value="Create backup" onclick="return confirm('Create backup? Are you sure that you want to create a backup? This will stop all running containers and create the backup.')" />
<input type="submit" value="Create backup" onclick="return confirm('Create backup? Are you sure that you want to create a backup? This will stop all running containers and create the backup.')" />
</form>
{% if has_backup_run_once == false %}
<h3>Reset backup host location</h3>
If the configured backup host location <strong>{{ borg_backup_host_location }}</strong> is wrong, you can reset it by clicking on the button below.<br><br/>
<p>If the configured backup host location <strong>{{ borg_backup_host_location }}</strong> is wrong, you can reset it by clicking on the button below.</p>
<form method="POST" action="/api/configuration" class="xhr">
<input type="hidden" name="delete_borg_backup_host_location" value="yes"/>
<input type="hidden" name="{{csrf.keys.name}}" value="{{csrf.name}}">
<input type="hidden" name="{{csrf.keys.value}}" value="{{csrf.value}}">
<input class="button" type="submit" value="Reset backup location" />
<input type="submit" value="Reset backup location" />
</form>
{% endif %}
{% if has_backup_run_once == true %}
<h3>Backup check</h3>
Click on the button below to perform a backup integrity check. This is an option that verifies that your backup is intact. It shouldn't be needed in most situations.<br><br/>
<p>Click on the button below to perform a backup integrity check. This is an option that verifies that your backup is intact. It shouldn't be needed in most situations.</p>
<form method="POST" action="/api/docker/backup-check" class="xhr">
<input type="hidden" name="{{csrf.keys.name}}" value="{{csrf.name}}">
<input type="hidden" name="{{csrf.keys.value}}" value="{{csrf.value}}">
<input class="button" type="submit" value="Check backup integrity" onclick="return confirm('Check backup integrity? Are you sure that you want to check the backup? This can take a long time depending on the size of your backup.')" /><br/>
<input type="submit" value="Check backup integrity" onclick="return confirm('Check backup integrity? Are you sure that you want to check the backup? This can take a long time depending on the size of your backup.')" />
</form>
<h3>Backup restore</h3>
Choose the backup that you want to restore and click on the button below to restore the selected backup. This will overwrite all your files with the chosen backup so you should consider creating a backup first. You can run an integrity check before restoring your files but this shouldn't be needed in most situations. Please note that this will not restore additionally chosen backup directories! The restore process should be pretty fast as rsync, which only transfers changed files, is used to restore the chosen backup.<br><br>
<p>Choose the backup that you want to restore and click on the button below to restore the selected backup. This will overwrite all your files with the chosen backup so you should consider creating a backup first. You can run an integrity check before restoring your files but this shouldn't be needed in most situations. Please note that this will not restore additionally chosen backup directories! The restore process should be pretty fast as rsync, which only transfers changed files, is used to restore the chosen backup.</p>
<form method="POST" action="/api/docker/restore" class="xhr" id="restore_selection">
<input type="hidden" name="{{csrf.keys.name}}" value="{{csrf.name}}">
<input type="hidden" name="{{csrf.keys.value}}" value="{{csrf.value}}">
@@ -477,53 +476,51 @@
<option value="{{ restore_time }}">{{ restore_time }} UTC</option>
{% endfor %}
</select>
<input class="button" type="submit" value="Restore selected backup" onclick="return confirm('Restore the selected backup? Are you sure that you want to restore the selected backup? This will stop all running containers and restore the selected backup. It is recommended to create a backup first. You might also want to check the backup integrity.')" />
<input type="submit" value="Restore selected backup" onclick="return confirm('Restore the selected backup? Are you sure that you want to restore the selected backup? This will stop all running containers and restore the selected backup. It is recommended to create a backup first. You might also want to check the backup integrity.')" />
</form>
<h3>Daily backup and automatic updates</h3>
{% if daily_backup_time == "" %}
By entering a time below, you can enable daily backups. It will create them at the entered time in 24h format. E.g. <strong>04:00</strong> will create backups at 4 am UTC and <strong>16:00</strong> at 4 pm UTC. When creating the backup, containers will be stopped and restarted after the backup is complete.<br><br/>
<p>By entering a time below, you can enable daily backups. It will create them at the entered time in 24h format. E.g. <strong>04:00</strong> will create backups at 4 am UTC and <strong>16:00</strong> at 4 pm UTC. When creating the backup, containers will be stopped and restarted after the backup is complete.</p>
<form method="POST" action="/api/configuration" class="xhr">
<input type="text" name="daily_backup_time" value="04:00" placeholder="04:00"/>
<input type="hidden" name="{{csrf.keys.name}}" value="{{csrf.name}}">
<input type="hidden" name="{{csrf.keys.value}}" value="{{csrf.value}}">
<input class="button" type="submit" value="Submit backup time" /><br>
<input type="submit" value="Submit backup time" /><br>
<input type="checkbox" id="automatic_updates" name="automatic_updates" checked="checked"><label for="automatic_updates">Automatically update all containers, the mastercontainer and on saturdays your Nextcloud apps</label><br>
<input type="checkbox" id="success_notification" name="success_notification" checked="checked"><label for="success_notification">Send notifications about successful backups (notifications about unsuccessful backups will always be sent)</label><br>
<input type="checkbox" id="success_notification" name="success_notification" checked="checked"><label for="success_notification">Send notifications about successful backups (notifications about unsuccessful backups will always be sent)</label>
</form>
{% else %}
Daily backups will be created at <strong>{{ daily_backup_time }} UTC</strong>. A notification about the result of the backup will be sent.
<p>Daily backups will be created at <strong>{{ daily_backup_time }} UTC</strong>. A notification about the result of the backup will be sent.</p>
{% if automatic_updates == true %}
Also your containers, the mastercontainer and, on Saturdays, your Nextcloud apps will be automatically updated.
Also your containers, the mastercontainer and, on Saturdays, your Nextcloud apps will be automatically updated.
{% endif %}
To change your backup time first disable Daily Backups, then enter your new backup time, and then re-enable them.<br><br/>
<p>To change your backup time first disable Daily Backups, then enter your new backup time, and then re-enable them.</p>
<form method="POST" action="/api/configuration" class="xhr">
<input type="hidden" name="delete_daily_backup_time" value="yes"/>
<input type="hidden" name="{{csrf.keys.name}}" value="{{csrf.name}}">
<input type="hidden" name="{{csrf.keys.value}}" value="{{csrf.value}}">
<input class="button" type="submit" value="Disable or change daily backups" />
<input type="submit" value="Disable or change daily backups" />
</form>
{% endif %}
<h3>Back up additional directories and docker volumes of your host</h3>
Below you can enter directories and docker volumes of your host that will be backed up into the same borg backup archive.<br><br>
<p>Below you can enter directories and docker volumes of your host that will be backed up into the same borg backup archive.</p>
<form method="POST" action="/api/configuration" class="xhr">
<textarea id="additional_backup_directories" name="additional_backup_directories" rows="4" cols="50" placeholder="/directory/on/the/host&#10;my_custom_docker_volume">{{ additional_backup_directories }}</textarea>
<input type="hidden" name="{{csrf.keys.name}}" value="{{csrf.name}}">
<input type="hidden" name="{{csrf.keys.value}}" value="{{csrf.value}}">
<input class="button" type="submit" value="Submit additional backup locations" /><br>
<input type="submit" value="Submit additional backup locations" />
</form>
Each line and entry needs to start with a slash or letter/digit. Only <strong>a-z</strong>, <strong>A-Z</strong>, <strong>.</strong>, <strong>0-9</strong>, <strong>_</strong>, <strong>-</strong>, and <strong>/</strong> are allowed. If the entry begins with a letter/digit slashes are not supported. Two valid entries are <strong>/directory/on/the/host</strong> and <strong>my_custom_docker_volume</strong>. You need to make sure that all given directories exist or the backup container will fail to start!<br><br/>
Be sure to individually specify all storage that you want to back up as storage will not be mounted recursively. E.g. providing <strong>/</strong> as additional backup directory will only back up files and folders that are stored on the root partition and not on the EFI partition or any other. Excluded by the backup will be caches and a few other directories. If you want to back up the root partition you should make sure to stop all services before the backup so it can run correctly. For automating this see <a href="https://github.com/nextcloud/all-in-one#how-to-stopstartupdate-containers-or-trigger-the-daily-backup-from-a-script-externally">this documentation</a><br><br/>
Please note that the chosen directories/volumes will not be restored when you restore your instance, so this would need to be done manually. <br><br>
<p>Each line and entry needs to start with a slash or letter/digit. Only <strong>a-z</strong>, <strong>A-Z</strong>, <strong>.</strong>, <strong>0-9</strong>, <strong>_</strong>, <strong>-</strong>, and <strong>/</strong> are allowed. If the entry begins with a letter/digit slashes are not supported. Two valid entries are <strong>/directory/on/the/host</strong> and <strong>my_custom_docker_volume</strong>. You need to make sure that all given directories exist or the backup container will fail to start!</p>
<p>Be sure to individually specify all storage that you want to back up as storage will not be mounted recursively. E.g. providing <strong>/</strong> as additional backup directory will only back up files and folders that are stored on the root partition and not on the EFI partition or any other. Excluded by the backup will be caches and a few other directories. If you want to back up the root partition you should make sure to stop all services before the backup so it can run correctly. For automating this see <a href="https://github.com/nextcloud/all-in-one#how-to-stopstartupdate-containers-or-trigger-the-daily-backup-from-a-script-externally">this documentation</a></p>
<p>Please note that the chosen directories/volumes will not be restored when you restore your instance, so this would need to be done manually.</p>
{% if additional_backup_directories != "" %}
This option is currently set. You can disable it again by clearing the field and submitting your changes.<br><br>
<p>This option is currently set. You can disable it again by clearing the field and submitting your changes.</p>
{% endif %}
{% endif %}
{% endif %}
{% if has_backup_run_once == false %}
<br />
{% else %}
{% if has_backup_run_once == true %}
</details>
{% endif %}
{% endif %}
@@ -531,79 +528,84 @@
{% endif %}
{% if is_backup_container_running == false %}
{% if isApacheStarting == false %}
{% if isApacheStarting == false %}
<h2>AIO passphrase change</h2>
<details>
<summary>Click here to change your AIO passphrase</summary><br />
You can change your AIO passphrase below:<br><br />
<summary>Click here to change your AIO passphrase</summary>
<p>You can change your AIO passphrase below:</p>
<form method="POST" action="/api/configuration" class="xhr">
<input type="password" autocomplete="current-password" name="current-master-password" placeholder="Your current AIO passphrase" id="current-master-password" oninput="showPassword('current-master-password')">
<input type="password" autocomplete="new-password" name="new-master-password" placeholder="Your new AIO passphrase" id="new-master-password" oninput="showPassword('new-master-password')">
<input type="hidden" name="{{csrf.keys.name}}" value="{{csrf.name}}">
<input type="hidden" name="{{csrf.keys.value}}" value="{{csrf.value}}">
<input class="button" type="submit" value="Submit passphrase change" />
<input type="submit" value="Submit passphrase change" />
</form>
The new passphrase needs to be at least 24 characters long. Allowed characters are the <a href="https://en.wikipedia.org/wiki/Latin_alphabet#/media/File:Abecedarium.png"><strong>latin characters</strong></a> <strong>a-z</strong>, <strong>A-Z</strong>, <strong>0-9</strong> and <strong>spaces</strong>.<br>
<p>The new passphrase needs to be at least 24 characters long. Allowed characters are the <a href="https://en.wikipedia.org/wiki/Latin_alphabet#/media/File:Abecedarium.png"><strong>latin characters</strong></a> <strong>a-z</strong>, <strong>A-Z</strong>, <strong>0-9</strong> and <strong>spaces</strong>.</p>
</details>
{% endif %}
{% endif %}
{% endif %}
{% if is_backup_container_running == false %}
<h2>Optional containers</h2>
In this section you can enable or disable optional containers. There are further community containers available that are not listed below. See <strong><a href="https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers">this documentation</a></strong> how to add them.<br><br>
<p>In this section you can enable or disable optional containers. There are further community containers available that are not listed below. See <strong><a href="https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers">this documentation</a></strong> how to add them.</p>
{% if isAnyRunning == true %}
<strong>Please note:</strong> You can enable or disable the options below only when your containers are stopped.<br><br>
<p><strong>Please note:</strong> You can enable or disable the options below only when your containers are stopped.</p>
{% else %}
<strong>Please note:</strong> Make sure to save your changes by clicking <strong>Save changes</strong> below the list of optional containers. The changes will not be auto-saved.<br><br>
<p><strong>Please note:</strong> Make sure to save your changes by clicking <strong>Save changes</strong> below the list of optional containers. The changes will not be auto-saved.</p>
{% endif %}
<form id="options-form" method="POST" action="/api/configuration" class="xhr">
<input type="hidden" name="{{csrf.keys.name}}" value="{{csrf.name}}">
<input type="hidden" name="{{csrf.keys.value}}" value="{{csrf.value}}">
<input type="hidden" name="options-form" value="options-form">
{% if is_clamav_enabled == true %}
<input type="checkbox" id="clamav" name="clamav" checked="checked"><label for="clamav">ClamAV (Antivirus backend for Nextcloud, only supported on x64, needs ~1GB additional RAM)</label><br><br>
<p><input type="checkbox" id="clamav" name="clamav" checked="checked"><label for="clamav">ClamAV (Antivirus backend for Nextcloud, only supported on x64, needs ~1GB additional RAM)</label></p>
{% else %}
<input type="checkbox" id="clamav" name="clamav"><label for="clamav">ClamAV (Antivirus backend for Nextcloud, only supported on x64, needs ~1GB additional RAM)</label><br><br>
<p><input type="checkbox" id="clamav" name="clamav"><label for="clamav">ClamAV (Antivirus backend for Nextcloud, only supported on x64, needs ~1GB additional RAM)</label></p>
{% endif %}
{% if is_collabora_enabled == true %}
<input type="checkbox" id="collabora" name="collabora" checked="checked"><label for="collabora">Collabora (Nextcloud Office)</label><br>
<p><input type="checkbox" id="collabora" name="collabora" checked="checked"><label for="collabora">Collabora (Nextcloud Office)</label></p>
{% else %}
<input type="checkbox" id="collabora" name="collabora"><label for="collabora">Collabora (Nextcloud Office)</label><br>
<p><input type="checkbox" id="collabora" name="collabora"><label for="collabora">Collabora (Nextcloud Office)</label></p>
{% endif %}
{% if is_fulltextsearch_enabled == true %}
<input type="checkbox" id="fulltextsearch" name="fulltextsearch" checked="checked"><label for="fulltextsearch">Fulltextsearch (needs ~1GB additional RAM)</label><br>
<p><input type="checkbox" id="fulltextsearch" name="fulltextsearch" checked="checked"><label for="fulltextsearch">Fulltextsearch (needs ~1GB additional RAM)</label></p>
{% else %}
<input type="checkbox" id="fulltextsearch" name="fulltextsearch"><label for="fulltextsearch">Fulltextsearch (needs ~1GB additional RAM. <strong>Please note:</strong> the initial indexing can take a long time during which Nextcloud will be unavailable)</label><br><br>
<p><input type="checkbox" id="fulltextsearch" name="fulltextsearch"><label for="fulltextsearch">Fulltextsearch (needs ~1GB additional RAM. <strong>Please note:</strong> the initial indexing can take a long time during which Nextcloud will be unavailable)</label></p>
{% endif %}
{% if is_imaginary_enabled == true %}
<input type="checkbox" id="imaginary" name="imaginary" checked="checked"><label for="imaginary">Imaginary (for previews of heic, heif, illustrator, pdf, svg, tiff and webp. Imaginary is currently <a href="https://github.com/nextcloud/server/issues/34262">incompatible with server-side-encryption</a>)</label><br><br>
<p><input type="checkbox" id="imaginary" name="imaginary" checked="checked"><label for="imaginary">Imaginary (for previews of heic, heif, illustrator, pdf, svg, tiff and webp. Imaginary is currently <a href="https://github.com/nextcloud/server/issues/34262">incompatible with server-side-encryption</a>)</label></p>
{% else %}
<input type="checkbox" id="imaginary" name="imaginary"><label for="imaginary">Imaginary (for previews of heic, heif, illustrator, pdf, svg, tiff and webp. Imaginary is currently <a href="https://github.com/nextcloud/server/issues/34262">incompatible with server-side-encryption</a>)</label><br><br>
<p><input type="checkbox" id="imaginary" name="imaginary"><label for="imaginary">Imaginary (for previews of heic, heif, illustrator, pdf, svg, tiff and webp. Imaginary is currently <a href="https://github.com/nextcloud/server/issues/34262">incompatible with server-side-encryption</a>)</label></p>
{% endif %}
{% if is_talk_enabled == true %}
<input type="checkbox" id="talk" name="talk" checked="checked"><label for="talk">Nextcloud Talk (needs ports {{ talk_port }}/TCP and {{ talk_port }}/UDP open/forwarded in your firewall/router)</label><br><br>
<p><input type="checkbox" id="talk" name="talk" checked="checked"><label for="talk">Nextcloud Talk (needs ports {{ talk_port }}/TCP and {{ talk_port }}/UDP open/forwarded in your firewall/router)</label></p>
{% else %}
<input type="checkbox" id="talk" name="talk"><label for="talk">Nextcloud Talk (needs ports {{ talk_port }}/TCP and {{ talk_port }}/UDP open/forwarded in your firewall/router)</label><br><br>
<p><input type="checkbox" id="talk" name="talk"><label for="talk">Nextcloud Talk (needs ports {{ talk_port }}/TCP and {{ talk_port }}/UDP open/forwarded in your firewall/router)</label></p>
{% endif %}
{% if is_talk_recording_enabled == true %}
<input type="checkbox" id="talk-recording" name="talk-recording" checked="checked"><label for="talk-recording">Nextcloud Talk Recording-server (needs Nextcloud Talk being enabled and ~1GB additional RAM and ~2 additional vCPUs)</label><br><br>
<p><input type="checkbox" id="talk-recording" name="talk-recording" checked="checked"><label for="talk-recording">Nextcloud Talk Recording-server (needs Nextcloud Talk being enabled and ~1GB additional RAM and ~2 additional vCPUs)</label></p>
{% else %}
<input type="checkbox" id="talk-recording" name="talk-recording"><label for="talk-recording">Nextcloud Talk Recording-server (needs Nextcloud Talk being enabled and ~1GB additional RAM ~2 additional vCPUs)</label><br><br>
<p><input type="checkbox" id="talk-recording" name="talk-recording"><label for="talk-recording">Nextcloud Talk Recording-server (needs Nextcloud Talk being enabled and ~1GB additional RAM ~2 additional vCPUs)</label></p>
{% endif %}
{% if is_onlyoffice_enabled == true %}
<input type="checkbox" id="onlyoffice" name="onlyoffice" checked="checked"><label for="onlyoffice">OnlyOffice</label><br>
<p><input type="checkbox" id="onlyoffice" name="onlyoffice" checked="checked"><label for="onlyoffice">OnlyOffice</label></p>
{% else %}
{#<input type="checkbox" id="onlyoffice" name="onlyoffice"><label for="onlyoffice">OnlyOffice</label><br>#}
{#<p><input type="checkbox" id="onlyoffice" name="onlyoffice"><label for="onlyoffice">OnlyOffice</label></p>#}
{% endif %}
{% if is_docker_socket_proxy_enabled == true %}
<input type="checkbox" id="docker-socket-proxy" name="docker-socket-proxy" checked="checked"><label for="docker-socket-proxy">Docker Socket Proxy (needed for <a href="https://github.com/cloud-py-api/app_api#nextcloud-appapi">Nextcloud App API</a>)</label><br><br>
<p><input type="checkbox" id="docker-socket-proxy" name="docker-socket-proxy" checked="checked"><label for="docker-socket-proxy">Docker Socket Proxy (needed for <a href="https://github.com/cloud-py-api/app_api#nextcloud-appapi">Nextcloud App API</a>)</label></p>
{% else %}
<input type="checkbox" id="docker-socket-proxy" name="docker-socket-proxy"><label for="docker-socket-proxy">Docker Socket Proxy (needed for <a href="https://github.com/cloud-py-api/app_api#nextcloud-appapi">Nextcloud App API</a>)</label><br><br>
<p><input type="checkbox" id="docker-socket-proxy" name="docker-socket-proxy"><label for="docker-socket-proxy">Docker Socket Proxy (needed for <a href="https://github.com/cloud-py-api/app_api#nextcloud-appapi">Nextcloud App API</a>)</label></p>
{% endif %}
<input id="options-form-submit" class="button" type="submit" value="Save changes" />
{% if is_whiteboard_enabled == true %}
<p><input type="checkbox" id="whiteboard" name="whiteboard" checked="checked"><label for="whiteboard">Whiteboard</label></p>
{% else %}
<p><input type="checkbox" id="whiteboard" name="whiteboard"><label for="whiteboard">Whiteboard</label></p>
{% endif %}
<input id="options-form-submit" type="submit" value="Save changes" />
<script type="text/javascript" src="options-form-submit.js"></script>
</form>
<strong>Minimal system requirements:</strong> When any optional container is enabled, at least 2GB RAM, a dual-core CPU and 40GB system storage are required. When enabling ClamAV, Nextcloud Talk Recording-server or Fulltextsearch, at least 3GB RAM are required. For Talk Recording-server additional 2 vCPUs are required. When enabling everything, at least 5GB RAM and a quad-core CPU are required. Recommended are at least 1GB more RAM than the minimal requirement. For further advices and recommendations see <strong><a href="https://github.com/nextcloud/all-in-one/discussions/1335">this documentation</a></strong><br>
<p><strong>Minimal system requirements:</strong> When any optional container is enabled, at least 2GB RAM, a dual-core CPU and 40GB system storage are required. When enabling ClamAV, Nextcloud Talk Recording-server or Fulltextsearch, at least 3GB RAM are required. For Talk Recording-server additional 2 vCPUs are required. When enabling everything, at least 5GB RAM and a quad-core CPU are required. Recommended are at least 1GB more RAM than the minimal requirement. For further advices and recommendations see <strong><a href="https://github.com/nextcloud/all-in-one/discussions/1335">this documentation</a></strong></p>
{% if isAnyRunning == true or is_x64_platform == false %}
<script type="text/javascript" src="disable-clamav.js"></script>
{% endif %}
@@ -615,27 +617,28 @@
<script type="text/javascript" src="disable-imaginary.js"></script>
<script type="text/javascript" src="disable-fulltextsearch.js"></script>
<script type="text/javascript" src="disable-talk-recording.js"></script>
<script type="text/javascript" src="disable-whiteboard.js"></script>
{% endif %}
{% if is_collabora_enabled == true and isAnyRunning == false and was_start_button_clicked == true %}
<h3>Collabora dictionaries</h3>
{% if collabora_dictionaries == "" %}
In order to get the correct dictionaries in Collabora, you may configure the dictionaries below:<br><br>
<p>In order to get the correct dictionaries in Collabora, you may configure the dictionaries below:</p>
<form method="POST" action="/api/configuration" class="xhr">
<input type="text" name="collabora_dictionaries" placeholder="de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru" />
<input type="hidden" name="{{csrf.keys.name}}" value="{{csrf.name}}">
<input type="hidden" name="{{csrf.keys.value}}" value="{{csrf.value}}">
<input class="button" type="submit" value="Submit collabora dictionaries" />
<input type="submit" value="Submit collabora dictionaries" />
</form>
You need to make sure that the dictionaries that you enter are valid. An example is <strong>de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru</strong>.<br><br>
<p>You need to make sure that the dictionaries that you enter are valid. An example is <strong>de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru</strong>.</p>
{% else %}
The dictionaries for Collabora are currently set to <strong>{{ collabora_dictionaries }}</strong>. You can reset them again by clicking on the button below.<br><br/>
<p>The dictionaries for Collabora are currently set to <strong>{{ collabora_dictionaries }}</strong>. You can reset them again by clicking on the button below.</p>
<form method="POST" action="/api/configuration" class="xhr">
<input type="hidden" name="delete_collabora_dictionaries" value="yes"/>
<input type="hidden" name="{{csrf.keys.name}}" value="{{csrf.name}}">
<input type="hidden" name="{{csrf.keys.value}}" value="{{csrf.value}}">
<input class="button" type="submit" value="Reset collabora dictionaries" />
<input type="submit" value="Reset collabora dictionaries" />
</form>
{% endif %}
{% endif %}
@@ -643,27 +646,27 @@
<h2>Timezone change</h2>
{% if isAnyRunning == true %}
{% if timezone != "" %}
The timezone for Nextcloud is currently set to <strong>{{ timezone }}</strong>.<br><br>
<p>The timezone for Nextcloud is currently set to <strong>{{ timezone }}</strong>.</p>
{% endif %}
<strong>Please note:</strong> You can change the timezone when your containers are stopped.<br><br>
<p><strong>Please note:</strong> You can change the timezone when your containers are stopped.</p>
{% else %}
{% if timezone == "" %}
To get the correct time values for certain Nextcloud features, set the timezone for Nextcloud to the one that your users mainly use. Please note that this setting does not apply to the mastercontainer and any backup option.<br><br>
You can configure the timezone for Nextcloud below:<br><br>
<p>To get the correct time values for certain Nextcloud features, set the timezone for Nextcloud to the one that your users mainly use. Please note that this setting does not apply to the mastercontainer and any backup option.</p>
<p>You can configure the timezone for Nextcloud below:</p>
<form method="POST" action="/api/configuration" class="xhr">
<input type="text" id="timezone" name="timezone" placeholder="Europe/Berlin" />
<input type="hidden" name="{{csrf.keys.name}}" value="{{csrf.name}}">
<input type="hidden" name="{{csrf.keys.value}}" value="{{csrf.value}}">
<input class="button" type="submit" value="Submit timezone" onclick="return confirm('Are you sure that this is a valid timezone? Please double check by following the wikipedia article and checking the correct column. If the timezone is not valid, it will break the startup since the database will not be correctly initialized and you will end up in a startup loop.')" />
<input type="submit" value="Submit timezone" onclick="return confirm('Are you sure that this is a valid timezone? Please double check by following the wikipedia article and checking the correct column. If the timezone is not valid, it will break the startup since the database will not be correctly initialized and you will end up in a startup loop.')" />
</form>
You need to make sure that the timezone that you enter is valid. An example is <strong>Europe/Berlin</strong>. You can get valid values by looking at the 'TZ identifier' column of this list: <a href="https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List"><strong>click here</strong></a>. The default is <strong>Etc/UTC</strong> if nothing is entered.<br><br>
<p>You need to make sure that the timezone that you enter is valid. An example is <strong>Europe/Berlin</strong>. You can get valid values by looking at the 'TZ identifier' column of this list: <a href="https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List"><strong>click here</strong></a>. The default is <strong>Etc/UTC</strong> if nothing is entered.</p>
{% else %}
The timezone for Nextcloud is currently set to <strong>{{ timezone }}</strong>. You can change the timezone by clicking on the button below.<br><br/>
<p>The timezone for Nextcloud is currently set to <strong>{{ timezone }}</strong>. You can change the timezone by clicking on the button below.</p>
<form method="POST" action="/api/configuration" class="xhr">
<input type="hidden" name="delete_timezone" value="yes"/>
<input type="hidden" name="{{csrf.keys.name}}" value="{{csrf.name}}">
<input type="hidden" name="{{csrf.keys.value}}" value="{{csrf.value}}">
<input class="button" type="submit" value="Reset the timezone" />
<input type="submit" value="Reset the timezone" />
</form>
{% endif %}
{% endif %}
@@ -677,7 +680,7 @@
<script type="text/javascript" src="before-unload.js"></script>
{% endif %}
</div>
</main>
<div id="overlay">
<div class="loader"></div>
</div>

View File

@@ -1,36 +1,40 @@
<details>
<summary>Click here to view the current AIO config and documentation links</summary><br />
<summary>Click here to view the current AIO config and documentation links</summary>
{% if was_start_button_clicked == true %}
Nextclouds config.php file is stored in the nextcloud_aio_nextcloud Docker volume and can be edited by following the <a href="https://github.com/nextcloud/all-in-one#how-to-edit-nextclouds-configphp-file-with-a-texteditor">config.php documentation</a>.<br><br>
You can run Nextcloud's usual occ commands by following the <a href="https://github.com/nextcloud/all-in-one#how-to-run-occ-commands">occ documentation</a></strong>.<br><br>
<p>Nextclouds config.php file is stored in the nextcloud_aio_nextcloud Docker volume and can be edited by following the <a href="https://github.com/nextcloud/all-in-one#how-to-edit-nextclouds-configphp-file-with-a-texteditor">config.php documentation</a>.</p>
<p>You can run Nextcloud's usual occ commands by following the <a href="https://github.com/nextcloud/all-in-one#how-to-run-occ-commands">occ documentation</a></strong>.</p>
{% endif %}
{% if nextcloud_datadir starts with '/' %}
Nextcloud's datadir is getting stored in the {{ nextcloud_datadir }} directory.
{% else %}
Nextcloud's datadir is getting stored in the {{ nextcloud_datadir }} Docker volume.
{% endif %}
See the <a href="https://github.com/nextcloud/all-in-one#how-to-change-the-default-location-of-nextclouds-datadir">NEXTCLOUD_DATADIR documentation</a> on how to change this.<br><br>
{% if nextcloud_mount == '' %}
The Nextcloud container is confied and local external storage in Nextcloud is disabled.
{% else %}
The Nextcloud container is getting gets access to the {{ nextcloud_mount }} directory and local external storage in Nextcloud is enabled.
{% endif %}
See the <a href="https://github.com/nextcloud/all-in-one#how-to-allow-the-nextcloud-container-to-access-directories-on-the-host">NEXTCLOUD_MOUNT documentation</a> on how to change this.<br><br>
<p>
{% if nextcloud_datadir starts with '/' %}
Nextcloud's datadir is getting stored in the {{ nextcloud_datadir }} directory.
{% else %}
Nextcloud's datadir is getting stored in the {{ nextcloud_datadir }} Docker volume.
{% endif %}
See the <a href="https://github.com/nextcloud/all-in-one#how-to-change-the-default-location-of-nextclouds-datadir">NEXTCLOUD_DATADIR documentation</a> on how to change this.
</p>
Nextcloud has an upload limit of {{ nextcloud_upload_limit }} configured (for public link uploads. Bigger uploads are always possible when users are logged in). See the <a href="https://github.com/nextcloud/all-in-one#how-to-adjust-the-upload-limit-for-nextcloud">NEXTCLOUD_UPLOAD_LIMIT documentation</a> on how to change this.<br><br>
<p>
{% if nextcloud_mount == '' %}
The Nextcloud container is confied and local external storage in Nextcloud is disabled.
{% else %}
The Nextcloud container is getting gets access to the {{ nextcloud_mount }} directory and local external storage in Nextcloud is enabled.
{% endif %}
See the <a href="https://github.com/nextcloud/all-in-one#how-to-allow-the-nextcloud-container-to-access-directories-on-the-host">NEXTCLOUD_MOUNT documentation</a> on how to change this.</p>
For Nextcloud, a memory limit of {{ nextcloud_memory_limit }} per PHP process is configured. See the <a href="https://github.com/nextcloud/all-in-one#how-to-adjust-the-php-memory-limit-for-nextcloud">NEXTCLOUD_MEMORY_LIMIT documentation</a> on how to change this.<br><br>
<p>Nextcloud has an upload limit of {{ nextcloud_upload_limit }} configured (for public link uploads. Bigger uploads are always possible when users are logged in). See the <a href="https://github.com/nextcloud/all-in-one#how-to-adjust-the-upload-limit-for-nextcloud">NEXTCLOUD_UPLOAD_LIMIT documentation</a> on how to change this.</p>
Nextcloud has a timeout of {{ nextcloud_max_time }} seconds configured (important for big file uploads). See the <a href="https://github.com/nextcloud/all-in-one#how-to-adjust-the-max-execution-time-for-nextcloud">NEXTCLOUD_MAX_TIME documentation</a> on how to change this.<br><br>
<p>For Nextcloud, a memory limit of {{ nextcloud_memory_limit }} per PHP process is configured. See the <a href="https://github.com/nextcloud/all-in-one#how-to-adjust-the-php-memory-limit-for-nextcloud">NEXTCLOUD_MEMORY_LIMIT documentation</a> on how to change this.</p>
{% if is_dri_device_enabled == true %}
The /dev/dri device which is needed for hardware transcoding is getting attached to the Nextcloud container.
{% else %}
The /dev/dri device which is needed for hardware transcoding is not attached to the Nextcloud container.
{% endif %}
See the <a href="https://github.com/nextcloud/all-in-one#how-to-enable-hardware-transcoding-for-nextcloud">NEXTCLOUD_ENABLE_DRI_DEVICE documentation</a> on how to change this.<br><br>
<p>Nextcloud has a timeout of {{ nextcloud_max_time }} seconds configured (important for big file uploads). See the <a href="https://github.com/nextcloud/all-in-one#how-to-adjust-the-max-execution-time-for-nextcloud">NEXTCLOUD_MAX_TIME documentation</a> on how to change this.</p>
For further documentation on AIO, refer to <strong><a href="https://github.com/nextcloud/all-in-one#nextcloud-all-in-one">this page</a></strong>. You can use the browser search [CTRL]+[F] to search through the documentation. Additional documentation can be found <strong><a href="https://github.com/nextcloud/all-in-one/discussions/categories/wiki">here</a></strong>.<br>
<p>
{% if is_dri_device_enabled == true %}
The /dev/dri device which is needed for hardware transcoding is getting attached to the Nextcloud container.
{% else %}
The /dev/dri device which is needed for hardware transcoding is not attached to the Nextcloud container.
{% endif %}
See the <a href="https://github.com/nextcloud/all-in-one#how-to-enable-hardware-transcoding-for-nextcloud">NEXTCLOUD_ENABLE_DRI_DEVICE documentation</a> on how to change this.</p>
<p>For further documentation on AIO, refer to <strong><a href="https://github.com/nextcloud/all-in-one#nextcloud-all-in-one">this page</a></strong>. You can use the browser search [CTRL]+[F] to search through the documentation. Additional documentation can be found <strong><a href="https://github.com/nextcloud/all-in-one/discussions/categories/wiki">here</a></strong>.</p>
</details>

View File

@@ -1,6 +1,6 @@
The folder path that you enter must start with <strong>/</strong> and must <strong>not</strong> end with <strong>/</strong>.<br><br>
An example for Linux is <strong>/mnt/backup</strong>.<br><br>
On Synology it could be <strong>/volume1/docker/nextcloud/backup</strong>.<br><br>
For macOS it may be <strong>/var/backup</strong>.<br><br>
On Windows it might be <strong>/run/desktop/mnt/host/c/backup</strong>. (This path is equivalent to 'C:\backup' on your Windows host so you need to translate the path accordingly. Hint: the path that you enter needs to start with '/run/desktop/mnt/host/'. Append to that the exact location on your windows host, e.g. 'c/backup' which is equivalent to 'C:\backup'.) ⚠️ <strong>Please note</strong>: This does not work with external drives like USB or network drives and only with internal drives like SATA or NVME drives.<br><br>
Another option is to enter a specific volume name here: <strong>nextcloud_aio_backupdir</strong>. This volume needs to be created beforehand manually by you in order to be able to use it. See <a href="https://github.com/nextcloud/all-in-one#how-to-create-the-backup-volume-on-windows">this documentation</a> for an example.<br><br>
<p>The folder path that you enter must start with <strong>/</strong> and must <strong>not</strong> end with <strong>/</strong>.</p>
<p>An example for Linux is <strong>/mnt/backup</strong>.</p>
<p>On Synology it could be <strong>/volume1/docker/nextcloud/backup</strong>.</p>
<p>For macOS it may be <strong>/var/backup</strong>.</p>
<p>On Windows it might be <strong>/run/desktop/mnt/host/c/backup</strong>. (This path is equivalent to 'C:\backup' on your Windows host so you need to translate the path accordingly. Hint: the path that you enter needs to start with '/run/desktop/mnt/host/'. Append to that the exact location on your windows host, e.g. 'c/backup' which is equivalent to 'C:\backup'.) ⚠️ <strong>Please note</strong>: This does not work with external drives like USB or network drives and only with internal drives like SATA or NVME drives.</p>
<p>Another option is to enter a specific volume name here: <strong>nextcloud_aio_backupdir</strong>. This volume needs to be created beforehand manually by you in order to be able to use it. See <a href="https://github.com/nextcloud/all-in-one#how-to-create-the-backup-volume-on-windows">this documentation</a> for an example.</p>

View File

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

View File

@@ -3,7 +3,7 @@
{% block body %}
<div class="login-wrapper">
<div class="login">
<img src="/img/logo-blue.svg" style="margin-left: auto;margin-right: auto;display: block;">
<img alt="Nextcloud logo" src="/img/logo-blue.svg" style="margin-left: auto;margin-right: auto;display: block;">
<h1>Nextcloud AIO Login</h1>
{% if is_login_allowed == true %}
<p>Log in using your Nextcloud AIO passphrase:</p>

View File

@@ -3,11 +3,11 @@
{% block body %}
<div class="login-wrapper">
<div class="login">
<img src="/img/logo-blue.svg" style="margin-left: auto;margin-right: auto;display: block;">
<img alt="Nextcloud logo" src="/img/logo-blue.svg" style="margin-left: auto;margin-right: auto;display: block;">
<h1>All-in-One setup</h1>
<p>The official Nextcloud installation method. Nextcloud All-in-One provides easy deployment and maintenance with most features included in this one Nextcloud instance.</p>
<p>⚠️ <strong>Please note down the passphrase to access the AIO interface and don't lose it!</strong></p>
<strong>Passphrase</strong><br/> <span class="monospace">{{ password }}</span><br>
<strong>Passphrase</strong><br/><span class="monospace">{{ password }}</span><br>
<a href="/" class="button" target="_blank" rel="noopener">Open Nextcloud AIO login ↗</a>
</div>
</div>

View File

@@ -11,6 +11,8 @@ Included are:
- Imaginary (optional, for previews of heic, heif, illustrator, pdf, svg, tiff and webp)
- ClamAV (optional, Antivirus backend for Nextcloud)
- Fulltextsearch (optional)
- Whiteboard (optional)
- Docker Socket Proxy (optional, needed for [Nextcloud App API](https://github.com/cloud-py-api/app_api#nextcloud-appapi))
<details><summary>And much more:</summary>
- Simple web interface included that enables easy installation and maintenance
@@ -75,7 +77,7 @@ Included are:
## Screenshots
| First setup | After installation |
|---|---|
| ![image](https://user-images.githubusercontent.com/42591237/232849125-30e24c85-bfd7-465e-8310-9b69cd9666fe.png) | ![image](https://user-images.githubusercontent.com/42591237/232849036-28c38d9a-3151-4cf1-97a5-4d94c1f0eba0.png) |
| ![image](https://github.com/user-attachments/assets/6ef5d7b5-86f2-402c-bc6c-b633af2ca7dd) | ![image](https://github.com/user-attachments/assets/5f510667-a172-4841-b916-89025debef3a) |
## How to use this?
The following instructions are meant for installations without a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else) already being in place. If you want to run AIO behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else), see the [reverse proxy documentation](https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md). Also, the instructions below are especially meant for Linux. For macOS see [this](#how-to-run-aio-on-macos), for Windows see [this](#how-to-run-aio-on-windows) and for Synology see [this](#how-to-run-aio-on-synology-dsm).
@@ -129,6 +131,9 @@ If your firewall/router has port 80 and 8443 open/forwarded and you point a doma
### How does it work?
Nextcloud AIO is inspired by projects like Portainer that manage the docker daemon by talking to it through the docker socket directly. This concept allows a user to install only one container with a single command that does the heavy lifting of creating and managing all containers that are needed in order to provide a Nextcloud installation with most features included. It also makes updating a breeze and is not bound to the host system (and its slow updates) anymore as everything is in containers. Additionally, it is very easy to handle from a user perspective because a simple interface for managing your Nextcloud AIO installation is provided.
### How to contribute?
See [this issue](https://github.com/nextcloud/all-in-one/issues/5251) for a list of feature requests that need help by contributors.
### Are reverse proxies supported?
Yes. Please refer to the following documentation on this: [reverse-proxy.md](https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md)
@@ -254,7 +259,7 @@ No and they will not be. If you want to run it locally, without opening Nextclou
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)
### 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.
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. Also you can set the environment variable `DISABLE_OVERWRITE_URL` to `true`, however we cannot fix bugs that may be caused by network issues. At your own risk.
### Are other ports than the default 443 for Nextcloud supported?
No and they will not be. Please use a dedicated domain for Nextcloud and set it up correctly by following the [reverse proxy documentation](./reverse-proxy.md). If port 443 and/or 80 is blocked for you, you may use the a Cloudflare Tunnel if you want to publish it online. You could also use the ACME DNS-challenge to get a valid certificate. However in all cases the Nextcloud interface will redirect you to port 443.