Compare commits

..

176 Commits

Author SHA1 Message Date
Simon L
d9cf8de28d Merge pull request #3690 from nextcloud/enh/noid/helm-beta 2023-11-06 14:28:24 +01:00
Simon L
c99284a7c0 create helm-dev release
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-11-06 14:27:41 +01:00
Simon L
78cfe96845 Merge pull request #3689 from nextcloud/enh/noid/fix-kubernetes 2023-11-06 14:19:44 +01:00
Simon L
ce84eb7bfe fix dig inside kubernetes
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-11-06 14:16:54 +01:00
Simon L
713d155265 Merge pull request #3685 from nextcloud/enh/3679/fix-pi-hole 2023-11-05 20:46:00 +01:00
Simon L
1f9055063a fix detail
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-11-05 20:30:23 +01:00
Simon L
cdf24a032c Merge pull request #3686 from nextcloud/enh/3679/rm-docs 2023-11-05 20:28:30 +01:00
Simon L
e272f26f6f community containers - add docs how to remove containers
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-11-05 20:27:51 +01:00
Simon L
4614364f20 pi-hole does not like init
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-11-05 20:16:20 +01:00
Simon L
0f5f6c41e3 Merge pull request #3668 from nextcloud/dependabot/docker/Containers/fulltextsearch/elasticsearch-8.10.4 2023-11-05 20:11:23 +01:00
Simon L
94edf5f671 update some details in the RP docs
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-11-05 19:42:40 +01:00
Simon L
ffe5ba2a1b Merge pull request #3669 from nextcloud/dependabot/github_actions/helm/chart-testing-action-2.6.1 2023-11-03 15:43:45 +01:00
dependabot[bot]
4bca0fec32 Bump helm/chart-testing-action from 2.6.0 to 2.6.1
Bumps [helm/chart-testing-action](https://github.com/helm/chart-testing-action) from 2.6.0 to 2.6.1.
- [Release notes](https://github.com/helm/chart-testing-action/releases)
- [Commits](https://github.com/helm/chart-testing-action/compare/v2.6.0...v2.6.1)

---
updated-dependencies:
- dependency-name: helm/chart-testing-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-03 13:04:33 +00:00
dependabot[bot]
f2a79f6346 Bump elasticsearch from 8.10.2 to 8.10.4 in /Containers/fulltextsearch
Bumps elasticsearch from 8.10.2 to 8.10.4.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-03 12:24:39 +00:00
Simon L
d13c88c176 increase to 7.6.1
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-11-03 10:23:53 +01:00
Simon L
2635354137 Merge pull request #3666 from nextcloud/enh/noid/fix-some-values 2023-11-03 10:22:28 +01:00
Simon L
597c8c8c57 Merge pull request #3663 from nextcloud/aio-dependency-update 2023-11-03 10:21:18 +01:00
Simon L
112c9ad583 fix some values
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-11-02 20:23:22 +01:00
szaimen
4b6720436d php dependency updates
Signed-off-by: GitHub <noreply@github.com>
2023-11-02 13:14:58 +00:00
Simon L
59421d51d2 increase to 7.6.0
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-11-02 13:53:58 +01:00
Simon L
c85bacc940 change php-max-children calculation
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-11-01 18:05:11 +01:00
Simon L
2221cc7f52 Merge pull request #3659 from Aytsuqi/main 2023-11-01 16:27:56 +01:00
Simon L
d121d97683 Merge pull request #3657 from nextcloud/dependabot/github_actions/helm/chart-testing-action-2.6.0 2023-11-01 16:26:52 +01:00
Aytsuqi
7060cba6c9 rewording reverse-proxy.md
following up on further discussion with szaimen and Zoey2936 on PR#3656 

Signed-off-by: Aytsuqi <141279848+Aytsuqi@users.noreply.github.com>
2023-11-01 16:12:39 +01:00
dependabot[bot]
e4c685c0e7 Bump helm/chart-testing-action from 2.5.0 to 2.6.0
Bumps [helm/chart-testing-action](https://github.com/helm/chart-testing-action) from 2.5.0 to 2.6.0.
- [Release notes](https://github.com/helm/chart-testing-action/releases)
- [Commits](https://github.com/helm/chart-testing-action/compare/v2.5.0...v2.6.0)

---
updated-dependencies:
- dependency-name: helm/chart-testing-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-01 12:31:35 +00:00
Simon L
a1bd8b0f07 Merge pull request #3656 from Aytsuqi/main
Update reverse-proxy.md typo
2023-11-01 13:19:17 +01:00
Aytsuqi
6133e82c14 Update reverse-proxy.md typo
Just a very little typo that confused me while I was reading documentation yesterday. I assume this was what the title wanted to convey?

Signed-off-by: Aytsuqi <141279848+Aytsuqi@users.noreply.github.com>
2023-11-01 12:08:29 +01:00
Simon L
e6b6ec4cfd update screenshot for npm conf
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-11-01 10:49:17 +01:00
xis
fe00d1dac8 Nextcloud-DLNA community container (#3614) 2023-10-31 18:25:34 +01:00
Simon L
38fb544090 Merge pull request #3653 from nextcloud/dependabot/github_actions/helm/chart-testing-action-2.5.0
Bump helm/chart-testing-action from 2.4.0 to 2.5.0
2023-10-31 17:41:08 +01:00
dependabot[bot]
ee86a9dd72 Bump helm/chart-testing-action from 2.4.0 to 2.5.0
Bumps [helm/chart-testing-action](https://github.com/helm/chart-testing-action) from 2.4.0 to 2.5.0.
- [Release notes](https://github.com/helm/chart-testing-action/releases)
- [Commits](https://github.com/helm/chart-testing-action/compare/v2.4.0...v2.5.0)

---
updated-dependencies:
- dependency-name: helm/chart-testing-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-31 12:44:01 +00:00
Simon L
fcfecb737c Merge pull request #3610 from ShapeShifter499/patch-1 2023-10-30 15:19:45 +01:00
Lance
7ffe4fbd5f Update migration.md, add links about synchronization
Make it more obvious about the added note on synchronizing after migration

Signed-off-by: Lance <Gero3977@gmail.com>
2023-10-30 07:11:31 -07:00
Simon L
1aa518d19c Merge pull request #3611 from nextcloud/enh/noid/database-host 2023-10-30 15:09:33 +01:00
Simon L
736c40ce30 Merge pull request #3651 from nextcloud/dependabot/docker/Containers/nextcloud/php-8.1.25-fpm-alpine3.18 2023-10-30 14:09:55 +01:00
Simon L
b6a5c7d048 Merge pull request #3650 from nextcloud/dependabot/docker/Containers/clamav/clamav/clamav-1.2.1-12 2023-10-30 14:09:43 +01:00
Simon L
dfc8b0e522 Merge pull request #3649 from nextcloud/dependabot/docker/Containers/collabora/collabora/code-23.05.5.3.1 2023-10-30 14:09:31 +01:00
Simon L
3a3ddcad2e Merge pull request #3648 from nextcloud/dependabot/docker/Containers/mastercontainer/php-8.2.12-fpm-alpine3.18 2023-10-30 14:09:17 +01:00
Simon L
af278e8923 Merge pull request #3647 from nextcloud/dependabot/docker/Containers/mastercontainer/docker-24.0.7-cli 2023-10-30 14:09:06 +01:00
Simon L
1a1b15ecd8 Merge pull request #3646 from nextcloud/dependabot/docker/Containers/talk/nats-2.10.4-scratch 2023-10-30 14:08:53 +01:00
Simon L
7a337f4c89 Merge pull request #3645 from nextcloud/dependabot/docker/Containers/talk/strukturag/nextcloud-spreed-signaling-1.2.0 2023-10-30 14:08:40 +01:00
Simon L
02dde8e94c Merge pull request #3644 from nextcloud/aio-helm-update 2023-10-30 14:08:13 +01:00
Simon L
a15cf13119 Merge pull request #3643 from nextcloud/talk-container-update 2023-10-30 14:07:53 +01:00
dependabot[bot]
e548e4861f Bump php in /Containers/nextcloud
Bumps php from 8.1.24-fpm-alpine3.18 to 8.1.25-fpm-alpine3.18.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-30 12:51:31 +00:00
dependabot[bot]
f585cc650f Bump clamav/clamav from 1.2.1-11 to 1.2.1-12 in /Containers/clamav
Bumps clamav/clamav from 1.2.1-11 to 1.2.1-12.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-30 12:40:58 +00:00
dependabot[bot]
aec7df53c4 Bump collabora/code in /Containers/collabora
Bumps collabora/code from 23.05.5.2.1 to 23.05.5.3.1.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-30 12:20:03 +00:00
dependabot[bot]
7466fb0e58 Bump php in /Containers/mastercontainer
Bumps php from 8.2.11-fpm-alpine3.18 to 8.2.12-fpm-alpine3.18.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-30 12:12:11 +00:00
dependabot[bot]
0cf0215d23 Bump docker from 24.0.6-cli to 24.0.7-cli in /Containers/mastercontainer
Bumps docker from 24.0.6-cli to 24.0.7-cli.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-30 12:12:04 +00:00
dependabot[bot]
59d6a319d1 Bump nats from 2.10.3-scratch to 2.10.4-scratch in /Containers/talk
Bumps nats from 2.10.3-scratch to 2.10.4-scratch.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-30 12:11:25 +00:00
dependabot[bot]
7dd3622fd3 Bump strukturag/nextcloud-spreed-signaling in /Containers/talk
Bumps strukturag/nextcloud-spreed-signaling from 1.1.3 to 1.2.0.

---
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>
2023-10-30 12:11:09 +00:00
szaimen
67fab3111b Helm Chart updates
Signed-off-by: GitHub <noreply@github.com>
2023-10-30 12:08:29 +00:00
szaimen
a68717847f talk-update automated change
Signed-off-by: GitHub <noreply@github.com>
2023-10-30 12:03:47 +00:00
Simon L
ebca5442ae Merge pull request #3642 from nextcloud/enh/noid/backup-additional-volumes 2023-10-30 12:08:05 +01:00
Simon L
918afa1a94 allow to back up empty additional volumes
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-10-30 10:57:59 +01:00
Simon L
54c806c960 update plex readme to use a better link
Signed-off-by: Simon L <szaimen@e.mail.de>

Signed-off-by: Simon L. <szaimen@e.mail.de>
2023-10-30 10:53:11 +01:00
Simon L
8b0d2b3534 Merge pull request #3594 from Habbie/patch-1 2023-10-30 10:50:30 +01:00
Simon L
9168bdaad5 adjust name in postgres container as well
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-10-30 10:48:27 +01:00
Simon L
9cbcb93c93 Merge pull request #3641 from nextcloud/enh/noid/enable-apps 2023-10-30 10:47:30 +01:00
Simon L
b36f71ff74 also enable integration apps after installing them
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-10-30 10:44:09 +01:00
Simon L
f4ee3ff6b0 Merge pull request #3639 from nextcloud/enh/noid/fix-generated-images-path 2023-10-30 09:39:49 +01:00
Simon L
1937fde61d add AIO_DATABASE_HOST
Allow to get local ip-address of database container which allows to talk to it even in host mode (the container that requires this needs to be started first then)

Signed-off-by: Simon L <szaimen@e.mail.de>
2023-10-30 08:54:05 +01:00
Simon L
2156e60d18 Merge pull request #3608 from nextcloud/enh/noid/change-priority 2023-10-30 08:50:55 +01:00
Simon L
faaee07000 Merge pull request #3584 from nextcloud/enh/noid/postgres-close-idling-sessions 2023-10-30 08:48:32 +01:00
Simon L
a770fc879d Merge pull request #3583 from nextcloud/enh/noid/improve-pullcontainer 2023-10-30 08:47:45 +01:00
Simon L
a80ab8aff2 Merge pull request #3619 from nextcloud/nextcloud-container-update 2023-10-30 08:43:53 +01:00
Simon L
b0b0adf7ce Merge pull request #3618 from nextcloud/talk-container-update 2023-10-30 08:43:27 +01:00
Simon L
3f9f5d1e95 Merge pull request #3617 from nextcloud/dependabot/docker/Containers/clamav/clamav/clamav-1.2.1-11 2023-10-30 08:43:10 +01:00
Simon L
deec58be46 Merge pull request #3612 from nextcloud/imaginary-container-update 2023-10-30 08:42:52 +01:00
Simon L
269731530b Merge pull request #3609 from nextcloud/aio-dependency-update 2023-10-30 08:42:18 +01:00
Simon L
99b5db03b2 Merge pull request #3591 from nextcloud/dependabot/docker/Containers/collabora/collabora/code-23.05.5.2.1 2023-10-30 08:41:48 +01:00
Simon L
2d3b35ed3d local-ai - fix path to generated images
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-10-30 08:37:10 +01:00
Simon L
b9ee292f8a Fix typo
Signed-off-by: Simon L. <szaimen@e.mail.de>
2023-10-30 03:14:20 +01:00
Lance
dadb57f74f Update migration.md, fix spelling
Fix a spelling mistake

Signed-off-by: Lance <Gero3977@gmail.com>
2023-10-28 08:44:57 -07:00
szaimen
69568b0889 nextcloud-update automated change
Signed-off-by: GitHub <noreply@github.com>
2023-10-27 13:01:15 +00:00
szaimen
5da8dc0c15 talk-update automated change
Signed-off-by: GitHub <noreply@github.com>
2023-10-27 12:57:30 +00:00
szaimen
50bdcc7ba6 imaginary-update automated change
Signed-off-by: GitHub <noreply@github.com>
2023-10-27 12:56:56 +00:00
szaimen
552a7babc4 php dependency updates
Signed-off-by: GitHub <noreply@github.com>
2023-10-27 12:25:39 +00:00
dependabot[bot]
969dca4879 Bump clamav/clamav from 1.2.0-9 to 1.2.1-11 in /Containers/clamav
Bumps clamav/clamav from 1.2.0-9 to 1.2.1-11.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-27 12:14:10 +00:00
Simon L
db47b9c573 increase to 7.5.1
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-10-27 13:11:51 +02:00
Simon L
c96d56d2f5 Merge pull request #3616 from nextcloud/aio-helm-update
Helm Chart updates
2023-10-27 12:40:07 +02:00
szaimen
1abdac9613 Helm Chart updates
Signed-off-by: GitHub <noreply@github.com>
2023-10-27 10:30:37 +00:00
Simon L
2e9f48bb11 fix detail
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-10-27 10:39:01 +02:00
Simon L
706c8bc1bd fix update-helm script
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-10-27 09:28:21 +02:00
Simon L
882cef4b0c Merge pull request #3589 from nextcloud/nextcloud-container-update 2023-10-27 09:14:21 +02:00
szaimen
a90fd4d4aa nextcloud-update automated change
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-10-27 09:13:58 +02:00
Simon L
416f50b70c do not go lower than 100 connections
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-10-26 18:26:40 +02:00
Lance
782e949742 Update migration.md
Include proper command specific for Nextcloud AIO

Signed-off-by: Lance <Gero3977@gmail.com>
2023-10-25 07:49:49 -07:00
Lance
0decfe4900 Update migration.md with info about synchronization
Add information about synchronizing after migration. There maybe issues if the server has been offline for a while and a user reconnects clients for synchronization.

Signed-off-by: Lance <Gero3977@gmail.com>
2023-10-25 07:39:09 -07:00
Simon L
d887ed8de1 change priority of app-settings-section to 0
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-10-25 12:32:00 +02:00
Peter van Dijk
b7de89ba6a fix reference to column in wikipedia timezone list
Signed-off-by: Peter van Dijk <peter@7bits.nl>
2023-10-23 21:35:19 +02:00
dependabot[bot]
5b5f472180 Bump collabora/code in /Containers/collabora
Bumps collabora/code from 23.05.5.1.1 to 23.05.5.2.1.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-23 12:40:47 +00:00
Simon L
6168ea3335 do not catch error during pullcontainer so that it throws and logs if it cannot get the image
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-10-22 17:32:15 +02:00
Simon L
b2ca0b0e22 add mailu to recommended mail server projects
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-10-22 11:11:46 +02:00
Simon L
00ec781b68 postgresql - close idling sessions automatically
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-10-21 15:40:57 +02:00
Simon L
c8c6bda76e Merge pull request #3581 from nextcloud/aio-yaml-update
Yaml updates
2023-10-21 14:16:01 +02:00
szaimen
db84d7d486 Yaml updates
Signed-off-by: GitHub <noreply@github.com>
2023-10-21 12:02:16 +00:00
Simon L
d5ff2fca16 Merge pull request #3574 from nextcloud/enh/3540/fix-rp-setup 2023-10-20 21:42:11 +02:00
Simon L
3f43f122ee Merge pull request #3550 from p-fruck/compose-presets-and-typos 2023-10-20 19:53:31 +02:00
Simon L
c5135e3a4e nextcloud container - allowed clients - only limit access in known use cases
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-10-20 19:37:54 +02:00
Simon L
e2b4283067 add note that integration app is not yet compatible
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-10-20 19:19:11 +02:00
Philipp Fruck
41a4ea7d92 chore: Add more examples to compose.yaml
Signed-off-by: Philipp Fruck <dev@p-fruck.de>
2023-10-20 18:57:02 +02:00
Philipp Fruck
d9bbafdd69 docs(reverse-proxy): fix typos
Signed-off-by: Philipp Fruck <dev@p-fruck.de>
2023-10-20 18:57:02 +02:00
Simon L
13966948b0 Merge pull request #3565 from nextcloud/enh/3432/add-libretranslate 2023-10-20 17:28:01 +02:00
Simon L
97f66da219 community containers - add libretranslate
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-10-20 17:24:53 +02:00
Simon L
461ccb0b3e Merge pull request #3572 from nextcloud/dependabot/docker/Containers/apache/httpd-2.4.58-alpine3.18 2023-10-20 15:51:11 +02:00
dependabot[bot]
8e9eb59d12 Bump httpd in /Containers/apache
Bumps httpd from 2.4.57-alpine3.18 to 2.4.58-alpine3.18.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-20 13:04:15 +00:00
Simon L
51132831e8 Merge pull request #3571 from nextcloud/dependabot/github_actions/peter-evans/create-or-update-comment-3.1.0
Bump peter-evans/create-or-update-comment from 3.0.2 to 3.1.0
2023-10-20 14:36:15 +02:00
dependabot[bot]
2bb5e84d83 Bump peter-evans/create-or-update-comment from 3.0.2 to 3.1.0
Bumps [peter-evans/create-or-update-comment](https://github.com/peter-evans/create-or-update-comment) from 3.0.2 to 3.1.0.
- [Release notes](https://github.com/peter-evans/create-or-update-comment/releases)
- [Commits](c6c9a1a660...23ff15729e)

---
updated-dependencies:
- dependency-name: peter-evans/create-or-update-comment
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-20 12:29:03 +00:00
Simon L
ab044fda96 Merge pull request #3567 from nextcloud/fix/3566/fix-haproxy 2023-10-20 13:50:24 +02:00
Simon L
b0eabb8235 Merge pull request #3568 from nextcloud/enh/noid/add-hint 2023-10-20 13:49:53 +02:00
Simon L
36acb8e4e6 add maxconn value to haproxy
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-10-20 13:40:58 +02:00
Simon L
1f68615c8d add hint regarding restore process and backup location
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-10-20 13:14:17 +02:00
Simon L
b5577a2909 add further hint what borg is able to do
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-10-20 13:07:33 +02:00
Simon L
499dccb122 add section about existing ideas for new community containers
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-10-19 23:20:00 +02:00
Simon L
9a16b7ea53 add hint regarding community containers to the AIO interface
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-10-19 23:08:14 +02:00
Simon L
3e4f946ab9 adjust link to community containers
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-10-19 23:02:10 +02:00
Simon L
22392b0a94 add links to ldap and mailserver
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-10-19 20:33:14 +02:00
Simon L
4456e5380f add another hint
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-10-19 16:50:20 +02:00
Simon L
3210ad06f2 adjust detail
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-10-19 16:47:25 +02:00
Simon L
bdf676af84 add notice regarding https
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-10-19 16:42:58 +02:00
Simon L
378ec28f76 Merge pull request #3564 from nextcloud/dependabot/docker/Containers/redis/redis-7.2.2-alpine 2023-10-19 15:23:37 +02:00
dependabot[bot]
b08b1857c8 Bump redis from 7.2.1-alpine to 7.2.2-alpine in /Containers/redis
Bumps redis from 7.2.1-alpine to 7.2.2-alpine.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-19 13:03:17 +00:00
Simon L
f2b075ac64 improve detail
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-10-18 23:58:47 +02:00
Simon L
5f93ce7f78 update OO
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-10-18 23:54:19 +02:00
Simon L
b82b244e1f Merge pull request #3556 from nextcloud/enh/noid/improve-local-ai 2023-10-18 23:51:53 +02:00
Simon L
2f82c168e5 local-ai - actually do not back up downloaded models
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-10-18 19:09:04 +02:00
Simon L
d75a53b620 add warning to local-ai
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-10-18 18:54:33 +02:00
Simon L
609c61ad65 fix typo and also install assistant app when installing local-ai
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-10-18 18:39:21 +02:00
Simon L
53bbf99f37 Merge pull request #3555 from nextcloud/enh/noid/rework-local-ai 2023-10-18 18:23:16 +02:00
Simon L
4df370589d rework local-ai to download models automatically
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-10-18 18:17:26 +02:00
Simon L
0521605c33 adjust local ai docs
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-10-18 16:05:59 +02:00
Simon L
0feaa9d527 local-ai - use correct directory where models are stored
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-10-18 15:27:37 +02:00
Simon L
caeff27bf5 fix backup notification setting
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-10-18 14:22:29 +02:00
Simon L
706604539f increase to 7.5.0
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-10-18 14:00:22 +02:00
Simon L
9ac528423e Merge pull request #3516 from nextcloud/enh/3485/disable-successful-backup-notifications 2023-10-18 13:59:11 +02:00
Simon L
1daacdfa99 Merge pull request #3515 from nextcloud/enh/3461/do-not-expose-udp 2023-10-18 13:57:05 +02:00
Simon L
3f5854c4bb Merge pull request #3495 from nextcloud/enh/noid/add-local-ai 2023-10-18 13:36:12 +02:00
Simon L
cd7a87200b community containers - add local ai
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-10-18 12:56:08 +02:00
Simon L
f397392d9d update links to discussions for netdata and pgadmin
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-10-18 00:40:09 +02:00
Simon L
4705bfa992 Merge pull request #3533 from nextcloud/dependabot/docker/Containers/apache/caddy-2.7.5-alpine 2023-10-17 17:12:53 +02:00
Simon L
810236a05c Merge pull request #3532 from nextcloud/dependabot/docker/Containers/mastercontainer/caddy-2.7.5-alpine 2023-10-17 17:12:45 +02:00
Simon L
28b8be112f Merge pull request #3545 from nextcloud/enh/noid/fix-regex 2023-10-17 12:40:58 +02:00
Simon L
cea006c58f fix regex for additional backup dirs
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-10-17 11:22:07 +02:00
Simon L
30c342d456 Merge pull request #3543 from nextcloud/dependabot/docker/Containers/talk/nats-2.10.3-scratch 2023-10-16 15:25:01 +02:00
Simon L
3f0c7490e0 Merge pull request #3542 from nextcloud/dependabot/docker/Containers/clamav/clamav/clamav-1.2.0-9 2023-10-16 15:24:48 +02:00
Simon L
2280fb62d2 Merge pull request #3541 from nextcloud/dependabot/docker/Containers/collabora/collabora/code-23.05.5.1.1 2023-10-16 15:24:31 +02:00
dependabot[bot]
388a79dfe9 Bump nats from 2.10.2-scratch to 2.10.3-scratch in /Containers/talk
Bumps nats from 2.10.2-scratch to 2.10.3-scratch.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-16 13:02:07 +00:00
dependabot[bot]
bfa74ad966 Bump clamav/clamav from 1.2.0-8 to 1.2.0-9 in /Containers/clamav
Bumps clamav/clamav from 1.2.0-8 to 1.2.0-9.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-16 12:58:52 +00:00
dependabot[bot]
a8c25f7a6a Bump collabora/code in /Containers/collabora
Bumps collabora/code from 23.05.4.2.1 to 23.05.5.1.1.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-16 12:53:49 +00:00
Simon L
eee6157f54 Merge pull request #3523 from nextcloud/smaller-talk 2023-10-16 10:43:33 +02:00
Simon L
b60c86c2b6 Merge pull request #3530 from nextcloud/dependabot/docker/Containers/imaginary/golang-1.21.3-alpine3.18 2023-10-16 10:41:32 +02:00
Simon L
537dda95e7 Merge pull request #3521 from nextcloud/dependabot/docker/Containers/talk/nats-2.10.2-scratch 2023-10-16 10:41:18 +02:00
Zoey
a846b46fcd Add NPMplus as community-container (#3520)
Co-authored-by: Simon L <szaimen@e.mail.de>
2023-10-16 10:40:34 +02:00
Simon L
df9fa7edd3 Merge pull request #3522 from nextcloud/enh/noid/add-permanent-redirect 2023-10-16 10:39:57 +02:00
Simon L
03c7d0ba9a Merge pull request #3528 from MMuschner/patch-1 2023-10-16 10:39:22 +02:00
Simon L
25438f8513 Merge pull request #3539 from nextcloud/aio-helm-update 2023-10-16 10:19:40 +02:00
szaimen
8ebcdf22ca Helm Chart updates
Signed-off-by: GitHub <noreply@github.com>
2023-10-16 08:17:16 +00:00
Simon L
58d37d5d78 Merge pull request #3384 from nextcloud/aio-yaml-update 2023-10-16 10:12:25 +02:00
dependabot[bot]
cf1ae8fb1b Bump caddy from 2.7.4-alpine to 2.7.5-alpine in /Containers/apache
Bumps caddy from 2.7.4-alpine to 2.7.5-alpine.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-12 12:51:18 +00:00
dependabot[bot]
4950d1de68 Bump caddy in /Containers/mastercontainer
Bumps caddy from 2.7.4-alpine to 2.7.5-alpine.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-12 12:22:52 +00:00
dependabot[bot]
e1f7f04347 Bump golang in /Containers/imaginary
Bumps golang from 1.21.2-alpine3.18 to 1.21.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>
2023-10-11 12:54:17 +00:00
szaimen
2ac76c80fd Yaml updates
Signed-off-by: GitHub <noreply@github.com>
2023-10-11 12:13:15 +00:00
blu3acid
849febd414 Typo in containers.twig
Ln: 325 changed "internect" to "internet"

Signed-off-by: blu3acid <michael.muschner@mailbox.org>
2023-10-11 14:09:10 +02:00
Zoey
320cd9f436 reduce size of talk image
Signed-off-by: Zoey <zoey@z0ey.de>
2023-10-10 16:24:22 +02:00
Simon L
5d2275c806 add permanent redirect to port 80 in mastercontainer
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-10-10 16:03:40 +02:00
Simon L
92aae9dfd0 Merge pull request #3492 from MarvvanPal/3399-optimisations_of_the_installation_description 2023-10-10 15:30:37 +02:00
dependabot[bot]
f8aab5f828 Bump nats from 2.10.1-scratch to 2.10.2-scratch in /Containers/talk
Bumps nats from 2.10.1-scratch to 2.10.2-scratch.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-10 13:06:24 +00:00
Simon L
258f6683de daily backup - allow to disable succesful backup notifications
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-10-10 12:12:11 +02:00
Simon L
7d8f40c98d additional modifications
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-10-10 12:05:36 +02:00
Simon L
1a018d9ef2 adjust some more details
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-10-10 12:01:03 +02:00
Simon L
0edd0e1ed8 adjust some details in reverse proxy docs
Signed-off-by: Simon L <szaimen@e.mail.de>

Signed-off-by: Simon L. <szaimen@e.mail.de>
2023-10-10 11:57:05 +02:00
Simon L
ef2fd3817f adjust wording in docker-rootles
Signed-off-by: Simon L <szaimen@e.mail.de>

Signed-off-by: Simon L. <szaimen@e.mail.de>
2023-10-10 11:56:46 +02:00
Simon L
d6e61bc537 make some changes
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-10-10 11:55:45 +02:00
Simon L
b56555e92c do not expose udp if AIO is in reverse prox mode
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-10-09 16:38:18 +02:00
Marvin von Papen
510bdb9aef simplify and deduplicate description
Running a proxy manager directly on the host or in a container leads to different adaption of the example configurations. The description for this is simplified and more structured now. Additional the steps are written once and referenced per example configuration.

Signed-off-by: Marvin von Papen <79196690+MarvvanPal@users.noreply.github.com>
2023-10-06 17:47:58 +02:00
Marvin von Papen
29341e547c add path e.g. for /run/user/1000 variable
Signed-off-by: Marvin von Papen <79196690+MarvvanPal@users.noreply.github.com>
2023-10-06 13:00:28 +02:00
82 changed files with 541 additions and 387 deletions

View File

@@ -23,7 +23,7 @@ jobs:
steps:
- name: Add reaction on start
uses: peter-evans/create-or-update-comment@c6c9a1a66007646a28c153e2a8580a5bad27bcfa # v3.0.2
uses: peter-evans/create-or-update-comment@23ff15729ef2fc348714a3bb66d2f655ca9066f2 # v3.1.0
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
repository: ${{ github.event.repository.full_name }}
@@ -42,7 +42,7 @@ jobs:
GITHUB_TOKEN: ${{ secrets.COMMAND_BOT_PAT }}
- name: Add reaction on failure
uses: peter-evans/create-or-update-comment@c6c9a1a66007646a28c153e2a8580a5bad27bcfa # v3.0.2
uses: peter-evans/create-or-update-comment@23ff15729ef2fc348714a3bb66d2f655ca9066f2 # v3.1.0
if: failure()
with:
token: ${{ secrets.COMMAND_BOT_PAT }}

View File

@@ -21,7 +21,7 @@ jobs:
version: v3.11.1
- name: Set up chart-testing
uses: helm/chart-testing-action@v2.4.0
uses: helm/chart-testing-action@v2.6.1
- name: Run chart-testing (lint)
id: lint

View File

@@ -1,6 +1,6 @@
FROM caddy:2.7.4-alpine as caddy
FROM caddy:2.7.5-alpine as caddy
FROM httpd:2.4.57-alpine3.18
FROM httpd:2.4.58-alpine3.18
COPY --from=caddy /usr/bin/caddy /usr/bin/caddy

View File

@@ -18,7 +18,7 @@ while ! nc -z "$NEXTCLOUD_HOST" 9000; do
done
# Get ipv4-address of Apache
IPv4_ADDRESS="$(dig nextcloud-aio-apache A +short | head -1)"
IPv4_ADDRESS="$(dig nextcloud-aio-apache A +short +search | head -1)"
# Bring it in CIDR notation
# shellcheck disable=SC2001
IPv4_ADDRESS="$(echo "$IPv4_ADDRESS" | sed 's|[0-9]\+$|1/32|')"

View File

@@ -72,10 +72,10 @@ if [ "$BORG_MODE" = backup ]; then
exit 1
fi
# Test that nothing is empty
for directory in "${VOLUME_DIRS[@]}"; do
if [ -z "$(ls -A "$directory")" ] && [ "$directory" != "/nextcloud_aio_volumes/nextcloud_aio_elasticsearch" ]; then
echo "$directory is empty which is not allowed."
# Test that default volumes are not empty
for volume in "${DEFAULT_VOLUMES[@]}"; do
if [ -z "$(ls -A "/nextcloud_aio_volumes/$volume")" ] && [ "$volume" != "nextcloud_aio_elasticsearch" ]; then
echo "/nextcloud_aio_volumes/$volume is empty which should not happen!"
exit 1
fi
done

View File

@@ -1,5 +1,5 @@
# Probably from this file: https://github.com/Cisco-Talos/clamav-docker/blob/main/clamav/1.1/alpine/Dockerfile
FROM clamav/clamav:1.2.0-8
FROM clamav/clamav:1.2.1-12
COPY clamav.conf /tmp/clamav.conf

View File

@@ -1,5 +1,5 @@
# From a file located probably somewhere here: https://github.com/CollaboraOnline/online/tree/master/docker
FROM collabora/code:23.05.4.2.1
FROM collabora/code:23.05.5.3.1
USER root

View File

@@ -1,5 +1,8 @@
# Inspiration: https://github.com/Tecnativa/docker-socket-proxy/blob/master/haproxy.cfg
global
maxconn 10
defaults
timeout connect 10s
timeout client 10s

View File

@@ -7,11 +7,11 @@ while ! nc -z "$NEXTCLOUD_HOST" 9001; do
done
set -x
IPv4_ADDRESS_NC="$(dig nextcloud-aio-nextcloud IN A +short | grep '^[0-9.]\+$' | sort | head -n1)"
IPv4_ADDRESS_NC="$(dig nextcloud-aio-nextcloud IN A +short +search | grep '^[0-9.]\+$' | sort | head -n1)"
HAPROXYFILE="$(sed "s|NC_IPV4_PLACEHOLDER|$IPv4_ADDRESS_NC|" /haproxy.cfg)"
echo "$HAPROXYFILE" > /tmp/haproxy.cfg
IPv6_ADDRESS_NC="$(dig nextcloud-aio-nextcloud AAAA +short | grep '^[0-9a-f:]\+$' | sort | head -n1)"
IPv6_ADDRESS_NC="$(dig nextcloud-aio-nextcloud AAAA +short +search | grep '^[0-9a-f:]\+$' | sort | head -n1)"
if [ -n "$IPv6_ADDRESS_NC" ]; then
HAPROXYFILE="$(sed "s|NC_IPV6_PLACEHOLDER|$IPv6_ADDRESS_NC|" /tmp/haproxy.cfg)"
else

View File

@@ -1,5 +1,5 @@
# Probably from here https://github.com/elastic/elasticsearch/blob/main/distribution/docker/src/docker/Dockerfile
FROM elasticsearch:8.10.2
FROM elasticsearch:8.10.4
USER root

View File

@@ -1,6 +1,6 @@
FROM golang:1.21.2-alpine3.18 as go
FROM golang:1.21.3-alpine3.18 as go
ENV IMAGINARY_HASH b632dae8cc321452c3f85bcae79c580b1ae1ed84
ENV IMAGINARY_HASH 7efb66c243056e5b3b65215e101be7915983e364
RUN set -ex; \
apk add --no-cache \

View File

@@ -21,7 +21,7 @@
}
http://:80 {
redir https://{host}{uri}
redir https://{host}{uri} permanent
}
https://:8443 {

View File

@@ -1,11 +1,11 @@
# Docker CLI is a requirement
FROM docker:24.0.6-cli as docker
FROM docker:24.0.7-cli as docker
# Caddy is a requirement
FROM caddy:2.7.4-alpine as caddy
FROM caddy:2.7.5-alpine as caddy
# From https://github.com/docker-library/php/blob/master/8.2/alpine3.18/fpm/Dockerfile
FROM php:8.2.11-fpm-alpine3.18
FROM php:8.2.12-fpm-alpine3.18
EXPOSE 80
EXPOSE 8080

View File

@@ -12,6 +12,11 @@ while true; do
export AUTOMATIC_UPDATES=0
export START_CONTAINERS=1
fi
if [ "$(sed -n '3p' "/mnt/docker-aio-config/data/daily_backup_time")" != 'successNotificationsAreNotEnabled' ]; then
export SEND_SUCCESS_NOTIFICATIONS=1
else
export SEND_SUCCESS_NOTIFICATIONS=0
fi
set +x
if [ -f "/mnt/docker-aio-config/data/daily_backup_running" ]; then
export LOCK_FILE_PRESENT=1

View File

@@ -105,7 +105,7 @@ if [ "$DAILY_BACKUP" = 1 ] && ([ "$AUTOMATIC_UPDATES" = 1 ] || [ "$START_CONTAIN
done
fi
echo "Sending backup notification..."
sudo -u www-data php /var/www/docker-aio/php/src/Cron/BackupNotification.php
sudo -E -u www-data php /var/www/docker-aio/php/src/Cron/BackupNotification.php
fi
echo "Daily backup script has finished"

View File

@@ -1,9 +1,9 @@
FROM php:8.1.24-fpm-alpine3.18
FROM php:8.1.25-fpm-alpine3.18
ENV PHP_MEMORY_LIMIT 512M
ENV PHP_UPLOAD_LIMIT 10G
ENV PHP_MAX_TIME 3600
ENV NEXTCLOUD_VERSION 27.1.2
ENV NEXTCLOUD_VERSION 27.1.3
ENV AIO_TOKEN 123456
ENV AIO_URL localhost
@@ -70,7 +70,7 @@ RUN set -ex; \
# pecl will claim success even if one install fails, so we need to perform each install separately
pecl install APCu-5.1.22; \
pecl install memcached-3.2.0; \
pecl install redis-6.0.1; \
pecl install redis-6.0.2; \
pecl install imagick-3.7.0; \
\
docker-php-ext-enable \
@@ -195,10 +195,10 @@ RUN set -ex; \
\
grep -q '^pm = dynamic' /usr/local/etc/php-fpm.d/www.conf; \
sed -i 's/^pm = dynamic/pm = ondemand/' /usr/local/etc/php-fpm.d/www.conf; \
sed -i 's/^pm.max_children =.*/pm.max_children = 80/' /usr/local/etc/php-fpm.d/www.conf; \
sed -i 's/^pm.start_servers =.*/pm.start_servers = 2/' /usr/local/etc/php-fpm.d/www.conf; \
sed -i 's/^pm.min_spare_servers =.*/pm.min_spare_servers = 1/' /usr/local/etc/php-fpm.d/www.conf; \
sed -i 's/^pm.max_spare_servers =.*/pm.max_spare_servers = 3/' /usr/local/etc/php-fpm.d/www.conf; \
# Sync this with max db connections
# We don't actually expect so many children but don't want to limit it artificially because people will report issues otherwise.
# Also children will usually be terminated again after the process is done due to the ondemand setting
sed -i 's/^pm.max_children =.*/pm.max_children = 5000/' /usr/local/etc/php-fpm.d/www.conf; \
sed -i 's|access.log = /proc/self/fd/2|access.log = /proc/self/fd/1|' /usr/local/etc/php-fpm.d/docker.conf; \
\
rm -rf /tmp/nextcloud-aio && \

View File

@@ -30,13 +30,6 @@ redis.session.lock_retries = -1
redis.session.lock_wait_time = 10000
REDIS_CONF
echo "Setting php max children..."
MEMORY=$(awk '/MemTotal/ {printf "%d", $2/1024}' /proc/meminfo)
PHP_MAX_CHILDREN=$((MEMORY/50))
if [ -n "$PHP_MAX_CHILDREN" ]; then
sed -i "s/^pm.max_children =.*/pm.max_children = $PHP_MAX_CHILDREN/" /usr/local/etc/php-fpm.d/www.conf
fi
# 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
@@ -527,8 +520,8 @@ if [ "$COLLABORA_ENABLED" = 'yes' ]; then
# Fix https://github.com/nextcloud/all-in-one/issues/188:
php /var/www/html/occ config:system:set allow_local_remote_servers --type=bool --value=true
# Make collabora more save
COLLABORA_IPv4_ADDRESS="$(dig "$NC_DOMAIN" A +short | grep '^[0-9.]\+$' | sort | head -n1)"
COLLABORA_IPv6_ADDRESS="$(dig "$NC_DOMAIN" AAAA +short | grep '^[0-9a-f:]\+$' | sort | head -n1)"
COLLABORA_IPv4_ADDRESS="$(dig "$NC_DOMAIN" A +short +search | grep '^[0-9.]\+$' | sort | head -n1)"
COLLABORA_IPv6_ADDRESS="$(dig "$NC_DOMAIN" AAAA +short +search | grep '^[0-9a-f:]\+$' | sort | head -n1)"
COLLABORA_ALLOW_LIST="$(php /var/www/html/occ config:app:get richdocuments wopi_allowlist)"
if [ -n "$COLLABORA_IPv4_ADDRESS" ]; then
if ! echo "$COLLABORA_ALLOW_LIST" | grep -q "$COLLABORA_IPv4_ADDRESS"; then

View File

@@ -131,19 +131,24 @@ if ! sudo -E -u www-data bash /entrypoint.sh; then
exit 1
fi
while [ -z "$(dig nextcloud-aio-apache A +short)" ]; do
while [ -z "$(dig nextcloud-aio-apache A +short +search)" ]; do
echo "Waiting for nextcloud-aio-apache to start..."
sleep 5
done
IPv4_ADDRESS_APACHE="$(dig nextcloud-aio-apache A +short | grep '^[0-9.]\+$' | sort | head -n1)"
IPv6_ADDRESS_APACHE="$(dig nextcloud-aio-apache AAAA +short | grep '^[0-9a-f:]\+$' | sort | head -n1)"
IPv4_ADDRESS_MASTERCONTAINER="$(dig nextcloud-aio-mastercontainer A +short | grep '^[0-9.]\+$' | sort | head -n1)"
IPv6_ADDRESS_MASTERCONTAINER="$(dig nextcloud-aio-mastercontainer AAAA +short | grep '^[0-9a-f:]\+$' | sort | head -n1)"
sed -i "s|^;listen.allowed_clients|listen.allowed_clients|" /usr/local/etc/php-fpm.d/www.conf
sed -i "s|listen.allowed_clients.*|listen.allowed_clients = 127.0.0.1,::1,$IPv4_ADDRESS_APACHE,$IPv6_ADDRESS_APACHE,$IPv4_ADDRESS_MASTERCONTAINER,$IPv6_ADDRESS_MASTERCONTAINER|" /usr/local/etc/php-fpm.d/www.conf
sed -i "/^listen.allowed_clients/s/,,/,/g" /usr/local/etc/php-fpm.d/www.conf
sed -i "/^listen.allowed_clients/s/,$//" /usr/local/etc/php-fpm.d/www.conf
grep listen.allowed_clients /usr/local/etc/php-fpm.d/www.conf
set -x
if [ "$APACHE_PORT" = 443 ] || [ "$APACHE_IP_BINDING" = "127.0.0.1" ] || [ "$APACHE_IP_BINDING" = "::1" ]; 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)"
IPv6_ADDRESS_MASTERCONTAINER="$(dig nextcloud-aio-mastercontainer AAAA +short +search | grep '^[0-9a-f:]\+$' | sort | head -n1)"
sed -i "s|^;listen.allowed_clients|listen.allowed_clients|" /usr/local/etc/php-fpm.d/www.conf
sed -i "s|listen.allowed_clients.*|listen.allowed_clients = 127.0.0.1,::1,$IPv4_ADDRESS_APACHE,$IPv6_ADDRESS_APACHE,$IPv4_ADDRESS_MASTERCONTAINER,$IPv6_ADDRESS_MASTERCONTAINER|" /usr/local/etc/php-fpm.d/www.conf
sed -i "/^listen.allowed_clients/s/,,/,/g" /usr/local/etc/php-fpm.d/www.conf
sed -i "/^listen.allowed_clients/s/,$//" /usr/local/etc/php-fpm.d/www.conf
grep listen.allowed_clients /usr/local/etc/php-fpm.d/www.conf
fi
set +x
exec "$@"

View File

@@ -1,5 +1,5 @@
# From https://github.com/ONLYOFFICE/Docker-DocumentServer/blob/master/Dockerfile
FROM onlyoffice/documentserver:7.4.1.1
FROM onlyoffice/documentserver:7.5.0.1
# USER root is probably used

View File

@@ -31,7 +31,7 @@ fi
if [ -f "$DUMP_DIR/initialization.failed" ]; then
echo "The database initialization failed. Most likely was a wrong timezone selected."
echo "The selected timezone is '$TZ'."
echo "Please check if it is in 'TZ database name' column of the timezone list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List"
echo "Please check if it is in the 'TZ identifier' column of the timezone list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List"
echo "For further clues on what went wrong, look at the logs above."
echo "You might start again from scratch by following https://github.com/nextcloud/all-in-one#how-to-properly-reset-the-instance and selecting a proper timezone."
exit 1
@@ -148,17 +148,23 @@ fi
# Modify postgresql.conf
if [ -f "/var/lib/postgresql/data/postgresql.conf" ]; then
echo "Setting max connections..."
MEMORY=$(awk '/MemTotal/ {printf "%d", $2/1024}' /proc/meminfo)
MAX_CONNECTIONS=$((MEMORY/50+3))
if [ -n "$MAX_CONNECTIONS" ]; then
sed -i "s|^max_connections =.*|max_connections = $MAX_CONNECTIONS|" "/var/lib/postgresql/data/postgresql.conf"
fi
echo "Setting postgres values..."
# Modify conf
# 5000 connections is apparently the highest possible value with postgres so set it to that so that we don't run into a limit here.
# We don't actually expect so many connections but don't want to limit it artificially because people will report issues otherwise
# Also connections should usually be closed again after the process is done
# If we should actually exceed this limit, it is definitely a bug in Nextcloud server or some of its apps that does not close connections correctly and not a bug in AIO
sed -i "s|^max_connections =.*|max_connections = 5000|" "/var/lib/postgresql/data/postgresql.conf"
# Do not log checkpoints
if grep -q "#log_checkpoints" /var/lib/postgresql/data/postgresql.conf; then
sed -i 's|#log_checkpoints.*|log_checkpoints = off|' /var/lib/postgresql/data/postgresql.conf
fi
# Closing idling connections automatically seems to break any logic so was reverted again to default where it is disabled
if grep -q "^idle_session_timeout" /var/lib/postgresql/data/postgresql.conf; then
sed -i 's|^idle_session_timeout.*|#idle_session_timeout|' /var/lib/postgresql/data/postgresql.conf
fi
fi
# Catch docker stop attempts

View File

@@ -1,5 +1,5 @@
# From https://github.com/docker-library/redis/blob/master/7.0/alpine/Dockerfile
FROM redis:7.2.1-alpine
FROM redis:7.2.2-alpine
COPY --chmod=775 start.sh /start.sh

View File

@@ -2,7 +2,7 @@ FROM python:3.12.0-alpine3.18
COPY --chmod=775 start.sh /start.sh
ENV RECORDING_VERSION v17.1.1
ENV RECORDING_VERSION v17.1.2
ENV ALLOW_ALL false
ENV HPB_PROTOCOL https
ENV SKIP_VERIFY false

View File

@@ -1,6 +1,6 @@
FROM nats:2.10.1-scratch as nats
FROM nats:2.10.4-scratch as nats
FROM eturnal/eturnal:1.12.0 AS eturnal
FROM strukturag/nextcloud-spreed-signaling:1.1.3 as signaling
FROM strukturag/nextcloud-spreed-signaling:1.2.0 as signaling
FROM alpine:3.18.4 as janus
ARG JANUS_VERSION=v0.14.0
@@ -35,10 +35,10 @@ RUN set -ex; \
FROM alpine:3.18.4
ENV ETURNAL_ETC_DIR="/conf"
COPY --from=janus /usr/local /usr/local
COPY --from=eturnal /opt/eturnal /opt/eturnal
COPY --from=nats /nats-server /usr/local/bin/nats-server
COPY --from=signaling /usr/bin/nextcloud-spreed-signaling /usr/local/bin/nextcloud-spreed-signaling
COPY --from=janus --chmod=777 --chown=1000:1000 /usr/local /usr/local
COPY --from=eturnal --chmod=777 --chown=1000:1000 /opt/eturnal /opt/eturnal
COPY --from=nats --chmod=777 --chown=1000:1000 /nats-server /usr/local/bin/nats-server
COPY --from=signaling --chmod=777 --chown=1000:1000 /usr/bin/nextcloud-spreed-signaling /usr/local/bin/nextcloud-spreed-signaling
COPY --chmod=775 start.sh /start.sh
COPY --chmod=775 healthcheck.sh /healthcheck.sh
@@ -66,7 +66,7 @@ RUN set -ex; \
libwebsockets \
\
shadow; \
useradd --system eturnal; \
useradd --system -u 1000 eturnal; \
apk del --no-cache \
shadow; \
\
@@ -85,15 +85,12 @@ RUN set -ex; \
/var/run/supervisord \
/usr/local/lib/janus/loggers; \
chown eturnal:eturnal -R \
/usr \
/opt/eturnal \
/etc/nats.conf \
/var/log/supervisord \
/var/run/supervisord; \
chmod 777 -R \
/tmp \
/conf \
/opt/eturnal \
/var/run/supervisord \
/var/log/supervisord; \
ln -s /opt/eturnal/bin/stun /usr/local/bin/stun; \

View File

@@ -86,9 +86,10 @@ internalsecret = the-shared-secret-for-internal-clients
# only be used while running the benchmark client against the server.
allowall = false
# Common shared secret for requests from and to the backend servers if
# "allowall" is enabled. This must be the same value as configured in the
# Nextcloud admin ui.
# Common shared secret for requests from and to the backend servers. Used if
# "allowall" is enabled or as fallback for individual backends that don't have
# their own secret set.
# This must be the same value as configured in the Nextcloud admin ui.
#secret = the-shared-secret-for-allowall
# Timeout in seconds for requests to the backend.
@@ -109,8 +110,9 @@ connectionsperhost = 8
# URL of the Nextcloud instance
#url = https://cloud.domain.invalid
# Shared secret for requests from and to the backend servers. This must be the
# same value as configured in the Nextcloud admin ui.
# Shared secret for requests from and to the backend servers. Leave empty to use
# the common shared secret from above.
# This must be the same value as configured in the Nextcloud admin ui.
#secret = the-shared-secret
# Limit the number of sessions that are allowed to connect to this backend.
@@ -129,8 +131,9 @@ connectionsperhost = 8
# URL of the Nextcloud instance
#url = https://cloud.otherdomain.invalid
# Shared secret for requests from and to the backend servers. This must be the
# same value as configured in the Nextcloud admin ui.
# Shared secret for requests from and to the backend servers. Leave empty to use
# the common shared secret from above.
# This must be the same value as configured in the Nextcloud admin ui.
#secret = the-shared-secret
[nats]

View File

@@ -19,8 +19,8 @@ elif [ -z "$INTERNAL_SECRET" ]; then
fi
set -x
IPv4_ADDRESS_TALK="$(dig nextcloud-aio-talk IN A +short | grep '^[0-9.]\+$' | sort | head -n1)"
IPv6_ADDRESS_TALK="$(dig nextcloud-aio-talk AAAA +short | grep '^[0-9a-f:]\+$' | sort | head -n1)"
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)"
set +x
# Turn

View File

@@ -78,6 +78,6 @@ class Admin implements ISettings {
* E.g.: 70
*/
public function getPriority(): int {
return 5;
return 0;
}
}

View File

@@ -2,10 +2,11 @@
This container bundles caddy and auto-configures it for you. It also covers https://github.com/nextcloud/all-in-one/tree/main/community-containers/vaultwarden by listening on `bw.$NC_DOMAIN`, if installed.
### Notes
- This container is incompatible with the [npmplus](https://github.com/nextcloud/all-in-one/tree/main/community-containers/npmplus) community container. So make sure that you do not enable both at the same time!
- 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.
- 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!
- See https://github.com/nextcloud/all-in-one/tree/main/community-containers how to add it to the AIO stack
- See https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers how to add it to the AIO stack
### Repository
https://github.com/szaimen/aio-caddy

View File

@@ -0,0 +1,39 @@
{
"aio_services_v1": [
{
"container_name": "nextcloud-aio-dlna",
"display_name": "DLNA",
"documentation": "https://github.com/nextcloud/all-in-one/tree/main/community-containers/dlna",
"image": "thanek/nextcloud-dlna",
"image_tag": "latest",
"internal_port": "host",
"restart": "unless-stopped",
"depends_on": [
"nextcloud-aio-database"
],
"environment": [
"NC_DOMAIN=%NC_DOMAIN%",
"NC_PORT=443",
"NEXTCLOUD_DLNA_SERVER_PORT=9999",
"NEXTCLOUD_DLNA_FRIENDLY_NAME=nextcloud-aio",
"NEXTCLOUD_DATA_DIR=/data",
"NEXTCLOUD_DB_TYPE=postgres",
"NEXTCLOUD_DB_HOST=%AIO_DATABASE_HOST%",
"NEXTCLOUD_DB_PORT=5432",
"NEXTCLOUD_DB_NAME=nextcloud_database",
"NEXTCLOUD_DB_USER=oc_nextcloud",
"NEXTCLOUD_DB_PASS=%DATABASE_PASSWORD%"
],
"secrets": [
"DATABASE_PASSWORD"
],
"volumes": [
{
"source": "%NEXTCLOUD_DATADIR%",
"destination": "/data",
"writeable": false
}
]
}
]
}

View File

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

View File

@@ -4,7 +4,7 @@ This container bundles fail2ban and auto-configures it for you in order to block
### Notes
- This is not working on Docker Desktop since it needs `network_mode: host` in order to work correctly.
- If you get an error like `"ip6tables v1.8.9 (legacy): can't initialize ip6tables table filter': Table does not exist (do you need to insmod?)"`, you need to enable ip6tables on your host via `sudo modprobe ip6table_filter`.
- See https://github.com/nextcloud/all-in-one/tree/main/community-containers how to add it to the AIO stack
- See https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers how to add it to the AIO stack
### Repository
https://github.com/szaimen/aio-fail2ban

View File

@@ -0,0 +1,34 @@
{
"aio_services_v1": [
{
"container_name": "nextcloud-aio-libretranslate",
"display_name": "LibreTranslate",
"documentation": "https://github.com/nextcloud/all-in-one/tree/main/community-containers/libretranslate",
"image": "szaimen/aio-libretranslate",
"image_tag": "v1",
"internal_port": "5000",
"restart": "unless-stopped",
"environment": [
"TZ=%TIMEZONE%"
],
"volumes": [
{
"source": "nextcloud_aio_libretranslate_db",
"destination": "/app/db",
"writeable": true
},
{
"source": "nextcloud_aio_libretranslate_models",
"destination": "/home/libretranslate/.local",
"writeable": true
}
],
"nextcloud_exec_commands": [
"php /var/www/html/occ app:install integration_libretranslate",
"php /var/www/html/occ app:enable integration_libretranslate",
"php /var/www/html/occ config:app:set integration_libretranslate host --value='http://nextcloud-aio-libretranslate'",
"php /var/www/html/occ config:app:set integration_libretranslate port --value='5000'"
]
}
]
}

View File

@@ -0,0 +1,19 @@
## LibreTranslate
This container bundles LibreTranslate and auto-configures it for you.
### Notes
- Please note that this community container is currently not working since its integration app is not yet compatible with Nextcloud 27 (Hub 6). You can follow the progress here: https://github.com/v1r0x/integration_libretranslate/issues/1
- After the initial startup is done, you might want to change the default language to translate from and to via:
```bash
# Adjust the values `en` and `de` in commands below accordingly
sudo docker exec --user www-data nextcloud-aio-nextcloud php occ config:app:set integration_libretranslate from_lang --value="en"
sudo docker exec --user www-data nextcloud-aio-nextcloud php occ config:app:set integration_libretranslate to_lang --value="de"
```
- See https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers how to add it to the AIO stack
### Repository
https://github.com/szaimen/aio-libretranslate
### Maintainer
https://github.com/szaimen

View File

@@ -0,0 +1,45 @@
{
"aio_services_v1": [
{
"container_name": "nextcloud-aio-local-ai",
"display_name": "Local AI",
"documentation": "https://github.com/nextcloud/all-in-one/tree/main/community-containers/local-ai",
"image": "szaimen/aio-local-ai",
"image_tag": "v1",
"internal_port": "8080",
"restart": "unless-stopped",
"environment": [
"TZ=%TIMEZONE%",
"MODELS_PATH=/models"
],
"volumes": [
{
"source": "nextcloud_aio_localai_models",
"destination": "/models",
"writeable": true
},
{
"source": "nextcloud_aio_localai_images",
"destination": "/tmp/generated/images/",
"writeable": true
},
{
"source": "%NEXTCLOUD_DATADIR%",
"destination": "/nextcloud",
"writeable": false
}
],
"nextcloud_exec_commands": [
"mkdir '/mnt/ncdata/admin/files/nextcloud-aio-local-ai'",
"touch '/mnt/ncdata/admin/files/nextcloud-aio-local-ai/models.yaml'",
"echo 'Scanning nextcloud-aio-local-ai folder for admin user...'",
"php /var/www/html/occ files:scan --path='/admin/files/nextcloud-aio-local-ai'",
"php /var/www/html/occ app:install integration_openai",
"php /var/www/html/occ app:enable integration_openai",
"php /var/www/html/occ config:app:set integration_openai url --value http://nextcloud-aio-local-ai:8080",
"php /var/www/html/occ app:install assistant",
"php /var/www/html/occ app:enable assistant"
]
}
]
}

View File

@@ -0,0 +1,27 @@
## Local AI
This container bundles Local AI and auto-configures it for you.
### Notes
- Make sure to have enough storage space available. This container alone needs ~14GB storage on x64, on arm64 only ~4GB. 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
# Port of OpenAI's Whisper model in C/C++
- url: github:go-skynet/model-gallery/whisper-base.yaml
name: whisper-1
# A commercially licensable model based on GPT-J and trained by Nomic AI on the v0 GPT4All dataset.
- url: github:go-skynet/model-gallery/gpt4all-j.yaml
name: gpt4all-j
```
- 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
### Repository
https://github.com/szaimen/aio-local-ai
### Maintainer
https://github.com/szaimen

View File

@@ -0,0 +1,32 @@
{
"aio_services_v1": [
{
"container_name": "nextcloud-aio-npmplus",
"display_name": "NPMplus",
"documentation": "https://github.com/nextcloud/all-in-one/tree/main/community-containers/npmplus",
"image": "zoeyvid/npmplus",
"image_tag": "latest",
"internal_port": "host",
"restart": "unless-stopped",
"environment": [
"TZ=%TIMEZONE%",
"NC_AIO=true",
"NC_DOMAIN=%NC_DOMAIN%"
],
"volumes": [
{
"source": "nextcloud_aio_npmplus",
"destination": "/data",
"writeable": true
}
],
"backup_volumes": [
"nextcloud_aio_npmplus"
],
"aio_variables": [
"apache_ip_binding=127.0.0.1",
"apache_port=11000"
]
}
]
}

View File

@@ -0,0 +1,22 @@
## NPMplus
This container contains a fork of the Nginx Proxy Manager, which is a WebUI for nginx. It will also automatically create a config and cert for AIO.
### Notes
- This container is incompatible with the [caddy](https://github.com/nextcloud/all-in-one/tree/main/community-containers/caddy) community container. So make sure that you do not enable both at the same time!
- Only works on linux since it uses network mode host
- You can ignore the NPM configuration of the reverse-proxy.md. The NPMplus fork already contains the changes of the advanced tab.
- Make sure that no other service is using port `443 (tcp/upd)` or `81 (tcp)` on your host as otherwise the containers will fail to start. You can check this with `sudo netstat -tulpn | grep "443\|81"` before installing AIO.
- Please change the default login data first, after you can read inside the logs that the default config for AIO is created and there are no errors.
- After the container was started the first time, please check the logs for errors. Then you can open NPMplus on `https://<ip>:81` and change the password.
- The default password is `iArhP1j7p1P6TA92FA2FMbbUGYqwcYzxC4AVEe12Wbi94FY9gNN62aKyF1shrvG4NycjjX9KfmDQiwkLZH1ZDR9xMjiG2QmoHXi` and the default email is `admin@example.com`
- If you want to use NPMplus behind a domain and outside localhost just create a new proxy host inside the NPMplus which proxies to `https`, `127.0.0.1` and port `81` - all other settings should be the same as for the AIO host.
- If you want to set env options from this [compose.yaml](https://github.com/ZoeyVid/NPMplus/blob/develop/compose.yaml), please set them inside the `.env` file which you can find in the `nextcloud_aio_npmplus` volume
- The data (certs, configs, etc.) of NPMplus will be automatically included in AIOs backup solution!
- **Important:** you always need to enable https for your hosts, since `DISABLE_HTTP` is set to true
- See https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers how to add it to the AIO stack
### Repository and Documentation
https://github.com/ZoeyVid/NPMplus
### Maintainer
https://github.com/Zoey2936

View File

@@ -8,6 +8,7 @@
"image_tag": "latest",
"internal_port": "8573",
"restart": "unless-stopped",
"init": false,
"ports": [
{
"ip_binding": "",

View File

@@ -9,7 +9,7 @@ This container bundles pi-hole and auto-configures it for you.
- After adding and starting the container, you can visit `http://ip.address.of.this.server:8573` in order to log in with the admin key that you can retrieve when running `sudo docker inspect nextcloud-aio-pihole | grep WEBPASSWORD`. There you can configure the pi-hole setup. Also you can add local dns records.
- You can configure your home network now to use pi-hole as its dns server by configuring your router.
- Additionally, you can configure the docker daemon to use that by editing `/etc/docker/daemon.json` and adding ` { "dns" : [ "ip.address.of.this.server" , "8.8.8.8" ] } `.
- See https://github.com/nextcloud/all-in-one/tree/main/community-containers how to add it to the AIO stack
- See https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers how to add it to the AIO stack
### Repository
https://github.com/pi-hole/docker-pi-hole

View File

@@ -5,9 +5,9 @@ This container bundles Plex and auto-configures it for you.
- This is not working on arm64 since Plex does only provide x64 docker images.
- This is not working on Docker Desktop since it needs `network_mode: host` in order to work correctly.
- If you have a firewall like ufw configured, you might need to open all Plex ports in there first in order to make it work. Especially port 32400 is important!
- After adding and starting the container, you need to visit http://ip.address.of.server:32400 in order to claim your server with a plex account
- After adding and starting the container, you need to visit http://ip.address.of.server:32400/manage in order to claim your server with a plex account
- The data of Plex will be automatically included in AIOs backup solution!
- See https://github.com/nextcloud/all-in-one/tree/main/community-containers how to add it to the AIO stack
- See https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers how to add it to the AIO stack
### Repository
https://github.com/plexinc/pms-docker

View File

@@ -12,4 +12,14 @@ Before adding any additional container, make sure to create a backup via the AIO
Afterwards, you might want to add additional community containers to the default AIO stack. You can do so by adding `--env AIO_COMMUNITY_CONTAINERS="container1 container2"` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`! If it was started already, you will need to stop the mastercontainer, remove it (no data will be lost) and recreate it using the docker run command that you initially used) and customize the value to your fitting. It must match the folder names in this directory! ⚠️⚠️⚠️ Please review the folder for documentation on each of the containers before adding them! Not reviewing the documentation for each of them first might break starting the AIO containers because e.g. fail2ban only works on Linux and not on Docker Desktop!
## How to add containers?
Simply submit a PR by creating a new folder in this directory: https://github.com/nextcloud/all-in-one/tree/main/community-containers with the name of your container. It must include a json file with the same name and with correct syntax and a readme.md with additional information. You might get inspired by caddy, fail2ban, plex, pi-hole or vaultwarden (subfolders in this directory). For a full-blown example of the json file, see https://github.com/nextcloud/all-in-one/blob/main/php/containers.json. The json-schema that it validates against can be found here: https://github.com/nextcloud/all-in-one/blob/main/php/containers-schema.json.
Simply submit a PR by creating a new folder in this directory: https://github.com/nextcloud/all-in-one/tree/main/community-containers with the name of your container. It must include a json file with the same name and with correct syntax and a readme.md with additional information. You might get inspired by caddy, fail2ban, local-ai, libretranslate, plex, pi-hole or vaultwarden (subfolders in this directory). For a full-blown example of the json file, see https://github.com/nextcloud/all-in-one/blob/main/php/containers.json. The json-schema that it validates against can be found here: https://github.com/nextcloud/all-in-one/blob/main/php/containers-schema.json.
### Is there a list of ideas for new community containers?
Yes, see [this list](https://github.com/nextcloud/all-in-one/discussions/categories/ideas?discussions_q=is%3Aopen+category%3AIdeas+label%3A%22help+wanted%22) for already existing ideas for new community containers. Feel free to pick one up and add it to this folder by following the instructions above.
## How to remove containers from AIOs stack?
In some cases, you might want to remove some community containers from the AIO stack again. Here is how to do this.
First, do a backup from the AIO interface in order to save the current state. Do not start the containers again afterwards! Now simply recreate the mastercontainer and remove any container from the `--env AIO_COMMUNITY_CONTAINERS="container1 container2"` that you do not actually need. If you want to remove all, simply use `--env AIO_COMMUNITY_CONTAINERS=" "`.
After removing the containers, there might be some data left on your server that you might want to remove. You can get rid of the data by first running `sudo docker rm nextcloud-aio-container1`, (adjust `container1` accordingly) per community-container that you removed. Then run `sudo docker image prune -a` in order to remove all images that are not used anymore. As last step you can get rid of persistent data of these containers that is stored in volumes. You can check if there is some by running `sudo docker volume ls` and look for any volume that matches the ones that you removed. If so, you can remove them with `sudo docker volume rm nextcloud_aio_volume-id` (of course you need to adjust the `volume-id`).

View File

@@ -7,7 +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.
- See https://github.com/nextcloud/all-in-one/tree/main/community-containers how to add it to the AIO stack
- See https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers how to add it to the AIO stack
### Repository
https://github.com/dani-garcia/vaultwarden

View File

@@ -32,6 +32,8 @@ services:
# - WATCHTOWER_DOCKER_SOCKET_PATH=/var/run/docker.sock # Needs to be specified if the docker socket on the host is not located in the default '/var/run/docker.sock'. Otherwise mastercontainer updates will fail. For macos it needs to be '/var/run/docker.sock'
# 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"]
# # 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
@@ -47,7 +49,7 @@ services:
# - ./sites:/srv
# network_mode: "host"
volumes:
volumes: # If you want to store the data on a different drive, see https://github.com/nextcloud/all-in-one#how-to-store-the-filesinstallation-on-a-separate-drive
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

View File

@@ -8,7 +8,8 @@ You can run AIO with docker rootless by following the steps below.
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. 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).
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.
**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).

View File

@@ -93,6 +93,7 @@ services:
init: true
expose:
- "9000"
- "9001"
volumes:
- nextcloud_aio_nextcloud:/var/www/html:rw
- ${NEXTCLOUD_DATADIR}:/mnt/ncdata:rw
@@ -142,6 +143,8 @@ services:
- TALK_RECORDING_HOST=nextcloud-aio-talk-recording
- FULLTEXTSEARCH_PASSWORD=${FULLTEXTSEARCH_PASSWORD}
- REMOVE_DISABLED_APPS=${REMOVE_DISABLED_APPS}
- APACHE_PORT=${APACHE_PORT}
- APACHE_IP_BINDING=${APACHE_IP_BINDING}
restart: unless-stopped
networks:
- nextcloud-aio
@@ -252,7 +255,7 @@ services:
nextcloud-aio-clamav:
image: nextcloud/aio-clamav:latest
init: true
init: false
expose:
- "3310"
environment:

View File

@@ -11,7 +11,7 @@ You can run the containers that are build for AIO with docker-compose. This come
- You lose the AIO interface
- You lose update notifications and automatic updates
- You lose all AIO backup and restore features
- You lose all community containers: https://github.com/nextcloud/all-in-one/tree/main/community-containers
- You lose all community containers: https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers
- **You need to know what you are doing, especially when modifying the compose.yaml file**
- For updating, you need to strictly follow the at the bottom described update routine
- Probably more

View File

@@ -18,6 +18,7 @@ The procedure for migrating only the files works like this:
1. Next, run `sudo docker run --rm --volume nextcloud_aio_nextcloud_data:/mnt/ncdata:rw alpine chown -R 33:0 /mnt/ncdata/` and `sudo docker run --rm --volume nextcloud_aio_nextcloud_data:/mnt/ncdata:rw alpine chmod -R 750 /mnt/ncdata/` to apply the correct permissions. (Or if `NEXTCLOUD_DATADIR` was provided, apply `chown -R 33:0` and `chmod -R 750` to the chosen path.)
1. Start the containers again and wait until all containers are running
1. Run `sudo docker exec --user www-data -it nextcloud-aio-nextcloud php occ files:scan-app-data && sudo docker exec --user www-data -it nextcloud-aio-nextcloud php occ files:scan --all` in order to scan all files in the datadirectory.
1. If the restored data is older than any clients you want to continue to sync, for example if the server was down for a period of time during migration, you may want to take a look at [Synchronising with clients after migration](/migration.md#synchronising-with-clients-after-migration) below.
## Migrate the files and the database
**Please note**: this is much more complicated than migrating only the files and also not as failproof so be warned! Also, this will not work on former snap installations as the snap is read-only and thus you cannot install the necessary `pdo_pgsql` PHP extension. So if migrating from snap, you will need to use one of the other methods. However you could try to ask if the snaps maintainer could add this one small PHP extension to the snap here: https://github.com/nextcloud-snap/nextcloud-snap/issues which would allow for an easy migration.
@@ -84,5 +85,21 @@ The procedure for migrating the files and the database works like this:
Now the whole Nextcloud instance should work again.<br>
If not, feel free to restore the AIO instance from backup and start at step 8 again.
If the restored data is older than any clients you want to continue to sync, for example if the server was down for a period of time during migration, you may want to take a look at [Synchronising with clients after migration](/migration.md#synchronising-with-clients-after-migration) below.
## Use the user_migration app
A new way since the Nextcloud update to 24 is to use the new [user_migration app](https://apps.nextcloud.com/apps/user_migration#app-gallery). It allows to export the most important data on one instance and import it on a different Nextcloud instance. For that, you need to install and enable the user_migration app on your old instance, trigger the export for the user, create the user on the new instance, log in with that user and import the archive that was created during the export. This then needs to be done for each user that you want to migrate.
If the restored data is older than any clients you want to continue to sync, for example if the server was down for a period of time during migration, you may want to take a look at [Synchronising with clients after migration](/migration.md#synchronising-with-clients-after-migration) below.
# Synchronising with clients after migration
#### From https://docs.nextcloud.com/server/latest/admin_manual/maintenance/restore.html#synchronising-with-clients-after-data-recovery
By default the Nextcloud server is considered the authoritative source for the data. If the data on the server and the client differs clients will default to fetching the data from the server.
If the recovered backup is outdated the state of the clients may be more up to date than the state of the server. In this case also make sure to run `sudo docker exec --user www-data -it nextcloud-aio-nextcloud php occ maintenance:data-fingerprint` command afterwards. It changes the logic of the synchronisation algorithm to try an recover as much data as possible. Files missing on the server are therefore recovered from the clients and in case of different content the users will be asked.
>[!Note]
>The usage of maintenance:data-fingerprint can cause conflict dialogues and difficulties deleting files on the client. Therefore its only recommended to prevent dataloss if the backup was outdated.
If you are running multiple application servers you will need to make sure the config files are synced between them so that the updated data-fingerprint is applied on all instances.

View File

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

View File

@@ -10,7 +10,7 @@ You can run the containers that are build for AIO with Kubernetes using this Hel
- You lose the AIO interface
- You lose update notifications and automatic updates
- You lose all AIO backup and restore features
- You lose all community containers: https://github.com/nextcloud/all-in-one/tree/main/community-containers
- You lose all community containers: https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers
- **You need to know what you are doing**
- For updating, you need to strictly follow the at the bottom described update routine
- You need to monitor yourself if the volumes have enough free space and increase them if they don't by adjusting their size in values.yaml

View File

@@ -3,7 +3,7 @@ kind: Deployment
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
kompose.version: 1.30.0 (9d8dcb518)
kompose.version: 1.31.2 (a92241f79)
labels:
io.kompose.service: nextcloud-aio-apache
name: nextcloud-aio-apache
@@ -17,7 +17,7 @@ spec:
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
kompose.version: 1.30.0 (9d8dcb518)
kompose.version: 1.31.2 (a92241f79)
labels:
io.kompose.network/nextcloud-aio: "true"
io.kompose.service: nextcloud-aio-apache
@@ -30,22 +30,7 @@ spec:
- "777"
- /nextcloud-aio-nextcloud
- /nextcloud-aio-apache
- /nextcloud-aio-apache-tmpfs0
- /nextcloud-aio-apache-tmpfs1
- /nextcloud-aio-apache-tmpfs2
- /nextcloud-aio-apache-tmpfs3
- /nextcloud-aio-apache-tmpfs4
volumeMounts:
- name: nextcloud-aio-apache-tmpfs4
mountPath: /nextcloud-aio-apache-tmpfs4
- name: nextcloud-aio-apache-tmpfs3
mountPath: /nextcloud-aio-apache-tmpfs3
- name: nextcloud-aio-apache-tmpfs2
mountPath: /nextcloud-aio-apache-tmpfs2
- name: nextcloud-aio-apache-tmpfs1
mountPath: /nextcloud-aio-apache-tmpfs1
- name: nextcloud-aio-apache-tmpfs0
mountPath: /nextcloud-aio-apache-tmpfs0
- name: nextcloud-aio-apache
mountPath: /nextcloud-aio-apache
- name: nextcloud-aio-nextcloud
@@ -72,33 +57,19 @@ spec:
value: nextcloud-aio-talk
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-apache:20230916_091439-latest
image: nextcloud/aio-apache:develop
name: nextcloud-aio-apache
ports:
- containerPort: {{ .Values.APACHE_PORT }}
hostPort: {{ .Values.APACHE_PORT }}
protocol: TCP
- containerPort: {{ .Values.APACHE_PORT }}
hostPort: {{ .Values.APACHE_PORT }}
protocol: UDP
securityContext:
readOnlyRootFilesystem: true
volumeMounts:
- mountPath: /var/www/html
name: nextcloud-aio-nextcloud
readOnly: true
- mountPath: /mnt/data
name: nextcloud-aio-apache
- mountPath: /var/log/supervisord
name: nextcloud-aio-apache-tmpfs0
- mountPath: /var/run/supervisord
name: nextcloud-aio-apache-tmpfs1
- mountPath: /usr/local/apache2/logs
name: nextcloud-aio-apache-tmpfs2
- mountPath: /tmp
name: nextcloud-aio-apache-tmpfs3
- mountPath: /home/www-data
name: nextcloud-aio-apache-tmpfs4
volumes:
- name: nextcloud-aio-nextcloud
persistentVolumeClaim:
@@ -106,13 +77,3 @@ spec:
- name: nextcloud-aio-apache
persistentVolumeClaim:
claimName: nextcloud-aio-apache
- emptyDir: {}
name: nextcloud-aio-apache-tmpfs0
- emptyDir: {}
name: nextcloud-aio-apache-tmpfs1
- emptyDir: {}
name: nextcloud-aio-apache-tmpfs2
- emptyDir: {}
name: nextcloud-aio-apache-tmpfs3
- emptyDir: {}
name: nextcloud-aio-apache-tmpfs4

View File

@@ -3,7 +3,7 @@ kind: Service
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
kompose.version: 1.30.0 (9d8dcb518)
kompose.version: 1.31.2 (a92241f79)
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.30.0 (9d8dcb518)
kompose.version: 1.31.2 (a92241f79)
labels:
io.kompose.service: nextcloud-aio-clamav
name: nextcloud-aio-clamav
@@ -18,7 +18,7 @@ spec:
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
kompose.version: 1.30.0 (9d8dcb518)
kompose.version: 1.31.2 (a92241f79)
labels:
io.kompose.network/nextcloud-aio: "true"
io.kompose.service: nextcloud-aio-clamav
@@ -30,16 +30,7 @@ spec:
- chmod
- "777"
- /nextcloud-aio-clamav
- /nextcloud-aio-clamav-tmpfs0
- /nextcloud-aio-clamav-tmpfs1
- /nextcloud-aio-clamav-tmpfs2
volumeMounts:
- name: nextcloud-aio-clamav-tmpfs2
mountPath: /nextcloud-aio-clamav-tmpfs2
- name: nextcloud-aio-clamav-tmpfs1
mountPath: /nextcloud-aio-clamav-tmpfs1
- name: nextcloud-aio-clamav-tmpfs0
mountPath: /nextcloud-aio-clamav-tmpfs0
- name: nextcloud-aio-clamav
mountPath: /nextcloud-aio-clamav
containers:
@@ -48,31 +39,16 @@ spec:
value: "90"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-clamav:20230916_091439-latest
image: nextcloud/aio-clamav:develop
name: nextcloud-aio-clamav
ports:
- containerPort: 3310
hostPort: 3310
protocol: TCP
securityContext:
readOnlyRootFilesystem: true
volumeMounts:
- mountPath: /var/lib/clamav
name: nextcloud-aio-clamav
- mountPath: /var/lock
name: nextcloud-aio-clamav-tmpfs0
- mountPath: /var/log/clamav
name: nextcloud-aio-clamav-tmpfs1
- mountPath: /tmp
name: nextcloud-aio-clamav-tmpfs2
volumes:
- name: nextcloud-aio-clamav
persistentVolumeClaim:
claimName: nextcloud-aio-clamav
- emptyDir: {}
name: nextcloud-aio-clamav-tmpfs0
- emptyDir: {}
name: nextcloud-aio-clamav-tmpfs1
- emptyDir: {}
name: nextcloud-aio-clamav-tmpfs2
{{- end }}

View File

@@ -4,7 +4,7 @@ kind: Service
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
kompose.version: 1.30.0 (9d8dcb518)
kompose.version: 1.31.2 (a92241f79)
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.30.0 (9d8dcb518)
kompose.version: 1.31.2 (a92241f79)
labels:
io.kompose.service: nextcloud-aio-collabora
name: nextcloud-aio-collabora
@@ -18,7 +18,7 @@ spec:
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
kompose.version: 1.30.0 (9d8dcb518)
kompose.version: 1.31.2 (a92241f79)
labels:
io.kompose.network/nextcloud-aio: "true"
io.kompose.service: nextcloud-aio-collabora
@@ -37,10 +37,9 @@ 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: nextcloud/aio-collabora:20230916_091439-latest
image: nextcloud/aio-collabora:develop
name: nextcloud-aio-collabora
ports:
- containerPort: 9980
hostPort: 9980
protocol: TCP
{{- end }}

View File

@@ -4,7 +4,7 @@ kind: Service
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
kompose.version: 1.30.0 (9d8dcb518)
kompose.version: 1.31.2 (a92241f79)
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.30.0 (9d8dcb518)
kompose.version: 1.31.2 (a92241f79)
labels:
io.kompose.service: nextcloud-aio-database
name: nextcloud-aio-database
@@ -17,7 +17,7 @@ spec:
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
kompose.version: 1.30.0 (9d8dcb518)
kompose.version: 1.31.2 (a92241f79)
labels:
io.kompose.network/nextcloud-aio: "true"
io.kompose.service: nextcloud-aio-database
@@ -31,10 +31,7 @@ spec:
- /nextcloud-aio-database/data
- /nextcloud-aio-database
- /nextcloud-aio-database-dump
- /nextcloud-aio-database-tmpfs0
volumeMounts:
- name: nextcloud-aio-database-tmpfs0
mountPath: /nextcloud-aio-database-tmpfs0
- name: nextcloud-aio-database-dump
mountPath: /nextcloud-aio-database-dump
- name: nextcloud-aio-database
@@ -47,10 +44,7 @@ spec:
- "-R"
- /nextcloud-aio-database
- /nextcloud-aio-database-dump
- /nextcloud-aio-database-tmpfs0
volumeMounts:
- name: nextcloud-aio-database-tmpfs0
mountPath: /nextcloud-aio-database-tmpfs0
- name: nextcloud-aio-database-dump
mountPath: /nextcloud-aio-database-dump
- name: nextcloud-aio-database
@@ -67,22 +61,17 @@ spec:
value: nextcloud
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-postgresql:20230916_091439-latest
image: nextcloud/aio-postgresql:develop
name: nextcloud-aio-database
ports:
- containerPort: 5432
hostPort: 5432
protocol: TCP
securityContext:
readOnlyRootFilesystem: true
volumeMounts:
- mountPath: /var/lib/postgresql/data
subPath: data
name: nextcloud-aio-database
- mountPath: /mnt/data
name: nextcloud-aio-database-dump
- mountPath: /var/run/postgresql
name: nextcloud-aio-database-tmpfs0
terminationGracePeriodSeconds: 1800
volumes:
- name: nextcloud-aio-database
@@ -91,5 +80,3 @@ spec:
- name: nextcloud-aio-database-dump
persistentVolumeClaim:
claimName: nextcloud-aio-database-dump
- emptyDir: {}
name: nextcloud-aio-database-tmpfs0

View File

@@ -3,7 +3,7 @@ kind: Service
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
kompose.version: 1.30.0 (9d8dcb518)
kompose.version: 1.31.2 (a92241f79)
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.30.0 (9d8dcb518)
kompose.version: 1.31.2 (a92241f79)
labels:
io.kompose.service: nextcloud-aio-fulltextsearch
name: nextcloud-aio-fulltextsearch
@@ -18,7 +18,7 @@ spec:
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
kompose.version: 1.30.0 (9d8dcb518)
kompose.version: 1.31.2 (a92241f79)
labels:
io.kompose.network/nextcloud-aio: "true"
io.kompose.service: nextcloud-aio-fulltextsearch
@@ -55,11 +55,10 @@ spec:
value: basic
- name: xpack.security.enabled
value: "false"
image: nextcloud/aio-fulltextsearch:20230916_091439-latest
image: nextcloud/aio-fulltextsearch:develop
name: nextcloud-aio-fulltextsearch
ports:
- containerPort: 9200
hostPort: 9200
protocol: TCP
volumeMounts:
- mountPath: /usr/share/elasticsearch/data

View File

@@ -4,7 +4,7 @@ kind: Service
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
kompose.version: 1.30.0 (9d8dcb518)
kompose.version: 1.31.2 (a92241f79)
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.30.0 (9d8dcb518)
kompose.version: 1.31.2 (a92241f79)
labels:
io.kompose.service: nextcloud-aio-imaginary
name: nextcloud-aio-imaginary
@@ -18,40 +18,22 @@ spec:
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
kompose.version: 1.30.0 (9d8dcb518)
kompose.version: 1.31.2 (a92241f79)
labels:
io.kompose.network/nextcloud-aio: "true"
io.kompose.service: nextcloud-aio-imaginary
spec:
initContainers:
- name: init-volumes
image: alpine
command:
- chmod
- "777"
- /nextcloud-aio-imaginary-tmpfs0
volumeMounts:
- name: nextcloud-aio-imaginary-tmpfs0
mountPath: /nextcloud-aio-imaginary-tmpfs0
containers:
- env:
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-imaginary:20230916_091439-latest
image: nextcloud/aio-imaginary:develop
name: nextcloud-aio-imaginary
ports:
- containerPort: 9000
hostPort: 9000
protocol: TCP
securityContext:
capabilities:
add:
- SYS_NICE
readOnlyRootFilesystem: true
volumeMounts:
- mountPath: /tmp
name: nextcloud-aio-imaginary-tmpfs0
volumes:
- emptyDir: {}
name: nextcloud-aio-imaginary-tmpfs0
{{- end }}

View File

@@ -4,7 +4,7 @@ kind: Service
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
kompose.version: 1.30.0 (9d8dcb518)
kompose.version: 1.31.2 (a92241f79)
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.30.0 (9d8dcb518)
kompose.version: 1.31.2 (a92241f79)
labels:
io.kompose.service: nextcloud-aio-nextcloud
name: nextcloud-aio-nextcloud
@@ -17,7 +17,7 @@ spec:
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
kompose.version: 1.30.0 (9d8dcb518)
kompose.version: 1.31.2 (a92241f79)
labels:
io.kompose.network/nextcloud-aio: "true"
io.kompose.service: nextcloud-aio-nextcloud
@@ -45,6 +45,8 @@ spec:
value: "{{ .Values.NEXTCLOUD_PASSWORD }}"
- name: ADMIN_USER
value: admin
- name: APACHE_PORT
value: "{{ .Values.APACHE_PORT }}"
- name: CLAMAV_ENABLED
value: "{{ .Values.CLAMAV_ENABLED }}"
- name: CLAMAV_HOST
@@ -121,11 +123,12 @@ spec:
value: "{{ .Values.TIMEZONE }}"
- name: UPDATE_NEXTCLOUD_APPS
value: "{{ .Values.UPDATE_NEXTCLOUD_APPS }}"
image: nextcloud/aio-nextcloud:20230916_091439-latest
image: nextcloud/aio-nextcloud:develop
name: nextcloud-aio-nextcloud
ports:
- containerPort: 9000
hostPort: 9000
protocol: TCP
- containerPort: 9001
protocol: TCP
volumeMounts:
- mountPath: /var/www/html

View File

@@ -3,7 +3,7 @@ kind: Service
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
kompose.version: 1.30.0 (9d8dcb518)
kompose.version: 1.31.2 (a92241f79)
labels:
io.kompose.service: nextcloud-aio-nextcloud
name: nextcloud-aio-nextcloud
@@ -13,5 +13,8 @@ spec:
- name: "9000"
port: 9000
targetPort: 9000
- name: "9001"
port: 9001
targetPort: 9001
selector:
io.kompose.service: 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.30.0 (9d8dcb518)
kompose.version: 1.31.2 (a92241f79)
labels:
io.kompose.service: nextcloud-aio-notify-push
name: nextcloud-aio-notify-push
@@ -17,7 +17,7 @@ spec:
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
kompose.version: 1.30.0 (9d8dcb518)
kompose.version: 1.31.2 (a92241f79)
labels:
io.kompose.network/nextcloud-aio: "true"
io.kompose.service: nextcloud-aio-notify-push
@@ -50,14 +50,11 @@ spec:
value: nextcloud-aio-redis
- name: REDIS_HOST_PASSWORD
value: "{{ .Values.REDIS_PASSWORD }}"
image: nextcloud/aio-notify-push:20230916_091439-latest
image: nextcloud/aio-notify-push:develop
name: nextcloud-aio-notify-push
ports:
- containerPort: 7867
hostPort: 7867
protocol: TCP
securityContext:
readOnlyRootFilesystem: true
volumeMounts:
- mountPath: /nextcloud
name: nextcloud-aio-nextcloud

View File

@@ -3,7 +3,7 @@ kind: Service
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
kompose.version: 1.30.0 (9d8dcb518)
kompose.version: 1.31.2 (a92241f79)
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.30.0 (9d8dcb518)
kompose.version: 1.31.2 (a92241f79)
labels:
io.kompose.service: nextcloud-aio-onlyoffice
name: nextcloud-aio-onlyoffice
@@ -18,7 +18,7 @@ spec:
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
kompose.version: 1.30.0 (9d8dcb518)
kompose.version: 1.31.2 (a92241f79)
labels:
io.kompose.network/nextcloud-aio: "true"
io.kompose.service: nextcloud-aio-onlyoffice
@@ -43,11 +43,10 @@ spec:
value: "{{ .Values.ONLYOFFICE_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-onlyoffice:20230916_091439-latest
image: nextcloud/aio-onlyoffice:develop
name: nextcloud-aio-onlyoffice
ports:
- containerPort: 80
hostPort: 80
protocol: TCP
volumeMounts:
- mountPath: /var/lib/onlyoffice

View File

@@ -4,7 +4,7 @@ kind: Service
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
kompose.version: 1.30.0 (9d8dcb518)
kompose.version: 1.31.2 (a92241f79)
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.30.0 (9d8dcb518)
kompose.version: 1.31.2 (a92241f79)
labels:
io.kompose.service: nextcloud-aio-redis
name: nextcloud-aio-redis
@@ -17,7 +17,7 @@ spec:
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
kompose.version: 1.30.0 (9d8dcb518)
kompose.version: 1.31.2 (a92241f79)
labels:
io.kompose.network/nextcloud-aio: "true"
io.kompose.service: nextcloud-aio-redis
@@ -38,14 +38,11 @@ spec:
value: "{{ .Values.REDIS_PASSWORD }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-redis:20230916_091439-latest
image: nextcloud/aio-redis:develop
name: nextcloud-aio-redis
ports:
- containerPort: 6379
hostPort: 6379
protocol: TCP
securityContext:
readOnlyRootFilesystem: true
volumeMounts:
- mountPath: /data
name: nextcloud-aio-redis

View File

@@ -3,7 +3,7 @@ kind: Service
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
kompose.version: 1.30.0 (9d8dcb518)
kompose.version: 1.31.2 (a92241f79)
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.30.0 (9d8dcb518)
kompose.version: 1.31.2 (a92241f79)
labels:
io.kompose.service: nextcloud-aio-talk
name: nextcloud-aio-talk
@@ -18,33 +18,11 @@ spec:
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
kompose.version: 1.30.0 (9d8dcb518)
kompose.version: 1.31.2 (a92241f79)
labels:
io.kompose.network/nextcloud-aio: "true"
io.kompose.service: nextcloud-aio-talk
spec:
initContainers:
- name: init-volumes
image: alpine
command:
- chmod
- "777"
- /nextcloud-aio-talk-tmpfs0
- /nextcloud-aio-talk-tmpfs1
- /nextcloud-aio-talk-tmpfs2
- /nextcloud-aio-talk-tmpfs3
- /nextcloud-aio-talk-tmpfs4
volumeMounts:
- name: nextcloud-aio-talk-tmpfs4
mountPath: /nextcloud-aio-talk-tmpfs4
- name: nextcloud-aio-talk-tmpfs3
mountPath: /nextcloud-aio-talk-tmpfs3
- name: nextcloud-aio-talk-tmpfs2
mountPath: /nextcloud-aio-talk-tmpfs2
- name: nextcloud-aio-talk-tmpfs1
mountPath: /nextcloud-aio-talk-tmpfs1
- name: nextcloud-aio-talk-tmpfs0
mountPath: /nextcloud-aio-talk-tmpfs0
containers:
- env:
- name: INTERNAL_SECRET
@@ -59,40 +37,13 @@ spec:
value: "{{ .Values.TURN_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-talk:20230916_091439-latest
image: nextcloud/aio-talk:develop
name: nextcloud-aio-talk
ports:
- containerPort: {{ .Values.TALK_PORT }}
hostPort: {{ .Values.TALK_PORT }}
protocol: TCP
- containerPort: {{ .Values.TALK_PORT }}
hostPort: {{ .Values.TALK_PORT }}
protocol: UDP
- containerPort: 8081
hostPort: 8081
protocol: TCP
securityContext:
readOnlyRootFilesystem: true
volumeMounts:
- mountPath: /var/log/supervisord
name: nextcloud-aio-talk-tmpfs0
- mountPath: /var/run/supervisord
name: nextcloud-aio-talk-tmpfs1
- mountPath: /opt/eturnal/run
name: nextcloud-aio-talk-tmpfs2
- mountPath: /conf
name: nextcloud-aio-talk-tmpfs3
- mountPath: /tmp
name: nextcloud-aio-talk-tmpfs4
volumes:
- emptyDir: {}
name: nextcloud-aio-talk-tmpfs0
- emptyDir: {}
name: nextcloud-aio-talk-tmpfs1
- emptyDir: {}
name: nextcloud-aio-talk-tmpfs2
- emptyDir: {}
name: nextcloud-aio-talk-tmpfs3
- emptyDir: {}
name: nextcloud-aio-talk-tmpfs4
{{- end }}

View File

@@ -4,7 +4,7 @@ kind: Deployment
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
kompose.version: 1.30.0 (9d8dcb518)
kompose.version: 1.31.2 (a92241f79)
labels:
io.kompose.service: nextcloud-aio-talk-recording
name: nextcloud-aio-talk-recording
@@ -18,24 +18,11 @@ spec:
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
kompose.version: 1.30.0 (9d8dcb518)
kompose.version: 1.31.2 (a92241f79)
labels:
io.kompose.network/nextcloud-aio: "true"
io.kompose.service: nextcloud-aio-talk-recording
spec:
initContainers:
- name: init-volumes
image: alpine
command:
- chmod
- "777"
- /nextcloud-aio-talk-recording-tmpfs0
- /nextcloud-aio-talk-recording-tmpfs1
volumeMounts:
- name: nextcloud-aio-talk-recording-tmpfs1
mountPath: /nextcloud-aio-talk-recording-tmpfs1
- name: nextcloud-aio-talk-recording-tmpfs0
mountPath: /nextcloud-aio-talk-recording-tmpfs0
containers:
- env:
- name: INTERNAL_SECRET
@@ -46,22 +33,9 @@ spec:
value: "{{ .Values.RECORDING_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-talk-recording:20230916_091439-latest
image: nextcloud/aio-talk-recording:develop
name: nextcloud-aio-talk-recording
ports:
- containerPort: 1234
hostPort: 1234
protocol: TCP
securityContext:
readOnlyRootFilesystem: true
volumeMounts:
- mountPath: /tmp
name: nextcloud-aio-talk-recording-tmpfs0
- mountPath: /conf
name: nextcloud-aio-talk-recording-tmpfs1
volumes:
- emptyDir: {}
name: nextcloud-aio-talk-recording-tmpfs0
- emptyDir: {}
name: nextcloud-aio-talk-recording-tmpfs1
{{- end }}

View File

@@ -4,7 +4,7 @@ kind: Service
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
kompose.version: 1.30.0 (9d8dcb518)
kompose.version: 1.31.2 (a92241f79)
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.30.0 (9d8dcb518)
kompose.version: 1.31.2 (a92241f79)
labels:
io.kompose.service: nextcloud-aio-talk
name: nextcloud-aio-talk-public
@@ -28,7 +28,7 @@ kind: Service
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml --namespace {{ .Values.NAMESPACE }}
kompose.version: 1.30.0 (9d8dcb518)
kompose.version: 1.31.2 (a92241f79)
labels:
io.kompose.service: nextcloud-aio-talk
name: nextcloud-aio-talk

View File

@@ -29,6 +29,7 @@ source /tmp/sample.conf
rm /tmp/sample.conf
sed -i "s|:latest$|:$DOCKER_TAG-latest|" 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
sed -i "s|\${TALK_PORT}:\${TALK_PORT}/|$TALK_PORT:$TALK_PORT/|g" latest.yml
sed -i "s|- \${APACHE_PORT}|- $APACHE_PORT|" latest.yml

22
php/composer.lock generated
View File

@@ -391,16 +391,16 @@
},
{
"name": "laravel/serializable-closure",
"version": "v1.3.1",
"version": "v1.3.2",
"source": {
"type": "git",
"url": "https://github.com/laravel/serializable-closure.git",
"reference": "e5a3057a5591e1cfe8183034b0203921abe2c902"
"reference": "076fe2cf128bd54b4341cdc6d49b95b34e101e4c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/serializable-closure/zipball/e5a3057a5591e1cfe8183034b0203921abe2c902",
"reference": "e5a3057a5591e1cfe8183034b0203921abe2c902",
"url": "https://api.github.com/repos/laravel/serializable-closure/zipball/076fe2cf128bd54b4341cdc6d49b95b34e101e4c",
"reference": "076fe2cf128bd54b4341cdc6d49b95b34e101e4c",
"shasum": ""
},
"require": {
@@ -447,7 +447,7 @@
"issues": "https://github.com/laravel/serializable-closure/issues",
"source": "https://github.com/laravel/serializable-closure"
},
"time": "2023-07-14T13:56:28+00:00"
"time": "2023-10-17T13:38:16+00:00"
},
{
"name": "nikic/fast-route",
@@ -556,16 +556,16 @@
},
{
"name": "php-di/php-di",
"version": "7.0.5",
"version": "7.0.6",
"source": {
"type": "git",
"url": "https://github.com/PHP-DI/PHP-DI.git",
"reference": "9ea40a5a6970bf1ca5cbe148bc16cbad6ca3db6c"
"reference": "8097948a89f6ec782839b3e958432f427cac37fd"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/PHP-DI/PHP-DI/zipball/9ea40a5a6970bf1ca5cbe148bc16cbad6ca3db6c",
"reference": "9ea40a5a6970bf1ca5cbe148bc16cbad6ca3db6c",
"url": "https://api.github.com/repos/PHP-DI/PHP-DI/zipball/8097948a89f6ec782839b3e958432f427cac37fd",
"reference": "8097948a89f6ec782839b3e958432f427cac37fd",
"shasum": ""
},
"require": {
@@ -613,7 +613,7 @@
],
"support": {
"issues": "https://github.com/PHP-DI/PHP-DI/issues",
"source": "https://github.com/PHP-DI/PHP-DI/tree/7.0.5"
"source": "https://github.com/PHP-DI/PHP-DI/tree/7.0.6"
},
"funding": [
{
@@ -625,7 +625,7 @@
"type": "tidelift"
}
],
"time": "2023-08-10T14:57:56+00:00"
"time": "2023-11-02T10:04:50+00:00"
},
{
"name": "php-di/slim-bridge",

View File

@@ -210,7 +210,9 @@
"TALK_RECORDING_HOST=nextcloud-aio-talk-recording",
"FULLTEXTSEARCH_PASSWORD=%FULLTEXTSEARCH_PASSWORD%",
"DOCKER_SOCKET_PROXY_ENABLED=%DOCKER_SOCKET_PROXY_ENABLED%",
"REMOVE_DISABLED_APPS=%REMOVE_DISABLED_APPS%"
"REMOVE_DISABLED_APPS=%REMOVE_DISABLED_APPS%",
"APACHE_PORT=%APACHE_PORT%",
"APACHE_IP_BINDING=%APACHE_IP_BINDING%"
],
"restart": "unless-stopped",
"devices": [

View File

@@ -49,8 +49,13 @@ class ConfigurationController
} else {
$enableAutomaticUpdates = false;
}
if (isset($request->getParsedBody()['success_notification'])) {
$successNotification = true;
} else {
$successNotification = false;
}
$dailyBackupTime = $request->getParsedBody()['daily_backup_time'] ?? '';
$this->configurationManager->SetDailyBackupTime($dailyBackupTime, $enableAutomaticUpdates);
$this->configurationManager->SetDailyBackupTime($dailyBackupTime, $enableAutomaticUpdates, $successNotification);
}
if (isset($request->getParsedBody()['delete_daily_backup_time'])) {

View File

@@ -21,7 +21,11 @@ $nextcloudContainer = $containerDefinitionFetcher->GetContainerById($id);
$backupExitCode = $dockerActionManger->GetBackupcontainerExitCode();
if ($backupExitCode === 0) {
$dockerActionManger->sendNotification($nextcloudContainer, 'Daily backup successful!', 'You can get further info by looking at the backup logs in the AIO interface.');
if (getenv('SEND_SUCCESS_NOTIFICATIONS') === "0") {
error_log("Daily backup successful! Only logging successful backup and not sending backup notification since that has been disabled! You can get further info by looking at the backup logs in the AIO interface.");
} else {
$dockerActionManger->sendNotification($nextcloudContainer, 'Daily backup successful!', 'You can get further info by looking at the backup logs in the AIO interface.');
}
}
if ($backupExitCode > 0) {

View File

@@ -676,7 +676,7 @@ class ConfigurationManager
/**
* @throws InvalidSettingConfigurationException
*/
public function SetDailyBackupTime(string $time, bool $enableAutomaticUpdates) : void {
public function SetDailyBackupTime(string $time, bool $enableAutomaticUpdates, bool $successNotification) : void {
if ($time === "") {
throw new InvalidSettingConfigurationException("The daily backup time must not be empty!");
}
@@ -687,6 +687,13 @@ class ConfigurationManager
if ($enableAutomaticUpdates === false) {
$time .= PHP_EOL . 'automaticUpdatesAreNotEnabled';
} else {
$time .= PHP_EOL;
}
if ($successNotification === false) {
$time .= PHP_EOL . 'successNotificationsAreNotEnabled';
} else {
$time .= PHP_EOL;
}
file_put_contents(DataConst::GetDailyBackupTimeFile(), $time);
}
@@ -729,7 +736,7 @@ class ConfigurationManager
// Trim all unwanted chars on both sites
$entry = trim($entry);
if ($entry !== "") {
if (!preg_match("#^/[.0-1a-zA-Z/-_]+$#", $entry) && !preg_match("#^[.0-1a-zA-Z_-]+$#", $entry)) {
if (!preg_match("#^/[.0-1a-zA-Z/_-]+$#", $entry) && !preg_match("#^[.0-1a-zA-Z_-]+$#", $entry)) {
throw new InvalidSettingConfigurationException("You entered unallowed characters! Problematic is " . $entry);
}
$validDirectories .= rtrim($entry, '/') . PHP_EOL;

View File

@@ -289,6 +289,8 @@ class DockerActionManager
$replacements[1] = $this->configurationManager->GetSelectedRestoreTime();
} elseif ($out[1] === 'APACHE_PORT') {
$replacements[1] = $this->configurationManager->GetApachePort();
} elseif ($out[1] === 'APACHE_IP_BINDING') {
$replacements[1] = $this->configurationManager->GetApacheIPBinding();
} elseif ($out[1] === 'TALK_PORT') {
$replacements[1] = $this->configurationManager->GetTalkPort();
} elseif ($out[1] === 'NEXTCLOUD_MOUNT') {
@@ -401,6 +403,9 @@ class DockerActionManager
} else {
$replacements[1] = '';
}
// Allow to get local ip-address of database container which allows to talk to it even in host mode (the container that requires this needs to be started first then)
} elseif ($out[1] === 'AIO_DATABASE_HOST') {
$replacements[1] = gethostbyname('nextcloud-aio-database');
} else {
$secret = $this->configurationManager->GetSecret($out[1]);
if ($secret === "") {
@@ -425,12 +430,17 @@ class DockerActionManager
if ($container->GetInternalPort() !== 'host') {
foreach($container->GetPorts()->GetPorts() as $value) {
$port = $value->port;
$protocol = $value->protocol;
if ($port === '%APACHE_PORT%') {
$port = $this->configurationManager->GetApachePort();
// Do not expose udp if AIO is in reverse proxy mode
if ($port !== '443' && $protocol === 'udp') {
continue;
}
} else if ($port === '%TALK_PORT%') {
$port = $this->configurationManager->GetTalkPort();
}
$portWithProtocol = $port . '/' . $value->protocol;
$portWithProtocol = $port . '/' . $protocol;
$exposedPorts[$portWithProtocol] = null;
}
$requestBody['HostConfig']['NetworkMode'] = 'nextcloud-aio';
@@ -442,8 +452,13 @@ class DockerActionManager
$requestBody['ExposedPorts'] = $exposedPorts;
foreach ($container->GetPorts()->GetPorts() as $value) {
$port = $value->port;
$protocol = $value->protocol;
if ($port === '%APACHE_PORT%') {
$port = $this->configurationManager->GetApachePort();
// Do not expose udp if AIO is in reverse proxy mode
if ($port !== '443' && $protocol === 'udp') {
continue;
}
} else if ($port === '%TALK_PORT%') {
$port = $this->configurationManager->GetTalkPort();
}
@@ -451,7 +466,6 @@ class DockerActionManager
if ($ipBinding === '%APACHE_IP_BINDING%') {
$ipBinding = $this->configurationManager->GetApacheIPBinding();
}
$protocol = $value->protocol;
$portWithProtocol = $port . '/' . $protocol;
$requestBody['HostConfig']['PortBindings'][$portWithProtocol] = [
[
@@ -566,14 +580,8 @@ class DockerActionManager
public function PullContainer(Container $container) : void
{
$url = $this->BuildApiUrl(sprintf('images/create?fromImage=%s', urlencode($this->BuildImageName($container))));
try {
$this->guzzleClient->post($url);
} catch (RequestException $e) {
error_log('Could not get image ' . $this->BuildImageName($container) . ' from docker hub. Probably due to rate limits. ' . $e->getMessage());
// Don't exit here because it is possible that the image is already present
// and we ran into docker hub limits.
// We will exit later if not image should be available.
}
// do not catch any exception so that it always throws and logs the error
$this->guzzleClient->post($url);
}
private function isContainerUpdateAvailable(string $id) : string

View File

@@ -16,7 +16,7 @@
</header>
<div class="content">
<h1>Nextcloud AIO v7.4.1</h1>
<h1>Nextcloud AIO v7.6.1</h1>
{# Add 2nd tab warning #}
<script type="text/javascript" src="second-tab-warning.js"></script>
@@ -322,7 +322,7 @@
Restore or Backup currently running. Cannot start the containers until that's done.<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 internect 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 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>
{% 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 +366,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:<br><br>
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>
<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}}">
@@ -424,6 +424,7 @@
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/>
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>
@@ -460,7 +461,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!<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 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>
<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}}">
@@ -474,13 +475,14 @@
<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.<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. <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/>
<form method="POST" action="/api/configuration" class="xhr">
<input type="text" name="daily_backup_time" value="04:00" placeholder="04:00"/>
<input type="hidden" name="{{csrf.keys.name}}" value="{{csrf.name}}">
<input type="hidden" name="{{csrf.keys.value}}" value="{{csrf.value}}">
<input class="button" type="submit" value="Submit backup time" /><br>
<input type="checkbox" id="automatic_updates" name="automatic_updates" checked="checked"><label for="automatic_updates">Automatically update all containers, the mastercontainer and on saturdays your Nextcloud apps</label><br>
<input type="checkbox" id="success_notification" name="success_notification" checked="checked"><label for="success_notification">Send notifications about successful backups (notifications about unsuccessful backups will always be sent)</label><br>
</form>
{% else %}
Daily backups will be created at <b>{{ daily_backup_time }} UTC</b> which includes a notification about the result of the backup.
@@ -540,12 +542,12 @@
{% endif %}
{% endif %}
{% if is_backup_container_running == false %}
<h2>Optional addons</h2>
In this section you can enable or disable optional addons.<br><br>
<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>
{% if isAnyRunning == true %}
<b>Please note:</b> You can enable or disable them 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 addons. The changes will not be auto-saved.<br><br>
<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>
{% endif %}
<form id="options-form" method="POST" action="/api/configuration" class="xhr">
<input type="hidden" name="{{csrf.keys.name}}" value="{{csrf.name}}">
@@ -594,7 +596,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 addon 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>
<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>
{% if isAnyRunning == true or is_x64_platform == false %}
<script type="text/javascript" src="disable-clamav.js"></script>
{% endif %}
@@ -647,7 +649,7 @@
<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.')" />
</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 database name' 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 <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>
{% 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/>
<form method="POST" action="/api/configuration" class="xhr">

View File

@@ -43,7 +43,7 @@ Included are:
- Possibility included to [permanently add additional PHP extensions into the Nextcloud container](https://github.com/nextcloud/all-in-one#how-to-add-php-extensions-permanently-to-the-nextcloud-container) without having to build your own Docker image
- Possibility included to [pass the needed device for hardware transcoding](https://github.com/nextcloud/all-in-one#how-to-enable-hardware-transcoding-for-nextcloud) to the Nextcloud container
- Possibility included to [store all docker related files on a separate drive](https://github.com/nextcloud/all-in-one#how-to-store-the-filesinstallation-on-a-separate-drive)
- [Additional features can be added very easily](https://github.com/nextcloud/all-in-one/tree/main/community-containers)
- [Additional features can be added very easily](https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers)
- [LDAP can be used as user backend for Nextcloud](https://github.com/nextcloud/all-in-one/tree/main#ldap)
- Migration from any former Nextcloud installation to AIO is possible. See [this documentation](https://github.com/nextcloud/all-in-one/blob/main/migration.md)
- [Fail2Ban can be added](https://github.com/nextcloud/all-in-one#fail2ban)
@@ -340,10 +340,12 @@ Here is how to reset the AIO instance properly:
1. And you are done! Now feel free to start over with the recommended docker run command!
### Backup solution
Nextcloud AIO provides a local backup solution based on [BorgBackup](https://github.com/borgbackup/borg#what-is-borgbackup). These backups act as a local restore point in case the installation gets corrupted.
Nextcloud AIO provides a local backup solution based on [BorgBackup](https://github.com/borgbackup/borg#what-is-borgbackup). These backups act as a local restore point in case the installation gets corrupted. 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.
It is recommended to create a backup before any container update. By doing this, you will be safe regarding any possible complication during updates because you will be able to restore the whole instance with basically one click.
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.
If you connect an external drive to your host, and choose the backup directory to be on that drive, you are also kind of safe against drive failures of the drive where the docker volumes are stored on.
<details>
@@ -690,25 +692,25 @@ If you want to define a custom skeleton directory, you can do so by copying your
You can configure your server to block certain ip-addresses using fail2ban as bruteforce protection. Here is how to set it up: https://docs.nextcloud.com/server/stable/admin_manual/installation/harden_server.html#setup-fail2ban. The logpath of AIO is by default `/var/lib/docker/volumes/nextcloud_aio_nextcloud/_data/data/nextcloud.log`. Do not forget to add `chain=DOCKER-USER` to your nextcloud jail config (`nextcloud.local`) otherwise the nextcloud service running on docker will still be accessible even if the IP is banned. Also, you may change the blocked ports to cover all AIO ports: by default `80,443,8080,8443,3478` (see [this](https://github.com/nextcloud/all-in-one#explanation-of-used-ports)). Apart from that there is now a community container that can be added to the AIO stack: https://github.com/nextcloud/all-in-one/tree/main/community-containers/fail2ban
### LDAP
It is possible to connect to an existing LDAP server. You need to make sure that the LDAP server is reachable from the Nextcloud container. Then you can enable the LDAP app and configure LDAP in Nextcloud manually. If you don't have a LDAP server yet, recommended is to use this docker container: https://hub.docker.com/r/nitnelave/lldap. Make sure here as well that Nextcloud can talk to the LDAP server. The easiest way is by adding the LDAP docker container to the docker network `nextcloud-aio`. Then you can connect to the LDAP container by its name from the Nextcloud container. Apart from that there is now a way for the community to add containers: https://github.com/nextcloud/all-in-one/tree/main/community-containers#how-to-add-containers
It is possible to connect to an existing LDAP server. You need to make sure that the LDAP server is reachable from the Nextcloud container. Then you can enable the LDAP app and configure LDAP in Nextcloud manually. If you don't have a LDAP server yet, recommended is to use this docker container: https://hub.docker.com/r/nitnelave/lldap. Make sure here as well that Nextcloud can talk to the LDAP server. The easiest way is by adding the LDAP docker container to the docker network `nextcloud-aio`. Then you can connect to the LDAP container by its name from the Nextcloud container. Apart from that there is now a way for the community to add containers: https://github.com/nextcloud/all-in-one/discussions/406#discussioncomment-7133555
### Netdata
Netdata allows you to monitor your server using a GUI. You can install it by following https://learn.netdata.cloud/docs/agent/packaging/docker#create-a-new-netdata-agent-container. Apart from that there is now a way for the community to add containers: https://github.com/nextcloud/all-in-one/tree/main/community-containers#how-to-add-containers
Netdata allows you to monitor your server using a GUI. You can install it by following https://learn.netdata.cloud/docs/agent/packaging/docker#create-a-new-netdata-agent-container. Apart from that there is now a way for the community to add containers: https://github.com/nextcloud/all-in-one/discussions/392#discussioncomment-7133563
### USER_SQL
If you want to use the user_sql app, the easiest way is to create an additional database container and add it to the docker network `nextcloud-aio`. Then the Nextcloud container should be able to talk to the database container using its name.
### phpMyAdmin, Adminer or pgAdmin
It is possible to install any of these to get a GUI for your AIO database. The pgAdmin container is recommended. You can get some docs on it here: https://www.pgadmin.org/docs/pgadmin4/latest/container_deployment.html. For the container to connect to the aio-database, you need to connect the container to the docker network `nextcloud-aio` and use `nextcloud-aio-database` as database host, `oc_nextcloud` as database username and the password that you get when running `sudo docker exec nextcloud-aio-nextcloud grep dbpassword config/config.php` as the password. Apart from that there is now a way for the community to add containers: https://github.com/nextcloud/all-in-one/tree/main/community-containers#how-to-add-containers
It is possible to install any of these to get a GUI for your AIO database. The pgAdmin container is recommended. You can get some docs on it here: https://www.pgadmin.org/docs/pgadmin4/latest/container_deployment.html. For the container to connect to the aio-database, you need to connect the container to the docker network `nextcloud-aio` and use `nextcloud-aio-database` as database host, `oc_nextcloud` as database username and the password that you get when running `sudo docker exec nextcloud-aio-nextcloud grep dbpassword config/config.php` as the password. Apart from that there is now a way for the community to add containers: https://github.com/nextcloud/all-in-one/discussions/3061#discussioncomment-7307045
### Mail server
You can configure one yourself by using either of these three recommended projects: [Docker Mailserver](https://github.com/docker-mailserver/docker-mailserver/#docker-mailserver), [Maddy Mail Server](https://github.com/foxcpp/maddy#maddy-mail-server) or [Mailcow](https://github.com/mailcow/mailcow-dockerized#mailcow-dockerized-------). Docker Mailserver and Maddy Mail Server are probably a bit easier to set up as it is possible to run them using only one container but Mailcow has much more features. Apart from that there is now a way for the community to add containers: https://github.com/nextcloud/all-in-one/tree/main/community-containers#how-to-add-containers
You can configure one yourself by using either of these three recommended projects: [Docker Mailserver](https://github.com/docker-mailserver/docker-mailserver/#docker-mailserver), [Mailu](https://github.com/Mailu/Mailu), [Maddy Mail Server](https://github.com/foxcpp/maddy#maddy-mail-server) or [Mailcow](https://github.com/mailcow/mailcow-dockerized#mailcow-dockerized-------). Docker Mailserver and Maddy Mail Server are probably a bit easier to set up as it is possible to run them using only one container but Mailcow and Mailu both have more features. Apart from that there is now a way for the community to add containers: https://github.com/nextcloud/all-in-one/discussions/356#discussioncomment-7133547
### How to migrate from an already existing Nextcloud installation to Nextcloud AIO?
Please see the following documentation on this: [migration.md](https://github.com/nextcloud/all-in-one/blob/main/migration.md)
### Requirements for integrating new containers
For integrating new containers, they must pass specific requirements for being considered to get integrated in AIO itself. Even if not considered, we may add some documentation on it. Also there is this now: https://github.com/nextcloud/all-in-one/tree/main/community-containers
For integrating new containers, they must pass specific requirements for being considered to get integrated in AIO itself. Even if not considered, we may add some documentation on it. Also there is this now: https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers
What are the requirements?
1. New containers must be related to Nextcloud. Related means that there must be a feature in Nextcloud that gets added by adding this container.

View File

@@ -4,11 +4,11 @@ A [reverse proxy](https://en.wikipedia.org/wiki/Reverse_proxy) is basically a we
**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. Modify the port to your needings.
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.
**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-add-this-to-your-reverse-proxy-config)**
1. **Use the in this document provided startup command! See [point 2](#2-use-this-startup-command)**
1. **Use this startup command! See [point 2](#2-use-this-startup-command)**
1. Optional: If the reverse proxy is installed on the same host and in the host network, you should limit the apache container to only listen on localhost. See [point 3](#3-limit-the-access-to-the-apache-container)
1. **Open the AIO interface. See [point 4](#4-open-the-aio-interface)**
1. Optional: Get a valid certificate for the AIO interface! See [point 5](#5-optional-get-a-valid-certificate-for-the-aio-interface)
@@ -18,6 +18,20 @@ In order to run Nextcloud behind a web server or reverse proxy (like Apache, Ngi
**Please note:** Since the Apache container gets created by the mastercontainer, there is **NO** way to provide custom docker labels or custom environmental variables for the Apache container. So please do not attempt to do this because you will fail! Only the documented way will work!
### Adaptation of the respective sample configuration
Of course you need to modify `<your-nc-domain>` to the domain on which you want to run Nextcloud. Also make sure to adjust the port `11000` to match the chosen `APACHE_PORT`. Additionally, you might need to adjust `localhost` or `127.0.0.1` based on your setup. See below.
**Running the Reverse Proxy on the same server, not in a container**<br>
For this setup, the default sample configurations with `localhost:$APACHE_PORT` should work.
**Running the Reverse Proxy in a Docker container on the same server**<br>
For this setup, you can use as target `host.docker.internal:$APACHE_PORT` instead of `localhost:$APACHE_PORT`. **⚠️ Important:** In order to make this work on Docker for Linux, you need to add `--add-host=host.docker.internal:host-gateway` to the docker run command of your reverse proxy container or `extra_hosts: ["host.docker.internal:host-gateway"]` in docker compose (it works on Docker Desktop by default).<br>
Another option and actually the recommended way in this case is to use `--network host` option (or `network_mode: host` for docker-compose) as setting for the reverse proxy container to connect it to the host network. If you are using a firewall on the server, you need to open ports 80 and 443 for the reverse proxy manually. By doing so, the default sample configurations that point at `localhost:$APACHE_PORT` should work without having to modify them.
**Running the Reverse Proxy on a different server (no matter if in container or not)**<br>
For this setup, you need to use as target the private ip-address of the host that shall be running AIO. So e.g. `private.ip.address.of.aio.server:$APACHE_PORT` instead of `localhost:$APACHE_PORT`.<br>
If you are not sure how to retrieve that, you can run: `ip a | grep "scope global" | head -1 | awk '{print $2}' | sed 's|/.*||'` on the server that shall be running AIO (the commands only work on Linux).
### Apache
<details>
@@ -83,7 +97,7 @@ Add this as a new Apache site config:
</VirtualHost>
```
Of course you need to modify `<your-nc-domain>` to the domain on which you want to run Nextcloud. Also make sure to adjust the port 11000 to match the chosen `APACHE_PORT`. **Please note:** The above configuration will only work if your reverse proxy is running directly on the host that is running the docker daemon. If the reverse proxy is running in a docker container, you can use the `--network host` option (or `network_mode: host` for docker-compose) when starting the reverse proxy container in order to connect the reverse proxy container to the host network (if you are using a firewall on the server, you need to open ports 80 and 443 for the reverse proxy in that case manually). ***If that is not an option or not possible for you (like e.g. on Windows or if the reverse proxy is running on a different host), you can alternatively instead of `localhost` use the private ip-address of the host that is running the docker daemon. If you are not sure how to retrieve that, you can run: `ip a | grep "scope global" | head -1 | awk '{print $2}' | sed 's|/.*||'`. If the command returns a public ip-address, use `ip a | grep "scope global" | grep docker0 | awk '{print $2}' | sed 's|/.*||'` instead (the commands only work on Linux)***
⚠️ **Please note:** Look into [this](#adaptation-of-the-respective-sample-configuration) to adapt the above example configuration.
To make the config work you can run the following command:
`sudo a2enmod rewrite proxy proxy_http proxy_wstunnel ssl headers http2`
@@ -105,7 +119,7 @@ https://<your-nc-domain>:443 {
```
The Caddyfile is a text file called `Caddyfile` (no extension) which if you should be running Caddy inside a container should usually be created in the same location as your `compose.yaml` file prior to starting the container.
Of course you need to modify `<your-nc-domain>` to the domain on which you want to run Nextcloud. Also make sure to adjust the port 11000 to match the chosen `APACHE_PORT`. **Please note:** The above configuration will only work if your reverse proxy is running directly on the host that is running the docker daemon. If the reverse proxy is running in a docker container, you can use the `--network host` option (or `network_mode: host` for docker-compose) when starting the reverse proxy container in order to connect the reverse proxy container to the host network (if you are using a firewall on the server, you need to open ports 80 and 443 for the reverse proxy in that case manually). ***If that is not an option or not possible for you (like e.g. on Windows or if the reverse proxy is running on a different host), you can alternatively instead of `localhost` use the private ip-address of the host that is running the docker daemon. If you are not sure how to retrieve that, you can run: `ip a | grep "scope global" | head -1 | awk '{print $2}' | sed 's|/.*||'`. If the command returns a public ip-address, use `ip a | grep "scope global" | grep docker0 | awk '{print $2}' | sed 's|/.*||'` instead (the commands only work on Linux)***
⚠️ **Please note:** Look into [this](#adaptation-of-the-respective-sample-configuration) to adapt the above example configuration.
**Advice:** You may have a look at [this](https://github.com/nextcloud/all-in-one/discussions/575#discussion-4055615) for a more complete example.
@@ -129,8 +143,11 @@ You can get AIO running using the ACME DNS-challenge. Here is how to do it.
}
}
```
Of course you need to modify `<your-nc-domain>` to the domain on which you want to run Nextcloud. You also need to adjust `<provider>` and `<key>` to match your case. Also make sure to adjust the port 11000 to match the chosen `APACHE_PORT`. **Please note:** The above configuration will only work if your reverse proxy is running directly on the host that is running the docker daemon. If the reverse proxy is running in a docker container, you can use the `--network host` option (or `network_mode: host` for docker-compose) when starting the reverse proxy container in order to connect the reverse proxy container to the host network (if you are using a firewall on the server, you need to open ports 80 and 443 for the reverse proxy in that case manually). ***If that is not an option or not possible for you (like e.g. on Windows or if the reverse proxy is running on a different host), you can alternatively instead of `localhost` use the private ip-address of the host that is running the docker daemon. If you are not sure how to retrieve that, you can run: `ip a | grep "scope global" | head -1 | awk '{print $2}' | sed 's|/.*||'`. If the command returns a public ip-address, use `ip a | grep "scope global" | grep docker0 | awk '{print $2}' | sed 's|/.*||'` instead (the commands only work on Linux)***
1. Now continue with [point 2](#2-use-this-startup-command) but additionally, add `--env SKIP_DOMAIN_VALIDATION=true` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`) which will disable the dommain validation (because it is known that the domain validation will not when using the DNS-challenge since no port is publicly opened.
⚠️ **Please note:** Look into [this](#adaptation-of-the-respective-sample-configuration) to adapt the above example configuration.
You also need to adjust `<provider>` and `<key>` to match your case.
1. Now continue with [point 2](#2-use-this-startup-command) but additionally, add `--env SKIP_DOMAIN_VALIDATION=true` to the docker run command of the mastercontainer (but before the last line `nextcloud/all-in-one:latest`) which will disable the domain validation (because it is known that the domain validation will not work when using the DNS-challenge since no port is publicly opened).
**Advice:** In order to make it work in your home network, you may add the internal ipv4-address of your reverse proxy as A DNS-record to your domain and disable the dns-rebind-protection in your router. Another way it to set up a local dns-server like a pi-hole and set up a custom dns-record for that domain that points to the internal ip-adddress of your reverse proxy (see https://github.com/nextcloud/all-in-one#how-can-i-access-nextcloud-locally). If both is not possible, you may add the domain to the hosts file which is needed then for any devices that shall use the server.
@@ -152,10 +169,11 @@ For a reverse proxy example guide for Citrix ADC VPX / Citrix Netscaler, see thi
<summary>click here to expand</summary>
Although it does not seems like it is the case but from AIO perspective a Cloudflare Tunnel works like a reverse proxy. Please see the [caveats](https://github.com/nextcloud/all-in-one#notes-on-cloudflare-proxytunnel) before proceeding. Here is then how to make it work:
Although it does not seem like it is the case but from AIO perspective a Cloudflare Tunnel works like a reverse proxy. Please see the [caveats](https://github.com/nextcloud/all-in-one#notes-on-cloudflare-proxytunnel) before proceeding. Here is then how to make it work:
1. Install the Cloudflare Tunnel on the same machine where AIO will be running on and point the Tunnel with the domain that you want to use for AIO to `http://localhost:11000`. ***If the Tunnel is running on a different machine, you can alternatively instead of `localhost` use the private ip-address of the host that is running the docker daemon. If you are not sure how to retrieve that, you can run: `ip a | grep "scope global" | head -1 | awk '{print $2}' | sed 's|/.*||'`. If the command returns a public ip-address, use `ip a | grep "scope global" | grep docker0 | awk '{print $2}' | sed 's|/.*||'` instead (the commands only work on Linux)***
1. Now continue with [point 2](#2-use-this-startup-command) but additionally, add `--env SKIP_DOMAIN_VALIDATION=true` to the docker run command which will disable the dommain validation (because it is known that the domain validation will not work behind a Cloudflare Tunnel). So you need to ensure yourself that you've configured everything correctly.
1. Install the Cloudflare Tunnel on the same machine where AIO will be running on and point the Tunnel with the domain that you want to use for AIO to `http://localhost:11000`.<br>
⚠️ **Please note:** Look into [this](#adaptation-of-the-respective-sample-configuration) to adapt the above example configuration.
1. Now continue with [point 2](#2-use-this-startup-command) but additionally, add `--env SKIP_DOMAIN_VALIDATION=true` to the docker run command which will disable the domain validation (because it is known that the domain validation will not work behind a Cloudflare Tunnel). So you need to ensure yourself that you've configured everything correctly.
**Advice:** Make sure to [disable Cloudflares Rocket Loader feature](https://help.nextcloud.com/t/login-page-not-working-solved/149417/8) as otherwise Nextcloud's login prompt will not be shown.
@@ -254,7 +272,7 @@ backend Nextcloud
server Nextcloud localhost:11000
```
Of course you need to modify `<your-nc-domain>` to the domain on which you want to run Nextcloud. Also make sure to adjust the port 11000 to match the chosen `APACHE_PORT`. **Please note:** The above configuration will only work if your reverse proxy is running directly on the host that is running the docker daemon. If the reverse proxy is running in a docker container, you can use the `--network host` option (or `network_mode: host` for docker-compose) when starting the reverse proxy container in order to connect the reverse proxy container to the host network (if you are using a firewall on the server, you need to open ports 80 and 443 for the reverse proxy in that case manually). ***If that is not an option or not possible for you (like e.g. on Windows or if the reverse proxy is running on a different host), you can alternatively instead of `localhost` use the private ip-address of the host that is running the docker daemon. If you are not sure how to retrieve that, you can run: `ip a | grep "scope global" | head -1 | awk '{print $2}' | sed 's|/.*||'`. If the command returns a public ip-address, use `ip a | grep "scope global" | grep docker0 | awk '{print $2}' | sed 's|/.*||'` instead (the commands only work on Linux)***
⚠️ **Please note:** Look into [this](#adaptation-of-the-respective-sample-configuration) to adapt the above example configuration.
</details>
@@ -344,7 +362,7 @@ server {
```
Of course you need to modify `<your-nc-domain>` to the domain on which you want to run Nextcloud. Also make sure to adjust the port 11000 to match the chosen `APACHE_PORT`. **Please note:** The above configuration will only work if your reverse proxy is running directly on the host that is running the docker daemon. If the reverse proxy is running in a docker container, you can use the `--network host` option (or `network_mode: host` for docker-compose) when starting the reverse proxy container in order to connect the reverse proxy container to the host network (if you are using a firewall on the server, you need to open ports 80 and 443 for the reverse proxy in that case manually). ***If that is not an option or not possible for you (like e.g. on Windows or if the reverse proxy is running on a different host), you can alternatively instead of `127.0.0.1` use the private ip-address of the host that is running the docker daemon. If you are not sure how to retrieve that, you can run: `ip a | grep "scope global" | head -1 | awk '{print $2}' | sed 's|/.*||'`. If the command returns a public ip-address, use `ip a | grep "scope global" | grep docker0 | awk '{print $2}' | sed 's|/.*||'` instead (the commands only work on Linux)***
⚠️ **Please note:** Look into [this](#adaptation-of-the-respective-sample-configuration) to adapt the above example configuration.
**Advice:** You may have a look at [this](https://github.com/nextcloud/all-in-one/discussions/588#discussioncomment-2811152) for a more complete example.
@@ -357,7 +375,7 @@ Of course you need to modify `<your-nc-domain>` to the domain on which you want
<summary>click here to expand</summary>
First, please make sure that the environmental variables `PUID` and `PGID` in the compose.yaml file for NPM are either unset or set to `0`.
If you need to change the GID/PID then please add `net.ipv4.ip_unprivileged_port_start=0` at the end of `/etc/sysctl.conf`. Note: this will cause that non root users can bind privilleged ports.
If you need to change the GID/PID then please add `net.ipv4.ip_unprivileged_port_start=0` at the end of `/etc/sysctl.conf`. Note: this will cause that non root users can bind privileged ports.
Second, see these screenshots for a working config:
@@ -365,7 +383,7 @@ Second, see these screenshots for a working config:
![grafik](https://user-images.githubusercontent.com/75573284/213889724-1ab32264-3e0c-4d83-b067-9fe9d1672fb2.png)
![grafik](https://user-images.githubusercontent.com/75573284/213889797-42642302-b079-4378-a4a6-079f4f67058c.png)
![grafik](https://github.com/nextcloud/all-in-one/assets/24786786/fecbb5ef-d2f4-4e0f-bc4b-82207e2c2809)
![grafik](https://user-images.githubusercontent.com/75573284/213889746-87dbe8c5-4d1f-492f-b251-bbf82f1510d0.png)
@@ -375,7 +393,9 @@ proxy_read_timeout 86400s;
client_max_body_size 0;
```
Of course you need to modify `<your-nc-domain>` to the domain on which you want to run Nextcloud. Also change `<you>@<your-mail-provider-domain>` to a mail address of yours. Also make sure to adjust the port 11000 to match the chosen `APACHE_PORT`. **Please note:** The above configuration will only work if your reverse proxy is running directly on the host that is running the docker daemon. If the reverse proxy is running in a docker container, you can use the `--network host` option (or `network_mode: host` for docker-compose) when starting the reverse proxy container in order to connect the reverse proxy container to the host network (if you are using a firewall on the server, you need to open ports 80 and 443 for the reverse proxy in that case manually). ***If that is not an option or not possible for you (like e.g. on Windows or if the reverse proxy is running on a different host), you can alternatively instead of `localhost` use the private ip-address of the host that is running the docker daemon. If you are not sure how to retrieve that, you can run: `ip a | grep "scope global" | head -1 | awk '{print $2}' | sed 's|/.*||'`. If the command returns a public ip-address, use `ip a | grep "scope global" | grep docker0 | awk '{print $2}' | sed 's|/.*||'` instead (the commands only work on Linux)***
⚠️ **Please note:** Look into [this](#adaptation-of-the-respective-sample-configuration) to adapt the above example configuration.
Also change `<you>@<your-mail-provider-domain>` to a mail address of yours.
</details>
@@ -477,8 +497,7 @@ httpServer.on('upgrade', (req, socket, head) => {
});
```
Of course you need to modify `<your-nc-domain>` to the domain on which you want to run Nextcloud. Also make sure to adjust the port 11000 to match the chosen `APACHE_PORT`.
**Please note:** The above configuration will only work if your reverse proxy is running directly on the host that is running the docker daemon. If the reverse proxy is running in a docker container, you can use the `--network host` option (or `network_mode: host` for docker-compose) when starting the reverse proxy container in order to connect the reverse proxy container to the host network (if you are using a firewall on the server, you need to open ports 80 and 443 for the reverse proxy in that case manually). ***If that is not an option or not possible for you (like e.g. on Windows or if the reverse proxy is running on a different host), you can alternatively instead of `localhost` use the private ip-address of the host that is running the docker daemon. If you are not sure how to retrieve that, you can run: `ip a | grep "scope global" | head -1 | awk '{print $2}' | sed 's|/.*||'`. If the command returns a public ip-address, use `ip a | grep "scope global" | grep docker0 | awk '{print $2}' | sed 's|/.*||'` instead (the commands only work on Linux)***
⚠️ **Please note:** Look into [this](#adaptation-of-the-respective-sample-configuration) to adapt the above example configuration.
</details>
@@ -496,7 +515,7 @@ See these screenshots for a working config:
![image](https://user-images.githubusercontent.com/70434961/213193789-fa936edc-e307-4e6a-9a53-ae26d1bf2f42.jpg)
Of course you need to modify `<your-nc-domain>` to the domain on which you want to run Nextcloud. Also make sure to adjust the port 11000 to match the chosen `APACHE_PORT`. **Please note:** The above configuration will only work if your reverse proxy is running directly on the host that is running the docker daemon. If the reverse proxy is running in a docker container, you can use the `--network host` option (or `network_mode: host` for docker-compose) when starting the reverse proxy container in order to connect the reverse proxy container to the host network (if you are using a firewall on the server, you need to open ports 80 and 443 for the reverse proxy in that case manually). ***If that is not an option or not possible for you (like e.g. on Windows or if the reverse proxy is running on a different host), you can alternatively instead of `localhost` use the private ip-address of the host that is running the docker daemon. If you are not sure how to retrieve that, you can run: `ip a | grep "scope global" | head -1 | awk '{print $2}' | sed 's|/.*||'`. If the command returns a public ip-address, use `ip a | grep "scope global" | grep docker0 | awk '{print $2}' | sed 's|/.*||'` instead (the commands only work on Linux)***
⚠️ **Please note:** Look into [this](#adaptation-of-the-respective-sample-configuration) to adapt the above example configuration.
</details>
@@ -577,9 +596,7 @@ The examples below define the dynamic configuration in YAML files. If you rather
---
Of course you need to modify `<your-nextcloud-domain>` in the `nextcloud.yml` to the domain on which you want to run Nextcloud. Also make sure to adjust the port `11000` to match the chosen `APACHE_PORT`.
**Please note:** The above configuration will only work if your reverse proxy is running directly on the host that is running the docker daemon. If the reverse proxy is running in a docker container, you can use the `--network host` option (or `network_mode: host` for docker-compose) when starting the reverse proxy container in order to connect the reverse proxy container to the host network (if you are using a firewall on the server, you need to open ports 80 and 443 for the reverse proxy in that case manually). ***If that is not an option or not possible for you (like e.g. on Windows or if the reverse proxy is running on a different host), you can alternatively instead of `localhost` use the private ip-address of the host that is running the docker daemon. If you are not sure how to retrieve that, you can run: `ip a | grep "scope global" | head -1 | awk '{print $2}' | sed 's|/.*||'`. If the command returns a public ip-address, use `ip a | grep "scope global" | grep docker0 | awk '{print $2}' | sed 's|/.*||'` instead (the commands only work on Linux)***
⚠️ **Please note:** Look into [this](#adaptation-of-the-respective-sample-configuration) to adapt the above example configuration.
**Hint**: see https://www.youtube.com/watch?v=VLPSRrLMDmA for a video on configuring Traefik.
@@ -672,8 +689,7 @@ https://<your-nc-domain>:8443 {
}
}
```
Of course you need to modify `<your-nc-domain>` to the domain on which you want to run Nextcloud. **Please note:** The above configuration will only work if your reverse proxy is running directly on the host that is running the docker daemon. If the reverse proxy is running in a docker container, you can use the `--network host` when starting the reverse proxy container in order to connect the reverse proxy container to the host network. If that is not an option or not possible for you (like e.g. on Windows or if the reverse proxy is running on a different host), you can alternatively instead of `localhost` use the private ip-address of the host that is running the docker daemon. If you are not sure how to retrieve that, you can run: `ip a | grep "scope global" | head -1 | awk '{print $2}' | sed 's|/.*||'`. If the command returns a public ip-address, use `ip a | grep "scope global" | grep docker0 | awk '{print $2}' | sed 's|/.*||'` instead (the commands only work on Linux)
⚠️ **Please note:** Look into [this](#adaptation-of-the-respective-sample-configuration) to adapt the above example configuration.
Afterwards should the AIO interface be accessible via `https://ip.address.of.the.host:8443`. You can alternatively change the domain to a different subdomain by using `https://<your-alternative-domain>:443` instead of `https://<your-nc-domain>:8443` in the Caddyfile and use that to access the AIO interface.
@@ -683,7 +699,7 @@ If something does not work, follow the steps below:
1. Make sure that you used the docker run command that is described in this reverse proxy documentation. **Hint:** make sure that you have set the `APACHE_PORT` via e.g. `--env APACHE_PORT=11000` during the docker run command!
1. Make sure to set the `APACHE_IP_BINDING` variable correctly. If in doubt, set it to `--env APACHE_IP_BINDING=0.0.0.0`
1. Make sure that all ports to which your reverse proxy is pointing match the chosen `APACHE_PORT`.
1. Make sure that the reverse proxy is running on the host OS or if running in a container, connected to the host network. If that is not possible (e.g. on Windows or if the reverse proxy is running on a different host), substitute `localhost` or `127.0.0.1` in the default configurations by the private ip-address of the host that is running the docker daemon. If you are not sure how to retrieve that, you can run: `ip a | grep "scope global" | head -1 | awk '{print $2}' | sed 's|/.*||'`. If the command returns a public ip-address, use `ip a | grep "scope global" | grep docker0 | awk '{print $2}' | sed 's|/.*||'` instead (the commands only work on Linux)
1. Make sure to follow [this](#adaptation-of-the-respective-sample-configuration) to adapt the example configurations to your specific setup
1. Make sure that the mastercontainer is able to spawn other containers. You can do so by checking that the mastercontainer indeed has access to the Docker socket which might not be positioned in one of the suggested directories like `/var/run/docker.sock` but in a different directory, based on your OS and the way how you installed Docker. The mastercontainer logs should help figuring this out. You can have a look at them by running `sudo docker logs nextcloud-aio-mastercontainer` after the container is started the first time.
1. Check if after the mastercontainer was started, the reverse proxy if running inside a container, can reach the provided apache port. You can test this by running `nc -z localhost 11000; echo $?` from inside the reverse proxy container. If the output is `0`, everything works. Alternatively you can of course use instead of `localhost` the ip-address of the host here for the test.
1. Make sure that you are not behind CGNAT. If that is the case, you will not be able to open ports properly. In that case you might use a Cloudflare Tunnel.
@@ -692,4 +708,3 @@ If something does not work, follow the steps below:
1. Check if you have a public IPv4- and public IPv6-address. If you only have a public IPv6-address (e.g. due to DS-Lite), make sure to enable IPv6 in Docker and your whole networking infrastructure (e.g. also by adding an AAAA DNS-entry to your domain).
1. Try to configure everything from scratch if it still does not work by following https://github.com/nextcloud/all-in-one#how-to-properly-reset-the-instance.
1. As last resort, you may disable the domain validation by adding `--env SKIP_DOMAIN_VALIDATION=true` to the docker run command. But only use this if you are completely sure that you've correctly configured everything!