Compare commits

...

145 Commits

Author SHA1 Message Date
LinuxServer-CI cc54304aca Bot Updating Package Versions 2026-06-02 11:51:19 +00:00
LinuxServer-CI b75b58c26d Bot Updating Package Versions 2026-05-28 18:30:25 +00:00
LinuxServer-CI 9a51ddf4d0 Bot Updating Package Versions 2026-05-26 14:22:44 +00:00
LinuxServer-CI 087f1397ed Bot Updating Package Versions 2026-05-15 18:42:16 +00:00
LinuxServer-CI 6c1a89e936 Bot Updating Package Versions 2026-05-12 13:40:59 +00:00
LinuxServer-CI 5265411720 Bot Updating Templated Files 2026-05-12 13:28:19 +00:00
LinuxServer-CI b0b8a2cded Bot Updating Package Versions 2026-05-05 12:57:12 +00:00
LinuxServer-CI ee6658bdc0 Bot Updating Package Versions 2026-04-30 17:53:38 +00:00
LinuxServer-CI 0119f24aab Bot Updating Package Versions 2026-04-28 13:25:01 +00:00
LinuxServer-CI 1795161c0f Bot Updating Package Versions 2026-04-21 12:50:28 +00:00
LinuxServer-CI 05c55cdcb8 Bot Updating Package Versions 2026-04-14 12:49:24 +00:00
LinuxServer-CI c6eb2a710b Bot Updating Templated Files 2026-04-07 12:43:48 +00:00
LinuxServer-CI f712209adf Bot Updating Package Versions 2026-04-02 09:39:21 +00:00
LinuxServer-CI cd6d7be44c Bot Updating Package Versions 2026-03-26 17:38:11 +00:00
LinuxServer-CI 11b4d51abc Bot Updating Package Versions 2026-03-17 12:37:51 +00:00
LinuxServer-CI 4b09bd1d22 Bot Updating Package Versions 2026-03-03 12:07:37 +00:00
LinuxServer-CI 2841ac911d Bot Updating Package Versions 2026-02-24 12:11:15 +00:00
LinuxServer-CI 9a54966413 Bot Updating Package Versions 2026-02-18 13:49:07 +00:00
LinuxServer-CI ef78539aa8 Bot Updating Package Versions 2026-02-17 12:09:43 +00:00
LinuxServer-CI dd8a6470e0 Bot Updating Templated Files 2026-02-12 11:13:52 +00:00
LinuxServer-CI f8db376478 Bot Updating Templated Files 2026-02-12 11:11:38 +00:00
LinuxServer-CI d14531deb5 Bot Updating Package Versions 2026-02-10 12:40:25 +00:00
LinuxServer-CI fd8684d41f Bot Updating Package Versions 2026-02-03 12:05:43 +00:00
LinuxServer-CI 2a5f9d2b05 Bot Updating Package Versions 2026-01-27 11:58:38 +00:00
LinuxServer-CI 271f2d8937 Bot Updating Package Versions 2026-01-15 11:43:13 +00:00
LinuxServer-CI 5245b16b81 Bot Updating Package Versions 2026-01-13 11:55:46 +00:00
LinuxServer-CI 81aec3f457 Bot Updating Package Versions 2026-01-06 11:54:06 +00:00
LinuxServer-CI 68a9ef6d60 Bot Updating Package Versions 2025-12-23 11:53:23 +00:00
LinuxServer-CI 2b72530f8f Bot Updating Package Versions 2025-12-16 11:54:07 +00:00
LinuxServer-CI b37cc80fe0 Bot Updating Package Versions 2025-12-09 11:53:01 +00:00
LinuxServer-CI 90ae0699f7 Bot Updating Package Versions 2025-12-02 11:53:11 +00:00
LinuxServer-CI c55960faad Bot Updating Package Versions 2025-11-25 11:52:39 +00:00
LinuxServer-CI 3e9639bc9c Bot Updating Package Versions 2025-11-20 10:48:52 +00:00
LinuxServer-CI e49698776a Bot Updating Templated Files 2025-11-20 10:43:03 +00:00
LinuxServer-CI a988e18597 Bot Updating Package Versions 2025-11-18 11:52:50 +00:00
LinuxServer-CI d765d296e7 Bot Updating Package Versions 2025-11-11 11:52:59 +00:00
LinuxServer-CI 2b10bdeab4 Bot Updating Package Versions 2025-10-28 11:52:43 +00:00
LinuxServer-CI 71679df706 Bot Updating Package Versions 2025-10-23 15:42:22 +00:00
LinuxServer-CI 3d8e8ffd92 Bot Updating Templated Files 2025-10-23 13:47:13 +00:00
LinuxServer-CI 6bee23fa13 Bot Updating Package Versions 2025-10-21 11:56:10 +00:00
LinuxServer-CI 61c22a7270 Bot Updating Templated Files 2025-10-21 11:49:55 +00:00
LinuxServer-CI 8c560d9e81 Bot Updating Package Versions 2025-10-14 20:58:10 +00:00
LinuxServer-CI c7ba8dd567 Bot Updating Templated Files 2025-10-14 19:59:58 +00:00
Adam 349f723241 Merge pull request #529 from linuxserver/previous-3.22 2025-10-14 20:57:38 +01:00
LinuxServer-CI a1c5a02841 Bot Updating Package Versions 2025-10-14 11:53:06 +00:00
thespad 41a1c80112 Remove obsolete mcrypt package 2025-10-14 10:11:49 +01:00
thespad c3811ffcd0 Rebase to 3.22 2025-10-14 10:08:35 +01:00
LinuxServer-CI 43464eac91 Bot Updating Package Versions 2025-10-07 11:53:24 +00:00
LinuxServer-CI b5e1ea428f Bot Updating Package Versions 2025-09-27 08:42:24 +00:00
LinuxServer-CI dd0693c9e2 Bot Updating Package Versions 2025-09-23 11:53:56 +00:00
LinuxServer-CI ed8c5b0703 Bot Updating Package Versions 2025-09-16 11:52:59 +00:00
Adam c2057ca1ed Merge pull request #520 from linuxserver/previous-version-spaces 2025-08-26 15:57:04 +01:00
thespad 00b7ea5cb3 Trim whitespace around version numbers 2025-08-26 13:48:57 +01:00
LinuxServer-CI 0ec959e8c7 Bot Updating Package Versions 2025-08-26 11:52:59 +00:00
LinuxServer-CI 6159545435 Bot Updating Package Versions 2025-08-19 11:52:47 +00:00
LinuxServer-CI df969acaaf Bot Updating Package Versions 2025-08-14 07:43:42 +00:00
LinuxServer-CI 08b3153c6c Bot Updating Package Versions 2025-08-05 11:55:13 +00:00
LinuxServer-CI e2f5a4881d Bot Updating Package Versions 2025-07-29 11:54:22 +00:00
LinuxServer-CI f46689ba0a Bot Updating Package Versions 2025-07-22 11:54:31 +00:00
LinuxServer-CI 0725c68408 Bot Updating Package Versions 2025-07-15 11:53:36 +00:00
LinuxServer-CI 1fb67f3cf0 Bot Updating Package Versions 2025-07-10 10:48:45 +00:00
LinuxServer-CI 2f2f584fb0 Bot Updating Package Versions 2025-07-08 11:57:46 +00:00
LinuxServer-CI 1247a815de Bot Updating Templated Files 2025-07-08 11:52:20 +00:00
LinuxServer-CI 8c6dafe518 Bot Updating Templated Files 2025-07-08 11:50:11 +00:00
LinuxServer-CI af856445db Bot Updating Package Versions 2025-06-10 11:55:56 +00:00
LinuxServer-CI 103f1d67c6 Bot Updating Templated Files 2025-06-10 11:49:47 +00:00
LinuxServer-CI b621b67f26 Bot Updating Package Versions 2025-05-26 23:56:22 +00:00
LinuxServer-CI 38d52211e9 Bot Updating Package Versions 2025-05-20 11:54:03 +00:00
LinuxServer-CI 6a2d868229 Bot Updating Templated Files 2025-05-20 11:49:27 +00:00
LinuxServer-CI ea707b9e5d Bot Updating Package Versions 2025-05-15 13:08:00 +00:00
LinuxServer-CI 5450bab38a Bot Updating Package Versions 2025-05-06 11:52:08 +00:00
LinuxServer-CI a9aaf78b30 Bot Updating Package Versions 2025-04-22 11:51:24 +00:00
aptalca 716d6dbb2e Merge pull request #505 from linuxserver/previous-trigger
fix external trigger (when upstream marks a previous version as latest on GH)
2025-04-17 11:37:31 -04:00
aptalca 930e6bb596 fix external trigger (when upstream marks a previous version as latest on GH) 2025-04-17 11:28:03 -04:00
LinuxServer-CI d0b76f5482 Bot Updating Package Versions 2025-04-16 08:47:54 +00:00
LinuxServer-CI db360ca162 Bot Updating Package Versions 2025-04-15 17:40:42 +00:00
LinuxServer-CI 98da436987 Bot Updating Package Versions 2025-04-11 08:06:00 +00:00
LinuxServer-CI 76ab834a20 Bot Updating Package Versions 2025-04-08 11:51:58 +00:00
LinuxServer-CI b46c42cacf Bot Updating Package Versions 2025-04-01 11:54:06 +00:00
LinuxServer-CI ce900d8d8e Bot Updating Package Versions 2025-03-18 11:51:25 +00:00
LinuxServer-CI 8bdbbf982e Bot Updating Package Versions 2025-03-11 11:54:13 +00:00
LinuxServer-CI dec81a2751 Bot Updating Package Versions 2025-03-01 14:41:32 +00:00
LinuxServer-CI 1fde72fae4 Bot Updating Package Versions 2025-02-25 11:51:56 +00:00
LinuxServer-CI 21f0bce059 Bot Updating Package Versions 2025-02-18 11:51:34 +00:00
LinuxServer-CI 83d8ac703d Bot Updating Package Versions 2025-02-13 21:02:17 +00:00
LinuxServer-CI 7b5a4358b7 Bot Updating Templated Files 2025-02-13 20:55:09 +00:00
Adam e04f41c4a3 Merge pull request #493 from linuxserver/previous-3.21 2025-02-13 20:53:36 +00:00
LinuxServer-CI fc3e3d2724 Bot Updating Package Versions 2025-02-13 15:37:43 +00:00
thespad a208935571 Rebase to 3.21 2025-02-12 21:23:08 +00:00
LinuxServer-CI 9e202081d7 Bot Updating Package Versions 2025-02-11 11:59:28 +00:00
LinuxServer-CI 2d602b0e46 Bot Updating Templated Files 2025-02-11 11:51:35 +00:00
LinuxServer-CI 8c1048c348 Bot Updating Templated Files 2025-02-04 11:51:49 +00:00
LinuxServer-CI 5bf22d2a8c Bot Updating Templated Files 2025-02-04 11:49:58 +00:00
LinuxServer-CI d05e5a7904 Bot Updating Package Versions 2025-01-28 11:51:55 +00:00
LinuxServer-CI 4ff83c7210 Bot Updating Package Versions 2025-01-21 11:51:59 +00:00
LinuxServer-CI d2ca43078a Bot Updating Package Versions 2025-01-16 18:47:16 +00:00
quietsy 523b71f45c Merge pull request #482 from linuxserver/fix-large-files-previous
Fix uploading large files
2025-01-09 13:35:02 +02:00
quietsy 0f41399c9f Fix uploading large files 2025-01-09 12:49:39 +02:00
LinuxServer-CI 72192aeb47 Bot Updating Package Versions 2025-01-07 11:51:26 +00:00
LinuxServer-CI fecf7673d6 Bot Updating Package Versions 2024-12-24 11:51:31 +00:00
LinuxServer-CI a39017cc73 Bot Updating Package Versions 2024-12-17 12:03:06 +00:00
LinuxServer-CI 2e2b3b9cf6 Bot Updating Templated Files 2024-12-17 11:52:37 +00:00
LinuxServer-CI e17cb4a648 Bot Updating Templated Files 2024-12-17 11:49:24 +00:00
LinuxServer-CI 1cbdb9f4e7 Bot Updating Templated Files 2024-12-05 13:43:02 +00:00
LinuxServer-CI 9d83dc0ece Bot Updating Templated Files 2024-12-03 11:53:05 +00:00
LinuxServer-CI 3abdcce7b0 Bot Updating Templated Files 2024-12-03 11:51:17 +00:00
LinuxServer-CI 05bafbb7b1 Bot Updating Templated Files 2024-12-03 11:49:36 +00:00
LinuxServer-CI 08449338b2 Bot Updating Package Versions 2024-11-26 11:52:15 +00:00
LinuxServer-CI 1cf1a7f450 Bot Updating Package Versions 2024-11-19 11:51:11 +00:00
LinuxServer-CI bfbe03b675 Bot Updating Templated Files 2024-11-12 11:51:44 +00:00
LinuxServer-CI 32117124ec Bot Updating Templated Files 2024-11-12 11:49:18 +00:00
LinuxServer-CI f10a2c5ebb Bot Updating Package Versions 2024-11-05 11:52:27 +00:00
LinuxServer-CI 65336aae28 Bot Updating Package Versions 2024-10-29 11:51:59 +00:00
LinuxServer-CI 5d472c622c Bot Updating Package Versions 2024-10-22 11:50:58 +00:00
LinuxServer-CI 33c48f4405 Bot Updating Package Versions 2024-10-10 14:40:38 +00:00
LinuxServer-CI 7ef7a7025d Bot Updating Package Versions 2024-10-08 11:51:08 +00:00
LinuxServer-CI e4058b48df Bot Updating Package Versions 2024-10-01 11:57:39 +00:00
LinuxServer-CI dbe6f269c5 Bot Updating Templated Files 2024-10-01 11:52:42 +00:00
LinuxServer-CI 5eeca64e8e Bot Updating Templated Files 2024-10-01 11:51:28 +00:00
LinuxServer-CI 8c3a38e0be Bot Updating Templated Files 2024-10-01 11:49:42 +00:00
LinuxServer-CI bd23955995 Bot Updating Package Versions 2024-09-25 23:34:02 +00:00
LinuxServer-CI fb7d5ec411 Bot Updating Package Versions 2024-09-24 11:50:55 +00:00
LinuxServer-CI 7aa8d56075 Bot Updating Package Versions 2024-09-14 16:29:05 +00:00
Eric Nemchik 55012a2508 Merge pull request #455 from linuxserver/ipv6-listen-previous
separate ipv6 listen in default site-conf [previous]
2024-09-14 09:10:11 -07:00
LinuxServer-CI f2aeaf922e Bot Updating Package Versions 2024-09-12 19:34:21 +00:00
LinuxServer-CI 87797a998c Bot Updating Package Versions 2024-09-10 11:51:56 +00:00
LinuxServer-CI 7251f37675 Bot Updating Package Versions 2024-09-03 11:51:42 +00:00
LinuxServer-CI e2cf4b7e1b Bot Updating Package Versions 2024-08-27 11:51:32 +00:00
LinuxServer-CI 6bd06be5b2 Bot Updating Package Versions 2024-08-20 11:55:45 +00:00
LinuxServer-CI 0dba137a29 Bot Updating Templated Files 2024-08-20 11:52:00 +00:00
LinuxServer-CI e150ec8200 Bot Updating Templated Files 2024-08-20 11:50:27 +00:00
LinuxServer-CI a6f3b90552 Bot Updating Package Versions 2024-08-13 11:51:07 +00:00
LinuxServer-CI ce8f20b1a0 Bot Updating Package Versions 2024-08-06 11:50:58 +00:00
LinuxServer-CI 1ed02051f3 Bot Updating Package Versions 2024-07-26 12:52:59 +00:00
LinuxServer-CI 8de888ed1e Bot Updating Package Versions 2024-07-23 11:54:34 +00:00
Eric Nemchik 52caabe6e1 separate ipv6 listen in default site-conf [previous] 2024-07-16 20:40:58 -05:00
LinuxServer-CI abcb894240 Bot Updating Package Versions 2024-07-14 21:22:43 +00:00
aptalca 70c4bd63f1 Merge pull request #451 from linuxserver/previous-escape
fix escape for external version
2024-07-14 17:18:59 -04:00
aptalca a101ff6d14 fix escape for external version 2024-07-14 16:31:21 -04:00
thespad fbdf2b2eb3 Fix release check 2024-07-14 18:37:42 +01:00
LinuxServer-CI e3250f0107 Bot Updating Templated Files 2024-07-14 17:19:41 +00:00
LinuxServer-CI ed224e0523 Bot Updating Templated Files 2024-07-14 17:17:44 +00:00
Adam fa1225fd22 Merge pull request #449 from linuxserver/previous-initial
Initial release for previous tag
2024-07-14 18:16:24 +01:00
thespad 7e34d51683 Remove leading v from version 2024-07-09 16:22:48 +01:00
thespad f1fb49429c Initial release for previous tag 2024-07-09 16:16:27 +01:00
26 changed files with 1533 additions and 1057 deletions
Executable → Regular
View File
Executable → Regular
+5 -5
View File
@@ -6,7 +6,7 @@
* Read, and fill the Pull Request template * Read, and fill the Pull Request template
* If this is a fix for a typo (in code, documentation, or the README) please file an issue and let us sort it out. We do not need a PR * If this is a fix for a typo (in code, documentation, or the README) please file an issue and let us sort it out. We do not need a PR
* If the PR is addressing an existing issue include, closes #\<issue number>, in the body of the PR commit message * If the PR is addressing an existing issue include, closes #\<issue number>, in the body of the PR commit message
* If you want to discuss changes, you can also bring it up in [#dev-talk](https://discordapp.com/channels/354974912613449730/757585807061155840) in our [Discord server](https://discord.gg/YWrKVTn) * If you want to discuss changes, you can also bring it up in [#dev-talk](https://discordapp.com/channels/354974912613449730/757585807061155840) in our [Discord server](https://linuxserver.io/discord)
## Common files ## Common files
@@ -24,7 +24,7 @@
## Readme ## Readme
If you would like to change our readme, please __**do not**__ directly edit the readme, as it is auto-generated on each commit. If you would like to change our readme, please __**do not**__ directly edit the readme, as it is auto-generated on each commit.
Instead edit the [readme-vars.yml](https://github.com/linuxserver/docker-nextcloud/edit/master/readme-vars.yml). Instead edit the [readme-vars.yml](https://github.com/linuxserver/docker-nextcloud/edit/previous/readme-vars.yml).
These variables are used in a template for our [Jenkins Builder](https://github.com/linuxserver/docker-jenkins-builder) as part of an ansible play. These variables are used in a template for our [Jenkins Builder](https://github.com/linuxserver/docker-jenkins-builder) as part of an ansible play.
Most of these variables are also carried over to [docs.linuxserver.io](https://docs.linuxserver.io/images/docker-nextcloud) Most of these variables are also carried over to [docs.linuxserver.io](https://docs.linuxserver.io/images/docker-nextcloud)
@@ -105,17 +105,17 @@ docker build \
-t linuxserver/nextcloud:latest . -t linuxserver/nextcloud:latest .
``` ```
The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static` The ARM variants can be built on x86_64 hardware and vice versa using `lscr.io/linuxserver/qemu-static`
```bash ```bash
docker run --rm --privileged multiarch/qemu-user-static:register --reset docker run --rm --privileged lscr.io/linuxserver/qemu-static --reset
``` ```
Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64`. Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64`.
## Update the changelog ## Update the changelog
If you are modifying the Dockerfiles or any of the startup scripts in [root](https://github.com/linuxserver/docker-nextcloud/tree/master/root), add an entry to the changelog If you are modifying the Dockerfiles or any of the startup scripts in [root](https://github.com/linuxserver/docker-nextcloud/tree/previous/root), add an entry to the changelog
```yml ```yml
changelogs: changelogs:
Executable → Regular
View File
+1 -1
View File
@@ -1,7 +1,7 @@
blank_issues_enabled: false blank_issues_enabled: false
contact_links: contact_links:
- name: Discord chat support - name: Discord chat support
url: https://discord.gg/YWrKVTn url: https://linuxserver.io/discord
about: Realtime support / chat with the community and the team. about: Realtime support / chat with the community and the team.
- name: Discourse discussion forum - name: Discourse discussion forum
View File
View File
+1 -1
View File
@@ -21,7 +21,7 @@
------------------------------ ------------------------------
- [ ] I have read the [contributing](https://github.com/linuxserver/docker-nextcloud/blob/master/.github/CONTRIBUTING.md) guideline and understand that I have made the correct modifications - [ ] I have read the [contributing](https://github.com/linuxserver/docker-nextcloud/blob/previous/.github/CONTRIBUTING.md) guideline and understand that I have made the correct modifications
------------------------------ ------------------------------
+3
View File
@@ -8,6 +8,9 @@ on:
pull_request_review: pull_request_review:
types: [submitted,edited,dismissed] types: [submitted,edited,dismissed]
permissions:
contents: read
jobs: jobs:
manage-project: manage-project:
permissions: permissions:
+3
View File
@@ -4,6 +4,9 @@ on:
- cron: '35 2 * * *' - cron: '35 2 * * *'
workflow_dispatch: workflow_dispatch:
permissions:
contents: read
jobs: jobs:
stale: stale:
permissions: permissions:
+100 -57
View File
@@ -3,52 +3,86 @@ name: External Trigger Main
on: on:
workflow_dispatch: workflow_dispatch:
permissions:
contents: read
jobs: jobs:
external-trigger-master: external-trigger-previous:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4.1.1 - uses: actions/checkout@v4.1.1
- name: External Trigger - name: External Trigger
if: github.ref == 'refs/heads/master' if: github.ref == 'refs/heads/previous'
env:
SKIP_EXTERNAL_TRIGGER: ${{ vars.SKIP_EXTERNAL_TRIGGER }}
run: | run: |
if [ -n "${{ secrets.PAUSE_EXTERNAL_TRIGGER_NEXTCLOUD_MASTER }}" ]; then printf "# External trigger for docker-nextcloud\n\n" >> $GITHUB_STEP_SUMMARY
echo "**** Github secret PAUSE_EXTERNAL_TRIGGER_NEXTCLOUD_MASTER is set; skipping trigger. ****" if grep -q "^nextcloud_previous_" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
echo "Github secret \`PAUSE_EXTERNAL_TRIGGER_NEXTCLOUD_MASTER\` is set; skipping trigger." >> $GITHUB_STEP_SUMMARY echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`nextcloud_previous_\`; will skip trigger if version matches." >> $GITHUB_STEP_SUMMARY
elif grep -q "^nextcloud_previous" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`nextcloud_previous\`; skipping trigger." >> $GITHUB_STEP_SUMMARY
exit 0
fi
echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY
echo "> External trigger running off of previous branch. To disable this trigger, add \`nextcloud_previous\` into the Github organizational variable \`SKIP_EXTERNAL_TRIGGER\`." >> $GITHUB_STEP_SUMMARY
printf "\n## Retrieving external version\n\n" >> $GITHUB_STEP_SUMMARY
EXT_RELEASE=$(curl -u ${{ secrets.CR_USER }}:${{ secrets.CR_PAT }} -sX GET https://api.github.com/repos/nextcloud/server/releases | jq -r "first(.[] | select(.tag_name | contains($(( $(curl -u ${{ secrets.CR_USER }}:${{ secrets.CR_PAT }} -sX GET https://api.github.com/repos/nextcloud/server/releases | jq -r '.[] | select(.prerelease != true) | .tag_name' | sed 's|^v||g' | awk -F '.' '{print $1}' | sort -rV | head -1) -1 ))|tostring ) and (contains( \"rc\" )|not)) | .tag_name)" | sed 's|^v||g')
echo "Type is \`custom_version_command\`" >> $GITHUB_STEP_SUMMARY
if grep -q "^nextcloud_previous_${EXT_RELEASE}" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` matches current external release; skipping trigger." >> $GITHUB_STEP_SUMMARY
exit 0 exit 0
fi fi
echo "**** External trigger running off of master branch. To disable this trigger, set a Github secret named \"PAUSE_EXTERNAL_TRIGGER_NEXTCLOUD_MASTER\". ****"
echo "External trigger running off of master branch. To disable this trigger, set a Github secret named \`PAUSE_EXTERNAL_TRIGGER_NEXTCLOUD_MASTER\`" >> $GITHUB_STEP_SUMMARY
echo "**** Retrieving external version ****"
EXT_RELEASE=$(curl -u ${{ secrets.CR_USER }}:${{ secrets.CR_PAT }} -sX GET https://api.github.com/repos/nextcloud/server/releases | jq -r '.[] | select(.prerelease != true) | .tag_name' | sed 's|^v||g' | sort -rV | head -1)
if [ -z "${EXT_RELEASE}" ] || [ "${EXT_RELEASE}" == "null" ]; then if [ -z "${EXT_RELEASE}" ] || [ "${EXT_RELEASE}" == "null" ]; then
echo "**** Can't retrieve external version, exiting ****" echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
FAILURE_REASON="Can't retrieve external version for nextcloud branch master" echo "> Can't retrieve external version, exiting" >> $GITHUB_STEP_SUMMARY
FAILURE_REASON="Can't retrieve external version for nextcloud branch previous"
GHA_TRIGGER_URL="https://github.com/linuxserver/docker-nextcloud/actions/runs/${{ github.run_id }}" GHA_TRIGGER_URL="https://github.com/linuxserver/docker-nextcloud/actions/runs/${{ github.run_id }}"
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 16711680, curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 16711680,
"description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n**Trigger URL:** '"${GHA_TRIGGER_URL}"' \n"}], "description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n**Trigger URL:** '"${GHA_TRIGGER_URL}"' \n"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }} "username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
exit 1 exit 1
fi fi
EXT_RELEASE=$(echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g') EXT_RELEASE_SANITIZED=$(echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g')
echo "**** External version: ${EXT_RELEASE} ****" echo "Sanitized external version: \`${EXT_RELEASE_SANITIZED}\`" >> $GITHUB_STEP_SUMMARY
echo "External version: ${EXT_RELEASE}" >> $GITHUB_STEP_SUMMARY echo "Retrieving last pushed version" >> $GITHUB_STEP_SUMMARY
echo "**** Retrieving last pushed version ****"
image="linuxserver/nextcloud" image="linuxserver/nextcloud"
tag="latest" tag="previous"
token=$(curl -sX GET \ token=$(curl -sX GET \
"https://ghcr.io/token?scope=repository%3Alinuxserver%2Fnextcloud%3Apull" \ "https://ghcr.io/token?scope=repository%3Alinuxserver%2Fnextcloud%3Apull" \
| jq -r '.token') | jq -r '.token')
multidigest=$(curl -s \ multidigest=$(curl -s \
--header "Accept: application/vnd.docker.distribution.manifest.v2+json" \
--header "Accept: application/vnd.oci.image.index.v1+json" \
--header "Authorization: Bearer ${token}" \
"https://ghcr.io/v2/${image}/manifests/${tag}")
if jq -e '.layers // empty' <<< "${multidigest}" >/dev/null 2>&1; then
# If there's a layer element it's a single-arch manifest so just get that digest
digest=$(jq -r '.config.digest' <<< "${multidigest}")
else
# Otherwise it's multi-arch or has manifest annotations
if jq -e '.manifests[]?.annotations // empty' <<< "${multidigest}" >/dev/null 2>&1; then
# Check for manifest annotations and delete if found
multidigest=$(jq 'del(.manifests[] | select(.annotations))' <<< "${multidigest}")
fi
if [[ $(jq '.manifests | length' <<< "${multidigest}") -gt 1 ]]; then
# If there's still more than one digest, it's multi-arch
multidigest=$(jq -r ".manifests[] | select(.platform.architecture == \"amd64\").digest?" <<< "${multidigest}")
else
# Otherwise it's single arch
multidigest=$(jq -r ".manifests[].digest?" <<< "${multidigest}")
fi
if digest=$(curl -s \
--header "Accept: application/vnd.docker.distribution.manifest.v2+json" \ --header "Accept: application/vnd.docker.distribution.manifest.v2+json" \
--header "Accept: application/vnd.oci.image.manifest.v1+json" \
--header "Authorization: Bearer ${token}" \ --header "Authorization: Bearer ${token}" \
"https://ghcr.io/v2/${image}/manifests/${tag}" \ "https://ghcr.io/v2/${image}/manifests/${multidigest}"); then
| jq -r 'first(.manifests[].digest)') digest=$(jq -r '.config.digest' <<< "${digest}");
digest=$(curl -s \ fi
--header "Accept: application/vnd.docker.distribution.manifest.v2+json" \ fi
--header "Authorization: Bearer ${token}" \
"https://ghcr.io/v2/${image}/manifests/${multidigest}" \
| jq -r '.config.digest')
image_info=$(curl -sL \ image_info=$(curl -sL \
--header "Authorization: Bearer ${token}" \ --header "Authorization: Bearer ${token}" \
"https://ghcr.io/v2/${image}/blobs/${digest}") "https://ghcr.io/v2/${image}/blobs/${digest}")
@@ -60,45 +94,54 @@ jobs:
IMAGE_RELEASE=$(echo ${image_info} | jq -r '.Labels.build_version' | awk '{print $3}') IMAGE_RELEASE=$(echo ${image_info} | jq -r '.Labels.build_version' | awk '{print $3}')
IMAGE_VERSION=$(echo ${IMAGE_RELEASE} | awk -F'-ls' '{print $1}') IMAGE_VERSION=$(echo ${IMAGE_RELEASE} | awk -F'-ls' '{print $1}')
if [ -z "${IMAGE_VERSION}" ]; then if [ -z "${IMAGE_VERSION}" ]; then
echo "**** Can't retrieve last pushed version, exiting ****" echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
FAILURE_REASON="Can't retrieve last pushed version for nextcloud tag latest" echo "Can't retrieve last pushed version, exiting" >> $GITHUB_STEP_SUMMARY
FAILURE_REASON="Can't retrieve last pushed version for nextcloud tag previous"
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 16711680, curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 16711680,
"description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n"}], "description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }} "username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
exit 1 exit 1
fi fi
echo "**** Last pushed version: ${IMAGE_VERSION} ****" echo "Last pushed version: \`${IMAGE_VERSION}\`" >> $GITHUB_STEP_SUMMARY
echo "Last pushed version: ${IMAGE_VERSION}" >> $GITHUB_STEP_SUMMARY if [ "${EXT_RELEASE_SANITIZED}" == "${IMAGE_VERSION}" ]; then
if [ "${EXT_RELEASE}" == "${IMAGE_VERSION}" ]; then echo "Sanitized version \`${EXT_RELEASE_SANITIZED}\` already pushed, exiting" >> $GITHUB_STEP_SUMMARY
echo "**** Version ${EXT_RELEASE} already pushed, exiting ****"
echo "Version ${EXT_RELEASE} already pushed, exiting" >> $GITHUB_STEP_SUMMARY
exit 0 exit 0
elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nextcloud/job/master/lastBuild/api/json | jq -r '.building') == "true" ]; then elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nextcloud/job/previous/lastBuild/api/json | jq -r '.building') == "true" ]; then
echo "**** New version ${EXT_RELEASE} found; but there already seems to be an active build on Jenkins; exiting ****" echo "New version \`${EXT_RELEASE}\` found; but there already seems to be an active build on Jenkins; exiting" >> $GITHUB_STEP_SUMMARY
echo "New version ${EXT_RELEASE} found; but there already seems to be an active build on Jenkins; exiting" >> $GITHUB_STEP_SUMMARY
exit 0 exit 0
else else
echo "**** New version ${EXT_RELEASE} found; old version was ${IMAGE_VERSION}. Triggering new build ****" if [[ "${artifacts_found}" == "false" ]]; then
echo "New version ${EXT_RELEASE} found; old version was ${IMAGE_VERSION}. Triggering new build" >> $GITHUB_STEP_SUMMARY echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
response=$(curl -iX POST \ echo "> New version detected, but not all artifacts are published yet; skipping trigger" >> $GITHUB_STEP_SUMMARY
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nextcloud/job/master/buildWithParameters?PACKAGE_CHECK=false \ FAILURE_REASON="New version ${EXT_RELEASE} for nextcloud tag previous is detected, however not all artifacts are uploaded to upstream release yet. Will try again later."
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|") curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903,
echo "**** Jenkins job queue url: ${response%$'\r'} ****" "description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n"}],
echo "**** Sleeping 10 seconds until job starts ****" "username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
sleep 10 else
buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url') printf "\n## Trigger new build\n\n" >> $GITHUB_STEP_SUMMARY
buildurl="${buildurl%$'\r'}" echo "New sanitized version \`${EXT_RELEASE_SANITIZED}\` found; old version was \`${IMAGE_VERSION}\`. Triggering new build" >> $GITHUB_STEP_SUMMARY
echo "**** Jenkins job build url: ${buildurl} ****" if [[ "${artifacts_found}" == "true" ]]; then
echo "Jenkins job build url: ${buildurl}" >> $GITHUB_STEP_SUMMARY echo "All artifacts seem to be uploaded." >> $GITHUB_STEP_SUMMARY
echo "**** Attempting to change the Jenkins job description ****" fi
curl -iX POST \ response=$(curl -iX POST \
"${buildurl}submitDescription" \ https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nextcloud/job/previous/buildWithParameters?PACKAGE_CHECK=false \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} \ --user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
--data-urlencode "description=GHA external trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \ echo "Jenkins [job queue url](${response%$'\r'})" >> $GITHUB_STEP_SUMMARY
--data-urlencode "Submit=Submit" echo "Sleeping 10 seconds until job starts" >> $GITHUB_STEP_SUMMARY
echo "**** Notifying Discord ****" sleep 10
TRIGGER_REASON="A version change was detected for nextcloud tag latest. Old version:${IMAGE_VERSION} New version:${EXT_RELEASE}" buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url')
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903, buildurl="${buildurl%$'\r'}"
"description": "**Build Triggered** \n**Reason:** '"${TRIGGER_REASON}"' \n**Build URL:** '"${buildurl}display/redirect"' \n"}], echo "Jenkins job [build url](${buildurl})" >> $GITHUB_STEP_SUMMARY
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }} echo "Attempting to change the Jenkins job description" >> $GITHUB_STEP_SUMMARY
curl -iX POST \
"${buildurl}submitDescription" \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} \
--data-urlencode "description=GHA external trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \
--data-urlencode "Submit=Submit"
echo "**** Notifying Discord ****"
TRIGGER_REASON="A version change was detected for nextcloud tag previous. Old version:${IMAGE_VERSION} New version:${EXT_RELEASE_SANITIZED}"
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903,
"description": "**Build Triggered** \n**Reason:** '"${TRIGGER_REASON}"' \n**Build URL:** '"${buildurl}display/redirect"' \n"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
fi
fi fi
+15 -12
View File
@@ -5,6 +5,9 @@ on:
- cron: '27 * * * *' - cron: '27 * * * *'
workflow_dispatch: workflow_dispatch:
permissions:
contents: read
jobs: jobs:
external-trigger-scheduler: external-trigger-scheduler:
runs-on: ubuntu-latest runs-on: ubuntu-latest
@@ -15,31 +18,31 @@ jobs:
- name: External Trigger Scheduler - name: External Trigger Scheduler
run: | run: |
echo "**** Branches found: ****" printf "# External trigger scheduler for docker-nextcloud\n\n" >> $GITHUB_STEP_SUMMARY
git for-each-ref --format='%(refname:short)' refs/remotes printf "Found the branches:\n\n%s\n" "$(git for-each-ref --format='- %(refname:lstrip=3)' refs/remotes)" >> $GITHUB_STEP_SUMMARY
for br in $(git for-each-ref --format='%(refname:short)' refs/remotes) for br in $(git for-each-ref --format='%(refname:lstrip=3)' refs/remotes)
do do
br=$(echo "$br" | sed 's|origin/||g') if [[ "${br}" == "HEAD" ]]; then
echo "**** Evaluating branch ${br} ****" printf "\nSkipping %s.\n" ${br} >> $GITHUB_STEP_SUMMARY
continue
fi
printf "\n## Evaluating \`%s\`\n\n" ${br} >> $GITHUB_STEP_SUMMARY
ls_jenkins_vars=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-nextcloud/${br}/jenkins-vars.yml) ls_jenkins_vars=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-nextcloud/${br}/jenkins-vars.yml)
ls_branch=$(echo "${ls_jenkins_vars}" | yq -r '.ls_branch') ls_branch=$(echo "${ls_jenkins_vars}" | yq -r '.ls_branch')
ls_trigger=$(echo "${ls_jenkins_vars}" | yq -r '.external_type') ls_trigger=$(echo "${ls_jenkins_vars}" | yq -r '.external_type')
if [[ "${br}" == "${ls_branch}" ]] && [[ "${ls_trigger}" != "os" ]]; then if [[ "${br}" == "${ls_branch}" ]] && [[ "${ls_trigger}" != "os" ]]; then
echo "**** Branch ${br} appears to be live and trigger is not os; checking workflow. ****" echo "Branch appears to be live and trigger is not os; checking workflow." >> $GITHUB_STEP_SUMMARY
if curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-nextcloud/${br}/.github/workflows/external_trigger.yml > /dev/null 2>&1; then if curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-nextcloud/${br}/.github/workflows/external_trigger.yml > /dev/null 2>&1; then
echo "**** Workflow exists. Triggering external trigger workflow for branch ${br} ****." echo "Triggering external trigger workflow for branch." >> $GITHUB_STEP_SUMMARY
echo "Triggering external trigger workflow for branch ${br}" >> $GITHUB_STEP_SUMMARY
curl -iX POST \ curl -iX POST \
-H "Authorization: token ${{ secrets.CR_PAT }}" \ -H "Authorization: token ${{ secrets.CR_PAT }}" \
-H "Accept: application/vnd.github.v3+json" \ -H "Accept: application/vnd.github.v3+json" \
-d "{\"ref\":\"refs/heads/${br}\"}" \ -d "{\"ref\":\"refs/heads/${br}\"}" \
https://api.github.com/repos/linuxserver/docker-nextcloud/actions/workflows/external_trigger.yml/dispatches https://api.github.com/repos/linuxserver/docker-nextcloud/actions/workflows/external_trigger.yml/dispatches
else else
echo "**** Workflow doesn't exist; skipping trigger. ****" echo "Skipping branch due to no external trigger workflow present." >> $GITHUB_STEP_SUMMARY
echo "Skipping branch ${br} due to no external trigger workflow present." >> $GITHUB_STEP_SUMMARY
fi fi
else else
echo "**** ${br} is either a dev branch, or has no external version; skipping trigger. ****" echo "Skipping branch due to being detected as dev branch or having no external version." >> $GITHUB_STEP_SUMMARY
echo "Skipping branch ${br} due to being detected as dev branch or having no external version." >> $GITHUB_STEP_SUMMARY
fi fi
done done
Executable → Regular
+7 -1
View File
@@ -2,12 +2,18 @@ name: Greetings
on: [pull_request_target, issues] on: [pull_request_target, issues]
permissions:
contents: read
jobs: jobs:
greeting: greeting:
permissions:
issues: write
pull-requests: write
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/first-interaction@v1 - uses: actions/first-interaction@v1
with: with:
issue-message: 'Thanks for opening your first issue here! Be sure to follow the relevant issue templates, or risk having this issue marked as invalid.' issue-message: 'Thanks for opening your first issue here! Be sure to follow the relevant issue templates, or risk having this issue marked as invalid.'
pr-message: 'Thanks for opening this pull request! Be sure to follow the [pull request template](https://github.com/linuxserver/docker-nextcloud/blob/master/.github/PULL_REQUEST_TEMPLATE.md)!' pr-message: 'Thanks for opening this pull request! Be sure to follow the [pull request template](https://github.com/linuxserver/docker-nextcloud/blob/previous/.github/PULL_REQUEST_TEMPLATE.md)!'
repo-token: ${{ secrets.GITHUB_TOKEN }} repo-token: ${{ secrets.GITHUB_TOKEN }}
-42
View File
@@ -1,42 +0,0 @@
name: Package Trigger Main
on:
workflow_dispatch:
jobs:
package-trigger-master:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4.1.1
- name: Package Trigger
if: github.ref == 'refs/heads/master'
run: |
if [ -n "${{ secrets.PAUSE_PACKAGE_TRIGGER_NEXTCLOUD_MASTER }}" ]; then
echo "**** Github secret PAUSE_PACKAGE_TRIGGER_NEXTCLOUD_MASTER is set; skipping trigger. ****"
echo "Github secret \`PAUSE_PACKAGE_TRIGGER_NEXTCLOUD_MASTER\` is set; skipping trigger." >> $GITHUB_STEP_SUMMARY
exit 0
fi
if [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nextcloud/job/master/lastBuild/api/json | jq -r '.building') == "true" ]; then
echo "**** There already seems to be an active build on Jenkins; skipping package trigger ****"
echo "There already seems to be an active build on Jenkins; skipping package trigger" >> $GITHUB_STEP_SUMMARY
exit 0
fi
echo "**** Package trigger running off of master branch. To disable, set a Github secret named \"PAUSE_PACKAGE_TRIGGER_NEXTCLOUD_MASTER\". ****"
echo "Package trigger running off of master branch. To disable, set a Github secret named \`PAUSE_PACKAGE_TRIGGER_NEXTCLOUD_MASTER\`" >> $GITHUB_STEP_SUMMARY
response=$(curl -iX POST \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nextcloud/job/master/buildWithParameters?PACKAGE_CHECK=true \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
echo "**** Jenkins job queue url: ${response%$'\r'} ****"
echo "**** Sleeping 10 seconds until job starts ****"
sleep 10
buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url')
buildurl="${buildurl%$'\r'}"
echo "**** Jenkins job build url: ${buildurl} ****"
echo "Jenkins job build url: ${buildurl}" >> $GITHUB_STEP_SUMMARY
echo "**** Attempting to change the Jenkins job description ****"
curl -iX POST \
"${buildurl}submitDescription" \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} \
--data-urlencode "description=GHA package trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \
--data-urlencode "Submit=Submit"
+79 -26
View File
@@ -5,6 +5,9 @@ on:
- cron: '42 11 * * 2' - cron: '42 11 * * 2'
workflow_dispatch: workflow_dispatch:
permissions:
contents: read
jobs: jobs:
package-trigger-scheduler: package-trigger-scheduler:
runs-on: ubuntu-latest runs-on: ubuntu-latest
@@ -14,37 +17,87 @@ jobs:
fetch-depth: '0' fetch-depth: '0'
- name: Package Trigger Scheduler - name: Package Trigger Scheduler
env:
SKIP_PACKAGE_TRIGGER: ${{ vars.SKIP_PACKAGE_TRIGGER }}
run: | run: |
echo "**** Branches found: ****" printf "# Package trigger scheduler for docker-nextcloud\n\n" >> $GITHUB_STEP_SUMMARY
git for-each-ref --format='%(refname:short)' refs/remotes printf "Found the branches:\n\n%s\n" "$(git for-each-ref --format='- %(refname:lstrip=3)' refs/remotes)" >> $GITHUB_STEP_SUMMARY
for br in $(git for-each-ref --format='%(refname:short)' refs/remotes) for br in $(git for-each-ref --format='%(refname:lstrip=3)' refs/remotes)
do do
br=$(echo "$br" | sed 's|origin/||g') if [[ "${br}" == "HEAD" ]]; then
echo "**** Evaluating branch ${br} ****" printf "\nSkipping %s.\n" ${br} >> $GITHUB_STEP_SUMMARY
ls_branch=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-nextcloud/${br}/jenkins-vars.yml | yq -r '.ls_branch') continue
if [ "${br}" == "${ls_branch}" ]; then fi
echo "**** Branch ${br} appears to be live; checking workflow. ****" printf "\n## Evaluating \`%s\`\n\n" ${br} >> $GITHUB_STEP_SUMMARY
if curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-nextcloud/${br}/.github/workflows/package_trigger.yml > /dev/null 2>&1; then JENKINS_VARS=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-nextcloud/${br}/jenkins-vars.yml)
echo "**** Workflow exists. Triggering package trigger workflow for branch ${br}. ****" if ! curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-nextcloud/${br}/Jenkinsfile >/dev/null 2>&1; then
echo "Triggering package trigger workflow for branch ${br}" >> $GITHUB_STEP_SUMMARY echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
triggered_branches="${triggered_branches}${br} " echo "> No Jenkinsfile found. Branch is either deprecated or is an early dev branch." >> $GITHUB_STEP_SUMMARY
curl -iX POST \ skipped_branches="${skipped_branches}${br} "
-H "Authorization: token ${{ secrets.CR_PAT }}" \ elif [[ "${br}" == $(yq -r '.ls_branch' <<< "${JENKINS_VARS}") ]]; then
-H "Accept: application/vnd.github.v3+json" \ echo "Branch appears to be live; checking workflow." >> $GITHUB_STEP_SUMMARY
-d "{\"ref\":\"refs/heads/${br}\"}" \ README_VARS=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-nextcloud/${br}/readme-vars.yml)
https://api.github.com/repos/linuxserver/docker-nextcloud/actions/workflows/package_trigger.yml/dispatches if [[ $(yq -r '.project_deprecation_status' <<< "${README_VARS}") == "true" ]]; then
sleep 30 echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Branch appears to be deprecated; skipping trigger." >> $GITHUB_STEP_SUMMARY
skipped_branches="${skipped_branches}${br} "
elif [[ $(yq -r '.skip_package_check' <<< "${JENKINS_VARS}") == "true" ]]; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Skipping branch ${br} due to \`skip_package_check\` being set in \`jenkins-vars.yml\`." >> $GITHUB_STEP_SUMMARY
skipped_branches="${skipped_branches}${br} "
elif grep -q "^nextcloud_${br}" <<< "${SKIP_PACKAGE_TRIGGER}"; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_PACKAGE_TRIGGER\` contains \`nextcloud_${br}\`; skipping trigger." >> $GITHUB_STEP_SUMMARY
skipped_branches="${skipped_branches}${br} "
elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nextcloud/job/${br}/lastBuild/api/json | jq -r '.building' 2>/dev/null) == "true" ]; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> There already seems to be an active build on Jenkins; skipping package trigger for ${br}" >> $GITHUB_STEP_SUMMARY
skipped_branches="${skipped_branches}${br} "
else else
echo "**** Workflow doesn't exist; skipping trigger. ****" echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY
echo "Skipping branch ${br} due to no package trigger workflow present." >> $GITHUB_STEP_SUMMARY echo "> Triggering package trigger for branch ${br}" >> $GITHUB_STEP_SUMMARY
printf "> To disable, add \`nextcloud_%s\` into the Github organizational variable \`SKIP_PACKAGE_TRIGGER\`.\n\n" "${br}" >> $GITHUB_STEP_SUMMARY
triggered_branches="${triggered_branches}${br} "
response=$(curl -iX POST \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nextcloud/job/${br}/buildWithParameters?PACKAGE_CHECK=true \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
if [[ -z "${response}" ]]; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Jenkins build could not be triggered. Skipping branch."
continue
fi
echo "Jenkins [job queue url](${response%$'\r'})" >> $GITHUB_STEP_SUMMARY
echo "Sleeping 10 seconds until job starts" >> $GITHUB_STEP_SUMMARY
sleep 10
buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url')
buildurl="${buildurl%$'\r'}"
echo "Jenkins job [build url](${buildurl})" >> $GITHUB_STEP_SUMMARY
echo "Attempting to change the Jenkins job description" >> $GITHUB_STEP_SUMMARY
if ! curl -ifX POST \
"${buildurl}submitDescription" \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} \
--data-urlencode "description=GHA package trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \
--data-urlencode "Submit=Submit"; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Unable to change the Jenkins job description."
fi
sleep 20
fi fi
else else
echo "**** ${br} appears to be a dev branch; skipping trigger. ****"
echo "Skipping branch ${br} due to being detected as dev branch." >> $GITHUB_STEP_SUMMARY echo "Skipping branch ${br} due to being detected as dev branch." >> $GITHUB_STEP_SUMMARY
fi fi
done done
echo "**** Package check build(s) triggered for branch(es): ${triggered_branches} ****" if [[ -n "${triggered_branches}" ]] || [[ -n "${skipped_branches}" ]]; then
echo "**** Notifying Discord ****" if [[ -n "${triggered_branches}" ]]; then
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903, NOTIFY_BRANCHES="**Triggered:** ${triggered_branches} \n"
"description": "**Package Check Build(s) Triggered for nextcloud** \n**Branch(es):** '"${triggered_branches}"' \n**Build URL:** '"https://ci.linuxserver.io/blue/organizations/jenkins/Docker-Pipeline-Builders%2Fdocker-nextcloud/activity/"' \n"}], NOTIFY_BUILD_URL="**Build URL:** https://ci.linuxserver.io/blue/organizations/jenkins/Docker-Pipeline-Builders%2Fdocker-nextcloud/activity/ \n"
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }} echo "**** Package check build(s) triggered for branch(es): ${triggered_branches} ****"
fi
if [[ -n "${skipped_branches}" ]]; then
NOTIFY_BRANCHES="${NOTIFY_BRANCHES}**Skipped:** ${skipped_branches} \n"
fi
echo "**** Notifying Discord ****"
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903,
"description": "**Package Check Build(s) for nextcloud** \n'"${NOTIFY_BRANCHES}"''"${NOTIFY_BUILD_URL}"'"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
fi
+2
View File
@@ -5,6 +5,8 @@ on:
- '**/run' - '**/run'
- '**/finish' - '**/finish'
- '**/check' - '**/check'
- 'root/migrations/*'
jobs: jobs:
permission_check: permission_check:
uses: linuxserver/github-workflows/.github/workflows/init-svc-executable-permissions.yml@v1 uses: linuxserver/github-workflows/.github/workflows/init-svc-executable-permissions.yml@v1
+41 -41
View File
@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:1 # syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.20 FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.22
# set version label # set version label
ARG BUILD_DATE ARG BUILD_DATE
@@ -22,45 +22,44 @@ RUN \
imagemagick-pdf \ imagemagick-pdf \
imagemagick-svg \ imagemagick-svg \
libxml2 \ libxml2 \
php83-apcu \ php84-apcu \
php83-bcmath \ php84-bcmath \
php83-bz2 \ php84-bz2 \
php83-dom \ php84-dom \
php83-exif \ php84-exif \
php83-ftp \ php84-ftp \
php83-gd \ php84-gd \
php83-gmp \ php84-gmp \
php83-imap \ php84-imap \
php83-intl \ php84-intl \
php83-ldap \ php84-ldap \
php83-opcache \ php84-opcache \
php83-pcntl \ php84-pcntl \
php83-pdo_mysql \ php84-pdo_mysql \
php83-pdo_pgsql \ php84-pdo_pgsql \
php83-pdo_sqlite \ php84-pdo_sqlite \
php83-pecl-imagick \ php84-pecl-imagick \
php83-pecl-mcrypt \ php84-pecl-memcached \
php83-pecl-memcached \ php84-pecl-smbclient \
php83-pecl-smbclient \ php84-pgsql \
php83-pgsql \ php84-posix \
php83-posix \ php84-redis \
php83-redis \ php84-sodium \
php83-sodium \ php84-sqlite3 \
php83-sqlite3 \ php84-sysvsem \
php83-sysvsem \ php84-xmlreader \
php83-xmlreader \
rsync \ rsync \
samba-client \ samba-client \
util-linux \ util-linux \
sudo && \ sudo && \
echo "**** configure php-fpm to pass env vars ****" && \ echo "**** configure php-fpm to pass env vars ****" && \
sed -E -i 's/^;?clear_env ?=.*$/clear_env = no/g' /etc/php83/php-fpm.d/www.conf && \ sed -E -i 's/^;?clear_env ?=.*$/clear_env = no/g' /etc/php84/php-fpm.d/www.conf && \
grep -qxF 'clear_env = no' /etc/php83/php-fpm.d/www.conf || echo 'clear_env = no' >> /etc/php83/php-fpm.d/www.conf && \ if ! grep -qxF 'clear_env = no' /etc/php84/php-fpm.d/www.conf; then echo 'clear_env = no' >> /etc/php84/php-fpm.d/www.conf; fi && \
echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php83/php-fpm.conf && \ echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php84/php-fpm.conf && \
echo "**** configure php for nextcloud ****" && \ echo "**** configure php for nextcloud ****" && \
{ \ { \
echo 'apc.enable_cli=1'; \ echo 'apc.enable_cli=1'; \
} >> /etc/php83/conf.d/apcu.ini && \ } >> /etc/php84/conf.d/apcu.ini && \
{ \ { \
echo 'opcache.enable=1'; \ echo 'opcache.enable=1'; \
echo 'opcache.interned_strings_buffer=32'; \ echo 'opcache.interned_strings_buffer=32'; \
@@ -70,23 +69,24 @@ RUN \
echo 'opcache.revalidate_freq=60'; \ echo 'opcache.revalidate_freq=60'; \
echo 'opcache.jit=1255'; \ echo 'opcache.jit=1255'; \
echo 'opcache.jit_buffer_size=128M'; \ echo 'opcache.jit_buffer_size=128M'; \
} >> "/etc/php83/conf.d/00_opcache.ini" && \ } >> "/etc/php84/conf.d/00_opcache.ini" && \
{ \ { \
echo 'memory_limit=512M'; \ echo 'memory_limit=-1'; \
echo 'upload_max_filesize=512M'; \ echo 'upload_max_filesize=100G'; \
echo 'post_max_size=512M'; \ echo 'post_max_size=100G'; \
echo 'max_input_time=300'; \ echo 'max_input_time=3600'; \
echo 'max_execution_time=300'; \ echo 'max_execution_time=3600'; \
echo 'output_buffering=0'; \ echo 'output_buffering=0'; \
echo 'always_populate_raw_post_data=-1'; \ echo 'always_populate_raw_post_data=-1'; \
} >> "/etc/php83/conf.d/nextcloud.ini" && \ } >> "/etc/php84/conf.d/nextcloud.ini" && \
echo "**** install nextcloud ****" && \ echo "**** install nextcloud ****" && \
mkdir -p \ mkdir -p \
/app/www/src/ && \ /app/www/src/ && \
if [ -z ${NEXTCLOUD_RELEASE+x} ]; then \ if [ -z ${NEXTCLOUD_RELEASE+x} ]; then \
NEXTCLOUD_RELEASE=$(curl -sX GET https://api.github.com/repos/nextcloud/server/releases \ NEXTCLOUD_RELEASE=$(curl -sX GET https://api.github.com/repos/nextcloud/server/releases \
| jq -r '.[] | select(.prerelease != true) | .tag_name' \ | jq -r "first(.[] | select(.tag_name | contains($(( $(curl -sX GET https://api.github.com/repos/nextcloud/server/releases/latest \
| sed 's|^v||g' | sort -rV | head -1); \ | jq -r '.tag_name' | sed 's|^v||g' | awk -F '.' '{print $1}') -1 ))|tostring ) and (contains( \"rc\" )|not)) | .tag_name)" \
| sed 's|^v||g'); \
fi && \ fi && \
curl -o \ curl -o \
/tmp/nextcloud.tar.bz2 -L \ /tmp/nextcloud.tar.bz2 -L \
+41 -41
View File
@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:1 # syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.20 FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.22
# set version label # set version label
ARG BUILD_DATE ARG BUILD_DATE
@@ -22,45 +22,44 @@ RUN \
imagemagick-pdf \ imagemagick-pdf \
imagemagick-svg \ imagemagick-svg \
libxml2 \ libxml2 \
php83-apcu \ php84-apcu \
php83-bcmath \ php84-bcmath \
php83-bz2 \ php84-bz2 \
php83-dom \ php84-dom \
php83-exif \ php84-exif \
php83-ftp \ php84-ftp \
php83-gd \ php84-gd \
php83-gmp \ php84-gmp \
php83-imap \ php84-imap \
php83-intl \ php84-intl \
php83-ldap \ php84-ldap \
php83-opcache \ php84-opcache \
php83-pcntl \ php84-pcntl \
php83-pdo_mysql \ php84-pdo_mysql \
php83-pdo_pgsql \ php84-pdo_pgsql \
php83-pdo_sqlite \ php84-pdo_sqlite \
php83-pecl-imagick \ php84-pecl-imagick \
php83-pecl-mcrypt \ php84-pecl-memcached \
php83-pecl-memcached \ php84-pecl-smbclient \
php83-pecl-smbclient \ php84-pgsql \
php83-pgsql \ php84-posix \
php83-posix \ php84-redis \
php83-redis \ php84-sodium \
php83-sodium \ php84-sqlite3 \
php83-sqlite3 \ php84-sysvsem \
php83-sysvsem \ php84-xmlreader \
php83-xmlreader \
rsync \ rsync \
samba-client \ samba-client \
util-linux \ util-linux \
sudo && \ sudo && \
echo "**** configure php-fpm to pass env vars ****" && \ echo "**** configure php-fpm to pass env vars ****" && \
sed -E -i 's/^;?clear_env ?=.*$/clear_env = no/g' /etc/php83/php-fpm.d/www.conf && \ sed -E -i 's/^;?clear_env ?=.*$/clear_env = no/g' /etc/php84/php-fpm.d/www.conf && \
grep -qxF 'clear_env = no' /etc/php83/php-fpm.d/www.conf || echo 'clear_env = no' >> /etc/php83/php-fpm.d/www.conf && \ if ! grep -qxF 'clear_env = no' /etc/php84/php-fpm.d/www.conf; then echo 'clear_env = no' >> /etc/php84/php-fpm.d/www.conf; fi && \
echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php83/php-fpm.conf && \ echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php84/php-fpm.conf && \
echo "**** configure php for nextcloud ****" && \ echo "**** configure php for nextcloud ****" && \
{ \ { \
echo 'apc.enable_cli=1'; \ echo 'apc.enable_cli=1'; \
} >> /etc/php83/conf.d/apcu.ini && \ } >> /etc/php84/conf.d/apcu.ini && \
{ \ { \
echo 'opcache.enable=1'; \ echo 'opcache.enable=1'; \
echo 'opcache.interned_strings_buffer=32'; \ echo 'opcache.interned_strings_buffer=32'; \
@@ -70,23 +69,24 @@ RUN \
echo 'opcache.revalidate_freq=60'; \ echo 'opcache.revalidate_freq=60'; \
echo 'opcache.jit=1255'; \ echo 'opcache.jit=1255'; \
echo 'opcache.jit_buffer_size=128M'; \ echo 'opcache.jit_buffer_size=128M'; \
} >> "/etc/php83/conf.d/00_opcache.ini" && \ } >> "/etc/php84/conf.d/00_opcache.ini" && \
{ \ { \
echo 'memory_limit=512M'; \ echo 'memory_limit=-1'; \
echo 'upload_max_filesize=512M'; \ echo 'upload_max_filesize=100G'; \
echo 'post_max_size=512M'; \ echo 'post_max_size=100G'; \
echo 'max_input_time=300'; \ echo 'max_input_time=3600'; \
echo 'max_execution_time=300'; \ echo 'max_execution_time=3600'; \
echo 'output_buffering=0'; \ echo 'output_buffering=0'; \
echo 'always_populate_raw_post_data=-1'; \ echo 'always_populate_raw_post_data=-1'; \
} >> "/etc/php83/conf.d/nextcloud.ini" && \ } >> "/etc/php84/conf.d/nextcloud.ini" && \
echo "**** install nextcloud ****" && \ echo "**** install nextcloud ****" && \
mkdir -p \ mkdir -p \
/app/www/src/ && \ /app/www/src/ && \
if [ -z ${NEXTCLOUD_RELEASE+x} ]; then \ if [ -z ${NEXTCLOUD_RELEASE+x} ]; then \
NEXTCLOUD_RELEASE=$(curl -sX GET https://api.github.com/repos/nextcloud/server/releases \ NEXTCLOUD_RELEASE=$(curl -sX GET https://api.github.com/repos/nextcloud/server/releases \
| jq -r '.[] | select(.prerelease != true) | .tag_name' \ | jq -r "first(.[] | select(.tag_name | contains($(( $(curl -sX GET https://api.github.com/repos/nextcloud/server/releases/latest \
| sed 's|^v||g' | sort -rV | head -1); \ | jq -r '.tag_name' | sed 's|^v||g' | awk -F '.' '{print $1}') -1 ))|tostring ) and (contains( \"rc\" )|not)) | .tag_name)" \
| sed 's|^v||g'); \
fi && \ fi && \
curl -o \ curl -o \
/tmp/nextcloud.tar.bz2 -L \ /tmp/nextcloud.tar.bz2 -L \
Vendored
+515 -261
View File
File diff suppressed because it is too large Load Diff
Executable → Regular
View File
+24 -18
View File
@@ -1,11 +1,10 @@
<!-- DO NOT EDIT THIS FILE MANUALLY --> <!-- DO NOT EDIT THIS FILE MANUALLY -->
<!-- Please read https://github.com/linuxserver/docker-nextcloud/blob/master/.github/CONTRIBUTING.md --> <!-- Please read https://github.com/linuxserver/docker-nextcloud/blob/previous/.github/CONTRIBUTING.md -->
[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)](https://linuxserver.io) [![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)](https://linuxserver.io)
[![Blog](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Blog)](https://blog.linuxserver.io "all the things you can do with our containers including How-To guides, opinions and much more!") [![Blog](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Blog)](https://blog.linuxserver.io "all the things you can do with our containers including How-To guides, opinions and much more!")
[![Discord](https://img.shields.io/discord/354974912613449730.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Discord&logo=discord)](https://discord.gg/YWrKVTn "realtime support / chat with the community and the team.") [![Discord](https://img.shields.io/discord/354974912613449730.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Discord&logo=discord)](https://linuxserver.io/discord "realtime support / chat with the community and the team.")
[![Discourse](https://img.shields.io/discourse/https/discourse.linuxserver.io/topics.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=discourse)](https://discourse.linuxserver.io "post on our community forum.") [![Discourse](https://img.shields.io/discourse/https/discourse.linuxserver.io/topics.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=discourse)](https://discourse.linuxserver.io "post on our community forum.")
[![Fleet](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Fleet)](https://fleet.linuxserver.io "an online web interface which displays all of our maintained images.")
[![GitHub](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitHub&logo=github)](https://github.com/linuxserver "view the source for all of our repositories.") [![GitHub](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitHub&logo=github)](https://github.com/linuxserver "view the source for all of our repositories.")
[![Open Collective](https://img.shields.io/opencollective/all/linuxserver.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Supporters&logo=open%20collective)](https://opencollective.com/linuxserver "please consider helping us by either donating or contributing to our budget") [![Open Collective](https://img.shields.io/opencollective/all/linuxserver.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Supporters&logo=open%20collective)](https://opencollective.com/linuxserver "please consider helping us by either donating or contributing to our budget")
@@ -20,9 +19,8 @@ The [LinuxServer.io](https://linuxserver.io) team brings you another container r
Find us at: Find us at:
* [Blog](https://blog.linuxserver.io) - all the things you can do with our containers including How-To guides, opinions and much more! * [Blog](https://blog.linuxserver.io) - all the things you can do with our containers including How-To guides, opinions and much more!
* [Discord](https://discord.gg/YWrKVTn) - realtime support / chat with the community and the team. * [Discord](https://linuxserver.io/discord) - realtime support / chat with the community and the team.
* [Discourse](https://discourse.linuxserver.io) - post on our community forum. * [Discourse](https://discourse.linuxserver.io) - post on our community forum.
* [Fleet](https://fleet.linuxserver.io) - an online web interface which displays all of our maintained images.
* [GitHub](https://github.com/linuxserver) - view the source for all of our repositories. * [GitHub](https://github.com/linuxserver) - view the source for all of our repositories.
* [Open Collective](https://opencollective.com/linuxserver) - please consider helping us by either donating or contributing to our budget * [Open Collective](https://opencollective.com/linuxserver) - please consider helping us by either donating or contributing to our budget
@@ -36,8 +34,8 @@ Find us at:
[![Quay.io](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Quay.io)](https://quay.io/repository/linuxserver.io/nextcloud) [![Quay.io](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Quay.io)](https://quay.io/repository/linuxserver.io/nextcloud)
[![Docker Pulls](https://img.shields.io/docker/pulls/linuxserver/nextcloud.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=pulls&logo=docker)](https://hub.docker.com/r/linuxserver/nextcloud) [![Docker Pulls](https://img.shields.io/docker/pulls/linuxserver/nextcloud.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=pulls&logo=docker)](https://hub.docker.com/r/linuxserver/nextcloud)
[![Docker Stars](https://img.shields.io/docker/stars/linuxserver/nextcloud.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=stars&logo=docker)](https://hub.docker.com/r/linuxserver/nextcloud) [![Docker Stars](https://img.shields.io/docker/stars/linuxserver/nextcloud.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=stars&logo=docker)](https://hub.docker.com/r/linuxserver/nextcloud)
[![Jenkins Build](https://img.shields.io/jenkins/build?labelColor=555555&logoColor=ffffff&style=for-the-badge&jobUrl=https%3A%2F%2Fci.linuxserver.io%2Fjob%2FDocker-Pipeline-Builders%2Fjob%2Fdocker-nextcloud%2Fjob%2Fmaster%2F&logo=jenkins)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nextcloud/job/master/) [![Jenkins Build](https://img.shields.io/jenkins/build?labelColor=555555&logoColor=ffffff&style=for-the-badge&jobUrl=https%3A%2F%2Fci.linuxserver.io%2Fjob%2FDocker-Pipeline-Builders%2Fjob%2Fdocker-nextcloud%2Fjob%2Fprevious%2F&logo=jenkins)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nextcloud/job/previous/)
[![LSIO CI](https://img.shields.io/badge/dynamic/yaml?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=CI&query=CI&url=https%3A%2F%2Fci-tests.linuxserver.io%2Flinuxserver%2Fnextcloud%2Flatest%2Fci-status.yml)](https://ci-tests.linuxserver.io/linuxserver/nextcloud/latest/index.html) [![LSIO CI](https://img.shields.io/badge/dynamic/yaml?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=CI&query=CI&url=https%3A%2F%2Fci-tests.linuxserver.io%2Flinuxserver%2Fnextcloud%2Fprevious%2Fci-status.yml)](https://ci-tests.linuxserver.io/linuxserver/nextcloud/previous/index.html)
[Nextcloud](https://nextcloud.com/) gives you access to all your files wherever you are. [Nextcloud](https://nextcloud.com/) gives you access to all your files wherever you are.
@@ -49,7 +47,7 @@ Where are your photos and documents? With Nextcloud you pick a server of your ch
We utilise the docker manifest for multi-platform awareness. More information is available from docker [here](https://distribution.github.io/distribution/spec/manifest-v2-2/#manifest-list) and our announcement [here](https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/). We utilise the docker manifest for multi-platform awareness. More information is available from docker [here](https://distribution.github.io/distribution/spec/manifest-v2-2/#manifest-list) and our announcement [here](https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/).
Simply pulling `lscr.io/linuxserver/nextcloud:latest` should retrieve the correct image for your arch, but you can also pull specific arch images via tags. Simply pulling `lscr.io/linuxserver/nextcloud:previous` should retrieve the correct image for your arch, but you can also pull specific arch images via tags.
The architectures supported by this image are: The architectures supported by this image are:
@@ -57,7 +55,6 @@ The architectures supported by this image are:
| :----: | :----: | ---- | | :----: | :----: | ---- |
| x86-64 | ✅ | amd64-\<version tag\> | | x86-64 | ✅ | amd64-\<version tag\> |
| arm64 | ✅ | arm64v8-\<version tag\> | | arm64 | ✅ | arm64v8-\<version tag\> |
| armhf | ❌ | |
## Version Tags ## Version Tags
@@ -67,6 +64,7 @@ This image provides various versions that are available via tags. Please read th
| :----: | :----: |--- | | :----: | :----: |--- |
| latest | ✅ | Stable Nextcloud releases | | latest | ✅ | Stable Nextcloud releases |
| develop | ✅ | Beta Nextcloud pre-releases *only* | | develop | ✅ | Beta Nextcloud pre-releases *only* |
| previous | ✅ | Nextcloud releases from the previous major version |
## Application Setup ## Application Setup
@@ -136,13 +134,16 @@ If you are using a reverse proxy which validates certificates, you need to [disa
To help you get started creating a container from this image you can either use docker-compose or the docker cli. To help you get started creating a container from this image you can either use docker-compose or the docker cli.
>[!NOTE]
>Unless a parameter is flagged as 'optional', it is *mandatory* and a value must be provided.
### docker-compose (recommended, [click here for more info](https://docs.linuxserver.io/general/docker-compose)) ### docker-compose (recommended, [click here for more info](https://docs.linuxserver.io/general/docker-compose))
```yaml ```yaml
--- ---
services: services:
nextcloud: nextcloud:
image: lscr.io/linuxserver/nextcloud:latest image: lscr.io/linuxserver/nextcloud:previous
container_name: nextcloud container_name: nextcloud
environment: environment:
- PUID=1000 - PUID=1000
@@ -168,7 +169,7 @@ docker run -d \
-v /path/to/nextcloud/config:/config \ -v /path/to/nextcloud/config:/config \
-v /path/to/data:/data \ -v /path/to/data:/data \
--restart unless-stopped \ --restart unless-stopped \
lscr.io/linuxserver/nextcloud:latest lscr.io/linuxserver/nextcloud:previous
``` ```
## Parameters ## Parameters
@@ -177,7 +178,7 @@ Containers are configured using parameters passed at runtime (such as those abov
| Parameter | Function | | Parameter | Function |
| :----: | --- | | :----: | --- |
| `-p 443` | WebUI | | `-p 443:443` | WebUI |
| `-e PUID=1000` | for UserID - see below for explanation | | `-e PUID=1000` | for UserID - see below for explanation |
| `-e PGID=1000` | for GroupID - see below for explanation | | `-e PGID=1000` | for GroupID - see below for explanation |
| `-e TZ=Etc/UTC` | specify a timezone to use, see this [list](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). | | `-e TZ=Etc/UTC` | specify a timezone to use, see this [list](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). |
@@ -248,7 +249,7 @@ We publish various [Docker Mods](https://github.com/linuxserver/docker-mods) to
* Image version number: * Image version number:
```bash ```bash
docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/nextcloud:latest docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/nextcloud:previous
``` ```
## Updating Info ## Updating Info
@@ -296,7 +297,7 @@ Below are the instructions for updating containers:
* Update the image: * Update the image:
```bash ```bash
docker pull lscr.io/linuxserver/nextcloud:latest docker pull lscr.io/linuxserver/nextcloud:previous
``` ```
* Stop the running container: * Stop the running container:
@@ -320,7 +321,8 @@ Below are the instructions for updating containers:
### Image Update Notifications - Diun (Docker Image Update Notifier) ### Image Update Notifications - Diun (Docker Image Update Notifier)
**tip**: We recommend [Diun](https://crazymax.dev/diun/) for update notifications. Other tools that automatically update containers unattended are not recommended or supported. >[!TIP]
>We recommend [Diun](https://crazymax.dev/diun/) for update notifications. Other tools that automatically update containers unattended are not recommended or supported.
## Building locally ## Building locally
@@ -332,19 +334,23 @@ cd docker-nextcloud
docker build \ docker build \
--no-cache \ --no-cache \
--pull \ --pull \
-t lscr.io/linuxserver/nextcloud:latest . -t lscr.io/linuxserver/nextcloud:previous .
``` ```
The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static` The ARM variants can be built on x86_64 hardware and vice versa using `lscr.io/linuxserver/qemu-static`
```bash ```bash
docker run --rm --privileged multiarch/qemu-user-static:register --reset docker run --rm --privileged lscr.io/linuxserver/qemu-static --reset
``` ```
Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64`. Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64`.
## Versions ## Versions
* **14.10.25:** - Rebase to Alpine 3.22.
* **12.02.25:** - Rebase to Alpine 3.21.
* **09.01.25:** - Fix uploading large files. Existing users should update their nginx confs.
* **09.07.24:** - Add `previous` tag for n-1 releases.
* **24.06.24:** - Rebase to Alpine 3.20. Existing users should update their nginx confs to avoid http2 deprecation warnings. * **24.06.24:** - Rebase to Alpine 3.20. Existing users should update their nginx confs to avoid http2 deprecation warnings.
* **19.05.24:** - Added util-linux package required for taskset. * **19.05.24:** - Added util-linux package required for taskset.
* **10.04.24:** - Added imagemagick-pdf. * **10.04.24:** - Added imagemagick-pdf.
+4 -4
View File
@@ -3,10 +3,10 @@
# jenkins variables # jenkins variables
project_name: docker-nextcloud project_name: docker-nextcloud
external_type: na external_type: na
custom_version_command: "curl -sX GET https://api.github.com/repos/nextcloud/server/releases | jq -r '.[] | select(.prerelease != true) | .tag_name' | sed 's|^v||g' | sort -rV | head -1" custom_version_command: "curl -sX GET https://api.github.com/repos/nextcloud/server/releases | jq -r \"first(.[] | select(.tag_name | contains($(( $(curl -sX GET https://api.github.com/repos/nextcloud/server/releases | jq -r '.[] | select(.prerelease != true) | .tag_name' | sed 's|^v||g' | awk -F '.' '{print $1}' | sort -rV | head -1) -1 ))|tostring ) and (contains( \\\\\"rc\\\\\" )|not)) | .tag_name)\" | sed 's|^v||g'"
release_type: stable release_type: prerelease
release_tag: latest release_tag: previous
ls_branch: master ls_branch: previous
repo_vars: repo_vars:
- BUILD_VERSION_ARG = 'NEXTCLOUD_RELEASE' - BUILD_VERSION_ARG = 'NEXTCLOUD_RELEASE'
- LS_USER = 'linuxserver' - LS_USER = 'linuxserver'
+538 -451
View File
@@ -1,451 +1,538 @@
NAME VERSION TYPE NAME VERSION TYPE
@nextcloud/text 3.10.0 npm Process Wrapper 0.0.0.0 binary (+1 duplicate)
Process Wrapper 1.0.0.0 dotnet (+1 duplicate) acl-libs 2.3.2-r1 apk
activity 2.21.0 npm activity 5.0.0-dev.0 npm
agetty 2.40.1-r1 apk agetty 2.41-r9 apk
alpine-baselayout 3.6.5-r0 apk alpine-baselayout 3.7.0-r0 apk
alpine-baselayout-data 3.6.5-r0 apk alpine-baselayout-data 3.7.0-r0 apk
alpine-keys 2.4-r1 apk alpine-keys 2.5-r0 apk
alpine-release 3.20.1-r0 apk alpine-release 3.22.4-r0 apk
alsa-lib 1.2.11-r0 apk alsa-lib 1.2.14-r0 apk
amphp/amp v2.6.2 php-composer amphp/amp v2.6.4 php-composer
amphp/byte-stream v1.8.1 php-composer amphp/byte-stream v1.8.2 php-composer
amphp/parallel v1.4.3 php-composer amphp/parallel v1.4.4 php-composer
amphp/parser v1.1.0 php-composer amphp/parser v1.1.1 php-composer
amphp/process v1.1.4 php-composer amphp/process v1.1.9 php-composer
amphp/serialization v1.0.0 php-composer amphp/serialization v1.0.0 php-composer
amphp/sync v1.4.2 php-composer amphp/sync v1.4.2 php-composer
aom-libs 3.9.0-r0 apk andrewdalpino/okbloomer 1.0.0 php-composer
apache2-utils 2.4.61-r0 apk anstream 0.6.8 rust-crate
apk-tools 2.14.4-r0 apk anstyle 1.0.4 rust-crate
apr 1.7.4-r0 apk anstyle-parse 0.2.3 rust-crate
apr-util 1.6.3-r1 apk anstyle-query 1.0.2 rust-crate
argon2-libs 20190702-r5 apk anyhow 1.0.79 rust-crate
avahi-libs 0.8-r17 apk anyhow 1.0.98 rust-crate
aws/aws-crt-php v1.0.2 php-composer aom-libs 3.12.1-r0 apk
aws/aws-sdk-php 3.240.8 php-composer apache2-utils 2.4.67-r0 apk
bamarni/composer-bin-plugin 1.8.2 php-composer apk-tools 2.14.9-r3 apk
bantu/ini-get-wrapper v1.0.1 php-composer apr 1.7.5-r0 apk
bash 5.2.26-r0 apk apr-util 1.6.3-r1 apk
beberlei/assert v3.3.1 php-composer arg_enum_proc_macro 0.3.4 rust-crate
blkid 2.40.1-r1 apk argon2-libs 20190702-r5 apk
brick/math 0.9.2 php-composer arrayvec 0.7.4 rust-crate
brotli-libs 1.1.0-r2 apk av-metrics 0.9.1 rust-crate
bruteforcesettings 2.9.0 npm av1-grain 0.2.3 rust-crate
busybox 1.36.1-r29 apk avahi-libs 0.8-r21 apk
busybox-binsh 1.36.1-r29 apk aws/aws-crt-php v1.2.7 php-composer
c-ares 1.28.1-r0 apk aws/aws-sdk-php 3.376.2 php-composer
c-client 2007f-r15 apk bamarni/composer-bin-plugin 1.8.2 php-composer
ca-certificates 20240226-r0 apk bantu/ini-get-wrapper v1.0.1 php-composer
ca-certificates-bundle 20240226-r0 apk bash 5.2.37-r0 apk
cairo 1.18.0-r0 apk bitflags 2.4.1 rust-crate
cairo-gobject 1.18.0-r0 apk bitstream-io 2.2.0 rust-crate
catatonit 0.2.0-r0 apk bitstream-io 2.6.0 rust-crate
cfdisk 2.40.1-r1 apk bitvec 1.0.1 rust-crate
christian-riesen/base32 1.6.0 php-composer bitvec_helpers 3.1.6 rust-crate
cjson 1.7.18-r0 apk blkid 2.41-r9 apk
composer 2.7.7 binary brick/math 0.13.1 php-composer
coreutils 9.5-r1 apk brotli-libs 1.1.0-r2 apk
coreutils-env 9.5-r1 apk busybox 1.37.0-r20 apk
coreutils-fmt 9.5-r1 apk busybox-binsh 1.37.0-r20 apk
coreutils-sha512sum 9.5-r1 apk c-ares 1.34.6-r0 apk
cups-libs 2.4.9-r0 apk c-client 2007f-r15 apk
curl 8.8.0-r0 apk ca-certificates 20260413-r0 apk
cweagans/composer-patches 1.7.3 php-composer ca-certificates-bundle 20260413-r0 apk
dbus-libs 1.14.10-r1 apk cairo 1.18.4-r0 apk
deepdiver/zipstreamer v2.0.2 php-composer catatonit 0.2.1-r0 apk
deepdiver1975/tarstreamer v2.1.0 php-composer cfdisk 2.41-r9 apk
dmesg 2.40.1-r1 apk cfg-if 1.0.0 rust-crate
doctrine/cache 2.2.0 php-composer christian-riesen/base32 1.6.0 php-composer
doctrine/dbal 3.8.3 php-composer cjson 1.7.19-r0 apk
doctrine/deprecations 1.1.2 php-composer clap 4.4.14 rust-crate
doctrine/event-manager 1.2.0 php-composer clap_builder 4.4.14 rust-crate
doctrine/lexer 2.1.0 php-composer clap_complete 4.4.6 rust-crate
egulias/email-validator 3.2.6 php-composer clap_derive 4.4.7 rust-crate
ffmpeg 6.1.1-r8 apk clap_lex 0.6.0 rust-crate
ffmpeg-libavcodec 6.1.1-r8 apk colorchoice 1.0.0 rust-crate
ffmpeg-libavdevice 6.1.1-r8 apk composer 2.10.0 binary
ffmpeg-libavfilter 6.1.1-r8 apk console 0.15.8 rust-crate
ffmpeg-libavformat 6.1.1-r8 apk coreutils 9.7-r1 apk
ffmpeg-libavutil 6.1.1-r8 apk coreutils-env 9.7-r1 apk
ffmpeg-libpostproc 6.1.1-r8 apk coreutils-fmt 9.7-r1 apk
ffmpeg-libswresample 6.1.1-r8 apk coreutils-sha512sum 9.7-r1 apk
ffmpeg-libswscale 6.1.1-r8 apk crc 3.3.0 rust-crate
fftw-double-libs 3.3.10-r5 apk crc-catalog 2.4.0 rust-crate
fgrosse/phpasn1 v2.3.0 php-composer crossbeam 0.8.4 rust-crate
files_downloadlimit 1.1.0 npm crossbeam-channel 0.5.14 rust-crate
files_pdfviewer 2.10.0 npm crossbeam-deque 0.8.5 rust-crate
findmnt 2.40.1-r1 apk crossbeam-epoch 0.9.18 rust-crate
findutils 4.9.0-r5 apk crossbeam-queue 0.3.11 rust-crate
firstrunwizard 2.18.0 npm crossbeam-utils 0.8.19 rust-crate
flock 2.40.1-r1 apk cups-libs 2.4.18-r0 apk
fontconfig 2.15.0-r1 apk curl 8.14.1-r2 apk
freetype 2.13.2-r0 apk cweagans/composer-patches 1.7.3 php-composer
fribidi 1.0.15-r0 apk dbus-libs 1.16.2-r1 apk
fstrim 2.40.1-r1 apk deepdiver/zipstreamer v2.0.3 php-composer
fusonic/linq v1.1.0 php-composer deepdiver1975/tarstreamer v2.1.0 php-composer
fusonic/opengraph v2.2.0 php-composer dmesg 2.41-r9 apk
gdbm 1.23-r1 apk doctrine/dbal 3.10.4 php-composer
gdk-pixbuf 2.42.11-r1 apk doctrine/deprecations 1.1.5 php-composer
ghostscript 10.02.1-r0 apk doctrine/event-manager 2.0.1 php-composer
giflib 5.2.2-r0 apk doctrine/lexer 3.0.1 php-composer
giggsey/libphonenumber-for-php-lite 8.13.27 php-composer dolby_vision 3.3.1 rust-crate
git 2.45.2-r0 apk egulias/email-validator 4.0.4 php-composer
git-init-template 2.45.2-r0 apk either 1.9.0 rust-crate
glib 2.80.2-r0 apk errno 0.3.8 rust-crate
glslang-libs 1.3.261.1-r0 apk fern 0.6.2 rust-crate
gmp 6.3.0-r1 apk ffmpeg 6.1.2-r2 apk
gnu-libiconv 1.17-r2 apk ffmpeg-libavcodec 6.1.2-r2 apk
gnu-libiconv-libs 1.17-r2 apk ffmpeg-libavdevice 6.1.2-r2 apk
gnutls 3.8.5-r0 apk ffmpeg-libavfilter 6.1.2-r2 apk
graphite2 1.3.14-r6 apk ffmpeg-libavformat 6.1.2-r2 apk
guzzlehttp/guzzle 7.8.1 php-composer ffmpeg-libavutil 6.1.2-r2 apk
guzzlehttp/promises 1.5.3 php-composer ffmpeg-libpostproc 6.1.2-r2 apk
guzzlehttp/psr7 2.6.2 php-composer ffmpeg-libswresample 6.1.2-r2 apk
guzzlehttp/uri-template v0.2.0 php-composer ffmpeg-libswscale 6.1.2-r2 apk
harfbuzz 8.5.0-r0 apk fftw-double-libs 3.3.10-r6 apk
hexdump 2.40.1-r1 apk files_downloadlimit 5.0.0-dev.0 npm
hexogen/kdtree v0.2.5 php-composer files_pdfviewer 5.0.0 npm
hwdata-pci 0.382-r0 apk findmnt 2.41-r9 apk
icewind/searchdav v3.1.0 php-composer findutils 4.10.0-r0 apk
icewind/smb v3.5.4 php-composer firstrunwizard 5.0.0-dev.0 npm
icewind/streams v0.7.7 php-composer (+1 duplicate) flock 2.41-r9 apk
icu-data-en 74.2-r0 apk fontconfig 2.15.0-r3 apk
icu-libs 74.2-r0 apk freetype 2.13.3-r0 apk
imagemagick 7.1.1.32-r2 apk fribidi 1.0.16-r1 apk
imagemagick-heic 7.1.1.32-r2 apk fstrim 2.41-r9 apk
imagemagick-jpeg 7.1.1.32-r2 apk funty 2.0.0 rust-crate
imagemagick-jxl 7.1.1.32-r2 apk fusonic/opengraph v3.0.0 php-composer
imagemagick-libs 7.1.1.32-r2 apk gdbm 1.24-r0 apk
imagemagick-pango 7.1.1.32-r2 apk gdk-pixbuf 2.42.12-r1 apk
imagemagick-pdf 7.1.1.32-r2 apk getrandom 0.2.12 rust-crate
imagemagick-svg 7.1.1.32-r2 apk ghostscript 10.05.1-r0 apk
imagemagick-tiff 7.1.1.32-r2 apk giflib 5.2.2-r1 apk
imagemagick-webp 7.1.1.32-r2 apk giggsey/libphonenumber-for-php-lite 9.0.17 php-composer
imath 3.1.11-r2 apk git 2.49.1-r0 apk
jansson 2.14-r4 apk git-init-template 2.49.1-r0 apk
jbig2dec 0.20-r0 apk glib 2.84.4-r0 apk
jq 1.7.1-r0 apk glslang-libs 1.4.309.0-r0 apk
justinrainbow/json-schema v5.2.13 php-composer gmp 6.3.0-r3 apk
kornrunner/blurhash v1.2.2 php-composer gnu-libiconv 1.17-r2 apk
lame-libs 3.100-r5 apk gnu-libiconv-libs 1.17-r2 apk
laravel/serializable-closure v1.3.3 php-composer gnutls 3.8.13-r0 apk
lcms2 2.16-r0 apk graphite2 1.3.14-r6 apk
ldb 2.8.0-r1 apk guzzlehttp/guzzle 7.9.3 php-composer
league/flysystem 2.5.0 php-composer guzzlehttp/promises 2.2.0 php-composer
league/mime-type-detection 1.11.0 php-composer guzzlehttp/psr7 2.7.1 php-composer
league/uri 6.4.0 php-composer guzzlehttp/uri-template v1.0.4 php-composer
league/uri-interfaces 2.2.0 php-composer harfbuzz 11.2.1-r0 apk
libSvtAv1Enc 2.0.0-r1 apk heck 0.4.1 rust-crate
libacl 2.3.2-r0 apk hexdump 2.41-r9 apk
libarchive 3.7.4-r0 apk hexogen/kdtree v0.2.6 php-composer
libass 0.17.2-r0 apk hwdata-pci 0.395-r0 apk
libasyncns 0.8-r3 apk icewind/searchdav v3.2.0 php-composer
libattr 2.5.2-r0 apk icewind/smb v3.7.0 php-composer
libauth-samba 4.19.6-r0 apk icewind/streams v0.7.8 php-composer
libavif 1.0.4-r0 apk icu-data-en 76.1-r1 apk
libblkid 2.40.1-r1 apk icu-libs 76.1-r1 apk
libbluray 1.3.4-r1 apk imagemagick 7.1.2.15-r0 apk
libbsd 0.12.2-r0 apk imagemagick-heic 7.1.2.15-r0 apk
libbz2 1.0.8-r6 apk imagemagick-jpeg 7.1.2.15-r0 apk
libcap-ng 0.8.5-r0 apk imagemagick-jxl 7.1.2.15-r0 apk
libcap2 2.70-r0 apk imagemagick-libs 7.1.2.15-r0 apk
libcrypto3 3.3.1-r1 apk imagemagick-openexr 7.1.2.15-r0 apk
libcurl 8.8.0-r0 apk imagemagick-pango 7.1.2.15-r0 apk
libdav1d 1.4.2-r0 apk imagemagick-pdf 7.1.2.15-r0 apk
libde265 1.0.15-r0 apk imagemagick-svg 7.1.2.15-r0 apk
libdovi 3.3.0-r0 apk imagemagick-tiff 7.1.2.15-r0 apk
libdrm 2.4.120-r0 apk imagemagick-webp 7.1.2.15-r0 apk
libeconf 0.6.3-r0 apk imath 3.1.12-r0 apk
libedit 20240517.3.1-r0 apk interpolate_name 0.2.4 rust-crate
libevent 2.1.12-r7 apk itertools 0.10.5 rust-crate
libexpat 2.6.2-r0 apk itertools 0.12.0 rust-crate
libfdisk 2.40.1-r1 apk ivf 0.1.3 rust-crate
libffi 3.4.6-r0 apk jansson 2.14.1-r0 apk
libflac 1.4.3-r1 apk jbig2dec 0.20-r0 apk
libformw 6.4_p20240420-r0 apk joomla/string 3.0.4 php-composer
libgcc 13.2.1_git20240309-r0 apk jq 1.8.1-r0 apk
libgomp 13.2.1_git20240309-r0 apk justinrainbow/json-schema 6.4.2 php-composer
libheif 1.17.6-r1 apk kornrunner/blurhash v1.2.2 php-composer
libhwy 1.0.7-r0 apk lab 0.11.0 rust-crate
libice 1.1.1-r6 apk lame-libs 3.100-r5 apk
libidn2 2.3.7-r0 apk laravel/serializable-closure v2.0.4 php-composer
libintl 0.22.5-r0 apk lazy_static 1.4.0 rust-crate
libjpeg-turbo 3.0.3-r0 apk lcms2 2.19-r0 apk
libjxl 0.10.2-r0 apk lcobucci/clock 3.0.0 php-composer
libldap 2.6.7-r0 apk ldb 4.21.9-r1 apk
libltdl 2.4.7-r3 apk libSvtAv1Enc 2.3.0-r0 apk
libmcrypt 2.5.8-r10 apk libapk2 2.14.9-r3 apk
libmd 1.1.0-r0 apk libarchive 3.8.3-r0 apk
libmemcached-libs 1.1.4-r1 apk libass 0.17.3-r0 apk
libmount 2.40.1-r1 apk libasyncns 0.8-r4 apk
libncursesw 6.4_p20240420-r0 apk libattr 2.5.2-r2 apk
libogg 1.3.5-r5 apk libauth-samba 4.21.9-r1 apk
libopenmpt 0.7.7-r0 apk libavif 1.3.0-r0 apk
libpanelw 6.4_p20240420-r0 apk libblkid 2.41-r9 apk
libpciaccess 0.18.1-r0 apk libbluray 1.3.4-r1 apk
libplacebo 6.338.2-r1 apk libbsd 0.12.2-r0 apk
libpng 1.6.43-r0 apk libbz2 1.0.8-r6 apk
libpq 16.3-r0 apk libc 0.2.155 rust-crate
libproc2 4.0.4-r0 apk libc 0.2.172 rust-crate
libpsl 0.21.5-r1 apk libcap-ng 0.8.5-r0 apk
libpulse 17.0-r0 apk libcap2 2.78-r0 apk
librist 0.2.10-r1 apk libcrypto3 3.5.6-r0 apk
librsvg 2.58.0-r0 apk libcurl 8.14.1-r2 apk
libsasl 2.1.28-r6 apk libdav1d 1.5.1-r0 apk
libsharpyuv 1.3.2-r0 apk libde265 1.0.15-r1 apk
libsm 1.2.4-r4 apk libdeflate 1.23-r0 apk
libsmartcols 2.40.1-r1 apk libdovi 3.3.1-r1 apk
libsmbclient 4.19.6-r0 apk libdrm 2.4.124-r0 apk
libsndfile 1.2.2-r0 apk libeconf 0.6.3-r0 apk
libsodium 1.0.19-r0 apk libedit 20250104.3.1-r1 apk
libsrt 1.5.3-r0 apk libevent 2.1.12-r8 apk
libssh 0.10.6-r0 apk libexpat 2.7.5-r0 apk
libssl3 3.3.1-r1 apk libfdisk 2.41-r9 apk
libstdc++ 13.2.1_git20240309-r0 apk libffi 3.4.8-r0 apk
libtasn1 4.19.0-r2 apk libflac 1.4.3-r1 apk
libtheora 1.1.1-r18 apk libformw 6.5_p20250503-r0 apk
libunibreak 6.1-r0 apk libgcc 14.2.0-r6 apk
libunistring 1.2-r0 apk libgomp 14.2.0-r6 apk
libuuid 2.40.1-r1 apk libheif 1.19.8-r1 apk
libva 2.21.0-r0 apk libhwy 1.0.7-r1 apk
libvdpau 1.5-r3 apk libice 1.1.2-r0 apk
libvorbis 1.3.7-r2 apk libidn2 2.3.7-r0 apk
libvpx 1.14.1-r0 apk libintl 0.24.1-r0 apk
libwbclient 4.19.6-r0 apk libjpeg-turbo 3.1.0-r0 apk
libwebp 1.3.2-r0 apk libjxl 0.10.3-r2 apk
libwebpdemux 1.3.2-r0 apk libldap 2.6.8-r0 apk
libwebpmux 1.3.2-r0 apk libltdl 2.5.4-r1 apk
libx11 1.8.9-r1 apk libmd 1.1.0-r0 apk
libxau 1.0.11-r4 apk libmemcached-libs 1.1.4-r1 apk
libxcb 1.16.1-r0 apk libmount 2.41-r9 apk
libxdmcp 1.1.5-r1 apk libncursesw 6.5_p20250503-r0 apk
libxext 1.3.6-r2 apk libogg 1.3.5-r5 apk
libxfixes 6.0.1-r4 apk libopenmpt 0.7.15-r0 apk
libxft 2.3.8-r3 apk libpanelw 6.5_p20250503-r0 apk
libxml2 2.12.7-r0 apk libpciaccess 0.18.1-r0 apk
libxpm 3.5.17-r0 apk libplacebo 6.338.2-r3 apk
libxrender 0.9.11-r5 apk libpng 1.6.57-r0 apk
libxt 1.3.0-r5 apk libpq 17.10-r0 apk
libxxhash 0.8.2-r2 apk libproc2 4.0.4-r3 apk
libzip 1.10.1-r0 apk libpsl 0.21.5-r3 apk
libzmq 4.3.5-r2 apk libpulse 17.0-r5 apk
lilv-libs 0.24.24-r1 apk librist 0.2.10-r1 apk
linux-pam 1.6.0-r0 apk librsvg 2.60.0-r0 apk
lmdb 0.9.32-r0 apk libsasl 2.1.28-r8 apk
logger 2.40.1-r1 apk libsharpyuv 1.5.0-r0 apk
logreader 2.14.0 npm libsm 1.2.5-r0 apk
logrotate 3.21.0-r1 apk libsmartcols 2.41-r9 apk
losetup 2.40.1-r1 apk libsmbclient 4.21.9-r1 apk
lsblk 2.40.1-r1 apk libsndfile 1.2.2-r2 apk
lz4-libs 1.9.4-r5 apk libsodium 1.0.20-r1 apk
mbedtls 3.6.0-r0 apk libsrt 1.5.3-r1 apk
mcookie 2.40.1-r1 apk libssh 0.11.2-r0 apk
mexitek/phpcolors v1.0.4 php-composer libssl3 3.5.6-r0 apk
microsoft/azure-storage-blob 1.5.4 php-composer libstdc++ 14.2.0-r6 apk
microsoft/azure-storage-common 1.5.2 php-composer libtasn1 4.21.0-r0 apk
mlocati/ip-lib 1.18.0 php-composer libtheora 1.1.1-r18 apk
mount 2.40.1-r1 apk libunibreak 6.1-r0 apk
mpg123-libs 1.32.6-r0 apk libunistring 1.3-r0 apk
mtdowling/jmespath.php 2.6.1 php-composer libuuid 2.41-r9 apk
musl 1.2.5-r0 apk libva 2.22.0-r1 apk
musl-utils 1.2.5-r0 apk libvdpau 1.5-r4 apk
nano 8.0-r0 apk libvorbis 1.3.7-r2 apk
ncurses-terminfo-base 6.4_p20240420-r0 apk libvpx 1.15.0-r0 apk
netcat-openbsd 1.226-r0 apk libwbclient 4.21.9-r1 apk
nettle 3.9.1-r0 apk libwebp 1.5.0-r0 apk
nextcloud 1.0.0 npm libwebpdemux 1.5.0-r0 apk
nextcloud/lognormalizer v1.0.0 php-composer libwebpmux 1.5.0-r0 apk
nghttp2-libs 1.62.1-r0 apk libx11 1.8.11-r0 apk
nginx 1.26.1-r0 apk libxau 1.0.12-r0 apk
notifications 2.17.0 npm libxcb 1.17.0-r0 apk
numactl 2.0.18-r0 apk libxdmcp 1.1.5-r1 apk
onevpl-libs 2023.3.1-r2 apk libxext 1.3.6-r2 apk
oniguruma 6.9.9-r0 apk libxfixes 6.0.1-r4 apk
openexr-libiex 3.1.13-r1 apk libxft 2.3.8-r3 apk
openexr-libilmthread 3.1.13-r1 apk libxml2 2.13.9-r0 apk
openexr-libopenexr 3.1.13-r1 apk libxpm 3.5.19-r0 apk
openssl 3.3.1-r1 apk libxrender 0.9.12-r0 apk
opus 1.5.2-r0 apk libxt 1.3.1-r0 apk
orc 0.4.37-r0 apk libxxhash 0.8.3-r0 apk
p11-kit 0.25.3-r0 apk libyuv 0.0.1887.20251502-r1 apk
pango 1.52.2-r0 apk libzip 1.11.4-r0 apk
partx 2.40.1-r1 apk libzmq 4.3.5-r2 apk
password_policy 1.19.0 npm lilv-libs 0.24.26-r0 apk
pcre 8.45-r3 apk linux-pam 1.7.0-r4 apk
pcre2 10.43-r0 apk linux-raw-sys 0.4.12 rust-crate
pear/archive_tar 1.4.14 php-composer lmdb 0.9.33-r0 apk
pear/console_getopt v1.4.3 php-composer log 0.4.20 rust-crate
pear/pear-core-minimal v1.10.14 php-composer logger 2.41-r9 apk
pear/pear_exception v1.0.2 php-composer logreader 5.0.0 npm
photos 2.5.0 npm logrotate 3.21.0-r1 apk
php-http/guzzle7-adapter 1.0.0 php-composer losetup 2.41-r9 apk
php-http/httplug 2.2.0 php-composer lsblk 2.41-r9 apk
php-http/promise 1.1.0 php-composer lscpu 2.41-r9 apk
php-opencloud/openstack v3.2.1 php-composer lz4-libs 1.10.0-r0 apk
php83 8.3.9-r0 apk marc-mabe/php-enum v4.7.1 php-composer
php83-bcmath 8.3.9-r0 apk masterminds/html5 2.9.0 php-composer
php83-bz2 8.3.9-r0 apk maybe-rayon 0.1.1 rust-crate
php83-common 8.3.9-r0 apk mbedtls 3.6.6-r0 apk
php83-ctype 8.3.9-r0 apk mcookie 2.41-r9 apk
php83-curl 8.3.9-r0 apk memchr 2.7.1 rust-crate
php83-dom 8.3.9-r0 apk mexitek/phpcolors v1.0.4 php-composer
php83-exif 8.3.9-r0 apk microsoft/azure-storage-blob 1.5.4 php-composer
php83-fileinfo 8.3.9-r0 apk microsoft/azure-storage-common 1.5.2 php-composer
php83-fpm 8.3.9-r0 apk minimal-lexical 0.2.1 rust-crate
php83-ftp 8.3.9-r0 apk mlocati/ip-lib 1.20.0 php-composer
php83-gd 8.3.9-r0 apk mount 2.41-r9 apk
php83-gmp 8.3.9-r0 apk mpg123-libs 1.32.10-r0 apk
php83-iconv 8.3.9-r0 apk mtdowling/jmespath.php 2.8.0 php-composer
php83-imap 8.3.9-r0 apk musl 1.2.5-r12 apk
php83-intl 8.3.9-r0 apk musl-utils 1.2.5-r12 apk
php83-ldap 8.3.9-r0 apk nano 8.4-r0 apk
php83-mbstring 8.3.9-r0 apk ncurses-terminfo-base 6.5_p20250503-r0 apk
php83-mysqlnd 8.3.9-r0 apk netcat-openbsd 1.229.1-r0 apk
php83-opcache 8.3.9-r0 apk nettle 3.10.2-r0 apk
php83-openssl 8.3.9-r0 apk new_debug_unreachable 1.0.4 rust-crate
php83-pcntl 8.3.9-r0 apk nextcloud 1.0.0 npm
php83-pdo 8.3.9-r0 apk nextcloud/lognormalizer v1.0.0 php-composer
php83-pdo_mysql 8.3.9-r0 apk nghttp2-libs 1.69.0-r0 apk
php83-pdo_pgsql 8.3.9-r0 apk nginx 1.28.3-r2 apk
php83-pdo_sqlite 8.3.9-r0 apk nom 7.1.3 rust-crate
php83-pecl-apcu 5.1.23-r0 apk noop_proc_macro 0.3.0 rust-crate
php83-pecl-igbinary 3.2.15-r0 apk notifications 5.0.0-dev.0 npm
php83-pecl-imagick 3.7.0-r0 apk num-bigint 0.4.4 rust-crate
php83-pecl-mcrypt 1.0.7-r0 apk num-derive 0.4.1 rust-crate
php83-pecl-memcached 3.2.0-r0 apk num-integer 0.1.45 rust-crate
php83-pecl-msgpack 2.2.0-r2 apk num-rational 0.4.1 rust-crate
php83-pecl-redis 6.0.2-r0 apk num-traits 0.2.17 rust-crate
php83-pecl-smbclient 1.1.1-r0 apk numactl 2.0.18-r0 apk
php83-pgsql 8.3.9-r0 apk once_cell 1.19.0 rust-crate
php83-phar 8.3.9-r0 apk onevpl-libs 2023.3.1-r2 apk
php83-posix 8.3.9-r0 apk oniguruma 6.9.10-r0 apk
php83-session 8.3.9-r0 apk openexr-libiex 3.3.2-r0 apk
php83-simplexml 8.3.9-r0 apk openexr-libilmthread 3.3.2-r0 apk
php83-sockets 8.3.9-r0 apk openexr-libopenexr 3.3.2-r0 apk
php83-sodium 8.3.9-r0 apk openexr-libopenexrcore 3.3.2-r0 apk
php83-sqlite3 8.3.9-r0 apk openjpeg 2.5.3-r0 apk
php83-sysvsem 8.3.9-r0 apk openssl 3.5.6-r0 apk
php83-xml 8.3.9-r0 apk opus 1.5.2-r1 apk
php83-xmlreader 8.3.9-r0 apk orc 0.4.40-r1 apk
php83-xmlwriter 8.3.9-r0 apk p11-kit 0.25.5-r2 apk
php83-zip 8.3.9-r0 apk pango 1.56.3-r0 apk
phpseclib/phpseclib 2.0.47 php-composer paragonie/constant_time_encoding v3.1.3 php-composer
pimple/pimple v3.5.0 php-composer partx 2.41-r9 apk
pixman 0.43.2-r0 apk password_policy 4.0.0-dev.0 npm
pkgconf 2.2.0-r0 apk paste 1.0.14 rust-crate
popt 1.19-r3 apk pcre2 10.46-r0 apk
privacy 1.13.0 npm pear/archive_tar 1.5.0 php-composer
procps-ng 4.0.4-r0 apk pear/console_getopt v1.4.3 php-composer
psr/cache 3.0.0 php-composer pear/pear-core-minimal v1.10.16 php-composer
psr/clock 1.0.0 php-composer pear/pear_exception v1.0.2 php-composer
psr/container 2.0.2 php-composer photos 5.0.0-dev.1 npm
psr/event-dispatcher 1.0.0 php-composer php-http/guzzle7-adapter 1.1.0 php-composer
psr/http-client 1.0.3 php-composer php-http/httplug 2.4.1 php-composer
psr/http-factory 1.0.2 php-composer php-http/promise 1.3.1 php-composer
psr/http-message 1.1 php-composer php-opencloud/openstack v3.14.0 php-composer
psr/log 1.1.4 php-composer (+1 duplicate) php84 8.4.16-r0 apk
punic/punic 3.8.1 php-composer php84-bcmath 8.4.16-r0 apk
ralouphie/getallheaders 3.0.3 php-composer php84-bz2 8.4.16-r0 apk
ramsey/collection 1.1.3 php-composer php84-common 8.4.16-r0 apk
ramsey/uuid 4.1.1 php-composer php84-ctype 8.4.16-r0 apk
rav1e-libs 0.7.1-r0 apk php84-curl 8.4.16-r0 apk
readline 8.2.10-r0 apk php84-dom 8.4.16-r0 apk
recommendations 2.1.0 npm php84-exif 8.4.16-r0 apk
related_resources 1.4.0 npm php84-fileinfo 8.4.16-r0 apk
rsync 3.3.0-r0 apk php84-fpm 8.4.16-r0 apk
rubix/ml dev-chore/bump-flysystem-v2.1.1 php-composer php84-ftp 8.4.16-r0 apk
rubix/tensor 2.2.3 php-composer php84-gd 8.4.16-r0 apk
rullzer/easytotp v0.1.4 php-composer php84-gmp 8.4.16-r0 apk
runuser 2.40.1-r1 apk php84-iconv 8.4.16-r0 apk
sabre/dav 4.5.0 php-composer php84-intl 8.4.16-r0 apk
sabre/event 5.1.4 php-composer php84-ldap 8.4.16-r0 apk
sabre/http 5.1.10 php-composer php84-mbstring 8.4.16-r0 apk
sabre/uri 2.3.3 php-composer php84-mysqlnd 8.4.16-r0 apk
sabre/vobject 4.5.4 php-composer php84-opcache 8.4.16-r0 apk
sabre/xml 2.2.6 php-composer php84-openssl 8.4.16-r0 apk
samba-client 4.19.6-r0 apk php84-pcntl 8.4.16-r0 apk
samba-client-libs 4.19.6-r0 apk php84-pdo 8.4.16-r0 apk
samba-common 4.19.6-r0 apk php84-pdo_mysql 8.4.16-r0 apk
samba-libs 4.19.6-r0 apk php84-pdo_pgsql 8.4.16-r0 apk
samba-util-libs 4.19.6-r0 apk php84-pdo_sqlite 8.4.16-r0 apk
scanelf 1.3.7-r2 apk php84-pecl-apcu 5.1.27-r0 apk
scssphp/scssphp v1.12.1 php-composer php84-pecl-igbinary 3.2.16-r1 apk
sdl2 2.28.5-r1 apk php84-pecl-imagick 3.8.0-r1 apk
serd-libs 0.32.2-r0 apk php84-pecl-imap 1.0.3-r0 apk
setarch 2.40.1-r1 apk php84-pecl-memcached 3.3.0-r0 apk
setpriv 2.40.1-r1 apk php84-pecl-msgpack 3.0.0-r0 apk
sfdisk 2.40.1-r1 apk php84-pecl-redis 6.3.0-r0 apk
shaderc 2024.0-r0 apk php84-pecl-smbclient 1.2.0_pre-r0 apk
shadow 4.15.1-r0 apk php84-pgsql 8.4.16-r0 apk
shared-mime-info 2.4-r0 apk php84-phar 8.4.16-r0 apk
skalibs 2.14.1.1-r0 apk php84-posix 8.4.16-r0 apk
sord-libs 0.16.16-r0 apk php84-session 8.4.16-r0 apk
soxr 0.1.3-r7 apk php84-simplexml 8.4.16-r0 apk
speexdsp 1.2.1-r2 apk php84-sockets 8.4.16-r0 apk
spirv-tools 1.3.261.1-r0 apk php84-sodium 8.4.16-r0 apk
spomky-labs/base64url v2.0.4 php-composer php84-sqlite3 8.4.16-r0 apk
spomky-labs/cbor-php v2.0.1 php-composer php84-sysvsem 8.4.16-r0 apk
sqlite-libs 3.45.3-r1 apk php84-xml 8.4.16-r0 apk
sratom 0.6.16-r0 apk php84-xmlreader 8.4.16-r0 apk
ssl_client 1.36.1-r29 apk php84-xmlwriter 8.4.16-r0 apk
stecman/symfony-console-completion 0.11.0 php-composer php84-zip 8.4.16-r0 apk
sudo 1.9.15_p5-r0 apk phpseclib/phpseclib 2.0.53 php-composer
support 1.12.0 npm pimple/pimple v3.5.0 php-composer
suspicious_login 7.0.0 npm pixman 0.46.4-r0 apk
symfony/console v5.4.35 php-composer pkgconf 2.4.3-r0 apk
symfony/css-selector v5.4.11 php-composer popt 1.19-r4 apk
symfony/deprecation-contracts v3.0.2 php-composer ppv-lite86 0.2.17 rust-crate
symfony/dom-crawler v5.4.11 php-composer privacy 4.0.0-dev.0 npm
symfony/event-dispatcher v5.4.26 php-composer proc-macro2 1.0.76 rust-crate
symfony/event-dispatcher-contracts v3.0.2 php-composer procps-ng 4.0.4-r3 apk
symfony/http-foundation v5.4.25 php-composer profiling 1.0.13 rust-crate
symfony/mailer v5.4.22 php-composer profiling-procmacros 1.0.13 rust-crate
symfony/mime v5.4.19 php-composer psr/cache 3.0.0 php-composer
symfony/polyfill-ctype v1.28.0 php-composer psr/clock 1.0.0 php-composer
symfony/polyfill-intl-grapheme v1.28.0 php-composer psr/container 2.0.2 php-composer
symfony/polyfill-intl-idn v1.28.0 php-composer psr/event-dispatcher 1.0.0 php-composer
symfony/polyfill-intl-normalizer v1.28.0 php-composer psr/http-client 1.0.3 php-composer
symfony/polyfill-mbstring v1.27.0 php-composer psr/http-factory 1.1.0 php-composer
symfony/polyfill-mbstring v1.28.0 php-composer psr/http-message 2.0 php-composer
symfony/polyfill-php72 v1.28.0 php-composer psr/log 3.0.2 php-composer (+1 duplicate)
symfony/polyfill-php73 v1.26.0 php-composer punic/punic 3.8.1 php-composer
symfony/polyfill-php73 v1.28.0 php-composer quote 1.0.35 rust-crate
symfony/polyfill-php80 v1.27.0 php-composer radium 0.7.0 rust-crate
symfony/polyfill-php80 v1.28.0 php-composer ralouphie/getallheaders 3.0.3 php-composer
symfony/process v5.4.34 php-composer rand 0.8.5 rust-crate
symfony/routing v5.4.25 php-composer rand_chacha 0.3.1 rust-crate
symfony/service-contracts v3.0.2 php-composer rand_core 0.6.4 rust-crate
symfony/string v6.0.19 php-composer rav1e 0.7.1 rust-crate
symfony/translation v5.4.24 php-composer rav1e-libs 0.7.1-r2 apk
symfony/translation-contracts v2.4.0 php-composer rayon 1.8.0 rust-crate
talloc 2.4.2-r1 apk rayon-core 1.12.0 rust-crate
tdb-libs 1.4.9-r1 apk readline 8.2.13-r1 apk
tevent 0.16.1-r0 apk recommendations 5.0.0-dev.0 npm
thecodingmachine/safe v1.3.3 php-composer rsync 3.4.3-r0 apk
tiff 4.6.0t-r0 apk rubix/ml 2.5.2 php-composer
twofactor_totp 11.0.0-dev npm rubix/tensor 3.0.5 php-composer
tzdata 2024a-r1 apk rullzer/easytotp v0.1.4 php-composer
umount 2.40.1-r1 apk runuser 2.41-r9 apk
util-linux 2.40.1-r1 apk rustix 0.38.28 rust-crate
util-linux-misc 2.40.1-r1 apk sabre/dav 4.7.0 php-composer
utmps-libs 0.1.2.2-r1 apk sabre/event 5.1.7 php-composer
uuidgen 2.40.1-r1 apk sabre/http 5.1.12 php-composer
v4l-utils-libs 1.24.1-r1 apk sabre/uri 2.3.4 php-composer
vidstab 1.1.1-r0 apk sabre/vobject 4.5.6 php-composer
viewer 2.3.0 npm sabre/xml 2.2.11 php-composer
vulkan-loader 1.3.261.1-r0 apk samba-client 4.21.9-r1 apk
wapmorgan/mp3info 0.1.0 php-composer samba-client-libs 4.21.9-r1 apk
wayland-libs-client 1.22.0-r4 apk samba-common 4.21.9-r1 apk
web-auth/cose-lib v3.3.9 php-composer samba-libs 4.21.9-r1 apk
web-auth/metadata-service v3.3.9 php-composer samba-util-libs 4.21.9-r1 apk
web-auth/webauthn-lib v3.3.9 php-composer scan_fmt 0.2.6 rust-crate
wipefs 2.40.1-r1 apk scanelf 1.3.8-r1 apk
x264-libs 0.164_git20231001-r0 apk sdl2-compat 2.32.56-r0 apk
x265-libs 3.6-r0 apk sdl3 3.2.16-r0 apk
xvidcore 1.3.7-r2 apk serd-libs 0.32.4-r0 apk
xz-libs 5.6.1-r3 apk setarch 2.41-r9 apk
zimg 3.0.5-r2 apk setpriv 2.41-r9 apk
zix-libs 0.4.2-r0 apk sfdisk 2.41-r9 apk
zlib 1.3.1-r1 apk shaderc 2024.4-r0 apk
zstd-libs 1.5.6-r0 apk shadow 4.17.3-r0 apk
shared-mime-info 2.4-r6 apk
signal-hook 0.3.17 rust-crate
signal-hook-registry 1.4.1 rust-crate
simd_helpers 0.1.0 rust-crate
skalibs-libs 2.14.4.0-r0 apk
sord-libs 0.16.18-r0 apk
soxr 0.1.3-r7 apk
speexdsp 1.2.1-r2 apk
spirv-tools 1.4.313.0-r0 apk
spomky-labs/cbor-php 3.2.2 php-composer
spomky-labs/pki-framework 1.4.0 php-composer
sqlite-libs 3.49.2-r1 apk
sratom 0.6.18-r0 apk
ssl_client 1.37.0-r20 apk
stecman/symfony-console-completion v0.14.0 php-composer
sudo 1.9.17_p2-r0 apk
support 4.0.0-dev.0 npm
symfony/console v6.4.32 php-composer
symfony/css-selector v6.4.13 php-composer
symfony/deprecation-contracts v3.6.0 php-composer (+1 duplicate)
symfony/dom-crawler v6.4.23 php-composer
symfony/event-dispatcher v6.4.32 php-composer
symfony/event-dispatcher-contracts v3.6.0 php-composer
symfony/filesystem v6.4.30 php-composer
symfony/http-foundation v6.4.32 php-composer
symfony/mailer v6.4.31 php-composer
symfony/mime v6.4.32 php-composer
symfony/polyfill-intl-grapheme v1.33.0 php-composer
symfony/polyfill-intl-idn v1.33.0 php-composer
symfony/polyfill-intl-normalizer v1.33.0 php-composer
symfony/polyfill-mbstring v1.31.0 php-composer
symfony/polyfill-php80 v1.31.0 php-composer
symfony/polyfill-php82 v1.31.0 php-composer
symfony/polyfill-php82 v1.32.0 php-composer
symfony/polyfill-php83 v1.31.0 php-composer
symfony/polyfill-php83 v1.33.0 php-composer
symfony/polyfill-php84 v1.32.0 php-composer
symfony/polyfill-uuid v1.33.0 php-composer
symfony/process v6.4.33 php-composer
symfony/routing v6.4.32 php-composer
symfony/service-contracts v3.6.1 php-composer
symfony/string v6.4.30 php-composer
symfony/translation v6.4.32 php-composer
symfony/translation-contracts v3.6.1 php-composer
symfony/uid v6.4.24 php-composer
syn 2.0.48 rust-crate
talloc 2.4.2-r1 apk
tap 1.0.1 rust-crate
tdb-libs 1.4.12-r0 apk
teams 32.0.0 npm
terminal_size 0.3.0 rust-crate
tevent 0.16.1-r0 apk
text 6.0.0 npm
thiserror 1.0.56 rust-crate
thiserror-impl 1.0.56 rust-crate
tiff 4.7.1-r0 apk
tinyvec 1.9.0 rust-crate
tzdata 2026b-r0 apk
umount 2.41-r9 apk
unicode-ident 1.0.12 rust-crate
unicode-width 0.1.11 rust-crate
utf8parse 0.2.1 rust-crate
util-linux 2.41-r9 apk
util-linux-misc 2.41-r9 apk
utmps-libs 0.1.3.1-r0 apk
uuidgen 2.41-r9 apk
v4l-utils-libs 1.28.1-r1 apk
v_frame 0.3.7 rust-crate
vidstab 1.1.1-r0 apk
viewer 5.0.0-dev.0 npm
vulkan-loader 1.4.313.0-r0 apk
wamania/php-stemmer v4.0.0 php-composer
wapmorgan/mp3info 0.1.1 php-composer
wayland-libs-client 1.23.1-r3 apk
web-auth/cose-lib 4.4.2 php-composer
web-auth/webauthn-lib 4.9.2 php-composer
wipefs 2.41-r9 apk
wyz 0.5.1 rust-crate
x264-libs 0.164.3108-r0 apk
x265-libs 3.6-r0 apk
xvidcore 1.3.7-r2 apk
xz-libs 5.8.3-r0 apk
y4m 0.8.0 rust-crate
zimg 3.0.5-r3 apk
zix-libs 0.6.2-r0 apk
zlib 1.3.2-r0 apk
zstd-libs 1.5.7-r0 apk
+126 -72
View File
@@ -9,29 +9,28 @@ project_blurb: |
Where are your photos and documents? With Nextcloud you pick a server of your choice, at home, in a data center or at a provider. And that is where your files will be. Nextcloud runs on that server, protecting your data and giving you access from your desktop or mobile devices. Through Nextcloud you also access, sync and share your existing data on that FTP drive at the office, a Dropbox or a NAS you have at home. Where are your photos and documents? With Nextcloud you pick a server of your choice, at home, in a data center or at a provider. And that is where your files will be. Nextcloud runs on that server, protecting your data and giving you access from your desktop or mobile devices. Through Nextcloud you also access, sync and share your existing data on that FTP drive at the office, a Dropbox or a NAS you have at home.
project_lsio_github_repo_url: "https://github.com/linuxserver/docker-{{ project_name }}" project_lsio_github_repo_url: "https://github.com/linuxserver/docker-{{ project_name }}"
# supported architectures # supported architectures
available_architectures: available_architectures:
- { arch: "{{ arch_x86_64 }}", tag: "amd64-latest"} - {arch: "{{ arch_x86_64 }}", tag: "amd64-latest"}
- { arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"} - {arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"}
# development version # development version
development_versions: true development_versions: true
development_versions_items: development_versions_items:
- { tag: "latest", desc: "Stable Nextcloud releases" } - {tag: "latest", desc: "Stable Nextcloud releases"}
- { tag: "develop", desc: "Beta Nextcloud pre-releases *only*" } - {tag: "develop", desc: "Beta Nextcloud pre-releases *only*"}
- {tag: "previous", desc: "Nextcloud releases from the previous major version"}
# container parameters # container parameters
common_param_env_vars_enabled: true common_param_env_vars_enabled: true
param_container_name: "{{ project_name }}" param_container_name: "{{ project_name }}"
param_usage_include_vols: true param_usage_include_vols: true
param_volumes: param_volumes:
- { vol_path: "/config", vol_host_path: "/path/to/{{ project_name }}/config", desc: "Persistent config files" } - {vol_path: "/config", vol_host_path: "/path/to/{{ project_name }}/config", desc: "Persistent config files"}
- { vol_path: "/data", vol_host_path: "/path/to/data", desc: "Your personal data." } - {vol_path: "/data", vol_host_path: "/path/to/data", desc: "Your personal data."}
param_usage_include_ports: true param_usage_include_ports: true
param_ports: param_ports:
- { external_port: "443", internal_port: "443", port_desc: "WebUI" } - {external_port: "443", internal_port: "443", port_desc: "WebUI"}
readonly_supported: false
nonroot_supported: false
# application setup block # application setup block
app_setup_block_enabled: true app_setup_block_enabled: true
app_setup_block: | app_setup_block: |
@@ -91,66 +90,121 @@ app_setup_block: |
``` ```
Afterwards, you can set `"path" => OC::$SERVERROOT . "/your_custom_apps_folder",` in your `config.php` file, per the [official documentation](https://docs.nextcloud.com/server/latest/admin_manual/apps_management.html#using-custom-app-directories). Afterwards, you can set `"path" => OC::$SERVERROOT . "/your_custom_apps_folder",` in your `config.php` file, per the [official documentation](https://docs.nextcloud.com/server/latest/admin_manual/apps_management.html#using-custom-app-directories).
# init diagram
init_diagram: |
"nextcloud:previous": {
docker-mods
base {
fix-attr +\nlegacy cont-init
}
docker-mods -> base
legacy-services
custom services
init-services -> legacy-services
init-services -> custom services
custom services -> legacy-services
legacy-services -> ci-service-check
init-migrations -> init-adduser
init-nginx-end -> init-config
init-os-end -> init-config
init-config -> init-config-end
init-crontab-config -> init-config-end
init-nextcloud-config -> init-config-end
init-config -> init-crontab-config
init-mods-end -> init-custom-files
init-adduser -> init-device-perms
base -> init-envfile
init-os-end -> init-folders
init-php -> init-keygen
base -> init-migrations
init-config-end -> init-mods
init-mods-package-install -> init-mods-end
init-mods -> init-mods-package-install
init-nginx-end -> init-nextcloud-config
init-samples -> init-nginx
init-version-checks -> init-nginx-end
init-adduser -> init-os-end
init-device-perms -> init-os-end
init-envfile -> init-os-end
init-keygen -> init-permissions
init-nginx -> init-php
init-folders -> init-samples
init-custom-files -> init-services
init-permissions -> init-version-checks
init-services -> svc-cron
svc-cron -> legacy-services
init-services -> svc-nginx
svc-nginx -> legacy-services
init-services -> svc-php-fpm
svc-php-fpm -> legacy-services
}
Base Images: {
"baseimage-alpine-nginx:3.22" <- "baseimage-alpine:3.22"
}
"nextcloud:previous" <- Base Images
# changelog # changelog
changelogs: changelogs:
- { date: "24.06.24:", desc: "Rebase to Alpine 3.20. Existing users should update their nginx confs to avoid http2 deprecation warnings."} - {date: "14.10.25:", desc: "Rebase to Alpine 3.22."}
- { date: "19.05.24:", desc: "Added util-linux package required for taskset."} - {date: "12.02.25:", desc: "Rebase to Alpine 3.21."}
- { date: "10.04.24:", desc: "Added imagemagick-pdf."} - {date: "09.01.25:", desc: "Fix uploading large files. Existing users should update their nginx confs."}
- { date: "05.04.24:", desc: "Added imagemagick-heic. Manual update to `config.php` required - see above."} - {date: "09.07.24:", desc: "Add `previous` tag for n-1 releases."}
- { date: "02.04.24:", desc: "Existing users should update: site-confs/default.conf - Add support for the Client Push (notify_push) plugin and the [new mod](https://github.com/linuxserver/docker-mods/tree/nextcloud-notify-push)."} - {date: "24.06.24:", desc: "Rebase to Alpine 3.20. Existing users should update their nginx confs to avoid http2 deprecation warnings."}
- { date: "22.03.24:", desc: "Add imagemagick-svg module."} - {date: "19.05.24:", desc: "Added util-linux package required for taskset."}
- { date: "06.03.24:", desc: "Rebase to Alpine 3.19 with php 8.3."} - {date: "10.04.24:", desc: "Added imagemagick-pdf."}
- { date: "02.01.24:", desc: "Existing users should update: site-confs/default.conf - Cleanup default site conf." } - {date: "05.04.24:", desc: "Added imagemagick-heic. Manual update to `config.php` required - see above."}
- { date: "22.12.23:", desc: "Site default conf updating to include mime.types for js and mjs and update location to include more file types." } - {date: "02.04.24:", desc: "Existing users should update: site-confs/default.conf - Add support for the Client Push (notify_push) plugin and the [new mod](https://github.com/linuxserver/docker-mods/tree/nextcloud-notify-push)."}
- { date: "28.10.23:", desc: "Disable web upgrades using occ during init." } - {date: "22.03.24:", desc: "Add imagemagick-svg module."}
- { date: "31.08.23:", desc: "Re-add updatenotification app. This allows users to be notified for app updates, but also notifies for NextCloud updates. Updating NextCloud via the web UI is not supported when using this image." } - {date: "06.03.24:", desc: "Rebase to Alpine 3.19 with php 8.3."}
- { date: "14.08.23:", desc: "Add develop branch." } - {date: "02.01.24:", desc: "Existing users should update: site-confs/default.conf - Cleanup default site conf."}
- { date: "25.06.23:", desc: "Move Nextcloud installation inside container. Remove CLI updater. [See changes announcement](https://info.linuxserver.io/issues/2023-06-25-nextcloud/)." } - {date: "22.12.23:", desc: "Site default conf updating to include mime.types for js and mjs and update location to include more file types."}
- { date: "21.06.23:", desc: "Existing users should update `/config/nginx/site-confs/default.conf` - Security fix for real ip settings." } - {date: "28.10.23:", desc: "Disable web upgrades using occ during init."}
- { date: "25.05.23:", desc: "Rebase to Alpine 3.18, deprecate armhf." } - {date: "31.08.23:", desc: "Re-add updatenotification app. This allows users to be notified for app updates, but also notifies for NextCloud updates. Updating NextCloud via the web UI is not supported when using this image."}
- { date: "13.04.23:", desc: "Move ssl.conf include to default.conf." } - {date: "14.08.23:", desc: "Add develop branch."}
- { date: "21.03.23:", desc: "Add php81-sysvsem as new dep for v26. Update default X-Robots-Tag to `noindex, nofollow``." } - {date: "25.06.23:", desc: "Move Nextcloud installation inside container. Remove CLI updater. [See changes announcement](https://info.linuxserver.io/issues/2023-06-25-nextcloud/)."}
- { date: "02.03.23:", desc: "Set permissions on crontabs during init." } - {date: "21.06.23:", desc: "Existing users should update `/config/nginx/site-confs/default.conf` - Security fix for real ip settings."}
- { date: "20.01.23:", desc: "Rebase to alpine 3.17 with php8.1." } - {date: "25.05.23:", desc: "Rebase to Alpine 3.18, deprecate armhf."}
- { date: "10.10.22:", desc: "Rebasing to alpine 3.15 with php8. Restructure nginx configs ([see changes announcement](https://info.linuxserver.io/issues/2022-08-20-nginx-base))." } - {date: "13.04.23:", desc: "Move ssl.conf include to default.conf."}
- { date: "30.09.22:", desc: "Disabled `output_buffering` as per [nextcloud docs](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/big_file_upload_configuration.html" } - {date: "21.03.23:", desc: "Add php81-sysvsem as new dep for v26. Update default X-Robots-Tag to `noindex, nofollow``."}
- { date: "21.05.22:", desc: "Update version check endpoint." } - {date: "02.03.23:", desc: "Set permissions on crontabs during init."}
- { date: "28.04.22:", desc: "Increase OPCache interned strings buffered setting to 16." } - {date: "20.01.23:", desc: "Rebase to alpine 3.17 with php8.1."}
- { date: "14.04.22:", desc: "Nginx default site config updated for v23 (existing users should delete `/config/nginx/site-confs/default.conf` and restart the container). Fix LDAP connection." } - {date: "10.10.22:", desc: "Rebasing to alpine 3.15 with php8. Restructure nginx configs ([see changes announcement](https://info.linuxserver.io/issues/2022-08-20-nginx-base))."}
- { date: "11.09.21:", desc: "Rebasing to alpine 3.14" } - {date: "30.09.22:", desc: "Disabled `output_buffering` as per [nextcloud docs](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/big_file_upload_configuration.html"}
- { date: "21.03.21:", desc: "Publish `php8` tag for testing." } - {date: "21.05.22:", desc: "Update version check endpoint."}
- { date: "25.02.21:", desc: "Nginx default site config updated for v21 (existing users should delete `/config/nginx/site-confs/default.conf` and restart the container)." } - {date: "28.04.22:", desc: "Increase OPCache interned strings buffered setting to 16."}
- { date: "21.01.21:", desc: "Fix php iconv (was breaking the mail addon). If installed, attempt to remove broken CODE Server app during startup." } - {date: "14.04.22:", desc: "Nginx default site config updated for v23 (existing users should delete `/config/nginx/site-confs/default.conf` and restart the container). Fix LDAP connection."}
- { date: "20.01.21:", desc: "Increase php fcgi timeout to prevent 504 Gateway timeout errors (existing users should delete `/config/nginx/site-confs/default.conf` and restart the container)." } - {date: "11.09.21:", desc: "Rebasing to alpine 3.14"}
- { date: "16.01.21:", desc: "Rebasing to alpine 3.13. Users with issues on 32-bit arm, [see this article](https://docs.linuxserver.io/faq#my-host-is-incompatible-with-images-based-on-ubuntu-focal-and-alpine-3-13)." } - {date: "21.03.21:", desc: "Publish `php8` tag for testing."}
- { date: "12.08.20:", desc: "Various updates to default site config, including added support for webfinger (existing users should delete `/config/nginx/site-confs/default.conf` and restart the container)." } - {date: "25.02.21:", desc: "Nginx default site config updated for v21 (existing users should delete `/config/nginx/site-confs/default.conf` and restart the container)."}
- { date: "03.06.20:", desc: "Rebasing to alpine 3.12" } - {date: "21.01.21:", desc: "Fix php iconv (was breaking the mail addon). If installed, attempt to remove broken CODE Server app during startup."}
- { date: "03.06.20:", desc: "Add php7-bcmath and php7-fileinfo" } - {date: "20.01.21:", desc: "Increase php fcgi timeout to prevent 504 Gateway timeout errors (existing users should delete `/config/nginx/site-confs/default.conf` and restart the container)."}
- { date: "31.05.20:", desc: "Add aliases for occ and updater.phar" } - {date: "16.01.21:", desc: "Rebasing to alpine 3.13. Users with issues on 32-bit arm, [see this article](https://docs.linuxserver.io/faq#my-host-is-incompatible-with-images-based-on-ubuntu-focal-and-alpine-3-13)."}
- { date: "31.03.20:", desc: "Allow crontab to be user customized, fix logrotate." } - {date: "12.08.20:", desc: "Various updates to default site config, including added support for webfinger (existing users should delete `/config/nginx/site-confs/default.conf` and restart the container)."}
- { date: "17.01.20:", desc: "Updated php.ini defaults and site config, including an optional HSTS directive (existing users should delete `/config/nginx/site-confs/default.conf` and restart the container)." } - {date: "03.06.20:", desc: "Rebasing to alpine 3.12"}
- { date: "19.12.19:", desc: "Rebasing to alpine 3.11." } - {date: "03.06.20:", desc: "Add php7-bcmath and php7-fileinfo"}
- { date: "18.11.19:", desc: "Nginx default site config updated for v17 (existing users should delete `/config/nginx/site-confs/default.conf` and restart the container)." } - {date: "31.05.20:", desc: "Add aliases for occ and updater.phar"}
- { date: "28.10.19:", desc: "Change cronjob to run every 5 minutes." } - {date: "31.03.20:", desc: "Allow crontab to be user customized, fix logrotate."}
- { date: "24.10.19:", desc: "Nginx default site config updated due to CVE-2019-11043 (existing users should delete `/config/nginx/site-confs/default.conf` and restart the container)." } - {date: "17.01.20:", desc: "Updated php.ini defaults and site config, including an optional HSTS directive (existing users should delete `/config/nginx/site-confs/default.conf` and restart the container)."}
- { date: "14.07.19:", desc: "Download nextcloud during build time." } - {date: "19.12.19:", desc: "Rebasing to alpine 3.11."}
- { date: "28.06.19:", desc: "Rebasing to alpine 3.10." } - {date: "18.11.19:", desc: "Nginx default site config updated for v17 (existing users should delete `/config/nginx/site-confs/default.conf` and restart the container)."}
- { date: "23.03.19:", desc: "Switching to new Base images, shift to arm32v7 tag." } - {date: "28.10.19:", desc: "Change cronjob to run every 5 minutes."}
- { date: "27.02.19:", desc: "Updating base nginx config to sync up with v15 requirements." } - {date: "24.10.19:", desc: "Nginx default site config updated due to CVE-2019-11043 (existing users should delete `/config/nginx/site-confs/default.conf` and restart the container)."}
- { date: "22.02.19:", desc: "Rebasing to alpine 3.9." } - {date: "14.07.19:", desc: "Download nextcloud during build time."}
- { date: "28.01.19:", desc: "Add pipeline logic and multi arch." } - {date: "28.06.19:", desc: "Rebasing to alpine 3.10."}
- { date: "25.01.19:", desc: "Add php7-phar for occ upgrades." } - {date: "23.03.19:", desc: "Switching to new Base images, shift to arm32v7 tag."}
- { date: "05.09.18:", desc: "Rebase to alpine 3.8." } - {date: "27.02.19:", desc: "Updating base nginx config to sync up with v15 requirements."}
- { date: "11.06.18:", desc: "Use latest rather than specific version for initial install." } - {date: "22.02.19:", desc: "Rebasing to alpine 3.9."}
- { date: "26.04.18:", desc: "Bump default install to 13.0.1." } - {date: "28.01.19:", desc: "Add pipeline logic and multi arch."}
- { date: "06.02.18:", desc: "Bump default install to 13.0.0." } - {date: "25.01.19:", desc: "Add php7-phar for occ upgrades."}
- { date: "26.01.18:", desc: "Rebase to alpine 3.7, bump default install to 12.0.5." } - {date: "05.09.18:", desc: "Rebase to alpine 3.8."}
- { date: "12.12.17:", desc: "Bump default install to 12.0.4, fix continuation lines." } - {date: "11.06.18:", desc: "Use latest rather than specific version for initial install."}
- { date: "15.10.17:", desc: "Sed php.ini for opcache requirements in newer nextcloud versions." } - {date: "26.04.18:", desc: "Bump default install to 13.0.1."}
- { date: "20.09.17:", desc: "Bump default install to 12.0.3." } - {date: "06.02.18:", desc: "Bump default install to 13.0.0."}
- { date: "19.08.17:", desc: "Bump default install to 12.0.2." } - {date: "26.01.18:", desc: "Rebase to alpine 3.7, bump default install to 12.0.5."}
- { date: "25.05.17:", desc: "Rebase to alpine 3.6." } - {date: "12.12.17:", desc: "Bump default install to 12.0.4, fix continuation lines."}
- { date: "22.05.17:", desc: "Update to nextcloud 12.0, adding required dependecies and note about commenting out SAMEORIGIN; line." } - {date: "15.10.17:", desc: "Sed php.ini for opcache requirements in newer nextcloud versions."}
- { date: "03.05.17:", desc: "Use community repo of memcache." } - {date: "20.09.17:", desc: "Bump default install to 12.0.3."}
- { date: "07.03.17:", desc: "Release into main repository and upgrade to php7 and Alpine 3.5." } - {date: "19.08.17:", desc: "Bump default install to 12.0.2."}
- {date: "25.05.17:", desc: "Rebase to alpine 3.6."}
- {date: "22.05.17:", desc: "Update to nextcloud 12.0, adding required dependecies and note about commenting out SAMEORIGIN; line."}
- {date: "03.05.17:", desc: "Use community repo of memcache."}
- {date: "07.03.17:", desc: "Release into main repository and upgrade to php7 and Alpine 3.5."}
@@ -1,4 +1,4 @@
## Version 2024/06/24 - Changelog: https://github.com/linuxserver/docker-nextcloud/commits/master/root/defaults/nginx/site-confs/default.conf.sample ## Version 2025/10/14 - Changelog: https://github.com/linuxserver/docker-nextcloud/commits/previous/root/defaults/nginx/site-confs/default.conf.sample
# Set the `immutable` cache control options only for assets with a cache busting `v` argument # Set the `immutable` cache control options only for assets with a cache busting `v` argument
map $arg_v $asset_immutable { map $arg_v $asset_immutable {
@@ -7,8 +7,12 @@ map $arg_v $asset_immutable {
} }
server { server {
listen *:80 default_server; listen 80 default_server;
listen *:443 ssl default_server; listen [::]:80 default_server;
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
listen 443 quic reuseport default_server;
listen [::]:443 quic reuseport default_server;
server_name _; server_name _;
@@ -23,7 +27,7 @@ server {
# https://docs.nextcloud.com/server/latest/admin_manual/installation/nginx.html#nextcloud-in-the-webroot-of-nginx # https://docs.nextcloud.com/server/latest/admin_manual/installation/nginx.html#nextcloud-in-the-webroot-of-nginx
# set max upload size and increase upload timeout: # set max upload size and increase upload timeout:
client_max_body_size 512M; client_max_body_size 0;
client_body_timeout 300s; client_body_timeout 300s;
fastcgi_buffers 64 4K; fastcgi_buffers 64 4K;
@@ -10,7 +10,7 @@ mkdir -p \
/data /data
# migrate legacy install (copy inside container) # migrate legacy install (copy inside container)
if [ -f /config/www/nextcloud/version.php ]; then if [[ -f /config/www/nextcloud/version.php ]]; then
echo "Migrating legacy install (this can take a while) ...)" echo "Migrating legacy install (this can take a while) ...)"
rsync -rlD --remove-source-files --exclude-from=/app/upgrade.exclude /config/www/nextcloud/ /app/www/public/ rsync -rlD --remove-source-files --exclude-from=/app/upgrade.exclude /config/www/nextcloud/ /app/www/public/
rm -rf /config/www/nextcloud/updater/ rm -rf /config/www/nextcloud/updater/
@@ -26,7 +26,7 @@ fi
# symlink config folders # symlink config folders
for dir in apps config themes; do for dir in apps config themes; do
if [ "$(readlink /app/www/public/${dir})" != "/config/www/nextcloud/${dir}" ]; then if [[ "$(readlink /app/www/public/${dir})" != "/config/www/nextcloud/${dir}" ]]; then
rm -rf "/app/www/public/${dir}" rm -rf "/app/www/public/${dir}"
ln -s "/config/www/nextcloud/${dir}" "/app/www/public/${dir}" ln -s "/config/www/nextcloud/${dir}" "/app/www/public/${dir}"
lsiown abc:abc "/config/www/nextcloud/${dir}" "/app/www/public/${dir}" lsiown abc:abc "/config/www/nextcloud/${dir}" "/app/www/public/${dir}"
@@ -34,9 +34,9 @@ for dir in apps config themes; do
done done
# get versions # get versions
image_version=$(php -r "require '/app/www/src/version.php'; echo implode('.', \$OC_Version);" 2>/dev/null) image_version=$(php -r "require '/app/www/src/version.php'; echo implode('.', \$OC_Version);" 2>/dev/null | xargs)
installed_version=$(php -r "require '/config/www/nextcloud/config/config.php'; echo \$CONFIG['version'];" 2>/dev/null) installed_version=$(php -r "require '/config/www/nextcloud/config/config.php'; echo \$CONFIG['version'];" 2>/dev/null | xargs)
if [ "${installed_version}" = "" ]; then if [[ "${installed_version}" = "" ]]; then
installed_version="0.0.0.0" installed_version="0.0.0.0"
fi fi
image_major="${image_version%%.*}" image_major="${image_version%%.*}"
@@ -54,23 +54,23 @@ if vergt "${installed_version}" "${image_version}"; then
sleep infinity sleep infinity
fi fi
if [ "${installed_version}" != "0.0.0.0" ] && vergt "${image_major}" "${max_upgrade}"; then if [[ "${installed_version}" != "0.0.0.0" ]] && vergt "${image_major}" "${max_upgrade}"; then
echo "Can't start Nextcloud because the version of the data (${installed_version}) is more than one major version behind the docker image version (${image_version}) and upgrading more than one major version is not supported. Please run an image tagged for the major version ${max_upgrade} first." echo "Can't start Nextcloud because the version of the data (${installed_version}) is more than one major version behind the docker image version (${image_version}) and upgrading more than one major version is not supported. Please run an image tagged for the major version ${max_upgrade} first."
sleep infinity sleep infinity
fi fi
if [ "${installed_version}" = "0.0.0.0" ] || [ ! -f /app/www/public/version.php ] || [ -z "$(ls -A /config/www/nextcloud/apps 2>/dev/null)" ]; then if [[ "${installed_version}" = "0.0.0.0" ]] || [[ ! -f /app/www/public/version.php ]] || [[ -z "$(ls -A /config/www/nextcloud/apps 2>/dev/null)" ]]; then
touch /tmp/needs_install touch /tmp/needs_install
fi fi
if [ "${installed_version}" != "0.0.0.0" ] && vergt "${image_version}" "${installed_version}"; then if [[ "${installed_version}" != "0.0.0.0" ]] && vergt "${image_version}" "${installed_version}"; then
touch /tmp/needs_upgrade touch /tmp/needs_upgrade
fi fi
# initialize nextcloud # initialize nextcloud
if [ -f /config/www/nextcloud/config/needs_migration ] || [ -f /tmp/needs_install ] || [ -f /tmp/needs_upgrade ]; then if [[ -f /config/www/nextcloud/config/needs_migration ]] || [[ -f /tmp/needs_install ]] || [[ -f /tmp/needs_upgrade ]]; then
echo "Initializing nextcloud ${image_version} (this can take a while) ..." echo "Initializing nextcloud ${image_version} (this can take a while) ..."
if [ -f /config/www/nextcloud/config/needs_migration ] || [ -f /tmp/needs_upgrade ]; then if [[ -f /config/www/nextcloud/config/needs_migration ]] || [[ -f /tmp/needs_upgrade ]]; then
echo "Upgrading nextcloud from ${installed_version} ..." echo "Upgrading nextcloud from ${installed_version} ..."
shippedApps=$(jq -r .shippedApps[] /app/www/src/core/shipped.json) shippedApps=$(jq -r .shippedApps[] /app/www/src/core/shipped.json)
for app in ${shippedApps}; do for app in ${shippedApps}; do
@@ -80,11 +80,11 @@ if [ -f /config/www/nextcloud/config/needs_migration ] || [ -f /tmp/needs_instal
rsync -rlD --exclude-from=/app/upgrade.exclude /app/www/src/ /app/www/public/ rsync -rlD --exclude-from=/app/upgrade.exclude /app/www/src/ /app/www/public/
for dir in apps config themes; do for dir in apps config themes; do
if [ -f /config/www/nextcloud/config/needs_migration ] || [ -f /tmp/needs_upgrade ] || [ -z "$(ls -A /app/www/public/${dir} 2>/dev/null)" ]; then if [[ -f /config/www/nextcloud/config/needs_migration ]] || [[ -f /tmp/needs_upgrade ]] || [[ -z "$(ls -A /app/www/public/${dir} 2>/dev/null)" ]]; then
rsync -rlD --include "/${dir}" --exclude '/*' /app/www/src/ /config/www/nextcloud/ rsync -rlD --include "/${dir}" --exclude '/*' /app/www/src/ /config/www/nextcloud/
fi fi
done done
if [ -z "$(ls -A /data/ 2>/dev/null)" ]; then if [[ -z "$(ls -A /data/ 2>/dev/null)" ]]; then
rsync -rlD --include "/data" --exclude '/*' /app/www/src/ / rsync -rlD --include "/data" --exclude '/*' /app/www/src/ /
fi fi
@@ -94,11 +94,11 @@ if [ -f /config/www/nextcloud/config/needs_migration ] || [ -f /tmp/needs_instal
/app/www/public \ /app/www/public \
/config/www/nextcloud /config/www/nextcloud
if [ -f /config/www/nextcloud/config/needs_migration ] || [ -f /tmp/needs_upgrade ]; then if [[ -f /config/www/nextcloud/config/needs_migration ]] || [[ -f /tmp/needs_upgrade ]]; then
# Upgrade # Upgrade
occ upgrade occ upgrade
else else
if [ "${installed_version}" = "0.0.0.0" ]; then if [[ "${installed_version}" = "0.0.0.0" ]]; then
# Install # Install
echo "New nextcloud instance" echo "New nextcloud instance"
echo "Please run the web-based installer on first connect!" echo "Please run the web-based installer on first connect!"
@@ -148,14 +148,14 @@ for APP in richdocumentscode; do
echo "Removing ${APP}" echo "Removing ${APP}"
fi fi
APP_PATH=$(occ app:getpath "${APP}" 2>/dev/null) APP_PATH=$(occ app:getpath "${APP}" 2>/dev/null)
if [ -z "${APP_PATH}" ] || [ ! -d "${APP_PATH}" ]; then if [[ -z "${APP_PATH}" ]] || [[ ! -d "${APP_PATH}" ]]; then
APP_PATH="/app/www/public/apps/${APP}" APP_PATH="/app/www/public/apps/${APP}"
fi fi
if [ -d "${APP_PATH}" ]; then if [[ -d "${APP_PATH}" ]]; then
occ app:disable "${APP}" >/dev/null 2>&1 occ app:disable "${APP}" >/dev/null 2>&1
fi fi
APP_STATUS="$(occ config:app:get "${APP}" enabled 2>/dev/null)" APP_STATUS="$(occ config:app:get "${APP}" enabled 2>/dev/null)"
if [ "${APP_STATUS}" != "no" ] && [ -n "${APP_STATUS}" ]; then if [[ "${APP_STATUS}" != "no" ]] && [[ -n "${APP_STATUS}" ]]; then
occ config:app:set "${APP}" enabled --value="no" >/dev/null 2>&1 occ config:app:set "${APP}" enabled --value="no" >/dev/null 2>&1
fi fi
occ app:remove "${APP}" >/dev/null 2>&1 occ app:remove "${APP}" >/dev/null 2>&1
@@ -163,14 +163,14 @@ for APP in richdocumentscode; do
done done
# set data directory # set data directory
if [ ! -s /config/www/nextcloud/config/config.php ]; then if [[ ! -s /config/www/nextcloud/config/config.php ]]; then
echo -e "<?php\n\$CONFIG = array (\n 'datadirectory' => '/data',\n);" >/config/www/nextcloud/config/config.php echo -e "<?php\n\$CONFIG = array (\n 'datadirectory' => '/data',\n);" >/config/www/nextcloud/config/config.php
elif [ -f /config/www/nextcloud/config/config.php ]; then elif [[ -f /config/www/nextcloud/config/config.php ]]; then
sed -i "s|/app/www/public/data|/data|g" /config/www/nextcloud/config/config.php sed -i "s|/app/www/public/data|/data|g" /config/www/nextcloud/config/config.php
fi fi
#modify javascript mime type and add .mjs support #modify javascript mime type and add .mjs support
if [ -s /etc/nginx/mime.types ]; then if [[ -s /etc/nginx/mime.types ]]; then
sed -i 's|\bjs;|js mjs;|g' /etc/nginx/mime.types sed -i 's|\bjs;|js mjs;|g' /etc/nginx/mime.types
sed -i 's|\bapplication/javascript|text/javascript|g' /etc/nginx/mime.types sed -i 's|\bapplication/javascript|text/javascript|g' /etc/nginx/mime.types
fi fi
View File