Compare commits

...

403 Commits

Author SHA1 Message Date
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
d7dc6bdea6 try to fix initial install
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-06 18:32:14 +01:00
Simon L
847b285e41 print out install errors
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-06 18:18:52 +01:00
Simon L
d141471bcd Merge pull request #1944 from nextcloud/enh/noid/fix-install-check
fix a few problems with new install check
2023-02-06 18:11:14 +01:00
Simon L
053a8e6a88 fix a few problems with new install check
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-06 18:10:45 +01:00
Simon L
9130a242e3 increase to 4.3.2
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-06 17:32:47 +01:00
Simon L
4d8b26d2f4 Merge pull request #1941 from nextcloud/dependabot/docker/Containers/mastercontainer/php-8.1.15-fpm-alpine3.17
Bump php from 8.1.14-fpm-alpine3.17 to 8.1.15-fpm-alpine3.17 in /Containers/mastercontainer
2023-02-06 17:30:59 +01:00
Simon L
097a04f2a1 Merge pull request #1940 from nextcloud/fix/1938/fix-multiple-major-versions-update
fix the cp commands for updating between multiple major versions
2023-02-06 17:30:23 +01:00
Simon L
a36141e02f Merge pull request #1939 from nextcloud/enh/1920/add-server_name-variable
collabora - add server-name variable
2023-02-06 17:30:07 +01:00
Simon L
51d94130ab Merge pull request #1918 from nextcloud/enh/noid/fail-if-appdata-was-not-created
also fail the installation if appdata could not get created
2023-02-06 17:29:36 +01:00
dependabot[bot]
f838a99508 Bump php in /Containers/mastercontainer
Bumps php from 8.1.14-fpm-alpine3.17 to 8.1.15-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-06 12:15:44 +00:00
Simon L
20ca378b4c fix the cp commands for updating between multiple major versions
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-06 13:05:51 +01:00
Simon L
058cadb053 collabora - add server-name variable
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-06 12:52:54 +01: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
Simon L
6889568c21 Merge pull request #1927 from nextcloud/aio-yaml-update
Yaml updates
2023-02-04 14:57:33 +01:00
szaimen
5c62640551 Yaml updates
Signed-off-by: GitHub <noreply@github.com>
2023-02-04 12:14:08 +00:00
Simon L
4c06f893fc add section about docker swarm and Ppodman
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-04 11:27:33 +01:00
Simon L
a84433a6d3 Merge pull request #1933 from nextcloud/enh/noid/adjust-rp-docs
adjust reverse proxy documentation to also talk about web server
2023-02-04 11:11:12 +01:00
Simon L
ae3b121823 fix a few more places
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-04 11:10:20 +01:00
Simon L
2192ea49b2 change the order of the entry sentence
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-04 11:04:29 +01:00
Simon L
f83864764f adjust reverse proxy documentation to also talk about web server
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-04 11:00:46 +01:00
Simon L
bb64990618 Merge pull request #1924 from nextcloud/enh/noid/improve-helm-networking
helm - add type: loadbalancer and remove apache_ip_binding again
2023-02-03 16:05:12 +01:00
Simon L
2e8f9bc5fa helm - add type: loadbalancer and remove apache_ip_binding again
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-03 16:02:43 +01:00
Simon L
2fbebaae5f also add quotes to talk and collabora
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-03 14:51:56 +01:00
Simon L
be7a1910ad increase to v4.3.1
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-03 11:57:41 +01:00
Simon L
3c69aac6ca Merge pull request #1915 from nextcloud/revert-1887-enh/490/multiarch-images
Revert "get multiarch repodigest"
2023-02-03 11:54:19 +01:00
Simon L
39415276db add list manifest
Signed-off-by: Simon L <szaimen@e.mail.de>

Co-authored-by: Zoey <zoey@z0ey.de>
Signed-off-by: Simon L. <szaimen@e.mail.de>
2023-02-03 11:38:42 +01:00
Simon L
6533018c6f ports 8081 needs to be expose for the talk container
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-03 10:48:30 +01:00
Simon L
cfbfe0438c Merge pull request #1912 from nextcloud/enh/noid/update-helm-chart
Helm Chart updates
2023-02-02 19:43:39 +01:00
Simon L
e18babbbde also fail the installation if appdata could not get created
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-02 19:41:41 +01:00
Simon L
f62d3ab0f7 Merge pull request #1893 from nextcloud/enh/noid/adjust-yes-values
adjust variables correctly
2023-02-02 19:17:31 +01:00
Simon L
5a959e9b07 Revert "get multiarch repodigest"
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-02 18:27:50 +01:00
Simon L
12358321d1 re-add initContainers
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-02 17:37:19 +01:00
Simon L
91a977e09e Helm Chart updates
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-02 15:45:27 +01:00
Simon L
f5c32a1a67 expose it not needed for containers that publish ports
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-02 15:37:03 +01:00
Simon L
9fe978fbe3 Merge pull request #1900 from nextcloud/dependabot/docker/Containers/collabora/collabora/code-22.05.10.1.1
Bump collabora/code from 22.05.9.3.1 to 22.05.10.1.1 in /Containers/collabora
2023-02-02 15:33:31 +01:00
Simon L
8ded5b59dc Merge pull request #1909 from nextcloud/enh/noid/add-expose-property
add expose property to containers definition
2023-02-02 15:33:05 +01:00
Simon L
c7519e3f49 try to fix the helm-update
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-02 15:32:39 +01:00
Simon L
21492e6b9d add expose property to containers definition
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-02 15:11:40 +01:00
Simon L
b428f3d1d8 Merge pull request #1897 from nextcloud/enh/noid/helm-readonly-volumes
try to remove readonly from global volumes automatically
2023-02-02 14:04:33 +01:00
Simon L
011356343f try to remove readonly from global volumes automatically
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-02 14:03:04 +01:00
Simon L
94f7425db9 Merge pull request #1899 from nextcloud/enh/noid/fix-database-helm-permisisons
fix database helm permissions
2023-02-02 13:14:08 +01:00
Simon L
484bc235e6 fix database helm permissions
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-02 13:13:45 +01:00
Simon L
5da794a8d8 Merge pull request #1896 from nextcloud/fix/noid/chown-postgres
fix(helm): chown database volume for postgres
2023-02-02 13:13:11 +01:00
dependabot[bot]
bbfb6e5dbe Bump collabora/code in /Containers/collabora
Bumps collabora/code from 22.05.9.3.1 to 22.05.10.1.1.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-02 12:06:48 +00:00
Richard Steinmetz
10e114c5f8 fix(helm): chown database volume for postgres
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2023-02-02 12:48:36 +01:00
Simon L
26188f797d Merge pull request #1894 from nextcloud/fix/noid/nextcloud-deployment-read-only
fix(helm): don't mark ca certs volume as read only globally
2023-02-02 12:25:39 +01:00
Simon L
f8218735d1 also deleting global overwrite for apache
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-02 12:23:54 +01:00
Simon L
07aaf1fab4 adjust variables correctly
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-02 12:20:30 +01:00
Richard Steinmetz
a28806ad13 fix(helm): don't mark ca certs volume as read only globally
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2023-02-02 12:17:34 +01:00
Simon L
7053447add Merge pull request #1891 from nextcloud/fix/noid/helm-chart-sources
fix(helm): refactor sources to a string array
2023-02-02 11:51:30 +01:00
Simon L
d7b0d07c71 fix elasticsearch
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-02 11:49:25 +01:00
Richard Steinmetz
fab569a613 fix(helm): refactor sources to a string array
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2023-02-02 11:46:04 +01:00
Simon L
cc8d3f908a increase to 4.3.0
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-02 11:32:01 +01:00
Simon L
cab4a08655 Merge pull request #1890 from nextcloud/enh/1875/fix-backup-failing
fix daily backup running into conflict with elasticsearch
2023-02-02 11:30:18 +01:00
Simon L
df91f5d483 fix daily backup running into conflict with elasticsearch
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-02 11:28:29 +01:00
Simon L
c4107d1098 Merge pull request #1887 from nextcloud/enh/490/multiarch-images
get multiarch repodigest
2023-02-01 23:38:58 +01:00
Simon L
317a5b7823 Merge pull request #1889 from nextcloud/enh/noid/write-install-log
also write install log to logfile
2023-02-01 23:30:28 +01:00
Simon L
48c28d3613 get multiarch repodigest
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-01 23:19:15 +01:00
Simon L
cf38b9a73d also write install log to logfile
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-01 22:25:40 +01:00
Simon L
4ecead75b7 Merge pull request #1879 from nextcloud/enh/noid/allow-big-imaginary-images
imaginary - allow big images by default
2023-02-01 20:52:58 +01:00
Simon L
f667c92398 Merge pull request #1882 from nextcloud/dependabot/docker/Containers/imaginary/nextcloud/imaginary-20230201
Bump nextcloud/imaginary from 20230101 to 20230201 in /Containers/imaginary
2023-02-01 19:16:25 +01:00
Simon L
fb1a3fcd3b Merge pull request #1848 from nextcloud/enh/noid/improve-helm-update
Fix and improve helm update script
2023-02-01 19:04:46 +01:00
Simon L
be3798401c address review
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-01 18:58:19 +01:00
Simon L
0ea229e19a add volume permission workaround
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-01 17:04:40 +01:00
Simon L
b13a25107a Merge pull request #1883 from nextcloud/aio-dependency-update
Dependency updates
2023-02-01 13:29:27 +01:00
szaimen
bda83ffa31 dependency updates
Signed-off-by: GitHub <noreply@github.com>
2023-02-01 12:18:39 +00:00
dependabot[bot]
64458c8931 Bump nextcloud/imaginary in /Containers/imaginary
Bumps nextcloud/imaginary from 20230101 to 20230201.

---
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-02-01 12:12:49 +00:00
Simon L
c8576044b2 change chart version to v2
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-01 12:51:53 +01:00
Simon L
133b149ee3 allow to change the size of each volume separately
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-01 12:47:06 +01:00
Simon L
33fb628ce5 imaginary - allow big images by default
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-01 11:38:59 +01:00
Simon L
f90dded674 Merge pull request #1877 from nextcloud/dependabot/github_actions/docker/build-push-action-4
Bump docker/build-push-action from 3 to 4
2023-01-31 19:01:34 +01:00
Simon L
d6692f8b93 Merge pull request #1876 from nextcloud/dependabot/docker/Containers/talk/ubuntu-focal-20230126
Bump ubuntu from focal-20221130 to focal-20230126 in /Containers/talk
2023-01-31 18:59:13 +01:00
dependabot[bot]
57f182f1e5 Bump docker/build-push-action from 3 to 4
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 3 to 4.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v3...v4)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-31 12:04:52 +00:00
dependabot[bot]
7c05f18573 Bump ubuntu from focal-20221130 to focal-20230126 in /Containers/talk
Bumps ubuntu from focal-20221130 to focal-20230126.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-31 12:03:57 +00:00
Simon L
5ba7a3f86a also add libtool
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-31 00:37:43 +01:00
Simon L
8824a8471b add ghostscript fonts
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-31 00:23:23 +01:00
Simon L
b6c3a777b0 allow to adjust all volume sizes
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-30 21:52:02 +01:00
Simon L
6ece012680 Merge pull request #1865 from antipiot/patch-1
allow to copy the command to install docker
2023-01-30 20:52:21 +01:00
Jo
225ff3814d Update readme.md
Co-authored-by: Zoey <zoey@z0ey.de>
Signed-off-by: Jo <jonassauge@gmail.com>
2023-01-30 19:26:55 +01:00
Jo
e31d4f25ef Update readme.md
Co-authored-by: Simon L. <szaimen@e.mail.de>
Signed-off-by: Jo <jonassauge@gmail.com>
2023-01-30 17:55:19 +01:00
Simon L
d025ee5e57 Merge pull request #1869 from nextcloud/disallow-watchtower
Disallow Watchtower to update AIO Container (exept Mastercontainer)
2023-01-30 15:49:51 +01:00
Simon L
ef397a9df1 add linebreak
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-30 15:33:12 +01:00
Zoey
f5616cd618 Disallow Watchtower to update AIO Container (exept Mastercontainer)
See: https://containrrr.dev/watchtower/container-selection/#monitor_only

Signed-off-by: Zoey <zoey@z0ey.de>
2023-01-30 14:54:31 +01:00
Simon L
9d6690e11c Merge pull request #1868 from nextcloud/dependabot/github_actions/ludeeus/action-shellcheck-2.0.0
Bump ludeeus/action-shellcheck from 1.1.0 to 2.0.0
2023-01-30 13:58:55 +01:00
Simon L
065bb229ba Merge pull request #1867 from nextcloud/dependabot/docker/Containers/watchtower/containrrr/watchtower-1.5.3
Bump containrrr/watchtower from 1.5.1 to 1.5.3 in /Containers/watchtower
2023-01-30 13:58:19 +01:00
Simon L
69a5621c86 Merge pull request #1866 from nextcloud/dependabot/docker/Containers/apache/httpd-2.4.55-alpine3.17
Bump httpd from 2.4.54-alpine3.17 to 2.4.55-alpine3.17 in /Containers/apache
2023-01-30 13:58:01 +01:00
dependabot[bot]
fb411120c1 Bump ludeeus/action-shellcheck from 1.1.0 to 2.0.0
Bumps [ludeeus/action-shellcheck](https://github.com/ludeeus/action-shellcheck) from 1.1.0 to 2.0.0.
- [Release notes](https://github.com/ludeeus/action-shellcheck/releases)
- [Commits](https://github.com/ludeeus/action-shellcheck/compare/1.1.0...2.0.0)

---
updated-dependencies:
- dependency-name: ludeeus/action-shellcheck
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-30 12:19:48 +00:00
dependabot[bot]
abd956612d Bump containrrr/watchtower from 1.5.1 to 1.5.3 in /Containers/watchtower
Bumps containrrr/watchtower from 1.5.1 to 1.5.3.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-30 12:16:45 +00:00
dependabot[bot]
88f2b398a4 Bump httpd in /Containers/apache
Bumps httpd from 2.4.54-alpine3.17 to 2.4.55-alpine3.17.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-30 12:16:26 +00:00
Jo
3058bf03ec allow to copy the command to install docker
Signed-off-by: Jo <jonassauge@gmail.com>
2023-01-30 10:19:22 +01:00
Simon L
7d36204397 allow to adjust the volumes
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-29 11:03:18 +01:00
Simon L
83c68da0a0 fix permissions?
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-28 22:29:41 +01:00
Simon L
405162e103 Fix and improve helm update script
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-28 17:33:44 +01:00
Simon L
3102dbfaeb add curl back
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-27 21:52:37 +01:00
Zoey
4e74052c20 migrate mastercontainer to alpine (#1577) 2023-01-27 21:36:53 +01:00
Zoey
123c1be6b7 migrate apache container to alpine (#1573) 2023-01-27 19:43:55 +01:00
Simon L
7a126a96d9 svg does not work with imaginary in my testing
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-27 18:57:35 +01:00
Simon L
98f688a63a Merge pull request #1845 from nextcloud/enh/noid/accept-new-oci-format
also accept application/vnd.oci.image.index.v1+json for newer buildx …
2023-01-27 18:36:14 +01:00
Simon L
2469461a3c also accept application/vnd.oci.image.index.v1+json for newer buildx versions
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-27 18:33:28 +01:00
Simon L
ccf8904c0a Merge pull request #1835 from nextcloud/enh/noid/imaginary-add-mimetypes
imaginary - allow further mimetypees out-of-the-box
2023-01-27 15:38:57 +01:00
Simon L
f5722897e5 imaginary - allow further mimetypees out-of-the-box
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-27 15:12:42 +01:00
Simon L
578f02a818 Merge pull request #1843 from nextcloud/enh/noid/improve-cloudflare-upload-limit
make cloudflare upload limit for explicit
2023-01-27 14:17:32 +01:00
Simon L
4fd54aa53e make cloudflare upload limit for explicit
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-27 13:55:15 +01:00
Simon L
a96b7314bd Merge pull request #1840 from nextcloud/dependabot/docker/Containers/collabora/collabora/code-22.05.9.3.1
Bump collabora/code from 22.05.9.2.1 to 22.05.9.3.1 in /Containers/collabora
2023-01-26 23:40:17 +01:00
Simon L
b963126a40 Merge pull request #1839 from tyleraharrison/patch-1
follow-links should be follow-link
2023-01-26 23:39:45 +01:00
Simon L
6179f7a609 fix other places as well
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-26 23:39:00 +01:00
dependabot[bot]
097cc33105 Bump collabora/code in /Containers/collabora
Bumps collabora/code from 22.05.9.2.1 to 22.05.9.3.1.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-26 12:05:01 +00:00
tyleraharrison
56a642163a Fix typo in migration.md
`--get-links` -> `--get-link`

Signed-off-by: tyleraharrison <tyleraharrison@gmail.com>
2023-01-26 03:51:36 -06:00
Simon L
91ea705d34 Merge pull request #1834 from nextcloud/enh/noid/add-clamav-explanation
add explanation for clamav
2023-01-25 15:55:54 +01:00
Simon L
d2efe324af Merge pull request #1754 from nextcloud/rework-traefik-example
Rework the traefik example
2023-01-25 14:07:47 +01:00
hunhejj
abd0dc1f09 Add disclaimer
Signed-off-by: hunhejj <hunhejj@gmail.com>

Update reverse-proxy.md
2023-01-25 13:32:25 +01:00
hunhejj
841f6596aa Fixup documentation
Signed-off-by: hunhejj <hunhejj@gmail.com>
2023-01-25 13:31:40 +01:00
hunhejj
b3477bad1b Rework the Traefik example
Make the Traefik example more complete.

Signed-off-by: hunhejj <hunhejj@gmail.com>
2023-01-25 13:31:40 +01:00
Simon L
7bad651a76 add explanation for clamav
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-25 12:48:49 +01:00
Simon L
df67a13198 add direct link for Synology
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-24 13:58:20 +01:00
Simon L
754c374a38 Merge pull request #1831 from nextcloud/aio-dependency-update
Dependency updates
2023-01-24 13:41:17 +01:00
szaimen
de79b71684 dependency updates
Signed-off-by: GitHub <noreply@github.com>
2023-01-24 12:17:14 +00:00
Simon L
a3793296de Merge pull request #1830 from nextcloud/dependabot/docker/Containers/mastercontainer/docker-20.10.23-dind
Bump docker from 20.10.22-dind to 20.10.23-dind in /Containers/mastercontainer
2023-01-24 13:08:16 +01:00
dependabot[bot]
62bf50d160 Bump docker in /Containers/mastercontainer
Bumps docker from 20.10.22-dind to 20.10.23-dind.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-24 12:05:56 +00:00
Simon L
1e6787cb64 Merge pull request #1584 from nextcloud/enh/1396/update-postgres
upgrade postgres to 15
2023-01-24 12:55:47 +01:00
Simon L
4a1b8ea45c Merge pull request #1785 from nextcloud/fix/1783/fix-clamav-on-arm64
clamav should never be enabled on arm64
2023-01-24 12:55:25 +01:00
Simon L
4a6b078c97 Merge pull request #1816 from nextcloud/enh/1569/recognize
remove gcompat again as it seems to break recognize
2023-01-24 12:53:45 +01:00
Simon L
fa48707a0d Merge pull request #1817 from nextcloud/enh/588/add-backup-app-requirements
add libpg-dev and pgsql for backup app
2023-01-24 12:53:21 +01:00
Simon L
6ae1222feb Merge pull request #1823 from nextcloud/enh/noid/composer-add-minor-version-back
composer - add back the minor versions instead of wildcards
2023-01-24 12:52:57 +01:00
Simon L
d7cb7ed13e Merge pull request #1794 from nextcloud/dependabot/docker/Containers/redis/redis-7.0.8-alpine
Bump redis from 7.0.7-alpine to 7.0.8-alpine in /Containers/redis
2023-01-24 12:52:26 +01:00
Simon L
ed73d4f75d Merge pull request #1791 from nextcloud/enh/noid/omit-dind-version
change dind image to omit the alpine version
2023-01-24 12:51:56 +01:00
FreDTV
7f03b4efda Add Synology instructions (#1813) 2023-01-24 12:49:09 +01:00
Simon L
b2fe902cd3 Merge pull request #1825 from nextcloud/enh/noid/add-storage-options
add section about storage options
2023-01-24 12:31:16 +01:00
Simon L
c09f9f6178 add hint about changing Nextcloud's Datadir in additional places
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-24 12:17:15 +01:00
Simon L
2758bea52e Merge pull request #1822 from DenuxPlays/denux/increase_buffer_size
increase H2WindowSize limit (Reverse Proxy documentation)
2023-01-24 11:58:04 +01:00
Simon L
1aafd9f974 Merge pull request #1818 from nextcloud/enh/noid/disrecommended-providers
Add a disrecommended VPS providers section
2023-01-24 11:57:15 +01:00
Simon L
a9c258ea63 Merge pull request #1827 from nextcloud/enh/noid/add-recommended-providers
add section about recommended vps
2023-01-24 11:56:43 +01:00
Simon L
a96cae9035 add section about storage options
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-24 11:42:19 +01:00
Simon L
aa97096948 add section about recommended vps
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-24 11:37:08 +01:00
Simon L
1035314023 Add a disrecommended VPS providers section
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-24 11:34:30 +01:00
Simon L
b664f7c143 Merge pull request #1820 from nextcloud/npm-docs
update npm docs
2023-01-24 11:32:49 +01:00
Simon L
adee1abf32 Merge pull request #1819 from nextcloud/enh/noid/improve-cloudflare-collabora-docs
cloudflare - improve hint regarding cloudflare
2023-01-24 11:30:57 +01:00
Simon L
376369d924 Merge pull request #1812 from nextcloud/nginx-proxy-docs-change
nginx proxy docs changes
2023-01-24 11:13:16 +01:00
Simon L
ba740e5a36 Merge pull request #1826 from nextcloud/automated/noid/psalm-baseline-update-1674534084
Update psalm-baseline.xml
2023-01-24 11:10:17 +01:00
Simon L
56f0cfd914 fix psalm
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-24 11:07:08 +01:00
nextcloud-command
d3794f5f88 Update psalm baseline
Signed-off-by: GitHub <noreply@github.com>
2023-01-24 04:21:24 +00:00
Simon L
205b2c00be composer - add back the minor versions instead of wildcards
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-22 19:32:19 +01:00
-Denux
43227cf6f7 undo nginx changes (handled in seperated pr)
Signed-off-by: -Denux <83671398+DenuxPlays@users.noreply.github.com>
2023-01-22 17:39:06 +01:00
-Denux
8227207490 increased H2WindowSize limit
Signed-off-by: -Denux <83671398+DenuxPlays@users.noreply.github.com>
2023-01-22 17:32:06 +01:00
Zoey
9396264c92 update npm docs
Signed-off-by: Zoey <zoey@z0ey.de>
2023-01-21 23:44:02 +01:00
Simon L
9f985186d5 cloudflare - improve hint regarding cloudflare
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-21 16:33:01 +01:00
Simon L
7080ac9832 add libpg-dev and pgsql for backup app
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-21 15:20:46 +01:00
Simon L
ea0d70fb0f remove gcompat again as it seems to break recognize
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-21 15:09:54 +01:00
Simon L
bcdcab4d8a clamav should never be enabled on arm64
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-21 00:40:28 +01:00
Zoey
b50dcb669e nginx proxy docs changes
- add more proxy headers
- change client_body_buffer_size
- enable ssl_early_data

Signed-off-by: Zoey <zoey@z0ey.de>
2023-01-19 20:44:10 +01:00
Simon L
570b4820f8 Merge pull request #1809 from nextcloud/nginx-timeout-note
note on proxy_read_timeout
2023-01-19 19:03:59 +01:00
Zoey
77922954b4 add suggestion
Signed-off-by: Zoey <zoey@z0ey.de>
2023-01-19 17:33:35 +01:00
Zoey
e845fd24a2 note on proxy_read_timeout
Signed-off-by: Zoey <zoey@z0ey.de>
2023-01-19 16:43:38 +01:00
Simon L
946e214eb4 Merge pull request #1803 from nextcloud/enh/1801/docker-socket-path
adjust macOS docs about DOCKER_SOCKET_PATH
2023-01-18 21:35:09 +01:00
Simon L
3b1334324d adjust macOS docs about DOCKER_SOCKET_PATH
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-18 20:54:50 +01:00
Simon L
d5216d3978 update 2nd screenshot of synology RP
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-18 19:48:08 +01:00
Simon L
f80812f1dc Merge pull request #1799 from nextcloud/strato-note
Add note on Strato
2023-01-18 17:45:55 +01:00
Zoey
324edf43c1 add suggestion
Signed-off-by: Zoey <zoey@z0ey.de>
2023-01-18 17:17:29 +01:00
Zoey
7a18f865fe add note on strato vps
Signed-off-by: Zoey <zoey@z0ey.de>
2023-01-18 16:29:13 +01:00
dependabot[bot]
0c73019092 Bump redis from 7.0.7-alpine to 7.0.8-alpine in /Containers/redis
Bumps redis from 7.0.7-alpine to 7.0.8-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-01-18 12:04:58 +00:00
Simon L
98cf71861f change dind image to omit the alpine version
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-17 23:23:37 +01:00
Simon L
5d3c858064 Revert "change dind image to omit the alpine version"
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-17 23:23:15 +01:00
Simon L
9645abcecc change dind image to omit the alpine version
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-17 23:22:40 +01:00
Simon L
a415d71013 add a few more hints regarding the chosen NEXTCLOUD_DATADIR in migration.md
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-17 19:50:31 +01:00
Simon L
e4438bffcb change command for texteditor instructions as well
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-17 19:49:55 +01:00
ManOki
4c691debf5 add docker cp command to prevent host file paths like /_data/ (#1773) 2023-01-17 18:22:37 +01:00
Simon L
7c3ac06b49 add new commands
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-17 16:19:48 +01:00
Simon L
9065e07a23 upgrade postgres to 15
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-17 15:44:45 +01:00
Simon L
b249e02d53 Merge pull request #1781 from nextcloud/enh/noid/update-nc
update Nextcloud to 25.0.3
2023-01-17 11:20:30 +01:00
Simon L
a09620cf53 update Nextcloud to 25.0.3
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-17 11:13:58 +01:00
Simon L
6a13cc2e2e Merge pull request #1777 from meonkeys/patch-1
readme: clarify OS package env var
2023-01-17 10:36:18 +01:00
Simon L
b24024f456 adjust links
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-17 10:29:46 +01:00
Adam Monsen
455ada94e6 readme: clarify OS package env var
Signed-off-by: Adam Monsen <haircut@gmail.com>
2023-01-16 21:57:58 -08:00
Simon L
912dfdb982 Merge pull request #1776 from DenuxPlays/denux/reverse_proxy_improvement
Prevent slow upload speeds (Reverse Proxy documentation)
2023-01-16 18:08:46 +01:00
-Denux
843168fefe Apply suggestions from code review
Co-authored-by: Simon L. <szaimen@e.mail.de>
Signed-off-by: -Denux <83671398+DenuxPlays@users.noreply.github.com>
2023-01-16 17:15:09 +01:00
-Denux
04466f0c42 added h2 window size 2023-01-16 17:05:40 +01:00
Simon L
39d12e8766 Merge pull request #1774 from nextcloud/enh/noid/improve-sudo-docs
add note on sudo for windows and docker rootless
2023-01-16 16:49:29 +01:00
Simon L
cace2c0414 add note on sudo for windows and docker rootless
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-16 16:40:54 +01:00
Simon L
59cd8a13a8 Merge pull request #1772 from nextcloud/enh/noid/clouflare-talk-hpb-note
cloudflare - add note about the hpb for talk
2023-01-16 09:14:53 +01:00
Simon L
332880d90a cloudflare - add note about the hpb for talk
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-15 23:30:38 +01:00
Simon L
0a432d4d5b Merge pull request #1771 from nextcloud/enh/noid/cloudflare-cert-issuing
cloudflare - add note about possible problems with cert issuing
2023-01-15 23:28:35 +01:00
Simon L
bcf9e65116 cloudflare - add note about possible problems with cert issuing
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-15 23:24:56 +01:00
Simon L
ee77c2ec22 Merge pull request #1770 from nextcloud/enh/noid/cloudflare-hsts-header
cloudflare - add note about missing hsts header
2023-01-15 23:22:56 +01:00
Simon L
05500e6f31 Merge pull request #1769 from nextcloud/enh/noid/cloudflare-domain-validation
add further note about cloudflare and domain validation
2023-01-15 23:22:44 +01:00
Simon L
c9e2327cf2 cloudflare - add note about missing hsts header
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-15 23:06:32 +01:00
Simon L
fa88ec3598 add further note about cloudflare and domain validation
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-15 23:01:45 +01:00
Simon L
8f270db5d6 increase to 4.2.0
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-15 18:50:34 +01:00
Simon L
27060ec992 Merge pull request #1578 from nextcloud/enh/205/migrate-borg
migrate borgbackup container to alpine
2023-01-15 18:30:53 +01:00
Simon L
ab3ef06581 migrate borgbackup to alpine
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-15 18:27:12 +01:00
Simon L
1eac2fc9c3 Merge pull request #1767 from nextcloud/enh/noid/alpine-update
alpine - remove the update arg
2023-01-15 18:25:51 +01:00
Simon L
de3ec19221 alpine - remove the update arg
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-15 18:22:31 +01:00
Simon L
af3d99dafc Merge pull request #1764 from nextcloud/enh/noid/make-reverse-proxy-more-verbose
make more verbose that reverse proxy setup is different
2023-01-15 18:18:14 +01:00
Simon L
bd2b4dc65e Merge pull request #1763 from nextcloud/enh/noid/change-docker-install-notes
change instructions on how to install docker
2023-01-15 18:17:42 +01:00
Simon L
9bc465bd0a Merge pull request #1585 from nextcloud/enh/1396/update-redis
update redis to v7
2023-01-15 17:57:09 +01:00
Simon L
5a266bcaae Merge pull request #1736 from nextcloud/enh/noid/borg-prefix
borg - substitute prefix with glob-archives
2023-01-15 17:56:49 +01:00
Simon L
1e6e01b8a5 update redis to v7
Signed-off-by: Simon L <szaimen@e.mail.de>
Co-Authored-By: Zoey <zoey@z0ey.de>
2023-01-15 17:53:18 +01:00
Simon L
71700fadb7 Merge pull request #1755 from nextcloud/aio-dependency-update
Dependency updates
2023-01-15 17:48:13 +01:00
Simon L
c7b5c346aa exclusion of some dependencies is not needed anymore
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-15 17:46:38 +01:00
Simon L
2e70efc610 make more verbose that reverse proxy setup is different
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-15 15:08:00 +01:00
Simon L
8560570ef9 change instructions on how to install docker
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-15 15:06:35 +01:00
Simon L
c2f3a26be0 add cloudflare notes to bug-report template
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-15 14:40:17 +01:00
szaimen
7b8476ed54 dependency updates
Signed-off-by: GitHub <noreply@github.com>
2023-01-15 12:13:38 +00:00
Simon L
55116a9608 Merge pull request #1750 from nextcloud/cloudflare-notes
Add Notes on Cloudflare to readme
2023-01-14 22:36:24 +01:00
Zoey
d47f1bc403 Update readme.md
Signed-off-by: Zoey <zoey@z0ey.de>
2023-01-14 22:00:59 +01:00
Zoey
ca685e4de2 add suggestion
Co-authored-by: Simon L. <szaimen@e.mail.de>
Signed-off-by: Zoey <zoey@z0ey.de>
2023-01-14 22:00:36 +01:00
Simon L
38d7ae8cbe Merge pull request #1756 from nextcloud/enh/1744/add-datadir-hint
add a hint that NEXTCLOUD_DATADIR needs to be specified before the fi…
2023-01-14 19:00:20 +01:00
Simon L
9d60d06693 add a hint that NEXTCLOUD_DATADIR needs to be specified before the first starutp
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-14 13:32:34 +01:00
Simon L
37ece73dc2 Merge pull request #1741 from hunhejj/patch-4
Rewrite Traefik examples using YAML
2023-01-14 11:10:41 +01:00
hunhejj
bd68ff4c86 Add hint for using a YAML to TOML converter
Signed-off-by: hunhejj <hunhejj@gmail.com>
2023-01-14 10:24:01 +01:00
Zoey
c58ffa2d51 Add Notes on Cloudflare to readme
Signed-off-by: Zoey <zoey@z0ey.de>
2023-01-13 21:48:38 +01:00
Simon L
54aba036bd Merge pull request #1743 from nextcloud/enh/noid/update-dependencies
fix dependency-update workflow
2023-01-13 15:22:59 +01:00
Simon L
b762104e23 update shellcheck version
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-13 15:22:12 +01:00
Simon L
5beb3965bf try to fix dependency-update workflow
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-13 15:17:27 +01:00
Simon L
fb91f72c43 Merge pull request #1742 from nextcloud/enh/1734/sig-proxy
add an explanation of `--sig-proxy=false`
2023-01-13 14:25:27 +01:00
Simon L
065e7043ee add an explanation of --sig-proxy=false
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-13 12:46:31 +01:00
hunhejj
ccfd840a06 Codestyle fix
Signed-off-by: hunhejj <hunhejj@gmail.com>
2023-01-13 09:01:03 +01:00
hunhejj
a0fe0bbaeb Rewrite Traefik examples using yml config
Signed-off-by: hunhejj <hunhejj@gmail.com>
2023-01-13 08:58:31 +01:00
Simon L
8b86294936 borg - substitute prefix with glob-archives
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-12 23:56:41 +01:00
Simon L
b5f9c860b5 Merge pull request #1732 from ManOki/redis_warning_hint
redis: add hint to wiki if overcommit disabled
2023-01-12 23:33:37 +01:00
Simon L
b128dbd6a2 Merge pull request #1733 from hunhejj/patch-3
Fix the Traefik example
2023-01-12 23:26:08 +01:00
Simon L
b1f1b47b25 improve the pr message of helm-update
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-12 23:10:19 +01:00
hunhejj
a914a29c26 Add the X-Robots-Tag to the response header
Signed-off-by: hunhejj <hunhejj@gmail.com>
2023-01-12 21:00:55 +01:00
hunhejj
afb231bc9a Migrate deprecated sslRedirect
Signed-off-by: hunhejj <hunhejj@gmail.com>
2023-01-12 20:51:04 +01:00
ManOki
f7cc065ac9 Update Containers/redis/start.sh, add quotes
Co-authored-by: Zoey <zoey@z0ey.de>
Signed-off-by: ManOki <ManOki@users.noreply.github.com>
2023-01-12 20:32:55 +01:00
ManOki
0ca8a8bfbc Update Containers/redis/start.sh, add quotes
Co-authored-by: Zoey <zoey@z0ey.de>
Signed-off-by: ManOki <ManOki@users.noreply.github.com>
2023-01-12 20:32:47 +01:00
ManOki
af165ea504 Update Containers/redis/start.sh, add quotes
Co-authored-by: Zoey <zoey@z0ey.de>
Signed-off-by: ManOki <ManOki@users.noreply.github.com>
2023-01-12 20:32:40 +01:00
ManOki
438a8547b4 redis: add hint to wiki if overcommit disabled
Signed-off-by: ManOki <ManOki@users.noreply.github.com>
2023-01-12 20:16:02 +01:00
Simon L
d66002a409 Merge pull request #1708 from nextcloud/fix/1702/fix-enabling-apps
fix the apps not getting enabled on migration
2023-01-12 14:42:42 +01:00
Simon L
6eeba9d9cb the helm chart should be at 4.0.1 currently
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-12 14:15:58 +01:00
Simon L
8281abec33 address review
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-12 13:59:10 +01:00
Simon L
514652f8c3 Merge pull request #1706 from nextcloud/enh/noid/improve-logout-button
fix to position of the log-out button
2023-01-12 13:58:08 +01:00
Simon L
8f48ed59d5 Merge pull request #1696 from nextcloud/enh/1677/improve-cloudflare
Add hint about Cloudflare Rocket Loader and Rename Cloudflare Argo Tu…
2023-01-12 13:57:49 +01:00
Simon L
c03fde1ebd Merge pull request #1695 from nextcloud/enh/1694/improve-fts
allow to make fulltextsearch:index issues easier to debug
2023-01-12 13:56:02 +01:00
Simon L
6b3d346530 Merge pull request #1689 from nextcloud/dependabot/docker/Containers/nextcloud/php-8.0.27-fpm-alpine3.16
Bump php from 8.0.26-fpm-alpine3.16 to 8.0.27-fpm-alpine3.16 in /Containers/nextcloud
2023-01-12 13:55:24 +01:00
Simon L
0badbda49b Merge pull request #1688 from nextcloud/dependabot/docker/Containers/mastercontainer/php-8.1.14-apache-bullseye
Bump php from 8.1.13-apache-bullseye to 8.1.14-apache-bullseye in /Containers/mastercontainer
2023-01-12 13:55:08 +01:00
Simon L
06d3f3b52e Merge pull request #1710 from nextcloud/dependabot/docker/Containers/watchtower/alpine-3.17.1
Bump alpine from 3.16.3 to 3.17.1 in /Containers/watchtower
2023-01-12 13:54:40 +01:00
Simon L
33fa8ef9b3 Merge pull request #1711 from nextcloud/dependabot/docker/Containers/domaincheck/alpine-3.17.1
Bump alpine from 3.16.3 to 3.17.1 in /Containers/domaincheck
2023-01-12 13:54:19 +01:00
Simon L
8685cafe2e Merge pull request #1721 from nextcloud/dependabot/docker/Containers/apache/debian-bullseye-20230109-slim
Bump debian from bullseye-20221219-slim to bullseye-20230109-slim in /Containers/apache
2023-01-12 13:54:01 +01:00
Simon L
afb4776c21 Merge pull request #1722 from nextcloud/dependabot/docker/Containers/borgbackup/debian-bullseye-20230109-slim
Bump debian from bullseye-20221219-slim to bullseye-20230109-slim in /Containers/borgbackup
2023-01-12 13:53:48 +01:00
Simon L
49db3868ef Merge pull request #1726 from hunhejj/patch-2
Remove the reference to an unknown middleware
2023-01-11 18:45:30 +01:00
hunhejj
55047a9da7 Remove the reference to an unknown middleware
Signed-off-by: hunhejj <hunhejj@gmail.com>
2023-01-11 18:40:46 +01:00
Simon L
8984a7063b Merge pull request #1719 from hunhejj/patch-1
Fix the middleware name in the Traefik doc
2023-01-11 17:31:14 +01:00
dependabot[bot]
c843f2a59a Bump debian in /Containers/apache
Bumps debian from bullseye-20221219-slim to bullseye-20230109-slim.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-11 12:10:19 +00:00
dependabot[bot]
e0ed1ee554 Bump debian in /Containers/borgbackup
Bumps debian from bullseye-20221219-slim to bullseye-20230109-slim.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-11 12:10:19 +00:00
hunhejj
35db5d2467 Fix the middleware name in the Traefik doc
Signed-off-by: hunhejj <hunhejj@gmail.com>
2023-01-11 10:11:09 +01:00
Simon L
32b2e6d2ed Merge pull request #1716 from nextcloud/resolver-nginx-docs
add note to resolver in nginx reverse proxy docs
2023-01-11 08:04:19 +01:00
Zoey
4ea03db32e Update reverse-proxy.md
Co-authored-by: Simon L. <szaimen@e.mail.de>
Signed-off-by: Zoey <zoey@z0ey.de>
2023-01-11 06:02:46 +01:00
Zoey
1639e05338 add note to resolver in nginx reverse proxy docs
Signed-off-by: Zoey <zoey@z0ey.de>
2023-01-10 21:07:05 +01:00
dependabot[bot]
05761ce5e8 Bump alpine from 3.16.3 to 3.17.1 in /Containers/domaincheck
Bumps alpine from 3.16.3 to 3.17.1.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-10 12:05:39 +00:00
dependabot[bot]
7b567d5231 Bump alpine from 3.16.3 to 3.17.1 in /Containers/watchtower
Bumps alpine from 3.16.3 to 3.17.1.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-10 12:05:37 +00:00
Simon L
29b7515c65 allow to make fulltextsearch:index issues easier to debug
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-10 12:46:49 +01:00
Simon L
7d926de2a1 fix the apps not getting enabled on migration
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-10 12:34:16 +01:00
Simon L
16c5f601f2 fix to position of the log-out button
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-10 00:30:06 +01:00
Simon L
3738f645a4 Add hint about Cloudflare Rocket Loader and Rename Cloudflare Argo Tunnel to Cloudflare Tunnel
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-07 20:15:53 +01:00
Simon L
910b72e4c0 improve wording of bugreport template
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-07 16:23:05 +01:00
Simon L
f85b4c5f2d how to use github is not needed for AIO
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-07 16:21:34 +01:00
dependabot[bot]
16f5a30784 Bump php in /Containers/nextcloud
Bumps php from 8.0.26-fpm-alpine3.16 to 8.0.27-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-01-06 16:58:07 +00:00
dependabot[bot]
2a151b71fa Bump php in /Containers/mastercontainer
Bumps php from 8.1.13-apache-bullseye to 8.1.14-apache-bullseye.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-06 16:57:56 +00:00
Simon L
0588a3391c Merge pull request #1574 from nextcloud/helm-chart
Create Helm-chart
2023-01-06 17:56:56 +01:00
root
2c5fa27afb Create Helm-chart
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-06 16:59:32 +01:00
Simon L
0810904d41 fix token
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-05 19:32:38 +01:00
Simon L
353b65fa09 fix update-yaml as well
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-05 19:29:55 +01:00
Simon L
50ed6a1ed8 try to fix the workflow
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-05 19:28:19 +01:00
Simon L
cf35a3a391 disable ex options again
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-05 19:24:24 +01:00
Simon L
3cf99a96b2 add verbose output for update-yaml
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-05 19:20:58 +01:00
Simon L
6641cb6382 add update-helm script which makes it easier to test things
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-05 17:46:41 +01:00
Simon L
62a3740a53 improve manual-install update docs
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-05 12:11:12 +01:00
Simon L
1605431827 substitute borg --progress by borg -v
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-04 17:10:21 +01:00
Simon L
d8f24b8862 try to fix the borg check
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-04 16:49:47 +01:00
Simon L
db9f88945c increase to v4.1.0
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-04 16:22:38 +01:00
Simon L
c0e22efdbc Merge pull request #1670 from nextcloud/enh/1537/repair-integrity
allow to repair the integrity of the backup archive
2023-01-04 16:21:45 +01:00
Simon L
bc7b3c4c54 add onclick warning
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-04 16:17:04 +01:00
Simon L
6b91fb7ca2 allow to repair the integrity of the backup archive
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-04 16:17:04 +01:00
Simon L
f46f86dde6 Merge pull request #1667 from nextcloud/aio-yaml-update
Yaml updates
2023-01-04 16:07:29 +01:00
Simon L
57b5ea53e8 Merge pull request #1671 from nextcloud/enh/1662/add-talk-ulimit
add ulimit for the talk container due to a bug in libwebsockets
2023-01-04 16:03:14 +01:00
Simon L
b189e7b773 add ulimit for the talk container due to a bug in libwebsockets
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-04 16:01:33 +01:00
Simon L
480b3193d4 add a debug advice for collabora and talk
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-04 14:47:56 +01:00
Simon L
86c84de68b Merge pull request #1658 from nextcloud/enh/noid/add-totp-back
add twofactor_totp back as default enabled app
2023-01-04 14:17:09 +01:00
szaimen
c9e2b183aa Yaml updates
Signed-off-by: GitHub <noreply@github.com>
2023-01-04 12:16:14 +00:00
Simon L
39a46428c2 Merge pull request #1639 from nextcloud/aio-yaml-update
Yaml updates
2023-01-04 12:50:05 +01:00
Simon L
e047c2402b Merge pull request #1663 from nextcloud/enh/1643/set-remote-font-config-for-collabora
set remote_font_config for collabora
2023-01-04 12:32:35 +01:00
Simon L
17031c7b7f Merge pull request #1659 from nextcloud/enh/noid/devices
allow to add the /dev/dri device into the container and refactor devices
2023-01-04 12:31:13 +01:00
Simon L
34376d535f set remote_font_config for collabora
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-04 12:28:56 +01:00
Simon L
a0bbb86b13 add twofactor_totp back as default enabled app
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-03 14:42:57 +01:00
szaimen
ec0e5b645d Yaml updates
Signed-off-by: GitHub <noreply@github.com>
2023-01-03 12:15:50 +00:00
Simon L
dc74c2f94f Merge pull request #1660 from nextcloud/automated/noid/psalm-baseline-update-1672719685
[Automated] Update psalm-baseline.xml
2023-01-03 09:06:53 +01:00
nextcloud-command
5fd210f9d8 Update psalm baseline
Signed-off-by: GitHub <noreply@github.com>
2023-01-03 04:21:25 +00:00
Simon L
92b271c3e5 allow to add the /dev/dri device into the container and refactor devices
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-03 02:13:34 +01:00
Simon L
7237433548 add some documentation for the apps-disable on startup feature
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-02 23:58:25 +01:00
Simon L
32245612b9 Merge pull request #1646 from nextcloud/dependabot/docker/Containers/imaginary/nextcloud/imaginary-20230101
Bump nextcloud/imaginary from 20221201 to 20230101 in /Containers/imaginary
2023-01-02 22:41:57 +01:00
Simon L
316fd3460c Merge pull request #1654 from nextcloud/enh/noid/allow-enable-apps
allow to enable shipped apps during startup
2023-01-02 22:38:18 +01:00
Simon L
03d761b240 allow to enable shipped apps during startup
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-02 22:33:03 +01:00
Simon L
cf27112c04 Merge pull request #1604 from nextcloud/enh/noid/improve-containers-schema
improve containeers schema
2023-01-02 22:19:09 +01:00
Simon L
de1eaf7707 add isset for non-required properties
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-02 22:14:36 +01:00
Simon L
f98528eac5 rename services to aio_services_v1
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-02 22:11:20 +01:00
Simon L
29197deb69 removed not-used properties from the containers definition
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-02 22:11:20 +01:00
Simon L
57e1d95643 improve containeers schema
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-02 22:11:20 +01:00
Simon L
0ef29ffb0c Merge pull request #1657 from nextcloud/enh/noid/fix-healtchecks
fix healthcheck for nextcloud and database
2023-01-02 21:50:38 +01:00
Simon L
ed5483500a Address review
Signed-off-by: Simon L <szaimen@e.mail.de>
Co-Authored-By: Zoey <zoey@z0ey.de>
2023-01-02 21:48:55 +01:00
Simon L
54c642e787 fix healthcheck for nextcloud and database
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-02 18:16:12 +01:00
Simon L
cd06678191 Merge pull request #1655 from nextcloud/enh/noid/fix-adding-containers-to-host-network
fix adding containers to the host network
2023-01-02 17:56:50 +01:00
Simon L
454269ec5b Merge pull request #1656 from nextcloud/enh/noid/fix-exposing-containers
fix exposing containers
2023-01-02 17:55:32 +01:00
Simon L
cb980f9e84 fix exposing containers
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-02 17:53:52 +01:00
Simon L
3e8cdf16b1 Merge pull request #1645 from nextcloud/enh/noid/add-types
add types for missing ones and bring psalm-baseline down to zero
2023-01-02 17:39:00 +01:00
Simon L
5f63e90922 fix adding containers to the host network
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-02 16:42:08 +01:00
Simon L
f272979c43 address review by making $args an array
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-02 15:46:58 +01:00
Simon L
8089ab83cf add types for missing ones
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-02 13:17:41 +01:00
dependabot[bot]
5bd7070593 Bump nextcloud/imaginary in /Containers/imaginary
Bumps nextcloud/imaginary from 20221201 to 20230101.

---
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-01-02 12:10:49 +00:00
Simon L
eaabc8e4b0 Merge pull request #1635 from nextcloud/enh/noid/refactor-container-ports
refactor containerports
2022-12-30 23:15:35 +01:00
Simon L
210252825a also fix the update-yaml script
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-30 23:11:02 +01:00
Simon L
5dc9fad2d6 refactor containerports
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-30 23:10:44 +01:00
Simon L
1194b7a1ff Merge pull request #1637 from nextcloud/enh/noid/refactor-volumes
rename volume name to source and volume location to destination
2022-12-30 23:08:59 +01:00
Simon L
6dd9412fb6 rename volume name to source and volume location to destination
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-30 22:56:37 +01:00
Simon L
e535abccc7 Merge pull request #1597 from nextcloud/enh/noid/allow-to-add-host-network
allow to add container to host network
2022-12-30 21:14:25 +01:00
Simon L
cea32f50af allow to add container to host network
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-30 21:08:52 +01:00
Simon L
9c968d33b9 Merge pull request #1596 from nextcloud/enh/noid/pre-generate-secrets
secrets should only get generated if defined in secrets of container.…
2022-12-30 20:51:21 +01:00
Simon L
209d2e0f9a Merge pull request #1631 from nextcloud/automated/noid/psalm-baseline-update-1672374034
[Automated] Update psalm-baseline.xml
2022-12-30 10:49:43 +01:00
nextcloud-command
10cdcaa98f Update psalm baseline
Signed-off-by: GitHub <noreply@github.com>
2022-12-30 04:20:33 +00:00
Simon L
c21087d6d0 Merge pull request #1619 from nextcloud/change-healthchecks
change dockerfile links, add tzdata to fulltext, migrate healthchecks to nc
2022-12-29 16:40:28 +01:00
Zoey
88fda477c6 change dockerfile links, add tzdata to fulltext, migrate healthchecks to nc
Signed-off-by: Zoey <zoey@z0ey.de>
2022-12-29 16:38:59 +01:00
Simon L
75bea8fa1f Merge pull request #1615 from nextcloud/enh/1611/improve-healtcheck
improve healthcheck to only exit 1 if it is started
2022-12-29 16:36:22 +01:00
Simon L
91fc8e6f97 Merge pull request #1587 from nextcloud/enh/noid/update-mastercontainer-to-8.1
update mastercontainer to php 8.1
2022-12-29 14:09:12 +01:00
Simon L
03d8a7d4fe Merge pull request #1612 from nextcloud/aio-dependency-update
Dependency updates
2022-12-29 14:06:30 +01:00
Simon L
1813fc3793 Merge pull request #1622 from nextcloud/enh/1564/add-additional-output
borg - add progress back and add some additional output
2022-12-29 13:59:27 +01:00
Simon L
6cceeda738 fix the last command
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-29 13:56:36 +01:00
Simon L
e8974323aa Merge pull request #1620 from nextcloud/enh/1553/add-migration-import-docs
migration - add some documentation on limits regarding the database owner name
2022-12-29 13:51:07 +01:00
Simon L
e4214c2f1e Merge pull request #1621 from nextcloud/enh/noid/improve-database-initialization
allow to make wrong database intialization better debuggable
2022-12-29 13:50:24 +01:00
Simon L
d06b3a7b19 revert imagemagick6 change
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-29 13:43:47 +01:00
Simon L
7a6f350248 try imagemagick6
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-29 13:26:30 +01:00
szaimen
4621a74bb0 dependency updates
Signed-off-by: GitHub <noreply@github.com>
2022-12-29 12:15:09 +00:00
Simon L
6f5b2cc94e Merge pull request #1627 from nextcloud/enh/noid/improve-imagick
move imagick back to the dockerfile
2022-12-29 13:07:40 +01:00
Simon L
e32a3e8d0c move imagick back to the dockerfile
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-29 13:05:54 +01:00
Simon L
810094daa3 try to make imagick work
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-29 12:31:59 +01:00
Simon L
a2cfa17b05 Merge pull request #1626 from nextcloud/enh/noid/addmore-formats
add other file types as well
2022-12-29 11:42:17 +01:00
Simon L
4d83172a91 add other file types as well
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-29 11:37:02 +01:00
Simon L
9a9f16ec2f Merge pull request #1625 from nextcloud/revert-1603-enh/noid/refactor-volumes
Revert "substitute volume variables in dockeractionmanager"
2022-12-29 11:31:12 +01:00
Simon L
1f2e23c447 Revert "substitute volume variables in dockeractionmanager"
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-29 11:30:14 +01:00
Simon L
44fb8368bf also add libheif-dev
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-29 11:25:33 +01:00
Simon L
6fdc539ff4 Merge pull request #1624 from nextcloud/fix/noid/avatar-generation
add freetype-dev and fontconfig-dev for compiliing imagick
2022-12-29 11:15:18 +01:00
Simon L
b684e8d1e1 add freetype-dev and fontconfig-dev for compiliing imagick
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-29 11:11:08 +01:00
Simon L
417c6771c8 Merge pull request #1603 from nextcloud/enh/noid/refactor-volumes
substitute volume variables in dockeractionmanager
2022-12-29 10:33:57 +01:00
Simon L
13ca2a35a8 Merge pull request #1598 from nextcloud/enh/noid/allwo-to-hide-containers
allow to hide containers from the interface via display_name
2022-12-29 10:30:05 +01:00
Simon L
2983904697 Merge pull request #1595 from nextcloud/enh/noid/improve-container-definition
rename values of containers definition to match docker-compose values
2022-12-29 10:27:05 +01:00
Simon L
d0ab26918f Merge pull request #1527 from nextcloud/aio-yaml-update
Yaml updates
2022-12-29 10:14:25 +01:00
Simon L
f06ce34472 borg - add progress back and add some additional output
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-29 10:06:50 +01:00
szaimen
af128d1b46 Yaml updates
Signed-off-by: GitHub <noreply@github.com>
2022-12-28 23:50:41 +00:00
Simon L
35f2d7db16 fix the clamav_enabled description
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-29 00:49:44 +01:00
Simon L
ee50e9147d allow to make wrong database intialization better debuggable
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-29 00:41:29 +01:00
Simon L
8ae4ec52a3 migration - add some documentation on limits regarding the database owner name
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-29 00:29:53 +01:00
Simon L
fc29e69b96 improve healthcheck to only exit 1 if it is started
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-28 15:25:20 +01:00
Simon L
b5e40dbb94 substitute volume variables in dockeractionmanager
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-26 02:14:06 +01:00
Simon L
2fd750c8b2 allow to hide containers from the interface via display_name
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-25 15:56:37 +01:00
Simon L
117c3de7c5 add items type for secrets
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-25 02:45:32 +01:00
Simon L
27bd5ce1a4 secrets should only get generated if defined in secrets of container.json
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-25 02:28:53 +01:00
Simon L
54f61eba68 internal_ports should be a string and not an array
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-25 01:46:42 +01:00
Simon L
53065b5631 rename internalPorts to internal_ports
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-25 01:08:44 +01:00
Simon L
7a9a452f45 rename production to services
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-25 01:08:44 +01:00
Simon L
3c57b2db56 rename displayName to display_name
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-25 01:08:43 +01:00
Simon L
1e78d729c4 rename restartPolicy to restart
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-25 01:08:43 +01:00
Simon L
5c444472c7 rename maxShutdownTime to stop_grace_period
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-25 01:08:43 +01:00
Simon L
b13cb77ce2 rename environmentVariables to environment
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-25 01:08:43 +01:00
Simon L
4a69d53a67 rename containerName to image
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-25 01:08:43 +01:00
Simon L
6cca3ceb6c rename dependsOn to depends_on
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-25 01:08:43 +01:00
Simon L
7720ed5061 rename identifier to container_name
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-25 00:36:19 +01:00
ManOki
4750fb228f manual-install: add IMAGE_TAG to omit separate latest-arm64.yml (#1591)
* manual-install: add IMAGE_TAG to omit separate latest-arm64.yml

Signed-off-by: ManOki <ManOki@users.noreply.github.com>
Co-authored-by: Simon L. <szaimen@e.mail.de>
2022-12-24 10:55:49 +01:00
Simon L
34854ba461 Merge pull request #1580 from nextcloud/apache-reverse-proxy-docs
improve the apache reverse proxy documentation
2022-12-23 22:39:03 +01:00
Simon L
059015968c Merge pull request #1590 from ManOki/documentation
manual-install: update readme to use default docker environment file
2022-12-23 22:03:58 +01:00
Simon L
377058cef1 make description of the mv command a bit clearer
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-23 22:03:00 +01:00
Simon L
67aa36c687 Merge pull request #1586 from ManOki/main
manual-install: add docker profiles for optional services
2022-12-23 21:59:15 +01:00
Simon L
653c63565e remove spaces in empty lines
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-23 21:57:25 +01:00
Simon L
a81be7c35c update script to add the profiles option automatically
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-23 21:40:15 +01:00
ManOki
7dc4edc1e0 manual-install: update readme to use default docker environment file .env
Signed-off-by: ManOki <ManOki@users.noreply.github.com>
2022-12-23 20:19:29 +01:00
szaimen
fbe8316e1d dependency updates
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-23 17:19:38 +01:00
Simon L
950ab32d26 update mastercontainerto php 8.1
Signed-off-by: Simon L <szaimen@e.mail.de>
2022-12-23 17:02:47 +01:00
ManOki
ce165e05a1 manual-install: add docker profiles for optional services
Signed-off-by: ManOki <ManOki@users.noreply.github.com>
2022-12-23 16:53:20 +01:00
Zoey
14e095b569 try to close #1314
Got it from: https://stackoverflow.com/a/41388585 & https://httpd.apache.org/docs/2.4/mod/mod_rewrite.html
In my test, it works

Signed-off-by: Zoey <zoey@z0ey.de>
2022-12-23 15:33:15 +01:00
111 changed files with 2675 additions and 1171 deletions

View File

@@ -4,12 +4,10 @@ about: Help us improving by reporting a bug
labels: bug, 0. Needs triage
---
<!--- Please keep this note for other contributors -->
### How to use GitHub
* Please use the 👍 [reaction](https://blog.github.com/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/) to show that you are affected by the same issue.
* Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this issue.
* Subscribe to receive notifications on status change and new comments.
<!---
- If you use Cloudflare Tunnel or Cloudflare Proxy, see https://github.com/nextcloud/all-in-one#notes-on-cloudflare-proxytunnel for known issues/limitations and workarounds.
- For issues with Collabora or Talk, make sure to follow https://github.com/nextcloud/all-in-one/discussions/1358. It may already resolve your issue and makes it easier to help you.
--->
<!--- Please fill out the whole template below -->
### Steps to reproduce

View File

@@ -4,12 +4,6 @@ about: Suggest an enhancement of an existing feature/documentation - for other t
labels: enhancement, 0. Needs triage
---
<!--- Please keep this note for other contributors -->
### How to use GitHub
* Please use the 👍 [reaction](https://blog.github.com/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/) to show that you are interested into the same feature.
* Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this issue.
* Subscribe to receive notifications on status change and new comments.
<!--- Please fill out the whole template below -->
### Is your feature request related to a problem? Please describe.
<!--- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] -->

View File

@@ -23,7 +23,7 @@ jobs:
- name: Modify the Dockerfile
run: |
set -x
sed -i 's|FROM php:7.4-alpine|FROM php:8.0-alpine|' "psalm-github-actions/Dockerfile"
sed -i 's|FROM php:7.4-alpine|FROM php:8.1-alpine|' "psalm-github-actions/Dockerfile"
cat << APCU >> "psalm-github-actions/Dockerfile"
RUN mkdir -p /usr/src/php/ext/apcu && \
curl -fsSL https://pecl.php.net/get/apcu | tar xvz -C "/usr/src/php/ext/apcu" --strip 1 && \
@@ -45,7 +45,7 @@ jobs:
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build container image
uses: docker/build-push-action@v3
uses: docker/build-push-action@v4
with:
push: true
context: 'psalm-github-actions'

View File

@@ -11,24 +11,21 @@ jobs:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- uses: nanasess/setup-php@master
- uses: shivammathur/setup-php@v2
with:
php-version: 8.0
php-version: 8.1
extensions: apcu
- name: Run dependency update script
run: |
set -x
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
chmod +x /usr/local/bin/composer
cd ./php
composer update
set +e
ALL_LINES="$(composer outdated | grep -v "psr/container\|^$\|Direct dependencies\|Everything up to date\|Transitive dependencies")"
ALL_LINES="$(composer outdated | grep -v "^$\|Direct dependencies\|Everything up to date\|Transitive dependencies")"
set -e
while [ -n "$ALL_LINES" ]; do
CURRENT_LINE="$(echo "$ALL_LINES" | head -1)"
composer require "$(echo "$CURRENT_LINE" | awk '{print $1}')" "^$(echo "$CURRENT_LINE" | awk '{print $4}')"
composer require "$(echo "$CURRENT_LINE" | awk '{print $1}')" "^$(echo "$CURRENT_LINE" | awk '{print $4}')" --with-all-dependencies
ALL_LINES="$(echo "$ALL_LINES" | sed '1d')"
done
echo "outdated dependencies:

View File

@@ -23,7 +23,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
php-versions: ["8.0"]
php-versions: ["8.1"]
name: php-lint

View File

@@ -58,7 +58,7 @@ jobs:
| sort -V \
| tail -1
)"
sed -i "s|pecl install imagick.*|pecl install imagick-$imagick_version >/dev/null|" ./Containers/nextcloud/start.sh
sed -i "s|pecl install imagick.*\;|pecl install imagick-$imagick_version\;|" ./Containers/nextcloud/Dockerfile
# Nextcloud
NC_MAJOR="$(grep "ENV NEXTCLOUD_VERSION" ./Containers/nextcloud/Dockerfile | grep -oP '[23][0-9]')"

View File

@@ -13,10 +13,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up php8.0
- name: Set up php8.1
uses: shivammathur/setup-php@v2
with:
php-version: 8.0
php-version: 8.1
extensions: apcu
coverage: none

View File

@@ -12,10 +12,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up php8.0
- name: Set up php8.1
uses: shivammathur/setup-php@v2
with:
php-version: 8.0
php-version: 8.1
extensions: apcu
coverage: none

View File

@@ -12,10 +12,10 @@ jobs:
steps:
- uses: actions/checkout@v3
- name: Set up php8.0
- name: Set up php8.1
uses: shivammathur/setup-php@v2
with:
php-version: 8.0
php-version: 8.1
extensions: apcu
coverage: none

View File

@@ -13,7 +13,7 @@ jobs:
steps:
- uses: actions/checkout@v3
- name: Run Shellcheck
uses: ludeeus/action-shellcheck@master
uses: ludeeus/action-shellcheck@2.0.0
with:
check_together: 'yes'
env:

33
.github/workflows/update-helm.yml vendored Normal file
View File

@@ -0,0 +1,33 @@
name: Update Helm Chart
on:
workflow_dispatch:
schedule:
- cron: '00 12 * * *'
jobs:
psalm:
name: update helm chart
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- 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*}"
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"
fi
- name: Create Pull Request
uses: peter-evans/create-pull-request@v4
with:
commit-message: Helm Chart updates
signoff: true
title: Helm Chart updates
body: Automated Helm Chart updates for the yaml files. It can be merged if it looks good at any time which will automatically trigger a new release of the helm chart.
labels: dependencies
milestone: next
branch: aio-helm-update
token: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -25,3 +25,4 @@ jobs:
labels: dependencies
milestone: next
branch: aio-yaml-update
token: ${{ secrets.GITHUB_TOKEN }}

3
.gitignore vendored
View File

@@ -5,4 +5,5 @@
/php/vendor
/manual-install/*.conf
!/manual-install/sample.conf
/manual-install/docker-compose.yml
/manual-install/docker-compose.yml
/manual-install/.env

View File

@@ -1,7 +1,15 @@
# Caddy is a requirement
FROM caddy:2.6.2-alpine as caddy
FROM caddy:2.6.3-alpine as caddy
FROM debian:bullseye-20221219-slim
FROM httpd:2.4.55-alpine3.17
RUN set -ex; \
apk add --no-cache shadow; \
groupmod -g 333 xfs; \
usermod -u 333 -g 333 xfs; \
groupmod -g 33 www-data; \
usermod -u 33 -g 33 www-data; \
apk del --no-cache shadow
RUN mkdir -p /mnt/data; \
chown www-data:www-data /mnt/data;
@@ -9,52 +17,43 @@ RUN mkdir -p /mnt/data; \
VOLUME /mnt/data
RUN set -ex; \
\
apt-get update; \
apt-get install -y --no-install-recommends \
apache2 \
apk add --no-cache \
bash \
supervisor \
wget \
tzdata \
ca-certificates \
openssl \
netcat \
dpkg-dev \
curl \
; \
rm -rf /var/lib/apt/lists/*
netcat-openbsd
COPY --from=caddy /usr/bin/caddy /usr/bin/
RUN chmod +x /usr/bin/caddy
RUN a2enmod rewrite \
headers \
proxy \
proxy_fcgi \
setenvif \
env \
mime \
dir \
authz_core \
alias
COPY nextcloud.conf /etc/apache2/sites-available/
RUN rm /etc/apache2/ports.conf; \
sed -s -i -e "s/Include ports.conf//" /etc/apache2/apache2.conf; \
sed -i "/^Listen /d" /etc/apache2/apache2.conf
RUN sed -i \
-e '/^Listen /d' \
-e 's/^#\(LoadModule .*mod_rewrite.so\)/\1/' \
-e 's/^#\(LoadModule .*mod_headers.so\)/\1/' \
-e 's/^#\(LoadModule .*mod_proxy.so\)/\1/' \
-e 's/^#\(LoadModule .*mod_proxy_fcgi.so\)/\1/' \
-e 's/^#\(LoadModule .*mod_setenvif.so\)/\1/' \
-e 's/^#\(LoadModule .*mod_env.so\)/\1/' \
-e 's/^#\(LoadModule .*mod_mime.so\)/\1/' \
-e 's/^#\(LoadModule .*mod_dir.so\)/\1/' \
-e 's/^#\(LoadModule .*mod_authz_core.so\)/\1/' \
-e 's/^#\(LoadModule .*mod_alias.so\)/\1/' \
-e 's/^#\(LoadModule .*mod_mpm_event.so\)/\1/' \
-e 's/\(LoadModule .*mod_mpm_worker.so\)/#\1/' \
-e 's/\(LoadModule .*mod_mpm_prefork.so\)/#\1/' \
conf/httpd.conf; \
echo "Include conf/nextcloud.conf" | tee -a conf/httpd.conf; \
echo "ServerName localhost" | tee -a conf/httpd.conf
COPY nextcloud.conf conf
RUN set -ex; \
a2dissite 000-default && \
a2dissite default-ssl && \
rm -f /etc/apache2/sites-enabled/000-default.conf && \
rm -f /etc/apache2/sites-enabled/default-ssl.conf && \
rm /etc/apache2/sites-available/000-default.conf && \
rm /etc/apache2/sites-available/default-ssl.conf && \
a2ensite nextcloud.conf && \
rm -rf conf/original conf/original && \
rm -rf /var/www/html/* && \
chown www-data:www-data -R /var/log/apache2; \
mkdir -p /var/run/apache2; \
chown -R www-data:www-data /var/run/apache2; \
mkdir /var/www && \
chown -R www-data:www-data /var/www;
RUN mkdir /var/log/supervisord; \
@@ -71,7 +70,8 @@ RUN chmod +x /usr/bin/start.sh; \
chmod +x /usr/bin/healthcheck.sh; \
chmod +r /supervisord.conf; \
chown www-data:www-data /Caddyfile; \
chmod +r -R /etc/apache2
chown -R www-data:www-data /usr/local/apache2; \
chmod +r -R /usr/local/apache2
# Give root a random password
RUN echo "root:$(openssl rand -base64 12)" | chpasswd
@@ -81,4 +81,5 @@ USER www-data
ENTRYPOINT ["start.sh"]
CMD ["/usr/bin/supervisord", "-c", "/supervisord.conf"]
HEALTHCHECK CMD healthcheck.sh
HEALTHCHECK CMD healthcheck.sh
LABEL com.centurylinklabs.watchtower.monitor-only="true"

View File

@@ -1,6 +1,7 @@
#!/bin/bash
curl -skfI localhost:8000 || exit 1
nc -z "$NEXTCLOUD_HOST" 9000 || exit 0
nc -z localhost 8000 || exit 1
if [ "$APACHE_PORT" != '443' ]; then
nc -z localhost "$APACHE_PORT" || exit 1
else

View File

@@ -48,7 +48,7 @@ echo "$CADDYFILE" > /Caddyfile
# Add caddy path
mkdir -p /mnt/data/caddy/
# Fix apache sturtup
rm -f /var/run/apache2/apache2.pid
# Fix apache startup
rm -f /usr/local/apache2/logs/httpd.pid
exec "$@"
exec "$@"

View File

@@ -1,17 +1,14 @@
FROM debian:bullseye-20221219-slim
FROM alpine:3.17.1
RUN set -ex; \
\
echo "deb http://deb.debian.org/debian bullseye-backports main" >> /etc/apt/sources.list; \
apt-get update; \
apt-get install -y --no-install-recommends borgbackup -t bullseye-backports; \
apt-get install -y --no-install-recommends \
apk add --no-cache \
bash \
borgbackup \
rsync \
fuse \
python3-llfuse \
jq \
; \
rm -rf /var/lib/apt/lists/*
py3-llfuse \
jq
VOLUME /root
@@ -21,4 +18,5 @@ RUN chmod +x /usr/bin/start.sh; \
chmod +x /backupscript.sh
USER root
ENTRYPOINT ["start.sh"]
ENTRYPOINT ["start.sh"]
LABEL com.centurylinklabs.watchtower.monitor-only="true"

View File

@@ -87,8 +87,8 @@ if [ "$BORG_MODE" = backup ]; then
# Don't initialize if already initialized
if [ -f "/nextcloud_aio_volumes/nextcloud_aio_mastercontainer/data/borg.config" ]; then
echo "Cannot initialize a new repository as that was already done at least one time."
echo "If you still want to do so, you may delete the 'borg.config' file that is stored in the mastercontainer volume manually, which will allow you to initialize a new borg repository in the chosen directory."
echo "By default it is stored here: /var/lib/docker/volumes/nextcloud_aio_mastercontainer/_data/data/borg.config"
echo "If you still want to do so, you may delete the 'borg.config' file that is stored in the mastercontainer volume manually, which will allow you to initialize a new borg repository in the chosen directory:"
echo "sudo docker exec nextcloud-aio-mastercontainer rm /mnt/docker-aio-config/data/borg.config"
exit 1
fi
@@ -127,7 +127,7 @@ if [ "$BORG_MODE" = backup ]; then
# Borg options
# auto,zstd compression seems to has the best ratio based on:
# https://forum.level1techs.com/t/optimal-compression-for-borg-backups/145870/6
BORG_OPTS=(--stats --compression "auto,zstd" --exclude-caches --checkpoint-interval 86400)
BORG_OPTS=(-v --stats --compression "auto,zstd" --exclude-caches --checkpoint-interval 86400)
# Create the backup
echo "Starting the backup..."
@@ -151,7 +151,7 @@ if [ "$BORG_MODE" = backup ]; then
# Prune archives
echo "Pruning the archives..."
if ! borg prune --prefix '*_*-nextcloud-aio' "${BORG_PRUNE_OPTS[@]}"; then
if ! borg prune --glob-archives '*_*-nextcloud-aio' "${BORG_PRUNE_OPTS[@]}"; then
echo "Failed to prune archives!"
exit 1
fi
@@ -174,16 +174,19 @@ if [ "$BORG_MODE" = backup ]; then
exit 1
fi
done
echo "Starting the backup for additional volumes..."
if ! borg create "${BORG_OPTS[@]}" "$BORG_BACKUP_DIRECTORY::$CURRENT_DATE-additional-docker-volumes" "/docker_volumes/"; then
echo "Deleting the failed backup archive..."
borg delete --stats "$BORG_BACKUP_DIRECTORY::$CURRENT_DATE-additional-docker-volumes"
echo "Backup of additional docker-volumes failed!"
exit 1
fi
if ! borg prune --prefix '*_*-additional-docker-volumes' "${BORG_PRUNE_OPTS[@]}"; then
echo "Pruning additional volumes..."
if ! borg prune --glob-archives '*_*-additional-docker-volumes' "${BORG_PRUNE_OPTS[@]}"; then
echo "Failed to prune additional docker-volumes archives!"
exit 1
fi
echo "Compacting additional volumes..."
if ! borg compact "$BORG_BACKUP_DIRECTORY"; then
echo "Failed to compact archives!"
exit 1
@@ -201,16 +204,19 @@ if [ "$BORG_MODE" = backup ]; then
do
EXCLUDE_DIRS+=(--exclude "/host_mounts/$directory/")
done
echo "Starting the backup for additional host mounts..."
if ! borg create "${BORG_OPTS[@]}" "${EXCLUDE_DIRS[@]}" "$BORG_BACKUP_DIRECTORY::$CURRENT_DATE-additional-host-mounts" "/host_mounts/"; then
echo "Deleting the failed backup archive..."
borg delete --stats "$BORG_BACKUP_DIRECTORY::$CURRENT_DATE-additional-host-mounts"
echo "Backup of additional host-mounts failed!"
exit 1
fi
if ! borg prune --prefix '*_*-additional-host-mounts' "${BORG_PRUNE_OPTS[@]}"; then
echo "Pruning additional host mounts..."
if ! borg prune --glob-archives '*_*-additional-host-mounts' "${BORG_PRUNE_OPTS[@]}"; then
echo "Failed to prune additional host-mount archives!"
exit 1
fi
echo "Compacting additional host mounts..."
if ! borg compact "$BORG_BACKUP_DIRECTORY"; then
echo "Failed to compact archives!"
exit 1
@@ -347,7 +353,7 @@ if [ "$BORG_MODE" = check ]; then
echo "Checking the backup integrity..."
# Perform the check
if ! borg check --verify-data "$BORG_BACKUP_DIRECTORY"; then
if ! borg check -v --verify-data "$BORG_BACKUP_DIRECTORY"; then
echo "Some errors were found while checking the backup integrity!"
exit 1
fi
@@ -358,6 +364,23 @@ if [ "$BORG_MODE" = check ]; then
exit 0
fi
# Do the Backup check-repair
if [ "$BORG_MODE" = "check-repair" ]; then
get_start_time
echo "Checking the backup integrity and repairing it..."
# Perform the check-repair
if ! echo YES | borg check -v --repair "$BORG_BACKUP_DIRECTORY"; then
echo "Some errors were found while checking and repairing the backup integrity!"
exit 1
fi
# Inform user
get_expiration_time
echo "Check finished successfully on $END_DATE_READABLE ($DURATION_READABLE)"
exit 0
fi
# Do the backup test
if [ "$BORG_MODE" = test ]; then
if ! [ -d "$BORG_BACKUP_DIRECTORY" ]; then

View File

@@ -20,7 +20,7 @@ export BORG_UNKNOWN_UNENCRYPTED_REPO_ACCESS_IS_OK=yes
export BORG_RELOCATED_REPO_ACCESS_IS_OK=yes
# Validate BORG_MODE
if [ "$BORG_MODE" != backup ] && [ "$BORG_MODE" != restore ] && [ "$BORG_MODE" != check ] && [ "$BORG_MODE" != test ]; then
if [ "$BORG_MODE" != backup ] && [ "$BORG_MODE" != restore ] && [ "$BORG_MODE" != check ] && [ "$BORG_MODE" != "check-repair" ] && [ "$BORG_MODE" != test ]; then
echo "No correct BORG_MODE mode applied. Valid are 'backup', 'check', 'restore' and 'test'."
exit 1
fi

View File

@@ -1,6 +1,7 @@
# Probably from this file: https://github.com/Cisco-Talos/clamav/blob/main/Dockerfile
FROM clamav/clamav:0.105.1-7
# Probably from this file: https://github.com/Cisco-Talos/clamav-docker/blob/main/clamav/0.105/alpine/Dockerfile
FROM clamav/clamav:0.105.1-8
RUN apk add --update --no-cache tzdata
RUN apk add --no-cache tzdata
COPY clamav.conf /tmp/
RUN cat /tmp/clamav.conf >> /etc/clamav/clamd.conf
LABEL com.centurylinklabs.watchtower.monitor-only="true"

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.9.2.1
FROM collabora/code:22.05.10.1.1
USER root
@@ -16,3 +16,4 @@ RUN set -ex; \
USER 104
HEALTHCHECK CMD nc -z localhost 9980 || exit 1
LABEL com.centurylinklabs.watchtower.monitor-only="true"

View File

@@ -1,5 +1,5 @@
FROM alpine:3.16.3
RUN apk add --update --no-cache lighttpd bash curl netcat-openbsd
FROM alpine:3.17.1
RUN apk add --no-cache lighttpd bash netcat-openbsd
RUN adduser -S www-data -G www-data
RUN rm -rf /etc/lighttpd/lighttpd.conf
@@ -15,4 +15,5 @@ USER www-data
RUN mkdir -p /var/www/domaincheck/
ENTRYPOINT ["/start.sh"]
HEALTHCHECK CMD nc -z localhost $APACHE_PORT || exit 1
HEALTHCHECK CMD nc -z localhost $APACHE_PORT || exit 1
LABEL com.centurylinklabs.watchtower.monitor-only="true"

View File

@@ -1,6 +1,20 @@
# 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
HEALTHCHECK CMD curl -skfI localhost:9200 || exit 1
RUN set -ex; \
\
apt-get update; \
apt-get install -y --no-install-recommends \
tzdata \
; \
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

@@ -0,0 +1,18 @@
#!/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,18 +1,17 @@
# From https://github.com/h2non/imaginary/blob/master/Dockerfile
FROM nextcloud/imaginary:20221201
FROM nextcloud/imaginary:20230201
USER root
RUN set -ex; \
\
apt-get update; \
apt-get install -y --no-install-recommends \
ca-certificates \
curl \
netcat \
; \
rm -rf /var/lib/apt/lists/*
USER nobody
ENTRYPOINT ["/usr/local/bin/imaginary", "-return-size"]
ENTRYPOINT ["/usr/local/bin/imaginary", "-return-size", "-max-allowed-resolution", "222.2"]
HEALTHCHECK CMD nc -z localhost 9000 || exit 1
HEALTHCHECK CMD nc -z localhost 9000 || exit 1
LABEL com.centurylinklabs.watchtower.monitor-only="true"

View File

@@ -1,11 +1,18 @@
# Docker CLI is a requirement
FROM docker:20.10.21-dind-alpine3.16 as dind
FROM docker:20.10.23-dind as dind
# Caddy is a requirement
FROM caddy:2.6.2-alpine as caddy
FROM caddy:2.6.3-alpine as caddy
# From https://github.com/docker-library/php/blob/master/8.0/bullseye/apache/Dockerfile
FROM php:8.0.26-apache-bullseye
# From https://github.com/docker-library/php/blob/master/8.1/alpine3.17/fpm/Dockerfile
FROM php:8.1.15-fpm-alpine3.17
RUN set -ex; \
apk add --no-cache shadow; \
groupmod -g 333 xfs; \
usermod -u 333 -g 333 xfs; \
groupmod -g 33 www-data; \
usermod -u 33 -g 33 www-data
EXPOSE 80
EXPOSE 8080
@@ -19,16 +26,42 @@ RUN mkdir -p /var/www/docker-aio;
WORKDIR /var/www/docker-aio
RUN apt-get update; \
apt-get install -y --no-install-recommends \
git \
RUN set -ex; \
apk add --no-cache \
ca-certificates \
wget \
tzdata \
bash \
apache2 \
apache2-proxy \
apache2-ssl \
supervisor \
openssl \
sudo \
dpkg-dev \
netcat \
; \
rm -rf /var/lib/apt/lists/*
netcat-openbsd \
curl \
grep
RUN set -ex; \
apk add --no-cache --virtual .build-deps \
autoconf \
build-base; \
pecl install APCu-5.1.22; \
docker-php-ext-enable apcu; \
rm -r /tmp/pear; \
\
runDeps="$( \
scanelf --needed --nobanner --format '%n#p' --recursive /usr/local/lib/php/extensions \
| tr ',' '\n' \
| sort -u \
| awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \
)"; \
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/
RUN chmod +x /usr/bin/caddy
@@ -36,14 +69,10 @@ RUN chmod +x /usr/bin/caddy
COPY --from=dind /usr/local/bin/docker /usr/local/bin/
RUN chmod +x /usr/local/bin/docker
RUN set -ex; \
pecl install APCu-5.1.22; \
docker-php-ext-enable apcu
RUN set -e && \
curl -sS https://getcomposer.org/installer | php && \
mv composer.phar /usr/local/bin/composer && \
chmod +x /usr/local/bin/composer && \
apk add --no-cache git; \
wget https://getcomposer.org/installer -O - | php -- --install-dir=/usr/local/bin --filename=composer; \
chmod +x /usr/local/bin/composer; \
cd /var/www/docker-aio; \
git clone https://github.com/nextcloud-releases/all-in-one.git --depth 1 .; \
cd php; \
@@ -54,7 +83,8 @@ RUN set -e && \
chmod 770 -R ./; \
chown www-data:www-data -R /var/www; \
rm -r ./php/data; \
rm -r ./php/session
rm -r ./php/session; \
apk del --no-cache git
RUN mkdir -p /etc/apache2/certs && \
cd /etc/apache2/certs && \
@@ -62,28 +92,31 @@ RUN mkdir -p /etc/apache2/certs && \
COPY mastercontainer.conf /etc/apache2/sites-available/
RUN a2enmod rewrite \
headers \
env \
mime \
dir \
authz_core \
proxy \
proxy_http \
ssl
RUN rm /etc/apache2/ports.conf; \
sed -s -i -e "s/Include ports.conf//" /etc/apache2/apache2.conf; \
sed -i "/^Listen /d" /etc/apache2/apache2.conf
RUN sed -i \
-e '/^Listen /d' \
-e 's/User apache/User www-data/g' \
-e 's/Group apache/Group www-data/g' \
-e 's/^#\(LoadModule .*mod_rewrite.so\)/\1/' \
-e 's/^#\(LoadModule .*mod_headers.so\)/\1/' \
-e 's/^#\(LoadModule .*mod_env.so\)/\1/' \
-e 's/^#\(LoadModule .*mod_mime.so\)/\1/' \
-e 's/^#\(LoadModule .*mod_dir.so\)/\1/' \
-e 's/^#\(LoadModule .*mod_authz_core.so\)/\1/' \
-e 's/^#\(LoadModule .*mod_mpm_event.so\)/\1/' \
-e 's/\(LoadModule .*mod_mpm_worker.so\)/#\1/' \
-e 's/\(LoadModule .*mod_mpm_prefork.so\)/#\1/' \
/etc/apache2/httpd.conf; \
mkdir -p /etc/apache2/logs; \
rm /etc/apache2/conf.d/ssl.conf; \
echo "ServerName localhost" | tee -a /etc/apache2/httpd.conf; \
echo "LoadModule ssl_module modules/mod_ssl.so" | tee -a /etc/apache2/httpd.conf; \
echo "LoadModule socache_shmcb_module modules/mod_socache_shmcb.so" | tee -a /etc/apache2/httpd.conf; \
echo "Include /etc/apache2/sites-available/mastercontainer.conf" | tee -a /etc/apache2/httpd.conf
RUN set -ex; \
a2dissite 000-default && \
a2dissite default-ssl && \
rm -f /etc/apache2/sites-enabled/000-default.conf && \
rm -f /etc/apache2/sites-enabled/default-ssl.conf && \
rm /etc/apache2/sites-available/000-default.conf && \
rm /etc/apache2/sites-available/default-ssl.conf && \
a2ensite mastercontainer.conf
rm -f /etc/apache2/conf.d/default.conf \
/etc/apache2/conf.d/userdir.conf \
/etc/apache2/conf.d/info.conf
RUN mkdir /var/log/supervisord; \
mkdir /var/run/supervisord;
@@ -109,4 +142,4 @@ USER root
ENTRYPOINT ["start.sh"]
CMD ["/usr/bin/supervisord", "-c", "/supervisord.conf"]
HEALTHCHECK CMD /healthcheck.sh
HEALTHCHECK CMD /healthcheck.sh

View File

@@ -10,9 +10,13 @@ Listen 8080
<VirtualHost *:8000>
ServerName localhost
# Add error log
CustomLog /proc/self/fd/1 combined
ErrorLog /proc/self/fd/2
# PHP match
<FilesMatch "\.php$">
SetHandler application/x-httpd-php
SetHandler "proxy:fcgi://localhost:9000"
</FilesMatch>
# Master dir
DocumentRoot /var/www/docker-aio/php/public/

View File

@@ -239,8 +239,8 @@ chown root:root -R /mnt/docker-aio-config/certs/
# Don't allow access to the AIO interface from the Nextcloud container
# Probably more cosmetic than anything but at least an attempt
if ! grep -q '# nextcloud-aio-block' /etc/apache2/apache2.conf; then
cat << APACHE_CONF >> /etc/apache2/apache2.conf
if ! grep -q '# nextcloud-aio-block' /etc/apache2/httpd.conf; then
cat << APACHE_CONF >> /etc/apache2/httpd.conf
# nextcloud-aio-block-start
<Location />
order allow,deny
@@ -277,4 +277,7 @@ https://your-domain-that-points-to-this-server.tld:8443"
# Set the timezone to UTC
export TZ=UTC
# Fix apache startup
rm -f /var/run/apache2/httpd.pid
exec "$@"

View File

@@ -8,12 +8,20 @@ logfile_backups=10
loglevel=error
user=root
[program:php-fpm]
# stdout_logfile=/dev/stdout
# stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0
command=php-fpm
user=root
[program:apache]
# stdout_logfile=/dev/stdout
# stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0
command=apache2-foreground
command=httpd -DFOREGROUND
user=root
[program:caddy]

View File

@@ -1,5 +1,5 @@
# From https://github.com/nextcloud/docker/blob/master/23/fpm-alpine/Dockerfile
FROM php:8.0.26-fpm-alpine3.16
FROM php:8.0.27-fpm-alpine3.16
# Custom: change id of www-data user as it needs to be the same like on old installations
RUN set -ex; \
@@ -27,6 +27,7 @@ RUN set -ex; \
apk add --no-cache --virtual .build-deps \
$PHPIZE_DEPS \
autoconf \
libtool \
freetype-dev \
icu-dev \
libevent-dev \
@@ -41,6 +42,17 @@ RUN set -ex; \
postgresql-dev \
libwebp-dev \
gmp-dev \
lcms2-dev \
fontconfig-dev \
freetype-dev \
ghostscript-dev \
tiff-dev \
zlib-dev \
imagemagick-dev \
libheif-dev \
librsvg-dev \
libxext-dev \
ghostscript-fonts \
; \
\
docker-php-ext-configure gd --with-freetype --with-jpeg --with-webp; \
@@ -62,6 +74,7 @@ RUN set -ex; \
pecl install APCu-5.1.22; \
pecl install memcached-3.2.0; \
pecl install redis-5.3.7; \
pecl install imagick-3.7.0; \
\
docker-php-ext-enable \
apcu \
@@ -103,7 +116,7 @@ RUN { \
VOLUME /var/www/html
ENV NEXTCLOUD_VERSION 25.0.2
ENV NEXTCLOUD_VERSION 25.0.3
RUN set -ex; \
apk add --no-cache --virtual .fetch-deps \
@@ -154,12 +167,14 @@ RUN set -ex; \
openssl-dev \
samba-dev \
bzip2-dev \
libpq-dev \
; \
\
docker-php-ext-configure imap --with-kerberos --with-imap-ssl; \
docker-php-ext-install \
bz2 \
imap \
pgsql \
; \
pecl install smbclient; \
docker-php-ext-enable smbclient; \
@@ -199,9 +214,11 @@ RUN set -ex; \
sudo \
grep \
coreutils \
gcompat \
; \
rm -rf /var/lib/apt/lists/*
libjpeg \
librsvg \
libheif \
libpng \
ghostscript-fonts;
RUN set -ex; \
grep -q '^pm = dynamic' /usr/local/etc/php-fpm.d/www.conf; \
@@ -236,7 +253,8 @@ RUN set -ex; \
chmod +x /cron.sh && \
chmod +x /notify.sh && \
chmod +x /notify-all.sh && \
chmod +x /activate-collabora.sh
chmod +x /activate-collabora.sh && \
chmod +x /healthcheck.sh
RUN set -ex; \
mkdir /mnt/ncdata; \
@@ -250,4 +268,5 @@ RUN echo "root:$(openssl rand -base64 12)" | chpasswd
USER root
ENTRYPOINT ["/start.sh"]
HEALTHCHECK CMD (sudo -u www-data nc -z localhost 9000 && sudo -u www-data nc -z localhost 7867) || exit 1
HEALTHCHECK CMD sudo -E -u www-data bash /healthcheck.sh
LABEL com.centurylinklabs.watchtower.monitor-only="true"

View File

@@ -117,9 +117,9 @@ if ! [ -f "$NEXTCLOUD_DATA_DIR/skip.update" ]; then
mkdir -p /usr/src/tmp/nextcloud/data
mkdir -p /usr/src/tmp/nextcloud/custom_apps
chmod +x /usr/src/tmp/nextcloud/occ
cp /usr/src/nextcloud/config/* /usr/src/tmp/nextcloud/config/
cp -r /usr/src/nextcloud/config/* /usr/src/tmp/nextcloud/config/
mkdir -p /usr/src/tmp/nextcloud/apps/nextcloud-aio
cp /usr/src/nextcloud/apps/nextcloud-aio/* /usr/src/tmp/nextcloud/apps/nextcloud-aio/
cp -r /usr/src/nextcloud/apps/nextcloud-aio/* /usr/src/tmp/nextcloud/apps/nextcloud-aio/
mv /usr/src/nextcloud /usr/src/temp-nextcloud
mv /usr/src/tmp/nextcloud /usr/src/nextcloud
rm -r /usr/src/tmp
@@ -190,7 +190,12 @@ if ! [ -f "$NEXTCLOUD_DATA_DIR/skip.update" ]; then
#install
if [ "$installed_version" = "0.0.0.0" ]; then
echo "New nextcloud instance"
echo "New Nextcloud instance."
# Write output to logfile.
mkdir -p /var/www/html/data
exec > >(tee -i "/var/www/html/data/install.log")
exec 2>&1
INSTALL_OPTIONS=(-n --admin-user "$ADMIN_USER" --admin-pass "$ADMIN_PASSWORD")
if [ -n "${NEXTCLOUD_DATA_DIR}" ]; then
@@ -200,17 +205,27 @@ if ! [ -f "$NEXTCLOUD_DATA_DIR/skip.update" ]; then
echo "Installing with PostgreSQL database"
INSTALL_OPTIONS+=(--database pgsql --database-name "$POSTGRES_DB" --database-user "$POSTGRES_USER" --database-pass "$POSTGRES_PASSWORD" --database-host "$POSTGRES_HOST")
echo "starting nextcloud installation"
echo "Starting Nextcloud installation..."
if ! php /var/www/html/occ maintenance:install "${INSTALL_OPTIONS[@]}"; then
echo "Installation of Nextcloud failed!"
touch "$NEXTCLOUD_DATA_DIR/install.failed"
exit 1
fi
# Try to force generation of appdata dir:
php /var/www/html/occ maintenance:repair
max_retries=10
try=0
until php /var/www/html/occ maintenance:install "${INSTALL_OPTIONS[@]}" || [ "$try" -gt "$max_retries" ]
do
echo "retrying install..."
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" -gt "$max_retries" ]; then
echo "installing of nextcloud failed!"
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
@@ -218,9 +233,6 @@ if ! [ -f "$NEXTCLOUD_DATA_DIR/skip.update" ]; then
# unset admin password
unset ADMIN_PASSWORD
# Post Install logs: For questions like https://help.nextcloud.com/t/nextcloud-aio-error-could-not-get-appdata-folder-after-container-has-already-written-data-in-it/151122/5
echo "Install errors: $(cat /var/www/html/data/nextcloud.log)"
# Apply log settings
echo "Applying default settings..."
mkdir -p /var/www/html/data
@@ -263,7 +275,19 @@ if ! [ -f "$NEXTCLOUD_DATA_DIR/skip.update" ]; then
if [ -n "$STARTUP_APPS" ]; then
read -ra STARTUP_APPS_ARRAY <<< "$STARTUP_APPS"
for app in "${STARTUP_APPS_ARRAY[@]}"; do
php /var/www/html/occ app:install "$app"
if ! echo "$app" | grep -q '^-'; then
if [ -z "$(find /var/www/html/apps -type d -maxdepth 1 -mindepth 1 -name "$app" )" ]; then
# If not shipped, install and enable the app
php /var/www/html/occ app:install "$app"
else
# If shipped, enable the app
php /var/www/html/occ app:enable "$app"
fi
else
app="${app#-}"
# Disable the app if '-' was provided in front of the appid
php /var/www/html/occ app:disable "$app"
fi
done
fi
@@ -385,16 +409,14 @@ else
fi
# AIO app
if [ "$(php /var/www/html/occ config:app:get nextcloud-aio enabled)" = "" ]; then
php /var/www/html/occ app:enable nextcloud-aio
elif [ "$(php /var/www/html/occ config:app:get nextcloud-aio enabled)" = "no" ]; then
if [ "$(php /var/www/html/occ config:app:get nextcloud-aio enabled)" != "yes" ]; then
php /var/www/html/occ app:enable nextcloud-aio
fi
# Notify push
if ! [ -d "/var/www/html/custom_apps/notify_push" ]; then
php /var/www/html/occ app:install notify_push
elif [ "$(php /var/www/html/occ config:app:get notify_push enabled)" = "no" ]; then
elif [ "$(php /var/www/html/occ config:app:get notify_push enabled)" != "yes" ]; then
php /var/www/html/occ app:enable notify_push
elif [ "$SKIP_UPDATE" != 1 ]; then
php /var/www/html/occ app:update notify_push
@@ -407,7 +429,7 @@ php /var/www/html/occ config:app:set notify_push base_endpoint --value="https://
if [ "$COLLABORA_ENABLED" = 'yes' ]; then
if ! [ -d "/var/www/html/custom_apps/richdocuments" ]; then
php /var/www/html/occ app:install richdocuments
elif [ "$(php /var/www/html/occ config:app:get richdocuments enabled)" = "no" ]; then
elif [ "$(php /var/www/html/occ config:app:get richdocuments enabled)" != "yes" ]; then
php /var/www/html/occ app:enable richdocuments
elif [ "$SKIP_UPDATE" != 1 ]; then
php /var/www/html/occ app:update richdocuments
@@ -467,7 +489,7 @@ if [ "$ONLYOFFICE_ENABLED" = 'yes' ]; then
done
if ! [ -d "/var/www/html/custom_apps/onlyoffice" ]; then
php /var/www/html/occ app:install onlyoffice
elif [ "$(php /var/www/html/occ config:app:get onlyoffice enabled)" = "no" ]; then
elif [ "$(php /var/www/html/occ config:app:get onlyoffice enabled)" != "yes" ]; then
php /var/www/html/occ app:enable onlyoffice
elif [ "$SKIP_UPDATE" != 1 ]; then
php /var/www/html/occ app:update onlyoffice
@@ -486,7 +508,7 @@ fi
if [ "$TALK_ENABLED" = 'yes' ]; then
if ! [ -d "/var/www/html/custom_apps/spreed" ]; then
php /var/www/html/occ app:install spreed
elif [ "$(php /var/www/html/occ config:app:get spreed enabled)" = "no" ]; then
elif [ "$(php /var/www/html/occ config:app:get spreed enabled)" != "yes" ]; then
php /var/www/html/occ app:enable spreed
elif [ "$SKIP_UPDATE" != 1 ]; then
php /var/www/html/occ app:update spreed
@@ -516,7 +538,7 @@ if [ "$CLAMAV_ENABLED" = 'yes' ]; then
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)" = "no" ]; then
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
@@ -539,8 +561,13 @@ if version_greater "$installed_version" "24.0.0.0"; 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"
else
php /var/www/html/occ config:system:delete enabledPreviewProviders 0
php /var/www/html/occ config:system:delete preview_imaginary_url
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
@@ -552,21 +579,21 @@ if [ "$FULLTEXTSEARCH_ENABLED" = 'yes' ]; then
done
if ! [ -d "/var/www/html/custom_apps/fulltextsearch" ]; then
php /var/www/html/occ app:install fulltextsearch
elif [ "$(php /var/www/html/occ config:app:get fulltextsearch enabled)" = "no" ]; then
elif [ "$(php /var/www/html/occ config:app:get fulltextsearch enabled)" != "yes" ]; then
php /var/www/html/occ app:enable fulltextsearch
elif [ "$SKIP_UPDATE" != 1 ]; then
php /var/www/html/occ app:update fulltextsearch
fi
if ! [ -d "/var/www/html/custom_apps/fulltextsearch_elasticsearch" ]; then
php /var/www/html/occ app:install fulltextsearch_elasticsearch
elif [ "$(php /var/www/html/occ config:app:get fulltextsearch_elasticsearch enabled)" = "no" ]; then
elif [ "$(php /var/www/html/occ config:app:get fulltextsearch_elasticsearch enabled)" != "yes" ]; then
php /var/www/html/occ app:enable fulltextsearch_elasticsearch
elif [ "$SKIP_UPDATE" != 1 ]; then
php /var/www/html/occ app:update fulltextsearch_elasticsearch
fi
if ! [ -d "/var/www/html/custom_apps/files_fulltextsearch" ]; then
php /var/www/html/occ app:install files_fulltextsearch
elif [ "$(php /var/www/html/occ config:app:get files_fulltextsearch enabled)" = "no" ]; then
elif [ "$(php /var/www/html/occ config:app:get files_fulltextsearch enabled)" != "yes" ]; then
php /var/www/html/occ app:enable files_fulltextsearch
elif [ "$SKIP_UPDATE" != 1 ]; then
php /var/www/html/occ app:update files_fulltextsearch
@@ -580,10 +607,11 @@ if [ "$FULLTEXTSEARCH_ENABLED" = 'yes' ]; then
echo "Waiting 10s before activating FTS..."
sleep 10
echo "Activating fulltextsearch..."
if php /var/www/html/occ fulltextsearch:test && php /var/www/html/occ fulltextsearch:index; then
if php /var/www/html/occ fulltextsearch:test && php /var/www/html/occ fulltextsearch:index "{\"errors\": \"reset\"}" --no-readline; then
touch "$NEXTCLOUD_DATA_DIR/fts-index.done"
else
echo "Fulltextsearch failed. Could not index."
echo "Feel free to follow https://github.com/nextcloud/all-in-one/discussions/1709 if you want to skip the indexing in the future."
fi
fi
else

View File

@@ -0,0 +1,7 @@
#!/bin/bash
nc -z "$POSTGRES_HOST" 5432 || exit 0
if ! nc -z localhost 9000 || ! nc -z localhost 7867; then
exit 1
fi

View File

@@ -30,6 +30,18 @@ if [ -n "$TRUSTED_CACERTS_DIR" ]; then
update-ca-certificates
fi
# Check if /dev/dri device is present and apply correct permissions
set -x
if ! [ -f "/dev-dri-group-was-added" ] && [ -n "$(find /dev -maxdepth 1 -mindepth 1 -name dri)" ] && [ -n "$(find /dev/dri -maxdepth 1 -mindepth 1 -name renderD128)" ]; then
# From https://github.com/pulsejet/memories/wiki/QSV-Transcoding#docker-installations
GID="$(stat -c "%g" /dev/dri/renderD128)"
groupadd -g "$GID" render2 || true # sometimes this is needed
GROUP="$(getent group "$GID" | cut -d: -f1)"
usermod -aG "$GROUP" www-data
touch "/dev-dri-group-was-added"
fi
set +x
# Check datadir permissions
sudo -u www-data touch "$NEXTCLOUD_DATA_DIR/this-is-a-test-file" &>/dev/null
if ! [ -f "$NEXTCLOUD_DATA_DIR/this-is-a-test-file" ]; then
@@ -57,21 +69,25 @@ if [ -n "$ADDITIONAL_PHP_EXTENSIONS" ]; then
if ! [ -f "/additional-php-extensions-are-installed" ]; then
read -ra ADDITIONAL_PHP_EXTENSIONS_ARRAY <<< "$ADDITIONAL_PHP_EXTENSIONS"
for app in "${ADDITIONAL_PHP_EXTENSIONS_ARRAY[@]}"; do
if [ "$app" = imagick ]; then
echo "Enabling Imagick..."
if ! docker-php-ext-enable imagick >/dev/null; then
echo "Could not install PHP extension imagick!"
fi
continue
fi
# shellcheck disable=SC2086
if [ "$PHP_DEPS_ARE_INSTALLED" != 1 ]; then
echo "Installing PHP build dependencies..."
if ! apk add --no-cache --virtual .build-deps libxml2-dev imagemagick-dev autoconf $PHPIZE_DEPS >/dev/null; then
if ! apk add --no-cache --virtual .build-deps \
libxml2-dev \
autoconf \
$PHPIZE_DEPS >/dev/null; then
echo "Could not install build-deps!"
fi
PHP_DEPS_ARE_INSTALLED=1
fi
if [ "$app" = imagick ]; then
echo "Installing Imagick via PECL..."
pecl install imagick-3.7.0 >/dev/null
if ! docker-php-ext-enable imagick >/dev/null; then
echo "Could not install PHP extension imagick!"
fi
elif [ "$app" = inotify ]; then
if [ "$app" = inotify ]; then
echo "Installing $app via PECL..."
pecl install "$app" >/dev/null
if ! docker-php-ext-enable "$app" >/dev/null; then

View File

@@ -1,4 +1,5 @@
# From https://github.com/ONLYOFFICE/Docker-DocumentServer/blob/master/Dockerfile
FROM onlyoffice/documentserver:7.2.2.56
HEALTHCHECK CMD curl -skfI localhost || exit 1
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/13/alpine/Dockerfile
FROM postgres:14.6-alpine
# From https://github.com/docker-library/postgres/blob/master/15/alpine/Dockerfile
FROM postgres:15.1-alpine
RUN apk add --update --no-cache bash openssl shadow netcat-openbsd grep mawk
RUN apk add --no-cache bash openssl shadow netcat-openbsd grep mawk
# We need to use the same gid and uid as on old installations
RUN set -ex; \
@@ -17,9 +17,12 @@ RUN set -ex; \
chown -R postgres:postgres "$PGDATA"
COPY start.sh /usr/bin/
COPY healthcheck.sh /usr/bin/
COPY init-user-db.sh /docker-entrypoint-initdb.d/
RUN chmod +x /usr/bin/start.sh; \
chmod +xr /docker-entrypoint-initdb.d/init-user-db.sh
RUN set -ex; \
chmod +x /usr/bin/start.sh; \
chmod +xr /docker-entrypoint-initdb.d/init-user-db.sh; \
chmod +x /usr/bin/healthcheck.sh
RUN mkdir /mnt/data; \
chown postgres:postgres /mnt/data;
@@ -32,4 +35,5 @@ RUN echo "root:$(openssl rand -base64 12)" | chpasswd
USER postgres
ENTRYPOINT ["start.sh"]
HEALTHCHECK CMD psql -d "postgresql://$POSTGRES_USER:$POSTGRES_PASSWORD@localhost:5432/$POSTGRES_DB" -c "select now()" || exit 1
HEALTHCHECK CMD healthcheck.sh
LABEL com.centurylinklabs.watchtower.monitor-only="true"

View File

@@ -0,0 +1,5 @@
#!/bin/bash
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

View File

@@ -1,9 +1,15 @@
#!/bin/bash
set -ex
touch "$DUMP_DIR/initialization.failed"
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
CREATE USER "oc_$POSTGRES_USER" WITH PASSWORD '$POSTGRES_PASSWORD' CREATEDB;
ALTER DATABASE "$POSTGRES_DB" OWNER TO "oc_$POSTGRES_USER";
GRANT ALL PRIVILEGES ON DATABASE "$POSTGRES_DB" TO "oc_$POSTGRES_USER";
GRANT ALL PRIVILEGES ON SCHEMA public TO "oc_$POSTGRES_USER";
EOSQL
rm "$DUMP_DIR/initialization.failed"
set +ex

View File

@@ -2,15 +2,15 @@
# Variables
DATADIR="/var/lib/postgresql/data"
DUMP_DIR="/mnt/data"
export DUMP_DIR="/mnt/data"
DUMP_FILE="$DUMP_DIR/database-dump.sql"
export PGPASSWORD="$POSTGRES_PASSWORD"
# Don't start database as long as backup is running
while [ -f "$DUMP_DIR/backup-is-running" ]; do
echo "Waiting for backup container to finish..."
echo "If this is incorrect because the backup container is not running anymore (because it was forcefully killed), you might delete the lock file which is by default stored here:"
echo "/var/lib/docker/volumes/nextcloud_aio_database_dump/_data/backup-is-running"
echo "If this is incorrect because the backup container is not running anymore (because it was forcefully killed), you might delete the lock file:"
echo "sudo docker exec --user root nextcloud-aio-database rm /mnt/data/backup-is-running"
sleep 10
done
@@ -27,6 +27,16 @@ if [ -f "$DUMP_DIR/import.failed" ]; then
exit 1
fi
# Don't start if initialization failed
if [ -f "$DUMP_DIR/initialization.failed" ]; then
echo "The database initialization failed. Most likely was a wrong timezone selected."
echo "The selected timezone is '$TZ'."
echo "Please check if it is in 'TZ database name' column of the timezone list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List"
echo "For further clues on what went wrong, look at the logs above."
echo "You might start again from scratch by following https://github.com/nextcloud/all-in-one#how-to-properly-reset-the-instance and selecting a proper timezone."
exit 1
fi
# Delete the datadir once (needed for setting the correct credentials on old instances once)
if ! [ -f "$DUMP_DIR/export.failed" ] && ! [ -f "$DUMP_DIR/initial-cleanup-done" ]; then
set -ex
@@ -91,15 +101,17 @@ if ( [ -f "$DATADIR/PG_VERSION" ] && [ "$PG_MAJOR" != "$(cat "$DATADIR/PG_VERSIO
# Get the Owner
DB_OWNER="$(grep "$GREP_STRING" "$DUMP_FILE" | grep -oP 'Owner:.*$' | sed 's|Owner:||;s| ||g')"
if [ "$DB_OWNER" = "$POSTGRES_USER" ]; then
DIFFERENT_DB_OWNER=1
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
ALTER DATABASE "$POSTGRES_DB" OWNER TO "$POSTGRES_USER";
EOSQL
echo "Unfortunately was the found database owner of the dump file the same as the POSTGRES_USER $POSTGRES_USER"
echo "It is not possible to import a database dump from this database owner."
echo "However you might rename the owner in the dumpfile to something else."
exit 1
elif [ "$DB_OWNER" != "oc_$POSTGRES_USER" ]; then
DIFFERENT_DB_OWNER=1
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
CREATE USER "$DB_OWNER" WITH PASSWORD '$POSTGRES_PASSWORD' CREATEDB;
ALTER DATABASE "$POSTGRES_DB" OWNER TO "$DB_OWNER";
GRANT ALL PRIVILEGES ON DATABASE "$POSTGRES_DB" TO "$DB_OWNER";
GRANT ALL PRIVILEGES ON SCHEMA public TO "$DB_OWNER";
EOSQL
fi

View File

@@ -1,7 +1,7 @@
# From https://github.com/docker-library/redis/blob/master/6.2/alpine/Dockerfile
FROM redis:6.2.8-alpine
# From https://github.com/docker-library/redis/blob/master/7.0/alpine/Dockerfile
FROM redis:7.0.8-alpine
RUN apk add --update --no-cache openssl bash
RUN apk add --no-cache openssl bash
COPY start.sh /usr/bin/
RUN chmod +x /usr/bin/start.sh
@@ -12,4 +12,5 @@ RUN echo "root:$(openssl rand -base64 12)" | chpasswd
USER redis
ENTRYPOINT ["start.sh"]
HEALTHCHECK CMD redis-cli -a $REDIS_HOST_PASSWORD PING || exit 1
HEALTHCHECK CMD redis-cli -a $REDIS_HOST_PASSWORD PING || exit 1
LABEL com.centurylinklabs.watchtower.monitor-only="true"

View File

@@ -1,5 +1,11 @@
#!/bin/bash
# Show wiki if vm.overcommit is disabled
if [ "$(sysctl -n vm.overcommit_memory)" != "1" ]; then
echo "Memory overcommit is disabled but necessary for safe operation"
echo "See https://github.com/nextcloud/all-in-one/discussions/1731 how to enable overcommit"
fi
# Run redis with a password if provided
if [ -n "$REDIS_HOST_PASSWORD" ]; then
exec redis-server --requirepass "$REDIS_HOST_PASSWORD"

View File

@@ -1,4 +1,4 @@
FROM ubuntu:focal-20221130
FROM ubuntu:focal-20230126
RUN set -ex; \
\
@@ -71,4 +71,5 @@ USER talk
ENTRYPOINT ["start.sh"]
CMD ["/usr/bin/supervisord", "-c", "/supervisord.conf"]
HEALTHCHECK CMD (nc -z localhost 8081 && nc -z localhost 8188 && nc -z localhost 4222 && nc -z localhost $TALK_PORT) || exit 1
HEALTHCHECK CMD (nc -z localhost 8081 && nc -z localhost 8188 && nc -z localhost 4222 && nc -z localhost $TALK_PORT) || exit 1
LABEL com.centurylinklabs.watchtower.monitor-only="true"

View File

@@ -1,9 +1,9 @@
# From https://github.com/containrrr/watchtower/blob/main/dockerfiles/Dockerfile.self-contained
FROM containrrr/watchtower:1.5.1 as watchtower
FROM containrrr/watchtower:1.5.3 as watchtower
FROM alpine:3.16.3
FROM alpine:3.17.1
RUN apk add --update --no-cache bash
RUN apk add --no-cache bash
COPY --from=watchtower /watchtower /
COPY start.sh /
@@ -11,3 +11,4 @@ RUN chmod +x /start.sh
USER root
ENTRYPOINT ["/start.sh"]
LABEL com.centurylinklabs.watchtower.monitor-only="true"

View File

@@ -13,14 +13,14 @@ services:
- nextcloud_aio_mastercontainer:/mnt/docker-aio-config # This line is not allowed to be changed
- /var/run/docker.sock:/var/run/docker.sock:ro # May be changed on macOS, Windows or docker rootless. See the applicable documentation. If adjusting, don't forget to also set 'DOCKER_SOCKET_PATH'!
ports:
- 80:80 # Can be removed when running behind a reverse proxy. See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md
- 80:80 # Can be removed when running behind a web server or reverse proxy (like Apache, Nginx and else). See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md
- 8080:8080
- 8443:8443 # Can be removed when running behind a reverse proxy. See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md
- 8443:8443 # Can be removed when running behind a web server or reverse proxy (like Apache, Nginx and else). See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md
# environment: # Is needed when using any of the options below
# - APACHE_PORT=11000 # Is needed when running behind a reverse proxy. See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md
# - APACHE_IP_BINDING=127.0.0.1 # Should be set when running behind a reverse proxy that is running on the same host. See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md
# - APACHE_PORT=11000 # Is needed when running behind a web server or reverse proxy (like Apache, Nginx and else). See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md
# - APACHE_IP_BINDING=127.0.0.1 # Should be set when running behind a web server or reverse proxy (like Apache, Nginx and else) that is running on the same host. See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md
# - COLLABORA_SECCOMP_DISABLED=false # Setting this to true allows to disable Collabora's Seccomp feature. See https://github.com/nextcloud/all-in-one#how-to-disable-collaboras-seccomp-feature
# - DOCKER_SOCKET_PATH=/var/run/docker.sock # Needs to be specified if the docker socket on the host is not located in the default '/var/run/docker.sock'. Otherwise mastercontainer updates will fail.
# - DOCKER_SOCKET_PATH=/var/run/docker.sock # Needs to be specified if the docker socket on the host is not located in the default '/var/run/docker.sock'. Otherwise mastercontainer updates will fail. For macos it needs to be '/var/run/docker.sock'
# - DISABLE_BACKUP_SECTION=false # Setting this to true allows to hide the backup section in the AIO interface.
# - NEXTCLOUD_DATADIR=/mnt/ncdata # Allows to set the host directory for Nextcloud's datadir. See https://github.com/nextcloud/all-in-one#how-to-change-the-default-location-of-nextclouds-datadir
# - NEXTCLOUD_MOUNT=/mnt/ # Allows the Nextcloud container to access the chosen directory on the host. See https://github.com/nextcloud/all-in-one#how-to-allow-the-nextcloud-container-to-access-directories-on-the-host
@@ -28,9 +28,10 @@ services:
# - NEXTCLOUD_MAX_TIME=3600 # Can be adjusted if you need more. See https://github.com/nextcloud/all-in-one#how-to-adjust-the-max-execution-time-for-nextcloud
# - NEXTCLOUD_MEMORY_LIMIT=512M # Can be adjusted if you need more. See https://github.com/nextcloud/all-in-one#how-to-adjust-the-php-memory-limit-for-nextcloud
# - NEXTCLOUD_TRUSTED_CACERTS_DIR=/path/to/my/cacerts # CA certificates in this directory will be trusted by the OS of the nexcloud container (Useful e.g. for LDAPS) See See https://github.com/nextcloud/all-in-one#how-to-trust-user-defiend-certification-authorities-ca
# - NEXTCLOUD_STARTUP_APPS=deck tasks calendar contacts # Allows to modify the Nextcloud apps that are installed on starting AIO the first time. See https://github.com/nextcloud/all-in-one#how-to-change-the-nextcloud-apps-that-are-installed-on-the-first-startup
# - NEXTCLOUD_ADDITIONAL_APKS=imagemagick # This allows to add additional packages to the Nextcloud container permanently. Default is imagemagick but can be overwritten by modifying this value. See https://github.com/nextcloud/all-in-one#how-to-add-packets-permanently-to-the-nextcloud-container
# - NEXTCLOUD_STARTUP_APPS=deck twofactor_totp tasks calendar contacts # Allows to modify the Nextcloud apps that are installed on starting AIO the first time. See https://github.com/nextcloud/all-in-one#how-to-change-the-nextcloud-apps-that-are-installed-on-the-first-startup
# - NEXTCLOUD_ADDITIONAL_APKS=imagemagick # This allows to add additional packages to the Nextcloud container permanently. Default is imagemagick but can be overwritten by modifying this value. See https://github.com/nextcloud/all-in-one#how-to-add-os-packages-permanently-to-the-nextcloud-container
# - NEXTCLOUD_ADDITIONAL_PHP_EXTENSIONS=imagick # This allows to add additional php extensions to the Nextcloud container permanently. Default is imagick but can be overwritten by modifying this value. See https://github.com/nextcloud/all-in-one#how-to-add-php-extensions-permanently-to-the-nextcloud-container
# - NEXTCLOUD_ENABLE_DRI_DEVICE=true # This allows to enable the /dev/dri device in the Nextcloud container which is needed for hardware-transcoding. See https://github.com/nextcloud/all-in-one#how-to-enable-hardware-transcoding-for-nextcloud
# - TALK_PORT=3478 # This allows to adjust the port that the talk container is using.
# # Optional: Caddy reverse proxy. See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md

View File

@@ -12,3 +12,5 @@ You can run AIO with docker rootless by following the steps below.
1. Now everything should work like without docker rootless. You can consider using docker-compose for this or running it behind a reverse proxy. Basically the only thing that needs to be adjusted always in the startup command or docker-compose file (after installing docker rootles) are things that are mentioned in point 3.
**Please note:** All files outside the containers get created, written to and accessed as the user that is running the docker daemon or a subuid of it. So for the built-in backup to work you need to allow this user to write to the target directory. E.g. with `sudo chown -R USERNAME:GROUPNAME /mnt/backup`. The same applies when changing Nextcloud's datadir. E.g. `sudo chown -R USERNAME:GROUPNAME /mnt/ncdata`. When you want to use the NEXTCLOUD_MOUNT option for local external storage, you need to adjust the permissions of the chosen folders to be accessible/writeable by the userid `100032:100032` (if running `grep ^$(whoami): /etc/subuid` as the user that is running the docker daemon returns 100000 as first value).
⚠️ **Additional note:** Almost all commands in this project's documentation use `sudo docker ...`. Since `sudo` is not needed in case of docker rootless, you simply remove `sudo` from the commands and they should work.

9
helm-chart/Chart.yaml Executable file
View File

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

3
helm-chart/readme.md Executable file
View File

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

View File

@@ -0,0 +1,73 @@
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml
kompose.version: 1.28.0 (c4137012e)
labels:
io.kompose.service: nextcloud-aio-apache
name: nextcloud-aio-apache
spec:
replicas: 1
selector:
matchLabels:
io.kompose.service: nextcloud-aio-apache
template:
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml
kompose.version: 1.28.0 (c4137012e)
labels:
io.kompose.network/nextcloud-aio: "true"
io.kompose.service: nextcloud-aio-apache
spec:
initContainers:
- name: init-volumes
image: alpine
command:
- chmod
- "777"
- /nextcloud-aio-nextcloud
- /nextcloud-aio-apache
volumeMounts:
- name: nextcloud-aio-apache
mountPath: /nextcloud-aio-apache
- name: nextcloud-aio-nextcloud
mountPath: /nextcloud-aio-nextcloud
containers:
- env:
- name: APACHE_MAX_SIZE
value: "{{ .Values.APACHE_MAX_SIZE }}"
- name: APACHE_MAX_TIME
value: "{{ .Values.NEXTCLOUD_MAX_TIME }}"
- name: APACHE_PORT
value: "{{ .Values.APACHE_PORT }}"
- name: COLLABORA_HOST
value: nextcloud-aio-collabora
- name: NC_DOMAIN
value: "{{ .Values.NC_DOMAIN }}"
- name: NEXTCLOUD_HOST
value: nextcloud-aio-nextcloud
- name: ONLYOFFICE_HOST
value: nextcloud-aio-onlyoffice
- name: TALK_HOST
value: nextcloud-aio-talk
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-apache:20230124_100035-{{ .Values.IMAGE_TAG }}
name: nextcloud-aio-apache
ports:
- containerPort: {{ .Values.APACHE_PORT }}
volumeMounts:
- mountPath: /var/www/html
name: nextcloud-aio-nextcloud
readOnly: true
- mountPath: /mnt/data
name: nextcloud-aio-apache
volumes:
- name: nextcloud-aio-nextcloud
persistentVolumeClaim:
claimName: nextcloud-aio-nextcloud
- name: nextcloud-aio-apache
persistentVolumeClaim:
claimName: nextcloud-aio-apache

View File

@@ -0,0 +1,15 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
io.kompose.service: nextcloud-aio-apache
name: nextcloud-aio-apache
spec:
{{- if .Values.STORAGE_CLASS }}
storageClassName: {{ .Values.STORAGE_CLASS }}
{{- end }}
accessModes:
- ReadWriteOnce
resources:
requests:
storage: {{ .Values.APACHE_STORAGE_SIZE }}

View File

@@ -0,0 +1,17 @@
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-apache
name: nextcloud-aio-apache
spec:
type: LoadBalancer
ports:
- name: "{{ .Values.APACHE_PORT }}"
port: {{ .Values.APACHE_PORT }}
targetPort: {{ .Values.APACHE_PORT }}
selector:
io.kompose.service: nextcloud-aio-apache

View File

@@ -0,0 +1,52 @@
{{- if eq .Values.CLAMAV_ENABLED "yes" }}
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml
kompose.version: 1.28.0 (c4137012e)
labels:
io.kompose.service: nextcloud-aio-clamav
name: nextcloud-aio-clamav
spec:
replicas: 1
selector:
matchLabels:
io.kompose.service: nextcloud-aio-clamav
template:
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml
kompose.version: 1.28.0 (c4137012e)
labels:
io.kompose.network/nextcloud-aio: "true"
io.kompose.service: nextcloud-aio-clamav
spec:
initContainers:
- name: init-volumes
image: alpine
command:
- chmod
- "777"
- /nextcloud-aio-clamav
volumeMounts:
- name: nextcloud-aio-clamav
mountPath: /nextcloud-aio-clamav
containers:
- env:
- name: CLAMD_STARTUP_TIMEOUT
value: "90"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-clamav:20230124_100035-{{ .Values.IMAGE_TAG }}
name: nextcloud-aio-clamav
ports:
- containerPort: 3310
volumeMounts:
- mountPath: /var/lib/clamav
name: nextcloud-aio-clamav
volumes:
- name: nextcloud-aio-clamav
persistentVolumeClaim:
claimName: nextcloud-aio-clamav
{{- end }}

View File

@@ -0,0 +1,15 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
io.kompose.service: nextcloud-aio-clamav
name: nextcloud-aio-clamav
spec:
{{- if .Values.STORAGE_CLASS }}
storageClassName: {{ .Values.STORAGE_CLASS }}
{{- end }}
accessModes:
- ReadWriteOnce
resources:
requests:
storage: {{ .Values.CLAMAV_STORAGE_SIZE }}

View File

@@ -0,0 +1,18 @@
{{- if eq .Values.CLAMAV_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-clamav
name: nextcloud-aio-clamav
spec:
ports:
- name: "3310"
port: 3310
targetPort: 3310
selector:
io.kompose.service: nextcloud-aio-clamav
{{- end }}

View File

@@ -0,0 +1,56 @@
{{- if eq .Values.COLLABORA_ENABLED "yes" }}
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml
kompose.version: 1.28.0 (c4137012e)
labels:
io.kompose.service: nextcloud-aio-collabora
name: nextcloud-aio-collabora
spec:
replicas: 1
selector:
matchLabels:
io.kompose.service: nextcloud-aio-collabora
template:
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml
kompose.version: 1.28.0 (c4137012e)
labels:
io.kompose.network/nextcloud-aio: "true"
io.kompose.service: nextcloud-aio-collabora
spec:
initContainers:
- name: init-volumes
image: alpine
command:
- chmod
- "777"
- /nextcloud-aio-collabora-fonts
volumeMounts:
- name: nextcloud-aio-collabora-fonts
mountPath: /nextcloud-aio-collabora-fonts
containers:
- env:
- name: TZ
value: "{{ .Values.TIMEZONE }}"
- name: aliasgroup1
value: https://{{ .Values.NC_DOMAIN }}:443
- name: dictionaries
value: "{{ .Values.COLLABORA_DICTIONARIES }}"
- name: extra_params
value: --o:ssl.enable=false --o:ssl.termination=true --o:logging.level=warning --o:home_mode.enable=true {{ .Values.COLLABORA_SECCOMP_POLICY }} --o:remote_font_config.url=https://{{ .Values.NC_DOMAIN }}/apps/richdocuments/settings/fonts.json
image: nextcloud/aio-collabora:20230124_100035-{{ .Values.IMAGE_TAG }}
name: nextcloud-aio-collabora
ports:
- containerPort: 9980
volumeMounts:
- mountPath: /opt/cool/systemplate/tmpfonts
name: nextcloud-aio-collabora-fonts
volumes:
- name: nextcloud-aio-collabora-fonts
persistentVolumeClaim:
claimName: nextcloud-aio-collabora-fonts
{{- end }}

View File

@@ -0,0 +1,15 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
io.kompose.service: nextcloud-aio-collabora-fonts
name: nextcloud-aio-collabora-fonts
spec:
{{- if .Values.STORAGE_CLASS }}
storageClassName: {{ .Values.STORAGE_CLASS }}
{{- end }}
accessModes:
- ReadWriteOnce
resources:
requests:
storage: {{ .Values.COLLABORA_FONTS_STORAGE_SIZE }}

View File

@@ -0,0 +1,18 @@
{{- if eq .Values.COLLABORA_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-collabora
name: nextcloud-aio-collabora
spec:
ports:
- name: "9980"
port: 9980
targetPort: 9980
selector:
io.kompose.service: nextcloud-aio-collabora
{{- end }}

View File

@@ -0,0 +1,65 @@
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml
kompose.version: 1.28.0 (c4137012e)
labels:
io.kompose.service: nextcloud-aio-database
name: nextcloud-aio-database
spec:
replicas: 1
selector:
matchLabels:
io.kompose.service: nextcloud-aio-database
template:
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml
kompose.version: 1.28.0 (c4137012e)
labels:
io.kompose.network/nextcloud-aio: "true"
io.kompose.service: nextcloud-aio-database
spec:
initContainers:
- name: init-volumes
image: alpine
command:
- chown
- 999:999
- /nextcloud-aio-database
- /nextcloud-aio-database-dump
volumeMounts:
- name: nextcloud-aio-database-dump
mountPath: /nextcloud-aio-database-dump
- name: nextcloud-aio-database
mountPath: /nextcloud-aio-database
containers:
- env:
- name: PGTZ
value: "{{ .Values.TIMEZONE }}"
- name: POSTGRES_DB
value: nextcloud_database
- name: POSTGRES_PASSWORD
value: "{{ .Values.DATABASE_PASSWORD }}"
- name: POSTGRES_USER
value: nextcloud
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-postgresql:20230124_100035-{{ .Values.IMAGE_TAG }}
name: nextcloud-aio-database
ports:
- containerPort: 5432
volumeMounts:
- mountPath: /var/lib/postgresql/data
name: nextcloud-aio-database
- mountPath: /mnt/data
name: nextcloud-aio-database-dump
terminationGracePeriodSeconds: 1800
volumes:
- name: nextcloud-aio-database
persistentVolumeClaim:
claimName: nextcloud-aio-database
- name: nextcloud-aio-database-dump
persistentVolumeClaim:
claimName: nextcloud-aio-database-dump

View File

@@ -0,0 +1,15 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
io.kompose.service: nextcloud-aio-database-dump
name: nextcloud-aio-database-dump
spec:
{{- if .Values.STORAGE_CLASS }}
storageClassName: {{ .Values.STORAGE_CLASS }}
{{- end }}
accessModes:
- ReadWriteOnce
resources:
requests:
storage: {{ .Values.DATABASE_DUMP_STORAGE_SIZE }}

View File

@@ -0,0 +1,15 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
io.kompose.service: nextcloud-aio-database
name: nextcloud-aio-database
spec:
{{- if .Values.STORAGE_CLASS }}
storageClassName: {{ .Values.STORAGE_CLASS }}
{{- end }}
accessModes:
- ReadWriteOnce
resources:
requests:
storage: {{ .Values.DATABASE_STORAGE_SIZE }}

View File

@@ -0,0 +1,16 @@
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-database
name: nextcloud-aio-database
spec:
ports:
- name: "5432"
port: 5432
targetPort: 5432
selector:
io.kompose.service: nextcloud-aio-database

View File

@@ -0,0 +1,15 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
io.kompose.service: nextcloud-aio-elasticsearch
name: nextcloud-aio-elasticsearch
spec:
{{- if .Values.STORAGE_CLASS }}
storageClassName: {{ .Values.STORAGE_CLASS }}
{{- end }}
accessModes:
- ReadWriteOnce
resources:
requests:
storage: {{ .Values.ELASTICSEARCH_STORAGE_SIZE }}

View File

@@ -0,0 +1,56 @@
{{- if eq .Values.FULLTEXTSEARCH_ENABLED "yes" }}
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml
kompose.version: 1.28.0 (c4137012e)
labels:
io.kompose.service: nextcloud-aio-fulltextsearch
name: nextcloud-aio-fulltextsearch
spec:
replicas: 1
selector:
matchLabels:
io.kompose.service: nextcloud-aio-fulltextsearch
template:
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml
kompose.version: 1.28.0 (c4137012e)
labels:
io.kompose.network/nextcloud-aio: "true"
io.kompose.service: nextcloud-aio-fulltextsearch
spec:
initContainers:
- name: init-volumes
image: alpine
command:
- chmod
- "777"
- /nextcloud-aio-elasticsearch
volumeMounts:
- name: nextcloud-aio-elasticsearch
mountPath: /nextcloud-aio-elasticsearch
containers:
- 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 }}
name: nextcloud-aio-fulltextsearch
ports:
- containerPort: 9200
volumeMounts:
- mountPath: /usr/share/elasticsearch/data
name: nextcloud-aio-elasticsearch
volumes:
- name: nextcloud-aio-elasticsearch
persistentVolumeClaim:
claimName: nextcloud-aio-elasticsearch
{{- end }}

View File

@@ -0,0 +1,18 @@
{{- if eq .Values.FULLTEXTSEARCH_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-fulltextsearch
name: nextcloud-aio-fulltextsearch
spec:
ports:
- name: "9200"
port: 9200
targetPort: 9200
selector:
io.kompose.service: nextcloud-aio-fulltextsearch
{{- end }}

View File

@@ -0,0 +1,33 @@
{{- if eq .Values.IMAGINARY_ENABLED "yes" }}
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml
kompose.version: 1.28.0 (c4137012e)
labels:
io.kompose.service: nextcloud-aio-imaginary
name: nextcloud-aio-imaginary
spec:
replicas: 1
selector:
matchLabels:
io.kompose.service: nextcloud-aio-imaginary
template:
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml
kompose.version: 1.28.0 (c4137012e)
labels:
io.kompose.network/nextcloud-aio: "true"
io.kompose.service: nextcloud-aio-imaginary
spec:
containers:
- env:
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-imaginary:20230124_100035-{{ .Values.IMAGE_TAG }}
name: nextcloud-aio-imaginary
ports:
- containerPort: 9000
{{- end }}

View File

@@ -0,0 +1,18 @@
{{- if eq .Values.IMAGINARY_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-imaginary
name: nextcloud-aio-imaginary
spec:
ports:
- name: "9000"
port: 9000
targetPort: 9000
selector:
io.kompose.service: nextcloud-aio-imaginary
{{- end }}

View File

@@ -0,0 +1,13 @@
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: nextcloud-aio
spec:
ingress:
- from:
- podSelector:
matchLabels:
io.kompose.network/nextcloud-aio: "true"
podSelector:
matchLabels:
io.kompose.network/nextcloud-aio: "true"

View File

@@ -0,0 +1,15 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
io.kompose.service: nextcloud-aio-nextcloud-data
name: nextcloud-aio-nextcloud-data
spec:
{{- if .Values.STORAGE_CLASS }}
storageClassName: {{ .Values.STORAGE_CLASS }}
{{- end }}
accessModes:
- ReadWriteOnce
resources:
requests:
storage: {{ .Values.NEXTCLOUD_DATA_STORAGE_SIZE }}

View File

@@ -0,0 +1,137 @@
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml
kompose.version: 1.28.0 (c4137012e)
labels:
io.kompose.service: nextcloud-aio-nextcloud
name: nextcloud-aio-nextcloud
spec:
replicas: 1
selector:
matchLabels:
io.kompose.service: nextcloud-aio-nextcloud
template:
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml
kompose.version: 1.28.0 (c4137012e)
labels:
io.kompose.network/nextcloud-aio: "true"
io.kompose.service: nextcloud-aio-nextcloud
spec:
initContainers:
- name: init-volumes
image: alpine
command:
- chmod
- "777"
- /nextcloud-aio-nextcloud
- /nextcloud-aio-nextcloud-trusted-cacerts
volumeMounts:
- name: nextcloud-aio-nextcloud-trusted-cacerts
mountPath: /nextcloud-aio-nextcloud-trusted-cacerts
- name: nextcloud-aio-nextcloud
mountPath: /nextcloud-aio-nextcloud
containers:
- env:
- name: ADDITIONAL_APKS
value: "{{ .Values.NEXTCLOUD_ADDITIONAL_APKS }}"
- name: ADDITIONAL_PHP_EXTENSIONS
value: "{{ .Values.NEXTCLOUD_ADDITIONAL_PHP_EXTENSIONS }}"
- name: ADMIN_PASSWORD
value: "{{ .Values.NEXTCLOUD_PASSWORD }}"
- name: ADMIN_USER
value: admin
- name: AIO_TOKEN
value: "{{ .Values.AIO_TOKEN }}"
- name: AIO_URL
value: "{{ .Values.AIO_URL }}"
- name: CLAMAV_ENABLED
value: "{{ .Values.CLAMAV_ENABLED }}"
- name: CLAMAV_HOST
value: nextcloud-aio-clamav
- name: COLLABORA_ENABLED
value: "{{ .Values.COLLABORA_ENABLED }}"
- name: COLLABORA_HOST
value: nextcloud-aio-collabora
- name: FULLTEXTSEARCH_ENABLED
value: "{{ .Values.FULLTEXTSEARCH_ENABLED }}"
- name: FULLTEXTSEARCH_HOST
value: nextcloud-aio-fulltextsearch
- name: IMAGINARY_ENABLED
value: "{{ .Values.IMAGINARY_ENABLED }}"
- name: IMAGINARY_HOST
value: nextcloud-aio-imaginary
- name: NC_DOMAIN
value: "{{ .Values.NC_DOMAIN }}"
- name: NEXTCLOUD_DATA_DIR
value: /mnt/ncdata
- name: ONLYOFFICE_ENABLED
value: "{{ .Values.ONLYOFFICE_ENABLED }}"
- name: ONLYOFFICE_HOST
value: nextcloud-aio-onlyoffice
- name: ONLYOFFICE_SECRET
value: "{{ .Values.ONLYOFFICE_SECRET }}"
- name: OVERWRITEHOST
value: "{{ .Values.NC_DOMAIN }}"
- name: OVERWRITEPROTOCOL
value: https
- name: PHP_MAX_TIME
value: "{{ .Values.NEXTCLOUD_MAX_TIME }}"
- name: PHP_MEMORY_LIMIT
value: "{{ .Values.NEXTCLOUD_MEMORY_LIMIT }}"
- name: PHP_UPLOAD_LIMIT
value: "{{ .Values.NEXTCLOUD_UPLOAD_LIMIT }}"
- name: POSTGRES_DB
value: nextcloud_database
- name: POSTGRES_HOST
value: nextcloud-aio-database
- name: POSTGRES_PASSWORD
value: "{{ .Values.DATABASE_PASSWORD }}"
- name: POSTGRES_USER
value: nextcloud
- name: REDIS_HOST
value: nextcloud-aio-redis
- name: REDIS_HOST_PASSWORD
value: "{{ .Values.REDIS_PASSWORD }}"
- name: SIGNALING_SECRET
value: "{{ .Values.SIGNALING_SECRET }}"
- name: STARTUP_APPS
value: "{{ .Values.NEXTCLOUD_STARTUP_APPS }}"
- name: TALK_ENABLED
value: "{{ .Values.TALK_ENABLED }}"
- name: TALK_PORT
value: "{{ .Values.TALK_PORT }}"
- name: TRUSTED_CACERTS_DIR
value: "{{ .Values.NEXTCLOUD_TRUSTED_CACERTS_DIR }}"
- name: TURN_SECRET
value: "{{ .Values.TURN_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
- name: UPDATE_NEXTCLOUD_APPS
value: "{{ .Values.UPDATE_NEXTCLOUD_APPS }}"
image: nextcloud/aio-nextcloud:20230124_100035-{{ .Values.IMAGE_TAG }}
name: nextcloud-aio-nextcloud
ports:
- containerPort: 9000
- containerPort: 7867
volumeMounts:
- mountPath: /var/www/html
name: nextcloud-aio-nextcloud
- mountPath: /mnt/ncdata
name: nextcloud-aio-nextcloud-data
- mountPath: /usr/local/share/ca-certificates
name: nextcloud-aio-nextcloud-trusted-cacerts
readOnly: true
volumes:
- name: nextcloud-aio-nextcloud
persistentVolumeClaim:
claimName: nextcloud-aio-nextcloud
- name: nextcloud-aio-nextcloud-data
persistentVolumeClaim:
claimName: nextcloud-aio-nextcloud-data
- name: nextcloud-aio-nextcloud-trusted-cacerts
persistentVolumeClaim:
claimName: nextcloud-aio-nextcloud-trusted-cacerts

View File

@@ -0,0 +1,15 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
io.kompose.service: nextcloud-aio-nextcloud
name: nextcloud-aio-nextcloud
spec:
{{- if .Values.STORAGE_CLASS }}
storageClassName: {{ .Values.STORAGE_CLASS }}
{{- end }}
accessModes:
- ReadWriteOnce
resources:
requests:
storage: {{ .Values.NEXTCLOUD_STORAGE_SIZE }}

View File

@@ -0,0 +1,19 @@
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-nextcloud
name: nextcloud-aio-nextcloud
spec:
ports:
- name: "9000"
port: 9000
targetPort: 9000
- name: "7867"
port: 7867
targetPort: 7867
selector:
io.kompose.service: nextcloud-aio-nextcloud

View File

@@ -0,0 +1,15 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
io.kompose.service: nextcloud-aio-nextcloud-trusted-cacerts
name: nextcloud-aio-nextcloud-trusted-cacerts
spec:
{{- if .Values.STORAGE_CLASS }}
storageClassName: {{ .Values.STORAGE_CLASS }}
{{- end }}
accessModes:
- ReadWriteOnce
resources:
requests:
storage: {{ .Values.NEXTCLOUD_TRUSTED_CACERTS_STORAGE_SIZE }}

View File

@@ -0,0 +1,56 @@
{{- if eq .Values.ONLYOFFICE_ENABLED "yes" }}
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml
kompose.version: 1.28.0 (c4137012e)
labels:
io.kompose.service: nextcloud-aio-onlyoffice
name: nextcloud-aio-onlyoffice
spec:
replicas: 1
selector:
matchLabels:
io.kompose.service: nextcloud-aio-onlyoffice
template:
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml
kompose.version: 1.28.0 (c4137012e)
labels:
io.kompose.network/nextcloud-aio: "true"
io.kompose.service: nextcloud-aio-onlyoffice
spec:
initContainers:
- name: init-volumes
image: alpine
command:
- chmod
- "777"
- /nextcloud-aio-onlyoffice
volumeMounts:
- name: nextcloud-aio-onlyoffice
mountPath: /nextcloud-aio-onlyoffice
containers:
- env:
- name: JWT_ENABLED
value: "true"
- name: JWT_HEADER
value: AuthorizationJwt
- name: JWT_SECRET
value: "{{ .Values.ONLYOFFICE_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-onlyoffice:20230124_100035-{{ .Values.IMAGE_TAG }}
name: nextcloud-aio-onlyoffice
ports:
- containerPort: 80
volumeMounts:
- mountPath: /var/lib/onlyoffice
name: nextcloud-aio-onlyoffice
volumes:
- name: nextcloud-aio-onlyoffice
persistentVolumeClaim:
claimName: nextcloud-aio-onlyoffice
{{- end }}

View File

@@ -0,0 +1,15 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
io.kompose.service: nextcloud-aio-onlyoffice
name: nextcloud-aio-onlyoffice
spec:
{{- if .Values.STORAGE_CLASS }}
storageClassName: {{ .Values.STORAGE_CLASS }}
{{- end }}
accessModes:
- ReadWriteOnce
resources:
requests:
storage: {{ .Values.ONLYOFFICE_STORAGE_SIZE }}

View File

@@ -0,0 +1,18 @@
{{- if eq .Values.ONLYOFFICE_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-onlyoffice
name: nextcloud-aio-onlyoffice
spec:
ports:
- name: "80"
port: 80
targetPort: 80
selector:
io.kompose.service: nextcloud-aio-onlyoffice
{{- end }}

View File

@@ -0,0 +1,50 @@
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml
kompose.version: 1.28.0 (c4137012e)
labels:
io.kompose.service: nextcloud-aio-redis
name: nextcloud-aio-redis
spec:
replicas: 1
selector:
matchLabels:
io.kompose.service: nextcloud-aio-redis
template:
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml
kompose.version: 1.28.0 (c4137012e)
labels:
io.kompose.network/nextcloud-aio: "true"
io.kompose.service: nextcloud-aio-redis
spec:
initContainers:
- name: init-volumes
image: alpine
command:
- chmod
- "777"
- /nextcloud-aio-redis
volumeMounts:
- name: nextcloud-aio-redis
mountPath: /nextcloud-aio-redis
containers:
- env:
- name: REDIS_HOST_PASSWORD
value: "{{ .Values.REDIS_PASSWORD }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-redis:20230124_100035-{{ .Values.IMAGE_TAG }}
name: nextcloud-aio-redis
ports:
- containerPort: 6379
volumeMounts:
- mountPath: /data
name: nextcloud-aio-redis
volumes:
- name: nextcloud-aio-redis
persistentVolumeClaim:
claimName: nextcloud-aio-redis

View File

@@ -0,0 +1,15 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
io.kompose.service: nextcloud-aio-redis
name: nextcloud-aio-redis
spec:
{{- if .Values.STORAGE_CLASS }}
storageClassName: {{ .Values.STORAGE_CLASS }}
{{- end }}
accessModes:
- ReadWriteOnce
resources:
requests:
storage: {{ .Values.REDIS_STORAGE_SIZE }}

View File

@@ -0,0 +1,16 @@
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-redis
name: nextcloud-aio-redis
spec:
ports:
- name: "6379"
port: 6379
targetPort: 6379
selector:
io.kompose.service: nextcloud-aio-redis

View File

@@ -0,0 +1,46 @@
{{- if eq .Values.TALK_ENABLED "yes" }}
apiVersion: apps/v1
kind: Deployment
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
spec:
replicas: 1
selector:
matchLabels:
io.kompose.service: nextcloud-aio-talk
template:
metadata:
annotations:
kompose.cmd: kompose convert -c -f latest.yml
kompose.version: 1.28.0 (c4137012e)
labels:
io.kompose.network/nextcloud-aio: "true"
io.kompose.service: nextcloud-aio-talk
spec:
containers:
- env:
- name: JANUS_API_KEY
value: "{{ .Values.JANUS_API_KEY }}"
- name: NC_DOMAIN
value: "{{ .Values.NC_DOMAIN }}"
- name: SIGNALING_SECRET
value: "{{ .Values.SIGNALING_SECRET }}"
- name: TALK_PORT
value: "{{ .Values.TALK_PORT }}"
- name: TURN_SECRET
value: "{{ .Values.TURN_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-talk:20230124_100035-{{ .Values.IMAGE_TAG }}
name: nextcloud-aio-talk
ports:
- containerPort: {{ .Values.TALK_PORT }}
- containerPort: {{ .Values.TALK_PORT }}
protocol: UDP
- containerPort: 8081
{{- end }}

View File

@@ -0,0 +1,41 @@
{{- 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:
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
spec:
ports:
- name: "8081"
port: 8081
targetPort: 8081
selector:
io.kompose.service: nextcloud-aio-talk
{{- end }}

202
helm-chart/update-helm.sh Executable file
View File

@@ -0,0 +1,202 @@
#!/bin/bash
DOCKER_TAG="$1"
# Clean
rm -f ./helm-chart/values.yaml
rm -rf ./helm-chart/templates
# Install kompose
LATEST_KOMPOSE="$(git ls-remote --tags https://github.com/kubernetes/kompose.git | cut -d/ -f3 | grep -viE -- 'rc|b' | sort -V | tail -1)"
curl -L https://github.com/kubernetes/kompose/releases/download/"$LATEST_KOMPOSE"/kompose-linux-amd64 -o kompose
chmod +x kompose
sudo mv ./kompose /usr/local/bin/kompose
set -ex
# Conversion of docker-compose
cd manual-install
cp latest.yml latest.yml.backup
cp sample.conf /tmp/
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|\${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
sed -i "s|- \${APACHE_PORT}|- $APACHE_PORT|" latest.yml
sed -i "s|- \${TALK_PORT}|- $TALK_PORT|" latest.yml
sed -i "s|\${NEXTCLOUD_DATADIR}|$NEXTCLOUD_DATADIR|" latest.yml
sed -i "/NEXTCLOUD_DATADIR/d" latest.yml
sed -i "/\${NEXTCLOUD_MOUNT}/d" latest.yml
sed -i "/^volumes:/a\ \ nextcloud_aio_nextcloud_trusted_cacerts:\n \ \ \ \ name: nextcloud_aio_nextcloud_trusted_cacerts" latest.yml
sed -i "s|\${NEXTCLOUD_TRUSTED_CACERTS_DIR}:|nextcloud_aio_nextcloud_trusted_cacerts:|g#" latest.yml
sed -i 's|\${|{{ .Values.|g' latest.yml
sed -i 's|}| }}|g' latest.yml
cat latest.yml
kompose convert -c -f latest.yml
cd latest
mv ./templates/manual-install-nextcloud-aio-networkpolicy.yaml ./templates/nextcloud-aio-networkpolicy.yaml
# shellcheck disable=SC1083
find ./ -name '*networkpolicy.yaml' -exec sed -i "s|manual-install-nextcloud-aio|nextcloud-aio|" \{} \;
cat << EOL > /tmp/initcontainers
initContainers:
- name: init-volumes
image: alpine
command:
- chmod
- "777"
volumeMountsInitContainer:
EOL
cat << EOL > /tmp/initcontainers.database
initContainers:
- name: init-volumes
image: alpine
command:
- chown
- 999:999
volumeMountsInitContainer:
EOL
# shellcheck disable=SC1083
DEPLOYMENTS="$(find ./ -name '*deployment.yaml')"
mapfile -t DEPLOYMENTS <<< "$DEPLOYMENTS"
for variable in "${DEPLOYMENTS[@]}"; do
if grep -q volumeMounts "$variable"; then
if ! echo "$variable" | grep -q database; then
sed -i "/^ spec:/r /tmp/initcontainers" "$variable"
else
sed -i "/^ spec:/r /tmp/initcontainers.database" "$variable"
fi
volumeNames="$(grep -A1 mountPath "$variable" | grep -v mountPath | sed 's|.*name: ||' | sed '/^--$/d')"
mapfile -t volumeNames <<< "$volumeNames"
for volumeName in "${volumeNames[@]}"; do
# 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
claimNames="$(grep claimName "$variable")"
mapfile -t claimNames <<< "$claimNames"
for claimName in "${claimNames[@]}"; do
if grep -A1 "^$claimName$" "$variable" | grep -q "readOnly: true"; then
sed -i "/^$claimName$/{n;d}" "$variable"
fi
done
fi
fi
done
# shellcheck disable=SC1083
find ./ -name '*service.yaml' -exec sed -i "/^status:/,$ d" \{} \;
# shellcheck disable=SC1083
find ./ -name '*deployment.yaml' -exec sed -i "s|manual-install-nextcloud-aio|nextcloud-aio|" \{} \;
# shellcheck disable=SC1083
find ./ -name '*persistentvolumeclaim.yaml' -exec sed -i "s|ReadOnlyMany|ReadWriteOnce|" \{} \;
# shellcheck disable=SC1083
find ./ -name '*persistentvolumeclaim.yaml' -exec sed -i "/accessModes:/i\ \ {{- if .Values.STORAGE_CLASS }}" \{} \;
# shellcheck disable=SC1083
find ./ -name '*persistentvolumeclaim.yaml' -exec sed -i "/accessModes:/i\ \ storageClassName: {{ .Values.STORAGE_CLASS }}" \{} \;
# shellcheck disable=SC1083
find ./ -name '*persistentvolumeclaim.yaml' -exec sed -i "/accessModes:/i\ \ {{- end }}" \{} \;
# shellcheck disable=SC1083
find ./ -name '*deployment.yaml' -exec sed -i "/restartPolicy:/d" \{} \;
# shellcheck disable=SC1083
find ./ -name '*apache*' -exec sed -i "s|$APACHE_PORT|{{ .Values.APACHE_PORT }}|" \{} \;
# shellcheck disable=SC1083
find ./ -name '*talk*' -exec sed -i "s|$TALK_PORT|{{ .Values.TALK_PORT }}|" \{} \;
# shellcheck disable=SC1083
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
find ./ -name '*.yaml' -exec sed -i "/type: Recreate/d" \{} \;
# shellcheck disable=SC1083
find ./ -name '*.yaml' -exec sed -i "/strategy:/d" \{} \;
# shellcheck disable=SC1083
find ./ \( -not -name '*service.yaml' -name '*.yaml' \) -exec sed -i "/^status:/d" \{} \;
# shellcheck disable=SC1083
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')"
mapfile -t VOLUMES <<< "$VOLUMES"
for variable in "${VOLUMES[@]}"; do
name="$(echo "$variable" | sed 's|-|_|g' | tr '[:lower:]' '[:upper:]')_STORAGE_SIZE"
VOLUME_VARIABLE+=("$name")
# shellcheck disable=SC1083
find ./ -name "*nextcloud-aio-$variable-persistentvolumeclaim.yaml" -exec sed -i "s|storage: 100Mi|storage: {{ .Values.$name }}|" \{} \;
done
cd ../
mkdir -p ../helm-chart/
rm latest/Chart.yaml
rm latest/README.md
mv latest/* ../helm-chart/
rm -r latest
rm latest.yml
mv latest.yml.backup latest.yml
# Get version of AIO
AIO_VERSION="$(grep 'Nextcloud AIO ' ../php/templates/containers.twig | grep -oP '[0-9]+.[0-9]+.[0-9]+')"
sed -i "s|^version:.*|version: $AIO_VERSION|" ../helm-chart/Chart.yaml
# Conversion of sample.conf
cp sample.conf /tmp/
sed -i 's|"||g' /tmp/sample.conf
sed -i 's|=|: |' /tmp/sample.conf
sed -i 's|= |: |' /tmp/sample.conf
sed -i '/^NEXTCLOUD_DATADIR/d' /tmp/sample.conf
sed -i '/^APACHE_IP_BINDING/d' /tmp/sample.conf
sed -i '/^NEXTCLOUD_MOUNT/d' /tmp/sample.conf
sed -i '/_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
for variable in "${VOLUME_VARIABLE[@]}"; do
echo "$variable: 1Gi # You can change the size of the $(echo "$variable" | sed 's|_STORAGE_SIZE||;s|_|-|g' | tr '[:upper:]' '[:lower:]') volume that default to 1Gi with this value" >> /tmp/sample.conf
done
mv /tmp/sample.conf ../helm-chart/values.yaml
ENABLED_VARIABLES="$(grep -oP '^[A-Z]+_ENABLED' ../helm-chart/values.yaml)"
mapfile -t ENABLED_VARIABLES <<< "$ENABLED_VARIABLES"
cd ../helm-chart/
for variable in "${ENABLED_VARIABLES[@]}"; do
name="$(echo "$variable" | sed 's|_ENABLED||g' | tr '[:upper:]' '[:lower:]')"
# shellcheck disable=SC1083
find ./ -name "*nextcloud-aio-$name-deployment.yaml" -exec sed -i "1i\\{{- if eq .Values.$variable \"yes\" }}" \{} \;
# shellcheck disable=SC1083
find ./ -name "*nextcloud-aio-$name-deployment.yaml" -exec sed -i "$ a {{- end }}" \{} \;
# shellcheck disable=SC1083
find ./ -name "*nextcloud-aio-$name-service.yaml" -exec sed -i "1i\\{{- if eq .Values.$variable \"yes\" }}" \{} \;
# shellcheck disable=SC1083
find ./ -name "*nextcloud-aio-$name-service.yaml" -exec sed -i "$ a {{- end }}" \{} \;
done
chmod 777 -R ./
set +ex

43
helm-chart/values.yaml Executable file
View File

@@ -0,0 +1,43 @@
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_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
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_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!
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.
NEXTCLOUD_MAX_TIME: 3600 # This allows to change the upload time limit of the Nextcloud container
NEXTCLOUD_MEMORY_LIMIT: 512M # This allows to change the PHP memory limit of the Nextcloud container
NEXTCLOUD_PASSWORD: # TODO! This is the password of the initially created Nextcloud admin with username admin.
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" (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_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.
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

View File

@@ -13,7 +13,7 @@ The recommended way is the following:
You can alternatively use the ACME DNS-challenge to get a valid certificate for Nextcloud. Here is described how to set it up: https://github.com/nextcloud/all-in-one#how-to-get-nextcloud-running-using-the-acme-dns-challenge
## 3. Use Cloudflare
If you do not have any contol over the network, you may think about using Cloudflare Argo Tunnel to get a valid certificate for your Nextcloud. However it will be opened to the public internet then. See https://github.com/nextcloud/all-in-one#how-to-run-nextcloud-behind-a-cloudflare-argo-tunnel how to set this up.
If you do not have any contol over the network, you may think about using Cloudflare Tunnel to get a valid certificate for your Nextcloud. However it will be opened to the public internet then. See https://github.com/nextcloud/all-in-one#how-to-run-nextcloud-behind-a-cloudflare-tunnel how to set this up.
## 4. Buy a certificate and use that
If none of the above ways work for you, you may simply buy a certificate from an issuer for your domain. You then download the certificate onto your server, configure AIO in [reverse proxy mode](./reverse-proxy.md) and use the certificate for your domain in your reverse proxy config.

View File

@@ -1,203 +0,0 @@
version: "3.8"
services:
nextcloud-aio-apache:
container_name: nextcloud-aio-apache
depends_on:
- nextcloud-aio-onlyoffice
- nextcloud-aio-collabora
- nextcloud-aio-talk
- nextcloud-aio-nextcloud
image: nextcloud/aio-apache:latest-arm64
ports:
- ${APACHE_PORT}:${APACHE_PORT}/tcp
environment:
- NC_DOMAIN=${NC_DOMAIN}
- NEXTCLOUD_HOST=nextcloud-aio-nextcloud
- COLLABORA_HOST=nextcloud-aio-collabora
- TALK_HOST=nextcloud-aio-talk
- APACHE_PORT=${APACHE_PORT}
- ONLYOFFICE_HOST=nextcloud-aio-onlyoffice
- TZ=${TIMEZONE}
- APACHE_MAX_SIZE=${APACHE_MAX_SIZE}
- APACHE_MAX_TIME=${NEXTCLOUD_MAX_TIME}
volumes:
- nextcloud_aio_nextcloud:/var/www/html:ro
- nextcloud_aio_apache:/mnt/data:rw
stop_grace_period: 10s
restart: unless-stopped
networks:
- nextcloud-aio
nextcloud-aio-database:
container_name: nextcloud-aio-database
image: nextcloud/aio-postgresql:latest-arm64
volumes:
- nextcloud_aio_database:/var/lib/postgresql/data:rw
- nextcloud_aio_database_dump:/mnt/data:rw
environment:
- POSTGRES_PASSWORD=${DATABASE_PASSWORD}
- POSTGRES_DB=nextcloud_database
- POSTGRES_USER=nextcloud
- TZ=${TIMEZONE}
- PGTZ=${TIMEZONE}
stop_grace_period: 1800s
restart: unless-stopped
networks:
- nextcloud-aio
nextcloud-aio-nextcloud:
container_name: nextcloud-aio-nextcloud
depends_on:
- nextcloud-aio-database
- nextcloud-aio-redis
- nextcloud-aio-fulltextsearch
- nextcloud-aio-imaginary
image: nextcloud/aio-nextcloud:latest-arm64
volumes:
- nextcloud_aio_nextcloud:/var/www/html:rw
- ${NEXTCLOUD_DATADIR}:/mnt/ncdata:rw
- ${NEXTCLOUD_MOUNT}:${NEXTCLOUD_MOUNT}:rw
- ${NEXTCLOUD_TRUSTED_CACERTS_DIR}:/usr/local/share/ca-certificates:ro
environment:
- POSTGRES_HOST=nextcloud-aio-database
- POSTGRES_PASSWORD=${DATABASE_PASSWORD}
- POSTGRES_DB=nextcloud_database
- POSTGRES_USER=nextcloud
- REDIS_HOST=nextcloud-aio-redis
- REDIS_HOST_PASSWORD=${REDIS_PASSWORD}
- AIO_TOKEN=${AIO_TOKEN}
- NC_DOMAIN=${NC_DOMAIN}
- ADMIN_USER=admin
- ADMIN_PASSWORD=${NEXTCLOUD_PASSWORD}
- NEXTCLOUD_DATA_DIR=/mnt/ncdata
- OVERWRITEHOST=${NC_DOMAIN}
- OVERWRITEPROTOCOL=https
- TURN_SECRET=${TURN_SECRET}
- SIGNALING_SECRET=${SIGNALING_SECRET}
- ONLYOFFICE_SECRET=${ONLYOFFICE_SECRET}
- AIO_URL=${AIO_URL}
- NEXTCLOUD_MOUNT=${NEXTCLOUD_MOUNT}
- ONLYOFFICE_ENABLED=${ONLYOFFICE_ENABLED}
- COLLABORA_ENABLED=${COLLABORA_ENABLED}
- COLLABORA_HOST=nextcloud-aio-collabora
- TALK_ENABLED=${TALK_ENABLED}
- ONLYOFFICE_HOST=nextcloud-aio-onlyoffice
- UPDATE_NEXTCLOUD_APPS=${UPDATE_NEXTCLOUD_APPS}
- TZ=${TIMEZONE}
- TALK_PORT=${TALK_PORT}
- IMAGINARY_ENABLED=${IMAGINARY_ENABLED}
- IMAGINARY_HOST=nextcloud-aio-imaginary
- PHP_UPLOAD_LIMIT=${NEXTCLOUD_UPLOAD_LIMIT}
- PHP_MEMORY_LIMIT=${NEXTCLOUD_MEMORY_LIMIT}
- FULLTEXTSEARCH_ENABLED=${FULLTEXTSEARCH_ENABLED}
- FULLTEXTSEARCH_HOST=nextcloud-aio-fulltextsearch
- PHP_MAX_TIME=${NEXTCLOUD_MAX_TIME}
- TRUSTED_CACERTS_DIR=${NEXTCLOUD_TRUSTED_CACERTS_DIR}
- STARTUP_APPS=${NEXTCLOUD_STARTUP_APPS}
- ADDITIONAL_APKS=${NEXTCLOUD_ADDITIONAL_APKS}
- ADDITIONAL_PHP_EXTENSIONS=${NEXTCLOUD_ADDITIONAL_PHP_EXTENSIONS}
stop_grace_period: 10s
restart: unless-stopped
networks:
- nextcloud-aio
nextcloud-aio-redis:
container_name: nextcloud-aio-redis
image: nextcloud/aio-redis:latest-arm64
environment:
- REDIS_HOST_PASSWORD=${REDIS_PASSWORD}
- TZ=${TIMEZONE}
stop_grace_period: 10s
restart: unless-stopped
networks:
- nextcloud-aio
nextcloud-aio-collabora:
container_name: nextcloud-aio-collabora
image: nextcloud/aio-collabora:latest-arm64
environment:
- aliasgroup1=https://${NC_DOMAIN}:443
- extra_params=--o:ssl.enable=false --o:ssl.termination=true --o:logging.level=warning --o:home_mode.enable=true ${COLLABORA_SECCOMP_POLICY}
- dictionaries=${COLLABORA_DICTIONARIES}
- TZ=${TIMEZONE}
stop_grace_period: 10s
restart: unless-stopped
networks:
- nextcloud-aio
nextcloud-aio-talk:
container_name: nextcloud-aio-talk
image: nextcloud/aio-talk:latest-arm64
ports:
- ${TALK_PORT}:${TALK_PORT}/tcp
- ${TALK_PORT}:${TALK_PORT}/udp
environment:
- NC_DOMAIN=${NC_DOMAIN}
- TURN_SECRET=${TURN_SECRET}
- SIGNALING_SECRET=${SIGNALING_SECRET}
- JANUS_API_KEY=${JANUS_API_KEY}
- TZ=${TIMEZONE}
- TALK_PORT=${TALK_PORT}
stop_grace_period: 10s
restart: unless-stopped
networks:
- nextcloud-aio
nextcloud-aio-onlyoffice:
container_name: nextcloud-aio-onlyoffice
image: nextcloud/aio-onlyoffice:latest-arm64
environment:
- TZ=${TIMEZONE}
- JWT_ENABLED=true
- JWT_HEADER=AuthorizationJwt
- JWT_SECRET=${ONLYOFFICE_SECRET}
volumes:
- nextcloud_aio_onlyoffice:/var/lib/onlyoffice:rw
stop_grace_period: 10s
restart: unless-stopped
networks:
- nextcloud-aio
nextcloud-aio-imaginary:
container_name: nextcloud-aio-imaginary
image: nextcloud/aio-imaginary:latest-arm64
environment:
- TZ=${TIMEZONE}
stop_grace_period: 10s
restart: unless-stopped
networks:
- nextcloud-aio
nextcloud-aio-fulltextsearch:
container_name: nextcloud-aio-fulltextsearch
image: nextcloud/aio-fulltextsearch:latest-arm64
environment:
- TZ=${TIMEZONE}
- discovery.type=single-node
- ES_JAVA_OPTS=-Xms1024M -Xmx1024M
volumes:
- nextcloud_aio_elasticsearch:/usr/share/elasticsearch/data:rw
stop_grace_period: 10s
restart: unless-stopped
networks:
- nextcloud-aio
volumes:
nextcloud_aio_apache:
name: nextcloud_aio_apache
nextcloud_aio_database:
name: nextcloud_aio_database
nextcloud_aio_database_dump:
name: nextcloud_aio_database_dump
nextcloud_aio_elasticsearch:
name: nextcloud_aio_elasticsearch
nextcloud_aio_nextcloud:
name: nextcloud_aio_nextcloud
nextcloud_aio_onlyoffice:
name: nextcloud_aio_onlyoffice
nextcloud_aio_nextcloud_data:
name: nextcloud_aio_nextcloud_data
networks:
nextcloud-aio:

View File

@@ -2,15 +2,14 @@ version: "3.8"
services:
nextcloud-aio-apache:
container_name: nextcloud-aio-apache
depends_on:
- nextcloud-aio-onlyoffice
- nextcloud-aio-collabora
- nextcloud-aio-talk
- nextcloud-aio-nextcloud
image: nextcloud/aio-apache:latest
image: nextcloud/aio-apache:${IMAGE_TAG}
ports:
- ${APACHE_PORT}:${APACHE_PORT}/tcp
- ${APACHE_IP_BINDING}:${APACHE_PORT}:${APACHE_PORT}/tcp
environment:
- NC_DOMAIN=${NC_DOMAIN}
- NEXTCLOUD_HOST=nextcloud-aio-nextcloud
@@ -24,14 +23,14 @@ services:
volumes:
- nextcloud_aio_nextcloud:/var/www/html:ro
- nextcloud_aio_apache:/mnt/data:rw
stop_grace_period: 10s
restart: unless-stopped
networks:
- nextcloud-aio
nextcloud-aio-database:
container_name: nextcloud-aio-database
image: nextcloud/aio-postgresql:latest
image: nextcloud/aio-postgresql:${IMAGE_TAG}
expose:
- "5432"
volumes:
- nextcloud_aio_database:/var/lib/postgresql/data:rw
- nextcloud_aio_database_dump:/mnt/data:rw
@@ -45,16 +44,18 @@ services:
restart: unless-stopped
networks:
- nextcloud-aio
nextcloud-aio-nextcloud:
container_name: nextcloud-aio-nextcloud
depends_on:
- nextcloud-aio-database
- nextcloud-aio-redis
- nextcloud-aio-clamav
- nextcloud-aio-fulltextsearch
- nextcloud-aio-imaginary
image: nextcloud/aio-nextcloud:latest
image: nextcloud/aio-nextcloud:${IMAGE_TAG}
expose:
- "9000"
- "7867"
volumes:
- nextcloud_aio_nextcloud:/var/www/html:rw
- ${NEXTCLOUD_DATADIR}:/mnt/ncdata:rw
@@ -100,41 +101,48 @@ services:
- STARTUP_APPS=${NEXTCLOUD_STARTUP_APPS}
- ADDITIONAL_APKS=${NEXTCLOUD_ADDITIONAL_APKS}
- ADDITIONAL_PHP_EXTENSIONS=${NEXTCLOUD_ADDITIONAL_PHP_EXTENSIONS}
stop_grace_period: 10s
restart: unless-stopped
networks:
- nextcloud-aio
nextcloud-aio-redis:
container_name: nextcloud-aio-redis
image: nextcloud/aio-redis:latest
image: nextcloud/aio-redis:${IMAGE_TAG}
expose:
- "6379"
environment:
- REDIS_HOST_PASSWORD=${REDIS_PASSWORD}
- TZ=${TIMEZONE}
stop_grace_period: 10s
volumes:
- nextcloud_aio_redis:/data:rw
restart: unless-stopped
networks:
- nextcloud-aio
nextcloud-aio-collabora:
container_name: nextcloud-aio-collabora
image: nextcloud/aio-collabora:latest
profiles: ["collabora"]
image: nextcloud/aio-collabora:${IMAGE_TAG}
expose:
- "9980"
environment:
- aliasgroup1=https://${NC_DOMAIN}:443
- extra_params=--o:ssl.enable=false --o:ssl.termination=true --o:logging.level=warning --o:home_mode.enable=true ${COLLABORA_SECCOMP_POLICY}
- 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}
stop_grace_period: 10s
- server_name=${NC_DOMAIN}
volumes:
- nextcloud_aio_collabora_fonts:/opt/cool/systemplate/tmpfonts:rw
restart: unless-stopped
networks:
- nextcloud-aio
nextcloud-aio-talk:
container_name: nextcloud-aio-talk
image: nextcloud/aio-talk:latest
profiles: ["talk"]
image: nextcloud/aio-talk:${IMAGE_TAG}
ports:
- ${TALK_PORT}:${TALK_PORT}/tcp
- ${TALK_PORT}:${TALK_PORT}/udp
expose:
- "8081"
environment:
- NC_DOMAIN=${NC_DOMAIN}
- TURN_SECRET=${TURN_SECRET}
@@ -142,26 +150,29 @@ services:
- JANUS_API_KEY=${JANUS_API_KEY}
- TZ=${TIMEZONE}
- TALK_PORT=${TALK_PORT}
stop_grace_period: 10s
restart: unless-stopped
networks:
- nextcloud-aio
nextcloud-aio-clamav:
container_name: nextcloud-aio-clamav
image: nextcloud/aio-clamav:latest
profiles: ["clamav"]
image: nextcloud/aio-clamav:${IMAGE_TAG}
expose:
- "3310"
environment:
- TZ=${TIMEZONE}
- CLAMD_STARTUP_TIMEOUT=90
volumes:
- nextcloud_aio_clamav:/var/lib/clamav:rw
stop_grace_period: 10s
restart: unless-stopped
networks:
- nextcloud-aio
nextcloud-aio-onlyoffice:
container_name: nextcloud-aio-onlyoffice
image: nextcloud/aio-onlyoffice:latest
profiles: ["onlyoffice"]
image: nextcloud/aio-onlyoffice:${IMAGE_TAG}
expose:
- "80"
environment:
- TZ=${TIMEZONE}
- JWT_ENABLED=true
@@ -169,31 +180,33 @@ services:
- JWT_SECRET=${ONLYOFFICE_SECRET}
volumes:
- nextcloud_aio_onlyoffice:/var/lib/onlyoffice:rw
stop_grace_period: 10s
restart: unless-stopped
networks:
- nextcloud-aio
nextcloud-aio-imaginary:
container_name: nextcloud-aio-imaginary
image: nextcloud/aio-imaginary:latest
profiles: ["imaginary"]
image: nextcloud/aio-imaginary:${IMAGE_TAG}
expose:
- "9000"
environment:
- TZ=${TIMEZONE}
stop_grace_period: 10s
restart: unless-stopped
networks:
- nextcloud-aio
nextcloud-aio-fulltextsearch:
container_name: nextcloud-aio-fulltextsearch
image: nextcloud/aio-fulltextsearch:latest
profiles: ["fulltextsearch"]
image: nextcloud/aio-fulltextsearch:${IMAGE_TAG}
expose:
- "9200"
environment:
- TZ=${TIMEZONE}
- discovery.type=single-node
- ES_JAVA_OPTS=-Xms1024M -Xmx1024M
- POSTGRES_HOST=nextcloud-aio-database
volumes:
- nextcloud_aio_elasticsearch:/usr/share/elasticsearch/data:rw
stop_grace_period: 10s
restart: unless-stopped
networks:
- nextcloud-aio
@@ -203,6 +216,8 @@ volumes:
name: nextcloud_aio_apache
nextcloud_aio_clamav:
name: nextcloud_aio_clamav
nextcloud_aio_collabora_fonts:
name: nextcloud_aio_collabora_fonts
nextcloud_aio_database:
name: nextcloud_aio_database
nextcloud_aio_database_dump:
@@ -213,6 +228,8 @@ volumes:
name: nextcloud_aio_nextcloud
nextcloud_aio_onlyoffice:
name: nextcloud_aio_onlyoffice
nextcloud_aio_redis:
name: nextcloud_aio_redis
nextcloud_aio_nextcloud_data:
name: nextcloud_aio_nextcloud_data

View File

@@ -21,20 +21,26 @@ 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 a new file, e.g. `cp sample.conf my.conf`, open the new conf file, e.g. with `nano my.conf`, edit all values that are marked with `# TODO!`, close and save the file.
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).
Now copy the provided yaml file to a docker-compose file by running on x64 `cp latest.yml docker-compose.yml` and on arm64 `cp latest-arm64.yml docker-compose.yml`.
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 --env-file my.conf up`.
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`.
For a complete all-in-one with collabora use `sudo docker-compose --profile collabora --profile talk --profile clamav --profile imaginary --profile fulltextsearch up`.
## 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.
1. Run `sudo docker-compose --env-file my.conf down` to stop all running containers
1. If your previous copy of `sample.conf` is named `my.conf`, run `mv my.conf .env` in order to rename the file to `.env`.
1. Run `sudo docker-compose down` to stop all running containers
1. Back up all important files and folders
1. Run `git pull` in order to get the updated yaml files from the repository. Now bring your `docker-compose.yml` file up-to-date with the updated one from the repository. You can use `diff docker-compose.yml latest.yml` on x64 and `diff docker-compose.yml latest-arm64.yml` on arm64 for comparing.
1. Run `git pull` in order to get the updated yaml files from the repository. Now bring your `docker-compose.yml` file up-to-date with the updated one from the repository. You can use `diff docker-compose.yml latest.yml` for comparing.
1. Also have a look at the `sample.conf` if any variable was added or renamed and add that to your conf file as well. Here may help the diff command as well.
1. After the file update was successful, simply run `sudo docker-compose --env-file my.conf pull` to pull the new images.
1. At the end run `sudo docker-compose --env-file my.conf up` in order to start and update the containers with the new configuration.
1. After the file update was successful, simply run `sudo docker-compose pull` to pull the new images.
1. At the end run `sudo docker-compose up` in order to start and update the containers with the new configuration.
## FAQ
### Backup and restore?

View File

@@ -1,14 +1,16 @@
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 reverse proxy.
CLAMAV_ENABLED=no # Setting this to "yes" enables the option in Nextcloud automatically.
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.
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!
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.
@@ -18,15 +20,15 @@ NEXTCLOUD_MAX_TIME=3600 # This allows to change the upload time limit o
NEXTCLOUD_MEMORY_LIMIT=512M # This allows to change the PHP memory limit of the Nextcloud container
NEXTCLOUD_MOUNT=/mnt/ # This allows the Nextcloud container to access directories on the host. It must never be equal to the value of NEXTCLOUD_DATADIR!
NEXTCLOUD_PASSWORD= # TODO! This is the password of the initially created Nextcloud admin with username "admin".
NEXTCLOUD_STARTUP_APPS="deck tasks calendar contacts" # Allows to modify the Nextcloud apps that are installed on starting AIO the first time
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" 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.

View File

@@ -1,15 +1,23 @@
#!/bin/bash
set -ex
jq -c . ./php/containers.json > /tmp/containers.json
sed -i 's|","location":"|:|g' /tmp/containers.json
sed -i 's|aio_services_v1|services|g' /tmp/containers.json
sed -i 's|","destination":"|:|g' /tmp/containers.json
sed -i 's|","writeable":false|:ro"|g' /tmp/containers.json
sed -i 's|","writeable":true|:rw"|g' /tmp/containers.json
sed -i 's|","port_number":"|:|g' /tmp/containers.json
sed -i 's|","protocol":"|/|g' /tmp/containers.json
sed -i 's|"ip_binding":":|"ip_binding":"|g' /tmp/containers.json
cat /tmp/containers.json
OUTPUT="$(cat /tmp/containers.json)"
OUTPUT="$(echo "$OUTPUT" | jq 'del(.production[].internalPorts)')"
OUTPUT="$(echo "$OUTPUT" | jq 'del(.production[].secrets)')"
OUTPUT="$(echo "$OUTPUT" | jq 'del(.production[] | select(.identifier == "nextcloud-aio-watchtower"))')"
OUTPUT="$(echo "$OUTPUT" | jq 'del(.production[] | select(.identifier == "nextcloud-aio-domaincheck"))')"
OUTPUT="$(echo "$OUTPUT" | jq 'del(.production[] | select(.identifier == "nextcloud-aio-borgbackup"))')"
OUTPUT="$(echo "$OUTPUT" | jq 'del(.services[].internal_port)')"
OUTPUT="$(echo "$OUTPUT" | jq 'del(.services[].secrets)')"
OUTPUT="$(echo "$OUTPUT" | jq 'del(.services[].devices)')"
OUTPUT="$(echo "$OUTPUT" | jq 'del(.services[] | select(.container_name == "nextcloud-aio-watchtower"))')"
OUTPUT="$(echo "$OUTPUT" | jq 'del(.services[] | select(.container_name == "nextcloud-aio-domaincheck"))')"
OUTPUT="$(echo "$OUTPUT" | jq 'del(.services[] | select(.container_name == "nextcloud-aio-borgbackup"))')"
snap install yq
mkdir -p ./manual-install
@@ -17,24 +25,18 @@ echo "$OUTPUT" | yq -P > ./manual-install/containers.yml
cd manual-install || exit
sed -i "s|'||g" containers.yml
sed -i 's|production:|services:|' containers.yml
sed -i 's|- identifier:| container_name:|' containers.yml
sed -i 's|restartPolicy:|restart:|' containers.yml
sed -i 's|environmentVariables:|environment:|' containers.yml
sed -i '/displayName:/d' containers.yml
sed -i 's|maxShutdownTime:|stop_grace_period:|' containers.yml
sed -i '/display_name:/d' containers.yml
sed -i '/stop_grace_period:/s/$/s/' containers.yml
sed -i 's|containerName:|image:|' containers.yml
sed -i '/: \[\]/d' containers.yml
sed -i 's|dependsOn:|depends_on:|' containers.yml
sed -i 's|- name: |- |' containers.yml
sed -i 's|- source: |- |' containers.yml
sed -i 's|- ip_binding: |- |' containers.yml
TCP="$(grep -oP '[%A-Z0-9_]+/tcp' containers.yml | sort -u)"
mapfile -t TCP <<< "$TCP"
for port in "${TCP[@]}"
do
solve_port="${port%%/tcp}"
sed -i "s|$port|$solve_port:$solve_port/tcp|" containers.yml
sed -i "s|$solve_port/tcp|$solve_port:$solve_port/tcp|" containers.yml
done
UDP="$(grep -oP '[%A-Z0-9_]+/udp' containers.yml | sort -u)"
@@ -42,10 +44,11 @@ mapfile -t UDP <<< "$UDP"
for port in "${UDP[@]}"
do
solve_port="${port%%/udp}"
sed -i "s|$port|$solve_port:$solve_port/udp|" containers.yml
sed -i "s|$solve_port/udp|$solve_port:$solve_port/udp|" containers.yml
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[@]}"
@@ -56,9 +59,10 @@ do
sed -i "s|$variable|\${$sole_variable}|g" containers.yml
done
sed -i 's|_ENABLED=|_ENABLED=no # Setting this to "yes" enables the option in Nextcloud automatically.|' 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|_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|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
sed -i 's|NEXTCLOUD_DATADIR=|NEXTCLOUD_DATADIR=nextcloud_aio_nextcloud_data # You can change this to e.g. "/mnt/ncdata" to map it to a location on your host. It needs to be adjusted before the first startup and never afterwards!|' sample.conf
sed -i 's|NEXTCLOUD_MOUNT=|NEXTCLOUD_MOUNT=/mnt/ # This allows the Nextcloud container to access directories on the host. It must never be equal to the value of NEXTCLOUD_DATADIR!|' sample.conf
@@ -67,8 +71,9 @@ 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, it will automatically update all installed Nextcloud apps upon container startup on saturdays.|' sample.conf
sed -i 's|APACHE_PORT=|APACHE_PORT=443 # Changing this to a different value than 443 will allow you to run it behind a reverse proxy.|' sample.conf
sed -i 's|UPDATE_NEXTCLOUD_APPS=|UPDATE_NEXTCLOUD_APPS="no" # When setting to "yes" (with quotes), it will automatically update all installed Nextcloud apps upon container startup on saturdays.|' sample.conf
sed -i 's|APACHE_PORT=|APACHE_PORT=443 # Changing this to a different value than 443 will allow you to run it behind a web server or reverse proxy (like Apache, Nginx 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
sed -i 's|AIO_TOKEN=|AIO_TOKEN=123456 # Has no function but needs to be set!|' sample.conf
sed -i 's|AIO_URL=|AIO_URL=localhost # Has no function but needs to be set!|' sample.conf
@@ -76,7 +81,7 @@ sed -i 's|NC_DOMAIN=|NC_DOMAIN=yourdomain.com # TODO! Needs to be chang
sed -i 's|NEXTCLOUD_PASSWORD=|NEXTCLOUD_PASSWORD= # TODO! This is the password of the initially created Nextcloud admin with username "admin".|' sample.conf
sed -i 's|TIMEZONE=|TIMEZONE=Europe/Berlin # TODO! This is the timezone that your containers will use.|' sample.conf
sed -i 's|COLLABORA_SECCOMP_POLICY=|COLLABORA_SECCOMP_POLICY=--o:security.seccomp=true # Changing the value to false allows to disable the seccomp feature of the Collabora container.|' sample.conf
sed -i 's|NEXTCLOUD_STARTUP_APPS=|NEXTCLOUD_STARTUP_APPS="deck tasks calendar contacts" # Allows to modify the Nextcloud apps that are installed on starting AIO the first time|' sample.conf
sed -i 's|NEXTCLOUD_STARTUP_APPS=|NEXTCLOUD_STARTUP_APPS="deck twofactor_totp tasks calendar contacts" # Allows to modify the Nextcloud apps that are installed on starting AIO the first time|' sample.conf
sed -i 's|NEXTCLOUD_ADDITIONAL_APKS=|NEXTCLOUD_ADDITIONAL_APKS=imagemagick # This allows to add additional packages to the Nextcloud container permanently. Default is imagemagick but can be overwritten by modifying this value.|' sample.conf
sed -i 's|NEXTCLOUD_ADDITIONAL_PHP_EXTENSIONS=|NEXTCLOUD_ADDITIONAL_PHP_EXTENSIONS=imagick # This allows to add additional php extensions to the Nextcloud container permanently. Default is imagick but can be overwritten by modifying this value.|' sample.conf
sed -i 's|=$|= # TODO! This needs to be a unique and good password!|' sample.conf
@@ -92,6 +97,11 @@ do
if [ "$name" != "nextcloud-aio-apache" ]; then
OUTPUT="$(echo "$OUTPUT" | sed "/ $name:/i\ ")"
fi
if ! echo "$name" | grep "apache$" && ! echo "$name" | grep "database$" && ! echo "$name" | grep "nextcloud$" && ! echo "$name" | grep "redis$"; then
sed -i '/container_name/d' containers.yml
SLIM_NAME="${name##nextcloud-aio-}"
OUTPUT="$(echo "$OUTPUT" | sed "/container_name: $name$/a\ \ \ \ profiles:\ \[\"$SLIM_NAME\"\]")"
fi
done
OUTPUT="$(echo "$OUTPUT" | sed "/restart: /a\ \ \ \ networks:\n\ \ \ \ \ \ - nextcloud-aio")"
@@ -102,6 +112,7 @@ echo "" >> containers.yml
echo "$OUTPUT" >> containers.yml
sed -i '/container_name/d' containers.yml
sed -i 's|^ $||' containers.yml
VOLUMES="$(grep -oP 'nextcloud_aio_[a-z_]+' containers.yml | sort -u)"
mapfile -t VOLUMES <<< "$VOLUMES"
@@ -122,12 +133,8 @@ networks:
NETWORK
cat containers.yml > latest.yml
sed -i '/image:/s/$/:latest/' latest.yml
cat containers.yml > latest-arm64.yml
sed -i '/image:/s/$/:latest-arm64/' latest-arm64.yml
sed -i '/ nextcloud-aio-clamav:/,/^ $/d' latest-arm64.yml
sed -i '/nextcloud[-_]aio[-_]clamav/d' latest-arm64.yml
sed -i '/CLAMAV_ENABLED/d' latest-arm64.yml
sed -i "/image:/s/$/:\${IMAGE_TAG}/" latest.yml
rm containers.yml
set +ex

View File

@@ -6,8 +6,9 @@ The only way to fix this on your side is upgrading regularly (e.g. by enabling d
1. Start all containers from the aio interface (now, it will report that Nextcloud is restarting because it is not able to start due to the above mentioned problem)
1. Do **not** click on `Stop containers` because you will need them running going forward, see below
1. Find out with which PHP version your installed Nextcloud is compatible by running `sudo docker exec nextcloud-aio-nextcloud cat lib/versioncheck.php`. (There you will find information about the max. supported PHP version.)
1. Stop the Nextcloud container and the Apache container by running `sudo docker stop nextcloud-aio-nextcloud && sudo docker stop nextcloud-aio-apache`.
1. Find out with which PHP version your installed Nextcloud is compatible by running `sudo cat /var/lib/docker/volumes/nextcloud_aio_nextcloud/_data/lib/versioncheck.php`. (There you will find information about the max. supported PHP version.)
1. Run the following commands in order to reverse engineer the Nextcloud container:
```bash
sudo docker pull assaflavie/runlike

View File

@@ -10,12 +10,12 @@ There are basically three ways how to migrate from an already existing Nextcloud
**Please note**: If you used groupfolders or encrypted your files before, you will need to restore the database, as well!
The procedure for migrating only the files works like this:
1. Take a backup of your former instance (especially from your datadirectory)
1. Take a backup of your former instance (especially from your datadirectory, see `'datadirectory'` in your `config.php`)
1. Install Nextcloud AIO on a new server/linux installation, enter your domain and wait until all containers are running
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 into the following directory: `/var/lib/docker/volumes/nextcloud_aio_nextcloud_data/_data/`
1. Next, run `sudo chown -R 33:0 /var/lib/docker/volumes/nextcloud_aio_nextcloud_data/_data/*` and `sudo chmod -R 750 /var/lib/docker/volumes/nextcloud_aio_nextcloud_data/_data/*` to apply the correct permissions
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. 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.
@@ -64,17 +64,18 @@ The procedure for migrating the files and the database works like this:
1. Type in `local::/your/old/datadir/` which should bring up the exact line where you need to modify the path to use the one used in Nextcloud AIO, instead.
1. Change it to look like this: `local::/mnt/ncdata/`.
1. Now save the file by pressing `[CTRL] + [o]` then `[ENTER]` and close nano by pressing `[CTRL] + [x]`
1. In order to make sure that everything is good, you can now run `grep "/your/old/datadir" database-dump.sql` which should not bring up further results.
1. In order to make sure that everything is good, you can now run `grep "/your/old/datadir" database-dump.sql` which should not bring up further results.<br>
1. **Please note:** Unfortunately it is not possible to import a database dump from a former database owner with the name `nextcloud`. You can check if that is the case with this command: `grep "Name: oc_appconfig; Type: TABLE; Schema: public; Owner:" database-dump.sql | grep -oP 'Owner:.*$' | sed 's|Owner:||;s| ||g'`. If it returns `nextcloud`, you need to rename the owner in the dump file manually. A command like the following should work, however please note that it is possible that it will overwrite wrong lines. You can thus first check which lines it will change with `grep "Owner: nextcloud$" database-dump.sql`. If only correct looking lines get returned, feel free to change them with `sed -i 's|Owner: nextcloud$|Owner: ncadmin|' database-dump.sql`.
1. Next, copy the database dump into the correct place and prepare the database container which will import from the database dump automatically the next container start:
```
sudo rm /var/lib/docker/volumes/nextcloud_aio_database_dump/_data/database-dump.sql
sudo cp database-dump.sql /var/lib/docker/volumes/nextcloud_aio_database_dump/_data/
sudo chmod 777 /var/lib/docker/volumes/nextcloud_aio_database_dump/_data/database-dump.sql
sudo rm /var/lib/docker/volumes/nextcloud_aio_database_dump/_data/initial-cleanup-done
sudo docker run --rm --volume nextcloud_aio_database_dump:/mnt/data:rw alpine rm /mnt/data/database-dump.sql
sudo docker cp database-dump.sql nextcloud-aio-database:/mnt/data/
sudo docker run --rm --volume nextcloud_aio_database_dump:/mnt/data:rw alpine chmod 777 /mnt/data/database-dump.sql
sudo docker run --rm --volume nextcloud_aio_database_dump:/mnt/data:rw alpine rm /mnt/data/initial-cleanup-done
```
1. If the commands above were executed successfully, restore the datadirectory of your former instance into your datadirectory: `/var/lib/docker/volumes/nextcloud_aio_nextcloud_data/_data/`. Be aware if you have changed the standard path of your datadirectory like described [here](https://github.com/nextcloud/all-in-one#how-to-change-the-default-location-of-nextclouds-datadir).
1. Next, run `sudo chown -R 33:0 /var/lib/docker/volumes/nextcloud_aio_nextcloud_data/_data/*` and `sudo chmod -R 750 /var/lib/docker/volumes/nextcloud_aio_nextcloud_data/_data/*`to apply the correct permissions on the datadirectory.
1. Edit the Nextcloud AIO config.php file that is stored in `/var/lib/docker/volumes/nextcloud_aio_nextcloud/_data/config/config.php` and modify only `passwordsalt`, `secret`, `instanceid` and set it to the old values that you used on your old installation. If you are brave, feel free to modify further values e.g. add your old LDAP config or S3 storage config. (Some things like Mail server config can be added back using Nextcloud's webinterface later on).
1. If the commands above were executed successfully, restore the datadirectory of your former instance into your datadirectory: `sudo docker run --rm --volume nextcloud_aio_nextcloud_data:/mnt/ncdata:rw alpine sh -c "rm -rf /mnt/ncdata/*"` and `sudo docker cp --follow-link /path/to/nextcloud/data/ nextcloud-aio-nextcloud:/mnt/ncdata/` Note: the `/` at the end are necessary. (Or if `NEXTCLOUD_DATADIR` was provided, first delete the files in there and then copy the files 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 on the datadirectory. (Or if `NEXTCLOUD_DATADIR` was provided, apply `chown -R 33:0` and `chmod -R 750` to the chosen path.)
1. Edit the Nextcloud AIO config.php file using `sudo docker run -it --rm --volume nextcloud_aio_nextcloud:/var/www/html:rw alpine sh -c "apk add --no-cache nano && nano /var/www/html/config/config.php"` and modify only `passwordsalt`, `secret`, `instanceid` and set it to the old values that you used on your old installation. If you are brave, feel free to modify further values e.g. add your old LDAP config or S3 storage config. (Some things like Mail server config can be added back using Nextcloud's webinterface later on).
1. When you are done and saved your changes to the file, finally start the containers again and wait until all containers are running.
1. As last step, install all apps again that were installed before on your old instance by using the webinterface.

View File

@@ -5,23 +5,23 @@
}
},
"require": {
"php": "^8.0",
"php": "8.1.*",
"ext-json": "*",
"ext-sodium": "*",
"ext-curl": "*",
"slim/slim": "4.*",
"php-di/slim-bridge": "^3.1",
"guzzlehttp/guzzle": "^7.3",
"guzzlehttp/psr7": "^2.1.0",
"slim/slim": "^4.11",
"php-di/slim-bridge": "^3.3",
"guzzlehttp/guzzle": "^7.5",
"guzzlehttp/psr7": "^2.4",
"http-interop/http-factory-guzzle": "^1.2",
"slim/twig-view": "^3.2",
"slim/csrf": "^1.2",
"slim/twig-view": "^3.3",
"slim/csrf": "^1.3",
"ext-apcu": "*"
},
"scripts": {
"psalm": "psalm --threads=1",
"psalm:update-baseline": "psalm --threads=1 --update-baseline",
"lint": "find . -name \\*.php -not -path './vendor/*' -exec php -l {} \\;",
"php-deprecation-detector": "find . -name \\*.php -not -path './vendor/*' -exec phpdd scan {} -n -t 8.0 \\;"
"php-deprecation-detector": "find . -name \\*.php -not -path './vendor/*' -exec phpdd scan {} -n -t 8.1 \\;"
}
}

146
php/composer.lock generated
View File

@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "46e4dcf2df4e1a85aba17d664cacd815",
"content-hash": "ca8e9b0dbbbd88c096dd8f2bda37a315",
"packages": [
{
"name": "guzzlehttp/guzzle",
@@ -397,16 +397,16 @@
},
{
"name": "laravel/serializable-closure",
"version": "v1.2.2",
"version": "v1.3.0",
"source": {
"type": "git",
"url": "https://github.com/laravel/serializable-closure.git",
"reference": "47afb7fae28ed29057fdca37e16a84f90cc62fae"
"reference": "f23fe9d4e95255dacee1bf3525e0810d1a1b0f37"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/serializable-closure/zipball/47afb7fae28ed29057fdca37e16a84f90cc62fae",
"reference": "47afb7fae28ed29057fdca37e16a84f90cc62fae",
"url": "https://api.github.com/repos/laravel/serializable-closure/zipball/f23fe9d4e95255dacee1bf3525e0810d1a1b0f37",
"reference": "f23fe9d4e95255dacee1bf3525e0810d1a1b0f37",
"shasum": ""
},
"require": {
@@ -453,7 +453,7 @@
"issues": "https://github.com/laravel/serializable-closure/issues",
"source": "https://github.com/laravel/serializable-closure"
},
"time": "2022-09-08T13:45:54+00:00"
"time": "2023-01-30T18:31:20+00:00"
},
{
"name": "nikic/fast-route",
@@ -562,39 +562,36 @@
},
{
"name": "php-di/php-di",
"version": "6.4.0",
"version": "7.0.2",
"source": {
"type": "git",
"url": "https://github.com/PHP-DI/PHP-DI.git",
"reference": "ae0f1b3b03d8b29dff81747063cbfd6276246cc4"
"reference": "5d1a8664e24f23b25e0426bbcb1288287fb49181"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/PHP-DI/PHP-DI/zipball/ae0f1b3b03d8b29dff81747063cbfd6276246cc4",
"reference": "ae0f1b3b03d8b29dff81747063cbfd6276246cc4",
"url": "https://api.github.com/repos/PHP-DI/PHP-DI/zipball/5d1a8664e24f23b25e0426bbcb1288287fb49181",
"reference": "5d1a8664e24f23b25e0426bbcb1288287fb49181",
"shasum": ""
},
"require": {
"laravel/serializable-closure": "^1.0",
"php": ">=7.4.0",
"php": ">=8.0",
"php-di/invoker": "^2.0",
"php-di/phpdoc-reader": "^2.0.1",
"psr/container": "^1.0"
"psr/container": "^1.1 || ^2.0"
},
"provide": {
"psr/container-implementation": "^1.0"
},
"require-dev": {
"doctrine/annotations": "~1.10",
"friendsofphp/php-cs-fixer": "^2.4",
"mnapoli/phpunit-easymock": "^1.2",
"friendsofphp/php-cs-fixer": "^3",
"mnapoli/phpunit-easymock": "^1.3",
"ocramius/proxy-manager": "^2.11.2",
"phpstan/phpstan": "^0.12",
"phpunit/phpunit": "^9.5"
"phpunit/phpunit": "^9.5",
"vimeo/psalm": "^4.6"
},
"suggest": {
"doctrine/annotations": "Install it if you want to use annotations (version ~1.2)",
"ocramius/proxy-manager": "Install it if you want to use lazy injection (version ~2.0)"
"ocramius/proxy-manager": "Install it if you want to use lazy injection (version ^2.3)"
},
"type": "library",
"autoload": {
@@ -622,7 +619,7 @@
],
"support": {
"issues": "https://github.com/PHP-DI/PHP-DI/issues",
"source": "https://github.com/PHP-DI/PHP-DI/tree/6.4.0"
"source": "https://github.com/PHP-DI/PHP-DI/tree/7.0.2"
},
"funding": [
{
@@ -634,68 +631,26 @@
"type": "tidelift"
}
],
"time": "2022-04-09T16:46:38+00:00"
},
{
"name": "php-di/phpdoc-reader",
"version": "2.2.1",
"source": {
"type": "git",
"url": "https://github.com/PHP-DI/PhpDocReader.git",
"reference": "66daff34cbd2627740ffec9469ffbac9f8c8185c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/PHP-DI/PhpDocReader/zipball/66daff34cbd2627740ffec9469ffbac9f8c8185c",
"reference": "66daff34cbd2627740ffec9469ffbac9f8c8185c",
"shasum": ""
},
"require": {
"php": ">=7.2.0"
},
"require-dev": {
"mnapoli/hard-mode": "~0.3.0",
"phpunit/phpunit": "^8.5|^9.0"
},
"type": "library",
"autoload": {
"psr-4": {
"PhpDocReader\\": "src/PhpDocReader"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"description": "PhpDocReader parses @var and @param values in PHP docblocks (supports namespaced class names with the same resolution rules as PHP)",
"keywords": [
"phpdoc",
"reflection"
],
"support": {
"issues": "https://github.com/PHP-DI/PhpDocReader/issues",
"source": "https://github.com/PHP-DI/PhpDocReader/tree/2.2.1"
},
"time": "2020-10-12T12:39:22+00:00"
"time": "2023-02-07T17:34:03+00:00"
},
{
"name": "php-di/slim-bridge",
"version": "3.2.0",
"version": "3.3.0",
"source": {
"type": "git",
"url": "https://github.com/PHP-DI/Slim-Bridge.git",
"reference": "1644a2f31079e92a14cebbf90c7f71ebcbe39ee6"
"reference": "9374b67ebf2f135b32c34907b7891b02b935d845"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/PHP-DI/Slim-Bridge/zipball/1644a2f31079e92a14cebbf90c7f71ebcbe39ee6",
"reference": "1644a2f31079e92a14cebbf90c7f71ebcbe39ee6",
"url": "https://api.github.com/repos/PHP-DI/Slim-Bridge/zipball/9374b67ebf2f135b32c34907b7891b02b935d845",
"reference": "9374b67ebf2f135b32c34907b7891b02b935d845",
"shasum": ""
},
"require": {
"php": "^7.1 || ^8.0",
"php-di/invoker": "^2.0.0",
"php-di/php-di": "^6.0.0",
"php-di/php-di": "^6.0|^7.0",
"slim/slim": "^4.2.0"
},
"require-dev": {
@@ -715,28 +670,33 @@
"description": "PHP-DI integration in Slim",
"support": {
"issues": "https://github.com/PHP-DI/Slim-Bridge/issues",
"source": "https://github.com/PHP-DI/Slim-Bridge/tree/3.2.0"
"source": "https://github.com/PHP-DI/Slim-Bridge/tree/3.3.0"
},
"time": "2021-11-01T16:14:12+00:00"
"time": "2023-01-13T15:49:44+00:00"
},
{
"name": "psr/container",
"version": "1.1.2",
"version": "2.0.2",
"source": {
"type": "git",
"url": "https://github.com/php-fig/container.git",
"reference": "513e0666f7216c7459170d56df27dfcefe1689ea"
"reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea",
"reference": "513e0666f7216c7459170d56df27dfcefe1689ea",
"url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963",
"reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963",
"shasum": ""
},
"require": {
"php": ">=7.4.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.0.x-dev"
}
},
"autoload": {
"psr-4": {
"Psr\\Container\\": "src/"
@@ -763,9 +723,9 @@
],
"support": {
"issues": "https://github.com/php-fig/container/issues",
"source": "https://github.com/php-fig/container/tree/1.1.2"
"source": "https://github.com/php-fig/container/tree/2.0.2"
},
"time": "2021-11-05T16:50:12+00:00"
"time": "2021-11-05T16:47:00+00:00"
},
{
"name": "psr/http-client",
@@ -1375,25 +1335,25 @@
},
{
"name": "symfony/deprecation-contracts",
"version": "v3.0.2",
"version": "v3.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/deprecation-contracts.git",
"reference": "26954b3d62a6c5fd0ea8a2a00c0353a14978d05c"
"reference": "1ee04c65529dea5d8744774d474e7cbd2f1206d3"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/26954b3d62a6c5fd0ea8a2a00c0353a14978d05c",
"reference": "26954b3d62a6c5fd0ea8a2a00c0353a14978d05c",
"url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/1ee04c65529dea5d8744774d474e7cbd2f1206d3",
"reference": "1ee04c65529dea5d8744774d474e7cbd2f1206d3",
"shasum": ""
},
"require": {
"php": ">=8.0.2"
"php": ">=8.1"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-main": "3.0-dev"
"dev-main": "3.3-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -1422,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.0.2"
"source": "https://github.com/symfony/deprecation-contracts/tree/v3.2.0"
},
"funding": [
{
@@ -1438,7 +1398,7 @@
"type": "tidelift"
}
],
"time": "2022-01-02T09:55:41+00:00"
"time": "2022-11-25T10:21:52+00:00"
},
{
"name": "symfony/polyfill-ctype",
@@ -1686,16 +1646,16 @@
},
{
"name": "twig/twig",
"version": "v3.4.3",
"version": "v3.5.1",
"source": {
"type": "git",
"url": "https://github.com/twigphp/Twig.git",
"reference": "c38fd6b0b7f370c198db91ffd02e23b517426b58"
"reference": "a6e0510cc793912b451fd40ab983a1d28f611c15"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/twigphp/Twig/zipball/c38fd6b0b7f370c198db91ffd02e23b517426b58",
"reference": "c38fd6b0b7f370c198db91ffd02e23b517426b58",
"url": "https://api.github.com/repos/twigphp/Twig/zipball/a6e0510cc793912b451fd40ab983a1d28f611c15",
"reference": "a6e0510cc793912b451fd40ab983a1d28f611c15",
"shasum": ""
},
"require": {
@@ -1710,7 +1670,7 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.4-dev"
"dev-master": "3.5-dev"
}
},
"autoload": {
@@ -1746,7 +1706,7 @@
],
"support": {
"issues": "https://github.com/twigphp/Twig/issues",
"source": "https://github.com/twigphp/Twig/tree/v3.4.3"
"source": "https://github.com/twigphp/Twig/tree/v3.5.1"
},
"funding": [
{
@@ -1758,7 +1718,7 @@
"type": "tidelift"
}
],
"time": "2022-09-28T08:42:51+00:00"
"time": "2023-02-08T07:49:20+00:00"
}
],
"packages-dev": [],
@@ -1768,7 +1728,7 @@
"prefer-stable": false,
"prefer-lowest": false,
"platform": {
"php": "^8.0",
"php": "8.1.*",
"ext-json": "*",
"ext-sodium": "*",
"ext-curl": "*",

View File

@@ -1,57 +1,83 @@
{
"type": "object",
"description": "AIO containers definition schema",
"additionalProperties": false,
"minProperties": 1,
"required": ["aio_services_v1"],
"properties": {
"production": {
"aio_services_v1": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"minProperties": 11,
"minProperties": 2,
"required": ["image", "container_name"],
"properties": {
"containerName": {
"image": {
"type": "string"
},
"dependsOn": {
"expose": {
"type": "array",
"items": {
"type": "string"
}
},
"displayName": {
"type": "string"
},
"environmentVariables": {
"depends_on": {
"type": "array",
"items": {
"type": "string"
}
},
"identifier": {
"display_name": {
"type": "string"
},
"internalPorts": {
"environment": {
"type": "array",
"items": {
"type": "string"
}
},
"maxShutdownTime": {
"container_name": {
"type": "string"
},
"internal_port": {
"type": "string"
},
"stop_grace_period": {
"type": "integer"
},
"ports": {
"type": "array",
"items": {
"type": "string"
"type": "object",
"additionalProperties": false,
"minProperties": 3,
"properties": {
"ip_binding": {
"type": "string"
},
"port_number": {
"type": "string"
},
"protocol": {
"type": "string"
}
}
}
},
"restartPolicy": {
"restart": {
"type": "string"
},
"secrets": {
"type": "array"
"type": "array",
"items": {
"type": "string"
}
},
"devices": {
"type": "array",
"items": {
"type": "string"
}
},
"volumes": {
"type": "array",
@@ -60,10 +86,10 @@
"additionalProperties": false,
"minProperties": 3,
"properties": {
"location": {
"destination": {
"type": "string"
},
"name": {
"source": {
"type": "string"
},
"writeable": {

View File

@@ -1,23 +1,24 @@
{
"production": [
"aio_services_v1": [
{
"identifier": "nextcloud-aio-apache",
"dependsOn": [
"container_name": "nextcloud-aio-apache",
"depends_on": [
"nextcloud-aio-onlyoffice",
"nextcloud-aio-collabora",
"nextcloud-aio-talk",
"nextcloud-aio-nextcloud"
],
"displayName": "Apache",
"containerName": "nextcloud/aio-apache",
"display_name": "Apache",
"image": "nextcloud/aio-apache",
"ports": [
"%APACHE_PORT%/tcp"
{
"ip_binding": "%APACHE_IP_BINDING%",
"port_number": "%APACHE_PORT%",
"protocol": "tcp"
}
],
"internalPorts": [
"%APACHE_PORT%"
],
"secrets": [],
"environmentVariables": [
"internal_port": "%APACHE_PORT%",
"environment": [
"NC_DOMAIN=%NC_DOMAIN%",
"NEXTCLOUD_HOST=nextcloud-aio-nextcloud",
"COLLABORA_HOST=nextcloud-aio-collabora",
@@ -30,68 +31,67 @@
],
"volumes": [
{
"name": "nextcloud_aio_nextcloud",
"location": "/var/www/html",
"source": "nextcloud_aio_nextcloud",
"destination": "/var/www/html",
"writeable": false
},
{
"name": "nextcloud_aio_apache",
"location": "/mnt/data",
"source": "nextcloud_aio_apache",
"destination": "/mnt/data",
"writeable": true
}
],
"maxShutdownTime": 10,
"restartPolicy": "unless-stopped"
"restart": "unless-stopped"
},
{
"identifier": "nextcloud-aio-database",
"dependsOn": [],
"displayName": "Database",
"containerName": "nextcloud/aio-postgresql",
"ports": [],
"internalPorts": [
"container_name": "nextcloud-aio-database",
"display_name": "Database",
"image": "nextcloud/aio-postgresql",
"expose": [
"5432"
],
"internal_port": "5432",
"secrets": [
"DATABASE_PASSWORD"
],
"volumes": [
{
"name": "nextcloud_aio_database",
"location": "/var/lib/postgresql/data",
"source": "nextcloud_aio_database",
"destination": "/var/lib/postgresql/data",
"writeable": true
},
{
"name": "nextcloud_aio_database_dump",
"location": "/mnt/data",
"source": "nextcloud_aio_database_dump",
"destination": "/mnt/data",
"writeable": true
}
],
"environmentVariables": [
"environment": [
"POSTGRES_PASSWORD=%DATABASE_PASSWORD%",
"POSTGRES_DB=nextcloud_database",
"POSTGRES_USER=nextcloud",
"TZ=%TIMEZONE%",
"PGTZ=%TIMEZONE%"
],
"maxShutdownTime": 1800,
"restartPolicy": "unless-stopped"
"stop_grace_period": 1800,
"restart": "unless-stopped"
},
{
"identifier": "nextcloud-aio-nextcloud",
"dependsOn": [
"container_name": "nextcloud-aio-nextcloud",
"depends_on": [
"nextcloud-aio-database",
"nextcloud-aio-redis",
"nextcloud-aio-clamav",
"nextcloud-aio-fulltextsearch",
"nextcloud-aio-imaginary"
],
"displayName": "Nextcloud",
"containerName": "nextcloud/aio-nextcloud",
"ports": [],
"internalPorts": [
"9000"
"display_name": "Nextcloud",
"image": "nextcloud/aio-nextcloud",
"expose": [
"9000",
"7867"
],
"internal_port": "9000",
"secrets": [
"DATABASE_PASSWORD",
"REDIS_PASSWORD",
@@ -101,27 +101,27 @@
],
"volumes": [
{
"name": "nextcloud_aio_nextcloud",
"location": "/var/www/html",
"source": "nextcloud_aio_nextcloud",
"destination": "/var/www/html",
"writeable": true
},
{
"name": "%NEXTCLOUD_DATADIR%",
"location": "/mnt/ncdata",
"source": "%NEXTCLOUD_DATADIR%",
"destination": "/mnt/ncdata",
"writeable": true
},
{
"name": "%NEXTCLOUD_MOUNT%",
"location": "%NEXTCLOUD_MOUNT%",
"source": "%NEXTCLOUD_MOUNT%",
"destination": "%NEXTCLOUD_MOUNT%",
"writeable": true
},
{
"name": "%NEXTCLOUD_TRUSTED_CACERTS_DIR%",
"location": "/usr/local/share/ca-certificates",
"source": "%NEXTCLOUD_TRUSTED_CACERTS_DIR%",
"destination": "/usr/local/share/ca-certificates",
"writeable": false
}
],
"environmentVariables": [
"environment": [
"POSTGRES_HOST=nextcloud-aio-database",
"POSTGRES_PASSWORD=%DATABASE_PASSWORD%",
"POSTGRES_DB=nextcloud_database",
@@ -162,26 +162,27 @@
"ADDITIONAL_APKS=%NEXTCLOUD_ADDITIONAL_APKS%",
"ADDITIONAL_PHP_EXTENSIONS=%NEXTCLOUD_ADDITIONAL_PHP_EXTENSIONS%"
],
"maxShutdownTime": 10,
"restartPolicy": "unless-stopped"
"restart": "unless-stopped",
"devices": [
"/dev/dri"
]
},
{
"identifier": "nextcloud-aio-redis",
"dependsOn": [],
"displayName": "Redis",
"containerName": "nextcloud/aio-redis",
"ports": [],
"internalPorts": [
"container_name": "nextcloud-aio-redis",
"display_name": "Redis",
"image": "nextcloud/aio-redis",
"expose": [
"6379"
],
"environmentVariables": [
"internal_port": "6379",
"environment": [
"REDIS_HOST_PASSWORD=%REDIS_PASSWORD%",
"TZ=%TIMEZONE%"
],
"volumes": [
{
"name": "nextcloud_aio_redis",
"location": "/data",
"source": "nextcloud_aio_redis",
"destination": "/data",
"writeable": true
}
],
@@ -189,48 +190,53 @@
"REDIS_PASSWORD",
"ONLYOFFICE_SECRET"
],
"maxShutdownTime": 10,
"restartPolicy": "unless-stopped"
"restart": "unless-stopped"
},
{
"identifier": "nextcloud-aio-collabora",
"dependsOn": [],
"displayName": "Collabora",
"containerName": "nextcloud/aio-collabora",
"ports": [],
"internalPorts": [
"container_name": "nextcloud-aio-collabora",
"display_name": "Collabora",
"image": "nextcloud/aio-collabora",
"expose": [
"9980"
],
"environmentVariables": [
"internal_port": "9980",
"environment": [
"aliasgroup1=https://%NC_DOMAIN%:443",
"extra_params=--o:ssl.enable=false --o:ssl.termination=true --o:logging.level=warning --o:home_mode.enable=true %COLLABORA_SECCOMP_POLICY%",
"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%"
"TZ=%TIMEZONE%",
"server_name=%NC_DOMAIN%"
],
"volumes": [
{
"name": "nextcloud_aio_collabora_fonts",
"location": "/opt/cool/systemplate/tmpfonts",
"source": "nextcloud_aio_collabora_fonts",
"destination": "/opt/cool/systemplate/tmpfonts",
"writeable": true
}
],
"secrets": [],
"maxShutdownTime": 10,
"restartPolicy": "unless-stopped"
"restart": "unless-stopped"
},
{
"identifier": "nextcloud-aio-talk",
"dependsOn": [],
"displayName": "Talk",
"containerName": "nextcloud/aio-talk",
"container_name": "nextcloud-aio-talk",
"display_name": "Talk",
"image": "nextcloud/aio-talk",
"ports": [
"%TALK_PORT%/tcp",
"%TALK_PORT%/udp"
{
"ip_binding": "",
"port_number": "%TALK_PORT%",
"protocol": "tcp"
},
{
"ip_binding": "",
"port_number": "%TALK_PORT%",
"protocol": "udp"
}
],
"internalPorts": [
"%TALK_PORT%"
"expose": [
"8081"
],
"environmentVariables": [
"internal_port": "%TALK_PORT%",
"environment": [
"NC_DOMAIN=%NC_DOMAIN%",
"TURN_SECRET=%TURN_SECRET%",
"SIGNALING_SECRET=%SIGNALING_SECRET%",
@@ -238,23 +244,17 @@
"TZ=%TIMEZONE%",
"TALK_PORT=%TALK_PORT%"
],
"volumes": [],
"secrets": [
"TURN_SECRET",
"SIGNALING_SECRET",
"JANUS_API_KEY"
],
"maxShutdownTime": 10,
"restartPolicy": "unless-stopped"
"restart": "unless-stopped"
},
{
"identifier": "nextcloud-aio-borgbackup",
"dependsOn": [],
"displayName": "Borgbackup",
"containerName": "nextcloud/aio-borgbackup",
"ports": [],
"internalPorts": [],
"environmentVariables": [
"container_name": "nextcloud-aio-borgbackup",
"image": "nextcloud/aio-borgbackup",
"environment": [
"BORG_PASSWORD=%BORGBACKUP_PASSWORD%",
"BORG_MODE=%BORGBACKUP_MODE%",
"SELECTED_RESTORE_TIME=%SELECTED_RESTORE_TIME%",
@@ -264,137 +264,126 @@
],
"volumes": [
{
"name": "nextcloud_aio_backup_cache",
"location": "/root",
"source": "nextcloud_aio_backup_cache",
"destination": "/root",
"writeable": true
},
{
"name": "nextcloud_aio_nextcloud",
"location": "/nextcloud_aio_volumes/nextcloud_aio_nextcloud",
"source": "nextcloud_aio_nextcloud",
"destination": "/nextcloud_aio_volumes/nextcloud_aio_nextcloud",
"writeable": true
},
{
"name": "%NEXTCLOUD_DATADIR%",
"location": "/nextcloud_aio_volumes/nextcloud_aio_nextcloud_data",
"source": "%NEXTCLOUD_DATADIR%",
"destination": "/nextcloud_aio_volumes/nextcloud_aio_nextcloud_data",
"writeable": true
},
{
"name": "nextcloud_aio_database",
"location": "/nextcloud_aio_volumes/nextcloud_aio_database",
"source": "nextcloud_aio_database",
"destination": "/nextcloud_aio_volumes/nextcloud_aio_database",
"writeable": true
},
{
"name": "nextcloud_aio_database_dump",
"location": "/nextcloud_aio_volumes/nextcloud_aio_database_dump",
"source": "nextcloud_aio_database_dump",
"destination": "/nextcloud_aio_volumes/nextcloud_aio_database_dump",
"writeable": true
},
{
"name": "nextcloud_aio_apache",
"location": "/nextcloud_aio_volumes/nextcloud_aio_apache",
"source": "nextcloud_aio_apache",
"destination": "/nextcloud_aio_volumes/nextcloud_aio_apache",
"writeable": true
},
{
"name": "nextcloud_aio_mastercontainer",
"location": "/nextcloud_aio_volumes/nextcloud_aio_mastercontainer",
"source": "nextcloud_aio_mastercontainer",
"destination": "/nextcloud_aio_volumes/nextcloud_aio_mastercontainer",
"writeable": true
},
{
"name": "%BORGBACKUP_HOST_LOCATION%",
"location": "/mnt/borgbackup",
"source": "%BORGBACKUP_HOST_LOCATION%",
"destination": "/mnt/borgbackup",
"writeable": true
},
{
"name": "nextcloud_aio_elasticsearch",
"location": "/nextcloud_aio_volumes/nextcloud_aio_elasticsearch",
"source": "nextcloud_aio_elasticsearch",
"destination": "/nextcloud_aio_volumes/nextcloud_aio_elasticsearch",
"writeable": true
},
{
"name": "nextcloud_aio_redis",
"location": "/mnt/redis",
"source": "nextcloud_aio_redis",
"destination": "/mnt/redis",
"writeable": true
}
],
"secrets": [
"BORGBACKUP_PASSWORD"
],
"maxShutdownTime": 10,
"restartPolicy": ""
"devices": [
"/dev/fuse"
]
},
{
"identifier": "nextcloud-aio-watchtower",
"dependsOn": [],
"displayName": "Watchtower",
"containerName": "nextcloud/aio-watchtower",
"ports": [],
"internalPorts": [],
"environmentVariables": [
"container_name": "nextcloud-aio-watchtower",
"image": "nextcloud/aio-watchtower",
"environment": [
"CONTAINER_TO_UPDATE=nextcloud-aio-mastercontainer"
],
"volumes": [
{
"name": "%DOCKER_SOCKET_PATH%",
"location": "/var/run/docker.sock",
"source": "%DOCKER_SOCKET_PATH%",
"destination": "/var/run/docker.sock",
"writeable": false
}
],
"secrets": [],
"maxShutdownTime": 10,
"restartPolicy": ""
]
},
{
"dependsOn": [],
"identifier": "nextcloud-aio-domaincheck",
"displayName": "Domaincheck",
"containerName": "nextcloud/aio-domaincheck",
"container_name": "nextcloud-aio-domaincheck",
"image": "nextcloud/aio-domaincheck",
"ports": [
"%APACHE_PORT%/tcp"
{
"ip_binding": "%APACHE_IP_BINDING%",
"port_number": "%APACHE_PORT%",
"protocol": "tcp"
}
],
"internalPorts": [],
"environmentVariables": [
"environment": [
"INSTANCE_ID=%INSTANCE_ID%",
"APACHE_PORT=%APACHE_PORT%"
],
"volumes": [],
"secrets": [
"INSTANCE_ID"
],
"maxShutdownTime": 1,
"restartPolicy": ""
"stop_grace_period": 1
},
{
"identifier": "nextcloud-aio-clamav",
"dependsOn": [],
"displayName": "ClamAV",
"containerName": "nextcloud/aio-clamav",
"ports": [],
"internalPorts": [
"container_name": "nextcloud-aio-clamav",
"display_name": "ClamAV",
"image": "nextcloud/aio-clamav",
"expose": [
"3310"
],
"environmentVariables": [
"internal_port": "3310",
"environment": [
"TZ=%TIMEZONE%",
"CLAMD_STARTUP_TIMEOUT=90"
],
"volumes": [
{
"name": "nextcloud_aio_clamav",
"location": "/var/lib/clamav",
"source": "nextcloud_aio_clamav",
"destination": "/var/lib/clamav",
"writeable": true
}
],
"secrets": [],
"maxShutdownTime": 10,
"restartPolicy": "unless-stopped"
"restart": "unless-stopped"
},
{
"identifier": "nextcloud-aio-onlyoffice",
"dependsOn": [],
"displayName": "OnlyOffice",
"containerName": "nextcloud/aio-onlyoffice",
"ports": [],
"internalPorts": [
"container_name": "nextcloud-aio-onlyoffice",
"display_name": "OnlyOffice",
"image": "nextcloud/aio-onlyoffice",
"expose": [
"80"
],
"environmentVariables": [
"internal_port": "80",
"environment": [
"TZ=%TIMEZONE%",
"JWT_ENABLED=true",
"JWT_HEADER=AuthorizationJwt",
@@ -402,58 +391,51 @@
],
"volumes": [
{
"name": "nextcloud_aio_onlyoffice",
"location": "/var/lib/onlyoffice",
"source": "nextcloud_aio_onlyoffice",
"destination": "/var/lib/onlyoffice",
"writeable": true
}
],
"secrets": [
"ONLYOFFICE_SECRET"
],
"maxShutdownTime": 10,
"restartPolicy": "unless-stopped"
"restart": "unless-stopped"
},
{
"identifier": "nextcloud-aio-imaginary",
"dependsOn": [],
"displayName": "Imaginary",
"containerName": "nextcloud/aio-imaginary",
"ports": [],
"internalPorts": [
"container_name": "nextcloud-aio-imaginary",
"display_name": "Imaginary",
"image": "nextcloud/aio-imaginary",
"expose": [
"9000"
],
"environmentVariables": [
"internal_port": "9000",
"environment": [
"TZ=%TIMEZONE%"
],
"volumes": [],
"secrets": [],
"maxShutdownTime": 10,
"restartPolicy": "unless-stopped"
"restart": "unless-stopped"
},
{
"identifier": "nextcloud-aio-fulltextsearch",
"dependsOn": [],
"displayName": "Fulltextsearch",
"containerName": "nextcloud/aio-fulltextsearch",
"ports": [],
"internalPorts": [
"container_name": "nextcloud-aio-fulltextsearch",
"display_name": "Fulltextsearch",
"image": "nextcloud/aio-fulltextsearch",
"expose": [
"9200"
],
"environmentVariables": [
"internal_port": "9200",
"environment": [
"TZ=%TIMEZONE%",
"discovery.type=single-node",
"ES_JAVA_OPTS=-Xms1024M -Xmx1024M"
"ES_JAVA_OPTS=-Xms1024M -Xmx1024M",
"POSTGRES_HOST=nextcloud-aio-database"
],
"volumes": [
{
"name": "nextcloud_aio_elasticsearch",
"location": "/usr/share/elasticsearch/data",
"source": "nextcloud_aio_elasticsearch",
"destination": "/usr/share/elasticsearch/data",
"writeable": true
}
],
"secrets": [],
"maxShutdownTime": 10,
"restartPolicy": "unless-stopped"
"restart": "unless-stopped"
}
]
}

View File

@@ -1,57 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<files psalm-version="5.4.0@62db5d4f6a7ae0a20f7cc5a4952d730272fc0863">
<file src="public/index.php">
<MissingClosureParamType occurrences="10">
<code>$args</code>
<code>$args</code>
<code>$args</code>
<code>$args</code>
<code>$request</code>
<code>$request</code>
<code>$request</code>
<code>$response</code>
<code>$response</code>
<code>$response</code>
</MissingClosureParamType>
</file>
<file src="src/Controller/ConfigurationController.php">
<MissingParamType occurrences="1">
<code>$args</code>
</MissingParamType>
</file>
<file src="src/Controller/DockerController.php">
<MissingParamType occurrences="8">
<code>$args</code>
<code>$args</code>
<code>$args</code>
<code>$args</code>
<code>$args</code>
<code>$args</code>
<code>$args</code>
<code>$args</code>
</MissingParamType>
</file>
<file src="src/Controller/LoginController.php">
<MissingParamType occurrences="3">
<code>$args</code>
<code>$args</code>
<code>$args</code>
</MissingParamType>
</file>
<file src="src/Docker/DockerActionManager.php">
<InvalidReturnType occurrences="1">
<code>IContainerState</code>
</InvalidReturnType>
<InvalidScalarArgument occurrences="1">
<code>$internalPort</code>
</InvalidScalarArgument>
<RedundantCondition occurrences="1">
<code>$container-&gt;GetInternalPorts() !== null</code>
</RedundantCondition>
</file>
<file src="src/Twig/ClassExtension.php">
<MissingParamType occurrences="1">
<code>$object</code>
</MissingParamType>
</file>
</files>
<files psalm-version="5.6.0@e784128902dfe01d489c4123d69918a9f3c1eac5"/>

View File

@@ -12,6 +12,8 @@ use Slim\Csrf\Guard;
use Slim\Factory\AppFactory;
use Slim\Views\Twig;
use Slim\Views\TwigMiddleware;
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;
require __DIR__ . '/../vendor/autoload.php';
@@ -55,6 +57,7 @@ $app->get('/api/docker/getwatchtower', AIO\Controller\DockerController::class .
$app->post('/api/docker/start', AIO\Controller\DockerController::class . ':StartContainer');
$app->post('/api/docker/backup', AIO\Controller\DockerController::class . ':StartBackupContainerBackup');
$app->post('/api/docker/backup-check', AIO\Controller\DockerController::class . ':StartBackupContainerCheck');
$app->post('/api/docker/backup-check-repair', AIO\Controller\DockerController::class . ':StartBackupContainerCheckRepair');
$app->post('/api/docker/backup-test', AIO\Controller\DockerController::class . ':StartBackupContainerTest');
$app->post('/api/docker/restore', AIO\Controller\DockerController::class . ':StartBackupContainerRestore');
$app->post('/api/docker/stop', AIO\Controller\DockerController::class . ':StopContainer');
@@ -65,7 +68,7 @@ $app->post('/api/auth/logout', AIO\Controller\LoginController::class . ':Logout'
$app->post('/api/configuration', \AIO\Controller\ConfigurationController::class . ':SetConfig');
// Views
$app->get('/containers', function ($request, $response, $args) use ($container) {
$app->get('/containers', function (Request $request, Response $response, array $args) use ($container) {
$view = Twig::fromRequest($request);
/** @var \AIO\Data\ConfigurationManager $configurationManager */
$configurationManager = $container->get(\AIO\Data\ConfigurationManager::class);
@@ -77,9 +80,9 @@ $app->get('/containers', function ($request, $response, $args) use ($container)
return $view->render($response, 'containers.twig', [
'domain' => $configurationManager->GetDomain(),
'borg_backup_host_location' => $configurationManager->GetBorgBackupHostLocation(),
'nextcloud_password' => $configurationManager->GetSecret('NEXTCLOUD_PASSWORD'),
'nextcloud_password' => $configurationManager->GetAndGenerateSecret('NEXTCLOUD_PASSWORD'),
'containers' => (new \AIO\ContainerDefinitionFetcher($container->get(\AIO\Data\ConfigurationManager::class), $container))->FetchDefinition(),
'borgbackup_password' => $configurationManager->GetSecret('BORGBACKUP_PASSWORD'),
'borgbackup_password' => $configurationManager->GetAndGenerateSecret('BORGBACKUP_PASSWORD'),
'is_mastercontainer_update_available' => $dockerActionManger->IsMastercontainerUpdateAvailable(),
'has_backup_run_once' => $configurationManager->hasBackupRunOnce(),
'is_backup_container_running' => $dockerActionManger->isBackupContainerRunning(),
@@ -110,7 +113,7 @@ $app->get('/containers', function ($request, $response, $args) use ($container)
'additional_backup_directories' => $configurationManager->GetAdditionalBackupDirectoriesString(),
]);
})->setName('profile');
$app->get('/login', function ($request, $response, $args) use ($container) {
$app->get('/login', function (Request $request, Response $response, array $args) use ($container) {
$view = Twig::fromRequest($request);
/** @var \AIO\Docker\DockerActionManager $dockerActionManger */
$dockerActionManger = $container->get(\AIO\Docker\DockerActionManager::class);
@@ -118,7 +121,7 @@ $app->get('/login', function ($request, $response, $args) use ($container) {
'is_login_allowed' => $dockerActionManger->isLoginAllowed(),
]);
});
$app->get('/setup', function ($request, $response, $args) use ($container) {
$app->get('/setup', function (Request $request, Response $response, array $args) use ($container) {
$view = Twig::fromRequest($request);
/** @var \AIO\Data\Setup $setup */
$setup = $container->get(\AIO\Data\Setup::class);
@@ -140,7 +143,7 @@ $app->get('/setup', function ($request, $response, $args) use ($container) {
});
// Auth Redirector
$app->get('/', function (\Psr\Http\Message\RequestInterface $request, \Psr\Http\Message\ResponseInterface $response, $args) use ($container) {
$app->get('/', function (\Psr\Http\Message\RequestInterface $request, Response $response, array $args) use ($container) {
$authManager = $container->get(\AIO\Auth\AuthManager::class);
/** @var \AIO\Data\Setup $setup */

View File

@@ -23,6 +23,10 @@ a {
outline: none;
}
#logout {
margin-top: 7px;
}
summary {
cursor: pointer;
}

View File

@@ -14,13 +14,15 @@ class Container {
private string $restartPolicy;
private int $maxShutdownTime;
private ContainerPorts $ports;
private ContainerInternalPorts $internalPorts;
private string $internalPorts;
private ContainerVolumes $volumes;
private ContainerEnvironmentVariables $containerEnvironmentVariables;
/** @var string[] */
private array $dependsOn;
/** @var string[] */
private array $secrets;
/** @var string[] */
private array $devices;
private DockerActionManager $dockerActionManager;
public function __construct(
@@ -30,11 +32,12 @@ class Container {
string $restartPolicy,
int $maxShutdownTime,
ContainerPorts $ports,
ContainerInternalPorts $internalPorts,
string $internalPorts,
ContainerVolumes $volumes,
ContainerEnvironmentVariables $containerEnvironmentVariables,
array $dependsOn,
array $secrets,
array $devices,
DockerActionManager $dockerActionManager
) {
$this->identifier = $identifier;
@@ -48,6 +51,7 @@ class Container {
$this->containerEnvironmentVariables = $containerEnvironmentVariables;
$this->dependsOn = $dependsOn;
$this->secrets = $secrets;
$this->devices = $devices;
$this->dockerActionManager = $dockerActionManager;
}
@@ -75,11 +79,15 @@ class Container {
return $this->secrets;
}
public function GetDevices() : array {
return $this->devices;
}
public function GetPorts() : ContainerPorts {
return $this->ports;
}
public function GetInternalPorts() : ContainerInternalPorts {
public function GetInternalPort() : string {
return $this->internalPorts;
}

View File

@@ -1,19 +0,0 @@
<?php
namespace AIO\Container;
class ContainerInternalPorts {
/** @var string[] */
private array $internalPorts = [];
public function AddInternalPort(string $internalPort) : void {
$this->internalPorts[] = $internalPort;
}
/**
* @return string[]
*/
public function GetInternalPorts() : array {
return $this->internalPorts;
}
}

View File

@@ -0,0 +1,19 @@
<?php
namespace AIO\Container;
class ContainerPort {
public string $port;
public string $ipBinding;
public string $protocol;
public function __construct(
string $port,
string $ipBinding,
string $protocol
) {
$this->port = $port;
$this->ipBinding = $ipBinding;
$this->protocol = $protocol;
}
}

View File

@@ -3,17 +3,17 @@
namespace AIO\Container;
class ContainerPorts {
/** @var string[] */
/** @var ContainerPort[] */
private array $ports = [];
public function AddPort(string $port) : void {
public function AddPort(ContainerPort $port) : void {
$this->ports[] = $port;
}
/**
* @return string[]
* @return ContainerPort[]
*/
public function GetPorts() : array {
return $this->ports;
}
}
}

View File

@@ -4,8 +4,8 @@ namespace AIO;
use AIO\Container\Container;
use AIO\Container\ContainerEnvironmentVariables;
use AIO\Container\ContainerPort;
use AIO\Container\ContainerPorts;
use AIO\Container\ContainerInternalPorts;
use AIO\Container\ContainerVolume;
use AIO\Container\ContainerVolumes;
use AIO\Container\State\RunningState;
@@ -48,146 +48,184 @@ class ContainerDefinitionFetcher
$data = json_decode(file_get_contents(__DIR__ . '/../containers.json'), true);
$containers = [];
foreach ($data['production'] as $entry) {
if ($entry['identifier'] === 'nextcloud-aio-clamav') {
foreach ($data['aio_services_v1'] as $entry) {
if ($entry['container_name'] === 'nextcloud-aio-clamav') {
if (!$this->configurationManager->isClamavEnabled()) {
continue;
}
} elseif ($entry['identifier'] === 'nextcloud-aio-onlyoffice') {
} elseif ($entry['container_name'] === 'nextcloud-aio-onlyoffice') {
if (!$this->configurationManager->isOnlyofficeEnabled()) {
continue;
}
} elseif ($entry['identifier'] === 'nextcloud-aio-collabora') {
} elseif ($entry['container_name'] === 'nextcloud-aio-collabora') {
if (!$this->configurationManager->isCollaboraEnabled()) {
continue;
}
} elseif ($entry['identifier'] === 'nextcloud-aio-talk') {
} elseif ($entry['container_name'] === 'nextcloud-aio-talk') {
if (!$this->configurationManager->isTalkEnabled()) {
continue;
}
} elseif ($entry['identifier'] === 'nextcloud-aio-imaginary') {
} elseif ($entry['container_name'] === 'nextcloud-aio-imaginary') {
if (!$this->configurationManager->isImaginaryEnabled()) {
continue;
}
} elseif ($entry['identifier'] === 'nextcloud-aio-fulltextsearch') {
} elseif ($entry['container_name'] === 'nextcloud-aio-fulltextsearch') {
if (!$this->configurationManager->isFulltextsearchEnabled()) {
continue;
}
}
$ports = new ContainerPorts();
foreach ($entry['ports'] as $port) {
if($port === '%APACHE_PORT%/tcp') {
$port = $this->configurationManager->GetApachePort() . '/tcp';
} elseif($port === '%TALK_PORT%/tcp') {
$port = $this->configurationManager->GetTalkPort() . '/tcp';
} elseif($port === '%TALK_PORT%/udp') {
$port = $this->configurationManager->GetTalkPort() . '/udp';
}
$ports->AddPort($port);
}
if (isset($entry['ports'])) {
foreach ($entry['ports'] as $value) {
if ($value['port_number'] === '%APACHE_PORT%') {
$value['port_number'] = $this->configurationManager->GetApachePort();
} elseif ($value['port_number'] === '%TALK_PORT%') {
$value['port_number'] = $this->configurationManager->GetTalkPort();
}
$internalPorts = new ContainerInternalPorts();
foreach ($entry['internalPorts'] as $internalPort) {
if($internalPort === '%APACHE_PORT%') {
$internalPort = $this->configurationManager->GetApachePort();
} elseif($internalPort === '%TALK_PORT%') {
$internalPort = $this->configurationManager->GetTalkPort();
if ($value['ip_binding'] === '%APACHE_IP_BINDING%') {
$value['ip_binding'] = $this->configurationManager->GetApacheIPBinding();
}
$ports->AddPort(
new ContainerPort(
$value['port_number'],
$value['ip_binding'],
$value['protocol']
)
);
}
$internalPorts->AddInternalPort($internalPort);
}
$volumes = new ContainerVolumes();
foreach ($entry['volumes'] as $value) {
if($value['name'] === '%BORGBACKUP_HOST_LOCATION%') {
$value['name'] = $this->configurationManager->GetBorgBackupHostLocation();
if($value['name'] === '') {
continue;
if (isset($entry['volumes'])) {
foreach ($entry['volumes'] as $value) {
if($value['source'] === '%BORGBACKUP_HOST_LOCATION%') {
$value['source'] = $this->configurationManager->GetBorgBackupHostLocation();
if($value['source'] === '') {
continue;
}
}
if($value['source'] === '%NEXTCLOUD_MOUNT%') {
$value['source'] = $this->configurationManager->GetNextcloudMount();
if($value['source'] === '') {
continue;
}
} elseif ($value['source'] === '%NEXTCLOUD_DATADIR%') {
$value['source'] = $this->configurationManager->GetNextcloudDatadirMount();
if ($value['source'] === '') {
continue;
}
} elseif ($value['source'] === '%DOCKER_SOCKET_PATH%') {
$value['source'] = $this->configurationManager->GetDockerSocketPath();
if($value['source'] === '') {
continue;
}
} elseif ($value['source'] === '%NEXTCLOUD_TRUSTED_CACERTS_DIR%') {
$value['source'] = $this->configurationManager->GetTrustedCacertsDir();
if($value['source'] === '') {
continue;
}
}
if ($value['destination'] === '%NEXTCLOUD_MOUNT%') {
$value['destination'] = $this->configurationManager->GetNextcloudMount();
if($value['destination'] === '') {
continue;
}
}
$volumes->AddVolume(
new ContainerVolume(
$value['source'],
$value['destination'],
$value['writeable']
)
);
}
if($value['name'] === '%NEXTCLOUD_MOUNT%') {
$value['name'] = $this->configurationManager->GetNextcloudMount();
if($value['name'] === '') {
continue;
}
} elseif ($value['name'] === '%NEXTCLOUD_DATADIR%') {
$value['name'] = $this->configurationManager->GetNextcloudDatadirMount();
if ($value['name'] === '') {
continue;
}
} elseif ($value['name'] === '%DOCKER_SOCKET_PATH%') {
$value['name'] = $this->configurationManager->GetDockerSocketPath();
if($value['name'] === '') {
continue;
}
} elseif ($value['name'] === '%NEXTCLOUD_TRUSTED_CACERTS_DIR%') {
$value['name'] = $this->configurationManager->GetTrustedCacertsDir();
if($value['name'] === '') {
continue;
}
}
if ($value['location'] === '%NEXTCLOUD_MOUNT%') {
$value['location'] = $this->configurationManager->GetNextcloudMount();
if($value['location'] === '') {
continue;
}
}
$volumes->AddVolume(
new ContainerVolume(
$value['name'],
$value['location'],
$value['writeable']
)
);
}
$dependsOn = [];
foreach ($entry['dependsOn'] as $value) {
if ($value === 'nextcloud-aio-clamav') {
if (!$this->configurationManager->isClamavEnabled()) {
continue;
}
} elseif ($value === 'nextcloud-aio-onlyoffice') {
if (!$this->configurationManager->isOnlyofficeEnabled()) {
continue;
}
} elseif ($value === 'nextcloud-aio-collabora') {
if (!$this->configurationManager->isCollaboraEnabled()) {
continue;
}
} elseif ($value === 'nextcloud-aio-talk') {
if (!$this->configurationManager->isTalkEnabled()) {
continue;
}
} elseif ($value === 'nextcloud-aio-imaginary') {
if (!$this->configurationManager->isImaginaryEnabled()) {
continue;
}
} elseif ($value === 'nextcloud-aio-fulltextsearch') {
if (!$this->configurationManager->isFulltextsearchEnabled()) {
continue;
if (isset($entry['depends_on'])) {
foreach ($entry['depends_on'] as $value) {
if ($value === 'nextcloud-aio-clamav') {
if (!$this->configurationManager->isClamavEnabled()) {
continue;
}
} elseif ($value === 'nextcloud-aio-onlyoffice') {
if (!$this->configurationManager->isOnlyofficeEnabled()) {
continue;
}
} elseif ($value === 'nextcloud-aio-collabora') {
if (!$this->configurationManager->isCollaboraEnabled()) {
continue;
}
} elseif ($value === 'nextcloud-aio-talk') {
if (!$this->configurationManager->isTalkEnabled()) {
continue;
}
} elseif ($value === 'nextcloud-aio-imaginary') {
if (!$this->configurationManager->isImaginaryEnabled()) {
continue;
}
} elseif ($value === 'nextcloud-aio-fulltextsearch') {
if (!$this->configurationManager->isFulltextsearchEnabled()) {
continue;
}
}
$dependsOn[] = $value;
}
$dependsOn[] = $value;
}
$variables = new ContainerEnvironmentVariables();
foreach ($entry['environmentVariables'] as $value) {
$variables->AddVariable($value);
if (isset($entry['environment'])) {
foreach ($entry['environment'] as $value) {
$variables->AddVariable($value);
}
}
$displayName = '';
if (isset($entry['display_name'])) {
$displayName = $entry['display_name'];
}
$restartPolicy = '';
if (isset($entry['restart'])) {
$restartPolicy = $entry['restart'];
}
$maxShutdownTime = 10;
if (isset($entry['stop_grace_period'])) {
$maxShutdownTime = $entry['stop_grace_period'];
}
$internalPort = '';
if (isset($entry['internal_port'])) {
$internalPort = $entry['internal_port'];
}
$secrets = [];
if (isset($entry['secrets'])) {
$secrets = $entry['secrets'];
}
$devices = [];
if (isset($entry['devices'])) {
$devices = $entry['devices'];
}
$containers[] = new Container(
$entry['identifier'],
$entry['displayName'],
$entry['containerName'],
$entry['restartPolicy'],
$entry['maxShutdownTime'],
$entry['container_name'],
$displayName,
$entry['image'],
$restartPolicy,
$maxShutdownTime,
$ports,
$internalPorts,
$internalPort,
$volumes,
$variables,
$dependsOn,
$entry['secrets'],
$secrets,
$devices,
$this->container->get(DockerActionManager::class)
);
}

Some files were not shown because too many files have changed in this diff Show More