mirror of
https://github.com/linuxserver/docker-nextcloud.git
synced 2026-06-03 09:57:35 +00:00
Compare commits
68 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 5432119b35 | |||
| 93a31b92d8 | |||
| 1f4892f00d | |||
| eed6caef67 | |||
| abf0cf271a | |||
| 0bfcb8d5a9 | |||
| fc68f42dc8 | |||
| 7c5766132f | |||
| 2dff9adc63 | |||
| 9393b12c8d | |||
| fa16614e69 | |||
| 77ed092e05 | |||
| ea5f835680 | |||
| effecf18e4 | |||
| 88106f48fc | |||
| 77d1a35de7 | |||
| 29db09b85d | |||
| e6b3f8b1c9 | |||
| c52ca9defd | |||
| 6cf2b8971c | |||
| 73b801ac2c | |||
| d91ea671e3 | |||
| 8ca96afc78 | |||
| 98d7659057 | |||
| d43ca4efef | |||
| a3ea6bdcca | |||
| 82d45b0f04 | |||
| 7e2fb6e3bd | |||
| 989b190595 | |||
| ba1619d05b | |||
| c559f8ac37 | |||
| b2b6a72a64 | |||
| c1095c4c21 | |||
| 952884138f | |||
| 5312dc251b | |||
| 44443756a6 | |||
| b5a46482a3 | |||
| 7418e904c0 | |||
| 01903b9114 | |||
| 765dee0eaa | |||
| 37e8834977 | |||
| 34358e63bd | |||
| 3fd3d15029 | |||
| e20dd83d42 | |||
| 8b3054aeba | |||
| bc6105bb18 | |||
| d2b6d946be | |||
| 5421b5b766 | |||
| ca08bf6356 | |||
| 946e3eb861 | |||
| 3a0a93dd24 | |||
| 9c7e18bb64 | |||
| 685743eab2 | |||
| 5ecde0417e | |||
| 29c502fc44 | |||
| 39f3c15512 | |||
| d6677cfc43 | |||
| 234610d94d | |||
| e00c11055e | |||
| ed98e24aa7 | |||
| 9a4d24cd18 | |||
| 8d8fda1690 | |||
| 18f8dd7ff6 | |||
| 6a16f357e0 | |||
| f8df570a5a | |||
| 595bb9bda2 | |||
| be1766be45 | |||
| 6ac0a2e866 |
@@ -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:
|
||||||
|
|||||||
@@ -4,6 +4,9 @@ on:
|
|||||||
- cron: '35 2 * * *'
|
- cron: '35 2 * * *'
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
stale:
|
stale:
|
||||||
permissions:
|
permissions:
|
||||||
|
|||||||
@@ -3,6 +3,9 @@ name: External Trigger Main
|
|||||||
on:
|
on:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
external-trigger-develop:
|
external-trigger-develop:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@@ -43,8 +46,8 @@ jobs:
|
|||||||
"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}\`" >> $GITHUB_STEP_SUMMARY
|
echo "Sanitized external version: \`${EXT_RELEASE_SANITIZED}\`" >> $GITHUB_STEP_SUMMARY
|
||||||
echo "Retrieving last pushed version" >> $GITHUB_STEP_SUMMARY
|
echo "Retrieving last pushed version" >> $GITHUB_STEP_SUMMARY
|
||||||
image="linuxserver/nextcloud"
|
image="linuxserver/nextcloud"
|
||||||
tag="develop"
|
tag="develop"
|
||||||
@@ -100,8 +103,8 @@ jobs:
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
echo "Last pushed version: \`${IMAGE_VERSION}\`" >> $GITHUB_STEP_SUMMARY
|
echo "Last pushed version: \`${IMAGE_VERSION}\`" >> $GITHUB_STEP_SUMMARY
|
||||||
if [ "${EXT_RELEASE}" == "${IMAGE_VERSION}" ]; then
|
if [ "${EXT_RELEASE_SANITIZED}" == "${IMAGE_VERSION}" ]; then
|
||||||
echo "Version \`${EXT_RELEASE}\` already pushed, exiting" >> $GITHUB_STEP_SUMMARY
|
echo "Sanitized version \`${EXT_RELEASE_SANITIZED}\` 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/develop/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" >> $GITHUB_STEP_SUMMARY
|
echo "New version \`${EXT_RELEASE}\` found; but there already seems to be an active build on Jenkins; exiting" >> $GITHUB_STEP_SUMMARY
|
||||||
@@ -116,7 +119,7 @@ jobs:
|
|||||||
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
|
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
|
||||||
else
|
else
|
||||||
printf "\n## Trigger new build\n\n" >> $GITHUB_STEP_SUMMARY
|
printf "\n## Trigger new build\n\n" >> $GITHUB_STEP_SUMMARY
|
||||||
echo "New version \`${EXT_RELEASE}\` found; old version was \`${IMAGE_VERSION}\`. Triggering new build" >> $GITHUB_STEP_SUMMARY
|
echo "New sanitized version \`${EXT_RELEASE_SANITIZED}\` found; old version was \`${IMAGE_VERSION}\`. Triggering new build" >> $GITHUB_STEP_SUMMARY
|
||||||
if [[ "${artifacts_found}" == "true" ]]; then
|
if [[ "${artifacts_found}" == "true" ]]; then
|
||||||
echo "All artifacts seem to be uploaded." >> $GITHUB_STEP_SUMMARY
|
echo "All artifacts seem to be uploaded." >> $GITHUB_STEP_SUMMARY
|
||||||
fi
|
fi
|
||||||
@@ -136,7 +139,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 develop. 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_SANITIZED}"
|
||||||
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 }}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -2,8 +2,14 @@ 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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
+33
-34
@@ -1,6 +1,6 @@
|
|||||||
# syntax=docker/dockerfile:1
|
# syntax=docker/dockerfile:1
|
||||||
|
|
||||||
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.21
|
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.22
|
||||||
|
|
||||||
# set version label
|
# set version label
|
||||||
ARG BUILD_DATE
|
ARG BUILD_DATE
|
||||||
@@ -19,44 +19,43 @@ RUN \
|
|||||||
gnu-libiconv \
|
gnu-libiconv \
|
||||||
imagemagick \
|
imagemagick \
|
||||||
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 \
|
||||||
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'; \
|
||||||
@@ -66,7 +65,7 @@ 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=-1'; \
|
echo 'memory_limit=-1'; \
|
||||||
echo 'upload_max_filesize=100G'; \
|
echo 'upload_max_filesize=100G'; \
|
||||||
@@ -75,7 +74,7 @@ RUN \
|
|||||||
echo 'max_execution_time=3600'; \
|
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/ && \
|
||||||
|
|||||||
+33
-34
@@ -1,6 +1,6 @@
|
|||||||
# syntax=docker/dockerfile:1
|
# syntax=docker/dockerfile:1
|
||||||
|
|
||||||
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.21
|
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.22
|
||||||
|
|
||||||
# set version label
|
# set version label
|
||||||
ARG BUILD_DATE
|
ARG BUILD_DATE
|
||||||
@@ -19,44 +19,43 @@ RUN \
|
|||||||
gnu-libiconv \
|
gnu-libiconv \
|
||||||
imagemagick \
|
imagemagick \
|
||||||
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 \
|
||||||
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'; \
|
||||||
@@ -66,7 +65,7 @@ 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=-1'; \
|
echo 'memory_limit=-1'; \
|
||||||
echo 'upload_max_filesize=100G'; \
|
echo 'upload_max_filesize=100G'; \
|
||||||
@@ -75,7 +74,7 @@ RUN \
|
|||||||
echo 'max_execution_time=3600'; \
|
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/ && \
|
||||||
|
|||||||
Vendored
+81
-36
@@ -94,7 +94,11 @@ pipeline {
|
|||||||
env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DOCKERHUB_IMAGE + '/tags/'
|
env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DOCKERHUB_IMAGE + '/tags/'
|
||||||
env.PULL_REQUEST = env.CHANGE_ID
|
env.PULL_REQUEST = env.CHANGE_ID
|
||||||
env.TEMPLATED_FILES = 'Jenkinsfile README.md LICENSE .editorconfig ./.github/CONTRIBUTING.md ./.github/FUNDING.yml ./.github/ISSUE_TEMPLATE/config.yml ./.github/ISSUE_TEMPLATE/issue.bug.yml ./.github/ISSUE_TEMPLATE/issue.feature.yml ./.github/PULL_REQUEST_TEMPLATE.md ./.github/workflows/external_trigger_scheduler.yml ./.github/workflows/greetings.yml ./.github/workflows/package_trigger_scheduler.yml ./.github/workflows/call_issue_pr_tracker.yml ./.github/workflows/call_issues_cron.yml ./.github/workflows/permissions.yml ./.github/workflows/external_trigger.yml'
|
env.TEMPLATED_FILES = 'Jenkinsfile README.md LICENSE .editorconfig ./.github/CONTRIBUTING.md ./.github/FUNDING.yml ./.github/ISSUE_TEMPLATE/config.yml ./.github/ISSUE_TEMPLATE/issue.bug.yml ./.github/ISSUE_TEMPLATE/issue.feature.yml ./.github/PULL_REQUEST_TEMPLATE.md ./.github/workflows/external_trigger_scheduler.yml ./.github/workflows/greetings.yml ./.github/workflows/package_trigger_scheduler.yml ./.github/workflows/call_issue_pr_tracker.yml ./.github/workflows/call_issues_cron.yml ./.github/workflows/permissions.yml ./.github/workflows/external_trigger.yml'
|
||||||
|
if ( env.SYFT_IMAGE_TAG == null ) {
|
||||||
|
env.SYFT_IMAGE_TAG = 'latest'
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
echo "Using syft image tag ${SYFT_IMAGE_TAG}"
|
||||||
sh '''#! /bin/bash
|
sh '''#! /bin/bash
|
||||||
echo "The default github branch detected as ${GH_DEFAULT_BRANCH}" '''
|
echo "The default github branch detected as ${GH_DEFAULT_BRANCH}" '''
|
||||||
script{
|
script{
|
||||||
@@ -204,6 +208,7 @@ pipeline {
|
|||||||
env.META_TAG = 'develop-' + 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 = 'develop-version-' + env.EXT_RELEASE_CLEAN
|
env.EXT_RELEASE_TAG = 'develop-version-' + env.EXT_RELEASE_CLEAN
|
||||||
env.BUILDCACHE = 'docker.io/lsiodev/buildcache,registry.gitlab.com/linuxserver.io/docker-jenkins-builder/lsiodev-buildcache,ghcr.io/linuxserver/lsiodev-buildcache,quay.io/linuxserver.io/lsiodev-buildcache'
|
env.BUILDCACHE = 'docker.io/lsiodev/buildcache,registry.gitlab.com/linuxserver.io/docker-jenkins-builder/lsiodev-buildcache,ghcr.io/linuxserver/lsiodev-buildcache,quay.io/linuxserver.io/lsiodev-buildcache'
|
||||||
|
env.CITEST_IMAGETAG = 'latest'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -229,6 +234,7 @@ pipeline {
|
|||||||
env.EXT_RELEASE_TAG = 'develop-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/'
|
||||||
env.BUILDCACHE = 'docker.io/lsiodev/buildcache,registry.gitlab.com/linuxserver.io/docker-jenkins-builder/lsiodev-buildcache,ghcr.io/linuxserver/lsiodev-buildcache,quay.io/linuxserver.io/lsiodev-buildcache'
|
env.BUILDCACHE = 'docker.io/lsiodev/buildcache,registry.gitlab.com/linuxserver.io/docker-jenkins-builder/lsiodev-buildcache,ghcr.io/linuxserver/lsiodev-buildcache,quay.io/linuxserver.io/lsiodev-buildcache'
|
||||||
|
env.CITEST_IMAGETAG = 'develop'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -254,6 +260,7 @@ pipeline {
|
|||||||
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/'
|
||||||
env.BUILDCACHE = 'docker.io/lsiodev/buildcache,registry.gitlab.com/linuxserver.io/docker-jenkins-builder/lsiodev-buildcache,ghcr.io/linuxserver/lsiodev-buildcache,quay.io/linuxserver.io/lsiodev-buildcache'
|
env.BUILDCACHE = 'docker.io/lsiodev/buildcache,registry.gitlab.com/linuxserver.io/docker-jenkins-builder/lsiodev-buildcache,ghcr.io/linuxserver/lsiodev-buildcache,quay.io/linuxserver.io/lsiodev-buildcache'
|
||||||
|
env.CITEST_IMAGETAG = 'develop'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -276,7 +283,7 @@ pipeline {
|
|||||||
-v ${WORKSPACE}:/mnt \
|
-v ${WORKSPACE}:/mnt \
|
||||||
-e AWS_ACCESS_KEY_ID=\"${S3_KEY}\" \
|
-e AWS_ACCESS_KEY_ID=\"${S3_KEY}\" \
|
||||||
-e AWS_SECRET_ACCESS_KEY=\"${S3_SECRET}\" \
|
-e AWS_SECRET_ACCESS_KEY=\"${S3_SECRET}\" \
|
||||||
ghcr.io/linuxserver/baseimage-alpine:3.20 s6-envdir -fn -- /var/run/s6/container_environment /bin/bash -c "\
|
ghcr.io/linuxserver/baseimage-alpine:3 s6-envdir -fn -- /var/run/s6/container_environment /bin/bash -c "\
|
||||||
apk add --no-cache python3 && \
|
apk add --no-cache python3 && \
|
||||||
python3 -m venv /lsiopy && \
|
python3 -m venv /lsiopy && \
|
||||||
pip install --no-cache-dir -U pip && \
|
pip install --no-cache-dir -U pip && \
|
||||||
@@ -611,13 +618,16 @@ pipeline {
|
|||||||
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
|
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
|
||||||
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
|
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
|
||||||
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
|
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
|
||||||
|
|
||||||
if [[ "${PACKAGE_CHECK}" != "true" ]]; then
|
if [[ "${PACKAGE_CHECK}" != "true" ]]; then
|
||||||
|
declare -A pids
|
||||||
IFS=',' read -ra CACHE <<< "$BUILDCACHE"
|
IFS=',' read -ra CACHE <<< "$BUILDCACHE"
|
||||||
for i in "${CACHE[@]}"; do
|
for i in "${CACHE[@]}"; do
|
||||||
docker push ${i}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} &
|
docker push ${i}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} &
|
||||||
|
pids[$!]="$i"
|
||||||
done
|
done
|
||||||
for p in $(jobs -p); do
|
for p in "${!pids[@]}"; do
|
||||||
wait "$p" || { echo "job $p failed" >&2; exit 1; }
|
wait "$p" || { [[ "${pids[$p]}" != *"quay.io"* ]] && exit 1; }
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
'''
|
'''
|
||||||
@@ -677,13 +687,16 @@ pipeline {
|
|||||||
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
|
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
|
||||||
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
|
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
|
||||||
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
|
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
|
||||||
|
|
||||||
if [[ "${PACKAGE_CHECK}" != "true" ]]; then
|
if [[ "${PACKAGE_CHECK}" != "true" ]]; then
|
||||||
|
declare -A pids
|
||||||
IFS=',' read -ra CACHE <<< "$BUILDCACHE"
|
IFS=',' read -ra CACHE <<< "$BUILDCACHE"
|
||||||
for i in "${CACHE[@]}"; do
|
for i in "${CACHE[@]}"; do
|
||||||
docker push ${i}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} &
|
docker push ${i}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} &
|
||||||
|
pids[$!]="$i"
|
||||||
done
|
done
|
||||||
for p in $(jobs -p); do
|
for p in "${!pids[@]}"; do
|
||||||
wait "$p" || { echo "job $p failed" >&2; exit 1; }
|
wait "$p" || { [[ "${pids[$p]}" != *"quay.io"* ]] && exit 1; }
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
'''
|
'''
|
||||||
@@ -737,12 +750,14 @@ pipeline {
|
|||||||
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
|
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
|
||||||
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
|
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
|
||||||
if [[ "${PACKAGE_CHECK}" != "true" ]]; then
|
if [[ "${PACKAGE_CHECK}" != "true" ]]; then
|
||||||
|
declare -A pids
|
||||||
IFS=',' read -ra CACHE <<< "$BUILDCACHE"
|
IFS=',' read -ra CACHE <<< "$BUILDCACHE"
|
||||||
for i in "${CACHE[@]}"; do
|
for i in "${CACHE[@]}"; do
|
||||||
docker push ${i}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} &
|
docker push ${i}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} &
|
||||||
|
pids[$!]="$i"
|
||||||
done
|
done
|
||||||
for p in $(jobs -p); do
|
for p in "${!pids[@]}"; do
|
||||||
wait "$p" || { echo "job $p failed" >&2; exit 1; }
|
wait "$p" || { [[ "${pids[$p]}" != *"quay.io"* ]] && exit 1; }
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
'''
|
'''
|
||||||
@@ -780,7 +795,7 @@ pipeline {
|
|||||||
docker run --rm \
|
docker run --rm \
|
||||||
-v /var/run/docker.sock:/var/run/docker.sock:ro \
|
-v /var/run/docker.sock:/var/run/docker.sock:ro \
|
||||||
-v ${TEMPDIR}:/tmp \
|
-v ${TEMPDIR}:/tmp \
|
||||||
ghcr.io/anchore/syft:latest \
|
ghcr.io/anchore/syft:${SYFT_IMAGE_TAG} \
|
||||||
${LOCAL_CONTAINER} -o table=/tmp/package_versions.txt
|
${LOCAL_CONTAINER} -o table=/tmp/package_versions.txt
|
||||||
NEW_PACKAGE_TAG=$(md5sum ${TEMPDIR}/package_versions.txt | cut -c1-8 )
|
NEW_PACKAGE_TAG=$(md5sum ${TEMPDIR}/package_versions.txt | cut -c1-8 )
|
||||||
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"
|
||||||
@@ -867,7 +882,7 @@ pipeline {
|
|||||||
CI_DOCKERENV="LSIO_FIRST_PARTY=true"
|
CI_DOCKERENV="LSIO_FIRST_PARTY=true"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
docker pull ghcr.io/linuxserver/ci:latest
|
docker pull ghcr.io/linuxserver/ci:${CITEST_IMAGETAG}
|
||||||
if [ "${MULTIARCH}" == "true" ]; then
|
if [ "${MULTIARCH}" == "true" ]; then
|
||||||
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} --platform=arm64
|
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} --platform=arm64
|
||||||
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
|
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
|
||||||
@@ -890,7 +905,10 @@ pipeline {
|
|||||||
-e WEB_AUTH=\"${CI_AUTH}\" \
|
-e WEB_AUTH=\"${CI_AUTH}\" \
|
||||||
-e WEB_PATH=\"${CI_WEBPATH}\" \
|
-e WEB_PATH=\"${CI_WEBPATH}\" \
|
||||||
-e NODE_NAME=\"${NODE_NAME}\" \
|
-e NODE_NAME=\"${NODE_NAME}\" \
|
||||||
-t ghcr.io/linuxserver/ci:latest \
|
-e SYFT_IMAGE_TAG=\"${CI_SYFT_IMAGE_TAG:-${SYFT_IMAGE_TAG}}\" \
|
||||||
|
-e COMMIT_SHA=\"${COMMIT_SHA}\" \
|
||||||
|
-e BUILD_NUMBER=\"${BUILD_NUMBER}\" \
|
||||||
|
-t ghcr.io/linuxserver/ci:${CITEST_IMAGETAG} \
|
||||||
python3 test_build.py'''
|
python3 test_build.py'''
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -916,9 +934,11 @@ pipeline {
|
|||||||
CACHEIMAGE=${i}
|
CACHEIMAGE=${i}
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
docker buildx imagetools create --prefer-index=false -t ${PUSHIMAGE}:${META_TAG} -t ${PUSHIMAGE}:develop -t ${PUSHIMAGE}:${EXT_RELEASE_TAG} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER}
|
docker buildx imagetools create --prefer-index=false -t ${PUSHIMAGE}:${META_TAG} -t ${PUSHIMAGE}:develop -t ${PUSHIMAGE}:${EXT_RELEASE_TAG} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} || \
|
||||||
|
{ if [[ "${PUSHIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
|
||||||
if [ -n "${SEMVER}" ]; then
|
if [ -n "${SEMVER}" ]; then
|
||||||
docker buildx imagetools create --prefer-index=false -t ${PUSHIMAGE}:${SEMVER} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER}
|
docker buildx imagetools create --prefer-index=false -t ${PUSHIMAGE}:${SEMVER} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} || \
|
||||||
|
{ if [[ "${PUSHIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
'''
|
'''
|
||||||
@@ -943,20 +963,27 @@ pipeline {
|
|||||||
CACHEIMAGE=${i}
|
CACHEIMAGE=${i}
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:amd64-${META_TAG} -t ${MANIFESTIMAGE}:amd64-develop -t ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER}
|
docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:amd64-${META_TAG} -t ${MANIFESTIMAGE}:amd64-develop -t ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} || \
|
||||||
docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:arm64v8-${META_TAG} -t ${MANIFESTIMAGE}:arm64v8-develop -t ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} ${CACHEIMAGE}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
|
{ if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
|
||||||
|
docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:arm64v8-${META_TAG} -t ${MANIFESTIMAGE}:arm64v8-develop -t ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} ${CACHEIMAGE}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || \
|
||||||
|
{ if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
|
||||||
if [ -n "${SEMVER}" ]; then
|
if [ -n "${SEMVER}" ]; then
|
||||||
docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:amd64-${SEMVER} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER}
|
docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:amd64-${SEMVER} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} || \
|
||||||
docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:arm64v8-${SEMVER} ${CACHEIMAGE}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
|
{ if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
|
||||||
|
docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:arm64v8-${SEMVER} ${CACHEIMAGE}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || \
|
||||||
|
{ if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do
|
for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do
|
||||||
docker buildx imagetools create -t ${MANIFESTIMAGE}:develop ${MANIFESTIMAGE}:amd64-develop ${MANIFESTIMAGE}:arm64v8-develop
|
docker buildx imagetools create -t ${MANIFESTIMAGE}:develop ${MANIFESTIMAGE}:amd64-develop ${MANIFESTIMAGE}:arm64v8-develop || \
|
||||||
docker buildx imagetools create -t ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
|
{ if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
|
||||||
|
docker buildx imagetools create -t ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} || \
|
||||||
docker buildx imagetools create -t ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
|
{ if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
|
||||||
|
docker buildx imagetools create -t ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} || \
|
||||||
|
{ if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
|
||||||
if [ -n "${SEMVER}" ]; then
|
if [ -n "${SEMVER}" ]; then
|
||||||
docker buildx imagetools create -t ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
|
docker buildx imagetools create -t ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} || \
|
||||||
|
{ if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
'''
|
'''
|
||||||
@@ -974,23 +1001,41 @@ pipeline {
|
|||||||
environment name: 'EXIT_STATUS', value: ''
|
environment name: 'EXIT_STATUS', value: ''
|
||||||
}
|
}
|
||||||
steps {
|
steps {
|
||||||
echo "Pushing New tag for current commit ${META_TAG}"
|
|
||||||
sh '''curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/git/tags \
|
|
||||||
-d '{"tag":"'${META_TAG}'",\
|
|
||||||
"object": "'${COMMIT_SHA}'",\
|
|
||||||
"message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to develop",\
|
|
||||||
"type": "commit",\
|
|
||||||
"tagger": {"name": "LinuxServer-CI","email": "ci@linuxserver.io","date": "'${GITHUB_DATE}'"}}' '''
|
|
||||||
echo "Pushing New release for Tag"
|
|
||||||
sh '''#! /bin/bash
|
sh '''#! /bin/bash
|
||||||
|
echo "Auto-generating release notes"
|
||||||
|
if [ "$(git tag --points-at HEAD)" != "" ]; then
|
||||||
|
echo "Existing tag points to current commit, suggesting no new LS changes"
|
||||||
|
AUTO_RELEASE_NOTES="No changes"
|
||||||
|
else
|
||||||
|
AUTO_RELEASE_NOTES=$(curl -fsL -H "Authorization: token ${GITHUB_TOKEN}" -H "Accept: application/vnd.github+json" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases/generate-notes \
|
||||||
|
-d '{"tag_name":"'${META_TAG}'",\
|
||||||
|
"target_commitish": "develop"}' \
|
||||||
|
| jq -r '.body' | sed 's|## What.s Changed||')
|
||||||
|
fi
|
||||||
|
echo "Pushing New tag for current commit ${META_TAG}"
|
||||||
|
curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/git/tags \
|
||||||
|
-d '{"tag":"'${META_TAG}'",\
|
||||||
|
"object": "'${COMMIT_SHA}'",\
|
||||||
|
"message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to develop",\
|
||||||
|
"type": "commit",\
|
||||||
|
"tagger": {"name": "LinuxServer-CI","email": "ci@linuxserver.io","date": "'${GITHUB_DATE}'"}}'
|
||||||
|
echo "Pushing New release for Tag"
|
||||||
echo "Updating to ${EXT_RELEASE_CLEAN}" > releasebody.json
|
echo "Updating to ${EXT_RELEASE_CLEAN}" > releasebody.json
|
||||||
echo '{"tag_name":"'${META_TAG}'",\
|
jq -n \
|
||||||
"target_commitish": "develop",\
|
--arg tag_name "$META_TAG" \
|
||||||
"name": "'${META_TAG}'",\
|
--arg target_commitish "develop" \
|
||||||
"body": "**CI Report:**\\n\\n'${CI_URL:-N/A}'\\n\\n**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n\\n**Remote Changes:**\\n\\n' > start
|
--arg ci_url "${CI_URL:-N/A}" \
|
||||||
printf '","draft": false,"prerelease": true}' >> releasebody.json
|
--arg ls_notes "$AUTO_RELEASE_NOTES" \
|
||||||
paste -d'\\0' start releasebody.json > releasebody.json.done
|
--arg remote_notes "$(cat releasebody.json)" \
|
||||||
curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases -d @releasebody.json.done'''
|
'{
|
||||||
|
"tag_name": $tag_name,
|
||||||
|
"target_commitish": $target_commitish,
|
||||||
|
"name": $tag_name,
|
||||||
|
"body": ("**CI Report:**\\n\\n" + $ci_url + "\\n\\n**LinuxServer Changes:**\\n\\n" + $ls_notes + "\\n\\n**Remote Changes:**\\n\\n" + $remote_notes),
|
||||||
|
"draft": false,
|
||||||
|
"prerelease": true }' > 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
|
||||||
|
'''
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Add protection to the release branch
|
// Add protection to the release branch
|
||||||
|
|||||||
@@ -5,7 +5,6 @@
|
|||||||
[](https://blog.linuxserver.io "all the things you can do with our containers including How-To guides, opinions and much more!")
|
[](https://blog.linuxserver.io "all the things you can do with our containers including How-To guides, opinions and much more!")
|
||||||
[](https://linuxserver.io/discord "realtime support / chat with the community and the team.")
|
[](https://linuxserver.io/discord "realtime support / chat with the community and the team.")
|
||||||
[](https://discourse.linuxserver.io "post on our community forum.")
|
[](https://discourse.linuxserver.io "post on our community forum.")
|
||||||
[](https://fleet.linuxserver.io "an online web interface which displays all of our maintained images.")
|
|
||||||
[](https://github.com/linuxserver "view the source for all of our repositories.")
|
[](https://github.com/linuxserver "view the source for all of our repositories.")
|
||||||
[](https://opencollective.com/linuxserver "please consider helping us by either donating or contributing to our budget")
|
[](https://opencollective.com/linuxserver "please consider helping us by either donating or contributing to our budget")
|
||||||
|
|
||||||
@@ -22,7 +21,6 @@ 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://linuxserver.io/discord) - 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
|
||||||
|
|
||||||
@@ -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
|
||||||
|
|
||||||
@@ -350,6 +347,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
|
|||||||
|
|
||||||
## Versions
|
## Versions
|
||||||
|
|
||||||
|
* **10.07.25:** - Rebase to Alpine 3.22.
|
||||||
* **12.02.25:** - Rebase to Alpine 3.21.
|
* **12.02.25:** - Rebase to Alpine 3.21.
|
||||||
* **09.01.25:** - Fix uploading large files. Existing users should update their nginx confs.
|
* **09.01.25:** - Fix uploading large files. Existing users should update their nginx confs.
|
||||||
* **09.07.24:** - Add `previous` tag for n-1 releases.
|
* **09.07.24:** - Add `previous` tag for n-1 releases.
|
||||||
|
|||||||
+492
-431
@@ -1,431 +1,492 @@
|
|||||||
NAME VERSION TYPE
|
NAME VERSION TYPE
|
||||||
Hidden Input 1, 0, 0, 0 dotnet
|
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
|
||||||
acl-libs 2.3.2-r1 apk
|
activity 6.0.0-dev.0 npm
|
||||||
activity 4.0.0 npm
|
alpine-baselayout 3.7.0-r0 apk
|
||||||
alpine-baselayout 3.6.8-r1 apk
|
alpine-baselayout-data 3.7.0-r0 apk
|
||||||
alpine-baselayout-data 3.6.8-r1 apk
|
alpine-keys 2.5-r0 apk
|
||||||
alpine-keys 2.5-r0 apk
|
alpine-release 3.22.3-r0 apk
|
||||||
alpine-release 3.21.2-r0 apk
|
alsa-lib 1.2.14-r0 apk
|
||||||
alsa-lib 1.2.12-r0 apk
|
amphp/amp v2.6.5 php-composer
|
||||||
amphp/amp v2.6.4 php-composer (+1 duplicate)
|
amphp/byte-stream v1.8.2 php-composer
|
||||||
amphp/byte-stream v1.8.2 php-composer (+1 duplicate)
|
amphp/parallel v1.4.4 php-composer
|
||||||
amphp/parallel v1.4.3 php-composer
|
amphp/parser v1.1.1 php-composer
|
||||||
amphp/parser v1.1.1 php-composer
|
amphp/process v1.1.9 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
|
andrewdalpino/okbloomer 1.0.0 php-composer
|
||||||
andrewdalpino/okbloomer 1.0.0 php-composer
|
anstream 0.6.8 rust-crate
|
||||||
aom-libs 3.11.0-r0 apk
|
anstyle 1.0.4 rust-crate
|
||||||
apache2-utils 2.4.62-r0 apk
|
anstyle-parse 0.2.3 rust-crate
|
||||||
apk-tools 2.14.6-r2 apk
|
anstyle-query 1.0.2 rust-crate
|
||||||
app_api 1.0.0 npm
|
anyhow 1.0.79 rust-crate
|
||||||
apr 1.7.5-r0 apk
|
anyhow 1.0.98 rust-crate
|
||||||
apr-util 1.6.3-r1 apk
|
aom-libs 3.12.1-r0 apk
|
||||||
argon2-libs 20190702-r5 apk
|
apache2-utils 2.4.66-r0 apk
|
||||||
aws/aws-crt-php v1.2.7 php-composer
|
apk-tools 2.14.9-r3 apk
|
||||||
aws/aws-sdk-php 3.324.13 php-composer
|
apr 1.7.5-r0 apk
|
||||||
bamarni/composer-bin-plugin 1.8.2 php-composer (+1 duplicate)
|
apr-util 1.6.3-r1 apk
|
||||||
bantu/ini-get-wrapper v1.0.1 php-composer
|
arg_enum_proc_macro 0.3.4 rust-crate
|
||||||
bash 5.2.37-r0 apk
|
argon2-libs 20190702-r5 apk
|
||||||
brick/math 0.12.1 php-composer
|
arrayvec 0.7.4 rust-crate
|
||||||
brotli-libs 1.1.0-r2 apk
|
av-metrics 0.9.1 rust-crate
|
||||||
bruteforcesettings 4.0.0 npm
|
av1-grain 0.2.3 rust-crate
|
||||||
busybox 1.37.0-r12 apk
|
aws/aws-crt-php v1.2.7 php-composer
|
||||||
busybox-binsh 1.37.0-r12 apk
|
aws/aws-sdk-php 3.369.9 php-composer
|
||||||
c-ares 1.34.3-r0 apk
|
bamarni/composer-bin-plugin 1.8.3 php-composer
|
||||||
c-client 2007f-r15 apk
|
bantu/ini-get-wrapper v1.0.1 php-composer
|
||||||
ca-certificates 20241121-r1 apk
|
bash 5.2.37-r0 apk
|
||||||
ca-certificates-bundle 20241121-r1 apk
|
bitflags 2.4.1 rust-crate
|
||||||
catatonit 0.2.0-r0 apk
|
bitstream-io 2.2.0 rust-crate
|
||||||
christian-riesen/base32 1.6.0 php-composer
|
bitstream-io 2.6.0 rust-crate
|
||||||
cjson 1.7.18-r0 apk
|
bitvec 1.0.1 rust-crate
|
||||||
composer 2.8.5 binary
|
bitvec_helpers 3.1.6 rust-crate
|
||||||
composer/pcre 3.3.1 php-composer
|
brick/math 0.12.1 php-composer
|
||||||
composer/semver 3.4.2 php-composer
|
brotli-libs 1.1.0-r2 apk
|
||||||
composer/xdebug-handler 3.0.5 php-composer
|
busybox 1.37.0-r20 apk
|
||||||
coreutils 9.5-r2 apk
|
busybox-binsh 1.37.0-r20 apk
|
||||||
coreutils-env 9.5-r2 apk
|
c-ares 1.34.6-r0 apk
|
||||||
coreutils-fmt 9.5-r2 apk
|
c-client 2007f-r15 apk
|
||||||
coreutils-sha512sum 9.5-r2 apk
|
ca-certificates 20250911-r0 apk
|
||||||
curl 8.12.0-r0 apk
|
ca-certificates-bundle 20250911-r0 apk
|
||||||
cweagans/composer-patches 1.7.3 php-composer
|
catatonit 0.2.1-r0 apk
|
||||||
dbus-libs 1.14.10-r4 apk
|
cfg-if 1.0.0 rust-crate
|
||||||
deepdiver/zipstreamer v2.0.3 php-composer
|
christian-riesen/base32 1.6.0 php-composer
|
||||||
deepdiver1975/tarstreamer v2.1.0 php-composer
|
cjson 1.7.19-r0 apk
|
||||||
dnoegel/php-xdg-base-dir v0.1.1 php-composer
|
clap 4.4.14 rust-crate
|
||||||
doctrine/cache 2.2.0 php-composer
|
clap_builder 4.4.14 rust-crate
|
||||||
doctrine/dbal 3.9.4 php-composer
|
clap_complete 4.4.6 rust-crate
|
||||||
doctrine/deprecations 1.1.3 php-composer
|
clap_derive 4.4.7 rust-crate
|
||||||
doctrine/deprecations 1.1.4 php-composer
|
clap_lex 0.6.0 rust-crate
|
||||||
doctrine/event-manager 2.0.1 php-composer
|
colorchoice 1.0.0 rust-crate
|
||||||
doctrine/lexer 3.0.1 php-composer
|
composer 2.9.5 binary
|
||||||
egulias/email-validator 4.0.3 php-composer
|
console 0.15.8 rust-crate
|
||||||
felixfbecker/advanced-json-rpc v3.2.1 php-composer
|
coreutils 9.7-r1 apk
|
||||||
felixfbecker/language-server-protocol v1.5.2 php-composer
|
coreutils-env 9.7-r1 apk
|
||||||
ffmpeg 6.1.2-r1 apk
|
coreutils-fmt 9.7-r1 apk
|
||||||
ffmpeg-libavcodec 6.1.2-r1 apk
|
coreutils-sha512sum 9.7-r1 apk
|
||||||
ffmpeg-libavdevice 6.1.2-r1 apk
|
crc 3.3.0 rust-crate
|
||||||
ffmpeg-libavfilter 6.1.2-r1 apk
|
crc-catalog 2.4.0 rust-crate
|
||||||
ffmpeg-libavformat 6.1.2-r1 apk
|
crossbeam 0.8.4 rust-crate
|
||||||
ffmpeg-libavutil 6.1.2-r1 apk
|
crossbeam-channel 0.5.14 rust-crate
|
||||||
ffmpeg-libpostproc 6.1.2-r1 apk
|
crossbeam-deque 0.8.5 rust-crate
|
||||||
ffmpeg-libswresample 6.1.2-r1 apk
|
crossbeam-epoch 0.9.18 rust-crate
|
||||||
ffmpeg-libswscale 6.1.2-r1 apk
|
crossbeam-queue 0.3.11 rust-crate
|
||||||
fftw-double-libs 3.3.10-r6 apk
|
crossbeam-utils 0.8.19 rust-crate
|
||||||
fidry/cpu-core-counter 1.2.0 php-composer
|
curl 8.14.1-r2 apk
|
||||||
files_downloadlimit 4.0.0 npm
|
cweagans/composer-patches 1.7.3 php-composer
|
||||||
files_pdfviewer 4.0.0 npm
|
dbus-libs 1.16.2-r1 apk
|
||||||
findutils 4.10.0-r0 apk
|
deepdiver/zipstreamer v2.0.3 php-composer
|
||||||
firstrunwizard 4.0.0 npm
|
deepdiver1975/tarstreamer v2.1.0 php-composer
|
||||||
fontconfig 2.15.0-r1 apk
|
doctrine/dbal 3.10.4 php-composer
|
||||||
freetype 2.13.3-r0 apk
|
doctrine/deprecations 1.1.5 php-composer
|
||||||
fribidi 1.0.16-r0 apk
|
doctrine/event-manager 2.0.1 php-composer
|
||||||
fusonic/opengraph v2.3.0 php-composer
|
doctrine/lexer 3.0.1 php-composer
|
||||||
gdbm 1.24-r0 apk
|
dolby_vision 3.3.1 rust-crate
|
||||||
giflib 5.2.2-r0 apk
|
egulias/email-validator 4.0.4 php-composer
|
||||||
giggsey/libphonenumber-for-php-lite 8.13.48 php-composer
|
either 1.9.0 rust-crate
|
||||||
git 2.47.2-r0 apk
|
errno 0.3.8 rust-crate
|
||||||
git-init-template 2.47.2-r0 apk
|
fern 0.6.2 rust-crate
|
||||||
glib 2.82.4-r0 apk
|
ffmpeg 6.1.2-r2 apk
|
||||||
glslang-libs 1.3.296.0-r0 apk
|
ffmpeg-libavcodec 6.1.2-r2 apk
|
||||||
gmp 6.3.0-r2 apk
|
ffmpeg-libavdevice 6.1.2-r2 apk
|
||||||
gnu-libiconv 1.17-r2 apk
|
ffmpeg-libavfilter 6.1.2-r2 apk
|
||||||
gnu-libiconv-libs 1.17-r2 apk
|
ffmpeg-libavformat 6.1.2-r2 apk
|
||||||
gnutls 3.8.8-r0 apk
|
ffmpeg-libavutil 6.1.2-r2 apk
|
||||||
graphite2 1.3.14-r6 apk
|
ffmpeg-libpostproc 6.1.2-r2 apk
|
||||||
guzzlehttp/guzzle 7.9.2 php-composer
|
ffmpeg-libswresample 6.1.2-r2 apk
|
||||||
guzzlehttp/promises 2.0.4 php-composer
|
ffmpeg-libswscale 6.1.2-r2 apk
|
||||||
guzzlehttp/psr7 2.7.0 php-composer
|
fftw-double-libs 3.3.10-r6 apk
|
||||||
guzzlehttp/uri-template v1.0.3 php-composer
|
files_downloadlimit 5.1.0-dev.0 npm
|
||||||
harfbuzz 9.0.0-r1 apk
|
files_pdfviewer 6.0.0-dev.0 npm
|
||||||
hexogen/kdtree v0.2.6 php-composer
|
findutils 4.10.0-r0 apk
|
||||||
hwdata-pci 0.390-r0 apk
|
firstrunwizard 6.0.0-dev.0 npm
|
||||||
icewind/searchdav v3.1.0 php-composer
|
fontconfig 2.15.0-r3 apk
|
||||||
icewind/smb v3.7.0 php-composer
|
freetype 2.13.3-r0 apk
|
||||||
icewind/streams v0.7.7 php-composer (+1 duplicate)
|
fribidi 1.0.16-r1 apk
|
||||||
icu-data-en 74.2-r0 apk
|
funty 2.0.0 rust-crate
|
||||||
icu-libs 74.2-r0 apk
|
fusonic/opengraph v3.0.0 php-composer
|
||||||
imagemagick 7.1.1.41-r0 apk
|
gdbm 1.24-r0 apk
|
||||||
imagemagick-jpeg 7.1.1.41-r0 apk
|
getrandom 0.2.12 rust-crate
|
||||||
imagemagick-jxl 7.1.1.41-r0 apk
|
giflib 5.2.2-r1 apk
|
||||||
imagemagick-libs 7.1.1.41-r0 apk
|
giggsey/libphonenumber-for-php-lite 9.0.9 php-composer
|
||||||
imagemagick-webp 7.1.1.41-r0 apk
|
git 2.49.1-r0 apk
|
||||||
imath 3.1.12-r0 apk
|
git-init-template 2.49.1-r0 apk
|
||||||
jansson 2.14-r4 apk
|
glib 2.84.4-r0 apk
|
||||||
jq 1.7.1-r0 apk
|
glslang-libs 1.4.309.0-r0 apk
|
||||||
justinrainbow/json-schema 5.3.0 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.5 php-composer
|
gnutls 3.8.8-r0 apk
|
||||||
lcms2 2.16-r0 apk
|
graphite2 1.3.14-r6 apk
|
||||||
lcobucci/clock 3.0.0 php-composer
|
guzzlehttp/guzzle 7.10.0 php-composer
|
||||||
ldb 2.9.2-r0 apk
|
guzzlehttp/promises 2.3.0 php-composer
|
||||||
libSvtAv1Enc 2.2.1-r0 apk
|
guzzlehttp/psr7 2.8.0 php-composer
|
||||||
libarchive 3.7.7-r0 apk
|
guzzlehttp/uri-template v1.0.4 php-composer
|
||||||
libass 0.17.3-r0 apk
|
harfbuzz 11.2.1-r0 apk
|
||||||
libasyncns 0.8-r4 apk
|
heck 0.4.1 rust-crate
|
||||||
libattr 2.5.2-r2 apk
|
hexogen/kdtree v0.2.6 php-composer
|
||||||
libauth-samba 4.20.6-r1 apk
|
hwdata-pci 0.395-r0 apk
|
||||||
libavif 1.0.4-r0 apk
|
icewind/searchdav v3.2.0 php-composer
|
||||||
libblkid 2.40.4-r0 apk
|
icewind/smb 3.8.1 php-composer
|
||||||
libbluray 1.3.4-r1 apk
|
icewind/streams v0.7.8 php-composer
|
||||||
libbsd 0.12.2-r0 apk
|
icu-data-en 76.1-r1 apk
|
||||||
libbz2 1.0.8-r6 apk
|
icu-libs 76.1-r1 apk
|
||||||
libcap2 2.71-r0 apk
|
imagemagick 7.1.2.8-r0 apk
|
||||||
libcrypto3 3.3.3-r0 apk
|
imagemagick-jpeg 7.1.2.8-r0 apk
|
||||||
libcurl 8.12.0-r0 apk
|
imagemagick-jxl 7.1.2.8-r0 apk
|
||||||
libdav1d 1.5.0-r0 apk
|
imagemagick-libs 7.1.2.8-r0 apk
|
||||||
libdeflate 1.22-r0 apk
|
imagemagick-openexr 7.1.2.8-r0 apk
|
||||||
libdovi 3.3.1-r0 apk
|
imagemagick-webp 7.1.2.8-r0 apk
|
||||||
libdrm 2.4.123-r1 apk
|
imath 3.1.12-r0 apk
|
||||||
libeconf 0.6.3-r0 apk
|
interpolate_name 0.2.4 rust-crate
|
||||||
libedit 20240808.3.1-r0 apk
|
itertools 0.10.5 rust-crate
|
||||||
libevent 2.1.12-r7 apk
|
itertools 0.12.0 rust-crate
|
||||||
libexpat 2.6.4-r0 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
|
joomla/string 3.0.4 php-composer
|
||||||
libformw 6.5_p20241006-r3 apk
|
jq 1.8.1-r0 apk
|
||||||
libgcc 14.2.0-r4 apk
|
justinrainbow/json-schema 6.6.4 php-composer
|
||||||
libgomp 14.2.0-r4 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.4-r0 apk
|
lcms2 2.16-r0 apk
|
||||||
libjxl 0.10.3-r0 apk
|
lcobucci/clock 3.0.0 php-composer
|
||||||
libldap 2.6.8-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.4-r0 apk
|
libasyncns 0.8-r4 apk
|
||||||
libncursesw 6.5_p20241006-r3 apk
|
libattr 2.5.2-r2 apk
|
||||||
libogg 1.3.5-r5 apk
|
libauth-samba 4.21.9-r1 apk
|
||||||
libopenmpt 0.7.12-r0 apk
|
libavif 1.3.0-r0 apk
|
||||||
libpanelw 6.5_p20241006-r3 apk
|
libblkid 2.41-r9 apk
|
||||||
libpciaccess 0.18.1-r0 apk
|
libbluray 1.3.4-r1 apk
|
||||||
libplacebo 6.338.2-r3 apk
|
libbsd 0.12.2-r0 apk
|
||||||
libpng 1.6.44-r0 apk
|
libbz2 1.0.8-r6 apk
|
||||||
libpq 17.2-r0 apk
|
libc 0.2.155 rust-crate
|
||||||
libproc2 4.0.4-r2 apk
|
libc 0.2.172 rust-crate
|
||||||
libpsl 0.21.5-r3 apk
|
libcap2 2.76-r0 apk
|
||||||
libpulse 17.0-r4 apk
|
libcrypto3 3.5.5-r0 apk
|
||||||
librist 0.2.10-r1 apk
|
libcurl 8.14.1-r2 apk
|
||||||
libsasl 2.1.28-r8 apk
|
libdav1d 1.5.1-r0 apk
|
||||||
libsharpyuv 1.4.0-r0 apk
|
libdeflate 1.23-r0 apk
|
||||||
libsm 1.2.4-r4 apk
|
libdovi 3.3.1-r1 apk
|
||||||
libsmbclient 4.20.6-r1 apk
|
libdrm 2.4.124-r0 apk
|
||||||
libsndfile 1.2.2-r2 apk
|
libeconf 0.6.3-r0 apk
|
||||||
libsodium 1.0.20-r0 apk
|
libedit 20250104.3.1-r1 apk
|
||||||
libsrt 1.5.3-r0 apk
|
libevent 2.1.12-r8 apk
|
||||||
libssh 0.11.1-r0 apk
|
libexpat 2.7.4-r0 apk
|
||||||
libssl3 3.3.3-r0 apk
|
libffi 3.4.8-r0 apk
|
||||||
libstdc++ 14.2.0-r4 apk
|
libflac 1.4.3-r1 apk
|
||||||
libtasn1 4.20.0-r0 apk
|
libformw 6.5_p20250503-r0 apk
|
||||||
libtheora 1.1.1-r18 apk
|
libgcc 14.2.0-r6 apk
|
||||||
libunibreak 6.1-r0 apk
|
libgomp 14.2.0-r6 apk
|
||||||
libunistring 1.2-r0 apk
|
libhwy 1.0.7-r1 apk
|
||||||
libuuid 2.40.4-r0 apk
|
libice 1.1.2-r0 apk
|
||||||
libva 2.22.0-r1 apk
|
libidn2 2.3.7-r0 apk
|
||||||
libvdpau 1.5-r4 apk
|
libintl 0.24.1-r0 apk
|
||||||
libvorbis 1.3.7-r2 apk
|
libjpeg-turbo 3.1.0-r0 apk
|
||||||
libvpx 1.15.0-r0 apk
|
libjxl 0.10.3-r2 apk
|
||||||
libwbclient 4.20.6-r1 apk
|
libldap 2.6.8-r0 apk
|
||||||
libwebp 1.4.0-r0 apk
|
libltdl 2.5.4-r1 apk
|
||||||
libwebpdemux 1.4.0-r0 apk
|
libmd 1.1.0-r0 apk
|
||||||
libwebpmux 1.4.0-r0 apk
|
libmemcached-libs 1.1.4-r1 apk
|
||||||
libx11 1.8.10-r0 apk
|
libmount 2.41-r9 apk
|
||||||
libxau 1.0.11-r4 apk
|
libncursesw 6.5_p20250503-r0 apk
|
||||||
libxcb 1.16.1-r0 apk
|
libogg 1.3.5-r5 apk
|
||||||
libxdmcp 1.1.5-r1 apk
|
libopenmpt 0.7.15-r0 apk
|
||||||
libxext 1.3.6-r2 apk
|
libpanelw 6.5_p20250503-r0 apk
|
||||||
libxfixes 6.0.1-r4 apk
|
libpciaccess 0.18.1-r0 apk
|
||||||
libxml2 2.13.4-r3 apk
|
libplacebo 6.338.2-r3 apk
|
||||||
libxpm 3.5.17-r0 apk
|
libpng 1.6.54-r0 apk
|
||||||
libxt 1.3.1-r0 apk
|
libpq 17.7-r0 apk
|
||||||
libxxhash 0.8.2-r2 apk
|
libproc2 4.0.4-r3 apk
|
||||||
libzip 1.11.2-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.1-r1 apk
|
libsasl 2.1.28-r8 apk
|
||||||
lmdb 0.9.33-r0 apk
|
libsharpyuv 1.5.0-r0 apk
|
||||||
logreader 4.0.0 npm
|
libsm 1.2.5-r0 apk
|
||||||
logrotate 3.21.0-r1 apk
|
libsmbclient 4.21.9-r1 apk
|
||||||
lz4-libs 1.10.0-r0 apk
|
libsndfile 1.2.2-r2 apk
|
||||||
masterminds/html5 2.9.0 php-composer
|
libsodium 1.0.20-r1 apk
|
||||||
mbedtls 3.6.2-r0 apk
|
libsrt 1.5.3-r1 apk
|
||||||
mexitek/phpcolors v1.0.4 php-composer
|
libssh 0.11.2-r0 apk
|
||||||
microsoft/azure-storage-blob 1.5.4 php-composer
|
libssl3 3.5.5-r0 apk
|
||||||
microsoft/azure-storage-common 1.5.2 php-composer
|
libstdc++ 14.2.0-r6 apk
|
||||||
mlocati/ip-lib 1.18.1 php-composer
|
libtasn1 4.21.0-r0 apk
|
||||||
mpg123-libs 1.32.9-r0 apk
|
libtheora 1.1.1-r18 apk
|
||||||
mtdowling/jmespath.php 2.8.0 php-composer
|
libunibreak 6.1-r0 apk
|
||||||
musl 1.2.5-r8 apk
|
libunistring 1.3-r0 apk
|
||||||
musl-utils 1.2.5-r8 apk
|
libuuid 2.41-r9 apk
|
||||||
nano 8.2-r0 apk
|
libva 2.22.0-r1 apk
|
||||||
ncurses-terminfo-base 6.5_p20241006-r3 apk
|
libvdpau 1.5-r4 apk
|
||||||
netcat-openbsd 1.226.1.1-r0 apk
|
libvorbis 1.3.7-r2 apk
|
||||||
netresearch/jsonmapper v4.5.0 php-composer
|
libvpx 1.15.0-r0 apk
|
||||||
nettle 3.10-r1 apk
|
libwbclient 4.21.9-r1 apk
|
||||||
nextcloud 1.0.0 npm
|
libwebp 1.5.0-r0 apk
|
||||||
nextcloud/coding-standard v1.2.1 php-composer
|
libwebpdemux 1.5.0-r0 apk
|
||||||
nextcloud/lognormalizer v1.0.0 php-composer
|
libwebpmux 1.5.0-r0 apk
|
||||||
nextcloud/ocp dev-master php-composer
|
libx11 1.8.11-r0 apk
|
||||||
nghttp2-libs 1.64.0-r0 apk
|
libxau 1.0.12-r0 apk
|
||||||
nginx 1.26.2-r4 apk
|
libxcb 1.17.0-r0 apk
|
||||||
nikic/php-parser v4.19.2 php-composer
|
libxdmcp 1.1.5-r1 apk
|
||||||
notifications 4.0.0 npm
|
libxext 1.3.6-r2 apk
|
||||||
numactl 2.0.18-r0 apk
|
libxfixes 6.0.1-r4 apk
|
||||||
onevpl-libs 2023.3.1-r2 apk
|
libxml2 2.13.9-r0 apk
|
||||||
oniguruma 6.9.9-r0 apk
|
libxpm 3.5.17-r0 apk
|
||||||
openexr-libiex 3.3.2-r0 apk
|
libxt 1.3.1-r0 apk
|
||||||
openexr-libilmthread 3.3.2-r0 apk
|
libxxhash 0.8.3-r0 apk
|
||||||
openexr-libopenexr 3.3.2-r0 apk
|
libyuv 0.0.1887.20251502-r1 apk
|
||||||
openexr-libopenexrcore 3.3.2-r0 apk
|
libzip 1.11.4-r0 apk
|
||||||
openssl 3.3.3-r0 apk
|
libzmq 4.3.5-r2 apk
|
||||||
opus 1.5.2-r1 apk
|
lilv-libs 0.24.26-r0 apk
|
||||||
orc 0.4.40-r1 apk
|
linux-pam 1.7.0-r4 apk
|
||||||
p11-kit 0.25.5-r2 apk
|
linux-raw-sys 0.4.12 rust-crate
|
||||||
paragonie/constant_time_encoding v2.6.3 php-composer
|
lmdb 0.9.33-r0 apk
|
||||||
password_policy 3.0.0 npm
|
log 0.4.20 rust-crate
|
||||||
pcre 8.45-r3 apk
|
logreader 6.0.0 npm
|
||||||
pcre2 10.43-r0 apk
|
logrotate 3.21.0-r1 apk
|
||||||
pear/archive_tar 1.5.0 php-composer
|
lz4-libs 1.10.0-r0 apk
|
||||||
pear/console_getopt v1.4.3 php-composer
|
marc-mabe/php-enum v4.7.1 php-composer
|
||||||
pear/pear-core-minimal v1.10.15 php-composer
|
masterminds/html5 2.9.0 php-composer
|
||||||
pear/pear_exception v1.0.2 php-composer
|
maybe-rayon 0.1.1 rust-crate
|
||||||
photos 4.0.0 npm
|
mbedtls 3.6.5-r0 apk
|
||||||
php-cs-fixer/shim v3.62.0 php-composer
|
memchr 2.7.1 rust-crate
|
||||||
php-http/guzzle7-adapter 1.0.0 php-composer
|
mexitek/phpcolors v1.0.4 php-composer
|
||||||
php-http/httplug 2.2.0 php-composer
|
microsoft/azure-storage-blob 1.5.4 php-composer
|
||||||
php-http/promise 1.1.0 php-composer
|
microsoft/azure-storage-common 1.5.2 php-composer
|
||||||
php-opencloud/openstack v3.10.0 php-composer
|
minimal-lexical 0.2.1 rust-crate
|
||||||
php83 8.3.16-r0 apk
|
mlocati/ip-lib 1.22.0 php-composer
|
||||||
php83-bcmath 8.3.16-r0 apk
|
mpg123-libs 1.32.10-r0 apk
|
||||||
php83-bz2 8.3.16-r0 apk
|
mtdowling/jmespath.php 2.8.0 php-composer
|
||||||
php83-common 8.3.16-r0 apk
|
musl 1.2.5-r10 apk
|
||||||
php83-ctype 8.3.16-r0 apk
|
musl-utils 1.2.5-r10 apk
|
||||||
php83-curl 8.3.16-r0 apk
|
nano 8.4-r0 apk
|
||||||
php83-dom 8.3.16-r0 apk
|
ncurses-terminfo-base 6.5_p20250503-r0 apk
|
||||||
php83-exif 8.3.16-r0 apk
|
nelexa/buffer 1.3.0 php-composer
|
||||||
php83-fileinfo 8.3.16-r0 apk
|
netcat-openbsd 1.229.1-r0 apk
|
||||||
php83-fpm 8.3.16-r0 apk
|
nettle 3.10.1-r0 apk
|
||||||
php83-ftp 8.3.16-r0 apk
|
new_debug_unreachable 1.0.4 rust-crate
|
||||||
php83-gd 8.3.16-r0 apk
|
nextcloud 1.0.0 npm
|
||||||
php83-gmp 8.3.16-r0 apk
|
nextcloud/lognormalizer v3.0.0 php-composer
|
||||||
php83-iconv 8.3.16-r0 apk
|
nghttp2-libs 1.65.0-r0 apk
|
||||||
php83-imap 8.3.16-r0 apk
|
nginx 1.28.2-r0 apk
|
||||||
php83-intl 8.3.16-r0 apk
|
nom 7.1.3 rust-crate
|
||||||
php83-ldap 8.3.16-r0 apk
|
noop_proc_macro 0.3.0 rust-crate
|
||||||
php83-mbstring 8.3.16-r0 apk
|
notifications 6.0.0-dev.0 npm
|
||||||
php83-mysqlnd 8.3.16-r0 apk
|
num-bigint 0.4.4 rust-crate
|
||||||
php83-opcache 8.3.16-r0 apk
|
num-derive 0.4.1 rust-crate
|
||||||
php83-openssl 8.3.16-r0 apk
|
num-integer 0.1.45 rust-crate
|
||||||
php83-pcntl 8.3.16-r0 apk
|
num-rational 0.4.1 rust-crate
|
||||||
php83-pdo 8.3.16-r0 apk
|
num-traits 0.2.17 rust-crate
|
||||||
php83-pdo_mysql 8.3.16-r0 apk
|
numactl 2.0.18-r0 apk
|
||||||
php83-pdo_pgsql 8.3.16-r0 apk
|
once_cell 1.19.0 rust-crate
|
||||||
php83-pdo_sqlite 8.3.16-r0 apk
|
onevpl-libs 2023.3.1-r2 apk
|
||||||
php83-pecl-apcu 5.1.24-r0 apk
|
oniguruma 6.9.10-r0 apk
|
||||||
php83-pecl-igbinary 3.2.16-r0 apk
|
openexr-libiex 3.3.2-r0 apk
|
||||||
php83-pecl-imagick 3.7.0-r0 apk
|
openexr-libilmthread 3.3.2-r0 apk
|
||||||
php83-pecl-mcrypt 1.0.7-r0 apk
|
openexr-libopenexr 3.3.2-r0 apk
|
||||||
php83-pecl-memcached 3.3.0-r0 apk
|
openexr-libopenexrcore 3.3.2-r0 apk
|
||||||
php83-pecl-msgpack 3.0.0-r0 apk
|
openssl 3.5.5-r0 apk
|
||||||
php83-pecl-redis 6.1.0-r0 apk
|
opus 1.5.2-r1 apk
|
||||||
php83-pecl-smbclient 1.1.2-r0 apk
|
orc 0.4.40-r1 apk
|
||||||
php83-pgsql 8.3.16-r0 apk
|
p11-kit 0.25.5-r2 apk
|
||||||
php83-phar 8.3.16-r0 apk
|
paragonie/constant_time_encoding v2.6.3 php-composer
|
||||||
php83-posix 8.3.16-r0 apk
|
password_policy 5.0.0-dev.0 npm
|
||||||
php83-session 8.3.16-r0 apk
|
paste 1.0.14 rust-crate
|
||||||
php83-simplexml 8.3.16-r0 apk
|
pcre2 10.46-r0 apk
|
||||||
php83-sockets 8.3.16-r0 apk
|
pear/archive_tar 1.5.0 php-composer
|
||||||
php83-sodium 8.3.16-r0 apk
|
pear/console_getopt v1.4.3 php-composer
|
||||||
php83-sqlite3 8.3.16-r0 apk
|
pear/pear-core-minimal v1.10.16 php-composer
|
||||||
php83-sysvsem 8.3.16-r0 apk
|
pear/pear_exception v1.0.2 php-composer
|
||||||
php83-xml 8.3.16-r0 apk
|
photos 6.0.0-dev.0 npm
|
||||||
php83-xmlreader 8.3.16-r0 apk
|
php-http/guzzle7-adapter 1.1.0 php-composer
|
||||||
php83-xmlwriter 8.3.16-r0 apk
|
php-http/httplug 2.4.1 php-composer
|
||||||
php83-zip 8.3.16-r0 apk
|
php-http/promise 1.3.1 php-composer
|
||||||
phpdocumentor/reflection-common 2.2.0 php-composer
|
php-opencloud/openstack v3.14.0 php-composer
|
||||||
phpdocumentor/reflection-docblock 5.4.1 php-composer
|
php84 8.4.16-r0 apk
|
||||||
phpdocumentor/type-resolver 1.8.2 php-composer
|
php84-bcmath 8.4.16-r0 apk
|
||||||
phpseclib/phpseclib 2.0.48 php-composer
|
php84-bz2 8.4.16-r0 apk
|
||||||
phpstan/phpdoc-parser 1.30.1 php-composer
|
php84-common 8.4.16-r0 apk
|
||||||
pimple/pimple v3.5.0 php-composer
|
php84-ctype 8.4.16-r0 apk
|
||||||
popt 1.19-r4 apk
|
php84-curl 8.4.16-r0 apk
|
||||||
privacy 3.0.0 npm
|
php84-dom 8.4.16-r0 apk
|
||||||
procps-ng 4.0.4-r2 apk
|
php84-exif 8.4.16-r0 apk
|
||||||
psr/cache 3.0.0 php-composer
|
php84-fileinfo 8.4.16-r0 apk
|
||||||
psr/clock 1.0.0 php-composer (+1 duplicate)
|
php84-fpm 8.4.16-r0 apk
|
||||||
psr/container 2.0.2 php-composer (+1 duplicate)
|
php84-ftp 8.4.16-r0 apk
|
||||||
psr/event-dispatcher 1.0.0 php-composer (+1 duplicate)
|
php84-gd 8.4.16-r0 apk
|
||||||
psr/http-client 1.0.3 php-composer
|
php84-gmp 8.4.16-r0 apk
|
||||||
psr/http-factory 1.1.0 php-composer
|
php84-iconv 8.4.16-r0 apk
|
||||||
psr/http-message 1.1 php-composer
|
php84-intl 8.4.16-r0 apk
|
||||||
psr/log 1.1.4 php-composer
|
php84-ldap 8.4.16-r0 apk
|
||||||
psr/log 3.0.2 php-composer (+1 duplicate)
|
php84-mbstring 8.4.16-r0 apk
|
||||||
punic/punic 3.8.1 php-composer
|
php84-mysqlnd 8.4.16-r0 apk
|
||||||
ralouphie/getallheaders 3.0.3 php-composer
|
php84-opcache 8.4.16-r0 apk
|
||||||
rav1e-libs 0.7.1-r0 apk
|
php84-openssl 8.4.16-r0 apk
|
||||||
readline 8.2.13-r0 apk
|
php84-pcntl 8.4.16-r0 apk
|
||||||
recommendations 4.0.0 npm
|
php84-pdo 8.4.16-r0 apk
|
||||||
related_resources 2.0.0 npm
|
php84-pdo_mysql 8.4.16-r0 apk
|
||||||
rsync 3.4.0-r0 apk
|
php84-pdo_pgsql 8.4.16-r0 apk
|
||||||
rubix/ml 2.3.2 php-composer
|
php84-pdo_sqlite 8.4.16-r0 apk
|
||||||
rubix/tensor 3.0.5 php-composer
|
php84-pecl-apcu 5.1.27-r0 apk
|
||||||
rullzer/easytotp v0.1.4 php-composer
|
php84-pecl-igbinary 3.2.16-r1 apk
|
||||||
sabre/dav 4.7.0 php-composer
|
php84-pecl-imagick 3.8.0-r1 apk
|
||||||
sabre/event 5.1.7 php-composer
|
php84-pecl-imap 1.0.3-r0 apk
|
||||||
sabre/http 5.1.12 php-composer
|
php84-pecl-memcached 3.3.0-r0 apk
|
||||||
sabre/uri 2.3.4 php-composer
|
php84-pecl-msgpack 3.0.0-r0 apk
|
||||||
sabre/vobject 4.5.6 php-composer
|
php84-pecl-redis 6.3.0-r0 apk
|
||||||
sabre/xml 2.2.11 php-composer
|
php84-pecl-smbclient 1.2.0_pre-r0 apk
|
||||||
samba-client 4.20.6-r1 apk
|
php84-pgsql 8.4.16-r0 apk
|
||||||
samba-client-libs 4.20.6-r1 apk
|
php84-phar 8.4.16-r0 apk
|
||||||
samba-common 4.20.6-r1 apk
|
php84-posix 8.4.16-r0 apk
|
||||||
samba-libs 4.20.6-r1 apk
|
php84-session 8.4.16-r0 apk
|
||||||
samba-util-libs 4.20.6-r1 apk
|
php84-simplexml 8.4.16-r0 apk
|
||||||
scanelf 1.3.8-r1 apk
|
php84-sockets 8.4.16-r0 apk
|
||||||
scssphp/scssphp v1.12.1 php-composer
|
php84-sodium 8.4.16-r0 apk
|
||||||
sdl2 2.30.9-r0 apk
|
php84-sqlite3 8.4.16-r0 apk
|
||||||
sebastian/diff 5.1.1 php-composer
|
php84-sysvsem 8.4.16-r0 apk
|
||||||
serd-libs 0.32.2-r0 apk
|
php84-xml 8.4.16-r0 apk
|
||||||
shaderc 2024.0-r2 apk
|
php84-xmlreader 8.4.16-r0 apk
|
||||||
shadow 4.16.0-r1 apk
|
php84-xmlwriter 8.4.16-r0 apk
|
||||||
skalibs-libs 2.14.3.0-r0 apk
|
php84-zip 8.4.16-r0 apk
|
||||||
sord-libs 0.16.16-r0 apk
|
phpseclib/phpseclib 2.0.47 php-composer
|
||||||
soxr 0.1.3-r7 apk
|
pimple/pimple v3.6.0 php-composer
|
||||||
spatie/array-to-xml 3.3.0 php-composer
|
popt 1.19-r4 apk
|
||||||
speexdsp 1.2.1-r2 apk
|
ppv-lite86 0.2.17 rust-crate
|
||||||
spirv-tools 1.3.290.0-r0 apk
|
privacy 5.0.0-dev.0 npm
|
||||||
spomky-labs/cbor-php 3.0.4 php-composer
|
proc-macro2 1.0.76 rust-crate
|
||||||
spomky-labs/pki-framework 1.2.1 php-composer
|
procps-ng 4.0.4-r3 apk
|
||||||
sqlite-libs 3.48.0-r0 apk
|
profiling 1.0.13 rust-crate
|
||||||
sratom 0.6.16-r0 apk
|
profiling-procmacros 1.0.13 rust-crate
|
||||||
ssl_client 1.37.0-r12 apk
|
psr/cache 3.0.0 php-composer
|
||||||
stecman/symfony-console-completion v0.13.0 php-composer
|
psr/clock 1.0.0 php-composer
|
||||||
sudo 1.9.16_p2-r0 apk
|
psr/container 2.0.2 php-composer
|
||||||
support 3.0.0 npm
|
psr/event-dispatcher 1.0.0 php-composer
|
||||||
symfony/console v6.4.11 php-composer
|
psr/http-client 1.0.3 php-composer
|
||||||
symfony/console v6.4.17 php-composer
|
psr/http-factory 1.1.0 php-composer
|
||||||
symfony/css-selector v6.4.3 php-composer
|
psr/http-message 2.0 php-composer
|
||||||
symfony/deprecation-contracts v3.5.0 php-composer
|
psr/log 3.0.2 php-composer (+1 duplicate)
|
||||||
symfony/deprecation-contracts v3.5.1 php-composer
|
punic/punic 3.8.1 php-composer
|
||||||
symfony/dom-crawler v6.4.4 php-composer
|
quote 1.0.35 rust-crate
|
||||||
symfony/event-dispatcher v6.4.13 php-composer
|
radium 0.7.0 rust-crate
|
||||||
symfony/event-dispatcher-contracts v3.5.1 php-composer
|
ralouphie/getallheaders 3.0.3 php-composer
|
||||||
symfony/filesystem v6.4.9 php-composer
|
rand 0.8.5 rust-crate
|
||||||
symfony/http-foundation v6.4.18 php-composer
|
rand_chacha 0.3.1 rust-crate
|
||||||
symfony/mailer v6.4.18 php-composer
|
rand_core 0.6.4 rust-crate
|
||||||
symfony/mime v6.4.18 php-composer
|
rav1e 0.7.1 rust-crate
|
||||||
symfony/polyfill-ctype v1.31.0 php-composer (+1 duplicate)
|
rav1e-libs 0.7.1-r2 apk
|
||||||
symfony/polyfill-iconv v1.31.0 php-composer
|
rayon 1.8.0 rust-crate
|
||||||
symfony/polyfill-intl-grapheme v1.31.0 php-composer (+2 duplicates)
|
rayon-core 1.12.0 rust-crate
|
||||||
symfony/polyfill-intl-idn v1.31.0 php-composer
|
readline 8.2.13-r1 apk
|
||||||
symfony/polyfill-intl-normalizer v1.31.0 php-composer (+2 duplicates)
|
recommendations 6.0.0-dev.0 npm
|
||||||
symfony/polyfill-mbstring v1.31.0 php-composer (+2 duplicates)
|
rsync 3.4.1-r1 apk
|
||||||
symfony/polyfill-php72 v1.31.0 php-composer
|
rubix/ml 2.5.3 php-composer
|
||||||
symfony/polyfill-php80 v1.31.0 php-composer (+1 duplicate)
|
rubix/tensor 3.0.5 php-composer
|
||||||
symfony/polyfill-php82 v1.31.0 php-composer
|
rullzer/easytotp v0.1.4 php-composer
|
||||||
symfony/polyfill-php83 v1.31.0 php-composer (+1 duplicate)
|
rustix 0.38.28 rust-crate
|
||||||
symfony/polyfill-uuid v1.29.0 php-composer
|
sabre/dav 4.7.0 php-composer
|
||||||
symfony/process v6.4.15 php-composer
|
sabre/event 5.1.7 php-composer
|
||||||
symfony/routing v6.4.18 php-composer
|
sabre/http 5.1.12 php-composer
|
||||||
symfony/service-contracts v3.5.0 php-composer
|
sabre/uri 2.3.4 php-composer
|
||||||
symfony/service-contracts v3.5.1 php-composer
|
sabre/vobject 4.5.6 php-composer
|
||||||
symfony/string v6.4.11 php-composer
|
sabre/xml 2.2.11 php-composer
|
||||||
symfony/string v6.4.15 php-composer
|
samba-client 4.21.9-r1 apk
|
||||||
symfony/translation v6.4.13 php-composer
|
samba-client-libs 4.21.9-r1 apk
|
||||||
symfony/translation-contracts v3.5.1 php-composer
|
samba-common 4.21.9-r1 apk
|
||||||
symfony/uid v6.4.3 php-composer
|
samba-libs 4.21.9-r1 apk
|
||||||
talloc 2.4.2-r1 apk
|
samba-util-libs 4.21.9-r1 apk
|
||||||
tdb-libs 1.4.12-r0 apk
|
scan_fmt 0.2.6 rust-crate
|
||||||
tevent 0.16.1-r0 apk
|
scanelf 1.3.8-r1 apk
|
||||||
text 5.0.0 npm
|
sdl2-compat 2.32.56-r0 apk
|
||||||
twofactor_nextcloud_notification 5.0.0 npm
|
sdl3 3.2.16-r0 apk
|
||||||
twofactor_totp 13.0.0-dev.0 npm
|
serd-libs 0.32.4-r0 apk
|
||||||
tzdata 2024b-r1 apk
|
shaderc 2024.4-r0 apk
|
||||||
utmps-libs 0.1.2.3-r2 apk
|
shadow 4.17.3-r0 apk
|
||||||
v4l-utils-libs 1.28.1-r1 apk
|
signal-hook 0.3.17 rust-crate
|
||||||
vidstab 1.1.1-r0 apk
|
signal-hook-registry 1.4.1 rust-crate
|
||||||
viewer 4.0.0 npm
|
simd_helpers 0.1.0 rust-crate
|
||||||
vimeo/psalm 5.26.1 php-composer
|
skalibs-libs 2.14.4.0-r0 apk
|
||||||
voku/portable-ascii 2.0.3 php-composer
|
sord-libs 0.16.18-r0 apk
|
||||||
voku/portable-utf8 6.0.13 php-composer
|
soxr 0.1.3-r7 apk
|
||||||
vulkan-loader 1.3.296.0-r0 apk
|
speexdsp 1.2.1-r2 apk
|
||||||
wamania/php-stemmer v3.0.1 php-composer
|
spirv-tools 1.4.313.0-r0 apk
|
||||||
wapmorgan/mp3info 0.1.0 php-composer
|
spomky-labs/cbor-php 3.0.4 php-composer
|
||||||
wayland-libs-client 1.23.1-r0 apk
|
spomky-labs/pki-framework 1.2.1 php-composer
|
||||||
web-auth/cose-lib 4.3.0 php-composer
|
sqlite-libs 3.49.2-r1 apk
|
||||||
web-auth/webauthn-lib 4.9.1 php-composer
|
sratom 0.6.18-r0 apk
|
||||||
webmozart/assert 1.11.0 php-composer
|
ssl_client 1.37.0-r20 apk
|
||||||
x264-libs 0.164.3108-r0 apk
|
stecman/symfony-console-completion v0.14.0 php-composer
|
||||||
x265-libs 3.6-r0 apk
|
sudo 1.9.17_p2-r0 apk
|
||||||
xvidcore 1.3.7-r2 apk
|
support 5.0.0-dev.0 npm
|
||||||
xz-libs 5.6.3-r0 apk
|
symfony/console v6.4.17 php-composer
|
||||||
zimg 3.0.5-r2 apk
|
symfony/css-selector v6.4.13 php-composer
|
||||||
zix-libs 0.4.2-r0 apk
|
symfony/deprecation-contracts v3.6.0 php-composer (+1 duplicate)
|
||||||
zlib 1.3.1-r2 apk
|
symfony/dom-crawler v6.4.23 php-composer
|
||||||
zstd-libs 1.5.6-r2 apk
|
symfony/event-dispatcher v6.4.8 php-composer
|
||||||
|
symfony/event-dispatcher-contracts v3.5.0 php-composer
|
||||||
|
symfony/filesystem v7.4.0 php-composer
|
||||||
|
symfony/http-foundation v6.4.29 php-composer
|
||||||
|
symfony/mailer v6.4.12 php-composer
|
||||||
|
symfony/mime v6.4.12 php-composer
|
||||||
|
symfony/polyfill-intl-grapheme v1.32.0 php-composer
|
||||||
|
symfony/polyfill-intl-idn v1.32.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-php83 v1.31.0 php-composer
|
||||||
|
symfony/polyfill-php83 v1.33.0 php-composer
|
||||||
|
symfony/polyfill-php84 v1.33.0 php-composer (+1 duplicate)
|
||||||
|
symfony/polyfill-php85 v1.33.0 php-composer
|
||||||
|
symfony/polyfill-uuid v1.29.0 php-composer
|
||||||
|
symfony/process v6.4.31 php-composer
|
||||||
|
symfony/routing v6.4.12 php-composer
|
||||||
|
symfony/service-contracts v3.5.1 php-composer
|
||||||
|
symfony/string v6.4.15 php-composer
|
||||||
|
symfony/translation v6.4.4 php-composer
|
||||||
|
symfony/translation-contracts v3.4.2 php-composer
|
||||||
|
symfony/uid v6.4.3 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 33.0.0-dev.0 npm
|
||||||
|
terminal_size 0.3.0 rust-crate
|
||||||
|
tevent 0.16.1-r0 apk
|
||||||
|
text 7.0.0-dev.1 npm
|
||||||
|
thiserror 1.0.56 rust-crate
|
||||||
|
thiserror-impl 1.0.56 rust-crate
|
||||||
|
tinyvec 1.9.0 rust-crate
|
||||||
|
twofactor_totp 15.0.0-dev.0 npm
|
||||||
|
tzdata 2025c-r0 apk
|
||||||
|
unicode-ident 1.0.12 rust-crate
|
||||||
|
unicode-width 0.1.11 rust-crate
|
||||||
|
utf8parse 0.2.1 rust-crate
|
||||||
|
utmps-libs 0.1.3.1-r0 apk
|
||||||
|
v4l-utils-libs 1.28.1-r1 apk
|
||||||
|
v_frame 0.3.7 rust-crate
|
||||||
|
vidstab 1.1.1-r0 apk
|
||||||
|
viewer 6.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.3.0 php-composer
|
||||||
|
web-auth/webauthn-lib 4.9.1 php-composer
|
||||||
|
woltlab/webp-exif v0.1.2 php-composer
|
||||||
|
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.1-r0 apk
|
||||||
|
y4m 0.8.0 rust-crate
|
||||||
|
zimg 3.0.5-r3 apk
|
||||||
|
zix-libs 0.6.2-r0 apk
|
||||||
|
zlib 1.3.1-r2 apk
|
||||||
|
zstd-libs 1.5.7-r0 apk
|
||||||
|
|||||||
+5
-1
@@ -112,6 +112,7 @@ init_diagram: |
|
|||||||
init-nextcloud-config -> init-config-end
|
init-nextcloud-config -> init-config-end
|
||||||
init-config -> init-crontab-config
|
init-config -> init-crontab-config
|
||||||
init-mods-end -> init-custom-files
|
init-mods-end -> init-custom-files
|
||||||
|
init-adduser -> init-device-perms
|
||||||
base -> init-envfile
|
base -> init-envfile
|
||||||
init-os-end -> init-folders
|
init-os-end -> init-folders
|
||||||
init-php -> init-keygen
|
init-php -> init-keygen
|
||||||
@@ -123,6 +124,7 @@ init_diagram: |
|
|||||||
init-samples -> init-nginx
|
init-samples -> init-nginx
|
||||||
init-version-checks -> init-nginx-end
|
init-version-checks -> init-nginx-end
|
||||||
init-adduser -> init-os-end
|
init-adduser -> init-os-end
|
||||||
|
init-device-perms -> init-os-end
|
||||||
init-envfile -> init-os-end
|
init-envfile -> init-os-end
|
||||||
init-keygen -> init-permissions
|
init-keygen -> init-permissions
|
||||||
init-nginx -> init-php
|
init-nginx -> init-php
|
||||||
@@ -137,11 +139,13 @@ init_diagram: |
|
|||||||
svc-php-fpm -> legacy-services
|
svc-php-fpm -> legacy-services
|
||||||
}
|
}
|
||||||
Base Images: {
|
Base Images: {
|
||||||
"baseimage-alpine-nginx:3.21" <- "baseimage-alpine:3.21"
|
"baseimage-alpine-nginx:3.22" <- "baseimage-alpine:3.22"
|
||||||
}
|
}
|
||||||
"nextcloud:develop" <- Base Images
|
"nextcloud:develop" <- Base Images
|
||||||
# changelog
|
# changelog
|
||||||
changelogs:
|
changelogs:
|
||||||
|
- {date: "08.02.26:", desc: "Existing users should update: site-confs/default.conf - Deny access to all dotfiles."}
|
||||||
|
- {date: "10.07.25:", desc: "Rebase to Alpine 3.22."}
|
||||||
- {date: "12.02.25:", desc: "Rebase to Alpine 3.21."}
|
- {date: "12.02.25:", desc: "Rebase to Alpine 3.21."}
|
||||||
- {date: "09.01.25:", desc: "Fix uploading large files. Existing users should update their nginx confs."}
|
- {date: "09.01.25:", desc: "Fix uploading large files. Existing users should update their nginx confs."}
|
||||||
- {date: "09.07.24:", desc: "Add `previous` tag for n-1 releases."}
|
- {date: "09.07.24:", desc: "Add `previous` tag for n-1 releases."}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
## Version 2024/07/16 - Changelog: https://github.com/linuxserver/docker-nextcloud/commits/master/root/defaults/nginx/site-confs/default.conf.sample
|
## Version 2026/05/05 - Changelog: https://github.com/linuxserver/docker-nextcloud/commits/master/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 {
|
||||||
@@ -11,6 +11,8 @@ server {
|
|||||||
listen [::]:80 default_server;
|
listen [::]:80 default_server;
|
||||||
listen 443 ssl default_server;
|
listen 443 ssl 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 _;
|
||||||
|
|
||||||
@@ -18,6 +20,13 @@ server {
|
|||||||
|
|
||||||
root /app/www/public;
|
root /app/www/public;
|
||||||
|
|
||||||
|
# deny access to all dotfiles
|
||||||
|
location ~ /\. {
|
||||||
|
access_log off;
|
||||||
|
log_not_found off;
|
||||||
|
return 404;
|
||||||
|
}
|
||||||
|
|
||||||
# display real ip in nginx logs when connected through reverse proxy via docker network
|
# display real ip in nginx logs when connected through reverse proxy via docker network
|
||||||
set_real_ip_from 172.16.0.0/12;
|
set_real_ip_from 172.16.0.0/12;
|
||||||
real_ip_header X-Forwarded-For;
|
real_ip_header X-Forwarded-For;
|
||||||
@@ -47,12 +56,12 @@ server {
|
|||||||
client_body_buffer_size 512k;
|
client_body_buffer_size 512k;
|
||||||
|
|
||||||
# HTTP response headers borrowed from Nextcloud `.htaccess`
|
# HTTP response headers borrowed from Nextcloud `.htaccess`
|
||||||
add_header Referrer-Policy "no-referrer" always;
|
add_header Referrer-Policy "no-referrer" always;
|
||||||
add_header X-Content-Type-Options "nosniff" always;
|
add_header X-Content-Type-Options "nosniff" always;
|
||||||
add_header X-Frame-Options "SAMEORIGIN" always;
|
add_header X-Frame-Options "SAMEORIGIN" always;
|
||||||
add_header X-Permitted-Cross-Domain-Policies "none" always;
|
add_header X-Permitted-Cross-Domain-Policies "none" always;
|
||||||
add_header X-Robots-Tag "noindex, nofollow" always;
|
add_header X-Robots-Tag "noindex, nofollow" always;
|
||||||
add_header X-XSS-Protection "1; mode=block" always;
|
add_header X-XSS-Protection "1; mode=block" always;
|
||||||
|
|
||||||
# Remove X-Powered-By, which is an information leak
|
# Remove X-Powered-By, which is an information leak
|
||||||
fastcgi_hide_header X-Powered-By;
|
fastcgi_hide_header X-Powered-By;
|
||||||
@@ -90,11 +99,19 @@ server {
|
|||||||
# The rules in this block are an adaptation of the rules
|
# The rules in this block are an adaptation of the rules
|
||||||
# in `.htaccess` that concern `/.well-known`.
|
# in `.htaccess` that concern `/.well-known`.
|
||||||
|
|
||||||
location = /.well-known/carddav { return 301 /remote.php/dav/; }
|
location = /.well-known/carddav {
|
||||||
location = /.well-known/caldav { return 301 /remote.php/dav/; }
|
return 301 /remote.php/dav/;
|
||||||
|
}
|
||||||
|
location = /.well-known/caldav {
|
||||||
|
return 301 /remote.php/dav/;
|
||||||
|
}
|
||||||
|
|
||||||
location /.well-known/acme-challenge { try_files $uri $uri/ =404; }
|
location /.well-known/acme-challenge {
|
||||||
location /.well-known/pki-validation { try_files $uri $uri/ =404; }
|
try_files $uri $uri/ =404;
|
||||||
|
}
|
||||||
|
location /.well-known/pki-validation {
|
||||||
|
try_files $uri $uri/ =404;
|
||||||
|
}
|
||||||
|
|
||||||
# Let Nextcloud's API for `/.well-known` URIs handle all other
|
# Let Nextcloud's API for `/.well-known` URIs handle all other
|
||||||
# requests by passing them to the front-end controller.
|
# requests by passing them to the front-end controller.
|
||||||
@@ -102,8 +119,12 @@ server {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# Rules borrowed from `.htaccess` to hide certain paths from clients
|
# Rules borrowed from `.htaccess` to hide certain paths from clients
|
||||||
location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/) { return 404; }
|
location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/) {
|
||||||
location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) { return 404; }
|
return 404;
|
||||||
|
}
|
||||||
|
location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
|
||||||
|
return 404;
|
||||||
|
}
|
||||||
|
|
||||||
# Ensure this block, which passes PHP files to the PHP process, is above the blocks
|
# Ensure this block, which passes PHP files to the PHP process, is above the blocks
|
||||||
# which handle static assets (as seen below). If this block is not declared first,
|
# which handle static assets (as seen below). If this block is not declared first,
|
||||||
@@ -122,8 +143,8 @@ server {
|
|||||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||||
fastcgi_param PATH_INFO $path_info;
|
fastcgi_param PATH_INFO $path_info;
|
||||||
|
|
||||||
fastcgi_param modHeadersAvailable true; # Avoid sending the security headers twice
|
fastcgi_param modHeadersAvailable true; # Avoid sending the security headers twice
|
||||||
fastcgi_param front_controller_active true; # Enable pretty urls
|
fastcgi_param front_controller_active true; # Enable pretty urls
|
||||||
fastcgi_pass 127.0.0.1:9000;
|
fastcgi_pass 127.0.0.1:9000;
|
||||||
|
|
||||||
fastcgi_intercept_errors on;
|
fastcgi_intercept_errors on;
|
||||||
@@ -136,7 +157,7 @@ server {
|
|||||||
location ~ \.(?:css|js|mjs|svg|gif|png|jpg|ico|wasm|tflite|map|ogg|flac)$ {
|
location ~ \.(?:css|js|mjs|svg|gif|png|jpg|ico|wasm|tflite|map|ogg|flac)$ {
|
||||||
try_files $uri /index.php$request_uri;
|
try_files $uri /index.php$request_uri;
|
||||||
add_header Cache-Control "public, max-age=15778463, $asset_immutable";
|
add_header Cache-Control "public, max-age=15778463, $asset_immutable";
|
||||||
access_log off; # Optional: Don't log access to assets
|
access_log off; # Optional: Don't log access to assets
|
||||||
|
|
||||||
location ~ \.wasm$ {
|
location ~ \.wasm$ {
|
||||||
default_type application/wasm;
|
default_type application/wasm;
|
||||||
@@ -146,8 +167,8 @@ server {
|
|||||||
|
|
||||||
location ~ \.woff2?$ {
|
location ~ \.woff2?$ {
|
||||||
try_files $uri /index.php$request_uri;
|
try_files $uri /index.php$request_uri;
|
||||||
expires 7d; # Cache-Control policy borrowed from `.htaccess`
|
expires 7d; # Cache-Control policy borrowed from `.htaccess`
|
||||||
access_log off; # Optional: Don't log access to assets
|
access_log off; # Optional: Don't log access to assets
|
||||||
}
|
}
|
||||||
|
|
||||||
# Rule borrowed from `.htaccess`
|
# Rule borrowed from `.htaccess`
|
||||||
@@ -155,6 +176,14 @@ server {
|
|||||||
return 301 /remote.php$request_uri;
|
return 301 /remote.php$request_uri;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Support for the Client Push (notify_push) plugin, needs mod installed https://github.com/linuxserver/docker-mods/tree/nextcloud-notify-push
|
||||||
|
location ^~ /push/ {
|
||||||
|
proxy_pass http://127.0.0.1:7867/;
|
||||||
|
proxy_http_version 1.1;
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Connection "Upgrade";
|
||||||
|
}
|
||||||
|
|
||||||
location / {
|
location / {
|
||||||
# enable for basic auth
|
# enable for basic auth
|
||||||
#auth_basic "Restricted";
|
#auth_basic "Restricted";
|
||||||
@@ -162,9 +191,4 @@ server {
|
|||||||
|
|
||||||
try_files $uri $uri/ /index.php$request_uri;
|
try_files $uri $uri/ /index.php$request_uri;
|
||||||
}
|
}
|
||||||
|
|
||||||
# deny access to .htaccess/.htpasswd files
|
|
||||||
location ~ /\.ht {
|
|
||||||
deny all;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user