Compare commits

...

101 Commits

Author SHA1 Message Date
Simon L.
89d2dd7287 increase to 9.4.1
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-08-01 12:15:45 +02:00
Simon L.
c6606c40ba Merge pull request #5078 from nextcloud/fix/noid/fix-apache-port
daily-backup: fix issue with APACHE_PORT
2024-08-01 12:14:39 +02:00
Simon L.
7a638b8a6d daily-backup: fix issue with APACHE_PORT
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-08-01 09:47:54 +02:00
Simon L.
9da2235d3e update rp wording and add caddy to the examples
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-07-31 13:52:38 +02:00
Simon L.
4d4533e677 Merge pull request #5071 from nextcloud/enh/5070/big-file-uploads
RP-docs: Apache: increase timeout to support big file uploads
2024-07-30 15:23:04 +02:00
Simon L.
8c02eb2740 rp-docs: apache: increase timeout to support big file uploads
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-07-30 13:19:49 +02:00
Simon L.
7e56c912f7 increase to 9.4.0
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-07-29 10:48:56 +02:00
Simon L.
562b55b872 improve hint where to activate the external storage app
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-07-29 10:30:52 +02:00
Simon L.
43a51c2a29 Merge pull request #5054 from nextcloud/aio-dependency-update
PHP dependency updates
2024-07-27 14:03:57 +02:00
szaimen
d2820644a0 php dependency updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-07-27 12:02:06 +00:00
Simon L.
73e4ea26ab Merge pull request #5040 from docjyJ/main
Improve the development environment
2024-07-26 18:01:13 +02:00
Jean-Yves
2c573b2e24 Fix gitignore
Signed-off-by: Jean-Yves <7360784+docjyJ@users.noreply.github.com>
2024-07-26 17:42:45 +02:00
Jean-Yves
68b5b770c7 Update readeMe
Signed-off-by: Jean-Yves <7360784+docjyJ@users.noreply.github.com>
2024-07-26 17:39:36 +02:00
Jean-Yves
5dbcf17e45 Update composer.lock
Signed-off-by: Jean-Yves <7360784+docjyJ@users.noreply.github.com>
2024-07-26 14:34:17 +02:00
Jean-Yves
1accb8f568 Update .gitignore
Signed-off-by: Jean-Yves <7360784+docjyJ@users.noreply.github.com>
2024-07-26 14:28:32 +02:00
Simon L.
9029991668 Merge pull request #5044 from nextcloud/enh/noid/maintenance-window
helm: allow to set NEXTCLOUD_MAINTENANCE_WINDOW
2024-07-26 14:00:57 +02:00
Simon L.
fe957f10f4 Merge pull request #5046 from nextcloud/enh/noid/allow-skip-optimization
nextcloud: allow to skip database optimization
2024-07-26 13:59:11 +02:00
Simon L.
a27f51abdc nextcloud: allow to skip database optimization
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-07-26 13:52:18 +02:00
Simon L.
2ab19cf79e helm: allow to set NEXTCLOUD_MAINTENANCE_WINDOW
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-07-26 12:57:40 +02:00
Jean-Yves
d30af69ad9 Update php/composer.json
Co-authored-by: Simon L. <szaimen@e.mail.de>
Signed-off-by: Jean-Yves <7360784+docjyJ@users.noreply.github.com>
2024-07-26 12:07:22 +02:00
Jean-Yves
31162a29d8 fix
Signed-off-by: Jean-Yves <7360784+docjyJ@users.noreply.github.com>
2024-07-25 18:12:58 +02:00
Simon L.
00c41624ea Merge pull request #5024 from nextcloud/enh/noid/add-network-policy
helm: add network policy
2024-07-25 15:29:20 +02:00
Simon L.
533c270d06 address review
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-07-25 15:27:50 +02:00
Simon L.
69cf646c85 Merge pull request #5039 from nextcloud/aio-dependency-update
PHP dependency updates
2024-07-25 10:49:28 +02:00
szaimen
3c26a3bed1 php dependency updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-07-25 08:48:38 +00:00
Simon L.
a88ab04bb6 Merge pull request #5038 from nextcloud/dependabot/composer/php/guzzlehttp/guzzle-7.9.2
build(deps): bump guzzlehttp/guzzle from 7.9.1 to 7.9.2 in /php
2024-07-25 10:48:00 +02:00
dependabot[bot]
aea0af5344 build(deps): bump guzzlehttp/guzzle from 7.9.1 to 7.9.2 in /php
Bumps [guzzlehttp/guzzle](https://github.com/guzzle/guzzle) from 7.9.1 to 7.9.2.
- [Release notes](https://github.com/guzzle/guzzle/releases)
- [Changelog](https://github.com/guzzle/guzzle/blob/7.9/CHANGELOG.md)
- [Commits](https://github.com/guzzle/guzzle/compare/7.9.1...7.9.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-25 08:44:34 +00:00
Simon L.
3c7adc3be5 Merge pull request #5035 from nextcloud/dependabot/docker/Containers/mastercontainer/docker-27.1.1-cli
build(deps): bump docker from 27.0.3-cli to 27.1.1-cli in /Containers/mastercontainer
2024-07-25 10:30:58 +02:00
dependabot[bot]
85431fe60d build(deps): bump docker in /Containers/mastercontainer
Bumps docker from 27.0.3-cli to 27.1.1-cli.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-25 08:27:31 +00:00
Simon L.
25a2bd3efc Merge pull request #5034 from nextcloud/dependabot/docker/Containers/watchtower/alpine-3.20.2
build(deps): bump alpine from 3.20.1 to 3.20.2 in /Containers/watchtower
2024-07-25 10:24:32 +02:00
Simon L.
d68a0c0e96 Merge pull request #5033 from nextcloud/dependabot/docker/Containers/borgbackup/alpine-3.20.2
build(deps): bump alpine from 3.20.1 to 3.20.2 in /Containers/borgbackup
2024-07-25 10:24:19 +02:00
Simon L.
d9ff3ac548 Merge pull request #5032 from nextcloud/dependabot/docker/Containers/mastercontainer/docker-27.1.0-cli
build(deps): bump docker from 27.0.3-cli to 27.1.0-cli in /Containers/mastercontainer
2024-07-25 10:24:06 +02:00
Simon L.
f918d058a8 Merge pull request #5031 from nextcloud/dependabot/docker/Containers/domaincheck/alpine-3.20.2
build(deps): bump alpine from 3.20.1 to 3.20.2 in /Containers/domaincheck
2024-07-25 10:23:51 +02:00
Simon L.
4ccde49448 Merge pull request #5030 from nextcloud/dependabot/docker/Containers/imaginary/alpine-3.20.2
build(deps): bump alpine from 3.20.1 to 3.20.2 in /Containers/imaginary
2024-07-25 10:23:37 +02:00
Simon L.
a47eb2352d Merge pull request #5029 from nextcloud/dependabot/docker/Containers/notify-push/alpine-3.20.2
build(deps): bump alpine from 3.20.1 to 3.20.2 in /Containers/notify-push
2024-07-25 10:23:10 +02:00
Simon L.
51b001f194 Merge pull request #5028 from nextcloud/dependabot/docker/Containers/talk/alpine-3.20.2
build(deps): bump alpine from 3.20.1 to 3.20.2 in /Containers/talk
2024-07-25 10:22:56 +02:00
Simon L.
2e1f9819ff Merge pull request #5023 from nextcloud/dependabot/composer/php/guzzlehttp/guzzle-7.9.1
build(deps): bump guzzlehttp/guzzle from 7.9.0 to 7.9.1 in /php
2024-07-25 10:22:43 +02:00
Simon L.
49bcef5df7 Merge pull request #5022 from nextcloud/dependabot/docker/Containers/clamav/clamav/clamav-1.3.1-61
build(deps): bump clamav/clamav from 1.3.1-60 to 1.3.1-61 in /Containers/clamav
2024-07-25 10:22:30 +02:00
Simon L.
24c3f301ed Merge pull request #5009 from nextcloud/dependabot/docker/Containers/apache/httpd-2.4.62-alpine3.20
build(deps): bump httpd from 2.4.61-alpine3.20 to 2.4.62-alpine3.20 in /Containers/apache
2024-07-25 10:22:18 +02:00
Simon L.
3efbaeb158 Merge pull request #5037 from nextcloud/aio-helm-update
Helm Chart updates
2024-07-25 09:47:56 +02:00
szaimen
ddf561b404 Helm Chart updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-07-25 07:46:35 +00:00
Simon L.
9a70fa4ddc update rp notice
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-07-24 20:14:00 +02:00
Simon L.
5c1bf53011 adjust helm install instructions
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-07-24 16:36:34 +02:00
Simon L.
8a9c5ae973 helm: add network policy
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-07-24 16:06:20 +02:00
dependabot[bot]
3496815879 build(deps): bump alpine from 3.20.1 to 3.20.2 in /Containers/watchtower
Bumps alpine from 3.20.1 to 3.20.2.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-23 12:54:55 +00:00
dependabot[bot]
bc90f47d7a build(deps): bump alpine from 3.20.1 to 3.20.2 in /Containers/borgbackup
Bumps alpine from 3.20.1 to 3.20.2.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-23 12:37:00 +00:00
dependabot[bot]
8327b9aaa0 build(deps): bump docker in /Containers/mastercontainer
Bumps docker from 27.0.3-cli to 27.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-07-23 12:35:06 +00:00
dependabot[bot]
8656f58009 build(deps): bump alpine in /Containers/domaincheck
Bumps alpine from 3.20.1 to 3.20.2.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-23 12:32:30 +00:00
dependabot[bot]
786f6ce2af build(deps): bump alpine from 3.20.1 to 3.20.2 in /Containers/imaginary
Bumps alpine from 3.20.1 to 3.20.2.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-23 12:31:27 +00:00
dependabot[bot]
be4e2e2afb build(deps): bump alpine in /Containers/notify-push
Bumps alpine from 3.20.1 to 3.20.2.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-23 12:23:41 +00:00
dependabot[bot]
bb66445cf7 build(deps): bump alpine from 3.20.1 to 3.20.2 in /Containers/talk
Bumps alpine from 3.20.1 to 3.20.2.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-23 12:19:49 +00:00
dependabot[bot]
e9fcd554cb build(deps): bump guzzlehttp/guzzle from 7.9.0 to 7.9.1 in /php
Bumps [guzzlehttp/guzzle](https://github.com/guzzle/guzzle) from 7.9.0 to 7.9.1.
- [Release notes](https://github.com/guzzle/guzzle/releases)
- [Changelog](https://github.com/guzzle/guzzle/blob/7.9/CHANGELOG.md)
- [Commits](https://github.com/guzzle/guzzle/compare/7.9.0...7.9.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-22 12:50:21 +00:00
dependabot[bot]
00f7e2f749 build(deps): bump clamav/clamav in /Containers/clamav
Bumps clamav/clamav from 1.3.1-60 to 1.3.1-61.

---
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-07-22 12:32:20 +00:00
Simon L.
9458650f8b fix json-validator
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-07-22 14:11:08 +02:00
dependabot[bot]
85c606b09b build(deps): bump httpd in /Containers/apache
Bumps httpd from 2.4.61-alpine3.20 to 2.4.62-alpine3.20.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-19 12:38:57 +00:00
Simon L.
07b603ae74 Merge pull request #4671 from ccaccb/feature/4621-docker-rootless-external-ip-documentation
Add note to get correct source IP when using rootless docker
2024-07-19 10:38:53 +02:00
Simon L.
ce6e9411f5 adjust things a bit
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-07-19 10:37:14 +02:00
Simon L.
b00ae3ec1c Merge pull request #5004 from nextcloud/dependabot/docker/Containers/collabora/collabora/code-24.04.5.2.1
build(deps): bump collabora/code from 24.04.5.1.1 to 24.04.5.2.1 in /Containers/collabora
2024-07-18 15:15:50 +02:00
Simon L.
6d785c4848 Merge pull request #5003 from nextcloud/dependabot/docker/Containers/talk/nats-2.10.18-scratch
build(deps): bump nats from 2.10.17-scratch to 2.10.18-scratch in /Containers/talk
2024-07-18 15:15:29 +02:00
dependabot[bot]
4caf23ad28 build(deps): bump collabora/code in /Containers/collabora
Bumps collabora/code from 24.04.5.1.1 to 24.04.5.2.1.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-18 13:11:54 +00:00
dependabot[bot]
0a2b5b6ace build(deps): bump nats in /Containers/talk
Bumps nats from 2.10.17-scratch to 2.10.18-scratch.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-18 13:08:50 +00:00
Simon L.
44fbda535b increase to 9.3.0
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-07-18 14:53:17 +02:00
Simon L.
f47edcabe3 Merge pull request #5001 from nextcloud/nextcloud-container-update
Nextcloud dependency update
2024-07-18 14:51:13 +02:00
Simon L.
352bbd5e7f Merge pull request #5002 from nextcloud/aio-dependency-update
PHP dependency updates
2024-07-18 14:50:55 +02:00
szaimen
c0798bc5b3 php dependency updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-07-18 12:12:59 +00:00
szaimen
37f4340ca6 nextcloud-update automated change
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-07-18 12:10:47 +00:00
Simon L.
ccdb9bd1f3 update oo
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-07-18 09:35:45 +02:00
Simon L.
a7fcf67d5f Merge pull request #4990 from nextcloud/dependabot/docker/Containers/clamav/clamav/clamav-1.3.1-60
build(deps): bump clamav/clamav from 1.3.1-59 to 1.3.1-60 in /Containers/clamav
2024-07-18 09:34:31 +02:00
Simon L.
a562857ba5 Merge pull request #4981 from nextcloud/enh/noid/allow-lock-vaultwarden-interface
caddy community-container: allow to disable the vaultwarden admin interface
2024-07-18 09:34:13 +02:00
Simon L.
09c9cd839c Merge pull request #4980 from nextcloud/dependabot/docker/Containers/docker-socket-proxy/haproxy-3.0.3-alpine
build(deps): bump haproxy from 3.0.2-alpine to 3.0.3-alpine in /Containers/docker-socket-proxy
2024-07-18 09:34:03 +02:00
Simon L.
8e5deb0ebb Merge pull request #4979 from nextcloud/dependabot/docker/Containers/fulltextsearch/elasticsearch-8.14.3
build(deps): bump elasticsearch from 8.14.2 to 8.14.3 in /Containers/fulltextsearch
2024-07-18 09:33:45 +02:00
Simon L.
a5953d9fcb Merge pull request #4977 from nextcloud/imaginary-container-update
Imaginary update
2024-07-18 09:33:25 +02:00
Simon L.
ba10373ccc Merge pull request #4973 from nextcloud/fix/remove-unused-go-binaries
fix: remove unused go binaries from redis and postgresql images
2024-07-18 09:33:10 +02:00
Simon L.
4d3b712cfa Merge pull request #5000 from nextcloud/aio-helm-update
Helm Chart updates
2024-07-18 08:49:13 +02:00
szaimen
352e086b39 Helm Chart updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-07-18 06:40:09 +00:00
Simon L.
4842acc3eb Merge pull request #4978 from nextcloud/aio-yaml-update
Yaml updates
2024-07-18 08:33:58 +02:00
Simon L.
92a711fdef Merge pull request #4996 from nextcloud/enh/noid/remove-latest-tag
update-helm: adjust workflow for new tags syntax
2024-07-17 18:24:08 +02:00
Simon L.
f1da5f9269 Update update-helm.sh
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-07-17 17:21:54 +02:00
Simon L.
460e9725d8 updat-helm: adjust workflow for new tags syntax
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-07-17 16:38:51 +02:00
Simon L.
8ab9c734b4 update link to docker engine
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-07-17 15:33:43 +02:00
Simon L.
bd7b4fc2ae update detail
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-07-17 15:23:33 +02:00
szaimen
773c2d4325 Yaml updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-07-16 12:05:33 +00:00
szaimen
9d9b9dd561 imaginary-update automated change
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-07-16 12:04:41 +00:00
Simon L.
8e79c93b69 Merge pull request #4988 from nextcloud/enh/noid/allow-disable-creation-of-namespace
helm: allow to disable creation of namespace
2024-07-16 11:59:55 +02:00
dependabot[bot]
b4b5f70ecd build(deps): bump clamav/clamav in /Containers/clamav
Bumps clamav/clamav from 1.3.1-59 to 1.3.1-60.

---
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-07-15 13:01:59 +00:00
Simon L.
65c2ecfd5d helm: allow to disable creation of namespace
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-07-15 14:07:36 +02:00
Simon L
e1b5ba884f Merge pull request #4976 from nextcloud/enh/4887/update-ipv6-docs
update the ipv6 documentation
2024-07-15 14:03:48 +02:00
Simon L.
aaf748b547 update link to network recreation docs
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-07-15 13:50:04 +02:00
Simon L.
1f04defd75 also remove IPV6_NETWORK
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-07-15 11:47:44 +02:00
Simon L.
0600a89a88 address review
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-07-15 11:46:27 +02:00
Simon L.
4eadbc93b7 caddy community-container: allow to disable the vaultwarden admin interface
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-07-12 16:53:57 +02:00
dependabot[bot]
cd4dbca6b5 build(deps): bump haproxy in /Containers/docker-socket-proxy
Bumps haproxy from 3.0.2-alpine to 3.0.3-alpine.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-12 12:42:24 +00:00
Zoey
b3161695e6 Update docker-ipv6-support.md
Signed-off-by: Zoey <zoey@z0ey.de>
2024-07-12 14:38:38 +02:00
Zoey
338e0868f5 Update compose.yaml
Signed-off-by: Zoey <zoey@z0ey.de>
2024-07-12 14:37:17 +02:00
dependabot[bot]
3b6464852d build(deps): bump elasticsearch in /Containers/fulltextsearch
Bumps elasticsearch from 8.14.2 to 8.14.3.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-12 12:10:13 +00:00
Simon L.
46c7fed2be update the ipv6 documentation
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-07-12 11:34:00 +02:00
Simon L.
e60dd31a35 make it rm -f
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-07-12 10:36:14 +02:00
Simon L.
22fbd73d92 add link to httpd
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-07-12 10:31:30 +02:00
Simon L.
b8c1d78371 update links to upstream docker files
Signed-off-by: Simon L. <szaimen@e.mail.de>
2024-07-12 10:24:56 +02:00
Richard Steinmetz
8027a7e5ec fix: remove unused go binaries from redis and postgresql images
Both binaries gosu and su-exec are not used in our entrypoints.

Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2024-07-11 18:22:39 +02:00
Hannes Franke
354c642f75 Add note to get correct source IP when using rootless docker
Signed-off-by: Hannes Franke <hannes.franke@tu-dortmund.de>
2024-06-07 16:27:44 +02:00
68 changed files with 2310 additions and 315 deletions

View File

@@ -30,6 +30,6 @@ jobs:
for file in "${JSON_FILES[@]}"; do
json validate --schema-file=php/containers-schema.json --document-file="$file" 2>&1 | tee -a ./json-validator.log
done
if grep -q "document does not validate with schema." ./json-validator.log; then
if grep -q "document does not validate with schema.\|invalid JSONFile" ./json-validator.log; then
exit 1
fi

View File

@@ -28,7 +28,6 @@ jobs:
run: |
set -x
cd php
composer global require wapmorgan/php-deprecation-detector dev-master
composer install
composer run php-deprecation-detector | tee -i ./phpdd.log
if grep "Total issues:" ./phpdd.log; then

View File

@@ -23,9 +23,8 @@ jobs:
run: |
set -x
cd php
composer global require vimeo/psalm --prefer-dist --no-progress --dev
composer install
composer run psalm -- --monochrome --no-progress --output-format=text --update-baseline
composer run psalm:update-baseline
git clean -f lib/composer
git checkout composer.json composer.lock lib/composer
continue-on-error: true

View File

@@ -42,6 +42,5 @@ jobs:
run: |
set -x
cd php
composer global require vimeo/psalm --prefer-dist --no-progress --dev
composer install
composer run psalm

View File

@@ -13,7 +13,7 @@ on:
permissions:
contents: read
concurrency:
concurrency:
group: lint-twig-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
@@ -36,7 +36,5 @@ jobs:
- name: twig lint
run: |
cd php
composer require sserbin/twig-linter:@dev --no-progress --dev
composer install
chmod +x ./vendor/bin/twig-linter
./vendor/bin/twig-linter lint ./templates
composer run lint:twig

View File

@@ -14,8 +14,7 @@ jobs:
uses: actions/checkout@v4
- name: update helm chart
run: |
DOCKER_TAG="$(curl -L -s 'https://registry.hub.docker.com/v2/repositories/nextcloud/all-in-one/tags?page_size=1024' | jq '."results"[]["name"]' | sed 's|"||g' | grep '^20' | sort -r | head -1)"
DOCKER_TAG="${DOCKER_TAG%%-latest*}"
DOCKER_TAG="$(curl -L -s 'https://registry.hub.docker.com/v2/repositories/nextcloud/all-in-one/tags?page_size=1024' | jq '."results"[]["name"]' | sed 's|"||g' | grep '^20[0-9_]\+' | grep -v latest | sort -r | head -1)"
export DOCKER_TAG
if [ -n "$DOCKER_TAG" ] && ! grep -q "$DOCKER_TAG" ./nextcloud-aio-helm-chart/templates/nextcloud-aio-nextcloud-deployment.yaml; then
sudo bash nextcloud-aio-helm-chart/update-helm.sh "$DOCKER_TAG"

11
.gitignore vendored
View File

@@ -1,8 +1,13 @@
.DS_Store
/php/data/containers.json
/php/data/configuration.json
/php/data/backupsecret.json
.idea/
*.iml
/php/data/*
/php/session/*
!/php/data/.gitkeep
!/php/session/.gitkeep
/php/vendor
/manual-install/*.conf
!/manual-install/sample.conf
/manual-install/docker-compose.yml

View File

@@ -1,7 +1,8 @@
# syntax=docker/dockerfile:latest
FROM caddy:2.8.4-alpine AS caddy
FROM httpd:2.4.61-alpine3.20
# From https://github.com/docker-library/httpd/blob/master/2.4/alpine/Dockerfile
FROM httpd:2.4.62-alpine3.20
COPY --from=caddy /usr/bin/caddy /usr/bin/caddy

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:latest
# Probably from here https://github.com/elastic/elasticsearch/blob/main/distribution/docker/src/docker/Dockerfile
FROM elasticsearch:8.14.2
FROM elasticsearch:8.14.3
USER root

View File

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

View File

@@ -1,8 +0,0 @@
# Default ignored files
/shelf/
/workspace.xml
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml
# Editor-based HTTP Client requests
/httpRequests/

View File

@@ -1,9 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

View File

@@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

View File

@@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/mastercontainer.iml" filepath="$PROJECT_DIR$/.idea/mastercontainer.iml" />
</modules>
</component>
</project>

View File

@@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/../.." vcs="Git" />
</component>
</project>

View File

@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:latest
# Docker CLI is a requirement
FROM docker:27.0.3-cli AS docker
FROM docker:27.1.1-cli AS docker
# Caddy is a requirement
FROM caddy:2.8.4-alpine AS caddy

View File

@@ -16,11 +16,15 @@ fi
sudo -u www-data touch "/mnt/docker-aio-config/data/daily_backup_running"
# Check if apache is running/stopped, watchtower is stopped and backupcontainer is stopped
APACHE_PORT="$(docker inspect nextcloud-aio-apache --format "{{.HostConfig.PortBindings}}" | grep -o '[0-9]\+' | head -1)"
while docker ps --format "{{.Names}}" | grep -q "^nextcloud-aio-apache$" && ! nc -z nextcloud-aio-apache "$APACHE_PORT"; do
echo "Waiting for apache to become available"
sleep 30
done
APACHE_PORT="$(docker inspect nextcloud-aio-apache --format "{{.Config.Env}}" | grep -o 'APACHE_PORT=[0-9]\+' | grep -o '[0-9]\+' | head -1)"
if [ -z "$APACHE_PORT" ]; then
echo "APACHE_PORT is not set which is not expected..."
else
while docker ps --format "{{.Names}}" | grep -q "^nextcloud-aio-apache$" && ! nc -z nextcloud-aio-apache "$APACHE_PORT"; do
echo "Waiting for apache to become available"
sleep 30
done
fi
while docker ps --format "{{.Names}}" | grep -q "^nextcloud-aio-watchtower$"; do
echo "Waiting for watchtower to stop"
sleep 30

View File

@@ -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=29.0.3
ENV NEXTCLOUD_VERSION=29.0.4
ENV AIO_TOKEN=123456
ENV AIO_URL=localhost
# AIO settings end # Do not remove or change this line!

View File

@@ -295,7 +295,6 @@ DATADIR_PERMISSION_CONF
php /var/www/html/occ app:disable updatenotification
rm -rf /var/www/html/apps/updatenotification
php /var/www/html/occ app:enable nextcloud-aio --force
php /var/www/html/occ db:add-missing-indices
php /var/www/html/occ db:add-missing-columns
php /var/www/html/occ db:add-missing-primary-keys
yes | php /var/www/html/occ db:convert-filecache-bigint
@@ -423,12 +422,12 @@ DATADIR_PERMISSION_CONF
# Apply optimization
echo "Doing some optimizations..."
php /var/www/html/occ maintenance:repair
php /var/www/html/occ db:add-missing-indices
php /var/www/html/occ db:add-missing-columns
php /var/www/html/occ db:add-missing-primary-keys
yes | php /var/www/html/occ db:convert-filecache-bigint
php /var/www/html/occ maintenance:mimetype:update-js
php /var/www/html/occ maintenance:mimetype:update-db
if [ "$NEXTCLOUD_SKIP_DATABASE_OPTIMIZATION" != yes ]; then
php /var/www/html/occ db:add-missing-indices
php /var/www/html/occ db:add-missing-columns
php /var/www/html/occ db:add-missing-primary-keys
yes | php /var/www/html/occ db:convert-filecache-bigint
fi
fi
fi
@@ -504,9 +503,10 @@ if [ -n "$SERVERINFO_TOKEN" ] && [ -z "$(php /var/www/html/occ config:app:get se
php /var/www/html/occ config:app:set serverinfo token --value="$SERVERINFO_TOKEN"
fi
# Set maintenance window so that no warning is shown in the admin overview
if [ -z "$(php /var/www/html/occ config:system:get maintenance_window_start)" ]; then
php /var/www/html/occ config:system:set maintenance_window_start --type=int --value=100
if [ -z "$NEXTCLOUD_MAINTENANCE_WINDOW" ]; then
NEXTCLOUD_MAINTENANCE_WINDOW=100
fi
php /var/www/html/occ config:system:set maintenance_window_start --type=int --value="$NEXTCLOUD_MAINTENANCE_WINDOW"
# Apply network settings
echo "Applying network settings..."

View File

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

View File

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

View File

@@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest
# From https://github.com/docker-library/postgres/blob/master/15/alpine/Dockerfile
# From https://github.com/docker-library/postgres/blob/master/16/alpine3.20/Dockerfile
FROM postgres:16.3-alpine
COPY --chmod=775 start.sh /start.sh
@@ -32,7 +32,10 @@ RUN set -ex; \
\
# Give root a random password
echo "root:$(openssl rand -base64 12)" | chpasswd; \
apk --no-cache del openssl;
apk --no-cache del openssl; \
\
# Get rid of unused binaries
rm -f /usr/local/bin/gosu /usr/local/bin/su-exec;
VOLUME /mnt/data

View File

@@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest
# From https://github.com/docker-library/redis/blob/master/7.0/alpine/Dockerfile
# From https://github.com/docker-library/redis/blob/master/7.2/alpine/Dockerfile
FROM redis:7.2.5-alpine
COPY --chmod=775 start.sh /start.sh
@@ -9,7 +9,10 @@ RUN set -ex; \
apk add --no-cache openssl bash; \
\
# Give root a random password
echo "root:$(openssl rand -base64 12)" | chpasswd
echo "root:$(openssl rand -base64 12)" | chpasswd; \
\
# Get rid of unused binaries
rm -f /usr/local/bin/gosu;
USER redis
ENTRYPOINT ["/start.sh"]

View File

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

View File

@@ -2,7 +2,7 @@
# From https://github.com/containrrr/watchtower/blob/main/dockerfiles/Dockerfile.self-contained
FROM containrrr/watchtower:1.7.1 AS watchtower
FROM alpine:3.20.1
FROM alpine:3.20.2
RUN apk upgrade --no-cache -a; \
apk add --no-cache bash

View File

@@ -5,7 +5,7 @@
"display_name": "Caddy with geoblocking",
"documentation": "https://github.com/nextcloud/all-in-one/tree/main/community-containers/caddy",
"image": "szaimen/aio-caddy",
"image_tag": "v1",
"image_tag": "v2",
"internal_port": "443",
"restart": "unless-stopped",
"ports": [

View File

@@ -7,6 +7,7 @@ This container bundles vaultwarden and auto-configures it for you.
- If you want to secure the installation with fail2ban, you might want to check out https://github.com/nextcloud/all-in-one/tree/main/community-containers/fail2ban
- The data of Vaultwarden will be automatically included in AIOs backup solution!
- After adding and starting the container, you need to visit `https://bw.your-domain.com/admin` in order to log in with the admin key that you can retrieve when running `sudo docker inspect nextcloud-aio-vaultwarden | grep ADMIN_TOKEN`. There you can configure smtp first and then invite users via mail. After this is done, you might disable the admin panel via the reverse proxy by blocking connections to the subdirectory.
- If using the caddy community container, the vaultwarden admin interface can be disabled by creating a `block-vaultwarden-admin` file in the `nextcloud-aio-caddy` folder when you open the Nextcloud files app with the default `admin` user. Afterwards restart all containers from the AIO interface and the admin interface should be disabled! You can unlock the admin interface by removing the file again and afterwards restarting the containers via the AIO interface.
- See https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers how to add it to the AIO stack
### Repository

View File

@@ -7,14 +7,15 @@ services:
volumes:
- nextcloud_aio_mastercontainer:/mnt/docker-aio-config # This line is not allowed to be changed as otherwise the built-in backup solution will not work
- /var/run/docker.sock:/var/run/docker.sock:ro # May be changed on macOS, Windows or docker rootless. See the applicable documentation. If adjusting, don't forget to also set 'WATCHTOWER_DOCKER_SOCKET_PATH'!
network_mode: bridge # add to the same network as docker run would do
ports:
- 80:80 # 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
- 80:80 # Can be removed when running behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else). See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md
- 8080:8080
- 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
- 8443:8443 # Can be removed when running behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else). See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md
# 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
# APACHE_PORT: 11000 # Is needed when running behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else). See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md
# APACHE_IP_BINDING: 127.0.0.1 # Should be set when running behind a web server or reverse proxy (like Apache, Nginx, Caddy, 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
@@ -30,8 +31,6 @@ services:
# 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
# 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
@@ -52,14 +51,3 @@ volumes: # If you want to store the data on a different drive, see https://githu
nextcloud_aio_mastercontainer:
name: nextcloud_aio_mastercontainer # This line is not allowed to be changed as otherwise the built-in backup solution will not work
# # Optional: If you need ipv6, follow step 1 and 2 of https://github.com/nextcloud/all-in-one/blob/main/docker-ipv6-support.md first and then uncomment the below config in order to activate ipv6 for the internal nextcloud-aio network.
# # Please make sure to uncomment also the networking lines of the mastercontainer above in order to actually create the network with docker-compose
# networks:
# nextcloud-aio:
# name: nextcloud-aio # This line is not allowed to be changed as otherwise the created network will not be used by the other containers of AIO
# driver: bridge
# enable_ipv6: true
# ipam:
# driver: default
# config:
# - subnet: fd12:3456:789a:2::/64 # IPv6 subnet to use

View File

@@ -1,18 +1,12 @@
# IPv6-Support for Docker
Before enabling IPv6-Support for Docker, please note that there are still some unresolved problems in regards to IPv6-Support in Docker. See https://github.com/nextcloud/all-in-one/discussions/2557 for more details on this.
Now that this was mentioned, see the instructions below on how to enable IPv6 for Docker.
## Docker on Linux and Docker-rootless
1. Edit `/etc/docker/daemon.json` (or `~/.config/docker/daemon.json` in case of docker-rootless), set the `ipv6` key to `true` and the `fixed-cidr-v6` key to your IPv6 subnet. In this example we are setting it to `fd12:3456:789a:1::/64`. Additionally set `experimental` to `true` and `ip6tables` to `true` as well. If you are using mailcow and enabled IPv6 with the update.sh, you can keep their daemon.json, it will work too.
First of all upgrade your docker installation to v27.0.1 or higher.
1. Then edit `/etc/docker/daemon.json` (or `~/.config/docker/daemon.json` in case of docker-rootless), add the below json:
```json
{
"ipv6": true,
"fixed-cidr-v6": "fd12:3456:789a:1::/64",
"experimental": true,
"ip6tables": true
"default-network-opts": {"bridge":{"com.docker.network.enable_ipv6":"true"}}
}
```
@@ -23,23 +17,21 @@ Now that this was mentioned, see the instructions below on how to enable IPv6 fo
```console
sudo systemctl restart docker
```
3. Make sure that ipv6 is enabled for the internal `nextcloud-aio` network by running `sudo docker network inspect nextcloud-aio | grep EnableIPv6`. On a new instance, this command should return that it did not find a network with this name. Then you can run `sudo docker network create --subnet="fd12:3456:789a:2::/64" --driver bridge --ipv6 nextcloud-aio` in order to create the network with ipv6-support. However if it finds the network and its value `EnableIPv6` is set to false, make sure to follow https://github.com/nextcloud/all-in-one/discussions/2045 in order to recreate the network and enable ipv6 for it.
3. Make sure that ipv6 is enabled for the internal `nextcloud-aio` network by running `sudo docker network inspect nextcloud-aio | grep EnableIPv6`. On a new instance, this command should return that it did not find a network with this name. Then you can run `sudo docker network create nextcloud-aio` in order to create the network with ipv6-support. However if it finds the network and its value `EnableIPv6` is set to false, make sure to follow https://github.com/nextcloud/all-in-one/discussions/4989 in order to recreate the network and enable ipv6 for it.
## Docker Desktop (Windows and macOS)
On Windows and macOS which use Docker Desktop, you need to go into the settings, and select `Docker Engine`. There you should see the currently used daemon.json file.
First of all upgrade your docker desktop installation to v4.32.0 or higher.
Then, on Windows and macOS which use Docker Desktop, you need to go into the settings, and select `Docker Engine`. There you should see the currently used daemon.json file.
1. You need to now adjust this json file by setting the `ipv6` key to `true` and the `fixed-cidr-v6` key to your IPv6 subnet. In this example we are setting it to `fd12:3456:789a:1::/64`. Additionally set `experimental` to `true` and `ip6tables` to `true` as well.
1. You need to now adjust this json file:
```
"ipv6": true,
"fixed-cidr-v6": "fd12:3456:789a:1::/64",
"experimental": true,
"ip6tables": true
"default-network-opts": {"bridge":{"com.docker.network.enable_ipv6":"true"}}
```
2. Add these values to the json and make sure to keep the other currently values and that you don't see `Unexpected token in JSON at position ...` before attempting to restart by clicking on `Apply & restart`.
3. Make sure that ipv6 is enabled for the internal `nextcloud-aio` network by running `docker network inspect nextcloud-aio`. On a new instance, this command should return that it did not find a network with this name. Then you can run `docker network create --subnet="fd12:3456:789a:2::/64" --driver bridge --ipv6 nextcloud-aio` in order to create the network with ipv6-support. However if it finds the network and its value `EnableIPv6` is set to false, make sure to follow https://github.com/nextcloud/all-in-one/discussions/2045 in order to recreate the network and enable ipv6 for it.
3. Make sure that ipv6 is enabled for the internal `nextcloud-aio` network by running `sudo docker network inspect nextcloud-aio | grep EnableIPv6`. On a new instance, this command should return that it did not find a network with this name. Then you can run `sudo docker network create nextcloud-aio` in order to create the network with ipv6-support. However if it finds the network and its value `EnableIPv6` is set to false, make sure to follow https://github.com/nextcloud/all-in-one/discussions/4989 in order to recreate the network and enable ipv6 for it.
---
**Note**: This is a copy of the original docker docs at https://docs.docker.com/config/daemon/ipv6/ which apparently are not correct. However experimental is set to true which the ip6tables feature needs. Thus it will not get included into the official docs. However it is needed to make it work in our testing.
**Note**: This is a copy of the original docker docs at https://docs.docker.com/config/daemon/ipv6/ which apparently are not correct.

View File

@@ -9,11 +9,29 @@ You can run AIO with docker rootless by following the steps below.
1. If you need ipv6 support, you should enable it by following https://github.com/nextcloud/all-in-one/blob/main/docker-ipv6-support.md.
1. Do not forget to set the mentioned environmental variables `PATH` and `DOCKER_HOST` and in best case add them to your `~/.bashrc` file as shown!
1. Also do not forget to run `loginctl enable-linger USERNAME` (and substitute USERNAME with the correct one) in order to make sure that user services are automatically started after every reboot.
1. Expose the privileged ports by following https://docs.docker.com/engine/security/rootless/#exposing-privileged-ports. (`sudo setcap cap_net_bind_service=ep $(which rootlesskit); systemctl --user restart docker`)
1. Expose the privileged ports by following https://docs.docker.com/engine/security/rootless/#exposing-privileged-ports. (`sudo setcap cap_net_bind_service=ep $(which rootlesskit); systemctl --user restart docker`). If you require the correct source IP you must expose them via `/etc/sysctl.conf`, [see note below](#note-regarding-docker-network-driver).
1. Use the official AIO startup command but use `--volume $XDG_RUNTIME_DIR/docker.sock:/var/run/docker.sock:ro` instead of `--volume /var/run/docker.sock:/var/run/docker.sock:ro` and also add `--env WATCHTOWER_DOCKER_SOCKET_PATH=$XDG_RUNTIME_DIR/docker.sock` to the initial container startup (which is needed for mastercontainer updates to work correctly). When you are using Portainer to deploy AIO, the variable `$XDG_RUNTIME_DIR` is not available. In this case, it is necessary to manually add the path (e.g. `/run/user/1000/docker.sock`) to the Docker compose file to replace the `$XDG_RUNTIME_DIR` variable. If you are not sure how to get the path, you can run on the host: `echo $XDG_RUNTIME_DIR`.
1. Now everything should work like without docker rootless. You can consider using docker-compose for this or running it behind a reverse proxy. Basically the only thing that needs to be adjusted always in the startup command or compose.yaml file (after installing docker rootles) are things that are mentioned in point 3.
1. ⚠️ **Important:** Please read through all notes below!
**Please note:** All files outside the containers get created, written to and accessed as the user that is running the docker daemon or a subuid of it. So for the built-in backup to work you need to allow this user to write to the target directory. E.g. with `sudo chown -R USERNAME:GROUPNAME /mnt/backup`. The same applies when changing Nextcloud's datadir. E.g. `sudo chown -R USERNAME:GROUPNAME /mnt/ncdata`. When you want to use the NEXTCLOUD_MOUNT option for local external storage, you need to adjust the permissions of the chosen folders to be accessible/writeable by the userid `100032:100032` (if running `grep ^$(whoami): /etc/subuid` as the user that is running the docker daemon returns 100000 as first value).
### Note regarding sudo in the documentation
Almost all commands in this project's documentation use `sudo docker ...`. Since `sudo` is not needed in case of docker rootless, you simply remove `sudo` from the commands and they should work.
⚠️ **Additional note:** Almost all commands in this project's documentation use `sudo docker ...`. Since `sudo` is not needed in case of docker rootless, you simply remove `sudo` from the commands and they should work.
### Note regarding permissions
All files outside the containers get created, written to and accessed as the user that is running the docker daemon or a subuid of it. So for the built-in backup to work you need to allow this user to write to the target directory. E.g. with `sudo chown -R USERNAME:GROUPNAME /mnt/backup`. The same applies when changing Nextcloud's datadir. E.g. `sudo chown -R USERNAME:GROUPNAME /mnt/ncdata`. When you want to use the NEXTCLOUD_MOUNT option for local external storage, you need to adjust the permissions of the chosen folders to be accessible/writeable by the userid `100032:100032` (if running `grep ^$(whoami): /etc/subuid` as the user that is running the docker daemon returns 100000 as first value).
### Note regarding docker network driver
By default rootless docker uses the `slirp4netns` IP driver and the `builtin` port driver. As mentioned in [the documentation](https://docs.docker.com/engine/security/rootless/#networking-errors), this combination doesn't provide "Source IP propagation". This means that Apache and Nextcloud will see all connections as coming from the docker gateway (e.g 172.19.0.1), which can lead to the Nextcloud brute force protection blocking all connection attempts. To expose the correct source IP, you will need to configure docker to also use `slirp4netns` as the port driver (see also [this guide](https://rootlesscontaine.rs/getting-started/docker/#changing-the-port-forwarder)).
As stated in the documentation, this change will likely lead to decreased network throughput. You should test this by trying to transfer a large file after completing your setup and revert back to the `builtin` port driver if the throughput is too slow.
* Add `net.ipv4.ip_unprivileged_port_start=80` to `/etc/sysctl.conf`. Editing this file requires root privileges. (using capabilities doesn't work here; see [this issue](https://github.com/rootless-containers/slirp4netns/issues/251#issuecomment-761415404)).
* Run `sudo sysctl --system` to propagate the change.
* Create `~/.config/systemd/user/docker.service.d/override.conf`
with the following content:
```
[Service]
Environment="DOCKERD_ROOTLESS_ROOTLESSKIT_PORT_DRIVER=slirp4netns"
```
* Restart the docker daemon
```
systemctl --user restart docker
```

View File

@@ -134,6 +134,7 @@ services:
- TALK_PORT=${TALK_PORT}
- IMAGINARY_ENABLED=${IMAGINARY_ENABLED}
- IMAGINARY_HOST=nextcloud-aio-imaginary
- CLAMAV_MAX_SIZE=${APACHE_MAX_SIZE}
- PHP_UPLOAD_LIMIT=${NEXTCLOUD_UPLOAD_LIMIT}
- PHP_MEMORY_LIMIT=${NEXTCLOUD_MEMORY_LIMIT}
- FULLTEXTSEARCH_ENABLED=${FULLTEXTSEARCH_ENABLED}
@@ -150,7 +151,6 @@ services:
- FULLTEXTSEARCH_PASSWORD=${FULLTEXTSEARCH_PASSWORD}
- REMOVE_DISABLED_APPS=${REMOVE_DISABLED_APPS}
- APACHE_PORT=${APACHE_PORT}
- APACHE_IP_BINDING=${APACHE_IP_BINDING}
- IMAGINARY_SECRET=${IMAGINARY_SECRET}
stop_grace_period: 600s
restart: unless-stopped
@@ -285,6 +285,7 @@ services:
- "3310"
environment:
- TZ=${TIMEZONE}
- MAX_SIZE=${NEXTCLOUD_UPLOAD_LIMIT}
- CLAMD_STARTUP_TIMEOUT=90
volumes:
- nextcloud_aio_clamav:/var/lib/clamav:rw
@@ -388,13 +389,6 @@ volumes:
nextcloud_aio_nextcloud_data:
name: nextcloud_aio_nextcloud_data
# Inspired by https://github.com/mailcow/mailcow-dockerized/blob/master/docker-compose.yml
networks:
nextcloud-aio:
name: nextcloud-aio
driver: bridge
enable_ipv6: true
ipam:
driver: default
config:
- subnet: ${IPV6_NETWORK}

View File

@@ -19,9 +19,9 @@ ONLYOFFICE_ENABLED="no" # Setting this to "yes" (with quotes) enables t
TALK_ENABLED="no" # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically.
TALK_RECORDING_ENABLED="no" # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically.
APACHE_IP_BINDING=0.0.0.0 # This can be changed to e.g. 127.0.0.1 if you want to run AIO behind a web server or reverse proxy (like Apache, Nginx, Cloudflare Tunnel and else) and if that is running on the same host and using localhost to connect
APACHE_IP_BINDING=0.0.0.0 # This can be changed to e.g. 127.0.0.1 if you want to run AIO behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else) and if that is running on the same host and using localhost to connect
APACHE_MAX_SIZE=10737418240 # This needs to be an integer and in sync with NEXTCLOUD_UPLOAD_LIMIT
APACHE_PORT=443 # Changing this to a different value than 443 will allow you to run it behind a web server or reverse proxy (like Apache, Nginx, Cloudflare Tunnel and else).
APACHE_PORT=443 # Changing this to a different value than 443 will allow you to run it behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else).
COLLABORA_DICTIONARIES="de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru" # You can change this in order to enable other dictionaries for collabora
COLLABORA_SECCOMP_POLICY=--o:security.seccomp=true # Changing the value to false allows to disable the seccomp feature of the Collabora container.
INSTALL_LATEST_MAJOR=no # Setting this to yes will install the latest Major Nextcloud version upon the first installation
@@ -37,4 +37,3 @@ NEXTCLOUD_UPLOAD_LIMIT=10G # This allows to change the upload limit of
REMOVE_DISABLED_APPS=yes # Setting this to no keep Nextcloud apps that are disabled via their switch and not uninstall them if they should be installed in Nextcloud.
TALK_PORT=3478 # This allows to adjust the port that the talk container is using.
UPDATE_NEXTCLOUD_APPS="no" # When setting to "yes" (with quotes), it will automatically update all installed Nextcloud apps upon container startup on saturdays.
IPV6_NETWORK=fd12:3456:789a:2::/64 # IPv6 subnet to use

View File

@@ -82,8 +82,8 @@ sed -i 's|APACHE_MAX_SIZE=|APACHE_MAX_SIZE=10737418240 # This needs to
sed -i 's|NEXTCLOUD_MAX_TIME=|NEXTCLOUD_MAX_TIME=3600 # This allows to change the upload time limit of the Nextcloud container|' sample.conf
sed -i 's|NEXTCLOUD_TRUSTED_CACERTS_DIR=|NEXTCLOUD_TRUSTED_CACERTS_DIR=/usr/local/share/ca-certificates/my-custom-ca # Nextcloud container will trust all the Certification Authorities, whose certificates are included in the given directory.|' sample.conf
sed -i 's|UPDATE_NEXTCLOUD_APPS=|UPDATE_NEXTCLOUD_APPS="no" # When setting to "yes" (with quotes), it will automatically update all installed Nextcloud apps upon container startup on saturdays.|' sample.conf
sed -i 's|APACHE_PORT=|APACHE_PORT=443 # Changing this to a different value than 443 will allow you to run it behind a web server or reverse proxy (like Apache, Nginx, Cloudflare Tunnel and else).|' sample.conf
sed -i 's|APACHE_IP_BINDING=|APACHE_IP_BINDING=0.0.0.0 # This can be changed to e.g. 127.0.0.1 if you want to run AIO behind a web server or reverse proxy (like Apache, Nginx, Cloudflare Tunnel and else) and if that is running on the same host and using localhost to connect|' sample.conf
sed -i 's|APACHE_PORT=|APACHE_PORT=443 # Changing this to a different value than 443 will allow you to run it behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else).|' sample.conf
sed -i 's|APACHE_IP_BINDING=|APACHE_IP_BINDING=0.0.0.0 # This can be changed to e.g. 127.0.0.1 if you want to run AIO behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else) and if that is running on the same host and using localhost to connect|' sample.conf
sed -i 's|TALK_PORT=|TALK_PORT=3478 # This allows to adjust the port that the talk container is using.|' sample.conf
sed -i 's|NC_DOMAIN=|NC_DOMAIN=yourdomain.com # TODO! Needs to be changed to the domain that you want to use for Nextcloud.|' sample.conf
sed -i 's|NEXTCLOUD_PASSWORD=|NEXTCLOUD_PASSWORD= # TODO! This is the password of the initially created Nextcloud admin with username "admin".|' sample.conf
@@ -95,7 +95,6 @@ sed -i 's|NEXTCLOUD_ADDITIONAL_PHP_EXTENSIONS=|NEXTCLOUD_ADDITIONAL_PHP_EXTENSIO
sed -i 's|INSTALL_LATEST_MAJOR=|INSTALL_LATEST_MAJOR=no # Setting this to yes will install the latest Major Nextcloud version upon the first installation|' sample.conf
sed -i 's|REMOVE_DISABLED_APPS=|REMOVE_DISABLED_APPS=yes # Setting this to no keep Nextcloud apps that are disabled via their switch and not uninstall them if they should be installed in Nextcloud.|' sample.conf
sed -i 's|=$|= # TODO! This needs to be a unique and good password!|' sample.conf
echo 'IPV6_NETWORK=fd12:3456:789a:2::/64 # IPv6 subnet to use' >> sample.conf
grep '# TODO!' sample.conf > todo.conf
grep -v '# TODO!\|_ENABLED' sample.conf > temp.conf
@@ -139,16 +138,9 @@ done
cat << NETWORK >> containers.yml
# Inspired by https://github.com/mailcow/mailcow-dockerized/blob/master/docker-compose.yml
networks:
nextcloud-aio:
name: nextcloud-aio
driver: bridge
enable_ipv6: true
ipam:
driver: default
config:
- subnet: \${IPV6_NETWORK}
NETWORK
cat containers.yml > latest.yml

View File

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

View File

@@ -25,7 +25,7 @@ Then run:
```
helm repo add nextcloud-aio https://nextcloud.github.io/all-in-one/
helm install my-release nextcloud-aio/nextcloud-aio-helm-chart -f values.yaml
helm install nextcloud-aio nextcloud-aio/nextcloud-aio-helm-chart -f values.yaml
```
And after a while, everything should be set up.

View File

@@ -66,7 +66,7 @@ spec:
value: nextcloud-aio-talk
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-apache:20240701_074701-latest"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-apache:20240725_074330"
name: nextcloud-aio-apache
ports:
- containerPort: {{ .Values.APACHE_PORT }}

View File

@@ -57,9 +57,11 @@ spec:
- env:
- name: CLAMD_STARTUP_TIMEOUT
value: "90"
- name: MAX_SIZE
value: "{{ .Values.NEXTCLOUD_UPLOAD_LIMIT }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-clamav:20240701_074701-latest"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-clamav:20240725_074330"
name: nextcloud-aio-clamav
ports:
- containerPort: 3310

View File

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

View File

@@ -70,7 +70,7 @@ spec:
value: nextcloud
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-postgresql:20240701_074701-latest"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-postgresql:20240725_074330"
name: nextcloud-aio-database
ports:
- containerPort: 5432

View File

@@ -60,7 +60,7 @@ spec:
value: basic
- name: xpack.security.enabled
value: "false"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-fulltextsearch:20240701_074701-latest"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-fulltextsearch:20240725_074330"
name: nextcloud-aio-fulltextsearch
ports:
- containerPort: 9200

View File

@@ -28,7 +28,7 @@ spec:
value: "{{ .Values.IMAGINARY_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-imaginary:20240701_074701-latest"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-imaginary:20240725_074330"
name: nextcloud-aio-imaginary
ports:
- containerPort: 9000

View File

@@ -1,4 +1,4 @@
{{- if ne .Values.NAMESPACE "default" }}
{{- if and (ne .Values.NAMESPACE "default") (ne .Values.NAMESPACE_DISABLED "yes") }}
apiVersion: v1
kind: Namespace
metadata:

View File

@@ -0,0 +1,20 @@
{{- if eq .Values.NETWORK_POLICY_ENABLED "yes" }}
# https://github.com/ahmetb/kubernetes-network-policy-recipes/blob/master/04-deny-traffic-from-other-namespaces.md
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
namespace: "{{ .Values.NAMESPACE }}"
name: nextcloud-aio-deny-from-other-namespaces
spec:
podSelector:
matchLabels:
policyTypes:
- Ingress
- Egress
ingress:
- from:
- podSelector: {}
egress:
- to:
- podSelector: {}
{{- end }}

View File

@@ -99,6 +99,8 @@ spec:
value: "{{ .Values.CLAMAV_ENABLED }}"
- name: CLAMAV_HOST
value: nextcloud-aio-clamav
- name: CLAMAV_MAX_SIZE
value: "{{ .Values.APACHE_MAX_SIZE }}"
- name: COLLABORA_ENABLED
value: "{{ .Values.COLLABORA_ENABLED }}"
- name: COLLABORA_HOST
@@ -173,7 +175,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:20240701_074701-latest"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-nextcloud:20240725_074330"
name: nextcloud-aio-nextcloud
ports:
- containerPort: 9000

View File

@@ -57,7 +57,7 @@ spec:
value: nextcloud-aio-redis
- name: REDIS_HOST_PASSWORD
value: "{{ .Values.REDIS_PASSWORD }}"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-notify-push:20240701_074701-latest"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-notify-push:20240725_074330"
name: nextcloud-aio-notify-push
ports:
- containerPort: 7867

View File

@@ -48,7 +48,7 @@ spec:
value: "{{ .Values.ONLYOFFICE_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-onlyoffice:20240701_074701-latest"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-onlyoffice:20240725_074330"
name: nextcloud-aio-onlyoffice
ports:
- containerPort: 80

View File

@@ -43,7 +43,7 @@ spec:
value: "{{ .Values.REDIS_PASSWORD }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-redis:20240701_074701-latest"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-redis:20240725_074330"
name: nextcloud-aio-redis
ports:
- containerPort: 6379

View File

@@ -42,7 +42,7 @@ spec:
value: "{{ .Values.TURN_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-talk:20240701_074701-latest"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-talk:20240725_074330"
name: nextcloud-aio-talk
ports:
- containerPort: {{ .Values.TALK_PORT }}

View File

@@ -32,7 +32,7 @@ spec:
value: "{{ .Values.RECORDING_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-talk-recording:20240701_074701-latest"
image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/aio-talk-recording:20240725_074330"
name: nextcloud-aio-talk-recording
ports:
- containerPort: 1234

View File

@@ -28,7 +28,7 @@ sed -i 's|^|export |' /tmp/sample.conf
source /tmp/sample.conf
rm /tmp/sample.conf
sed -i '/OVERWRITEHOST/d' latest.yml
sed -i "s|:latest$|:$DOCKER_TAG-latest|" latest.yml
sed -i "s|:latest$|:$DOCKER_TAG|" latest.yml
sed -i "s|\${APACHE_IP_BINDING}:||" latest.yml
sed -i '/APACHE_IP_BINDING/d' latest.yml
sed -i "s|\${APACHE_PORT}:\${APACHE_PORT}/|$APACHE_PORT:$APACHE_PORT/|" latest.yml
@@ -246,7 +246,7 @@ find ./ \( -not -name '*service.yaml' -name '*.yaml' \) -exec sed -i "/^status:/
# shellcheck disable=SC1083
find ./ \( -not -name '*persistentvolumeclaim.yaml' -name '*.yaml' \) -exec sed -i "/resources:/d" \{} \;
# shellcheck disable=SC1083
find ./ -name "*namespace.yaml" -exec sed -i "1i\\{{- if ne .Values.NAMESPACE \"default\" }}" \{} \;
find ./ -name "*namespace.yaml" -exec sed -i "1i\\{{- if and \(ne .Values.NAMESPACE \"default\"\) \(ne .Values.NAMESPACE_DISABLED \"yes\"\) }}" \{} \;
# shellcheck disable=SC1083
find ./ -name "*namespace.yaml" -exec sed -i "$ a {{- end }}" \{} \;
# shellcheck disable=SC1083
@@ -290,6 +290,8 @@ cat << EOL > /tmp/additional.config
value: "{{ .Values.SERVERINFO_TOKEN }}"
- name: NEXTCLOUD_DEFAULT_QUOTA
value: "{{ .Values.NEXTCLOUD_DEFAULT_QUOTA }}"
- name: NEXTCLOUD_MAINTENANCE_WINDOW
value: "{{ .Values.NEXTCLOUD_MAINTENANCE_WINDOW }}"
EOL
# shellcheck disable=SC1083
find ./ -name '*nextcloud-deployment.yaml' -exec sed -i "/^.*\- env:/r /tmp/additional.config" \{} \;
@@ -315,6 +317,29 @@ find ./ -name '*talk-deployment.yaml' -exec sed -i "/^.*\- env:/r /tmp/additiona
# shellcheck disable=SC1083
find ./ -name '*deployment.yaml' -exec sed -i '/image: nextcloud/s/$/"/;s|image: nextcloud/|image: "{{ .Values.IMAGE_MIRROR_PREFIX }}{{ .Values.NEXTCLOUD_IMAGE_ORG }}/|;' \{} \;
cat << EOL > templates/nextcloud-aio-networkpolicy.yaml
{{- if eq .Values.NETWORK_POLICY_ENABLED "yes" }}
# https://github.com/ahmetb/kubernetes-network-policy-recipes/blob/master/04-deny-traffic-from-other-namespaces.md
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
namespace: "{{ .Values.NAMESPACE }}"
name: nextcloud-aio-deny-from-other-namespaces
spec:
podSelector:
matchLabels:
policyTypes:
- Ingress
- Egress
ingress:
- from:
- podSelector: {}
egress:
- to:
- podSelector: {}
{{- end }}
EOL
cd ../
mkdir -p ../helm-chart/
rm latest/Chart.yaml
@@ -336,7 +361,6 @@ sed -i 's|= |: |' /tmp/sample.conf
sed -i '/^NEXTCLOUD_DATADIR/d' /tmp/sample.conf
sed -i '/^APACHE_IP_BINDING/d' /tmp/sample.conf
sed -i '/^NEXTCLOUD_MOUNT/d' /tmp/sample.conf
sed -i '/^IPV6_NETWORK/d' /tmp/sample.conf
sed -i '/_ENABLED.*/s/ yes / "yes" /' /tmp/sample.conf
sed -i '/_ENABLED.*/s/ no / "no" /' /tmp/sample.conf
sed -i 's|^NEXTCLOUD_TRUSTED_CACERTS_DIR: .*|NEXTCLOUD_TRUSTED_CACERTS_DIR: # Setting this to any value allows to automatically import root certificates into the Nextcloud container|' /tmp/sample.conf
@@ -355,12 +379,15 @@ sed -i "s|NEXTCLOUD_DATA_STORAGE_SIZE: 1Gi|NEXTCLOUD_DATA_STORAGE_SIZE: 5Gi|" /t
cat << ADDITIONAL_CONFIG >> /tmp/sample.conf
NAMESPACE: default # By changing this, you can adjust the namespace of the installation which allows to install multiple instances on one kubernetes cluster
NAMESPACE_DISABLED: "no" # By setting this to "yes", you can disabled the creation of the namespace so that you can use a pre-created one
NETWORK_POLICY_ENABLED: "no" # By setting this to "yes", you can enable a network policy that limits network access to the same namespace. ⚠️ Attention: this breaks if you use an ingress!!! So it should be disabled if you do so!
SUBSCRIPTION_KEY: # This allows to set the Nextcloud Enterprise key via ENV
SERVERINFO_TOKEN: # This allows to set the serverinfo app token for monitoring your Nextcloud via the serverinfo app
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
NEXTCLOUD_MAINTENANCE_WINDOW: # Allows to define the maintenance window for Nextcloud. See https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/background_jobs_configuration.html#parameters for possible values
SMTP_HOST: # (empty by default): The hostname of the SMTP server.
SMTP_SECURE: # (empty by default): Set to 'ssl' to use SSL, or 'tls' to use STARTTLS.
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

@@ -20,7 +20,7 @@ TALK_ENABLED: "no" # Setting this to "yes" (with quotes) enables the op
TALK_RECORDING_ENABLED: "no" # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically.
APACHE_MAX_SIZE: "10737418240" # This needs to be an integer and in sync with NEXTCLOUD_UPLOAD_LIMIT
APACHE_PORT: 443 # Changing this to a different value than 443 will allow you to run it behind a web server or reverse proxy (like Apache, Nginx, Cloudflare Tunnel and else).
APACHE_PORT: 443 # Changing this to a different value than 443 will allow you to run it behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else).
COLLABORA_DICTIONARIES: de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru # You can change this in order to enable other dictionaries for collabora
COLLABORA_SECCOMP_POLICY: --o:security.seccomp=true # Changing the value to false allows to disable the seccomp feature of the Collabora container.
INSTALL_LATEST_MAJOR: no # Setting this to yes will install the latest Major Nextcloud version upon the first installation
@@ -48,6 +48,8 @@ ONLYOFFICE_STORAGE_SIZE: 1Gi # You can change the size of the onlyoffice v
REDIS_STORAGE_SIZE: 1Gi # You can change the size of the redis volume that default to 1Gi with this value
NAMESPACE: default # By changing this, you can adjust the namespace of the installation which allows to install multiple instances on one kubernetes cluster
NAMESPACE_DISABLED: "no" # By setting this to "yes", you can disabled the creation of the namespace so that you can use a pre-created one
NETWORK_POLICY_ENABLED: "no" # By setting this to "yes", you can enable a network policy that limits network access to the same namespace. ⚠️ Attention: this breaks if you use an ingress!!! So it should be disabled if you do so!
SUBSCRIPTION_KEY: # This allows to set the Nextcloud Enterprise key via ENV
SERVERINFO_TOKEN: # This allows to set the serverinfo app token for monitoring your Nextcloud via the serverinfo app
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'

3
php/.gitignore vendored
View File

@@ -1,3 +0,0 @@
/php/data/configuration.json
/php/data/containers.json

8
php/.idea/.gitignore generated vendored
View File

@@ -1,8 +0,0 @@
# Default ignored files
/shelf/
/workspace.xml
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml
# Editor-based HTTP Client requests
/httpRequests/

34
php/.idea/aio.iml generated
View File

@@ -1,34 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" packagePrefix="AIO\" />
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/http-server-middleware" />
<excludeFolder url="file://$MODULE_DIR$/vendor/guzzlehttp/psr7" />
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/log" />
<excludeFolder url="file://$MODULE_DIR$/vendor/guzzlehttp/guzzle" />
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/http-client" />
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/http-message" />
<excludeFolder url="file://$MODULE_DIR$/vendor/guzzlehttp/promises" />
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/http-factory" />
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/container" />
<excludeFolder url="file://$MODULE_DIR$/vendor/http-interop/http-factory-guzzle" />
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/http-server-handler" />
<excludeFolder url="file://$MODULE_DIR$/vendor/slim/slim" />
<excludeFolder url="file://$MODULE_DIR$/vendor/ralouphie/getallheaders" />
<excludeFolder url="file://$MODULE_DIR$/vendor/nikic/fast-route" />
<excludeFolder url="file://$MODULE_DIR$/vendor/composer" />
<excludeFolder url="file://$MODULE_DIR$/vendor/opis/closure" />
<excludeFolder url="file://$MODULE_DIR$/vendor/php-di/slim-bridge" />
<excludeFolder url="file://$MODULE_DIR$/vendor/php-di/invoker" />
<excludeFolder url="file://$MODULE_DIR$/vendor/php-di/php-di" />
<excludeFolder url="file://$MODULE_DIR$/vendor/php-di/phpdoc-reader" />
<excludeFolder url="file://$MODULE_DIR$/vendor/slim/twig-view" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-mbstring" />
<excludeFolder url="file://$MODULE_DIR$/vendor/twig/twig" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-ctype" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

8
php/.idea/modules.xml generated
View File

@@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/aio.iml" filepath="$PROJECT_DIR$/.idea/aio.iml" />
</modules>
</component>
</project>

34
php/.idea/php.xml generated
View File

@@ -1,34 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="PhpIncludePathManager">
<include_path>
<path value="$PROJECT_DIR$/vendor/psr/http-server-middleware" />
<path value="$PROJECT_DIR$/vendor/guzzlehttp/psr7" />
<path value="$PROJECT_DIR$/vendor/psr/log" />
<path value="$PROJECT_DIR$/vendor/guzzlehttp/guzzle" />
<path value="$PROJECT_DIR$/vendor/psr/http-client" />
<path value="$PROJECT_DIR$/vendor/psr/http-message" />
<path value="$PROJECT_DIR$/vendor/guzzlehttp/promises" />
<path value="$PROJECT_DIR$/vendor/psr/http-factory" />
<path value="$PROJECT_DIR$/vendor/psr/container" />
<path value="$PROJECT_DIR$/vendor/http-interop/http-factory-guzzle" />
<path value="$PROJECT_DIR$/vendor/psr/http-server-handler" />
<path value="$PROJECT_DIR$/vendor/slim/slim" />
<path value="$PROJECT_DIR$/vendor/ralouphie/getallheaders" />
<path value="$PROJECT_DIR$/vendor/nikic/fast-route" />
<path value="$PROJECT_DIR$/vendor/composer" />
<path value="$PROJECT_DIR$/vendor/opis/closure" />
<path value="$PROJECT_DIR$/vendor/php-di/slim-bridge" />
<path value="$PROJECT_DIR$/vendor/php-di/invoker" />
<path value="$PROJECT_DIR$/vendor/php-di/php-di" />
<path value="$PROJECT_DIR$/vendor/php-di/phpdoc-reader" />
<path value="$PROJECT_DIR$/vendor/slim/twig-view" />
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-mbstring" />
<path value="$PROJECT_DIR$/vendor/twig/twig" />
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-ctype" />
</include_path>
</component>
<component name="PhpProjectSharedConfiguration" php_language_level="7.4">
<option name="suggestChangeDefaultLanguageLevel" value="false" />
</component>
</project>

6
php/.idea/vcs.xml generated
View File

@@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/.." vcs="Git" />
</component>
</project>

View File

@@ -4,13 +4,60 @@ This is the code for the PHP Docker controller.
## How to run
Running this locally requires Docker Engine on the same machine.
If this is the case, just execute the following command:
Running this locally requires :
```
composer install --no-dev
cd public/
php -S 0.0.0.0:8080
### 1. Install the development environment
This project uses Composer as dependency management software. It is very similar to NPM.
The command to install all dependencies is:
```bash
composer install
```
You can then access the web interface at `localhost:8080`.
### 2. Access to docker socket
The `root` user has all privileges including access to the Docker socket.
But **it is not recommended to launch the local instance with full privileges**, consider the docker group for docker access without being `root`.
See https://docs.docker.com/engine/install/linux-postinstall/#manage-docker-as-a-non-root-user
### 3. Run a `nextcloud-aio-mastercontainer` container
This application manages containers, including its own container.
So you need to run a `nextcloud-aio-mastercontainer` container for the application to work properly.
Here is a command to quickly launch a container :
```bash
docker run \
--rm \
--name nextcloud-aio-mastercontainer \
--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config \
nextcloud/all-in-one:latest
```
### 4. Start your server
With this command you will launch the server:
```bash
# Make sure to launch this command with a user having access to the docker socket.
SKIP_DOMAIN_VALIDATION=true composer run dev
```
You can then access the web interface at http://localhost:8080.
Note: You can restart the server by preceding the command with other environment variables.
## Composer routine
| Command | Description |
|-----------------------------------------|----------------------------------------|
| `composer run dev` | Starts the development server |
| `composer run psalm` | Run Psalm static analysis |
| `composer run psalm:update-baseline` | Run Psalm with `--update-baseline` arg |
| `composer run lint` | Run PHP Syntax check |
| `composer run lint:twig` | Run Twig Syntax check |
| `composer run php-deprecation-detector` | Run PHP Deprecation Detector |

View File

@@ -1,6 +1,6 @@
{
"autoload": {
"psr-4": {
"psr-4": {
"AIO\\": ["src/"]
}
},
@@ -18,10 +18,20 @@
"slim/csrf": "^1.3",
"ext-apcu": "*"
},
"require-dev": {
"sserbin/twig-linter": "@dev",
"vimeo/psalm": "^5.25",
"wapmorgan/php-deprecation-detector": "dev-master"
},
"scripts": {
"dev": [
"Composer\\Config::disableProcessTimeout",
"php -S localhost:8080 -t public"
],
"psalm": "psalm --threads=1",
"psalm:update-baseline": "psalm --threads=1 --update-baseline",
"lint": "find . -name \\*.php -not -path './vendor/*' -exec php -l {} \\;",
"php-deprecation-detector": "find . -name \\*.php -not -path './vendor/*' -exec phpdd scan {} -n -t 8.3 \\;"
"psalm:update-baseline": "psalm --threads=1 --monochrome --no-progress --output-format=text --update-baseline",
"lint": "php -l src/*.php src/**/*.php public/index.php",
"lint:twig": "twig-linter lint ./templates",
"php-deprecation-detector": "phpdd scan -n -t 8.3 src/*.php src/**/*.php public/index.php"
}
}

2087
php/composer.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -16,7 +16,7 @@
</header>
<div class="content">
<h1>Nextcloud AIO v9.2.0</h1>
<h1>Nextcloud AIO v9.4.1</h1>
{# Add 2nd tab warning #}
<script type="text/javascript" src="second-tab-warning.js"></script>
@@ -95,9 +95,9 @@
{{ 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 <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>
AIO is currently in "normal mode" which means that it handles the TLS proxying itself. This also means that it cannot be installed behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else). If you want to run AIO behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else), see the <strong><a href="https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md">reverse proxy documentation</a></strong>. Advice: have a detailed look at the changed docker run command for AIO.<br><br>
{% 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>
AIO is currently in "reverse proxy mode" which means that it can be installed behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else) and does not do the TLS proxying itself.<br><br>
{% endif %}
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 %}

View File

@@ -78,15 +78,15 @@ Included are:
| ![image](https://user-images.githubusercontent.com/42591237/232849125-30e24c85-bfd7-465e-8310-9b69cd9666fe.png) | ![image](https://user-images.githubusercontent.com/42591237/232849036-28c38d9a-3151-4cf1-97a5-4d94c1f0eba0.png) |
## How to use this?
The following instructions are meant for installations without a web server or reverse proxy (like Apache, Nginx, Cloudflare Tunnel and else) already being in place. If you want to run AIO behind a web server or reverse proxy (like Apache, Nginx, Cloudflare Tunnel and else), see the [reverse proxy documentation](https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md). Also, the instructions below are especially meant for Linux. For macOS see [this](#how-to-run-aio-on-macos), for Windows see [this](#how-to-run-aio-on-windows) and for Synology see [this](#how-to-run-aio-on-synology-dsm).
1. Install Docker on your Linux installation by following the official documentation: https://docs.docker.com/engine/install/#server. The easiest way is installing it by **using the convenience script**:
The following instructions are meant for installations without a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else) already being in place. If you want to run AIO behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else), see the [reverse proxy documentation](https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md). Also, the instructions below are especially meant for Linux. For macOS see [this](#how-to-run-aio-on-macos), for Windows see [this](#how-to-run-aio-on-windows) and for Synology see [this](#how-to-run-aio-on-synology-dsm).
1. Install Docker on your Linux installation by following the official documentation: https://docs.docker.com/engine/install/#supported-platforms. The easiest way is installing it by **using the convenience script**:
```sh
curl -fsSL https://get.docker.com | sudo sh
```
1. If you need ipv6 support, you should enable it by following https://github.com/nextcloud/all-in-one/blob/main/docker-ipv6-support.md.
2. Run the command below in order to start the container on Linux and without a web server or reverse proxy (like Apache, Nginx, Cloudflare Tunnel and else) already in place:
2. Run the command below in order to start the container on Linux and without a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else) already in place:
```
# For Linux and without a web server or reverse proxy (like Apache, Nginx, Cloudflare Tunnel and else) already in place:
# For Linux and without a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else) already in place:
sudo docker run \
--init \
--sig-proxy=false \
@@ -324,7 +324,7 @@ If your Nextcloud is running and you are logged in as admin in your Nextcloud, y
**⚠️ Please note:** Editing the configuration.json manually and making a mistake may break your instance so please create a backup first!
If you set up a new AIO instance, you need to enter a domain. Currently there is no way to change this domain afterwards from the AIO interface. So in order to change it, you need to edit the configuration.json manually using `sudo docker run -it --rm --volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config:rw alpine sh -c "apk add --no-cache nano && nano /mnt/docker-aio-config/data/configuration.json"`, substitute each occurrence of your old domain with your new domain and save and write out the file. Afterwards restart your containers from the AIO interface and everything should work as expected if the new domain is correctly configured.<br>
If you are running AIO behind a web server or reverse proxy (like Apache, Nginx, Cloudflare Tunnel and else), you need to obviously also change the domain in your reverse proxy config.
If you are running AIO behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else), you need to obviously also change the domain in your reverse proxy config.
Additionally, after restarting the containers, you need to open the admin settings and update some values manually that cannot be changed automatically. Here is a list of some known places:
- `https://your-nc-domain.com/settings/admin/talk` for Turn/Stun server and Signaling Server if you enabled Talk via the AIO interface
@@ -629,7 +629,7 @@ By default, the Nextcloud container is confined and cannot access directories on
After using this option, please make sure to apply the correct permissions to the directories that you want to use in Nextcloud. E.g. `sudo chown -R 33:0 /mnt/your-drive-mountpoint` and `sudo chmod -R 750 /mnt/your-drive-mountpoint` should make it work on Linux when you have used `--env NEXTCLOUD_MOUNT="/mnt/"`. On Windows you could do this e.g. with `docker exec -it nextcloud-aio-nextcloud chown -R 33:0 /run/desktop/mnt/host/d/your-folder/` and `docker exec -it nextcloud-aio-nextcloud chmod -R 750 /run/desktop/mnt/host/d/your-folder/`.
You can then navigate to the apps management page, activate the external storage app, navigate to `https://your-nc-domain.com/settings/admin/externalstorages` and add a local external storage directory that will be accessible inside the container at the same place that you've entered. E.g. `/mnt/your-drive-mountpoint` will be mounted to `/mnt/your-drive-mountpoint` inside the container, etc.
You can then navigate to `https://your-nc-domain.com/settings/apps/disabled`, activate the external storage app, navigate to `https://your-nc-domain.com/settings/admin/externalstorages` and add a local external storage directory that will be accessible inside the container at the same place that you've entered. E.g. `/mnt/your-drive-mountpoint` will be mounted to `/mnt/your-drive-mountpoint` inside the container, etc.
Be aware though that these locations will not be covered by the built-in backup solution - but you can add further Docker volumes and host paths that you want to back up after the initial backup is done.

View File

@@ -1,12 +1,12 @@
# Reverse Proxy Documentation
**Note:** The maintainers of AIO noticed that this documentation is not easy. All contributions that improve this are very welcome!
**Note:** The maintainers of AIO noticed that this documentation could be improved to make it easier to follow. All contributions that improve this are very welcome!
A [reverse proxy](https://en.wikipedia.org/wiki/Reverse_proxy) is basically a web server that enables computers on the internet to access a service in a [private subnet](https://en.wikipedia.org/wiki/Private_network).
**Please note:** Publishing the AIO interface with a valid certificate to the public internet is **not** the goal of this documentation! Instead, the main goal is to publish Nextcloud with a valid certificate to the public internet which is **not** running inside the mastercontainer but in a different container! If you need a valid certificate for the AIO interface, see [point 5](#5-optional-get-a-valid-certificate-for-the-aio-interface).
In order to run Nextcloud behind a web server or reverse proxy (like Apache, Nginx, Cloudflare Tunnel and else), you need to specify the port that AIO's Apache container shall use, add a specific config to your web server or reverse proxy and modify the startup command a bit. All examples below will use port `11000` as example `APACHE_PORT` which will be exposed on the host to receive unencrypted HTTP traffic from the reverse proxy. **Advice:** If you need https between Nextcloud and the reverse proxy because it is running on a different server in the same network, simply add another reverse proxy to the chain that runs on the same server like AIO and takes care of https proxying (most likely via self-signed cert). Another option is to create a VPN between the server that runs AIO and the server that runs the reverse proxy which takes care of encrypting the connection.
In order to run Nextcloud behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else), you need to specify the port that AIO's Apache container shall use, add a specific config to your web server or reverse proxy and modify the startup command a bit. All examples below will use port `11000` as example `APACHE_PORT` which will be exposed on the host to receive unencrypted HTTP traffic from the reverse proxy. **Advice:** If you need https between Nextcloud and the reverse proxy because it is running on a different server in the same network, simply add another reverse proxy to the chain that runs on the same server like AIO and takes care of https proxying (most likely via self-signed cert). Another option is to create a VPN between the server that runs AIO and the server that runs the reverse proxy which takes care of encrypting the connection.
**Attention:** The process to run Nextcloud behind a reverse proxy consists of at least steps 1, 2 and 4:
1. **Configure the reverse proxy! See [point 1](#1-configure-the-reverse-proxy)**
@@ -120,6 +120,8 @@ Add this as a new Apache site config:
# Support big file uploads
LimitRequestBody 0
Timeout 86400
ProxyTimeout 86400
</VirtualHost>
```