Compare commits

...

109 Commits

Author SHA1 Message Date
Simon L
a149f75795 add ADDITIONAL_TRUSTED_PROXY to the chart
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-11-23 14:50:52 +01:00
Simon L
a43f75542e Merge pull request #3805 from nextcloud/enh/noid/disable-volumes 2023-11-23 12:00:11 +01:00
Simon L
e6d0059986 helm - disable volumes if corresponding feature is disabled
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-11-23 11:59:04 +01:00
Simon L
75784dc736 Merge pull request #3804 from nextcloud/enh/noid/publish-helm-dev 2023-11-23 10:57:03 +01:00
Simon L
42ddbfde34 helm - publish new dev release
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-11-23 10:53:07 +01:00
Simon L
f577221fa7 elasticsearch 8.11.1 is still not available for arm64
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-11-23 10:50:32 +01:00
Simon L
6fe494cc9f Merge pull request #3795 from nextcloud/enh/noid/define-additional-trusted-proxy 2023-11-23 10:44:59 +01:00
Simon L
8b39a5ec73 Merge pull request #3774 from nextcloud/enh/3769/make-pull-image-failure-proof 2023-11-23 10:10:55 +01:00
Simon L
8c17fa0a7c Merge pull request #3775 from nextcloud/dependabot/docker/Containers/clamav/clamav/clamav-1.2.1-16
Bump clamav/clamav from 1.2.1-15 to 1.2.1-16 in /Containers/clamav
2023-11-23 09:53:34 +01:00
Simon L
aae79af1b5 Merge pull request #3773 from nextcloud/enh/noid/rename-pullcontainer
rename pullContainer to pullImage
2023-11-23 09:53:04 +01:00
Simon L
907dca670e Merge pull request #3765 from nextcloud/dependabot/docker/Containers/fulltextsearch/elasticsearch-8.11.1
Bump elasticsearch from 8.11.0 to 8.11.1 in /Containers/fulltextsearch
2023-11-23 09:51:44 +01:00
Simon L
66c90e976f Merge pull request #3776 from nextcloud/dependabot/docker/Containers/docker-socket-proxy/haproxy-2.8.4-alpine3.18
Bump haproxy from 2.8.3-alpine3.18 to 2.8.4-alpine3.18 in /Containers/docker-socket-proxy
2023-11-23 09:51:19 +01:00
Simon L
c67bd8f7db Merge pull request #3781 from nextcloud/enh/noid/collabora-mknod
add mknod capability to collabora
2023-11-23 09:50:47 +01:00
Simon L
e1019ee9ff Merge pull request #3799 from nextcloud/aio-dependency-update
PHP dependency updates
2023-11-23 09:50:14 +01:00
Simon L
0b23271af0 Merge pull request #3801 from nextcloud/automated/noid/psalm-baseline-update
[Automated] Update psalm-baseline.xml
2023-11-23 09:49:24 +01:00
Simon L
53d5191da7 Merge pull request #3786 from nextcloud/aio-helm-update
Helm Chart updates
2023-11-23 09:46:49 +01:00
szaimen
95850d30bb Helm Chart updates
Signed-off-by: GitHub <noreply@github.com>
2023-11-23 08:45:28 +00:00
nextcloud-command
92664f7964 Update psalm baseline
Signed-off-by: GitHub <noreply@github.com>
2023-11-23 04:09:07 +00:00
szaimen
4e3b93da82 php dependency updates
Signed-off-by: GitHub <noreply@github.com>
2023-11-22 12:02:17 +00:00
Simon L
25c5b3dd65 helm - add namespace to different section
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-11-21 19:10:06 +01:00
Simon L
89a87d8b60 helm - allow to define an additional_trusted_proxy
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-11-21 17:34:37 +01:00
Simon L
5a385ebdd3 Merge pull request #3784 from nextcloud/enh/noid/fix-clamav 2023-11-21 16:41:09 +01:00
Simon L
feec123292 fix clamav permissions
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-11-21 12:07:05 +01:00
Simon L
ec33279209 Merge pull request #3783 from nextcloud/st3iny-patch-1 2023-11-21 11:45:30 +01:00
Simon L
e20f31ab90 address some other details
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-11-21 11:44:17 +01:00
Richard Steinmetz
98e671403c helm: fix duplicate SMTP_HOST env variable
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2023-11-21 11:38:08 +01:00
Simon L
5ed71e8a88 add mknod capability to collabora
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-11-21 09:11:31 +01:00
Simon L
ebbc68e4e5 add section how to connect to database
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-11-20 15:09:03 +01:00
dependabot[bot]
f7ea98ef24 Bump haproxy in /Containers/docker-socket-proxy
Bumps haproxy from 2.8.3-alpine3.18 to 2.8.4-alpine3.18.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-20 13:08:42 +00:00
Simon L
10a8f5b099 Make sure that image is correctly pulled before continuing
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-11-20 14:05:40 +01:00
dependabot[bot]
2d2d7a2e7a Bump clamav/clamav from 1.2.1-15 to 1.2.1-16 in /Containers/clamav
Bumps clamav/clamav from 1.2.1-15 to 1.2.1-16.

---
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-11-20 12:44:59 +00:00
Simon L
01625b1b7a fix removing THIS_IS_AIO
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-11-20 13:29:19 +01:00
Simon L
f935993ac6 rename pullContainer to pullImage
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-11-20 13:16:59 +01:00
dependabot[bot]
db0c20584d Bump elasticsearch from 8.11.0 to 8.11.1 in /Containers/fulltextsearch
Bumps elasticsearch from 8.11.0 to 8.11.1.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-17 12:33:42 +00:00
Simon L
03aa7a1ce1 name loadbalancer ports in a different way for a test
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-11-17 11:03:03 +01:00
Simon L
57b5f61f5b Merge pull request #3760 from nextcloud/enh/noid/create-beta-helm-chart 2023-11-16 21:38:27 +01:00
Simon L
0714ea0234 helm chart - create beta release
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-11-16 21:36:08 +01:00
Simon L
72e7dc29a8 fix the path
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-11-16 17:13:47 +01:00
Simon L
fac9169f59 Merge pull request #3758 from nextcloud/revert-3755-dependabot/docker/Containers/fulltextsearch/elasticsearch-8.11.1 2023-11-16 17:02:18 +01:00
Simon L
7bdf1bf49e Revert "Bump elasticsearch from 8.11.0 to 8.11.1 in /Containers/fulltextsearch" 2023-11-16 17:01:33 +01:00
Simon L
42c721d4f0 fix permissions for notify-push
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-11-16 16:49:03 +01:00
Simon L
dee692f3e9 fix it
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-11-16 16:16:41 +01:00
Simon L
5e843a9a9a gcc seems to be required for pip install now
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-11-16 16:13:00 +01:00
Simon L
2af3be98e9 increase to 7.7.0
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-11-16 16:01:08 +01:00
Simon L
6854145b91 Merge pull request #3735 from nextcloud/enh/noid/limit-php-fpm-again
re-introduce limiting the php-fpm port to certain containers
2023-11-16 15:58:37 +01:00
Simon L
d3e7557446 Merge pull request #3756 from nextcloud/enh/3742/helm-chart-improvements
helm chart - allow to configure additional values
2023-11-16 15:52:09 +01:00
Simon L
a2c8fa5aa0 Merge pull request #3752 from nextcloud/enh/3570/talk-recording-repo 2023-11-16 14:52:54 +01:00
Simon L
ded000e614 address review
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-11-16 14:42:00 +01:00
Simon L
78e133bd3a Merge pull request #3755 from nextcloud/dependabot/docker/Containers/fulltextsearch/elasticsearch-8.11.1 2023-11-16 14:23:36 +01:00
Simon L
a0dd9d6605 helm chart - allow to configure additional values
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-11-16 14:20:07 +01:00
dependabot[bot]
ab3ec7fc75 Bump elasticsearch from 8.11.0 to 8.11.1 in /Containers/fulltextsearch
Bumps elasticsearch from 8.11.0 to 8.11.1.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-16 12:12:21 +00:00
Simon L
97a4960726 Merge pull request #3754 from nextcloud/aio-dependency-update
PHP dependency updates
2023-11-16 13:04:14 +01:00
szaimen
f1b9d86394 php dependency updates
Signed-off-by: GitHub <noreply@github.com>
2023-11-16 12:02:11 +00:00
Simon L
542a6a0cbe get recording server from its repo
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-11-16 12:14:41 +01:00
Simon L
ea5965c149 Merge pull request #3734 from nextcloud/enh/noid/add-json-decode-and-encode 2023-11-15 22:57:32 +01:00
Simon L
e60331e987 Merge pull request #3751 from nextcloud/enh/noid/log-whole-logs 2023-11-15 22:57:00 +01:00
Simon L
2f56756423 Merge pull request #3736 from nextcloud/enh/noid/add-memories 2023-11-15 22:56:12 +01:00
Simon L
db582816d3 community containers - add memories
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-11-15 21:09:42 +01:00
Simon L
cfeb8d872a log whole error messages
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-11-15 21:04:25 +01:00
Simon L
088fd118be Merge pull request #3749 from nextcloud/dependabot/docker/Containers/talk/strukturag/nextcloud-spreed-signaling-1.2.1 2023-11-15 13:30:59 +01:00
dependabot[bot]
0374ec96c4 Bump strukturag/nextcloud-spreed-signaling in /Containers/talk
Bumps strukturag/nextcloud-spreed-signaling from 1.2.0 to 1.2.1.

---
updated-dependencies:
- dependency-name: strukturag/nextcloud-spreed-signaling
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-15 12:25:30 +00:00
Simon L
1922e06fcc Merge pull request #3748 from nextcloud/aio-dependency-update 2023-11-15 13:21:29 +01:00
szaimen
7b507e5107 php dependency updates
Signed-off-by: GitHub <noreply@github.com>
2023-11-15 12:02:22 +00:00
Simon L
50d50a63a9 Merge pull request #3744 from nextcloud/dependabot/docker/Containers/postgresql/postgres-15.5-alpine 2023-11-14 14:55:28 +01:00
dependabot[bot]
eb22484e9e Bump postgres from 15.4-alpine to 15.5-alpine in /Containers/postgresql
Bumps postgres from 15.4-alpine to 15.5-alpine.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-14 13:01:26 +00:00
Simon L
7d3335a9a7 Merge pull request #3743 from nextcloud/dependabot/github_actions/dessant/lock-threads-5 2023-11-14 13:31:38 +01:00
dependabot[bot]
344270b805 Bump dessant/lock-threads from 4 to 5
Bumps [dessant/lock-threads](https://github.com/dessant/lock-threads) from 4 to 5.
- [Release notes](https://github.com/dessant/lock-threads/releases)
- [Changelog](https://github.com/dessant/lock-threads/blob/main/CHANGELOG.md)
- [Commits](https://github.com/dessant/lock-threads/compare/v4...v5)

---
updated-dependencies:
- dependency-name: dessant/lock-threads
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-14 12:19:41 +00:00
Simon L
2de67a38bd add hint regarding collabora in rootless mode
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-11-13 20:33:46 +01:00
Simon L
72ecbfec49 re-introduce limiting the php-fpm port to certain containers
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-11-13 16:45:36 +01:00
Simon L
779f9e4889 Merge pull request #3732 from nextcloud/enh/noid/add-dual-stack 2023-11-13 16:44:16 +01:00
Simon L
40d7c05362 add JSON_THROW_ON_ERROR to json_encode and json_decode in config manager
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-11-13 15:39:55 +01:00
Simon L
2abad75461 helm chart - add dualstack functionality
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-11-13 14:40:39 +01:00
Simon L
85933dd149 Merge pull request #3695 from nextcloud/aio-helm-update 2023-11-13 14:16:08 +01:00
szaimen
9d8f172ac6 Helm Chart updates
Signed-off-by: GitHub <noreply@github.com>
2023-11-13 13:11:17 +00:00
Simon L
9a7dea0bf7 Merge pull request #3707 from nextcloud/enh/noid/notify-push 2023-11-13 14:10:39 +01:00
Simon L
bf816c0f53 another attempt
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-11-13 14:09:36 +01:00
Simon L
75eb25f5d1 Merge pull request #3731 from nextcloud/dependabot/docker/Containers/watchtower/containrrr/watchtower-1.7.1 2023-11-13 14:07:45 +01:00
Simon L
42343413ea Merge pull request #3730 from nextcloud/dependabot/docker/Containers/clamav/clamav/clamav-1.2.1-15 2023-11-13 14:07:31 +01:00
Simon L
f10760d3e7 Merge pull request #3729 from nextcloud/dependabot/docker/Containers/collabora/collabora/code-23.05.5.4.1 2023-11-13 14:07:19 +01:00
Simon L
545fd28ab9 Merge pull request #3724 from nextcloud/nextcloud-container-update 2023-11-13 14:07:04 +01:00
Simon L
9b208c3584 Merge pull request #3723 from nextcloud/aio-dependency-update 2023-11-13 14:06:46 +01:00
Simon L
648769c8dc Merge pull request #3716 from nextcloud/dependabot/docker/Containers/talk/nats-2.10.5-scratch 2023-11-13 14:06:33 +01:00
Simon L
8331e5cff8 Merge pull request #3704 from nextcloud/dependabot/docker/Containers/fulltextsearch/elasticsearch-8.11.0 2023-11-13 14:06:23 +01:00
Simon L
256ab598f3 Merge pull request #3702 from nextcloud/dependabot/docker/Containers/imaginary/golang-1.21.4-alpine3.18 2023-11-13 14:06:12 +01:00
Simon L
bb1bfd2703 update OO
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-11-13 14:05:23 +01:00
Simon L
4ef2848442 try to fix helm update script
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-11-13 14:01:33 +01:00
dependabot[bot]
9e8c039d8e Bump containrrr/watchtower from 1.6.0 to 1.7.1 in /Containers/watchtower
Bumps containrrr/watchtower from 1.6.0 to 1.7.1.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-13 12:41:10 +00:00
dependabot[bot]
fe1c145d1a Bump clamav/clamav from 1.2.1-14 to 1.2.1-15 in /Containers/clamav
Bumps clamav/clamav from 1.2.1-14 to 1.2.1-15.

---
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-11-13 12:36:41 +00:00
dependabot[bot]
18f2eba949 Bump collabora/code in /Containers/collabora
Bumps collabora/code from 23.05.5.3.1 to 23.05.5.4.1.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-13 12:27:10 +00:00
szaimen
f6e35dd5e6 nextcloud-update automated change
Signed-off-by: GitHub <noreply@github.com>
2023-11-12 12:07:22 +00:00
szaimen
2f4b4cde66 php dependency updates
Signed-off-by: GitHub <noreply@github.com>
2023-11-12 12:02:15 +00:00
dependabot[bot]
9705ada112 Bump nats from 2.10.4-scratch to 2.10.5-scratch in /Containers/talk
Bumps nats from 2.10.4-scratch to 2.10.5-scratch.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-10 12:28:20 +00:00
Simon L
04e5c5e592 make sure that notify-push is executable
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-11-08 17:02:15 +01:00
Simon L
c7a6fbba33 fix typo
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-11-08 15:29:00 +01:00
Simon L
dc581f2321 Merge pull request #3705 from nextcloud/enh/noid/fix-getting-ipaddress 2023-11-08 15:18:19 +01:00
Simon L
5808898b38 address review and fix another detail
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-11-08 15:17:03 +01:00
Simon L
30f5e27889 fix getting ip-address
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-11-08 15:09:19 +01:00
dependabot[bot]
2e596a921a Bump elasticsearch from 8.10.4 to 8.11.0 in /Containers/fulltextsearch
Bumps elasticsearch from 8.10.4 to 8.11.0.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-08 12:46:31 +00:00
dependabot[bot]
aa98c93806 Bump golang in /Containers/imaginary
Bumps golang from 1.21.3-alpine3.18 to 1.21.4-alpine3.18.

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-08 12:30:27 +00:00
Simon L
ebac4c928b Merge pull request #3701 from nextcloud/enh/noid/change-trafficpolicy 2023-11-08 11:18:02 +01:00
Simon L
17c413039d adjust version number
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-11-08 11:17:24 +01:00
Simon L
fbc9885713 also adjust script
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-11-08 11:14:47 +01:00
Simon L
1e8250af93 change externaltrafficpolicy
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-11-08 11:03:50 +01:00
Simon L
3ea6a956e4 fix detail
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-11-06 21:47:31 +01:00
Simon L
e133814052 increase to 7.6.2
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-11-06 20:20:27 +01:00
Simon L
b5e07bae90 comment some more details
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-11-06 20:17:21 +01:00
Simon L
dee51b3804 Merge pull request #3682 from nextcloud/fix/3671/skip-starting-container 2023-11-06 16:10:47 +01:00
Simon L
7f3fbbde0d update values for default storage size
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-11-06 16:08:10 +01:00
Simon L
bdb4a8cfed do not start container if it is started already
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-11-05 20:06:25 +01:00
65 changed files with 471 additions and 103 deletions

View File

@@ -14,7 +14,7 @@ jobs:
action: action:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: dessant/lock-threads@v4 - uses: dessant/lock-threads@v5
with: with:
issue-inactive-days: '14' issue-inactive-days: '14'
process-only: 'issues' process-only: 'issues'

View File

@@ -11,18 +11,18 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Run talk-update - name: Run talk-container-update
run: | run: |
# Spreed # Recording
spreed_version="$( recording_version="$(
git ls-remote https://github.com/nextcloud/spreed v*.*.* \ git ls-remote https://github.com/nextcloud/nextcloud-talk-recording v* \
| cut -d/ -f3 \ | cut -d/ -f3 \
| sort -V \ | sort -V \
| grep -E "^v[0-9]+\.[0-9]+\.[0-9]+$" \ | grep -E "^v[0-9\.]+$" \
| tail -1 | tail -1
)" )"
sed -i "s|^ENV RECORDING_VERSION.*$|ENV RECORDING_VERSION $spreed_version|" ./Containers/talk-recording/Dockerfile sed -i "s|^ENV RECORDING_VERSION.*$|ENV RECORDING_VERSION $recording_version|" ./Containers/talk-recording/Dockerfile
curl -L "https://raw.githubusercontent.com/nextcloud/spreed/$spreed_version/recording/server.conf.in" -o Containers/talk-recording/recording.conf curl -L "https://raw.githubusercontent.com/nextcloud/nextcloud-talk-recording/$recording_version/server.conf.in" -o Containers/talk-recording/recording.conf
# Signaling # Signaling
signaling_version="$( signaling_version="$(
@@ -49,7 +49,7 @@ jobs:
with: with:
commit-message: talk-update automated change commit-message: talk-update automated change
signoff: true signoff: true
title: talk update title: talk container update
body: Automated talk container update body: Automated talk container update
labels: dependencies, 3. to review labels: dependencies, 3. to review
milestone: next milestone: next

View File

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

View File

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

View File

@@ -1,4 +1,4 @@
FROM haproxy:2.8.3-alpine3.18 FROM haproxy:2.8.4-alpine3.18
# hadolint ignore=DL3002 # hadolint ignore=DL3002
USER root USER root

View File

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

View File

@@ -1,4 +1,4 @@
FROM golang:1.21.3-alpine3.18 as go FROM golang:1.21.4-alpine3.18 as go
ENV IMAGINARY_HASH 7efb66c243056e5b3b65215e101be7915983e364 ENV IMAGINARY_HASH 7efb66c243056e5b3b65215e101be7915983e364

View File

@@ -42,7 +42,7 @@ RUN set -ex; \
apk add --no-cache --virtual .build-deps \ apk add --no-cache --virtual .build-deps \
autoconf \ autoconf \
build-base; \ build-base; \
pecl install APCu-5.1.22; \ pecl install APCu-5.1.23; \
docker-php-ext-enable apcu; \ docker-php-ext-enable apcu; \
rm -r /tmp/pear; \ rm -r /tmp/pear; \
runDeps="$( \ runDeps="$( \

View File

@@ -68,7 +68,7 @@ RUN set -ex; \
; \ ; \
\ \
# pecl will claim success even if one install fails, so we need to perform each install separately # pecl will claim success even if one install fails, so we need to perform each install separately
pecl install APCu-5.1.22; \ pecl install APCu-5.1.23; \
pecl install memcached-3.2.0; \ pecl install memcached-3.2.0; \
pecl install redis-6.0.2; \ pecl install redis-6.0.2; \
pecl install imagick-3.7.0; \ pecl install imagick-3.7.0; \

View File

@@ -12,4 +12,5 @@ $CONFIG = array (
'writable' => true, 'writable' => true,
), ),
), ),
'appsallowlist' => getenv('APPS_ALLOWLIST') ? explode(" ", getenv('APPS_ALLOWLIST')) : [],
); );

View File

@@ -0,0 +1,20 @@
<?php
if (getenv('SMTP_HOST') && getenv('MAIL_FROM_ADDRESS') && getenv('MAIL_DOMAIN')) {
$CONFIG = array (
'mail_smtpmode' => 'smtp',
'mail_smtphost' => getenv('SMTP_HOST'),
'mail_smtpport' => getenv('SMTP_PORT') ?: (getenv('SMTP_SECURE') ? 465 : 25),
'mail_smtpsecure' => getenv('SMTP_SECURE') ?: '',
'mail_smtpauth' => getenv('SMTP_NAME') && getenv('SMTP_PASSWORD'),
'mail_smtpauthtype' => getenv('SMTP_AUTHTYPE') ?: 'LOGIN',
'mail_smtpname' => getenv('SMTP_NAME') ?: '',
'mail_from_address' => getenv('MAIL_FROM_ADDRESS'),
'mail_domain' => getenv('MAIL_DOMAIN'),
);
if (getenv('SMTP_PASSWORD')) {
$CONFIG['mail_smtppassword'] = getenv('SMTP_PASSWORD');
} else {
$CONFIG['mail_smtppassword'] = '';
}
}

View File

@@ -464,6 +464,10 @@ php /var/www/html/occ config:system:set one-click-instance --value=true --type=b
php /var/www/html/occ config:system:set one-click-instance.user-limit --value=100 --type=int php /var/www/html/occ config:system:set one-click-instance.user-limit --value=100 --type=int
php /var/www/html/occ config:system:set one-click-instance.link --value="https://nextcloud.com/all-in-one/" php /var/www/html/occ config:system:set one-click-instance.link --value="https://nextcloud.com/all-in-one/"
php /var/www/html/occ app:enable support php /var/www/html/occ app:enable support
if [ -n "$SUBSCRIPTION_KEY" ] && [ -z "$(php /var/www/html/occ config:app:get support potential_subscription_key)" ]; then
php /var/www/html/occ config:app:set support potential_subscription_key --value="$SUBSCRIPTION_KEY"
php /var/www/html/occ config:app:delete support last_check
fi
# Adjusting log files to be stored on a volume # Adjusting log files to be stored on a volume
echo "Adjusting log files..." echo "Adjusting log files..."
@@ -491,8 +495,14 @@ else
fi fi
# AIO app # AIO app
if [ "$(php /var/www/html/occ config:app:get nextcloud-aio enabled)" != "yes" ]; then if [ "$THIS_IS_AIO" = "true" ]; then
php /var/www/html/occ app:enable nextcloud-aio if [ "$(php /var/www/html/occ config:app:get nextcloud-aio enabled)" != "yes" ]; then
php /var/www/html/occ app:enable nextcloud-aio
fi
else
if [ "$(php /var/www/html/occ config:app:get nextcloud-aio enabled)" != "no" ]; then
php /var/www/html/occ app:disable nextcloud-aio
fi
fi fi
# Notify push # Notify push
@@ -503,8 +513,12 @@ elif [ "$(php /var/www/html/occ config:app:get notify_push enabled)" != "yes" ];
elif [ "$SKIP_UPDATE" != 1 ]; then elif [ "$SKIP_UPDATE" != 1 ]; then
php /var/www/html/occ app:update notify_push php /var/www/html/occ app:update notify_push
fi fi
chmod 775 -R /var/www/html/custom_apps/notify_push/bin/
php /var/www/html/occ config:system:set trusted_proxies 0 --value="127.0.0.1" php /var/www/html/occ config:system:set trusted_proxies 0 --value="127.0.0.1"
php /var/www/html/occ config:system:set trusted_proxies 1 --value="::1" php /var/www/html/occ config:system:set trusted_proxies 1 --value="::1"
if [ -n "$ADDITIONAL_TRUSTED_PROXY" ]; then
php /var/www/html/occ config:system:set trusted_proxies 2 --value="$ADDITIONAL_TRUSTED_PROXY"
fi
php /var/www/html/occ config:app:set notify_push base_endpoint --value="https://$NC_DOMAIN/push" php /var/www/html/occ config:app:set notify_push base_endpoint --value="https://$NC_DOMAIN/push"
# Collabora # Collabora
@@ -550,6 +564,11 @@ if [ "$COLLABORA_ENABLED" = 'yes' ]; then
if ! echo "$COLLABORA_ALLOW_LIST" | grep -q "$PRIVATE_IP_RANGES"; then if ! echo "$COLLABORA_ALLOW_LIST" | grep -q "$PRIVATE_IP_RANGES"; then
COLLABORA_ALLOW_LIST+=",$PRIVATE_IP_RANGES" COLLABORA_ALLOW_LIST+=",$PRIVATE_IP_RANGES"
fi fi
if [ -n "$ADDITIONAL_TRUSTED_PROXY" ]; then
if ! echo "$COLLABORA_ALLOW_LIST" | grep -q "$ADDITIONAL_TRUSTED_PROXY"; then
COLLABORA_ALLOW_LIST+=",$ADDITIONAL_TRUSTED_PROXY"
fi
fi
php /var/www/html/occ config:app:set richdocuments wopi_allowlist --value="$COLLABORA_ALLOW_LIST" php /var/www/html/occ config:app:set richdocuments wopi_allowlist --value="$COLLABORA_ALLOW_LIST"
else else
echo "Warning: wopi_allowlist is empty which should not be the case!" echo "Warning: wopi_allowlist is empty which should not be the case!"

View File

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

View File

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

View File

@@ -1,5 +1,5 @@
# From https://github.com/docker-library/postgres/blob/master/15/alpine/Dockerfile # From https://github.com/docker-library/postgres/blob/master/15/alpine/Dockerfile
FROM postgres:15.4-alpine FROM postgres:15.5-alpine
COPY --chmod=775 start.sh /start.sh COPY --chmod=775 start.sh /start.sh
COPY --chmod=775 healthcheck.sh /healthcheck.sh COPY --chmod=775 healthcheck.sh /healthcheck.sh

View File

@@ -2,7 +2,7 @@ FROM python:3.12.0-alpine3.18
COPY --chmod=775 start.sh /start.sh COPY --chmod=775 start.sh /start.sh
ENV RECORDING_VERSION v17.1.2 ENV RECORDING_VERSION v0.1
ENV ALLOW_ALL false ENV ALLOW_ALL false
ENV HPB_PROTOCOL https ENV HPB_PROTOCOL https
ENV SKIP_VERIFY false ENV SKIP_VERIFY false
@@ -22,15 +22,16 @@ RUN set -ex; \
wget \ wget \
shadow \ shadow \
pulseaudio \ pulseaudio \
openssl; \ openssl \
build-base \
linux-headers; \
# chromium chromium-chromedriver? # chromium chromium-chromedriver?
apk add --no-cache geckodriver --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing; \ apk add --no-cache geckodriver --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing; \
useradd -d /tmp --system recording; \ useradd -d /tmp --system recording; \
# Give root a random password # Give root a random password
echo "root:$(openssl rand -base64 12)" | chpasswd; \ echo "root:$(openssl rand -base64 12)" | chpasswd; \
git clone --recursive https://github.com/nextcloud/spreed --depth=1 --single-branch --branch "$RECORDING_VERSION" /src; \ git clone --recursive https://github.com/nextcloud/nextcloud-talk-recording --depth=1 --single-branch --branch "$RECORDING_VERSION" /src; \
mv -v /src/recording/pyproject.toml /src/recording/src/pyproject.toml; \ python3 -m pip install --no-cache-dir /src; \
python3 -m pip install --no-cache-dir /src/recording/src; \
rm -rf /src; \ rm -rf /src; \
touch /etc/recording.conf; \ touch /etc/recording.conf; \
chown recording:recording -R \ chown recording:recording -R \
@@ -42,7 +43,9 @@ RUN set -ex; \
git \ git \
wget \ wget \
shadow \ shadow \
openssl; openssl \
build-base \
linux-headers;
WORKDIR /tmp WORKDIR /tmp
USER recording USER recording

View File

@@ -96,11 +96,15 @@
#internalsecret = the-shared-secret-for-internal-clients #internalsecret = the-shared-secret-for-internal-clients
[ffmpeg] [ffmpeg]
# The options given to FFmpeg to encode the audio output. The options given here # The ffmpeg executable (name or full path) and the global options given to
# ffmpeg. The options given here fully override the default global options.
#common = ffmpeg -loglevel level+warning -n
# The options given to ffmpeg to encode the audio output. The options given here
# fully override the default options for the audio output. # fully override the default options for the audio output.
#outputaudio = -c:a libopus #outputaudio = -c:a libopus
# The options given to FFmpeg to encode the video output. The options given here # The options given to ffmpeg to encode the video output. The options given here
# fully override the default options for the video output. # fully override the default options for the video output.
#outputvideo = -c:v libvpx -deadline:v realtime -crf 10 -b:v 1M #outputvideo = -c:v libvpx -deadline:v realtime -crf 10 -b:v 1M
@@ -109,3 +113,11 @@
# The extension of the file for audio and video recordings. # The extension of the file for audio and video recordings.
#extensionvideo = .webm #extensionvideo = .webm
[recording]
# Browser to use for recordings. Please note that the "chrome" value does not
# refer to the web browser, but to the Selenium WebDriver. In practice, "chrome"
# will use Google Chrome, or Chromium if Google Chrome is not installed.
# Allowed values: firefox, chrome
# Defaults to firefox
# browser = firefox

View File

@@ -26,8 +26,6 @@ listen = 0.0.0.0:1234
[backend] [backend]
allowall = ${ALLOW_ALL} allowall = ${ALLOW_ALL}
# TODO: remove secret below when https://github.com/nextcloud/spreed/issues/9580 is fixed
secret = ${RECORDING_SECRET}
backends = backend-1 backends = backend-1
skipverify = ${SKIP_VERIFY} skipverify = ${SKIP_VERIFY}
maxmessagesize = 1024 maxmessagesize = 1024
@@ -48,10 +46,14 @@ url = ${HPB_PROTOCOL}://${HPB_DOMAIN}${HPB_PATH}
internalsecret = ${INTERNAL_SECRET} internalsecret = ${INTERNAL_SECRET}
[ffmpeg] [ffmpeg]
# common = ffmpeg -loglevel level+warning -n
# outputaudio = -c:a libopus # outputaudio = -c:a libopus
# outputvideo = -c:v libvpx -deadline:v realtime -crf 10 -b:v 1M # outputvideo = -c:v libvpx -deadline:v realtime -crf 10 -b:v 1M
extensionaudio = .ogg extensionaudio = .ogg
extensionvideo = .webm extensionvideo = .webm
[recording]
browser = firefox
RECORDING_CONF RECORDING_CONF
exec "$@" exec "$@"

View File

@@ -1,6 +1,6 @@
FROM nats:2.10.4-scratch as nats FROM nats:2.10.5-scratch as nats
FROM eturnal/eturnal:1.12.0 AS eturnal FROM eturnal/eturnal:1.12.0 AS eturnal
FROM strukturag/nextcloud-spreed-signaling:1.2.0 as signaling FROM strukturag/nextcloud-spreed-signaling:1.2.1 as signaling
FROM alpine:3.18.4 as janus FROM alpine:3.18.4 as janus
ARG JANUS_VERSION=v0.14.0 ARG JANUS_VERSION=v0.14.0
@@ -65,7 +65,8 @@ RUN set -ex; \
libusrsctp \ libusrsctp \
libwebsockets \ libwebsockets \
\ \
shadow; \ shadow \
grep; \
useradd --system -u 1000 eturnal; \ useradd --system -u 1000 eturnal; \
apk del --no-cache \ apk del --no-cache \
shadow; \ shadow; \

View File

@@ -19,10 +19,15 @@ elif [ -z "$INTERNAL_SECRET" ]; then
fi fi
set -x set -x
IPv4_ADDRESS_TALK_RELAY="$(hostname -i | grep -oP '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' | head -1)"
IPv4_ADDRESS_TALK="$(dig nextcloud-aio-talk IN A +short +search | grep '^[0-9.]\+$' | sort | head -n1)" IPv4_ADDRESS_TALK="$(dig nextcloud-aio-talk IN A +short +search | grep '^[0-9.]\+$' | sort | head -n1)"
IPv6_ADDRESS_TALK="$(dig nextcloud-aio-talk AAAA +short +search | grep '^[0-9a-f:]\+$' | sort | head -n1)" IPv6_ADDRESS_TALK="$(dig nextcloud-aio-talk AAAA +short +search | grep '^[0-9a-f:]\+$' | sort | head -n1)"
set +x set +x
if [ -n "$IPv4_ADDRESS_TALK" ] && [ "$IPv4_ADDRESS_TALK_RELAY" = "$IPv4_ADDRESS_TALK" ]; then
IPv4_ADDRESS_TALK=""
fi
# Turn # Turn
cat << TURN_CONF > "/conf/eturnal.yml" cat << TURN_CONF > "/conf/eturnal.yml"
eturnal: eturnal:
@@ -36,13 +41,14 @@ eturnal:
log_dir: stdout log_dir: stdout
log_level: warning log_level: warning
secret: "$TURN_SECRET" secret: "$TURN_SECRET"
relay_ipv4_addr: "$IPv4_ADDRESS_TALK" relay_ipv4_addr: "$IPv4_ADDRESS_TALK_RELAY"
relay_ipv6_addr: "$IPv6_ADDRESS_TALK" relay_ipv6_addr: "$IPv6_ADDRESS_TALK"
blacklist_peers: blacklist_peers:
- recommended - recommended
whitelist_peers: whitelist_peers:
- 127.0.0.1 - 127.0.0.1
- ::1 - ::1
- "$IPv4_ADDRESS_TALK_RELAY"
- "$IPv4_ADDRESS_TALK" - "$IPv4_ADDRESS_TALK"
- "$IPv6_ADDRESS_TALK" - "$IPv6_ADDRESS_TALK"
TURN_CONF TURN_CONF

View File

@@ -1,5 +1,5 @@
# From https://github.com/containrrr/watchtower/blob/main/dockerfiles/Dockerfile.self-contained # From https://github.com/containrrr/watchtower/blob/main/dockerfiles/Dockerfile.self-contained
FROM containrrr/watchtower:1.6.0 as watchtower FROM containrrr/watchtower:1.7.1 as watchtower
FROM alpine:3.18.4 FROM alpine:3.18.4

View File

@@ -0,0 +1,33 @@
{
"aio_services_v1": [
{
"container_name": "nextcloud-aio-memories",
"display_name": "Memories Transcoder",
"documentation": "https://github.com/nextcloud/all-in-one/tree/main/community-containers/memories",
"image": "radialapps/go-vod",
"image_tag": "latest",
"internal_port": "47788",
"restart": "unless-stopped",
"environment": [
"TZ=%TIMEZONE%",
"NEXTCLOUD_HOST=https://%NC_DOMAIN%"
],
"volumes": [
{
"source": "%NEXTCLOUD_DATADIR%",
"destination": "/mnt/ncdata",
"writeable": false
}
],
"devices": [
"/dev/dri"
],
"nextcloud_exec_commands": [
"php /var/www/html/occ app:install memories",
"php /var/www/html/occ app:enable memories",
"php /var/www/html/occ config:system:set memories.vod.external --value true --type bool",
"php /var/www/html/occ config:system:set memories.vod.connect --value nextcloud-aio-memories:47788"
]
}
]
}

View File

@@ -0,0 +1,12 @@
## Memories
This container bundles the hardware-transcoding container of memories and auto-configures it for you.
### Notes
- In order to actually enable the hardware transcoding, you need to add the following flag to AIO apart from adding this container: https://github.com/nextcloud/all-in-one#how-to-enable-hardware-transcoding-for-nextcloud
- See https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers how to add it to the AIO stack
### Repository
https://github.com/pulsejet/memories
### Maintainer
https://github.com/pulsejet

View File

@@ -38,3 +38,6 @@ This is documented here: https://github.com/nextcloud-releases/all-in-one/tree/m
1. Verify that no job is running here: https://github.com/nextcloud-releases/all-in-one/actions/workflows/promote-to-beta.yml 1. Verify that no job is running here: https://github.com/nextcloud-releases/all-in-one/actions/workflows/promote-to-beta.yml
2. Go to https://github.com/nextcloud-releases/all-in-one/actions/workflows/promote-to-latest.yml, click on `Run workflow`. 2. Go to https://github.com/nextcloud-releases/all-in-one/actions/workflows/promote-to-latest.yml, click on `Run workflow`.
## How to connect to the database?
Simply run `sudo docker exec -it nextcloud-aio-database psql -U oc_nextcloud nextcloud_database` and you should be in.

View File

@@ -1,5 +1,7 @@
# Docker rootless # Docker rootless
**Please note:** Due to a bug in Collabora is the Collabora container currently in rootless mode not working. See https://github.com/CollaboraOnline/online/issues/2800. In that case, you need to run a separate Collabora instance on your own if you want to use this feature. The following flag will be useful https://github.com/nextcloud/all-in-one#how-to-keep-disabled-apps.
You can run AIO with docker rootless by following the steps below. You can run AIO with docker rootless by following the steps below.
0. If docker is already installed, you should consider disabling it first: (`sudo systemctl disable --now docker.service docker.socket`) 0. If docker is already installed, you should consider disabling it first: (`sudo systemctl disable --now docker.service docker.socket`)

View File

@@ -32,6 +32,7 @@ echo "$OUTPUT" | yq -P > ./manual-install/containers.yml
cd manual-install || exit cd manual-install || exit
sed -i "s|'||g" containers.yml sed -i "s|'||g" containers.yml
sed -i '/display_name:/d' containers.yml sed -i '/display_name:/d' containers.yml
sed -i '/THIS_IS_AIO/d' containers.yml
sed -i '/stop_grace_period:/s/$/s/' containers.yml sed -i '/stop_grace_period:/s/$/s/' containers.yml
sed -i '/: \[\]/d' containers.yml sed -i '/: \[\]/d' containers.yml
sed -i 's|- source: |- |' containers.yml sed -i 's|- source: |- |' containers.yml

View File

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

View File

@@ -57,7 +57,7 @@ spec:
value: nextcloud-aio-talk value: nextcloud-aio-talk
- name: TZ - name: TZ
value: "{{ .Values.TIMEZONE }}" value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-apache:develop image: nextcloud/aio-apache:20231123_084113-latest
name: nextcloud-aio-apache name: nextcloud-aio-apache
ports: ports:
- containerPort: {{ .Values.APACHE_PORT }} - containerPort: {{ .Values.APACHE_PORT }}

View File

@@ -9,7 +9,9 @@ metadata:
name: nextcloud-aio-apache name: nextcloud-aio-apache
namespace: {{ .Values.NAMESPACE }} namespace: {{ .Values.NAMESPACE }}
spec: spec:
ipFamilyPolicy: PreferDualStack
type: LoadBalancer type: LoadBalancer
externalTrafficPolicy: Local
ports: ports:
- name: "{{ .Values.APACHE_PORT }}" - name: "{{ .Values.APACHE_PORT }}"
port: {{ .Values.APACHE_PORT }} port: {{ .Values.APACHE_PORT }}

View File

@@ -24,11 +24,22 @@ spec:
io.kompose.service: nextcloud-aio-clamav io.kompose.service: nextcloud-aio-clamav
spec: spec:
initContainers: initContainers:
- name: init-subpath
image: alpine
command:
- mkdir
- "-p"
- /nextcloud-aio-clamav/data
- /nextcloud-aio-clamav
volumeMounts:
- name: nextcloud-aio-clamav
mountPath: /nextcloud-aio-clamav
- name: init-volumes - name: init-volumes
image: alpine image: alpine
command: command:
- chmod - chown
- "777" - 100:100
- "-R"
- /nextcloud-aio-clamav - /nextcloud-aio-clamav
volumeMounts: volumeMounts:
- name: nextcloud-aio-clamav - name: nextcloud-aio-clamav
@@ -39,13 +50,14 @@ spec:
value: "90" value: "90"
- name: TZ - name: TZ
value: "{{ .Values.TIMEZONE }}" value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-clamav:develop image: nextcloud/aio-clamav:20231123_084113-latest
name: nextcloud-aio-clamav name: nextcloud-aio-clamav
ports: ports:
- containerPort: 3310 - containerPort: 3310
protocol: TCP protocol: TCP
volumeMounts: volumeMounts:
- mountPath: /var/lib/clamav - mountPath: /var/lib/clamav
subPath: data
name: nextcloud-aio-clamav name: nextcloud-aio-clamav
volumes: volumes:
- name: nextcloud-aio-clamav - name: nextcloud-aio-clamav

View File

@@ -1,3 +1,4 @@
{{- if eq .Values.CLAMAV_ENABLED "yes" }}
apiVersion: v1 apiVersion: v1
kind: PersistentVolumeClaim kind: PersistentVolumeClaim
metadata: metadata:
@@ -14,3 +15,4 @@ spec:
resources: resources:
requests: requests:
storage: {{ .Values.CLAMAV_STORAGE_SIZE }} storage: {{ .Values.CLAMAV_STORAGE_SIZE }}
{{- end }}

View File

@@ -10,6 +10,7 @@ metadata:
name: nextcloud-aio-clamav name: nextcloud-aio-clamav
namespace: {{ .Values.NAMESPACE }} namespace: {{ .Values.NAMESPACE }}
spec: spec:
ipFamilyPolicy: PreferDualStack
ports: ports:
- name: "3310" - name: "3310"
port: 3310 port: 3310

View File

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

View File

@@ -10,6 +10,7 @@ metadata:
name: nextcloud-aio-collabora name: nextcloud-aio-collabora
namespace: {{ .Values.NAMESPACE }} namespace: {{ .Values.NAMESPACE }}
spec: spec:
ipFamilyPolicy: PreferDualStack
ports: ports:
- name: "9980" - name: "9980"
port: 9980 port: 9980

View File

@@ -61,7 +61,7 @@ spec:
value: nextcloud value: nextcloud
- name: TZ - name: TZ
value: "{{ .Values.TIMEZONE }}" value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-postgresql:develop image: nextcloud/aio-postgresql:20231123_084113-latest
name: nextcloud-aio-database name: nextcloud-aio-database
ports: ports:
- containerPort: 5432 - containerPort: 5432

View File

@@ -9,6 +9,7 @@ metadata:
name: nextcloud-aio-database name: nextcloud-aio-database
namespace: {{ .Values.NAMESPACE }} namespace: {{ .Values.NAMESPACE }}
spec: spec:
ipFamilyPolicy: PreferDualStack
ports: ports:
- name: "5432" - name: "5432"
port: 5432 port: 5432

View File

@@ -55,7 +55,7 @@ spec:
value: basic value: basic
- name: xpack.security.enabled - name: xpack.security.enabled
value: "false" value: "false"
image: nextcloud/aio-fulltextsearch:develop image: nextcloud/aio-fulltextsearch:20231123_084113-latest
name: nextcloud-aio-fulltextsearch name: nextcloud-aio-fulltextsearch
ports: ports:
- containerPort: 9200 - containerPort: 9200

View File

@@ -10,6 +10,7 @@ metadata:
name: nextcloud-aio-fulltextsearch name: nextcloud-aio-fulltextsearch
namespace: {{ .Values.NAMESPACE }} namespace: {{ .Values.NAMESPACE }}
spec: spec:
ipFamilyPolicy: PreferDualStack
ports: ports:
- name: "9200" - name: "9200"
port: 9200 port: 9200

View File

@@ -27,7 +27,7 @@ spec:
- env: - env:
- name: TZ - name: TZ
value: "{{ .Values.TIMEZONE }}" value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-imaginary:develop image: nextcloud/aio-imaginary:20231123_084113-latest
name: nextcloud-aio-imaginary name: nextcloud-aio-imaginary
ports: ports:
- containerPort: 9000 - containerPort: 9000

View File

@@ -10,6 +10,7 @@ metadata:
name: nextcloud-aio-imaginary name: nextcloud-aio-imaginary
namespace: {{ .Values.NAMESPACE }} namespace: {{ .Values.NAMESPACE }}
spec: spec:
ipFamilyPolicy: PreferDualStack
ports: ports:
- name: "9000" - name: "9000"
port: 9000 port: 9000

View File

@@ -37,6 +37,28 @@ spec:
mountPath: /nextcloud-aio-nextcloud mountPath: /nextcloud-aio-nextcloud
containers: containers:
- env: - env:
- name: SMTP_HOST
value: "{{ .Values.SMTP_HOST }}"
- name: SMTP_SECURE
value: "{{ .Values.SMTP_SECURE }}"
- name: SMTP_PORT
value: "{{ .Values.SMTP_PORT }}"
- name: SMTP_AUTHTYPE
value: "{{ .Values.SMTP_AUTHTYPE }}"
- name: SMTP_NAME
value: "{{ .Values.SMTP_NAME }}"
- name: SMTP_PASSWORD
value: "{{ .Values.SMTP_PASSWORD }}"
- name: MAIL_FROM_ADDRESS
value: "{{ .Values.MAIL_FROM_ADDRESS }}"
- name: MAIL_DOMAIN
value: "{{ .Values.MAIL_DOMAIN }}"
- name: SUBSCRIPTION_KEY
value: "{{ .Values.SUBSCRIPTION_KEY }}"
- name: APPS_ALLOWLIST
value: "{{ .Values.APPS_ALLOWLIST }}"
- name: ADDITIONAL_TRUSTED_PROXY
value: "{{ .Values.ADDITIONAL_TRUSTED_PROXY }}"
- name: ADDITIONAL_APKS - name: ADDITIONAL_APKS
value: "{{ .Values.NEXTCLOUD_ADDITIONAL_APKS }}" value: "{{ .Values.NEXTCLOUD_ADDITIONAL_APKS }}"
- name: ADDITIONAL_PHP_EXTENSIONS - name: ADDITIONAL_PHP_EXTENSIONS
@@ -124,6 +146,7 @@ spec:
- name: UPDATE_NEXTCLOUD_APPS - name: UPDATE_NEXTCLOUD_APPS
value: "{{ .Values.UPDATE_NEXTCLOUD_APPS }}" value: "{{ .Values.UPDATE_NEXTCLOUD_APPS }}"
image: nextcloud/aio-nextcloud:develop image: nextcloud/aio-nextcloud:develop
imagePullPolicy: Always
name: nextcloud-aio-nextcloud name: nextcloud-aio-nextcloud
ports: ports:
- containerPort: 9000 - containerPort: 9000

View File

@@ -9,6 +9,7 @@ metadata:
name: nextcloud-aio-nextcloud name: nextcloud-aio-nextcloud
namespace: {{ .Values.NAMESPACE }} namespace: {{ .Values.NAMESPACE }}
spec: spec:
ipFamilyPolicy: PreferDualStack
ports: ports:
- name: "9000" - name: "9000"
port: 9000 port: 9000

View File

@@ -50,7 +50,7 @@ spec:
value: nextcloud-aio-redis value: nextcloud-aio-redis
- name: REDIS_HOST_PASSWORD - name: REDIS_HOST_PASSWORD
value: "{{ .Values.REDIS_PASSWORD }}" value: "{{ .Values.REDIS_PASSWORD }}"
image: nextcloud/aio-notify-push:develop image: nextcloud/aio-notify-push:20231123_084113-latest
name: nextcloud-aio-notify-push name: nextcloud-aio-notify-push
ports: ports:
- containerPort: 7867 - containerPort: 7867

View File

@@ -9,6 +9,7 @@ metadata:
name: nextcloud-aio-notify-push name: nextcloud-aio-notify-push
namespace: {{ .Values.NAMESPACE }} namespace: {{ .Values.NAMESPACE }}
spec: spec:
ipFamilyPolicy: PreferDualStack
ports: ports:
- name: "7867" - name: "7867"
port: 7867 port: 7867

View File

@@ -43,7 +43,7 @@ spec:
value: "{{ .Values.ONLYOFFICE_SECRET }}" value: "{{ .Values.ONLYOFFICE_SECRET }}"
- name: TZ - name: TZ
value: "{{ .Values.TIMEZONE }}" value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-onlyoffice:develop image: nextcloud/aio-onlyoffice:20231123_084113-latest
name: nextcloud-aio-onlyoffice name: nextcloud-aio-onlyoffice
ports: ports:
- containerPort: 80 - containerPort: 80

View File

@@ -1,3 +1,4 @@
{{- if eq .Values.ONLYOFFICE_ENABLED "yes" }}
apiVersion: v1 apiVersion: v1
kind: PersistentVolumeClaim kind: PersistentVolumeClaim
metadata: metadata:
@@ -14,3 +15,4 @@ spec:
resources: resources:
requests: requests:
storage: {{ .Values.ONLYOFFICE_STORAGE_SIZE }} storage: {{ .Values.ONLYOFFICE_STORAGE_SIZE }}
{{- end }}

View File

@@ -10,6 +10,7 @@ metadata:
name: nextcloud-aio-onlyoffice name: nextcloud-aio-onlyoffice
namespace: {{ .Values.NAMESPACE }} namespace: {{ .Values.NAMESPACE }}
spec: spec:
ipFamilyPolicy: PreferDualStack
ports: ports:
- name: "80" - name: "80"
port: 80 port: 80

View File

@@ -38,7 +38,7 @@ spec:
value: "{{ .Values.REDIS_PASSWORD }}" value: "{{ .Values.REDIS_PASSWORD }}"
- name: TZ - name: TZ
value: "{{ .Values.TIMEZONE }}" value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-redis:develop image: nextcloud/aio-redis:20231123_084113-latest
name: nextcloud-aio-redis name: nextcloud-aio-redis
ports: ports:
- containerPort: 6379 - containerPort: 6379

View File

@@ -9,6 +9,7 @@ metadata:
name: nextcloud-aio-redis name: nextcloud-aio-redis
namespace: {{ .Values.NAMESPACE }} namespace: {{ .Values.NAMESPACE }}
spec: spec:
ipFamilyPolicy: PreferDualStack
ports: ports:
- name: "6379" - name: "6379"
port: 6379 port: 6379

View File

@@ -37,7 +37,7 @@ spec:
value: "{{ .Values.TURN_SECRET }}" value: "{{ .Values.TURN_SECRET }}"
- name: TZ - name: TZ
value: "{{ .Values.TIMEZONE }}" value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-talk:develop image: nextcloud/aio-talk:20231123_084113-latest
name: nextcloud-aio-talk name: nextcloud-aio-talk
ports: ports:
- containerPort: {{ .Values.TALK_PORT }} - containerPort: {{ .Values.TALK_PORT }}

View File

@@ -33,7 +33,7 @@ spec:
value: "{{ .Values.RECORDING_SECRET }}" value: "{{ .Values.RECORDING_SECRET }}"
- name: TZ - name: TZ
value: "{{ .Values.TIMEZONE }}" value: "{{ .Values.TIMEZONE }}"
image: nextcloud/aio-talk-recording:develop image: nextcloud/aio-talk-recording:20231123_084113-latest
name: nextcloud-aio-talk-recording name: nextcloud-aio-talk-recording
ports: ports:
- containerPort: 1234 - containerPort: 1234

View File

@@ -10,6 +10,7 @@ metadata:
name: nextcloud-aio-talk-recording name: nextcloud-aio-talk-recording
namespace: {{ .Values.NAMESPACE }} namespace: {{ .Values.NAMESPACE }}
spec: spec:
ipFamilyPolicy: PreferDualStack
ports: ports:
- name: "1234" - name: "1234"
port: 1234 port: 1234

View File

@@ -11,7 +11,9 @@ metadata:
name: nextcloud-aio-talk-public name: nextcloud-aio-talk-public
namespace: {{ .Values.NAMESPACE }} namespace: {{ .Values.NAMESPACE }}
spec: spec:
ipFamilyPolicy: PreferDualStack
type: LoadBalancer type: LoadBalancer
externalTrafficPolicy: Local
ports: ports:
- name: "{{ .Values.TALK_PORT }}" - name: "{{ .Values.TALK_PORT }}"
port: {{ .Values.TALK_PORT }} port: {{ .Values.TALK_PORT }}
@@ -34,6 +36,7 @@ metadata:
name: nextcloud-aio-talk name: nextcloud-aio-talk
namespace: {{ .Values.NAMESPACE }} namespace: {{ .Values.NAMESPACE }}
spec: spec:
ipFamilyPolicy: PreferDualStack
ports: ports:
- name: "8081" - name: "8081"
port: 8081 port: 8081

View File

@@ -81,15 +81,34 @@ cat << EOL > /tmp/initcontainers.database
- "-R" - "-R"
volumeMountsInitContainer: volumeMountsInitContainer:
EOL EOL
cat << EOL > /tmp/initcontainers.clamav
initContainers:
- name: init-subpath
image: alpine
command:
- mkdir
- "-p"
- /nextcloud-aio-clamav/data
volumeMountsInitContainer:
- name: init-volumes
image: alpine
command:
- chown
- 100:100
- "-R"
volumeMountsInitContainer:
EOL
# shellcheck disable=SC1083 # shellcheck disable=SC1083
DEPLOYMENTS="$(find ./ -name '*deployment.yaml')" DEPLOYMENTS="$(find ./ -name '*deployment.yaml')"
mapfile -t DEPLOYMENTS <<< "$DEPLOYMENTS" mapfile -t DEPLOYMENTS <<< "$DEPLOYMENTS"
for variable in "${DEPLOYMENTS[@]}"; do for variable in "${DEPLOYMENTS[@]}"; do
if grep -q volumeMounts "$variable"; then if grep -q volumeMounts "$variable"; then
if ! echo "$variable" | grep -q database; then if echo "$variable" | grep -q database; then
sed -i "/^ spec:/r /tmp/initcontainers" "$variable"
else
sed -i "/^ spec:/r /tmp/initcontainers.database" "$variable" sed -i "/^ spec:/r /tmp/initcontainers.database" "$variable"
elif echo "$variable" | grep -q clamav; then
sed -i "/^ spec:/r /tmp/initcontainers.clamav" "$variable"
else
sed -i "/^ spec:/r /tmp/initcontainers" "$variable"
fi fi
volumeNames="$(grep -A1 mountPath "$variable" | grep -v mountPath | sed 's|.*name: ||' | sed '/^--$/d')" volumeNames="$(grep -A1 mountPath "$variable" | grep -v mountPath | sed 's|.*name: ||' | sed '/^--$/d')"
mapfile -t volumeNames <<< "$volumeNames" mapfile -t volumeNames <<< "$volumeNames"
@@ -101,6 +120,8 @@ for variable in "${DEPLOYMENTS[@]}"; do
# Workaround for the database volume # Workaround for the database volume
if [ "$volumeName" = nextcloud-aio-database ]; then if [ "$volumeName" = nextcloud-aio-database ]; then
sed -i "/mountPath: \/var\/lib\/postgresql\/data/a\ \ \ \ \ \ \ \ \ \ \ \ \ \ subPath: data" "$variable" sed -i "/mountPath: \/var\/lib\/postgresql\/data/a\ \ \ \ \ \ \ \ \ \ \ \ \ \ subPath: data" "$variable"
elif [ "$volumeName" = nextcloud-aio-clamav ]; then
sed -i "/mountPath: \/var\/lib\/clamav/a\ \ \ \ \ \ \ \ \ \ \ \ \ \ subPath: data" "$variable"
fi fi
fi fi
@@ -131,7 +152,8 @@ find ./ -name '*deployment.yaml' -exec sed -i "s|emptyDir:|emptyDir: \{\}|" \{}
find ./ -name '*deployment.yaml' -exec sed -i "/hostPort:/d" \{} \; find ./ -name '*deployment.yaml' -exec sed -i "/hostPort:/d" \{} \;
# shellcheck disable=SC1083 # shellcheck disable=SC1083
find ./ -name '*persistentvolumeclaim.yaml' -exec sed -i "s|ReadOnlyMany|ReadWriteOnce|" \{} \; find ./ -name '*persistentvolumeclaim.yaml' -exec sed -i "s|ReadOnlyMany|ReadWriteOnce|" \{} \;
sed -i "s|ReadWriteOnce|ReadWriteMany|" nextcloud-aio-nextcloud-persistentvolumeclaim.yaml # shellcheck disable=SC1083
find ./ -name 'nextcloud-aio-nextcloud-persistentvolumeclaim.yaml' -exec sed -i "s|ReadWriteOnce|ReadWriteMany|" \{} \;
# shellcheck disable=SC1083 # shellcheck disable=SC1083
find ./ -name '*persistentvolumeclaim.yaml' -exec sed -i "/accessModes:/i\ \ {{- if .Values.STORAGE_CLASS }}" \{} \; find ./ -name '*persistentvolumeclaim.yaml' -exec sed -i "/accessModes:/i\ \ {{- if .Values.STORAGE_CLASS }}" \{} \;
# shellcheck disable=SC1083 # shellcheck disable=SC1083
@@ -165,6 +187,10 @@ find ./ -name '*talk-service.yaml' -exec grep -v '{{ .Values.TALK.*}}\|protocol:
# shellcheck disable=SC1083 # shellcheck disable=SC1083
find ./ -name '*talk-service.yaml' -exec mv /tmp/talk-service.copy \{} \; find ./ -name '*talk-service.yaml' -exec mv /tmp/talk-service.copy \{} \;
# shellcheck disable=SC1083 # shellcheck disable=SC1083
find ./ -name '*service.yaml' -exec sed -i "/type: LoadBalancer/a\ \ externalTrafficPolicy: Local" \{} \;
# shellcheck disable=SC1083
find ./ -name '*service.yaml' -exec sed -i "/^spec:/a\ \ ipFamilyPolicy: PreferDualStack" \{} \;
# shellcheck disable=SC1083
find ./ -name '*.yaml' -exec sed -i "s|'{{|\"{{|g;s|}}'|}}\"|g" \{} \; find ./ -name '*.yaml' -exec sed -i "s|'{{|\"{{|g;s|}}'|}}\"|g" \{} \;
# shellcheck disable=SC1083 # shellcheck disable=SC1083
find ./ -name '*.yaml' -exec sed -i "/type: Recreate/d" \{} \; find ./ -name '*.yaml' -exec sed -i "/type: Recreate/d" \{} \;
@@ -185,6 +211,34 @@ for variable in "${VOLUMES[@]}"; do
find ./ -name "*nextcloud-aio-$variable-persistentvolumeclaim.yaml" -exec sed -i "s|storage: 100Mi|storage: {{ .Values.$name }}|" \{} \; find ./ -name "*nextcloud-aio-$variable-persistentvolumeclaim.yaml" -exec sed -i "s|storage: 100Mi|storage: {{ .Values.$name }}|" \{} \;
done done
# Additional config
cat << EOL > /tmp/additional.config
- name: SMTP_HOST
value: "{{ .Values.SMTP_HOST }}"
- name: SMTP_SECURE
value: "{{ .Values.SMTP_SECURE }}"
- name: SMTP_PORT
value: "{{ .Values.SMTP_PORT }}"
- name: SMTP_AUTHTYPE
value: "{{ .Values.SMTP_AUTHTYPE }}"
- name: SMTP_NAME
value: "{{ .Values.SMTP_NAME }}"
- name: SMTP_PASSWORD
value: "{{ .Values.SMTP_PASSWORD }}"
- name: MAIL_FROM_ADDRESS
value: "{{ .Values.MAIL_FROM_ADDRESS }}"
- name: MAIL_DOMAIN
value: "{{ .Values.MAIL_DOMAIN }}"
- name: SUBSCRIPTION_KEY
value: "{{ .Values.SUBSCRIPTION_KEY }}"
- name: APPS_ALLOWLIST
value: "{{ .Values.APPS_ALLOWLIST }}"
- name: ADDITIONAL_TRUSTED_PROXY
value: "{{ .Values.ADDITIONAL_TRUSTED_PROXY }}"
EOL
# shellcheck disable=SC1083
find ./ -name '*nextcloud-deployment.yaml' -exec sed -i "/^.*\- env:/r /tmp/additional.config" \{} \;
cd ../ cd ../
mkdir -p ../helm-chart/ mkdir -p ../helm-chart/
rm latest/Chart.yaml rm latest/Chart.yaml
@@ -212,8 +266,6 @@ 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 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
sed -i 's|10737418240|"10737418240"|' /tmp/sample.conf sed -i 's|10737418240|"10737418240"|' /tmp/sample.conf
# shellcheck disable=SC2129 # shellcheck disable=SC2129
echo "NAMESPACE: default # By changing this, you can adjust the namespace of the installation which allows to install multiple instances on one kubernetes cluster" >> /tmp/sample.conf
# shellcheck disable=SC2129
echo "" >> /tmp/sample.conf echo "" >> /tmp/sample.conf
# shellcheck disable=SC2129 # shellcheck disable=SC2129
echo 'STORAGE_CLASS: # By setting this, you can adjust the storage class for your volumes' >> /tmp/sample.conf echo 'STORAGE_CLASS: # By setting this, you can adjust the storage class for your volumes' >> /tmp/sample.conf
@@ -222,6 +274,24 @@ for variable in "${VOLUME_VARIABLE[@]}"; do
done done
sed -i "s|NEXTCLOUD_STORAGE_SIZE: 1Gi|NEXTCLOUD_STORAGE_SIZE: 5Gi|" /tmp/sample.conf sed -i "s|NEXTCLOUD_STORAGE_SIZE: 1Gi|NEXTCLOUD_STORAGE_SIZE: 5Gi|" /tmp/sample.conf
sed -i "s|NEXTCLOUD_DATA_STORAGE_SIZE: 1Gi|NEXTCLOUD_DATA_STORAGE_SIZE: 5Gi|" /tmp/sample.conf sed -i "s|NEXTCLOUD_DATA_STORAGE_SIZE: 1Gi|NEXTCLOUD_DATA_STORAGE_SIZE: 5Gi|" /tmp/sample.conf
# Additional config
cat << ADDITIONAL_CONFIG >> /tmp/sample.conf
NAMESPACE: default # By changing this, you can adjust the namespace of the installation which allows to install multiple instances on one kubernetes cluster
SUBSCRIPTION_KEY: # This allows to set the Nextcloud Enterprise key via ENV
APPS_ALLOWLIST: # This allows to configure allowed apps that will be shown in Nextcloud's Appstore. You need to enter the app-IDs of the apps here and separate them with spaces. E.g. 'files richdocuments'
ADDITIONAL_TRUSTED_PROXY: # Allows to add one additional ip-address to Nextcloud's trusted proxies and to the Office WOPI-allowlist automatically. Set it e.g. like this: 'your.public.ip-address'. You can also use an ip-range here.
SMTP_HOST: # (empty by default): The hostname of the SMTP server.
SMTP_SECURE: # (empty by default): Set to 'ssl' to use SSL, or 'tls' to use STARTTLS.
SMTP_PORT: # (default: '465' for SSL and '25' for non-secure connections): Optional port for the SMTP connection. Use '587' for an alternative port for STARTTLS.
SMTP_AUTHTYPE: # (default: 'LOGIN'): The method used for authentication. Use 'PLAIN' if no authentication or STARTLS is required.
SMTP_NAME: # (empty by default): The username for the authentication.
SMTP_PASSWORD: # (empty by default): The password for the authentication.
MAIL_FROM_ADDRESS: # (not set by default): Set the local-part for the 'from' field in the emails sent by Nextcloud.
MAIL_DOMAIN: # (not set by default): Set a different domain for the emails than the domain where Nextcloud is installed.
ADDITIONAL_CONFIG
mv /tmp/sample.conf ../helm-chart/values.yaml mv /tmp/sample.conf ../helm-chart/values.yaml
ENABLED_VARIABLES="$(grep -oP '^[A-Z_]+_ENABLED' ../helm-chart/values.yaml)" ENABLED_VARIABLES="$(grep -oP '^[A-Z_]+_ENABLED' ../helm-chart/values.yaml)"
@@ -238,6 +308,10 @@ for variable in "${ENABLED_VARIABLES[@]}"; do
find ./ -name "*nextcloud-aio-$name-service.yaml" -exec sed -i "1i\\{{- if eq .Values.$variable \"yes\" }}" \{} \; find ./ -name "*nextcloud-aio-$name-service.yaml" -exec sed -i "1i\\{{- if eq .Values.$variable \"yes\" }}" \{} \;
# shellcheck disable=SC1083 # shellcheck disable=SC1083
find ./ -name "*nextcloud-aio-$name-service.yaml" -exec sed -i "$ a {{- end }}" \{} \; find ./ -name "*nextcloud-aio-$name-service.yaml" -exec sed -i "$ a {{- end }}" \{} \;
# shellcheck disable=SC1083
find ./ -name "*nextcloud-aio-$name-persistentvolumeclaim.yaml" -exec sed -i "1i\\{{- if eq .Values.$variable \"yes\" }}" \{} \;
# shellcheck disable=SC1083
find ./ -name "*nextcloud-aio-$name-persistentvolumeclaim.yaml" -exec sed -i "$ a {{- end }}" \{} \;
done done
chmod 777 -R ./ chmod 777 -R ./

View File

@@ -33,7 +33,6 @@ NEXTCLOUD_UPLOAD_LIMIT: 10G # This allows to change the upload limit of
REMOVE_DISABLED_APPS: yes # Setting this to no keep Nextcloud apps that are disabled via their switch and not uninstall them if they should be installed in Nextcloud. REMOVE_DISABLED_APPS: yes # Setting this to no keep Nextcloud apps that are disabled via their switch and not uninstall them if they should be installed in Nextcloud.
TALK_PORT: 3478 # This allows to adjust the port that the talk container is using. TALK_PORT: 3478 # This allows to adjust the port that the talk container is using.
UPDATE_NEXTCLOUD_APPS: no # When setting to yes (with quotes), it will automatically update all installed Nextcloud apps upon container startup on saturdays. UPDATE_NEXTCLOUD_APPS: no # When setting to yes (with quotes), it will automatically update all installed Nextcloud apps upon container startup on saturdays.
NAMESPACE: default # By changing this, you can adjust the namespace of the installation which allows to install multiple instances on one kubernetes cluster
STORAGE_CLASS: # By setting this, you can adjust the storage class for your volumes STORAGE_CLASS: # By setting this, you can adjust the storage class for your volumes
APACHE_STORAGE_SIZE: 1Gi # You can change the size of the apache 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
@@ -41,8 +40,21 @@ CLAMAV_STORAGE_SIZE: 1Gi # You can change the size of the clamav volume th
DATABASE_STORAGE_SIZE: 1Gi # You can change the size of the database volume that default to 1Gi with this value DATABASE_STORAGE_SIZE: 1Gi # You can change the size of the database volume that default to 1Gi with this value
DATABASE_DUMP_STORAGE_SIZE: 1Gi # You can change the size of the database-dump volume that default to 1Gi with this value DATABASE_DUMP_STORAGE_SIZE: 1Gi # You can change the size of the database-dump volume that default to 1Gi with this value
ELASTICSEARCH_STORAGE_SIZE: 1Gi # You can change the size of the elasticsearch volume that default to 1Gi with this value ELASTICSEARCH_STORAGE_SIZE: 1Gi # You can change the size of the elasticsearch volume that default to 1Gi with this value
NEXTCLOUD_STORAGE_SIZE: 1Gi # You can change the size of the nextcloud volume that default to 1Gi with this value NEXTCLOUD_STORAGE_SIZE: 5Gi # You can change the size of the nextcloud volume that default to 1Gi with this value
NEXTCLOUD_DATA_STORAGE_SIZE: 1Gi # You can change the size of the nextcloud-data volume that default to 1Gi with this value NEXTCLOUD_DATA_STORAGE_SIZE: 5Gi # You can change the size of the nextcloud-data volume that default to 1Gi with this value
NEXTCLOUD_TRUSTED_CACERTS_STORAGE_SIZE: 1Gi # You can change the size of the nextcloud-trusted-cacerts volume that default to 1Gi with this value NEXTCLOUD_TRUSTED_CACERTS_STORAGE_SIZE: 1Gi # You can change the size of the nextcloud-trusted-cacerts volume that default to 1Gi with this value
ONLYOFFICE_STORAGE_SIZE: 1Gi # You can change the size of the onlyoffice volume that default to 1Gi with this value ONLYOFFICE_STORAGE_SIZE: 1Gi # You can change the size of the onlyoffice volume that default to 1Gi with this value
REDIS_STORAGE_SIZE: 1Gi # You can change the size of the redis volume that default to 1Gi with this value REDIS_STORAGE_SIZE: 1Gi # You can change the size of the redis volume that default to 1Gi with this value
NAMESPACE: default # By changing this, you can adjust the namespace of the installation which allows to install multiple instances on one kubernetes cluster
SUBSCRIPTION_KEY: # This allows to set the Nextcloud Enterprise key via ENV
APPS_ALLOWLIST: # This allows to configure allowed apps that will be shown in Nextcloud's Appstore. You need to enter the app-IDs of the apps here and separate them with spaces. E.g. 'files richdocuments'
ADDITIONAL_TRUSTED_PROXY: # Allows to add one additional ip-address to Nextcloud's trusted proxies and to the Office WOPI-allowlist automatically. Set it e.g. like this: 'your.public.ip-address'. You can also use an ip-range here.
SMTP_HOST: # (empty by default): The hostname of the SMTP server.
SMTP_SECURE: # (empty by default): Set to 'ssl' to use SSL, or 'tls' to use STARTTLS.
SMTP_PORT: # (default: '465' for SSL and '25' for non-secure connections): Optional port for the SMTP connection. Use '587' for an alternative port for STARTTLS.
SMTP_AUTHTYPE: # (default: 'LOGIN'): The method used for authentication. Use 'PLAIN' if no authentication or STARTLS is required.
SMTP_NAME: # (empty by default): The username for the authentication.
SMTP_PASSWORD: # (empty by default): The password for the authentication.
MAIL_FROM_ADDRESS: # (not set by default): Set the local-part for the 'from' field in the emails sent by Nextcloud.
MAIL_DOMAIN: # (not set by default): Set a different domain for the emails than the domain where Nextcloud is installed.

114
php/composer.lock generated
View File

@@ -391,16 +391,16 @@
}, },
{ {
"name": "laravel/serializable-closure", "name": "laravel/serializable-closure",
"version": "v1.3.2", "version": "v1.3.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/laravel/serializable-closure.git", "url": "https://github.com/laravel/serializable-closure.git",
"reference": "076fe2cf128bd54b4341cdc6d49b95b34e101e4c" "reference": "3dbf8a8e914634c48d389c1234552666b3d43754"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/laravel/serializable-closure/zipball/076fe2cf128bd54b4341cdc6d49b95b34e101e4c", "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/3dbf8a8e914634c48d389c1234552666b3d43754",
"reference": "076fe2cf128bd54b4341cdc6d49b95b34e101e4c", "reference": "3dbf8a8e914634c48d389c1234552666b3d43754",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -447,7 +447,7 @@
"issues": "https://github.com/laravel/serializable-closure/issues", "issues": "https://github.com/laravel/serializable-closure/issues",
"source": "https://github.com/laravel/serializable-closure" "source": "https://github.com/laravel/serializable-closure"
}, },
"time": "2023-10-17T13:38:16+00:00" "time": "2023-11-08T14:08:06+00:00"
}, },
{ {
"name": "nikic/fast-route", "name": "nikic/fast-route",
@@ -1328,7 +1328,7 @@
}, },
{ {
"name": "symfony/deprecation-contracts", "name": "symfony/deprecation-contracts",
"version": "v3.3.0", "version": "v3.4.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/deprecation-contracts.git", "url": "https://github.com/symfony/deprecation-contracts.git",
@@ -1375,7 +1375,7 @@
"description": "A generic function and convention to trigger deprecation notices", "description": "A generic function and convention to trigger deprecation notices",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/deprecation-contracts/tree/v3.3.0" "source": "https://github.com/symfony/deprecation-contracts/tree/v3.4.0"
}, },
"funding": [ "funding": [
{ {
@@ -1558,6 +1558,89 @@
], ],
"time": "2023-07-28T09:04:16+00:00" "time": "2023-07-28T09:04:16+00:00"
}, },
{
"name": "symfony/polyfill-php80",
"version": "v1.28.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php80.git",
"reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/6caa57379c4aec19c0a12a38b59b26487dcfe4b5",
"reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5",
"shasum": ""
},
"require": {
"php": ">=7.1"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-main": "1.28-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
}
},
"autoload": {
"files": [
"bootstrap.php"
],
"psr-4": {
"Symfony\\Polyfill\\Php80\\": ""
},
"classmap": [
"Resources/stubs"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Ion Bazan",
"email": "ion.bazan@gmail.com"
},
{
"name": "Nicolas Grekas",
"email": "p@tchwork.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
"polyfill",
"portable",
"shim"
],
"support": {
"source": "https://github.com/symfony/polyfill-php80/tree/v1.28.0"
},
"funding": [
{
"url": "https://symfony.com/sponsor",
"type": "custom"
},
{
"url": "https://github.com/fabpot",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
"time": "2023-01-26T09:26:14+00:00"
},
{ {
"name": "symfony/polyfill-php81", "name": "symfony/polyfill-php81",
"version": "v1.28.0", "version": "v1.28.0",
@@ -1639,26 +1722,27 @@
}, },
{ {
"name": "twig/twig", "name": "twig/twig",
"version": "v3.7.1", "version": "v3.8.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/twigphp/Twig.git", "url": "https://github.com/twigphp/Twig.git",
"reference": "a0ce373a0ca3bf6c64b9e3e2124aca502ba39554" "reference": "9d15f0ac07f44dc4217883ec6ae02fd555c6f71d"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/twigphp/Twig/zipball/a0ce373a0ca3bf6c64b9e3e2124aca502ba39554", "url": "https://api.github.com/repos/twigphp/Twig/zipball/9d15f0ac07f44dc4217883ec6ae02fd555c6f71d",
"reference": "a0ce373a0ca3bf6c64b9e3e2124aca502ba39554", "reference": "9d15f0ac07f44dc4217883ec6ae02fd555c6f71d",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=7.2.5", "php": ">=7.2.5",
"symfony/polyfill-ctype": "^1.8", "symfony/polyfill-ctype": "^1.8",
"symfony/polyfill-mbstring": "^1.3" "symfony/polyfill-mbstring": "^1.3",
"symfony/polyfill-php80": "^1.22"
}, },
"require-dev": { "require-dev": {
"psr/container": "^1.0|^2.0", "psr/container": "^1.0|^2.0",
"symfony/phpunit-bridge": "^5.4.9|^6.3" "symfony/phpunit-bridge": "^5.4.9|^6.3|^7.0"
}, },
"type": "library", "type": "library",
"autoload": { "autoload": {
@@ -1694,7 +1778,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/twigphp/Twig/issues", "issues": "https://github.com/twigphp/Twig/issues",
"source": "https://github.com/twigphp/Twig/tree/v3.7.1" "source": "https://github.com/twigphp/Twig/tree/v3.8.0"
}, },
"funding": [ "funding": [
{ {
@@ -1706,7 +1790,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2023-08-28T11:09:02+00:00" "time": "2023-11-21T18:54:41+00:00"
} }
], ],
"packages-dev": [], "packages-dev": [],

View File

@@ -212,7 +212,8 @@
"DOCKER_SOCKET_PROXY_ENABLED=%DOCKER_SOCKET_PROXY_ENABLED%", "DOCKER_SOCKET_PROXY_ENABLED=%DOCKER_SOCKET_PROXY_ENABLED%",
"REMOVE_DISABLED_APPS=%REMOVE_DISABLED_APPS%", "REMOVE_DISABLED_APPS=%REMOVE_DISABLED_APPS%",
"APACHE_PORT=%APACHE_PORT%", "APACHE_PORT=%APACHE_PORT%",
"APACHE_IP_BINDING=%APACHE_IP_BINDING%" "APACHE_IP_BINDING=%APACHE_IP_BINDING%",
"THIS_IS_AIO=true"
], ],
"restart": "unless-stopped", "restart": "unless-stopped",
"devices": [ "devices": [
@@ -322,6 +323,9 @@
], ],
"networks": [ "networks": [
"nextcloud-aio" "nextcloud-aio"
],
"cap_add": [
"MKNOD"
] ]
}, },
{ {

View File

@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<files psalm-version="5.15.0@5c774aca4746caf3d239d9c8cadb9f882ca29352"/> <files psalm-version="5.16.0@2897ba636551a8cb61601cc26f6ccfbba6c36591"/>

View File

@@ -7,6 +7,9 @@ ini_set('memory_limit', '2048M');
// set max execution time to 2h just in case of a very slow internet connection // set max execution time to 2h just in case of a very slow internet connection
ini_set('max_execution_time', '7200'); ini_set('max_execution_time', '7200');
// Log whole log messages
ini_set('log_errors_max_len', '0');
use DI\Container; use DI\Container;
use Slim\Csrf\Guard; use Slim\Csrf\Guard;
use Slim\Factory\AppFactory; use Slim\Factory\AppFactory;

View File

@@ -26,23 +26,32 @@ class DockerController
$this->configurationManager = $configurationManager; $this->configurationManager = $configurationManager;
} }
private function PerformRecursiveContainerStart(string $id, bool $pullContainer = true) : void { private function PerformRecursiveContainerStart(string $id, bool $pullImage = true) : void {
$container = $this->containerDefinitionFetcher->GetContainerById($id); $container = $this->containerDefinitionFetcher->GetContainerById($id);
foreach($container->GetDependsOn() as $dependency) { foreach($container->GetDependsOn() as $dependency) {
$this->PerformRecursiveContainerStart($dependency, $pullContainer); $this->PerformRecursiveContainerStart($dependency, $pullImage);
} }
// Don't start if container is already running
// This is expected to happen if a container is defined in depends_on of multiple containers
if ($container->GetRunningState() instanceof RunningState) {
error_log('Not starting ' . $id . ' because it was already started.');
return;
}
// Skip database image pull if the last shutdown was not clean
if ($id === 'nextcloud-aio-database') { if ($id === 'nextcloud-aio-database') {
if ($this->dockerActionManager->GetDatabasecontainerExitCode() > 0) { if ($this->dockerActionManager->GetDatabasecontainerExitCode() > 0) {
$pullContainer = false; $pullImage = false;
error_log('Not pulling the latest database image because the container was not correctly shut down.'); error_log('Not pulling the latest database image because the container was not correctly shut down.');
} }
} }
$this->dockerActionManager->DeleteContainer($container); $this->dockerActionManager->DeleteContainer($container);
$this->dockerActionManager->CreateVolumes($container); $this->dockerActionManager->CreateVolumes($container);
if ($pullContainer) { if ($pullImage) {
$this->dockerActionManager->PullContainer($container); $this->dockerActionManager->PullImage($container);
} }
$this->dockerActionManager->CreateContainer($container); $this->dockerActionManager->CreateContainer($container);
$this->dockerActionManager->StartContainer($container); $this->dockerActionManager->StartContainer($container);
@@ -179,7 +188,7 @@ class DockerController
return $response->withStatus(201)->withHeader('Location', '/'); return $response->withStatus(201)->withHeader('Location', '/');
} }
public function startTopContainer(bool $pullContainer) : void { public function startTopContainer(bool $pullImage) : void {
$config = $this->configurationManager->GetConfig(); $config = $this->configurationManager->GetConfig();
// set AIO_TOKEN // set AIO_TOKEN
$config['AIO_TOKEN'] = bin2hex(random_bytes(24)); $config['AIO_TOKEN'] = bin2hex(random_bytes(24));
@@ -190,7 +199,7 @@ class DockerController
$id = self::TOP_CONTAINER; $id = self::TOP_CONTAINER;
$this->PerformRecursiveContainerStart($id, $pullContainer); $this->PerformRecursiveContainerStart($id, $pullImage);
} }
public function StartWatchtowerContainer(Request $request, Response $response, array $args) : Response { public function StartWatchtowerContainer(Request $request, Response $response, array $args) : Response {

View File

@@ -4,6 +4,9 @@ declare(strict_types=1);
// increase memory limit to 2GB // increase memory limit to 2GB
ini_set('memory_limit', '2048M'); ini_set('memory_limit', '2048M');
// Log whole log messages
ini_set('log_errors_max_len', '0');
use DI\Container; use DI\Container;
require __DIR__ . '/../../vendor/autoload.php'; require __DIR__ . '/../../vendor/autoload.php';

View File

@@ -4,6 +4,9 @@ declare(strict_types=1);
// increase memory limit to 2GB // increase memory limit to 2GB
ini_set('memory_limit', '2048M'); ini_set('memory_limit', '2048M');
// Log whole log messages
ini_set('log_errors_max_len', '0');
use DI\Container; use DI\Container;
require __DIR__ . '/../../vendor/autoload.php'; require __DIR__ . '/../../vendor/autoload.php';

View File

@@ -12,7 +12,7 @@ class ConfigurationManager
if(file_exists(DataConst::GetConfigFile())) if(file_exists(DataConst::GetConfigFile()))
{ {
$configContent = file_get_contents(DataConst::GetConfigFile()); $configContent = file_get_contents(DataConst::GetConfigFile());
return json_decode($configContent, true); return json_decode($configContent, true, 512, JSON_THROW_ON_ERROR);
} }
return []; return [];
@@ -514,7 +514,7 @@ class ConfigurationManager
throw new InvalidSettingConfigurationException(DataConst::GetDataDirectory() . " does not exist! Something was set up falsely!"); throw new InvalidSettingConfigurationException(DataConst::GetDataDirectory() . " does not exist! Something was set up falsely!");
} }
$df = disk_free_space(DataConst::GetDataDirectory()); $df = disk_free_space(DataConst::GetDataDirectory());
$content = json_encode($config, JSON_UNESCAPED_SLASHES|JSON_PRETTY_PRINT); $content = json_encode($config, JSON_UNESCAPED_SLASHES|JSON_PRETTY_PRINT|JSON_THROW_ON_ERROR);
$size = strlen($content) + 10240; $size = strlen($content) + 10240;
if ($df !== false && (int)$df < $size) { if ($df !== false && (int)$df < $size) {
throw new InvalidSettingConfigurationException(DataConst::GetDataDirectory() . " does not have enough space for writing the config file! Not writing it back!"); throw new InvalidSettingConfigurationException(DataConst::GetDataDirectory() . " does not have enough space for writing the config file! Not writing it back!");

View File

@@ -577,11 +577,17 @@ class DockerActionManager
} }
public function PullContainer(Container $container) : void public function PullImage(Container $container) : void
{ {
$url = $this->BuildApiUrl(sprintf('images/create?fromImage=%s', urlencode($this->BuildImageName($container)))); $imageName = urlencode($this->BuildImageName($container));
// do not catch any exception so that it always throws and logs the error $url = $this->BuildApiUrl(sprintf('images/create?fromImage=%s', $imageName));
$this->guzzleClient->post($url); try {
$this->guzzleClient->post($url);
$imageUrl = $this->BuildApiUrl(sprintf('images/%s/json', $imageName));
$this->guzzleClient->get($imageUrl)->getBody()->getContents();
} catch (\Throwable $e) {
throw new \Exception("Could not pull image " . $imageName . ". Please run 'sudo docker exec -it nextcloud-aio-mastercontainer docker pull " . $imageName . "' in order to find out why it failed.");
}
} }
private function isContainerUpdateAvailable(string $id) : string private function isContainerUpdateAvailable(string $id) : string

View File

@@ -16,7 +16,7 @@
</header> </header>
<div class="content"> <div class="content">
<h1>Nextcloud AIO v7.6.1</h1> <h1>Nextcloud AIO v7.7.0</h1>
{# Add 2nd tab warning #} {# Add 2nd tab warning #}
<script type="text/javascript" src="second-tab-warning.js"></script> <script type="text/javascript" src="second-tab-warning.js"></script>