Compare commits

...

184 Commits

Author SHA1 Message Date
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
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
Simon L
7bb713eaaa increase to 4.4.0
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-16 19:17:04 +01:00
Simon L
0df1db6b8f Merge pull request #2005 from nextcloud/enh/2004/add-spinner-loader
add loader to login template
2023-02-16 19:16:11 +01:00
Simon L
5b2b60841d add loader to login template
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-16 19:14:09 +01:00
Simon L
e638aa3b89 Merge pull request #2002 from nextcloud/aio-helm-update
Helm Chart updates
2023-02-16 17:43:10 +01:00
szaimen
42c0dadb11 Helm Chart updates
Signed-off-by: GitHub <noreply@github.com>
2023-02-16 16:39:25 +00:00
Simon L
4362406587 fix the helm-update job
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-16 17:38:45 +01:00
Simon L
f1dff9b3e2 Merge pull request #2001 from nextcloud/aio-yaml-update
Yaml updates
2023-02-16 17:32:41 +01:00
szaimen
a6667496c7 Yaml updates
Signed-off-by: GitHub <noreply@github.com>
2023-02-16 16:31:28 +00:00
Simon L
355175cc36 Merge pull request #1990 from nextcloud/fix/1984/fix-docker-networks
connect containers only to custom network
2023-02-16 17:28:11 +01:00
Simon L
2ade84e7ab connect containers only to custom network
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-16 17:26:35 +01:00
Simon L
244424efee Merge pull request #1982 from nextcloud/enh/noid/improve-restore
also restore configuration.json even if the former restore failed
2023-02-16 17:25:09 +01:00
Simon L
775889edc4 Merge pull request #1981 from nextcloud/enh/noid/increase-free-disk-check
check size of config and only write back if space is sufficient
2023-02-16 17:24:35 +01:00
Simon L
8a23a1cb6b Merge pull request #1969 from nextcloud/enh/noid/improve-caddy
fix and hide a few caddy warnings
2023-02-16 17:23:43 +01:00
Simon L
e17dfd9e66 Merge pull request #1968 from nextcloud/enh/noid/fix-session-deletion
rm does not work if there are too many sessions
2023-02-16 17:21:59 +01:00
Simon L
de2c915bba update OO
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-16 17:19:02 +01:00
Simon L
40be1e1d07 Merge pull request #1999 from nextcloud/dependabot/docker/Containers/clamav/clamav/clamav-1.0.1-1
Bump clamav/clamav from 0.105.1-8 to 1.0.1-1 in /Containers/clamav
2023-02-16 17:17:44 +01:00
Simon L
e60dcdc2b3 Merge pull request #1998 from nextcloud/dependabot/docker/Containers/mastercontainer/caddy-2.6.4-alpine
Bump caddy from 2.6.3-alpine to 2.6.4-alpine in /Containers/mastercontainer
2023-02-16 17:17:26 +01:00
Simon L
90f49b128e Merge pull request #1997 from nextcloud/dependabot/docker/Containers/apache/caddy-2.6.4-alpine
Bump caddy from 2.6.3-alpine to 2.6.4-alpine in /Containers/apache
2023-02-16 17:17:10 +01:00
Simon L
2115e1dcf7 Merge pull request #1995 from nextcloud/dependabot/docker/Containers/nextcloud/php-8.0.28-fpm-alpine3.16
Bump php from 8.0.27-fpm-alpine3.16 to 8.0.28-fpm-alpine3.16 in /Containers/nextcloud
2023-02-16 17:16:55 +01:00
Simon L
554745ac13 Merge pull request #1994 from nextcloud/dependabot/docker/Containers/mastercontainer/php-8.1.16-fpm-alpine3.17
Bump php from 8.1.15-fpm-alpine3.17 to 8.1.16-fpm-alpine3.17 in /Containers/mastercontainer
2023-02-16 17:15:33 +01:00
Simon L
4f91809d41 Merge pull request #1980 from nextcloud/dependabot/docker/Containers/mastercontainer/docker-23.0.1-dind
Bump docker from 20.10.23-dind to 23.0.1-dind in /Containers/mastercontainer
2023-02-16 17:15:18 +01:00
Simon L
e52647caf3 Merge pull request #1979 from nextcloud/dependabot/docker/Containers/watchtower/alpine-3.17.2
Bump alpine from 3.17.1 to 3.17.2 in /Containers/watchtower
2023-02-16 17:14:56 +01:00
Simon L
c1f882b95f Merge pull request #1978 from nextcloud/dependabot/docker/Containers/borgbackup/alpine-3.17.2
Bump alpine from 3.17.1 to 3.17.2 in /Containers/borgbackup
2023-02-16 17:14:41 +01:00
Simon L
0710b64899 Merge pull request #1977 from nextcloud/dependabot/docker/Containers/postgresql/postgres-15.2-alpine
Bump postgres from 15.1-alpine to 15.2-alpine in /Containers/postgresql
2023-02-16 17:14:19 +01:00
Simon L
e7e3de0335 Merge pull request #1976 from nextcloud/dependabot/docker/Containers/domaincheck/alpine-3.17.2
Bump alpine from 3.17.1 to 3.17.2 in /Containers/domaincheck
2023-02-16 17:14:04 +01:00
Simon L
88c95e292b Merge pull request #2000 from nextcloud/enh/noid/multiarch
document multiarch containers
2023-02-16 17:03:57 +01:00
Simon L
73674c6167 document multiarch containers
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-16 17:02:44 +01:00
Simon L
e9497634b6 migration.md - adjust db-creation docs for psql 15
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-16 16:44:35 +01:00
dependabot[bot]
cf69a3114a Bump clamav/clamav from 0.105.1-8 to 1.0.1-1 in /Containers/clamav
Bumps clamav/clamav from 0.105.1-8 to 1.0.1-1.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-16 12:59:25 +00:00
dependabot[bot]
f7ec7da366 Bump caddy in /Containers/mastercontainer
Bumps caddy from 2.6.3-alpine to 2.6.4-alpine.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-16 12:59:11 +00:00
dependabot[bot]
2e9a908d07 Bump caddy from 2.6.3-alpine to 2.6.4-alpine in /Containers/apache
Bumps caddy from 2.6.3-alpine to 2.6.4-alpine.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-16 12:59:08 +00:00
Simon L
849c0c4c89 disable the tls-alpn challenge
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-15 19:36:26 +01:00
Simon L
43ef6cb056 traefik - the x-robots-tag should be set by nextcloud. dont overwrite it
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-15 18:30:01 +01:00
Simon L
194446fc71 check size of config and only write back if space is sufficient
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-15 17:11:23 +01:00
dependabot[bot]
63f2b4a3d9 Bump php in /Containers/nextcloud
Bumps php from 8.0.27-fpm-alpine3.16 to 8.0.28-fpm-alpine3.16.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-15 13:02:06 +00:00
dependabot[bot]
285aee962b Bump php in /Containers/mastercontainer
Bumps php from 8.1.15-fpm-alpine3.17 to 8.1.16-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-02-15 13:01:00 +00:00
Simon L
6787d322cc also restore configuration.json even if the former restore failed
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-13 17:00:20 +01:00
dependabot[bot]
b7e593a64d Bump docker in /Containers/mastercontainer
Bumps docker from 20.10.23-dind to 23.0.1-dind.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-13 13:04:15 +00:00
dependabot[bot]
eb52264f3b Bump alpine from 3.17.1 to 3.17.2 in /Containers/watchtower
Bumps alpine from 3.17.1 to 3.17.2.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-13 13:04:15 +00:00
dependabot[bot]
93de08cd54 Bump alpine from 3.17.1 to 3.17.2 in /Containers/borgbackup
Bumps alpine from 3.17.1 to 3.17.2.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-13 13:04:00 +00:00
dependabot[bot]
d65e94b3b2 Bump postgres from 15.1-alpine to 15.2-alpine in /Containers/postgresql
Bumps postgres from 15.1-alpine to 15.2-alpine.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-13 13:03:56 +00:00
dependabot[bot]
0f38928dd8 Bump alpine from 3.17.1 to 3.17.2 in /Containers/domaincheck
Bumps alpine from 3.17.1 to 3.17.2.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-13 13:03:53 +00:00
Simon L
1dc69dca29 Match only host names and not ip-addresses
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-11 21:26:07 +01:00
Simon L
96f3ca2506 fix and hide a few caddy warnings
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-11 20:49:30 +01:00
Simon L
9c63e9707f rm does not work if there are too many sessions
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-11 19:30:02 +01:00
Simon L
feffba739a Helm Chart updates
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-11 15:18:13 +01:00
Simon L
8a0dda3002 add an additional step about removing the containers
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-11 15:14:16 +01:00
Simon L
df34ecb282 Merge pull request #1959 from nextcloud/aio-yaml-update
Yaml updates
2023-02-10 14:35:51 +01:00
szaimen
0dda394f5c Yaml updates
Signed-off-by: GitHub <noreply@github.com>
2023-02-10 13:22:54 +00:00
Simon L
86a8a2d2fd increase to 4.3.4
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-10 14:02:20 +01:00
Simon L
be2df389ab Merge pull request #1934 from nextcloud/enh/noid/handle-talk-internal-ports
helm - handle talk internal ports correctly and fix permissions for Nextcloud container
2023-02-10 13:59:15 +01:00
Simon L
a9f0cf6df5 no needs quotes as well
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-10 13:58:23 +01:00
Simon L
31d7fff62b Merge pull request #1957 from nextcloud/enh/noid/fix-fpm-settings
mastercontainer - increase max children and switch to pm dynamic
2023-02-10 13:48:23 +01:00
Simon L
6d7df693b3 Merge pull request #1954 from nextcloud/dependabot/docker/Containers/apache/caddy-2.6.3-alpine
Bump caddy from 2.6.2-alpine to 2.6.3-alpine in /Containers/apache
2023-02-10 13:44:28 +01:00
Simon L
cba398df2d Merge pull request #1955 from nextcloud/dependabot/docker/Containers/mastercontainer/caddy-2.6.3-alpine
Bump caddy from 2.6.2-alpine to 2.6.3-alpine in /Containers/mastercontainer
2023-02-10 13:44:09 +01:00
Simon L
398cf969ac mastercontainer - increase max children and switch to pm dynamic
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-10 13:42:03 +01:00
Simon L
8b8059b6d2 another one
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-09 13:11:02 +01:00
Simon L
23509fc18a improve detail
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-09 13:10:01 +01:00
dependabot[bot]
7be09e89d3 Bump caddy in /Containers/mastercontainer
Bumps caddy from 2.6.2-alpine to 2.6.3-alpine.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-09 12:04:08 +00:00
dependabot[bot]
b2c92d1b39 Bump caddy from 2.6.2-alpine to 2.6.3-alpine in /Containers/apache
Bumps caddy from 2.6.2-alpine to 2.6.3-alpine.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-09 12:03:57 +00:00
Simon L
cb527ad29c increase to 4.3.3
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-09 11:42:02 +01:00
Simon L
3209e69c1d Merge pull request #1952 from nextcloud/enh/noid/update-windows-docs
update windows documentation to use paths instead of volumes
2023-02-09 11:41:05 +01:00
Simon L
eb024f0460 update windows documentation to use paths instead of volumes
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-09 11:39:13 +01:00
Simon L
69c4df538a Merge pull request #1951 from nextcloud/aio-dependency-update
Dependency updates
2023-02-09 11:29:06 +01:00
Simon L
34c47c06cb Merge pull request #1950 from nextcloud/dependabot/docker/Containers/fulltextsearch/elasticsearch-7.17.9
Bump elasticsearch from 7.17.8 to 7.17.9 in /Containers/fulltextsearch
2023-02-09 11:28:40 +01:00
Simon L
ccbd7a847c Merge pull request #1949 from nextcloud/dependabot/docker/Containers/clamav/clamav/clamav-0.105.1-8
Bump clamav/clamav from 0.105.1-7 to 0.105.1-8 in /Containers/clamav
2023-02-09 11:28:23 +01:00
Simon L
9f2e2cdbb8 Merge pull request #1948 from nextcloud/enh/noid/rework-imaginary
imaginary - rework some things
2023-02-09 11:28:05 +01:00
Simon L
208b6a4960 Merge pull request #1947 from nextcloud/aio-yaml-update
Yaml updates
2023-02-09 11:26:42 +01:00
szaimen
57b921bc5e dependency updates
Signed-off-by: GitHub <noreply@github.com>
2023-02-08 12:15:56 +00:00
dependabot[bot]
3eba28888b Bump elasticsearch from 7.17.8 to 7.17.9 in /Containers/fulltextsearch
Bumps elasticsearch from 7.17.8 to 7.17.9.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-08 12:07:47 +00:00
dependabot[bot]
b68f1b9703 Bump clamav/clamav from 0.105.1-7 to 0.105.1-8 in /Containers/clamav
Bumps clamav/clamav from 0.105.1-7 to 0.105.1-8.

---
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-02-08 12:04:40 +00:00
Simon L
c28952fc9c imaginary - rework some things
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-08 00:32:48 +01:00
szaimen
345f0f5f30 Yaml updates
Signed-off-by: GitHub <noreply@github.com>
2023-02-07 12:16:56 +00:00
Simon L
d74ed475df adjust permissions for Nextcloud's datadir
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-04 17:07:49 +01:00
Simon L
a5f9ff9c74 helm - handle talk internal ports correctly
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-04 16:43:41 +01:00
70 changed files with 430 additions and 325 deletions

View File

@@ -15,7 +15,7 @@ jobs:
- name: update helm chart
run: |
DOCKER_TAG="$(curl -L -s 'https://registry.hub.docker.com/v2/repositories/nextcloud/all-in-one/tags?page_size=1024' | jq '."results"[]["name"]' | sed 's|"||g' | grep '^20' | sort -r | head -1)"
DOCKER_TAG="${DOCKER_TAG%%latest*}"
DOCKER_TAG="${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"

View File

@@ -4,6 +4,10 @@
storage file_system {
root /mnt/data/caddy
}
log {
level ERROR
}
}
{$PROTOCOL}://{$NC_DOMAIN}:{$APACHE_PORT} {

View File

@@ -1,5 +1,5 @@
# Caddy is a requirement
FROM caddy:2.6.2-alpine as caddy
FROM caddy:2.6.4-alpine as caddy
FROM httpd:2.4.55-alpine3.17

View File

@@ -45,6 +45,9 @@ else
fi
echo "$CADDYFILE" > /Caddyfile
# Fix the Caddyfile format
caddy fmt --overwrite /Caddyfile
# Add caddy path
mkdir -p /mnt/data/caddy/

View File

@@ -1,8 +1,9 @@
FROM alpine:3.17.1
FROM alpine:3.17.2
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!"
@@ -266,15 +269,16 @@ if [ "$BORG_MODE" = restore ]; then
if ! rsync --stats --archive --human-readable -vv --delete \
--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/"** \
/tmp/borg/nextcloud_aio_volumes/ /nextcloud_aio_volumes; then
RESTORE_FAILED=1
echo "Something failed while restoring from backup."
umount /tmp/borg
exit 1
fi
# Save current aio password
@@ -294,9 +298,8 @@ if [ "$BORG_MODE" = restore ]; then
if ! rsync --archive --human-readable -vv \
/tmp/borg/nextcloud_aio_volumes/nextcloud_aio_mastercontainer/data/configuration.json \
/nextcloud_aio_volumes/nextcloud_aio_mastercontainer/data/configuration.json; then
RESTORE_FAILED=1
echo "Something failed while restoring the configuration.json."
umount /tmp/borg
exit 1
fi
# Set backup-mode to restore since it was a restore
@@ -331,6 +334,10 @@ if [ "$BORG_MODE" = restore ]; then
umount /tmp/borg
if [ "$RESTORE_FAILED" = 1 ]; then
exit 1
fi
# Inform user
get_expiration_time
echo "Restore finished successfully on $END_DATE_READABLE ($DURATION_READABLE)"

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:0.105.1-7
FROM clamav/clamav:1.0.1-1
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.10.8.1
USER root

View File

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

View File

@@ -1,5 +1,5 @@
# Probably from here https://github.com/elastic/elasticsearch/blob/main/distribution/docker/src/docker/Dockerfile
FROM elasticsearch:7.17.8
FROM elasticsearch:7.17.9
RUN elasticsearch-plugin install --batch ingest-attachment
@@ -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

View File

@@ -6,17 +6,29 @@
storage file_system {
root /mnt/docker-aio-config/caddy/
}
log {
level ERROR
}
}
http://:80 {
redir https://{host}{uri}
}
https://:8443 {
# Match only host names and not ip-addresses:
https://*.*:8443,
https://*.*.*:8443,
https://*.*.*.*:8443,
https://*.*.*.*.*:8443,
https://*.*.*.*.*.*:8443 {
reverse_proxy localhost:8000
tls {
on_demand
issuer acme {
disable_tlsalpn_challenge
}
}
}

View File

@@ -1,11 +1,11 @@
# Docker CLI is a requirement
FROM docker:20.10.23-dind as dind
FROM docker:23.0.1-dind as dind
# Caddy is a requirement
FROM caddy:2.6.2-alpine as caddy
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.15-fpm-alpine3.17
FROM php:8.1.16-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 \
@@ -58,6 +54,9 @@ RUN set -ex; \
)"; \
apk add --virtual .nextcloud-aio-rundeps $runDeps; \
apk del .build-deps; \
grep -q '^pm = dynamic' /usr/local/etc/php-fpm.d/www.conf; \
sed -i 's/^pm = dynamic/pm = ondemand/' /usr/local/etc/php-fpm.d/www.conf; \
sed -i 's/^pm.max_children =.*/pm.max_children = 80/' /usr/local/etc/php-fpm.d/www.conf; \
sed -i 's|access.log = /proc/self/fd/2|access.log = /proc/self/fd/1|' /usr/local/etc/php-fpm.d/docker.conf
COPY --from=caddy /usr/bin/caddy /usr/bin/

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

@@ -11,7 +11,7 @@ fi
# Delete all active sessions and create a lock file
# But don't kick out the user if the mastercontainer was just updated since we block the interface either way with the lock file
if [ "$LOCK_FILE_PRESENT" = 0 ] || ! [ -f "/mnt/docker-aio-config/data/daily_backup_running" ]; then
rm -f "/mnt/docker-aio-config/session/"*
find "/mnt/docker-aio-config/session/" -mindepth 1 -delete
fi
sudo -u www-data touch "/mnt/docker-aio-config/data/daily_backup_running"
@@ -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,14 +77,18 @@ 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
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?
Using a different name is not supported!"
exit 1
elif ! sudo -u www-data docker volume ls | grep -q "nextcloud_aio_mastercontainer"; then
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?
Using a different name is not supported!"
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!"
exit 1
fi
# Check for other options
@@ -280,4 +284,10 @@ export TZ=UTC
# Fix apache startup
rm -f /var/run/apache2/httpd.pid
# Fix the Caddyfile format
caddy fmt --overwrite /Caddyfile
# Fix caddy log
chmod 777 /root
exec "$@"

View File

@@ -1,5 +1,5 @@
# From https://github.com/nextcloud/docker/blob/master/23/fpm-alpine/Dockerfile
FROM php:8.0.27-fpm-alpine3.16
FROM php:8.0.28-fpm-alpine3.16
# Custom: change id of www-data user as it needs to be the same like on old installations
RUN set -ex; \
@@ -116,7 +116,7 @@ RUN { \
VOLUME /var/www/html
ENV NEXTCLOUD_VERSION 25.0.3
ENV NEXTCLOUD_VERSION 25.0.4
RUN set -ex; \
apk add --no-cache --virtual .fetch-deps \

View File

@@ -212,22 +212,27 @@ if ! [ -f "$NEXTCLOUD_DATA_DIR/skip.update" ]; then
exit 1
fi
# We do our own permission check so the permission check is not needed
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
# unset admin password
@@ -291,6 +296,11 @@ if ! [ -f "$NEXTCLOUD_DATA_DIR/skip.update" ]; then
done
fi
# Set the permission check to its default value again if not set
if [ "$SKIP_DATA_DIRECTORY_PERMISSION_CHECK" != yes ]; then
php /var/www/html/occ config:system:set check_data_directory_permissions --value=true --type=bool
fi
#upgrade
else
touch "$NEXTCLOUD_DATA_DIR/update.failed"
@@ -357,18 +367,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
@@ -439,10 +449,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
@@ -532,23 +542,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
@@ -560,15 +577,14 @@ if version_greater "$installed_version" "24.0.0.0"; then
if [ "$IMAGINARY_ENABLED" = 'yes' ]; then
php /var/www/html/occ config:system:set enabledPreviewProviders 0 --value="OC\\Preview\\Imaginary"
php /var/www/html/occ config:system:set preview_imaginary_url --value="http://$IMAGINARY_HOST:9000"
php /var/www/html/occ config:system:set enabledPreviewProviders 20 --value="OC\\Preview\\HEIC"
php /var/www/html/occ config:system:set enabledPreviewProviders 21 --value="OC\\Preview\\TIFF"
php /var/www/html/occ config:system:set enabledPreviewProviders 22 --value="OC\\Preview\\WebP"
else
php /var/www/html/occ config:system:delete enabledPreviewProviders 0
php /var/www/html/occ config:system:delete preview_imaginary_url
php /var/www/html/occ config:system:delete enabledPreviewProviders 20
php /var/www/html/occ config:system:delete enabledPreviewProviders 21
php /var/www/html/occ config:system:delete enabledPreviewProviders 22
if [ -n "$(php /var/www/html/occ config:system:get preview_imaginary_url)" ]; then
php /var/www/html/occ config:system:delete enabledPreviewProviders 0
php /var/www/html/occ config:system:delete preview_imaginary_url
php /var/www/html/occ config:system:delete enabledPreviewProviders 20
php /var/www/html/occ config:system:delete enabledPreviewProviders 21
php /var/www/html/occ config:system:delete enabledPreviewProviders 22
fi
fi
fi

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.2.2.56
FROM onlyoffice/documentserver:7.3.2.8
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.1-alpine
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.9-alpine
RUN apk add --no-cache openssl bash

View File

@@ -1,4 +1,4 @@
FROM ubuntu:focal-20230126
FROM ubuntu:focal-20230301
RUN set -ex; \
\
@@ -10,6 +10,7 @@ RUN set -ex; \
curl \
ca-certificates \
netcat \
dnsutils \
; \
rm -rf /var/lib/apt/lists/*

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="$(dig nextcloud-aio-talk A +short)"
set +x
# Turn
cat << TURN_CONF > "/etc/turnserver.conf"
listening-port=$TALK_PORT
fingerprint
@@ -32,18 +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
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
@@ -81,11 +90,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

@@ -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.1
FROM alpine:3.17.2
RUN apk add --no-cache bash
COPY --from=watchtower /watchtower /

View File

@@ -6,7 +6,7 @@ volumes:
services:
nextcloud:
image: nextcloud/all-in-one:latest # Must be changed to 'nextcloud/all-in-one:latest-arm64' when used with an arm64 CPU
image: nextcloud/all-in-one:latest
restart: always
container_name: nextcloud-aio-mastercontainer # This line is not allowed to be changed
volumes:

View File

@@ -1,6 +1,6 @@
name: Nextcloud AIO Helm Chart
description: A generated Helm Chart for Nextcloud AIO from Skippbox Kompose
version: 4.2.0
version: 4.5.0
apiVersion: v2
keywords:
- latest

View File

@@ -54,11 +54,10 @@ spec:
value: nextcloud-aio-talk
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-apache:20230124_100035-{{ .Values.IMAGE_TAG }}
image: nextcloud/aio-apache:20230302_085724-latest
name: nextcloud-aio-apache
ports:
- containerPort: {{ .Values.APACHE_PORT }}
hostIP: {{ .Values.APACHE_IP_BINDING }}
volumeMounts:
- mountPath: /var/www/html
name: nextcloud-aio-nextcloud

View File

@@ -8,6 +8,7 @@ metadata:
io.kompose.service: nextcloud-aio-apache
name: nextcloud-aio-apache
spec:
type: LoadBalancer
ports:
- name: "{{ .Values.APACHE_PORT }}"
port: {{ .Values.APACHE_PORT }}

View File

@@ -38,7 +38,7 @@ spec:
value: "90"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-clamav:20230124_100035-{{ .Values.IMAGE_TAG }}
image: nextcloud/aio-clamav:20230302_085724-latest
name: nextcloud-aio-clamav
ports:
- containerPort: 3310

0
helm-chart/templates/nextcloud-aio-clamav-service.yaml Normal file → Executable file
View File

View File

@@ -42,7 +42,9 @@ spec:
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
image: nextcloud/aio-collabora:20230124_100035-{{ .Values.IMAGE_TAG }}
- name: server_name
value: "{{ .Values.NC_DOMAIN }}"
image: nextcloud/aio-collabora:20230302_085724-latest
name: nextcloud-aio-collabora
ports:
- containerPort: 9980

View File

View File

@@ -46,7 +46,7 @@ spec:
value: nextcloud
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-postgresql:20230124_100035-{{ .Values.IMAGE_TAG }}
image: nextcloud/aio-postgresql:20230302_085724-latest
name: nextcloud-aio-database
ports:
- containerPort: 5432

View File

View File

@@ -36,11 +36,13 @@ spec:
- env:
- name: ES_JAVA_OPTS
value: -Xms1024M -Xmx1024M
- name: POSTGRES_HOST
value: nextcloud-aio-database
- name: TZ
value: "{{ .Values.TIMEZONE }}"
- name: discovery.type
value: single-node
image: nextcloud/aio-fulltextsearch:20230124_100035-{{ .Values.IMAGE_TAG }}
image: nextcloud/aio-fulltextsearch:20230302_085724-latest
name: nextcloud-aio-fulltextsearch
ports:
- containerPort: 9200

View File

View File

@@ -26,7 +26,7 @@ spec:
- env:
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-imaginary:20230124_100035-{{ .Values.IMAGE_TAG }}
image: nextcloud/aio-imaginary:20230302_085724-latest
name: nextcloud-aio-imaginary
ports:
- containerPort: 9000

View File

View File

@@ -28,13 +28,10 @@ spec:
- chmod
- "777"
- /nextcloud-aio-nextcloud
- /nextcloud-aio-nextcloud-data
- /nextcloud-aio-nextcloud-trusted-cacerts
volumeMounts:
- name: nextcloud-aio-nextcloud-trusted-cacerts
mountPath: /nextcloud-aio-nextcloud-trusted-cacerts
- name: nextcloud-aio-nextcloud-data
mountPath: /nextcloud-aio-nextcloud-data
- name: nextcloud-aio-nextcloud
mountPath: /nextcloud-aio-nextcloud
containers:
@@ -115,7 +112,7 @@ spec:
value: "{{ .Values.TIMEZONE }}"
- name: UPDATE_NEXTCLOUD_APPS
value: "{{ .Values.UPDATE_NEXTCLOUD_APPS }}"
image: nextcloud/aio-nextcloud:20230124_100035-{{ .Values.IMAGE_TAG }}
image: nextcloud/aio-nextcloud:20230302_085724-latest
name: nextcloud-aio-nextcloud
ports:
- containerPort: 9000

View File

View File

@@ -42,7 +42,7 @@ spec:
value: "{{ .Values.ONLYOFFICE_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-onlyoffice:20230124_100035-{{ .Values.IMAGE_TAG }}
image: nextcloud/aio-onlyoffice:20230302_085724-latest
name: nextcloud-aio-onlyoffice
ports:
- containerPort: 80

View File

View File

@@ -37,7 +37,7 @@ spec:
value: "{{ .Values.REDIS_PASSWORD }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-redis:20230124_100035-{{ .Values.IMAGE_TAG }}
image: nextcloud/aio-redis:20230302_085724-latest
name: nextcloud-aio-redis
ports:
- containerPort: 6379

0
helm-chart/templates/nextcloud-aio-redis-service.yaml Normal file → Executable file
View File

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,10 +34,11 @@ spec:
value: "{{ .Values.TURN_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-talk:20230124_100035-{{ .Values.IMAGE_TAG }}
image: nextcloud/aio-talk:20230302_085724-latest
name: nextcloud-aio-talk
ports:
- containerPort: {{ .Values.TALK_PORT }}
- containerPort: {{ .Values.TALK_PORT }}
protocol: UDP
- containerPort: 8081
{{- end }}

View File

@@ -1,4 +1,27 @@
{{- if eq .Values.TALK_ENABLED "yes" }}
---
apiVersion: v1
kind: Service
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml
kompose.version: 1.28.0 (c4137012e)
labels:
io.kompose.service: nextcloud-aio-talk
name: nextcloud-aio-talk-public
spec:
type: LoadBalancer
ports:
- name: "{{ .Values.TALK_PORT }}"
port: {{ .Values.TALK_PORT }}
targetPort: {{ .Values.TALK_PORT }}
- name: {{ .Values.TALK_PORT }}-udp
port: {{ .Values.TALK_PORT }}
protocol: UDP
targetPort: {{ .Values.TALK_PORT }}
selector:
io.kompose.service: nextcloud-aio-talk
---
apiVersion: v1
kind: Service
metadata:
@@ -10,13 +33,9 @@ metadata:
name: nextcloud-aio-talk
spec:
ports:
- name: "{{ .Values.TALK_PORT }}"
port: {{ .Values.TALK_PORT }}
targetPort: {{ .Values.TALK_PORT }}
- name: {{ .Values.TALK_PORT }}-udp
port: {{ .Values.TALK_PORT }}
protocol: UDP
targetPort: {{ .Values.TALK_PORT }}
- name: "8081"
port: 8081
targetPort: 8081
selector:
io.kompose.service: nextcloud-aio-talk
{{- end }}

View File

@@ -22,7 +22,7 @@ sed -i 's|^|export |' /tmp/sample.conf
# shellcheck disable=SC1091
source /tmp/sample.conf
rm /tmp/sample.conf
sed -i "s|\${IMAGE_TAG}|$DOCKER_TAG\${IMAGE_TAG}|" latest.yml
sed -i "s|:latest$|:$DOCKER_TAG-latest|" latest.yml
sed -i "s|\${APACHE_IP_BINDING}:||" latest.yml
sed -i "s|\${APACHE_PORT}:\${APACHE_PORT}/|$APACHE_PORT:$APACHE_PORT/|" latest.yml
sed -i "s|\${TALK_PORT}:\${TALK_PORT}/|$TALK_PORT:$TALK_PORT/|g" latest.yml
@@ -73,8 +73,11 @@ for variable in "${DEPLOYMENTS[@]}"; do
volumeNames="$(grep -A1 mountPath "$variable" | grep -v mountPath | sed 's|.*name: ||' | sed '/^--$/d')"
mapfile -t volumeNames <<< "$volumeNames"
for volumeName in "${volumeNames[@]}"; do
sed -i "/^.*volumeMountsInitContainer:/i\ \ \ \ \ \ \ \ \ \ \ \ - /$volumeName" "$variable"
sed -i "/volumeMountsInitContainer:/a\ \ \ \ \ \ \ \ \ \ \ \ - name: $volumeName\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ mountPath: /$volumeName" "$variable"
# The Nextcloud container runs as root user and sets the correct permissions automatically for the data-dir if the www-data user cannot write to it
if [ "$volumeName" != "nextcloud-aio-nextcloud-data" ]; then
sed -i "/^.*volumeMountsInitContainer:/i\ \ \ \ \ \ \ \ \ \ \ \ - /$volumeName" "$variable"
sed -i "/volumeMountsInitContainer:/a\ \ \ \ \ \ \ \ \ \ \ \ - name: $volumeName\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ mountPath: /$volumeName" "$variable"
fi
done
sed -i "s|volumeMountsInitContainer|volumeMounts|" "$variable"
if grep -q claimName "$variable"; then
@@ -110,6 +113,22 @@ find ./ -name '*talk*' -exec sed -i "s|$TALK_PORT|{{ .Values.TALK_PORT }}|" \{}
find ./ -name '*apache-service.yaml' -exec sed -i "/^spec:/a\ \ type: LoadBalancer" \{} \;
# shellcheck disable=SC1083
find ./ -name '*talk-service.yaml' -exec sed -i "/^spec:/a\ \ type: LoadBalancer" \{} \;
echo '---' > /tmp/talk-service.copy
# shellcheck disable=SC1083
find ./ -name '*talk-service.yaml' -exec cat \{} \; >> /tmp/talk-service.copy
sed -i 's|name: nextcloud-aio-talk|name: nextcloud-aio-talk-public|' /tmp/talk-service.copy
# shellcheck disable=SC1083
INTERNAL_TALK_PORTS="$(find ./ -name '*talk-deployment.yaml' -exec grep -oP 'containerPort: [0-9]+' \{} \;)"
mapfile -t INTERNAL_TALK_PORTS <<< "$INTERNAL_TALK_PORTS"
for port in "${INTERNAL_TALK_PORTS[@]}"; do
port="$(echo "$port" | grep -oP '[0-9]+')"
sed -i "/$port/d" /tmp/talk-service.copy
done
echo '---' >> /tmp/talk-service.copy
# shellcheck disable=SC1083
find ./ -name '*talk-service.yaml' -exec grep -v '{{ .Values.*}}\|protocol: UDP\|type: LoadBalancer' \{} \; >> /tmp/talk-service.copy
# shellcheck disable=SC1083
find ./ -name '*talk-service.yaml' -exec mv /tmp/talk-service.copy \{} \;
# shellcheck disable=SC1083
find ./ -name '*.yaml' -exec sed -i "s|'{{|\"{{|g;s|}}'|}}\"|g" \{} \;
# shellcheck disable=SC1083
@@ -122,7 +141,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"
@@ -153,6 +172,7 @@ sed -i '/^NEXTCLOUD_DATADIR/d' /tmp/sample.conf
sed -i '/^APACHE_IP_BINDING/d' /tmp/sample.conf
sed -i '/^NEXTCLOUD_MOUNT/d' /tmp/sample.conf
sed -i '/_ENABLED.*/s/ yes / "yes" /' /tmp/sample.conf
sed -i '/_ENABLED.*/s/ no / "no" /' /tmp/sample.conf
sed -i 's|^NEXTCLOUD_TRUSTED_CACERTS_DIR: .*|NEXTCLOUD_TRUSTED_CACERTS_DIR: # Setting this to any value allows to automatically import root certificates into the Nextcloud container|' /tmp/sample.conf
# shellcheck disable=SC2129
echo 'STORAGE_CLASS: # By setting this, you can adjust the storage class for your volumes' >> /tmp/sample.conf

View File

@@ -1,17 +1,14 @@
IMAGE_TAG: latest # Version of docker images, should be latest or latest-arm64. Note: latest-arm64 has no clamav support
AIO_TOKEN: 123456 # Has no function but needs to be set!
AIO_URL: localhost # Has no function but needs to be set!
APACHE_IP_BINDING: 0.0.0.0 # This can be changed to e.g. 127.0.0.1 if you want to run AIO behind a reverse proxy and if that is running on the same host and using localhost to connect
APACHE_MAX_SIZE: 10737418240 # This needs to be an integer and in sync with NEXTCLOUD_UPLOAD_LIMIT
APACHE_PORT: 443 # Changing this to a different value than 443 will allow you to run it behind a reverse proxy.
CLAMAV_ENABLED: no # Setting this to yes enables the option in Nextcloud automatically. Note: latest-arm64 has no clamav support
APACHE_PORT: 443 # Changing this to a different value than 443 will allow you to run it behind a web server or reverse proxy (like Apache, Nginx and else).
CLAMAV_ENABLED: "no" # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically.
COLLABORA_DICTIONARIES: de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru # You can change this in order to enable other dictionaries for collabora
COLLABORA_ENABLED: yes # Setting this to yes enables the option in Nextcloud automatically.
COLLABORA_ENABLED: "no" # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically.
COLLABORA_SECCOMP_POLICY: --o:security.seccomp=true # Changing the value to false allows to disable the seccomp feature of the Collabora container.
DATABASE_PASSWORD: # TODO! This needs to be a unique and good password!
FULLTEXTSEARCH_ENABLED: no # Setting this to yes enables the option in Nextcloud automatically.
IMAGINARY_ENABLED: no # Setting this to yes enables the option in Nextcloud automatically.
JANUS_API_KEY: # 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.
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.
@@ -21,24 +18,24 @@ NEXTCLOUD_PASSWORD: # TODO! This is the password of the initially crea
NEXTCLOUD_STARTUP_APPS: deck twofactor_totp tasks calendar contacts # Allows to modify the Nextcloud apps that are installed on starting AIO the first time
NEXTCLOUD_TRUSTED_CACERTS_DIR: # Setting this to any value allows to automatically import root certificates into the Nextcloud container
NEXTCLOUD_UPLOAD_LIMIT: 10G # This allows to change the upload limit of the Nextcloud container
ONLYOFFICE_ENABLED: no # Setting this to yes enables the option in Nextcloud automatically.
ONLYOFFICE_ENABLED: "no" # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically.
ONLYOFFICE_SECRET: # TODO! This needs to be a unique and good password!
REDIS_PASSWORD: # TODO! This needs to be a unique and good password!
SIGNALING_SECRET: # TODO! This needs to be a unique and good password!
TALK_ENABLED: yes # Setting this to yes enables the option in Nextcloud automatically.
TALK_ENABLED: "no" # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically.
TALK_PORT: 3478 # This allows to adjust the port that the talk container is using.
TIMEZONE: Europe/Berlin # TODO! This is the timezone that your containers will use.
TURN_SECRET: # TODO! This needs to be a unique and good password!
UPDATE_NEXTCLOUD_APPS: no # When setting to yes, it will automatically update all installed Nextcloud apps upon container startup on saturdays.
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

View File

@@ -7,7 +7,7 @@ services:
- nextcloud-aio-collabora
- nextcloud-aio-talk
- nextcloud-aio-nextcloud
image: nextcloud/aio-apache:${IMAGE_TAG}
image: nextcloud/aio-apache:latest
ports:
- ${APACHE_IP_BINDING}:${APACHE_PORT}:${APACHE_PORT}/tcp
environment:
@@ -28,7 +28,7 @@ services:
- nextcloud-aio
nextcloud-aio-database:
image: nextcloud/aio-postgresql:${IMAGE_TAG}
image: nextcloud/aio-postgresql:latest
expose:
- "5432"
volumes:
@@ -52,7 +52,7 @@ services:
- nextcloud-aio-clamav
- nextcloud-aio-fulltextsearch
- nextcloud-aio-imaginary
image: nextcloud/aio-nextcloud:${IMAGE_TAG}
image: nextcloud/aio-nextcloud:latest
expose:
- "9000"
- "7867"
@@ -106,7 +106,7 @@ services:
- nextcloud-aio
nextcloud-aio-redis:
image: nextcloud/aio-redis:${IMAGE_TAG}
image: nextcloud/aio-redis:latest
expose:
- "6379"
environment:
@@ -120,7 +120,7 @@ services:
nextcloud-aio-collabora:
profiles: ["collabora"]
image: nextcloud/aio-collabora:${IMAGE_TAG}
image: nextcloud/aio-collabora:latest
expose:
- "9980"
environment:
@@ -128,6 +128,7 @@ services:
- 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
- dictionaries=${COLLABORA_DICTIONARIES}
- TZ=${TIMEZONE}
- server_name=${NC_DOMAIN}
volumes:
- nextcloud_aio_collabora_fonts:/opt/cool/systemplate/tmpfonts:rw
restart: unless-stopped
@@ -136,7 +137,7 @@ services:
nextcloud-aio-talk:
profiles: ["talk"]
image: nextcloud/aio-talk:${IMAGE_TAG}
image: nextcloud/aio-talk:latest
ports:
- ${TALK_PORT}:${TALK_PORT}/tcp
- ${TALK_PORT}:${TALK_PORT}/udp
@@ -146,7 +147,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
@@ -155,7 +155,7 @@ services:
nextcloud-aio-clamav:
profiles: ["clamav"]
image: nextcloud/aio-clamav:${IMAGE_TAG}
image: nextcloud/aio-clamav:latest
expose:
- "3310"
environment:
@@ -169,7 +169,7 @@ services:
nextcloud-aio-onlyoffice:
profiles: ["onlyoffice"]
image: nextcloud/aio-onlyoffice:${IMAGE_TAG}
image: nextcloud/aio-onlyoffice:latest
expose:
- "80"
environment:
@@ -185,7 +185,7 @@ services:
nextcloud-aio-imaginary:
profiles: ["imaginary"]
image: nextcloud/aio-imaginary:${IMAGE_TAG}
image: nextcloud/aio-imaginary:latest
expose:
- "9000"
environment:
@@ -196,7 +196,7 @@ services:
nextcloud-aio-fulltextsearch:
profiles: ["fulltextsearch"]
image: nextcloud/aio-fulltextsearch:${IMAGE_TAG}
image: nextcloud/aio-fulltextsearch:latest
expose:
- "9200"
environment:

View File

@@ -21,16 +21,16 @@ First, install docker and docker-compose if not already done. Then simply run th
git clone https://github.com/nextcloud/all-in-one.git
cd all-in-one/manual-install
```
Then copy the sample.conf to default environment file, e.g. `cp sample.conf .env`, open the new conf file, e.g. with `nano .env`, edit all values that are marked with `# TODO!`, close and save the file. For arm64 support use `IMAGE_TAG=latest-arm64` (Note: there is no clamav image for arm64).
Then copy the sample.conf to default environment file, e.g. `cp sample.conf .env`, open the new conf file, e.g. with `nano .env`, edit all values that are marked with `# TODO!`, close and save the file. (Note: there is no clamav image for arm64).
Now copy the provided yaml file to a docker-compose file by running `cp latest.yml docker-compose.yml`.
Now you should be ready to go with `sudo docker-compose up`.
## Docker profiles
The default profile of `latest.yml` only provide the minimum necessary services: nextcloud, database, redis and apache. To get optional services collabora, onlyoffice, talk, clamav, imaginary or fulltextsearch use additional arguments for each of them, for example `--profile collabora`.
The default profile of `latest.yml` only provide the minimum necessary services: nextcloud, database, redis and apache. To get optional services collabora, onlyoffice, talk, clamav, imaginary or fulltextsearch use additional arguments for each of them, for example `--profile collabora`. (Note: there is no clamav image for arm64).
For a complete all-in-one with collabora use `sudo docker-compose --profile collabora --profile talk --profile clamav --profile imaginary --profile fulltextsearch up`.
For a complete all-in-one with collabora use `sudo docker-compose --profile collabora --profile talk --profile clamav --profile imaginary --profile fulltextsearch up`. (Note: there is no clamav image for arm64).
## How to update?
Since the AIO containers may change in the future, it is highly recommended to strictly follow the following procedure whenever you want to upgrade your containers.

View File

@@ -1,17 +1,15 @@
IMAGE_TAG=latest # Version of docker images, should be latest or latest-arm64. Note: latest-arm64 has no clamav support
AIO_TOKEN=123456 # Has no function but needs to be set!
AIO_URL=localhost # Has no function but needs to be set!
APACHE_IP_BINDING=0.0.0.0 # This can be changed to e.g. 127.0.0.1 if you want to run AIO behind a web server or reverse proxy (like Apache, Nginx and else) and if that is running on the same host and using localhost to connect
APACHE_MAX_SIZE=10737418240 # This needs to be an integer and in sync with NEXTCLOUD_UPLOAD_LIMIT
APACHE_PORT=443 # Changing this to a different value than 443 will allow you to run it behind a web server or reverse proxy (like Apache, Nginx and else).
CLAMAV_ENABLED=no # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically. Note: latest-arm64 has no clamav support
CLAMAV_ENABLED="no" # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically.
COLLABORA_DICTIONARIES="de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru" # You can change this in order to enable other dictionaries for collabora
COLLABORA_ENABLED="yes" # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically.
COLLABORA_ENABLED="no" # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically.
COLLABORA_SECCOMP_POLICY=--o:security.seccomp=true # Changing the value to false allows to disable the seccomp feature of the Collabora container.
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!
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.
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.
@@ -23,12 +21,12 @@ NEXTCLOUD_PASSWORD= # TODO! This is the password of the initially creat
NEXTCLOUD_STARTUP_APPS="deck twofactor_totp tasks calendar contacts" # Allows to modify the Nextcloud apps that are installed on starting AIO the first time
NEXTCLOUD_TRUSTED_CACERTS_DIR=/usr/local/share/ca-certificates/my-custom-ca # Nextcloud container will trust all the Certification Authorities, whose certificates are included in the given directory.
NEXTCLOUD_UPLOAD_LIMIT=10G # This allows to change the upload limit of the Nextcloud container
ONLYOFFICE_ENABLED=no # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically.
ONLYOFFICE_ENABLED="no" # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically.
ONLYOFFICE_SECRET= # TODO! This needs to be a unique and good password!
REDIS_PASSWORD= # TODO! This needs to be a unique and good password!
SIGNALING_SECRET= # TODO! This needs to be a unique and good password!
TALK_ENABLED="yes" # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically.
TALK_ENABLED="no" # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically.
TALK_PORT=3478 # This allows to adjust the port that the talk container is using.
TIMEZONE=Europe/Berlin # TODO! This is the timezone that your containers will use.
TURN_SECRET= # TODO! This needs to be a unique and good password!
UPDATE_NEXTCLOUD_APPS=no # When setting to "yes" (with quotes), it will automatically update all installed Nextcloud apps upon container startup on saturdays.
UPDATE_NEXTCLOUD_APPS="no" # When setting to "yes" (with quotes), it will automatically update all installed Nextcloud apps upon container startup on saturdays.

View File

@@ -48,7 +48,6 @@ do
done
rm -f sample.conf
echo 'IMAGE_TAG=latest # Version of docker images, should be latest or latest-arm64. Note: latest-arm64 has no clamav support' >> sample.conf
VARIABLES="$(grep -oP '%[A-Z_a-z0-6]+%' containers.yml | sort -u)"
mapfile -t VARIABLES <<< "$VARIABLES"
for variable in "${VARIABLES[@]}"
@@ -59,8 +58,8 @@ do
sed -i "s|$variable|\${$sole_variable}|g" containers.yml
done
sed -i 's|_ENABLED=|_ENABLED=no # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically.|' sample.conf
sed -i 's|CLAMAV_ENABLED=no.*|CLAMAV_ENABLED=no # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically. Note: latest-arm64 has no clamav support|' sample.conf
sed -i 's|_ENABLED=|_ENABLED="no" # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically.|' sample.conf
sed -i 's|CLAMAV_ENABLED=no.*|CLAMAV_ENABLED="no" # Setting this to "yes" (with quotes) enables the option in Nextcloud automatically. Note: arm64 has no clamav support|' sample.conf
sed -i 's|TALK_ENABLED=no|TALK_ENABLED="yes"|' sample.conf
sed -i 's|COLLABORA_ENABLED=no|COLLABORA_ENABLED="yes"|' sample.conf
sed -i 's|COLLABORA_DICTIONARIES=|COLLABORA_DICTIONARIES="de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru" # You can change this in order to enable other dictionaries for collabora|' sample.conf
@@ -71,7 +70,8 @@ sed -i 's|NEXTCLOUD_MEMORY_LIMIT=|NEXTCLOUD_MEMORY_LIMIT=512M # This al
sed -i 's|APACHE_MAX_SIZE=|APACHE_MAX_SIZE=10737418240 # This needs to be an integer and in sync with NEXTCLOUD_UPLOAD_LIMIT|' sample.conf
sed -i 's|NEXTCLOUD_MAX_TIME=|NEXTCLOUD_MAX_TIME=3600 # This allows to change the upload time limit of the Nextcloud container|' sample.conf
sed -i 's|NEXTCLOUD_TRUSTED_CACERTS_DIR=|NEXTCLOUD_TRUSTED_CACERTS_DIR=/usr/local/share/ca-certificates/my-custom-ca # Nextcloud container will trust all the Certification Authorities, whose certificates are included in the given directory.|' sample.conf
sed -i 's|UPDATE_NEXTCLOUD_APPS=|UPDATE_NEXTCLOUD_APPS=no # When setting to "yes" (with quotes), it will automatically update all installed Nextcloud apps upon container startup on saturdays.|' sample.conf
sed -i 's|UPDATE_NEXTCLOUD_APPS=|UPDATE_NEXTCLOUD_APPS="no" # When setting to "yes" (with quotes), it will automatically update all installed Nextcloud apps upon container startup on saturdays.|' sample.conf
sed -i 's|SKIP_DATA_DIRECTORY_PERMISSION_CHECK=|SKIP_DATA_DIRECTORY_PERMISSION_CHECK="no" # When setting to "yes" (with quotes), it will skip the datadir permission check upon the initial Nextcloud installation.|' sample.conf
sed -i 's|APACHE_PORT=|APACHE_PORT=443 # Changing this to a different value than 443 will allow you to run it behind a web server or reverse proxy (like Apache, Nginx and else).|' sample.conf
sed -i 's|APACHE_IP_BINDING=|APACHE_IP_BINDING=0.0.0.0 # This can be changed to e.g. 127.0.0.1 if you want to run AIO behind a web server or reverse proxy (like Apache, Nginx and else) and if that is running on the same host and using localhost to connect|' sample.conf
sed -i 's|TALK_PORT=|TALK_PORT=3478 # This allows to adjust the port that the talk container is using.|' sample.conf
@@ -133,7 +133,7 @@ networks:
NETWORK
cat containers.yml > latest.yml
sed -i "/image:/s/$/:\${IMAGE_TAG}/" latest.yml
sed -i "/image:/s/$/:latest/" latest.yml
rm containers.yml

View File

@@ -16,7 +16,7 @@ The only way to fix this on your side is upgrading regularly (e.g. by enabling d
sudo docker run --rm -v /var/run/docker.sock:/var/run/docker.sock assaflavie/runlike -p nextcloud-aio-nextcloud >> /tmp/nextcloud-aio-nextcloud
sudo chown root:root /tmp/nextcloud-aio-nextcloud
```
1. Now open the file with e.g. nano: `sudo nano /tmp/nextcloud-aio-nextcloud` and change the line that should probably be `nextcloud/aio-nextcloud:latest` on x64 or `nextcloud/aio-nextcloud:latest-arm64` on arm64 to the highest compatible PHP version: E.g. `nextcloud/aio-nextcloud:php8.0-latest` on x64 or `nextcloud/aio-nextcloud:php8.0-latest-arm64` on arm64. Then save the file and close it with `[Ctrl]+[o]` -> `[Enter]` and `[Ctrl]+[x]`.
1. Now open the file with e.g. nano: `sudo nano /tmp/nextcloud-aio-nextcloud` and change the line that should probably be `nextcloud/aio-nextcloud:latest` on x64 or `nextcloud/aio-nextcloud:latest-arm64` on arm64 to the highest compatible PHP version: E.g. `nextcloud/aio-nextcloud:php8.0-latest`. Then save the file and close it with `[Ctrl]+[o]` -> `[Enter]` and `[Ctrl]+[x]`.
1. After doing so, remove the Nextcloud container with `sudo docker rm nextcloud-aio-nextcloud`.
1. Now start the Nextcloud container with the new tag by simply running `sudo bash /tmp/nextcloud-aio-nextcloud` which at startup should automatically upgrade Nextcloud to a more recent version. If not, make sure that there is no `skip.update` file in the Nextcloud datadir. If there is such a file, simply delete the file and restart the container again.<br>
**Info**: You can open the Nextcloud container logs with `sudo docker logs -f nextcloud-aio-nextcloud`.

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.
@@ -36,8 +36,10 @@ The procedure for migrating the files and the database works like this:
export PG_PASSWORD="my-temporary-password"
export PG_DATABASE="nextcloud_db"
sudo -u postgres psql <<END
CREATE USER $PG_USER WITH PASSWORD '$PG_PASSWORD';
CREATE USER $PG_USER WITH PASSWORD '$PG_PASSWORD' CREATEDB;
CREATE DATABASE $PG_DATABASE WITH OWNER $PG_USER TEMPLATE template0 ENCODING 'UTF8';
GRANT ALL PRIVILEGES ON DATABASE $PG_DATABASE TO $PG_USER;
GRANT ALL PRIVILEGES ON SCHEMA public TO $PG_USER;
END
```
1. Run the following command to start the conversion:

36
php/composer.lock generated
View File

@@ -562,16 +562,16 @@
},
{
"name": "php-di/php-di",
"version": "7.0.1",
"version": "7.0.2",
"source": {
"type": "git",
"url": "https://github.com/PHP-DI/PHP-DI.git",
"reference": "1c7f1cc9cf6f51ff7f5f44bb1fa59243fcb7474a"
"reference": "5d1a8664e24f23b25e0426bbcb1288287fb49181"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/PHP-DI/PHP-DI/zipball/1c7f1cc9cf6f51ff7f5f44bb1fa59243fcb7474a",
"reference": "1c7f1cc9cf6f51ff7f5f44bb1fa59243fcb7474a",
"url": "https://api.github.com/repos/PHP-DI/PHP-DI/zipball/5d1a8664e24f23b25e0426bbcb1288287fb49181",
"reference": "5d1a8664e24f23b25e0426bbcb1288287fb49181",
"shasum": ""
},
"require": {
@@ -619,7 +619,7 @@
],
"support": {
"issues": "https://github.com/PHP-DI/PHP-DI/issues",
"source": "https://github.com/PHP-DI/PHP-DI/tree/7.0.1"
"source": "https://github.com/PHP-DI/PHP-DI/tree/7.0.2"
},
"funding": [
{
@@ -631,7 +631,7 @@
"type": "tidelift"
}
],
"time": "2023-01-13T22:30:45+00:00"
"time": "2023-02-07T17:34:03+00:00"
},
{
"name": "php-di/slim-bridge",
@@ -1335,16 +1335,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 +1382,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 +1398,7 @@
"type": "tidelift"
}
],
"time": "2022-11-25T10:21:52+00:00"
"time": "2023-03-01T10:25:55+00:00"
},
{
"name": "symfony/polyfill-ctype",
@@ -1646,16 +1646,16 @@
},
{
"name": "twig/twig",
"version": "v3.5.0",
"version": "v3.5.1",
"source": {
"type": "git",
"url": "https://github.com/twigphp/Twig.git",
"reference": "3ffcf4b7d890770466da3b2666f82ac054e7ec72"
"reference": "a6e0510cc793912b451fd40ab983a1d28f611c15"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/twigphp/Twig/zipball/3ffcf4b7d890770466da3b2666f82ac054e7ec72",
"reference": "3ffcf4b7d890770466da3b2666f82ac054e7ec72",
"url": "https://api.github.com/repos/twigphp/Twig/zipball/a6e0510cc793912b451fd40ab983a1d28f611c15",
"reference": "a6e0510cc793912b451fd40ab983a1d28f611c15",
"shasum": ""
},
"require": {
@@ -1706,7 +1706,7 @@
],
"support": {
"issues": "https://github.com/twigphp/Twig/issues",
"source": "https://github.com/twigphp/Twig/tree/v3.5.0"
"source": "https://github.com/twigphp/Twig/tree/v3.5.1"
},
"funding": [
{
@@ -1718,7 +1718,7 @@
"type": "tidelift"
}
],
"time": "2022-12-27T12:28:18+00:00"
"time": "2023-02-08T07:49:20+00:00"
}
],
"packages-dev": [],

View File

@@ -21,6 +21,12 @@
"type": "string"
}
},
"cap_add": {
"type": "array",
"items": {
"type": "string"
}
},
"depends_on": {
"type": "array",
"items": {

View File

@@ -160,7 +160,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%",
"SKIP_DATA_DIRECTORY_PERMISSION_CHECK=%SKIP_DATA_DIRECTORY_PERMISSION_CHECK%"
],
"restart": "unless-stopped",
"devices": [
@@ -240,14 +241,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 +318,9 @@
],
"devices": [
"/dev/fuse"
],
"cap_add": [
"SYS_ADMIN"
]
},
{
@@ -412,7 +414,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.7.7@e028ba46ba0d7f9a78bc3201c251e137383e145f"/>

View File

@@ -23,6 +23,8 @@ class Container {
private array $secrets;
/** @var string[] */
private array $devices;
/** @var string[] */
private array $capAdd;
private DockerActionManager $dockerActionManager;
public function __construct(
@@ -38,6 +40,7 @@ class Container {
array $dependsOn,
array $secrets,
array $devices,
array $capAdd,
DockerActionManager $dockerActionManager
) {
$this->identifier = $identifier;
@@ -52,6 +55,7 @@ class Container {
$this->dependsOn = $dependsOn;
$this->secrets = $secrets;
$this->devices = $devices;
$this->capAdd = $capAdd;
$this->dockerActionManager = $dockerActionManager;
}
@@ -83,6 +87,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,11 @@ class ContainerDefinitionFetcher
$devices = $entry['devices'];
}
$capAdd = [];
if (isset($entry['cap_add'])) {
$capAdd = $entry['cap_add'];
}
$containers[] = new Container(
$entry['container_name'],
$displayName,
@@ -226,6 +231,7 @@ class ContainerDefinitionFetcher
$dependsOn,
$secrets,
$devices,
$capAdd,
$this->container->get(DockerActionManager::class)
);
}

View File

@@ -453,10 +453,12 @@ class ConfigurationManager
throw new InvalidSettingConfigurationException(DataConst::GetDataDirectory() . " does not exist! Something was set up falsely!");
}
$df = disk_free_space(DataConst::GetDataDirectory());
if ($df !== false && (int)$df < 10240) {
$content = json_encode($config, JSON_UNESCAPED_SLASHES|JSON_PRETTY_PRINT);
$size = strlen($content) + 10240;
if ($df !== false && (int)$df < $size) {
throw new InvalidSettingConfigurationException(DataConst::GetDataDirectory() . " does not have enough space for writing the config file! Not writing it back!");
}
file_put_contents(DataConst::GetConfigFile(), json_encode($config, JSON_UNESCAPED_SLASHES|JSON_PRETTY_PRINT));
file_put_contents(DataConst::GetConfigFile(), $content);
}
private function GetEnvironmentalVariableOrConfig(string $envVariableName, string $configName, string $defaultValue) : string {
@@ -734,6 +736,14 @@ class ConfigurationManager
return false;
}
public function shouldDataDirectoryPermissionCheckGetSkipped() : bool {
$datadir = $this->GetNextcloudDatadirMount();
if ($datadir === 'nextcloud_aio_nextcloud_datadir' || str_starts_with($datadir, '/run/desktop/mnt/host/')) {
return true;
}
return false;
}
public function GetNextcloudStartupApps() : string {
$apps = getenv('NEXTCLOUD_STARTUP_APPS');
if (is_string($apps)) {

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] === 'SKIP_DATA_DIRECTORY_PERMISSION_CHECK') {
if ($this->configurationManager->shouldDataDirectoryPermissionCheckGetSkipped()) {
$replacements[1] = 'yes';
} else {
$replacements[1] = '';
}
} else {
$secret = $this->configurationManager->GetSecret($out[1]);
if ($secret === "") {
@@ -372,6 +378,7 @@ class DockerActionManager
$portWithProtocol = $value->port . '/' . $value->protocol;
$exposedPorts[$portWithProtocol] = null;
}
$requestBody['HostConfig']['NetworkMode'] = 'nextcloud-aio';
} else {
$requestBody['HostConfig']['NetworkMode'] = 'host';
}
@@ -404,9 +411,13 @@ class DockerActionManager
$requestBody['HostConfig']['Devices'] = $devices;
}
$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
@@ -622,11 +633,11 @@ class DockerActionManager
}
}
public function DisconnectContainerFromNetwork(Container $container) : void
private function DisconnectContainerFromBridgeNetwork(string $id) : void
{
$url = $this->BuildApiUrl(
sprintf('networks/%s/disconnect', 'nextcloud-aio')
sprintf('networks/%s/disconnect', 'bridge')
);
try {
@@ -635,12 +646,11 @@ class DockerActionManager
$url,
[
'json' => [
'container' => $container->GetIdentifier(),
'container' => $id,
],
]
);
} catch (RequestException $e) {
error_log('Could not disconnect container from network ' . $e->getMessage());
}
}
@@ -663,7 +673,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'
]
]
]
@@ -699,6 +710,7 @@ class DockerActionManager
public function ConnectMasterContainerToNetwork() : void
{
$this->ConnectContainerIdToNetwork('nextcloud-aio-mastercontainer', '');
$this->DisconnectContainerFromBridgeNetwork('nextcloud-aio-mastercontainer');
}
public function ConnectContainerToNetwork(Container $container) : void

View File

@@ -16,7 +16,7 @@
</header>
<div class="content">
<h1>Nextcloud AIO v4.3.2</h1>
<h1>Nextcloud AIO v4.6.0</h1>
{# Add 2nd tab warning #}
<script type="text/javascript" src="second-tab-warning.js"></script>
@@ -24,14 +24,10 @@
{% set isAnyRunning = false %}
{% set isAnyRestarting = false %}
{% set isWatchtowerRunning = false %}
{% set isRestoreRunning = false %}
{% set isBackupOrRestoreRunning = false %}
{% set isApacheStarting = false %}
{% 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 %}
@@ -165,7 +161,8 @@
An example for Linux is <b>/mnt/backup</b>.<br>
On Synology it could be <b>/volume1/docker/nextcloud/backup</b>.<br>
For macOS it may be <b>/var/backup</b>.<br>
On Windows it must be <b>nextcloud_aio_backupdir</b>. You need to create the 'nextcloud_aio_backupdir' volume beforehand by following this documentation: <a href="https://github.com/nextcloud/all-in-one#how-to-run-aio-on-windows"><b>click here</b></a><br><br>
On Windows it might be <b>/run/desktop/mnt/host/c/backup</b>. (This path is equivalent to 'C:\backup' on your Windows host so you need to translate the path accordingly. Hint: the path that you enter needs to start with '/run/desktop/mnt/host/'. Append to that the exact location on your windows host, e.g. 'c/backup' which is equivalent to 'C:\backup'.)<br>
Another option is to enter a specific volume name here: <b>nextcloud_aio_backupdir</b>. This volume needs to be created beforehand manually by you in order to be able to use it.<br><br>
⚠️ Please note that the backup archive must be located in a subfolder of the folder that you enter here and the subfolder which contains the archive must be named 'borg'. Otherwise will the backup container not find the backup archive!<br><br>
{% endif %}
{% else %}
@@ -248,7 +245,7 @@
{% 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 %}
@@ -276,10 +273,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>
@@ -328,7 +323,8 @@
An example for Linux is <b>/mnt/backup</b>.<br>
On Synology it could be <b>/volume1/docker/nextcloud/backup</b>.<br>
For macOS it may be <b>/var/backup</b>.<br>
On Windows it must be <b>nextcloud_aio_backupdir</b>. You need to create the 'nextcloud_aio_backupdir' volume beforehand by following this documentation: <a href="https://github.com/nextcloud/all-in-one#how-to-run-aio-on-windows"><b>click here</b></a><br><br>
On Windows it might be <b>/run/desktop/mnt/host/c/backup</b>. (This path is equivalent to 'C:\backup' on your Windows host so you need to translate the path accordingly. Hint: the path that you enter needs to start with '/run/desktop/mnt/host/'. Append to that the exact location on your windows host, e.g. 'c/backup' which is equivalent to 'C:\backup'.)<br>
Another option is to enter a specific volume name here: <b>nextcloud_aio_backupdir</b>. This volume needs to be created beforehand manually by you in order to be able to use it.<br><br>
{% endif %}
{% endif %}
@@ -503,9 +499,9 @@
<input type="checkbox" id="fulltextsearch" name="fulltextsearch"><label for="fulltextsearch">Fulltextsearch (needs ~1GB additional RAM)</label><br>
{% endif %}
{% if is_imaginary_enabled == true %}
<input type="checkbox" id="imaginary" name="imaginary" checked="checked"><label for="imaginary">Imaginary (for previews of heic, tiff and webp)</label><br>
<input type="checkbox" id="imaginary" name="imaginary" checked="checked"><label for="imaginary">Imaginary (for previews of heic, heif, illustrator, pdf, svg, tiff and webp)</label><br>
{% else %}
<input type="checkbox" id="imaginary" name="imaginary"><label for="imaginary">Imaginary (for previews of heic, tiff and webp)</label><br>
<input type="checkbox" id="imaginary" name="imaginary"><label for="imaginary">Imaginary (for previews of heic, heif, illustrator, pdf, svg, tiff and webp)</label><br>
{% endif %}
{% if is_talk_enabled == true %}
<input type="checkbox" id="talk" name="talk" checked="checked"><label for="talk">Nextcloud Talk (needs ports {{ talk_port }}/TCP and {{ talk_port }}/UDP open in your firewall/router)</label><br><br>

View File

@@ -19,5 +19,9 @@
{% endif %}
</div>
</div>
<script type="text/javascript" src="before-unload.js"></script>
<div id="overlay">
<div class="loader"></div>
</div>
{% endblock %}

View File

@@ -7,7 +7,7 @@ Included are:
- High performance backend for Nextcloud Files
- High performance backend for Nextcloud Talk
- Backup solution (based on [BorgBackup](https://github.com/borgbackup/borg#what-is-borgbackup))
- Imaginary (for previews of heic, tiff and webp)
- Imaginary (for previews of heic, heif, illustrator, pdf, svg, tiff and webp)
- ClamAV (Antivirus backend for Nextcloud)
- Fulltextsearch
@@ -18,10 +18,9 @@ The following instructions are meant for installations without a web server or r
curl -fsSL 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 x64 CPUs and without a web server or reverse proxy (like Apache, Nginx and else) already in place:
# For Linux and without a web server or reverse proxy (like Apache, Nginx and else) already in place:
sudo docker run \
--sig-proxy=false \
--name nextcloud-aio-mastercontainer \
@@ -33,25 +32,6 @@ The following instructions are meant for installations without a web server or r
--volume /var/run/docker.sock:/var/run/docker.sock:ro \
nextcloud/all-in-one:latest
```
<details>
<summary>Command for arm64 CPUs like the Raspberry Pi 4</summary>
```
# For arm64 CPUs and without a web server or reverse proxy (like Apache, Nginx and else) already in place:
sudo docker run \
--sig-proxy=false \
--name nextcloud-aio-mastercontainer \
--restart always \
--publish 80:80 \
--publish 8080:8080 \
--publish 8443:8443 \
--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config \
--volume /var/run/docker.sock:/var/run/docker.sock:ro \
nextcloud/all-in-one:latest-arm64
```
</details>
<details>
<summary>Explanation of the command</summary>
@@ -64,10 +44,12 @@ The following instructions are meant for installations without a web server or r
- `--publish 8443:8443` This means that port 8443 of the container should get published on the host using port 8443. If you publish port 80 and 8443 to the public internet, you can access the AIO interface via this port with a valid certificate. It is not needed if you run AIO behind a web server or reverse proxy and can get removed in that case as you can simply use port 8080 for the AIO interface then.
- `--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config` This means that the files that are created by the mastercontainer will be stored in a docker volume that is called `nextcloud_aio_mastercontainer`. This line is not allowed to be changed, since built-in backups would fail later on.
- `--volume /var/run/docker.sock:/var/run/docker.sock:ro` The docker socket is mounted into the container which is used for spinning up all the other containers and for further features. It needs to be adjusted on Windows/macOS and on docker rootless. See the applicable documentation on this. If adjusting, don't forget to also set `DOCKER_SOCKET_PATH`! If you dislike this, see https://github.com/nextcloud/all-in-one/discussions/500#discussioncomment-2740767 and the whole thread for options.
- `nextcloud/all-in-one:latest` or `nextcloud/all-in-one:latest-arm64` This is the docker container image that is used. See https://github.com/nextcloud/all-in-one/discussions/490 for why there are different images for the different CPU architectures.
- `nextcloud/all-in-one:latest` This is the docker container image that is used.
- 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>
@@ -81,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
@@ -114,22 +101,10 @@ docker run ^
nextcloud/all-in-one:latest
```
**Please note:** In order to make the built-in backup solution able to back up to the host system, you need to create a volume with the name `nextcloud_aio_backupdir` beforehand:
```
docker volume create ^
--driver local ^
--name nextcloud_aio_backupdir ^
-o device="/host_mnt/c/your/backup/path" ^
-o type="none" ^
-o o="bind"
```
(The value `/host_mnt/c/your/backup/path` in this example would be equivalent to `C:\your\backup\path` on the Windows host. So you need to translate the path that you want to use into the correct format.) ⚠️️ **Attention**: Make sure that the path exists on the host before you create the volume! Otherwise everything will bug out!
Also, you may be interested in adjusting Nextcloud's Datadir to store the files on the host system. See [this documentation](https://github.com/nextcloud/all-in-one#how-to-change-the-default-location-of-nextclouds-datadir) on how to do it.
⚠️ **Please note:** Almost all commands in this project's documentation use `sudo docker ...`. Since `sudo` is not available on Windows, you simply remove `sudo` from the commands and they should work.
### How to run AIO on Synology DSM
On Synology, there are two things different in comparison to Linux: instead of using `--volume /var/run/docker.sock:/var/run/docker.sock:ro`, you need to use `--volume /volume1/docker/docker.sock:/var/run/docker.sock:ro` to run it. You also need to add `-e DOCKER_SOCKET_PATH="/volume1/docker/docker.sock"`to the startup command. Apart from that it should work and behave the same like on Linux. Obviously the Synology Docker GUI will not work with that so you will need to either use SSH or create a user-defined script task in the task scheduler as the user 'root' in order to run the command.
@@ -172,7 +147,7 @@ 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
@@ -197,6 +172,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
@@ -229,7 +205,7 @@ Nextcloud features a built-in bruteforce protection which may get triggered and
This project values stability over new features. That means that when a new major Nextcloud update gets introduced, we will wait at least until the first patch release, e.g. `24.0.1` is out before upgrading to it. Also we will wait with the upgrade until all important apps are compatible with the new major version. Minor or patch releases for Nextcloud and all dependencies as well as all containers will be updated to new versions as soon as possible but we try to give all updates first a good test round before pushing them. That means that it can take around 2 weeks before new updates reach the `latest` channel. If you want to help testing, you can switch to the `beta` channel by following [this documentation](#how-to-switch-the-channel) which will also give you the updates earlier.
### How to switch the channel?
You can switch to a different channel like e.g. the beta channel or from the beta channel back to the latest channel by stopping the mastercontainer, removing it (no data will be lost) and recreating the container using the same command that you used initially to create the mastercontainer. For the beta channel on x64 you need to change the last line `nextcloud/all-in-one:latest` to `nextcloud/all-in-one:beta` and vice versa. For arm64 it is `nextcloud/all-in-one:latest-arm64` and `nextcloud/all-in-one:beta-arm64`, respectively.
You can switch to a different channel like e.g. the beta channel or from the beta channel back to the latest channel by stopping the mastercontainer, removing it (no data will be lost) and recreating the container using the same command that you used initially to create the mastercontainer. You simply need to change the last line `nextcloud/all-in-one:latest` to `nextcloud/all-in-one:beta` and vice versa.
### How to update the containers?
If we push new containers to `latest`, you will see in the AIO interface below the `containers` section that new container updates were found. In this case, just press `Stop containers` and `Start containers` in order to update the containers. The mastercontainer has its own update procedure though. See below. And don't forget to back up the current state of your instance using the built-in backup solution before starting the containers again! Otherwise you won't be able to restore your instance easily if something should break during the update.
@@ -256,6 +232,7 @@ Here is how to reset the AIO instance properly:
1. Stop all containers if they are running from the AIO interface
1. Stop the mastercontainer with `sudo docker stop nextcloud-aio-mastercontainer`
1. If the domaincheck container is still running, stop it with `sudo docker stop nextcloud-aio-domaincheck`
1. Check that no AIO containers are running anymore by running `sudo docker ps --format {{.Names}}`. If no `nextcloud-aio` containers are listed, you can proceed with the steps below. If there should be some, you will need to stop them with `sudo docker stop <container_name>` until no one is listed anymore.
1. Check which containers are stopped: `sudo docker ps --filter "status=exited"`
1. Now remove all these stopped containers with `sudo docker container prune`
1. Delete the docker network with `sudo docker network rm nextcloud-aio`
@@ -448,7 +425,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.
@@ -468,7 +445,8 @@ 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 must be `-e NEXTCLOUD_DATADIR="nextcloud_aio_nextcloud_datadir"`. In order to use this, you need to create the `nextcloud_aio_nextcloud_datadir` volume beforehand:
- 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 ^
--driver local ^
@@ -477,12 +455,11 @@ You can configure the Nextcloud container to use a specific directory on your ho
-o type="none" ^
-o o="bind"
```
(The value `/host_mnt/c/your/data/path` in this example would be equivalent to `C:\your\data\path` on the Windows host. So you need to translate the path that you want to use into the correct format.) ⚠️️ **Attention**: Make sure that the path exists on the host before you create the volume! Otherwise everything will bug out!
### 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>

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+)?$"
@@ -430,8 +433,6 @@ The examples below define the dynamic configuration in YAML files. If you rather
hostsProxyHeaders:
- "X-Forwarded-Host"
referrerPolicy: "same-origin"
customResponseHeaders:
X-Robots-Tag: "none"
https-redirect:
redirectscheme:
@@ -470,38 +471,22 @@ After adjusting your reverse proxy config, use the following command to start AI
(For an docker-compose example, see the example further [below](#inspiration-for-a-docker-compose-file).)
```
# For x64 CPUs:
# For Linux:
sudo docker run \
--sig-proxy=false \
--name nextcloud-aio-mastercontainer \
--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 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.
<details>
<summary>Command for arm64 CPUs like the Raspberry Pi 4</summary>
```
# For arm64 CPUs:
sudo docker run \
--sig-proxy=false \
--name nextcloud-aio-mastercontainer \
--restart always \
--publish 8080:8080 \
-e APACHE_PORT=11000 \
--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config \
--volume /var/run/docker.sock:/var/run/docker.sock:ro \
nextcloud/all-in-one:latest-arm64
```
</details>
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.
@@ -516,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
@@ -531,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!