Compare commits

...

18 Commits

Author SHA1 Message Date
LinuxServer-CI
373ee2efc0 Bot Updating Package Versions 2023-09-29 00:41:10 +00:00
Eric Nemchik
56ae57320b
Merge pull request #359 from linuxserver/develop-updatenotification-app
Re-add updatenotification app
2023-09-28 19:36:15 -05:00
LinuxServer-CI
26c0913d86 Bot Updating Package Versions 2023-09-28 14:38:09 +00:00
LinuxServer-CI
525efaa99a Bot Updating Package Versions 2023-09-26 11:50:04 +00:00
quietsy
50c57a68f9
Merge pull request #365 from linuxserver/fix-lsiown-develop
Fix lsiown -R order
2023-09-18 16:57:26 +03:00
quietsy
a1a8f070f1 Fix lsiown -R order 2023-09-18 16:39:12 +03:00
LinuxServer-CI
9f953af7ad Bot Updating Package Versions 2023-09-14 18:33:10 +00:00
LinuxServer-CI
4d74174b8c Bot Updating Package Versions 2023-09-12 09:35:12 +00:00
LinuxServer-CI
db66b6a2cc Bot Updating Package Versions 2023-09-07 14:33:34 +00:00
LinuxServer-CI
92378267ac Bot Updating Package Versions 2023-09-05 11:50:04 +00:00
LinuxServer-CI
7f08b006fe Bot Updating Package Versions 2023-08-31 15:33:10 +00:00
Eric Nemchik
cea5b826cc
Re-add updatenotification app
Closes https://github.com/linuxserver/docker-nextcloud/issues/356

Signed-off-by: GitHub <noreply@github.com>
2023-08-31 14:00:49 +00:00
LinuxServer-CI
e7cdf18d23 Bot Updating Package Versions 2023-08-29 11:51:13 +00:00
LinuxServer-CI
d935187cb3 Bot Updating Package Versions 2023-08-22 11:50:11 +00:00
LinuxServer-CI
24cb0878c4 Bot Updating Package Versions 2023-08-15 11:57:10 +00:00
LinuxServer-CI
d641ed8dba Bot Updating Package Versions 2023-08-15 11:52:53 +00:00
quietsy
9651cce68c
Merge pull request #352 from linuxserver/initial-develop
Add develop branch
2023-08-15 09:27:38 +03:00
quietsy
a7f9b4c842 Add develop branch 2023-08-15 08:52:29 +03:00
13 changed files with 177 additions and 151 deletions

View File

@ -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/develop/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)
@ -115,7 +115,7 @@ 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/develop/root), add an entry to the changelog
```yml ```yml
changelogs: changelogs:

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/develop/.github/CONTRIBUTING.md) guideline and understand that I have made the correct modifications
------------------------------ ------------------------------

View File

@ -4,26 +4,26 @@ on:
workflow_dispatch: workflow_dispatch:
jobs: jobs:
external-trigger-master: external-trigger-develop:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3.1.0 - uses: actions/checkout@v3.1.0
- name: External Trigger - name: External Trigger
if: github.ref == 'refs/heads/master' if: github.ref == 'refs/heads/develop'
run: | run: |
if [ -n "${{ secrets.PAUSE_EXTERNAL_TRIGGER_NEXTCLOUD_MASTER }}" ]; then if [ -n "${{ secrets.PAUSE_EXTERNAL_TRIGGER_NEXTCLOUD_DEVELOP }}" ]; then
echo "**** Github secret PAUSE_EXTERNAL_TRIGGER_NEXTCLOUD_MASTER is set; skipping trigger. ****" echo "**** Github secret PAUSE_EXTERNAL_TRIGGER_NEXTCLOUD_DEVELOP is set; skipping trigger. ****"
echo "Github secret \`PAUSE_EXTERNAL_TRIGGER_NEXTCLOUD_MASTER\` is set; skipping trigger." >> $GITHUB_STEP_SUMMARY echo "Github secret \`PAUSE_EXTERNAL_TRIGGER_NEXTCLOUD_DEVELOP\` is set; 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 develop branch. To disable this trigger, set a Github secret named \"PAUSE_EXTERNAL_TRIGGER_NEXTCLOUD_DEVELOP\". ****"
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 "External trigger running off of develop branch. To disable this trigger, set a Github secret named \`PAUSE_EXTERNAL_TRIGGER_NEXTCLOUD_DEVELOP\`" >> $GITHUB_STEP_SUMMARY
echo "**** Retrieving external version ****" 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) 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 "**** Can't retrieve external version, exiting ****"
FAILURE_REASON="Can't retrieve external version for nextcloud branch master" FAILURE_REASON="Can't retrieve external version for nextcloud branch develop"
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"}],
@ -35,7 +35,7 @@ jobs:
echo "External version: ${EXT_RELEASE}" >> $GITHUB_STEP_SUMMARY echo "External version: ${EXT_RELEASE}" >> $GITHUB_STEP_SUMMARY
echo "**** Retrieving last pushed version ****" echo "**** Retrieving last pushed version ****"
image="linuxserver/nextcloud" image="linuxserver/nextcloud"
tag="latest" tag="develop"
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')
@ -61,7 +61,7 @@ jobs:
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 "**** Can't retrieve last pushed version, exiting ****"
FAILURE_REASON="Can't retrieve last pushed version for nextcloud tag latest" FAILURE_REASON="Can't retrieve last pushed version for nextcloud tag develop"
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 }}
@ -73,7 +73,7 @@ jobs:
echo "**** Version ${EXT_RELEASE} already pushed, exiting ****" echo "**** Version ${EXT_RELEASE} already pushed, exiting ****"
echo "Version ${EXT_RELEASE} already pushed, exiting" >> $GITHUB_STEP_SUMMARY 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/develop/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 ****"
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
@ -81,7 +81,7 @@ jobs:
echo "**** New version ${EXT_RELEASE} found; old version was ${IMAGE_VERSION}. Triggering new build ****" echo "**** New version ${EXT_RELEASE} found; old version was ${IMAGE_VERSION}. Triggering new build ****"
echo "New version ${EXT_RELEASE} found; old version was ${IMAGE_VERSION}. Triggering new build" >> $GITHUB_STEP_SUMMARY echo "New version ${EXT_RELEASE} found; old version was ${IMAGE_VERSION}. Triggering new build" >> $GITHUB_STEP_SUMMARY
response=$(curl -iX POST \ response=$(curl -iX POST \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nextcloud/job/master/buildWithParameters?PACKAGE_CHECK=false \ https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nextcloud/job/develop/buildWithParameters?PACKAGE_CHECK=false \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|") --user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
echo "**** Jenkins job queue url: ${response%$'\r'} ****" echo "**** Jenkins job queue url: ${response%$'\r'} ****"
echo "**** Sleeping 10 seconds until job starts ****" echo "**** Sleeping 10 seconds until job starts ****"
@ -97,7 +97,7 @@ jobs:
--data-urlencode "description=GHA external trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \ --data-urlencode "description=GHA external trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \
--data-urlencode "Submit=Submit" --data-urlencode "Submit=Submit"
echo "**** Notifying Discord ****" echo "**** Notifying Discord ****"
TRIGGER_REASON="A version change was detected for nextcloud tag latest. Old version:${IMAGE_VERSION} New version:${EXT_RELEASE}" TRIGGER_REASON="A version change was detected for nextcloud tag develop. Old version:${IMAGE_VERSION} New version:${EXT_RELEASE}"
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903, 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"}], "description": "**Build Triggered** \n**Reason:** '"${TRIGGER_REASON}"' \n**Build URL:** '"${buildurl}display/redirect"' \n"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }} "username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}

View File

@ -9,5 +9,5 @@ jobs:
- 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/develop/.github/PULL_REQUEST_TEMPLATE.md)!'
repo-token: ${{ secrets.GITHUB_TOKEN }} repo-token: ${{ secrets.GITHUB_TOKEN }}

View File

@ -4,28 +4,28 @@ on:
workflow_dispatch: workflow_dispatch:
jobs: jobs:
package-trigger-master: package-trigger-develop:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3.1.0 - uses: actions/checkout@v3.1.0
- name: Package Trigger - name: Package Trigger
if: github.ref == 'refs/heads/master' if: github.ref == 'refs/heads/develop'
run: | run: |
if [ -n "${{ secrets.PAUSE_PACKAGE_TRIGGER_NEXTCLOUD_MASTER }}" ]; then if [ -n "${{ secrets.PAUSE_PACKAGE_TRIGGER_NEXTCLOUD_DEVELOP }}" ]; then
echo "**** Github secret PAUSE_PACKAGE_TRIGGER_NEXTCLOUD_MASTER is set; skipping trigger. ****" echo "**** Github secret PAUSE_PACKAGE_TRIGGER_NEXTCLOUD_DEVELOP is set; skipping trigger. ****"
echo "Github secret \`PAUSE_PACKAGE_TRIGGER_NEXTCLOUD_MASTER\` is set; skipping trigger." >> $GITHUB_STEP_SUMMARY echo "Github secret \`PAUSE_PACKAGE_TRIGGER_NEXTCLOUD_DEVELOP\` is set; skipping trigger." >> $GITHUB_STEP_SUMMARY
exit 0 exit 0
fi 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 if [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nextcloud/job/develop/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 ****"
echo "There already seems to be an active build on Jenkins; skipping package trigger" >> $GITHUB_STEP_SUMMARY echo "There already seems to be an active build on Jenkins; skipping package trigger" >> $GITHUB_STEP_SUMMARY
exit 0 exit 0
fi 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 develop branch. To disable, set a Github secret named \"PAUSE_PACKAGE_TRIGGER_NEXTCLOUD_DEVELOP\". ****"
echo "Package trigger running off of master branch. To disable, set a Github secret named \`PAUSE_PACKAGE_TRIGGER_NEXTCLOUD_MASTER\`" >> $GITHUB_STEP_SUMMARY echo "Package trigger running off of develop branch. To disable, set a Github secret named \`PAUSE_PACKAGE_TRIGGER_NEXTCLOUD_DEVELOP\`" >> $GITHUB_STEP_SUMMARY
response=$(curl -iX POST \ response=$(curl -iX POST \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nextcloud/job/master/buildWithParameters?PACKAGE_CHECK=true \ https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nextcloud/job/develop/buildWithParameters?PACKAGE_CHECK=true \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|") --user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
echo "**** Jenkins job queue url: ${response%$'\r'} ****" echo "**** Jenkins job queue url: ${response%$'\r'} ****"
echo "**** Sleeping 10 seconds until job starts ****" echo "**** Sleeping 10 seconds until job starts ****"

View File

@ -82,12 +82,12 @@ RUN \
/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 '.[] | select(.prerelease == true) | .tag_name' \
| sed 's|^v||g' | sort -rV | head -1); \ | sed 's|^v||g' | sort -rV | head -1); \
fi && \ fi && \
curl -o \ curl -o \
/tmp/nextcloud.tar.bz2 -L \ /tmp/nextcloud.tar.bz2 -L \
https://download.nextcloud.com/server/releases/nextcloud-${NEXTCLOUD_RELEASE}.tar.bz2 && \ https://download.nextcloud.com/server/prereleases/nextcloud-${NEXTCLOUD_RELEASE}.tar.bz2 && \
tar xf /tmp/nextcloud.tar.bz2 -C \ tar xf /tmp/nextcloud.tar.bz2 -C \
/app/www/src --strip-components=1 && \ /app/www/src --strip-components=1 && \
rm -rf /app/www/src/updater && \ rm -rf /app/www/src/updater && \

View File

@ -82,12 +82,12 @@ RUN \
/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 '.[] | select(.prerelease == true) | .tag_name' \
| sed 's|^v||g' | sort -rV | head -1); \ | sed 's|^v||g' | sort -rV | head -1); \
fi && \ fi && \
curl -o \ curl -o \
/tmp/nextcloud.tar.bz2 -L \ /tmp/nextcloud.tar.bz2 -L \
https://download.nextcloud.com/server/releases/nextcloud-${NEXTCLOUD_RELEASE}.tar.bz2 && \ https://download.nextcloud.com/server/prereleases/nextcloud-${NEXTCLOUD_RELEASE}.tar.bz2 && \
tar xf /tmp/nextcloud.tar.bz2 -C \ tar xf /tmp/nextcloud.tar.bz2 -C \
/app/www/src --strip-components=1 && \ /app/www/src --strip-components=1 && \
rm -rf /app/www/src/updater && \ rm -rf /app/www/src/updater && \

98
Jenkinsfile vendored
View File

@ -48,7 +48,7 @@ pipeline {
script{ script{
env.EXIT_STATUS = '' env.EXIT_STATUS = ''
env.LS_RELEASE = sh( env.LS_RELEASE = sh(
script: '''docker run --rm quay.io/skopeo/stable:v1 inspect docker://ghcr.io/${LS_USER}/${CONTAINER_NAME}:latest 2>/dev/null | jq -r '.Labels.build_version' | awk '{print $3}' | grep '\\-ls' || : ''', script: '''docker run --rm quay.io/skopeo/stable:v1 inspect docker://ghcr.io/${LS_USER}/${CONTAINER_NAME}:develop 2>/dev/null | jq -r '.Labels.build_version' | awk '{print $3}' | grep '\\-ls' || : ''',
returnStdout: true).trim() returnStdout: true).trim()
env.LS_RELEASE_NOTES = sh( env.LS_RELEASE_NOTES = sh(
script: '''cat readme-vars.yml | awk -F \\" '/date: "[0-9][0-9].[0-9][0-9].[0-9][0-9]:/ {print $4;exit;}' | sed -E ':a;N;$!ba;s/\\r{0,1}\\n/\\\\n/g' ''', script: '''cat readme-vars.yml | awk -F \\" '/date: "[0-9][0-9].[0-9][0-9].[0-9][0-9]:/ {print $4;exit;}' | sed -E ':a;N;$!ba;s/\\r{0,1}\\n/\\\\n/g' ''',
@ -72,7 +72,7 @@ pipeline {
script{ script{
env.LS_TAG_NUMBER = sh( env.LS_TAG_NUMBER = sh(
script: '''#! /bin/bash script: '''#! /bin/bash
tagsha=$(git rev-list -n 1 ${LS_RELEASE} 2>/dev/null) tagsha=$(git rev-list -n 1 develop-${LS_RELEASE} 2>/dev/null)
if [ "${tagsha}" == "${COMMIT_SHA}" ]; then if [ "${tagsha}" == "${COMMIT_SHA}" ]; then
echo ${LS_RELEASE_NUMBER} echo ${LS_RELEASE_NUMBER}
elif [ -z "${GIT_COMMIT}" ]; then elif [ -z "${GIT_COMMIT}" ]; then
@ -110,7 +110,7 @@ pipeline {
steps{ steps{
script{ script{
env.EXT_RELEASE = sh( env.EXT_RELEASE = sh(
script: ''' 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 ''', script: ''' 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 ''',
returnStdout: true).trim() returnStdout: true).trim()
env.RELEASE_LINK = 'custom_command' env.RELEASE_LINK = 'custom_command'
} }
@ -150,10 +150,10 @@ pipeline {
} }
} }
} }
// If this is a master build use live docker endpoints // If this is a develop build use live docker endpoints
stage("Set ENV live build"){ stage("Set ENV live build"){
when { when {
branch "master" branch "develop"
environment name: 'CHANGE_ID', value: '' environment name: 'CHANGE_ID', value: ''
} }
steps { steps {
@ -163,20 +163,20 @@ pipeline {
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/' + env.CONTAINER_NAME env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/' + env.CONTAINER_NAME
env.QUAYIMAGE = 'quay.io/linuxserver.io/' + env.CONTAINER_NAME env.QUAYIMAGE = 'quay.io/linuxserver.io/' + env.CONTAINER_NAME
if (env.MULTIARCH == 'true') { if (env.MULTIARCH == 'true') {
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER env.CI_TAGS = 'amd64-develop-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-develop-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
} else { } else {
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER env.CI_TAGS = 'develop-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
} }
env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
env.META_TAG = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER env.META_TAG = 'develop-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN env.EXT_RELEASE_TAG = 'develop-version-' + env.EXT_RELEASE_CLEAN
} }
} }
} }
// If this is a dev build use dev docker endpoints // If this is a dev build use dev docker endpoints
stage("Set ENV dev build"){ stage("Set ENV dev build"){
when { when {
not {branch "master"} not {branch "develop"}
environment name: 'CHANGE_ID', value: '' environment name: 'CHANGE_ID', value: ''
} }
steps { steps {
@ -186,13 +186,13 @@ pipeline {
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lsiodev-' + env.CONTAINER_NAME env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lsiodev-' + env.CONTAINER_NAME
env.QUAYIMAGE = 'quay.io/linuxserver.io/lsiodev-' + env.CONTAINER_NAME env.QUAYIMAGE = 'quay.io/linuxserver.io/lsiodev-' + env.CONTAINER_NAME
if (env.MULTIARCH == 'true') { if (env.MULTIARCH == 'true') {
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA env.CI_TAGS = 'amd64-develop-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-develop-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
} else { } else {
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA env.CI_TAGS = 'develop-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
} }
env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
env.META_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA env.META_TAG = 'develop-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN env.EXT_RELEASE_TAG = 'develop-version-' + env.EXT_RELEASE_CLEAN
env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DEV_DOCKERHUB_IMAGE + '/tags/' env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DEV_DOCKERHUB_IMAGE + '/tags/'
} }
} }
@ -209,13 +209,13 @@ pipeline {
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME
env.QUAYIMAGE = 'quay.io/linuxserver.io/lspipepr-' + env.CONTAINER_NAME env.QUAYIMAGE = 'quay.io/linuxserver.io/lspipepr-' + env.CONTAINER_NAME
if (env.MULTIARCH == 'true') { if (env.MULTIARCH == 'true') {
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST env.CI_TAGS = 'amd64-develop-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST + '|arm64v8-develop-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
} else { } else {
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST env.CI_TAGS = 'develop-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
} }
env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
env.META_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST env.META_TAG = 'develop-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN env.EXT_RELEASE_TAG = 'develop-version-' + env.EXT_RELEASE_CLEAN
env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/pull/' + env.PULL_REQUEST env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/pull/' + env.PULL_REQUEST
env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.PR_DOCKERHUB_IMAGE + '/tags/' env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.PR_DOCKERHUB_IMAGE + '/tags/'
} }
@ -250,7 +250,7 @@ pipeline {
// Use helper containers to render templated files // Use helper containers to render templated files
stage('Update-Templates') { stage('Update-Templates') {
when { when {
branch "master" branch "develop"
environment name: 'CHANGE_ID', value: '' environment name: 'CHANGE_ID', value: ''
expression { expression {
env.CONTAINER_NAME != null env.CONTAINER_NAME != null
@ -261,13 +261,13 @@ pipeline {
set -e set -e
TEMPDIR=$(mktemp -d) TEMPDIR=$(mktemp -d)
docker pull ghcr.io/linuxserver/jenkins-builder:latest docker pull ghcr.io/linuxserver/jenkins-builder:latest
docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=master -v ${TEMPDIR}:/ansible/jenkins ghcr.io/linuxserver/jenkins-builder:latest docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=develop -v ${TEMPDIR}:/ansible/jenkins ghcr.io/linuxserver/jenkins-builder:latest
# Stage 1 - Jenkinsfile update # Stage 1 - Jenkinsfile update
if [[ "$(md5sum Jenkinsfile | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile | awk '{ print $1 }')" ]]; then if [[ "$(md5sum Jenkinsfile | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile | awk '{ print $1 }')" ]]; then
mkdir -p ${TEMPDIR}/repo mkdir -p ${TEMPDIR}/repo
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO} git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
cd ${TEMPDIR}/repo/${LS_REPO} cd ${TEMPDIR}/repo/${LS_REPO}
git checkout -f master git checkout -f develop
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile ${TEMPDIR}/repo/${LS_REPO}/ cp ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile ${TEMPDIR}/repo/${LS_REPO}/
git add Jenkinsfile git add Jenkinsfile
git commit -m 'Bot Updating Templated Files' git commit -m 'Bot Updating Templated Files'
@ -290,7 +290,7 @@ pipeline {
mkdir -p ${TEMPDIR}/repo mkdir -p ${TEMPDIR}/repo
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO} git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
cd ${TEMPDIR}/repo/${LS_REPO} cd ${TEMPDIR}/repo/${LS_REPO}
git checkout -f master git checkout -f develop
for i in ${TEMPLATES_TO_DELETE}; do for i in ${TEMPLATES_TO_DELETE}; do
git rm "${i}" git rm "${i}"
done done
@ -311,7 +311,7 @@ pipeline {
mkdir -p ${TEMPDIR}/repo mkdir -p ${TEMPDIR}/repo
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO} git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
cd ${TEMPDIR}/repo/${LS_REPO} cd ${TEMPDIR}/repo/${LS_REPO}
git checkout -f master git checkout -f develop
cd ${TEMPDIR}/docker-${CONTAINER_NAME} cd ${TEMPDIR}/docker-${CONTAINER_NAME}
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/workflows mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/workflows
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE
@ -372,7 +372,7 @@ pipeline {
// Exit the build if the Templated files were just updated // Exit the build if the Templated files were just updated
stage('Template-exit') { stage('Template-exit') {
when { when {
branch "master" branch "develop"
environment name: 'CHANGE_ID', value: '' environment name: 'CHANGE_ID', value: ''
environment name: 'FILES_UPDATED', value: 'true' environment name: 'FILES_UPDATED', value: 'true'
expression { expression {
@ -385,10 +385,10 @@ pipeline {
} }
} }
} }
// If this is a master build check the S6 service file perms // If this is a develop build check the S6 service file perms
stage("Check S6 Service file Permissions"){ stage("Check S6 Service file Permissions"){
when { when {
branch "master" branch "develop"
environment name: 'CHANGE_ID', value: '' environment name: 'CHANGE_ID', value: ''
environment name: 'EXIT_STATUS', value: '' environment name: 'EXIT_STATUS', value: ''
} }
@ -431,7 +431,7 @@ pipeline {
// Add package to Scarf.sh and set permissions // Add package to Scarf.sh and set permissions
stage("Scarf.sh package registry"){ stage("Scarf.sh package registry"){
when { when {
branch "master" branch "develop"
environment name: 'EXIT_STATUS', value: '' environment name: 'EXIT_STATUS', value: ''
} }
steps{ steps{
@ -559,7 +559,7 @@ pipeline {
// Take the image we just built and dump package versions for comparison // Take the image we just built and dump package versions for comparison
stage('Update-packages') { stage('Update-packages') {
when { when {
branch "master" branch "develop"
environment name: 'CHANGE_ID', value: '' environment name: 'CHANGE_ID', value: ''
environment name: 'EXIT_STATUS', value: '' environment name: 'EXIT_STATUS', value: ''
} }
@ -582,7 +582,7 @@ pipeline {
echo "Package tag sha from current packages in buit container is ${NEW_PACKAGE_TAG} comparing to old ${PACKAGE_TAG} from github" echo "Package tag sha from current packages in buit container is ${NEW_PACKAGE_TAG} comparing to old ${PACKAGE_TAG} from github"
if [ "${NEW_PACKAGE_TAG}" != "${PACKAGE_TAG}" ]; then if [ "${NEW_PACKAGE_TAG}" != "${PACKAGE_TAG}" ]; then
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/${LS_REPO} git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/${LS_REPO}
git --git-dir ${TEMPDIR}/${LS_REPO}/.git checkout -f master git --git-dir ${TEMPDIR}/${LS_REPO}/.git checkout -f develop
cp ${TEMPDIR}/package_versions.txt ${TEMPDIR}/${LS_REPO}/ cp ${TEMPDIR}/package_versions.txt ${TEMPDIR}/${LS_REPO}/
cd ${TEMPDIR}/${LS_REPO}/ cd ${TEMPDIR}/${LS_REPO}/
wait wait
@ -606,7 +606,7 @@ pipeline {
// Exit the build if the package file was just updated // Exit the build if the package file was just updated
stage('PACKAGE-exit') { stage('PACKAGE-exit') {
when { when {
branch "master" branch "develop"
environment name: 'CHANGE_ID', value: '' environment name: 'CHANGE_ID', value: ''
environment name: 'PACKAGE_UPDATED', value: 'true' environment name: 'PACKAGE_UPDATED', value: 'true'
environment name: 'EXIT_STATUS', value: '' environment name: 'EXIT_STATUS', value: ''
@ -620,7 +620,7 @@ pipeline {
// Exit the build if this is just a package check and there are no changes to push // Exit the build if this is just a package check and there are no changes to push
stage('PACKAGECHECK-exit') { stage('PACKAGECHECK-exit') {
when { when {
branch "master" branch "develop"
environment name: 'CHANGE_ID', value: '' environment name: 'CHANGE_ID', value: ''
environment name: 'PACKAGE_UPDATED', value: 'false' environment name: 'PACKAGE_UPDATED', value: 'false'
environment name: 'EXIT_STATUS', value: '' environment name: 'EXIT_STATUS', value: ''
@ -713,12 +713,12 @@ pipeline {
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
for PUSHIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do for PUSHIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
docker tag ${IMAGE}:${META_TAG} ${PUSHIMAGE}:${META_TAG} docker tag ${IMAGE}:${META_TAG} ${PUSHIMAGE}:${META_TAG}
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:latest docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:develop
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:${EXT_RELEASE_TAG} docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then if [ -n "${SEMVER}" ]; then
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:${SEMVER} docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:${SEMVER}
fi fi
docker push ${PUSHIMAGE}:latest docker push ${PUSHIMAGE}:develop
docker push ${PUSHIMAGE}:${META_TAG} docker push ${PUSHIMAGE}:${META_TAG}
docker push ${PUSHIMAGE}:${EXT_RELEASE_TAG} docker push ${PUSHIMAGE}:${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then if [ -n "${SEMVER}" ]; then
@ -764,10 +764,10 @@ pipeline {
fi fi
for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do
docker tag ${IMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} docker tag ${IMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG}
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-latest docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-develop
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-latest docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-develop
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then if [ -n "${SEMVER}" ]; then
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${SEMVER} docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${SEMVER}
@ -775,17 +775,17 @@ pipeline {
fi fi
docker push ${MANIFESTIMAGE}:amd64-${META_TAG} docker push ${MANIFESTIMAGE}:amd64-${META_TAG}
docker push ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} docker push ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
docker push ${MANIFESTIMAGE}:amd64-latest docker push ${MANIFESTIMAGE}:amd64-develop
docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG} docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker push ${MANIFESTIMAGE}:arm64v8-latest docker push ${MANIFESTIMAGE}:arm64v8-develop
docker push ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} docker push ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then if [ -n "${SEMVER}" ]; then
docker push ${MANIFESTIMAGE}:amd64-${SEMVER} docker push ${MANIFESTIMAGE}:amd64-${SEMVER}
docker push ${MANIFESTIMAGE}:arm64v8-${SEMVER} docker push ${MANIFESTIMAGE}:arm64v8-${SEMVER}
fi fi
docker manifest push --purge ${MANIFESTIMAGE}:latest || : docker manifest push --purge ${MANIFESTIMAGE}:develop || :
docker manifest create ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm64v8-latest docker manifest create ${MANIFESTIMAGE}:develop ${MANIFESTIMAGE}:amd64-develop ${MANIFESTIMAGE}:arm64v8-develop
docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm64v8-latest --os linux --arch arm64 --variant v8 docker manifest annotate ${MANIFESTIMAGE}:develop ${MANIFESTIMAGE}:arm64v8-develop --os linux --arch arm64 --variant v8
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} || : docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} || :
docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8 docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8
@ -801,13 +801,13 @@ pipeline {
digest=$(curl -s \ digest=$(curl -s \
--header "Accept: application/vnd.docker.distribution.manifest.v2+json" \ --header "Accept: application/vnd.docker.distribution.manifest.v2+json" \
--header "Authorization: Bearer ${token}" \ --header "Authorization: Bearer ${token}" \
"https://ghcr.io/v2/linuxserver/${CONTAINER_NAME}/manifests/arm32v7-latest") "https://ghcr.io/v2/linuxserver/${CONTAINER_NAME}/manifests/arm32v7-develop")
if [[ $(echo "$digest" | jq -r '.layers') != "null" ]]; then if [[ $(echo "$digest" | jq -r '.layers') != "null" ]]; then
docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-latest || : docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-develop || :
docker manifest create ${MANIFESTIMAGE}:arm32v7-latest ${MANIFESTIMAGE}:amd64-latest docker manifest create ${MANIFESTIMAGE}:arm32v7-develop ${MANIFESTIMAGE}:amd64-develop
docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-latest docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-develop
fi fi
docker manifest push --purge ${MANIFESTIMAGE}:latest docker manifest push --purge ${MANIFESTIMAGE}:develop
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG}
docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then if [ -n "${SEMVER}" ]; then
@ -822,7 +822,7 @@ pipeline {
// If this is a public release tag it in the LS Github // If this is a public release tag it in the LS Github
stage('Github-Tag-Push-Release') { stage('Github-Tag-Push-Release') {
when { when {
branch "master" branch "develop"
expression { expression {
env.LS_RELEASE != env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER env.LS_RELEASE != env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
} }
@ -834,17 +834,17 @@ pipeline {
sh '''curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/git/tags \ sh '''curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/git/tags \
-d '{"tag":"'${META_TAG}'",\ -d '{"tag":"'${META_TAG}'",\
"object": "'${COMMIT_SHA}'",\ "object": "'${COMMIT_SHA}'",\
"message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to master",\ "message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to develop",\
"type": "commit",\ "type": "commit",\
"tagger": {"name": "LinuxServer Jenkins","email": "jenkins@linuxserver.io","date": "'${GITHUB_DATE}'"}}' ''' "tagger": {"name": "LinuxServer Jenkins","email": "jenkins@linuxserver.io","date": "'${GITHUB_DATE}'"}}' '''
echo "Pushing New release for Tag" echo "Pushing New release for Tag"
sh '''#! /bin/bash sh '''#! /bin/bash
echo "Updating to ${EXT_RELEASE_CLEAN}" > releasebody.json echo "Updating to ${EXT_RELEASE_CLEAN}" > releasebody.json
echo '{"tag_name":"'${META_TAG}'",\ echo '{"tag_name":"'${META_TAG}'",\
"target_commitish": "master",\ "target_commitish": "develop",\
"name": "'${META_TAG}'",\ "name": "'${META_TAG}'",\
"body": "**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n\\n**Remote Changes:**\\n\\n' > start "body": "**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n\\n**Remote Changes:**\\n\\n' > start
printf '","draft": false,"prerelease": false}' >> releasebody.json printf '","draft": false,"prerelease": true}' >> releasebody.json
paste -d'\\0' start releasebody.json > releasebody.json.done paste -d'\\0' start releasebody.json > releasebody.json.done
curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases -d @releasebody.json.done''' curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases -d @releasebody.json.done'''
} }

View File

@ -1,5 +1,5 @@
<!-- DO NOT EDIT THIS FILE MANUALLY --> <!-- DO NOT EDIT THIS FILE MANUALLY -->
<!-- Please read the https://github.com/linuxserver/docker-nextcloud/blob/master/.github/CONTRIBUTING.md --> <!-- Please read the https://github.com/linuxserver/docker-nextcloud/blob/develop/.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)
@ -37,7 +37,7 @@ 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%2Fdevelop%2F&logo=jenkins)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-nextcloud/job/develop/)
[![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%2Flatest%2Fci-status.yml)](https://ci-tests.linuxserver.io/linuxserver/nextcloud/latest/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.
@ -50,7 +50,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://github.com/docker/distribution/blob/master/docs/spec/manifest-v2-2.md#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://github.com/docker/distribution/blob/master/docs/spec/manifest-v2-2.md#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:develop` 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:
@ -60,6 +60,14 @@ The architectures supported by this image are:
| arm64 | ✅ | arm64v8-\<version tag\> | | arm64 | ✅ | arm64v8-\<version tag\> |
| armhf | ❌ | | | armhf | ❌ | |
## Version Tags
This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags.
| Tag | Available | Description |
| :----: | :----: |--- |
| latest | ✅ | Stable Nextcloud releases |
| develop | ✅ | Beta Nextcloud pre-releases *only* |
## Application Setup ## Application Setup
Access the webui at `https://<your-ip>:443`, for more information check out [Nextcloud](https://nextcloud.com/). Access the webui at `https://<your-ip>:443`, for more information check out [Nextcloud](https://nextcloud.com/).
@ -105,7 +113,7 @@ Here are some example snippets to help you get started creating a container.
version: "2.1" version: "2.1"
services: services:
nextcloud: nextcloud:
image: lscr.io/linuxserver/nextcloud:latest image: lscr.io/linuxserver/nextcloud:develop
container_name: nextcloud container_name: nextcloud
environment: environment:
- PUID=1000 - PUID=1000
@ -131,7 +139,7 @@ docker run -d \
-v /path/to/appdata:/config \ -v /path/to/appdata:/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:develop
``` ```
@ -191,7 +199,7 @@ We publish various [Docker Mods](https://github.com/linuxserver/docker-mods) to
* container version number * container version number
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' nextcloud` * `docker inspect -f '{{ index .Config.Labels "build_version" }}' nextcloud`
* image version number * image version number
* `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:develop`
## Updating Info ## Updating Info
@ -209,7 +217,7 @@ Below are the instructions for updating containers:
### Via Docker Run ### Via Docker Run
* Update the image: `docker pull lscr.io/linuxserver/nextcloud:latest` * Update the image: `docker pull lscr.io/linuxserver/nextcloud:develop`
* Stop the running container: `docker stop nextcloud` * Stop the running container: `docker stop nextcloud`
* Delete the container: `docker rm nextcloud` * Delete the container: `docker rm nextcloud`
* Recreate a new container with the same docker run parameters as instructed above (if mapped correctly to a host folder, your `/config` folder and settings will be preserved) * Recreate a new container with the same docker run parameters as instructed above (if mapped correctly to a host folder, your `/config` folder and settings will be preserved)
@ -244,7 +252,7 @@ cd docker-nextcloud
docker build \ docker build \
--no-cache \ --no-cache \
--pull \ --pull \
-t lscr.io/linuxserver/nextcloud:latest . -t lscr.io/linuxserver/nextcloud:develop .
``` ```
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 using `multiarch/qemu-user-static`
@ -257,6 +265,8 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
## Versions ## Versions
* **31.08.23:** - 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.
* **14.08.23:** - Add develop branch.
* **25.06.23:** - Move Nextcloud installation inside container. Remove CLI updater. [See changes announcement](https://info.linuxserver.io/issues/2023-06-25-nextcloud/). * **25.06.23:** - Move Nextcloud installation inside container. Remove CLI updater. [See changes announcement](https://info.linuxserver.io/issues/2023-06-25-nextcloud/).
* **21.06.23:** - Existing users should update `/config/nginx/site-confs/default.conf` - Security fix for real ip settings. * **21.06.23:** - Existing users should update `/config/nginx/site-confs/default.conf` - Security fix for real ip settings.
* **25.05.23:** - Rebase to Alpine 3.18, deprecate armhf. * **25.05.23:** - Rebase to Alpine 3.18, deprecate armhf.

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 '.[] | select(.prerelease == true) | .tag_name' | sed 's|^v||g' | sort -rV | head -1"
release_type: stable release_type: prerelease
release_tag: latest release_tag: develop
ls_branch: master ls_branch: develop
build_armhf: false build_armhf: false
repo_vars: repo_vars:
- BUILD_VERSION_ARG = 'NEXTCLOUD_RELEASE' - BUILD_VERSION_ARG = 'NEXTCLOUD_RELEASE'

View File

@ -1,5 +1,7 @@
NAME VERSION TYPE NAME VERSION TYPE
@nextcloud/text 27.0.0-alpha.1 npm
Executes a command and passes the stdio streams of the created process to TCP sockets 1.0.0.0 dotnet Executes a command and passes the stdio streams of the created process to TCP sockets 1.0.0.0 dotnet
activity 2.19.0 npm
alpine-baselayout 3.4.3-r1 apk alpine-baselayout 3.4.3-r1 apk
alpine-baselayout-data 3.4.3-r1 apk alpine-baselayout-data 3.4.3-r1 apk
alpine-keys 2.4-r1 apk alpine-keys 2.4-r1 apk
@ -26,6 +28,7 @@ bash
beberlei/assert v3.3.1 php-composer beberlei/assert v3.3.1 php-composer
brick/math 0.9.2 php-composer brick/math 0.9.2 php-composer
brotli-libs 1.0.9-r14 apk brotli-libs 1.0.9-r14 apk
bruteforcesettings 2.7.0 npm
busybox 1.36.1-r2 apk busybox 1.36.1-r2 apk
busybox-binsh 1.36.1-r2 apk busybox-binsh 1.36.1-r2 apk
c-client 2007f-r15 apk c-client 2007f-r15 apk
@ -37,13 +40,13 @@ christian-riesen/base32
christophwurst/id3parser v0.1.4 php-composer christophwurst/id3parser v0.1.4 php-composer
cjson 1.7.15-r4 apk cjson 1.7.15-r4 apk
coreutils 9.3-r1 apk coreutils 9.3-r1 apk
cups-libs 2.4.6-r0 apk cups-libs 2.4.7-r0 apk
curl 8.2.1-r0 apk curl 8.3.0-r0 apk
cweagans/composer-patches 1.7.1 php-composer cweagans/composer-patches 1.7.3 php-composer
darsyn/ip 4.1.0 php-composer darsyn/ip 4.1.0 php-composer
dbus-libs 1.14.8-r0 apk dbus-libs 1.14.8-r0 apk
deepdiver/zipstreamer 2.0.0 php-composer deepdiver/zipstreamer 2.0.0 php-composer
deepdiver1975/tarstreamer 2.0.0 php-composer deepdiver1975/tarstreamer v2.1.0 php-composer
doctrine/cache 2.2.0 php-composer doctrine/cache 2.2.0 php-composer
doctrine/dbal 3.3.8 php-composer doctrine/dbal 3.3.8 php-composer
doctrine/deprecations v1.0.0 php-composer doctrine/deprecations v1.0.0 php-composer
@ -60,6 +63,9 @@ ffmpeg-libpostproc
ffmpeg-libswresample 6.0-r15 apk ffmpeg-libswresample 6.0-r15 apk
ffmpeg-libswscale 6.0-r15 apk ffmpeg-libswscale 6.0-r15 apk
fgrosse/phpasn1 v2.3.0 php-composer fgrosse/phpasn1 v2.3.0 php-composer
files_pdfviewer 2.8.0 npm
files_recommendation 1.6.0 npm
firstrunwizard 2.16.0 npm
flac-libs 1.4.3-r0 apk flac-libs 1.4.3-r0 apk
fontconfig 2.14.2-r3 apk fontconfig 2.14.2-r3 apk
freetype 2.13.0-r5 apk freetype 2.13.0-r5 apk
@ -106,7 +112,7 @@ league/mime-type-detection
league/uri 6.4.0 php-composer league/uri 6.4.0 php-composer
league/uri-interfaces 2.2.0 php-composer league/uri-interfaces 2.2.0 php-composer
libacl 2.3.1-r3 apk libacl 2.3.1-r3 apk
libarchive 3.6.2-r2 apk libarchive 3.7.2-r0 apk
libass 0.17.1-r0 apk libass 0.17.1-r0 apk
libasyncns 0.8-r1 apk libasyncns 0.8-r1 apk
libattr 2.5.1-r4 apk libattr 2.5.1-r4 apk
@ -117,8 +123,8 @@ libbsd
libbz2 1.0.8-r5 apk libbz2 1.0.8-r5 apk
libc-utils 0.7.2-r5 apk libc-utils 0.7.2-r5 apk
libcap2 2.69-r0 apk libcap2 2.69-r0 apk
libcrypto3 3.1.2-r0 apk libcrypto3 3.1.3-r0 apk
libcurl 8.2.1-r0 apk libcurl 8.3.0-r0 apk
libdav1d 1.2.1-r0 apk libdav1d 1.2.1-r0 apk
libde265 1.0.12-r0 apk libde265 1.0.12-r0 apk
libdrm 2.4.115-r4 apk libdrm 2.4.115-r4 apk
@ -150,7 +156,7 @@ libpciaccess
libplacebo 5.264.1-r1 apk libplacebo 5.264.1-r1 apk
libpng 1.6.39-r3 apk libpng 1.6.39-r3 apk
libpq 15.4-r0 apk libpq 15.4-r0 apk
libproc2 4.0.3-r1 apk libproc2 4.0.4-r0 apk
libpulse 16.1-r10 apk libpulse 16.1-r10 apk
libraw 0.21.1-r1 apk libraw 0.21.1-r1 apk
librist 0.2.7-r0 apk librist 0.2.7-r0 apk
@ -162,7 +168,7 @@ libsndfile
libsodium 1.0.18-r3 apk libsodium 1.0.18-r3 apk
libsrt 1.5.2-r0 apk libsrt 1.5.2-r0 apk
libssh 0.10.5-r0 apk libssh 0.10.5-r0 apk
libssl3 3.1.2-r0 apk libssl3 3.1.3-r0 apk
libstdc++ 12.2.1_git20220924-r10 apk libstdc++ 12.2.1_git20220924-r10 apk
libtasn1 4.19.0-r1 apk libtasn1 4.19.0-r1 apk
libtheora 1.1.1-r17 apk libtheora 1.1.1-r17 apk
@ -172,9 +178,9 @@ libuuid
libva 2.18.0-r1 apk libva 2.18.0-r1 apk
libvdpau 1.5-r1 apk libvdpau 1.5-r1 apk
libvorbis 1.3.7-r1 apk libvorbis 1.3.7-r1 apk
libvpx 1.13.0-r1 apk libvpx 1.13.0-r2 apk
libwbclient 4.18.5-r0 apk libwbclient 4.18.5-r0 apk
libwebp 1.3.1-r0 apk libwebp 1.3.2-r0 apk
libx11 1.8.4-r4 apk libx11 1.8.4-r4 apk
libxau 1.0.11-r2 apk libxau 1.0.11-r2 apk
libxcb 1.15-r1 apk libxcb 1.15-r1 apk
@ -206,83 +212,86 @@ nano
ncurses-terminfo-base 6.4_p20230506-r0 apk ncurses-terminfo-base 6.4_p20230506-r0 apk
netcat-openbsd 1.219-r1 apk netcat-openbsd 1.219-r1 apk
nettle 3.8.1-r2 apk nettle 3.8.1-r2 apk
nextcloud 1.0.0 npm
nextcloud/lognormalizer v1.0.0 php-composer nextcloud/lognormalizer v1.0.0 php-composer
nghttp2-libs 1.55.1-r0 apk nghttp2-libs 1.55.1-r0 apk
nginx 1.24.0 binary
nginx 1.24.0-r6 apk nginx 1.24.0-r6 apk
notifications 2.15.0 npm
numactl 2.0.16-r4 apk numactl 2.0.16-r4 apk
onevpl-libs 2023.2.1-r0 apk onevpl-libs 2023.2.1-r0 apk
oniguruma 6.9.8-r1 apk oniguruma 6.9.8-r1 apk
openssl 3.1.2-r0 apk openssl 3.1.3-r0 apk
opis/closure 3.6.3 php-composer opis/closure 3.6.3 php-composer
opus 1.4-r0 apk opus 1.4-r0 apk
orc 0.4.34-r0 apk orc 0.4.34-r0 apk
p11-kit 0.24.1-r2 apk p11-kit 0.24.1-r2 apk
pango 1.50.14-r1 apk pango 1.50.14-r1 apk
password_policy 1.17.0 npm
pcre 8.45-r3 apk pcre 8.45-r3 apk
pcre2 10.42-r1 apk pcre2 10.42-r1 apk
pear/archive_tar 1.4.14 php-composer pear/archive_tar 1.4.14 php-composer
pear/console_getopt v1.4.3 php-composer pear/console_getopt v1.4.3 php-composer
pear/pear-core-minimal v1.10.10 php-composer pear/pear-core-minimal v1.10.10 php-composer
pear/pear_exception v1.0.2 php-composer pear/pear_exception v1.0.2 php-composer
php-fpm 8.2.8 binary photos 2.3.0 npm
php-http/guzzle7-adapter 1.0.0 php-composer php-http/guzzle7-adapter 1.0.0 php-composer
php-http/httplug 2.2.0 php-composer php-http/httplug 2.2.0 php-composer
php-http/promise 1.1.0 php-composer php-http/promise 1.1.0 php-composer
php-opencloud/openstack v3.2.1 php-composer php-opencloud/openstack v3.2.1 php-composer
php82 8.2.8-r0 apk php82 8.2.10-r0 apk
php82-bcmath 8.2.8-r0 apk php82-bcmath 8.2.10-r0 apk
php82-bz2 8.2.8-r0 apk php82-bz2 8.2.10-r0 apk
php82-common 8.2.8-r0 apk php82-common 8.2.10-r0 apk
php82-ctype 8.2.8-r0 apk php82-ctype 8.2.10-r0 apk
php82-curl 8.2.8-r0 apk php82-curl 8.2.10-r0 apk
php82-dom 8.2.8-r0 apk php82-dom 8.2.10-r0 apk
php82-exif 8.2.8-r0 apk php82-exif 8.2.10-r0 apk
php82-fileinfo 8.2.8-r0 apk php82-fileinfo 8.2.10-r0 apk
php82-fpm 8.2.8-r0 apk php82-fpm 8.2.10-r0 apk
php82-ftp 8.2.8-r0 apk php82-ftp 8.2.10-r0 apk
php82-gd 8.2.8-r0 apk php82-gd 8.2.10-r0 apk
php82-gmp 8.2.8-r0 apk php82-gmp 8.2.10-r0 apk
php82-iconv 8.2.8-r0 apk php82-iconv 8.2.10-r0 apk
php82-imap 8.2.8-r0 apk php82-imap 8.2.10-r0 apk
php82-intl 8.2.8-r0 apk php82-intl 8.2.10-r0 apk
php82-ldap 8.2.8-r0 apk php82-ldap 8.2.10-r0 apk
php82-mbstring 8.2.8-r0 apk php82-mbstring 8.2.10-r0 apk
php82-mysqlnd 8.2.8-r0 apk php82-mysqlnd 8.2.10-r0 apk
php82-opcache 8.2.8-r0 apk php82-opcache 8.2.10-r0 apk
php82-openssl 8.2.8-r0 apk php82-openssl 8.2.10-r0 apk
php82-pcntl 8.2.8-r0 apk php82-pcntl 8.2.10-r0 apk
php82-pdo 8.2.8-r0 apk php82-pdo 8.2.10-r0 apk
php82-pdo_mysql 8.2.8-r0 apk php82-pdo_mysql 8.2.10-r0 apk
php82-pdo_pgsql 8.2.8-r0 apk php82-pdo_pgsql 8.2.10-r0 apk
php82-pdo_sqlite 8.2.8-r0 apk php82-pdo_sqlite 8.2.10-r0 apk
php82-pecl-apcu 5.1.22-r0 apk php82-pecl-apcu 5.1.22-r0 apk
php82-pecl-igbinary 3.2.14-r0 apk php82-pecl-igbinary 3.2.14-r0 apk
php82-pecl-imagick 3.7.0-r5 apk php82-pecl-imagick 3.7.0-r5 apk
php82-pecl-mcrypt 1.0.6-r0 apk php82-pecl-mcrypt 1.0.6-r0 apk
php82-pecl-memcached 3.2.0-r1 apk php82-pecl-memcached 3.2.0-r1 apk
php82-pecl-msgpack 2.2.0-r0 apk php82-pecl-msgpack 2.2.0-r0 apk
php82-pecl-redis 5.3.7-r2 apk php82-pecl-redis 6.0.0-r0 apk
php82-pecl-smbclient 1.1.1-r0 apk php82-pecl-smbclient 1.1.1-r0 apk
php82-pgsql 8.2.8-r0 apk php82-pgsql 8.2.10-r0 apk
php82-phar 8.2.8-r0 apk php82-phar 8.2.10-r0 apk
php82-posix 8.2.8-r0 apk php82-posix 8.2.10-r0 apk
php82-session 8.2.8-r0 apk php82-session 8.2.10-r0 apk
php82-simplexml 8.2.8-r0 apk php82-simplexml 8.2.10-r0 apk
php82-sockets 8.2.8-r0 apk php82-sockets 8.2.10-r0 apk
php82-sodium 8.2.8-r0 apk php82-sodium 8.2.10-r0 apk
php82-sqlite3 8.2.8-r0 apk php82-sqlite3 8.2.10-r0 apk
php82-sysvsem 8.2.8-r0 apk php82-sysvsem 8.2.10-r0 apk
php82-xml 8.2.8-r0 apk php82-xml 8.2.10-r0 apk
php82-xmlreader 8.2.8-r0 apk php82-xmlreader 8.2.10-r0 apk
php82-xmlwriter 8.2.8-r0 apk php82-xmlwriter 8.2.10-r0 apk
php82-zip 8.2.8-r0 apk php82-zip 8.2.10-r0 apk
phpseclib/phpseclib 2.0.40 php-composer phpseclib/phpseclib 2.0.40 php-composer
pimple/pimple v3.5.0 php-composer pimple/pimple v3.5.0 php-composer
pixman 0.42.2-r1 apk pixman 0.42.2-r1 apk
pkgconf 1.9.5-r0 apk pkgconf 1.9.5-r0 apk
popt 1.19-r2 apk popt 1.19-r2 apk
procps-ng 4.0.3-r1 apk privacy 1.11.0 npm
procps-ng 4.0.4-r0 apk
psr/cache 1.0.1 php-composer psr/cache 1.0.1 php-composer
psr/clock 1.0.0 php-composer psr/clock 1.0.0 php-composer
psr/container 2.0.2 php-composer psr/container 2.0.2 php-composer
@ -296,13 +305,14 @@ ralouphie/getallheaders
ramsey/collection 1.1.3 php-composer ramsey/collection 1.1.3 php-composer
ramsey/uuid 4.1.1 php-composer ramsey/uuid 4.1.1 php-composer
readline 8.2.1-r1 apk readline 8.2.1-r1 apk
related_resources 1.2.0 npm
rsync 3.2.7-r4 apk rsync 3.2.7-r4 apk
rubix/ml dev-chore/bump-flysystem-v2.1.1 php-composer rubix/ml dev-chore/bump-flysystem-v2.1.1 php-composer
rubix/tensor 2.2.3 php-composer rubix/tensor 2.2.3 php-composer
rullzer/easytotp v0.1.4 php-composer rullzer/easytotp v0.1.4 php-composer
sabre/dav 4.4.0 php-composer sabre/dav 4.4.0 php-composer
sabre/event 5.1.4 php-composer sabre/event 5.1.4 php-composer
sabre/http 5.1.5 php-composer sabre/http 5.1.10 php-composer
sabre/uri 2.2.2 php-composer sabre/uri 2.2.2 php-composer
sabre/vobject 4.4.2 php-composer sabre/vobject 4.4.2 php-composer
sabre/xml 2.2.5 php-composer sabre/xml 2.2.5 php-composer
@ -327,6 +337,7 @@ sqlite-libs
ssl_client 1.36.1-r2 apk ssl_client 1.36.1-r2 apk
stecman/symfony-console-completion 0.11.0 php-composer stecman/symfony-console-completion 0.11.0 php-composer
sudo 1.9.13_p3-r2 apk sudo 1.9.13_p3-r2 apk
suspicious_login 5.0.0 npm
svt-av1-libs 1.6.0-r0 apk svt-av1-libs 1.6.0-r0 apk
swiftmailer/swiftmailer v6.3.0 php-composer swiftmailer/swiftmailer v6.3.0 php-composer
symfony/console v5.4.19 php-composer symfony/console v5.4.19 php-composer
@ -360,10 +371,12 @@ tdb-libs
tevent 0.14.1-r1 apk tevent 0.14.1-r1 apk
thecodingmachine/safe v1.3.3 php-composer thecodingmachine/safe v1.3.3 php-composer
tiff 4.5.1-r0 apk tiff 4.5.1-r0 apk
twofactor_totp 9.0.0 npm
tzdata 2023c-r1 apk tzdata 2023c-r1 apk
utmps-libs 0.1.2.1-r1 apk utmps-libs 0.1.2.1-r1 apk
v4l-utils-libs 1.24.1-r0 apk v4l-utils-libs 1.24.1-r0 apk
vidstab 1.1.1-r0 apk vidstab 1.1.1-r0 apk
viewer 2.1.0 npm
vulkan-loader 1.3.243.0-r1 apk vulkan-loader 1.3.243.0-r1 apk
wayland-libs-client 1.22.0-r2 apk wayland-libs-client 1.22.0-r2 apk
web-auth/cose-lib v3.3.9 php-composer web-auth/cose-lib v3.3.9 php-composer

View File

@ -17,9 +17,10 @@ available_architectures:
- { arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"} - { arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"}
# development version # development version
development_versions: false 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*" }
# container parameters # container parameters
common_param_env_vars_enabled: true common_param_env_vars_enabled: true
@ -78,6 +79,8 @@ app_setup_block: |
# changelog # changelog
changelogs: changelogs:
- { 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: "14.08.23:", desc: "Add develop branch." }
- { 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: "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: "21.06.23:", desc: "Existing users should update `/config/nginx/site-confs/default.conf` - Security fix for real ip settings." } - { date: "21.06.23:", desc: "Existing users should update `/config/nginx/site-confs/default.conf` - Security fix for real ip settings." }
- { date: "25.05.23:", desc: "Rebase to Alpine 3.18, deprecate armhf." } - { date: "25.05.23:", desc: "Rebase to Alpine 3.18, deprecate armhf." }

View File

@ -91,7 +91,7 @@ if [ -f /config/www/nextcloud/config/needs_migration ] || [ -f /tmp/needs_instal
echo "Setting permissions" echo "Setting permissions"
lsiown abc:abc /data lsiown abc:abc /data
lsiown abc:abc -R \ lsiown -R abc:abc \
/app/www/public \ /app/www/public \
/config/www/nextcloud /config/www/nextcloud
@ -141,7 +141,7 @@ else
fi fi
# remove problematic apps # remove problematic apps
for APP in richdocumentscode updatenotification; do for APP in richdocumentscode; do
if (occ app:list | grep -q " - ${APP}:") 2>/dev/null; then if (occ app:list | grep -q " - ${APP}:") 2>/dev/null; then
echo "Removing ${APP}" echo "Removing ${APP}"
fi fi