Compare commits

...

285 Commits

Author SHA1 Message Date
Simon L
1c5d9f0eb7 add a tag to the chart-yaml
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-04-14 15:47:32 +02:00
Simon L
9ba70425f4 re-add charts_dir
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-04-14 15:46:43 +02:00
Simon L
7acdb2dc92 add a warning as well for FTS
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-04-14 15:34:01 +02:00
Simon L
cab39e59be Merge pull request #2334 from nextcloud/enh/noid/disable-fts-on-nc26
disabling FTS on NC26 as the migration to ES8 is still pending
2023-04-14 15:14:01 +02:00
Simon L
ac005eb5c9 Merge pull request #2338 from nextcloud/aio-helm-update
Helm Chart updates
2023-04-14 15:00:35 +02:00
Simon L
b75e10e5f3 Merge pull request #2328 from nextcloud/talk
talk use official coturn image
2023-04-14 14:58:25 +02:00
szaimen
033f0166f4 Helm Chart updates
Signed-off-by: GitHub <noreply@github.com>
2023-04-14 12:57:58 +00:00
Simon L
e7e29a2731 Merge pull request #2327 from ItsQuadrus/patch-1
Missing brace in readme.md
2023-04-14 14:57:35 +02:00
Simon L
916a25a62e Merge pull request #2307 from nextcloud/enh/noid/add-curl-timeout
add timeout for curl
2023-04-14 14:57:18 +02:00
Simon L
5a8989bb9f Merge pull request #2302 from nextcloud/apache-healthcheck
apache healthcheck, check localhost apacheport with every apache port
2023-04-14 14:56:40 +02:00
Simon L
714815e9f0 Merge pull request #2301 from nextcloud/talk-healthcheck
Talk use netcat to check stun/turn port using domain
2023-04-14 14:55:44 +02:00
Simon L
3a9d5d52d5 Merge pull request #2289 from nextcloud/enh/noid/add-nodejs
add nodejs in order to make recognize easier to install on arm64
2023-04-14 14:53:56 +02:00
Simon L
854b4115e8 Merge pull request #2316 from nextcloud/dependabot/docker/Containers/clamav/clamav/clamav-1.0.1-2
Bump clamav/clamav from 1.0.1-1 to 1.0.1-2 in /Containers/clamav
2023-04-14 14:49:39 +02:00
Simon L
23f2e96c71 Merge pull request #2299 from nextcloud/dependabot/docker/Containers/apache/httpd-2.4.57-alpine3.17
Bump httpd from 2.4.56-alpine3.17 to 2.4.57-alpine3.17 in /Containers/apache
2023-04-14 14:49:14 +02:00
Simon L
07adf95c35 Merge pull request #2282 from nextcloud/dependabot/docker/Containers/mastercontainer/docker-23.0.3-cli
Bump docker from 23.0.2-cli to 23.0.3-cli in /Containers/mastercontainer
2023-04-14 14:47:44 +02:00
Simon L
9848ceec38 Merge pull request #2271 from nextcloud/aio-dependency-update
Dependency updates
2023-04-14 14:47:14 +02:00
Simon L
cbfc5d4d15 Merge pull request #2250 from nextcloud/aio-yaml-update
Yaml updates
2023-04-14 14:38:37 +02:00
Simon L
28b9755a50 disabling FTS on NC26 as the migration to ES8 is still pending
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-04-14 13:41:02 +02:00
Zoey
34a5e6badf fix typo, use always latest build of version
Co-authored-by: Simon L. <szaimen@e.mail.de>
Signed-off-by: Zoey <zoey@z0ey.de>
2023-04-14 11:45:06 +02:00
Zoey
2d1ddccb28 talk use official coturn image
needs testing

Signed-off-by: Zoey <zoey@z0ey.de>
2023-04-13 21:36:11 +02:00
ItsQuadrus
06733e8009 Missing brace
Signed-off-by: ItsQuadrus <quadrus.yt@gmail.com>
2023-04-13 20:44:59 +02:00
szaimen
0b2c7f09b6 Yaml updates
Signed-off-by: GitHub <noreply@github.com>
2023-04-13 12:02:39 +00:00
szaimen
73e734b011 dependency updates
Signed-off-by: GitHub <noreply@github.com>
2023-04-13 12:02:28 +00:00
Simon L
e1890c8f3b add ref docs on cloudflare tunnel and dns-challenge
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-04-13 13:29:53 +02:00
Zoey
904d23147c add suggestion
Co-authored-by: Simon L. <szaimen@e.mail.de>
Signed-off-by: Zoey <zoey@z0ey.de>
2023-04-11 10:54:02 +02:00
Zoey
46ec1ea7f5 always check port 443
Signed-off-by: Zoey <zoey@z0ey.de>
2023-04-10 17:50:58 +02:00
dependabot[bot]
1fa1c90e22 Bump clamav/clamav from 1.0.1-1 to 1.0.1-2 in /Containers/clamav
Bumps clamav/clamav from 1.0.1-1 to 1.0.1-2.

---
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-04-10 12:59:47 +00:00
Simon L
1ce496a323 add timeout for curl
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-04-09 01:03:06 +02:00
Zoey
d93c01f368 apache healthcheck, check localhost apacheport with every apache port
Signed-off-by: Zoey <zoey@z0ey.de>
2023-04-08 13:28:19 +02:00
Zoey
ee5d9493de Talk use netcat to check stun/turn port using domain
Signed-off-by: Zoey <zoey@z0ey.de>
2023-04-08 13:25:40 +02:00
Simon L
c5a1a00e38 update wording for cleaning up things properlyd
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-04-07 17:00:52 +02:00
dependabot[bot]
99f29aaaed Bump httpd in /Containers/apache
Bumps httpd from 2.4.56-alpine3.17 to 2.4.57-alpine3.17.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-07 12:59:09 +00:00
Simon L
0435609521 add nodejs in order to make recognize easier to install on arm64
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-04-06 15:49:25 +02:00
dependabot[bot]
d3b099e8e3 Bump docker from 23.0.2-cli to 23.0.3-cli in /Containers/mastercontainer
Bumps docker from 23.0.2-cli to 23.0.3-cli.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-05 15:25:20 +00:00
Simon L
3cebbb6487 Merge pull request #2284 from nextcloud/dependabot/github_actions/peter-evans/create-pull-request-5
Bump peter-evans/create-pull-request from 4 to 5
2023-04-05 17:24:47 +02:00
Simon L
c6fc7baf2d Merge pull request #2283 from nextcloud/dependabot/github_actions/peter-evans/create-or-update-comment-3
Bump peter-evans/create-or-update-comment from 2 to 3
2023-04-05 16:47:59 +02:00
dependabot[bot]
0c93ad6def Bump peter-evans/create-pull-request from 4 to 5
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 4 to 5.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](https://github.com/peter-evans/create-pull-request/compare/v4...v5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-05 13:00:25 +00:00
dependabot[bot]
cd2208f295 Bump peter-evans/create-or-update-comment from 2 to 3
Bumps [peter-evans/create-or-update-comment](https://github.com/peter-evans/create-or-update-comment) from 2 to 3.
- [Release notes](https://github.com/peter-evans/create-or-update-comment/releases)
- [Commits](https://github.com/peter-evans/create-or-update-comment/compare/v2...v3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-05 13:00:21 +00:00
Simon L
e55500640b Merge pull request #2273 from nextcloud/MariusQuabeck-patch-1
add default path for borg compact
2023-04-05 11:58:44 +02:00
Marius Quabeck
ab8b455b71 add default path for borg compact
all examples up until the compact section work under the assumption that you are using the default backup path "/mnt/backup/borg" so path for compact should be the same

Signed-off-by: Marius Quabeck <marius.quabeck@nextcloud.com>
2023-04-04 18:03:11 +02:00
Simon L
81a8352d64 update dependency-update workflow
ssh ncadmin@192.168.24.128
2023-04-04 14:34:21 +02:00
Simon L
93a0616f7e increase to 4.8.1
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-04-03 10:30:05 +02:00
Simon L
409dda00bd Merge pull request #2255 from nextcloud/enh/noid/remove-workarounds
remove temporarily added dependencies after avatar problem was fixed
2023-04-03 10:29:01 +02:00
Simon L
517ac319ba Merge pull request #2259 from nextcloud/enh/2258/fix-details
define updaterdirectory and add forgotten exit
2023-04-03 10:27:27 +02:00
Simon L
34d8ae8e5a Merge pull request #2256 from nextcloud/enh/noid/add-sysvsem
add sysvsem
2023-04-03 10:26:49 +02:00
Simon L
ed36ba6c8d define updaterdirectory and add forgotten exit
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-04-02 11:26:42 +02:00
Simon L
15c90407bc add sysvsem
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-04-01 21:04:45 +02:00
Simon L
287a5a08cd remove temporarily added dependencies after avatar problem was fixed
after https://github.com/nextcloud/all-in-one/issues/1628 was fixed
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-04-01 21:01:28 +02:00
Simon L
187bf3f767 only show the note about nc26 when all containers are started
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-04-01 14:44:39 +02:00
Simon L
7a10602c63 increase width to 500px
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-04-01 14:37:42 +02:00
Simon L
aba666859b fix and sign in twig template
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-04-01 14:26:03 +02:00
Simon L
00a7e65a2d Merge pull request #2249 from nextcloud/enh/noid/add-remote-backup-section
add a section to the readme about remote borg backups
2023-04-01 14:21:45 +02:00
Simon L
fb3b040290 add a section to the readme about remote borg backups
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-04-01 14:20:25 +02:00
Simon L
baf7778ed3 increase to 4.8.0
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-04-01 14:15:14 +02:00
Simon L
565a84a7bf Merge pull request #2252 from nextcloud/enh/noid/domain-dot
domain must contain at least one dot
2023-04-01 14:14:32 +02:00
Simon L
6b0ce132f9 Merge pull request #2209 from nextcloud/enh/noid/note-about-26
Note on Nextcloud 26
2023-04-01 14:14:18 +02:00
Simon L
cc13161ec6 domain must contain at least one dot
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-04-01 14:05:40 +02:00
Simon L
7ccc699402 Merge pull request #2251 from nextcloud/enh/noid/fix-login-form
fix the login form
2023-04-01 13:36:18 +02:00
Simon L
9954641e02 fix the login form
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-04-01 13:33:11 +02:00
Simon L
c1595afe2d Merge pull request #2246 from nextcloud/automated/noid/psalm-baseline-update-1680236481
[Automated] Update psalm-baseline.xml
2023-03-31 12:33:18 +02:00
Simon L
974190fd86 move the options-form-submit to the containers layout
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-31 12:24:03 +02:00
Simon L
1bf1b2b284 options-form-submit is not needed for the login layout
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-31 12:05:41 +02:00
Simon L
291d543f37 Merge pull request #2248 from nextcloud/enh/noid/shm-size-int
shm-size must be an int
2023-03-31 11:45:22 +02:00
Simon L
8b6bb94539 shm-size must be an int
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-31 11:27:11 +02:00
Simon L
1cae0980cd Correct cifs mount example
Signed-off-by: Simon L. <szaimen@e.mail.de>
2023-03-31 09:25:14 +02:00
nextcloud-command
bd4d16ebb0 Update psalm baseline
Signed-off-by: GitHub <noreply@github.com>
2023-03-31 04:21:20 +00:00
Simon L
ba2b5a4638 Merge pull request #2243 from nextcloud/enh/noid/docker-dind
change docker:dind to docker:cli
2023-03-30 20:16:45 +02:00
Simon L
98eb90360b add a bit more logic
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-30 18:12:57 +02:00
Simon L
2a9c4e3198 wip on note about Nextcloud 26
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-30 18:11:59 +02:00
Simon L
94f7ca00b5 change docker:dind to docker:cli
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-30 18:05:02 +02:00
Simon L
b4a8d7d649 Merge pull request #2241 from nextcloud/dependabot/docker/Containers/borgbackup/alpine-3.17.3
Bump alpine from 3.17.2 to 3.17.3 in /Containers/borgbackup
2023-03-30 17:55:10 +02:00
dependabot[bot]
63e7be45fe Bump alpine from 3.17.2 to 3.17.3 in /Containers/borgbackup
Bumps alpine from 3.17.2 to 3.17.3.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-30 15:54:46 +00:00
Simon L
f6f5598e97 Merge pull request #2240 from nextcloud/dependabot/docker/Containers/watchtower/alpine-3.17.3
Bump alpine from 3.17.2 to 3.17.3 in /Containers/watchtower
2023-03-30 17:54:45 +02:00
dependabot[bot]
736e93b5eb Bump alpine from 3.17.2 to 3.17.3 in /Containers/watchtower
Bumps alpine from 3.17.2 to 3.17.3.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-30 15:54:26 +00:00
Simon L
db9657f125 Merge pull request #2239 from nextcloud/dependabot/docker/Containers/domaincheck/alpine-3.17.3
Bump alpine from 3.17.2 to 3.17.3 in /Containers/domaincheck
2023-03-30 17:54:09 +02:00
Simon L
2b1ae17e88 Merge pull request #2207 from nextcloud/enh/2203/add-dot
add dot to allowed characters in additional backup volumes
2023-03-30 17:53:48 +02:00
Simon L
e6510c21cf Merge pull request #2237 from nextcloud/dependabot/docker/Containers/talk/alpine-3.17.3
Bump alpine from 3.17.2 to 3.17.3 in /Containers/talk
2023-03-30 17:53:32 +02:00
Simon L
92dd734993 Merge pull request #2232 from nextcloud/enh/noid/fix-datdir-permissions
fix the datadir permission problems during install
2023-03-30 15:42:10 +02:00
Simon L
556afe5f51 Merge pull request #2230 from nextcloud/enh/noid/internal-ip-wording
improve wording of internal ip in case of reverse proxy situation
2023-03-30 15:39:05 +02:00
Simon L
23e495fc45 Merge pull request #2226 from nextcloud/enh/noid/increase-shm-size
increase shm_size for postgresql
2023-03-30 15:36:54 +02:00
Simon L
5002de61a2 Merge pull request #2224 from nextcloud/dependabot/docker/Containers/collabora/collabora/code-22.05.12.4.1
Bump collabora/code from 22.05.12.2.1 to 22.05.12.4.1 in /Containers/collabora
2023-03-30 15:35:33 +02:00
Simon L
c56959b9d0 Merge pull request #2210 from nextcloud/enh/2195/allow-digits-in-startup-apps
allow digits in NEXTCLOUD_STARTUP_APPS
2023-03-30 15:35:03 +02:00
Simon L
5d9573602b also update the ui
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-30 15:32:25 +02:00
Simon L
aba40c4633 Merge pull request #2206 from nextcloud/enh/2195/adjust-datadir-wording
adjust wording of regex for NEXTCLOUD_DATADIR
2023-03-30 15:30:45 +02:00
dependabot[bot]
ec6b37178b Bump alpine from 3.17.2 to 3.17.3 in /Containers/domaincheck
Bumps alpine from 3.17.2 to 3.17.3.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-30 12:59:29 +00:00
dependabot[bot]
a0267c6efa Bump alpine from 3.17.2 to 3.17.3 in /Containers/talk
Bumps alpine from 3.17.2 to 3.17.3.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-30 12:59:17 +00:00
Simon L
f0222394a1 Merge pull request #2185 from nextcloud/enh/noid/enable-jit
enable JIT
2023-03-30 12:23:56 +02:00
Simon L
ba88aa1d35 Merge pull request #2234 from nextcloud/enh/noid/add-helm-docs
add some docs on how to use helm-chart
2023-03-30 12:17:46 +02:00
Simon L
f726e4a8c6 add steps how to adjust values
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-30 12:16:49 +02:00
Simon L
7da2c627c6 Merge pull request #2235 from nextcloud/enh/noid/update-helm-another-time
fix helm-chart update
2023-03-30 12:10:46 +02:00
Simon L
e75a426749 try to update helm-chart again
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-30 12:09:17 +02:00
Simon L
5058270c99 add some docs on how to use helm-chart
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-30 11:37:09 +02:00
Simon L
e0f4024ead update links of helm-chart
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-30 11:32:12 +02:00
Simon L
c63d44c1cf improve helm-releaser
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-30 11:30:33 +02:00
Simon L
cb3d8d6b30 Merge pull request #2229 from nextcloud/enh/nod/update-helm-chart-updates
update helm-chart updates
2023-03-30 11:27:47 +02:00
Simon L
fe336cf6d8 update helm-chart updates
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-30 11:24:16 +02:00
Simon L
386533b02f fix the datadir permission problems during install
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-30 10:54:56 +02:00
Simon L
cd6f5ccebd improve wording of internal ip in case of reverse proxy situation
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-30 10:23:05 +02:00
Simon L
9c0ea8a23c Merge pull request #2228 from nextcloud/aio-helm-update
Helm Chart updates
2023-03-30 09:57:44 +02:00
szaimen
d5c857325b Helm Chart updates
Signed-off-by: GitHub <noreply@github.com>
2023-03-30 07:56:26 +00:00
Simon L
ef42467cc2 add a link to traefik config
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-29 18:46:14 +02:00
Simon L
d0f11028d3 increase shm_size for postgresql
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-29 10:57:44 +02:00
dependabot[bot]
0e7e1eaf3d Bump collabora/code in /Containers/collabora
Bumps collabora/code from 22.05.12.2.1 to 22.05.12.4.1.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-27 13:51:30 +00:00
Simon L
20062b6095 allow digits in NEXTCLOUD_STARTUP_APPS
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-26 14:50:09 +02:00
Simon L
bf9482e560 Make sure that NEXTCLOUD_DATADIR is not misleading
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-26 14:46:22 +02:00
Simon L
b7e012f886 add dot to allowed characters in additional backup volumes
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-25 10:12:38 +01:00
Simon L
b4bd4d115d Add additional check to properly resetting things
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-25 10:09:57 +01:00
Simon L
961f894372 adjust wording of regex for NEXTCLOUD_DATADIR
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-25 09:56:34 +01:00
Simon L
a68b00b126 adjust labels
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-24 12:14:02 +01:00
Simon L
1c2b4f042d try to fix the helm-releaser
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-24 12:13:26 +01:00
Simon L
c9acb396ad add labels to chart.yaml
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-24 12:10:03 +01:00
Simon L
af974046f5 Merge pull request #2034 from nextcloud/enh/1582/add-helm-chart-release
Add Helm Chart Releaser workflow
2023-03-24 12:04:41 +01:00
Simon L
62afa918f0 switch chart-release-action to main
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-24 12:01:35 +01:00
Simon L
69cb6bee4d enable JIT
based on https://github.com/nextcloud/documentation/pull/9230
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-23 15:22:24 +01:00
Simon L
fc56c262c1 increase to 4.7.0
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-23 14:32:06 +01:00
Simon L
ed1e6191b8 Merge pull request #2156 from nextcloud/aio-helm-update
Helm Chart updates
2023-03-23 14:31:16 +01:00
Simon L
4ffc3fc866 Merge pull request #2183 from nextcloud/enh/noid/permission-check
Add even more hints to datadir permission check
2023-03-23 14:30:29 +01:00
Simon L
cf8cfc5dff Merge pull request #2184 from nextcloud/nextcloud-container-update
Nextcloud update
2023-03-23 13:53:38 +01:00
szaimen
f1edbd71c5 nextcloud-update automated change
Signed-off-by: GitHub <noreply@github.com>
2023-03-23 12:52:17 +00:00
Simon L
de64fceab9 Add even more hints to datadir permission check
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-23 13:51:46 +01:00
Simon L
d20489de7c Merge pull request #2177 from nextcloud/enh/noid/talk-stun
talk - stun servers may be empty
2023-03-23 13:41:39 +01:00
szaimen
83fb39dabf Helm Chart updates
Signed-off-by: GitHub <noreply@github.com>
2023-03-22 12:37:19 +00:00
Simon L
4256dc8021 talk - stun servers may be empty
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-21 19:17:41 +01:00
Zoey
af78a8ff4c Migrate talk container to alpine (#1583)
Signed-off-by: Zoey <zoey@z0ey.de>
2023-03-21 18:39:18 +01:00
Simon L
48f93991bb Merge pull request #2171 from nextcloud/dependabot/docker/Containers/collabora/collabora/code-22.05.12.2.1
Bump collabora/code from 22.05.12.1.1 to 22.05.12.2.1 in /Containers/collabora
2023-03-21 18:09:41 +01:00
Simon L
a86555da16 Merge pull request #2174 from nextcloud/dependabot/docker/Containers/redis/redis-7.0.10-alpine
Bump redis from 7.0.9-alpine to 7.0.10-alpine in /Containers/redis
2023-03-21 18:09:20 +01:00
dependabot[bot]
e16340ffcb Bump redis from 7.0.9-alpine to 7.0.10-alpine in /Containers/redis
Bumps redis from 7.0.9-alpine to 7.0.10-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-03-21 12:59:46 +00:00
Simon L
28ec69e505 re-order cloudflare notes and add another one
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-21 13:56:38 +01:00
Simon L
9a1371a96b still log to cli output
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-20 16:10:38 +01:00
Simon L
71f143b4aa fix phpdd
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-20 16:04:28 +01:00
dependabot[bot]
a9a3f74d45 Bump collabora/code in /Containers/collabora
Bumps collabora/code from 22.05.12.1.1 to 22.05.12.2.1.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-20 13:02:09 +00:00
Simon L
43b15ae7e7 Merge pull request #2166 from nextcloud/dependabot/docker/Containers/mastercontainer/php-8.1.17-fpm-alpine3.17
Bump php from 8.1.16-fpm-alpine3.17 to 8.1.17-fpm-alpine3.17 in /Containers/mastercontainer
2023-03-17 16:52:57 +01:00
Simon L
3d8fa710c1 Merge pull request #2165 from nextcloud/dependabot/docker/Containers/collabora/collabora/code-22.05.12.1.1
Bump collabora/code from 22.05.10.8.1 to 22.05.12.1.1 in /Containers/collabora
2023-03-17 16:52:27 +01:00
dependabot[bot]
dbe30bba2c Bump php in /Containers/mastercontainer
Bumps php from 8.1.16-fpm-alpine3.17 to 8.1.17-fpm-alpine3.17.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-17 13:00:30 +00:00
dependabot[bot]
d41d0c7f94 Bump collabora/code in /Containers/collabora
Bumps collabora/code from 22.05.10.8.1 to 22.05.12.1.1.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-17 12:59:53 +00:00
Simon L
4b30bcd92e Merge pull request #2134 from nextcloud/enh/noid/add-docker-swarm-note
add link about docker swarm directly to startup script
2023-03-15 14:27:31 +01:00
Simon L
01a670e503 Merge pull request #2135 from nextcloud/enh/noid/improve-dns-hint
improve hint about dns resolving
2023-03-15 14:26:46 +01:00
Simon L
9876491446 Merge pull request #2141 from nextcloud/dependabot/composer/php/guzzlehttp/psr7-2.4.4
Bump guzzlehttp/psr7 from 2.4.3 to 2.4.4 in /php
2023-03-15 14:25:56 +01:00
Simon L
cc3b94a4c1 Merge pull request #2152 from nextcloud/enh/noid/fix-app-update
try to update all apps a second time and try to prevent breakage
2023-03-15 14:25:21 +01:00
Simon L
3c1dcb374f update OO
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-15 14:18:30 +01:00
Simon L
1322eea980 Merge pull request #2095 from nextcloud/aio-yaml-update
Yaml updates
2023-03-15 12:28:11 +01:00
Simon L
c22a94ccc3 try to update all apps a second time and try to prevent breakage
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-13 22:14:40 +01:00
szaimen
51f3964c27 Yaml updates
Signed-off-by: GitHub <noreply@github.com>
2023-03-13 12:17:42 +00:00
Simon L
e50ad0b850 Merge pull request #2150 from nextcloud/nickvergessen-patch-1
fix(docs): Enforce HTTPS usage
2023-03-13 11:53:19 +01:00
Joas Schilling
569975297a fix(docs): Enforce HTTPS usage
Signed-off-by: Joas Schilling <213943+nickvergessen@users.noreply.github.com>
2023-03-13 11:22:38 +01:00
Simon L
e6b63cf9ef Merge pull request #2149 from goldstar611/patch-1
Fix typo
2023-03-13 10:00:08 +01:00
Tony F
1546db7f9f Fix typo
Signed-off-by: Tony F <goldstar611@hotmail.com>
2023-03-12 20:51:00 -05:00
Simon L
2666313d63 Merge pull request #2144 from nextcloud/nginx-0rtt-off
nginx reverse proxy docs: disable 0-rtt
2023-03-11 16:56:33 +01:00
Zoey
cfbb6752ee nginx reverse proxy docs: disable 0-rtt
0-rtt is not recommended by internet.nl

Signed-off-by: Zoey <zoey@z0ey.de>
2023-03-11 14:32:25 +01:00
dependabot[bot]
cd34d8d6f5 Bump guzzlehttp/psr7 from 2.4.3 to 2.4.4 in /php
Bumps [guzzlehttp/psr7](https://github.com/guzzle/psr7) from 2.4.3 to 2.4.4.
- [Release notes](https://github.com/guzzle/psr7/releases)
- [Changelog](https://github.com/guzzle/psr7/blob/master/CHANGELOG.md)
- [Commits](https://github.com/guzzle/psr7/compare/2.4.3...2.4.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-10 13:00:15 +00:00
Simon L
0b15352132 Merge pull request #2136 from nextcloud/automated/noid/psalm-baseline-update-1678425123
[Automated] Update psalm-baseline.xml
2023-03-10 11:27:53 +01:00
Simon L
c5bfdbb653 fix psalm
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-10 11:26:04 +01:00
nextcloud-command
cbc19c17ca Update psalm baseline
Signed-off-by: GitHub <noreply@github.com>
2023-03-10 05:12:02 +00:00
Simon L
067604ceac improve hint about dns resolving
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-09 20:22:50 +01:00
Simon L
e6ecf52df9 add link about docker swarm directly to startup script
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-09 20:17:51 +01:00
Simon L
5e6e433cd2 Merge pull request #2131 from nextcloud/enh/noid/revert-talk-apache
revert "Talk - Apache seemingly needs to be whitelisted as well"
2023-03-09 18:57:31 +01:00
Simon L
86b6d92761 revert "Talk - Apache seemingly needs to be whitelisted as well"
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-09 18:55:53 +01:00
Simon L
a97af08bb8 talk - wait for nextcloud-aio-apache to be started
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-09 18:25:05 +01:00
Simon L
264980df57 increase to 4.6.2
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-09 18:05:54 +01:00
Simon L
e94f63bd26 Merge pull request #2127 from nextcloud/enh/noid/add-reasons
add reasons why changing volume and container name is not supported
2023-03-09 18:04:14 +01:00
Simon L
4689e402f8 Merge pull request #2128 from nextcloud/enh/noid/talk-whitelist-apache
Talk - Apache seemingly needs to be whitelisted as well
2023-03-09 18:03:15 +01:00
Simon L
ba760b060e Merge pull request #2129 from nextcloud/enh/noid/collabora-mount_jail_tree
collabora - add mount_jail_tree=false
2023-03-09 18:02:17 +01:00
Simon L
4800888da6 collabora - add mount_jail_tree=false
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-09 17:55:48 +01:00
Simon L
8539b25278 Talk - Apache seemingly needs to be whitelisted as well
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-09 17:08:21 +01:00
Simon L
5ddf989703 add reasons why changing volume and container name is not supported
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-09 16:23:31 +01:00
Simon L
90c2328400 increase to 4.6.1
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-08 14:54:23 +01:00
Simon L
f5ee38247c Merge pull request #2122 from nextcloud/enh/noid/fix-borg-globbing
borg script - disable globbing
2023-03-08 14:53:33 +01:00
Simon L
f51029270b Merge pull request #2123 from nextcloud/enh/noid/imaginary-prevent-memory-issues
imaginary - try to prevent possible memory issues
2023-03-08 14:52:59 +01:00
Simon L
d27aa357db Merge pull request #2125 from nextcloud/dependabot/docker/Containers/apache/httpd-2.4.56-alpine3.17
Bump httpd from 2.4.55-alpine3.17 to 2.4.56-alpine3.17 in /Containers/apache
2023-03-08 14:09:07 +01:00
dependabot[bot]
4b3e192ee6 Bump httpd in /Containers/apache
Bumps httpd from 2.4.55-alpine3.17 to 2.4.56-alpine3.17.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-08 13:00:51 +00:00
Simon L
d974023c8d imaginary - try to prevent possible memory issues
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-08 11:08:03 +01:00
Simon L
204aa5649c fix typo
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-08 00:12:54 +01:00
Simon L
8cd5f604c4 Nextcloud_mount is actually supported on windows now
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-07 23:26:42 +01:00
Simon L
fdb0330959 add an example for NEXTCLOUD_MOUNT on macOS
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-07 23:16:17 +01:00
Simon L
4f5062080b borg script - disable globbing
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-07 23:15:15 +01:00
Simon L
39b669ae83 fix typo
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-07 11:27:07 +01:00
Simon L
671a73a6c4 fix typo
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-07 10:57:51 +01:00
Simon L
a4f0852bdf increase to 4.6.0
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-07 10:43:04 +01:00
Simon L
46ae99e36b Merge pull request #2109 from nextcloud/enh/noid/change-permission-check
change how permission check setting works
2023-03-07 10:41:22 +01:00
Simon L
07054d869b Merge pull request #2114 from nextcloud/enh/noid/update-imaginary-dependencies
update some imaginary dependencies to improve performance
2023-03-07 10:23:23 +01:00
Simon L
ebbcb998ce address review
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-07 10:04:11 +01:00
Simon L
9f8d17d888 Merge pull request #2113 from nextcloud/enh/noid/cap_add
fix set_memory for imaginary and move cap_add to containers.json
2023-03-07 09:59:45 +01:00
Simon L
56a95182c7 change to bookworm
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-07 09:56:03 +01:00
Simon L
e218c1d041 Merge pull request #2107 from nextcloud/enh/noid/add-another-volume-check
add a check if the mastercontainer volume is really connected to the mastercontainer
2023-03-07 09:53:20 +01:00
Simon L
356792ec68 Merge pull request #2106 from nextcloud/enh/noid/rm-tzdata-master
remove tzdata from mastercontainer
2023-03-07 09:46:55 +01:00
Simon L
30ae4eeecd Merge pull request #2098 from nextcloud/enh/noid/exclude-some-logs
exclude nextcloud and audit log in backup due to GPDR reasons
2023-03-07 09:46:38 +01:00
Simon L
8685107e2e Merge pull request #2118 from nextcloud/enh/noid/send-update-notification-on-saturdays
only send update notifications on saturdays
2023-03-07 09:44:43 +01:00
Simon L
f01a5841b9 only send update notifications on saturdays
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-07 09:29:04 +01:00
Simon L
2a01e9683b exclude nextcloud and audit log in backup due to GPDR reasons
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-07 09:22:02 +01:00
Simon L
0873e526b4 Merge pull request #2115 from spatterIight/patch-1
Update migration.md
2023-03-07 08:57:46 +01:00
spatterlight
2306587a7d Update migration.md
Fixed typo

Signed-off-by: spatterlight <81454789+spatterIight@users.noreply.github.com>
2023-03-06 21:14:45 +00:00
Simon L
69b0911db1 add two options to cifs mount
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-06 15:14:04 +01:00
Simon L
6587530242 fix set_memory for imaginary and move cap_add to containers.json
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-06 11:45:07 +01:00
Simon L
cf3f1f04cd update some imaginary dependencies to improve performance
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-06 11:42:00 +01:00
Simon L
ba6efd2a9c change how permission check setting works
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-05 14:36:21 +01:00
Simon L
1e96eed341 add a check if the mastercontainer volume is really connected to the mastercontainer
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-04 20:17:19 +01:00
Simon L
c54395aa4c update snap migration advice
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-04 18:02:05 +01:00
Simon L
4590b28b50 remove tzdata from mastercontainer
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-04 17:26:57 +01:00
Simon L
a77ae20e5d Merge pull request #2102 from shaan7/patch-1
Fix directory path example
2023-03-03 23:23:14 +01:00
Shantanu Tushar
c5e481b767 Fix directory path example
`/run/desktop/mnt/host/c/ncdata` does not really contain the word `backup`, so I'm guessing `C:\backup` is a typo.

Signed-off-by: Shantanu Tushar <shaan7in@gmail.com>
2023-03-04 03:17:33 +05:30
Simon L
c23b7aa396 increase to 4.5.1
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-02 15:48:51 +01:00
Simon L
a12022f290 Merge pull request #2096 from nextcloud/dependabot/docker/Containers/collabora/collabora/code-22.05.10.8.1
Bump collabora/code from 22.05.10.7.1 to 22.05.10.8.1 in /Containers/collabora
2023-03-02 15:44:22 +01:00
Simon L
01291bbcce Merge pull request #2097 from nextcloud/dependabot/docker/Containers/talk/ubuntu-focal-20230301
Bump ubuntu from focal-20230126 to focal-20230301 in /Containers/talk
2023-03-02 15:43:56 +01:00
Simon L
97b0622cc3 fix typo
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-02 14:50:50 +01:00
dependabot[bot]
f67cae35fa Bump ubuntu from focal-20230126 to focal-20230301 in /Containers/talk
Bumps ubuntu from focal-20230126 to focal-20230301.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-02 13:00:49 +00:00
dependabot[bot]
50aa368169 Bump collabora/code in /Containers/collabora
Bumps collabora/code from 22.05.10.7.1 to 22.05.10.8.1.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-02 13:00:44 +00:00
Simon L
5748f111d3 Merge pull request #2094 from nextcloud/aio-helm-update
Helm Chart updates
2023-03-02 12:22:11 +01:00
szaimen
aec815119e Helm Chart updates
Signed-off-by: GitHub <noreply@github.com>
2023-03-02 11:20:49 +00:00
Simon L
6463ea368a Merge pull request #2080 from nextcloud/fix/2077/fix-datadir-permission-check
fix datadir permission check
2023-03-02 11:49:42 +01:00
Simon L
2aef10ce47 Merge pull request #2092 from nextcloud/enh/2089/clamav-timeout
don't wait for clamav until forever
2023-03-02 11:46:30 +01:00
Simon L
81dff779b6 Merge pull request #2091 from nextcloud/enh/noid/improve-volume-check
improve the volume and container name check
2023-03-02 11:43:16 +01:00
Simon L
a34d6c1726 Merge pull request #2087 from nextcloud/dependabot/docker/Containers/imaginary/nextcloud/imaginary-20230301
Bump nextcloud/imaginary from 20230201 to 20230301 in /Containers/imaginary
2023-03-02 10:35:42 +01:00
Simon L
9bddac5937 Merge pull request #2086 from nextcloud/dependabot/docker/Containers/redis/redis-7.0.9-alpine
Bump redis from 7.0.8-alpine to 7.0.9-alpine in /Containers/redis
2023-03-02 10:35:12 +01:00
Simon L
fba13e8824 Merge pull request #2085 from nextcloud/aio-dependency-update
Dependency updates
2023-03-02 10:34:53 +01:00
Simon L
bc3e13bf69 Merge pull request #2084 from nextcloud/dependabot/docker/Containers/collabora/collabora/code-22.05.10.7.1
Bump collabora/code from 22.05.10.2.1 to 22.05.10.7.1 in /Containers/collabora
2023-03-02 10:34:31 +01:00
Simon L
ee06a04f51 fix datadir permission check
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-02 10:33:51 +01:00
Simon L
1f66f4c9ca Merge pull request #2067 from nextcloud/aio-yaml-update
Yaml updates
2023-03-02 09:58:57 +01:00
Simon L
6a22d5443b don't wait for clamav until forever
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-02 09:46:21 +01:00
Simon L
98078cbe0a improve the volume and container name check
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-02 09:25:14 +01:00
dependabot[bot]
de9b2bba0e Bump nextcloud/imaginary in /Containers/imaginary
Bumps nextcloud/imaginary from 20230201 to 20230301.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-01 13:06:33 +00:00
dependabot[bot]
5fbe902145 Bump redis from 7.0.8-alpine to 7.0.9-alpine in /Containers/redis
Bumps redis from 7.0.8-alpine to 7.0.9-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-03-01 13:03:34 +00:00
szaimen
0dcdbf8be2 dependency updates
Signed-off-by: GitHub <noreply@github.com>
2023-03-01 12:17:25 +00:00
dependabot[bot]
9758c12491 Bump collabora/code in /Containers/collabora
Bumps collabora/code from 22.05.10.2.1 to 22.05.10.7.1.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-28 13:00:41 +00:00
szaimen
d9ec23e0f8 Yaml updates
Signed-off-by: GitHub <noreply@github.com>
2023-02-28 12:17:26 +00:00
Simon L
a06add045c Merge pull request #2079 from nextcloud/automated/noid/psalm-baseline-update-1677471769
[Automated] Update psalm-baseline.xml
2023-02-28 09:14:57 +01:00
nextcloud-command
5fd0b3294e Update psalm baseline
Signed-off-by: GitHub <noreply@github.com>
2023-02-27 04:22:49 +00:00
Simon L
bcdb692dd1 Merge pull request #2062 from nextcloud/note-architectures
add a note on supported architectures
2023-02-23 18:32:26 +01:00
Zoey
ac7c7b19d8 add note on uname -m
Signed-off-by: Zoey <zoey@z0ey.de>
2023-02-23 18:31:09 +01:00
Simon L
d8de7e0765 Merge pull request #2051 from nextcloud/improve-docker-cleanup
Cron: remove nextcloud-aio-domaincheck if stopped
2023-02-23 18:27:40 +01:00
Zoey
cf8d3dd437 add a note on supported architectures
Signed-off-by: Zoey <zoey@z0ey.de>
2023-02-23 18:26:25 +01:00
Zoey
3eb3a9ff9f remove -w from grep
Co-authored-by: Simon L. <szaimen@e.mail.de>
Signed-off-by: Zoey <zoey@z0ey.de>
2023-02-23 18:19:51 +01:00
Zoey
73b4c2d3ea add missing sudo
Signed-off-by: Zoey <zoey@z0ey.de>
2023-02-23 18:13:22 +01:00
Zoey
d7a174615c only remove domaincheck container if it is stopped
Signed-off-by: Zoey <zoey@z0ey.de>
2023-02-23 18:05:34 +01:00
Zoey
e2f92a30c6 remove removing tmp volumes
Signed-off-by: Zoey <zoey@z0ey.de>
2023-02-23 18:05:08 +01:00
Simon L
e28aef0c6a increase to 4.5.0
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-23 17:55:36 +01:00
Simon L
8a0c495d4d Merge pull request #2029 from nextcloud/enh/noid/improve-backup-starting-container-conflict
add a more generous solution to starting containers while backup stil…
2023-02-23 17:52:23 +01:00
Simon L
70eefd1f0d Merge pull request #2061 from nextcloud/fix/2057/install-check
fix install check for primary object storage
2023-02-23 17:48:30 +01:00
Simon L
457644dc52 Merge pull request #2059 from nextcloud/nextcloud-container-update
Nextcloud update
2023-02-23 17:48:04 +01:00
Simon L
3f22ec8b4d Merge pull request #2042 from nextcloud/enh/noid/add-network-option
add additional network option
2023-02-23 17:44:23 +01:00
Simon L
85e3172d7f Merge pull request #2040 from nextcloud/enh/noid/connect-via-localhost
talk - improve a few things
2023-02-23 17:43:10 +01:00
Simon L
c9f2d260f1 Merge pull request #2033 from nextcloud/dependabot/docker/Containers/collabora/collabora/code-22.05.10.2.1
Bump collabora/code from 22.05.10.1.1 to 22.05.10.2.1 in /Containers/collabora
2023-02-23 17:42:25 +01:00
Simon L
6506594155 Merge pull request #2032 from nextcloud/enh/2030/add-util-linux-misc
add util-linux-misc which might be required on alpine linux
2023-02-23 17:41:46 +01:00
Simon L
491693f402 add a more generous solution to starting containers while backup still running
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-23 17:41:10 +01:00
Simon L
2c546fd5be Merge pull request #2020 from nextcloud/enh/2019/fix-db-migration
also overwrite db_name to fix db migration
2023-02-23 17:35:25 +01:00
Simon L
9e8cab8eec Merge pull request #2015 from nextcloud/fix-collabora-ipv6
fix collabora ipv6-check
2023-02-23 17:34:43 +01:00
Simon L
d686d3eae0 Merge pull request #2011 from nextcloud/enh/noid/fix-wrong-mountpoint
docker-aio-config should not be a volume by default
2023-02-23 17:34:03 +01:00
Simon L
7c9cbdc121 Merge pull request #1254 from nextcloud/enh/591/turnserver
Improve turn server
2023-02-23 17:31:45 +01:00
Simon L
f8457a2830 fix install check for primary object storage
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-23 17:09:10 +01:00
Simon L
6a86209451 Merge pull request #2058 from nextcloud/aio-helm-update
Helm Chart updates
2023-02-23 15:39:17 +01:00
szaimen
ea5219f40d Helm Chart updates
Signed-off-by: GitHub <noreply@github.com>
2023-02-23 14:36:40 +00:00
Simon L
f2154bf2b7 try to fix volume order
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-23 15:36:05 +01:00
szaimen
fc1d8e0b32 nextcloud-update automated change
Signed-off-by: GitHub <noreply@github.com>
2023-02-23 12:43:24 +00:00
Zoey
9e9e991cb6 add sudo
Signed-off-by: Zoey <zoey@z0ey.de>
2023-02-23 07:00:05 +01:00
Zoey
c2444912b8 the image is a volume...
Signed-off-by: Zoey <zoey@z0ey.de>
2023-02-22 18:10:51 +01:00
Zoey
e85c43d075 Cron: clean nextcloud-aio-domaincheck/tmp volumes
Signed-off-by: Zoey <zoey@z0ey.de>
2023-02-22 18:03:48 +01:00
szaimen
66851eda8f improve turn server
Signed-off-by: szaimen <szaimen@e.mail.de>
2023-02-22 13:25:41 +01:00
Simon L
93bd1ce2ee talk - improve a few things
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-22 12:35:33 +01:00
Simon L
c3d3a29c6b Merge pull request #2048 from nextcloud/automated/noid/psalm-baseline-update-1677040067
[Automated] Update psalm-baseline.xml
2023-02-22 10:13:47 +01:00
nextcloud-command
cad3b0968a Update psalm baseline
Signed-off-by: GitHub <noreply@github.com>
2023-02-22 04:27:47 +00:00
Simon L
a2585fffe4 Revert "only check for internal ip-address"
This reverts commit b8930bc577.
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-21 17:31:26 +01:00
Simon L
b8930bc577 only check for internal ip-address
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-21 16:07:26 +01:00
Simon L
e0a7ca3656 add additional network option
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-21 15:36:03 +01:00
Simon L
dfc2d9798e Merge pull request #2039 from nextcloud/automated/noid/psalm-baseline-update-1676954190
[Automated] Update psalm-baseline.xml
2023-02-21 09:12:31 +01:00
nextcloud-command
403cc5cae7 Update psalm baseline
Signed-off-by: GitHub <noreply@github.com>
2023-02-21 04:36:29 +00:00
Simon L
1a329d83aa Add Helm Chart Releaser workflow
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-20 18:11:56 +01:00
dependabot[bot]
f4e471e002 Bump collabora/code in /Containers/collabora
Bumps collabora/code from 22.05.10.1.1 to 22.05.10.2.1.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-20 12:20:53 +00:00
Simon L
a8ac8a8c00 add util-linux-misc which might be required on alpine linux
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-20 10:47:11 +01:00
Simon L
ef4835fcef Merge pull request #2031 from nextcloud/automated/noid/psalm-baseline-update-1676866986
[Automated] Update psalm-baseline.xml
2023-02-20 08:59:06 +01:00
nextcloud-command
00293d3ac0 Update psalm baseline
Signed-off-by: GitHub <noreply@github.com>
2023-02-20 04:23:05 +00:00
Simon L
7058cf2090 Merge pull request #2028 from nextcloud/enh/noid/adjust-readme
adjust readme a bit
2023-02-19 22:44:37 +01:00
Simon L
342a3b8b8f adjust readme a bit
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-19 22:43:21 +01:00
Simon L
98a32b1ccf fix detail
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-19 22:32:14 +01:00
Simon L
78db980b2f Merge pull request #2027 from nextcloud/enh/noid/improve-rp-docs
rp documentation - make apache_ip_binding documentation more explicit
2023-02-19 22:30:42 +01:00
Simon L
31ca661345 rp documentation - make apache_ip_binding documentation more explicit
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-19 22:15:23 +01:00
Simon L
e97aa44fe4 add a more complete dnsmasq guide
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-19 11:05:06 +01:00
Simon L
f97bfc7dd1 Merge pull request #2024 from Verhoeckx/patch-1
Add the directive ProxyPassReverse
2023-02-18 22:53:38 +01:00
Verhoeckx
758bc8b3ff Add the directive ProxyPassReverse
According to the official documentation of Apache the directive ProxyPassReverse should be added when Apache is being used as a reverse proxy. I have tested it and Nexctloud AIO seems to work just fine.

From the documentation:
"This directive lets Apache adjust the URL in the Location, Content-Location and URI headers on HTTP redirect responses. This is essential when Apache is used as a reverse proxy (or gateway) to avoid bypassing the reverse proxy because of HTTP redirects on the backend servers which stay behind the reverse proxy."

https://httpd.apache.org/docs/2.2/mod/mod_proxy.html#ProxyPassReverse


Signed-off-by: Verhoeckx <64807887+Verhoeckx@users.noreply.github.com>
2023-02-18 21:43:20 +01:00
Simon L
5ab67cea1e also overwrite db_name to fix db migration
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-18 19:03:26 +01:00
Simon L
4fd365764c Merge pull request #2018 from Leptopoda/patch-1
Fix typo
2023-02-18 16:57:47 +01:00
Nikolas Rimikis
a57185a34b Fix typo
Signed-off-by: Nikolas Rimikis <25266387+Leptopoda@users.noreply.github.com>
2023-02-18 14:27:52 +01:00
Zoey
60399acbc7 close #2014
Signed-off-by: Zoey <zoey@z0ey.de>
2023-02-17 16:49:25 +01:00
Simon L
6d2d054328 docker-aio-config should not be a volume by default
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-17 12:36:50 +01:00
Simon L
bc100b9fd8 Merge pull request #2009 from nextcloud/fix/2008/fix-database-migration
postgresql - improve database online check during the migration
2023-02-17 12:30:26 +01:00
Simon L
394b899578 postgresql - improve database online check during the migration
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-17 11:50:09 +01:00
Simon L
32124235ba increase to 4.4.1
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-17 11:29:45 +01:00
94 changed files with 659 additions and 410 deletions

View File

@@ -23,7 +23,7 @@ jobs:
steps:
- name: Add reaction on start
uses: peter-evans/create-or-update-comment@v2
uses: peter-evans/create-or-update-comment@v3
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@v2
uses: peter-evans/create-or-update-comment@v3
if: failure()
with:
token: ${{ secrets.COMMAND_BOT_PAT }}

View File

@@ -19,17 +19,18 @@ jobs:
run: |
set -x
cd ./php
composer update
set +e
ALL_LINES="$(composer outdated | grep -v "^$\|Direct dependencies\|Everything up to date\|Transitive dependencies")"
set -e
while [ -n "$ALL_LINES" ]; do
CURRENT_LINE="$(echo "$ALL_LINES" | head -1)"
composer require "$(echo "$CURRENT_LINE" | awk '{print $1}')" "^$(echo "$CURRENT_LINE" | awk '{print $4}')" --with-all-dependencies
ALL_LINES="$(echo "$ALL_LINES" | sed '1d')"
done
echo "outdated dependencies:
$(composer outdated)"
composer update --with-all-dependencies
# Disable dependency updates for now
# set +e
# ALL_LINES="$(composer outdated | grep -v "^$\|Direct dependencies\|Everything up to date\|Transitive dependencies")"
# set -e
# while [ -n "$ALL_LINES" ]; do
# CURRENT_LINE="$(echo "$ALL_LINES" | head -1)"
# composer require "$(echo "$CURRENT_LINE" | awk '{print $1}')" "^$(echo "$CURRENT_LINE" | awk '{print $4}')" --with-all-dependencies
# ALL_LINES="$(echo "$ALL_LINES" | sed '1d')"
# done
# echo "outdated dependencies:
# $(composer outdated)"
- name: Update apcu
run: |
# APCU
@@ -43,7 +44,7 @@ jobs:
)"
sed -i "s|pecl install APCu.*\;|pecl install APCu-$apcu_version\;|" ./Containers/mastercontainer/Dockerfile
- name: Create Pull Request
uses: peter-evans/create-pull-request@v4
uses: peter-evans/create-pull-request@v5
with:
commit-message: dependency updates
signoff: true

48
.github/workflows/helm-release.yml vendored Normal file
View File

@@ -0,0 +1,48 @@
name: Helm Chart Releaser
on:
push:
branches:
- main
paths:
- 'nextcloud-aio-helm-chart/**'
jobs:
release:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Turnstyle
uses: softprops/turnstyle@v1
with:
continue-after-seconds: 180
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Fetch history
run: git fetch --prune --unshallow
- name: Configure Git
run: |
git config user.name "$GITHUB_ACTOR"
git config user.email "$GITHUB_ACTOR@users.noreply.github.com"
# See https://github.com/helm/chart-releaser-action/issues/6
- name: Set up Helm
uses: azure/setup-helm@v3.1
with:
version: v3.6.3
- name: Run chart-releaser
# TODO: switch back @main to a specific version like @v1.5.1 or higher
uses: helm/chart-releaser-action@main
with:
mark_as_latest: false
charts_dir: .
env:
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
CR_RELEASE_NAME_TEMPLATE: "helm-chart-{{ .Version }}"
CR_SKIP_EXISTING: true

View File

@@ -66,7 +66,7 @@ jobs:
sed -i "s|^ENV NEXTCLOUD_VERSION.*|ENV NEXTCLOUD_VERSION $NCVERSION|" ./Containers/nextcloud/Dockerfile
- name: Create Pull Request
uses: peter-evans/create-pull-request@v4
uses: peter-evans/create-pull-request@v5
with:
commit-message: nextcloud-update automated change
signoff: true

View File

@@ -26,4 +26,7 @@ jobs:
cd php
composer global require wapmorgan/php-deprecation-detector dev-master
composer install
composer run php-deprecation-detector
composer run php-deprecation-detector | tee -i ./phpdd.log
if grep "Total issues:" ./phpdd.log; then
exit 1
fi

View File

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

View File

@@ -17,11 +17,11 @@ jobs:
DOCKER_TAG="$(curl -L -s 'https://registry.hub.docker.com/v2/repositories/nextcloud/all-in-one/tags?page_size=1024' | jq '."results"[]["name"]' | sed 's|"||g' | grep '^20' | sort -r | head -1)"
DOCKER_TAG="${DOCKER_TAG%%-latest*}"
export DOCKER_TAG
if [ -n "$DOCKER_TAG" ] && ! grep -q "$DOCKER_TAG" ./helm-chart/templates/nextcloud-aio-nextcloud-deployment.yaml; then
sudo bash helm-chart/update-helm.sh "$DOCKER_TAG"
if [ -n "$DOCKER_TAG" ] && ! grep -q "$DOCKER_TAG" ./nextcloud-aio-helm-chart/templates/nextcloud-aio-nextcloud-deployment.yaml; then
sudo bash nextcloud-aio-helm-chart/update-helm.sh "$DOCKER_TAG"
fi
- name: Create Pull Request
uses: peter-evans/create-pull-request@v4
uses: peter-evans/create-pull-request@v5
with:
commit-message: Helm Chart updates
signoff: true

View File

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

View File

@@ -1,7 +1,7 @@
# Caddy is a requirement
FROM caddy:2.6.4-alpine as caddy
FROM httpd:2.4.55-alpine3.17
FROM httpd:2.4.57-alpine3.17
RUN set -ex; \
apk add --no-cache shadow; \

View File

@@ -2,8 +2,5 @@
nc -z "$NEXTCLOUD_HOST" 9000 || exit 0
nc -z localhost 8000 || exit 1
if [ "$APACHE_PORT" != '443' ]; then
nc -z localhost "$APACHE_PORT" || exit 1
else
nc -z "$NC_DOMAIN" "$APACHE_PORT" || exit 1
fi
nc -z localhost "$APACHE_PORT" || exit 1
nc -z "$NC_DOMAIN" 443 || exit 1

View File

@@ -1,8 +1,9 @@
FROM alpine:3.17.2
FROM alpine:3.17.3
RUN set -ex; \
\
apk add --no-cache \
util-linux-misc \
bash \
borgbackup \
rsync \

View File

@@ -129,10 +129,13 @@ if [ "$BORG_MODE" = backup ]; then
# https://forum.level1techs.com/t/optimal-compression-for-borg-backups/145870/6
BORG_OPTS=(-v --stats --compression "auto,zstd" --exclude-caches --checkpoint-interval 86400)
# Exclude the nextcloud log and audit log for GDPR reasons
BORG_EXCLUDE=(--exclude "/nextcloud_aio_volumes/nextcloud_aio_nextcloud/data/nextcloud.log*" --exclude "/nextcloud_aio_volumes/nextcloud_aio_nextcloud/data/audit.log")
# Create the backup
echo "Starting the backup..."
get_start_time
if ! borg create "${BORG_OPTS[@]}" "$BORG_BACKUP_DIRECTORY::$CURRENT_DATE-nextcloud-aio" "/nextcloud_aio_volumes/"; then
if ! borg create "${BORG_OPTS[@]}" "${BORG_EXCLUDE[@]}" "$BORG_BACKUP_DIRECTORY::$CURRENT_DATE-nextcloud-aio" "/nextcloud_aio_volumes/"; then
echo "Deleting the failed backup archive..."
borg delete --stats "$BORG_BACKUP_DIRECTORY::$CURRENT_DATE-nextcloud-aio"
echo "Backup failed!"
@@ -264,13 +267,15 @@ if [ "$BORG_MODE" = restore ]; then
# Restore everything except the configuration file
if ! rsync --stats --archive --human-readable -vv --delete \
--exclude "nextcloud_aio_apache/caddy/"** \
--exclude "nextcloud_aio_mastercontainer/caddy/"** \
--exclude "nextcloud_aio_mastercontainer/certs/"** \
--exclude "nextcloud_aio_apache/caddy/**" \
--exclude "nextcloud_aio_mastercontainer/caddy/**" \
--exclude "nextcloud_aio_nextcloud/data/nextcloud.log*" \
--exclude "nextcloud_aio_nextcloud/data/audit.log" \
--exclude "nextcloud_aio_mastercontainer/certs/**" \
--exclude "nextcloud_aio_mastercontainer/data/configuration.json" \
--exclude "nextcloud_aio_mastercontainer/data/daily_backup_running" \
--exclude "nextcloud_aio_mastercontainer/data/session_date_file" \
--exclude "nextcloud_aio_mastercontainer/session/"** \
--exclude "nextcloud_aio_mastercontainer/session/**" \
/tmp/borg/nextcloud_aio_volumes/ /nextcloud_aio_volumes; then
RESTORE_FAILED=1
echo "Something failed while restoring from backup."

View File

@@ -1,5 +1,5 @@
# Probably from this file: https://github.com/Cisco-Talos/clamav-docker/blob/main/clamav/0.105/alpine/Dockerfile
FROM clamav/clamav:1.0.1-1
FROM clamav/clamav:1.0.1-2
RUN apk add --no-cache tzdata
COPY clamav.conf /tmp/

View File

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

View File

@@ -1,4 +1,4 @@
FROM alpine:3.17.2
FROM alpine:3.17.3
RUN apk add --no-cache lighttpd bash netcat-openbsd
RUN adduser -S www-data -G www-data

View File

@@ -11,10 +11,5 @@ RUN set -ex; \
; \
rm -rf /var/lib/apt/lists/*
COPY start.sh /
RUN chmod +x /start.sh
ENTRYPOINT ["/bin/tini", "--", "/start.sh"]
HEALTHCHECK CMD nc -z localhost 9200 || exit 1
LABEL com.centurylinklabs.watchtower.monitor-only="true"

View File

@@ -1,18 +0,0 @@
#!/bin/bash
# Only start container if database is accessible (needed for backup to work correctly)
while ! nc -z "$POSTGRES_HOST" 5432; do
echo "Waiting for database to start..."
sleep 5
done
# Show wiki if vm.max_map_count is too low
if [ "$(sysctl -n vm.max_map_count)" -le 65530 ]; then
echo "max_map_count is too low and needs to be adjusted."
echo "See https://github.com/nextcloud/all-in-one/discussions/1775 how to change max_map_count"
fi
# Run initial entrypoint
/usr/local/bin/docker-entrypoint.sh
exec "$@"

View File

@@ -1,5 +1,5 @@
# From https://github.com/h2non/imaginary/blob/master/Dockerfile
FROM nextcloud/imaginary:20230201
FROM nextcloud/imaginary:20230301
USER root
RUN set -ex; \
@@ -8,6 +8,15 @@ RUN set -ex; \
apt-get install -y --no-install-recommends \
netcat \
; \
echo "deb http://deb.debian.org/debian bookworm main" > /etc/apt/sources.list.d/bookworm.list; \
apt-get update; \
apt-get install -t bookworm -y --no-install-recommends \
libheif1 \
libde265-0 \
libx265-199 \
libvips \
; \
rm /etc/apt/sources.list.d/bookworm.list; \
rm -rf /var/lib/apt/lists/*
USER nobody
@@ -15,3 +24,6 @@ ENTRYPOINT ["/usr/local/bin/imaginary", "-return-size", "-max-allowed-resolution
HEALTHCHECK CMD nc -z localhost 9000 || exit 1
LABEL com.centurylinklabs.watchtower.monitor-only="true"
# https://github.com/h2non/imaginary#memory-issues
ENV MALLOC_ARENA_MAX=2

View File

@@ -1,11 +1,11 @@
# Docker CLI is a requirement
FROM docker:23.0.1-dind as dind
FROM docker:23.0.3-cli as docker
# Caddy is a requirement
FROM caddy:2.6.4-alpine as caddy
# From https://github.com/docker-library/php/blob/master/8.1/alpine3.17/fpm/Dockerfile
FROM php:8.1.16-fpm-alpine3.17
FROM php:8.1.17-fpm-alpine3.17
RUN set -ex; \
apk add --no-cache shadow; \
@@ -18,19 +18,15 @@ EXPOSE 80
EXPOSE 8080
EXPOSE 8443
RUN mkdir -p /mnt/docker-aio-config/;
VOLUME /mnt/docker-aio-config/
RUN mkdir -p /var/www/docker-aio;
WORKDIR /var/www/docker-aio
RUN set -ex; \
apk add --no-cache \
util-linux-misc \
ca-certificates \
wget \
tzdata \
bash \
apache2 \
apache2-proxy \
@@ -66,7 +62,7 @@ RUN set -ex; \
COPY --from=caddy /usr/bin/caddy /usr/bin/
RUN chmod +x /usr/bin/caddy
COPY --from=dind /usr/local/bin/docker /usr/local/bin/
COPY --from=docker /usr/local/bin/docker /usr/local/bin/
RUN chmod +x /usr/local/bin/docker
RUN set -e && \

View File

@@ -38,8 +38,10 @@ while true; do
# Make sure to delete the lock file always
rm -f "/mnt/docker-aio-config/data/daily_backup_running"
# Check for updates and send notification if yes
sudo -u www-data php /var/www/docker-aio/php/src/Cron/UpdateNotification.php
# Check for updates and send notification if yes on saturdays
if [ "$(date +%u)" = 6 ]; then
sudo -u www-data php /var/www/docker-aio/php/src/Cron/UpdateNotification.php
fi
# Check if AIO is outdated
sudo -u www-data php /var/www/docker-aio/php/src/Cron/OutdatedNotification.php
@@ -47,8 +49,13 @@ while true; do
# Remove sessions older than 24h
find "/mnt/docker-aio-config/session/" -mindepth 1 -mmin +1440 -delete
# Remove nextcloud-aio-domaincheck container
if sudo -u www-data docker ps --format "{{.Names}}" --filter "status=exited" | grep -q "^nextcloud-aio-domaincheck$"; then
sudo -u www-data docker container remove nextcloud-aio-domaincheck
fi
# Remove dangling images
sudo -u www-data docker image prune -f
sudo -u www-data docker image prune --force
# Wait 60s so that the whole loop will not be executed again
sleep 60

View File

@@ -38,9 +38,10 @@ if [ "$AUTOMATIC_UPDATES" = 1 ]; then
fi
# Wait for watchtower to stop
if [ "$AUTOMATIC_UPDATES" = 1 ] && ! docker ps --format "{{.Names}}" | grep -q "^nextcloud-aio-watchtower$"; then
echo "Something seems to be wrong: Watchtower should be started at this step."
else
if [ "$AUTOMATIC_UPDATES" = 1 ]; then
if ! docker ps --format "{{.Names}}" | grep -q "^nextcloud-aio-watchtower$"; then
echo "Something seems to be wrong: Watchtower should be started at this step."
fi
while docker ps --format "{{.Names}}" | grep -q "^nextcloud-aio-watchtower$"; do
echo "Waiting for watchtower to stop"
sleep 30
@@ -58,6 +59,13 @@ fi
if [ "$DAILY_BACKUP" = 1 ]; then
echo "Creating daily backup..."
sudo -u www-data php /var/www/docker-aio/php/src/Cron/CreateBackup.php
if ! docker ps --format "{{.Names}}" | grep -q "^nextcloud-aio-borgbackup$"; then
echo "Something seems to be wrong: the borg container should be started at this step."
fi
while docker ps --format "{{.Names}}" | grep -q "^nextcloud-aio-borgbackup$"; do
echo "Waiting for backup container to stop"
sleep 30
done
fi
# Execute backup check

View File

@@ -77,23 +77,28 @@ elif echo "$STORAGE_DRIVER" | grep -q fuse-overlayfs; then
fi
# Check if startup command was executed correctly
if ! sudo -u www-data docker ps | grep -q "nextcloud-aio-mastercontainer"; then
echo "It seems like you did not give the mastercontainer the correct name?
Using a different name is not supported!"
if ! sudo -u www-data docker ps --format "{{.Names}}" | grep -q "^nextcloud-aio-mastercontainer$"; then
echo "It seems like you did not give the mastercontainer the correct name? (The 'nextcloud-aio-mastercontainer' container was not found.)
Using a different name is not supported since mastercontainer updates will not work in that case!
If you are on docker swarm and try to run AIO, see https://github.com/nextcloud/all-in-one#can-i-run-this-with-docker-swarm"
exit 1
elif ! sudo -u www-data docker volume ls | grep -q "nextcloud_aio_mastercontainer"; then
echo "It seems like you did not give the mastercontainer volume the correct name?
Using a different name is not supported!"
elif ! sudo -u www-data docker volume ls --format "{{.Name}}" | grep -q "^nextcloud_aio_mastercontainer$"; then
echo "It seems like you did not give the mastercontainer volume the correct name? (The 'nextcloud_aio_mastercontainer' volume was not found.)
Using a different name is not supported since the built-in backup solution will not work in that case!"
exit 1
elif ! sudo -u www-data docker inspect nextcloud-aio-mastercontainer | grep -q "nextcloud_aio_mastercontainer"; then
echo "It seems like you did not attach the 'nextcloud_aio_mastercontainer' volume to the mastercontainer?
This is not supported since the built-in backup solution will not work in that case!"
exit 1
fi
# Check for other options
if [ -n "$NEXTCLOUD_DATADIR" ]; then
if [ "$NEXTCLOUD_DATADIR" = "nextcloud_aio_nextcloud_datadir" ]; then
echo "NEXTCLOUD_DATADIR is set to $NEXTCLOUD_DATADIR"
sleep 1
elif ! echo "$NEXTCLOUD_DATADIR" | grep -q "^/" || [ "$NEXTCLOUD_DATADIR" = "/" ]; then
echo "You've set NEXTCLOUD_DATADIR but not to an allowed value.
The string must start with '/' and must not be equal to '/'.
The string must start with '/' and must not be equal to '/'. Also allowed is 'nextcloud_aio_nextcloud_datadir'.
It is set to '$NEXTCLOUD_DATADIR'."
exit 1
fi
@@ -189,9 +194,9 @@ It is set to '$NEXTCLOUD_TRUSTED_CACERTS_DIR '."
fi
fi
if [ -n "$NEXTCLOUD_STARTUP_APPS" ]; then
if ! echo "$NEXTCLOUD_STARTUP_APPS" | grep -q "^[a-z _-]\+$"; then
if ! echo "$NEXTCLOUD_STARTUP_APPS" | grep -q "^[a-z0-9 _-]\+$"; then
echo "You've set NEXTCLOUD_STARTUP_APPS but not to an allowed value.
It needs to be a string. Allowed are small letters a-z, spaces, hyphens and '_'.
It needs to be a string. Allowed are small letters a-z, 0-9, spaces, hyphens and '_'.
It is set to '$NEXTCLOUD_STARTUP_APPS'."
exit 1
fi
@@ -219,7 +224,8 @@ curl https://nextcloud.com &>/dev/null
if [ "$?" = 6 ]; then
echo "Could not resolve the host nextcloud.com."
echo "Most likely the DNS resolving does not work."
echo "You should be able to fix this by adding the '--dns=\"ip.address.of.dns.server\"' option to the docker run command."
echo "You should be able to fix this by following https://dockerlabs.collabnix.com/intermediate/networking/Configuring_DNS.html"
echo "Apart from that, there has been this: https://github.com/nextcloud/all-in-one/discussions/2065"
exit 1
fi

View File

@@ -27,32 +27,21 @@ RUN set -ex; \
apk add --no-cache --virtual .build-deps \
$PHPIZE_DEPS \
autoconf \
libtool \
freetype-dev \
gmp-dev \
icu-dev \
imagemagick-dev \
libevent-dev \
libjpeg-turbo-dev \
libmcrypt-dev \
libpng-dev \
libmemcached-dev \
libpng-dev \
libwebp-dev \
libxml2-dev \
libzip-dev \
openldap-dev \
pcre-dev \
postgresql-dev \
libwebp-dev \
gmp-dev \
lcms2-dev \
fontconfig-dev \
freetype-dev \
ghostscript-dev \
tiff-dev \
zlib-dev \
imagemagick-dev \
libheif-dev \
librsvg-dev \
libxext-dev \
ghostscript-fonts \
; \
\
docker-php-ext-configure gd --with-freetype --with-jpeg --with-webp; \
@@ -61,13 +50,14 @@ RUN set -ex; \
bcmath \
exif \
gd \
gmp \
intl \
ldap \
opcache \
pcntl \
pdo_pgsql \
sysvsem \
zip \
gmp \
; \
\
# pecl will claim success even if one install fails, so we need to perform each install separately
@@ -98,6 +88,8 @@ RUN { \
echo 'opcache.interned_strings_buffer=32'; \
echo 'opcache.save_comments=1'; \
echo 'opcache.revalidate_freq=60'; \
echo 'opcache.jit=1255'; \
echo 'opcache.jit_buffer_size=128M'; \
} > /usr/local/etc/php/conf.d/opcache-recommended.ini; \
\
echo 'apc.enable_cli=1' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini; \
@@ -116,7 +108,7 @@ RUN { \
VOLUME /var/www/html
ENV NEXTCLOUD_VERSION 25.0.3
ENV NEXTCLOUD_VERSION 25.0.5
RUN set -ex; \
apk add --no-cache --virtual .fetch-deps \
@@ -213,12 +205,8 @@ RUN set -ex; \
mawk \
sudo \
grep \
coreutils \
libjpeg \
librsvg \
libheif \
libpng \
ghostscript-fonts;
nodejs \
coreutils;
RUN set -ex; \
grep -q '^pm = dynamic' /usr/local/etc/php-fpm.d/www.conf; \
@@ -262,6 +250,11 @@ RUN set -ex; \
VOLUME /mnt/ncdata
RUN set -ex; \
mkdir -p /nc-updater; \
chown -R www-data:www-data /nc-updater; \
chmod -R 770 /nc-updater
# Give root a random password
RUN echo "root:$(openssl rand -base64 12)" | chpasswd

View File

@@ -39,7 +39,10 @@ $(stat -c "%u:%g %a" "$NEXTCLOUD_DATA_DIR")
(userID:groupID permissions)
but they should be:
33:0 750
(userID:groupID permissions)"
(userID:groupID permissions)
Also make sure that the parent directories on the host of the directory that you've chosen as datadir are publicly readable with e.g. 'sudo chmod +r /mnt' (adjust the command accordingly to your case) and the same for all subdirectories.
Additionally, if you want to use a Fuse-mount as datadir, set 'allow_other' as additional mount option.
For SMB/CIFS mounts as datadir, see https://github.com/nextcloud/all-in-one#can-i-use-a-cifssmb-share-as-nextclouds-datadir"
exit 1
fi
rm "$NEXTCLOUD_DATA_DIR/this-is-a-test-file"
@@ -212,27 +215,58 @@ if ! [ -f "$NEXTCLOUD_DATA_DIR/skip.update" ]; then
exit 1
fi
# We do our own permission check so the permission check is not needed
cat << DATADIR_PERMISSION_CONF > /var/www/html/config/datadir.permission.config.php
<?php
\$CONFIG = array (
'check_data_directory_permissions' => false
);
DATADIR_PERMISSION_CONF
php /var/www/html/occ config:system:set check_data_directory_permissions --value=false --type=bool
# Try to force generation of appdata dir:
php /var/www/html/occ maintenance:repair
max_retries=10
try=0
while [ -z "$(find "$NEXTCLOUD_DATA_DIR/" -maxdepth 1 -mindepth 1 -type d -name "appdata_*")" ] && [ "$try" -lt "$max_retries" ]; do
echo "Waiting for appdata to become available..."
try=$((try+1))
sleep 10s
done
if [ -z "$OBJECTSTORE_S3_BUCKET" ] && [ -z "$OBJECTSTORE_SWIFT_URL" ]; then
max_retries=10
try=0
while [ -z "$(find "$NEXTCLOUD_DATA_DIR/" -maxdepth 1 -mindepth 1 -type d -name "appdata_*")" ] && [ "$try" -lt "$max_retries" ]; do
echo "Waiting for appdata to become available..."
try=$((try+1))
sleep 10s
done
if [ "$try" -ge "$max_retries" ]; then
echo "Installation of Nextcloud failed!"
echo "Install errors: $(cat /var/www/html/data/nextcloud.log)"
touch "$NEXTCLOUD_DATA_DIR/install.failed"
exit 1
if [ "$try" -ge "$max_retries" ]; then
echo "Installation of Nextcloud failed!"
echo "Install errors: $(cat /var/www/html/data/nextcloud.log)"
touch "$NEXTCLOUD_DATA_DIR/install.failed"
exit 1
fi
fi
# This autoconfig is not needed anymore and should be able to be overwritten by the user
rm /var/www/html/config/datadir.permission.config.php
# unset admin password
unset ADMIN_PASSWORD
if [ "$INSTALL_LATEST_MAJOR" = yes ]; then
php /var/www/html/occ config:system:set updater.release.channel --value=beta
php /var/www/html/occ config:system:set updatedirectory --value="/nc-updater"
php /var/www/html/updater/updater.phar --no-interaction
php /var/www/html/occ app:enable nextcloud-aio --force
if ! php /var/www/html/occ -V || php /var/www/html/occ status | grep maintenance | grep -q 'true'; then
echo "Installation of Nextcloud failed!"
touch "$NEXTCLOUD_DATA_DIR/install.failed"
exit 1
fi
php /var/www/html/occ config:system:set updater.release.channel --value=stable
php /var/www/html/occ db:add-missing-indices
php /var/www/html/occ db:add-missing-columns
php /var/www/html/occ db:add-missing-primary-keys
yes | php /var/www/html/occ db:convert-filecache-bigint
fi
# Apply log settings
echo "Applying default settings..."
mkdir -p /var/www/html/data
@@ -349,6 +383,8 @@ if ! [ -f "$NEXTCLOUD_DATA_DIR/skip.update" ]; then
# Performing update of all apps if daily backups are enabled, running and successful and if it is saturday
if [ "$UPDATE_NEXTCLOUD_APPS" = 'yes' ] && [ "$(date +%u)" = 6 ]; then
UPDATED_APPS="$(php /var/www/html/occ app:update --all)"
# Update all apps again and try to prevent something like https://github.com/nextcloud/polls/issues/2793 from happening
php /var/www/html/occ app:update --all
if [ -n "$UPDATED_APPS" ]; then
bash /notify.sh "Your apps just got updated!" "$UPDATED_APPS"
fi
@@ -357,18 +393,18 @@ else
SKIP_UPDATE=1
fi
# Check if appdata is present
# If not, something broke (e.g. changing ncdatadir after aio was first started)
if [ -z "$(find "$NEXTCLOUD_DATA_DIR/" -maxdepth 1 -mindepth 1 -type d -name "appdata_*")" ]; then
echo "Appdata is not present. Did you maybe change the datadir after aio was first started?"
echo "See https://github.com/nextcloud/all-in-one#how-to-change-the-default-location-of-nextclouds-datadir"
echo "In the datadir was found:"
ls -la "$NEXTCLOUD_DATA_DIR/"
exit 1
fi
# Configure tempdirectory
if [ -z "$OBJECTSTORE_S3_BUCKET" ] && [ -z "$OBJECTSTORE_SWIFT_URL" ]; then
# Check if appdata is present
# If not, something broke (e.g. changing ncdatadir after aio was first started)
if [ -z "$(find "$NEXTCLOUD_DATA_DIR/" -maxdepth 1 -mindepth 1 -type d -name "appdata_*")" ]; then
echo "Appdata is not present. Did you maybe change the datadir after aio was first started?"
echo "See https://github.com/nextcloud/all-in-one#how-to-change-the-default-location-of-nextclouds-datadir"
echo "In the datadir was found:"
ls -la "$NEXTCLOUD_DATA_DIR/"
exit 1
fi
# Configure tempdirectory
mkdir -p "$NEXTCLOUD_DATA_DIR/tmp/"
if ! grep -q upload_tmp_dir /usr/local/etc/php/conf.d/nextcloud.ini; then
echo "upload_tmp_dir = $NEXTCLOUD_DATA_DIR/tmp/" >> /usr/local/etc/php/conf.d/nextcloud.ini
@@ -393,6 +429,7 @@ php /var/www/html/occ app:enable support
echo "Adjusting log files..."
php /var/www/html/occ config:system:set logfile --value="/var/www/html/data/nextcloud.log"
php /var/www/html/occ config:app:set admin_audit logfile --value="/var/www/html/data/audit.log"
php /var/www/html/occ config:system:set updatedirectory --value="/nc-updater"
# Apply network settings
echo "Applying network settings..."
@@ -439,10 +476,10 @@ if [ "$COLLABORA_ENABLED" = 'yes' ]; then
php /var/www/html/occ config:system:set allow_local_remote_servers --type=bool --value=true
# Make collabora more save
COLLABORA_IPv4_ADDRESS="$(echo "<?php echo gethostbyname('$NC_DOMAIN');" | php | head -1)"
COLLABORA_IPv6_Address="<?php \$record = dns_get_record('$NC_DOMAIN', DNS_AAAA);"
COLLABORA_IPv6_ADDRESS="<?php \$record = dns_get_record('$NC_DOMAIN', DNS_AAAA);"
# shellcheck disable=SC2016
COLLABORA_IPv6_Address+='if (!empty($record)) {echo $record[0]["ipv6"];}'
COLLABORA_IPv6_Address="$(echo "$COLLABORA_IPv6_Address" | php | head -1)"
COLLABORA_IPv6_ADDRESS+='if (!empty($record)) {echo $record[0]["ipv6"];}'
COLLABORA_IPv6_ADDRESS="$(echo "$COLLABORA_IPv6_ADDRESS" | php | head -1)"
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
@@ -517,7 +554,8 @@ if [ "$TALK_ENABLED" = 'yes' ]; then
if [ -z "$(php /var/www/html/occ talk:turn:list --output="plain")" ]; then
php /var/www/html/occ talk:turn:add turn "$NC_DOMAIN:$TALK_PORT" "udp,tcp" --secret="$TURN_SECRET"
fi
if php /var/www/html/occ talk:stun:list --output="plain" | grep -oP '[a-zA-Z.:0-9]+' | grep -q "^stun.nextcloud.com:443$"; then
STUN_SERVER="$(php /var/www/html/occ talk:stun:list --output="plain")"
if [ -z "$STUN_SERVER" ] || echo "$STUN_SERVER" | grep -oP '[a-zA-Z.:0-9]+' | grep -q "^stun.nextcloud.com:443$"; then
php /var/www/html/occ talk:stun:add "$NC_DOMAIN:$TALK_PORT"
php /var/www/html/occ talk:stun:delete "stun.nextcloud.com:443"
fi
@@ -532,23 +570,30 @@ fi
# Clamav
if [ "$CLAMAV_ENABLED" = 'yes' ]; then
while ! nc -z "$CLAMAV_HOST" 3310; do
count=0
while ! nc -z "$CLAMAV_HOST" 3310 && [ "$count" -lt 90 ]; do
echo "waiting for clamav to become available..."
count=$((count+5))
sleep 5
done
if ! [ -d "/var/www/html/custom_apps/files_antivirus" ]; then
php /var/www/html/occ app:install files_antivirus
elif [ "$(php /var/www/html/occ config:app:get files_antivirus enabled)" != "yes" ]; then
php /var/www/html/occ app:enable files_antivirus
elif [ "$SKIP_UPDATE" != 1 ]; then
php /var/www/html/occ app:update files_antivirus
if [ "$count" -ge 90 ]; then
echo "Clamav did not start in time. Skipping initialization and disabling files_antivirus app."
php /var/www/html/occ app:disable files_antivirus
else
if ! [ -d "/var/www/html/custom_apps/files_antivirus" ]; then
php /var/www/html/occ app:install files_antivirus
elif [ "$(php /var/www/html/occ config:app:get files_antivirus enabled)" != "yes" ]; then
php /var/www/html/occ app:enable files_antivirus
elif [ "$SKIP_UPDATE" != 1 ]; then
php /var/www/html/occ app:update files_antivirus
fi
php /var/www/html/occ config:app:set files_antivirus av_mode --value="daemon"
php /var/www/html/occ config:app:set files_antivirus av_port --value="3310"
php /var/www/html/occ config:app:set files_antivirus av_host --value="$CLAMAV_HOST"
php /var/www/html/occ config:app:set files_antivirus av_stream_max_length --value="104857600"
php /var/www/html/occ config:app:set files_antivirus av_max_file_size --value="-1"
php /var/www/html/occ config:app:set files_antivirus av_infected_action --value="only_log"
fi
php /var/www/html/occ config:app:set files_antivirus av_mode --value="daemon"
php /var/www/html/occ config:app:set files_antivirus av_port --value="3310"
php /var/www/html/occ config:app:set files_antivirus av_host --value="$CLAMAV_HOST"
php /var/www/html/occ config:app:set files_antivirus av_stream_max_length --value="104857600"
php /var/www/html/occ config:app:set files_antivirus av_max_file_size --value="-1"
php /var/www/html/occ config:app:set files_antivirus av_infected_action --value="only_log"
else
if [ -d "/var/www/html/custom_apps/files_antivirus" ]; then
php /var/www/html/occ app:remove files_antivirus
@@ -571,6 +616,12 @@ if version_greater "$installed_version" "24.0.0.0"; then
fi
fi
# Migration to ES8 is pending, thus disabling FTS for now.
if [ "$INSTALL_LATEST_MAJOR" = yes ] || version_greater "$installed_version" "26.0.0.0"; then
export FULLTEXTSEARCH_ENABLED=no
echo "Fulltextsearch is not compatible with Nextcloud 26 and is getting disabled."
fi
# Fulltextsearch
if [ "$FULLTEXTSEARCH_ENABLED" = 'yes' ]; then
while ! nc -z "$FULLTEXTSEARCH_HOST" 9200; do

View File

@@ -17,10 +17,11 @@ if [ -f "/var/www/html/config/config.php" ]; then
echo "Waiting for the database to start..."
sleep 5
done
if [ "$POSTGRES_USER" = "oc_nextcloud" ] && echo "$POSTGRES_PASSWORD" | grep -q '^[a-z0-9]\+$'; then
# this was introduced with https://github.com/nextcloud/all-in-one/pull/218
if [ "$POSTGRES_USER" = "oc_nextcloud" ] && [ "$POSTGRES_DB" = "nextcloud_database" ] && echo "$POSTGRES_PASSWORD" | grep -q '^[a-z0-9]\+$'; then
# This was introduced with https://github.com/nextcloud/all-in-one/pull/218
sed -i "s|'dbuser'.*=>.*$|'dbuser' => '$POSTGRES_USER',|" /var/www/html/config/config.php
sed -i "s|'dbpassword'.*=>.*$|'dbpassword' => '$POSTGRES_PASSWORD',|" /var/www/html/config/config.php
sed -i "s|'db_name'.*=>.*$|'db_name' => '$POSTGRES_DB',|" /var/www/html/config/config.php
fi
fi

View File

@@ -1,5 +1,5 @@
# From https://github.com/ONLYOFFICE/Docker-DocumentServer/blob/master/Dockerfile
FROM onlyoffice/documentserver:7.3.2.8
FROM onlyoffice/documentserver:7.3.3.49
HEALTHCHECK CMD nc -z localhost 80 || exit 1
LABEL com.centurylinklabs.watchtower.monitor-only="true"

View File

@@ -1,7 +1,7 @@
# From https://github.com/docker-library/postgres/blob/master/15/alpine/Dockerfile
FROM postgres:15.2-alpine
RUN apk add --no-cache bash openssl shadow netcat-openbsd grep mawk
RUN apk add --no-cache bash openssl shadow grep mawk
# We need to use the same gid and uid as on old installations
RUN set -ex; \

View File

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

View File

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

View File

@@ -1,5 +1,5 @@
# From https://github.com/docker-library/redis/blob/master/7.0/alpine/Dockerfile
FROM redis:7.0.8-alpine
FROM redis:7.0.10-alpine
RUN apk add --no-cache openssl bash

View File

@@ -1,69 +1,64 @@
FROM ubuntu:focal-20230126
FROM nats:2.9.15-scratch as nats
FROM strukturag/nextcloud-spreed-signaling:1.1.2 as signaling
FROM coturn/coturn:4.6.2-alpine
USER root
COPY --from=nats /nats-server /usr/local/bin/nats-server
COPY --from=signaling /usr/bin/nextcloud-spreed-signaling /usr/local/bin/nextcloud-spreed-signaling
RUN set -ex; \
\
apt-get update; \
apt-get install -y --no-install-recommends \
openssl \
coturn \
supervisor \
curl \
apk add --no-cache \
ca-certificates \
netcat \
; \
rm -rf /var/lib/apt/lists/*
RUN set -ex; \
curl -sL -o "/etc/apt/trusted.gpg.d/morph027-nats-server.asc" "https://packaging.gitlab.io/nats-server/gpg.key"; \
echo "deb https://packaging.gitlab.io/nats-server nats main" > /etc/apt/sources.list.d/morph027-nats-server.list; \
. /etc/lsb-release; \
curl -sL -o "/etc/apt/trusted.gpg.d/morph027-janus.asc" "https://packaging.gitlab.io/janus/gpg.key"; \
echo "deb https://packaging.gitlab.io/janus/$DISTRIB_CODENAME $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/morph027-janus.list; \
curl -sL -o "/etc/apt/trusted.gpg.d/morph027-nextcloud-spreed-signaling.asc" "https://packaging.gitlab.io/nextcloud-spreed-signaling/gpg.key"; \
echo "deb https://packaging.gitlab.io/nextcloud-spreed-signaling signaling main" > /etc/apt/sources.list.d/morph027-nextcloud-spreed-signaling.list
RUN set -ex; \
\
apt-get update; \
apt-get install -y --no-install-recommends \
nats-server \
janus \
nextcloud-spreed-signaling \
; \
rm -rf /var/lib/apt/lists/*
RUN adduser --system --group talk
RUN mkdir /var/log/supervisord; \
mkdir /var/run/supervisord; \
chown talk:talk /var/run/supervisord; \
chown talk:talk /var/log/supervisord;
COPY start.sh /usr/bin/
COPY supervisord.conf /
RUN chmod +x /usr/bin/start.sh; \
chmod +r /supervisord.conf; \
touch /etc/turnserver.conf; \
chown talk:talk /etc/turnserver.conf; \
sed -i '/TURNSERVER_ENABLED/c\TURNSERVER_ENABLED=1' /etc/default/coturn; \
mkdir -p /var/tmp;
RUN curl -sL -o "/usr/share/janus/lua/json.lua" "https://raw.githubusercontent.com/rxi/json.lua/master/json.lua"; \
curl -sL -o "/usr/share/janus/lua/ansicolors.lua" "https://raw.githubusercontent.com/kikito/ansicolors.lua/master/ansicolors.lua"
RUN mkdir -p /etc/nats; \
echo "listen: 127.0.0.1:4222" > /etc/nats/nats.conf; \
mkdir /var/lib/turn; \
chown talk:talk /etc; \
chown talk:talk -R /etc/nats; \
chown talk:talk -R /etc/janus; \
chown talk:talk -R /etc/signaling; \
chown talk:talk -R /usr; \
chown talk:talk -R /var/lib/turn;
tzdata \
bash \
openssl \
supervisor \
bind-tools \
netcat-openbsd \
shadow \
util-linux \
build-base \
lua5.3-dev \
luarocks5.3; \
apk add --no-cache janus-gateway --repository http://dl-cdn.alpinelinux.org/alpine/edge/community; \
useradd --system talk; \
luarocks-5.3 install luajson; \
luarocks-5.3 install ansicolors; \
rename -v ".jcfg.sample" ".jcfg" /etc/janus/*.sample; \
apk del --no-cache \
shadow \
util-linux \
build-base \
lua5.3-dev \
luarocks5.3;
# Give root a random password
RUN echo "root:$(openssl rand -base64 12)" | chpasswd
COPY --chmod=775 start.sh /usr/bin/start.sh
COPY --chmod=664 supervisord.conf /supervisord.conf
RUN set -ex; \
touch \
/etc/nats.conf \
/etc/signaling.conf \
/etc/turnserver.conf; \
echo "listen: 127.0.0.1:4222" | tee /etc/nats.conf; \
mkdir -p \
/var/tmp \
/var/lib/turn \
/var/log/supervisord \
/var/run/supervisord; \
chown talk:talk -R \
/usr \
/etc/janus \
/etc/nats.conf \
/etc/signaling.conf \
/etc/turnserver.conf \
/var/lib/turn \
/var/log/supervisord \
/var/run/supervisord;
# Set default talk port https://github.com/nextcloud/all-in-one/issues/1011
ENV TALK_PORT=3478
@@ -71,5 +66,5 @@ USER talk
ENTRYPOINT ["start.sh"]
CMD ["/usr/bin/supervisord", "-c", "/supervisord.conf"]
HEALTHCHECK CMD (nc -z localhost 8081 && nc -z localhost 8188 && nc -z localhost 4222 && nc -z localhost $TALK_PORT) || exit 1
HEALTHCHECK CMD (nc -z localhost 8081 && nc -z localhost 8188 && nc -z localhost 4222 && nc -z localhost "$TALK_PORT" && nc -z "$NC_DOMAIN" "$TALK_PORT") || exit 1
LABEL com.centurylinklabs.watchtower.monitor-only="true"

View File

@@ -7,15 +7,16 @@ if [ -z "$NC_DOMAIN" ]; then
elif [ -z "$TURN_SECRET" ]; then
echo "You need to provide the TURN_SECRET."
exit 1
elif [ -z "$JANUS_API_KEY" ]; then
echo "You need to provide the JANUS_API_KEY."
exit 1
elif [ -z "$SIGNALING_SECRET" ]; then
echo "You need to provide the SIGNALING_SECRET."
exit 1
fi
# Turn: https://github.com/coturn/coturn/blob/master/examples/etc/turnserver.conf
set -x
IPv4_ADDRESS_TALK="$(dig nextcloud-aio-talk A +short)"
set +x
# Turn
cat << TURN_CONF > "/etc/turnserver.conf"
listening-port=$TALK_PORT
fingerprint
@@ -32,26 +33,26 @@ pidfile=/var/tmp/turnserver.pid
no-tls
no-dtls
userdb=/var/lib/turn/turndb
# Based on https://nextcloud-talk.readthedocs.io/en/latest/TURN/#turn-server-and-internal-networks
allowed-peer-ip=$IPv4_ADDRESS_TALK
denied-peer-ip=0.0.0.0-0.255.255.255
denied-peer-ip=10.0.0.0-10.255.255.255
denied-peer-ip=100.64.0.0-100.127.255.255
denied-peer-ip=127.0.0.0-127.255.255.255
denied-peer-ip=169.254.0.0-169.254.255.255
denied-peer-ip=172.16.0.0-172.31.255.255
denied-peer-ip=192.0.0.0-192.0.0.255
denied-peer-ip=192.0.2.0-192.0.2.255
denied-peer-ip=192.88.99.0-192.88.99.255
denied-peer-ip=192.168.0.0-192.168.255.255
denied-peer-ip=198.18.0.0-198.19.255.255
denied-peer-ip=198.51.100.0-198.51.100.255
denied-peer-ip=203.0.113.0-203.0.113.255
denied-peer-ip=240.0.0.0-255.255.255.255
TURN_CONF
# Janus
set -x
sed -i "s|#turn_rest_api_key.*|turn_rest_api_key = \"$JANUS_API_KEY\"|" /etc/janus/janus.jcfg
sed -i "s|#full_trickle.*|full_trickle = true|g" /etc/janus/janus.jcfg
sed -i 's|#stun_server.*|stun_server = "127.0.0.1"|g' /etc/janus/janus.jcfg
sed -i "s|#stun_port.*|stun_port = $TALK_PORT|g" /etc/janus/janus.jcfg
sed -i "s|#turn_port.*|turn_port = $TALK_PORT|g" /etc/janus/janus.jcfg
sed -i 's|#turn_server.*|turn_server = "127.0.0.1"|g' /etc/janus/janus.jcfg
sed -i 's|#turn_type .*|turn_type = "udp"|g' /etc/janus/janus.jcfg
sed -i 's|#ice_ignore_list .*|ice_ignore_list = "udp"|g' /etc/janus/janus.jcfg
sed -i 's|#interface.*|interface = "lo"|g' /etc/janus/janus.transport.websockets.jcfg
sed -i 's|#ws_interface.*|ws_interface = "lo"|g' /etc/janus/janus.transport.websockets.jcfg
sed -i 's|certfile =|#certfile =|g' /etc/janus/janus.transport.mqtt.jcfg
sed -i 's|keyfile =|#keyfile =|g' /etc/janus/janus.transport.mqtt.jcfg
set +x
# Signling
cat << SIGNALING_CONF > "/etc/signaling/server.conf"
cat << SIGNALING_CONF > "/etc/signaling.conf"
[http]
listen = 0.0.0.0:8081
@@ -81,11 +82,6 @@ url = nats://127.0.0.1:4222
[mcu]
type = janus
url = ws://127.0.0.1:8188
[turn]
apikey = ${JANUS_API_KEY}
secret = ${TURN_SECRET}
servers = turn:$NC_DOMAIN:$TALK_PORT?transport=tcp,turn:$NC_DOMAIN:$TALK_PORT?transport=udp
SIGNALING_CONF
exec "$@"

View File

@@ -13,25 +13,25 @@ stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0
command=turnserver
command=turnserver -c /etc/turnserver.conf
[program:nats-server]
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0
command=nats-server -c /etc/nats/nats.conf
command=nats-server -c /etc/nats.conf
[program:janus]
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0
command=/usr/bin/janus --config=/etc/janus/janus.jcfg --disable-colors --log-stdout
command=janus --config=/etc/janus/janus.jcfg --disable-colors --log-stdout
[program:signaling]
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0
command=signaling --config /etc/signaling/server.conf
command=nextcloud-spreed-signaling -config /etc/signaling.conf

View File

@@ -1,7 +1,7 @@
# From https://github.com/containrrr/watchtower/blob/main/dockerfiles/Dockerfile.self-contained
FROM containrrr/watchtower:1.5.3 as watchtower
FROM alpine:3.17.2
FROM alpine:3.17.3
RUN apk add --no-cache bash
COPY --from=watchtower /watchtower /

View File

@@ -1,9 +0,0 @@
name: Nextcloud AIO Helm Chart
description: A generated Helm Chart for Nextcloud AIO from Skippbox Kompose
version: 4.3.4
apiVersion: v2
keywords:
- latest
sources:
- https://github.com/nextcloud/all-in-one/tree/main/helm-chart
home: https://github.com/nextcloud/all-in-one/tree/main/helm-chart

View File

@@ -1,3 +0,0 @@
# You can also install the AIO containers on Kubernetes using this Helm Chart
This is currently beta and not ready yet.

View File

@@ -44,6 +44,7 @@ services:
restart: unless-stopped
networks:
- nextcloud-aio
shm_size: 268435456
nextcloud-aio-nextcloud:
depends_on:
@@ -101,6 +102,7 @@ services:
- STARTUP_APPS=${NEXTCLOUD_STARTUP_APPS}
- ADDITIONAL_APKS=${NEXTCLOUD_ADDITIONAL_APKS}
- ADDITIONAL_PHP_EXTENSIONS=${NEXTCLOUD_ADDITIONAL_PHP_EXTENSIONS}
- INSTALL_LATEST_MAJOR=${INSTALL_LATEST_MAJOR}
restart: unless-stopped
networks:
- nextcloud-aio
@@ -125,7 +127,7 @@ services:
- "9980"
environment:
- aliasgroup1=https://${NC_DOMAIN}:443
- extra_params=--o:ssl.enable=false --o:ssl.termination=true --o:logging.level=warning --o:home_mode.enable=true ${COLLABORA_SECCOMP_POLICY} --o:remote_font_config.url=https://${NC_DOMAIN}/apps/richdocuments/settings/fonts.json
- extra_params=--o:ssl.enable=false --o:ssl.termination=true --o:mount_jail_tree=false --o:logging.level=warning --o:home_mode.enable=true ${COLLABORA_SECCOMP_POLICY} --o:remote_font_config.url=https://${NC_DOMAIN}/apps/richdocuments/settings/fonts.json
- dictionaries=${COLLABORA_DICTIONARIES}
- TZ=${TIMEZONE}
- server_name=${NC_DOMAIN}
@@ -147,7 +149,6 @@ services:
- NC_DOMAIN=${NC_DOMAIN}
- TURN_SECRET=${TURN_SECRET}
- SIGNALING_SECRET=${SIGNALING_SECRET}
- JANUS_API_KEY=${JANUS_API_KEY}
- TZ=${TIMEZONE}
- TALK_PORT=${TALK_PORT}
restart: unless-stopped
@@ -194,6 +195,8 @@ services:
restart: unless-stopped
networks:
- nextcloud-aio
cap_add:
- SYS_NICE
nextcloud-aio-fulltextsearch:
profiles: ["fulltextsearch"]

View File

@@ -10,7 +10,7 @@ COLLABORA_SECCOMP_POLICY=--o:security.seccomp=true # Changing the value
DATABASE_PASSWORD= # TODO! This needs to be a unique and good password!
FULLTEXTSEARCH_ENABLED="no" # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically.
IMAGINARY_ENABLED="no" # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically.
JANUS_API_KEY= # TODO! This needs to be a unique and good password!
INSTALL_LATEST_MAJOR=no # Setting this to yes will install the latest Major Nextcloud version upon the first installation
NC_DOMAIN=yourdomain.com # TODO! Needs to be changed to the domain that you want to use for Nextcloud.
NEXTCLOUD_ADDITIONAL_APKS=imagemagick # This allows to add additional packages to the Nextcloud container permanently. Default is imagemagick but can be overwritten by modifying this value.
NEXTCLOUD_ADDITIONAL_PHP_EXTENSIONS=imagick # This allows to add additional php extensions to the Nextcloud container permanently. Default is imagick but can be overwritten by modifying this value.

View File

@@ -83,6 +83,7 @@ sed -i 's|COLLABORA_SECCOMP_POLICY=|COLLABORA_SECCOMP_POLICY=--o:security.seccom
sed -i 's|NEXTCLOUD_STARTUP_APPS=|NEXTCLOUD_STARTUP_APPS="deck twofactor_totp tasks calendar contacts" # Allows to modify the Nextcloud apps that are installed on starting AIO the first time|' sample.conf
sed -i 's|NEXTCLOUD_ADDITIONAL_APKS=|NEXTCLOUD_ADDITIONAL_APKS=imagemagick # This allows to add additional packages to the Nextcloud container permanently. Default is imagemagick but can be overwritten by modifying this value.|' sample.conf
sed -i 's|NEXTCLOUD_ADDITIONAL_PHP_EXTENSIONS=|NEXTCLOUD_ADDITIONAL_PHP_EXTENSIONS=imagick # This allows to add additional php extensions to the Nextcloud container permanently. Default is imagick but can be overwritten by modifying this value.|' sample.conf
sed -i 's|INSTALL_LATEST_MAJOR=|INSTALL_LATEST_MAJOR=no # Setting this to yes will install the latest Major Nextcloud version upon the first installation|' sample.conf
sed -i 's|=$|= # TODO! This needs to be a unique and good password!|' sample.conf
cat sample.conf

View File

@@ -15,12 +15,12 @@ The procedure for migrating only the files works like this:
1. Recreate all users that were present on your former installation
1. Take a backup using Nextcloud AIO's built-in backup solution (so that you can easily restore to this state again) (Note: this will stop all containers and is expected: don't start the container again at this point!)
1. Restore the datadirectory of your former instance: for `/path/to/nextcloud/data/` run `sudo docker cp --follow-link /path/to/nextcloud/data/ nextcloud-aio-nextcloud:/mnt/ncdata/` Note: the `/` at the end are necessary.
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. 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.
## 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.
**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.
The procedure for migrating the files and the database works like this:
1. Make sure that your old instance is on exactly the same version like the version used in Nextcloud AIO. (e.g. 23.0.0) You can find the used version here: [click here](https://github.com/nextcloud/all-in-one/search?l=Dockerfile&q=NEXTCLOUD_VERSION&type=). If not, simply upgrade your former installation to that version or wait until the version used in Nextcloud AIO got updated to the same version of your former installation or the other way around.

View File

@@ -0,0 +1,13 @@
name: nextcloud-aio-helm-chart
description: A generated Helm Chart for Nextcloud AIO from Skippbox Kompose
version: 4.8.1
apiVersion: v2
keywords:
- latest
- nextcloud
- helm-chart
- open-source
- cloud
sources:
- https://github.com/nextcloud/all-in-one/tree/main/nextcloud-aio-helm-chart
home: https://github.com/nextcloud/all-in-one/tree/main/nextcloud-aio-helm-chart

View File

@@ -0,0 +1,14 @@
# You can also install the AIO containers on Kubernetes using this Helm Chart
This is currently beta and not ready yet.
## How to use this?
First download this file: https://raw.githubusercontent.com/nextcloud/all-in-one/main/nextcloud-aio-helm-chart/values.yaml and adjust at least all values marked with `# TODO!`
Then run:
```
helm repo add nextcloud-aio https://nextcloud.github.io/all-in-one/
helm install my-release nextcloud-aio/nextcloud-aio-helm-chart -f values.yaml
```

View File

@@ -54,7 +54,7 @@ spec:
value: nextcloud-aio-talk
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-apache:20230216_152733-latest
image: nextcloud/aio-apache:20230414_123705-latest
name: nextcloud-aio-apache
ports:
- containerPort: {{ .Values.APACHE_PORT }}

View File

@@ -38,7 +38,7 @@ spec:
value: "90"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-clamav:20230216_152733-latest
image: nextcloud/aio-clamav:20230414_123705-latest
name: nextcloud-aio-clamav
ports:
- containerPort: 3310

View File

@@ -41,10 +41,10 @@ spec:
- name: dictionaries
value: "{{ .Values.COLLABORA_DICTIONARIES }}"
- name: extra_params
value: --o:ssl.enable=false --o:ssl.termination=true --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
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:20230216_152733-latest
image: nextcloud/aio-collabora:20230414_123705-latest
name: nextcloud-aio-collabora
ports:
- containerPort: 9980

View File

@@ -46,7 +46,7 @@ spec:
value: nextcloud
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-postgresql:20230216_152733-latest
image: nextcloud/aio-postgresql:20230414_123705-latest
name: nextcloud-aio-database
ports:
- containerPort: 5432

View File

@@ -42,7 +42,7 @@ spec:
value: "{{ .Values.TIMEZONE }}"
- name: discovery.type
value: single-node
image: nextcloud/aio-fulltextsearch:20230216_152733-latest
image: nextcloud/aio-fulltextsearch:20230414_123705-latest
name: nextcloud-aio-fulltextsearch
ports:
- containerPort: 9200

View File

@@ -26,8 +26,12 @@ spec:
- env:
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-imaginary:20230216_152733-latest
image: nextcloud/aio-imaginary:20230414_123705-latest
name: nextcloud-aio-imaginary
ports:
- containerPort: 9000
securityContext:
capabilities:
add:
- SYS_NICE
{{- end }}

View File

@@ -64,6 +64,8 @@ spec:
value: "{{ .Values.IMAGINARY_ENABLED }}"
- name: IMAGINARY_HOST
value: nextcloud-aio-imaginary
- name: INSTALL_LATEST_MAJOR
value: "{{ .Values.INSTALL_LATEST_MAJOR }}"
- name: NC_DOMAIN
value: "{{ .Values.NC_DOMAIN }}"
- name: NEXTCLOUD_DATA_DIR
@@ -112,7 +114,7 @@ spec:
value: "{{ .Values.TIMEZONE }}"
- name: UPDATE_NEXTCLOUD_APPS
value: "{{ .Values.UPDATE_NEXTCLOUD_APPS }}"
image: nextcloud/aio-nextcloud:20230216_152733-latest
image: nextcloud/aio-nextcloud:20230414_123705-latest
name: nextcloud-aio-nextcloud
ports:
- containerPort: 9000

View File

@@ -42,7 +42,7 @@ spec:
value: "{{ .Values.ONLYOFFICE_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-onlyoffice:20230216_152733-latest
image: nextcloud/aio-onlyoffice:20230414_123705-latest
name: nextcloud-aio-onlyoffice
ports:
- containerPort: 80

View File

@@ -37,7 +37,7 @@ spec:
value: "{{ .Values.REDIS_PASSWORD }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-redis:20230216_152733-latest
image: nextcloud/aio-redis:20230414_123705-latest
name: nextcloud-aio-redis
ports:
- containerPort: 6379

View File

@@ -24,8 +24,6 @@ spec:
spec:
containers:
- env:
- name: JANUS_API_KEY
value: "{{ .Values.JANUS_API_KEY }}"
- name: NC_DOMAIN
value: "{{ .Values.NC_DOMAIN }}"
- name: SIGNALING_SECRET
@@ -36,7 +34,7 @@ spec:
value: "{{ .Values.TURN_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-talk:20230216_152733-latest
image: nextcloud/aio-talk:20230414_123705-latest
name: nextcloud-aio-talk
ports:
- containerPort: {{ .Values.TALK_PORT }}

View File

@@ -2,6 +2,9 @@
DOCKER_TAG="$1"
# The logic needs the files in ./helm-chart
mv ./nextcloud-aio-helm-chart ./helm-chart
# Clean
rm -f ./helm-chart/values.yaml
rm -rf ./helm-chart/templates
@@ -141,7 +144,7 @@ find ./ \( -not -name '*service.yaml' -name '*.yaml' \) -exec sed -i "/^status:/
find ./ \( -not -name '*persistentvolumeclaim.yaml' -name '*.yaml' \) -exec sed -i "/resources:/d" \{} \;
# shellcheck disable=SC1083
find ./ -name '*.yaml' -exec sed -i "/creationTimestamp: null/d" \{} \;
VOLUMES="$(find ./ -name '*persistentvolumeclaim.yaml' | sed 's|-persistentvolumeclaim.yaml||g;s|.*nextcloud-aio-||g')"
VOLUMES="$(find ./ -name '*persistentvolumeclaim.yaml' | sed 's|-persistentvolumeclaim.yaml||g;s|.*nextcloud-aio-||g' | sort)"
mapfile -t VOLUMES <<< "$VOLUMES"
for variable in "${VOLUMES[@]}"; do
name="$(echo "$variable" | sed 's|-|_|g' | tr '[:lower:]' '[:upper:]')_STORAGE_SIZE"
@@ -199,4 +202,9 @@ done
chmod 777 -R ./
# Seems like the dir needs to match the name of the chart
cd ../
rm -rf ./nextcloud-aio-helm-chart
mv ./helm-chart ./nextcloud-aio-helm-chart
set +ex

View File

@@ -9,7 +9,7 @@ COLLABORA_SECCOMP_POLICY: --o:security.seccomp=true # Changing the valu
DATABASE_PASSWORD: # TODO! This needs to be a unique and good password!
FULLTEXTSEARCH_ENABLED: "no" # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically.
IMAGINARY_ENABLED: "no" # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically.
JANUS_API_KEY: # TODO! This needs to be a unique and good password!
INSTALL_LATEST_MAJOR: no # Setting this to yes will install the latest Major Nextcloud version upon the first installation
NC_DOMAIN: yourdomain.com # TODO! Needs to be changed to the domain that you want to use for Nextcloud.
NEXTCLOUD_ADDITIONAL_APKS: imagemagick # This allows to add additional packages to the Nextcloud container permanently. Default is imagemagick but can be overwritten by modifying this value.
NEXTCLOUD_ADDITIONAL_PHP_EXTENSIONS: imagick # This allows to add additional php extensions to the Nextcloud container permanently. Default is imagick but can be overwritten by modifying this value.
@@ -29,14 +29,14 @@ TIMEZONE: Europe/Berlin # TODO! This is the timezone that your containe
TURN_SECRET: # TODO! This needs to be a unique and good password!
UPDATE_NEXTCLOUD_APPS: no # When setting to yes (with quotes), it will automatically update all installed Nextcloud apps upon container startup on saturdays.
STORAGE_CLASS: # By setting this, you can adjust the storage class for your volumes
ELASTICSEARCH_STORAGE_SIZE: 1Gi # You can change the size of the elasticsearch volume that default to 1Gi with this value
NEXTCLOUD_TRUSTED_CACERTS_STORAGE_SIZE: 1Gi # You can change the size of the nextcloud-trusted-cacerts volume that default to 1Gi with this value
COLLABORA_FONTS_STORAGE_SIZE: 1Gi # You can change the size of the collabora-fonts volume that default to 1Gi with this value
ONLYOFFICE_STORAGE_SIZE: 1Gi # You can change the size of the onlyoffice volume that default to 1Gi with this value
CLAMAV_STORAGE_SIZE: 1Gi # You can change the size of the clamav volume that default to 1Gi with this value
DATABASE_DUMP_STORAGE_SIZE: 1Gi # You can change the size of the database-dump volume that default to 1Gi with this value
NEXTCLOUD_DATA_STORAGE_SIZE: 1Gi # You can change the size of the nextcloud-data volume that default to 1Gi with this value
NEXTCLOUD_STORAGE_SIZE: 1Gi # You can change the size of the nextcloud volume that default to 1Gi with this value
REDIS_STORAGE_SIZE: 1Gi # You can change the size of the redis volume that default to 1Gi with this value
DATABASE_STORAGE_SIZE: 1Gi # You can change the size of the database volume that default to 1Gi with this value
APACHE_STORAGE_SIZE: 1Gi # You can change the size of the apache volume that default to 1Gi with this value
CLAMAV_STORAGE_SIZE: 1Gi # You can change the size of the clamav volume that default to 1Gi with this value
COLLABORA_FONTS_STORAGE_SIZE: 1Gi # You can change the size of the collabora-fonts volume that default to 1Gi with this value
DATABASE_STORAGE_SIZE: 1Gi # You can change the size of the database volume that default to 1Gi with this value
DATABASE_DUMP_STORAGE_SIZE: 1Gi # You can change the size of the database-dump volume that default to 1Gi with this value
ELASTICSEARCH_STORAGE_SIZE: 1Gi # You can change the size of the elasticsearch volume that default to 1Gi with this value
NEXTCLOUD_STORAGE_SIZE: 1Gi # You can change the size of the nextcloud volume that default to 1Gi with this value
NEXTCLOUD_DATA_STORAGE_SIZE: 1Gi # You can change the size of the nextcloud-data volume that default to 1Gi with this value
NEXTCLOUD_TRUSTED_CACERTS_STORAGE_SIZE: 1Gi # You can change the size of the nextcloud-trusted-cacerts volume that default to 1Gi with this value
ONLYOFFICE_STORAGE_SIZE: 1Gi # You can change the size of the onlyoffice volume that default to 1Gi with this value
REDIS_STORAGE_SIZE: 1Gi # You can change the size of the redis volume that default to 1Gi with this value

105
php/composer.lock generated
View File

@@ -220,16 +220,16 @@
},
{
"name": "guzzlehttp/psr7",
"version": "2.4.3",
"version": "2.4.4",
"source": {
"type": "git",
"url": "https://github.com/guzzle/psr7.git",
"reference": "67c26b443f348a51926030c83481b85718457d3d"
"reference": "3cf1b6d4f0c820a2cf8bcaec39fc698f3443b5cf"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/guzzle/psr7/zipball/67c26b443f348a51926030c83481b85718457d3d",
"reference": "67c26b443f348a51926030c83481b85718457d3d",
"url": "https://api.github.com/repos/guzzle/psr7/zipball/3cf1b6d4f0c820a2cf8bcaec39fc698f3443b5cf",
"reference": "3cf1b6d4f0c820a2cf8bcaec39fc698f3443b5cf",
"shasum": ""
},
"require": {
@@ -319,7 +319,7 @@
],
"support": {
"issues": "https://github.com/guzzle/psr7/issues",
"source": "https://github.com/guzzle/psr7/tree/2.4.3"
"source": "https://github.com/guzzle/psr7/tree/2.4.4"
},
"funding": [
{
@@ -335,7 +335,7 @@
"type": "tidelift"
}
],
"time": "2022-10-26T14:07:24+00:00"
"time": "2023-03-09T13:19:02+00:00"
},
{
"name": "http-interop/http-factory-guzzle",
@@ -729,21 +729,21 @@
},
{
"name": "psr/http-client",
"version": "1.0.1",
"version": "1.0.2",
"source": {
"type": "git",
"url": "https://github.com/php-fig/http-client.git",
"reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621"
"reference": "0955afe48220520692d2d09f7ab7e0f93ffd6a31"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/http-client/zipball/2dfb5f6c5eff0e91e20e913f8c5452ed95b86621",
"reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621",
"url": "https://api.github.com/repos/php-fig/http-client/zipball/0955afe48220520692d2d09f7ab7e0f93ffd6a31",
"reference": "0955afe48220520692d2d09f7ab7e0f93ffd6a31",
"shasum": ""
},
"require": {
"php": "^7.0 || ^8.0",
"psr/http-message": "^1.0"
"psr/http-message": "^1.0 || ^2.0"
},
"type": "library",
"extra": {
@@ -763,7 +763,7 @@
"authors": [
{
"name": "PHP-FIG",
"homepage": "http://www.php-fig.org/"
"homepage": "https://www.php-fig.org/"
}
],
"description": "Common interface for HTTP clients",
@@ -775,27 +775,27 @@
"psr-18"
],
"support": {
"source": "https://github.com/php-fig/http-client/tree/master"
"source": "https://github.com/php-fig/http-client/tree/1.0.2"
},
"time": "2020-06-29T06:28:15+00:00"
"time": "2023-04-10T20:12:12+00:00"
},
{
"name": "psr/http-factory",
"version": "1.0.1",
"version": "1.0.2",
"source": {
"type": "git",
"url": "https://github.com/php-fig/http-factory.git",
"reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be"
"reference": "e616d01114759c4c489f93b099585439f795fe35"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/http-factory/zipball/12ac7fcd07e5b077433f5f2bee95b3a771bf61be",
"reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be",
"url": "https://api.github.com/repos/php-fig/http-factory/zipball/e616d01114759c4c489f93b099585439f795fe35",
"reference": "e616d01114759c4c489f93b099585439f795fe35",
"shasum": ""
},
"require": {
"php": ">=7.0.0",
"psr/http-message": "^1.0"
"psr/http-message": "^1.0 || ^2.0"
},
"type": "library",
"extra": {
@@ -815,7 +815,7 @@
"authors": [
{
"name": "PHP-FIG",
"homepage": "http://www.php-fig.org/"
"homepage": "https://www.php-fig.org/"
}
],
"description": "Common interfaces for PSR-7 HTTP message factories",
@@ -830,31 +830,31 @@
"response"
],
"support": {
"source": "https://github.com/php-fig/http-factory/tree/master"
"source": "https://github.com/php-fig/http-factory/tree/1.0.2"
},
"time": "2019-04-30T12:38:16+00:00"
"time": "2023-04-10T20:10:41+00:00"
},
{
"name": "psr/http-message",
"version": "1.0.1",
"version": "1.1",
"source": {
"type": "git",
"url": "https://github.com/php-fig/http-message.git",
"reference": "f6561bf28d520154e4b0ec72be95418abe6d9363"
"reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363",
"reference": "f6561bf28d520154e4b0ec72be95418abe6d9363",
"url": "https://api.github.com/repos/php-fig/http-message/zipball/cb6ce4845ce34a8ad9e68117c10ee90a29919eba",
"reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
"php": "^7.2 || ^8.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
"dev-master": "1.1.x-dev"
}
},
"autoload": {
@@ -883,27 +883,27 @@
"response"
],
"support": {
"source": "https://github.com/php-fig/http-message/tree/master"
"source": "https://github.com/php-fig/http-message/tree/1.1"
},
"time": "2016-08-06T14:39:51+00:00"
"time": "2023-04-04T09:50:52+00:00"
},
{
"name": "psr/http-server-handler",
"version": "1.0.1",
"version": "1.0.2",
"source": {
"type": "git",
"url": "https://github.com/php-fig/http-server-handler.git",
"reference": "aff2f80e33b7f026ec96bb42f63242dc50ffcae7"
"reference": "84c4fb66179be4caaf8e97bd239203245302e7d4"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/http-server-handler/zipball/aff2f80e33b7f026ec96bb42f63242dc50ffcae7",
"reference": "aff2f80e33b7f026ec96bb42f63242dc50ffcae7",
"url": "https://api.github.com/repos/php-fig/http-server-handler/zipball/84c4fb66179be4caaf8e97bd239203245302e7d4",
"reference": "84c4fb66179be4caaf8e97bd239203245302e7d4",
"shasum": ""
},
"require": {
"php": ">=7.0",
"psr/http-message": "^1.0"
"psr/http-message": "^1.0 || ^2.0"
},
"type": "library",
"extra": {
@@ -923,7 +923,7 @@
"authors": [
{
"name": "PHP-FIG",
"homepage": "http://www.php-fig.org/"
"homepage": "https://www.php-fig.org/"
}
],
"description": "Common interface for HTTP server-side request handler",
@@ -939,28 +939,27 @@
"server"
],
"support": {
"issues": "https://github.com/php-fig/http-server-handler/issues",
"source": "https://github.com/php-fig/http-server-handler/tree/master"
"source": "https://github.com/php-fig/http-server-handler/tree/1.0.2"
},
"time": "2018-10-30T16:46:14+00:00"
"time": "2023-04-10T20:06:20+00:00"
},
{
"name": "psr/http-server-middleware",
"version": "1.0.1",
"version": "1.0.2",
"source": {
"type": "git",
"url": "https://github.com/php-fig/http-server-middleware.git",
"reference": "2296f45510945530b9dceb8bcedb5cb84d40c5f5"
"reference": "c1481f747daaa6a0782775cd6a8c26a1bf4a3829"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/http-server-middleware/zipball/2296f45510945530b9dceb8bcedb5cb84d40c5f5",
"reference": "2296f45510945530b9dceb8bcedb5cb84d40c5f5",
"url": "https://api.github.com/repos/php-fig/http-server-middleware/zipball/c1481f747daaa6a0782775cd6a8c26a1bf4a3829",
"reference": "c1481f747daaa6a0782775cd6a8c26a1bf4a3829",
"shasum": ""
},
"require": {
"php": ">=7.0",
"psr/http-message": "^1.0",
"psr/http-message": "^1.0 || ^2.0",
"psr/http-server-handler": "^1.0"
},
"type": "library",
@@ -981,7 +980,7 @@
"authors": [
{
"name": "PHP-FIG",
"homepage": "http://www.php-fig.org/"
"homepage": "https://www.php-fig.org/"
}
],
"description": "Common interface for HTTP server-side middleware",
@@ -997,9 +996,9 @@
],
"support": {
"issues": "https://github.com/php-fig/http-server-middleware/issues",
"source": "https://github.com/php-fig/http-server-middleware/tree/master"
"source": "https://github.com/php-fig/http-server-middleware/tree/1.0.2"
},
"time": "2018-10-30T17:12:04+00:00"
"time": "2023-04-11T06:14:47+00:00"
},
{
"name": "psr/log",
@@ -1335,16 +1334,16 @@
},
{
"name": "symfony/deprecation-contracts",
"version": "v3.2.0",
"version": "v3.2.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/deprecation-contracts.git",
"reference": "1ee04c65529dea5d8744774d474e7cbd2f1206d3"
"reference": "e2d1534420bd723d0ef5aec58a22c5fe60ce6f5e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/1ee04c65529dea5d8744774d474e7cbd2f1206d3",
"reference": "1ee04c65529dea5d8744774d474e7cbd2f1206d3",
"url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e2d1534420bd723d0ef5aec58a22c5fe60ce6f5e",
"reference": "e2d1534420bd723d0ef5aec58a22c5fe60ce6f5e",
"shasum": ""
},
"require": {
@@ -1382,7 +1381,7 @@
"description": "A generic function and convention to trigger deprecation notices",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/deprecation-contracts/tree/v3.2.0"
"source": "https://github.com/symfony/deprecation-contracts/tree/v3.2.1"
},
"funding": [
{
@@ -1398,7 +1397,7 @@
"type": "tidelift"
}
],
"time": "2022-11-25T10:21:52+00:00"
"time": "2023-03-01T10:25:55+00:00"
},
{
"name": "symfony/polyfill-ctype",

View File

@@ -21,6 +21,12 @@
"type": "string"
}
},
"cap_add": {
"type": "array",
"items": {
"type": "string"
}
},
"depends_on": {
"type": "array",
"items": {
@@ -67,6 +73,9 @@
"restart": {
"type": "string"
},
"shm_size": {
"type": "integer"
},
"secrets": {
"type": "array",
"items": {

View File

@@ -74,7 +74,8 @@
"PGTZ=%TIMEZONE%"
],
"stop_grace_period": 1800,
"restart": "unless-stopped"
"restart": "unless-stopped",
"shm_size": 268435456
},
{
"container_name": "nextcloud-aio-nextcloud",
@@ -160,7 +161,8 @@
"TRUSTED_CACERTS_DIR=%NEXTCLOUD_TRUSTED_CACERTS_DIR%",
"STARTUP_APPS=%NEXTCLOUD_STARTUP_APPS%",
"ADDITIONAL_APKS=%NEXTCLOUD_ADDITIONAL_APKS%",
"ADDITIONAL_PHP_EXTENSIONS=%NEXTCLOUD_ADDITIONAL_PHP_EXTENSIONS%"
"ADDITIONAL_PHP_EXTENSIONS=%NEXTCLOUD_ADDITIONAL_PHP_EXTENSIONS%",
"INSTALL_LATEST_MAJOR=%INSTALL_LATEST_MAJOR%"
],
"restart": "unless-stopped",
"devices": [
@@ -202,7 +204,7 @@
"internal_port": "9980",
"environment": [
"aliasgroup1=https://%NC_DOMAIN%:443",
"extra_params=--o:ssl.enable=false --o:ssl.termination=true --o:logging.level=warning --o:home_mode.enable=true %COLLABORA_SECCOMP_POLICY% --o:remote_font_config.url=https://%NC_DOMAIN%/apps/richdocuments/settings/fonts.json",
"extra_params=--o:ssl.enable=false --o:ssl.termination=true --o:mount_jail_tree=false --o:logging.level=warning --o:home_mode.enable=true %COLLABORA_SECCOMP_POLICY% --o:remote_font_config.url=https://%NC_DOMAIN%/apps/richdocuments/settings/fonts.json",
"dictionaries=%COLLABORA_DICTIONARIES%",
"TZ=%TIMEZONE%",
"server_name=%NC_DOMAIN%"
@@ -240,14 +242,12 @@
"NC_DOMAIN=%NC_DOMAIN%",
"TURN_SECRET=%TURN_SECRET%",
"SIGNALING_SECRET=%SIGNALING_SECRET%",
"JANUS_API_KEY=%JANUS_API_KEY%",
"TZ=%TIMEZONE%",
"TALK_PORT=%TALK_PORT%"
],
"secrets": [
"TURN_SECRET",
"SIGNALING_SECRET",
"JANUS_API_KEY"
"SIGNALING_SECRET"
],
"restart": "unless-stopped"
},
@@ -319,6 +319,9 @@
],
"devices": [
"/dev/fuse"
],
"cap_add": [
"SYS_ADMIN"
]
},
{
@@ -412,7 +415,10 @@
"environment": [
"TZ=%TIMEZONE%"
],
"restart": "unless-stopped"
"restart": "unless-stopped",
"cap_add": [
"SYS_NICE"
]
},
{
"container_name": "nextcloud-aio-fulltextsearch",

View File

@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<files psalm-version="5.6.0@e784128902dfe01d489c4123d69918a9f3c1eac5"/>
<files psalm-version="5.9.0@8b9ad1eb9e8b7d3101f949291da2b9f7767cd163"/>

View File

@@ -6,6 +6,8 @@
xmlns="https://getpsalm.org/schema/config"
xsi:schemaLocation="https://getpsalm.org/schema/config"
errorBaseline="psalm-baseline.xml"
findUnusedBaselineEntry="true"
findUnusedCode="false"
>
<projectFiles>
<directory name="templates"/>

View File

@@ -20,8 +20,10 @@
if (xhr.status === 201) {
window.location.replace(xhr.getResponseHeader('Location'));
} else if (xhr.status === 422) {
disableSpinner()
showError(xhr.response);
} else if (xhr.status === 500) {
disableSpinner()
showError("Server error. Please check the mastercontainer logs for details.");
} else {
// If the responose is not one of the above, we should reload to show the latest content
@@ -29,16 +31,12 @@
}
}
function disable(element) {
function disableSpinnerSpinner() {
document.getElementById('overlay').classList.add('loading');
element.classList.add('loading');
element.disabled = true;
}
function enable(element) {
function disableSpinner() {
document.getElementById('overlay').classList.remove('loading');
element.classList.remove('loading');
element.disabled = false;
}
function initForm(form) {
@@ -50,11 +48,10 @@
var xhr = new XMLHttpRequest();
xhr.addEventListener('load', handleEvent);
xhr.addEventListener('error', () => showError("Failed to talk to server."));
xhr.addEventListener('load', () => enable(event.submitter));
xhr.addEventListener('error', () => enable(event.submitter));
xhr.addEventListener('error', () => disableSpinner());
xhr.open(form.method, form.getAttribute("action"));
xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
disable(event.submitter);
disableSpinnerSpinner();
xhr.send(new URLSearchParams(new FormData(form)));
event.preventDefault();
}

View File

@@ -144,7 +144,7 @@ input {
padding: 20px;
max-width: 100%;
word-break: break-word;
max-width: 470px;
max-width: 500px;
margin: 0 auto;
}

View File

@@ -23,6 +23,9 @@ class Container {
private array $secrets;
/** @var string[] */
private array $devices;
/** @var string[] */
private array $capAdd;
private int $shmSize;
private DockerActionManager $dockerActionManager;
public function __construct(
@@ -38,6 +41,8 @@ class Container {
array $dependsOn,
array $secrets,
array $devices,
array $capAdd,
int $shmSize,
DockerActionManager $dockerActionManager
) {
$this->identifier = $identifier;
@@ -52,6 +57,8 @@ class Container {
$this->dependsOn = $dependsOn;
$this->secrets = $secrets;
$this->devices = $devices;
$this->capAdd = $capAdd;
$this->shmSize = $shmSize;
$this->dockerActionManager = $dockerActionManager;
}
@@ -71,6 +78,10 @@ class Container {
return $this->restartPolicy;
}
public function GetShmSize() : int {
return $this->shmSize;
}
public function GetMaxShutdownTime() : int {
return $this->maxShutdownTime;
}
@@ -83,6 +94,10 @@ class Container {
return $this->devices;
}
public function GetCapAdds() : array {
return $this->capAdd;
}
public function GetPorts() : ContainerPorts {
return $this->ports;
}

View File

@@ -213,6 +213,16 @@ class ContainerDefinitionFetcher
$devices = $entry['devices'];
}
$capAdd = [];
if (isset($entry['cap_add'])) {
$capAdd = $entry['cap_add'];
}
$shmSize = -1;
if (isset($entry['shm_size'])) {
$shmSize = $entry['shm_size'];
}
$containers[] = new Container(
$entry['container_name'],
$displayName,
@@ -226,6 +236,8 @@ class ContainerDefinitionFetcher
$dependsOn,
$secrets,
$devices,
$capAdd,
$shmSize,
$this->container->get(DockerActionManager::class)
);
}

View File

@@ -154,11 +154,19 @@ class DockerController
$port = 443;
}
if (isset($request->getParsedBody()['install_latest_major'])) {
$installLatestMajor = 26;
} else {
$installLatestMajor = "";
}
$config = $this->configurationManager->GetConfig();
// set AIO_URL
$config['AIO_URL'] = $host . ':' . $port;
// set wasStartButtonClicked
$config['wasStartButtonClicked'] = 1;
// set install_latest_major
$config['install_latest_major'] = $installLatestMajor;
$this->configurationManager->WriteConfig($config);
// Start container

View File

@@ -21,15 +21,17 @@ class LoginController
public function TryLogin(Request $request, Response $response, array $args) : Response {
if (!$this->dockerActionManager->isLoginAllowed()) {
return $response->withHeader('Location', '/')->withStatus(302);
$response->getBody()->write("The login is blocked since Nextcloud is running.");
return $response->withHeader('Location', '/')->withStatus(422);
}
$password = $request->getParsedBody()['password'] ?? '';
if($this->authManager->CheckCredentials($password)) {
$this->authManager->SetAuthState(true);
return $response->withHeader('Location', '/')->withStatus(302);
return $response->withHeader('Location', '/')->withStatus(201);
}
return $response->withHeader('Location', '/')->withStatus(302);
$response->getBody()->write("The password is false.");
return $response->withHeader('Location', '/')->withStatus(422);
}
public function GetTryLogin(Request $request, Response $response, array $args) : Response {

View File

@@ -78,7 +78,10 @@ class ConfigurationManager
}
$lastBackupLines = explode("\n", $content);
$lastBackupLine = $lastBackupLines[sizeof($lastBackupLines) - 2];
$lastBackupLine = "";
if (count($lastBackupLines) >= 2) {
$lastBackupLine = $lastBackupLines[sizeof($lastBackupLines) - 2];
}
if ($lastBackupLine === "") {
return '';
}
@@ -231,6 +234,11 @@ class ConfigurationManager
* @throws InvalidSettingConfigurationException
*/
public function SetDomain(string $domain) : void {
// Validate that at least one dot is contained
if (strpos($domain, '.') === false) {
throw new InvalidSettingConfigurationException("Domain must contain at least one dot!");
}
// Validate domain
if (!filter_var($domain, FILTER_VALIDATE_DOMAIN, FILTER_FLAG_HOSTNAME)) {
throw new InvalidSettingConfigurationException("Domain is not a valid domain!");
@@ -265,11 +273,10 @@ class ConfigurationManager
$port = $this->GetApachePort();
if (!filter_var($dnsRecordIP, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)) {
$errorMessage = "It seems like the ip-address is set to an internal or reserved ip-address. This is not supported. (It was found to be set to '" . $dnsRecordIP . "')";
if ($port === '443') {
throw new InvalidSettingConfigurationException($errorMessage);
throw new InvalidSettingConfigurationException("It seems like the ip-address is set to an internal or reserved ip-address. This is not supported. (It was found to be set to '" . $dnsRecordIP . "')");
} else {
error_log($errorMessage);
error_log("It seems like the ip-address of " . $domain . " is set to an internal or reserved ip-address. (It was found to be set to '" . $dnsRecordIP . "')");
}
}
@@ -296,6 +303,8 @@ class ConfigurationManager
$testUrl = $protocol . $domain . ':443';
curl_setopt($ch, CURLOPT_URL, $testUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$response = (string)curl_exec($ch);
# Get rid of trailing \n
$response = str_replace("\n", "", $response);
@@ -661,7 +670,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;
@@ -675,6 +684,14 @@ class ConfigurationManager
}
}
public function shouldLatestMajorGetInstalled() : bool {
$config = $this->GetConfig();
if(!isset($config['install_latest_major'])) {
$config['install_latest_major'] = '';
}
return $config['install_latest_major'] !== '';
}
public function GetAdditionalBackupDirectoriesString() : string {
if (!file_exists(DataConst::GetAdditionalBackupDirectoriesFile())) {
return '';

View File

@@ -348,6 +348,12 @@ class DockerActionManager
$replacements[1] = $this->configurationManager->GetNextcloudAdditionalApks();
} elseif ($out[1] === 'NEXTCLOUD_ADDITIONAL_PHP_EXTENSIONS') {
$replacements[1] = $this->configurationManager->GetNextcloudAdditionalPhpExtensions();
} elseif ($out[1] === 'INSTALL_LATEST_MAJOR') {
if ($this->configurationManager->shouldLatestMajorGetInstalled()) {
$replacements[1] = 'yes';
} else {
$replacements[1] = '';
}
} else {
$secret = $this->configurationManager->GetSecret($out[1]);
if ($secret === "") {
@@ -405,9 +411,18 @@ class DockerActionManager
$requestBody['HostConfig']['Devices'] = $devices;
}
$shmSize = $container->GetShmSize();
if ($shmSize > 0) {
$requestBody['HostConfig']['ShmSize'] = $shmSize;
}
$capAdds = $container->GetCapAdds();
if (count($capAdds) > 0) {
$requestBody['HostConfig']['CapAdd'] = $capAdds;
}
// Special things for the backup container which should not be exposed in the containers.json
if ($container->GetIdentifier() === 'nextcloud-aio-borgbackup') {
$requestBody['HostConfig']['CapAdd'] = ["SYS_ADMIN"];
$requestBody['HostConfig']['SecurityOpt'] = ["apparmor:unconfined"];
// Additional backup directories
@@ -663,7 +678,8 @@ class DockerActionManager
'Driver' => 'bridge',
'Internal' => false,
'Options' => [
'com.docker.network.bridge.enable_icc' => 'true'
'com.docker.network.bridge.enable_icc' => 'true',
'com.docker.network.bridge.enable_ip_masquerade' => 'true'
]
]
]

View File

@@ -16,7 +16,7 @@
</header>
<div class="content">
<h1>Nextcloud AIO v4.4.0</h1>
<h1>Nextcloud AIO v4.8.1</h1>
{# Add 2nd tab warning #}
<script type="text/javascript" src="second-tab-warning.js"></script>
@@ -24,14 +24,12 @@
{% set isAnyRunning = false %}
{% set isAnyRestarting = false %}
{% set isWatchtowerRunning = false %}
{% set isRestoreRunning = false %}
{% set isBackupOrRestoreRunning = false %}
{% set isApacheStarting = false %}
{# Setting newMajorVersion to '' will hide corresponding options/elements #}
{% set newMajorVersion = 26 %}
{% if is_backup_container_running == true %}
{% if borg_backup_mode == 'restore' %}
{% set isRestoreRunning = true %}
{% endif %}
{% if borg_backup_mode == 'backup' or borg_backup_mode == 'restore' %}
{% set isBackupOrRestoreRunning = true %}
{% endif %}
@@ -249,11 +247,17 @@
{% if has_update_available == true %}
{% if is_mastercontainer_update_available == false %}
⚠️ Container updates are available. Click on 'Stop Containers' and 'Start Containers' to update them. You should consider creating a backup first.<br><br>
⚠️ Container updates are available. Click on <b>Stop Containers</b> and <b>Start Containers</b> to update them. You should consider creating a backup first.<br><br>
{% endif %}
{% else %}
{% if is_mastercontainer_update_available == false %}
Your containers are up-to-date.<br><br>
{% if newMajorVersion != '' and isAnyRunning == true and isApacheStarting != true %}
<details>
<summary>Note about <b>Nextcloud {{ newMajorVersion }}</b></summary><br>
If you haven't upgraded to Nextcloud {{ newMajorVersion }} yet and want to do that now, feel free to follow <b><a href="https://github.com/nextcloud/all-in-one/discussions/2208">this documentation</a></b><br/>
</details><br>
{% endif %}
{% endif %}
{% endif %}
{% endif %}
@@ -277,10 +281,8 @@
</form>
{% endif %}
{% else %}
{% if isRestoreRunning == true %}
Restore currently running. Cannot start the containers until that's done.<br /><br />
{% elseif has_update_available == true and isBackupOrRestoreRunning == true %}
Restore or Backup currently running and container update available. Cannot start the containers until that's done.<br /><br />
{% if isBackupOrRestoreRunning == true %}
Restore or Backup currently running. Cannot start the containers until that's done.<br /><br />
{% else %}
{% if was_start_button_clicked == false %}
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>
@@ -293,7 +295,16 @@
<input class="button" type="submit" value="Update mastercontainer" />
</form>
{% else %}
{% if was_start_button_clicked == false or has_update_available == false %}
{% if was_start_button_clicked == false %}
<form method="POST" action="/api/docker/start" class="xhr">
<input type="hidden" name="{{csrf.keys.name}}" value="{{csrf.name}}">
<input type="hidden" name="{{csrf.keys.value}}" value="{{csrf.value}}">
{% if newMajorVersion != '' %}
<input type="checkbox" id="install_latest_major" name="install_latest_major"><label for="install_latest_major">Install Nextcloud {{ newMajorVersion }} (if unchecked, Nextcloud {{ newMajorVersion - 1 }} will get installed)</label><br>
{% endif %}
<input class="button" type="submit" value="Download and start containers" />
</form>
{% elseif has_update_available == false %}
<form method="POST" action="/api/docker/start" class="xhr">
<input type="hidden" name="{{csrf.keys.name}}" value="{{csrf.name}}">
<input type="hidden" name="{{csrf.keys.value}}" value="{{csrf.value}}">
@@ -447,7 +458,7 @@
<input type="hidden" name="{{csrf.keys.value}}" value="{{csrf.value}}">
<input class="button" type="submit" value="Submit" /><br>
</form>
Each line and entry needs to start with a slash or letter/digit. Allowed are only <b>a-z</b>, <b>A-Z</b>, <b>0-9</b>, <b>_</b>, <b>-</b>, and <b>/</b>. If the entry begins with a letter/digit are slashes not supported. Two valid entries are <b>/directory/on/the/host</b> and <b>my_custom_docker_volume</b>. You need to make sure yourself that all given directories exist. Otherwise the backup container will fail starting!<br><br/>
Each line and entry needs to start with a slash or letter/digit. Allowed are only <b>a-z</b>, <b>A-Z</b>, <b>.</b>, <b>0-9</b>, <b>_</b>, <b>-</b>, and <b>/</b>. If the entry begins with a letter/digit are slashes not supported. Two valid entries are <b>/directory/on/the/host</b> and <b>my_custom_docker_volume</b>. You need to make sure yourself that all given directories exist. Otherwise the backup container will fail starting!<br><br/>
Make sure to specify all storages that you want to back up separately since storages will not be mounted recursively. E.g. providing <b>/</b> as additional backup directory will only back up files and folders that are stored on the root partition and not on the EFI partition or any other. Excluded by the backup will be caches and a few other directories. You should make sure to stop all services before the backup can run correctly if you want to back up the root partition. For automating this see <a href="https://github.com/nextcloud/all-in-one#how-to-stopstartupdate-containers-or-trigger-the-daily-backup-from-a-script-externally">this documentation</a><br><br/>
Please note that the chosen directories/volumes will not be restored when you restore your instance, so this would need to be done manually. <br><br>
{% if additional_backup_directories != "" %}
@@ -520,6 +531,7 @@
{#<input type="checkbox" id="onlyoffice" name="onlyoffice"><label for="onlyoffice">OnlyOffice</label><br>#}
{% endif %}
<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 or Fulltextsearch, at least 3GB RAM are required. When enabling everything, at least 4GB RAM are required. Recommended are at least 1GB more RAM than the minimal requirement.<br><br>
{% if isAnyRunning == true or is_x64_platform == false %}

View File

@@ -4,7 +4,6 @@
<link rel="stylesheet" href="/style.css" media="all" />
<link rel="icon" href="/img/favicon.png">
<script type="text/javascript" src="forms.js"></script>
<script type="text/javascript" src="options-form-submit.js"></script>
</head>
<body>

View File

@@ -7,7 +7,7 @@
<h1>Nextcloud AIO Login</h1>
{% if is_login_allowed == true %}
<p>Log in using your Nextcloud AIO password:</p>
<form method="POST" action="/api/auth/login">
<form method="POST" action="/api/auth/login" class="xhr">
<input type="text" autocomplete="off" name="password" placeholder="Password" />
<input type="hidden" name="{{csrf.keys.name}}" value="{{csrf.name}}">
<input type="hidden" name="{{csrf.keys.value}}" value="{{csrf.value}}">

View File

@@ -15,11 +15,10 @@ Included are:
The following instructions are meant for installations without a web server or reverse proxy (like Apache, Nginx and else) already being in place. If you want to run AIO behind a web server or reverse proxy (like Apache, Nginx and else), see the [reverse proxy documentation](https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md). Also, the instructions below are especially meant for Linux. For macOS see [this](#how-to-run-aio-on-macos), for Windows see [this](#how-to-run-aio-on-windows) and for Synology see [this](#how-to-run-aio-on-synology-dsm).
1. Install Docker on your Linux installation by following the official documentation: https://docs.docker.com/engine/install/#server. The easiest way is installing it by **using the convenience script**:
```sh
curl -fsSL get.docker.com | sudo sh
curl -fsSL https://get.docker.com | sudo sh
```
1. If you need ipv6 support, you should enable it by following https://docs.docker.com/config/daemon/ipv6/.
2. Run the command below in order to start the container:<br><br>
(For people that cannot use ports 80 and/or 443 on this server e.g. because it is already taken by a different web server, please follow the [reverse proxy documentation](https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md) because port 443 is used by this project and opened on the host by default even though it does not look like this is the case. Otherwise please run the command below!)
2. Run the command below in order to start the container:
```
# For Linux and without a web server or reverse proxy (like Apache, Nginx and else) already in place:
sudo docker run \
@@ -49,6 +48,8 @@ The following instructions are meant for installations without a web server or r
- Further options can be set using environment variables, for example `-e NEXTCLOUD_DATADIR="/mnt/ncdata"` (This is an example for Linux. See [this](https://github.com/nextcloud/all-in-one#how-to-change-the-default-location-of-nextclouds-datadir) for other OS' and for an explanation of what this value does. This specific one needs to be specified upon the first startup if you want to change it to a specific path instead of the default Docker volume). To see explanations and examples for further variables (like changing the location of Nextcloud's datadir or mounting some locations as external storage into the Nextcloud container), read through this readme and look at the docker-compose file: https://github.com/nextcloud/all-in-one/blob/main/docker-compose.yml
</details>
Note: You may be interested in adjusting Nextclouds datadir to store the files in a different location than the default docker volume. See [this documentation](https://github.com/nextcloud/all-in-one#how-to-change-the-default-location-of-nextclouds-datadir) on how to do it.
3. After the initial startup, you should be able to open the Nextcloud AIO Interface now on port 8080 of this server.<br>
E.g. `https://ip.address.of.this.server:8080`<br><br>
If your firewall/router has port 80 and 8443 open and you point a domain to your server, you can get a valid certificate automatically by opening the Nextcloud AIO Interface via:<br>
@@ -62,6 +63,11 @@ Nextcloud AIO is inspired by projects like Portainer that manage the docker daem
### Are reverse proxies supported?
Yes. Please refer to the following documentation on this: [reverse-proxy.md](https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md)
### Which CPU architectures are supported?
You can check this on Linux by running: `uname -m`
- x86_64/x64/amd64
- aarch64/arm64/armv8 (Note: ClamAV is currently not supported on this CPU architecture)
### Which ports are mandatory to be open in your firewall/router?
Only those (if you access the Mastercontainer Interface internally via port 8080):
- `443/TCP` for the Apache container
@@ -109,7 +115,7 @@ You'll also need to adjust Synology's firewall, see below:
<details>
<summary>Click here to expand</summary>
The Synology DSM is vulnerable to attacks with it's open ports and login interfaces, which is why a firewall setup is always recommended. If a firewall is activated it is necessary to have exceptions for ports 80,443, the subnet of the docker bridge which includes the nextcloud containers, your public static IP (if you don't use DDNS) and if applicable your NC-Talk ports 3478 TCP+UDP:
The Synology DSM is vulnerable to attacks with it's open ports and login interfaces, which is why a firewall setup is always recommended. If a firewall is activated it is necessary to have exceptions for ports 80,443, the subnet of the docker bridge which includes the Nextcloud containers, your public static IP (if you don't use DDNS) and if applicable your NC-Talk ports 3478 TCP+UDP:
![Screenshot 2023-01-19 at 14 13 48](https://user-images.githubusercontent.com/70434961/213677995-71a9f364-e5d2-49e5-831e-4579f217c95c.png)
@@ -125,13 +131,14 @@ The easiest way to run it with Portainer on Linux is to use Portainer's stacks f
- It is known that the domain validation may not work correctly behind Cloudflare. You can simply skip it in that case by following: https://github.com/nextcloud/all-in-one#how-to-skip-the-domain-validation
- 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.
- Cloudflare only supports uploading files up to 100 MB in the free plan, if you try to upload bigger files you will get an error (413 - Payload Too Large) if no chunking is used (e.g. for public uploads in the web, or if chunks are configured to be bigger than 100 MB in the clients or the web). If you need to upload bigger files, you need to disable the proxy option in your DNS settings, or you must use another proxy than Cloudflare tunnels. Both options will disable Cloudflare DDoS protection.
- Cloudflare only allows a max timeout of 100s for requests which is not configurable. This means that any server-side processing e.g. for assembling chunks for big files during upload that take longer than 100s will simply not work. See https://github.com/nextcloud/server/issues/19223. If you need to upload big files reliably, you need to disable the proxy option in your DNS settings, or you must use another proxy than Cloudflare tunnels. Both options will disable Cloudflare DDoS protection.
- It is known that the in AIO included collabora (Nextcloud Office) does not work out of the box behind Cloudflare. To make it work, you need to add all [Cloudflare IP-ranges](https://www.cloudflare.com/ips/) to the wopi-allowlist in `https://yourdomain.com/settings/admin/richdocuments`
- The built-in High performance backend for Nextcloud Talk will potentially not work out-of-the-box since it needs a separate port (by default 3478 or as chosen) available on the same domain. If you still want to use the feature, you will need to adjust and test your settings in `https://yourdomain.com/settings/admin/talk`.
- If you get an error in Nextcloud's admin overview that the HSTS header is not set correctly, you might need to enable it in Cloudflare manually.
- If you are using AIO's built-in Reverse Proxy and don't use your own, then may the certificate issuing possibly not work out-of-the-box because Cloudflare might block the attempt. In that case you need to disable the Proxy feature at least temporarily in order to make it work. See https://github.com/nextcloud/all-in-one/discussions/1101.
- The built-in High performance backend for Nextcloud Talk will potentially not work out-of-the-box since it needs a separate port (by default 3478 or as chosen) available on the same domain. If you still want to use the feature, you will need to adjust and test your settings in `https://yourdomain.com/settings/admin/talk`.
### How to run Nextcloud behind a Cloudflare Tunnel?
Although it does not seems like it is the case but from AIO perspective a Cloudflare Tunnel works like a reverse proxy. So please follow the [reverse proxy documentation](./reverse-proxy.md) where is documented how to make it run behind a Cloudflare Tunnel.
Although it does not seems like it is the case but from AIO perspective a Cloudflare Tunnel works like a reverse proxy. So please follow the [reverse proxy documentation](./reverse-proxy.md) where is documented how to make it run behind a Cloudflare Tunnel. Also see https://github.com/dani-garcia/vaultwarden/wiki/Running-a-private-vaultwarden-instance-with-Let%27s-Encrypt-certs#cloudflare-setup for additional docs on this topic.
### Disrecommended VPS providers
- Stratos VPS crash/freeze/make errors when they reach an extremely low PID limit, which is very quickly reached by AIO, see [here](https://github.com/nextcloud/all-in-one/discussions/1747#discussioncomment-4716164), Strato does normally not increase this limit.
@@ -141,12 +148,12 @@ Although it does not seems like it is the case but from AIO perspective a Cloudf
In general recommended VPS are those that are KVM/non-virtualized as Docker should work best on them.
### Note on storage options
- SD-cards are discrecommended for AIO since they cripple the performance and they are not meant for many write operations which is needed for the database and other parts
- SD-cards are disrecommended for AIO since they cripple the performance and they are not meant for many write operations which is needed for the database and other parts
- SSD storage is recommended
- HDD storage should work as well but is of course much slower than SSD storage
### How to get Nextcloud running using the ACME DNS-challenge?
You can install AIO in reverse proxy mode where is also documented how to get it running using the ACME DNS-challenge for getting a valid certificate for AIO. See the [reverse proxy documentation](./reverse-proxy.md). (Meant is the `Caddy with ACME DNS-challenge` section).
You can install AIO in reverse proxy mode where is also documented how to get it running using the ACME DNS-challenge for getting a valid certificate for AIO. See the [reverse proxy documentation](./reverse-proxy.md). (Meant is the `Caddy with ACME DNS-challenge` section). Also see https://github.com/dani-garcia/vaultwarden/wiki/Running-a-private-vaultwarden-instance-with-Let%27s-Encrypt-certs#getting-a-custom-caddy-build for additional docs on this topic.
### How to run Nextcloud locally?
If you do not want to open Nextcloud to the public internet, you may have a look at the following documentation how to set it up locally: [local-instance.md](./local-instance.md)
@@ -157,7 +164,7 @@ No and they will not be. If you want to run it locally, without opening Nextclou
### Can I use an ip-address for Nextcloud instead of a domain?
No and it will not be added. If you only want to run it locally, you may have a look at the following documentation: [local-instance.md](./local-instance.md)
### Are other ports than then default 443 for Nextcloud supported?
### Are other ports than the default 443 for Nextcloud supported?
No and they will not be. Please use a dedicated domain for Nextcloud and set it up correctly by following the [reverse proxy documentation](./reverse-proxy.md). If port 443 and/or 80 is blocked for you, you may use the ACME DNS-challenge or a Cloudflare Tunnel.
### Can I run Nextcloud in a subdirectory on my domain?
@@ -166,6 +173,7 @@ No and it will not be added. Please use a dedicated domain for Nextcloud and set
### How can I access Nextcloud locally?
The recommended way is 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 server that runs Nextcloud AIO. Below are some guides:
- https://www.howtogeek.com/devops/how-to-run-your-own-dns-server-on-your-local-network/
- https://help.nextcloud.com/t/need-help-to-configure-internal-access/156075/6
- https://howchoo.com/pi/pi-hole-setup together with https://docs.callitkarma.me/posts/PiHole-Local-DNS/
- https://dockerlabs.collabnix.com/intermediate/networking/Configuring_DNS.html
@@ -230,7 +238,9 @@ Here is how to reset the AIO instance properly:
1. Now remove all these stopped containers with `sudo docker container prune`
1. Delete the docker network with `sudo docker network rm nextcloud-aio`
1. Check which volumes are dangling with `sudo docker volume ls --filter "dangling=true"`
1. Now remove all these dangling volumes: `sudo docker volume prune` (on Windows you might need to remove some volumes afterwards manually with `docker volume rm nextcloud_aio_backupdir`, `docker volume rm nextcloud_aio_nextcloud_datadir`). Also if you've configured `NEXTCLOUD_DATADIR` to a path on your host instead of the default volume, you need to clean that up as well.
1. Now remove all these dangling volumes: `sudo docker volume prune` (on Windows you might need to remove some volumes afterwards manually with `docker volume rm nextcloud_aio_backupdir`, `docker volume rm nextcloud_aio_nextcloud_datadir`).
1. If you've configured `NEXTCLOUD_DATADIR` to a path on your host instead of the default volume, you need to clean that up as well. (E.g. by simply deleting the directory).
1. Make sure that no volumes are remaining with `sudo docker volume ls --format {{.Name}}`. If no `nextcloud-aio` volumes are listed, you can proceed with the steps below. If there should be some, you will need to stop them with `sudo docker volume rm <volume_name>` until no one is listed anymore.
1. Optional: You can remove all docker images with `sudo docker image prune -a`.
1. And you are done! Now feel free to start over with the recommended docker run command!
@@ -260,7 +270,16 @@ The backups itself get encrypted with an encryption key that gets shown to you i
Be aware that this solution does not back up files and folders that are mounted into Nextcloud using the external storage app.
Note that this implementation does not provide remote backups, for this you can use the [backup app](https://apps.nextcloud.com/apps/backup).
---
#### Are remote borg backups supported?
Not directly but you have multiple options to achieve this:
- Mount a network FS like SSHFS, SMB or NFS in the directory that you enter in AIO as backup directory
- Use rsync or rclone for syncing the borg backup archive that AIO creates locally to a remote target (make sure to lock the backup archive correctly before starting the sync; search for "aio-lockfile"; you can find a local example script here: https://github.com/nextcloud/all-in-one#sync-the-backup-regularly-to-another-drive)
- You can find a well written guide that uses rclone and e.g. BorgBase for remote backups here: https://github.com/nextcloud/all-in-one/discussions/2247
- create your own backup solution using a script and borg, borgmatic or any other to backup tool for backing up to a remote target (make sure to stop and start the AIO containers correctly following https://github.com/nextcloud/all-in-one#how-to-enable-automatic-updates-without-creating-a-backup-beforehand)
- Additionally, there is the [backup app](https://apps.nextcloud.com/apps/backup) for remote backups
---
@@ -308,7 +327,7 @@ sudo borg delete --stats --progress "/mnt/backup/borg::20220223_174237-nextcloud
# If borg 1.2.0 or higher is installed, you then need to run borg compact in order to clean up the freed space
sudo borg --version
# If version number of the command above is higher than 1.2.0 you need to run the command below:
sudo borg compact "/mnt/backup/"
sudo borg compact "/mnt/backup/borg"
```
@@ -418,7 +437,7 @@ Afterwards apply the correct permissions with `sudo chown root:root /root/backup
### How to stop/start/update containers or trigger the daily backup from a script externally?
You can do so by running the `/daily-backup.sh` script that is stored in the mastercontainer. It accepts the following environmental varilables:
- `AUTOMATIC_UPDATES` if set to `1`, it will automatically stop the containers, update them and start them including the mastercontainer. If the mastercontainer gets updated, this script's execution will stop as soon as the mastercontainer gets stopped. You can then wait until it is started again and run the script with this flag again in order to update all containers correctly afterwards.
- `DAILY_BACKUP` if set to `1`, it will automatically stop the containers and create a backup. If you want to start them again afterwards, you may have a look at the `START_CONTAINERS` option. Please be aware that this option is non-blocking if `START_CONTAINERS` and `AUTOMATIC_UPDATES` is not enabled at the same time which means that the backup check is not done when the process is finished since it only start the borgbackup container with the correct configuration.
- `DAILY_BACKUP` if set to `1`, it will automatically stop the containers and create a backup. If you want to start them again afterwards, you may have a look at the `START_CONTAINERS` option.
- `START_CONTAINERS` if set to `1`, it will automatically start the containers without updating them.
- `STOP_CONTAINERS` if set to `1`, it will automatically stop the containers.
- `CHECK_BACKUP` if set to `1`, it will start the backup check. This is not allowed to be enabled at the same time like `DAILY_BACKUP`. Please be aware that this option is non-blocking which means that the backup check is not done when the process is finished since it only start the borgbackup container with the correct configuration.
@@ -438,7 +457,7 @@ You can configure the Nextcloud container to use a specific directory on your ho
- An example for Linux is `-e NEXTCLOUD_DATADIR="/mnt/ncdata"`.
- On macOS it might be `-e NEXTCLOUD_DATADIR="/var/nextcloud-data"`
- For Synology it may be `-e NEXTCLOUD_DATADIR="/volume1/docker/nextcloud/data"`.
- On Windows it might be `-e NEXTCLOUD_DATADIR="/run/desktop/mnt/host/c/ncdata"`. (This path is equivalent to `C:\backup` on your Windows host so you need to translate the path accordingly. Hint: the path that you enter needs to start with `/run/desktop/mnt/host/`. Append to that the exact location on your windows host, e.g. `c/ncdata` which is equivalent to `C:\ncdata`.)
- On Windows it might be `-e NEXTCLOUD_DATADIR="/run/desktop/mnt/host/c/ncdata"`. (This path is equivalent to `C:\ncdata` on your Windows host so you need to translate the path accordingly. Hint: the path that you enter needs to start with `/run/desktop/mnt/host/`. Append to that the exact location on your windows host, e.g. `c/ncdata` which is equivalent to `C:\ncdata`.)
- Another option is to provide a specific volume name here with: `-e NEXTCLOUD_DATADIR="nextcloud_aio_nextcloud_datadir"`. This volume needs to be created beforehand manually by you in order to be able to use it. e.g. with:
```
docker volume create ^
@@ -452,11 +471,11 @@ You can configure the Nextcloud container to use a specific directory on your ho
### Can I use a CIFS/SMB share as Nextcloud's datadir?
Sure. Add this to the `/etc/fstab` file: <br>
`<your-storage-host-and-subpath> <your-mount-dir> cifs rw,credentials=<your-credentials-file>,uid=33,gid=0,file_mode=0770,dir_mode=0770 0 0`<br>
`<your-storage-host-and-subpath> <your-mount-dir> cifs rw,mfsymlinks,seal,credentials=<your-credentials-file>,uid=33,gid=0,file_mode=0770,dir_mode=0770 0 0`<br>
(Of course you need to modify `<your-storage-host-and-subpath>`, `<your-mount-dir>` and `<your-credentials-file>` for your specific case.)
One example could look like this:<br>
`//your-storage-host/subpath /mnt/storagebox cifs rw,credentials=/etc/storage-credentials,uid=33,gid=0,file_mode=0770,dir_mode=0770 0 0`<br>
`//your-storage-host/subpath /mnt/storagebox cifs rw,mfsymlinks,seal,credentials=/etc/storage-credentials,uid=33,gid=0,file_mode=0770,dir_mode=0770 0 0`<br>
and add into `/etc/storage-credentials`:
```
username=<smb/cifs username>
@@ -470,10 +489,11 @@ Now you can use `/mnt/storagebox` as Nextcloud's datadir like described in the s
By default, the Nextcloud container is confined and cannot access directories on the host OS. You might want to change this when you are planning to use local external storage in Nextcloud to store some files outside the data directory and can do so by adding the environmental variable `NEXTCLOUD_MOUNT` to the initial startup of the mastercontainer. Allowed values for that variable are strings that start with `/` and are not equal to `/`.
- Two examples for Linux are `-e NEXTCLOUD_MOUNT="/mnt/"` and `-e NEXTCLOUD_MOUNT="/media/"`.
- On macOS it might be `-e NEXTCLOUD_MOUNT="/Volumes/your_drive/"`
- For Synology it may be `-e NEXTCLOUD_MOUNT="/volume1/"`.
- On Windows is this option not supported.
- On Windows it might be `-e NEXTCLOUD_MOUNT="/run/desktop/mnt/host/d/your-folder/"`. (This path is equivalent to `D:\your-folder` on your Windows host so you need to translate the path accordingly. Hint: the path that you enter needs to start with `/run/desktop/mnt/host/`. Append to that the exact location on your windows host, e.g. `d/your-folder/` which is equivalent to `D:\your-folder`.)
After using this option, please make sure to apply the correct permissions to the directories that you want to use in Nextcloud. E.g. `sudo chown -R 33:0 /mnt/your-drive-mountpoint` and `sudo chmod -R 750 /mnt/your-drive-mountpoint` should make it work on Linux when you have used `-e NEXTCLOUD_MOUNT="/mnt/"`.
After using this option, please make sure to apply the correct permissions to the directories that you want to use in Nextcloud. E.g. `sudo chown -R 33:0 /mnt/your-drive-mountpoint` and `sudo chmod -R 750 /mnt/your-drive-mountpoint` should make it work on Linux when you have used `-e NEXTCLOUD_MOUNT="/mnt/"`. On Windows you could do this e.g. with `docker exec -it nextcloud-aio-nextcloud chown -R 33:0 /run/desktop/mnt/host/d/your-folder/` and `docker exec -it nextcloud-aio-nextcloud chmod -R 750 /run/desktop/mnt/host/d/your-folder/`.
You can then navigate to the apps management page, activate the external storage app, navigate to `https://your-nc-domain.com/settings/admin/externalstorages` and add a local external storage directory that will be accessible inside the container at the same place that you've entered. E.g. `/mnt/your-drive-mountpoint` will be mounted to `/mnt/your-drive-mountpoint` inside the container, etc.
@@ -506,7 +526,7 @@ You can run AIO also with docker rootless. How to do this is documented here: [d
No. Since Podman is not 100% compatible with the Docker API, you cannot use Podman instead of Docker (since that would add yet another platform where the maintaner would need to test on). However you can use and follow the [manual-install documentation](./manual-install/) to get AIO's containers running with Podman or use Docker rootless, as described in the above section.
### How to change the Nextcloud apps that are installed on the first startup?
You might want to adjust the Nextcloud apps that are installed upon the first startup of the Nextcloud container. You can do so by adding `-e NEXTCLOUD_STARTUP_APPS="deck twofactor_totp tasks calendar contacts"` to the docker run command of the mastercontainer and customize the value to your fitting. It must be a string with small letters a-z, spaces and hyphens or '_'. You can disable shipped and by default enabled apps by adding a hyphen in front of the appid. E.g. `-contactsinteraction`.
You might want to adjust the Nextcloud apps that are installed upon the first startup of the Nextcloud container. You can do so by adding `-e NEXTCLOUD_STARTUP_APPS="deck twofactor_totp tasks calendar contacts"` to the docker run command of the mastercontainer and customize the value to your fitting. It must be a string with small letters a-z, 0-9, spaces and hyphens or '_'. You can disable shipped and by default enabled apps by adding a hyphen in front of the appid. E.g. `-contactsinteraction`.
### How to add OS packages permanently to the Nextcloud container?
Some Nextcloud apps require additional external dependencies that must be bundled within Nextcloud container in order to work correctly. As we cannot put each and every dependency for all apps into the container - as this would make the project very fast unmaintainable - there is an official way how you can add additional dependencies into the Nextcloud container. However note that doing this is disrecommended since we do not test Nextcloud apps that require external dependencies.

View File

@@ -9,7 +9,7 @@ In order to run Nextcloud behind a web server or reverse proxy (like Apache, Ngi
**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. Optional: If the reverse proxy is installed on the same host, you should limit the apache container to only listen on localhost. See [point 3](#3-if-the-reverse-proxy-is-installed-on-the-same-host-you-should-configure-the-apache-container-to-only-listen-on-localhost)
1. Optional: If the reverse proxy is installed on the same host and in the host network, you should limit the apache container to only listen on localhost. See [point 3](#3-limit-the-access-to-the-apache-container)
1. **Open the AIO interface. See [point 4](#4-open-the-aio-interface)**
1. Optional: Get a valid certificate for the AIO interface! See [point 5](#5-optional-get-a-valid-certificate-for-the-aio-interface)
1. Optional: How to debug things? See [point 6](#6-how-to-debug-things)
@@ -48,7 +48,10 @@ Add this as a new Apache site config:
RewriteEngine On
ProxyPreserveHost On
AllowEncodedSlashes NoDecode
ProxyPass / http://localhost:11000/ nocanon
ProxyPassReverse / http://localhost:11000/
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteCond %{HTTP:Connection} upgrade [NC]
RewriteCond %{THE_REQUEST} "^[a-zA-Z]+ /(.*) HTTP/\d+(\.\d+)?$"
@@ -269,7 +272,6 @@ server {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header Early-Data $ssl_early_data;
proxy_set_header X-Forwarded-Scheme $scheme;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
@@ -289,7 +291,6 @@ server {
ssl_certificate /etc/letsencrypt/live/<your-nc-domain>/fullchain.pem; # managed by certbot on host machine
ssl_certificate_key /etc/letsencrypt/live/<your-nc-domain>/privkey.pem; # managed by certbot on host machine
ssl_early_data on;
ssl_session_timeout 1d;
ssl_session_cache shared:MozSSL:10m; # about 40000 sessions
ssl_session_tickets off;
@@ -446,9 +447,11 @@ 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 that is not an option for you, you can alternatively instead of `localhost` use the ip-address that is displayed after running the following command on the host OS: `ip a | grep "scope global" | head -1 | awk '{print $2}' | sed 's|/.*||'` (the command only works on Linux)
**Hint:** Possibly the following link is useful to understand how AIO configures things: https://github.com/nextcloud/all-in-one/blob/main/manual-install/latest.yml
</details>
### Others
@@ -475,12 +478,15 @@ sudo docker run \
--restart always \
--publish 8080:8080 \
-e APACHE_PORT=11000 \
-e APACHE_IP_BINDING=0.0.0.0 \
--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config \
--volume /var/run/docker.sock:/var/run/docker.sock:ro \
nextcloud/all-in-one:latest
```
You should also think about limiting the apache container to listen only on localhost in case the reverse proxy is running on the same host and if localhost is used, by providing an additional environmental variable to this docker run command. See [point 3](#3-if-the-reverse-proxy-is-installed-on-the-same-host-you-should-configure-the-apache-container-to-only-listen-on-localhost).
Note: You may be interested in adjusting Nextclouds datadir to store the files in a different location than the default docker volume. See [this documentation](https://github.com/nextcloud/all-in-one#how-to-change-the-default-location-of-nextclouds-datadir) on how to do it.
You should also think about limiting the apache container to listen only on localhost in case the reverse proxy is running on the same host and in the host network, by providing an additional environmental variable to this docker run command. See [point 3](#3-limit-the-access-to-the-apache-container).
On macOS see https://github.com/nextcloud/all-in-one#how-to-run-aio-on-macos.
@@ -495,6 +501,7 @@ docker run ^
--restart always ^
--publish 8080:8080 ^
-e APACHE_PORT=11000 ^
-e APACHE_IP_BINDING=0.0.0.0 ^
--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config ^
--volume //var/run/docker.sock:/var/run/docker.sock:ro ^
nextcloud/all-in-one:latest
@@ -510,9 +517,9 @@ On Synology DSM see https://github.com/nextcloud/all-in-one#how-to-run-aio-on-sy
Simply translate the docker run command into a docker-compose file. You can have a look at [this file](https://github.com/nextcloud/all-in-one/blob/main/docker-compose.yml) for some inspiration but you will need to modify it either way. You can find further examples here: https://github.com/nextcloud/all-in-one/discussions/588
## 3. If the reverse proxy is installed on the same host, you should configure the apache container to only listen on localhost.
## 3. Limit the access to the apache container
Use this envorinmental variable during the initial startup of the mastercontainer to make the apache container only listen on localhost: `-e APACHE_IP_BINDING=127.0.0.1`. **Attention:** This is only recommended to be set if you use `localhost` in your reverse proxy config to connect to your AIO instance. If you use an ip-address, you can either simply skip this step or set it to `0.0.0.0` if you are unsure what the correct value is.
Use this envorinmental variable during the initial startup of the mastercontainer to make the apache container only listen on localhost: `-e APACHE_IP_BINDING=127.0.0.1`. **Attention:** This is only recommended to be set if you use `localhost` in your reverse proxy config to connect to your AIO instance. If you use an ip-address instead of localhost, you should set it to `0.0.0.0`.
## 4. Open the AIO interface.
After starting AIO, you should be able to access the AIO Interface via `https://ip.address.of.the.host:8080`. Enter your domain that you've entered in the reverse proxy config and you should be done. Please do not forget to open port `3478/TCP` and `3478/UDP` in your firewall/router for the Talk container!