Compare commits

..

239 commits

Author SHA1 Message Date
Simon L.
9c0334d3f0
Merge pull request #7538 from nextcloud/dependabot/github_actions/dot-github/workflows/actions/github-script-8.0.0
Some checks failed
Codespell / Check spelling (push) Has been cancelled
build(deps): bump actions/github-script from 6.4.1 to 8.0.0 in /.github/workflows
2026-02-02 14:54:09 +01:00
dependabot[bot]
e95f5cc590
build(deps): bump actions/github-script in /.github/workflows
Bumps [actions/github-script](https://github.com/actions/github-script) from 6.4.1 to 8.0.0.
- [Release notes](https://github.com/actions/github-script/releases)
- [Commits](d7906e4ad0...ed597411d8)

---
updated-dependencies:
- dependency-name: actions/github-script
  dependency-version: 8.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-02 13:26:38 +00:00
Simon L.
b8f594b09a fix logic detail
Some checks failed
Codespell / Check spelling (push) Waiting to run
Validate community containers / Validate community containers (push) Has been cancelled
Docker Lint / docker-lint (push) Has been cancelled
Json Validator / Json Validator (push) Has been cancelled
Lint php / php-lint (push) Has been cancelled
PHP Deprecation Detector / PHP Deprecation Detector (push) Has been cancelled
Playwright Tests on push / test (push) Has been cancelled
Static analysis / static-psalm-analysis (push) Has been cancelled
Shellcheck / Check Shell (push) Has been cancelled
Twig Lint / twig-lint (push) Has been cancelled
Lint php / php-lint-summary (push) Has been cancelled
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-02-02 11:22:43 +01:00
Simon L.
9c0c55dc7e
Merge pull request #7536 from nextcloud/enh/noid/fix-daily-backup
fix daily-backup.sh edge case
2026-02-02 11:07:13 +01:00
Simon L.
c84416df5d fix daily-backup.sh edge case
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-02-02 11:06:08 +01:00
Simon L.
cfff44954b increase version to 12.6.1
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-02-02 10:28:57 +01:00
Simon L.
733330fd1d
Merge pull request #7531 from nextcloud/docjyJ-patch-1
fix Nextcloud integration URL for local AI
2026-02-02 10:28:07 +01:00
Simon L.
06090a2677
Merge pull request #7534 from nextcloud/enh/7533/fix-daily-backup-script
daily-backup.sh: continue with script if `wasStartButtonClicked=true` was found
2026-02-02 10:27:38 +01:00
Simon L.
4eb45ebfdb
Merge pull request #7532 from nextcloud/wrap-setconfig-into-config-transaction
Wrap ConfigurationController#SetConfig into a "transaction"
2026-02-02 10:27:17 +01:00
Pablo Zmdl
82cbbe1829 Wrap ConfigurationController#SetConfig into a "transaction"
This avoids a lot of subsequent writes and reads from the file system, because
now only commitTransaction() actually writes the config file.

Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-02-02 10:17:57 +01:00
Simon L.
cba66dec0b daily-backup.sh: continue with script if wasStartButtonClicked=true was found
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-02-02 10:11:00 +01:00
Jean-Yves
88b2121eaa
hotfix: Update Nextcloud integration URL for local AI
Signed-off-by: Jean-Yves <7360784+docjyJ@users.noreply.github.com>
2026-02-01 11:37:51 +01:00
Simon L.
4ecb870885
Merge pull request #7522 from nextcloud/enh/noid/block-merging
Some checks failed
Codespell / Check spelling (push) Has been cancelled
add a workflow that blocks merging if a pre-release was published
2026-01-30 15:08:46 +01:00
Simon L.
dae8102088 rename name of workflow
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-01-30 15:00:48 +01:00
Simon L.
b1cea36dfa add a workflow that blocks merging if a pre-release was published
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-01-30 14:41:06 +01:00
Simon L.
a037be95c7 fix remaining rename of collabora to Nextcloud Office
Some checks failed
Codespell / Check spelling (push) Waiting to run
Docker Lint / docker-lint (push) Has been cancelled
Lint php / php-lint (push) Has been cancelled
PHP Deprecation Detector / PHP Deprecation Detector (push) Has been cancelled
Playwright Tests on push / test (push) Has been cancelled
Static analysis / static-psalm-analysis (push) Has been cancelled
Twig Lint / twig-lint (push) Has been cancelled
Lint php / php-lint-summary (push) Has been cancelled
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-01-30 09:51:08 +01:00
Simon L.
3bde5259f2
Merge pull request #7520 from nextcloud/enh/noid/refactor-apache-additional-network
only allow to set `APACHE_ADDITIONAL_NETWORK` via environmental variable and do not restore it on backup restore
2026-01-30 09:27:48 +01:00
Simon L.
748b2cc73b only allow to set APACHE_ADDITIONAL_NETWORK via environmental variable and do not restore it on backup restore
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-01-30 09:20:00 +01:00
Simon L.
fcc4d8b185
Merge pull request #7519 from nextcloud/dependabot/docker/Containers/whiteboard/nextcloud-releases/whiteboard-v1.5.4
build(deps): bump nextcloud-releases/whiteboard from v1.5.3 to v1.5.4 in /Containers/whiteboard
2026-01-30 07:47:03 +01:00
Simon L.
e78ed860b9
Merge pull request #7518 from nextcloud/dependabot/docker/Containers/docker-socket-proxy/haproxy-3.3.2-alpine
build(deps): bump haproxy from 3.3.1-alpine to 3.3.2-alpine in /Containers/docker-socket-proxy
2026-01-30 07:46:39 +01:00
dependabot[bot]
716d3b0f17
build(deps): bump nextcloud-releases/whiteboard
Bumps nextcloud-releases/whiteboard from v1.5.3 to v1.5.4.

---
updated-dependencies:
- dependency-name: nextcloud-releases/whiteboard
  dependency-version: v1.5.4
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-30 04:08:51 +00:00
dependabot[bot]
b55260842d
build(deps): bump haproxy in /Containers/docker-socket-proxy
Bumps haproxy from 3.3.1-alpine to 3.3.2-alpine.

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

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-30 04:07:42 +00:00
Simon L.
6b9682936b
Merge pull request #7516 from nextcloud/enh/noid/rename-collabora-to-nextcloud-office
Some checks failed
Codespell / Check spelling (push) Waiting to run
Docker Lint / docker-lint (push) Waiting to run
Lint php / php-lint (push) Waiting to run
Lint php / php-lint-summary (push) Blocked by required conditions
PHP Deprecation Detector / PHP Deprecation Detector (push) Waiting to run
Playwright Tests on push / test (push) Waiting to run
Static analysis / static-psalm-analysis (push) Waiting to run
Twig Lint / twig-lint (push) Waiting to run
Validate community containers / Validate community containers (push) Has been cancelled
Json Validator / Json Validator (push) Has been cancelled
Shellcheck / Check Shell (push) Has been cancelled
aio-interface: rename Collabora everywhere to Nextcloud Office
2026-01-29 16:12:09 +01:00
Jean-Yves
12b065f9b6
Adjust local-ai community container to add Vulkan support (#5797)
Signed-off-by: Jean-Yves <7360784+docjyJ@users.noreply.github.com>
Co-authored-by: Simon L. <szaimen@e.mail.de>
2026-01-29 16:11:04 +01:00
Simon L.
ec6850be63 aio-interface: rename Collabora everywhere to Nextcloud Office
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-01-29 15:04:23 +01:00
MrAn0nym
ffd8dac1b4
Fix: Additional Collabora options not working correctly (#7481)
Signed-off-by: MrAn0nym <63542658+MrAn0nym@users.noreply.github.com>
Signed-off-by: Simon L. <szaimen@e.mail.de>
Co-authored-by: Simon L. <szaimen@e.mail.de>
Co-authored-by: Pablo Zmdl <57864086+pabzm@users.noreply.github.com>
2026-01-29 14:29:15 +01:00
Simon L.
8ff8d7d11e
Merge pull request #7502 from nextcloud/szaimen-patch-1
nextcloud-entrypoint.sh: improve GPG key import method
2026-01-29 13:55:49 +01:00
Simon L.
739658a1c1
Merge pull request #7514 from nextcloud/dependabot/github_actions/dot-github/workflows/peter-evans/create-pull-request-8.1.0
build(deps): bump peter-evans/create-pull-request from 7.0.11 to 8.1.0 in /.github/workflows
2026-01-29 13:55:17 +01:00
Simon L.
a5efaafef2 update-yaml.sh: remove the NC_AIO_VERSION
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-01-29 13:54:31 +01:00
Simon L.
c64ecba63c Update GPG key import method in entrypoint.sh
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-01-29 13:44:14 +01:00
dependabot[bot]
ff3fb24fa7
build(deps): bump peter-evans/create-pull-request in /.github/workflows
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 7.0.11 to 8.1.0.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](22a9089034...c0f553fe54)

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

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-29 12:10:04 +00:00
Simon L.
6b0f315cb6
Merge pull request #7512 from nextcloud/dependabot/docker/Containers/watchtower/alpine-3.23.3
Some checks are pending
Codespell / Check spelling (push) Waiting to run
Docker Lint / docker-lint (push) Waiting to run
Lint php / php-lint (push) Waiting to run
Lint php / php-lint-summary (push) Blocked by required conditions
PHP Deprecation Detector / PHP Deprecation Detector (push) Waiting to run
Playwright Tests on push / test (push) Waiting to run
Static analysis / static-psalm-analysis (push) Waiting to run
build(deps): bump alpine from 3.23.2 to 3.23.3 in /Containers/watchtower
2026-01-29 10:50:41 +01:00
Simon L.
ce87fc855f
Merge pull request #7511 from nextcloud/dependabot/docker/Containers/talk/alpine-3.23.3
build(deps): bump alpine from 3.23.2 to 3.23.3 in /Containers/talk
2026-01-29 10:50:29 +01:00
Simon L.
b7b0ebf3c2
Merge pull request #7510 from nextcloud/dependabot/docker/Containers/notify-push/alpine-3.23.3
build(deps): bump alpine from 3.23.2 to 3.23.3 in /Containers/notify-push
2026-01-29 10:50:17 +01:00
Simon L.
af8a62070d
Merge pull request #7509 from nextcloud/dependabot/docker/Containers/imaginary/alpine-3.23.3
build(deps): bump alpine from 3.23.2 to 3.23.3 in /Containers/imaginary
2026-01-29 10:50:01 +01:00
Simon L.
450c90ab32
Merge pull request #7508 from nextcloud/dependabot/docker/Containers/domaincheck/alpine-3.23.3
build(deps): bump alpine from 3.23.2 to 3.23.3 in /Containers/domaincheck
2026-01-29 10:49:49 +01:00
Simon L.
13f74cc147
Merge pull request #7507 from nextcloud/dependabot/docker/Containers/collabora/collabora/code-25.04.8.2.1
build(deps): bump collabora/code from 25.04.8.1.1 to 25.04.8.2.1 in /Containers/collabora
2026-01-29 10:49:37 +01:00
Simon L.
b6bfeae10e
Merge pull request #7506 from nextcloud/dependabot/docker/Containers/clamav/alpine-3.23.3
build(deps): bump alpine from 3.23.2 to 3.23.3 in /Containers/clamav
2026-01-29 10:49:24 +01:00
Simon L.
5585d2e650
Merge pull request #7505 from nextcloud/dependabot/docker/Containers/borgbackup/alpine-3.23.3
build(deps): bump alpine from 3.23.2 to 3.23.3 in /Containers/borgbackup
2026-01-29 10:49:10 +01:00
Simon L.
97c0738719
Merge pull request #7504 from nextcloud/dependabot/docker/Containers/alpine/alpine-3.23.3
build(deps): bump alpine from 3.23.2 to 3.23.3 in /Containers/alpine
2026-01-29 10:48:32 +01:00
Simon L.
4be368e606
Merge pull request #7476 from nextcloud/docjyJ-patch-1
Add Pull request Template
2026-01-29 09:58:37 +01:00
Simon L.
b47e894681 increase timeout for backup restore
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-01-29 09:54:34 +01:00
Simon L.
7de7ee1244
apply suggestion
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-01-29 09:47:21 +01:00
Simon L.
14740161b8
Merge pull request #7501 from nextcloud/lower-case-method-names-in-configuration-manager
Lower case method names in ConfigurationManager
2026-01-29 09:40:33 +01:00
dependabot[bot]
a72b79f63b
build(deps): bump alpine from 3.23.2 to 3.23.3 in /Containers/watchtower
Bumps alpine from 3.23.2 to 3.23.3.

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

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-29 04:08:55 +00:00
dependabot[bot]
3ba704b233
build(deps): bump alpine from 3.23.2 to 3.23.3 in /Containers/talk
Bumps alpine from 3.23.2 to 3.23.3.

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

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-29 04:08:41 +00:00
dependabot[bot]
d6f1bdd8d3
build(deps): bump alpine in /Containers/notify-push
Bumps alpine from 3.23.2 to 3.23.3.

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

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-29 04:08:35 +00:00
dependabot[bot]
8e48e92ebc
build(deps): bump alpine from 3.23.2 to 3.23.3 in /Containers/imaginary
Bumps alpine from 3.23.2 to 3.23.3.

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

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-29 04:07:58 +00:00
dependabot[bot]
abdcc9f551
build(deps): bump alpine in /Containers/domaincheck
Bumps alpine from 3.23.2 to 3.23.3.

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

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-29 04:07:52 +00:00
dependabot[bot]
b3a4eda249
build(deps): bump collabora/code in /Containers/collabora
Bumps collabora/code from 25.04.8.1.1 to 25.04.8.2.1.

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

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-29 04:07:46 +00:00
dependabot[bot]
da70dafa3d
build(deps): bump alpine from 3.23.2 to 3.23.3 in /Containers/clamav
Bumps alpine from 3.23.2 to 3.23.3.

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

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-29 04:07:45 +00:00
dependabot[bot]
120c9ba927
build(deps): bump alpine from 3.23.2 to 3.23.3 in /Containers/borgbackup
Bumps alpine from 3.23.2 to 3.23.3.

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

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-29 04:07:42 +00:00
dependabot[bot]
caac0443b3
build(deps): bump alpine from 3.23.2 to 3.23.3 in /Containers/alpine
Bumps alpine from 3.23.2 to 3.23.3.

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

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-29 04:07:36 +00:00
Pablo Zmdl
bf43a6dae6 Lower case method names in ConfigurationManager
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 16:51:36 +01:00
Simon L.
5752556e4f
Merge pull request #7437 from nextcloud/enh/noid/insert-version-to-nextcloud
Some checks are pending
Codespell / Check spelling (push) Waiting to run
Json Validator / Json Validator (push) Waiting to run
Lint php / php-lint (push) Waiting to run
Lint php / php-lint-summary (push) Blocked by required conditions
PHP Deprecation Detector / PHP Deprecation Detector (push) Waiting to run
Playwright Tests on push / test (push) Waiting to run
Static analysis / static-psalm-analysis (push) Waiting to run
Shellcheck / Check Shell (push) Waiting to run
insert the AIO version into Nextcloud's system config
2026-01-28 15:40:59 +01:00
Simon L.
9871a3eb9a insert the AIO version into Nextcloud's system config
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-01-28 15:17:15 +01:00
Simon L.
e9108e3660
Merge pull request #7392 from nextcloud/configmanager-property-hooks
Use property hooks to replace classic getter and setter methods.
2026-01-28 15:10:34 +01:00
Simon L.
27020e608d
fix get-configurable-aio-variables.sh script
Signed-off-by: Simon L. <szaimen@e.mail.de>

Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-01-28 13:28:07 +01:00
Simon L.
d813314494
Merge pull request #7499 from nextcloud/aio-dependency-update
PHP dependency updates
2026-01-28 13:16:56 +01:00
szaimen
0ee76078ad php dependency updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-01-28 12:03:53 +00:00
Pablo Zmdl
5ba678c082 Non-functional addition to camelizing nextcloud_mount to nextcloudMount
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 12:08:07 +01:00
Pablo Zmdl
5b6e0f30a6 Fix assignment of INSTALL_LATEST_MAJOR from env replacement
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:57 +01:00
Pablo Zmdl
d9d4e3680f Fix residue from change to use start/commitTransaction()
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:57 +01:00
Pablo Zmdl
659b1ca383 Fix calling booleanize
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:57 +01:00
Pablo Zmdl
ec66b359e0 Check arguments to camelize() for usefulness
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:57 +01:00
Pablo Zmdl
078f3caf8a Move all properties to the top of the file
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:57 +01:00
Pablo Zmdl
3cfe307a5c Make nextcloudKeepDisabledApps an attribute
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:57 +01:00
Pablo Zmdl
5bdcfd67eb Make 'enableNvidiaGpu' an attribute
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:57 +01:00
Pablo Zmdl
5fc4951ba0 Make 'nextcloudEnableDriDevice' an attribute
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:57 +01:00
Pablo Zmdl
0cb79a387f Make 'disableBackupSection' an attribute
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:57 +01:00
Pablo Zmdl
08438aff42 Make 'apacheAdditionalNetwork' an attribute
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:57 +01:00
Pablo Zmdl
dc5dc0215c Make 'collaboraSeccompDisabled' an attribute
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:57 +01:00
Pablo Zmdl
22a26268e0 Helper to booleanize environment-or-config-values
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:57 +01:00
Pablo Zmdl
c3477a7eb2 Make 'nextcloudAdditionalPhpExtensions' an attribute
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:57 +01:00
Pablo Zmdl
d50dc2db1d Make 'nextcloudAdditionalApks' an attribute
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:57 +01:00
Pablo Zmdl
4ad8fcf258 Make 'trustedCacertsDir' an attribute
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:57 +01:00
Pablo Zmdl
63245430ef Make 'dockerSocketPath' an attribute
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:57 +01:00
Pablo Zmdl
bfa2b64674 Make 'fulltextsearchJavaOptions' an attribute
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:57 +01:00
Pablo Zmdl
365e1e34e4 Make 'borgRetentionPolicy' an attribute
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:57 +01:00
Pablo Zmdl
0ed83c5258 Move get-configurable-aio-variables.sh into php/ folder
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:57 +01:00
Pablo Zmdl
8b8f60f76b Camelize property nextcloud_memory_limit => nextcloudMemoryLimit
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:57 +01:00
Pablo Zmdl
bbf41cfdd3 Camelize property nextcloud_upload_limit => nextcloudUploadLimit
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:57 +01:00
Pablo Zmdl
f5cf7903ad Camelize property nextcloud_datadir_mount => nextcloudDatadirMount
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:57 +01:00
Pablo Zmdl
f35a0b4367 Camelize property nextcloud_mount => nextcloudMount
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:57 +01:00
Pablo Zmdl
f7c5115c70 Camelize property talk_port => talkPort
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:57 +01:00
Pablo Zmdl
567f072ee0 Camelize property apache_port => apachePort
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:57 +01:00
Pablo Zmdl
00ce78d703 Camelize property turn_domain => turnDomain
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:57 +01:00
Pablo Zmdl
c4aa148bff Camelize property aio_community_containers => aioCommunityContainers
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:57 +01:00
Pablo Zmdl
b499001501 Camelize property collabora_additional_options => collaboraAdditionalOptions
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:57 +01:00
Pablo Zmdl
5373471ed8 Camelize property collabora_dictionaries => collaboraDictionaries
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:57 +01:00
Pablo Zmdl
efe8317446 Camelize property nextcloud_max_time => nextcloudMaxTime
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:57 +01:00
Pablo Zmdl
41c92b814f Camelize key names from aio_variables from container specs
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:56 +01:00
Pablo Zmdl
f17db4fac1 Camelize property apache_ip_binding => apacheIpBinding
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:56 +01:00
Pablo Zmdl
5cac2dcf12 Camelize property borg_restore_password => borgRestorePassword
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:56 +01:00
Pablo Zmdl
284411c369 Camelize property borg_remote_repo => borgRemoteRepo
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:56 +01:00
Pablo Zmdl
62856e78bb Camelize property borg_backup_host_location => borgBackupHostLocation
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:56 +01:00
Pablo Zmdl
2425a07772 Camelize property install_latest_major => installLatestMajor
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:56 +01:00
Pablo Zmdl
68f811b25f Camelize property AIO_URL => aioUrl
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:56 +01:00
Pablo Zmdl
62a21dd34a Camelize property instance_restore_attempt => instanceRestoreAttempt
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:56 +01:00
Pablo Zmdl
dd5d51cb2a Camelize property AIO_TOKEN => aioToken
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:56 +01:00
Pablo Zmdl
27fd1e82ab Turn install_latest_major property into a string so we can save a version string or number
I chose a string instead of an integer so we have more freedom what to
actually save (maybe we want to include minor version digits at one point).

Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:56 +01:00
Pablo Zmdl
3bb2ce6e4c Type-cast get values to fix handling old config data
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:56 +01:00
Pablo Zmdl
dac5cfd917 Don't write the default value to disk
This matches the previous behaviour and should not be changed silently.

Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:56 +01:00
Pablo Zmdl
76d475f2b2 Replace setMultiple() by startTransaction() and commitTransaction()
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:56 +01:00
Pablo Zmdl
6bf45fb507 A script to list AIO variables that are configurable through aio_variables in community containers
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:56 +01:00
Pablo Zmdl
c65ccd2db0 Make aio-variables code more robust and psalm-compatible
Now the input gets checked for being useful. It's user-generated data in the
end, which might be "funny" in curious ways.

psalm complained about the possibly unset second array key in the
destructuring assignment of `$key` and `$value`, which won't happen due to the
check for a present equal sign earlier, but nonetheless this way the code is
more robust.

Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:56 +01:00
Pablo Zmdl
77bec5898f Type for Closure argument
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:56 +01:00
Pablo Zmdl
662840bc25 Make psalm accept the property-hooks for virtual attributes
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:56 +01:00
Pablo Zmdl
fd308d4b80 Simplify some code a little bit
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:56 +01:00
Pablo Zmdl
844831a899 Move handling ENV-var replacement into ConfigurationManger
It's the more appropriate place to have this code, and we had to touch
it anyways to make it assign the values to the attributes.

Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:56 +01:00
Pablo Zmdl
9c9ad02f8a Set multiple attributes at once
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:56 +01:00
Pablo Zmdl
c997332e47 Remove residue code
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:56 +01:00
Pablo Zmdl
f1ffd0771c Privatize GetConfig() and WriteConfig()
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:56 +01:00
Pablo Zmdl
367e847cc8 Make nextcloud_max_time an attribute
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:56 +01:00
Pablo Zmdl
c1f8ac6989 Make nextcloud_memory_limit an attribute
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:56 +01:00
Pablo Zmdl
3e19fa66d0 Make nextcloud_datadir_mount an attribute
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:56 +01:00
Pablo Zmdl
4de73dd75b Make nextcloud_mount an attribute
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:56 +01:00
Pablo Zmdl
903aed1e34 Make nextcloud_upload_limit an attribute
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:56 +01:00
Pablo Zmdl
96c9c1a6f9 Make talk_port an attribute
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:56 +01:00
Pablo Zmdl
dc28eb6737 Make apache_port an attribute
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:56 +01:00
Pablo Zmdl
4e373cb2f8 Make apache_ip_binding an attribute
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:56 +01:00
Pablo Zmdl
0a22384cd9 Make turn_domain an attribute
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:56 +01:00
Pablo Zmdl
6c04cd055f Make aio_community_containers an attribute
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:56 +01:00
Pablo Zmdl
228440f2a8 Make collabora_additional_options an attribute
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:56 +01:00
Pablo Zmdl
ca35006a85 Make collabora_dictionaries an attribute
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:56 +01:00
Pablo Zmdl
6e5237cd20 Make timezone an attribute
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:56 +01:00
Pablo Zmdl
6033a4486c Make borg_restore_password an attribute
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:56 +01:00
Pablo Zmdl
a361ab9d20 Make borg_remote_repo an attribute
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:56 +01:00
Pablo Zmdl
b4d198f72b Make borg_backup_host_location an attribute
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:56 +01:00
Pablo Zmdl
5b0b9ef826 Make domain an attribute
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:56 +01:00
Pablo Zmdl
f737d2f598 Make isFulltextsearchEnabled an attribute
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:56 +01:00
Pablo Zmdl
f16f5b233d Make isImaginaryEnabled an attribute
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:56 +01:00
Pablo Zmdl
190d47810b Make isTalkRecordingEnabled an attribute
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:56 +01:00
Pablo Zmdl
e009abdd54 Make isTalkEnabled an attribute
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:56 +01:00
Pablo Zmdl
cd1c2276e5 Make isCollaboraEnabled an attribute
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:51:26 +01:00
Pablo Zmdl
0c3d919618 Make isOnlyofficeEnabled an attribute
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:50:34 +01:00
Pablo Zmdl
f8a244bee2 Make isClamavEnabled an attribute
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:48:05 +01:00
Pablo Zmdl
bebae7069b Make instance_restore_attempt an attribute
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:43:36 +01:00
Pablo Zmdl
f235af29e3 Make isDockerSocketProxyEnabled an attribute
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:43:36 +01:00
Pablo Zmdl
6576d3c1e9 Make backupMode an attribute
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:43:36 +01:00
Pablo Zmdl
881e77cca5 Make isWhiteboardEnabled an attribute
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:43:36 +01:00
Pablo Zmdl
c968e9e310 Make restoreExcludePreviews an attribute
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:43:36 +01:00
Pablo Zmdl
b8130958c5 Make selectedRestoreTime an attribute
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:43:36 +01:00
Pablo Zmdl
1d11a4682b Make install_latest_major an attribute
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:43:36 +01:00
Pablo Zmdl
06fdf31c87 Make AIO_URL an attribute
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:43:36 +01:00
Pablo Zmdl
484ff79943 Make wasStartButtonClicked an attribute
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:43:36 +01:00
Pablo Zmdl
4d8e959608 Make password an attribute
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:43:36 +01:00
Pablo Zmdl
b2f992d955 Make AIO_TOKEN an attribute
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:43:36 +01:00
Pablo Zmdl
a9b648e18f Adapt GetAndGenerateSecret() to get() and set()
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:43:36 +01:00
Pablo Zmdl
21b14a4a5d Adapt GetEnvironmentalVariableOrConfig() to get() and set()
Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:43:36 +01:00
Pablo Zmdl
0b6c0733ab Cache config, introduce get() and set() helpers to guide new way to set attributes
Use cached config, use set() for single attributes, setMultiple to wrap
multiple calls to set()

Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
2026-01-28 11:43:36 +01:00
Julius Knorr
3f4eecaa96
feat: Add office switcher with feature comparison (#7421)
Some checks failed
Codespell / Check spelling (push) Waiting to run
Docker Lint / docker-lint (push) Waiting to run
Lint php / php-lint (push) Waiting to run
Lint php / php-lint-summary (push) Blocked by required conditions
PHP Deprecation Detector / PHP Deprecation Detector (push) Waiting to run
Playwright Tests on push / test (push) Waiting to run
Static analysis / static-psalm-analysis (push) Waiting to run
Twig Lint / twig-lint (push) Has been cancelled
Signed-off-by: Julius Knorr <jus@bitgrid.net>
Signed-off-by: Simon L. <szaimen@e.mail.de>
Signed-off-by: Andrew Backhouse <andrew.backhouse@nextcloud.com>
Co-authored-by: Simon L. <szaimen@e.mail.de>
Co-authored-by: Andrew Backhouse <andrew.backhouse@nextcloud.com>
2026-01-28 09:53:53 +01:00
Simon L.
8939104d10
Merge pull request #7498 from nextcloud/dependabot/docker/Containers/talk/nats-2.12.4-scratch
build(deps): bump nats from 2.12.3-scratch to 2.12.4-scratch in /Containers/talk
2026-01-28 08:47:30 +01:00
dependabot[bot]
0213d8e548
build(deps): bump nats in /Containers/talk
Bumps nats from 2.12.3-scratch to 2.12.4-scratch.

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

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-28 04:08:45 +00:00
Simon L.
ba899255c1
Merge pull request #7497 from nextcloud/dependabot/docker/Containers/mastercontainer/docker-29.2.0-cli
Some checks are pending
Codespell / Check spelling (push) Waiting to run
Docker Lint / docker-lint (push) Waiting to run
build(deps): bump docker from 29.1.5-cli to 29.2.0-cli in /Containers/mastercontainer
2026-01-27 14:54:49 +01:00
dependabot[bot]
59e0776808
build(deps): bump docker in /Containers/mastercontainer
Bumps docker from 29.1.5-cli to 29.2.0-cli.

---
updated-dependencies:
- dependency-name: docker
  dependency-version: 29.2.0-cli
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-27 04:06:09 +00:00
Simon L.
9c6bb67542
Merge pull request #7492 from nextcloud/dependabot/github_actions/dot-github/workflows/actions/checkout-6.0.2
Some checks failed
Codespell / Check spelling (push) Waiting to run
Docker Lint / docker-lint (push) Waiting to run
Lint php / php-lint (push) Has been cancelled
PHP Deprecation Detector / PHP Deprecation Detector (push) Has been cancelled
Playwright Tests on push / test (push) Has been cancelled
Static analysis / static-psalm-analysis (push) Has been cancelled
Shellcheck / Check Shell (push) Has been cancelled
Twig Lint / twig-lint (push) Has been cancelled
Lint php / php-lint-summary (push) Has been cancelled
build(deps): bump actions/checkout from 6.0.1 to 6.0.2 in /.github/workflows
2026-01-26 14:13:08 +01:00
dependabot[bot]
3f85f10bfb
build(deps): bump actions/checkout in /.github/workflows
Bumps [actions/checkout](https://github.com/actions/checkout) from 6.0.1 to 6.0.2.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v6.0.1...de0fac2e4500dabe0009e67214ff5f5447ce83dd)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 6.0.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-26 13:08:44 +00:00
Simon L.
9cd519b285
Merge pull request #7491 from nextcloud/aio-dependency-update
PHP dependency updates
2026-01-26 13:50:29 +01:00
szaimen
3e6deb8802 php dependency updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-01-26 12:04:00 +00:00
Simon L.
6babbf776a
Merge pull request #7473 from nextcloud/enh/noid/pin-all-actions
pin all actions via commit hash
2026-01-26 13:00:49 +01:00
Simon L.
27eae80466 pin all actions via commit hash
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-01-26 12:59:05 +01:00
Simon L.
ebe3d7ee83 increase to v12.6.0
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-01-26 11:55:19 +01:00
Simon L.
07c20f5daa
Merge pull request #7485 from nextcloud/enh/noid/more-strict-check
mastercontainer: make check for correct volume name more strict
2026-01-26 10:15:45 +01:00
Simon L.
0df6c0a645 mastercontainer: make check for correct volume name more strict
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-01-25 17:31:43 +01:00
Simon L.
845fa94afa
Merge pull request #7486 from nextcloud/aio-dependency-update
Some checks are pending
Codespell / Check spelling (push) Waiting to run
Lint php / php-lint (push) Waiting to run
Lint php / php-lint-summary (push) Blocked by required conditions
PHP Deprecation Detector / PHP Deprecation Detector (push) Waiting to run
Playwright Tests on push / test (push) Waiting to run
Static analysis / static-psalm-analysis (push) Waiting to run
PHP dependency updates
2026-01-25 15:01:21 +01:00
szaimen
7e2e0d11da php dependency updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-01-25 12:03:33 +00:00
Simon L.
44f659ad69
Merge pull request #7482 from nextcloud/aio-dependency-update
Some checks are pending
Codespell / Check spelling (push) Waiting to run
Lint php / php-lint (push) Waiting to run
Lint php / php-lint-summary (push) Blocked by required conditions
PHP Deprecation Detector / PHP Deprecation Detector (push) Waiting to run
Playwright Tests on push / test (push) Waiting to run
Static analysis / static-psalm-analysis (push) Waiting to run
PHP dependency updates
2026-01-24 14:07:57 +01:00
szaimen
d2940b0dc8 php dependency updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-01-24 12:03:23 +00:00
Simon L.
74443aaacc
Merge pull request #7477 from nextcloud/docjyJ-patch-2
Some checks failed
Codespell / Check spelling (push) Has been cancelled
Validate community containers / Validate community containers (push) Has been cancelled
Json Validator / Json Validator (push) Has been cancelled
deprecate nocodb community container
2026-01-23 14:22:42 +01:00
Simon L.
33614b276b
Merge pull request #7475 from nextcloud/dev/ench/noid/conduct
Add Code of conduct
2026-01-23 14:18:45 +01:00
Simon L.
034c6edea9
Merge pull request #7479 from nextcloud/dependabot/github_actions/dot-github/workflows/actions/checkout-6.0.2
build(deps): bump actions/checkout from 6.0.1 to 6.0.2 in /.github/workflows
2026-01-23 14:17:38 +01:00
dependabot[bot]
0e868c4570
build(deps): bump actions/checkout in /.github/workflows
Bumps [actions/checkout](https://github.com/actions/checkout) from 6.0.1 to 6.0.2.
- [Release notes](https://github.com/actions/checkout/releases)
- [Commits](https://github.com/actions/checkout/compare/v6.0.1...v6.0.2)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 6.0.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-23 12:08:36 +00:00
Jean-Yves
e1718faf0b
Update README with licensing and maintenance notes
Added caution and note about NocoDB licensing and maintenance status.

Signed-off-by: Jean-Yves <7360784+docjyJ@users.noreply.github.com>
2026-01-22 21:24:35 +01:00
Jean-Yves
db07c79db1
novodb: add (deprecated) to its display name
Signed-off-by: Jean-Yves <7360784+docjyJ@users.noreply.github.com>
2026-01-22 21:20:36 +01:00
Jean-Yves
89be3d9e23
Add files via upload
Signed-off-by: Jean-Yves <7360784+docjyJ@users.noreply.github.com>
2026-01-22 21:12:39 +01:00
Jean-Yves
664ca0b26d
Add Code of conduct
See: https://github.com/nextcloud/server/blob/master/CODE_OF_CONDUCT.md

Signed-off-by: Jean-Yves <7360784+docjyJ@users.noreply.github.com>
2026-01-22 21:08:08 +01:00
Simon L.
49c9669fe1
Merge pull request #7468 from nextcloud/enh/7466/insert-max-shutdown-time
Some checks failed
Codespell / Check spelling (push) Waiting to run
Lint php / php-lint (push) Has been cancelled
PHP Deprecation Detector / PHP Deprecation Detector (push) Has been cancelled
Playwright Tests on push / test (push) Has been cancelled
Static analysis / static-psalm-analysis (push) Has been cancelled
Lint php / php-lint-summary (push) Has been cancelled
`CreateContainer`: also insert the max shutdown time into the container itself
2026-01-22 17:53:06 +01:00
Simon L.
4d51f11282
Merge pull request #7471 from nextcloud/imaginary-container-update
Some checks failed
Codespell / Check spelling (push) Waiting to run
Lint php / php-lint (push) Waiting to run
Lint php / php-lint-summary (push) Blocked by required conditions
PHP Deprecation Detector / PHP Deprecation Detector (push) Waiting to run
Playwright Tests on push / test (push) Waiting to run
Static analysis / static-psalm-analysis (push) Waiting to run
Docker Lint / docker-lint (push) Has been cancelled
Helm Chart Releaser / release (push) Has been cancelled
Shellcheck / Check Shell (push) Has been cancelled
Twig Lint / twig-lint (push) Has been cancelled
Imaginary update
2026-01-22 14:40:09 +01:00
szaimen
c47ace7718 imaginary-update automated change
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-01-22 13:33:38 +00:00
Simon L.
dd60066644
Merge pull request #7470 from nextcloud/aio-helm-update
Helm Chart updates
2026-01-22 14:14:33 +01:00
szaimen
00688a52bd Helm Chart updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-01-22 13:12:02 +00:00
Simon L.
8fb3126ce7 CreateContainer: also insert the max shutdown time into the container itself
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-01-22 14:07:41 +01:00
Simon L.
a7c091a5b2 mastercontainer: also add wud.watch label
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-01-22 12:21:26 +01:00
Simon L.
dc09422030
Merge pull request #7467 from nextcloud/watchtower-container-update
watchtower container update
2026-01-22 12:16:36 +01:00
Simon L.
b9e35f01ba
Merge pull request #7464 from nextcloud/dependabot/docker/Containers/whiteboard/nextcloud-releases/whiteboard-v1.5.3
build(deps): bump nextcloud-releases/whiteboard from v1.5.1 to v1.5.3 in /Containers/whiteboard
2026-01-22 12:16:16 +01:00
Simon L.
571e07996e
Merge pull request #7461 from nextcloud/dependabot/docker/Containers/watchtower/golang-1.25.6-alpine3.23
build(deps): bump golang from 1.25.5-alpine3.23 to 1.25.6-alpine3.23 in /Containers/watchtower
2026-01-22 12:16:04 +01:00
Simon L.
9b1d468e24
Merge pull request #7460 from nextcloud/dependabot/docker/Containers/imaginary/golang-1.25.6-alpine3.23
build(deps): bump golang from 1.25.5-alpine3.23 to 1.25.6-alpine3.23 in /Containers/imaginary
2026-01-22 12:15:51 +01:00
Simon L.
2eaa288596
Merge pull request #7452 from nextcloud/dependabot/docker/Containers/nextcloud/php-8.3.30-fpm-alpine3.23
build(deps): bump php from 8.3.29-fpm-alpine3.23 to 8.3.30-fpm-alpine3.23 in /Containers/nextcloud
2026-01-22 12:15:38 +01:00
Simon L.
be54fa8805
Merge pull request #7451 from nextcloud/dependabot/docker/Containers/mastercontainer/docker-29.1.5-cli
build(deps): bump docker from 29.1.4-cli to 29.1.5-cli in /Containers/mastercontainer
2026-01-22 12:15:25 +01:00
Simon L.
f5a06034dd
Merge pull request #7435 from nextcloud/aio-dependency-update
PHP dependency updates
2026-01-22 12:15:12 +01:00
Simon L.
47dd8d25ca
Merge pull request #7431 from nextcloud/dependabot/docker/Containers/mastercontainer/php-8.4.17-fpm-alpine3.23
build(deps): bump php from 8.4.16-fpm-alpine3.23 to 8.4.17-fpm-alpine3.23 in /Containers/mastercontainer
2026-01-22 12:14:57 +01:00
Simon L.
9e3acb9f68
Merge pull request #7457 from nextcloud/enh/6878/pull-3-times
DockeractionManager: rewrite `PullImage` function to re-try 3 times before failing
2026-01-22 12:11:27 +01:00
Simon L.
3f581a11b3
Merge pull request #7455 from nextcloud/enh/7434/add-wud-label
add `wud.watch=false` to all containers
2026-01-22 12:11:18 +01:00
Simon L.
8124554d90
Merge pull request #7454 from nextcloud/enh/7447/recording-server-disabling
nextcloud-entrypoint: make recording server dependent on `REMOVE_DISABLED_APPS`
2026-01-22 12:11:10 +01:00
Simon L.
74138dd838
Merge pull request #7436 from nextcloud/enh/noid/move-version
move version to a dedicated file
2026-01-22 12:10:27 +01:00
Simon L.
52f8c97d45
Merge pull request #7406 from nextcloud/ench/noid/parm
refactor: change private properties to public in Container class
2026-01-22 12:10:15 +01:00
Simon L.
10a3b8213f
Merge pull request #7442 from nextcloud/nextcloud-container-update
Nextcloud dependency update
2026-01-22 12:10:03 +01:00
dependabot[bot]
8eed705a90
build(deps): bump php in /Containers/nextcloud
Bumps php from 8.3.29-fpm-alpine3.23 to 8.3.30-fpm-alpine3.23.

---
updated-dependencies:
- dependency-name: php
  dependency-version: 8.3.30-fpm-alpine3.23
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-22 04:08:35 +00:00
dependabot[bot]
f59b2776c7
build(deps): bump php in /Containers/mastercontainer
Bumps php from 8.4.16-fpm-alpine3.23 to 8.4.17-fpm-alpine3.23.

---
updated-dependencies:
- dependency-name: php
  dependency-version: 8.4.17-fpm-alpine3.23
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-22 04:08:30 +00:00
szaimen
708e542270 nextcloud-update automated change
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-01-21 12:16:29 +00:00
szaimen
b12c36f675 watchtower-update automated change
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-01-21 12:12:48 +00:00
szaimen
2c968917eb php dependency updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-01-21 12:03:53 +00:00
Simon L.
3b3eea7ef0 don't ask for a cute anmial picture
Some checks are pending
Codespell / Check spelling (push) Waiting to run
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-01-21 10:54:39 +01:00
dependabot[bot]
fcdd000731
build(deps): bump nextcloud-releases/whiteboard
Bumps nextcloud-releases/whiteboard from v1.5.1 to v1.5.3.

---
updated-dependencies:
- dependency-name: nextcloud-releases/whiteboard
  dependency-version: v1.5.3
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-21 04:10:21 +00:00
Simon L.
88a45d1a80 add cooldown to dependabot
Some checks failed
Codespell / Check spelling (push) Waiting to run
Docker Lint / docker-lint (push) Has been cancelled
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-01-20 13:20:09 +01:00
Simon L.
f117a441fe
Merge pull request #7462 from nextcloud/enh/noid/fix-mysql-config
postgres.config.php: fix `PDO::MYSQL_ATTR_SSL_CA`
2026-01-20 13:13:36 +01:00
Simon L.
b7d63253db postgres.config.php: fix PDO::MYSQL_ATTR_SSL_CA
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-01-20 11:50:04 +01:00
Simon L.
f58465f930 DockeractionManager: rewrite PullImage function to re-try 3 times before failing
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-01-20 10:48:17 +01:00
dependabot[bot]
dbabfe14f0
build(deps): bump golang in /Containers/watchtower
Bumps golang from 1.25.5-alpine3.23 to 1.25.6-alpine3.23.

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

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-20 04:09:56 +00:00
dependabot[bot]
c5b146f84c
build(deps): bump golang in /Containers/imaginary
Bumps golang from 1.25.5-alpine3.23 to 1.25.6-alpine3.23.

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

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-20 04:08:44 +00:00
Simon L.
0e22f38d16 add wud.watch=false to all containers
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-01-19 17:10:22 +01:00
Simon L.
b88c740161
Merge pull request #7440 from nextcloud/update-npmplus-images
Some checks are pending
Codespell / Check spelling (push) Waiting to run
update NPMplus images in reverse proxy guide
2026-01-19 10:53:28 +01:00
Simon L.
c6f59f7188
Merge pull request #7444 from ph818/patch-1
local-instance.md: Clarifying DNS-challenge description.
2026-01-19 10:52:49 +01:00
Simon L.
3f5b2358df
Merge pull request #7445 from ph818/patch-2
readme.md: Clarifying the Instructions for DNS-challenge so following the links will make more sense (configuring the caddyfile of the external caddy reverse proxy).
2026-01-19 10:52:22 +01:00
Simon L.
9822a63c44 nextcloud-entrypoint: make recording server dependent on REMOVE_DISABLED_APPS
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-01-19 10:07:52 +01:00
dependabot[bot]
4a65c04e3d
build(deps): bump docker in /Containers/mastercontainer
Bumps docker from 29.1.4-cli to 29.1.5-cli.

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

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-19 04:28:14 +00:00
ph818
a3e43c5cd9
Update readme.md
Clarifying the Instructions for DNS-challenge so following the links will make more sense (configuring the caddyfile of the external caddy reverse proxy).

Signed-off-by: ph818 <71797925+ph818@users.noreply.github.com>
2026-01-17 17:22:42 -05:00
ph818
d5c3e79b31
Update local-instance.md
Clarifying DNS-challenge description.

Signed-off-by: ph818 <71797925+ph818@users.noreply.github.com>
2026-01-17 17:17:28 -05:00
Zoey
792ba0dfb3
update NPMplus images in reverse proxy guide
Signed-off-by: Zoey <zoey@z0ey.de>
2026-01-16 22:54:58 +01:00
Simon L.
59ad7dc98b move version to a dedicated file
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-01-16 15:12:44 +01:00
Simon L.
9e362e1dc9 increase to 12.5.0
Some checks failed
Codespell / Check spelling (push) Has been cancelled
Docker Lint / docker-lint (push) Has been cancelled
Lint php / php-lint (push) Has been cancelled
PHP Deprecation Detector / PHP Deprecation Detector (push) Has been cancelled
Playwright Tests on push / test (push) Has been cancelled
Static analysis / static-psalm-analysis (push) Has been cancelled
Twig Lint / twig-lint (push) Has been cancelled
Lint php / php-lint-summary (push) Has been cancelled
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-01-15 13:48:06 +01:00
Simon L.
f001fd71b4
Merge pull request #7427 from nextcloud/revert-7414-enh/7308/disable-seccomp-for-borg
Revert "DockerActionManager: disable seccomp policy for borgbackup container"
2026-01-15 13:46:24 +01:00
Simon L.
b5b6422328 Revert "DockerActionManager: disable seccomp policy for borgbackup container"
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-01-15 13:43:01 +01:00
Simon L.
764a3abb0a
Merge pull request #7425 from nextcloud/enh/noid/32.0.4
nextcloud: update to 32.0.4
2026-01-15 12:56:57 +01:00
Simon L.
069195bf23 nextcloud: update to 32.0.4
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-01-15 12:47:51 +01:00
Simon L.
20d49c10e1
Merge pull request #7416 from nextcloud/dependabot/docker/Containers/whiteboard/nextcloud-releases/whiteboard-v1.5.1
Some checks failed
Codespell / Check spelling (push) Waiting to run
Docker Lint / docker-lint (push) Waiting to run
Lint php / php-lint (push) Waiting to run
Lint php / php-lint-summary (push) Blocked by required conditions
PHP Deprecation Detector / PHP Deprecation Detector (push) Waiting to run
Playwright Tests on push / test (push) Waiting to run
Static analysis / static-psalm-analysis (push) Waiting to run
Helm Chart Releaser / release (push) Has been cancelled
Shellcheck / Check Shell (push) Has been cancelled
build(deps): bump nextcloud-releases/whiteboard from v1.5.0 to v1.5.1 in /Containers/whiteboard
2026-01-14 13:29:13 +01:00
Simon L.
7662c0fe09
Merge pull request #7415 from nextcloud/dependabot/docker/Containers/fulltextsearch/elasticsearch-8.19.10
build(deps): bump elasticsearch from 8.19.9 to 8.19.10 in /Containers/fulltextsearch
2026-01-14 13:28:59 +01:00
Simon L.
3f55a47b68
Merge pull request #7414 from nextcloud/enh/7308/disable-seccomp-for-borg
DockerActionManager: disable seccomp policy for borgbackup container
2026-01-14 13:28:46 +01:00
Simon L.
84a01d2fa7
Merge pull request #7408 from nextcloud/dependabot/docker/Containers/mastercontainer/docker-29.1.4-cli
build(deps): bump docker from 29.1.3-cli to 29.1.4-cli in /Containers/mastercontainer
2026-01-14 13:28:31 +01:00
Simon L.
6aef1c32cf
Merge pull request #7397 from nextcloud/enh/noid/remove-custom-ldaps-logic
nextcloud-entrypoint: remove custom logic for ldap.conf again as it does not work
2026-01-14 13:28:15 +01:00
Simon L.
fd35f24d37
Merge pull request #7396 from nextcloud/aio-dependency-update
PHP dependency updates
2026-01-14 13:28:09 +01:00
szaimen
045e5edf84 php dependency updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-01-14 12:03:59 +00:00
dependabot[bot]
eadf0dc5cd
build(deps): bump nextcloud-releases/whiteboard
Bumps nextcloud-releases/whiteboard from v1.5.0 to v1.5.1.

---
updated-dependencies:
- dependency-name: nextcloud-releases/whiteboard
  dependency-version: v1.5.1
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-14 04:10:53 +00:00
dependabot[bot]
6fe3337a21
build(deps): bump elasticsearch in /Containers/fulltextsearch
Bumps elasticsearch from 8.19.9 to 8.19.10.

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

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-14 04:09:32 +00:00
Simon L.
95a320a3e4 DockerActionManager: disable seccomp policy for borgbackup container
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-01-13 11:06:14 +01:00
dependabot[bot]
a53e315e7f
build(deps): bump docker in /Containers/mastercontainer
Bumps docker from 29.1.3-cli to 29.1.4-cli.

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

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-11 15:05:21 +00:00
Jean-Yves
cdd21ae1ff
refactor: change private properties to public in Container class and update related methods
Signed-off-by: Jean-Yves <7360784+docjyJ@users.noreply.github.com>
2026-01-10 15:07:08 +01:00
Simon L.
a83c4e2ed1 nextcloud-entrypoint: remove custom logic for ldap.conf again as it does not work
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-01-08 15:25:23 +01:00
116 changed files with 1539 additions and 1401 deletions

View file

@ -37,5 +37,3 @@ labels: 0. Needs triage
#### Output of `sudo docker ps -a` #### Output of `sudo docker ps -a`
#### Other valuable info <!--- (like additional logs, screenshots & Co.) --> #### Other valuable info <!--- (like additional logs, screenshots & Co.) -->
#### A picture of a cute animal <!--- (not mandatory but encouraged) -->

View file

@ -10,6 +10,8 @@ updates:
labels: labels:
- 3. to review - 3. to review
- dependencies - dependencies
cooldown:
default-days: 7
- package-ecosystem: composer - package-ecosystem: composer
directory: "/php/" directory: "/php/"
schedule: schedule:

8
.github/pull_request_template.md vendored Normal file
View file

@ -0,0 +1,8 @@
<!--
- 🚨 SECURITY INFO
-
- Before sending a pull request that fixes a security issue please report it via our HackerOne page (https://hackerone.com/nextcloud) following our security policy (https://nextcloud.com/security/). This allows us to coordinate the fix and release without potentially exposing all Nextcloud servers and users in the meantime.
-->
* Resolves: # <!-- related github issue -->
* [Sign-off message](https://github.com/src-d/guide/blob/master/developer-community/fix-DCO.md) is added to all commits

View file

@ -12,7 +12,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Check out code - name: Check out code
uses: actions/checkout@v6.0.1 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Check spelling - name: Check spelling
uses: codespell-project/actions-codespell@8f01853be192eb0f849a5c7d721450e7a467c579 # v2 uses: codespell-project/actions-codespell@8f01853be192eb0f849a5c7d721450e7a467c579 # v2
with: with:

View file

@ -10,7 +10,7 @@ jobs:
name: update collabora name: update collabora
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v6.0.1 - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Run collabora-profile-update - name: Run collabora-profile-update
run: | run: |
rm -f php/cool-seccomp-profile.json rm -f php/cool-seccomp-profile.json
@ -18,7 +18,7 @@ jobs:
mv cool-seccomp-profile.json php/ mv cool-seccomp-profile.json php/
- name: Create Pull Request - name: Create Pull Request
uses: peter-evans/create-pull-request@22a9089034f40e5a961c8808d113e2c98fb63676 # v7 uses: peter-evans/create-pull-request@c0f553fe549906ede9cf27b5156039d195d2ece0 # v7
with: with:
commit-message: collabora-seccomp-update automated change commit-message: collabora-seccomp-update automated change
signoff: true signoff: true

View file

@ -16,7 +16,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout code - name: Checkout code
uses: actions/checkout@v6.0.1 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Validate structure - name: Validate structure
run: | run: |
CONTAINERS="$(find ./community-containers -mindepth 1 -maxdepth 1 -type d)" CONTAINERS="$(find ./community-containers -mindepth 1 -maxdepth 1 -type d)"

View file

@ -10,7 +10,7 @@ jobs:
name: Run dependency update script name: Run dependency update script
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v6.0.1 - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: shivammathur/setup-php@7bf05c6b704e0b9bfee22300130a31b5ea68d593 # v2 - uses: shivammathur/setup-php@7bf05c6b704e0b9bfee22300130a31b5ea68d593 # v2
with: with:
php-version: 8.4 php-version: 8.4
@ -44,7 +44,7 @@ jobs:
)" )"
sed -i "s|pecl install APCu.*\;|pecl install APCu-$apcu_version\;|" ./Containers/mastercontainer/Dockerfile sed -i "s|pecl install APCu.*\;|pecl install APCu-$apcu_version\;|" ./Containers/mastercontainer/Dockerfile
- name: Create Pull Request - name: Create Pull Request
uses: peter-evans/create-pull-request@22a9089034f40e5a961c8808d113e2c98fb63676 # v7 uses: peter-evans/create-pull-request@c0f553fe549906ede9cf27b5156039d195d2ece0 # v7
with: with:
commit-message: php dependency updates commit-message: php dependency updates
signoff: true signoff: true

View file

@ -25,7 +25,7 @@ jobs:
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v6.0.1 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Install hadolint - name: Install hadolint
run: | run: |

View file

@ -0,0 +1,50 @@
name: Block if prerelease is present
on:
pull_request:
permissions:
contents: read
jobs:
check-latest-release:
runs-on: ubuntu-latest
steps:
- name: "Check latest published release isn't a prerelease"
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v6
with:
script: |
const tags = await github.rest.repos.listTags({
owner: context.repo.owner,
repo: context.repo.repo,
per_page: 1
});
if (!tags.data || tags.data.length === 0) {
core.info('No tags found for this repository; skipping prerelease check.');
return;
}
const latestTag = tags.data[0].name;
core.info(`Latest tag found: ${latestTag}`);
try {
const { data } = await github.rest.repos.getReleaseByTag({
owner: context.repo.owner,
repo: context.repo.repo,
tag: latestTag
});
if (data.prerelease) {
core.setFailed(`Release for tag ${latestTag} (${data.tag_name}) is a prerelease. Blocking merges to main as we need to wait for the prerelease to become stable.`);
} else {
core.info(`Release for tag ${latestTag} (${data.tag_name}) is not a prerelease.`);
}
} catch (err) {
if (err.status === 404) {
core.info(`No release found for tag ${latestTag}; skipping prerelease check.`);
} else {
throw err;
}
}

View file

@ -13,7 +13,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v6.0.1 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Turnstyle - name: Turnstyle
uses: softprops/turnstyle@e565d2d86403c5d23533937e95980570545e5586 # v2 uses: softprops/turnstyle@e565d2d86403c5d23533937e95980570545e5586 # v2

View file

@ -10,7 +10,7 @@ jobs:
name: update to latest imaginary commit on master branch name: update to latest imaginary commit on master branch
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v6.0.1 - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Run imaginary-update - name: Run imaginary-update
run: | run: |
# Imaginary # Imaginary
@ -22,7 +22,7 @@ jobs:
sed -i "s|^ENV IMAGINARY_HASH.*$|ENV IMAGINARY_HASH=$imaginary_version|" ./Containers/imaginary/Dockerfile sed -i "s|^ENV IMAGINARY_HASH.*$|ENV IMAGINARY_HASH=$imaginary_version|" ./Containers/imaginary/Dockerfile
- name: Create Pull Request - name: Create Pull Request
uses: peter-evans/create-pull-request@22a9089034f40e5a961c8808d113e2c98fb63676 # v7 uses: peter-evans/create-pull-request@c0f553fe549906ede9cf27b5156039d195d2ece0 # v7
with: with:
commit-message: imaginary-update automated change commit-message: imaginary-update automated change
signoff: true signoff: true

View file

@ -16,7 +16,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout code - name: Checkout code
uses: actions/checkout@v6.0.1 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Validate Json - name: Validate Json
run: | run: |
sudo apt-get update sudo apt-get update

View file

@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v6.0.1 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with: with:
fetch-depth: 0 fetch-depth: 0

View file

@ -36,7 +36,7 @@ jobs:
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v5.0.1 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with: with:
persist-credentials: false persist-credentials: false

View file

@ -24,7 +24,7 @@ jobs:
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.1
with: with:
persist-credentials: false persist-credentials: false

View file

@ -11,7 +11,7 @@ jobs:
name: Run nextcloud-update script name: Run nextcloud-update script
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v6.0.1 - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Run nextcloud-update script - name: Run nextcloud-update script
run: | run: |
# Inspired by https://github.com/nextcloud/docker/blob/master/update.sh # Inspired by https://github.com/nextcloud/docker/blob/master/update.sh
@ -79,7 +79,7 @@ jobs:
fi fi
- name: Create Pull Request - name: Create Pull Request
uses: peter-evans/create-pull-request@22a9089034f40e5a961c8808d113e2c98fb63676 # v7 uses: peter-evans/create-pull-request@c0f553fe549906ede9cf27b5156039d195d2ece0 # v7
with: with:
commit-message: nextcloud-update automated change commit-message: nextcloud-update automated change
signoff: true signoff: true

View file

@ -16,7 +16,7 @@ jobs:
name: PHP Deprecation Detector name: PHP Deprecation Detector
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v6.0.1 - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Set up php - name: Set up php
uses: shivammathur/setup-php@7bf05c6b704e0b9bfee22300130a31b5ea68d593 # v2 uses: shivammathur/setup-php@7bf05c6b704e0b9bfee22300130a31b5ea68d593 # v2
with: with:

View file

@ -24,9 +24,9 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v6.0.1 - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: actions/setup-node@v6 - uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
with: with:
node-version: lts/* node-version: lts/*
@ -114,7 +114,7 @@ jobs:
exit 1 exit 1
fi fi
- uses: actions/upload-artifact@v6 - uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6
if: ${{ !cancelled() }} if: ${{ !cancelled() }}
with: with:
name: playwright-report name: playwright-report

View file

@ -13,9 +13,9 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v6.0.1 - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: actions/setup-node@v6 - uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
with: with:
node-version: lts/* node-version: lts/*
@ -82,7 +82,7 @@ jobs:
exit 1 exit 1
fi fi
- uses: actions/upload-artifact@v6 - uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6
if: ${{ !cancelled() }} if: ${{ !cancelled() }}
with: with:
name: playwright-report name: playwright-report

View file

@ -10,7 +10,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v6.0.1 - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Set up php - name: Set up php
uses: shivammathur/setup-php@7bf05c6b704e0b9bfee22300130a31b5ea68d593 # v2 uses: shivammathur/setup-php@7bf05c6b704e0b9bfee22300130a31b5ea68d593 # v2
@ -30,7 +30,7 @@ jobs:
continue-on-error: true continue-on-error: true
- name: Create Pull Request - name: Create Pull Request
uses: peter-evans/create-pull-request@22a9089034f40e5a961c8808d113e2c98fb63676 # v7 uses: peter-evans/create-pull-request@c0f553fe549906ede9cf27b5156039d195d2ece0 # v7
with: with:
token: ${{ secrets.COMMAND_BOT_PAT }} token: ${{ secrets.COMMAND_BOT_PAT }}
commit-message: Update psalm baseline commit-message: Update psalm baseline

View file

@ -32,7 +32,7 @@ jobs:
name: static-psalm-analysis name: static-psalm-analysis
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v5.0.1 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with: with:
persist-credentials: false persist-credentials: false

View file

@ -15,7 +15,7 @@ jobs:
name: Check Shell name: Check Shell
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v6.0.1 - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Run Shellcheck - name: Run Shellcheck
uses: ludeeus/action-shellcheck@00cae500b08a931fb5698e11e79bfbd38e612a38 # v2.0.0 uses: ludeeus/action-shellcheck@00cae500b08a931fb5698e11e79bfbd38e612a38 # v2.0.0
with: with:

View file

@ -10,7 +10,7 @@ jobs:
name: update talk name: update talk
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v6.0.1 - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Run talk-container-update - name: Run talk-container-update
run: | run: |
# Recording # Recording
@ -45,7 +45,7 @@ jobs:
sed -i "s|^ARG JANUS_VERSION=.*$|ARG JANUS_VERSION=$janus_version|" ./Containers/talk/Dockerfile sed -i "s|^ARG JANUS_VERSION=.*$|ARG JANUS_VERSION=$janus_version|" ./Containers/talk/Dockerfile
- name: Create Pull Request - name: Create Pull Request
uses: peter-evans/create-pull-request@22a9089034f40e5a961c8808d113e2c98fb63676 # v7 uses: peter-evans/create-pull-request@c0f553fe549906ede9cf27b5156039d195d2ece0 # v7
with: with:
commit-message: talk-update automated change commit-message: talk-update automated change
signoff: true signoff: true

View file

@ -24,7 +24,7 @@ jobs:
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v6.0.1 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Set up php ${{ matrix.php-versions }} - name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@7bf05c6b704e0b9bfee22300130a31b5ea68d593 # v2 uses: shivammathur/setup-php@7bf05c6b704e0b9bfee22300130a31b5ea68d593 # v2

View file

@ -8,4 +8,4 @@ jobs:
name: update copyright name: update copyright
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v6.0.1 - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

View file

@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout code - name: Checkout code
uses: actions/checkout@v6.0.1 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: update helm chart - name: update helm chart
run: | run: |
set -x set -x
@ -23,7 +23,7 @@ jobs:
sudo bash nextcloud-aio-helm-chart/update-helm.sh "$DOCKER_TAG" sudo bash nextcloud-aio-helm-chart/update-helm.sh "$DOCKER_TAG"
fi fi
- name: Create Pull Request - name: Create Pull Request
uses: peter-evans/create-pull-request@22a9089034f40e5a961c8808d113e2c98fb63676 # v7 uses: peter-evans/create-pull-request@c0f553fe549906ede9cf27b5156039d195d2ece0 # v7
with: with:
commit-message: Helm Chart updates commit-message: Helm Chart updates
signoff: true signoff: true

View file

@ -11,12 +11,12 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout code - name: Checkout code
uses: actions/checkout@v6.0.1 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: update yaml files - name: update yaml files
run: | run: |
sudo bash manual-install/update-yaml.sh sudo bash manual-install/update-yaml.sh
- name: Create Pull Request - name: Create Pull Request
uses: peter-evans/create-pull-request@22a9089034f40e5a961c8808d113e2c98fb63676 # v7 uses: peter-evans/create-pull-request@c0f553fe549906ede9cf27b5156039d195d2ece0 # v7
with: with:
commit-message: Yaml updates commit-message: Yaml updates
signoff: true signoff: true

View file

@ -10,7 +10,7 @@ jobs:
name: update watchtower name: update watchtower
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v6.0.1 - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Run watchtower-container-update - name: Run watchtower-container-update
run: | run: |
# Watchtower # Watchtower
@ -26,7 +26,7 @@ jobs:
sed -i "s|\$WATCHTOWER_COMMIT_HASH.*$|\$WATCHTOWER_COMMIT_HASH # $watchtower_version|" ./Containers/watchtower/Dockerfile sed -i "s|\$WATCHTOWER_COMMIT_HASH.*$|\$WATCHTOWER_COMMIT_HASH # $watchtower_version|" ./Containers/watchtower/Dockerfile
- name: Create Pull Request - name: Create Pull Request
uses: peter-evans/create-pull-request@22a9089034f40e5a961c8808d113e2c98fb63676 # v7 uses: peter-evans/create-pull-request@c0f553fe549906ede9cf27b5156039d195d2ece0 # v7
with: with:
commit-message: watchtower-update automated change commit-message: watchtower-update automated change
signoff: true signoff: true

13
CODE_OF_CONDUCT.md Normal file
View file

@ -0,0 +1,13 @@
<!--
- SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
- SPDX-License-Identifier: AGPL-3.0-or-later
-->
In the Nextcloud community, participants from all over the world come together to create Free Software for a free internet. This is made possible by the support, hard work and enthusiasm of thousands of people, including those who create and use Nextcloud software.
Our code of conduct offers some guidance to ensure Nextcloud participants can cooperate effectively in a positive and inspiring atmosphere, and to explain how together we can strengthen and support each other.
The Code of Conduct is shared by all contributors and users who engage with the Nextcloud team and its community services. It presents a summary of the shared values and “common sense” thinking in our community.
You can find our full code of conduct on our website: https://nextcloud.com/code-of-conduct/
Please, keep our CoC in mind when you contribute! That way, everyone can be a part of our community in a productive, positive, creative and fun way.

View file

@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest # syntax=docker/dockerfile:latest
FROM alpine:3.23.2 FROM alpine:3.23.3
RUN set -ex; \ RUN set -ex; \
apk upgrade --no-cache -a apk upgrade --no-cache -a

View file

@ -88,4 +88,5 @@ CMD ["/usr/bin/supervisord", "-c", "/supervisord.conf"]
HEALTHCHECK CMD /healthcheck.sh HEALTHCHECK CMD /healthcheck.sh
LABEL com.centurylinklabs.watchtower.enable="false" \ LABEL com.centurylinklabs.watchtower.enable="false" \
wud.watch="false" \
org.label-schema.vendor="Nextcloud" org.label-schema.vendor="Nextcloud"

View file

@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest # syntax=docker/dockerfile:latest
FROM alpine:3.23.2 FROM alpine:3.23.3
RUN set -ex; \ RUN set -ex; \
\ \
@ -24,5 +24,6 @@ ENTRYPOINT ["/start.sh"]
USER root USER root
LABEL com.centurylinklabs.watchtower.enable="false" \ LABEL com.centurylinklabs.watchtower.enable="false" \
wud.watch="false" \
org.label-schema.vendor="Nextcloud" org.label-schema.vendor="Nextcloud"
ENV BORG_RETENTION_POLICY="--keep-within=7d --keep-weekly=4 --keep-monthly=6" ENV BORG_RETENTION_POLICY="--keep-within=7d --keep-weekly=4 --keep-monthly=6"

View file

@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest # syntax=docker/dockerfile:latest
FROM alpine:3.23.2 FROM alpine:3.23.3
RUN set -ex; \ RUN set -ex; \
apk upgrade --no-cache -a; \ apk upgrade --no-cache -a; \
@ -33,5 +33,6 @@ VOLUME /var/lib/clamav
ENTRYPOINT ["/start.sh"] ENTRYPOINT ["/start.sh"]
CMD ["/usr/bin/supervisord", "-c", "/supervisord.conf"] CMD ["/usr/bin/supervisord", "-c", "/supervisord.conf"]
LABEL com.centurylinklabs.watchtower.enable="false" \ LABEL com.centurylinklabs.watchtower.enable="false" \
wud.watch="false" \
org.label-schema.vendor="Nextcloud" org.label-schema.vendor="Nextcloud"
HEALTHCHECK --start-period=60s --retries=9 CMD /healthcheck.sh HEALTHCHECK --start-period=60s --retries=9 CMD /healthcheck.sh

View file

@ -12,4 +12,5 @@ USER 1001
HEALTHCHECK --start-period=60s --retries=9 CMD /healthcheck.sh HEALTHCHECK --start-period=60s --retries=9 CMD /healthcheck.sh
LABEL com.centurylinklabs.watchtower.enable="false" \ LABEL com.centurylinklabs.watchtower.enable="false" \
wud.watch="false" \
org.label-schema.vendor="Nextcloud" org.label-schema.vendor="Nextcloud"

View file

@ -1,6 +1,6 @@
# syntax=docker/dockerfile:latest # syntax=docker/dockerfile:latest
# From a file located probably somewhere here: https://github.com/CollaboraOnline/online/blob/master/docker/from-packages/Dockerfile # From a file located probably somewhere here: https://github.com/CollaboraOnline/online/blob/master/docker/from-packages/Dockerfile
FROM collabora/code:25.04.8.1.1 FROM collabora/code:25.04.8.2.1
USER root USER root
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive
@ -11,4 +11,5 @@ USER 1001
HEALTHCHECK --start-period=60s --retries=9 CMD /healthcheck.sh HEALTHCHECK --start-period=60s --retries=9 CMD /healthcheck.sh
LABEL com.centurylinklabs.watchtower.enable="false" \ LABEL com.centurylinklabs.watchtower.enable="false" \
wud.watch="false" \
org.label-schema.vendor="Nextcloud" org.label-schema.vendor="Nextcloud"

View file

@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest # syntax=docker/dockerfile:latest
FROM haproxy:3.3.1-alpine FROM haproxy:3.3.2-alpine
# hadolint ignore=DL3002 # hadolint ignore=DL3002
USER root USER root
@ -19,4 +19,5 @@ COPY --chmod=664 haproxy.cfg /haproxy.cfg
ENTRYPOINT ["/start.sh"] ENTRYPOINT ["/start.sh"]
HEALTHCHECK CMD /healthcheck.sh HEALTHCHECK CMD /healthcheck.sh
LABEL com.centurylinklabs.watchtower.enable="false" \ LABEL com.centurylinklabs.watchtower.enable="false" \
wud.watch="false" \
org.label-schema.vendor="Nextcloud" org.label-schema.vendor="Nextcloud"

View file

@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest # syntax=docker/dockerfile:latest
FROM alpine:3.23.2 FROM alpine:3.23.3
RUN set -ex; \ RUN set -ex; \
apk upgrade --no-cache -a; \ apk upgrade --no-cache -a; \
apk add --no-cache bash lighttpd netcat-openbsd; \ apk add --no-cache bash lighttpd netcat-openbsd; \
@ -18,4 +18,5 @@ ENTRYPOINT ["/start.sh"]
HEALTHCHECK CMD nc -z 127.0.0.1 $APACHE_PORT || exit 1 HEALTHCHECK CMD nc -z 127.0.0.1 $APACHE_PORT || exit 1
LABEL com.centurylinklabs.watchtower.enable="false" \ LABEL com.centurylinklabs.watchtower.enable="false" \
wud.watch="false" \
org.label-schema.vendor="Nextcloud" org.label-schema.vendor="Nextcloud"

View file

@ -1,6 +1,6 @@
# syntax=docker/dockerfile:latest # syntax=docker/dockerfile:latest
# 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.19.9 FROM elasticsearch:8.19.10
USER root USER root
@ -22,5 +22,6 @@ USER 1000:0
HEALTHCHECK --interval=10s --timeout=5s --start-period=1m --retries=5 CMD /healthcheck.sh HEALTHCHECK --interval=10s --timeout=5s --start-period=1m --retries=5 CMD /healthcheck.sh
LABEL com.centurylinklabs.watchtower.enable="false" \ LABEL com.centurylinklabs.watchtower.enable="false" \
wud.watch="false" \
org.label-schema.vendor="Nextcloud" org.label-schema.vendor="Nextcloud"
ENV ES_JAVA_OPTS="-Xms512M -Xmx512M" ENV ES_JAVA_OPTS="-Xms512M -Xmx512M"

View file

@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest # syntax=docker/dockerfile:latest
FROM golang:1.25.5-alpine3.23 AS go FROM golang:1.25.6-alpine3.23 AS go
ENV IMAGINARY_HASH=6a274b488759a896aff02f52afee6e50b5e3a3ee ENV IMAGINARY_HASH=6a274b488759a896aff02f52afee6e50b5e3a3ee
@ -14,7 +14,7 @@ RUN set -ex; \
build-base; \ build-base; \
go install github.com/h2non/imaginary@"$IMAGINARY_HASH"; go install github.com/h2non/imaginary@"$IMAGINARY_HASH";
FROM alpine:3.23.2 FROM alpine:3.23.3
RUN set -ex; \ RUN set -ex; \
apk upgrade --no-cache -a; \ apk upgrade --no-cache -a; \
apk add --no-cache \ apk add --no-cache \
@ -43,4 +43,5 @@ ENTRYPOINT ["/start.sh"]
HEALTHCHECK CMD /healthcheck.sh HEALTHCHECK CMD /healthcheck.sh
LABEL com.centurylinklabs.watchtower.enable="false" \ LABEL com.centurylinklabs.watchtower.enable="false" \
wud.watch="false" \
org.label-schema.vendor="Nextcloud" org.label-schema.vendor="Nextcloud"

View file

@ -1,12 +1,12 @@
# syntax=docker/dockerfile:latest # syntax=docker/dockerfile:latest
# Docker CLI is a requirement # Docker CLI is a requirement
FROM docker:29.1.3-cli AS docker FROM docker:29.2.0-cli AS docker
# Caddy is a requirement # Caddy is a requirement
FROM caddy:2.10.2-alpine AS caddy FROM caddy:2.10.2-alpine AS caddy
# From https://github.com/docker-library/php/blob/master/8.4/alpine3.23/fpm/Dockerfile # From https://github.com/docker-library/php/blob/master/8.4/alpine3.23/fpm/Dockerfile
FROM php:8.4.16-fpm-alpine3.23 FROM php:8.4.17-fpm-alpine3.23
EXPOSE 80 EXPOSE 80
EXPOSE 8080 EXPOSE 8080
@ -127,6 +127,7 @@ RUN set -ex; \
# hadolint ignore=DL3048 # hadolint ignore=DL3048
LABEL org.label-schema.vendor="Nextcloud" \ LABEL org.label-schema.vendor="Nextcloud" \
wud.watch="false" \
com.docker.compose.project="nextcloud-aio" com.docker.compose.project="nextcloud-aio"
# hadolint ignore=DL3002 # hadolint ignore=DL3002

View file

@ -4,7 +4,7 @@ echo "Daily backup script has started"
# Check if initial configuration has been done, otherwise this script should do nothing. # Check if initial configuration has been done, otherwise this script should do nothing.
CONFIG_FILE=/mnt/docker-aio-config/data/configuration.json CONFIG_FILE=/mnt/docker-aio-config/data/configuration.json
if ! [ -f "$CONFIG_FILE" ] || ! grep -q "wasStartButtonClicked.*1" "$CONFIG_FILE"; then if ! [ -f "$CONFIG_FILE" ] || (! grep -q "wasStartButtonClicked.*1" "$CONFIG_FILE" && ! grep -q "wasStartButtonClicked.*true" "$CONFIG_FILE"); then
echo "Initial configuration via AIO interface not done yet. Exiting..." echo "Initial configuration via AIO interface not done yet. Exiting..."
exit 0 exit 0
fi fi

View file

@ -166,7 +166,7 @@ elif ! sudo -E -u www-data docker volume ls --format "{{.Name}}" | grep -q "^nex
print_red "It seems like you did not give the mastercontainer volume the correct name? (The 'nextcloud_aio_mastercontainer' volume was not found.) print_red "It seems like you did not give the mastercontainer volume the correct name? (The 'nextcloud_aio_mastercontainer' volume was not found.)
Using a different name is not supported since the built-in backup solution will not work in that case!" Using a different name is not supported since the built-in backup solution will not work in that case!"
exit 1 exit 1
elif ! sudo -E -u www-data docker inspect nextcloud-aio-mastercontainer | grep -q "nextcloud_aio_mastercontainer"; then elif ! sudo -E -u www-data docker inspect nextcloud-aio-mastercontainer --format '{{.Mounts}}' | grep -q " nextcloud_aio_mastercontainer "; then
print_red "It seems like you did not attach the 'nextcloud_aio_mastercontainer' volume to the mastercontainer? print_red "It seems like you did not attach the 'nextcloud_aio_mastercontainer' volume to the mastercontainer?
This is not supported since the built-in backup solution will not work in that case!" This is not supported since the built-in backup solution will not work in that case!"
exit 1 exit 1

View file

@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest # syntax=docker/dockerfile:latest
FROM php:8.3.29-fpm-alpine3.23 FROM php:8.3.30-fpm-alpine3.23
ENV PHP_MEMORY_LIMIT=512M ENV PHP_MEMORY_LIMIT=512M
ENV PHP_UPLOAD_LIMIT=16G ENV PHP_UPLOAD_LIMIT=16G
@ -8,7 +8,7 @@ ENV SOURCE_LOCATION=/usr/src/nextcloud
ENV REDIS_DB_INDEX=0 ENV REDIS_DB_INDEX=0
# AIO settings start # Do not remove or change this line! # AIO settings start # Do not remove or change this line!
ENV NEXTCLOUD_VERSION=32.0.3 ENV NEXTCLOUD_VERSION=32.0.5
ENV AIO_TOKEN=123456 ENV AIO_TOKEN=123456
ENV AIO_URL=localhost ENV AIO_URL=localhost
# AIO settings end # Do not remove or change this line! # AIO settings end # Do not remove or change this line!
@ -264,4 +264,5 @@ CMD ["/usr/bin/supervisord", "-c", "/supervisord.conf"]
HEALTHCHECK CMD /healthcheck.sh HEALTHCHECK CMD /healthcheck.sh
LABEL com.centurylinklabs.watchtower.enable="false" \ LABEL com.centurylinklabs.watchtower.enable="false" \
wud.watch="false" \
org.label-schema.vendor="Nextcloud" org.label-schema.vendor="Nextcloud"

View file

@ -10,7 +10,7 @@ if (getenv('NEXTCLOUD_TRUSTED_CERTIFICATES_POSTGRES')) {
if (getenv('NEXTCLOUD_TRUSTED_CERTIFICATES_MYSQL')) { if (getenv('NEXTCLOUD_TRUSTED_CERTIFICATES_MYSQL')) {
$CONFIG = array( $CONFIG = array(
'dbdriveroptions' => array( 'dbdriveroptions' => array(
'PDO::MYSQL_ATTR_SSL_CA' => '/var/www/html/data/certificates/ca-bundle.crt', PDO::MYSQL_ATTR_SSL_CA => '/var/www/html/data/certificates/ca-bundle.crt',
), ),
); );
} }

View file

@ -65,14 +65,6 @@ if env | grep -q NEXTCLOUD_TRUSTED_CERTIFICATES_; then
done done
# Custom logic for ldap conf
if ! grep -q "TLS_" /etc/openldap/ldap.conf; then
cat << EOL >> /etc/openldap/ldap.conf
TLS_CACERT $CERTIFICATE_BUNDLE
TLS_REQCERT try
EOL
fi
# Backwards compatibility with older instances # Backwards compatibility with older instances
if [ -f "/var/www/html/config/postgres.config.php" ]; then if [ -f "/var/www/html/config/postgres.config.php" ]; then
sed -i "s|/var/www/html/data/certificates/POSTGRES|/var/www/html/data/certificates/ca-bundle.crt|" /var/www/html/config/postgres.config.php sed -i "s|/var/www/html/data/certificates/POSTGRES|/var/www/html/data/certificates/ca-bundle.crt|" /var/www/html/config/postgres.config.php
@ -190,8 +182,11 @@ if ! [ -f "$NEXTCLOUD_DATA_DIR/skip.update" ]; then
curl -fsSL -o nextcloud.tar.bz2.asc "https://download.nextcloud.com/server/releases/latest-${NEXT_MAJOR}.tar.bz2.asc" curl -fsSL -o nextcloud.tar.bz2.asc "https://download.nextcloud.com/server/releases/latest-${NEXT_MAJOR}.tar.bz2.asc"
GNUPGHOME="$(mktemp -d)" GNUPGHOME="$(mktemp -d)"
export GNUPGHOME export GNUPGHOME
# gpg key from https://nextcloud.com/nextcloud.asc if ! gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 28806A878AE423A28372792ED75899B9A724937A; then
gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 28806A878AE423A28372792ED75899B9A724937A if ! gpg --batch --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 28806A878AE423A28372792ED75899B9A724937A; then
curl -sSL https://nextcloud.com/nextcloud.asc | gpg --import
fi
fi
gpg --batch --verify nextcloud.tar.bz2.asc nextcloud.tar.bz2 gpg --batch --verify nextcloud.tar.bz2.asc nextcloud.tar.bz2
mkdir -p /usr/src/tmp mkdir -p /usr/src/tmp
tar -xjf nextcloud.tar.bz2 -C /usr/src/tmp/ tar -xjf nextcloud.tar.bz2 -C /usr/src/tmp/
@ -902,8 +897,10 @@ if [ -d "/var/www/html/custom_apps/spreed" ]; then
RECORDING_SERVERS_STRING="{\"servers\":[{\"server\":\"http://$TALK_RECORDING_HOST:1234/\",\"verify\":true}],\"secret\":\"$RECORDING_SECRET\"}" RECORDING_SERVERS_STRING="{\"servers\":[{\"server\":\"http://$TALK_RECORDING_HOST:1234/\",\"verify\":true}],\"secret\":\"$RECORDING_SECRET\"}"
php /var/www/html/occ config:app:set spreed recording_servers --value="$RECORDING_SERVERS_STRING" php /var/www/html/occ config:app:set spreed recording_servers --value="$RECORDING_SERVERS_STRING"
else else
if [ "$REMOVE_DISABLED_APPS" = yes ]; then
php /var/www/html/occ config:app:delete spreed recording_servers php /var/www/html/occ config:app:delete spreed recording_servers
fi fi
fi
fi fi
# Clamav # Clamav

View file

@ -1,5 +1,5 @@
# syntax=docker/dockerfile:latest # syntax=docker/dockerfile:latest
FROM alpine:3.23.2 FROM alpine:3.23.3
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
@ -23,4 +23,5 @@ ENTRYPOINT ["/start.sh"]
HEALTHCHECK CMD /healthcheck.sh HEALTHCHECK CMD /healthcheck.sh
LABEL com.centurylinklabs.watchtower.enable="false" \ LABEL com.centurylinklabs.watchtower.enable="false" \
wud.watch="false" \
org.label-schema.vendor="Nextcloud" org.label-schema.vendor="Nextcloud"

View file

@ -8,4 +8,5 @@ COPY --chmod=775 healthcheck.sh /healthcheck.sh
HEALTHCHECK --start-period=60s --retries=9 CMD /healthcheck.sh HEALTHCHECK --start-period=60s --retries=9 CMD /healthcheck.sh
LABEL com.centurylinklabs.watchtower.enable="false" \ LABEL com.centurylinklabs.watchtower.enable="false" \
wud.watch="false" \
org.label-schema.vendor="Nextcloud" org.label-schema.vendor="Nextcloud"

View file

@ -44,4 +44,5 @@ ENTRYPOINT ["/start.sh"]
HEALTHCHECK CMD /healthcheck.sh HEALTHCHECK CMD /healthcheck.sh
LABEL com.centurylinklabs.watchtower.enable="false" \ LABEL com.centurylinklabs.watchtower.enable="false" \
wud.watch="false" \
org.label-schema.vendor="Nextcloud" org.label-schema.vendor="Nextcloud"

View file

@ -21,4 +21,5 @@ ENTRYPOINT ["/start.sh"]
HEALTHCHECK CMD /healthcheck.sh HEALTHCHECK CMD /healthcheck.sh
LABEL com.centurylinklabs.watchtower.enable="false" \ LABEL com.centurylinklabs.watchtower.enable="false" \
wud.watch="false" \
org.label-schema.vendor="Nextcloud" org.label-schema.vendor="Nextcloud"

View file

@ -58,4 +58,5 @@ CMD ["python", "-m", "nextcloud.talk.recording", "--config", "/conf/recording.co
HEALTHCHECK CMD /healthcheck.sh HEALTHCHECK CMD /healthcheck.sh
LABEL com.centurylinklabs.watchtower.enable="false" \ LABEL com.centurylinklabs.watchtower.enable="false" \
wud.watch="false" \
org.label-schema.vendor="Nextcloud" org.label-schema.vendor="Nextcloud"

View file

@ -1,8 +1,8 @@
# syntax=docker/dockerfile:latest # syntax=docker/dockerfile:latest
FROM nats:2.12.3-scratch AS nats FROM nats:2.12.4-scratch AS nats
FROM eturnal/eturnal:1.12.2-alpine AS eturnal FROM eturnal/eturnal:1.12.2-alpine AS eturnal
FROM strukturag/nextcloud-spreed-signaling:2.0.4 AS signaling FROM strukturag/nextcloud-spreed-signaling:2.0.4 AS signaling
FROM alpine:3.23.2 AS janus FROM alpine:3.23.3 AS janus
ARG JANUS_VERSION=v1.3.3 ARG JANUS_VERSION=v1.3.3
WORKDIR /src WORKDIR /src
@ -35,7 +35,7 @@ RUN set -ex; \
make configs; \ make configs; \
rename -v ".jcfg.sample" ".jcfg" /usr/local/etc/janus/*.jcfg.sample rename -v ".jcfg.sample" ".jcfg" /usr/local/etc/janus/*.jcfg.sample
FROM alpine:3.23.2 FROM alpine:3.23.3
ENV ETURNAL_ETC_DIR="/conf" ENV ETURNAL_ETC_DIR="/conf"
ENV SKIP_CERT_VERIFY=false ENV SKIP_CERT_VERIFY=false
COPY --from=janus --chmod=777 --chown=1000:1000 /usr/local /usr/local COPY --from=janus --chmod=777 --chown=1000:1000 /usr/local /usr/local
@ -107,4 +107,5 @@ CMD ["supervisord", "-c", "/supervisord.conf"]
HEALTHCHECK CMD /healthcheck.sh HEALTHCHECK CMD /healthcheck.sh
LABEL com.centurylinklabs.watchtower.enable="false" \ LABEL com.centurylinklabs.watchtower.enable="false" \
wud.watch="false" \
org.label-schema.vendor="Nextcloud" org.label-schema.vendor="Nextcloud"

View file

@ -1,15 +1,15 @@
# syntax=docker/dockerfile:latest # syntax=docker/dockerfile:latest
FROM golang:1.25.5-alpine3.23 AS go FROM golang:1.25.6-alpine3.23 AS go
ENV WATCHTOWER_COMMIT_HASH=f6a7b29c312bec5f389a4fb52259919f0678800b ENV WATCHTOWER_COMMIT_HASH=f522ce27e1fbe4618da54833025a95be62aa838a
RUN set -ex; \ RUN set -ex; \
apk upgrade --no-cache -a; \ apk upgrade --no-cache -a; \
apk add --no-cache \ apk add --no-cache \
build-base; \ build-base; \
go install github.com/nicholas-fedor/watchtower@$WATCHTOWER_COMMIT_HASH # v1.13.1 go install github.com/nicholas-fedor/watchtower@$WATCHTOWER_COMMIT_HASH # v1.14.0
FROM alpine:3.23.2 FROM alpine:3.23.3
RUN set -ex; \ RUN set -ex; \
apk upgrade --no-cache -a; \ apk upgrade --no-cache -a; \
@ -24,4 +24,5 @@ USER root
ENTRYPOINT ["/start.sh"] ENTRYPOINT ["/start.sh"]
LABEL com.centurylinklabs.watchtower.enable="false" \ LABEL com.centurylinklabs.watchtower.enable="false" \
wud.watch="false" \
org.label-schema.vendor="Nextcloud" org.label-schema.vendor="Nextcloud"

View file

@ -1,6 +1,6 @@
# syntax=docker/dockerfile:latest # syntax=docker/dockerfile:latest
# Probably from this file: https://github.com/nextcloud/whiteboard/blob/main/Dockerfile # Probably from this file: https://github.com/nextcloud/whiteboard/blob/main/Dockerfile
FROM ghcr.io/nextcloud-releases/whiteboard:v1.5.0 FROM ghcr.io/nextcloud-releases/whiteboard:v1.5.4
USER root USER root
RUN set -ex; \ RUN set -ex; \
@ -23,4 +23,5 @@ WORKDIR /tmp
ENTRYPOINT ["/start.sh"] ENTRYPOINT ["/start.sh"]
LABEL com.centurylinklabs.watchtower.enable="false" \ LABEL com.centurylinklabs.watchtower.enable="false" \
wud.watch="false" \
org.label-schema.vendor="Nextcloud" org.label-schema.vendor="Nextcloud"

View file

@ -1,5 +1,5 @@
## Caddy with geoblocking ## Caddy with geoblocking
This container bundles caddy and auto-configures it for you. It also covers [vaultwarden](https://github.com/nextcloud/all-in-one/tree/main/community-containers/vaultwarden) by listening on `bw.$NC_DOMAIN`, if installed. It also covers [stalwart](https://github.com/nextcloud/all-in-one/tree/main/community-containers/stalwart) by listening on `mail.$NC_DOMAIN`, if installed. It also covers [jellyfin](https://github.com/nextcloud/all-in-one/tree/main/community-containers/jellyfin) by listening on `media.$NC_DOMAIN`, if installed. It also covers [lldap](https://github.com/nextcloud/all-in-one/tree/main/community-containers/lldap) by listening on `ldap.$NC_DOMAIN`, if installed. It also covers [nocodb](https://github.com/nextcloud/all-in-one/tree/main/community-containers/nocodb) by listening on `tables.$NC_DOMAIN`, if installed. It also covers [jellyseerr](https://github.com/nextcloud/all-in-one/tree/main/community-containers/jellyseerr) by listening on `requests.$NC_DOMAIN`, if installed. It also covers [nextcloud-exporter](https://github.com/nextcloud/all-in-one/tree/main/community-containers/nextcloud-exporter) by listening on `metrics.$NC_DOMAIN`, if installed. This container bundles caddy and auto-configures it for you. It also covers [vaultwarden](https://github.com/nextcloud/all-in-one/tree/main/community-containers/vaultwarden) by listening on `bw.$NC_DOMAIN`, if installed. It also covers [stalwart](https://github.com/nextcloud/all-in-one/tree/main/community-containers/stalwart) by listening on `mail.$NC_DOMAIN`, if installed. It also covers [jellyfin](https://github.com/nextcloud/all-in-one/tree/main/community-containers/jellyfin) by listening on `media.$NC_DOMAIN`, if installed. It also covers [lldap](https://github.com/nextcloud/all-in-one/tree/main/community-containers/lldap) by listening on `ldap.$NC_DOMAIN`, if installed. It also covers [nocodb](https://github.com/nextcloud/all-in-one/tree/main/community-containers/nocodb) by listening on `tables.$NC_DOMAIN`, if installed. It also covers [jellyseerr](https://github.com/nextcloud/all-in-one/tree/main/community-containers/jellyseerr) by listening on `requests.$NC_DOMAIN`, if installed. It also covers [nextcloud-exporter](https://github.com/nextcloud/all-in-one/tree/main/community-containers/nextcloud-exporter) by listening on `metrics.$NC_DOMAIN`, if installed. It also covers [LocalAI](https://github.com/nextcloud/all-in-one/tree/main/community-containers/local-ai) by listening on `ai.$NC_DOMAIN`, if installed.
### Notes ### Notes
- This container is incompatible with the [npmplus](https://github.com/nextcloud/all-in-one/tree/main/community-containers/npmplus) community container. So make sure that you do not enable both at the same time! - This container is incompatible with the [npmplus](https://github.com/nextcloud/all-in-one/tree/main/community-containers/npmplus) community container. So make sure that you do not enable both at the same time!
@ -14,6 +14,7 @@ This container bundles caddy and auto-configures it for you. It also covers [vau
- If you want to use this with [nocodb](https://github.com/nextcloud/all-in-one/tree/main/community-containers/nocodb), make sure that you point `tables.your-nc-domain.com` to your server using a cname record so that caddy can get a certificate automatically for nocodb. - If you want to use this with [nocodb](https://github.com/nextcloud/all-in-one/tree/main/community-containers/nocodb), make sure that you point `tables.your-nc-domain.com` to your server using a cname record so that caddy can get a certificate automatically for nocodb.
- If you want to use this with [jellyseerr](https://github.com/nextcloud/all-in-one/tree/main/community-containers/jellyseerr), make sure that you point `requests.your-nc-domain.com` to your server using a cname record so that caddy can get a certificate automatically for jellyseerr. - If you want to use this with [jellyseerr](https://github.com/nextcloud/all-in-one/tree/main/community-containers/jellyseerr), make sure that you point `requests.your-nc-domain.com` to your server using a cname record so that caddy can get a certificate automatically for jellyseerr.
- If you want to use this with [nextcloud-exporter](https://github.com/nextcloud/all-in-one/tree/main/community-containers/nextcloud-exporter), make sure that you point `metrics.your-nc-domain.com` to your server using a cname record so that caddy can get a certificate automatically for nextcloud-exporter. - If you want to use this with [nextcloud-exporter](https://github.com/nextcloud/all-in-one/tree/main/community-containers/nextcloud-exporter), make sure that you point `metrics.your-nc-domain.com` to your server using a cname record so that caddy can get a certificate automatically for nextcloud-exporter.
- If you want to use this with [local AI](https://github.com/nextcloud/all-in-one/tree/main/community-containers/local-ai), make sure that you point `ai.your-nc-domain.com` to your server using a cname record so that caddy can get a certificate automatically for local AI.
- After the container was started the first time, you should see a new `nextcloud-aio-caddy` folder and inside there an `allowed-countries.txt` file when you open the files app with the default `admin` user. In there you can adjust the allowed country codes for caddy by adding them to the first line, e.g. `IT FR` would allow access from italy and france. Private ip-ranges are always allowed. Additionally, in order to activate this config, you need to get an account at https://dev.maxmind.com/geoip/geolite2-free-geolocation-data and download the `GeoLite2-Country.mmdb` and upload it with this exact name into the `nextcloud-aio-caddy` folder. Afterwards restart all containers from the AIO interface and your new config should be active! - After the container was started the first time, you should see a new `nextcloud-aio-caddy` folder and inside there an `allowed-countries.txt` file when you open the files app with the default `admin` user. In there you can adjust the allowed country codes for caddy by adding them to the first line, e.g. `IT FR` would allow access from italy and france. Private ip-ranges are always allowed. Additionally, in order to activate this config, you need to get an account at https://dev.maxmind.com/geoip/geolite2-free-geolocation-data and download the `GeoLite2-Country.mmdb` and upload it with this exact name into the `nextcloud-aio-caddy` folder. Afterwards restart all containers from the AIO interface and your new config should be active!
- You can add your own Caddy configurations in `/data/caddy-imports/` inside the Caddy container (`sudo docker exec -it nextcloud-aio-caddy bash`). These will be imported on container startup. **Please note:** If you do not have CLI access to the server, you can now run docker commands via a web session by using this community container: https://github.com/nextcloud/all-in-one/tree/main/community-containers/container-management - You can add your own Caddy configurations in `/data/caddy-imports/` inside the Caddy container (`sudo docker exec -it nextcloud-aio-caddy bash`). These will be imported on container startup. **Please note:** If you do not have CLI access to the server, you can now run docker commands via a web session by using this community container: https://github.com/nextcloud/all-in-one/tree/main/community-containers/container-management
- See https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers how to add it to the AIO stack - See https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers how to add it to the AIO stack

View file

@ -4,42 +4,59 @@
"container_name": "nextcloud-aio-local-ai", "container_name": "nextcloud-aio-local-ai",
"display_name": "Local AI", "display_name": "Local AI",
"documentation": "https://github.com/nextcloud/all-in-one/tree/main/community-containers/local-ai", "documentation": "https://github.com/nextcloud/all-in-one/tree/main/community-containers/local-ai",
"image": "ghcr.io/szaimen/aio-local-ai", "image": "ghcr.io/docjyj/aio-local-ai-vulkan",
"image_tag": "v2", "image_tag": "v1",
"internal_port": "8080", "internal_port": "10078",
"restart": "unless-stopped", "restart": "unless-stopped",
"environment": [ "environment": [
"TZ=%TIMEZONE%", "TZ=%TIMEZONE%",
"MODELS_PATH=/models" "LOCALAI_API_KEY=%LOCALAI_API_KEY%",
"LOCALAI_ADDRESS=:10078",
"LOCALAI_CONFIG_DIR=/configuration",
"LOCALAI_MODEL_PATH=/models",
"LOCALAI_BACKEND_PATH=/backends"
],
"ports": [
{
"ip_binding": "%APACHE_IP_BINDING%",
"port_number": "10078",
"protocol": "tcp"
}
], ],
"volumes": [ "volumes": [
{
"source": "nextcloud_aio_localai_configuration",
"destination": "/configuration",
"writeable": true
},
{ {
"source": "nextcloud_aio_localai_models", "source": "nextcloud_aio_localai_models",
"destination": "/models", "destination": "/models",
"writeable": true "writeable": true
}, },
{ {
"source": "nextcloud_aio_localai_images", "source": "nextcloud_aio_localai_backends",
"destination": "/tmp/generated/images/", "destination": "/backends",
"writeable": true "writeable": true
},
{
"source": "%NEXTCLOUD_DATADIR%",
"destination": "/nextcloud",
"writeable": false
} }
], ],
"enable_nvidia_gpu": false, "secrets": [
"LOCALAI_API_KEY"
],
"ui_secret": "LOCALAI_API_KEY",
"devices": [
"/dev/dri"
],
"nextcloud_exec_commands": [ "nextcloud_exec_commands": [
"mkdir '/mnt/ncdata/admin/files/nextcloud-aio-local-ai'",
"touch '/mnt/ncdata/admin/files/nextcloud-aio-local-ai/models.yaml'",
"echo 'Scanning nextcloud-aio-local-ai folder for admin user...'",
"php /var/www/html/occ files:scan --path='/admin/files/nextcloud-aio-local-ai'",
"php /var/www/html/occ app:install integration_openai", "php /var/www/html/occ app:install integration_openai",
"php /var/www/html/occ app:enable integration_openai", "php /var/www/html/occ app:enable integration_openai",
"php /var/www/html/occ config:app:set integration_openai url --value http://nextcloud-aio-local-ai:8080", "php /var/www/html/occ config:app:set integration_openai url --value http://nextcloud-aio-local-ai:10078",
"php /var/www/html/occ config:app:set integration_openai api_key --value %LOCALAI_API_KEY%",
"php /var/www/html/occ app:install assistant", "php /var/www/html/occ app:install assistant",
"php /var/www/html/occ app:enable assistant" "php /var/www/html/occ app:enable assistant"
],
"backup_volumes": [
"nextcloud_aio_localai_configuration"
] ]
} }
] ]

View file

@ -1,21 +1,16 @@
## Local AI ## Local AI
This container bundles Local AI and auto-configures it for you. This container bundles Local AI and auto-configures it for you. It support hardware acceleration with Vulkan.
### Notes ### Notes
- Make sure to have enough storage space available. This container alone needs ~7GB storage. Every model that you add to `models.yaml` will of course use additional space which adds up quite fast. Documentation is available on the container repository. This documentation is regularly updated and is intended to be as simple and detailed as possible. Thanks for all your feedback!
- After the container was started the first time, you should see a new `nextcloud-aio-local-ai` folder when you open the files app with the default `admin` user. In there you should see a `models.yaml` config file. You can now add models in there. Please refer [here](https://github.com/mudler/LocalAI/blob/master/gallery/index.yaml) where you can get further urls that you can put in there. Afterwards restart all containers from the AIO interface and the models should automatically get downloaded by the local-ai container and activated.
- Example for content of `models.yaml` (if you add all of them, it takes around 10GB additional space): - See https://github.com/docjyJ/aio-local-ai-vulkan#getting-started for getting start with this container.
```yaml
# Stable Diffusion in NCNN with c++, supported txt2img and img2img
- url: github:mudler/LocalAI/blob/master/gallery/stablediffusion.yaml
name: Stable_diffusion
```
- To make it work, you first need to browse `https://your-nc-domain.com/settings/admin/ai` and enable or disable specific features for your models in the openAI settings. Afterwards using the Nextcloud Assistant should work.
- See [this guide](https://github.com/nextcloud/all-in-one/discussions/5430) for how to improve AI task pickup speed - See [this guide](https://github.com/nextcloud/all-in-one/discussions/5430) for how to improve AI task pickup speed
- Note that Nextcloud supports only one server for AI queries, so this container cannot be used at the same time as other AI containers.
- See https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers how to add it to the AIO stack - See https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers how to add it to the AIO stack
### Repository ### Repository
https://github.com/szaimen/aio-local-ai https://github.com/docjyJ/aio-local-ai-vulkan
### Maintainer ### Maintainer
https://github.com/szaimen https://github.com/docjyJ

View file

@ -2,7 +2,7 @@
"aio_services_v1": [ "aio_services_v1": [
{ {
"container_name": "nextcloud-aio-nocodb", "container_name": "nextcloud-aio-nocodb",
"display_name": "NocoDB", "display_name": "NocoDB (deprecated)",
"documentation": "https://github.com/nextcloud/all-in-one/tree/main/community-containers/nocodb", "documentation": "https://github.com/nextcloud/all-in-one/tree/main/community-containers/nocodb",
"image": "nocodb/nocodb", "image": "nocodb/nocodb",
"image_tag": "latest", "image_tag": "latest",

View file

@ -1,3 +1,8 @@
> [!CAUTION]
> NocoDB is licensed under a non-free license.
>
> And is no longer maintained.
> [!NOTE] > [!NOTE]
> This container is there to compensate for the lack of functionality in Nextcloud Tables. > This container is there to compensate for the lack of functionality in Nextcloud Tables.
> >

View file

@ -22,10 +22,11 @@ The normal way is the following:
**Hint:** You may have a look at [this video](https://youtu.be/zk-y2wVkY4c) for a more complete but possibly outdated example. **Hint:** You may have a look at [this video](https://youtu.be/zk-y2wVkY4c) for a more complete but possibly outdated example.
## 3. Use the ACME DNS-challenge ## 3. Use the ACME DNS-challenge
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 You can alternatively use the ACME DNS-challenge to get a valid certificate for Nextcloud. Here is described how to set it up using an external caddy reverse proxy: https://github.com/nextcloud/all-in-one#how-to-get-nextcloud-running-using-the-acme-dns-challenge
## 4. Use Cloudflare ## 4. Use Cloudflare
If you do not have any control 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. If you do not have any control 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.
## 5. Buy a certificate and use that ## 5. 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. 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

@ -47,6 +47,7 @@ sed -i '/AIO_URL/d' containers.yml
sed -i '/DOCKER_SOCKET_PROXY_ENABLED/d' containers.yml sed -i '/DOCKER_SOCKET_PROXY_ENABLED/d' containers.yml
sed -i '/ADDITIONAL_TRUSTED_PROXY/d' containers.yml sed -i '/ADDITIONAL_TRUSTED_PROXY/d' containers.yml
sed -i '/TURN_DOMAIN/d' containers.yml sed -i '/TURN_DOMAIN/d' containers.yml
sed -i '/NC_AIO_VERSION/d' containers.yml
TCP="$(grep -oP '[%A-Z0-9_]+/tcp' containers.yml | sort -u)" TCP="$(grep -oP '[%A-Z0-9_]+/tcp' containers.yml | sort -u)"
mapfile -t TCP <<< "$TCP" mapfile -t TCP <<< "$TCP"

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: 12.4.0 version: 12.5.0
apiVersion: v2 apiVersion: v2
keywords: keywords:
- latest - latest

View file

@ -2,7 +2,7 @@ apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
annotations: annotations:
kompose.version: 1.37.0 (fb0539e64) kompose.version: 1.38.0 (a8f5d1cbd)
labels: labels:
io.kompose.service: nextcloud-aio-apache io.kompose.service: nextcloud-aio-apache
name: nextcloud-aio-apache name: nextcloud-aio-apache
@ -17,7 +17,7 @@ spec:
template: template:
metadata: metadata:
annotations: annotations:
kompose.version: 1.37.0 (fb0539e64) kompose.version: 1.38.0 (a8f5d1cbd)
labels: labels:
io.kompose.service: nextcloud-aio-apache io.kompose.service: nextcloud-aio-apache
spec: spec:
@ -61,7 +61,7 @@ spec:
value: "{{ .Values.TIMEZONE }}" value: "{{ .Values.TIMEZONE }}"
- name: WHITEBOARD_HOST - name: WHITEBOARD_HOST
value: nextcloud-aio-whiteboard value: nextcloud-aio-whiteboard
image: ghcr.io/nextcloud-releases/aio-apache:20260114_114729 image: ghcr.io/nextcloud-releases/aio-apache:20260122_105751
readinessProbe: readinessProbe:
exec: exec:
command: command:

View file

@ -2,7 +2,7 @@ apiVersion: v1
kind: Service kind: Service
metadata: metadata:
annotations: annotations:
kompose.version: 1.37.0 (fb0539e64) kompose.version: 1.38.0 (a8f5d1cbd)
labels: labels:
io.kompose.service: nextcloud-aio-apache io.kompose.service: nextcloud-aio-apache
name: nextcloud-aio-apache name: nextcloud-aio-apache

View file

@ -3,7 +3,7 @@ apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
annotations: annotations:
kompose.version: 1.37.0 (fb0539e64) kompose.version: 1.38.0 (a8f5d1cbd)
labels: labels:
io.kompose.service: nextcloud-aio-clamav io.kompose.service: nextcloud-aio-clamav
name: nextcloud-aio-clamav name: nextcloud-aio-clamav
@ -18,7 +18,7 @@ spec:
template: template:
metadata: metadata:
annotations: annotations:
kompose.version: 1.37.0 (fb0539e64) kompose.version: 1.38.0 (a8f5d1cbd)
labels: labels:
io.kompose.service: nextcloud-aio-clamav io.kompose.service: nextcloud-aio-clamav
spec: spec:
@ -36,7 +36,7 @@ spec:
{{- end }} {{- end }}
initContainers: initContainers:
- name: init-subpath - name: init-subpath
image: ghcr.io/nextcloud-releases/aio-alpine:20260114_114729 image: ghcr.io/nextcloud-releases/aio-alpine:20260122_105751
command: command:
- mkdir - mkdir
- "-p" - "-p"
@ -59,7 +59,7 @@ spec:
value: "{{ .Values.NEXTCLOUD_UPLOAD_LIMIT }}" value: "{{ .Values.NEXTCLOUD_UPLOAD_LIMIT }}"
- name: TZ - name: TZ
value: "{{ .Values.TIMEZONE }}" value: "{{ .Values.TIMEZONE }}"
image: ghcr.io/nextcloud-releases/aio-clamav:20260114_114729 image: ghcr.io/nextcloud-releases/aio-clamav:20260122_105751
readinessProbe: readinessProbe:
exec: exec:
command: command:

View file

@ -3,7 +3,7 @@ apiVersion: v1
kind: Service kind: Service
metadata: metadata:
annotations: annotations:
kompose.version: 1.37.0 (fb0539e64) kompose.version: 1.38.0 (a8f5d1cbd)
labels: labels:
io.kompose.service: nextcloud-aio-clamav io.kompose.service: nextcloud-aio-clamav
name: nextcloud-aio-clamav name: nextcloud-aio-clamav

View file

@ -3,7 +3,7 @@ apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
annotations: annotations:
kompose.version: 1.37.0 (fb0539e64) kompose.version: 1.38.0 (a8f5d1cbd)
labels: labels:
io.kompose.service: nextcloud-aio-collabora io.kompose.service: nextcloud-aio-collabora
name: nextcloud-aio-collabora name: nextcloud-aio-collabora
@ -16,7 +16,7 @@ spec:
template: template:
metadata: metadata:
annotations: annotations:
kompose.version: 1.37.0 (fb0539e64) kompose.version: 1.38.0 (a8f5d1cbd)
labels: labels:
io.kompose.service: nextcloud-aio-collabora io.kompose.service: nextcloud-aio-collabora
spec: spec:
@ -36,9 +36,9 @@ spec:
- name: server_name - name: server_name
value: "{{ .Values.NC_DOMAIN }}" value: "{{ .Values.NC_DOMAIN }}"
{{- if contains "--o:support_key=" (join " " (.Values.ADDITIONAL_COLLABORA_OPTIONS | default list)) }} {{- if contains "--o:support_key=" (join " " (.Values.ADDITIONAL_COLLABORA_OPTIONS | default list)) }}
image: ghcr.io/nextcloud-releases/aio-collabora-online:20260114_114729 image: ghcr.io/nextcloud-releases/aio-collabora-online:20260122_105751
{{- else }} {{- else }}
image: ghcr.io/nextcloud-releases/aio-collabora:20260114_114729 image: ghcr.io/nextcloud-releases/aio-collabora:20260122_105751
{{- end }} {{- end }}
readinessProbe: readinessProbe:
exec: exec:

View file

@ -3,7 +3,7 @@ apiVersion: v1
kind: Service kind: Service
metadata: metadata:
annotations: annotations:
kompose.version: 1.37.0 (fb0539e64) kompose.version: 1.38.0 (a8f5d1cbd)
labels: labels:
io.kompose.service: nextcloud-aio-collabora io.kompose.service: nextcloud-aio-collabora
name: nextcloud-aio-collabora name: nextcloud-aio-collabora

View file

@ -2,7 +2,7 @@ apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
annotations: annotations:
kompose.version: 1.37.0 (fb0539e64) kompose.version: 1.38.0 (a8f5d1cbd)
labels: labels:
io.kompose.service: nextcloud-aio-database io.kompose.service: nextcloud-aio-database
name: nextcloud-aio-database name: nextcloud-aio-database
@ -17,7 +17,7 @@ spec:
template: template:
metadata: metadata:
annotations: annotations:
kompose.version: 1.37.0 (fb0539e64) kompose.version: 1.38.0 (a8f5d1cbd)
labels: labels:
io.kompose.service: nextcloud-aio-database io.kompose.service: nextcloud-aio-database
spec: spec:
@ -35,7 +35,7 @@ spec:
{{- end }} {{- end }}
initContainers: initContainers:
- name: init-subpath - name: init-subpath
image: ghcr.io/nextcloud-releases/aio-alpine:20260114_114729 image: ghcr.io/nextcloud-releases/aio-alpine:20260122_105751
command: command:
- mkdir - mkdir
- "-p" - "-p"
@ -64,7 +64,7 @@ spec:
value: nextcloud value: nextcloud
- name: TZ - name: TZ
value: "{{ .Values.TIMEZONE }}" value: "{{ .Values.TIMEZONE }}"
image: ghcr.io/nextcloud-releases/aio-postgresql:20260114_114729 image: ghcr.io/nextcloud-releases/aio-postgresql:20260122_105751
readinessProbe: readinessProbe:
exec: exec:
command: command:

View file

@ -2,7 +2,7 @@ apiVersion: v1
kind: Service kind: Service
metadata: metadata:
annotations: annotations:
kompose.version: 1.37.0 (fb0539e64) kompose.version: 1.38.0 (a8f5d1cbd)
labels: labels:
io.kompose.service: nextcloud-aio-database io.kompose.service: nextcloud-aio-database
name: nextcloud-aio-database name: nextcloud-aio-database

View file

@ -3,7 +3,7 @@ apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
annotations: annotations:
kompose.version: 1.37.0 (fb0539e64) kompose.version: 1.38.0 (a8f5d1cbd)
labels: labels:
io.kompose.service: nextcloud-aio-fulltextsearch io.kompose.service: nextcloud-aio-fulltextsearch
name: nextcloud-aio-fulltextsearch name: nextcloud-aio-fulltextsearch
@ -18,13 +18,13 @@ spec:
template: template:
metadata: metadata:
annotations: annotations:
kompose.version: 1.37.0 (fb0539e64) kompose.version: 1.38.0 (a8f5d1cbd)
labels: labels:
io.kompose.service: nextcloud-aio-fulltextsearch io.kompose.service: nextcloud-aio-fulltextsearch
spec: spec:
initContainers: initContainers:
- name: init-volumes - name: init-volumes
image: ghcr.io/nextcloud-releases/aio-alpine:20260114_114729 image: ghcr.io/nextcloud-releases/aio-alpine:20260122_105751
command: command:
- chmod - chmod
- "777" - "777"
@ -54,7 +54,7 @@ spec:
value: basic value: basic
- name: xpack.security.enabled - name: xpack.security.enabled
value: "false" value: "false"
image: ghcr.io/nextcloud-releases/aio-fulltextsearch:20260114_114729 image: ghcr.io/nextcloud-releases/aio-fulltextsearch:20260122_105751
readinessProbe: readinessProbe:
exec: exec:
command: command:

View file

@ -3,7 +3,7 @@ apiVersion: v1
kind: Service kind: Service
metadata: metadata:
annotations: annotations:
kompose.version: 1.37.0 (fb0539e64) kompose.version: 1.38.0 (a8f5d1cbd)
labels: labels:
io.kompose.service: nextcloud-aio-fulltextsearch io.kompose.service: nextcloud-aio-fulltextsearch
name: nextcloud-aio-fulltextsearch name: nextcloud-aio-fulltextsearch

View file

@ -3,7 +3,7 @@ apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
annotations: annotations:
kompose.version: 1.37.0 (fb0539e64) kompose.version: 1.38.0 (a8f5d1cbd)
labels: labels:
io.kompose.service: nextcloud-aio-imaginary io.kompose.service: nextcloud-aio-imaginary
name: nextcloud-aio-imaginary name: nextcloud-aio-imaginary
@ -16,7 +16,7 @@ spec:
template: template:
metadata: metadata:
annotations: annotations:
kompose.version: 1.37.0 (fb0539e64) kompose.version: 1.38.0 (a8f5d1cbd)
labels: labels:
io.kompose.service: nextcloud-aio-imaginary io.kompose.service: nextcloud-aio-imaginary
spec: spec:
@ -38,7 +38,7 @@ spec:
value: "{{ .Values.IMAGINARY_SECRET }}" value: "{{ .Values.IMAGINARY_SECRET }}"
- name: TZ - name: TZ
value: "{{ .Values.TIMEZONE }}" value: "{{ .Values.TIMEZONE }}"
image: ghcr.io/nextcloud-releases/aio-imaginary:20260114_114729 image: ghcr.io/nextcloud-releases/aio-imaginary:20260122_105751
readinessProbe: readinessProbe:
exec: exec:
command: command:

View file

@ -3,7 +3,7 @@ apiVersion: v1
kind: Service kind: Service
metadata: metadata:
annotations: annotations:
kompose.version: 1.37.0 (fb0539e64) kompose.version: 1.38.0 (a8f5d1cbd)
labels: labels:
io.kompose.service: nextcloud-aio-imaginary io.kompose.service: nextcloud-aio-imaginary
name: nextcloud-aio-imaginary name: nextcloud-aio-imaginary

View file

@ -2,7 +2,7 @@ apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
annotations: annotations:
kompose.version: 1.37.0 (fb0539e64) kompose.version: 1.38.0 (a8f5d1cbd)
labels: labels:
io.kompose.service: nextcloud-aio-nextcloud io.kompose.service: nextcloud-aio-nextcloud
name: nextcloud-aio-nextcloud name: nextcloud-aio-nextcloud
@ -17,7 +17,7 @@ spec:
template: template:
metadata: metadata:
annotations: annotations:
kompose.version: 1.37.0 (fb0539e64) kompose.version: 1.38.0 (a8f5d1cbd)
labels: labels:
io.kompose.service: nextcloud-aio-nextcloud io.kompose.service: nextcloud-aio-nextcloud
spec: spec:
@ -38,7 +38,7 @@ spec:
# AIO settings start # Do not remove or change this line! # AIO settings start # Do not remove or change this line!
initContainers: initContainers:
- name: init-volumes - name: init-volumes
image: ghcr.io/nextcloud-releases/aio-alpine:20260114_114729 image: ghcr.io/nextcloud-releases/aio-alpine:20260122_105751
command: command:
- chmod - chmod
- "777" - "777"
@ -190,7 +190,7 @@ spec:
value: "{{ .Values.WHITEBOARD_ENABLED }}" value: "{{ .Values.WHITEBOARD_ENABLED }}"
- name: WHITEBOARD_SECRET - name: WHITEBOARD_SECRET
value: "{{ .Values.WHITEBOARD_SECRET }}" value: "{{ .Values.WHITEBOARD_SECRET }}"
image: ghcr.io/nextcloud-releases/aio-nextcloud:20260114_114729 image: ghcr.io/nextcloud-releases/aio-nextcloud:20260122_105751
{{- if eq (.Values.RPSS_ENABLED | default "no") "yes" }} # AIO-config - do not change this comment! {{- if eq (.Values.RPSS_ENABLED | default "no") "yes" }} # AIO-config - do not change this comment!
securityContext: securityContext:
# The items below only work in container context # The items below only work in container context

View file

@ -2,7 +2,7 @@ apiVersion: v1
kind: Service kind: Service
metadata: metadata:
annotations: annotations:
kompose.version: 1.37.0 (fb0539e64) kompose.version: 1.38.0 (a8f5d1cbd)
labels: labels:
io.kompose.service: nextcloud-aio-nextcloud io.kompose.service: nextcloud-aio-nextcloud
name: nextcloud-aio-nextcloud name: nextcloud-aio-nextcloud

View file

@ -2,7 +2,7 @@ apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
annotations: annotations:
kompose.version: 1.37.0 (fb0539e64) kompose.version: 1.38.0 (a8f5d1cbd)
labels: labels:
io.kompose.service: nextcloud-aio-notify-push io.kompose.service: nextcloud-aio-notify-push
name: nextcloud-aio-notify-push name: nextcloud-aio-notify-push
@ -17,7 +17,7 @@ spec:
template: template:
metadata: metadata:
annotations: annotations:
kompose.version: 1.37.0 (fb0539e64) kompose.version: 1.38.0 (a8f5d1cbd)
labels: labels:
io.kompose.service: nextcloud-aio-notify-push io.kompose.service: nextcloud-aio-notify-push
spec: spec:
@ -57,7 +57,7 @@ spec:
value: "6379" value: "6379"
- name: TZ - name: TZ
value: "{{ .Values.TIMEZONE }}" value: "{{ .Values.TIMEZONE }}"
image: ghcr.io/nextcloud-releases/aio-notify-push:20260114_114729 image: ghcr.io/nextcloud-releases/aio-notify-push:20260122_105751
readinessProbe: readinessProbe:
exec: exec:
command: command:

View file

@ -2,7 +2,7 @@ apiVersion: v1
kind: Service kind: Service
metadata: metadata:
annotations: annotations:
kompose.version: 1.37.0 (fb0539e64) kompose.version: 1.38.0 (a8f5d1cbd)
labels: labels:
io.kompose.service: nextcloud-aio-notify-push io.kompose.service: nextcloud-aio-notify-push
name: nextcloud-aio-notify-push name: nextcloud-aio-notify-push

View file

@ -3,7 +3,7 @@ apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
annotations: annotations:
kompose.version: 1.37.0 (fb0539e64) kompose.version: 1.38.0 (a8f5d1cbd)
labels: labels:
io.kompose.service: nextcloud-aio-onlyoffice io.kompose.service: nextcloud-aio-onlyoffice
name: nextcloud-aio-onlyoffice name: nextcloud-aio-onlyoffice
@ -18,13 +18,13 @@ spec:
template: template:
metadata: metadata:
annotations: annotations:
kompose.version: 1.37.0 (fb0539e64) kompose.version: 1.38.0 (a8f5d1cbd)
labels: labels:
io.kompose.service: nextcloud-aio-onlyoffice io.kompose.service: nextcloud-aio-onlyoffice
spec: spec:
initContainers: initContainers:
- name: init-volumes - name: init-volumes
image: ghcr.io/nextcloud-releases/aio-alpine:20260114_114729 image: ghcr.io/nextcloud-releases/aio-alpine:20260122_105751
command: command:
- chmod - chmod
- "777" - "777"
@ -42,7 +42,7 @@ spec:
value: "{{ .Values.ONLYOFFICE_SECRET }}" value: "{{ .Values.ONLYOFFICE_SECRET }}"
- name: TZ - name: TZ
value: "{{ .Values.TIMEZONE }}" value: "{{ .Values.TIMEZONE }}"
image: ghcr.io/nextcloud-releases/aio-onlyoffice:20260114_114729 image: ghcr.io/nextcloud-releases/aio-onlyoffice:20260122_105751
readinessProbe: readinessProbe:
exec: exec:
command: command:

View file

@ -3,7 +3,7 @@ apiVersion: v1
kind: Service kind: Service
metadata: metadata:
annotations: annotations:
kompose.version: 1.37.0 (fb0539e64) kompose.version: 1.38.0 (a8f5d1cbd)
labels: labels:
io.kompose.service: nextcloud-aio-onlyoffice io.kompose.service: nextcloud-aio-onlyoffice
name: nextcloud-aio-onlyoffice name: nextcloud-aio-onlyoffice

View file

@ -2,7 +2,7 @@ apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
annotations: annotations:
kompose.version: 1.37.0 (fb0539e64) kompose.version: 1.38.0 (a8f5d1cbd)
labels: labels:
io.kompose.service: nextcloud-aio-redis io.kompose.service: nextcloud-aio-redis
name: nextcloud-aio-redis name: nextcloud-aio-redis
@ -17,7 +17,7 @@ spec:
template: template:
metadata: metadata:
annotations: annotations:
kompose.version: 1.37.0 (fb0539e64) kompose.version: 1.38.0 (a8f5d1cbd)
labels: labels:
io.kompose.service: nextcloud-aio-redis io.kompose.service: nextcloud-aio-redis
spec: spec:
@ -39,7 +39,7 @@ spec:
value: "{{ .Values.REDIS_PASSWORD }}" value: "{{ .Values.REDIS_PASSWORD }}"
- name: TZ - name: TZ
value: "{{ .Values.TIMEZONE }}" value: "{{ .Values.TIMEZONE }}"
image: ghcr.io/nextcloud-releases/aio-redis:20260114_114729 image: ghcr.io/nextcloud-releases/aio-redis:20260122_105751
readinessProbe: readinessProbe:
exec: exec:
command: command:

View file

@ -2,7 +2,7 @@ apiVersion: v1
kind: Service kind: Service
metadata: metadata:
annotations: annotations:
kompose.version: 1.37.0 (fb0539e64) kompose.version: 1.38.0 (a8f5d1cbd)
labels: labels:
io.kompose.service: nextcloud-aio-redis io.kompose.service: nextcloud-aio-redis
name: nextcloud-aio-redis name: nextcloud-aio-redis

View file

@ -3,7 +3,7 @@ apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
annotations: annotations:
kompose.version: 1.37.0 (fb0539e64) kompose.version: 1.38.0 (a8f5d1cbd)
labels: labels:
io.kompose.service: nextcloud-aio-talk io.kompose.service: nextcloud-aio-talk
name: nextcloud-aio-talk name: nextcloud-aio-talk
@ -16,7 +16,7 @@ spec:
template: template:
metadata: metadata:
annotations: annotations:
kompose.version: 1.37.0 (fb0539e64) kompose.version: 1.38.0 (a8f5d1cbd)
labels: labels:
io.kompose.service: nextcloud-aio-talk io.kompose.service: nextcloud-aio-talk
spec: spec:
@ -52,7 +52,7 @@ spec:
value: "{{ .Values.TURN_SECRET }}" value: "{{ .Values.TURN_SECRET }}"
- name: TZ - name: TZ
value: "{{ .Values.TIMEZONE }}" value: "{{ .Values.TIMEZONE }}"
image: ghcr.io/nextcloud-releases/aio-talk:20260114_114729 image: ghcr.io/nextcloud-releases/aio-talk:20260122_105751
readinessProbe: readinessProbe:
exec: exec:
command: command:

View file

@ -3,7 +3,7 @@ apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
annotations: annotations:
kompose.version: 1.37.0 (fb0539e64) kompose.version: 1.38.0 (a8f5d1cbd)
labels: labels:
io.kompose.service: nextcloud-aio-talk-recording io.kompose.service: nextcloud-aio-talk-recording
name: nextcloud-aio-talk-recording name: nextcloud-aio-talk-recording
@ -18,7 +18,7 @@ spec:
template: template:
metadata: metadata:
annotations: annotations:
kompose.version: 1.37.0 (fb0539e64) kompose.version: 1.38.0 (a8f5d1cbd)
labels: labels:
io.kompose.service: nextcloud-aio-talk-recording io.kompose.service: nextcloud-aio-talk-recording
spec: spec:
@ -44,7 +44,7 @@ spec:
value: "{{ .Values.RECORDING_SECRET }}" value: "{{ .Values.RECORDING_SECRET }}"
- name: TZ - name: TZ
value: "{{ .Values.TIMEZONE }}" value: "{{ .Values.TIMEZONE }}"
image: ghcr.io/nextcloud-releases/aio-talk-recording:20260114_114729 image: ghcr.io/nextcloud-releases/aio-talk-recording:20260122_105751
readinessProbe: readinessProbe:
exec: exec:
command: command:

View file

@ -3,7 +3,7 @@ apiVersion: v1
kind: Service kind: Service
metadata: metadata:
annotations: annotations:
kompose.version: 1.37.0 (fb0539e64) kompose.version: 1.38.0 (a8f5d1cbd)
labels: labels:
io.kompose.service: nextcloud-aio-talk-recording io.kompose.service: nextcloud-aio-talk-recording
name: nextcloud-aio-talk-recording name: nextcloud-aio-talk-recording

View file

@ -4,7 +4,7 @@ apiVersion: v1
kind: Service kind: Service
metadata: metadata:
annotations: annotations:
kompose.version: 1.37.0 (fb0539e64) kompose.version: 1.38.0 (a8f5d1cbd)
labels: labels:
io.kompose.service: nextcloud-aio-talk io.kompose.service: nextcloud-aio-talk
name: nextcloud-aio-talk-public name: nextcloud-aio-talk-public
@ -27,7 +27,7 @@ apiVersion: v1
kind: Service kind: Service
metadata: metadata:
annotations: annotations:
kompose.version: 1.37.0 (fb0539e64) kompose.version: 1.38.0 (a8f5d1cbd)
labels: labels:
io.kompose.service: nextcloud-aio-talk io.kompose.service: nextcloud-aio-talk
name: nextcloud-aio-talk name: nextcloud-aio-talk

View file

@ -3,7 +3,7 @@ apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
annotations: annotations:
kompose.version: 1.37.0 (fb0539e64) kompose.version: 1.38.0 (a8f5d1cbd)
labels: labels:
io.kompose.service: nextcloud-aio-whiteboard io.kompose.service: nextcloud-aio-whiteboard
name: nextcloud-aio-whiteboard name: nextcloud-aio-whiteboard
@ -16,7 +16,7 @@ spec:
template: template:
metadata: metadata:
annotations: annotations:
kompose.version: 1.37.0 (fb0539e64) kompose.version: 1.38.0 (a8f5d1cbd)
labels: labels:
io.kompose.service: nextcloud-aio-whiteboard io.kompose.service: nextcloud-aio-whiteboard
spec: spec:
@ -50,7 +50,7 @@ spec:
value: redis value: redis
- name: TZ - name: TZ
value: "{{ .Values.TIMEZONE }}" value: "{{ .Values.TIMEZONE }}"
image: ghcr.io/nextcloud-releases/aio-whiteboard:20260114_114729 image: ghcr.io/nextcloud-releases/aio-whiteboard:20260122_105751
readinessProbe: readinessProbe:
exec: exec:
command: command:

View file

@ -3,7 +3,7 @@ apiVersion: v1
kind: Service kind: Service
metadata: metadata:
annotations: annotations:
kompose.version: 1.37.0 (fb0539e64) kompose.version: 1.38.0 (a8f5d1cbd)
labels: labels:
io.kompose.service: nextcloud-aio-whiteboard io.kompose.service: nextcloud-aio-whiteboard
name: nextcloud-aio-whiteboard name: nextcloud-aio-whiteboard

View file

@ -407,7 +407,7 @@ rm latest.yml
mv latest.yml.backup latest.yml mv latest.yml.backup latest.yml
# Get version of AIO # Get version of AIO
AIO_VERSION="$(grep 'Nextcloud AIO ' ../php/templates/containers.twig | grep -oP '[0-9]+.[0-9]+.[0-9]+')" AIO_VERSION="$(grep 'Nextcloud AIO ' ../php/templates/includes/aio-version.twig | grep -oP '[0-9]+.[0-9]+.[0-9]+')"
sed -i "s|^version:.*|version: $AIO_VERSION|" ../helm-chart/Chart.yaml sed -i "s|^version:.*|version: $AIO_VERSION|" ../helm-chart/Chart.yaml
# Conversion of sample.conf # Conversion of sample.conf

179
php/composer.lock generated
View file

@ -391,16 +391,16 @@
}, },
{ {
"name": "laravel/serializable-closure", "name": "laravel/serializable-closure",
"version": "v2.0.7", "version": "v2.0.8",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/laravel/serializable-closure.git", "url": "https://github.com/laravel/serializable-closure.git",
"reference": "cb291e4c998ac50637c7eeb58189c14f5de5b9dd" "reference": "7581a4407012f5f53365e11bafc520fd7f36bc9b"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/laravel/serializable-closure/zipball/cb291e4c998ac50637c7eeb58189c14f5de5b9dd", "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/7581a4407012f5f53365e11bafc520fd7f36bc9b",
"reference": "cb291e4c998ac50637c7eeb58189c14f5de5b9dd", "reference": "7581a4407012f5f53365e11bafc520fd7f36bc9b",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -448,7 +448,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": "2025-11-21T20:52:36+00:00" "time": "2026-01-08T16:22:46+00:00"
}, },
{ {
"name": "nikic/fast-route", "name": "nikic/fast-route",
@ -1644,16 +1644,16 @@
}, },
{ {
"name": "twig/twig", "name": "twig/twig",
"version": "v3.22.2", "version": "v3.23.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/twigphp/Twig.git", "url": "https://github.com/twigphp/Twig.git",
"reference": "946ddeafa3c9f4ce279d1f34051af041db0e16f2" "reference": "a64dc5d2cc7d6cafb9347f6cd802d0d06d0351c9"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/twigphp/Twig/zipball/946ddeafa3c9f4ce279d1f34051af041db0e16f2", "url": "https://api.github.com/repos/twigphp/Twig/zipball/a64dc5d2cc7d6cafb9347f6cd802d0d06d0351c9",
"reference": "946ddeafa3c9f4ce279d1f34051af041db0e16f2", "reference": "a64dc5d2cc7d6cafb9347f6cd802d0d06d0351c9",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -1707,7 +1707,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.22.2" "source": "https://github.com/twigphp/Twig/tree/v3.23.0"
}, },
"funding": [ "funding": [
{ {
@ -1719,7 +1719,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-12-14T11:28:47+00:00" "time": "2026-01-23T21:00:41+00:00"
} }
], ],
"packages-dev": [ "packages-dev": [
@ -2755,22 +2755,22 @@
}, },
{ {
"name": "danog/advanced-json-rpc", "name": "danog/advanced-json-rpc",
"version": "v3.2.2", "version": "v3.2.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/danog/php-advanced-json-rpc.git", "url": "https://github.com/danog/php-advanced-json-rpc.git",
"reference": "aadb1c4068a88c3d0530cfe324b067920661efcb" "reference": "ae703ea7b4811797a10590b6078de05b3b33dd91"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/danog/php-advanced-json-rpc/zipball/aadb1c4068a88c3d0530cfe324b067920661efcb", "url": "https://api.github.com/repos/danog/php-advanced-json-rpc/zipball/ae703ea7b4811797a10590b6078de05b3b33dd91",
"reference": "aadb1c4068a88c3d0530cfe324b067920661efcb", "reference": "ae703ea7b4811797a10590b6078de05b3b33dd91",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"netresearch/jsonmapper": "^5", "netresearch/jsonmapper": "^5",
"php": ">=8.1", "php": ">=8.1",
"phpdocumentor/reflection-docblock": "^4.3.4 || ^5.0.0" "phpdocumentor/reflection-docblock": "^4.3.4 || ^5.0.0 || ^6"
}, },
"replace": { "replace": {
"felixfbecker/php-advanced-json-rpc": "^3" "felixfbecker/php-advanced-json-rpc": "^3"
@ -2801,9 +2801,9 @@
"description": "A more advanced JSONRPC implementation", "description": "A more advanced JSONRPC implementation",
"support": { "support": {
"issues": "https://github.com/danog/php-advanced-json-rpc/issues", "issues": "https://github.com/danog/php-advanced-json-rpc/issues",
"source": "https://github.com/danog/php-advanced-json-rpc/tree/v3.2.2" "source": "https://github.com/danog/php-advanced-json-rpc/tree/v3.2.3"
}, },
"time": "2025-02-14T10:55:15+00:00" "time": "2026-01-12T21:07:10+00:00"
}, },
{ {
"name": "daverandom/libdns", "name": "daverandom/libdns",
@ -3111,20 +3111,20 @@
}, },
{ {
"name": "league/uri", "name": "league/uri",
"version": "7.7.0", "version": "7.8.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/thephpleague/uri.git", "url": "https://github.com/thephpleague/uri.git",
"reference": "8d587cddee53490f9b82bf203d3a9aa7ea4f9807" "reference": "4436c6ec8d458e4244448b069cc572d088230b76"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/thephpleague/uri/zipball/8d587cddee53490f9b82bf203d3a9aa7ea4f9807", "url": "https://api.github.com/repos/thephpleague/uri/zipball/4436c6ec8d458e4244448b069cc572d088230b76",
"reference": "8d587cddee53490f9b82bf203d3a9aa7ea4f9807", "reference": "4436c6ec8d458e4244448b069cc572d088230b76",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"league/uri-interfaces": "^7.7", "league/uri-interfaces": "^7.8",
"php": "^8.1", "php": "^8.1",
"psr/http-factory": "^1" "psr/http-factory": "^1"
}, },
@ -3138,11 +3138,11 @@
"ext-gmp": "to improve IPV4 host parsing", "ext-gmp": "to improve IPV4 host parsing",
"ext-intl": "to handle IDN host with the best performance", "ext-intl": "to handle IDN host with the best performance",
"ext-uri": "to use the PHP native URI class", "ext-uri": "to use the PHP native URI class",
"jeremykendall/php-domain-parser": "to resolve Public Suffix and Top Level Domain", "jeremykendall/php-domain-parser": "to further parse the URI host and resolve its Public Suffix and Top Level Domain",
"league/uri-components": "Needed to easily manipulate URI objects components", "league/uri-components": "to provide additional tools to manipulate URI objects components",
"league/uri-polyfill": "Needed to backport the PHP URI extension for older versions of PHP", "league/uri-polyfill": "to backport the PHP URI extension for older versions of PHP",
"php-64bit": "to improve IPV4 host parsing", "php-64bit": "to improve IPV4 host parsing",
"rowbot/url": "to handle WHATWG URL", "rowbot/url": "to handle URLs using the WHATWG URL Living Standard specification",
"symfony/polyfill-intl-idn": "to handle IDN host via the Symfony polyfill if ext-intl is not present" "symfony/polyfill-intl-idn": "to handle IDN host via the Symfony polyfill if ext-intl is not present"
}, },
"type": "library", "type": "library",
@ -3197,7 +3197,7 @@
"docs": "https://uri.thephpleague.com", "docs": "https://uri.thephpleague.com",
"forum": "https://thephpleague.slack.com", "forum": "https://thephpleague.slack.com",
"issues": "https://github.com/thephpleague/uri-src/issues", "issues": "https://github.com/thephpleague/uri-src/issues",
"source": "https://github.com/thephpleague/uri/tree/7.7.0" "source": "https://github.com/thephpleague/uri/tree/7.8.0"
}, },
"funding": [ "funding": [
{ {
@ -3205,20 +3205,20 @@
"type": "github" "type": "github"
} }
], ],
"time": "2025-12-07T16:02:06+00:00" "time": "2026-01-14T17:24:56+00:00"
}, },
{ {
"name": "league/uri-interfaces", "name": "league/uri-interfaces",
"version": "7.7.0", "version": "7.8.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/thephpleague/uri-interfaces.git", "url": "https://github.com/thephpleague/uri-interfaces.git",
"reference": "62ccc1a0435e1c54e10ee6022df28d6c04c2946c" "reference": "c5c5cd056110fc8afaba29fa6b72a43ced42acd4"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/62ccc1a0435e1c54e10ee6022df28d6c04c2946c", "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/c5c5cd056110fc8afaba29fa6b72a43ced42acd4",
"reference": "62ccc1a0435e1c54e10ee6022df28d6c04c2946c", "reference": "c5c5cd056110fc8afaba29fa6b72a43ced42acd4",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3231,7 +3231,7 @@
"ext-gmp": "to improve IPV4 host parsing", "ext-gmp": "to improve IPV4 host parsing",
"ext-intl": "to handle IDN host with the best performance", "ext-intl": "to handle IDN host with the best performance",
"php-64bit": "to improve IPV4 host parsing", "php-64bit": "to improve IPV4 host parsing",
"rowbot/url": "to handle WHATWG URL", "rowbot/url": "to handle URLs using the WHATWG URL Living Standard specification",
"symfony/polyfill-intl-idn": "to handle IDN host via the Symfony polyfill if ext-intl is not present" "symfony/polyfill-intl-idn": "to handle IDN host via the Symfony polyfill if ext-intl is not present"
}, },
"type": "library", "type": "library",
@ -3281,7 +3281,7 @@
"docs": "https://uri.thephpleague.com", "docs": "https://uri.thephpleague.com",
"forum": "https://thephpleague.slack.com", "forum": "https://thephpleague.slack.com",
"issues": "https://github.com/thephpleague/uri-src/issues", "issues": "https://github.com/thephpleague/uri-src/issues",
"source": "https://github.com/thephpleague/uri-interfaces/tree/7.7.0" "source": "https://github.com/thephpleague/uri-interfaces/tree/7.8.0"
}, },
"funding": [ "funding": [
{ {
@ -3289,7 +3289,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2025-12-07T16:03:21+00:00" "time": "2026-01-15T06:54:53+00:00"
}, },
{ {
"name": "netresearch/jsonmapper", "name": "netresearch/jsonmapper",
@ -3455,16 +3455,16 @@
}, },
{ {
"name": "phpdocumentor/reflection-docblock", "name": "phpdocumentor/reflection-docblock",
"version": "5.6.6", "version": "6.0.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
"reference": "5cee1d3dfc2d2aa6599834520911d246f656bcb8" "reference": "2f5cbed597cb261d1ea458f3da3a9ad32e670b1e"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/5cee1d3dfc2d2aa6599834520911d246f656bcb8", "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/2f5cbed597cb261d1ea458f3da3a9ad32e670b1e",
"reference": "5cee1d3dfc2d2aa6599834520911d246f656bcb8", "reference": "2f5cbed597cb261d1ea458f3da3a9ad32e670b1e",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3472,8 +3472,8 @@
"ext-filter": "*", "ext-filter": "*",
"php": "^7.4 || ^8.0", "php": "^7.4 || ^8.0",
"phpdocumentor/reflection-common": "^2.2", "phpdocumentor/reflection-common": "^2.2",
"phpdocumentor/type-resolver": "^1.7", "phpdocumentor/type-resolver": "^2.0",
"phpstan/phpdoc-parser": "^1.7|^2.0", "phpstan/phpdoc-parser": "^2.0",
"webmozart/assert": "^1.9.1 || ^2" "webmozart/assert": "^1.9.1 || ^2"
}, },
"require-dev": { "require-dev": {
@ -3483,7 +3483,8 @@
"phpstan/phpstan-mockery": "^1.1", "phpstan/phpstan-mockery": "^1.1",
"phpstan/phpstan-webmozart-assert": "^1.2", "phpstan/phpstan-webmozart-assert": "^1.2",
"phpunit/phpunit": "^9.5", "phpunit/phpunit": "^9.5",
"psalm/phar": "^5.26" "psalm/phar": "^5.26",
"shipmonk/dead-code-detector": "^0.5.1"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
@ -3513,44 +3514,44 @@
"description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
"support": { "support": {
"issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues",
"source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.6.6" "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/6.0.1"
}, },
"time": "2025-12-22T21:13:58+00:00" "time": "2026-01-20T15:30:42+00:00"
}, },
{ {
"name": "phpdocumentor/type-resolver", "name": "phpdocumentor/type-resolver",
"version": "1.12.0", "version": "2.0.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/phpDocumentor/TypeResolver.git", "url": "https://github.com/phpDocumentor/TypeResolver.git",
"reference": "92a98ada2b93d9b201a613cb5a33584dde25f195" "reference": "327a05bbee54120d4786a0dc67aad30226ad4cf9"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/92a98ada2b93d9b201a613cb5a33584dde25f195", "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/327a05bbee54120d4786a0dc67aad30226ad4cf9",
"reference": "92a98ada2b93d9b201a613cb5a33584dde25f195", "reference": "327a05bbee54120d4786a0dc67aad30226ad4cf9",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"doctrine/deprecations": "^1.0", "doctrine/deprecations": "^1.0",
"php": "^7.3 || ^8.0", "php": "^7.4 || ^8.0",
"phpdocumentor/reflection-common": "^2.0", "phpdocumentor/reflection-common": "^2.0",
"phpstan/phpdoc-parser": "^1.18|^2.0" "phpstan/phpdoc-parser": "^2.0"
}, },
"require-dev": { "require-dev": {
"ext-tokenizer": "*", "ext-tokenizer": "*",
"phpbench/phpbench": "^1.2", "phpbench/phpbench": "^1.2",
"phpstan/extension-installer": "^1.1", "phpstan/extension-installer": "^1.4",
"phpstan/phpstan": "^1.8", "phpstan/phpstan": "^2.1",
"phpstan/phpstan-phpunit": "^1.1", "phpstan/phpstan-phpunit": "^2.0",
"phpunit/phpunit": "^9.5", "phpunit/phpunit": "^9.5",
"rector/rector": "^0.13.9", "psalm/phar": "^4"
"vimeo/psalm": "^4.25"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-1.x": "1.x-dev" "dev-1.x": "1.x-dev",
"dev-2.x": "2.x-dev"
} }
}, },
"autoload": { "autoload": {
@ -3571,22 +3572,22 @@
"description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
"support": { "support": {
"issues": "https://github.com/phpDocumentor/TypeResolver/issues", "issues": "https://github.com/phpDocumentor/TypeResolver/issues",
"source": "https://github.com/phpDocumentor/TypeResolver/tree/1.12.0" "source": "https://github.com/phpDocumentor/TypeResolver/tree/2.0.0"
}, },
"time": "2025-11-21T15:09:14+00:00" "time": "2026-01-06T21:53:42+00:00"
}, },
{ {
"name": "phpstan/phpdoc-parser", "name": "phpstan/phpdoc-parser",
"version": "2.3.0", "version": "2.3.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/phpstan/phpdoc-parser.git", "url": "https://github.com/phpstan/phpdoc-parser.git",
"reference": "1e0cd5370df5dd2e556a36b9c62f62e555870495" "reference": "a004701b11273a26cd7955a61d67a7f1e525a45a"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/1e0cd5370df5dd2e556a36b9c62f62e555870495", "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/a004701b11273a26cd7955a61d67a7f1e525a45a",
"reference": "1e0cd5370df5dd2e556a36b9c62f62e555870495", "reference": "a004701b11273a26cd7955a61d67a7f1e525a45a",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3618,9 +3619,9 @@
"description": "PHPDoc parser with support for nullable, intersection and generic types", "description": "PHPDoc parser with support for nullable, intersection and generic types",
"support": { "support": {
"issues": "https://github.com/phpstan/phpdoc-parser/issues", "issues": "https://github.com/phpstan/phpdoc-parser/issues",
"source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.0" "source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.2"
}, },
"time": "2025-08-30T15:50:23+00:00" "time": "2026-01-25T14:56:51+00:00"
}, },
{ {
"name": "revolt/event-loop", "name": "revolt/event-loop",
@ -3889,16 +3890,16 @@
}, },
{ {
"name": "symfony/console", "name": "symfony/console",
"version": "v6.4.31", "version": "v6.4.32",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/console.git", "url": "https://github.com/symfony/console.git",
"reference": "f9f8a889f54c264f9abac3fc0f7a371ffca51997" "reference": "0bc2199c6c1f05276b05956f1ddc63f6d7eb5fc3"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/console/zipball/f9f8a889f54c264f9abac3fc0f7a371ffca51997", "url": "https://api.github.com/repos/symfony/console/zipball/0bc2199c6c1f05276b05956f1ddc63f6d7eb5fc3",
"reference": "f9f8a889f54c264f9abac3fc0f7a371ffca51997", "reference": "0bc2199c6c1f05276b05956f1ddc63f6d7eb5fc3",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3963,7 +3964,7 @@
"terminal" "terminal"
], ],
"support": { "support": {
"source": "https://github.com/symfony/console/tree/v6.4.31" "source": "https://github.com/symfony/console/tree/v6.4.32"
}, },
"funding": [ "funding": [
{ {
@ -3983,7 +3984,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-12-22T08:30:34+00:00" "time": "2026-01-13T08:45:59+00:00"
}, },
{ {
"name": "symfony/filesystem", "name": "symfony/filesystem",
@ -4057,16 +4058,16 @@
}, },
{ {
"name": "symfony/finder", "name": "symfony/finder",
"version": "v6.4.31", "version": "v6.4.33",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/finder.git", "url": "https://github.com/symfony/finder.git",
"reference": "5547f2e1f0ca8e2e7abe490156b62da778cfbe2b" "reference": "24965ca011dac87431729640feef8bcf7b5523e0"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/finder/zipball/5547f2e1f0ca8e2e7abe490156b62da778cfbe2b", "url": "https://api.github.com/repos/symfony/finder/zipball/24965ca011dac87431729640feef8bcf7b5523e0",
"reference": "5547f2e1f0ca8e2e7abe490156b62da778cfbe2b", "reference": "24965ca011dac87431729640feef8bcf7b5523e0",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -4101,7 +4102,7 @@
"description": "Finds files and directories via an intuitive fluent interface", "description": "Finds files and directories via an intuitive fluent interface",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/finder/tree/v6.4.31" "source": "https://github.com/symfony/finder/tree/v6.4.33"
}, },
"funding": [ "funding": [
{ {
@ -4121,7 +4122,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-12-11T14:52:17+00:00" "time": "2026-01-26T13:03:48+00:00"
}, },
{ {
"name": "symfony/polyfill-intl-grapheme", "name": "symfony/polyfill-intl-grapheme",
@ -4459,16 +4460,16 @@
}, },
{ {
"name": "symfony/string", "name": "symfony/string",
"version": "v7.4.0", "version": "v7.4.4",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/string.git", "url": "https://github.com/symfony/string.git",
"reference": "d50e862cb0a0e0886f73ca1f31b865efbb795003" "reference": "1c4b10461bf2ec27537b5f36105337262f5f5d6f"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/string/zipball/d50e862cb0a0e0886f73ca1f31b865efbb795003", "url": "https://api.github.com/repos/symfony/string/zipball/1c4b10461bf2ec27537b5f36105337262f5f5d6f",
"reference": "d50e862cb0a0e0886f73ca1f31b865efbb795003", "reference": "1c4b10461bf2ec27537b5f36105337262f5f5d6f",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -4526,7 +4527,7 @@
"utf8" "utf8"
], ],
"support": { "support": {
"source": "https://github.com/symfony/string/tree/v7.4.0" "source": "https://github.com/symfony/string/tree/v7.4.4"
}, },
"funding": [ "funding": [
{ {
@ -4546,7 +4547,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-11-27T13:27:24+00:00" "time": "2026-01-12T10:54:30+00:00"
}, },
{ {
"name": "vimeo/psalm", "name": "vimeo/psalm",
@ -4735,16 +4736,16 @@
}, },
{ {
"name": "webmozart/assert", "name": "webmozart/assert",
"version": "2.0.0", "version": "2.1.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/webmozarts/assert.git", "url": "https://github.com/webmozarts/assert.git",
"reference": "1b34b004e35a164bc5bb6ebd33c844b2d8069a54" "reference": "ce6a2f100c404b2d32a1dd1270f9b59ad4f57649"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/webmozarts/assert/zipball/1b34b004e35a164bc5bb6ebd33c844b2d8069a54", "url": "https://api.github.com/repos/webmozarts/assert/zipball/ce6a2f100c404b2d32a1dd1270f9b59ad4f57649",
"reference": "1b34b004e35a164bc5bb6ebd33c844b2d8069a54", "reference": "ce6a2f100c404b2d32a1dd1270f9b59ad4f57649",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -4791,9 +4792,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/webmozarts/assert/issues", "issues": "https://github.com/webmozarts/assert/issues",
"source": "https://github.com/webmozarts/assert/tree/2.0.0" "source": "https://github.com/webmozarts/assert/tree/2.1.2"
}, },
"time": "2025-12-16T21:36:00+00:00" "time": "2026-01-13T14:02:24+00:00"
} }
], ],
"aliases": [], "aliases": [],

View file

@ -219,6 +219,7 @@
"SIGNALING_SECRET=%SIGNALING_SECRET%", "SIGNALING_SECRET=%SIGNALING_SECRET%",
"ONLYOFFICE_SECRET=%ONLYOFFICE_SECRET%", "ONLYOFFICE_SECRET=%ONLYOFFICE_SECRET%",
"AIO_URL=%AIO_URL%", "AIO_URL=%AIO_URL%",
"NC_AIO_VERSION=v%AIO_VERSION%",
"NEXTCLOUD_MOUNT=%NEXTCLOUD_MOUNT%", "NEXTCLOUD_MOUNT=%NEXTCLOUD_MOUNT%",
"CLAMAV_ENABLED=%CLAMAV_ENABLED%", "CLAMAV_ENABLED=%CLAMAV_ENABLED%",
"CLAMAV_HOST=nextcloud-aio-clamav", "CLAMAV_HOST=nextcloud-aio-clamav",

View file

@ -0,0 +1,3 @@
#!/usr/bin/env bash
awk '/^ public [^f][^u][^n]/ { sub(/\$/, "", $3); print $3 }' src/Data/ConfigurationManager.php | sort

View file

@ -20,5 +20,10 @@
</extraFiles> </extraFiles>
<issueHandlers> <issueHandlers>
<ClassMustBeFinal errorLevel="suppress" /> <ClassMustBeFinal errorLevel="suppress" />
<MissingConstructor>
<errorLevel type="suppress">
<file name="src/Data/ConfigurationManager.php" /> <!-- We're using property hooks with virtual properties in that file, which Psalm wrongly complains about. See <https://github.com/vimeo/psalm/issues/11435>. -->
</errorLevel>
</MissingConstructor>
</issueHandlers> </issueHandlers>
</psalm> </psalm>

View file

@ -1,7 +1,9 @@
document.addEventListener("DOMContentLoaded", function () { document.addEventListener("DOMContentLoaded", function () {
// Hide submit button initially // Hide submit button initially
const optionsFormSubmit = document.getElementById("options-form-submit"); const optionsFormSubmit = document.querySelectorAll(".options-form-submit");
optionsFormSubmit.style.display = 'none'; optionsFormSubmit.forEach(element => {
element.style.display = 'none';
});
const communityFormSubmit = document.getElementById("community-form-submit"); const communityFormSubmit = document.getElementById("community-form-submit");
communityFormSubmit.style.display = 'none'; communityFormSubmit.style.display = 'none';
@ -12,6 +14,14 @@ document.addEventListener("DOMContentLoaded", function () {
const optionsContainersCheckboxes = document.querySelectorAll("#options-form input[type='checkbox']"); const optionsContainersCheckboxes = document.querySelectorAll("#options-form input[type='checkbox']");
const communityContainersCheckboxes = document.querySelectorAll("#community-form input[type='checkbox']"); const communityContainersCheckboxes = document.querySelectorAll("#community-form input[type='checkbox']");
// Office suite radio buttons
const collaboraRadio = document.getElementById('office-collabora');
const onlyofficeRadio = document.getElementById('office-onlyoffice');
const noneRadio = document.getElementById('office-none');
const collaboraHidden = document.getElementById('collabora');
const onlyofficeHidden = document.getElementById('onlyoffice');
let initialOfficeSelection = null;
optionsContainersCheckboxes.forEach(checkbox => { optionsContainersCheckboxes.forEach(checkbox => {
initialStateOptionsContainers[checkbox.id] = checkbox.checked; // Use checked property to capture actual initial state initialStateOptionsContainers[checkbox.id] = checkbox.checked; // Use checked property to capture actual initial state
}); });
@ -20,6 +30,17 @@ document.addEventListener("DOMContentLoaded", function () {
initialStateCommunityContainers[checkbox.id] = checkbox.checked; // Use checked property to capture actual initial state initialStateCommunityContainers[checkbox.id] = checkbox.checked; // Use checked property to capture actual initial state
}); });
// Store initial office suite selection
if (collaboraRadio && onlyofficeRadio && noneRadio) {
if (collaboraRadio.checked) {
initialOfficeSelection = 'collabora';
} else if (onlyofficeRadio.checked) {
initialOfficeSelection = 'onlyoffice';
} else {
initialOfficeSelection = 'none';
}
}
// Function to compare current states to initial states // Function to compare current states to initial states
function checkForOptionContainerChanges() { function checkForOptionContainerChanges() {
let hasChanges = false; let hasChanges = false;
@ -30,8 +51,32 @@ document.addEventListener("DOMContentLoaded", function () {
} }
}); });
// Check office suite changes and sync to hidden inputs
if (collaboraRadio && onlyofficeRadio && noneRadio && collaboraHidden && onlyofficeHidden) {
let currentOfficeSelection = null;
if (collaboraRadio.checked) {
currentOfficeSelection = 'collabora';
collaboraHidden.value = 'on';
onlyofficeHidden.value = '';
} else if (onlyofficeRadio.checked) {
currentOfficeSelection = 'onlyoffice';
collaboraHidden.value = '';
onlyofficeHidden.value = 'on';
} else {
currentOfficeSelection = 'none';
collaboraHidden.value = '';
onlyofficeHidden.value = '';
}
if (currentOfficeSelection !== initialOfficeSelection) {
hasChanges = true;
}
}
// Show or hide submit button based on changes // Show or hide submit button based on changes
optionsFormSubmit.style.display = hasChanges ? 'block' : 'none'; optionsFormSubmit.forEach(element => {
element.style.display = hasChanges ? 'block' : 'none';
});
} }
// Function to compare current states to initial states // Function to compare current states to initial states
@ -82,6 +127,13 @@ document.addEventListener("DOMContentLoaded", function () {
// Initialize talk-recording visibility on page load // Initialize talk-recording visibility on page load
handleTalkVisibility(); // Ensure talk-recording is correctly initialized handleTalkVisibility(); // Ensure talk-recording is correctly initialized
// Add event listeners for office suite radio buttons
if (collaboraRadio && onlyofficeRadio && noneRadio) {
collaboraRadio.addEventListener('change', checkForOptionContainerChanges);
onlyofficeRadio.addEventListener('change', checkForOptionContainerChanges);
noneRadio.addEventListener('change', checkForOptionContainerChanges);
}
// Initial call to check for changes // Initial call to check for changes
checkForOptionContainerChanges(); checkForOptionContainerChanges();
checkForCommunityContainerChanges(); checkForCommunityContainerChanges();

View file

@ -1,5 +1,5 @@
document.addEventListener("DOMContentLoaded", function(event) { document.addEventListener("DOMContentLoaded", function(event) {
// Collabora // Collabora
let collabora = document.getElementById("collabora"); const collabora = document.getElementById("office-collabora");
collabora.disabled = true; collabora.disabled = true;
}); });

View file

@ -1,7 +1,5 @@
document.addEventListener("DOMContentLoaded", function(event) { document.addEventListener("DOMContentLoaded", function(event) {
// OnlyOffice // OnlyOffice
let onlyoffice = document.getElementById("onlyoffice"); const onlyoffice = document.getElementById("office-onlyoffice");
if (onlyoffice) {
onlyoffice.disabled = true; onlyoffice.disabled = true;
}
}); });

View file

@ -91,54 +91,54 @@ $app->get('/containers', function (Request $request, Response $response, array $
$skip_domain_validation = isset($params['skip_domain_validation']); $skip_domain_validation = isset($params['skip_domain_validation']);
return $view->render($response, 'containers.twig', [ return $view->render($response, 'containers.twig', [
'domain' => $configurationManager->GetDomain(), 'domain' => $configurationManager->domain,
'apache_port' => $configurationManager->GetApachePort(), 'apache_port' => $configurationManager->apachePort,
'borg_backup_host_location' => $configurationManager->GetBorgBackupHostLocation(), 'borg_backup_host_location' => $configurationManager->borgBackupHostLocation,
'borg_remote_repo' => $configurationManager->GetBorgRemoteRepo(), 'borg_remote_repo' => $configurationManager->borgRemoteRepo,
'borg_public_key' => $configurationManager->GetBorgPublicKey(), 'borg_public_key' => $configurationManager->getBorgPublicKey(),
'nextcloud_password' => $configurationManager->GetAndGenerateSecret('NEXTCLOUD_PASSWORD'), 'nextcloud_password' => $configurationManager->getAndGenerateSecret('NEXTCLOUD_PASSWORD'),
'containers' => (new \AIO\ContainerDefinitionFetcher($container->get(\AIO\Data\ConfigurationManager::class), $container))->FetchDefinition(), 'containers' => (new \AIO\ContainerDefinitionFetcher($container->get(\AIO\Data\ConfigurationManager::class), $container))->FetchDefinition(),
'borgbackup_password' => $configurationManager->GetAndGenerateSecret('BORGBACKUP_PASSWORD'), 'borgbackup_password' => $configurationManager->getAndGenerateSecret('BORGBACKUP_PASSWORD'),
'is_mastercontainer_update_available' => ( $bypass_mastercontainer_update ? false : $dockerActionManager->IsMastercontainerUpdateAvailable() ), 'is_mastercontainer_update_available' => ( $bypass_mastercontainer_update ? false : $dockerActionManager->IsMastercontainerUpdateAvailable() ),
'has_backup_run_once' => $configurationManager->hasBackupRunOnce(), 'has_backup_run_once' => $configurationManager->hasBackupRunOnce(),
'is_backup_container_running' => $dockerActionManager->isBackupContainerRunning(), 'is_backup_container_running' => $dockerActionManager->isBackupContainerRunning(),
'backup_exit_code' => $dockerActionManager->GetBackupcontainerExitCode(), 'backup_exit_code' => $dockerActionManager->GetBackupcontainerExitCode(),
'is_instance_restore_attempt' => $configurationManager->isInstanceRestoreAttempt(), 'is_instance_restore_attempt' => $configurationManager->instanceRestoreAttempt,
'borg_backup_mode' => $configurationManager->GetBackupMode(), 'borg_backup_mode' => $configurationManager->backupMode,
'was_start_button_clicked' => $configurationManager->wasStartButtonClicked(), 'was_start_button_clicked' => $configurationManager->wasStartButtonClicked,
'has_update_available' => $dockerActionManager->isAnyUpdateAvailable(), 'has_update_available' => $dockerActionManager->isAnyUpdateAvailable(),
'last_backup_time' => $configurationManager->GetLastBackupTime(), 'last_backup_time' => $configurationManager->getLastBackupTime(),
'backup_times' => $configurationManager->GetBackupTimes(), 'backup_times' => $configurationManager->getBackupTimes(),
'current_channel' => $dockerActionManager->GetCurrentChannel(), 'current_channel' => $dockerActionManager->GetCurrentChannel(),
'is_clamav_enabled' => $configurationManager->isClamavEnabled(), 'is_clamav_enabled' => $configurationManager->isClamavEnabled,
'is_onlyoffice_enabled' => $configurationManager->isOnlyofficeEnabled(), 'is_onlyoffice_enabled' => $configurationManager->isOnlyofficeEnabled,
'is_collabora_enabled' => $configurationManager->isCollaboraEnabled(), 'is_collabora_enabled' => $configurationManager->isCollaboraEnabled,
'is_talk_enabled' => $configurationManager->isTalkEnabled(), 'is_talk_enabled' => $configurationManager->isTalkEnabled,
'borg_restore_password' => $configurationManager->GetBorgRestorePassword(), 'borg_restore_password' => $configurationManager->borgRestorePassword,
'daily_backup_time' => $configurationManager->GetDailyBackupTime(), 'daily_backup_time' => $configurationManager->getDailyBackupTime(),
'is_daily_backup_running' => $configurationManager->isDailyBackupRunning(), 'is_daily_backup_running' => $configurationManager->isDailyBackupRunning(),
'timezone' => $configurationManager->GetTimezone(), 'timezone' => $configurationManager->timezone,
'skip_domain_validation' => $configurationManager->shouldDomainValidationBeSkipped($skip_domain_validation), 'skip_domain_validation' => $configurationManager->shouldDomainValidationBeSkipped($skip_domain_validation),
'talk_port' => $configurationManager->GetTalkPort(), 'talk_port' => $configurationManager->talkPort,
'collabora_dictionaries' => $configurationManager->GetCollaboraDictionaries(), 'collabora_dictionaries' => $configurationManager->collaboraDictionaries,
'collabora_additional_options' => $configurationManager->GetAdditionalCollaboraOptions(), 'collabora_additional_options' => $configurationManager->collaboraAdditionalOptions,
'automatic_updates' => $configurationManager->areAutomaticUpdatesEnabled(), 'automatic_updates' => $configurationManager->areAutomaticUpdatesEnabled(),
'is_backup_section_enabled' => $configurationManager->isBackupSectionEnabled(), 'is_backup_section_enabled' => !$configurationManager->disableBackupSection,
'is_imaginary_enabled' => $configurationManager->isImaginaryEnabled(), 'is_imaginary_enabled' => $configurationManager->isImaginaryEnabled,
'is_fulltextsearch_enabled' => $configurationManager->isFulltextsearchEnabled(), 'is_fulltextsearch_enabled' => $configurationManager->isFulltextsearchEnabled,
'additional_backup_directories' => $configurationManager->GetAdditionalBackupDirectoriesString(), 'additional_backup_directories' => $configurationManager->getAdditionalBackupDirectoriesString(),
'nextcloud_datadir' => $configurationManager->GetNextcloudDatadirMount(), 'nextcloud_datadir' => $configurationManager->nextcloudDatadirMount,
'nextcloud_mount' => $configurationManager->GetNextcloudMount(), 'nextcloud_mount' => $configurationManager->nextcloudMount,
'nextcloud_upload_limit' => $configurationManager->GetNextcloudUploadLimit(), 'nextcloud_upload_limit' => $configurationManager->nextcloudUploadLimit,
'nextcloud_max_time' => $configurationManager->GetNextcloudMaxTime(), 'nextcloud_max_time' => $configurationManager->nextcloudMaxTime,
'nextcloud_memory_limit' => $configurationManager->GetNextcloudMemoryLimit(), 'nextcloud_memory_limit' => $configurationManager->nextcloudMemoryLimit,
'is_dri_device_enabled' => $configurationManager->isDriDeviceEnabled(), 'is_dri_device_enabled' => $configurationManager->nextcloudEnableDriDevice,
'is_nvidia_gpu_enabled' => $configurationManager->isNvidiaGpuEnabled(), 'is_nvidia_gpu_enabled' => $configurationManager->enableNvidiaGpu,
'is_talk_recording_enabled' => $configurationManager->isTalkRecordingEnabled(), 'is_talk_recording_enabled' => $configurationManager->isTalkRecordingEnabled,
'is_docker_socket_proxy_enabled' => $configurationManager->isDockerSocketProxyEnabled(), 'is_docker_socket_proxy_enabled' => $configurationManager->isDockerSocketProxyEnabled,
'is_whiteboard_enabled' => $configurationManager->isWhiteboardEnabled(), 'is_whiteboard_enabled' => $configurationManager->isWhiteboardEnabled,
'community_containers' => $configurationManager->listAvailableCommunityContainers(), 'community_containers' => $configurationManager->listAvailableCommunityContainers(),
'community_containers_enabled' => $configurationManager->GetEnabledCommunityContainers(), 'community_containers_enabled' => $configurationManager->aioCommunityContainers,
'bypass_container_update' => $bypass_container_update, 'bypass_container_update' => $bypass_container_update,
]); ]);
})->setName('profile'); })->setName('profile');

View file

@ -28,7 +28,7 @@
--border-radius-large: 12px; --border-radius-large: 12px;
--default-font-size: 13px; --default-font-size: 13px;
--checkbox-size: 16px; --checkbox-size: 16px;
--max-width: 500px; --max-width: 580px;
--container-top-margin: 20px; --container-top-margin: 20px;
--container-bottom-margin: 20px; --container-bottom-margin: 20px;
--container-padding: 2px; --container-padding: 2px;
@ -37,9 +37,9 @@
--main-padding: 50px; --main-padding: 50px;
} }
/* Breakpoint calculation: 500px (max-width) + 100px (main-padding * 2) + 200px (additional space) = 800px /* Breakpoint calculation: 580px (max-width) + 100px (main-padding * 2) + 200px (additional space) = 880px
Note: Unfortunately, it's not possible to calculate this dynamically using CSS variables in media queries */ Note: Unfortunately, it's not possible to calculate this dynamically using CSS variables in media queries */
@media only screen and (max-width: 800px) { @media only screen and (max-width: 880px) {
:root { :root {
--container-top-margin: 50px; --container-top-margin: 50px;
--container-bottom-margin: 0px; --container-bottom-margin: 0px;
@ -549,3 +549,160 @@ input[type="checkbox"]:disabled:not(:checked) + label {
#theme-toggle:not(:hover) #theme-icon { #theme-toggle:not(:hover) #theme-icon {
opacity: 0.6; /* Slightly transparent */ opacity: 0.6; /* Slightly transparent */
} }
/* Office Suite Feature Cards */
.office-suite-cards {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
gap: 16px;
margin: 20px 0;
align-items: stretch;
}
.office-radio {
display: none;
}
.office-card {
position: relative;
border: 2px solid var(--color-border-maxcontrast);
border-radius: var(--border-radius-large);
padding: 20px;
cursor: pointer;
transition: all 0.3s ease;
background-color: var(--color-main-background);
display: flex;
flex-direction: column;
}
.office-card-disabled {
opacity: 50%;
pointer-events: none;
}
.office-card:hover {
border-color: var(--color-primary-element);
box-shadow: 0 4px 12px rgba(0, 130, 201, 0.15);
transform: translateY(-2px);
}
#office-collabora:checked + .office-card,
#office-onlyoffice:checked + .office-card {
border-color: var(--color-nextcloud-blue);
background: linear-gradient(135deg, rgba(0, 130, 201, 0.08) 0%, rgba(0, 130, 201, 0.02) 100%);
}
[data-theme="dark"] #office-collabora:checked + .office-card,
[data-theme="dark"] #office-onlyoffice:checked + .office-card {
background: linear-gradient(135deg, rgba(0, 145, 242, 0.15) 0%, rgba(0, 145, 242, 0.03) 100%);
}
.office-card-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 16px;
}
.office-card h4 {
margin: 0;
height: 24px;
font-size: 18px;
font-weight: 600;
color: var(--color-main-text);
}
.office-checkmark {
flex-shrink: 0;
display: none;
}
#office-collabora:checked + .office-card .office-checkmark,
#office-onlyoffice:checked + .office-card .office-checkmark {
display: block;
}
.office-features {
list-style: none;
padding: 0;
margin: 0;
}
.office-features li {
position: relative;
padding-left: 20px;
margin-bottom: 4px;
font-size: var(--default-font-size);
line-height: 1.5;
color: var(--color-main-text);
}
.office-features li::before {
content: '•';
position: absolute;
left: 6px;
color: var(--color-nextcloud-blue);
font-weight: bold;
}
.office-checkbox {
position: absolute;
opacity: 0;
pointer-events: none;
}
.office-learn-more {
display: inline-flex;
align-items: center;
margin-top: 12px;
color: var(--color-primary-element);
text-decoration: none;
font-size: var(--default-font-size);
font-weight: 500;
transition: color 0.2s ease;
}
.office-learn-more:hover {
color: var(--color-primary-element-hover);
}
.office-learn-more svg {
transition: transform 0.2s ease;
}
.office-learn-more:hover svg {
transform: translateX(3px);
}
.office-none-card {
text-align: center;
margin: 12px 0 20px 0;
}
.office-none-label {
display: inline-flex;
align-items: center;
font-size: 13px;
color: var(--color-primary-element);
cursor: pointer;
opacity: 0.7;
transition: opacity 0.2s ease;
padding: 8px 12px;
border-radius: var(--border-radius);
}
.office-none-label:hover {
opacity: 1;
background-color: var(--color-primary-element-light);
}
#office-none:checked + .office-none-label {
opacity: 1;
font-weight: 600;
}
/* Responsive adjustments for mobile */
@media only screen and (max-width: 800px) {
.office-suite-cards {
grid-template-columns: 1fr;
}
}

View file

@ -15,11 +15,11 @@ readonly class AuthManager {
} }
public function CheckCredentials(string $password) : bool { public function CheckCredentials(string $password) : bool {
return hash_equals($this->configurationManager->GetPassword(), $password); return hash_equals($this->configurationManager->password, $password);
} }
public function CheckToken(string $token) : bool { public function CheckToken(string $token) : bool {
return hash_equals($this->configurationManager->GetToken(), $token); return hash_equals($this->configurationManager->aioToken, $token);
} }
public function SetAuthState(bool $isLoggedIn) : void { public function SetAuthState(bool $isLoggedIn) : void {

View file

@ -5,121 +5,56 @@ namespace AIO\Container;
use AIO\Data\ConfigurationManager; use AIO\Data\ConfigurationManager;
use AIO\Docker\DockerActionManager; use AIO\Docker\DockerActionManager;
use AIO\ContainerDefinitionFetcher; use AIO\ContainerDefinitionFetcher;
use JsonException;
readonly class Container { readonly class Container {
public function __construct( public function __construct(
private string $identifier, public string $identifier,
private string $displayName, public string $displayName,
private string $containerName, public string $containerName,
private string $restartPolicy, public string $restartPolicy,
private int $maxShutdownTime, public int $maxShutdownTime,
private ContainerPorts $ports, public ContainerPorts $ports,
private string $internalPorts, public string $internalPorts,
private ContainerVolumes $volumes, public ContainerVolumes $volumes,
private ContainerEnvironmentVariables $containerEnvironmentVariables, public ContainerEnvironmentVariables $containerEnvironmentVariables,
/** @var string[] */ /** @var string[] */
private array $dependsOn, public array $dependsOn,
private string $uiSecret, private string $uiSecret,
/** @var string[] */ /** @var string[] */
private array $devices, public array $devices,
private bool $enableNvidiaGpu, public bool $enableNvidiaGpu,
/** @var string[] */ /** @var string[] */
private array $capAdd, public array $capAdd,
private int $shmSize, public int $shmSize,
private bool $apparmorUnconfined, public bool $apparmorUnconfined,
/** @var string[] */ /** @var string[] */
private array $backupVolumes, public array $backupVolumes,
private array $nextcloudExecCommands, public array $nextcloudExecCommands,
private bool $readOnlyRootFs, public bool $readOnlyRootFs,
private array $tmpfs, public array $tmpfs,
private bool $init, public bool $init,
private string $imageTag, public string $imageTag,
private AioVariables $aioVariables, public AioVariables $aioVariables,
private string $documentation, public string $documentation,
private DockerActionManager $dockerActionManager private DockerActionManager $dockerActionManager
) { ) {
} }
public function GetIdentifier() : string {
return $this->identifier;
}
public function GetDisplayName() : string {
return $this->displayName;
}
public function GetContainerName() : string {
return $this->containerName;
}
public function GetRestartPolicy() : string {
return $this->restartPolicy;
}
public function GetImageTag() : string {
return $this->imageTag;
}
public function GetReadOnlySetting() : bool {
return $this->readOnlyRootFs;
}
public function GetInit() : bool {
return $this->init;
}
public function GetShmSize() : int {
return $this->shmSize;
}
public function isApparmorUnconfined() : bool {
return $this->apparmorUnconfined;
}
public function GetMaxShutdownTime() : int {
return $this->maxShutdownTime;
}
public function GetUiSecret() : string { public function GetUiSecret() : string {
return $this->dockerActionManager->GetAndGenerateSecretWrapper($this->uiSecret); return $this->dockerActionManager->GetAndGenerateSecretWrapper($this->uiSecret);
} }
public function GetTmpfs() : array { /**
return $this->tmpfs; * @throws JsonException
} */
public function GetDevices() : array {
return $this->devices;
}
public function isNvidiaGpuEnabled() : bool {
return $this->enableNvidiaGpu;
}
public function GetCapAdds() : array {
return $this->capAdd;
}
public function GetBackupVolumes() : array {
return $this->backupVolumes;
}
public function GetPorts() : ContainerPorts {
return $this->ports;
}
public function GetInternalPort() : string {
return $this->internalPorts;
}
public function GetVolumes() : ContainerVolumes {
return $this->volumes;
}
public function GetRunningState() : ContainerState { public function GetRunningState() : ContainerState {
return $this->dockerActionManager->GetContainerRunningState($this); return $this->dockerActionManager->GetContainerRunningState($this);
} }
/**
* @throws JsonException
*/
public function GetRestartingState() : ContainerState { public function GetRestartingState() : ContainerState {
return $this->dockerActionManager->GetContainerRestartingState($this); return $this->dockerActionManager->GetContainerRestartingState($this);
} }
@ -131,27 +66,4 @@ readonly class Container {
public function GetStartingState() : ContainerState { public function GetStartingState() : ContainerState {
return $this->dockerActionManager->GetContainerStartingState($this); return $this->dockerActionManager->GetContainerStartingState($this);
} }
/**
* @return string[]
*/
public function GetDependsOn() : array {
return $this->dependsOn;
}
public function GetNextcloudExecCommands() : array {
return $this->nextcloudExecCommands;
}
public function GetEnvironmentVariables() : ContainerEnvironmentVariables {
return $this->containerEnvironmentVariables;
}
public function GetAioVariables() : AioVariables {
return $this->aioVariables;
}
public function GetDocumentation() : string {
return $this->documentation;
}
} }

View file

@ -25,7 +25,7 @@ readonly class ContainerDefinitionFetcher {
$containers = $this->FetchDefinition(); $containers = $this->FetchDefinition();
foreach ($containers as $container) { foreach ($containers as $container) {
if ($container->GetIdentifier() === $id) { if ($container->identifier === $id) {
return $container; return $container;
} }
} }
@ -41,7 +41,7 @@ readonly class ContainerDefinitionFetcher {
$data = json_decode((string)file_get_contents(DataConst::GetContainersDefinitionPath()), true, 512, JSON_THROW_ON_ERROR); $data = json_decode((string)file_get_contents(DataConst::GetContainersDefinitionPath()), true, 512, JSON_THROW_ON_ERROR);
$additionalContainerNames = []; $additionalContainerNames = [];
foreach ($this->configurationManager->GetEnabledCommunityContainers() as $communityContainer) { foreach ($this->configurationManager->aioCommunityContainers as $communityContainer) {
if ($communityContainer !== '') { if ($communityContainer !== '') {
$path = DataConst::GetCommunityContainersDirectory() . '/' . $communityContainer . '/' . $communityContainer . '.json'; $path = DataConst::GetCommunityContainersDirectory() . '/' . $communityContainer . '/' . $communityContainer . '.json';
$additionalData = json_decode((string)file_get_contents($path), true, 512, JSON_THROW_ON_ERROR); $additionalData = json_decode((string)file_get_contents($path), true, 512, JSON_THROW_ON_ERROR);
@ -56,42 +56,42 @@ readonly class ContainerDefinitionFetcher {
$containers = []; $containers = [];
foreach ($data['aio_services_v1'] as $entry) { foreach ($data['aio_services_v1'] as $entry) {
if ($entry['container_name'] === 'nextcloud-aio-clamav') { if ($entry['container_name'] === 'nextcloud-aio-clamav') {
if (!$this->configurationManager->isClamavEnabled()) { if (!$this->configurationManager->isClamavEnabled) {
continue; continue;
} }
} elseif ($entry['container_name'] === 'nextcloud-aio-onlyoffice') { } elseif ($entry['container_name'] === 'nextcloud-aio-onlyoffice') {
if (!$this->configurationManager->isOnlyofficeEnabled()) { if (!$this->configurationManager->isOnlyofficeEnabled) {
continue; continue;
} }
} elseif ($entry['container_name'] === 'nextcloud-aio-collabora') { } elseif ($entry['container_name'] === 'nextcloud-aio-collabora') {
if (!$this->configurationManager->isCollaboraEnabled()) { if (!$this->configurationManager->isCollaboraEnabled) {
continue; continue;
} }
if ($this->configurationManager->isCollaboraSubscriptionEnabled()) { if ($this->configurationManager->isCollaboraSubscriptionEnabled()) {
$entry['image'] = 'ghcr.io/nextcloud-releases/aio-collabora-online'; $entry['image'] = 'ghcr.io/nextcloud-releases/aio-collabora-online';
} }
} elseif ($entry['container_name'] === 'nextcloud-aio-talk') { } elseif ($entry['container_name'] === 'nextcloud-aio-talk') {
if (!$this->configurationManager->isTalkEnabled()) { if (!$this->configurationManager->isTalkEnabled) {
continue; continue;
} }
} elseif ($entry['container_name'] === 'nextcloud-aio-talk-recording') { } elseif ($entry['container_name'] === 'nextcloud-aio-talk-recording') {
if (!$this->configurationManager->isTalkRecordingEnabled()) { if (!$this->configurationManager->isTalkRecordingEnabled) {
continue; continue;
} }
} elseif ($entry['container_name'] === 'nextcloud-aio-imaginary') { } elseif ($entry['container_name'] === 'nextcloud-aio-imaginary') {
if (!$this->configurationManager->isImaginaryEnabled()) { if (!$this->configurationManager->isImaginaryEnabled) {
continue; continue;
} }
} elseif ($entry['container_name'] === 'nextcloud-aio-fulltextsearch') { } elseif ($entry['container_name'] === 'nextcloud-aio-fulltextsearch') {
if (!$this->configurationManager->isFulltextsearchEnabled()) { if (!$this->configurationManager->isFulltextsearchEnabled) {
continue; continue;
} }
} elseif ($entry['container_name'] === 'nextcloud-aio-docker-socket-proxy') { } elseif ($entry['container_name'] === 'nextcloud-aio-docker-socket-proxy') {
if (!$this->configurationManager->isDockerSocketProxyEnabled()) { if (!$this->configurationManager->isDockerSocketProxyEnabled) {
continue; continue;
} }
} elseif ($entry['container_name'] === 'nextcloud-aio-whiteboard') { } elseif ($entry['container_name'] === 'nextcloud-aio-whiteboard') {
if (!$this->configurationManager->isWhiteboardEnabled()) { if (!$this->configurationManager->isWhiteboardEnabled) {
continue; continue;
} }
} }
@ -113,34 +113,34 @@ readonly class ContainerDefinitionFetcher {
if (isset($entry['volumes'])) { if (isset($entry['volumes'])) {
foreach ($entry['volumes'] as $value) { foreach ($entry['volumes'] as $value) {
if($value['source'] === '%BORGBACKUP_HOST_LOCATION%') { if($value['source'] === '%BORGBACKUP_HOST_LOCATION%') {
$value['source'] = $this->configurationManager->GetBorgBackupHostLocation(); $value['source'] = $this->configurationManager->borgBackupHostLocation;
if($value['source'] === '') { if($value['source'] === '') {
continue; continue;
} }
} }
if($value['source'] === '%NEXTCLOUD_MOUNT%') { if($value['source'] === '%NEXTCLOUD_MOUNT%') {
$value['source'] = $this->configurationManager->GetNextcloudMount(); $value['source'] = $this->configurationManager->nextcloudMount;
if($value['source'] === '') { if($value['source'] === '') {
continue; continue;
} }
} elseif ($value['source'] === '%NEXTCLOUD_DATADIR%') { } elseif ($value['source'] === '%NEXTCLOUD_DATADIR%') {
$value['source'] = $this->configurationManager->GetNextcloudDatadirMount(); $value['source'] = $this->configurationManager->nextcloudDatadirMount;
if ($value['source'] === '') { if ($value['source'] === '') {
continue; continue;
} }
} elseif ($value['source'] === '%WATCHTOWER_DOCKER_SOCKET_PATH%') { } elseif ($value['source'] === '%WATCHTOWER_DOCKER_SOCKET_PATH%') {
$value['source'] = $this->configurationManager->GetDockerSocketPath(); $value['source'] = $this->configurationManager->dockerSocketPath;
if($value['source'] === '') { if($value['source'] === '') {
continue; continue;
} }
} elseif ($value['source'] === '%NEXTCLOUD_TRUSTED_CACERTS_DIR%') { } elseif ($value['source'] === '%NEXTCLOUD_TRUSTED_CACERTS_DIR%') {
$value['source'] = $this->configurationManager->GetTrustedCacertsDir(); $value['source'] = $this->configurationManager->trustedCacertsDir;
if($value['source'] === '') { if($value['source'] === '') {
continue; continue;
} }
} }
if ($value['destination'] === '%NEXTCLOUD_MOUNT%') { if ($value['destination'] === '%NEXTCLOUD_MOUNT%') {
$value['destination'] = $this->configurationManager->GetNextcloudMount(); $value['destination'] = $this->configurationManager->nextcloudMount;
if($value['destination'] === '') { if($value['destination'] === '') {
continue; continue;
} }
@ -168,39 +168,39 @@ readonly class ContainerDefinitionFetcher {
} }
foreach ($valueDependsOn as $value) { foreach ($valueDependsOn as $value) {
if ($value === 'nextcloud-aio-clamav') { if ($value === 'nextcloud-aio-clamav') {
if (!$this->configurationManager->isClamavEnabled()) { if (!$this->configurationManager->isClamavEnabled) {
continue; continue;
} }
} elseif ($value === 'nextcloud-aio-onlyoffice') { } elseif ($value === 'nextcloud-aio-onlyoffice') {
if (!$this->configurationManager->isOnlyofficeEnabled()) { if (!$this->configurationManager->isOnlyofficeEnabled) {
continue; continue;
} }
} elseif ($value === 'nextcloud-aio-collabora') { } elseif ($value === 'nextcloud-aio-collabora') {
if (!$this->configurationManager->isCollaboraEnabled()) { if (!$this->configurationManager->isCollaboraEnabled) {
continue; continue;
} }
} elseif ($value === 'nextcloud-aio-talk') { } elseif ($value === 'nextcloud-aio-talk') {
if (!$this->configurationManager->isTalkEnabled()) { if (!$this->configurationManager->isTalkEnabled) {
continue; continue;
} }
} elseif ($value === 'nextcloud-aio-talk-recording') { } elseif ($value === 'nextcloud-aio-talk-recording') {
if (!$this->configurationManager->isTalkRecordingEnabled()) { if (!$this->configurationManager->isTalkRecordingEnabled) {
continue; continue;
} }
} elseif ($value === 'nextcloud-aio-imaginary') { } elseif ($value === 'nextcloud-aio-imaginary') {
if (!$this->configurationManager->isImaginaryEnabled()) { if (!$this->configurationManager->isImaginaryEnabled) {
continue; continue;
} }
} elseif ($value === 'nextcloud-aio-fulltextsearch') { } elseif ($value === 'nextcloud-aio-fulltextsearch') {
if (!$this->configurationManager->isFulltextsearchEnabled()) { if (!$this->configurationManager->isFulltextsearchEnabled) {
continue; continue;
} }
} elseif ($value === 'nextcloud-aio-docker-socket-proxy') { } elseif ($value === 'nextcloud-aio-docker-socket-proxy') {
if (!$this->configurationManager->isDockerSocketProxyEnabled()) { if (!$this->configurationManager->isDockerSocketProxyEnabled) {
continue; continue;
} }
} elseif ($value === 'nextcloud-aio-whiteboard') { } elseif ($value === 'nextcloud-aio-whiteboard') {
if (!$this->configurationManager->isWhiteboardEnabled()) { if (!$this->configurationManager->isWhiteboardEnabled) {
continue; continue;
} }
} }
@ -246,7 +246,7 @@ readonly class ContainerDefinitionFetcher {
// All secrets are registered with the configuration when they // All secrets are registered with the configuration when they
// are discovered so they can be later generated at time-of-use. // are discovered so they can be later generated at time-of-use.
foreach ($entry['secrets'] as $secret) { foreach ($entry['secrets'] as $secret) {
$this->configurationManager->RegisterSecret($secret); $this->configurationManager->registerSecret($secret);
} }
} }

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