Compare commits

..

225 Commits

Author SHA1 Message Date
Simon L.
cbe0a89676 increase to 9.0.1
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-06-11 10:50:29 +02:00
Simon L
3d41d79682 Merge pull request #4807 from nextcloud/enh/4806/improve-appstorage
nextcloud: improve getting values for APPSTORAGE
2024-06-11 10:40:55 +02:00
Simon L
7c97d66579 address review
Signed-off-by: Simon L <szaimen@e.mail.de>

Co-authored-by: Josh <josh.t.richards@gmail.com>
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-06-11 10:38:38 +02:00
Simon L
978ac21314 Merge pull request #4809 from nextcloud/dependabot/docker/Containers/talk-recording/python-3.12.4-alpine3.19
Bump python from 3.12.3-alpine3.19 to 3.12.4-alpine3.19 in /Containers/talk-recording
2024-06-10 14:50:30 +02:00
dependabot[bot]
7f9e85254e Bump python in /Containers/talk-recording
Bumps python from 3.12.3-alpine3.19 to 3.12.4-alpine3.19.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-10 12:44:30 +00:00
Simon L
a127687e2b Merge pull request #4808 from nextcloud/aio-yaml-update
Yaml updates
2024-06-10 14:04:43 +02:00
szaimen
084d9a86fe Yaml updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-06-10 12:03:32 +00:00
Simon L
80cf17b5a2 Merge pull request #4789 from nextcloud/enh/noid/fix-getting-ip-address
fix getting ip-address of talk and apache
2024-06-10 10:42:50 +02:00
Simon L.
335026ce76 fix SC
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-06-10 10:38:59 +02:00
Simon L
573fe2c138 Merge pull request #4802 from nextcloud/aio-dependency-update
PHP dependency updates
2024-06-10 10:31:56 +02:00
Simon L
ef6e7d274d Merge pull request #4799 from ArmanTheParman/patch-1
readme: improve grammar
2024-06-10 10:30:44 +02:00
Simon L
ece7d5c90d Merge pull request #4788 from nextcloud/dependabot/docker/Containers/nextcloud/php-8.2.20-fpm-alpine3.19
Bump php from 8.2.19-fpm-alpine3.19 to 8.2.20-fpm-alpine3.19 in /Containers/nextcloud
2024-06-10 10:29:39 +02:00
Simon L
70daecb8a9 Merge pull request #4787 from nextcloud/dependabot/docker/Containers/mastercontainer/php-8.3.8-fpm-alpine3.19
Bump php from 8.3.7-fpm-alpine3.19 to 8.3.8-fpm-alpine3.19 in /Containers/mastercontainer
2024-06-10 10:29:18 +02:00
Simon L
f5897daaa9 Merge pull request #4786 from nextcloud/dependabot/docker/Containers/collabora/collabora/code-24.04.4.1.1
Bump collabora/code from 24.04.3.1.1 to 24.04.4.1.1 in /Containers/collabora
2024-06-10 10:29:06 +02:00
Simon L.
7bdd51554a nextcloud: improve getting values for APPSTORAGE
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-06-10 10:24:30 +02:00
szaimen
20d8976f1a php dependency updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-06-09 12:02:38 +00:00
Arman The Parman
39e0e4e2b2 Update readme.md
Grammar improvements x2

Signed-off-by: Arman The Parman <77603167+ArmanTheParman@users.noreply.github.com>
2024-06-09 12:47:09 +10:00
Simon L.
5b49ec6da2 fix getting ip-address of talk and apache
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-06-07 15:17:27 +02:00
dependabot[bot]
8eca2e3965 Bump php in /Containers/nextcloud
Bumps php from 8.2.19-fpm-alpine3.19 to 8.2.20-fpm-alpine3.19.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-07 12:59:15 +00:00
dependabot[bot]
0fcaab829a Bump php in /Containers/mastercontainer
Bumps php from 8.3.7-fpm-alpine3.19 to 8.3.8-fpm-alpine3.19.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-07 12:51:19 +00:00
dependabot[bot]
8c8f5da875 Bump collabora/code in /Containers/collabora
Bumps collabora/code from 24.04.3.1.1 to 24.04.4.1.1.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-07 12:13:00 +00:00
Simon L.
87cc69ccd8 facerecognition: remove warning about RAM again
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-06-07 11:14:58 +02:00
Simon L.
b67f3722fc caddy: adjust docs
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-06-07 11:12:49 +02:00
Simon L
8f17edb25c Merge pull request #4783 from nextcloud/enh/noid/add-daily-backup-note
aio interface: add hint what to do if daily backup gets stuck
2024-06-07 10:10:59 +02:00
Simon L.
df11865bef aio interface: add hint what to do if daily backup gets stuck
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-06-07 10:08:08 +02:00
Simon L
146521b28d Merge pull request #4776 from nextcloud/imaginary-container-update
Imaginary update
2024-06-06 22:09:44 +02:00
Simon L
0f2bd8a961 Merge pull request #4778 from nextcloud/dependabot/docker/Containers/fulltextsearch/elasticsearch-8.14.0
Bump elasticsearch from 8.13.4 to 8.14.0 in /Containers/fulltextsearch
2024-06-06 21:33:38 +02:00
Simon L
7c180e0dbf Merge pull request #4777 from nextcloud/dependabot/docker/Containers/mastercontainer/docker-26.1.4-cli
Bump docker from 26.1.3-cli to 26.1.4-cli in /Containers/mastercontainer
2024-06-06 21:32:56 +02:00
Simon L
360f80cb71 Merge pull request #4753 from nextcloud/stalwart-patch-1
Update add admin token
2024-06-06 21:31:55 +02:00
Simon L
283ed01a9f Merge pull request #4779 from nextcloud/enh/noid/disable-talk-healtch-check
talk: disable specific health check because it is not going to work o…
2024-06-06 20:27:28 +02:00
Jean-Yves
439f3ca43d Rename env to STALWART_USER_PASS and add doc
Signed-off-by: Jean-Yves <7360784+docjyJ@users.noreply.github.com>
2024-06-06 17:42:28 +02:00
Simon L.
42ddfb099d fix detail
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-06-06 15:23:41 +02:00
Simon L.
3eef585cd3 add a note to the readme about update notifications
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-06-06 15:22:18 +02:00
Simon L.
c51edb1bf4 adjust note regarding updating containers
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-06-06 15:12:27 +02:00
Simon L.
d83195f2f1 talk: disable specific health check because it is not going to work on some specific setups
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-06-06 15:02:33 +02:00
dependabot[bot]
016b8b4464 Bump elasticsearch from 8.13.4 to 8.14.0 in /Containers/fulltextsearch
Bumps elasticsearch from 8.13.4 to 8.14.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-06-06 12:52:22 +00:00
dependabot[bot]
01c6157d1a Bump docker from 26.1.3-cli to 26.1.4-cli in /Containers/mastercontainer
Bumps docker from 26.1.3-cli to 26.1.4-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-06-06 12:18:31 +00:00
szaimen
c78198620e imaginary-update automated change
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-06-06 12:02:40 +00:00
Simon L
8e75909689 Merge pull request #4774 from nextcloud/enh/noid/fix-caddy-rewriting
caddy: fix rewriting .well-known to remote.php
2024-06-06 12:50:40 +02:00
Simon L.
9d802f0323 caddy: fix rewriting .well-known to remote.php
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-06-06 12:43:50 +02:00
Simon L.
f6d59d41d0 increase to 9.0.0
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-06-06 12:02:30 +02:00
Simon L
518289047e Merge pull request #4773 from nextcloud/enh/4564/increase-nc-version
nextcloud: increase to 29.0.2
2024-06-06 12:01:41 +02:00
Simon L
5216a6aefa Merge pull request #4772 from nextcloud/enh/3573/update-to-16
postgres: update to 16
2024-06-06 12:01:29 +02:00
Simon L
8a6fed5ce3 Merge pull request #4771 from nextcloud/enh/4564/hide-update-notice
aio-interface: hide upgrade notice
2024-06-06 12:01:18 +02:00
Simon L
34665be741 Merge pull request #4770 from nextcloud/enh/noid/increase-app-version
aio-app: increase version
2024-06-06 12:01:08 +02:00
Simon L.
695b5a80e8 nextcloud: increase to 29.0.2
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-06-06 11:59:18 +02:00
Simon L.
a9f2f318a1 postgres: update to 16
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-06-06 11:57:08 +02:00
Simon L.
eca9defdcf aio-interface: hide upgrade notice
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-06-06 11:54:52 +02:00
Simon L.
b9ec25aca5 aio-app: increase version
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-06-06 11:51:18 +02:00
Simon L
6f52c02bb9 Merge pull request #4769 from nextcloud/enh/noid/increase-default_socket_timeout
nextcloud: increase the default_socket_timeout
2024-06-06 11:43:46 +02:00
Simon L.
0230e0134f nextcloud: increase the default_socket_timeout
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-06-06 11:09:08 +02:00
Simon L
813cfc2bf8 Merge pull request #4724 from nextcloud/enh/noid/localhost
use `127.0.0.1` instead of `localhost`
2024-06-06 10:27:07 +02:00
Simon L
59da067ff1 Merge pull request #4742 from nextcloud/enh/noid/facerecognition-model
facerecognition: change to FACE_MODEL=3 and adjust memory values
2024-06-06 10:26:29 +02:00
Simon L
77694bf260 Merge pull request #4755 from nextcloud/revert/2601/due-too-many-failures
revert "set NEXTCLOUD_MOUNT to rshared #2601"
2024-06-06 10:25:06 +02:00
Simon L
45bf0384f9 Merge pull request #4758 from nextcloud/dependabot/docker/Containers/clamav/clamav/clamav-1.3.1-54
Bump clamav/clamav from 1.3.1-53 to 1.3.1-54 in /Containers/clamav
2024-06-06 10:23:47 +02:00
Simon L
6eb6f6eec6 Merge pull request #4766 from nextcloud/dependabot/docker/Containers/apache/caddy-2.8.4-alpine
Bump caddy from 2.7.6-alpine to 2.8.4-alpine in /Containers/apache
2024-06-06 10:23:33 +02:00
Simon L
912c46b84a Merge pull request #4765 from nextcloud/dependabot/docker/Containers/mastercontainer/caddy-2.8.4-alpine
Bump caddy from 2.7.6-alpine to 2.8.4-alpine in /Containers/mastercontainer
2024-06-06 10:23:07 +02:00
Simon L
f686d32364 Merge pull request #4767 from nextcloud/aio-helm-update
Helm Chart updates
2024-06-06 10:02:13 +02:00
szaimen
e41d8b824c Helm Chart updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-06-06 08:00:47 +00:00
Simon L
755c81c30a Merge pull request #4669 from nextcloud/aio-yaml-update
Yaml updates
2024-06-06 09:58:51 +02:00
dependabot[bot]
c087be299e Bump caddy from 2.7.6-alpine to 2.8.4-alpine in /Containers/apache
Bumps caddy from 2.7.6-alpine to 2.8.4-alpine.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-05 12:58:21 +00:00
dependabot[bot]
5f70b352e0 Bump caddy in /Containers/mastercontainer
Bumps caddy from 2.7.6-alpine to 2.8.4-alpine.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-05 12:24:11 +00:00
dependabot[bot]
c97ef0963d Bump clamav/clamav from 1.3.1-53 to 1.3.1-54 in /Containers/clamav
Bumps clamav/clamav from 1.3.1-53 to 1.3.1-54.

---
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-06-03 12:18:11 +00:00
Simon L.
9387c1cddb revert "set NEXTCLOUD_MOUNT to rshared #2601"
as it causes too many problems.

Signed-off-by: Simon L <szaimen@e.mail.de>
2024-06-03 10:58:58 +02:00
Jean-Yves
e1866b404c Update add admin token
Signed-off-by: Jean-Yves <7360784+docjyJ@users.noreply.github.com>
2024-06-02 22:25:33 +02:00
szaimen
03912efe0c Yaml updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-06-01 12:02:25 +00:00
Simon L.
ed339d5101 adjust the memory values
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-05-31 16:38:01 +02:00
Simon L
d6580b30ce Merge pull request #4741 from nextcloud/update-caddy-docs-stalwart
Fix record type for caddy-stalwart
2024-05-31 15:33:20 +02:00
Simon L
9915281b74 also add hint about AAAA
Signed-off-by: Simon L <szaimen@e.mail.de>

Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-05-31 15:32:04 +02:00
Marco
d23984885d Update readme.md
Signed-off-by: Marco <marcoambrosini@proton.me>
2024-05-31 15:30:34 +02:00
Simon L.
ff5593f8ca facerecognition: change to FACE_MODEL=3
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-05-31 15:28:24 +02:00
Marco Ambrosini
f934c7f8a0 Fix record type for caddy-stalwart
Signed-off-by: Marco Ambrosini <marcoambrosini@proton.me>
2024-05-31 15:15:34 +02:00
Simon L.
b1d24962c2 adjust size requirements for local-ai
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-05-31 13:42:53 +02:00
Simon L.
33a80bad60 add warning note to facerecognition
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-05-31 11:48:47 +02:00
Simon L.
2edd952289 restore <br>
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-05-30 13:14:31 +02:00
Simon L.
b2cebaffcc fix detail
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-05-30 13:11:37 +02:00
Simon L
50fb24f689 Merge pull request #4731 from roelofz/patch-1
Update local-ai readme.md
2024-05-30 09:05:31 +02:00
roelofz
712d86e796 Update readme.md
Added a name for Stable diffusion, so a very small change:
  name: Stable_diffusion
Added last step to take to finish configuring the first AI and be able to see first responses in the Assistant. 

This is my first PR ever :-)

Signed-off-by: roelofz <11368363+roelofz@users.noreply.github.com>
2024-05-30 08:51:52 +02:00
Simon L
24ed3b9743 Merge pull request #4728 from nextcloud/enh/noid/redis-wait
nextcloud: wait for redis to start
2024-05-29 13:59:28 +02:00
Simon L.
54dc5387a7 nextcloud: wait for redis to start
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-05-29 13:48:00 +02:00
Simon L.
414716e279 use 127.0.0.1 instead of localhost
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-05-28 17:24:28 +02:00
Simon L
ab939dac26 Merge pull request #4723 from nextcloud/enh/noid/default-quota
helm: allow to set default quota for Nextcloud
2024-05-28 15:37:38 +02:00
Simon L.
3c6b44d1b5 helm: allow to set default quota for Nextcloud
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-05-28 11:15:13 +02:00
Simon L
524d97b1c9 Merge pull request #4720 from nextcloud/dependabot/docker/Containers/clamav/clamav/clamav-1.3.1-53
Bump clamav/clamav from 1.3.1-52 to 1.3.1-53 in /Containers/clamav
2024-05-27 14:35:07 +02:00
dependabot[bot]
9e7979b00e Bump clamav/clamav from 1.3.1-52 to 1.3.1-53 in /Containers/clamav
Bumps clamav/clamav from 1.3.1-52 to 1.3.1-53.

---
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-05-27 12:33:15 +00:00
Simon L.
cceb1a8a6c remove beta warning for community containers
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-05-24 18:29:54 +02:00
kri164
9e80bcf322 Update stalwart.json - add port definition for web admin interface (#4556)
Signed-off-by: kri164 <52274164+kri164@users.noreply.github.com>
Signed-off-by: Jean-Yves <7360784+docjyJ@users.noreply.github.com>
Signed-off-by: Simon L. <szaimen@e.mail.de>
Co-authored-by: Jean-Yves <7360784+docjyJ@users.noreply.github.com>
Co-authored-by: Simon L. <szaimen@e.mail.de>
2024-05-24 16:37:25 +02:00
Simon L
e4a802d7ee Merge pull request #4713 from nextcloud/revert-4586-revert-4323-enh/4123/drop-proxy-sendcl
Revert "Revert "apache - drop SetEnv proxy-sendcl 1""
2024-05-24 13:08:39 +02:00
Simon L
194e073883 Revert "Revert "apache - drop SetEnv proxy-sendcl 1""
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-05-24 13:07:46 +02:00
Simon L.
3c74c666c4 move How to reset the AIO instance? to a better place
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-05-24 12:55:23 +02:00
Simon L
3638910840 Merge pull request #4712 from nextcloud/dependabot/docker/Containers/talk/strukturag/nextcloud-spreed-signaling-1.3.1
Bump strukturag/nextcloud-spreed-signaling from 1.3.0 to 1.3.1 in /Containers/talk
2024-05-24 12:29:15 +02:00
Simon L
fa77ccb9f6 Merge pull request #4711 from nextcloud/talk-container-update
talk container update
2024-05-24 12:28:57 +02:00
dependabot[bot]
3bd2e867a1 Bump strukturag/nextcloud-spreed-signaling in /Containers/talk
Bumps strukturag/nextcloud-spreed-signaling from 1.3.0 to 1.3.1.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-24 10:28:35 +00:00
Simon L
54b6c54aec Merge pull request #4710 from nextcloud/nextcloud-container-update
Nextcloud dependency update
2024-05-24 12:28:14 +02:00
Simon L
3d419ccd6f Merge pull request #4709 from nextcloud/enh/noid/reset-instance-note
AIO interface: add note how to reset the AIO instance
2024-05-24 12:27:47 +02:00
szaimen
b18c210f86 talk-update automated change
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-05-24 10:27:21 +00:00
szaimen
f988c6a349 nextcloud-update automated change
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-05-24 10:27:15 +00:00
Simon L.
f000ee6fb7 AIO interface: add note how to reset the AIO instance
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-05-24 12:25:08 +02:00
Simon L
9239569347 Merge pull request #4706 from nextcloud/enh/noid/remove-caddy-imports
apache: remove caddy-imports
2024-05-24 12:09:31 +02:00
Simon L
4b6cbcf805 Merge pull request #4707 from nextcloud/enh/noid/document-limitation
AIO interface: document limitation regarding restoring of community container data
2024-05-24 12:07:23 +02:00
Simon L
377a9b6cf7 Merge pull request #4708 from nextcloud/enh/noid/b-tag-strong
AIO interface: substitute `b` tag with `strong` tag
2024-05-24 12:01:20 +02:00
Simon L.
c152aa352c AIO interface: document limitation regarding restoring of community container data
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-05-24 11:59:05 +02:00
Simon L.
62242ed247 AIO interface: substitute b tag with strong tag
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-05-24 11:57:00 +02:00
Simon L.
780ba6dd9d apache: remove caddy-imports
In favour of https://github.com/nextcloud/all-in-one/pull/3192
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-05-24 11:20:20 +02:00
Simon L
86509742db Merge pull request #4696 from nextcloud/enh/noid/apache-real-ip
adjust apache reverse proxy docs to set x-real-ip
2024-05-23 12:01:06 +02:00
Simon L.
a6d2b908f5 adjust apache reverse proxy docs to set x-real-ip
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-05-23 11:53:16 +02:00
Simon L
9bd7706ac7 Merge pull request #4691 from nextcloud/dependabot/docker/Containers/collabora/collabora/code-24.04.3.1.1
Bump collabora/code from 24.04.2.1.1 to 24.04.3.1.1 in /Containers/collabora
2024-05-22 16:56:42 +02:00
Simon L
b43a5f7e84 Merge pull request #4693 from nextcloud/enh/noid/borg-backup-mode
add borg_backup_mode to Backup container status
2024-05-22 15:26:25 +02:00
Simon L.
d14ac5cd1d add borg_backup_mode to Backup container status
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-05-22 15:22:59 +02:00
Simon L
9457af191a Merge pull request #4692 from nextcloud/enh/noid/fix-api-version-bug
fix bug with getting api_version
2024-05-22 15:01:07 +02:00
Simon L.
6d0bee33d3 fix bug with getting api_version
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-05-22 14:59:48 +02:00
Simon L.
eeccfec0c9 Revert "pre-fill the domain"
This reverts commit 46b6992b52.
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-05-22 14:49:40 +02:00
dependabot[bot]
8530499e1e ---
updated-dependencies:
- dependency-name: collabora/code
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-22 12:44:37 +00:00
Simon L
8c349800c0 Merge pull request #4687 from nextcloud/dependabot/docker/Containers/talk/strukturag/nextcloud-spreed-signaling-1.3.0
Bump strukturag/nextcloud-spreed-signaling from 1.2.4 to 1.3.0 in /Containers/talk
2024-05-22 14:18:46 +02:00
Simon L
6f7e95a7c3 Merge pull request #4686 from nextcloud/talk-container-update
talk container update
2024-05-22 14:18:21 +02:00
dependabot[bot]
42e1616010 ---
updated-dependencies:
- dependency-name: strukturag/nextcloud-spreed-signaling
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-22 12:17:55 +00:00
Simon L
dec9d14fda Merge pull request #4688 from nextcloud/dependabot/docker/Containers/talk/nats-2.10.16-scratch
Bump nats from 2.10.14-scratch to 2.10.16-scratch in /Containers/talk
2024-05-22 14:17:11 +02:00
Simon L
f4334c7ff2 Merge pull request #4690 from nextcloud/enh/noid/fix-collabora
fix collabora build by not running apt-get upgrade
2024-05-22 14:16:50 +02:00
Simon L.
e9b6152773 fix collabora build by not running apt-get upgrade
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-05-22 14:15:18 +02:00
Simon L
47ac5462f9 Merge pull request #4689 from nextcloud/revert-4631-dependabot/docker/Containers/collabora/collabora/code-24.04.2.1.1
Revert "Bump collabora/code from 24.04.1.4.1 to 24.04.2.1.1 in /Containers/collabora"
2024-05-22 14:09:54 +02:00
dependabot[bot]
676d5c2e53 ---
updated-dependencies:
- dependency-name: nats
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-22 12:08:53 +00:00
Simon L
9207d0f913 Revert "Bump collabora/code from 24.04.1.4.1 to 24.04.2.1.1 in /Containers/collabora" 2024-05-22 14:08:44 +02:00
szaimen
b40968d989 talk-update automated change
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-05-22 12:03:29 +00:00
Simon L
f8f867629d Merge pull request #4685 from nextcloud/fix/4667/fix-limiting-ip-address
fix limiting php-fpm socket to certain ip-addresses
2024-05-22 14:03:09 +02:00
Simon L.
ee7868fb58 fix limiting php-fpm socket to certain ip-addresses
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-05-22 13:57:47 +02:00
Simon L.
d1be45c359 fix it also on setup screen
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-05-21 17:10:09 +02:00
Simon L.
8fd457f62c fix detail in containers starting screen
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-05-21 17:07:44 +02:00
Simon L.
93044dd181 increase to 8.3.0
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-05-21 15:06:33 +02:00
Simon L.
d175d88024 Revert "increase to 8.3.0"
This reverts commit 854f596463.
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-05-21 15:06:03 +02:00
Simon L
042c842579 Merge pull request #4683 from nextcloud/dependabot/docker/Containers/redis/redis-7.2.5-alpine
Bump redis from 7.2.4-alpine to 7.2.5-alpine in /Containers/redis
2024-05-21 15:02:09 +02:00
dependabot[bot]
06de90a838 ---
updated-dependencies:
- dependency-name: redis
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-21 12:30:10 +00:00
Simon L.
854f596463 increase to 8.3.0
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-05-21 14:11:35 +02:00
Braiden Psiuk
4794d5119a Add information about virtual machines (#4274)
Signed-off-by: Braiden Psiuk <mail@braiden.dev>
Signed-off-by: Simon L. <szaimen@e.mail.de>
Co-authored-by: Simon L <szaimen@e.mail.de>
2024-05-21 11:14:41 +02:00
Simon L
a5dcc1345c Merge pull request #4680 from killianeletellier/main
Corrects a typo in containers.twig
2024-05-21 01:07:00 +02:00
Simon L
bddbd37e3f Merge pull request #4679 from nextcloud/dependabot/docker/Containers/clamav/clamav/clamav-1.3.1-52
Bump clamav/clamav from 1.3.1-51 to 1.3.1-52 in /Containers/clamav
2024-05-21 01:04:50 +02:00
Killiane Letellier
df3935a992 Corrects a typo in containers.twig
Signed-off-by: Killiane Letellier <killiane.letellier@mailo.com>
2024-05-20 16:16:04 +02:00
dependabot[bot]
2be9c9ef10 Bump clamav/clamav from 1.3.1-51 to 1.3.1-52 in /Containers/clamav
Bumps clamav/clamav from 1.3.1-51 to 1.3.1-52.

---
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-05-20 12:37:56 +00:00
Simon L
01f76081df Merge pull request #4665 from nextcloud/dependabot/docker/Containers/mastercontainer/docker-26.1.3-cli
Bump docker from 26.1.2-cli to 26.1.3-cli in /Containers/mastercontainer
2024-05-17 14:54:55 +02:00
dependabot[bot]
e17b1d4f23 Bump docker from 26.1.2-cli to 26.1.3-cli in /Containers/mastercontainer
Bumps docker from 26.1.2-cli to 26.1.3-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-05-17 12:28:21 +00:00
Simon L
de5aeb64d4 Merge pull request #4433 from davidmehren/postgres_port
Add a config option for the postgres database port
2024-05-17 14:10:06 +02:00
Simon L.
b1ad854de6 Revert changes to database container
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-05-17 14:05:58 +02:00
David Mehren
047c3555ba Add a config option for the postgres database port
Signed-off-by: David Mehren <git@herrmehren.de>
2024-05-17 14:05:58 +02:00
Simon L
d8a73f8786 Merge pull request #4662 from ncguk/ncguk-patch-1
Update containers.twig
2024-05-17 12:09:56 +02:00
ncguk
5ad62bcd2f Update containers.twig
Signed-off-by: ncguk <inglenook@duck.com>
2024-05-17 12:07:34 +02:00
ncguk
32890a75f3 Update containers.twig
Many text changes for readability. No code changes.

Signed-off-by: ncguk <inglenook@duck.com>
2024-05-17 12:07:34 +02:00
Simon L
24e66e5323 Merge pull request #4588 from nextcloud/enh/4480/improve-design
improve UX and UI
2024-05-17 11:55:11 +02:00
Simon L
668d4e097f Merge pull request #4661 from nextcloud/aio-dependency-update
PHP dependency updates
2024-05-16 16:14:54 +02:00
szaimen
2352367a19 php dependency updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-05-16 12:02:28 +00:00
Simon L.
e78de8a113 rename password to encryption password
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-05-16 10:56:18 +02:00
Simon L.
14153b424b adjust wording
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-05-16 10:56:18 +02:00
Simon L.
000d881fc2 change wording
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-05-16 10:56:17 +02:00
Simon L.
63c667cac3 add instructions how to inspect container logs
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-05-16 10:56:17 +02:00
Simon L.
5a826222d4 try to fix glitchy buttons
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-05-16 10:56:17 +02:00
Simon L.
26c042fd28 pre-fill the timezone
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-05-16 10:56:17 +02:00
Simon L.
560dce906e adjust loader color to match nextcloud blue
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-05-16 10:56:17 +02:00
Simon L.
628abc02f6 change password to passphrase
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-05-16 10:56:16 +02:00
Simon L.
f8603b10fc add warning toe note down the password and make it big
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-05-15 18:09:01 +02:00
Simon L.
99567d6872 change Nextcloud AIO setup to All-in-One setup
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-05-15 18:09:01 +02:00
Simon L.
46b6992b52 pre-fill the domain
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-05-15 18:09:01 +02:00
Simon L
b938a6642e Merge pull request #4651 from nextcloud/enh/noid/change-rewrite
change the rewrite for remote.php
2024-05-15 13:50:37 +02:00
Simon L
8ccf87eec2 Merge pull request #4652 from nextcloud/aio-dependency-update
PHP dependency updates
2024-05-14 14:42:56 +02:00
szaimen
48ec6502d6 php dependency updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-05-14 12:02:38 +00:00
Simon L.
3ee5278cc6 change the rewrite for remote.php
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-05-14 11:51:46 +02:00
Simon L
54a07b7b94 Merge pull request #4609 from nextcloud/automated/noid/psalm-baseline-update
[Automated] Update psalm-baseline.xml
2024-05-14 11:33:48 +02:00
Simon L.
3c91fa84e3 fix all places
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-05-14 11:30:55 +02:00
Simon L
3fa811ef90 Merge pull request #4644 from nextcloud/dependabot/docker/Containers/nextcloud/php-8.2.19-fpm-alpine3.19
Bump php from 8.2.18-fpm-alpine3.19 to 8.2.19-fpm-alpine3.19 in /Containers/nextcloud
2024-05-13 18:02:14 +02:00
Simon L
b30b03aeb6 Merge pull request #4643 from nextcloud/dependabot/docker/Containers/mastercontainer/php-8.3.7-fpm-alpine3.19
Bump php from 8.3.6-fpm-alpine3.19 to 8.3.7-fpm-alpine3.19 in /Containers/mastercontainer
2024-05-13 18:01:44 +02:00
Simon L
d8a700ab81 Merge pull request #4642 from nextcloud/dependabot/docker/Containers/clamav/clamav/clamav-1.3.1-51
Bump clamav/clamav from 1.3.1-49 to 1.3.1-51 in /Containers/clamav
2024-05-13 18:00:31 +02:00
Simon L
1e3dd91b43 Merge pull request #4633 from nextcloud/dependabot/docker/Containers/fulltextsearch/elasticsearch-8.13.4
Bump elasticsearch from 8.13.0 to 8.13.4 in /Containers/fulltextsearch
2024-05-13 18:00:13 +02:00
Simon L
ff4ed0d616 Merge pull request #4632 from nextcloud/dependabot/docker/Containers/mastercontainer/docker-26.1.2-cli
Bump docker from 26.1.0-cli to 26.1.2-cli in /Containers/mastercontainer
2024-05-13 17:59:57 +02:00
Simon L
5f7e803e00 Merge pull request #4631 from nextcloud/dependabot/docker/Containers/collabora/collabora/code-24.04.2.1.1
Bump collabora/code from 24.04.1.4.1 to 24.04.2.1.1 in /Containers/collabora
2024-05-13 17:59:40 +02:00
Simon L
deb89224eb Merge pull request #4630 from nextcloud/dependabot/docker/Containers/postgresql/postgres-15.7-alpine
Bump postgres from 15.6-alpine to 15.7-alpine in /Containers/postgresql
2024-05-13 17:59:10 +02:00
Simon L
2f8b5321bd Merge pull request #4628 from nextcloud/dependabot/docker/Containers/imaginary/golang-1.22.3-alpine3.18
Bump golang from 1.22.2-alpine3.18 to 1.22.3-alpine3.18 in /Containers/imaginary
2024-05-13 17:58:41 +02:00
Simon L
7a27542fa8 Merge pull request #4606 from nextcloud/aio-dependency-update
PHP dependency updates
2024-05-13 17:58:22 +02:00
Simon L
6cfb0ea09c Merge pull request #4617 from nextcloud/pulsejet/fix-preview-type
fix(entrypoint): system config value types
2024-05-13 16:24:33 +02:00
dependabot[bot]
314cd10607 Bump php in /Containers/nextcloud
Bumps php from 8.2.18-fpm-alpine3.19 to 8.2.19-fpm-alpine3.19.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-13 12:18:21 +00:00
dependabot[bot]
c916d80a75 Bump php in /Containers/mastercontainer
Bumps php from 8.3.6-fpm-alpine3.19 to 8.3.7-fpm-alpine3.19.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-13 12:07:45 +00:00
dependabot[bot]
3b3bb3a161 Bump clamav/clamav from 1.3.1-49 to 1.3.1-51 in /Containers/clamav
Bumps clamav/clamav from 1.3.1-49 to 1.3.1-51.

---
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-05-13 12:06:04 +00:00
szaimen
a5ed5c43fe php dependency updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-05-12 12:02:00 +00:00
dependabot[bot]
92bbf20d6b Bump elasticsearch from 8.13.0 to 8.13.4 in /Containers/fulltextsearch
Bumps elasticsearch from 8.13.0 to 8.13.4.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-10 12:57:32 +00:00
dependabot[bot]
e2f5b50e37 Bump docker from 26.1.0-cli to 26.1.2-cli in /Containers/mastercontainer
Bumps docker from 26.1.0-cli to 26.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-05-10 12:51:01 +00:00
dependabot[bot]
ee15249e1b Bump collabora/code in /Containers/collabora
Bumps collabora/code from 24.04.1.4.1 to 24.04.2.1.1.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-10 12:36:15 +00:00
dependabot[bot]
e82191370b Bump postgres from 15.6-alpine to 15.7-alpine in /Containers/postgresql
Bumps postgres from 15.6-alpine to 15.7-alpine.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-10 12:27:54 +00:00
dependabot[bot]
c364d072ab Bump golang in /Containers/imaginary
Bumps golang from 1.22.2-alpine3.18 to 1.22.3-alpine3.18.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-08 12:36:32 +00:00
Varun Patil
11de79bea4 fix(entrypoint): system config value types
Signed-off-by: Varun Patil <varunpatil@ucla.edu>
2024-05-03 08:29:34 -07:00
nextcloud-command
b9c57dc8d9 Update psalm baseline
Signed-off-by: GitHub <noreply@github.com>
2024-05-03 04:09:51 +00:00
Simon L
ba7a3f5829 Merge pull request #4611 from nextcloud/aio-helm-update
Helm Chart updates
2024-05-02 12:52:24 +02:00
szaimen
a8104183aa Helm Chart updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-05-02 10:48:01 +00:00
Jean-Yves
07a8367181 LLDAP - Update ReadMe (#4571)
Signed-off-by: Jean-Yves <7360784+docjyJ@users.noreply.github.com>
2024-04-30 12:05:57 +02:00
Simon L
0ad59ef8b1 Merge pull request #4593 from nextcloud/mention-nginx
nginx config should also work for freenginx and openresty
2024-04-29 13:26:10 +02:00
Zoey
1edcf9ed5b Update reverse-proxy.md
Co-authored-by: Simon L. <szaimen@e.mail.de>
Signed-off-by: Zoey <zoey@z0ey.de>
2024-04-29 13:22:17 +02:00
Zoey
689fa2a69b nginx config should also work for freenginx and openresty
freenginx is a fork of nginx
and openresty is nginx with some patches + some modules and lua support

Signed-off-by: Zoey <zoey@z0ey.de>
2024-04-26 23:18:50 +02:00
Simon L
dc8250bf83 Merge pull request #4589 from Zakmaf/patch-1
Update compose.yaml
2024-04-26 15:36:25 +02:00
Zakmaf
be089e132f Update compose.yaml
Correcting the mix of two syntaxes in environment variables

Signed-off-by: Zakmaf <100925791+Zakmaf@users.noreply.github.com>
2024-04-26 14:02:50 +01:00
Simon L.
9347144a19 improve UX and UI
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-04-26 12:02:03 +02:00
Simon L
6e923895af Merge pull request #4587 from nextcloud/enh/noid/adjust-compose-file
adjust the compose file to use `:` instead of `=`
2024-04-26 11:49:31 +02:00
Simon L.
f8cc35cce9 adjust the compose file to use : instead of =
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-04-26 11:01:34 +02:00
Simon L.
f3ad24d932 increase to 8.2.1
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-04-25 16:56:11 +02:00
Simon L
53836b6231 Merge pull request #4560 from nextcloud/trust-ip-gateway
trust IP of docker network gateway
2024-04-25 16:54:39 +02:00
Simon L.
03792a5661 use the same logic like in apache
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-04-25 16:51:33 +02:00
Simon L
4f40890d7d Merge pull request #4583 from nextcloud/nextcloud-container-update
Nextcloud dependency update
2024-04-25 16:47:47 +02:00
Simon L
a48301f9c1 Merge pull request #4586 from nextcloud/revert-4323-enh/4123/drop-proxy-sendcl
Revert "apache - drop SetEnv proxy-sendcl 1"
2024-04-25 16:36:28 +02:00
Simon L
1168c749b0 Revert "apache - drop SetEnv proxy-sendcl 1"
Signed-off-by: Simon L <szaimen@e.mail.de>
2024-04-25 16:34:18 +02:00
Simon L
a1037ba72b Merge pull request #4584 from nextcloud/dependabot/docker/Containers/collabora/collabora/code-24.04.1.4.1
Bump collabora/code from 24.04.1.3.1 to 24.04.1.4.1 in /Containers/collabora
2024-04-25 14:32:43 +02:00
dependabot[bot]
fe947707b0 Bump collabora/code in /Containers/collabora
Bumps collabora/code from 24.04.1.3.1 to 24.04.1.4.1.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-25 12:27:50 +00:00
szaimen
e0e1143b9c nextcloud-update automated change
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-04-25 11:26:29 +00:00
Simon L
bab11ed61a Merge pull request #4578 from nextcloud/dependabot/docker/Containers/mastercontainer/docker-26.1.0-cli
Bump docker from 26.0.2-cli to 26.1.0-cli in /Containers/mastercontainer
2024-04-24 15:04:38 +02:00
dependabot[bot]
17ce7cc2b1 Bump docker from 26.0.2-cli to 26.1.0-cli in /Containers/mastercontainer
Bumps docker from 26.0.2-cli to 26.1.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-04-24 12:57:47 +00:00
Simon L
c4499174d6 Merge pull request #4577 from nextcloud/imaginary-container-update
Imaginary update
2024-04-24 14:18:23 +02:00
szaimen
d2028048e9 imaginary-update automated change
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-04-24 12:03:04 +00:00
Simon L
d87d40c054 Merge pull request #4559 from nextcloud/run-apk-upgrade
upgrade preinstalled packages in final build step
2024-04-24 12:21:14 +02:00
Simon L
157ad4701b Merge pull request #4572 from nextcloud/logs-docker-socket-proxy
allow logs endpoint in haproxy.cfg for docker-socket-proxy
2024-04-24 12:20:43 +02:00
Simon L
e47e239018 Merge pull request #4573 from nextcloud/dependabot/docker/Containers/collabora/collabora/code-24.04.1.3.1
Bump collabora/code from 23.05.10.1.1 to 24.04.1.3.1 in /Containers/collabora
2024-04-24 12:19:58 +02:00
Simon L
61930c8196 Merge pull request #4569 from nextcloud/dependabot/docker/Containers/mastercontainer/docker-26.0.2-cli
Bump docker from 26.0.1-cli to 26.0.2-cli in /Containers/mastercontainer
2024-04-24 12:19:42 +02:00
Simon L
44e458b8ed Merge pull request #4568 from nextcloud/dependabot/docker/Containers/clamav/clamav/clamav-1.3.1-49
Bump clamav/clamav from 1.3.0-47 to 1.3.1-49 in /Containers/clamav
2024-04-24 12:19:27 +02:00
Simon L
60a31d860f Merge pull request #4558 from nextcloud/aio-dependency-update
PHP dependency updates
2024-04-24 12:19:10 +02:00
Simon L
ca29850abb Merge pull request #4576 from nextcloud/aio-helm-update
Helm Chart updates
2024-04-24 12:17:31 +02:00
szaimen
22d88a97f9 Helm Chart updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-04-24 10:15:02 +00:00
dependabot[bot]
283584fe00 Bump collabora/code in /Containers/collabora
Bumps collabora/code from 23.05.10.1.1 to 24.04.1.3.1.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-23 12:43:13 +00:00
Andrey Borysenko
35b098cf02 allow logs endpoint in haproxy.cfg for docker-socket-proxy
Signed-off-by: Andrey Borysenko <andrey18106x@gmail.com>
2024-04-23 09:28:05 +03:00
dependabot[bot]
a01156d90c Bump docker from 26.0.1-cli to 26.0.2-cli in /Containers/mastercontainer
Bumps docker from 26.0.1-cli to 26.0.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-04-22 12:13:48 +00:00
dependabot[bot]
90b0edd95b Bump clamav/clamav from 1.3.0-47 to 1.3.1-49 in /Containers/clamav
Bumps clamav/clamav from 1.3.0-47 to 1.3.1-49.

---
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-04-22 12:08:12 +00:00
szaimen
d976ac2c66 php dependency updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-04-18 12:08:51 +00:00
Zoey
1ee74f1d42 trust IP of docker network gateway
Signed-off-by: Zoey <zoey@z0ey.de>
2024-04-17 18:01:12 +02:00
Zoey
c671018798 close #4491
Signed-off-by: Zoey <zoey@z0ey.de>
2024-04-17 17:55:43 +02:00
94 changed files with 821 additions and 447 deletions

1
.gitattributes vendored Normal file
View File

@@ -0,0 +1 @@
* text=auto

View File

@@ -51,16 +51,13 @@ https://{$ADDITIONAL_TRUSTED_DOMAIN}:443,
reverse_proxy {$TALK_HOST}:8081
}
# Others
import /mnt/data/caddy-imports/*
# Nextcloud
route {
rewrite /.well-known/carddav /remote.php/dav
rewrite /.well-known/caldav /remote.php/dav
header Strict-Transport-Security max-age=31536000;
reverse_proxy localhost:8000
reverse_proxy 127.0.0.1:8000
}
redir /.well-known/carddav /remote.php/dav/ 301
redir /.well-known/caldav /remote.php/dav/ 301
# TLS options
tls {

View File

@@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest
FROM caddy:2.7.6-alpine as caddy
FROM caddy:2.8.4-alpine as caddy
FROM httpd:2.4.59-alpine3.19
@@ -14,6 +14,7 @@ COPY --chmod=775 healthcheck.sh /healthcheck.sh
VOLUME /mnt/data
RUN set -ex; \
apk upgrade --no-cache -a; \
apk add --no-cache shadow; \
groupmod -g 333 xfs; \
usermod -u 333 -g 333 xfs; \

View File

@@ -1,8 +1,8 @@
#!/bin/bash
nc -z "$NEXTCLOUD_HOST" 9000 || exit 0
nc -z localhost 8000 || exit 1
nc -z localhost "$APACHE_PORT" || exit 1
nc -z 127.0.0.1 8000 || exit 1
nc -z 127.0.0.1 "$APACHE_PORT" || exit 1
if ! nc -z "$NC_DOMAIN" 443; then
echo "Could not reach $NC_DOMAIN on port 443."
exit 1

View File

@@ -18,7 +18,8 @@ while ! nc -z "$NEXTCLOUD_HOST" 9000; do
done
# Get ipv4-address of Apache
IPv4_ADDRESS="$(dig nextcloud-aio-apache A +short +search | head -1)"
# shellcheck disable=SC2153
IPv4_ADDRESS="$(dig "$APACHE_HOST" A +short +search | head -1)"
# Bring it in CIDR notation
# shellcheck disable=SC2001
IPv4_ADDRESS="$(echo "$IPv4_ADDRESS" | sed 's|[0-9]\+$|1/32|')"
@@ -63,15 +64,6 @@ caddy fmt --overwrite /tmp/Caddyfile
# Add caddy path
mkdir -p /mnt/data/caddy/
# Add caddy import path
mkdir -p /mnt/data/caddy-imports
# Remove falsely added Nextcloud conf
rm -f /mnt/data/caddy-imports/nextcloud
# Make sure that the caddy-imports dir is not empty
echo "# empty file so that caddy does not print a warning" > /mnt/data/caddy-imports/empty
# Fix apache startup
rm -f /usr/local/apache2/logs/httpd.pid

View File

@@ -3,6 +3,7 @@ FROM alpine:3.19.1
RUN set -ex; \
\
apk upgrade --no-cache -a; \
apk add --no-cache \
util-linux-misc \
bash \

View File

@@ -1,10 +1,11 @@
# syntax=docker/dockerfile:latest
# Probably from this file: https://github.com/Cisco-Talos/clamav-docker/blob/main/clamav/1.1/alpine/Dockerfile
FROM clamav/clamav:1.3.0-47
FROM clamav/clamav:1.3.1-54
COPY clamav.conf /tmp/clamav.conf
RUN set -ex; \
apk upgrade --no-cache -a; \
apk add --no-cache tzdata; \
cat /tmp/clamav.conf >> /etc/clamav/clamd.conf; \
rm /tmp/clamav.conf; \

View File

@@ -1,14 +1,14 @@
# syntax=docker/dockerfile:latest
# From a file located probably somewhere here: https://github.com/CollaboraOnline/online/tree/master/docker
FROM collabora/code:23.05.10.1.1
FROM collabora/code:24.04.4.1.1
USER root
ARG DEBIAN_FRONTEND noninteractive
# hadolint ignore=DL3008
RUN set -ex; \
\
apt-get update; \
export DEBIAN_FRONTEND=noninteractive; \
apt-get install -y --no-install-recommends \
tzdata \
netcat-openbsd \
@@ -17,5 +17,5 @@ RUN set -ex; \
USER 100
HEALTHCHECK CMD nc -z localhost 9980 || exit 1
HEALTHCHECK CMD nc -z 127.0.0.1 9980 || exit 1
LABEL com.centurylinklabs.watchtower.enable="false"

View File

@@ -5,6 +5,7 @@ FROM haproxy:2.9.7-alpine3.19
USER root
ENV NEXTCLOUD_HOST nextcloud-aio-nextcloud
RUN set -ex; \
apk upgrade --no-cache -a; \
apk add --no-cache \
ca-certificates \
tzdata \

View File

@@ -16,6 +16,8 @@ frontend http
http-request allow if { path,url_dec -m reg -i ^(/v[\d\.]+)?/_ping } METH_GET
# container inspect: GET containers/%s/json
http-request allow if { path,url_dec -m reg -i ^(/v[\d\.]+)?/containers/nc_app_[a-zA-Z0-9_.-]+/json } METH_GET
# container inspect: GET containers/%s/logs
http-request allow if { path,url_dec -m reg -i ^(/v[\d\.]+)?/containers/nc_app_[a-zA-Z0-9_.-]+/logs } METH_GET
# container start/stop: POST containers/%s/start containers/%s/stop
http-request allow if { path,url_dec -m reg -i ^(/v[\d\.]+)?/containers/nc_app_[a-zA-Z0-9_.-]+/((start)|(stop)) } METH_POST
# container rm: DELETE containers/%s

View File

@@ -1,4 +1,4 @@
#!/bin/bash
nc -z "$NEXTCLOUD_HOST" 9001 || exit 0
nc -z localhost 2375 || exit 1
nc -z 127.0.0.1 2375 || exit 1

View File

@@ -1,6 +1,7 @@
# syntax=docker/dockerfile:latest
FROM alpine:3.19.1
RUN set -ex; \
apk upgrade --no-cache -a; \
apk add --no-cache bash lighttpd netcat-openbsd; \
adduser -S www-data -G www-data; \
rm -rf /etc/lighttpd/lighttpd.conf; \
@@ -15,5 +16,5 @@ COPY --chmod=775 start.sh /start.sh
USER www-data
ENTRYPOINT ["/start.sh"]
HEALTHCHECK CMD nc -z localhost $APACHE_PORT || exit 1
HEALTHCHECK CMD nc -z 127.0.0.1 $APACHE_PORT || exit 1
LABEL com.centurylinklabs.watchtower.enable="false"

View File

@@ -1,14 +1,16 @@
# syntax=docker/dockerfile:latest
# Probably from here https://github.com/elastic/elasticsearch/blob/main/distribution/docker/src/docker/Dockerfile
FROM elasticsearch:8.13.0
FROM elasticsearch:8.14.0
USER root
ARG DEBIAN_FRONTEND noninteractive
# hadolint ignore=DL3008
RUN set -ex; \
\
export DEBIAN_FRONTEND=noninteractive; \
apt-get update; \
apt-get upgrade -y; \
apt-get install -y --no-install-recommends \
tzdata \
; \
@@ -17,5 +19,5 @@ RUN set -ex; \
USER 1000:0
HEALTHCHECK CMD nc -z localhost 9200 || exit 1
HEALTHCHECK CMD nc -z 127.0.0.1 9200 || exit 1
LABEL com.centurylinklabs.watchtower.enable="false"

View File

@@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest
FROM golang:1.22.2-alpine3.18 as go
FROM golang:1.22.3-alpine3.18 as go
ENV IMAGINARY_HASH 6cd9edd1d3fb151eb773c14552886e4fc8e50138
@@ -15,6 +15,7 @@ RUN set -ex; \
FROM alpine:3.18.6
RUN set -ex; \
apk upgrade --no-cache -a; \
apk add --no-cache \
tzdata \
ca-certificates \
@@ -37,5 +38,5 @@ USER nobody
ENV MALLOC_ARENA_MAX=2
ENTRYPOINT ["/start.sh"]
HEALTHCHECK CMD nc -z localhost "$PORT" || exit 1
HEALTHCHECK CMD nc -z 127.0.0.1 "$PORT" || exit 1
LABEL com.centurylinklabs.watchtower.enable="false"

View File

@@ -16,7 +16,7 @@
}
on_demand_tls {
ask http://localhost:9876/
ask http://127.0.0.1:9876/
}
}
@@ -26,7 +26,7 @@ http://:80 {
https://:8443 {
reverse_proxy localhost:8000
reverse_proxy 127.0.0.1:8000
tls {
on_demand

View File

@@ -1,12 +1,12 @@
# syntax=docker/dockerfile:latest
# Docker CLI is a requirement
FROM docker:26.0.1-cli as docker
FROM docker:26.1.4-cli as docker
# Caddy is a requirement
FROM caddy:2.7.6-alpine as caddy
FROM caddy:2.8.4-alpine as caddy
# From https://github.com/docker-library/php/blob/master/8.3/alpine3.19/fpm/Dockerfile
FROM php:8.3.6-fpm-alpine3.19
FROM php:8.3.8-fpm-alpine3.19
EXPOSE 80
EXPOSE 8080
@@ -19,6 +19,7 @@ WORKDIR /var/www/docker-aio
# hadolint ignore=SC2086,DL3047,DL3003,DL3004
RUN set -ex; \
apk upgrade --no-cache -a; \
apk add --no-cache shadow; \
groupmod -g 333 xfs; \
usermod -u 333 -g 333 xfs; \

View File

@@ -1,10 +1,10 @@
#!/bin/bash
if [ -f "/mnt/docker-aio-config/data/configuration.json" ]; then
nc -z localhost 80 || exit 1
nc -z localhost 8000 || exit 1
nc -z localhost 8080 || exit 1
nc -z localhost 8443 || exit 1
nc -z localhost 9000 || exit 1
nc -z localhost 9876 || exit 1
nc -z 127.0.0.1 80 || exit 1
nc -z 127.0.0.1 8000 || exit 1
nc -z 127.0.0.1 8080 || exit 1
nc -z 127.0.0.1 8443 || exit 1
nc -z 127.0.0.1 9000 || exit 1
nc -z 127.0.0.1 9876 || exit 1
fi

View File

@@ -19,7 +19,7 @@ Listen 8080
# PHP match
<FilesMatch "\.php$">
SetHandler "proxy:fcgi://localhost:9000"
SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>
# Master dir
DocumentRoot /var/www/docker-aio/php/public/
@@ -41,8 +41,8 @@ Listen 8080
# Https host
<VirtualHost *:8080>
# Proxy to https
ProxyPass / http://localhost:8000/
ProxyPassReverse / http://localhost:8000/
ProxyPass / http://127.0.0.1:8000/
ProxyPassReverse / http://127.0.0.1:8000/
ProxyPreserveHost On
# SSL
SSLCertificateKeyFile /etc/apache2/certs/ssl.key

View File

@@ -76,7 +76,7 @@ if ! sudo -u www-data docker info &>/dev/null; then
exit 1
fi
API_VERSION_FILE="$(find ./ -name DockerActionManager.php | head -1)"
API_VERSION="$(grep -oP 'const API_VERSION.*\;' "$API_VERSION_FILE" | grep -oP '[0-9]+.[0-9]+' | head -1)"
API_VERSION="$(grep -oP 'const string API_VERSION.*\;' "$API_VERSION_FILE" | grep -oP '[0-9]+.[0-9]+' | head -1)"
# shellcheck disable=SC2001
API_VERSION_NUMB="$(echo "$API_VERSION" | sed 's/\.//')"
LOCAL_API_VERSION_NUMB="$(sudo -u www-data docker version | grep -i "api version" | grep -oP '[0-9]+.[0-9]+' | head -1 | sed 's/\.//')"

View File

@@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest
FROM php:8.2.18-fpm-alpine3.19
FROM php:8.2.20-fpm-alpine3.19
ENV PHP_MEMORY_LIMIT 512M
ENV PHP_UPLOAD_LIMIT 10G
@@ -7,7 +7,7 @@ ENV PHP_MAX_TIME 3600
ENV SOURCE_LOCATION /usr/src/nextcloud
# AIO settings start # Do not remove or change this line!
ENV NEXTCLOUD_VERSION 28.0.4
ENV NEXTCLOUD_VERSION 29.0.2
ENV AIO_TOKEN 123456
ENV AIO_URL localhost
# AIO settings end # Do not remove or change this line!
@@ -23,6 +23,7 @@ VOLUME /var/www/html
# Custom: change id of www-data user as it needs to be the same like on old installations
# hadolint ignore=SC2086,DL3003
RUN set -ex; \
apk upgrade --no-cache -a; \
apk add --no-cache shadow; \
deluser www-data; \
groupmod -g 333 xfs; \
@@ -117,6 +118,7 @@ RUN set -ex; \
echo 'post_max_size=${PHP_UPLOAD_LIMIT}'; \
echo 'max_execution_time=${PHP_MAX_TIME}'; \
echo 'max_input_time=${PHP_MAX_TIME}'; \
echo 'default_socket_timeout=600'; \
} > /usr/local/etc/php/conf.d/nextcloud.ini; \
\
{ \

View File

@@ -19,6 +19,13 @@ run_upgrade_if_needed_due_to_app_update() {
fi
}
# Only start container if redis is accessible
# shellcheck disable=SC2153
while ! nc -z "$REDIS_HOST" "6379"; do
echo "Waiting for redis to start..."
sleep 5
done
# Check permissions in ncdata
touch "$NEXTCLOUD_DATA_DIR/this-is-a-test-file" &>/dev/null
if ! [ -f "$NEXTCLOUD_DATA_DIR/this-is-a-test-file" ]; then
@@ -155,8 +162,12 @@ if ! [ -f "$NEXTCLOUD_DATA_DIR/skip.update" ]; then
declare -Ag APPSTORAGE
echo "Disabling apps before the update in order to make the update procedure more safe. This can take a while..."
for app in "${NC_APPS_ARRAY[@]}"; do
APPSTORAGE[$app]=$(php /var/www/html/occ config:app:get "$app" enabled)
php /var/www/html/occ app:disable "$app"
if APPSTORAGE[$app]="$(php /var/www/html/occ config:app:get "$app" enabled)"; then
php /var/www/html/occ app:disable "$app"
else
APPSTORAGE[$app]=""
echo "Not disabling $app because the occ command to get the enabled state was failing."
fi
done
fi
@@ -212,7 +223,11 @@ if ! [ -f "$NEXTCLOUD_DATA_DIR/skip.update" ]; then
DATADIR_PERMISSION_CONF
echo "Installing with PostgreSQL database"
INSTALL_OPTIONS+=(--database pgsql --database-name "$POSTGRES_DB" --database-user "$POSTGRES_USER" --database-pass "$POSTGRES_PASSWORD" --database-host "$POSTGRES_HOST")
# Set a default value for POSTGRES_PORT
if [ -z "$POSTGRES_PORT" ]; then
POSTGRES_PORT=5432
fi
INSTALL_OPTIONS+=(--database pgsql --database-name "$POSTGRES_DB" --database-user "$POSTGRES_USER" --database-pass "$POSTGRES_PASSWORD" --database-host "$POSTGRES_HOST" --database-port "$POSTGRES_PORT")
echo "Starting Nextcloud installation..."
if ! php /var/www/html/occ maintenance:install "${INSTALL_OPTIONS[@]}"; then
@@ -290,19 +305,19 @@ DATADIR_PERMISSION_CONF
# Apply log settings
echo "Applying default settings..."
mkdir -p /var/www/html/data
php /var/www/html/occ config:system:set loglevel --value=2
php /var/www/html/occ config:system:set log_type --value=file
php /var/www/html/occ config:system:set loglevel --value="2" --type=integer
php /var/www/html/occ config:system:set log_type --value="file"
php /var/www/html/occ config:system:set logfile --value="/var/www/html/data/nextcloud.log"
php /var/www/html/occ config:system:set log_rotate_size --value="10485760"
php /var/www/html/occ config:system:set log_rotate_size --value="10485760" --type=integer
php /var/www/html/occ app:enable admin_audit
php /var/www/html/occ config:app:set admin_audit logfile --value="/var/www/html/data/audit.log"
php /var/www/html/occ config:system:set log.condition apps 0 --value="admin_audit"
# Apply preview settings
echo "Applying preview settings..."
php /var/www/html/occ config:system:set preview_max_x --value="2048"
php /var/www/html/occ config:system:set preview_max_y --value="2048"
php /var/www/html/occ config:system:set jpeg_quality --value="60"
php /var/www/html/occ config:system:set preview_max_x --value="2048" --type=integer
php /var/www/html/occ config:system:set preview_max_y --value="2048" --type=integer
php /var/www/html/occ config:system:set jpeg_quality --value="60" --type=integer
php /var/www/html/occ config:app:set preview jpeg_quality --value="60"
php /var/www/html/occ config:system:delete enabledPreviewProviders
php /var/www/html/occ config:system:set enabledPreviewProviders 1 --value="OC\\Preview\\Image"
@@ -322,7 +337,7 @@ DATADIR_PERMISSION_CONF
php /var/www/html/occ config:system:set mail_smtpmode --value="smtp"
php /var/www/html/occ config:system:set trashbin_retention_obligation --value="auto, 30"
php /var/www/html/occ config:system:set versions_retention_obligation --value="auto, 30"
php /var/www/html/occ config:system:set activity_expire_days --value="30"
php /var/www/html/occ config:system:set activity_expire_days --value="30" --type=integer
php /var/www/html/occ config:system:set simpleSignUpLink.shown --type=bool --value=false
php /var/www/html/occ config:system:set share_folder --value="/Shared"
# Not needed anymore with the removal of the updatenotification app:
@@ -471,6 +486,13 @@ if [ -n "$SUBSCRIPTION_KEY" ] && [ -z "$(php /var/www/html/occ config:app:get su
php /var/www/html/occ config:app:set support potential_subscription_key --value="$SUBSCRIPTION_KEY"
php /var/www/html/occ config:app:delete support last_check
fi
if [ -n "$NEXTCLOUD_DEFAULT_QUOTA" ]; then
if [ "$NEXTCLOUD_DEFAULT_QUOTA" = "unlimited" ]; then
php /var/www/html/occ config:app:delete files default_quota
else
php /var/www/html/occ config:app:set files default_quota --value="$NEXTCLOUD_DEFAULT_QUOTA"
fi
fi
# Adjusting log files to be stored on a volume
echo "Adjusting log files..."
@@ -540,6 +562,14 @@ php /var/www/html/occ config:system:set trusted_proxies 1 --value="::1"
if [ -n "$ADDITIONAL_TRUSTED_PROXY" ]; then
php /var/www/html/occ config:system:set trusted_proxies 2 --value="$ADDITIONAL_TRUSTED_PROXY"
fi
# Get ipv4-address of Nextcloud
IPv4_ADDRESS="$(dig nextcloud-aio-nextcloud A +short +search | head -1)"
# Bring it in CIDR notation
# shellcheck disable=SC2001
IPv4_ADDRESS="$(echo "$IPv4_ADDRESS" | sed 's|[0-9]\+$|1/32|')"
php /var/www/html/occ config:system:set trusted_proxies 10 --value="$IPv4_ADDRESS"
if [ -n "$ADDITIONAL_TRUSTED_DOMAIN" ]; then
php /var/www/html/occ config:system:set trusted_domains 2 --value="$ADDITIONAL_TRUSTED_DOMAIN"
fi

View File

@@ -1,7 +1,15 @@
#!/bin/bash
nc -z "$POSTGRES_HOST" 5432 || exit 0
# Set a default value for POSTGRES_PORT
if [ -z "$POSTGRES_PORT" ]; then
POSTGRES_PORT=5432
fi
if ! nc -z localhost 9000; then
# POSTGRES_HOST must be set in the containers env vars and POSTGRES_PORT has a default above
# shellcheck disable=SC2153
nc -z "$POSTGRES_HOST" "$POSTGRES_PORT" || exit 0
if ! nc -z 127.0.0.1 9000; then
exit 1
fi

View File

@@ -1,7 +1,14 @@
#!/bin/bash
# Set a default value for POSTGRES_PORT
if [ -z "$POSTGRES_PORT" ]; then
POSTGRES_PORT=5432
fi
# Only start container if database is accessible
while ! sudo -u www-data nc -z "$POSTGRES_HOST" 5432; do
# POSTGRES_HOST must be set in the containers env vars and POSTGRES_PORT has a default above
# shellcheck disable=SC2153
while ! sudo -u www-data nc -z "$POSTGRES_HOST" "$POSTGRES_PORT"; do
echo "Waiting for database to start..."
sleep 5
done
@@ -13,7 +20,7 @@ export POSTGRES_USER
# Fix false database connection on old instances
if [ -f "/var/www/html/config/config.php" ]; then
sleep 2
while ! sudo -u www-data psql -d "postgresql://$POSTGRES_USER:$POSTGRES_PASSWORD@$POSTGRES_HOST:5432/$POSTGRES_DB" -c "select now()"; do
while ! sudo -u www-data psql -d "postgresql://$POSTGRES_USER:$POSTGRES_PASSWORD@$POSTGRES_HOST:$POSTGRES_PORT/$POSTGRES_DB" -c "select now()"; do
echo "Waiting for the database to start..."
sleep 5
done
@@ -144,7 +151,7 @@ done
set -x
# shellcheck disable=SC2235
if [ "$THIS_IS_AIO" = "true" ] && ([ "$APACHE_PORT" = 443 ] || [ "$APACHE_IP_BINDING" = "127.0.0.1" ] || [ "$APACHE_IP_BINDING" = "::1" ]); then
if [ "$THIS_IS_AIO" = "true" ] && [ "$APACHE_PORT" = 443 ]; then
IPv4_ADDRESS_APACHE="$(dig nextcloud-aio-apache A +short +search | grep '^[0-9.]\+$' | sort | head -n1)"
IPv6_ADDRESS_APACHE="$(dig nextcloud-aio-apache AAAA +short +search | grep '^[0-9a-f:]\+$' | sort | head -n1)"
IPv4_ADDRESS_MASTERCONTAINER="$(dig nextcloud-aio-mastercontainer A +short +search | grep '^[0-9.]\+$' | sort | head -n1)"

View File

@@ -5,6 +5,7 @@ COPY --chmod=775 start.sh /start.sh
COPY --chmod=775 healthcheck.sh /healthcheck.sh
RUN set -ex; \
apk upgrade --no-cache -a; \
apk add --no-cache \
ca-certificates \
netcat-openbsd \

View File

@@ -4,4 +4,4 @@ if ! nc -z "$NEXTCLOUD_HOST" 9001; then
exit 0
fi
nc -z localhost 7867 || exit 1
nc -z 127.0.0.1 7867 || exit 1

View File

@@ -44,8 +44,12 @@ fi
echo "notify-push was started"
# Set a default value for POSTGRES_PORT
if [ -z "$POSTGRES_PORT" ]; then
POSTGRES_PORT=5432
fi
# Set sensitive values as env
export DATABASE_URL="postgres://oc_$POSTGRES_USER:$POSTGRES_PASSWORD@$POSTGRES_HOST/$POSTGRES_DB"
export DATABASE_URL="postgres://oc_$POSTGRES_USER:$POSTGRES_PASSWORD@$POSTGRES_HOST:$POSTGRES_PORT/$POSTGRES_DB"
export REDIS_URL="redis://:$REDIS_HOST_PASSWORD@$REDIS_HOST"
# Run it

View File

@@ -4,5 +4,5 @@ FROM onlyoffice/documentserver:8.0.1.1
# USER root is probably used
HEALTHCHECK CMD nc -z localhost 80 || exit 1
HEALTHCHECK CMD nc -z 127.0.0.1 80 || exit 1
LABEL com.centurylinklabs.watchtower.enable="false"

View File

@@ -1,12 +1,13 @@
# syntax=docker/dockerfile:latest
# From https://github.com/docker-library/postgres/blob/master/15/alpine/Dockerfile
FROM postgres:15.6-alpine
FROM postgres:16.3-alpine
COPY --chmod=775 start.sh /start.sh
COPY --chmod=775 healthcheck.sh /healthcheck.sh
COPY --chmod=775 init-user-db.sh /docker-entrypoint-initdb.d/init-user-db.sh
RUN set -ex; \
apk upgrade --no-cache -a; \
apk add --no-cache \
bash \
openssl \

View File

@@ -2,4 +2,4 @@
test -f "/mnt/data/backup-is-running" && exit 0
psql -d "postgresql://oc_$POSTGRES_USER:$POSTGRES_PASSWORD@localhost:5432/$POSTGRES_DB" -c "select now()" || exit 1
psql -d "postgresql://oc_$POSTGRES_USER:$POSTGRES_PASSWORD@127.0.0.1:5432/$POSTGRES_DB" -c "select now()" || exit 1

View File

@@ -85,7 +85,7 @@ if ( [ -f "$DATADIR/PG_VERSION" ] && [ "$PG_MAJOR" != "$(cat "$DATADIR/PG_VERSIO
exec docker-entrypoint.sh postgres &
# Wait for creation
while ! psql -d "postgresql://oc_$POSTGRES_USER:$POSTGRES_PASSWORD@localhost:11000/$POSTGRES_DB" -c "select now()"; do
while ! psql -d "postgresql://oc_$POSTGRES_USER:$POSTGRES_PASSWORD@127.0.0.1:11000/$POSTGRES_DB" -c "select now()"; do
echo "Waiting for the database to start."
sleep 5
done

View File

@@ -1,10 +1,11 @@
# syntax=docker/dockerfile:latest
# From https://github.com/docker-library/redis/blob/master/7.0/alpine/Dockerfile
FROM redis:7.2.4-alpine
FROM redis:7.2.5-alpine
COPY --chmod=775 start.sh /start.sh
RUN set -ex; \
apk upgrade --no-cache -a; \
apk add --no-cache openssl bash; \
\
# Give root a random password

View File

@@ -7,6 +7,7 @@ if [ "$(sysctl -n vm.overcommit_memory)" != "1" ]; then
fi
# Run redis with a password if provided
echo "Redis has started"
if [ -n "$REDIS_HOST_PASSWORD" ]; then
exec redis-server --requirepass "$REDIS_HOST_PASSWORD" --loglevel warning
else

View File

@@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest
FROM python:3.12.3-alpine3.19
FROM python:3.12.4-alpine3.19
COPY --chmod=775 start.sh /start.sh
@@ -10,6 +10,7 @@ ENV SKIP_VERIFY false
ENV HPB_PATH /standalone-signaling/
RUN set -ex; \
apk upgrade --no-cache -a; \
apk add --no-cache \
ca-certificates \
tzdata \
@@ -53,5 +54,5 @@ USER recording
ENTRYPOINT ["/start.sh"]
CMD ["python", "-m", "nextcloud.talk.recording", "--config", "/conf/recording.conf"]
HEALTHCHECK CMD nc -z localhost 1234 || exit 1
HEALTHCHECK CMD nc -z 127.0.0.1 1234 || exit 1
LABEL com.centurylinklabs.watchtower.enable="false"

View File

@@ -1,7 +1,7 @@
# syntax=docker/dockerfile:latest
FROM nats:2.10.14-scratch as nats
FROM nats:2.10.16-scratch as nats
FROM eturnal/eturnal:1.12.0 AS eturnal
FROM strukturag/nextcloud-spreed-signaling:1.2.4 as signaling
FROM strukturag/nextcloud-spreed-signaling:1.3.1 as signaling
FROM alpine:3.19.1 as janus
ARG JANUS_VERSION=v0.14.2
@@ -46,6 +46,7 @@ COPY --chmod=775 healthcheck.sh /healthcheck.sh
COPY --chmod=664 supervisord.conf /supervisord.conf
RUN set -ex; \
apk upgrade --no-cache -a; \
apk add --no-cache \
ca-certificates \
tzdata \

View File

@@ -1,11 +1,7 @@
#!/bin/bash
nc -z localhost 8081 || exit 1
nc -z localhost 8188 || exit 1
nc -z localhost 4222 || exit 1
nc -z localhost "$TALK_PORT" || exit 1
nc -z 127.0.0.1 8081 || exit 1
nc -z 127.0.0.1 8188 || exit 1
nc -z 127.0.0.1 4222 || exit 1
nc -z 127.0.0.1 "$TALK_PORT" || exit 1
eturnalctl status || exit 1
if ! nc -z "$NC_DOMAIN" "$TALK_PORT"; then
echo "Could not reach $NC_DOMAIN on port $TALK_PORT."
exit 1
fi

View File

@@ -7,7 +7,7 @@
#readtimeout = 15
# HTTP socket write timeout in seconds.
#writetimeout = 15
#writetimeout = 30
[https]
# IP and port to listen on for HTTPS requests.
@@ -18,7 +18,7 @@
#readtimeout = 15
# HTTPS socket write timeout in seconds.
#writetimeout = 15
#writetimeout = 30
# Certificate / private key to use for the HTTPS server.
certificate = /etc/nginx/ssl/server.crt
@@ -34,6 +34,12 @@ debug = false
# room and call can be subscribed.
#allowsubscribeany = false
# Comma separated list of trusted proxies (IPs or CIDR networks) that may set
# the "X-Real-Ip" or "X-Forwarded-For" headers. If both are provided, the
# "X-Real-Ip" header will take precedence (if valid).
# Leave empty to allow loopback and local addresses.
#trustedproxies =
[sessions]
# Secret value used to generate checksums of sessions. This should be a random
# string of 32 or 64 bytes.

View File

@@ -20,8 +20,10 @@ fi
set -x
IPv4_ADDRESS_TALK_RELAY="$(hostname -i | grep -oP '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' | head -1)"
IPv4_ADDRESS_TALK="$(dig nextcloud-aio-talk IN A +short +search | grep '^[0-9.]\+$' | sort | head -n1)"
IPv6_ADDRESS_TALK="$(dig nextcloud-aio-talk AAAA +short +search | grep '^[0-9a-f:]\+$' | sort | head -n1)"
# shellcheck disable=SC2153
IPv4_ADDRESS_TALK="$(dig "$TALK_HOST" IN A +short +search | grep '^[0-9.]\+$' | sort | head -n1)"
# shellcheck disable=SC2153
IPv6_ADDRESS_TALK="$(dig "$TALK_HOST" AAAA +short +search | grep '^[0-9a-f:]\+$' | sort | head -n1)"
set +x
if [ -n "$IPv4_ADDRESS_TALK" ] && [ "$IPv4_ADDRESS_TALK_RELAY" = "$IPv4_ADDRESS_TALK" ]; then

View File

@@ -4,7 +4,9 @@ FROM containrrr/watchtower:1.7.1 as watchtower
FROM alpine:3.19.1
RUN apk add --no-cache bash
RUN apk upgrade --no-cache -a; \
apk add --no-cache bash
COPY --from=watchtower /watchtower /watchtower
COPY --chmod=775 start.sh /start.sh

View File

@@ -5,7 +5,7 @@
<name>Nextcloud All-in-One</name>
<summary>Provides a login link for admins.</summary>
<description>Add a link to the admin settings that gives access to the Nextcloud All-in-One admin interface</description>
<version>0.5.0</version>
<version>0.6.0</version>
<licence>agpl</licence>
<author>Azul</author>
<namespace>AllInOne</namespace>
@@ -13,7 +13,7 @@
<category>monitoring</category>
<bugs>https://github.com/nextcloud/all-in-one/issues</bugs>
<dependencies>
<nextcloud min-version="27" max-version="28"/>
<nextcloud min-version="28" max-version="29"/>
</dependencies>
<settings>

View File

@@ -5,7 +5,9 @@ This container bundles caddy and auto-configures it for you. It also covers http
- This container is incompatible with the [npmplus](https://github.com/nextcloud/all-in-one/tree/main/community-containers/npmplus) community container. So make sure that you do not enable both at the same time!
- Make sure that no other service is using port 443 on your host as otherwise the containers will fail to start. You can check this with `sudo netstat -tulpn | grep 443` before installing AIO.
- If you want to use this with https://github.com/nextcloud/all-in-one/tree/main/community-containers/vaultwarden, make sure that you point `bw.your-nc-domain.com` to your server using a cname record so that caddy can get a certificate automatically for vaultwarden.
- If you want to use this with https://github.com/nextcloud/all-in-one/tree/main/community-containers/stalwart, make sure that you point `mail.your-nc-domain.com` to your server using a cname record so that caddy can get a certificate automatically for stalwart.
- If you want to use this with https://github.com/nextcloud/all-in-one/tree/main/community-containers/stalwart, make sure that you point `mail.your-nc-domain.com` to your server using an A, AAAA or CNAME record so that caddy can get a certificate automatically for stalwart.
- If you want to use this with https://github.com/nextcloud/all-in-one/tree/main/community-containers/jellyfin, make sure that you point `media.your-nc-domain.com` to your server using a cname record so that caddy can get a certificate automatically for vaultwarden.
- If you want to use this with https://github.com/nextcloud/all-in-one/tree/main/community-containers/lldap, make sure that you point `ldap.your-nc-domain.com` to your server using a cname record so that caddy can get a certificate automatically for vaultwarden.
- After the container was started the first time, you should see a new `nextcloud-aio-caddy` folder and inside there an `allowed-countries.txt` file when you open the files app with the default `admin` user. In there you can adjust the allowed country codes for caddy by adding them to the first line, e.g. `IT FR` would allow access from italy and france. Private ip-ranges are always allowed. Additionally, in order to activate this config, you need to get an account at https://dev.maxmind.com/geoip/geolite2-free-geolocation-data and download the `GeoLite2-Country.mmdb` and upload it with this exact name into the `nextcloud-aio-caddy` folder. Afterwards restart all containers from the AIO interface and your new config should be active!
- You can add your own Caddy configurations in `/data/caddy-imports/` inside the Caddy container (`sudo docker exec -it nextcloud-aio-caddy bash`). These will be imported on container startup.
- See https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers how to add it to the AIO stack

View File

@@ -10,10 +10,11 @@
"restart": "unless-stopped",
"environment": [
"TZ=%TIMEZONE%",
"API_KEY=some-super-secret-api-key"
"API_KEY=some-super-secret-api-key",
"FACE_MODEL=3"
],
"aio_variables": [
"nextcloud_memory_limit=4096M"
"nextcloud_memory_limit=2048M"
],
"nextcloud_exec_commands": [
"php /var/www/html/occ app:install facerecognition",
@@ -21,7 +22,7 @@
"php /var/www/html/occ config:system:set facerecognition.external_model_url --value nextcloud-aio-facerecognition:5000",
"php /var/www/html/occ config:system:set facerecognition.external_model_api_key --value some-super-secret-api-key",
"php /var/www/html/occ face:setup -m 5",
"php /var/www/html/occ face:setup -M 4G",
"php /var/www/html/occ face:setup -M 1G",
"php /var/www/html/occ config:app:set facerecognition analysis_image_area --value 4320000",
"php /var/www/html/occ config:system:set enabledFaceRecognitionMimetype 0 --value image/jpeg",
"php /var/www/html/occ config:system:set enabledFaceRecognitionMimetype 1 --value image/png",

View File

@@ -1,68 +1,91 @@
## Light LDAP server
This container bundles LLDAP server and auto-configures your nextcloud instance for you.
This container bundles LLDAP server and auto-configures your Nextcloud instance for you.
### Notes
- In order to access your LLDAP web interface 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) OR use the [Caddy](https://github.com/nextcloud/all-in-one/tree/main/community-containers/caddy) community container that will automatically configure `ldap.$NC_DOMAIN` to redirect to your Lldap. You need to point the reverse proxy at port 17170 of this server.
- After adding and starting the container, you can log in to the lldap web interface by using the password that you can retrieve via `sudo docker inspect nextcloud-aio-lldap | grep LLDAP_JWT_SECRET`.
- Also, you need to run the following script one time in order to activate the ldap config in nextcloud so that Nextcloud uses lldap as user backend. You can see a [nextcloud example configuration provide by LLDAP](https://github.com/lldap/lldap/blob/main/example_configs/nextcloud.md)<br>
First, you need to retrieve the LLDAP admin password via `sudo docker inspect nextcloud-aio-lldap | grep LLDAP_LDAP_USER_PASS`. This will be used later on which you need to type in or copy and paste.
```bash
# Now go into the container
sudo docker exec --user www-data -it nextcloud-aio-nextcloud bash
```
Now inside the container:
```bash
# Get Base
BASE_DN="dc=${NC_DOMAIN//./,dc=}"
# Create a new empty ldap config
CONF_NAME=$(php /var/www/html/occ ldap:create-empty-config -p)
# Set the ldap password
php /var/www/html/occ ldap:set-config "$CONF_NAME" ldapAgentPassword "<your-password>"
# Set the ldap config
php /var/www/html/occ ldap:set-config "$CONF_NAME" ldapAgentName "uid=ro_admin,ou=people,$BASE_DN"
php /var/www/html/occ ldap:set-config "$CONF_NAME" ldapBase "$BASE_DN"
php /var/www/html/occ ldap:set-config "$CONF_NAME" ldapBaseGroups "$BASE_DN"
php /var/www/html/occ ldap:set-config "$CONF_NAME" ldapBaseUsers "$BASE_DN"
php /var/www/html/occ ldap:set-config "$CONF_NAME" ldapCacheTTL 600
php /var/www/html/occ ldap:set-config "$CONF_NAME" ldapConfigurationActive 1
php /var/www/html/occ ldap:set-config "$CONF_NAME" ldapEmailAttribute "mail"
php /var/www/html/occ ldap:set-config "$CONF_NAME" ldapExperiencedAdmin 0
php /var/www/html/occ ldap:set-config "$CONF_NAME" ldapGidNumber "gidNumber"
php /var/www/html/occ ldap:set-config "$CONF_NAME" ldapGroupDisplayName "cn"
php /var/www/html/occ ldap:set-config "$CONF_NAME" ldapGroupFilter "(&(objectclass=groupOfUniqueNames))"
php /var/www/html/occ ldap:set-config "$CONF_NAME" ldapGroupFilterGroups ""
php /var/www/html/occ ldap:set-config "$CONF_NAME" ldapGroupFilterMode 0
php /var/www/html/occ ldap:set-config "$CONF_NAME" ldapGroupFilterObjectclass "groupOfUniqueNames"
php /var/www/html/occ ldap:set-config "$CONF_NAME" ldapGroupMemberAssocAttr "uniqueMember"
php /var/www/html/occ ldap:set-config "$CONF_NAME" ldapHost "nextcloud-aio-lldap"
php /var/www/html/occ ldap:set-config "$CONF_NAME" ldapLoginFilterAttributes "uid"
php /var/www/html/occ ldap:set-config "$CONF_NAME" ldapLoginFilterEmail 0
php /var/www/html/occ ldap:set-config "$CONF_NAME" ldapLoginFilterUsername 1
php /var/www/html/occ ldap:set-config "$CONF_NAME" ldapMatchingRuleInChainState "unknown"
php /var/www/html/occ ldap:set-config "$CONF_NAME" ldapNestedGroups 0
php /var/www/html/occ ldap:set-config "$CONF_NAME" ldapPagingSize 500
php /var/www/html/occ ldap:set-config "$CONF_NAME" ldapPort 3890
php /var/www/html/occ ldap:set-config "$CONF_NAME" ldapTLS 0
php /var/www/html/occ ldap:set-config "$CONF_NAME" ldapUserAvatarRule "default"
php /var/www/html/occ ldap:set-config "$CONF_NAME" ldapUserDisplayName "displayname"
php /var/www/html/occ ldap:set-config "$CONF_NAME" ldapUserFilter "(&(objectClass=person)(uid=%uid))"
php /var/www/html/occ ldap:set-config "$CONF_NAME" ldapUserFilterMode 1
php /var/www/html/occ ldap:set-config "$CONF_NAME" ldapUserFilterObjectclass "person"
php /var/www/html/occ ldap:set-config "$CONF_NAME" ldapUuidGroupAttribute "auto"
php /var/www/html/occ ldap:set-config "$CONF_NAME" ldapUuidUserAttribute "auto"
php /var/www/html/occ ldap:set-config "$CONF_NAME" turnOnPasswordChange 0
# Test the ldap config
php /var/www/html/occ ldap:test-config "$NAME"
# Exit the container shell
exit
```
- After adding and starting the container, you can log in to the lldap web interface by using the username `admin` and the password that you can retrieve via `sudo docker inspect nextcloud-aio-lldap | grep LLDAP_JWT_SECRET`.
- To configure Nextcloud, you can use the generic configuration proposed below.
- For advanced configurations, see how to configure a client with lldap https://github.com/lldap/lldap#client-configuration
- Also, see how Nextcloud's LDAP application works https://docs.nextcloud.com/server/latest/admin_manual/configuration_user/user_auth_ldap.html
- See https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers how to add it to the AIO stack
### Generic Nextcloud LDAP config
Functionality with this configuration:
- User and group management.
- Login via username (or email) and password.
- Profile picture sync.
- Synchronization of administrator accounts (via the lldap_admin group).
> For simplicity, this configuration is done via the command line (don't worry, it's very simple).
First, you need to retrieve the LLDAP admin password, this will be used later on. Which you need to type in or copy and paste:
```bash
sudo docker inspect nextcloud-aio-lldap | grep LLDAP_LDAP_USER_PASS
```
Now go into the Nextcloud container:
```bash
sudo docker exec --user www-data -it nextcloud-aio-nextcloud bash
```
Now inside the container:
```bash
# Get Base
BASE_DN="dc=${NC_DOMAIN//./,dc=}"
# Create a new empty ldap config
CONF_NAME=$(php /var/www/html/occ ldap:create-empty-config -p)
# Check that the base DN matches your domain and retrieve your configuration name
echo "Base DN: '$BASE_DN', Config name: '$CONF_NAME'"
# Set the ldap password
php /var/www/html/occ ldap:set-config $CONF_NAME ldapAgentPassword "<your-password>"
# Set the ldap config: Host and connection
php /var/www/html/occ ldap:set-config $CONF_NAME ldapAdminGroup lldap_admin
php /var/www/html/occ ldap:set-config $CONF_NAME ldapAgentName "cn=admin,ou=people,$BASE_DN"
php /var/www/html/occ ldap:set-config $CONF_NAME ldapBase "$BASE_DN"
php /var/www/html/occ ldap:set-config $CONF_NAME ldapHost "ldap://nextcloud-aio-lldap"
php /var/www/html/occ ldap:set-config $CONF_NAME ldapPort 3890
php /var/www/html/occ ldap:set-config $CONF_NAME ldapTLS 0
php /var/www/html/occ ldap:set-config $CONF_NAME turnOnPasswordChange 0
# Set the ldap config: Users
php /var/www/html/occ ldap:set-config $CONF_NAME ldapBaseUsers "ou=people,$BASE_DN"
php /var/www/html/occ ldap:set-config $CONF_NAME ldapEmailAttribute mail
php /var/www/html/occ ldap:set-config $CONF_NAME ldapGidNumber gidNumber
php /var/www/html/occ ldap:set-config $CONF_NAME ldapLoginFilter "(&(|(objectclass=person))(|(uid=%uid)(|(mailPrimaryAddress=%uid)(mail=%uid))))"
php /var/www/html/occ ldap:set-config $CONF_NAME ldapLoginFilterEmail 1
php /var/www/html/occ ldap:set-config $CONF_NAME ldapLoginFilterUsername 1
php /var/www/html/occ ldap:set-config $CONF_NAME ldapUserAvatarRule default
php /var/www/html/occ ldap:set-config $CONF_NAME ldapUserDisplayName cn
php /var/www/html/occ ldap:set-config $CONF_NAME ldapUserFilter "(|(objectclass=person))"
php /var/www/html/occ ldap:set-config $CONF_NAME ldapUserFilterMode 0
php /var/www/html/occ ldap:set-config $CONF_NAME ldapUserFilterObjectclass person
# Set the ldap config: Groups
php /var/www/html/occ ldap:set-config $CONF_NAME ldapBaseGroups "ou=groups,$BASE_DN"
php /var/www/html/occ ldap:set-config $CONF_NAME ldapGroupDisplayName cn
php /var/www/html/occ ldap:set-config $CONF_NAME ldapGroupFilter "(&(|(objectclass=groupOfUniqueNames)))"
php /var/www/html/occ ldap:set-config $CONF_NAME ldapGroupFilterMode 0
php /var/www/html/occ ldap:set-config $CONF_NAME ldapGroupFilterObjectclass groupOfUniqueNames
php /var/www/html/occ ldap:set-config $CONF_NAME ldapGroupMemberAssocAttr uniqueMember
php /var/www/html/occ ldap:set-config $CONF_NAME useMemberOfToDetectMembership 1
# Optional : Check the configuration
#php /var/www/html/occ ldap:show-config $CONF_NAME
# Test the ldap config
php /var/www/html/occ ldap:test-config $CONF_NAME
# Enable ldap config
php /var/www/html/occ ldap:set-config $CONF_NAME ldapConfigurationActive 1
# Exit the container shell
exit
```
It's done ! All you have to do is go to the Nextcloud administration interface to see the magic of LDAP.
### Repository
https://github.com/lldap/lldap

View File

@@ -3,12 +3,13 @@ This container bundles Local AI and auto-configures it for you.
### Notes
- This container does not work on arm64! If you add the container on arm64, it will fail to start because no image for arm64 is available!
- Make sure to have enough storage space available. This container alone needs ~14GB storage. Every model that you add to `models.yaml` will of course use additional space which adds up quite fast.
- Make sure to have enough storage space available. This container alone needs ~7GB storage. Every model that you add to `models.yaml` will of course use additional space which adds up quite fast.
- After the container was started the first time, you should see a new `nextcloud-aio-local-ai` folder when you open the files app with the default `admin` user. In there you should see a `models.yaml` config file. You can now add models in there. Please refer [here](https://github.com/go-skynet/model-gallery/blob/main/index.yaml) where you can get further urls that you can put in there. Afterwards restart all containers from the AIO interface and the models should automatically get downloaded by the local-ai container and activated.
- Example for content of `models.yaml` (if you add all of them, it takes around 10GB additional space):
```yaml
# Stable Diffusion in NCNN with c++, supported txt2img and img2img
- url: github:go-skynet/model-gallery/stablediffusion.yaml
name: Stable_diffusion
# Port of OpenAI's Whisper model in C/C++
- url: github:go-skynet/model-gallery/whisper-base.yaml
@@ -18,6 +19,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`
- 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,8 +2,6 @@
This directory features containers that are built for AIO which allows to add additional functionality very easily.
## Disclaimers
⚠️ This is currently beta and not stable yet!
All containers that are in this directory are community maintained so the responsibility is on the community to keep them updated and secure. There is no guarantee that this will be the case in the future.
## How to use this?

View File

@@ -1,3 +1,11 @@
> [!WARNING]
> The Stalwart server is under development.
>
> 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 [marcoambrosini/aio-stalwart](https://github.com/marcoambrosini/aio-stalwart/issues).
## Stalwart mail server
This container bundles stalwart mail server and auto-configures it for you.
@@ -7,9 +15,8 @@ This container bundles stalwart mail server and auto-configures it for you.
- 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 `sudo docker exec -it nextcloud-aio-stalwart configure.sh` and follow https://stalw.art/docs/install/docker/#choose-where-to-store-your-data (1. choose `Local disk using Maildir`, 2. choose `No, create a new directory for me` (or select LDAP if you have an LDAP server), 3. type in your `$NC_DOMAIN` as `domain name` and `mail.$NC_DOMAIN` as `server hostname`. 4. add `DKIM, SPF and DMARC` as advised to your DNS config, 5. Take note of the administrator credentials, 6. Now the config script should exit and automatically restart the container and enable your config.
- See https://stalw.art/docs/directory/types/memory/ how you can easily create new user accounts. (Alternatively see https://stalw.art/docs/directory/types/ldap if you have an LDAP server). You can edit the config file with `sudo docker exec -it nextcloud-aio-stalwart vi /opt/stalwart-mail/etc/config.toml`. Also, you might want to enable logging to stdout so that you can see the stalwart logs in your container logs via `sudo docker exec -it nextcloud-aio-stalwart vi /opt/stalwart-mail/etc/common/tracing.toml` (you need to restart the container afterwards with `sudo docker restart nextcloud-aio-stalwart` in order to apply the settings).
- Afterwards, you can visit the basic admin settings in `https://your-nc-domain.com/settings/admin` and add the your mail server for outgoing mails there.
- 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.
- 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

@@ -5,8 +5,8 @@
"display_name": "Stalwart",
"documentation": "https://github.com/nextcloud/all-in-one/tree/main/community-containers/stalwart",
"image": "marcoambrosini/aio-stalwart",
"image_tag": "v1",
"internal_port": "587",
"image_tag": "v2",
"internal_port": "10003",
"restart": "unless-stopped",
"ports": [
{
@@ -38,11 +38,20 @@
"ip_binding": "",
"port_number": "4190",
"protocol": "tcp"
},
{
"ip_binding": "%APACHE_IP_BINDING%",
"port_number": "10003",
"protocol": "tcp"
}
],
"environment": [
"TZ=%TIMEZONE%",
"NC_DOMAIN=%NC_DOMAIN%"
"NC_DOMAIN=%NC_DOMAIN%",
"STALWART_USER_PASS=%STALWART_USER_PASS%"
],
"secrets": [
"STALWART_USER_PASS"
],
"volumes": [
{

View File

@@ -0,0 +1,29 @@
> [!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

@@ -12,28 +12,27 @@ services:
- 8080:8080
- 8443:8443 # Can be removed when running behind a web server or reverse proxy (like Apache, Nginx, Cloudflare Tunnel and else). See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md
# environment: # Is needed when using any of the options below
# - AIO_DISABLE_BACKUP_SECTION=false # Setting this to true allows to hide the backup section in the AIO interface. See https://github.com/nextcloud/all-in-one#how-to-disable-the-backup-section
# - APACHE_PORT=11000 # Is needed when running behind a web server or reverse proxy (like Apache, Nginx, Cloudflare Tunnel and else). See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md
# - APACHE_IP_BINDING=127.0.0.1 # Should be set when running behind a web server or reverse proxy (like Apache, Nginx, Cloudflare Tunnel and else) that is running on the same host. See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md
# - BORG_RETENTION_POLICY=--keep-within=7d --keep-weekly=4 --keep-monthly=6 # Allows to adjust borgs retention policy. See https://github.com/nextcloud/all-in-one#how-to-adjust-borgs-retention-policy
# - COLLABORA_SECCOMP_DISABLED=false # Setting this to true allows to disable Collabora's Seccomp feature. See https://github.com/nextcloud/all-in-one#how-to-disable-collaboras-seccomp-feature
# - NEXTCLOUD_DATADIR=/mnt/ncdata # Allows to set the host directory for Nextcloud's datadir. ⚠️⚠️⚠️ Warning: do not set or adjust this value after the initial Nextcloud installation is done! See https://github.com/nextcloud/all-in-one#how-to-change-the-default-location-of-nextclouds-datadir
# - NEXTCLOUD_MOUNT=/mnt/ # Allows the Nextcloud container to access the chosen directory on the host. See https://github.com/nextcloud/all-in-one#how-to-allow-the-nextcloud-container-to-access-directories-on-the-host
# - NEXTCLOUD_UPLOAD_LIMIT=10G # Can be adjusted if you need more. See https://github.com/nextcloud/all-in-one#how-to-adjust-the-upload-limit-for-nextcloud
# - NEXTCLOUD_MAX_TIME=3600 # Can be adjusted if you need more. See https://github.com/nextcloud/all-in-one#how-to-adjust-the-max-execution-time-for-nextcloud
# - NEXTCLOUD_MEMORY_LIMIT=512M # Can be adjusted if you need more. See https://github.com/nextcloud/all-in-one#how-to-adjust-the-php-memory-limit-for-nextcloud
# - NEXTCLOUD_TRUSTED_CACERTS_DIR=/path/to/my/cacerts # CA certificates in this directory will be trusted by the OS of the nexcloud container (Useful e.g. for LDAPS) See See https://github.com/nextcloud/all-in-one#how-to-trust-user-defined-certification-authorities-ca
# - NEXTCLOUD_STARTUP_APPS=deck twofactor_totp tasks calendar contacts notes # Allows to modify the Nextcloud apps that are installed on starting AIO the first time. See https://github.com/nextcloud/all-in-one#how-to-change-the-nextcloud-apps-that-are-installed-on-the-first-startup
# - NEXTCLOUD_ADDITIONAL_APKS=imagemagick # This allows to add additional packages to the Nextcloud container permanently. Default is imagemagick but can be overwritten by modifying this value. See https://github.com/nextcloud/all-in-one#how-to-add-os-packages-permanently-to-the-nextcloud-container
# - 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
# - 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'
# AIO_DISABLE_BACKUP_SECTION: false # Setting this to true allows to hide the backup section in the AIO interface. See https://github.com/nextcloud/all-in-one#how-to-disable-the-backup-section
# APACHE_PORT: 11000 # Is needed when running behind a web server or reverse proxy (like Apache, Nginx, Cloudflare Tunnel and else). See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md
# APACHE_IP_BINDING: 127.0.0.1 # Should be set when running behind a web server or reverse proxy (like Apache, Nginx, Cloudflare Tunnel and else) that is running on the same host. See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md
# BORG_RETENTION_POLICY: --keep-within=7d --keep-weekly=4 --keep-monthly=6 # Allows to adjust borgs retention policy. See https://github.com/nextcloud/all-in-one#how-to-adjust-borgs-retention-policy
# COLLABORA_SECCOMP_DISABLED: false # Setting this to true allows to disable Collabora's Seccomp feature. See https://github.com/nextcloud/all-in-one#how-to-disable-collaboras-seccomp-feature
# NEXTCLOUD_DATADIR: /mnt/ncdata # Allows to set the host directory for Nextcloud's datadir. ⚠️⚠️⚠️ Warning: do not set or adjust this value after the initial Nextcloud installation is done! See https://github.com/nextcloud/all-in-one#how-to-change-the-default-location-of-nextclouds-datadir
# NEXTCLOUD_MOUNT: /mnt/ # Allows the Nextcloud container to access the chosen directory on the host. See https://github.com/nextcloud/all-in-one#how-to-allow-the-nextcloud-container-to-access-directories-on-the-host
# NEXTCLOUD_UPLOAD_LIMIT: 10G # Can be adjusted if you need more. See https://github.com/nextcloud/all-in-one#how-to-adjust-the-upload-limit-for-nextcloud
# NEXTCLOUD_MAX_TIME: 3600 # Can be adjusted if you need more. See https://github.com/nextcloud/all-in-one#how-to-adjust-the-max-execution-time-for-nextcloud
# NEXTCLOUD_MEMORY_LIMIT: 512M # Can be adjusted if you need more. See https://github.com/nextcloud/all-in-one#how-to-adjust-the-php-memory-limit-for-nextcloud
# NEXTCLOUD_TRUSTED_CACERTS_DIR: /path/to/my/cacerts # CA certificates in this directory will be trusted by the OS of the nexcloud container (Useful e.g. for LDAPS) See See https://github.com/nextcloud/all-in-one#how-to-trust-user-defined-certification-authorities-ca
# NEXTCLOUD_STARTUP_APPS: deck twofactor_totp tasks calendar contacts notes # Allows to modify the Nextcloud apps that are installed on starting AIO the first time. See https://github.com/nextcloud/all-in-one#how-to-change-the-nextcloud-apps-that-are-installed-on-the-first-startup
# NEXTCLOUD_ADDITIONAL_APKS: imagemagick # This allows to add additional packages to the Nextcloud container permanently. Default is imagemagick but can be overwritten by modifying this value. See https://github.com/nextcloud/all-in-one#how-to-add-os-packages-permanently-to-the-nextcloud-container
# 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
# 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'
# networks: # Is needed when you want to create the nextcloud-aio network with ipv6-support using this file, see the network config at the bottom of the file
# - nextcloud-aio # Is needed when you want to create the nextcloud-aio network with ipv6-support using this file, see the network config at the bottom of the file
# # Uncomment the following line when using SELinux
# security_opt: ["label:disable"]
# security_opt: ["label:disable"] # Is needed when using SELinux
# # Optional: Caddy reverse proxy. See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md
# # You can find further examples here: https://github.com/nextcloud/all-in-one/discussions/588

View File

@@ -24,6 +24,7 @@ services:
environment:
- NC_DOMAIN=${NC_DOMAIN}
- NEXTCLOUD_HOST=nextcloud-aio-nextcloud
- APACHE_HOST=nextcloud-aio-apache
- COLLABORA_HOST=nextcloud-aio-collabora
- TALK_HOST=nextcloud-aio-talk
- APACHE_PORT=${APACHE_PORT}
@@ -105,6 +106,7 @@ services:
- ${NEXTCLOUD_TRUSTED_CACERTS_DIR}:/usr/local/share/ca-certificates:ro
environment:
- POSTGRES_HOST=nextcloud-aio-database
- POSTGRES_PORT=5432
- POSTGRES_PASSWORD=${DATABASE_PASSWORD}
- POSTGRES_DB=nextcloud_database
- POSTGRES_USER=nextcloud
@@ -170,6 +172,7 @@ services:
- REDIS_HOST=nextcloud-aio-redis
- REDIS_HOST_PASSWORD=${REDIS_PASSWORD}
- POSTGRES_HOST=nextcloud-aio-database
- POSTGRES_PORT=5432
- POSTGRES_PASSWORD=${DATABASE_PASSWORD}
- POSTGRES_DB=nextcloud_database
- POSTGRES_USER=nextcloud
@@ -229,6 +232,7 @@ services:
- "8081"
environment:
- NC_DOMAIN=${NC_DOMAIN}
- TALK_HOST=nextcloud-aio-talk
- TURN_SECRET=${TURN_SECRET}
- SIGNALING_SECRET=${SIGNALING_SECRET}
- TZ=${TIMEZONE}

View File

@@ -3,17 +3,224 @@ It is possible to run multiple instances of AIO on one server.
There are two ways to achieve this: The normal way is creating multiple VMs, installing AIO in [reverse proxy mode](./reverse-proxy.md) in each of them and having one reverse proxy in front of them that points to each VM (you also need to [use a different `TALK_PORT`](https://github.com/nextcloud/all-in-one#how-to-adjust-the-talk-port) for each of them). The second and more advanced way is creating multiple users on the server and using docker rootless for each of them in order to install multiple instances on the same server.
Below is described more in detail how the the second way works.
## Run multiple AIO instances on the same server with docker rootless
1. Create as many linux users as you need first. The easiest way is to use `sudo adduser` and follow the setup for that. Make sure to create a strong unique password for each of them and write it down!
1. Log in as each of the users by opening a new SSH connection as the user and install docker rootless for each of them by following step 0-1 and 3-4 of the [docker rootless documentation](./docker-rootless.md) (you can skip step 2 in this case).
1. Then install AIO in reverse proxy mode by using the command that is descriebed in step 2 and 3 of the [reverse proxy documentation](./reverse-proxy.md) but use a different `APACHE_PORT` and [`TALK_PORT`](https://github.com/nextcloud/all-in-one#how-to-adjust-the-talk-port) for each instance as otherwise it will bug out. Also make sure to adjust the docker socket and `WATCHTOWER_DOCKER_SOCKET_PATH` correctly for each of them by following step 6 of the [docker rootless documentation](./docker-rootless.md). Additionally, modify `--publish 8080:8080` to a different port for each container, e.g. `8081:8080` as otherwise it will not work.<br>
1. Then install AIO in reverse proxy mode by using the command that is described in step 2 and 3 of the [reverse proxy documentation](./reverse-proxy.md) but use a different `APACHE_PORT` and [`TALK_PORT`](https://github.com/nextcloud/all-in-one#how-to-adjust-the-talk-port) for each instance as otherwise it will bug out. Also make sure to adjust the docker socket and `WATCHTOWER_DOCKER_SOCKET_PATH` correctly for each of them by following step 6 of the [docker rootless documentation](./docker-rootless.md). Additionally, modify `--publish 8080:8080` to a different port for each container, e.g. `8081:8080` as otherwise it will not work.<br>
**⚠️ Please note:** If you want to adjust the `NEXTCLOUD_DATADIR`, make sure to apply the correct permissions to the chosen path as documented at the bottom of the [docker rootless documentation](./docker-rootless.md). Also for the built-in backup to work, the target path needs to have the correct permissions as documented there, too.
1. Now install your webserver of choice on the host system. It is recommended to use caddy for this as it is by far the easiest solution. You can do so by following https://caddyserver.com/docs/install#debian-ubuntu-raspbian or below. (It needs to be installed directly on the host or on a different server in the same network).
1. Next create your Caddyfile with multiple entries and domains for the different instances like described in step 1 of the [reverse proxy documentation](./reverse-proxy.md). Obviously each domain needs to point correctly to the chosen `APACHE_PORT` that you've configured before. Then start Caddy which should automatically get the needed certificates for you if your domains are configured correctly and ports 80 and 443 are forwarded to your server.
1. Now open each of the AIO interfaces by opening `https://ip.address.of.this.server:8080` or e.g. `https://ip.address.of.this.server:8081` or as chosen during step 3 of this documentation.
1. Finally type in the domain that you've configured for each of the instances during step 5 of this documentation and you are done.
1. Please also do not forget to open/forward each chosen `TALK_PORT` UPD and TCP in your firewall/router as otherwise Talk will not work correctly!
1. Please also do not forget to open/forward each chosen `TALK_PORT` UDP and TCP in your firewall/router as otherwise Talk will not work correctly!
Now everything should be set up correctly and you should have created multiple working instances of AIO on the same server!
## Run multiple AIO instances on the same server inside their own virtual machines
This guide will walk you through creating and configuring two (or more) Debian-based VMs (with "reverse proxy mode" Nextcloud AIO installed in each VM), behind one Caddy reverse proxy, all running on one host physical machine (like a laptop or desktop PC). It's highly recommend to follow the steps in order. Steps 1 through 4 will need to be repeated. Steps 5 through 8 only need to be completed once. All commands are expected to be run as root.
<details><summary><strong>PLEASE READ: A few expectations about your network</strong></summary>
This guide assumes that you have forwarded ports 443 and 8443 to your host physical machine via your router's configuration page, and either set up Dynamic DNS or obtained a static outbound IP address from your ISP. If this is not the case, or if you are brand-new to networking, you probably should not proceed with this guide, unless you are just using it for educational purposes. Proper network setup and security is critical when it comes to keeping your data safe. You may consider hosting using a VPS instead, or choosing one of <a href="https://nextcloud.com/providers/">Nextcloud's trusted providers.</a>
</details>
<details><summary><strong>A note for VPS users</strong></summary>
If you want to do this on a VPS, and your VPS is KVM-based and provides a static IP address, you can likely benefit from this guide too! Simply replace the words "host physical machine" with "VPS" and follow along.
</details>
**Before starting:** Make sure your host physical machine has enough resources. A host machine with 8GB RAM and 100GB storage is sufficient for running two fairly minimal VMs, with 2GB RAM and 32GB storage allocated to each VM. This guide assumes you have these resources at the minimum. This is fine for just testing the setup, but you will probably want to allocate more resources to your VMs if you plan to use this for day-to-day use.
If your host machine has more than 8GB memory available, and you plan to enable any of the optional containers (Nextcloud Office, Talk, Imaginary, etc.) in any of your instances, then you should definitely allocate more memory to the VM hosting that instance. In other words, before turning on any extra features inside a particular AIO interface, make sure you've first allocated enough resources to the VM that the instance is running inside. If in doubt, the AIO interface itself gives great recommendations for extra CPU and RAM allocation.
**Additional prerequisites:** Your host physical machine needs to have virtualization enabled in it's UEFI/BIOS. It also needs a few tools installed in order to create VMs. Assuming your host machine is a bare-bones Ubuntu or Debian Linux server without a desktop environment installed, the easiest way to create VMs is to install *QEMU*, *virsh*, *virt-install*, and a few extra packages to support UEFI booting and network config ([more info](https://wiki.debian.org/KVM)). You only need to do this once. To do this, run this command (**on the host physical machine**):
<!--
```shell
# For host machines running Ubuntu Server:
apt install --no-install-recommends qemu-system libvirt-clients libvirt-daemon-system virtinst ovmf bridge-utils
```
```shell
# For host machines running Debian:
apt install --no-install-recommends qemu-system qemu-utils libvirt-clients libvirt-daemon-system virtinst ovmf bridge-utils dnsmasq-base
```
-->
```shell
# For host machines running Ubuntu Server or Debian:
apt install --no-install-recommends qemu-system qemu-utils libvirt-clients libvirt-daemon-system virtinst ovmf bridge-utils dnsmasq-base
```
**Let's begin!** This guide assumes that you have two domains where you would like to host two individual AIO instances (one instance per domain). Let's call these domains `example1.com` and `example2.com`. Therefore, we'll create two VMs named `example1-com` and `example2-com` (These are the VM names we'll use below in step 1).
**Once you're ready, follow steps 1-4 below to set up your VMs. You will configure them one at a time.**
1. Choose a name for your VM. A good choice is to name each VM the same as the domain name that will be used to access it.
2. Choose the distribution you'd like to install within the VM:
<details><summary><strong>Ubuntu Server 22.04.4 LTS</strong></summary>
<h4>Downloading the .ISO image</h4>
You must first download an .ISO image to your host machine, and then provide virt-install with the path to that image.
<!-- This step is required because Ubuntu no longer hosts their "Legacy Ubuntu Server Installer" images, meaning we can no longer pass a URL to virt-install to use as a location. -->
<pre><code># Skip this part if you've already downloaded this image
curl -o /tmp/ubuntu-22.04.4-live-server-amd64.iso https://releases.ubuntu.com/jammy/ubuntu-22.04.4-live-server-amd64.iso
</code></pre>
<em>Note: You may choose a different place to store the .ISO file, but it needs to be somewhere accessible by QEMU. "/tmp" and "/home" work well, but choosing a location like "/root" will cause the next command to fail.</em>
<h4>Creating the VM</h4>
Now create the Ubuntu Server VM (Don't forget to replace [VM_NAME]):
<pre><code>virt-install \
--name [VM_NAME] \
--virt-type kvm \
--location /tmp/ubuntu-22.04.4-live-server-amd64.iso,kernel=casper/vmlinuz,initrd=casper/initrd \
--os-variant ubuntujammy \
--disk size=32 \
--memory 2048 \
--graphics none \
--console pty,target_type=serial \
--extra-args "console=ttyS0" \
--autostart \
--boot uefi
</code></pre>
<h4>Using a different version of Ubuntu Server</h4>
To use a different Ubuntu Server release, visit <a href="https://releases.ubuntu.com">this page</a> and find the version you want. You will need to adjust the filename and URL for the curl command, and the location and os-variant for the virt-install command, accordingly.
</details>
<details><summary><strong>Debian 11</strong></summary>
<h4>Creating the VM</h4>
Create the Debian VM (Don't forget to replace [VM_NAME]):
<pre><code>virt-install \
--name [VM_NAME] \
--virt-type kvm \
--location http://deb.debian.org/debian/dists/bullseye/main/installer-amd64/ \
--os-variant debian11 \
--disk size=32 \
--memory 2048 \
--graphics none \
--console pty,target_type=serial \
--extra-args "console=ttyS0" \
--autostart \
--boot uefi
</code></pre>
</details>
<details><summary><strong>Debian 12</strong></summary>
<h4>Creating the VM</h4>
Create the Debian VM (Don't forget to replace [VM_NAME]):
<pre><code># If the os-variant "debian12" is unknown, try "debiantesting" instead
virt-install \
--name [VM_NAME] \
--virt-type kvm \
--location http://deb.debian.org/debian/dists/bookworm/main/installer-amd64/ \
--os-variant debian12 \
--disk size=32 \
--memory 2048 \
--graphics none \
--console pty,target_type=serial \
--extra-args "console=ttyS0" \
--autostart \
--boot uefi
</code></pre>
</details>
<!--To learn more about virt-install or automating this process, see <a href="https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/virtualization_deployment_and_administration_guide/sect-guest_virtual_machine_installation_overview-creating_guests_with_virt_install">this guide</a>.-->
3. Navigate through the text-based installer. Most options can remain as default, but here are some tips:
<details><summary><strong>For the Ubuntu Server installer</strong></summary>
When asked about the "type of installation", you can leave the default "Ubuntu Server" without third-party drivers. You can leave the HTTP proxy information blank. In the "Profile Configuration" section, you can set "Your servers name" (hostname) to the same value as the name you gave to your VM (for example, "example1-com"). The installer will only let you create a non-root user. Note down the password you use here! You may skip enabling Ubuntu Pro. You can allow the partitioner to use the entire disk, this only uses the virtual disk that you defined above in step 2. You'll eventually be given the option to install additional software. Although "Nextcloud" is listed here, you almost certainly do <strong>not</strong> want to select this option, since you are setting up Nextcloud AIO. You'll be asked about installing "SSH server", this is entirely optional (This lets you easily SSH into the VM in the future in case you have to perform any maintenance, but even if you do not install an SSH server, you can still log in using the "virsh console" command). Finally, disregard the "[FAILED] Failed unmounting /cdrom." message, and press return.
</details>
<details><summary><strong>For the Debian installer</strong></summary>
When asked, you can set the hostname to the same value as the name you gave to your VM (for example, "example1-com"). You can leave the domain name and HTTP proxy information blank. Allow the installer to create both a root and a non-root user. Note down the password(s) you use here! You can allow the partitioner to use the entire disk, this only uses the virtual disk that you defined above in step 2. When tasksel (Software selection) runs and asks if you want to install additional software, use spacebar and your arrow keys to un-check the "Debian desktop environment" and "GNOME" options. The "SSH server" option is entirely optional (This lets you easily SSH into the VM in the future in case you have to perform any maintenance, but even if you do not install an SSH server, you can still log in using the "virsh console" command). Make sure "standard system utilities" is also checked. Hit tab to select "Continue". Finally, disregard the warning about GRUB, allow it to install to your "primary drive" (again, it's only virtual, and this only applies to the VM- this will not affect the boot configuration of your host physical machine) and select "/dev/vda" for the bootable device.
</details>
4. Configure your new VM:
After it has finished installing, the VM will have rebooted and presented you with a login prompt. For Debian, just use `root` as the username, and enter the password you chose during the installation process. Ubuntu restricts root account access, so you'll need to first login with your non-root user, and then run `sudo su -` to elevate your privileges.
We will now run a few commands to install docker and AIO in reverse proxy mode! As with any other commands, carefully read and try your best to understand them before running them.
**Each time you reach this step and run the `docker run` command below, you'll need to increment the `TALK_PORT` value. For example: 3478, 3479, etc... You may use other values as long as they don't conflict, and make sure they are [greater than 1024](https://github.com/nextcloud/all-in-one/discussions/2517). Be sure to note down the Talk port number you've assigned to this VM/AIO instance. You will need it later if you decide to enable Nextcloud Talk.**
Run these commands (**on the VM**):
```shell
apt install -y curl
curl -fsSL https://get.docker.com | sh
# Make sure you increment the TALK_PORT value every time you run this!
docker run \
--init \
--sig-proxy=false \
--name nextcloud-aio-mastercontainer \
--restart always \
--publish 8080:8080 \
--env APACHE_PORT=11000 \
--env APACHE_IP_BINDING=0.0.0.0 \
--env TALK_PORT=3478 \
--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config \
--volume /var/run/docker.sock:/var/run/docker.sock:ro \
nextcloud/all-in-one:latest
```
The last command may take a few minutes. When it's finished, you should see a success message, saying "Initial startup of Nextcloud All-in-One complete!". Now exit the console session with `Ctrl + [c]`. This concludes the setup for this particular VM.
---
6. Go ahead and run through steps 1-4 again in order to set up your second VM. When you're finished, proceed down to step 6. *(Note: If you downloaded the Ubuntu .ISO image and no longer need it, you may delete it now.)*
7. Almost done! All that's left is configuring your reverse proxy. To do this, you first need to [install it](https://caddyserver.com/docs/install#debian-ubuntu-raspbian). Run (**on the host physical machine**):
```shell
apt update -y
apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | tee /etc/apt/sources.list.d/caddy-stable.list
apt update -y
apt install -y caddy
```
These commands will ensure that your system is up-to-date and install the latest stable version of Caddy via it's official binary source.
8. To configure Caddy, you need to know the IP address assigned to each VM. Run (**on the host physical machine**):
```shell
virsh net-dhcp-leases default
```
This will show you the VMs you set up, and the IP address corresponding to each of them. Note down each IP and corresponding hostname.
Finally, you will configure Caddy using this information. Open the default Caddyfile with a text editor:
```shell
nano /etc/caddy/Caddyfile
```
Replace everything in this file with the following configuration. Don't forget to edit this sample configuration and substitute in your own domain names and IP addresses. `[DOMAIN_NAME_*]` should be a domain name like `example1.com`, and `[IP_ADDRESS_*]` should be a local IPv4 address like `192.168.122.225`.
```shell
# Virtual machine #1 - "example1-com"
https://[DOMAIN_NAME_1]:8443 {
reverse_proxy https://[IP_ADDRESS_1]:8080 {
transport http {
tls_insecure_skip_verify
}
}
}
https://[DOMAIN_NAME_1]:443 {
reverse_proxy [IP_ADDRESS_1]:11000
}
# Virtual machine #2 - "example2-com"
https://[DOMAIN_NAME_2]:8443 {
reverse_proxy https://[IP_ADDRESS_2]:8080 {
transport http {
tls_insecure_skip_verify
}
}
}
https://[DOMAIN_NAME_2]:443 {
reverse_proxy [IP_ADDRESS_2]:11000
}
# (Add more configurations here if you set up more than two VMs!)
```
After making this change, you'll need to restart Caddy:
```shell
systemctl restart caddy
```
9. That's it! Now, all that's left is to set up your instances through the AIO interface as usual by visiting `https://example1.com:8443` and `https://example2.com:8443` in a browser. Once you're finished going through each setup, you can access your new instances simply through their domain names. You can host as many instances with as many domain names as you want this way, as long as you have enough system resources. Enjoy!
<details><summary><strong>A few extra tips for managing this setup</strong></summary>
<ul>
<li>You can easily connect to a VM to perform maintenance using this command (<strong>on the host physical machine</strong>): <pre><code>virsh console --domain [VM_NAME]</code></pre></li>
<li>If you chose to install an SSH Server, you can SSH in using this command (<strong>on the host physical machine</strong>): <pre><code>ssh [NONROOT_USER]@[IP_ADDRESS] # By default, OpenSSH does not allow logging in as root</code></pre></li>
<li>If you mess up the configuration of a VM, you may wish to completely delete it and start fresh with a new one. <strong>THIS WILL DELETE ALL DATA ASSOCIATED WITH THE VM INCLUDING ANYTHING IN YOUR AIO DATADIR!</strong> If you are sure you would like to do this, run (<strong>on the host physical machine</strong>): <pre><code>virsh destroy --domain [VM_NAME] ; virsh undefine --nvram --domain [VM_NAME] && rm -rfi /var/lib/libvirt/images/[VM_NAME].qcow2</code></pre></li>
<li>Using Nextcloud Talk will require some extra configuration. Back when you set up your VMs, they were (by default) configured with NAT, meaning they are in their own subnet. The VMs must each instead be bridged, so that your router may directly "see" them (as if they were real, physical devices on your network), and each AIO instance inside each VM must be configured with a different Talk port (like 3478, 3479, etc.). You should have already set these port numbers (back when you first configured the VM in step 4 above), but if you still need to set (or want to change) these values, you can remove the mastercontainer and re-run the initial "docker run" command with a modified Talk port <a href="https://github.com/nextcloud/all-in-one#how-to-adjust-the-talk-port">like so</a>. Then, the Talk port for EACH instance needs to be forwarded in your router's settings DIRECTLY to the VM hosting the instance (completely bypassing your host physical machine/reverse proxy). And finally, inside an admin-privileged account (such as the default "admin" account) in each instance, you must visit <strong>https://[DOMAIN_NAME]/settings/admin/talk</strong> then find the STUN/TURN Settings, and from there set the proper values. If this is too complicated, it may be easier to use public STUN/TURN servers, but I have not tested any of this, rather I'm just sharing what I have found so far (more info available <a href="https://github.com/nextcloud/all-in-one/discussions/2517">here</a>). If you have figured this out or if any of this information is incorrect, please edit this section!</li>
<li>Configuring daily automatic backups is a bit more involved with this setup. But for the occasional manual borg backup, you can connect a physical SSD/HDD via a cheap USB SATA adapter/dock to a free USB port on your host physical machine, and then use these commands to pass the disk through to a VM of your choosing (<strong>on the host physical machine and on the VM</strong>): <pre><code>virsh attach-device --live --domain [VM_NAME] --file [USB_DEVICE_DEFINITION.xml]
virsh console --domain [VM_NAME]
# (Login to the VM with root privileges)
mkdir -p /mnt/[MOUNT_NAME]
mount /dev/disk/by-label/[DISK_NAME] /mnt/[MOUNT_NAME]</code></pre></li>
To create the XML device definition file, see <a href="https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/virtualization_administration_guide/sect-managing_guest_virtual_machines_with_virsh-attaching_and_updating_a_device_with_virsh">this short guide</a>. An SSD/HDD is recommended, but nothing is stopping you from using something as simple as a flash drive for testing if you really want. Finally, to actually perform a manual backup, make sure your disk is properly mounted and then simply use the AIO interface to perform the backup.
<li>If you want to shave off around 8-10 seconds of total boot time when you reboot your host physical machine, a simple trick is to lower the GRUB_TIMEOUT from the default five seconds to one second, on both the host physical machine and each of the VMs. You can also remove the delay, but it's generally safer to leave at least one second. (Always be extremely careful when editing GRUB config, especially on the host physical machine, as an incorrect configuration can prevent your device from booting!)</li>
</ul>
</details>

View File

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

View File

@@ -3,7 +3,7 @@ kind: Deployment
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace "{{ .Values.NAMESPACE }}"
kompose.version: 1.32.0 (765fde254)
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.service: nextcloud-aio-apache
name: nextcloud-aio-apache
@@ -19,9 +19,8 @@ spec:
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace "{{ .Values.NAMESPACE }}"
kompose.version: 1.32.0 (765fde254)
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.network/nextcloud-aio: "true"
io.kompose.service: nextcloud-aio-apache
spec:
initContainers:
@@ -65,7 +64,7 @@ spec:
value: nextcloud-aio-talk
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-apache:20240404_082330-latest"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-apache:20240606_075829-latest"
name: nextcloud-aio-apache
ports:
- containerPort: {{ .Values.APACHE_PORT }}

View File

@@ -3,7 +3,7 @@ kind: Service
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace "{{ .Values.NAMESPACE }}"
kompose.version: 1.32.0 (765fde254)
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.service: nextcloud-aio-apache
name: nextcloud-aio-apache

View File

@@ -4,7 +4,7 @@ kind: Deployment
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace "{{ .Values.NAMESPACE }}"
kompose.version: 1.32.0 (765fde254)
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.service: nextcloud-aio-clamav
name: nextcloud-aio-clamav
@@ -20,9 +20,8 @@ spec:
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace "{{ .Values.NAMESPACE }}"
kompose.version: 1.32.0 (765fde254)
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.network/nextcloud-aio: "true"
io.kompose.service: nextcloud-aio-clamav
spec:
initContainers:
@@ -60,7 +59,7 @@ spec:
value: "90"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-clamav:20240404_082330-latest"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-clamav:20240606_075829-latest"
name: nextcloud-aio-clamav
ports:
- containerPort: 3310

View File

@@ -4,7 +4,7 @@ kind: Service
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace "{{ .Values.NAMESPACE }}"
kompose.version: 1.32.0 (765fde254)
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.service: nextcloud-aio-clamav
name: nextcloud-aio-clamav

View File

@@ -4,7 +4,7 @@ kind: Deployment
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace "{{ .Values.NAMESPACE }}"
kompose.version: 1.32.0 (765fde254)
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.service: nextcloud-aio-collabora
name: nextcloud-aio-collabora
@@ -18,9 +18,8 @@ spec:
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace "{{ .Values.NAMESPACE }}"
kompose.version: 1.32.0 (765fde254)
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.network/nextcloud-aio: "true"
io.kompose.service: nextcloud-aio-collabora
spec:
containers:
@@ -37,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:20240404_082330-latest"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-collabora:20240606_075829-latest"
name: nextcloud-aio-collabora
ports:
- containerPort: 9980

View File

@@ -4,7 +4,7 @@ kind: Service
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace "{{ .Values.NAMESPACE }}"
kompose.version: 1.32.0 (765fde254)
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.service: nextcloud-aio-collabora
name: nextcloud-aio-collabora

View File

@@ -3,7 +3,7 @@ kind: Deployment
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace "{{ .Values.NAMESPACE }}"
kompose.version: 1.32.0 (765fde254)
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.service: nextcloud-aio-database
name: nextcloud-aio-database
@@ -19,9 +19,8 @@ spec:
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace "{{ .Values.NAMESPACE }}"
kompose.version: 1.32.0 (765fde254)
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.network/nextcloud-aio: "true"
io.kompose.service: nextcloud-aio-database
spec:
initContainers:
@@ -71,7 +70,7 @@ spec:
value: nextcloud
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-postgresql:20240404_082330-latest"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-postgresql:20240606_075829-latest"
name: nextcloud-aio-database
ports:
- containerPort: 5432

View File

@@ -3,7 +3,7 @@ kind: Service
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace "{{ .Values.NAMESPACE }}"
kompose.version: 1.32.0 (765fde254)
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.service: nextcloud-aio-database
name: nextcloud-aio-database

View File

@@ -4,7 +4,7 @@ kind: Deployment
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace "{{ .Values.NAMESPACE }}"
kompose.version: 1.32.0 (765fde254)
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.service: nextcloud-aio-fulltextsearch
name: nextcloud-aio-fulltextsearch
@@ -20,9 +20,8 @@ spec:
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace "{{ .Values.NAMESPACE }}"
kompose.version: 1.32.0 (765fde254)
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.network/nextcloud-aio: "true"
io.kompose.service: nextcloud-aio-fulltextsearch
spec:
initContainers:
@@ -61,7 +60,7 @@ spec:
value: basic
- name: xpack.security.enabled
value: "false"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-fulltextsearch:20240404_082330-latest"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-fulltextsearch:20240606_075829-latest"
name: nextcloud-aio-fulltextsearch
ports:
- containerPort: 9200

View File

@@ -4,7 +4,7 @@ kind: Service
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace "{{ .Values.NAMESPACE }}"
kompose.version: 1.32.0 (765fde254)
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.service: nextcloud-aio-fulltextsearch
name: nextcloud-aio-fulltextsearch

View File

@@ -4,7 +4,7 @@ kind: Deployment
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace "{{ .Values.NAMESPACE }}"
kompose.version: 1.32.0 (765fde254)
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.service: nextcloud-aio-imaginary
name: nextcloud-aio-imaginary
@@ -18,9 +18,8 @@ spec:
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace "{{ .Values.NAMESPACE }}"
kompose.version: 1.32.0 (765fde254)
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.network/nextcloud-aio: "true"
io.kompose.service: nextcloud-aio-imaginary
spec:
containers:
@@ -29,7 +28,7 @@ spec:
value: "{{ .Values.IMAGINARY_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-imaginary:20240404_082330-latest"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-imaginary:20240606_075829-latest"
name: nextcloud-aio-imaginary
ports:
- containerPort: 9000

View File

@@ -4,7 +4,7 @@ kind: Service
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace "{{ .Values.NAMESPACE }}"
kompose.version: 1.32.0 (765fde254)
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.service: nextcloud-aio-imaginary
name: nextcloud-aio-imaginary

View File

@@ -3,7 +3,7 @@ kind: Deployment
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace "{{ .Values.NAMESPACE }}"
kompose.version: 1.32.0 (765fde254)
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.service: nextcloud-aio-nextcloud
name: nextcloud-aio-nextcloud
@@ -19,9 +19,8 @@ spec:
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace "{{ .Values.NAMESPACE }}"
kompose.version: 1.32.0 (765fde254)
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.network/nextcloud-aio: "true"
io.kompose.service: nextcloud-aio-nextcloud
spec:
initContainers:
@@ -84,6 +83,8 @@ spec:
value: "{{ .Values.ADDITIONAL_TRUSTED_DOMAIN }}"
- name: SERVERINFO_TOKEN
value: "{{ .Values.SERVERINFO_TOKEN }}"
- name: NEXTCLOUD_DEFAULT_QUOTA
value: "{{ .Values.NEXTCLOUD_DEFAULT_QUOTA }}"
- name: ADDITIONAL_APKS
value: "{{ .Values.NEXTCLOUD_ADDITIONAL_APKS }}"
- name: ADDITIONAL_PHP_EXTENSIONS
@@ -140,6 +141,8 @@ spec:
value: nextcloud-aio-database
- name: POSTGRES_PASSWORD
value: "{{ .Values.DATABASE_PASSWORD }}"
- name: POSTGRES_PORT
value: "5432"
- name: POSTGRES_USER
value: nextcloud
- name: RECORDING_SECRET
@@ -170,7 +173,7 @@ spec:
value: "{{ .Values.TIMEZONE }}"
- name: UPDATE_NEXTCLOUD_APPS
value: "{{ .Values.UPDATE_NEXTCLOUD_APPS }}"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-nextcloud:20240404_082330-latest"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-nextcloud:20240606_075829-latest"
name: nextcloud-aio-nextcloud
ports:
- containerPort: 9000

View File

@@ -3,7 +3,7 @@ kind: Service
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace "{{ .Values.NAMESPACE }}"
kompose.version: 1.32.0 (765fde254)
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.service: nextcloud-aio-nextcloud
name: nextcloud-aio-nextcloud

View File

@@ -3,7 +3,7 @@ kind: Deployment
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace "{{ .Values.NAMESPACE }}"
kompose.version: 1.32.0 (765fde254)
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.service: nextcloud-aio-notify-push
name: nextcloud-aio-notify-push
@@ -19,9 +19,8 @@ spec:
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace "{{ .Values.NAMESPACE }}"
kompose.version: 1.32.0 (765fde254)
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.network/nextcloud-aio: "true"
io.kompose.service: nextcloud-aio-notify-push
spec:
initContainers:
@@ -50,13 +49,15 @@ spec:
value: nextcloud-aio-database
- name: POSTGRES_PASSWORD
value: "{{ .Values.DATABASE_PASSWORD }}"
- name: POSTGRES_PORT
value: "5432"
- name: POSTGRES_USER
value: nextcloud
- name: REDIS_HOST
value: nextcloud-aio-redis
- name: REDIS_HOST_PASSWORD
value: "{{ .Values.REDIS_PASSWORD }}"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-notify-push:20240404_082330-latest"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-notify-push:20240606_075829-latest"
name: nextcloud-aio-notify-push
ports:
- containerPort: 7867

View File

@@ -3,7 +3,7 @@ kind: Service
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace "{{ .Values.NAMESPACE }}"
kompose.version: 1.32.0 (765fde254)
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.service: nextcloud-aio-notify-push
name: nextcloud-aio-notify-push

View File

@@ -4,7 +4,7 @@ kind: Deployment
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace "{{ .Values.NAMESPACE }}"
kompose.version: 1.32.0 (765fde254)
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.service: nextcloud-aio-onlyoffice
name: nextcloud-aio-onlyoffice
@@ -20,9 +20,8 @@ spec:
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace "{{ .Values.NAMESPACE }}"
kompose.version: 1.32.0 (765fde254)
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.network/nextcloud-aio: "true"
io.kompose.service: nextcloud-aio-onlyoffice
spec:
initContainers:
@@ -49,7 +48,7 @@ spec:
value: "{{ .Values.ONLYOFFICE_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-onlyoffice:20240404_082330-latest"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-onlyoffice:20240606_075829-latest"
name: nextcloud-aio-onlyoffice
ports:
- containerPort: 80

View File

@@ -4,7 +4,7 @@ kind: Service
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace "{{ .Values.NAMESPACE }}"
kompose.version: 1.32.0 (765fde254)
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.service: nextcloud-aio-onlyoffice
name: nextcloud-aio-onlyoffice

View File

@@ -3,7 +3,7 @@ kind: Deployment
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace "{{ .Values.NAMESPACE }}"
kompose.version: 1.32.0 (765fde254)
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.service: nextcloud-aio-redis
name: nextcloud-aio-redis
@@ -19,9 +19,8 @@ spec:
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace "{{ .Values.NAMESPACE }}"
kompose.version: 1.32.0 (765fde254)
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.network/nextcloud-aio: "true"
io.kompose.service: nextcloud-aio-redis
spec:
initContainers:
@@ -44,7 +43,7 @@ spec:
value: "{{ .Values.REDIS_PASSWORD }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-redis:20240404_082330-latest"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-redis:20240606_075829-latest"
name: nextcloud-aio-redis
ports:
- containerPort: 6379

View File

@@ -3,7 +3,7 @@ kind: Service
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace "{{ .Values.NAMESPACE }}"
kompose.version: 1.32.0 (765fde254)
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.service: nextcloud-aio-redis
name: nextcloud-aio-redis

View File

@@ -4,7 +4,7 @@ kind: Deployment
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace "{{ .Values.NAMESPACE }}"
kompose.version: 1.32.0 (765fde254)
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.service: nextcloud-aio-talk
name: nextcloud-aio-talk
@@ -18,18 +18,17 @@ spec:
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace "{{ .Values.NAMESPACE }}"
kompose.version: 1.32.0 (765fde254)
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.network/nextcloud-aio: "true"
io.kompose.service: nextcloud-aio-talk
spec:
containers:
- env:
- name: TALK_MAX_STREAM_BITRATE
value: "{{ .Values.TALK_MAX_STREAM_BITRATE }}"
- name: TALK_MAX_STREAM_BITRATE
value: "{{ .Values.TALK_MAX_SCREEN_BITRATE }}"
- name: TALK_MAX_SCREEN_BITRATE
value: "{{ .Values.TALK_MAX_SCREEN_BITRATE }}"
- name: INTERNAL_SECRET
value: "{{ .Values.TALK_INTERNAL_SECRET }}"
- name: NC_DOMAIN
value: "{{ .Values.NC_DOMAIN }}"
@@ -41,8 +40,7 @@ spec:
value: "{{ .Values.TURN_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-talk:develop"
imagePullPolicy: Always
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-talk:20240606_075829-latest"
name: nextcloud-aio-talk
ports:
- containerPort: {{ .Values.TALK_PORT }}

View File

@@ -4,7 +4,7 @@ kind: Deployment
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace "{{ .Values.NAMESPACE }}"
kompose.version: 1.32.0 (765fde254)
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.service: nextcloud-aio-talk-recording
name: nextcloud-aio-talk-recording
@@ -18,9 +18,8 @@ spec:
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace "{{ .Values.NAMESPACE }}"
kompose.version: 1.32.0 (765fde254)
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.network/nextcloud-aio: "true"
io.kompose.service: nextcloud-aio-talk-recording
spec:
containers:
@@ -33,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:20240404_082330-latest"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-talk-recording:20240606_075829-latest"
name: nextcloud-aio-talk-recording
ports:
- containerPort: 1234

View File

@@ -4,7 +4,7 @@ kind: Service
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace "{{ .Values.NAMESPACE }}"
kompose.version: 1.32.0 (765fde254)
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.service: nextcloud-aio-talk-recording
name: nextcloud-aio-talk-recording

View File

@@ -5,7 +5,7 @@ kind: Service
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace "{{ .Values.NAMESPACE }}"
kompose.version: 1.32.0 (765fde254)
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.service: nextcloud-aio-talk
name: nextcloud-aio-talk-public
@@ -30,7 +30,7 @@ kind: Service
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace "{{ .Values.NAMESPACE }}"
kompose.version: 1.32.0 (765fde254)
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.service: nextcloud-aio-talk
name: nextcloud-aio-talk

View File

@@ -288,6 +288,8 @@ cat << EOL > /tmp/additional.config
value: "{{ .Values.ADDITIONAL_TRUSTED_DOMAIN }}"
- name: SERVERINFO_TOKEN
value: "{{ .Values.SERVERINFO_TOKEN }}"
- name: NEXTCLOUD_DEFAULT_QUOTA
value: "{{ .Values.NEXTCLOUD_DEFAULT_QUOTA }}"
EOL
# shellcheck disable=SC1083
find ./ -name '*nextcloud-deployment.yaml' -exec sed -i "/^.*\- env:/r /tmp/additional.config" \{} \;
@@ -358,6 +360,7 @@ SERVERINFO_TOKEN: # This allows to set the serverinfo app token for monit
APPS_ALLOWLIST: # This allows to configure allowed apps that will be shown in Nextcloud's Appstore. You need to enter the app-IDs of the apps here and separate them with spaces. E.g. 'files richdocuments'
ADDITIONAL_TRUSTED_PROXY: # Allows to add one additional ip-address to Nextcloud's trusted proxies and to the Office WOPI-allowlist automatically. Set it e.g. like this: 'your.public.ip-address'. You can also use an ip-range here.
ADDITIONAL_TRUSTED_DOMAIN: # Allows to add one domain to Nextcloud's trusted domains and also generates a certificate automatically for it
NEXTCLOUD_DEFAULT_QUOTA: "10 GB" # Allows to adjust the default quota that will be taken into account in Nextcloud for new users. Setting it to "unlimited" will set it to unlimited
SMTP_HOST: # (empty by default): The hostname of the SMTP server.
SMTP_SECURE: # (empty by default): Set to 'ssl' to use SSL, or 'tls' to use STARTTLS.
SMTP_PORT: # (default: '465' for SSL and '25' for non-secure connections): Optional port for the SMTP connection. Use '587' for an alternative port for STARTTLS.

View File

@@ -53,6 +53,7 @@ SERVERINFO_TOKEN: # This allows to set the serverinfo app token for monit
APPS_ALLOWLIST: # This allows to configure allowed apps that will be shown in Nextcloud's Appstore. You need to enter the app-IDs of the apps here and separate them with spaces. E.g. 'files richdocuments'
ADDITIONAL_TRUSTED_PROXY: # Allows to add one additional ip-address to Nextcloud's trusted proxies and to the Office WOPI-allowlist automatically. Set it e.g. like this: 'your.public.ip-address'. You can also use an ip-range here.
ADDITIONAL_TRUSTED_DOMAIN: # Allows to add one domain to Nextcloud's trusted domains and also generates a certificate automatically for it
NEXTCLOUD_DEFAULT_QUOTA: "10 GB" # Allows to adjust the default quota that will be taken into account in Nextcloud for new users. Setting it to "unlimited" will set it to unlimited
SMTP_HOST: # (empty by default): The hostname of the SMTP server.
SMTP_SECURE: # (empty by default): Set to 'ssl' to use SSL, or 'tls' to use STARTTLS.
SMTP_PORT: # (default: '465' for SSL and '25' for non-secure connections): Optional port for the SMTP connection. Use '587' for an alternative port for STARTTLS.

115
php/composer.lock generated
View File

@@ -775,20 +775,20 @@
},
{
"name": "psr/http-factory",
"version": "1.0.2",
"version": "1.1.0",
"source": {
"type": "git",
"url": "https://github.com/php-fig/http-factory.git",
"reference": "e616d01114759c4c489f93b099585439f795fe35"
"reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/http-factory/zipball/e616d01114759c4c489f93b099585439f795fe35",
"reference": "e616d01114759c4c489f93b099585439f795fe35",
"url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a",
"reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a",
"shasum": ""
},
"require": {
"php": ">=7.0.0",
"php": ">=7.1",
"psr/http-message": "^1.0 || ^2.0"
},
"type": "library",
@@ -812,7 +812,7 @@
"homepage": "https://www.php-fig.org/"
}
],
"description": "Common interfaces for PSR-7 HTTP message factories",
"description": "PSR-17: Common interfaces for PSR-7 HTTP message factories",
"keywords": [
"factory",
"http",
@@ -824,22 +824,22 @@
"response"
],
"support": {
"source": "https://github.com/php-fig/http-factory/tree/1.0.2"
"source": "https://github.com/php-fig/http-factory"
},
"time": "2023-04-10T20:10:41+00:00"
"time": "2024-04-15T12:06:14+00:00"
},
{
"name": "psr/http-message",
"version": "1.1",
"version": "2.0",
"source": {
"type": "git",
"url": "https://github.com/php-fig/http-message.git",
"reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba"
"reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/http-message/zipball/cb6ce4845ce34a8ad9e68117c10ee90a29919eba",
"reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba",
"url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71",
"reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71",
"shasum": ""
},
"require": {
@@ -848,7 +848,7 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.1.x-dev"
"dev-master": "2.0.x-dev"
}
},
"autoload": {
@@ -863,7 +863,7 @@
"authors": [
{
"name": "PHP-FIG",
"homepage": "http://www.php-fig.org/"
"homepage": "https://www.php-fig.org/"
}
],
"description": "Common interface for HTTP messages",
@@ -877,9 +877,9 @@
"response"
],
"support": {
"source": "https://github.com/php-fig/http-message/tree/1.1"
"source": "https://github.com/php-fig/http-message/tree/2.0"
},
"time": "2023-04-04T09:50:52+00:00"
"time": "2023-04-04T09:54:51+00:00"
},
{
"name": "psr/http-server-handler",
@@ -1090,30 +1090,30 @@
},
{
"name": "slim/csrf",
"version": "1.4.0",
"version": "1.5.0",
"source": {
"type": "git",
"url": "https://github.com/slimphp/Slim-Csrf.git",
"reference": "f66be9740283ed4f432535aff3623540e178013a"
"reference": "179cbcf40ee1d246d4906aefed42d3e62066974b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/slimphp/Slim-Csrf/zipball/f66be9740283ed4f432535aff3623540e178013a",
"reference": "f66be9740283ed4f432535aff3623540e178013a",
"url": "https://api.github.com/repos/slimphp/Slim-Csrf/zipball/179cbcf40ee1d246d4906aefed42d3e62066974b",
"reference": "179cbcf40ee1d246d4906aefed42d3e62066974b",
"shasum": ""
},
"require": {
"php": "^7.4 || ^8.0",
"psr/http-factory": "^1.0",
"psr/http-message": "^1.0",
"psr/http-factory": "^1.1",
"psr/http-message": "^1.0 || ^2.0",
"psr/http-server-handler": "^1.0",
"psr/http-server-middleware": "^1.0"
},
"require-dev": {
"phpspec/prophecy": "^1.18",
"phpspec/prophecy-phpunit": "^2.1",
"phpspec/prophecy": "^1.19",
"phpspec/prophecy-phpunit": "^2.2",
"phpunit/phpunit": "^9.6",
"squizlabs/php_codesniffer": "^3.8"
"squizlabs/php_codesniffer": "^3.10"
},
"type": "library",
"autoload": {
@@ -1142,9 +1142,9 @@
],
"support": {
"issues": "https://github.com/slimphp/Slim-Csrf/issues",
"source": "https://github.com/slimphp/Slim-Csrf/tree/1.4.0"
"source": "https://github.com/slimphp/Slim-Csrf/tree/1.5.0"
},
"time": "2024-01-22T09:08:27+00:00"
"time": "2024-06-08T16:37:18+00:00"
},
{
"name": "slim/slim",
@@ -1263,31 +1263,31 @@
},
{
"name": "slim/twig-view",
"version": "3.3.0",
"version": "3.4.0",
"source": {
"type": "git",
"url": "https://github.com/slimphp/Twig-View.git",
"reference": "df6dd6af6bbe28041be49c9fb8470c2e9b70cd98"
"reference": "1b351536b9a07ed90a3563ee9d71a987c5d74610"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/slimphp/Twig-View/zipball/df6dd6af6bbe28041be49c9fb8470c2e9b70cd98",
"reference": "df6dd6af6bbe28041be49c9fb8470c2e9b70cd98",
"url": "https://api.github.com/repos/slimphp/Twig-View/zipball/1b351536b9a07ed90a3563ee9d71a987c5d74610",
"reference": "1b351536b9a07ed90a3563ee9d71a987c5d74610",
"shasum": ""
},
"require": {
"php": "^7.4 || ^8.0",
"psr/http-message": "^1.0",
"slim/slim": "^4.9",
"symfony/polyfill-php81": "^1.23",
"twig/twig": "^3.3"
"psr/http-message": "^1.1 || ^2.0",
"slim/slim": "^4.12",
"symfony/polyfill-php81": "^1.29",
"twig/twig": "^3.8"
},
"require-dev": {
"phpspec/prophecy-phpunit": "^2.0",
"phpstan/phpstan": "^1.3.0",
"phpunit/phpunit": "^9.5",
"phpstan/phpstan": "^1.10.59",
"phpunit/phpunit": "^9.6",
"psr/http-factory": "^1.0",
"squizlabs/php_codesniffer": "^3.6"
"squizlabs/php_codesniffer": "^3.9"
},
"type": "library",
"autoload": {
@@ -1322,22 +1322,22 @@
],
"support": {
"issues": "https://github.com/slimphp/Twig-View/issues",
"source": "https://github.com/slimphp/Twig-View/tree/3.3.0"
"source": "https://github.com/slimphp/Twig-View/tree/3.4.0"
},
"time": "2022-01-02T05:14:45+00:00"
"time": "2024-04-28T20:36:39+00:00"
},
{
"name": "symfony/deprecation-contracts",
"version": "v3.4.0",
"version": "v3.5.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/deprecation-contracts.git",
"reference": "7c3aff79d10325257a001fcf92d991f24fc967cf"
"reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/7c3aff79d10325257a001fcf92d991f24fc967cf",
"reference": "7c3aff79d10325257a001fcf92d991f24fc967cf",
"url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1",
"reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1",
"shasum": ""
},
"require": {
@@ -1346,7 +1346,7 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-main": "3.4-dev"
"dev-main": "3.5-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -1375,7 +1375,7 @@
"description": "A generic function and convention to trigger deprecation notices",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/deprecation-contracts/tree/v3.4.0"
"source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.0"
},
"funding": [
{
@@ -1391,7 +1391,7 @@
"type": "tidelift"
}
],
"time": "2023-05-23T14:45:45+00:00"
"time": "2024-04-18T09:32:20+00:00"
},
{
"name": "symfony/polyfill-ctype",
@@ -1710,30 +1710,37 @@
},
{
"name": "twig/twig",
"version": "v3.8.0",
"version": "v3.10.3",
"source": {
"type": "git",
"url": "https://github.com/twigphp/Twig.git",
"reference": "9d15f0ac07f44dc4217883ec6ae02fd555c6f71d"
"reference": "67f29781ffafa520b0bbfbd8384674b42db04572"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/twigphp/Twig/zipball/9d15f0ac07f44dc4217883ec6ae02fd555c6f71d",
"reference": "9d15f0ac07f44dc4217883ec6ae02fd555c6f71d",
"url": "https://api.github.com/repos/twigphp/Twig/zipball/67f29781ffafa520b0bbfbd8384674b42db04572",
"reference": "67f29781ffafa520b0bbfbd8384674b42db04572",
"shasum": ""
},
"require": {
"php": ">=7.2.5",
"symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-ctype": "^1.8",
"symfony/polyfill-mbstring": "^1.3",
"symfony/polyfill-php80": "^1.22"
},
"require-dev": {
"psr/container": "^1.0|^2.0",
"symfony/phpunit-bridge": "^5.4.9|^6.3|^7.0"
"symfony/phpunit-bridge": "^5.4.9|^6.4|^7.0"
},
"type": "library",
"autoload": {
"files": [
"src/Resources/core.php",
"src/Resources/debug.php",
"src/Resources/escaper.php",
"src/Resources/string_loader.php"
],
"psr-4": {
"Twig\\": "src/"
}
@@ -1766,7 +1773,7 @@
],
"support": {
"issues": "https://github.com/twigphp/Twig/issues",
"source": "https://github.com/twigphp/Twig/tree/v3.8.0"
"source": "https://github.com/twigphp/Twig/tree/v3.10.3"
},
"funding": [
{
@@ -1778,7 +1785,7 @@
"type": "tidelift"
}
],
"time": "2023-11-21T18:54:41+00:00"
"time": "2024-05-16T10:04:27+00:00"
}
],
"packages-dev": [],

View File

@@ -29,6 +29,7 @@
"environment": [
"NC_DOMAIN=%NC_DOMAIN%",
"NEXTCLOUD_HOST=nextcloud-aio-nextcloud",
"APACHE_HOST=nextcloud-aio-apache",
"COLLABORA_HOST=nextcloud-aio-collabora",
"TALK_HOST=nextcloud-aio-talk",
"APACHE_PORT=%APACHE_PORT%",
@@ -173,6 +174,7 @@
],
"environment": [
"POSTGRES_HOST=nextcloud-aio-database",
"POSTGRES_PORT=5432",
"POSTGRES_PASSWORD=%DATABASE_PASSWORD%",
"POSTGRES_DB=nextcloud_database",
"POSTGRES_USER=nextcloud",
@@ -266,6 +268,7 @@
"REDIS_HOST=nextcloud-aio-redis",
"REDIS_HOST_PASSWORD=%REDIS_PASSWORD%",
"POSTGRES_HOST=nextcloud-aio-database",
"POSTGRES_PORT=5432",
"POSTGRES_PASSWORD=%DATABASE_PASSWORD%",
"POSTGRES_DB=nextcloud_database",
"POSTGRES_USER=nextcloud"
@@ -374,6 +377,7 @@
"internal_port": "%TALK_PORT%",
"environment": [
"NC_DOMAIN=%NC_DOMAIN%",
"TALK_HOST=nextcloud-aio-talk",
"TURN_SECRET=%TURN_SECRET%",
"SIGNALING_SECRET=%SIGNALING_SECRET%",
"TZ=%TIMEZONE%",

View File

@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<files psalm-version="5.23.1@8471a896ccea3526b26d082f4461eeea467f10a4"/>
<files psalm-version="5.24.0@462c80e31c34e58cc4f750c656be3927e80e550e"/>

View File

@@ -1,17 +1,19 @@
if (document.hasFocus()) {
// hide reload button if the site reloads automatically
let list = document.getElementsByClassName("reload button");
for (let i = 0; i < list.length; i++) {
// list[i] is a node with the desired class name
list[i].style.display = 'none';
}
document.addEventListener("DOMContentLoaded", function(event) {
if (document.hasFocus()) {
// hide reload button if the site reloads automatically
let list = document.getElementsByClassName("reload button");
for (let i = 0; i < list.length; i++) {
// list[i] is a node with the desired class name
list[i].style.display = 'none';
}
// set timeout for reload
setTimeout(function(){
window.location.reload(1);
}, 5000);
} else {
window.addEventListener("beforeunload", function() {
document.getElementById('overlay').classList.add('loading')
});
}
// set timeout for reload
setTimeout(function(){
window.location.reload(1);
}, 5000);
} else {
window.addEventListener("beforeunload", function() {
document.getElementById('overlay').classList.add('loading')
});
}
});

View File

@@ -6,6 +6,7 @@ html, body {
a {
text-decoration: none;
color: #0082c9;
}
.button {
@@ -197,7 +198,7 @@ header {
.loader {
border: 16px solid #f3f3f3;
border-radius: 50%;
border-top: 16px solid #3498db;
border-top: 16px solid #0082c9;
width: 120px;
height: 120px;
-webkit-animation: spin 2s linear infinite; /* Safari */

7
php/public/timezone.js Normal file
View File

@@ -0,0 +1,7 @@
document.addEventListener("DOMContentLoaded", function(event) {
// timezone
let timezone = document.getElementById("timezone");
if (timezone) {
timezone.value = Intl.DateTimeFormat().resolvedOptions().timeZone
}
});

View File

@@ -7,7 +7,7 @@ use AIO\Data\DataConst;
use \DateTime;
class AuthManager {
private const SESSION_KEY = 'aio_authenticated';
private const string SESSION_KEY = 'aio_authenticated';
private ConfigurationManager $configurationManager;
public function __construct(ConfigurationManager $configurationManager) {

View File

@@ -13,7 +13,7 @@ class DockerController
{
private DockerActionManager $dockerActionManager;
private ContainerDefinitionFetcher $containerDefinitionFetcher;
private const TOP_CONTAINER = 'nextcloud-aio-apache';
private const string TOP_CONTAINER = 'nextcloud-aio-apache';
private ConfigurationManager $configurationManager;
public function __construct(

View File

@@ -305,7 +305,7 @@ class ConfigurationManager
if (empty($dnsRecordIP)) {
$record = dns_get_record($domain, DNS_AAAA);
if (!empty($record[0]['ipv6'])) {
if (isset($record[0]['ipv6']) && !empty($record[0]['ipv6'])) {
$dnsRecordIP = $record[0]['ipv6'];
}
}

View File

@@ -19,7 +19,7 @@ use http\Env\Response;
class DockerActionManager
{
private const API_VERSION = 'v1.41';
private const string API_VERSION = 'v1.41';
private \GuzzleHttp\Client $guzzleClient;
private ConfigurationManager $configurationManager;
private ContainerDefinitionFetcher $containerDefinitionFetcher;
@@ -44,7 +44,7 @@ class DockerActionManager
}
private function BuildApiUrl(string $url) : string {
return sprintf('http://localhost/%s/%s', self::API_VERSION, $url);
return sprintf('http://127.0.0.1/%s/%s', self::API_VERSION, $url);
}
private function BuildImageName(Container $container) : string {
@@ -223,12 +223,12 @@ class DockerActionManager
public function CreateContainer(Container $container) : void {
$volumes = [];
foreach ($container->GetVolumes()->GetVolumes() as $volume) {
// NEXTCLOUD_MOUNT gets added via bind-mount later on
if ($container->GetIdentifier() === 'nextcloud-aio-nextcloud') {
if ($volume->name === $this->configurationManager->GetNextcloudMount()) {
continue;
}
}
// // NEXTCLOUD_MOUNT gets added via bind-mount later on
// if ($container->GetIdentifier() === 'nextcloud-aio-nextcloud') {
// if ($volume->name === $this->configurationManager->GetNextcloudMount()) {
// continue;
// }
// }
$volumeEntry = $volume->name . ':' . $volume->mountPoint;
if ($volume->isWritable) {
@@ -560,14 +560,14 @@ class DockerActionManager
} elseif ($container->GetIdentifier() === 'nextcloud-aio-talk') {
// This is needed due to a bug in libwebsockets which cannot handle unlimited ulimits
$requestBody['HostConfig']['Ulimits'] = [["Name" => "nofile", "Hard" => 200000, "Soft" => 200000]];
// Special things for the nextcloud container which should not be exposed in the containers.json
} elseif ($container->GetIdentifier() === 'nextcloud-aio-nextcloud') {
foreach ($container->GetVolumes()->GetVolumes() as $volume) {
if ($volume->name !== $this->configurationManager->GetNextcloudMount()) {
continue;
}
$mounts[] = ["Type" => "bind", "Source" => $volume->name, "Target" => $volume->mountPoint, "ReadOnly" => !$volume->isWritable, "BindOptions" => [ "Propagation" => "rshared"]];
}
// // Special things for the nextcloud container which should not be exposed in the containers.json
// } elseif ($container->GetIdentifier() === 'nextcloud-aio-nextcloud') {
// foreach ($container->GetVolumes()->GetVolumes() as $volume) {
// if ($volume->name !== $this->configurationManager->GetNextcloudMount()) {
// continue;
// }
// $mounts[] = ["Type" => "bind", "Source" => $volume->name, "Target" => $volume->mountPoint, "ReadOnly" => !$volume->isWritable, "BindOptions" => [ "Propagation" => "rshared"]];
// }
// Special things for the caddy community container
} elseif ($container->GetIdentifier() === 'nextcloud-aio-caddy') {
$requestBody['HostConfig']['ExtraHosts'] = ['host.docker.internal:host-gateway'];

View File

@@ -16,11 +16,14 @@
</header>
<div class="content">
<h1>Nextcloud AIO v8.2.0</h1>
<h1>Nextcloud AIO v9.0.1</h1>
{# Add 2nd tab warning #}
<script type="text/javascript" src="second-tab-warning.js"></script>
{# timezone-prefill #}
<script type="text/javascript" src="timezone.js"></script>
{% set isAnyRunning = false %}
{% set isAnyRestarting = false %}
{% set isWatchtowerRunning = false %}
@@ -28,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 = 29 %}
{% set newMajorVersion = '' %}
{% if is_backup_container_running == true %}
{% if borg_backup_mode == 'backup' or borg_backup_mode == 'restore' %}
@@ -57,25 +60,26 @@
{% 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 />
{% if automatic_updates == true %}
It will update your containers, the mastercontainer and on saturdays your Nextcloud apps if the backup is successful.<br /><br />
This will update your containers, the mastercontainer and, on Saturdays, your Nextcloud apps if the backup is successful.<br /><br />
{% if is_mastercontainer_update_available == true %}
Since the mastercontainer gets updated, it will restart the container which will make it unavailable for a moment. (<a href="/api/docker/logs?id=nextcloud-aio-watchtower" target="_blank" rel="noopener">Logs</a>)<br /><br />
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 />
{% endif %}
{% endif %}
{% if has_update_available == false %}
The whole process should not take more than a few minutes.<br /><br />
{% elseif automatic_updates == true %}
The whole process can take a while because your containers get updated.<br /><br />
The whole process can take a while as your containers will be updated.<br /><br />
{% endif %}
<a href="" class="button reload">Reload ↻</a><br/>
<a href="" class="button reload">Reload ↻</a><br/><br/>
If the daily bacckup should be stuck somehow, you can make it unstuck 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 />
{% elseif isWatchtowerRunning == true %}
<span class="status running"></span> Mastercontainer update currently running. It will restart the mastercontainer soon which will make it unavailable for a moment. Please wait until that's done. (<a href="/api/docker/logs?id=nextcloud-aio-watchtower" target="_blank" rel="noopener">Logs</a>)<br /><br />
<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/>
{% 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 <b><a href="https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md">reverse proxy documentation</a></b>. Advice: have a detailed look at the changed docker run command for AIO.
This is not expected. Most likely this happened because port {{ apache_port }} is already in use on your server. You can check the mastercontainer logs and domaincheck container logs for further clues. You should be able to resolve this by adjusting the APACHE_PORT by following the <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.
{% 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>
@@ -91,13 +95,13 @@
{{ 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, Cloudflare Tunnel and else). If you want to run AIO behind a web server or reverse proxy (like Apache, Nginx, Cloudflare Tunnel and else), see the <b><a href="https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md">reverse proxy documentation</a></b>. Advice: have a detailed look at the changed docker run command for AIO.<br><br>
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, Cloudflare Tunnel and else). If you want to run AIO behind a web server or reverse proxy (like Apache, Nginx, 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>
{% 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, Cloudflare Tunnel and else) and does not do the TLS proxying itself.<br><br>
{% endif %}
Please type in the domain into the input field below that will be used for Nextcloud in order to create a new AIO instance.<br><br />
Please type the domain that will be used for Nextcloud below in order to create a new AIO instance.<br><br />
{% if skip_domain_validation == true %}
<b>Please note:</b> The domain validation is disabled so any domain will be accepted here! So make sure that you do not make a typo here as you will not be able to change it afterwards!<br><br>
<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>
{% endif %}
<form method="POST" action="/api/configuration" class="xhr">
<input type="text" name="domain" value="{{ domain }}" placeholder="nextcloud.yourdomain.com"/>
@@ -106,17 +110,17 @@
<input class="button" 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 if of course also possible). You should see hints on what went wrong if your domain does not get accepted in the top right corner.<br><br>
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>
<details>
<summary>Click here for further hints</summary><br />
If you should not have a domain yet, you can get one for free e.g. from duckdns.org and others.<br><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/>
{% if apache_port != '443' %}
If you run into issues getting your domain 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/>
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/>
{% endif %}
<b>Hint:</b> 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 />
<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 />
</details>
{% endif %}
@@ -130,12 +134,12 @@
{% 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 />
{% if borg_backup_mode == 'test' %}
Please adjust the path and/or the password in order to make it work!<br><br>
Please adjust the path and/or the encryption password in order to make it work!<br><br>
{% 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"><b>this documentation</b></a><br><br>
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>
<details>
<summary>Reveal repair option</summary><br />
Below is the option to repair the integrity of your backup. <b>Please note:</b> Please only use this after you have read the documentation above! (It will run the command 'borg check --repair' for you.)<br><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>
<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}}">
@@ -146,14 +150,15 @@
{% 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 />
{% 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 double-sure 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>
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>
<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/>
</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 from backup. Please note that the current AIO password will be kept and the previous AIO password will not be restored from backup!<br><br>
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>
<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}}">
@@ -168,44 +173,46 @@
{% 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 />
Somehow the restore failed which is unexpected! Please adjust the path and password, test it and try to restore again!
The restore process has unexpectedly failed! Please adjust the path and encryption password, test it and try to restore again!
{% 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 password of the backup archive below:<br><br>
Please enter the location of the backup archive on your host and the encryption password of the backup archive below:<br><br>
<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="enter the borg password"/>
<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 password" />
<input class="button" 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'. Otherwise will the backup container not find the backup archive!<br><br>
⚠️ 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>
{% endif %}
{% else %}
<b>Everything set!</b> Click on the button below to test the path and password:<br/><br/>
<strong>Everything set!</strong> Click on the button below to test the path and encryption password:<br/><br/>
<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 password"/><br/>
<input class="button" type="submit" value="Test path and encryption password"/><br/>
</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>
{% 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"><b>{{ current_channel }}</b></a> channel. (<a href="/api/docker/logs?id=nextcloud-aio-mastercontainer" target="_blank" rel="noopener">Logs</a>)<br><br>
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>
{% 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.
{% endif %}
{% endif %}
{% if is_backup_container_running == true %}
<span class="status running"></span> Backup container is currently running. (<a href="/api/docker/logs?id=nextcloud-aio-borgbackup" target="_blank" rel="noopener">Logs</a>)<br /><br />
<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>
{% endif %}
@@ -216,25 +223,25 @@
<details>
<summary>Click here to reveal the initial Nextcloud credentials</summary><br />
{% endif %}
Initial Nextcloud username: <b>admin</b><br />
Initial Nextcloud username: <strong>admin</strong><br />
Initial Nextcloud password:
{% 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. #}
<b>{{ nextcloud_password }}</b><br /></details><br />
<strong>{{ nextcloud_password }}</strong><br /></details><br />
{% else %}
<b>{{ nextcloud_password }}</b><br><br>
<strong>{{ nextcloud_password }}</strong><br><br>
{% endif %}
<a href="https://{{ domain }}" class="button" target="_blank" rel="noopener">Open your Nextcloud ↗</a><br/><br>
{% if borg_backup_host_location == '' %}
If your Nextcloud does not open when clicking the button above, see <b><a href="https://github.com/nextcloud/all-in-one/discussions/2105">this documentation</a></b><br><br>
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>
{% endif %}
{% else %}
{% if isAnyRestarting == false %}
<span class="status running"></span> Containers are currently starting.<br /><br />
<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>
{% else %}
It seems like at least one container is currently restarting which means it is not able to start correctly.<br><br>
To break out this endless loop, you can stop the containers below and investigate the issue by having a look at the container logs before starting them again.<br><br>
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>
<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}}">
@@ -284,15 +291,15 @@
{% if has_update_available == true %}
{% if is_mastercontainer_update_available == false %}
⚠️ Container updates are available. Click on <b>Stop containers</b> and <b>Start and update containers</b> to update them. You should consider creating a backup first.<br><br>
⚠️ 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>
{% endif %}
{% else %}
{% if is_mastercontainer_update_available == false %}
Your containers are up-to-date.<br><br>
{% if newMajorVersion != '' and isAnyRunning == true and isApacheStarting != true %}
<details>
<summary>Note about <b>Nextcloud {{ newMajorVersion }}</b></summary><br>
If you haven't upgraded to Nextcloud {{ newMajorVersion }} yet and want to do that now, feel free to follow <b><a href="https://github.com/nextcloud/all-in-one/discussions/4542">this documentation</a></b><br/>
<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>
{% endif %}
{% endif %}
@@ -302,13 +309,13 @@
{% 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 be able to update the mastercontainer.<br /><br />
⚠️ A mastercontainer update is available. Please click on the button below to stop your containers in order to update the mastercontainer.<br /><br />
{% if current_channel starts with 'latest' %}
You can find the changelog <a href="https://github.com/nextcloud/all-in-one/releases/latest"><b>here</b></a><br><br>
You can find the changelog <a href="https://github.com/nextcloud/all-in-one/releases/latest"><strong>here</strong></a><br><br>
{% elseif current_channel starts with 'beta' %}
You can find the changelog <a href="https://github.com/nextcloud/all-in-one/releases"><b>here</b></a><br><br>
You can find the changelog <a href="https://github.com/nextcloud/all-in-one/releases"><strong>here</strong></a><br><br>
{% elseif current_channel starts with 'develop' %}
You can find all changes <a href="https://github.com/nextcloud-releases/all-in-one/commits/main"><b>here</b></a><br><br>
You can find all changes <a href="https://github.com/nextcloud-releases/all-in-one/commits/main"><strong>here</strong></a><br><br>
{% endif %}
{% endif %}
<form method="POST" action="/api/docker/stop" class="xhr">
@@ -319,10 +326,10 @@
{% endif %}
{% else %}
{% if isBackupOrRestoreRunning == true %}
Restore or Backup currently running. Cannot start the containers until that's done.<br /><br />
Restore or Backup currently running. Cannot start the containers until Restore or Backup is complete.<br /><br />
{% 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 lot of time depending on your internet connection. Since the overall size is a few GB, this will take around 5-10 min or more. So be aware and patient!<br><br>
<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>
{% endif %}
{% if is_mastercontainer_update_available == true %}
⚠️ A mastercontainer update is available. Please click on the button below to update it.<br><br>
@@ -366,7 +373,7 @@
{% else %}
{% if is_backup_container_running == false and borg_backup_host_location == "" and isApacheStarting != true %}
<h2>Backup and restore</h2>
Please type in the directory where backups will get created on the host system below. In best case make sure that you choose a location on a separate drive and not on your root drive.<br><br>
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>
<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}}">
@@ -385,10 +392,10 @@
{% 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 />
{% if borg_backup_mode == "check" %}
The backup check was not successful which might points towards 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"><b>this documentation</b></a><br /><br />
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 />
<details>
<summary>Reveal repair option</summary><br />
Below is the option to repair the integrity of your backup. <b>Please note:</b> Please only use this after you have read the documentation above! (It will run the command 'borg check --repair' for you.)<br><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>
<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}}">
@@ -397,7 +404,7 @@
</details><br />
{% 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 <b>Create Backup</b> for testing the new value.<br /><br />
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 />
<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}}">
@@ -417,19 +424,19 @@
{% if is_backup_container_running == false and isApacheStarting == false %}
{% if has_backup_run_once == true %}
<details>
<summary>Click here to reveal all backup options (it also includes an option for automatic updates)</summary><br />
<summary>Click here to reveal all backup options (including an option for automatic updates)</summary><br />
{% endif %}
<h3>Backup information</h3>
This is your encryption password for backups: <b>{{ borgbackup_password }}</b><br /><br/>
Please save it at a safe place since you won't be able to restore from backup if you lose this password! <br /><br/>
Backed up will get all important data of your Nextcloud AIO instance like the database, your files and configuration files of the mastercontainer and else. <br /><br/>
The backup itself uses a tool that is called <a href="https://github.com/borgbackup/borg#what-is-borgbackup"><b>BorgBackup</b></a> which is a well-known server backup tool that efficiently backs up your files and encrypts them on the fly. <br /><br/>
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 get created in the following directory on the host: <b>{{ borg_backup_host_location }}/borg</b> <br /><br/>
Be aware that this solution does not back up 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>
Regarding backup retention, see <b><a href="https://github.com/nextcloud/all-in-one#how-to-adjust-borgs-retention-policy">this</a></b>.<br><br>
Daily backups can get enabled after the initial backup is done. Enabling this also allows to enable an option that allows to update all containers, Nextcloud and its apps automatically.<br><br>
For further documentation and options on this backup solution refer to <b><a href="https://github.com/nextcloud/all-in-one#backup-solution">this section</a></b> and below.<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>
{% if isApacheStarting != true %}
<h3>Backup creation</h3>
@@ -442,7 +449,7 @@
{% if has_backup_run_once == false %}
<h3>Reset backup host location</h3>
If the configured backup host location <b>{{ borg_backup_host_location }}</b> is wrong, you can reset it by clicking on the button below.<br><br/>
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/>
<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}}">
@@ -453,7 +460,7 @@
{% 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 but it shouldn't be needed in most situations.<br><br/>
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/>
<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}}">
@@ -461,7 +468,7 @@
</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 state of the backup so you should consider creating a backup first. It also makes sense to run an integrity check before restoring your files but is not mandatory since it 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 is used to restore the chosen backup which only transfers changed files and deletes additional ones.<br><br>
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>
<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}}">
@@ -475,7 +482,7 @@
<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. <b>04:00</b> will create backups at 4 am UTC and <b>16:00</b> at 4 pm UTC. For creating the backup, it will stop the containers and start them back up after the backup is done.<br><br/>
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/>
<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}}">
@@ -485,11 +492,11 @@
<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>
</form>
{% else %}
Daily backups will be created at <b>{{ daily_backup_time }} UTC</b> which includes a notification about the result of the backup.
Daily backups will be created at <strong>{{ daily_backup_time }} UTC</strong>. A notification about the result of the backup will be sent.
{% 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 and then re-enable them with your new backup time.<br><br/>
To change your backup time first disable Daily Backups, then enter your new backup time, and then re-enable them.<br><br/>
<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}}">
@@ -499,15 +506,15 @@
{% 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 backed up additionally into the same borg backup archive.<br><br>
Below you can enter directories and docker volumes of your host that will be backed up into the same borg backup archive.<br><br>
<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>
</form>
Each line and entry needs to start with a slash or letter/digit. Allowed are only <b>a-z</b>, <b>A-Z</b>, <b>.</b>, <b>0-9</b>, <b>_</b>, <b>-</b>, and <b>/</b>. If the entry begins with a letter/digit are slashes not supported. Two valid entries are <b>/directory/on/the/host</b> and <b>my_custom_docker_volume</b>. You need to make sure yourself that all given directories exist. Otherwise the backup container will fail starting!<br><br/>
Make sure to specify all storages that you want to back up separately since storages will not be mounted recursively. E.g. providing <b>/</b> 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. You should make sure to stop all services before the backup can run correctly if you want to back up the root partition. 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/>
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>
{% if additional_backup_directories != "" %}
This option is currently set. You can disable it again by clearing the field and submitting your changes.<br><br>
@@ -525,29 +532,29 @@
{% if is_backup_container_running == false %}
{% if isApacheStarting == false %}
<h2>AIO password change</h2>
<h2>AIO passphrase change</h2>
<details>
<summary>Click here to change your AIO password</summary><br />
You can change your AIO password below:<br><br />
<summary>Click here to change your AIO passphrase</summary><br />
You can change your AIO passphrase below:<br><br />
<form method="POST" action="/api/configuration" class="xhr">
<input type="password" autocomplete="current-password" name="current-master-password" placeholder="Your current AIO password" id="current-master-password" oninput="showPassword('current-master-password')">
<input type="password" autocomplete="new-password" name="new-master-password" placeholder="Your new AIO password" id="new-master-password" oninput="showPassword('new-master-password')">
<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 password change" />
<input class="button" type="submit" value="Submit passphrase change" />
</form>
The new password 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"><b>latin characters</b></a> <b>a-z</b>, <b>A-Z</b>, <b>0-9</b> and <b>spaces</b>.<br>
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>
</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 <b><a href="https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers">this documentation</a></b> how to add them.<br><br>
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>
{% if isAnyRunning == true %}
<b>Please note:</b> You can enable or disable them when your containers are stopped.<br><br>
<strong>Please note:</strong> You can enable or disable the options below only when your containers are stopped.<br><br>
{% else %}
<b>Please note:</b> Make sure to save your changes by clicking on the button <b>Save changes</b> that is positioned below the list of optional containers. The changes will not be auto-saved.<br><br>
<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>
{% endif %}
<form id="options-form" method="POST" action="/api/configuration" class="xhr">
<input type="hidden" name="{{csrf.keys.name}}" value="{{csrf.name}}">
@@ -566,7 +573,7 @@
{% if is_fulltextsearch_enabled == true %}
<input type="checkbox" id="fulltextsearch" name="fulltextsearch" checked="checked"><label for="fulltextsearch">Fulltextsearch (needs ~1GB additional RAM)</label><br>
{% else %}
<input type="checkbox" id="fulltextsearch" name="fulltextsearch"><label for="fulltextsearch">Fulltextsearch (needs ~1GB additional RAM. <b>Please note:</b> the initial indexing can take a long time during which Nextcloud will be unavailable)</label><br><br>
<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>
{% 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>
@@ -596,7 +603,7 @@
<input id="options-form-submit" class="button" type="submit" value="Save changes" />
<script type="text/javascript" src="options-form-submit.js"></script>
</form>
<b>Minimal system requirements:</b> 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 <b><a href="https://github.com/nextcloud/all-in-one/discussions/1335">this documentation</a></b><br>
<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>
{% if isAnyRunning == true or is_x64_platform == false %}
<script type="text/javascript" src="disable-clamav.js"></script>
{% endif %}
@@ -621,9 +628,9 @@
<input type="hidden" name="{{csrf.keys.value}}" value="{{csrf.value}}">
<input class="button" type="submit" value="Submit collabora dictionaries" />
</form>
You need to make sure that the dictionaries that you enter are valid. An example is <b>de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru</b>.<br><br>
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>
{% else %}
The dictionaries for Collabora are currently set to <b>{{ collabora_dictionaries }}</b>. You can reset them again by clicking on the button below.<br><br/>
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/>
<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}}">
@@ -636,22 +643,22 @@
<h2>Timezone change</h2>
{% if isAnyRunning == true %}
{% if timezone != "" %}
The timezone for Nextcloud is currently set to <b>{{ timezone }}</b>.<br><br>
The timezone for Nextcloud is currently set to <strong>{{ timezone }}</strong>.<br><br>
{% endif %}
<b>Please note:</b> You can change the timezone when your containers are stopped.<br><br>
<strong>Please note:</strong> You can change the timezone when your containers are stopped.<br><br>
{% else %}
{% if timezone == "" %}
In order to get the correct time values for certain Nextcloud features, it makes sense to 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>
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>
<form method="POST" action="/api/configuration" class="xhr">
<input type="text" name="timezone" placeholder="Europe/Berlin" />
<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 since if not, it will break the startup since the database will not get correctly initialized and you will end in a startup loop.')" />
<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.')" />
</form>
You need to make sure that the timezone that you enter is valid. An example is <b>Europe/Berlin</b>. 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"><b>click here</b></a>. The default is <b>Etc/UTC</b> if nothing is entered.<br><br>
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>
{% else %}
The timezone for Nextcloud is currently set to <b>{{ timezone }}</b>. You can reset the timezone again by clicking on the button below.<br><br/>
The timezone for Nextcloud is currently set to <strong>{{ timezone }}</strong>. You can change the timezone by clicking on the button below.<br><br/>
<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}}">

View File

@@ -2,7 +2,7 @@
<summary>Click here to view the current AIO config and documentation links</summary><br />
{% 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></b>.<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>
{% endif %}
{% if nextcloud_datadir starts with '/' %}
@@ -32,5 +32,5 @@
{% 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>
For further documentation on AIO, refer to <b><a href="https://github.com/nextcloud/all-in-one#nextcloud-all-in-one">this page</a></b>. You can use the browser search [CTRL]+[F] to search through the documentation. Additional documentation can be found <b><a href="https://github.com/nextcloud/all-in-one/discussions/categories/wiki">here</a></b>.<br>
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>
</details>

View File

@@ -1,6 +1,6 @@
The folder path that you enter must start with <b>/</b> and must <b>not</b> end with <b>/</b>.<br><br>
An example for Linux is <b>/mnt/backup</b>.<br><br>
On Synology it could be <b>/volume1/docker/nextcloud/backup</b>.<br><br>
For macOS it may be <b>/var/backup</b>.<br><br>
On Windows it might be <b>/run/desktop/mnt/host/c/backup</b>. (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'.) ⚠️ <b>Please note</b>: 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: <b>nextcloud_aio_backupdir</b>. 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>
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>

View File

@@ -6,7 +6,7 @@
<img 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 password:</p>
<p>Log in using your Nextcloud AIO passphrase:</p>
<form method="POST" action="/api/auth/login" class="xhr">
<input type="password" autocomplete="current-password" name="password" placeholder="Password" id="master-password" oninput="showPassword('master-password')">
@@ -15,8 +15,8 @@
<input type="submit" class="button" value="Log in" />
</form>
{% else %}
<p>The login is blocked since Nextcloud is running.<br>Please use the <a href="https://github.com/nextcloud/all-in-one#how-to-easily-log-in-to-the-aio-interface"><b>automatic login</b></a> from your Nextcloud.<br><br>
If that is not possible, you can unblock the login by running<br><b>sudo docker stop nextcloud-aio-apache</b></p>
<p>The login is blocked since Nextcloud is running.<br>Please use the <a href="https://github.com/nextcloud/all-in-one#how-to-easily-log-in-to-the-aio-interface"><strong>automatic login</strong></a> from your Nextcloud.<br><br>
If that is not possible, you can unblock the login by running<br><strong>sudo docker stop nextcloud-aio-apache</strong></p>
{% endif %}
</div>
</div>

View File

@@ -4,10 +4,10 @@
<div class="login-wrapper">
<div class="login">
<img src="/img/logo-blue.svg" style="margin-left: auto;margin-right: auto;display: block;">
<h1>Nextcloud AIO setup</h1>
<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>Please note down the password to access the AIO interface and don't lose it!</p>
<strong>Password</strong><br/> <span class="monospace">{{ password }}</span><br>
<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>
<a href="/" class="button" target="_blank" rel="noopener">Open Nextcloud AIO login ↗</a>
</div>
</div>

View File

@@ -310,10 +310,13 @@ You can switch to a different channel like e.g. the beta channel or from the bet
### How to update the containers?
If we push new containers to `latest`, you will see in the AIO interface below the `containers` section that new container updates were found. In this case, just press `Stop containers` and `Start and update containers` in order to update the containers. The mastercontainer has its own update procedure though. See below. And don't forget to back up the current state of your instance using the built-in backup solution before starting the containers again! Otherwise you won't be able to restore your instance easily if something should break during the update.
If a new `Mastercontainer` update was found, you'll see an additional section below the `containers` section which shows that a mastercontainer update is available. If so, you can simply press on the button to update the container.
If a new `mastercontainer` update was found, you'll see a note below the `Stop containers` button that allows to show the changelog. If you click that button and the containers are stopped, you will see a new button that allows to update the mastercontainer. After doing so and after the update is gone through, you will have the option again to `Start and update containers`. It is recommended to create a backup before clicking the `Start and update containers` button.
Additionally, there is a cronjob that runs once a day that checks for container and mastercontainer updates and sends a notification to all Nextcloud admins if a new update was found.
#### How often are update notifications sent?
AIO ships its own update notifications implementation. It checks if container updates are available. If so, it sends a notification with the title `Container updates available!` on saturdays to Nextcloud users that are part of the `admin` group. If the Nextcloud container image should be older than 90 days (~3 months) and thus badly outdated, AIO sends a notification to all Nextcloud users with the title `AIO is outdated!`. Thus admins should make sure to update the container images at least once every 3 months in order to make sure that the instance gets all security bugfixes as soon as possible.
### How to easily log in to the AIO interface?
If your Nextcloud is running and you are logged in as admin in your Nextcloud, you can easily log in to the AIO interface by opening `https://yourdomain.tld/settings/admin/overview` which will show a button on top that enables you to log in to the AIO interface by just clicking on this button. **Note:** You can change the domain/ip-address/port of the button by simply stopping the containers, visiting the AIO interface from the correct and desired domain/ip-address/port and clicking once on `Start containers`.
@@ -372,9 +375,9 @@ If you connect an external drive to your host, and choose the backup directory t
Backups can be created and restored in the AIO interface using the buttons `Create Backup` and `Restore selected backup`. Additionally, a backup check is provided that checks the integrity of your backups but it shouldn't be needed in most situations.
The backups itself get encrypted with an encryption key that gets shown to you in the AIO interface. Please save that at a safe place as you will not be able to restore from backup without this key.
The backups themselves get encrypted with an encryption key that gets shown to you in the AIO interface. Please save that at a safe place as you will not be able to restore from backup without this key.
Daily backups can get enabled after the initial backup is done. Enabling this also allows to enable an option that allows to update all containers, Nextcloud and its apps automatically.
Daily backups can get enabled after the initial backup is done. Enabling this also allows to enable an option that allows to automatically update all containers, Nextcloud and its apps.
Be aware that this solution does not back up 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.

View File

@@ -82,6 +82,7 @@ Add this as a new Apache site config:
# Reverse proxy based on https://httpd.apache.org/docs/current/mod/mod_proxy_wstunnel.html
RewriteEngine On
ProxyPreserveHost On
RequestHeader set X-Real-IP %{REMOTE_ADDR}s
AllowEncodedSlashes NoDecode
ProxyPass / http://localhost:11000/ nocanon
@@ -301,7 +302,7 @@ backend Nextcloud
</details>
### Nginx
### Nginx, Freenginx, Openresty
<details>