Compare commits
59
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5215c25ba1 | ||
|
|
bece423873 | ||
|
|
5365f942c6 | ||
|
|
40d3a98496 | ||
|
|
b1e97f37f8 | ||
|
|
06cddbd6bc | ||
|
|
c9619c8883 | ||
|
|
c98aea4ba9 | ||
|
|
f8c75d4e61 | ||
|
|
4d7747b74c | ||
|
|
9a071233e1 | ||
|
|
069832c8da | ||
|
|
cdb071c943 | ||
|
|
bb785dcbd7 | ||
|
|
097c8279f3 | ||
|
|
4abe547c5c | ||
|
|
0d60201824 | ||
|
|
9c7b40e00b | ||
|
|
5d211927fa | ||
|
|
fb34a5b823 | ||
|
|
98928f9216 | ||
|
|
5fd23ebcb4 | ||
|
|
53ac62e01e | ||
|
|
9bc699d82f | ||
|
|
0023b50214 | ||
|
|
ae2c474852 | ||
|
|
9c49e94f55 | ||
|
|
5076684d7f | ||
|
|
5243703bea | ||
|
|
b2d7ce1939 | ||
|
|
900c668f0d | ||
|
|
2af6aea50f | ||
|
|
a34cea2c79 | ||
|
|
05ec7ef382 | ||
|
|
0c96a2d479 | ||
|
|
e8e0bc1fb2 | ||
|
|
2bb915944a | ||
|
|
82abdaa8f2 | ||
|
|
27f87e222d | ||
|
|
23e388789c | ||
|
|
9880041430 | ||
|
|
b3747331bf | ||
|
|
2396b73523 | ||
|
|
e6b24e3ed9 | ||
|
|
955e346a89 | ||
|
|
5a46f97677 | ||
|
|
ce61b2ec53 | ||
|
|
418897513a | ||
|
|
a587df8e84 | ||
|
|
ba3baaedc4 | ||
|
|
abfb55040a | ||
|
|
797a279f0e | ||
|
|
a3f8bd16ee | ||
|
|
eee58672e9 | ||
|
|
8f55777b0d | ||
|
|
1d88a7626e | ||
|
|
94a34153df | ||
|
|
00f6247b8f | ||
|
|
1ea4ab0c1f |
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
+3
@@ -8,6 +8,9 @@ on:
|
||||
pull_request_review:
|
||||
types: [submitted,edited,dismissed]
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
manage-project:
|
||||
permissions:
|
||||
|
||||
Executable → Regular
+3
@@ -4,6 +4,9 @@ on:
|
||||
- cron: '58 22 * * *'
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
stale:
|
||||
permissions:
|
||||
|
||||
@@ -3,6 +3,9 @@ name: External Trigger Main
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
external-trigger-master:
|
||||
runs-on: ubuntu-latest
|
||||
@@ -43,8 +46,8 @@ jobs:
|
||||
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
|
||||
exit 1
|
||||
fi
|
||||
EXT_RELEASE=$(echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g')
|
||||
echo "External version: \`${EXT_RELEASE}\`" >> $GITHUB_STEP_SUMMARY
|
||||
EXT_RELEASE_SANITIZED=$(echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g')
|
||||
echo "Sanitized external version: \`${EXT_RELEASE_SANITIZED}\`" >> $GITHUB_STEP_SUMMARY
|
||||
echo "Retrieving last pushed version" >> $GITHUB_STEP_SUMMARY
|
||||
image="linuxserver/radarr"
|
||||
tag="latest"
|
||||
@@ -100,8 +103,8 @@ jobs:
|
||||
exit 1
|
||||
fi
|
||||
echo "Last pushed version: \`${IMAGE_VERSION}\`" >> $GITHUB_STEP_SUMMARY
|
||||
if [ "${EXT_RELEASE}" == "${IMAGE_VERSION}" ]; then
|
||||
echo "Version \`${EXT_RELEASE}\` already pushed, exiting" >> $GITHUB_STEP_SUMMARY
|
||||
if [ "${EXT_RELEASE_SANITIZED}" == "${IMAGE_VERSION}" ]; then
|
||||
echo "Sanitized version \`${EXT_RELEASE_SANITIZED}\` already pushed, exiting" >> $GITHUB_STEP_SUMMARY
|
||||
exit 0
|
||||
elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-radarr/job/master/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
|
||||
@@ -116,7 +119,7 @@ jobs:
|
||||
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
|
||||
else
|
||||
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
|
||||
echo "All artifacts seem to be uploaded." >> $GITHUB_STEP_SUMMARY
|
||||
fi
|
||||
@@ -136,7 +139,7 @@ jobs:
|
||||
--data-urlencode "description=GHA external trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \
|
||||
--data-urlencode "Submit=Submit"
|
||||
echo "**** Notifying Discord ****"
|
||||
TRIGGER_REASON="A version change was detected for radarr tag latest. Old version:${IMAGE_VERSION} New version:${EXT_RELEASE}"
|
||||
TRIGGER_REASON="A version change was detected for radarr tag latest. Old version:${IMAGE_VERSION} New version:${EXT_RELEASE_SANITIZED}"
|
||||
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903,
|
||||
"description": "**Build Triggered** \n**Reason:** '"${TRIGGER_REASON}"' \n**Build URL:** '"${buildurl}display/redirect"' \n"}],
|
||||
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
|
||||
|
||||
@@ -5,6 +5,9 @@ on:
|
||||
- cron: '25 * * * *'
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
external-trigger-scheduler:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
Executable → Regular
+6
@@ -2,8 +2,14 @@ name: Greetings
|
||||
|
||||
on: [pull_request_target, issues]
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
greeting:
|
||||
permissions:
|
||||
issues: write
|
||||
pull-requests: write
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/first-interaction@v1
|
||||
|
||||
@@ -5,6 +5,9 @@ on:
|
||||
- cron: '49 16 * * 0'
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
package-trigger-scheduler:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
Executable → Regular
+1
-1
@@ -1,6 +1,6 @@
|
||||
# syntax=docker/dockerfile:1
|
||||
|
||||
FROM ghcr.io/linuxserver/baseimage-alpine:3.21
|
||||
FROM ghcr.io/linuxserver/baseimage-alpine:3.24
|
||||
|
||||
# set version label
|
||||
ARG BUILD_DATE
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
# syntax=docker/dockerfile:1
|
||||
|
||||
FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.21
|
||||
FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.24
|
||||
|
||||
# set version label
|
||||
ARG BUILD_DATE
|
||||
|
||||
Vendored
+185
-124
@@ -75,6 +75,8 @@ pipeline {
|
||||
'''
|
||||
script{
|
||||
env.EXIT_STATUS = ''
|
||||
env.CI_TEST_ATTEMPTED = ''
|
||||
env.PUSH_ATTEMPTED = ''
|
||||
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' || : ''',
|
||||
returnStdout: true).trim()
|
||||
@@ -94,7 +96,11 @@ pipeline {
|
||||
env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DOCKERHUB_IMAGE + '/tags/'
|
||||
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 ./root/donate.txt'
|
||||
if ( env.SYFT_IMAGE_TAG == null ) {
|
||||
env.SYFT_IMAGE_TAG = 'latest'
|
||||
}
|
||||
}
|
||||
echo "Using syft image tag ${SYFT_IMAGE_TAG}"
|
||||
sh '''#! /bin/bash
|
||||
echo "The default github branch detected as ${GH_DEFAULT_BRANCH}" '''
|
||||
script{
|
||||
@@ -204,6 +210,7 @@ pipeline {
|
||||
env.META_TAG = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
|
||||
env.EXT_RELEASE_TAG = '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.CITEST_IMAGETAG = 'latest'
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -229,6 +236,7 @@ pipeline {
|
||||
env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN
|
||||
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.CITEST_IMAGETAG = 'develop'
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -254,6 +262,7 @@ pipeline {
|
||||
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.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 +285,7 @@ pipeline {
|
||||
-v ${WORKSPACE}:/mnt \
|
||||
-e AWS_ACCESS_KEY_ID=\"${S3_KEY}\" \
|
||||
-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.23 s6-envdir -fn -- /var/run/s6/container_environment /bin/bash -c "\
|
||||
apk add --no-cache python3 && \
|
||||
python3 -m venv /lsiopy && \
|
||||
pip install --no-cache-dir -U pip && \
|
||||
@@ -611,13 +620,16 @@ pipeline {
|
||||
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 $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
|
||||
|
||||
if [[ "${PACKAGE_CHECK}" != "true" ]]; then
|
||||
declare -A pids
|
||||
IFS=',' read -ra CACHE <<< "$BUILDCACHE"
|
||||
for i in "${CACHE[@]}"; do
|
||||
docker push ${i}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} &
|
||||
pids[$!]="$i"
|
||||
done
|
||||
for p in $(jobs -p); do
|
||||
wait "$p" || { echo "job $p failed" >&2; exit 1; }
|
||||
for p in "${!pids[@]}"; do
|
||||
wait "$p" || { [[ "${pids[$p]}" != *"quay.io"* ]] && exit 1; }
|
||||
done
|
||||
fi
|
||||
'''
|
||||
@@ -677,13 +689,16 @@ pipeline {
|
||||
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 $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
|
||||
|
||||
if [[ "${PACKAGE_CHECK}" != "true" ]]; then
|
||||
declare -A pids
|
||||
IFS=',' read -ra CACHE <<< "$BUILDCACHE"
|
||||
for i in "${CACHE[@]}"; do
|
||||
docker push ${i}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} &
|
||||
pids[$!]="$i"
|
||||
done
|
||||
for p in $(jobs -p); do
|
||||
wait "$p" || { echo "job $p failed" >&2; exit 1; }
|
||||
for p in "${!pids[@]}"; do
|
||||
wait "$p" || { [[ "${pids[$p]}" != *"quay.io"* ]] && exit 1; }
|
||||
done
|
||||
fi
|
||||
'''
|
||||
@@ -737,12 +752,14 @@ pipeline {
|
||||
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
|
||||
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
|
||||
if [[ "${PACKAGE_CHECK}" != "true" ]]; then
|
||||
declare -A pids
|
||||
IFS=',' read -ra CACHE <<< "$BUILDCACHE"
|
||||
for i in "${CACHE[@]}"; do
|
||||
docker push ${i}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} &
|
||||
pids[$!]="$i"
|
||||
done
|
||||
for p in $(jobs -p); do
|
||||
wait "$p" || { echo "job $p failed" >&2; exit 1; }
|
||||
for p in "${!pids[@]}"; do
|
||||
wait "$p" || { [[ "${pids[$p]}" != *"quay.io"* ]] && exit 1; }
|
||||
done
|
||||
fi
|
||||
'''
|
||||
@@ -780,7 +797,7 @@ pipeline {
|
||||
docker run --rm \
|
||||
-v /var/run/docker.sock:/var/run/docker.sock:ro \
|
||||
-v ${TEMPDIR}:/tmp \
|
||||
ghcr.io/anchore/syft:latest \
|
||||
ghcr.io/anchore/syft:${SYFT_IMAGE_TAG} \
|
||||
${LOCAL_CONTAINER} -o table=/tmp/package_versions.txt
|
||||
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"
|
||||
@@ -856,6 +873,7 @@ pipeline {
|
||||
script{
|
||||
env.CI_URL = 'https://ci-tests.linuxserver.io/' + env.IMAGE + '/' + env.META_TAG + '/index.html'
|
||||
env.CI_JSON_URL = 'https://ci-tests.linuxserver.io/' + env.IMAGE + '/' + env.META_TAG + '/report.json'
|
||||
env.CI_TEST_ATTEMPTED = 'true'
|
||||
}
|
||||
sh '''#! /bin/bash
|
||||
set -e
|
||||
@@ -867,7 +885,7 @@ pipeline {
|
||||
CI_DOCKERENV="LSIO_FIRST_PARTY=true"
|
||||
fi
|
||||
fi
|
||||
docker pull ghcr.io/linuxserver/ci:latest
|
||||
docker pull ghcr.io/linuxserver/ci:${CITEST_IMAGETAG}
|
||||
if [ "${MULTIARCH}" == "true" ]; then
|
||||
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}
|
||||
@@ -890,7 +908,10 @@ pipeline {
|
||||
-e WEB_AUTH=\"${CI_AUTH}\" \
|
||||
-e WEB_PATH=\"${CI_WEBPATH}\" \
|
||||
-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'''
|
||||
}
|
||||
}
|
||||
@@ -905,6 +926,9 @@ pipeline {
|
||||
environment name: 'EXIT_STATUS', value: ''
|
||||
}
|
||||
steps {
|
||||
script{
|
||||
env.PUSH_ATTEMPTED = 'true'
|
||||
}
|
||||
retry_backoff(5,5) {
|
||||
sh '''#! /bin/bash
|
||||
set -e
|
||||
@@ -916,9 +940,11 @@ pipeline {
|
||||
CACHEIMAGE=${i}
|
||||
fi
|
||||
done
|
||||
docker buildx imagetools create --prefer-index=false -t ${PUSHIMAGE}:${META_TAG} -t ${PUSHIMAGE}:latest -t ${PUSHIMAGE}:${EXT_RELEASE_TAG} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER}
|
||||
docker buildx imagetools create --prefer-index=false -t ${PUSHIMAGE}:${META_TAG} -t ${PUSHIMAGE}:latest -t ${PUSHIMAGE}:${EXT_RELEASE_TAG} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} || \
|
||||
{ if [[ "${PUSHIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
|
||||
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
|
||||
done
|
||||
'''
|
||||
@@ -932,31 +958,45 @@ pipeline {
|
||||
environment name: 'EXIT_STATUS', value: ''
|
||||
}
|
||||
steps {
|
||||
script{
|
||||
env.PUSH_ATTEMPTED = 'true'
|
||||
}
|
||||
retry_backoff(5,5) {
|
||||
sh '''#! /bin/bash
|
||||
set -e
|
||||
for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do
|
||||
[[ ${MANIFESTIMAGE%%/*} =~ \\. ]] && MANIFESTIMAGEPLUS="${MANIFESTIMAGE}" || MANIFESTIMAGEPLUS="docker.io/${MANIFESTIMAGE}"
|
||||
if [[ "${MANIFESTIMAGE%%/*}" =~ \\. ]]; then
|
||||
MANIFESTIMAGEPLUS="${MANIFESTIMAGE}"
|
||||
else
|
||||
MANIFESTIMAGEPLUS="docker.io/${MANIFESTIMAGE}"
|
||||
fi
|
||||
IFS=',' read -ra CACHE <<< "$BUILDCACHE"
|
||||
for i in "${CACHE[@]}"; do
|
||||
if [[ "${MANIFESTIMAGEPLUS}" == "$(cut -d "/" -f1 <<< ${i})"* ]]; then
|
||||
CACHEIMAGE=${i}
|
||||
fi
|
||||
done
|
||||
docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:amd64-${META_TAG} -t ${MANIFESTIMAGE}:amd64-latest -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-latest -t ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} ${CACHEIMAGE}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
|
||||
docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:amd64-${META_TAG} -t ${MANIFESTIMAGE}:amd64-latest -t ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${CACHEIMAGE}:amd64-${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-latest -t ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} ${CACHEIMAGE}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || \
|
||||
{ if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
|
||||
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}:arm64v8-${SEMVER} ${CACHEIMAGE}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
|
||||
docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:amd64-${SEMVER} ${CACHEIMAGE}:amd64-${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
|
||||
done
|
||||
for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do
|
||||
docker buildx imagetools create -t ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm64v8-latest
|
||||
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}
|
||||
docker buildx imagetools create -t ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm64v8-latest || \
|
||||
{ if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
|
||||
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}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} || \
|
||||
{ if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
|
||||
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
|
||||
done
|
||||
'''
|
||||
@@ -974,23 +1014,41 @@ pipeline {
|
||||
environment name: 'EXIT_STATUS', value: ''
|
||||
}
|
||||
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 master",\
|
||||
"type": "commit",\
|
||||
"tagger": {"name": "LinuxServer-CI","email": "ci@linuxserver.io","date": "'${GITHUB_DATE}'"}}' '''
|
||||
echo "Pushing New release for Tag"
|
||||
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": "master"}' \
|
||||
| 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 master",\
|
||||
"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 '{"tag_name":"'${META_TAG}'",\
|
||||
"target_commitish": "master",\
|
||||
"name": "'${META_TAG}'",\
|
||||
"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
|
||||
printf '","draft": false,"prerelease": false}' >> releasebody.json
|
||||
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'''
|
||||
jq -n \
|
||||
--arg tag_name "$META_TAG" \
|
||||
--arg target_commitish "master" \
|
||||
--arg ci_url "${CI_URL:-N/A}" \
|
||||
--arg ls_notes "$AUTO_RELEASE_NOTES" \
|
||||
--arg remote_notes "$(cat releasebody.json)" \
|
||||
'{
|
||||
"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": false }' > 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
|
||||
@@ -1028,98 +1086,13 @@ EOF
|
||||
) '''
|
||||
}
|
||||
}
|
||||
// If this is a Pull request send the CI link as a comment on it
|
||||
stage('Pull Request Comment') {
|
||||
when {
|
||||
not {environment name: 'CHANGE_ID', value: ''}
|
||||
environment name: 'EXIT_STATUS', value: ''
|
||||
}
|
||||
steps {
|
||||
sh '''#! /bin/bash
|
||||
# Function to retrieve JSON data from URL
|
||||
get_json() {
|
||||
local url="$1"
|
||||
local response=$(curl -s "$url")
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Failed to retrieve JSON data from $url"
|
||||
return 1
|
||||
fi
|
||||
local json=$(echo "$response" | jq .)
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Failed to parse JSON data from $url"
|
||||
return 1
|
||||
fi
|
||||
echo "$json"
|
||||
}
|
||||
|
||||
build_table() {
|
||||
local data="$1"
|
||||
|
||||
# Get the keys in the JSON data
|
||||
local keys=$(echo "$data" | jq -r 'to_entries | map(.key) | .[]')
|
||||
|
||||
# Check if keys are empty
|
||||
if [ -z "$keys" ]; then
|
||||
echo "JSON report data does not contain any keys or the report does not exist."
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Build table header
|
||||
local header="| Tag | Passed |\\n| --- | --- |\\n"
|
||||
|
||||
# Loop through the JSON data to build the table rows
|
||||
local rows=""
|
||||
for build in $keys; do
|
||||
local status=$(echo "$data" | jq -r ".[\\"$build\\"].test_success")
|
||||
if [ "$status" = "true" ]; then
|
||||
status="✅"
|
||||
else
|
||||
status="❌"
|
||||
fi
|
||||
local row="| "$build" | "$status" |\\n"
|
||||
rows="${rows}${row}"
|
||||
done
|
||||
|
||||
local table="${header}${rows}"
|
||||
local escaped_table=$(echo "$table" | sed 's/\"/\\\\"/g')
|
||||
echo "$escaped_table"
|
||||
}
|
||||
|
||||
if [[ "${CI}" = "true" ]]; then
|
||||
# Retrieve JSON data from URL
|
||||
data=$(get_json "$CI_JSON_URL")
|
||||
# Create table from JSON data
|
||||
table=$(build_table "$data")
|
||||
echo -e "$table"
|
||||
|
||||
curl -X POST -H "Authorization: token $GITHUB_TOKEN" \
|
||||
-H "Accept: application/vnd.github.v3+json" \
|
||||
"https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \
|
||||
-d "{\\"body\\": \\"I am a bot, here are the test results for this PR: \\n${CI_URL}\\n${SHELLCHECK_URL}\\n${table}\\"}"
|
||||
else
|
||||
curl -X POST -H "Authorization: token $GITHUB_TOKEN" \
|
||||
-H "Accept: application/vnd.github.v3+json" \
|
||||
"https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \
|
||||
-d "{\\"body\\": \\"I am a bot, here is the pushed image/manifest for this PR: \\n\\n\\`${GITHUBIMAGE}:${META_TAG}\\`\\"}"
|
||||
fi
|
||||
'''
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
/* ######################
|
||||
Send status to Discord
|
||||
Comment on PR and Send status to Discord
|
||||
###################### */
|
||||
post {
|
||||
always {
|
||||
sh '''#!/bin/bash
|
||||
rm -rf /config/.ssh/id_sign
|
||||
rm -rf /config/.ssh/id_sign.pub
|
||||
git config --global --unset gpg.format
|
||||
git config --global --unset user.signingkey
|
||||
git config --global --unset commit.gpgsign
|
||||
'''
|
||||
script{
|
||||
script {
|
||||
env.JOB_DATE = sh(
|
||||
script: '''date '+%Y-%m-%dT%H:%M:%S%:z' ''',
|
||||
returnStdout: true).trim()
|
||||
@@ -1162,6 +1135,94 @@ EOF
|
||||
"username": "Jenkins"}' ${BUILDS_DISCORD} '''
|
||||
}
|
||||
}
|
||||
script {
|
||||
if (env.GITHUBIMAGE =~ /lspipepr/){
|
||||
if (env.CI_TEST_ATTEMPTED == "true" || env.PUSH_ATTEMPTED == "true"){
|
||||
sh '''#! /bin/bash
|
||||
# Function to retrieve JSON data from URL
|
||||
get_json() {
|
||||
local url="$1"
|
||||
local response=$(curl -s "$url")
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Failed to retrieve JSON data from $url"
|
||||
return 1
|
||||
fi
|
||||
local json=$(echo "$response" | jq .)
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Failed to parse JSON data from $url"
|
||||
return 1
|
||||
fi
|
||||
echo "$json"
|
||||
}
|
||||
|
||||
build_table() {
|
||||
local data="$1"
|
||||
|
||||
# Get the keys in the JSON data
|
||||
local keys=$(echo "$data" | jq -r 'to_entries | map(.key) | .[]')
|
||||
|
||||
# Check if keys are empty
|
||||
if [ -z "$keys" ]; then
|
||||
echo "JSON report data does not contain any keys or the report does not exist."
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Build table header
|
||||
local header="| Tag | Passed |\\n| --- | --- |\\n"
|
||||
|
||||
# Loop through the JSON data to build the table rows
|
||||
local rows=""
|
||||
for build in $keys; do
|
||||
local status=$(echo "$data" | jq -r ".[\\"$build\\"].test_success")
|
||||
if [ "$status" = "true" ]; then
|
||||
status="✅"
|
||||
else
|
||||
status="❌"
|
||||
fi
|
||||
local row="| "$build" | "$status" |\\n"
|
||||
rows="${rows}${row}"
|
||||
done
|
||||
|
||||
local table="${header}${rows}"
|
||||
local escaped_table=$(echo "$table" | sed 's/\"/\\\\"/g')
|
||||
echo "$escaped_table"
|
||||
}
|
||||
|
||||
if [[ "${CI}" = "true" ]]; then
|
||||
# Retrieve JSON data from URL
|
||||
data=$(get_json "$CI_JSON_URL")
|
||||
# Create table from JSON data
|
||||
table=$(build_table "$data")
|
||||
echo -e "$table"
|
||||
|
||||
curl -X POST -H "Authorization: token $GITHUB_TOKEN" \
|
||||
-H "Accept: application/vnd.github.v3+json" \
|
||||
"https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \
|
||||
-d "{\\"body\\": \\"I am a bot, here are the test results for this PR for commit ${COMMIT_SHA:0:7} : \\n${CI_URL}\\n${SHELLCHECK_URL}\\n${table}\\"}"
|
||||
else
|
||||
curl -X POST -H "Authorization: token $GITHUB_TOKEN" \
|
||||
-H "Accept: application/vnd.github.v3+json" \
|
||||
"https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \
|
||||
-d "{\\"body\\": \\"I am a bot, here is the pushed image/manifest for this PR for commit ${COMMIT_SHA:0:7} : \\n\\n\\`${GITHUBIMAGE}:${META_TAG}\\`\\"}"
|
||||
fi
|
||||
'''
|
||||
} else {
|
||||
sh '''#! /bin/bash
|
||||
curl -X POST -H "Authorization: token $GITHUB_TOKEN" \
|
||||
-H "Accept: application/vnd.github.v3+json" \
|
||||
"https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \
|
||||
-d "{\\"body\\": \\"I am a bot, the build for PR commit ${COMMIT_SHA:0:7} failed and as a result no CI test was attempted and no images were pushed.\\"}"
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
sh '''#!/bin/bash
|
||||
rm -rf /config/.ssh/id_sign
|
||||
rm -rf /config/.ssh/id_sign.pub
|
||||
git config --global --unset gpg.format
|
||||
git config --global --unset user.signingkey
|
||||
git config --global --unset commit.gpgsign
|
||||
'''
|
||||
}
|
||||
cleanup {
|
||||
sh '''#! /bin/bash
|
||||
|
||||
@@ -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://linuxserver.io/discord "realtime support / chat with the community and the team.")
|
||||
[](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://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!
|
||||
* [Discord](https://linuxserver.io/discord) - realtime support / chat with the community and the team.
|
||||
* [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.
|
||||
* [Open Collective](https://opencollective.com/linuxserver) - please consider helping us by either donating or contributing to our budget
|
||||
|
||||
@@ -55,7 +53,6 @@ The architectures supported by this image are:
|
||||
| :----: | :----: | ---- |
|
||||
| x86-64 | ✅ | amd64-\<version tag\> |
|
||||
| arm64 | ✅ | arm64v8-\<version tag\> |
|
||||
| armhf | ❌ | |
|
||||
|
||||
## Version Tags
|
||||
|
||||
@@ -73,11 +70,15 @@ Access the webui at `<your-ip>:7878`, for more information check out [Radarr](ht
|
||||
|
||||
### Media folders
|
||||
|
||||
We have set `/movies` and `/downloads` as ***optional paths***, this is because it is the easiest way to get started. While easy to use, it has some drawbacks. Mainly losing the ability to hardlink (TL;DR a way for a file to exist in multiple places on the same file system while only consuming one file worth of space), or atomic move (TL;DR instant file moves, rather than copy+delete) files while processing content.
|
||||
We have set `/movies` and `/downloads` as optional paths, this is because it is the easiest way to get started. While easy to use, it has some drawbacks. Mainly losing the ability to hardlink (TL;DR a way for a file to exist in multiple places on the same file system while only consuming one file worth of space), or atomic move (TL;DR instant file moves, rather than copy+delete) files while processing content.
|
||||
|
||||
Use the optional paths if you don't understand, or don't want hardlinks/atomic moves.
|
||||
|
||||
<details>
|
||||
<summary>Well planned paths</summary>
|
||||
|
||||
The folks over at servarr.com wrote a good [write-up](https://wiki.servarr.com/docker-guide#consistent-and-well-planned-paths) on how to get started with this.
|
||||
</details>
|
||||
|
||||
## Read-Only Operation
|
||||
|
||||
@@ -92,7 +93,7 @@ This image can be run with a non-root user. For details please [read the docs](h
|
||||
To help you get started creating a container from this image you can either use docker-compose or the docker cli.
|
||||
|
||||
>[!NOTE]
|
||||
>Unless a parameter is flaged as 'optional', it is *mandatory* and a value must be provided.
|
||||
>Unless a parameter is flagged as 'optional', it is *mandatory* and a value must be provided.
|
||||
|
||||
### docker-compose (recommended, [click here for more info](https://docs.linuxserver.io/general/docker-compose))
|
||||
|
||||
@@ -309,6 +310,9 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
|
||||
|
||||
## Versions
|
||||
|
||||
* **04.07.26:** - Rebase to Alpine 3.24.
|
||||
* **15.01.26:** - Rebase to Alpine 3.23.
|
||||
* **05.07.25:** - Rebase to Alpine 3.22.
|
||||
* **23.12.24:** - Rebase Alpine 3.21.
|
||||
* **31.05.24:** - Rebase Alpine 3.20.
|
||||
* **20.03.24:** - Rebase to Alpine 3.19.
|
||||
|
||||
+168
-152
@@ -1,72 +1,85 @@
|
||||
NAME VERSION TYPE
|
||||
BouncyCastle.Cryptography 2.4.0 dotnet (+5 duplicates)
|
||||
Dapper 2.0.151 dotnet (+5 duplicates)
|
||||
Azure.Core 1.50.0 dotnet (+5 duplicates)
|
||||
Azure.Identity 1.17.1 dotnet (+5 duplicates)
|
||||
BouncyCastle.Cryptography 2.6.2 dotnet (+5 duplicates)
|
||||
Dapper 2.1.79 dotnet (+5 duplicates)
|
||||
Diacritical.Net 1.0.4 dotnet (+5 duplicates)
|
||||
DryIoc.Microsoft.DependencyInjection 6.2.0 dotnet (+1 duplicate)
|
||||
DryIoc.dll 5.4.3 dotnet (+7 duplicates)
|
||||
Dynamitey 2.0.9.136 dotnet (+3 duplicates)
|
||||
Dynamitey 3.0.3 dotnet (+3 duplicates)
|
||||
Equ 2.3.0 dotnet (+5 duplicates)
|
||||
FluentMigrator 6.2.0 dotnet (+5 duplicates)
|
||||
FluentMigrator.Abstractions 6.2.0 dotnet (+5 duplicates)
|
||||
FluentMigrator.Extensions.Postgres 6.2.0 dotnet (+5 duplicates)
|
||||
FluentMigrator.Runner.Core 6.2.0 dotnet (+5 duplicates)
|
||||
FluentMigrator.Runner.Postgres 6.2.0 dotnet (+5 duplicates)
|
||||
FluentMigrator.Runner.SQLite 6.2.0 dotnet (+5 duplicates)
|
||||
FluentValidation 9.5.4 dotnet (+5 duplicates)
|
||||
IPAddressRange 6.1.0 dotnet (+7 duplicates)
|
||||
IPAddressRange 6.3.0 dotnet (+7 duplicates)
|
||||
Ical.Net 4.3.1 dotnet (+2 duplicates)
|
||||
ImpromptuInterface 7.0.1 dotnet (+3 duplicates)
|
||||
ImpromptuInterface 8.0.6 dotnet (+3 duplicates)
|
||||
Instances 1.6.1 dotnet (+5 duplicates)
|
||||
MailKit 4.8.0 dotnet (+5 duplicates)
|
||||
Microsoft.AspNetCore.Cryptography.Internal 6.0.35 dotnet (+4 duplicates)
|
||||
Microsoft.AspNetCore.Cryptography.KeyDerivation 6.0.35 dotnet (+4 duplicates)
|
||||
Microsoft.Bcl.AsyncInterfaces 6.0.0 dotnet (+5 duplicates)
|
||||
Microsoft.Bcl.TimeProvider 8.0.0 dotnet (+5 duplicates)
|
||||
Microsoft.Data.SqlClient 2.1.7 dotnet (+5 duplicates)
|
||||
Microsoft.Extensions.Configuration 6.0.0 dotnet (+1 duplicate)
|
||||
Microsoft.Extensions.Configuration 6.0.1 dotnet (+4 duplicates)
|
||||
Microsoft.Extensions.Configuration.Abstractions 6.0.0 dotnet (+2 duplicates)
|
||||
Microsoft.Extensions.Configuration.Binder 6.0.0 dotnet (+2 duplicates)
|
||||
Microsoft.Extensions.Configuration.CommandLine 6.0.0 dotnet (+2 duplicates)
|
||||
Microsoft.Extensions.Configuration.EnvironmentVariables 6.0.1 dotnet (+6 duplicates)
|
||||
Microsoft.Extensions.Configuration.FileExtensions 6.0.0 dotnet (+2 duplicates)
|
||||
Microsoft.Extensions.Configuration.Json 6.0.0 dotnet (+2 duplicates)
|
||||
Microsoft.Extensions.Configuration.UserSecrets 6.0.1 dotnet (+6 duplicates)
|
||||
Microsoft.Extensions.DependencyInjection 6.0.1 dotnet (+6 duplicates)
|
||||
Microsoft.Extensions.DependencyInjection.Abstractions 6.0.0 dotnet (+2 duplicates)
|
||||
Microsoft.Extensions.DependencyInjection.Abstractions 7.0.0 dotnet (+1 duplicate)
|
||||
Microsoft.Extensions.FileProviders.Abstractions 6.0.0 dotnet (+2 duplicates)
|
||||
Microsoft.Extensions.FileProviders.Physical 6.0.0 dotnet (+2 duplicates)
|
||||
Microsoft.Extensions.FileSystemGlobbing 6.0.0 dotnet (+2 duplicates)
|
||||
Microsoft.Extensions.Hosting 6.0.1 dotnet (+6 duplicates)
|
||||
Microsoft.Extensions.Hosting.Abstractions 6.0.0 dotnet (+2 duplicates)
|
||||
Microsoft.Extensions.Hosting.WindowsServices 6.0.2 dotnet (+7 duplicates)
|
||||
Microsoft.Extensions.Logging 6.0.0 dotnet (+2 duplicates)
|
||||
Microsoft.Extensions.Logging.Abstractions 6.0.0 dotnet (+2 duplicates)
|
||||
Microsoft.Extensions.Logging.Configuration 6.0.0 dotnet (+2 duplicates)
|
||||
Microsoft.Extensions.Logging.Console 6.0.0 dotnet (+2 duplicates)
|
||||
Microsoft.Extensions.Logging.Debug 6.0.0 dotnet (+2 duplicates)
|
||||
Microsoft.Extensions.Logging.EventLog 6.0.0 dotnet (+2 duplicates)
|
||||
Microsoft.Extensions.Logging.EventSource 6.0.0 dotnet (+2 duplicates)
|
||||
Microsoft.Extensions.Options 6.0.0 dotnet (+2 duplicates)
|
||||
Microsoft.Extensions.Options.ConfigurationExtensions 6.0.0 dotnet (+2 duplicates)
|
||||
Microsoft.Extensions.Primitives 6.0.0 dotnet (+2 duplicates)
|
||||
Microsoft.Identity.Client 4.21.1 dotnet (+5 duplicates)
|
||||
Microsoft.IdentityModel.JsonWebTokens 6.8.0 dotnet (+5 duplicates)
|
||||
Microsoft.IdentityModel.Logging 6.8.0 dotnet (+5 duplicates)
|
||||
Microsoft.IdentityModel.Protocols 6.8.0 dotnet (+5 duplicates)
|
||||
Microsoft.IdentityModel.Protocols.OpenIdConnect 6.8.0 dotnet (+5 duplicates)
|
||||
Microsoft.IdentityModel.Tokens 6.8.0 dotnet (+5 duplicates)
|
||||
Microsoft.OpenApi 1.6.14 dotnet (+2 duplicates)
|
||||
Microsoft.Win32.SystemEvents 6.0.0 dotnet (+7 duplicates)
|
||||
MimeKit 4.8.0 dotnet (+5 duplicates)
|
||||
Mono.Nat 3.0.1 dotnet (+5 duplicates)
|
||||
MailKit 4.16.0 dotnet (+5 duplicates)
|
||||
Microsoft.AspNetCore.Cryptography.Internal 8.0.27 dotnet (+4 duplicates)
|
||||
Microsoft.AspNetCore.Cryptography.KeyDerivation 8.0.27 dotnet (+4 duplicates)
|
||||
Microsoft.Bcl.AsyncInterfaces 8.0.0 dotnet (+5 duplicates)
|
||||
Microsoft.Data.SqlClient 6.1.5 dotnet (+5 duplicates)
|
||||
Microsoft.Extensions.Caching.Abstractions 8.0.0 dotnet (+4 duplicates)
|
||||
Microsoft.Extensions.Caching.Memory 8.0.1 dotnet (+4 duplicates)
|
||||
Microsoft.Extensions.Configuration 8.0.0 dotnet (+6 duplicates)
|
||||
Microsoft.Extensions.Configuration.Abstractions 8.0.0 dotnet (+6 duplicates)
|
||||
Microsoft.Extensions.Configuration.Binder 8.0.2 dotnet (+6 duplicates)
|
||||
Microsoft.Extensions.Configuration.CommandLine 8.0.0 dotnet (+6 duplicates)
|
||||
Microsoft.Extensions.Configuration.EnvironmentVariables 8.0.0 dotnet (+6 duplicates)
|
||||
Microsoft.Extensions.Configuration.FileExtensions 8.0.1 dotnet (+6 duplicates)
|
||||
Microsoft.Extensions.Configuration.Json 8.0.1 dotnet (+6 duplicates)
|
||||
Microsoft.Extensions.Configuration.UserSecrets 8.0.1 dotnet (+6 duplicates)
|
||||
Microsoft.Extensions.DependencyInjection 8.0.1 dotnet (+6 duplicates)
|
||||
Microsoft.Extensions.DependencyInjection.Abstractions 8.0.2 dotnet (+6 duplicates)
|
||||
Microsoft.Extensions.Diagnostics 8.0.1 dotnet (+6 duplicates)
|
||||
Microsoft.Extensions.Diagnostics.Abstractions 8.0.1 dotnet (+6 duplicates)
|
||||
Microsoft.Extensions.FileProviders.Abstractions 8.0.0 dotnet (+6 duplicates)
|
||||
Microsoft.Extensions.FileProviders.Physical 8.0.0 dotnet (+6 duplicates)
|
||||
Microsoft.Extensions.FileSystemGlobbing 8.0.0 dotnet (+6 duplicates)
|
||||
Microsoft.Extensions.Hosting 8.0.1 dotnet (+6 duplicates)
|
||||
Microsoft.Extensions.Hosting.Abstractions 8.0.1 dotnet (+6 duplicates)
|
||||
Microsoft.Extensions.Hosting.WindowsServices 8.0.1 dotnet (+7 duplicates)
|
||||
Microsoft.Extensions.Logging 8.0.1 dotnet (+6 duplicates)
|
||||
Microsoft.Extensions.Logging.Abstractions 8.0.2 dotnet (+1 duplicate)
|
||||
Microsoft.Extensions.Logging.Abstractions 8.0.3 dotnet (+4 duplicates)
|
||||
Microsoft.Extensions.Logging.Configuration 8.0.1 dotnet (+6 duplicates)
|
||||
Microsoft.Extensions.Logging.Console 8.0.1 dotnet (+6 duplicates)
|
||||
Microsoft.Extensions.Logging.Debug 8.0.1 dotnet (+6 duplicates)
|
||||
Microsoft.Extensions.Logging.EventLog 8.0.1 dotnet (+6 duplicates)
|
||||
Microsoft.Extensions.Logging.EventSource 8.0.1 dotnet (+6 duplicates)
|
||||
Microsoft.Extensions.Options 8.0.2 dotnet (+6 duplicates)
|
||||
Microsoft.Extensions.Options.ConfigurationExtensions 8.0.0 dotnet (+6 duplicates)
|
||||
Microsoft.Extensions.Primitives 8.0.0 dotnet (+6 duplicates)
|
||||
Microsoft.Identity.Client 4.80.0 dotnet (+5 duplicates)
|
||||
Microsoft.Identity.Client.Extensions.Msal 4.78.0 dotnet (+5 duplicates)
|
||||
Microsoft.IdentityModel.Abstractions 8.14.0 dotnet (+5 duplicates)
|
||||
Microsoft.IdentityModel.JsonWebTokens 7.7.1 dotnet (+5 duplicates)
|
||||
Microsoft.IdentityModel.Logging 7.7.1 dotnet (+5 duplicates)
|
||||
Microsoft.IdentityModel.Protocols 7.7.1 dotnet (+5 duplicates)
|
||||
Microsoft.IdentityModel.Protocols.OpenIdConnect 7.7.1 dotnet (+5 duplicates)
|
||||
Microsoft.IdentityModel.Tokens 7.7.1 dotnet (+5 duplicates)
|
||||
Microsoft.OpenApi 1.6.23 dotnet (+2 duplicates)
|
||||
Microsoft.SqlServer.Server 1.0.0 dotnet (+5 duplicates)
|
||||
Microsoft.Win32.SystemEvents 8.0.0 dotnet (+5 duplicates)
|
||||
MimeKit 4.16.0 dotnet (+5 duplicates)
|
||||
Mono.Nat 3.0.0 dotnet (+5 duplicates)
|
||||
Mono.Posix.NETStandard 5.20.1.34-servarr20 dotnet
|
||||
MonoTorrent 2.0.7 dotnet (+5 duplicates)
|
||||
NLog 5.4.0 dotnet (+7 duplicates)
|
||||
NLog.Extensions.Logging 5.4.0 dotnet (+7 duplicates)
|
||||
NLog.Layouts.ClefJsonLayout 1.0.3 dotnet (+7 duplicates)
|
||||
MonoTorrent 3.0.2 dotnet (+5 duplicates)
|
||||
NLog 5.5.1 dotnet (+7 duplicates)
|
||||
NLog.Extensions.Logging 5.5.0 dotnet (+7 duplicates)
|
||||
NLog.Layouts.ClefJsonLayout 1.0.5 dotnet (+7 duplicates)
|
||||
NLog.Targets.Syslog 7.0.0 dotnet (+7 duplicates)
|
||||
Newtonsoft.Json 13.0.3 dotnet (+7 duplicates)
|
||||
Newtonsoft.Json 13.0.4 dotnet (+7 duplicates)
|
||||
NodaTime 3.2.0 dotnet (+2 duplicates)
|
||||
Npgsql 7.0.10 dotnet (+7 duplicates)
|
||||
Polly 8.5.2 dotnet (+5 duplicates)
|
||||
Npgsql 9.0.5 dotnet (+7 duplicates)
|
||||
Polly 8.6.6 dotnet (+5 duplicates)
|
||||
Polly.Contrib.WaitAndRetry 1.1.1 dotnet (+7 duplicates)
|
||||
Polly.Core 8.5.2 dotnet (+5 duplicates)
|
||||
Polly.Core 8.6.6 dotnet (+5 duplicates)
|
||||
Radarr 1.0.0 dotnet
|
||||
Radarr.Api.V3 1.0.0 dotnet (+2 duplicates)
|
||||
Radarr.Common 1.0.0 dotnet (+7 duplicates)
|
||||
@@ -75,106 +88,109 @@ Radarr.Host 1.0.0
|
||||
Radarr.Http 1.0.0 dotnet (+3 duplicates)
|
||||
Radarr.Mono 1.0.0 dotnet
|
||||
Radarr.SignalR 1.0.0 dotnet (+4 duplicates)
|
||||
ReusableTasks 2.0.0 dotnet (+5 duplicates)
|
||||
ReusableTasks 4.0.0 dotnet (+5 duplicates)
|
||||
Sentry 4.0.2 dotnet (+7 duplicates)
|
||||
Servarr.FFMpegCore 4.7.0-26 dotnet (+5 duplicates)
|
||||
Servarr.FluentMigrator 3.3.2.9 dotnet (+5 duplicates)
|
||||
Servarr.FluentMigrator.Abstractions 3.3.2.9 dotnet (+5 duplicates)
|
||||
Servarr.FluentMigrator.Extensions.Oracle 3.3.2.9 dotnet (+5 duplicates)
|
||||
Servarr.FluentMigrator.Extensions.Postgres 3.3.2.9 dotnet (+5 duplicates)
|
||||
Servarr.FluentMigrator.Extensions.SqlAnywhere 3.3.2.9 dotnet (+5 duplicates)
|
||||
Servarr.FluentMigrator.Extensions.SqlServer 3.3.2.9 dotnet (+5 duplicates)
|
||||
Servarr.FluentMigrator.Runner 3.3.2.9 dotnet (+5 duplicates)
|
||||
Servarr.FluentMigrator.Runner.Core 3.3.2.9 dotnet (+5 duplicates)
|
||||
Servarr.FluentMigrator.Runner.Db2 3.3.2.9 dotnet (+5 duplicates)
|
||||
Servarr.FluentMigrator.Runner.Firebird 3.3.2.9 dotnet (+5 duplicates)
|
||||
Servarr.FluentMigrator.Runner.Hana 3.3.2.9 dotnet (+5 duplicates)
|
||||
Servarr.FluentMigrator.Runner.MySql 3.3.2.9 dotnet (+5 duplicates)
|
||||
Servarr.FluentMigrator.Runner.Oracle 3.3.2.9 dotnet (+5 duplicates)
|
||||
Servarr.FluentMigrator.Runner.Postgres 3.3.2.9 dotnet (+5 duplicates)
|
||||
Servarr.FluentMigrator.Runner.Redshift 3.3.2.9 dotnet (+5 duplicates)
|
||||
Servarr.FluentMigrator.Runner.SQLite 3.3.2.9 dotnet (+5 duplicates)
|
||||
Servarr.FluentMigrator.Runner.SqlAnywhere 3.3.2.9 dotnet (+5 duplicates)
|
||||
Servarr.FluentMigrator.Runner.SqlServer 3.3.2.9 dotnet (+5 duplicates)
|
||||
Servarr.FluentMigrator.Runner.SqlServerCe 3.3.2.9 dotnet (+5 duplicates)
|
||||
Servarr.FFprobe 5.1.10.124 dotnet (+5 duplicates)
|
||||
SharpZipLib 1.4.2 dotnet (+7 duplicates)
|
||||
SixLabors.ImageSharp 3.1.7 dotnet (+5 duplicates)
|
||||
Swashbuckle.AspNetCore.Annotations 6.6.2 dotnet (+2 duplicates)
|
||||
Swashbuckle.AspNetCore.Swagger 6.6.2 dotnet (+2 duplicates)
|
||||
Swashbuckle.AspNetCore.SwaggerGen 6.6.2 dotnet (+2 duplicates)
|
||||
System.Configuration.ConfigurationManager 6.0.1 dotnet (+7 duplicates)
|
||||
System.Data.SQLite.Core.Servarr 1.0.115.5-18 dotnet (+7 duplicates)
|
||||
System.Diagnostics.EventLog 6.0.0 dotnet (+2 duplicates)
|
||||
System.Drawing.Common 6.0.0 dotnet (+7 duplicates)
|
||||
System.Formats.Asn1 8.0.1 dotnet (+5 duplicates)
|
||||
System.IdentityModel.Tokens.Jwt 6.8.0 dotnet (+5 duplicates)
|
||||
System.Runtime.Caching 4.7.0 dotnet (+5 duplicates)
|
||||
System.Security.Cryptography.Pkcs 8.0.0 dotnet (+5 duplicates)
|
||||
System.Security.Cryptography.ProtectedData 6.0.0 dotnet (+7 duplicates)
|
||||
System.Security.Permissions 6.0.0 dotnet (+7 duplicates)
|
||||
System.ServiceProcess.ServiceController 6.0.1 dotnet (+7 duplicates)
|
||||
System.Text.Json 6.0.10 dotnet (+6 duplicates)
|
||||
System.Windows.Extensions 6.0.0 dotnet (+7 duplicates)
|
||||
SixLabors.ImageSharp 3.1.12 dotnet (+5 duplicates)
|
||||
SourceGear.sqlite3 3.50.4.5 dotnet (+7 duplicates)
|
||||
Swashbuckle.AspNetCore.Annotations 8.1.4 dotnet (+2 duplicates)
|
||||
Swashbuckle.AspNetCore.Swagger 8.1.4 dotnet (+2 duplicates)
|
||||
Swashbuckle.AspNetCore.SwaggerGen 8.1.4 dotnet (+2 duplicates)
|
||||
System.ClientModel 1.8.0 dotnet (+5 duplicates)
|
||||
System.ComponentModel 4.3.0 dotnet (+2 duplicates)
|
||||
System.ComponentModel.Annotations 5.0.0 dotnet (+4 duplicates)
|
||||
System.Configuration.ConfigurationManager 8.0.1 dotnet (+7 duplicates)
|
||||
System.Data.SQLite 2.0.3 dotnet (+7 duplicates)
|
||||
System.Diagnostics.DiagnosticSource 8.0.1 dotnet (+4 duplicates)
|
||||
System.Diagnostics.EventLog 8.0.1 dotnet (+6 duplicates)
|
||||
System.Drawing.Common 8.0.27 dotnet (+5 duplicates)
|
||||
System.Formats.Asn1 8.0.1 dotnet (+4 duplicates)
|
||||
System.IO 4.3.0 dotnet (+5 duplicates)
|
||||
System.IO.FileSystem.AccessControl 5.0.0 dotnet (+5 duplicates)
|
||||
System.IdentityModel.Tokens.Jwt 7.7.1 dotnet (+5 duplicates)
|
||||
System.Memory.Data 8.0.1 dotnet (+5 duplicates)
|
||||
System.Private.Uri 4.3.0 dotnet (+5 duplicates)
|
||||
System.Reflection 4.3.0 dotnet (+5 duplicates)
|
||||
System.Reflection.Primitives 4.3.0 dotnet (+5 duplicates)
|
||||
System.Runtime 4.3.0 dotnet (+5 duplicates)
|
||||
System.Runtime.Loader 4.3.0 dotnet (+5 duplicates)
|
||||
System.Security.AccessControl 5.0.0 dotnet (+5 duplicates)
|
||||
System.Security.Cryptography.Pkcs 8.0.1 dotnet (+4 duplicates)
|
||||
System.Security.Cryptography.ProtectedData 8.0.0 dotnet (+7 duplicates)
|
||||
System.Security.Principal.Windows 5.0.0 dotnet (+5 duplicates)
|
||||
System.ServiceProcess.ServiceController 8.0.1 dotnet (+7 duplicates)
|
||||
System.Text.Encoding 4.3.0 dotnet (+5 duplicates)
|
||||
System.Text.Encoding.CodePages 8.0.0 dotnet (+4 duplicates)
|
||||
System.Text.Json 8.0.6 dotnet (+5 duplicates)
|
||||
System.Threading.Tasks 4.3.0 dotnet (+5 duplicates)
|
||||
acl-libs 2.3.2-r1 apk
|
||||
alpine-baselayout 3.6.8-r1 apk
|
||||
alpine-baselayout-data 3.6.8-r1 apk
|
||||
alpine-keys 2.5-r0 apk
|
||||
alpine-release 3.21.3-r0 apk
|
||||
apk-tools 2.14.6-r3 apk
|
||||
bash 5.2.37-r0 apk
|
||||
brotli-libs 1.1.0-r2 apk
|
||||
busybox 1.37.0-r12 apk
|
||||
busybox-binsh 1.37.0-r12 apk
|
||||
c-ares 1.34.5-r0 apk
|
||||
ca-certificates 20241121-r1 apk
|
||||
ca-certificates-bundle 20241121-r1 apk
|
||||
catatonit 0.2.0-r0 apk
|
||||
coreutils 9.5-r2 apk
|
||||
coreutils-env 9.5-r2 apk
|
||||
coreutils-fmt 9.5-r2 apk
|
||||
coreutils-sha512sum 9.5-r2 apk
|
||||
curl 8.12.1-r1 apk
|
||||
findutils 4.10.0-r0 apk
|
||||
icu-data-en 74.2-r0 apk
|
||||
icu-libs 74.2-r0 apk
|
||||
jq 1.7.1-r0 apk
|
||||
alpine-baselayout 3.7.2-r1 apk
|
||||
alpine-baselayout-data 3.7.2-r1 apk
|
||||
alpine-keys 2.6-r0 apk
|
||||
alpine-release 3.24.1-r0 apk
|
||||
apk-tools 3.0.6-r0 apk
|
||||
bash 5.3.9-r1 apk
|
||||
brotli-libs 1.2.0-r1 apk
|
||||
busybox 1.37.0-r31 apk
|
||||
busybox-binsh 1.37.0-r31 apk
|
||||
c-ares 1.34.8-r0 apk
|
||||
ca-certificates 20260611-r0 apk
|
||||
ca-certificates-bundle 20260611-r0 apk
|
||||
catatonit 0.2.1-r0 apk
|
||||
coreutils 9.11-r0 apk
|
||||
coreutils-env 9.11-r0 apk
|
||||
coreutils-fmt 9.11-r0 apk
|
||||
coreutils-sha512sum 9.11-r0 apk
|
||||
curl 8.21.0-r0 apk
|
||||
findutils 4.10.0-r1 apk
|
||||
icu-data-en 78.1-r0 apk
|
||||
icu-libs 78.1-r0 apk
|
||||
jq 1.8.1-r0 apk
|
||||
libapk 3.0.6-r0 apk
|
||||
libattr 2.5.2-r2 apk
|
||||
libbsd 0.12.2-r0 apk
|
||||
libcrypto3 3.3.3-r0 apk
|
||||
libcurl 8.12.1-r1 apk
|
||||
libgcc 14.2.0-r4 apk
|
||||
libgcrypt 1.10.3-r1 apk
|
||||
libgpg-error 1.51-r0 apk
|
||||
libidn2 2.3.7-r0 apk
|
||||
libintl 0.22.5-r0 apk
|
||||
libmd 1.1.0-r0 apk
|
||||
libncursesw 6.5_p20241006-r3 apk
|
||||
libproc2 4.0.4-r2 apk
|
||||
libcrypto3 3.5.7-r0 apk
|
||||
libcurl 8.21.0-r0 apk
|
||||
libgcc 15.2.0-r5 apk
|
||||
libidn2 2.3.8-r0 apk
|
||||
libintl 1.0-r0 apk
|
||||
libmd 1.2.0-r0 apk
|
||||
libncursesw 6.6_p20260516-r0 apk
|
||||
libproc2 4.0.6-r0 apk
|
||||
libpsl 0.21.5-r3 apk
|
||||
libssl3 3.3.3-r0 apk
|
||||
libstdc++ 14.2.0-r4 apk
|
||||
libunistring 1.2-r0 apk
|
||||
libxml2 2.13.4-r5 apk
|
||||
libxslt 1.1.42-r2 apk
|
||||
linux-pam 1.6.1-r1 apk
|
||||
musl 1.2.5-r9 apk
|
||||
musl-utils 1.2.5-r9 apk
|
||||
ncurses-terminfo-base 6.5_p20241006-r3 apk
|
||||
netcat-openbsd 1.226.1.1-r0 apk
|
||||
nghttp2-libs 1.64.0-r0 apk
|
||||
oniguruma 6.9.9-r0 apk
|
||||
procps-ng 4.0.4-r2 apk
|
||||
readline 8.2.13-r0 apk
|
||||
runtimepack.Microsoft.AspNetCore.App.Runtime.linux-musl-x64 6.0.35 dotnet
|
||||
runtimepack.Microsoft.NETCore.App.Runtime.linux-musl-x64 6.0.35 dotnet
|
||||
scanelf 1.3.8-r1 apk
|
||||
shadow 4.16.0-r1 apk
|
||||
skalibs-libs 2.14.3.0-r0 apk
|
||||
sqlite-libs 3.48.0-r0 apk
|
||||
ssl_client 1.37.0-r12 apk
|
||||
tzdata 2025b-r0 apk
|
||||
utmps-libs 0.1.2.3-r2 apk
|
||||
libssl3 3.5.7-r0 apk
|
||||
libstdc++ 15.2.0-r5 apk
|
||||
libunistring 1.4.2-r0 apk
|
||||
libxml2 2.13.9-r2 apk
|
||||
libxslt 1.1.43-r3 apk
|
||||
linux-pam 1.7.1-r2 apk
|
||||
musl 1.2.6-r2 apk
|
||||
musl-utils 1.2.6-r2 apk
|
||||
ncurses-terminfo-base 6.6_p20260516-r0 apk
|
||||
netcat-openbsd 1.234.1-r0 apk
|
||||
nghttp2-libs 1.69.0-r0 apk
|
||||
oniguruma 6.9.10-r0 apk
|
||||
procps-ng 4.0.6-r0 apk
|
||||
readline 8.3.3-r1 apk
|
||||
runtime.any.System.IO 4.3.0 dotnet (+5 duplicates)
|
||||
runtime.any.System.Reflection 4.3.0 dotnet (+5 duplicates)
|
||||
runtime.any.System.Reflection.Primitives 4.3.0 dotnet (+5 duplicates)
|
||||
runtime.any.System.Runtime 4.3.0 dotnet (+5 duplicates)
|
||||
runtime.any.System.Text.Encoding 4.3.0 dotnet (+5 duplicates)
|
||||
runtime.any.System.Threading.Tasks 4.3.0 dotnet (+5 duplicates)
|
||||
runtime.unix.System.Private.Uri 4.3.0 dotnet (+5 duplicates)
|
||||
runtimepack.Microsoft.AspNetCore.App.Runtime.linux-musl-x64 8.0.27 dotnet (+4 duplicates)
|
||||
runtimepack.Microsoft.NETCore.App.Runtime.linux-musl-x64 8.0.27 dotnet (+7 duplicates)
|
||||
scanelf 1.3.9-r1 apk
|
||||
shadow 4.18.0-r1 apk
|
||||
skalibs-libs 2.15.0.0-r0 apk
|
||||
sqlite-libs 3.53.2-r0 apk
|
||||
ssl_client 1.37.0-r31 apk
|
||||
tzdata 2026b-r0 apk
|
||||
utmps-libs 0.1.3.3-r0 apk
|
||||
xmlstarlet 1.6.1-r2 apk
|
||||
xz-libs 5.6.3-r1 apk
|
||||
zlib 1.3.1-r2 apk
|
||||
zstd-libs 1.5.6-r2 apk
|
||||
xz-libs 5.8.3-r0 apk
|
||||
zlib 1.3.2-r0 apk
|
||||
zstd-libs 1.5.7-r2 apk
|
||||
|
||||
+7
-9
@@ -36,14 +36,7 @@ nonroot_supported: true
|
||||
app_setup_block_enabled: true
|
||||
app_setup_block: |
|
||||
Access the webui at `<your-ip>:7878`, for more information check out [Radarr](https://github.com/Radarr/Radarr).
|
||||
|
||||
### Media folders
|
||||
|
||||
We have set `/movies` and `/downloads` as ***optional paths***, this is because it is the easiest way to get started. While easy to use, it has some drawbacks. Mainly losing the ability to hardlink (TL;DR a way for a file to exist in multiple places on the same file system while only consuming one file worth of space), or atomic move (TL;DR instant file moves, rather than copy+delete) files while processing content.
|
||||
|
||||
Use the optional paths if you don't understand, or don't want hardlinks/atomic moves.
|
||||
|
||||
The folks over at servarr.com wrote a good [write-up](https://wiki.servarr.com/docker-guide#consistent-and-well-planned-paths) on how to get started with this.
|
||||
readme_media: true
|
||||
# init diagram
|
||||
init_diagram: |
|
||||
"radarr:latest": {
|
||||
@@ -65,12 +58,14 @@ init_diagram: |
|
||||
init-radarr-config -> init-config-end
|
||||
init-config -> init-crontab-config
|
||||
init-mods-end -> init-custom-files
|
||||
init-adduser -> init-device-perms
|
||||
base -> init-envfile
|
||||
base -> init-migrations
|
||||
init-config-end -> init-mods
|
||||
init-mods-package-install -> init-mods-end
|
||||
init-mods -> init-mods-package-install
|
||||
init-adduser -> init-os-end
|
||||
init-device-perms -> init-os-end
|
||||
init-envfile -> init-os-end
|
||||
init-config -> init-radarr-config
|
||||
init-custom-files -> init-services
|
||||
@@ -80,11 +75,14 @@ init_diagram: |
|
||||
svc-radarr -> legacy-services
|
||||
}
|
||||
Base Images: {
|
||||
"baseimage-alpine:3.21"
|
||||
"baseimage-alpine:3.24"
|
||||
}
|
||||
"radarr:latest" <- Base Images
|
||||
# changelog
|
||||
changelogs:
|
||||
- {date: "04.07.26:", desc: "Rebase to Alpine 3.24."}
|
||||
- {date: "15.01.26:", desc: "Rebase to Alpine 3.23."}
|
||||
- {date: "05.07.25:", desc: "Rebase to Alpine 3.22."}
|
||||
- {date: "23.12.24:", desc: "Rebase Alpine 3.21."}
|
||||
- {date: "31.05.24:", desc: "Rebase Alpine 3.20."}
|
||||
- {date: "20.03.24:", desc: "Rebase to Alpine 3.19."}
|
||||
|
||||
Executable → Regular
Reference in New Issue
Block a user