Compare commits

...
Author SHA1 Message Date
LinuxServer-CI 9202f4f994 Bot Updating Package Versions 2024-09-22 16:57:03 +00:00
LinuxServer-CI 66899f24ac Bot Updating Package Versions 2024-09-21 00:44:14 +00:00
LinuxServer-CI d47a9be054 Bot Updating Package Versions 2024-09-15 13:33:17 +00:00
LinuxServer-CI 34988415d2 Bot Updating Package Versions 2024-09-08 07:54:57 +00:00
LinuxServer-CI 9f606742ef Bot Updating Package Versions 2024-09-02 14:52:27 +00:00
LinuxServer-CI cf7e1f5863 Bot Updating Package Versions 2024-09-01 16:57:23 +00:00
LinuxServer-CI 965c7c7305 Bot Updating Package Versions 2024-08-25 07:15:50 +00:00
LinuxServer-CI 8bdb13b131 Bot Updating Package Versions 2024-08-20 18:09:12 +00:00
LinuxServer-CI f9ff6adb4f Bot Updating Package Versions 2024-08-18 12:09:44 +00:00
LinuxServer-CI 59c136b766 Bot Updating Templated Files 2024-08-18 12:07:17 +00:00
LinuxServer-CI 2f37d055d6 Bot Updating Templated Files 2024-08-18 12:04:47 +00:00
LinuxServer-CI b5a10e6586 Bot Updating Package Versions 2024-08-11 16:56:38 +00:00
LinuxServer-CI da8cc6fba2 Bot Updating Package Versions 2024-07-28 16:56:10 +00:00
LinuxServer-CI 886583b592 Bot Updating Package Versions 2024-07-21 15:08:38 +00:00
LinuxServer-CI b77f7c7f7b Bot Updating Templated Files 2024-07-14 12:24:02 +00:00
thespad 5b267f9cd8 Fix comment indent 2024-07-14 13:21:49 +01:00
LinuxServer-CI 780723f47c Bot Updating Package Versions 2024-07-14 12:03:33 +00:00
LinuxServer-CI 77d6ab77ce Bot Updating Templated Files 2024-07-14 12:00:08 +00:00
LinuxServer-CI 52f20a8c75 Bot Updating Templated Files 2024-07-14 11:58:33 +00:00
RoxedusandGitHub f3a658859b Merge pull request #236 from linuxserver/develop-ro-tweaks
Move tmpdir, set COMPlus_EnableDiagnostics (develop)
2024-07-08 01:16:06 +02:00
LinuxServer-CI c81d6ad8e0 Bot Updating Package Versions 2024-07-07 11:51:45 +00:00
thespad 1875283bb5 Move tmpdir, set COMPlus_EnableDiagnostics 2024-07-03 19:21:38 +01:00
LinuxServer-CI fe33f0a027 Bot Updating Package Versions 2024-07-02 11:48:08 +00:00
LinuxServer-CI 9e207f122b Bot Updating Package Versions 2024-06-30 16:57:26 +00:00
LinuxServer-CI 1e908df511 Bot Updating Package Versions 2024-06-23 16:56:52 +00:00
LinuxServer-CI 61b96f20a1 Bot Updating Package Versions 2024-06-20 14:04:48 +00:00
LinuxServer-CI 46f2192ce6 Bot Updating Package Versions 2024-06-16 16:57:39 +00:00
LinuxServer-CI 51035c7f22 Bot Updating Package Versions 2024-06-09 16:56:43 +00:00
LinuxServer-CI 48888faeb2 Bot Updating Package Versions 2024-05-26 17:41:55 +00:00
AdamandGitHub 7197acafed Merge pull request #231 from linuxserver/develop-3.20
Rebase to 3.20 (Develop)
2024-05-26 18:37:55 +01:00
LinuxServer-CI 6f4b66a490 Bot Updating Package Versions 2024-05-26 17:02:34 +00:00
LinuxServer-CI 1908c053ef Bot Updating Templated Files 2024-05-26 16:58:25 +00:00
LinuxServer-CI d3f16111e7 Bot Updating Templated Files 2024-05-26 16:56:50 +00:00
thespad 144601fdd5 Rebase to 3.20 2024-05-26 17:40:49 +01:00
LinuxServer-CI cbe44d001b Bot Updating Package Versions 2024-05-19 16:57:50 +00:00
LinuxServer-CI 3ac4b2e799 Bot Updating Package Versions 2024-05-14 17:24:02 +00:00
LinuxServer-CI 63beff364b Bot Updating Package Versions 2024-05-13 02:07:14 +00:00
LinuxServer-CI 53ace81002 Bot Updating Package Versions 2024-05-12 17:00:53 +00:00
LinuxServer-CI 350516c001 Bot Updating Templated Files 2024-05-12 16:56:48 +00:00
LinuxServer-CI 5acc715831 Bot Updating Package Versions 2024-05-05 09:32:13 +00:00
LinuxServer-CI 31f79a7bc5 Bot Updating Templated Files 2024-05-05 09:28:15 +00:00
LinuxServer-CI 738b9d2faf Bot Updating Package Versions 2024-04-28 10:34:38 +00:00
LinuxServer-CI e244c42433 Bot Updating Package Versions 2024-04-21 06:16:52 +00:00
LinuxServer-CI 527ee1a91e Bot Updating Package Versions 2024-04-14 22:44:05 +00:00
LinuxServer-CI 738cf59748 Bot Updating Package Versions 2024-04-13 05:49:48 +00:00
LinuxServer-CI e949a9cb72 Bot Updating Package Versions 2024-04-07 05:00:20 +00:00
LinuxServer-CI 6deaa63d79 Bot Updating Package Versions 2024-03-31 04:07:07 +00:00
LinuxServer-CI b5796aab75 Bot Updating Package Versions 2024-03-24 16:57:15 +00:00
LinuxServer-CI 7ab736589c Bot Updating Package Versions 2024-03-20 19:16:07 +00:00
AdamandGitHub 4ffbe58a23 Merge pull request #225 from linuxserver/develop-3.19
Rebase to 3.19 (develop)
2024-03-20 19:12:33 +00:00
TheSpad 4f4b07bed4 Rebase to 3.19 2024-03-20 17:28:10 +00:00
LinuxServer-CI 466bbcd87d Bot Updating Package Versions 2024-03-17 11:52:46 +00:00
LinuxServer-CI 284417d831 Bot Updating Package Versions 2024-03-17 04:08:35 +00:00
LinuxServer-CI ff4cf58bb0 Bot Updating Templated Files 2024-03-17 04:05:36 +00:00
LinuxServer-CI 84acf94ff8 Bot Updating Package Versions 2024-03-03 10:26:55 +00:00
drizandGitHub 2d7415475a Merge pull request #222 from linuxserver/develop-ci
develop: fix ci screenshot
2024-02-27 10:37:48 -05:00
aptalca 1f5d08dea2 fix ci screenshot 2024-02-27 10:07:45 -05:00
LinuxServer-CI 8793aaf4b2 Bot Updating Package Versions 2024-02-27 00:29:09 +00:00
LinuxServer-CI af461e6473 Bot Updating Templated Files 2024-02-25 16:59:23 +00:00
LinuxServer-CI eff9e2b3f2 Bot Updating Templated Files 2024-02-25 16:56:16 +00:00
LinuxServer-CI 6fd2d49ceb Bot Updating Package Versions 2024-02-18 17:36:39 +00:00
LinuxServer-CI badf0de805 Bot Updating Package Versions 2024-02-11 17:29:43 +00:00
LinuxServer-CI 8fcd0277a9 Bot Updating Package Versions 2024-02-11 16:56:39 +00:00
LinuxServer-CI eea90cb913 Bot Updating Package Versions 2024-02-04 11:26:29 +00:00
LinuxServer-CI f4081f43c2 Bot Updating Package Versions 2024-02-04 05:04:45 +00:00
LinuxServer-CI 9984cebf1a Bot Updating Package Versions 2024-01-28 16:56:56 +00:00
LinuxServer-CI e9e6a3bd24 Bot Updating Package Versions 2024-01-21 05:38:50 +00:00
LinuxServer-CI 780e8fee5f Bot Updating Package Versions 2024-01-14 05:11:52 +00:00
LinuxServer-CI 3a4e38d674 Bot Updating Package Versions 2024-01-14 05:08:57 +00:00
LinuxServer-CI f9e51138e9 Bot Updating Templated Files 2024-01-14 05:06:07 +00:00
LinuxServer-CI edd0b2fabe Bot Updating Templated Files 2024-01-14 05:03:25 +00:00
LinuxServer-CI 53ba78a732 Bot Updating Package Versions 2023-12-31 16:56:23 +00:00
LinuxServer-CI 47d6a499c7 Bot Updating Package Versions 2023-12-24 16:57:36 +00:00
LinuxServer-CI c91ef7182d Bot Updating Package Versions 2023-12-19 19:44:06 +00:00
LinuxServer-CI 584acae69f Bot Updating Package Versions 2023-12-10 11:26:24 +00:00
LinuxServer-CI efcb7b1bac Bot Updating Package Versions 2023-12-03 16:57:02 +00:00
LinuxServer-CI 2ef0db19ae Bot Updating Package Versions 2023-11-26 05:08:27 +00:00
LinuxServer-CI 853a39fb63 Bot Updating Package Versions 2023-11-20 00:37:00 +00:00
LinuxServer-CI 7da581ccd1 Bot Updating Package Versions 2023-11-19 16:57:27 +00:00
LinuxServer-CI 8734d164ab Bot Updating Package Versions 2023-11-19 05:10:09 +00:00
LinuxServer-CI 95085b4a73 Bot Updating Package Versions 2023-11-19 05:06:38 +00:00
LinuxServer-CI d6054f8ac0 Bot Updating Templated Files 2023-11-19 05:02:58 +00:00
LinuxServer-CI debebe27f6 Bot Updating Package Versions 2023-11-11 21:38:20 +00:00
LinuxServer-CI 93b6e9e964 Bot Updating Package Versions 2023-10-29 08:13:38 +00:00
LinuxServer-CI a59e39d2e2 Bot Updating Package Versions 2023-10-22 06:40:21 +00:00
LinuxServer-CI fddb3fbfc0 Bot Updating Package Versions 2023-10-15 16:57:17 +00:00
LinuxServer-CI 70caacfb77 Bot Updating Package Versions 2023-10-08 04:04:37 +00:00
LinuxServer-CI fc2e991f7e Bot Updating Templated Files 2023-10-08 04:00:55 +00:00
LinuxServer-CI efd9bdd70a Bot Updating Templated Files 2023-10-08 03:59:06 +00:00
LinuxServer-CI 19eb5c59f0 Bot Updating Package Versions 2023-10-01 14:13:14 +00:00
LinuxServer-CI e942592eb9 Bot Updating Package Versions 2023-09-24 13:21:32 +00:00
LinuxServer-CI 28038abf2d Bot Updating Package Versions 2023-09-03 04:28:31 +00:00
LinuxServer-CI d7bd68edc1 Bot Updating Package Versions 2023-08-27 17:22:41 +00:00
LinuxServer-CI 4670e528be Bot Updating Package Versions 2023-08-20 16:57:07 +00:00
15 changed files with 821 additions and 709 deletions
+2 -2
View File
@@ -67,10 +67,10 @@ body:
- type: textarea
attributes:
description: |
Provide a full docker log, output of "docker logs linuxserver.io"
Provide a full docker log, output of "docker logs radarr"
label: Container logs
placeholder: |
Output of `docker logs linuxserver.io`
Output of `docker logs radarr`
render: bash
validations:
required: true
+23 -24
View File
@@ -7,22 +7,25 @@ jobs:
external-trigger-develop:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3.1.0
- uses: actions/checkout@v4.1.1
- name: External Trigger
if: github.ref == 'refs/heads/develop'
run: |
printf "# External trigger for docker-radarr\n\n" >> $GITHUB_STEP_SUMMARY
if [ -n "${{ secrets.PAUSE_EXTERNAL_TRIGGER_RADARR_DEVELOP }}" ]; then
echo "**** Github secret PAUSE_EXTERNAL_TRIGGER_RADARR_DEVELOP is set; skipping trigger. ****"
echo "Github secret \`PAUSE_EXTERNAL_TRIGGER_RADARR_DEVELOP\` is set; skipping trigger." >> $GITHUB_STEP_SUMMARY
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Github secret \`PAUSE_EXTERNAL_TRIGGER_RADARR_DEVELOP\` is set; skipping trigger." >> $GITHUB_STEP_SUMMARY
exit 0
fi
echo "**** External trigger running off of develop branch. To disable this trigger, set a Github secret named \"PAUSE_EXTERNAL_TRIGGER_RADARR_DEVELOP\". ****"
echo "External trigger running off of develop branch. To disable this trigger, set a Github secret named \`PAUSE_EXTERNAL_TRIGGER_RADARR_DEVELOP\`" >> $GITHUB_STEP_SUMMARY
echo "**** Retrieving external version ****"
echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY
echo "> External trigger running off of develop branch. To disable this trigger, set a Github secret named \`PAUSE_EXTERNAL_TRIGGER_RADARR_DEVELOP\`" >> $GITHUB_STEP_SUMMARY
printf "\n## Retrieving external version\n\n" >> $GITHUB_STEP_SUMMARY
EXT_RELEASE=$(curl -sL https://radarr.servarr.com/v1/update/develop/changes?runtime=netcore%26os=linuxmusl | jq -r '.[0].version')
echo "Type is \`custom_version_command\`" >> $GITHUB_STEP_SUMMARY
if [ -z "${EXT_RELEASE}" ] || [ "${EXT_RELEASE}" == "null" ]; then
echo "**** Can't retrieve external version, exiting ****"
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Can't retrieve external version, exiting" >> $GITHUB_STEP_SUMMARY
FAILURE_REASON="Can't retrieve external version for radarr branch develop"
GHA_TRIGGER_URL="https://github.com/linuxserver/docker-radarr/actions/runs/${{ github.run_id }}"
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 16711680,
@@ -31,9 +34,8 @@ jobs:
exit 1
fi
EXT_RELEASE=$(echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g')
echo "**** External version: ${EXT_RELEASE} ****"
echo "External version: ${EXT_RELEASE}" >> $GITHUB_STEP_SUMMARY
echo "**** Retrieving last pushed version ****"
echo "External version: \`${EXT_RELEASE}\`" >> $GITHUB_STEP_SUMMARY
echo "Retrieving last pushed version" >> $GITHUB_STEP_SUMMARY
image="linuxserver/radarr"
tag="develop"
token=$(curl -sX GET \
@@ -60,37 +62,34 @@ jobs:
IMAGE_RELEASE=$(echo ${image_info} | jq -r '.Labels.build_version' | awk '{print $3}')
IMAGE_VERSION=$(echo ${IMAGE_RELEASE} | awk -F'-ls' '{print $1}')
if [ -z "${IMAGE_VERSION}" ]; then
echo "**** Can't retrieve last pushed version, exiting ****"
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "Can't retrieve last pushed version, exiting" >> $GITHUB_STEP_SUMMARY
FAILURE_REASON="Can't retrieve last pushed version for radarr tag develop"
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 16711680,
"description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
exit 1
fi
echo "**** Last pushed version: ${IMAGE_VERSION} ****"
echo "Last pushed version: ${IMAGE_VERSION}" >> $GITHUB_STEP_SUMMARY
echo "Last pushed version: \`${IMAGE_VERSION}\`" >> $GITHUB_STEP_SUMMARY
if [ "${EXT_RELEASE}" == "${IMAGE_VERSION}" ]; then
echo "**** Version ${EXT_RELEASE} already pushed, exiting ****"
echo "Version ${EXT_RELEASE} already pushed, exiting" >> $GITHUB_STEP_SUMMARY
echo "Version \`${EXT_RELEASE}\` already pushed, exiting" >> $GITHUB_STEP_SUMMARY
exit 0
elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-radarr/job/develop/lastBuild/api/json | jq -r '.building') == "true" ]; then
echo "**** New version ${EXT_RELEASE} found; but there already seems to be an active build on Jenkins; exiting ****"
echo "New version ${EXT_RELEASE} found; but there already seems to be an active build on Jenkins; exiting" >> $GITHUB_STEP_SUMMARY
echo "New version \`${EXT_RELEASE}\` found; but there already seems to be an active build on Jenkins; exiting" >> $GITHUB_STEP_SUMMARY
exit 0
else
echo "**** New version ${EXT_RELEASE} found; old version was ${IMAGE_VERSION}. Triggering new build ****"
echo "New version ${EXT_RELEASE} found; old version was ${IMAGE_VERSION}. Triggering new build" >> $GITHUB_STEP_SUMMARY
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
response=$(curl -iX POST \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-radarr/job/develop/buildWithParameters?PACKAGE_CHECK=false \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
echo "**** Jenkins job queue url: ${response%$'\r'} ****"
echo "**** Sleeping 10 seconds until job starts ****"
echo "Jenkins [job queue url](${response%$'\r'})" >> $GITHUB_STEP_SUMMARY
echo "Sleeping 10 seconds until job starts" >> $GITHUB_STEP_SUMMARY
sleep 10
buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url')
buildurl="${buildurl%$'\r'}"
echo "**** Jenkins job build url: ${buildurl} ****"
echo "Jenkins job build url: ${buildurl}" >> $GITHUB_STEP_SUMMARY
echo "**** Attempting to change the Jenkins job description ****"
echo "Jenkins job [build url](${buildurl})" >> $GITHUB_STEP_SUMMARY
echo "Attempting to change the Jenkins job description" >> $GITHUB_STEP_SUMMARY
curl -iX POST \
"${buildurl}submitDescription" \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} \
@@ -9,37 +9,37 @@ jobs:
external-trigger-scheduler:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3.1.0
- uses: actions/checkout@v4.1.1
with:
fetch-depth: '0'
- name: External Trigger Scheduler
run: |
echo "**** Branches found: ****"
git for-each-ref --format='%(refname:short)' refs/remotes
for br in $(git for-each-ref --format='%(refname:short)' refs/remotes)
printf "# External trigger scheduler for docker-radarr\n\n" >> $GITHUB_STEP_SUMMARY
printf "Found the branches:\n\n%s\n" "$(git for-each-ref --format='- %(refname:lstrip=3)' refs/remotes)" >> $GITHUB_STEP_SUMMARY
for br in $(git for-each-ref --format='%(refname:lstrip=3)' refs/remotes)
do
br=$(echo "$br" | sed 's|origin/||g')
echo "**** Evaluating branch ${br} ****"
if [[ "${br}" == "HEAD" ]]; then
printf "\nSkipping %s.\n" ${br} >> $GITHUB_STEP_SUMMARY
continue
fi
printf "\n## Evaluating \`%s\`\n\n" ${br} >> $GITHUB_STEP_SUMMARY
ls_jenkins_vars=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-radarr/${br}/jenkins-vars.yml)
ls_branch=$(echo "${ls_jenkins_vars}" | yq -r '.ls_branch')
ls_trigger=$(echo "${ls_jenkins_vars}" | yq -r '.external_type')
if [[ "${br}" == "${ls_branch}" ]] && [[ "${ls_trigger}" != "os" ]]; then
echo "**** Branch ${br} appears to be live and trigger is not os; checking workflow. ****"
echo "Branch appears to be live and trigger is not os; checking workflow." >> $GITHUB_STEP_SUMMARY
if curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-radarr/${br}/.github/workflows/external_trigger.yml > /dev/null 2>&1; then
echo "**** Workflow exists. Triggering external trigger workflow for branch ${br} ****."
echo "Triggering external trigger workflow for branch ${br}" >> $GITHUB_STEP_SUMMARY
echo "Triggering external trigger workflow for branch." >> $GITHUB_STEP_SUMMARY
curl -iX POST \
-H "Authorization: token ${{ secrets.CR_PAT }}" \
-H "Accept: application/vnd.github.v3+json" \
-d "{\"ref\":\"refs/heads/${br}\"}" \
https://api.github.com/repos/linuxserver/docker-radarr/actions/workflows/external_trigger.yml/dispatches
else
echo "**** Workflow doesn't exist; skipping trigger. ****"
echo "Skipping branch ${br} due to no external trigger workflow present." >> $GITHUB_STEP_SUMMARY
echo "Skipping branch due to no external trigger workflow present." >> $GITHUB_STEP_SUMMARY
fi
else
echo "**** ${br} is either a dev branch, or has no external version; skipping trigger. ****"
echo "Skipping branch ${br} due to being detected as dev branch or having no external version." >> $GITHUB_STEP_SUMMARY
echo "Skipping branch due to being detected as dev branch or having no external version." >> $GITHUB_STEP_SUMMARY
fi
done
+12 -12
View File
@@ -7,34 +7,34 @@ jobs:
package-trigger-develop:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3.1.0
- uses: actions/checkout@v4.1.1
- name: Package Trigger
if: github.ref == 'refs/heads/develop'
run: |
printf "# Package trigger for docker-radarr\n\n" >> $GITHUB_STEP_SUMMARY
if [ -n "${{ secrets.PAUSE_PACKAGE_TRIGGER_RADARR_DEVELOP }}" ]; then
echo "**** Github secret PAUSE_PACKAGE_TRIGGER_RADARR_DEVELOP is set; skipping trigger. ****"
echo "Github secret \`PAUSE_PACKAGE_TRIGGER_RADARR_DEVELOP\` is set; skipping trigger." >> $GITHUB_STEP_SUMMARY
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Github secret \`PAUSE_PACKAGE_TRIGGER_RADARR_DEVELOP\` is set; skipping trigger." >> $GITHUB_STEP_SUMMARY
exit 0
fi
if [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-radarr/job/develop/lastBuild/api/json | jq -r '.building') == "true" ]; then
echo "**** There already seems to be an active build on Jenkins; skipping package trigger ****"
echo "There already seems to be an active build on Jenkins; skipping package trigger" >> $GITHUB_STEP_SUMMARY
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> There already seems to be an active build on Jenkins; skipping package trigger" >> $GITHUB_STEP_SUMMARY
exit 0
fi
echo "**** Package trigger running off of develop branch. To disable, set a Github secret named \"PAUSE_PACKAGE_TRIGGER_RADARR_DEVELOP\". ****"
echo "Package trigger running off of develop branch. To disable, set a Github secret named \`PAUSE_PACKAGE_TRIGGER_RADARR_DEVELOP\`" >> $GITHUB_STEP_SUMMARY
echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY
echo "> Package trigger running off of develop branch. To disable, set a Github secret named \`PAUSE_PACKAGE_TRIGGER_RADARR_DEVELOP\`" >> $GITHUB_STEP_SUMMARY
response=$(curl -iX POST \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-radarr/job/develop/buildWithParameters?PACKAGE_CHECK=true \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
echo "**** Jenkins job queue url: ${response%$'\r'} ****"
echo "**** Sleeping 10 seconds until job starts ****"
echo "Jenkins [job queue url](${response%$'\r'})" >> $GITHUB_STEP_SUMMARY
echo "Sleeping 10 seconds until job starts" >> $GITHUB_STEP_SUMMARY
sleep 10
buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url')
buildurl="${buildurl%$'\r'}"
echo "**** Jenkins job build url: ${buildurl} ****"
echo "Jenkins job build url: ${buildurl}" >> $GITHUB_STEP_SUMMARY
echo "**** Attempting to change the Jenkins job description ****"
echo "Jenkins job [build url](${buildurl})" >> $GITHUB_STEP_SUMMARY
echo "Attempting to change the Jenkins job description" >> $GITHUB_STEP_SUMMARY
curl -iX POST \
"${buildurl}submitDescription" \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} \
+10 -10
View File
@@ -9,23 +9,25 @@ jobs:
package-trigger-scheduler:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3.1.0
- uses: actions/checkout@v4.1.1
with:
fetch-depth: '0'
- name: Package Trigger Scheduler
run: |
echo "**** Branches found: ****"
git for-each-ref --format='%(refname:short)' refs/remotes
for br in $(git for-each-ref --format='%(refname:short)' refs/remotes)
printf "# Package trigger scheduler for docker-radarr\n\n" >> $GITHUB_STEP_SUMMARY
printf "Found the branches:\n\n%s\n" "$(git for-each-ref --format='- %(refname:lstrip=3)' refs/remotes)" >> $GITHUB_STEP_SUMMARY
for br in $(git for-each-ref --format='%(refname:lstrip=3)' refs/remotes)
do
br=$(echo "$br" | sed 's|origin/||g')
echo "**** Evaluating branch ${br} ****"
if [[ "${br}" == "HEAD" ]]; then
printf "\nSkipping %s.\n" ${br} >> $GITHUB_STEP_SUMMARY
continue
fi
printf "\n## Evaluating \`%s\`\n\n" ${br} >> $GITHUB_STEP_SUMMARY
ls_branch=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-radarr/${br}/jenkins-vars.yml | yq -r '.ls_branch')
if [ "${br}" == "${ls_branch}" ]; then
echo "**** Branch ${br} appears to be live; checking workflow. ****"
echo "Branch appears to be live; checking workflow." >> $GITHUB_STEP_SUMMARY
if curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-radarr/${br}/.github/workflows/package_trigger.yml > /dev/null 2>&1; then
echo "**** Workflow exists. Triggering package trigger workflow for branch ${br}. ****"
echo "Triggering package trigger workflow for branch ${br}" >> $GITHUB_STEP_SUMMARY
triggered_branches="${triggered_branches}${br} "
curl -iX POST \
@@ -35,11 +37,9 @@ jobs:
https://api.github.com/repos/linuxserver/docker-radarr/actions/workflows/package_trigger.yml/dispatches
sleep 30
else
echo "**** Workflow doesn't exist; skipping trigger. ****"
echo "Skipping branch ${br} due to no package trigger workflow present." >> $GITHUB_STEP_SUMMARY
fi
else
echo "**** ${br} appears to be a dev branch; skipping trigger. ****"
echo "Skipping branch ${br} due to being detected as dev branch." >> $GITHUB_STEP_SUMMARY
fi
done
+2
View File
@@ -5,6 +5,8 @@ on:
- '**/run'
- '**/finish'
- '**/check'
- 'root/migrations/*'
jobs:
permission_check:
uses: linuxserver/github-workflows/.github/workflows/init-svc-executable-permissions.yml@v1
+5 -2
View File
@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-alpine:3.18
FROM ghcr.io/linuxserver/baseimage-alpine:3.20
# set version label
ARG BUILD_DATE
@@ -11,7 +11,9 @@ LABEL maintainer="Roxedus,thespad"
# environment settings
ARG RADARR_BRANCH="develop"
ENV XDG_CONFIG_HOME="/config/xdg"
ENV XDG_CONFIG_HOME="/config/xdg" \
COMPlus_EnableDiagnostics=0 \
TMPDIR=/run/radarr-temp
RUN \
echo "**** install packages ****" && \
@@ -32,6 +34,7 @@ RUN \
/tmp/radarr.tar.gz -C \
/app/radarr/bin --strip-components=1 && \
echo -e "UpdateMethod=docker\nBranch=${RADARR_BRANCH}\nPackageVersion=${VERSION}\nPackageAuthor=[linuxserver.io](https://www.linuxserver.io/)" > /app/radarr/package_info && \
printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \
echo "**** cleanup ****" && \
rm -rf \
/app/radarr/bin/Radarr.Update \
+5 -2
View File
@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.18
FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.20
# set version label
ARG BUILD_DATE
@@ -11,7 +11,9 @@ LABEL maintainer="Roxedus,thespad"
# environment settings
ARG RADARR_BRANCH="develop"
ENV XDG_CONFIG_HOME="/config/xdg"
ENV XDG_CONFIG_HOME="/config/xdg" \
COMPlus_EnableDiagnostics=0 \
TMPDIR=/run/radarr-temp
RUN \
echo "**** install packages ****" && \
@@ -32,6 +34,7 @@ RUN \
/tmp/radarr.tar.gz -C \
/app/radarr/bin --strip-components=1 && \
echo -e "UpdateMethod=docker\nBranch=${RADARR_BRANCH}\nPackageVersion=${VERSION}\nPackageAuthor=[linuxserver.io](https://www.linuxserver.io/)" > /app/radarr/package_info && \
printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \
echo "**** cleanup ****" && \
rm -rf \
/app/radarr/bin/Radarr.Update \
Vendored
+205 -148
View File
@@ -16,7 +16,9 @@ pipeline {
GITHUB_TOKEN=credentials('498b4638-2d02-4ce5-832d-8a57d01d97ab')
GITLAB_TOKEN=credentials('b6f0f1dd-6952-4cf6-95d1-9c06380283f0')
GITLAB_NAMESPACE=credentials('gitlab-namespace-id')
SCARF_TOKEN=credentials('scarf_api_key')
DOCKERHUB_TOKEN=credentials('docker-hub-ci-pat')
QUAYIO_API_TOKEN=credentials('quayio-repo-api-token')
GIT_SIGNING_KEY=credentials('484fbca6-9a4f-455e-b9e3-97ac98785f5f')
BUILD_VERSION_ARG = 'RADARR_RELEASE'
LS_USER = 'linuxserver'
LS_REPO = 'docker-radarr'
@@ -31,14 +33,28 @@ pipeline {
CI_PORT='7878'
CI_SSL='false'
CI_DELAY='120'
CI_DOCKERENV='TZ=US/Pacific'
CI_AUTH='user:password'
CI_DOCKERENV=''
CI_AUTH=''
CI_WEBPATH='/system/status'
}
stages {
stage("Set git config"){
steps{
sh '''#!/bin/bash
cat ${GIT_SIGNING_KEY} > /config/.ssh/id_sign
chmod 600 /config/.ssh/id_sign
ssh-keygen -y -f /config/.ssh/id_sign > /config/.ssh/id_sign.pub
echo "Using $(ssh-keygen -lf /config/.ssh/id_sign) to sign commits"
git config --global gpg.format ssh
git config --global user.signingkey /config/.ssh/id_sign
git config --global commit.gpgsign true
'''
}
}
// Setup all the basic environment variables needed for the build
stage("Set ENV Variables base"){
steps{
echo "Running on node: ${NODE_NAME}"
sh '''#! /bin/bash
containers=$(docker ps -aq)
if [[ -n "${containers}" ]]; then
@@ -59,11 +75,16 @@ pipeline {
env.COMMIT_SHA = sh(
script: '''git rev-parse HEAD''',
returnStdout: true).trim()
env.GH_DEFAULT_BRANCH = sh(
script: '''git remote show origin | grep "HEAD branch:" | sed 's|.*HEAD branch: ||' ''',
returnStdout: true).trim()
env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/commit/' + env.GIT_COMMIT
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 ./.github/workflows/package_trigger.yml ./root/donate.txt'
}
sh '''#! /bin/bash
echo "The default github branch detected as ${GH_DEFAULT_BRANCH}" '''
script{
env.LS_RELEASE_NUMBER = sh(
script: '''echo ${LS_RELEASE} |sed 's/^.*-ls//g' ''',
@@ -121,7 +142,7 @@ pipeline {
steps{
script{
env.EXT_RELEASE_CLEAN = sh(
script: '''echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g' ''',
script: '''echo ${EXT_RELEASE} | sed 's/[~,%@+;:/ ]//g' ''',
returnStdout: true).trim()
def semver = env.EXT_RELEASE_CLEAN =~ /(\d+)\.(\d+)\.(\d+)/
@@ -139,7 +160,7 @@ pipeline {
}
if (env.SEMVER != null) {
if (BRANCH_NAME != "master" && BRANCH_NAME != "main") {
if (BRANCH_NAME != "${env.GH_DEFAULT_BRANCH}") {
env.SEMVER = "${env.SEMVER}-${BRANCH_NAME}"
}
println("SEMVER: ${env.SEMVER}")
@@ -240,9 +261,11 @@ pipeline {
-v ${WORKSPACE}:/mnt \
-e AWS_ACCESS_KEY_ID=\"${S3_KEY}\" \
-e AWS_SECRET_ACCESS_KEY=\"${S3_SECRET}\" \
ghcr.io/linuxserver/baseimage-alpine:3.17 s6-envdir -fn -- /var/run/s6/container_environment /bin/bash -c "\
apk add --no-cache py3-pip && \
pip install s3cmd && \
ghcr.io/linuxserver/baseimage-alpine:3.20 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 && \
pip install --no-cache-dir s3cmd && \
s3cmd put --no-preserve --acl-public -m text/xml /mnt/shellcheck-result.xml s3://ci-tests.linuxserver.io/${IMAGE}/${META_TAG}/shellcheck-result.xml" || :'''
}
}
@@ -261,8 +284,15 @@ pipeline {
set -e
TEMPDIR=$(mktemp -d)
docker pull ghcr.io/linuxserver/jenkins-builder:latest
docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=develop -v ${TEMPDIR}:/ansible/jenkins ghcr.io/linuxserver/jenkins-builder:latest
# Stage 1 - Jenkinsfile update
# Cloned repo paths for templating:
# ${TEMPDIR}/docker-${CONTAINER_NAME}: Cloned branch develop of ${LS_USER}/${LS_REPO} for running the jenkins builder on
# ${TEMPDIR}/repo/${LS_REPO}: Cloned branch develop of ${LS_USER}/${LS_REPO} for commiting various templated file changes and pushing back to Github
# ${TEMPDIR}/docs/docker-documentation: Cloned docs repo for pushing docs updates to Github
# ${TEMPDIR}/unraid/docker-templates: Cloned docker-templates repo to check for logos
# ${TEMPDIR}/unraid/templates: Cloned templates repo for commiting unraid template changes and pushing back to Github
git clone --branch develop --depth 1 https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/docker-${CONTAINER_NAME}
docker run --rm -v ${TEMPDIR}/docker-${CONTAINER_NAME}:/tmp -e LOCAL=true -e PUID=$(id -u) -e PGID=$(id -g) ghcr.io/linuxserver/jenkins-builder:latest
echo "Starting Stage 1 - Jenkinsfile update"
if [[ "$(md5sum Jenkinsfile | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile | awk '{ print $1 }')" ]]; then
mkdir -p ${TEMPDIR}/repo
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
@@ -271,16 +301,17 @@ pipeline {
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile ${TEMPDIR}/repo/${LS_REPO}/
git add Jenkinsfile
git commit -m 'Bot Updating Templated Files'
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git develop
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git develop
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
echo "Updating Jenkinsfile"
echo "Updating Jenkinsfile and exiting build, new one will trigger based on commit"
rm -Rf ${TEMPDIR}
exit 0
else
echo "Jenkinsfile is up to date."
fi
# Stage 2 - Delete old templates
OLD_TEMPLATES=".github/ISSUE_TEMPLATE.md .github/ISSUE_TEMPLATE/issue.bug.md .github/ISSUE_TEMPLATE/issue.feature.md .github/workflows/call_invalid_helper.yml .github/workflows/stale.yml Dockerfile.armhf"
echo "Starting Stage 2 - Delete old templates"
OLD_TEMPLATES=".github/ISSUE_TEMPLATE.md .github/ISSUE_TEMPLATE/issue.bug.md .github/ISSUE_TEMPLATE/issue.feature.md .github/workflows/call_invalid_helper.yml .github/workflows/stale.yml"
for i in ${OLD_TEMPLATES}; do
if [[ -f "${i}" ]]; then
TEMPLATES_TO_DELETE="${i} ${TEMPLATES_TO_DELETE}"
@@ -295,15 +326,16 @@ pipeline {
git rm "${i}"
done
git commit -m 'Bot Updating Templated Files'
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git develop
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git develop
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
echo "Deleting old and deprecated templates"
echo "Deleting old/deprecated templates and exiting build, new one will trigger based on commit"
rm -Rf ${TEMPDIR}
exit 0
else
echo "No templates to delete"
fi
# Stage 3 - Update templates
echo "Starting Stage 3 - Update templates"
CURRENTHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8)
cd ${TEMPDIR}/docker-${CONTAINER_NAME}
NEWHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8)
@@ -324,31 +356,50 @@ pipeline {
fi
git add readme-vars.yml ${TEMPLATED_FILES}
git commit -m 'Bot Updating Templated Files'
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git develop
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git develop
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
echo "Updating templates and exiting build, new one will trigger based on commit"
rm -Rf ${TEMPDIR}
exit 0
else
echo "false" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
echo "No templates to update"
fi
mkdir -p ${TEMPDIR}/gitbook
git clone https://github.com/linuxserver/docker-documentation.git ${TEMPDIR}/gitbook/docker-documentation
if [[ ("${BRANCH_NAME}" == "master") || ("${BRANCH_NAME}" == "main") ]] && [[ (! -f ${TEMPDIR}/gitbook/docker-documentation/images/docker-${CONTAINER_NAME}.md) || ("$(md5sum ${TEMPDIR}/gitbook/docker-documentation/images/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')") ]]; then
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/docker-${CONTAINER_NAME}.md ${TEMPDIR}/gitbook/docker-documentation/images/
cd ${TEMPDIR}/gitbook/docker-documentation/
git add images/docker-${CONTAINER_NAME}.md
echo "Starting Stage 4 - External repo updates: Docs, Unraid Template and Readme Sync to Docker Hub"
mkdir -p ${TEMPDIR}/docs
git clone --depth=1 https://github.com/linuxserver/docker-documentation.git ${TEMPDIR}/docs/docker-documentation
if [[ "${BRANCH_NAME}" == "${GH_DEFAULT_BRANCH}" ]] && [[ (! -f ${TEMPDIR}/docs/docker-documentation/docs/images/docker-${CONTAINER_NAME}.md) || ("$(md5sum ${TEMPDIR}/docs/docker-documentation/docs/images/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')") ]]; then
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/docker-${CONTAINER_NAME}.md ${TEMPDIR}/docs/docker-documentation/docs/images/
cd ${TEMPDIR}/docs/docker-documentation
GH_DOCS_DEFAULT_BRANCH=$(git remote show origin | grep "HEAD branch:" | sed 's|.*HEAD branch: ||')
git add docs/images/docker-${CONTAINER_NAME}.md
echo "Updating docs repo"
git commit -m 'Bot Updating Documentation'
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git --all
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH} --rebase
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH} || \
(MAXWAIT="10" && echo "Push to docs failed, trying again in ${MAXWAIT} seconds" && \
sleep $((RANDOM % MAXWAIT)) && \
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH} --rebase && \
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH})
else
echo "Docs update not needed, skipping"
fi
mkdir -p ${TEMPDIR}/unraid
git clone https://github.com/linuxserver/docker-templates.git ${TEMPDIR}/unraid/docker-templates
git clone https://github.com/linuxserver/templates.git ${TEMPDIR}/unraid/templates
git clone --depth=1 https://github.com/linuxserver/docker-templates.git ${TEMPDIR}/unraid/docker-templates
git clone --depth=1 https://github.com/linuxserver/templates.git ${TEMPDIR}/unraid/templates
if [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-logo.png ]]; then
sed -i "s|master/linuxserver.io/img/linuxserver-ls-logo.png|master/linuxserver.io/img/${CONTAINER_NAME}-logo.png|" ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml
elif [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-icon.png ]]; then
sed -i "s|master/linuxserver.io/img/linuxserver-ls-logo.png|master/linuxserver.io/img/${CONTAINER_NAME}-icon.png|" ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml
fi
if [[ ("${BRANCH_NAME}" == "master") || ("${BRANCH_NAME}" == "main") ]] && [[ (! -f ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml) || ("$(md5sum ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml | awk '{ print $1 }')") ]]; then
if [[ "${BRANCH_NAME}" == "${GH_DEFAULT_BRANCH}" ]] && [[ (! -f ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml) || ("$(md5sum ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml | awk '{ print $1 }')") ]]; then
echo "Updating Unraid template"
cd ${TEMPDIR}/unraid/templates/
if grep -wq "${CONTAINER_NAME}" ${TEMPDIR}/unraid/templates/unraid/ignore.list; then
GH_TEMPLATES_DEFAULT_BRANCH=$(git remote show origin | grep "HEAD branch:" | sed 's|.*HEAD branch: ||')
if grep -wq "^${CONTAINER_NAME}$" ${TEMPDIR}/unraid/templates/unraid/ignore.list && [[ -f ${TEMPDIR}/unraid/templates/unraid/deprecated/${CONTAINER_NAME}.xml ]]; then
echo "Image is on the ignore list, and already in the deprecation folder."
elif grep -wq "^${CONTAINER_NAME}$" ${TEMPDIR}/unraid/templates/unraid/ignore.list; then
echo "Image is on the ignore list, marking Unraid template as deprecated"
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml ${TEMPDIR}/unraid/templates/unraid/
git add -u unraid/${CONTAINER_NAME}.xml
@@ -359,7 +410,42 @@ pipeline {
git add unraid/${CONTAINER_NAME}.xml
git commit -m 'Bot Updating Unraid Template'
fi
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git --all
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git ${GH_TEMPLATES_DEFAULT_BRANCH} --rebase
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git ${GH_TEMPLATES_DEFAULT_BRANCH} || \
(MAXWAIT="10" && echo "Push to unraid templates failed, trying again in ${MAXWAIT} seconds" && \
sleep $((RANDOM % MAXWAIT)) && \
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git ${GH_TEMPLATES_DEFAULT_BRANCH} --rebase && \
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git ${GH_TEMPLATES_DEFAULT_BRANCH})
else
echo "No updates to Unraid template needed, skipping"
fi
if [[ "${BRANCH_NAME}" == "${GH_DEFAULT_BRANCH}" ]]; then
if [[ $(cat ${TEMPDIR}/docker-${CONTAINER_NAME}/README.md | wc -m) -gt 25000 ]]; then
echo "Readme is longer than 25,000 characters. Syncing the lite version to Docker Hub"
DH_README_SYNC_PATH="${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/README.lite"
else
echo "Syncing readme to Docker Hub"
DH_README_SYNC_PATH="${TEMPDIR}/docker-${CONTAINER_NAME}/README.md"
fi
if curl -s https://hub.docker.com/v2/namespaces/${DOCKERHUB_IMAGE%%/*}/repositories/${DOCKERHUB_IMAGE##*/}/tags | jq -r '.message' | grep -q 404; then
echo "Docker Hub endpoint doesn't exist. Creating endpoint first."
DH_TOKEN=$(curl -d '{"username":"linuxserverci", "password":"'${DOCKERHUB_TOKEN}'"}' -H "Content-Type: application/json" -X POST https://hub.docker.com/v2/users/login | jq -r '.token')
curl -s \
-H "Authorization: JWT ${DH_TOKEN}" \
-H "Content-Type: application/json" \
-X POST \
-d '{"name":"'${DOCKERHUB_IMAGE##*/}'", "namespace":"'${DOCKERHUB_IMAGE%%/*}'"}' \
https://hub.docker.com/v2/repositories/ || :
fi
DH_TOKEN=$(curl -d '{"username":"linuxserverci", "password":"'${DOCKERHUB_TOKEN}'"}' -H "Content-Type: application/json" -X POST https://hub.docker.com/v2/users/login | jq -r '.token')
curl -s \
-H "Authorization: JWT ${DH_TOKEN}" \
-H "Content-Type: application/json" \
-X PATCH \
-d "{\\"full_description\\":$(jq -Rsa . ${DH_README_SYNC_PATH})}" \
https://hub.docker.com/v2/repositories/${DOCKERHUB_IMAGE} || :
else
echo "Not the default Github branch. Skipping readme sync to Docker Hub."
fi
rm -Rf ${TEMPDIR}'''
script{
@@ -406,52 +492,27 @@ pipeline {
}
}
/* #######################
GitLab Mirroring
GitLab Mirroring and Quay.io Repo Visibility
####################### */
// Ping into Gitlab to mirror this repo and have a registry endpoint
stage("GitLab Mirror"){
// Ping into Gitlab to mirror this repo and have a registry endpoint & mark this repo on Quay.io as public
stage("GitLab Mirror and Quay.io Visibility"){
when {
environment name: 'EXIT_STATUS', value: ''
}
steps{
sh '''curl -H "Content-Type: application/json" -H "Private-Token: ${GITLAB_TOKEN}" -X POST https://gitlab.com/api/v4/projects \
-d '{"namespace_id":'${GITLAB_NAMESPACE}',\
"name":"'${LS_REPO}'",
"mirror":true,\
"import_url":"https://github.com/linuxserver/'${LS_REPO}'.git",\
"issues_access_level":"disabled",\
"merge_requests_access_level":"disabled",\
"repository_access_level":"enabled",\
"visibility":"public"}' '''
}
}
/* #######################
Scarf.sh package registry
####################### */
// Add package to Scarf.sh and set permissions
stage("Scarf.sh package registry"){
when {
branch "develop"
environment name: 'EXIT_STATUS', value: ''
}
steps{
sh '''#! /bin/bash
PACKAGE_UUID=$(curl -X GET -H "Authorization: Bearer ${SCARF_TOKEN}" https://scarf.sh/api/v1/organizations/linuxserver-ci/packages | jq -r '.[] | select(.name=="linuxserver/radarr") | .uuid' || :)
if [ -z "${PACKAGE_UUID}" ]; then
echo "Adding package to Scarf.sh"
curl -sX POST https://scarf.sh/api/v1/organizations/linuxserver-ci/packages \
-H "Authorization: Bearer ${SCARF_TOKEN}" \
-H "Content-Type: application/json" \
-d '{"name":"linuxserver/radarr",\
"shortDescription":"example description",\
"libraryType":"docker",\
"website":"https://github.com/linuxserver/docker-radarr",\
"backendUrl":"https://ghcr.io/linuxserver/radarr",\
"publicUrl":"https://lscr.io/linuxserver/radarr"}' || :
else
echo "Package already exists on Scarf.sh"
fi
'''
-d '{"namespace_id":'${GITLAB_NAMESPACE}',\
"name":"'${LS_REPO}'",
"mirror":true,\
"import_url":"https://github.com/linuxserver/'${LS_REPO}'.git",\
"issues_access_level":"disabled",\
"merge_requests_access_level":"disabled",\
"repository_access_level":"enabled",\
"visibility":"public"}' '''
sh '''curl -H "Private-Token: ${GITLAB_TOKEN}" -X PUT "https://gitlab.com/api/v4/projects/Linuxserver.io%2F${LS_REPO}" \
-d "mirror=true&import_url=https://github.com/linuxserver/${LS_REPO}.git" '''
sh '''curl -H "Content-Type: application/json" -H "Authorization: Bearer ${QUAYIO_API_TOKEN}" -X POST "https://quay.io/api/v1/repository${QUAYIMAGE/quay.io/}/changevisibility" \
-d '{"visibility":"public"}' ||: '''
}
}
/* ###############
@@ -482,6 +543,7 @@ pipeline {
--label \"org.opencontainers.image.title=Radarr\" \
--label \"org.opencontainers.image.description=[Radarr](https://github.com/Radarr/Radarr) - A fork of Sonarr to work with movies à la Couchpotato. \" \
--no-cache --pull -t ${IMAGE}:${META_TAG} --platform=linux/amd64 \
--provenance=false --sbom=false \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
}
}
@@ -513,6 +575,7 @@ pipeline {
--label \"org.opencontainers.image.title=Radarr\" \
--label \"org.opencontainers.image.description=[Radarr](https://github.com/Radarr/Radarr) - A fork of Sonarr to work with movies à la Couchpotato. \" \
--no-cache --pull -t ${IMAGE}:amd64-${META_TAG} --platform=linux/amd64 \
--provenance=false --sbom=false \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
}
}
@@ -541,9 +604,10 @@ pipeline {
--label \"org.opencontainers.image.title=Radarr\" \
--label \"org.opencontainers.image.description=[Radarr](https://github.com/Radarr/Radarr) - A fork of Sonarr to work with movies à la Couchpotato. \" \
--no-cache --pull -f Dockerfile.aarch64 -t ${IMAGE}:arm64v8-${META_TAG} --platform=linux/arm64 \
--provenance=false --sbom=false \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
sh "docker tag ${IMAGE}:arm64v8-${META_TAG} ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}"
retry(5) {
retry_backoff(5,5) {
sh "docker push ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}"
}
sh '''#! /bin/bash
@@ -567,7 +631,7 @@ pipeline {
sh '''#! /bin/bash
set -e
TEMPDIR=$(mktemp -d)
if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then
if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" != "true" ]; then
LOCAL_CONTAINER=${IMAGE}:amd64-${META_TAG}
else
LOCAL_CONTAINER=${IMAGE}:${META_TAG}
@@ -588,7 +652,8 @@ pipeline {
wait
git add package_versions.txt
git commit -m 'Bot Updating Package Versions'
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git develop
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git develop
echo "true" > /tmp/packages-${COMMIT_SHA}-${BUILD_NUMBER}
echo "Package tag updated, stopping build process"
else
@@ -656,14 +721,14 @@ pipeline {
set -e
docker pull ghcr.io/linuxserver/ci:latest
if [ "${MULTIARCH}" == "true" ]; then
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
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}
fi
docker run --rm \
--shm-size=1gb \
-v /var/run/docker.sock:/var/run/docker.sock \
-e IMAGE=\"${IMAGE}\" \
-e DELAY_START=\"${CI_DELAY}\" \
-e DOCKER_LOGS_TIMEOUT=\"${CI_DELAY}\" \
-e TAGS=\"${CI_TAGS}\" \
-e META_TAG=\"${META_TAG}\" \
-e PORT=\"${CI_PORT}\" \
@@ -691,12 +756,6 @@ pipeline {
}
steps {
withCredentials([
[
$class: 'UsernamePasswordMultiBinding',
credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207',
usernameVariable: 'DOCKERUSER',
passwordVariable: 'DOCKERPASS'
],
[
$class: 'UsernamePasswordMultiBinding',
credentialsId: 'Quay.io-Robot',
@@ -704,10 +763,10 @@ pipeline {
passwordVariable: 'QUAYPASS'
]
]) {
retry(5) {
retry_backoff(5,5) {
sh '''#! /bin/bash
set -e
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
echo $DOCKERHUB_TOKEN | docker login -u linuxserverci --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 $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
@@ -722,7 +781,7 @@ pipeline {
docker push ${PUSHIMAGE}:${META_TAG}
docker push ${PUSHIMAGE}:${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then
docker push ${PUSHIMAGE}:${SEMVER}
docker push ${PUSHIMAGE}:${SEMVER}
fi
done
'''
@@ -738,12 +797,6 @@ pipeline {
}
steps {
withCredentials([
[
$class: 'UsernamePasswordMultiBinding',
credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207',
usernameVariable: 'DOCKERUSER',
passwordVariable: 'DOCKERPASS'
],
[
$class: 'UsernamePasswordMultiBinding',
credentialsId: 'Quay.io-Robot',
@@ -751,15 +804,15 @@ pipeline {
passwordVariable: 'QUAYPASS'
]
]) {
retry(5) {
retry_backoff(5,5) {
sh '''#! /bin/bash
set -e
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
echo $DOCKERHUB_TOKEN | docker login -u linuxserverci --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 $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
if [ "${CI}" == "false" ]; then
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
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}
fi
for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do
@@ -783,35 +836,13 @@ pipeline {
docker push ${MANIFESTIMAGE}:amd64-${SEMVER}
docker push ${MANIFESTIMAGE}:arm64v8-${SEMVER}
fi
docker manifest push --purge ${MANIFESTIMAGE}:develop || :
docker manifest create ${MANIFESTIMAGE}:develop ${MANIFESTIMAGE}:amd64-develop ${MANIFESTIMAGE}:arm64v8-develop
docker manifest annotate ${MANIFESTIMAGE}:develop ${MANIFESTIMAGE}:arm64v8-develop --os linux --arch arm64 --variant v8
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} || :
docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8
docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} || :
docker manifest create ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} --os linux --arch arm64 --variant v8
done
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}:${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 [ -n "${SEMVER}" ]; then
docker manifest push --purge ${MANIFESTIMAGE}:${SEMVER} || :
docker manifest create ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} --os linux --arch arm64 --variant v8
fi
token=$(curl -sX GET "https://ghcr.io/token?scope=repository%3Alinuxserver%2F${CONTAINER_NAME}%3Apull" | jq -r '.token')
digest=$(curl -s \
--header "Accept: application/vnd.docker.distribution.manifest.v2+json" \
--header "Authorization: Bearer ${token}" \
"https://ghcr.io/v2/linuxserver/${CONTAINER_NAME}/manifests/arm32v7-develop")
if [[ $(echo "$digest" | jq -r '.layers') != "null" ]]; then
docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-develop || :
docker manifest create ${MANIFESTIMAGE}:arm32v7-develop ${MANIFESTIMAGE}:amd64-develop
docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-develop
fi
docker manifest push --purge ${MANIFESTIMAGE}:develop
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG}
docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then
docker manifest push --purge ${MANIFESTIMAGE}:${SEMVER}
docker buildx imagetools create -t ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
fi
done
'''
@@ -836,7 +867,7 @@ pipeline {
"object": "'${COMMIT_SHA}'",\
"message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to develop",\
"type": "commit",\
"tagger": {"name": "LinuxServer Jenkins","email": "jenkins@linuxserver.io","date": "'${GITHUB_DATE}'"}}' '''
"tagger": {"name": "LinuxServer-CI","email": "ci@linuxserver.io","date": "'${GITHUB_DATE}'"}}' '''
echo "Pushing New release for Tag"
sh '''#! /bin/bash
echo "Updating to ${EXT_RELEASE_CLEAN}" > releasebody.json
@@ -849,37 +880,39 @@ pipeline {
curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases -d @releasebody.json.done'''
}
}
// Use helper container to sync the current README on master to the dockerhub endpoint
stage('Sync-README') {
// Add protection to the release branch
stage('Github-Release-Branch-Protection') {
when {
branch "develop"
environment name: 'CHANGE_ID', value: ''
environment name: 'EXIT_STATUS', value: ''
}
steps {
withCredentials([
[
$class: 'UsernamePasswordMultiBinding',
credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207',
usernameVariable: 'DOCKERUSER',
passwordVariable: 'DOCKERPASS'
]
]) {
sh '''#! /bin/bash
set -e
TEMPDIR=$(mktemp -d)
docker pull ghcr.io/linuxserver/jenkins-builder:latest
docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH="${BRANCH_NAME}" -v ${TEMPDIR}:/ansible/jenkins ghcr.io/linuxserver/jenkins-builder:latest
docker pull ghcr.io/linuxserver/readme-sync
docker run --rm=true \
-e DOCKERHUB_USERNAME=$DOCKERUSER \
-e DOCKERHUB_PASSWORD=$DOCKERPASS \
-e GIT_REPOSITORY=${LS_USER}/${LS_REPO} \
-e DOCKER_REPOSITORY=${IMAGE} \
-e GIT_BRANCH=master \
-v ${TEMPDIR}/docker-${CONTAINER_NAME}:/mnt \
ghcr.io/linuxserver/readme-sync bash -c 'node sync'
rm -Rf ${TEMPDIR} '''
}
echo "Setting up protection for release branch develop"
sh '''#! /bin/bash
curl -H "Authorization: token ${GITHUB_TOKEN}" -X PUT https://api.github.com/repos/${LS_USER}/${LS_REPO}/branches/develop/protection \
-d $(jq -c . << EOF
{
"required_status_checks": null,
"enforce_admins": false,
"required_pull_request_reviews": {
"dismiss_stale_reviews": false,
"require_code_owner_reviews": false,
"require_last_push_approval": false,
"required_approving_review_count": 1
},
"restrictions": null,
"required_linear_history": false,
"allow_force_pushes": false,
"allow_deletions": false,
"block_creations": false,
"required_conversation_resolution": true,
"lock_branch": false,
"allow_fork_syncing": false,
"required_signatures": false
}
EOF
) '''
}
}
// If this is a Pull request send the CI link as a comment on it
@@ -966,6 +999,13 @@ pipeline {
###################### */
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{
if (env.EXIT_STATUS == "ABORTED"){
sh 'echo "build aborted"'
@@ -995,3 +1035,20 @@ pipeline {
}
}
}
def retry_backoff(int max_attempts, int power_base, Closure c) {
int n = 0
while (n < max_attempts) {
try {
c()
return
} catch (err) {
if ((n + 1) >= max_attempts) {
throw err
}
sleep(power_base ** n)
n++
}
}
return
}
+109 -53
View File
@@ -1,6 +1,5 @@
<!-- DO NOT EDIT THIS FILE MANUALLY -->
<!-- Please read the https://github.com/linuxserver/docker-radarr/blob/develop/.github/CONTRIBUTING.md -->
<!-- DO NOT EDIT THIS FILE MANUALLY -->
<!-- Please read https://github.com/linuxserver/docker-radarr/blob/develop/.github/CONTRIBUTING.md -->
[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)](https://linuxserver.io)
[![Blog](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Blog)](https://blog.linuxserver.io "all the things you can do with our containers including How-To guides, opinions and much more!")
@@ -29,7 +28,7 @@ Find us at:
# [linuxserver/radarr](https://github.com/linuxserver/docker-radarr)
[![Scarf.io pulls](https://scarf.sh/installs-badge/linuxserver-ci/linuxserver%2Fradarr?color=94398d&label-color=555555&logo-color=ffffff&style=for-the-badge&package-type=docker)](https://scarf.sh/gateway/linuxserver-ci/docker/linuxserver%2Fradarr)
[![Scarf.io pulls](https://scarf.sh/installs-badge/linuxserver-ci/linuxserver%2Fradarr?color=94398d&label-color=555555&logo-color=ffffff&style=for-the-badge&package-type=docker)](https://scarf.sh)
[![GitHub Stars](https://img.shields.io/github/stars/linuxserver/docker-radarr.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-radarr)
[![GitHub Release](https://img.shields.io/github/release/linuxserver/docker-radarr.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-radarr/releases)
[![GitHub Package Repository](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitHub%20Package&logo=github)](https://github.com/linuxserver/docker-radarr/packages)
@@ -46,7 +45,7 @@ Find us at:
## Supported Architectures
We utilise the docker manifest for multi-platform awareness. More information is available from docker [here](https://github.com/docker/distribution/blob/master/docs/spec/manifest-v2-2.md#manifest-list) and our announcement [here](https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/).
We utilise the docker manifest for multi-platform awareness. More information is available from docker [here](https://distribution.github.io/distribution/spec/manifest-v2-2/#manifest-list) and our announcement [here](https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/).
Simply pulling `lscr.io/linuxserver/radarr:develop` should retrieve the correct image for your arch, but you can also pull specific arch images via tags.
@@ -67,6 +66,7 @@ This image provides various versions that are available via tags. Please read th
| latest | ✅ | Stable Radarr releases |
| develop | ✅ | Radarr releases from their develop branch |
| nightly | ✅ | Radarr releases from their nightly branch |
## Application Setup
Access the webui at `<your-ip>:7878`, for more information check out [Radarr](https://github.com/Radarr/Radarr).
@@ -75,21 +75,23 @@ Access the webui at `<your-ip>:7878`, for more information check out [Radarr](ht
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 dont understand, or dont want hardlinks/atomic moves.
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.
# changelog
## Read-Only Operation
This image can be run with a read-only container filesystem. For details please [read the docs](https://docs.linuxserver.io/misc/read-only/).
## Usage
Here are some example snippets to help you get started creating a container.
To help you get started creating a container from this image you can either use docker-compose or the docker cli.
### docker-compose (recommended, [click here for more info](https://docs.linuxserver.io/general/docker-compose))
```yaml
---
version: "2.1"
services:
radarr:
image: lscr.io/linuxserver/radarr:develop
@@ -99,9 +101,9 @@ services:
- PGID=1000
- TZ=Etc/UTC
volumes:
- /path/to/data:/config
- /path/to/radarr/data:/config
- /path/to/movies:/movies #optional
- /path/to/downloadclient-downloads:/downloads #optional
- /path/to/download-client-downloads:/downloads #optional
ports:
- 7878:7878
restart: unless-stopped
@@ -116,27 +118,27 @@ docker run -d \
-e PGID=1000 \
-e TZ=Etc/UTC \
-p 7878:7878 \
-v /path/to/data:/config \
-v /path/to/radarr/data:/config \
-v /path/to/movies:/movies `#optional` \
-v /path/to/downloadclient-downloads:/downloads `#optional` \
-v /path/to/download-client-downloads:/downloads `#optional` \
--restart unless-stopped \
lscr.io/linuxserver/radarr:develop
```
## Parameters
Container images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate `<external>:<internal>` respectively. For example, `-p 8080:80` would expose port `80` from inside the container to be accessible from the host's IP on port `8080` outside the container.
Containers are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate `<external>:<internal>` respectively. For example, `-p 8080:80` would expose port `80` from inside the container to be accessible from the host's IP on port `8080` outside the container.
| Parameter | Function |
| :----: | --- |
| `-p 7878` | The port for the Radarr webinterface |
| `-p 7878` | The port for the Radarr web UI |
| `-e PUID=1000` | for UserID - see below for explanation |
| `-e PGID=1000` | for GroupID - see below for explanation |
| `-e TZ=Etc/UTC` | specify a timezone to use, see this [list](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). |
| `-v /config` | Database and Radarr configs |
| `-v /movies` | Location of Movie library on disk (See note in Application setup) |
| `-v /downloads` | Location of download managers output directory (See note in Application setup) |
| `--read-only=true` | Run container with a read-only filesystem. Please [read the docs](https://docs.linuxserver.io/misc/read-only/). |
## Environment variables from files (Docker secrets)
@@ -145,10 +147,10 @@ You can set any environment variable from a file by using a special prepend `FIL
As an example:
```bash
-e FILE__PASSWORD=/run/secrets/mysecretpassword
-e FILE__MYVAR=/run/secrets/mysecretvariable
```
Will set the environment variable `PASSWORD` based on the contents of the `/run/secrets/mysecretpassword` file.
Will set the environment variable `MYVAR` based on the contents of the `/run/secrets/mysecretvariable` file.
## Umask for running applications
@@ -157,15 +159,20 @@ Keep in mind umask is not chmod it subtracts from permissions based on it's valu
## User / Group Identifiers
When using volumes (`-v` flags) permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user `PUID` and group `PGID`.
When using volumes (`-v` flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user `PUID` and group `PGID`.
Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic.
In this instance `PUID=1000` and `PGID=1000`, to find yours use `id user` as below:
In this instance `PUID=1000` and `PGID=1000`, to find yours use `id your_user` as below:
```bash
$ id username
uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)
id your_user
```
Example output:
```text
uid=1000(your_user) gid=1000(your_user) groups=1000(your_user)
```
## Docker Mods
@@ -176,53 +183,100 @@ We publish various [Docker Mods](https://github.com/linuxserver/docker-mods) to
## Support Info
* Shell access whilst the container is running: `docker exec -it radarr /bin/bash`
* To monitor the logs of the container in realtime: `docker logs -f radarr`
* container version number
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' radarr`
* image version number
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/radarr:develop`
* Shell access whilst the container is running:
```bash
docker exec -it radarr /bin/bash
```
* To monitor the logs of the container in realtime:
```bash
docker logs -f radarr
```
* Container version number:
```bash
docker inspect -f '{{ index .Config.Labels "build_version" }}' radarr
```
* Image version number:
```bash
docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/radarr:develop
```
## Updating Info
Most of our images are static, versioned, and require an image update and container recreation to update the app inside. With some exceptions (ie. nextcloud, plex), we do not recommend or support updating apps inside the container. Please consult the [Application Setup](#application-setup) section above to see if it is recommended for the image.
Most of our images are static, versioned, and require an image update and container recreation to update the app inside. With some exceptions (noted in the relevant readme.md), we do not recommend or support updating apps inside the container. Please consult the [Application Setup](#application-setup) section above to see if it is recommended for the image.
Below are the instructions for updating containers:
### Via Docker Compose
* Update all images: `docker-compose pull`
* or update a single image: `docker-compose pull radarr`
* Let compose update all containers as necessary: `docker-compose up -d`
* or update a single container: `docker-compose up -d radarr`
* You can also remove the old dangling images: `docker image prune`
* Update images:
* All images:
```bash
docker-compose pull
```
* Single image:
```bash
docker-compose pull radarr
```
* Update containers:
* All containers:
```bash
docker-compose up -d
```
* Single container:
```bash
docker-compose up -d radarr
```
* You can also remove the old dangling images:
```bash
docker image prune
```
### Via Docker Run
* Update the image: `docker pull lscr.io/linuxserver/radarr:develop`
* Stop the running container: `docker stop radarr`
* Delete the container: `docker rm radarr`
* Update the image:
```bash
docker pull lscr.io/linuxserver/radarr:develop
```
* Stop the running container:
```bash
docker stop radarr
```
* Delete the container:
```bash
docker rm radarr
```
* Recreate a new container with the same docker run parameters as instructed above (if mapped correctly to a host folder, your `/config` folder and settings will be preserved)
* You can also remove the old dangling images: `docker image prune`
* You can also remove the old dangling images:
### Via Watchtower auto-updater (only use if you don't remember the original parameters)
* Pull the latest image at its tag and replace it with the same env variables in one run:
```bash
docker run --rm \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower \
--run-once radarr
```
* You can also remove the old dangling images: `docker image prune`
**Note:** We do not endorse the use of Watchtower as a solution to automated updates of existing Docker containers. In fact we generally discourage automated updates. However, this is a useful tool for one-time manual updates of containers where you have forgotten the original parameters. In the long term, we highly recommend using [Docker Compose](https://docs.linuxserver.io/general/docker-compose).
```bash
docker image prune
```
### Image Update Notifications - Diun (Docker Image Update Notifier)
* We recommend [Diun](https://crazymax.dev/diun/) for update notifications. Other tools that automatically update containers unattended are not recommended or supported.
**tip**: We recommend [Diun](https://crazymax.dev/diun/) for update notifications. Other tools that automatically update containers unattended are not recommended or supported.
## Building locally
@@ -247,6 +301,8 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
## Versions
* **25.05.24:** - Rebase to Alpine 3.20.
* **20.03.24:** - Rebase to Alpine 3.19.
* **06.06.23:** - Rebase develop to Alpine 3.18.
* **19.12.22:** - Rebase develop branch to Alpine 3.17, migrate to s6v3.
* **20.02.22:** - Rebase develop branch to Alpine.
+2 -3
View File
@@ -6,7 +6,6 @@ custom_version_command: curl -sL https://radarr.servarr.com/v1/update/develop/ch
release_type: prerelease
release_tag: develop
ls_branch: develop
build_armhf: false
repo_vars:
- BUILD_VERSION_ARG = 'RADARR_RELEASE'
- LS_USER = 'linuxserver'
@@ -22,8 +21,8 @@ repo_vars:
- CI_PORT='7878'
- CI_SSL='false'
- CI_DELAY='120'
- CI_DOCKERENV='TZ=US/Pacific'
- CI_AUTH='user:password'
- CI_DOCKERENV=''
- CI_AUTH=''
- CI_WEBPATH='/system/status'
sponsor_links:
- { name: "Radarr", url: "https://opencollective.com/radarr" }
+415 -426
View File
@@ -1,426 +1,415 @@
NAME VERSION TYPE
BouncyCastle.Crypto 1.9.0.1 dotnet
Dapper 2.0.123.33578 dotnet
DryIoc netstandard2.1 5.3.4.0 dotnet
DryIoc.Microsoft.DependencyInjection netstandard2.0 6.1.1.0 dotnet
Dynamitey 2.0.9.136 dotnet
Equ 2.3.0 dotnet
FFMpegCore 4.0.0.0 dotnet
FluentMigrator 3.3.2.9 dotnet
FluentMigrator.Abstractions 3.3.2.9 dotnet
FluentMigrator.Extensions.Oracle 3.3.2.9 dotnet
FluentMigrator.Extensions.Postgres 3.3.2.9 dotnet
FluentMigrator.Extensions.SqlAnywhere 3.3.2.9 dotnet
FluentMigrator.Extensions.SqlServer 3.3.2.9 dotnet
FluentMigrator.Runner 3.3.2.9 dotnet
FluentMigrator.Runner.Core 3.3.2.9 dotnet
FluentMigrator.Runner.Db2 3.3.2.9 dotnet
FluentMigrator.Runner.Firebird 3.3.2.9 dotnet
FluentMigrator.Runner.Hana 3.3.2.9 dotnet
FluentMigrator.Runner.MySql 3.3.2.9 dotnet
FluentMigrator.Runner.Oracle 3.3.2.9 dotnet
FluentMigrator.Runner.Postgres 3.3.2.9 dotnet
FluentMigrator.Runner.Redshift 3.3.2.9 dotnet
FluentMigrator.Runner.SQLite 3.3.2.9 dotnet
FluentMigrator.Runner.SqlAnywhere 3.3.2.9 dotnet
FluentMigrator.Runner.SqlServer 3.3.2.9 dotnet
FluentMigrator.Runner.SqlServerCe 3.3.2.9 dotnet
FluentValidation 9.5.4.0 dotnet
ICSharpCode.SharpZipLib 1.3.3.11 dotnet
Ical.Net 1.0.0.0 dotnet
ImpromptuInterface 7.0.1.0 dotnet
Instances 1.0.0.0 dotnet
Json.NET .NET 6.0 13.0.2.27524 dotnet
MailKit 3.6.0.0 dotnet
Microsoft.AspNetCore 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Antiforgery 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Authentication 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Authentication.Abstractions 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Authentication.Cookies 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Authentication.Core 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Authentication.OAuth 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Authorization 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Authorization.Policy 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Components 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Components.Authorization 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Components.Forms 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Components.Server 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Components.Web 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Connections.Abstractions 6.0.1623.17406 dotnet
Microsoft.AspNetCore.CookiePolicy 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Cors 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Cryptography.Internal 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Cryptography.KeyDerivation 6.0.1623.17406 dotnet
Microsoft.AspNetCore.DataProtection 6.0.1623.17406 dotnet
Microsoft.AspNetCore.DataProtection.Abstractions 6.0.1623.17406 dotnet
Microsoft.AspNetCore.DataProtection.Extensions 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Diagnostics 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Diagnostics.Abstractions 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Diagnostics.HealthChecks 6.0.1623.17406 dotnet
Microsoft.AspNetCore.HostFiltering 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Hosting 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Hosting.Abstractions 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Hosting.Server.Abstractions 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Html.Abstractions 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Http 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Http.Abstractions 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Http.Connections 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Http.Connections.Common 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Http.Extensions 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Http.Features 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Http.Results 6.0.1623.17406 dotnet
Microsoft.AspNetCore.HttpLogging 6.0.1623.17406 dotnet
Microsoft.AspNetCore.HttpOverrides 6.0.1623.17406 dotnet
Microsoft.AspNetCore.HttpsPolicy 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Identity 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Localization 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Localization.Routing 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Metadata 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Mvc 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Mvc.Abstractions 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Mvc.ApiExplorer 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Mvc.Core 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Mvc.Cors 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Mvc.DataAnnotations 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Mvc.Formatters.Json 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Mvc.Formatters.Xml 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Mvc.Localization 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Mvc.Razor 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Mvc.RazorPages 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Mvc.TagHelpers 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Mvc.ViewFeatures 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Razor 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Razor.Runtime 6.0.1623.17406 dotnet
Microsoft.AspNetCore.ResponseCaching 6.0.1623.17406 dotnet
Microsoft.AspNetCore.ResponseCaching.Abstractions 6.0.1623.17406 dotnet
Microsoft.AspNetCore.ResponseCompression 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Rewrite 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Routing 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Routing.Abstractions 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Server.HttpSys 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Server.IIS 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Server.IISIntegration 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Server.Kestrel 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Server.Kestrel.Core 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Server.Kestrel.Transport.Quic 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets 6.0.1623.17406 dotnet
Microsoft.AspNetCore.Session 6.0.1623.17406 dotnet
Microsoft.AspNetCore.SignalR 6.0.1623.17406 dotnet
Microsoft.AspNetCore.SignalR.Common 6.0.1623.17406 dotnet
Microsoft.AspNetCore.SignalR.Core 6.0.1623.17406 dotnet
Microsoft.AspNetCore.SignalR.Protocols.Json 6.0.1623.17406 dotnet
Microsoft.AspNetCore.StaticFiles 6.0.1623.17406 dotnet
Microsoft.AspNetCore.WebSockets 6.0.1623.17406 dotnet
Microsoft.AspNetCore.WebUtilities 6.0.1623.17406 dotnet
Microsoft.CSharp 6.0.1623.17311 dotnet
Microsoft.Data.SqlClient 2.0.20168.4 dotnet
Microsoft.Extensions.Caching.Abstractions 6.0.21.52210 dotnet
Microsoft.Extensions.Caching.Memory 6.0.222.6406 dotnet
Microsoft.Extensions.Configuration 6.0.322.12309 dotnet
Microsoft.Extensions.Configuration.Abstractions 6.0.21.52210 dotnet
Microsoft.Extensions.Configuration.Binder 6.0.21.52210 dotnet
Microsoft.Extensions.Configuration.CommandLine 6.0.21.52210 dotnet
Microsoft.Extensions.Configuration.EnvironmentVariables 6.0.222.6406 dotnet
Microsoft.Extensions.Configuration.FileExtensions 6.0.21.52210 dotnet
Microsoft.Extensions.Configuration.Ini 6.0.21.52210 dotnet
Microsoft.Extensions.Configuration.Json 6.0.21.52210 dotnet
Microsoft.Extensions.Configuration.KeyPerFile 6.0.1623.17406 dotnet
Microsoft.Extensions.Configuration.UserSecrets 6.0.222.6406 dotnet
Microsoft.Extensions.Configuration.Xml 6.0.21.52210 dotnet
Microsoft.Extensions.DependencyInjection 6.0.1022.47605 dotnet
Microsoft.Extensions.DependencyInjection.Abstractions 6.0.21.52210 dotnet
Microsoft.Extensions.Diagnostics.HealthChecks 6.0.1623.17406 dotnet
Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions 6.0.1623.17406 dotnet
Microsoft.Extensions.Features 6.0.1623.17406 dotnet
Microsoft.Extensions.FileProviders.Abstractions 6.0.21.52210 dotnet
Microsoft.Extensions.FileProviders.Composite 6.0.21.52210 dotnet
Microsoft.Extensions.FileProviders.Embedded 6.0.1623.17406 dotnet
Microsoft.Extensions.FileProviders.Physical 6.0.21.52210 dotnet
Microsoft.Extensions.FileSystemGlobbing 6.0.21.52210 dotnet
Microsoft.Extensions.Hosting 6.0.222.6406 dotnet
Microsoft.Extensions.Hosting.Abstractions 6.0.21.52210 dotnet
Microsoft.Extensions.Hosting.WindowsServices 6.0.1022.47605 dotnet
Microsoft.Extensions.Http 6.0.21.52210 dotnet
Microsoft.Extensions.Identity.Core 6.0.1623.17406 dotnet
Microsoft.Extensions.Identity.Stores 6.0.1623.17406 dotnet
Microsoft.Extensions.Localization 6.0.1623.17406 dotnet
Microsoft.Extensions.Localization.Abstractions 6.0.1623.17406 dotnet
Microsoft.Extensions.Logging 6.0.21.52210 dotnet
Microsoft.Extensions.Logging.Abstractions 6.0.1122.52304 dotnet
Microsoft.Extensions.Logging.Configuration 6.0.21.52210 dotnet
Microsoft.Extensions.Logging.Console 6.0.21.52210 dotnet
Microsoft.Extensions.Logging.Debug 6.0.21.52210 dotnet
Microsoft.Extensions.Logging.EventLog 6.0.21.52210 dotnet
Microsoft.Extensions.Logging.EventSource 6.0.21.52210 dotnet
Microsoft.Extensions.Logging.TraceSource 6.0.21.52210 dotnet
Microsoft.Extensions.ObjectPool 6.0.1623.17406 dotnet
Microsoft.Extensions.Options 6.0.21.52210 dotnet
Microsoft.Extensions.Options.ConfigurationExtensions 6.0.21.52210 dotnet
Microsoft.Extensions.Options.DataAnnotations 6.0.21.52210 dotnet
Microsoft.Extensions.Primitives 6.0.21.52210 dotnet
Microsoft.Extensions.WebEncoders 6.0.1623.17406 dotnet
Microsoft.Identity.Client 4.21.1.0 dotnet
Microsoft.IdentityModel.JsonWebTokens 6.8.0.11012 dotnet
Microsoft.IdentityModel.Logging 6.8.0.11012 dotnet
Microsoft.IdentityModel.Protocols 6.8.0.11012 dotnet
Microsoft.IdentityModel.Protocols.OpenIdConnect 6.8.0.11012 dotnet
Microsoft.IdentityModel.Tokens 6.8.0.11012 dotnet
Microsoft.JSInterop 6.0.1623.17406 dotnet
Microsoft.Net.Http.Headers 6.0.1623.17406 dotnet
Microsoft.OpenApi 1.2.3.0 dotnet
Microsoft.VisualBasic 6.0.1623.17311 dotnet
Microsoft.VisualBasic.Core 11.100.1623.17311 dotnet
Microsoft.Win32.Primitives 6.0.1623.17311 dotnet
Microsoft.Win32.Registry 6.0.1623.17311 dotnet
Microsoft.Win32.SystemEvents 6.0.21.52210 dotnet
MimeKit 3.6.0.0 dotnet
Mono.Nat 3.0.1 dotnet
Mono.Posix.NETStandard.dll 1.0.0.0 dotnet
MonoTorrent 2.0.7 dotnet
NLog Syslog target 7.0.0.0 dotnet
NLog for NetStandard 2.0 5.2.0.1813 dotnet
NLog.Extensions.Logging for .NET 6 5.3.0.360 dotnet
Noda Time 3.0.0.0 dotnet
Npgsql 7.0.4.0 dotnet
Polly.Contrib.WaitAndRetry 1.1.1.0 dotnet
Radarr 4.7.5.7809 dotnet
Radarr.Api.V3 4.7.5.7809 dotnet
Radarr.Common 4.7.5.7809 dotnet
Radarr.Core 4.7.5.7809 dotnet
Radarr.Host 4.7.5.7809 dotnet
Radarr.Http 4.7.5.7809 dotnet
Radarr.Mono 4.7.5.7809 dotnet
Radarr.SignalR 4.7.5.7809 dotnet
ReusableTasks 2.0.0 dotnet
Sentry 3.23.1.0 dotnet
SixLabors.ImageSharp 3.0.1.0 dotnet
Swashbuckle.AspNetCore.Swagger 6.5.0.0 dotnet
Swashbuckle.AspNetCore.SwaggerGen 6.5.0.0 dotnet
System 6.0.1623.17311 dotnet
System.AppContext 6.0.1623.17311 dotnet
System.Buffers 6.0.1623.17311 dotnet
System.Collections 6.0.1623.17311 dotnet
System.Collections.Concurrent 6.0.1623.17311 dotnet
System.Collections.Immutable 6.0.1623.17311 dotnet
System.Collections.NonGeneric 6.0.1623.17311 dotnet
System.Collections.Specialized 6.0.1623.17311 dotnet
System.ComponentModel 6.0.1623.17311 dotnet
System.ComponentModel.Annotations 6.0.1623.17311 dotnet
System.ComponentModel.DataAnnotations 6.0.1623.17311 dotnet
System.ComponentModel.EventBasedAsync 6.0.1623.17311 dotnet
System.ComponentModel.Primitives 6.0.1623.17311 dotnet
System.ComponentModel.TypeConverter 6.0.1623.17311 dotnet
System.Configuration 6.0.1623.17311 dotnet
System.Configuration.ConfigurationManager 6.0.922.41905 dotnet
System.Console 6.0.1623.17311 dotnet
System.Core 6.0.1623.17311 dotnet
System.Data 6.0.1623.17311 dotnet
System.Data.Common 6.0.1623.17311 dotnet
System.Data.DataSetExtensions 6.0.1623.17311 dotnet
System.Data.SQLite Core 1.0.115.5 dotnet
System.Data.SqlServerCe 4.0.8876.1 dotnet
System.Diagnostics.Contracts 6.0.1623.17311 dotnet
System.Diagnostics.Debug 6.0.1623.17311 dotnet
System.Diagnostics.DiagnosticSource 6.0.1623.17311 dotnet
System.Diagnostics.EventLog 6.0.21.52210 dotnet
System.Diagnostics.FileVersionInfo 6.0.1623.17311 dotnet
System.Diagnostics.Process 6.0.1623.17311 dotnet
System.Diagnostics.StackTrace 6.0.1623.17311 dotnet
System.Diagnostics.TextWriterTraceListener 6.0.1623.17311 dotnet
System.Diagnostics.Tools 6.0.1623.17311 dotnet
System.Diagnostics.TraceSource 6.0.1623.17311 dotnet
System.Diagnostics.Tracing 6.0.1623.17311 dotnet
System.Drawing 6.0.1623.17311 dotnet
System.Drawing.Common 6.0.21.52210 dotnet
System.Drawing.Primitives 6.0.1623.17311 dotnet
System.Dynamic.Runtime 6.0.1623.17311 dotnet
System.Formats.Asn1 6.0.1623.17311 dotnet
System.Globalization 6.0.1623.17311 dotnet
System.Globalization.Calendars 6.0.1623.17311 dotnet
System.Globalization.Extensions 6.0.1623.17311 dotnet
System.IO 6.0.1623.17311 dotnet
System.IO.Compression 6.0.1623.17311 dotnet
System.IO.Compression.Brotli 6.0.1623.17311 dotnet
System.IO.Compression.FileSystem 6.0.1623.17311 dotnet
System.IO.Compression.ZipFile 6.0.1623.17311 dotnet
System.IO.FileSystem 6.0.1623.17311 dotnet
System.IO.FileSystem.AccessControl 6.0.1623.17311 dotnet
System.IO.FileSystem.DriveInfo 6.0.1623.17311 dotnet
System.IO.FileSystem.Primitives 6.0.1623.17311 dotnet
System.IO.FileSystem.Watcher 6.0.1623.17311 dotnet
System.IO.IsolatedStorage 6.0.1623.17311 dotnet
System.IO.MemoryMappedFiles 6.0.1623.17311 dotnet
System.IO.Pipelines 6.0.522.21309 dotnet
System.IO.Pipes 6.0.1623.17311 dotnet
System.IO.Pipes.AccessControl 6.0.1623.17311 dotnet
System.IO.UnmanagedMemoryStream 6.0.1623.17311 dotnet
System.IdentityModel.Tokens.Jwt 6.8.0.11012 dotnet
System.Linq 6.0.1623.17311 dotnet
System.Linq.Expressions 6.0.1623.17311 dotnet
System.Linq.Parallel 6.0.1623.17311 dotnet
System.Linq.Queryable 6.0.1623.17311 dotnet
System.Memory 6.0.1623.17311 dotnet
System.Net 6.0.1623.17311 dotnet
System.Net.Http 6.0.1623.17311 dotnet
System.Net.Http.Json 6.0.1623.17311 dotnet
System.Net.HttpListener 6.0.1623.17311 dotnet
System.Net.Mail 6.0.1623.17311 dotnet
System.Net.NameResolution 6.0.1623.17311 dotnet
System.Net.NetworkInformation 6.0.1623.17311 dotnet
System.Net.Ping 6.0.1623.17311 dotnet
System.Net.Primitives 6.0.1623.17311 dotnet
System.Net.Quic 6.0.1623.17311 dotnet
System.Net.Requests 6.0.1623.17311 dotnet
System.Net.Security 6.0.1623.17311 dotnet
System.Net.ServicePoint 6.0.1623.17311 dotnet
System.Net.Sockets 6.0.1623.17311 dotnet
System.Net.WebClient 6.0.1623.17311 dotnet
System.Net.WebHeaderCollection 6.0.1623.17311 dotnet
System.Net.WebProxy 6.0.1623.17311 dotnet
System.Net.WebSockets 6.0.1623.17311 dotnet
System.Net.WebSockets.Client 6.0.1623.17311 dotnet
System.Numerics 6.0.1623.17311 dotnet
System.Numerics.Vectors 6.0.1623.17311 dotnet
System.ObjectModel 6.0.1623.17311 dotnet
System.Private.CoreLib 6.0.1623.17311 dotnet
System.Private.DataContractSerialization 6.0.1623.17311 dotnet
System.Private.Uri 6.0.1623.17311 dotnet
System.Private.Xml 6.0.1623.17311 dotnet
System.Private.Xml.Linq 6.0.1623.17311 dotnet
System.Reflection 6.0.1623.17311 dotnet
System.Reflection.DispatchProxy 6.0.1623.17311 dotnet
System.Reflection.Emit 6.0.1623.17311 dotnet
System.Reflection.Emit.ILGeneration 6.0.1623.17311 dotnet
System.Reflection.Emit.Lightweight 6.0.1623.17311 dotnet
System.Reflection.Extensions 6.0.1623.17311 dotnet
System.Reflection.Metadata 6.0.1623.17311 dotnet
System.Reflection.Primitives 6.0.1623.17311 dotnet
System.Reflection.TypeExtensions 6.0.1623.17311 dotnet
System.Resources.Reader 6.0.1623.17311 dotnet
System.Resources.ResourceManager 6.0.1623.17311 dotnet
System.Resources.Writer 6.0.1623.17311 dotnet
System.Runtime 6.0.1623.17311 dotnet
System.Runtime.Caching 4.700.19.56404 dotnet
System.Runtime.CompilerServices.VisualC 6.0.1623.17311 dotnet
System.Runtime.Extensions 6.0.1623.17311 dotnet
System.Runtime.Handles 6.0.1623.17311 dotnet
System.Runtime.InteropServices 6.0.1623.17311 dotnet
System.Runtime.InteropServices.RuntimeInformation 6.0.1623.17311 dotnet
System.Runtime.Intrinsics 6.0.1623.17311 dotnet
System.Runtime.Loader 6.0.1623.17311 dotnet
System.Runtime.Numerics 6.0.1623.17311 dotnet
System.Runtime.Serialization 6.0.1623.17311 dotnet
System.Runtime.Serialization.Formatters 6.0.1623.17311 dotnet
System.Runtime.Serialization.Json 6.0.1623.17311 dotnet
System.Runtime.Serialization.Primitives 6.0.1623.17311 dotnet
System.Runtime.Serialization.Xml 6.0.1623.17311 dotnet
System.Security 6.0.1623.17311 dotnet
System.Security.AccessControl 6.0.1623.17311 dotnet
System.Security.Claims 6.0.1623.17311 dotnet
System.Security.Cryptography.Algorithms 6.0.1623.17311 dotnet
System.Security.Cryptography.Cng 6.0.1623.17311 dotnet
System.Security.Cryptography.Csp 6.0.1623.17311 dotnet
System.Security.Cryptography.Encoding 6.0.1623.17311 dotnet
System.Security.Cryptography.OpenSsl 6.0.1623.17311 dotnet
System.Security.Cryptography.Pkcs 6.0.1423.7309 dotnet
System.Security.Cryptography.Primitives 6.0.1623.17311 dotnet
System.Security.Cryptography.ProtectedData 6.0.21.52210 dotnet
System.Security.Cryptography.X509Certificates 6.0.1623.17311 dotnet
System.Security.Cryptography.Xml 6.0.822.36306 dotnet
System.Security.Permissions 6.0.21.52210 dotnet
System.Security.Principal 6.0.1623.17311 dotnet
System.Security.Principal.Windows 6.0.1623.17311 dotnet
System.Security.SecureString 6.0.1623.17311 dotnet
System.ServiceModel.Web 6.0.1623.17311 dotnet
System.ServiceProcess 6.0.1623.17311 dotnet
System.ServiceProcess.ServiceController 6.0.21.52210 dotnet
System.Text.Encoding 6.0.1623.17311 dotnet
System.Text.Encoding.CodePages 6.0.1623.17311 dotnet
System.Text.Encoding.Extensions 6.0.1623.17311 dotnet
System.Text.Encodings.Web 6.0.1623.17311 dotnet
System.Text.Json 6.0.1623.17311 dotnet
System.Text.RegularExpressions 6.0.1623.17311 dotnet
System.Threading 6.0.1623.17311 dotnet
System.Threading.Channels 6.0.1623.17311 dotnet
System.Threading.Overlapped 6.0.1623.17311 dotnet
System.Threading.Tasks 6.0.1623.17311 dotnet
System.Threading.Tasks.Dataflow 6.0.1623.17311 dotnet
System.Threading.Tasks.Extensions 6.0.1623.17311 dotnet
System.Threading.Tasks.Parallel 6.0.1623.17311 dotnet
System.Threading.Thread 6.0.1623.17311 dotnet
System.Threading.ThreadPool 6.0.1623.17311 dotnet
System.Threading.Timer 6.0.1623.17311 dotnet
System.Transactions 6.0.1623.17311 dotnet
System.Transactions.Local 6.0.1623.17311 dotnet
System.ValueTuple 6.0.1623.17311 dotnet
System.Web 6.0.1623.17311 dotnet
System.Web.HttpUtility 6.0.1623.17311 dotnet
System.Windows 6.0.1623.17311 dotnet
System.Windows.Extensions 6.0.21.52210 dotnet
System.Xml 6.0.1623.17311 dotnet
System.Xml.Linq 6.0.1623.17311 dotnet
System.Xml.ReaderWriter 6.0.1623.17311 dotnet
System.Xml.Serialization 6.0.1623.17311 dotnet
System.Xml.XDocument 6.0.1623.17311 dotnet
System.Xml.XPath 6.0.1623.17311 dotnet
System.Xml.XPath.XDocument 6.0.1623.17311 dotnet
System.Xml.XmlDocument 6.0.1623.17311 dotnet
System.Xml.XmlSerializer 6.0.1623.17311 dotnet
WindowsBase 6.0.1623.17311 dotnet
alpine-baselayout 3.4.3-r1 apk
alpine-baselayout-data 3.4.3-r1 apk
alpine-keys 2.4-r1 apk
alpine-release 3.18.3-r0 apk
apk-tools 2.14.0-r2 apk
bash 5.2.15-r5 apk
brotli-libs 1.0.9-r14 apk
busybox 1.36.1 binary
busybox 1.36.1-r2 apk
busybox-binsh 1.36.1-r2 apk
ca-certificates 20230506-r0 apk
ca-certificates-bundle 20230506-r0 apk
coreutils 9.3-r1 apk
curl 8.2.1-r0 apk
icu-data-en 73.2-r2 apk
icu-libs 73.2-r2 apk
jq 1.6-r3 apk
libacl 2.3.1-r3 apk
libattr 2.5.1-r4 apk
libbsd 0.11.7-r1 apk
libc-utils 0.7.2-r5 apk
libcrypto3 3.1.2-r0 apk
libcurl 8.2.1-r0 apk
libgcc 12.2.1_git20220924-r10 apk
libgcrypt 1.10.2-r1 apk
libgpg-error 1.47-r1 apk
libidn2 2.3.4-r1 apk
libintl 0.21.1-r7 apk
libmd 1.0.4-r2 apk
libncursesw 6.4_p20230506-r0 apk
libproc2 4.0.3-r1 apk
libssl3 3.1.2-r0 apk
libstdc++ 12.2.1_git20220924-r10 apk
libunistring 1.1-r1 apk
libxml2 2.11.4-r0 apk
libxslt 1.1.38-r0 apk
linux-pam 1.5.2-r10 apk
mscorlib 6.0.1623.17311 dotnet
musl 1.2.4-r1 apk
musl-utils 1.2.4-r1 apk
ncurses-terminfo-base 6.4_p20230506-r0 apk
netcat-openbsd 1.219-r1 apk
netstandard 6.0.1623.17311 dotnet
nghttp2-libs 1.55.1-r0 apk
oniguruma 6.9.8-r1 apk
procps-ng 4.0.3-r1 apk
readline 8.2.1-r1 apk
scanelf 1.3.7-r1 apk
shadow 4.13-r4 apk
skalibs 2.13.1.1-r1 apk
sqlite-libs 3.41.2-r2 apk
ssl_client 1.36.1-r2 apk
tzdata 2023c-r1 apk
utmps-libs 0.1.2.1-r1 apk
xmlstarlet 1.6.1-r2 apk
xz-libs 5.4.3-r0 apk
zlib 1.2.13-r1 apk
NAME VERSION TYPE
Bouncy Castle for .NET (netstandard2.0) 1.9.0.1 dotnet
Dapper 2.0.151.35995 dotnet
Diacritical 1.0.4.0 dotnet
DryIoc 5.4.3.0 dotnet
DryIoc.Microsoft.DependencyInjection net6.0 6.2.0.0 dotnet
Dynamitey 2.0.9.136 dotnet
Equ 2.3.0 dotnet
FFMpegCore 4.0.0.0 dotnet
FluentMigrator 3.3.2.9 dotnet (+19 duplicates)
FluentValidation 9.5.4.0 dotnet
ICSharpCode.SharpZipLib 1.4.2.13 dotnet
IPAddressRange 6.0.0.0 dotnet
Ical.Net 1.0.0.0 dotnet
ImpromptuInterface 7.0.1.0 dotnet
Instances 1.0.0.0 dotnet
Json.NET 13.0.3.27908 dotnet
MailKit 3.6.0.0 dotnet
Microsoft.AspNetCore 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Antiforgery 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Authentication 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Authentication.Abstractions 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Authentication.Cookies 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Authentication.Core 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Authentication.OAuth 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Authorization 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Authorization.Policy 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Components 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Components.Authorization 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Components.Forms 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Components.Server 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Components.Web 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Connections.Abstractions 6.0.3224.31405 dotnet
Microsoft.AspNetCore.CookiePolicy 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Cors 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Cryptography.Internal 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Cryptography.KeyDerivation 6.0.3224.31405 dotnet
Microsoft.AspNetCore.DataProtection 6.0.3224.31405 dotnet
Microsoft.AspNetCore.DataProtection.Abstractions 6.0.3224.31405 dotnet
Microsoft.AspNetCore.DataProtection.Extensions 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Diagnostics 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Diagnostics.Abstractions 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Diagnostics.HealthChecks 6.0.3224.31405 dotnet
Microsoft.AspNetCore.HostFiltering 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Hosting 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Hosting.Abstractions 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Hosting.Server.Abstractions 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Html.Abstractions 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Http 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Http.Abstractions 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Http.Connections 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Http.Connections.Common 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Http.Extensions 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Http.Features 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Http.Results 6.0.3224.31405 dotnet
Microsoft.AspNetCore.HttpLogging 6.0.3224.31405 dotnet
Microsoft.AspNetCore.HttpOverrides 6.0.3224.31405 dotnet
Microsoft.AspNetCore.HttpsPolicy 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Identity 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Localization 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Localization.Routing 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Metadata 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Mvc 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Mvc.Abstractions 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Mvc.ApiExplorer 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Mvc.Core 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Mvc.Cors 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Mvc.DataAnnotations 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Mvc.Formatters.Json 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Mvc.Formatters.Xml 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Mvc.Localization 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Mvc.Razor 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Mvc.RazorPages 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Mvc.TagHelpers 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Mvc.ViewFeatures 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Razor 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Razor.Runtime 6.0.3224.31405 dotnet
Microsoft.AspNetCore.ResponseCaching 6.0.3224.31405 dotnet
Microsoft.AspNetCore.ResponseCaching.Abstractions 6.0.3224.31405 dotnet
Microsoft.AspNetCore.ResponseCompression 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Rewrite 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Routing 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Routing.Abstractions 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Server.HttpSys 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Server.IIS 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Server.IISIntegration 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Server.Kestrel 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Server.Kestrel.Core 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Server.Kestrel.Transport.Quic 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets 6.0.3224.31405 dotnet
Microsoft.AspNetCore.Session 6.0.3224.31405 dotnet
Microsoft.AspNetCore.SignalR 6.0.3224.31405 dotnet
Microsoft.AspNetCore.SignalR.Common 6.0.3224.31405 dotnet
Microsoft.AspNetCore.SignalR.Core 6.0.3224.31405 dotnet
Microsoft.AspNetCore.SignalR.Protocols.Json 6.0.3224.31405 dotnet
Microsoft.AspNetCore.StaticFiles 6.0.3224.31405 dotnet
Microsoft.AspNetCore.WebSockets 6.0.3224.31405 dotnet
Microsoft.AspNetCore.WebUtilities 6.0.3224.31405 dotnet
Microsoft.Bcl.AsyncInterfaces 6.0.21.52210 dotnet
Microsoft.Bcl.TimeProvider 8.0.23.53103 dotnet
Microsoft.CSharp 6.0.3224.31407 dotnet
Microsoft.Data.SqlClient 2.1.2+2a61e8301e9d21ada2338a9279cf27653e781757 dotnet
Microsoft.Extensions.Caching.Abstractions 6.0.21.52210 dotnet
Microsoft.Extensions.Caching.Memory 6.0.222.6406 dotnet
Microsoft.Extensions.Configuration 6.0.322.12309 dotnet
Microsoft.Extensions.Configuration.Abstractions 6.0.21.52210 dotnet
Microsoft.Extensions.Configuration.Binder 6.0.21.52210 dotnet
Microsoft.Extensions.Configuration.CommandLine 6.0.21.52210 dotnet
Microsoft.Extensions.Configuration.EnvironmentVariables 6.0.222.6406 dotnet
Microsoft.Extensions.Configuration.FileExtensions 6.0.21.52210 dotnet
Microsoft.Extensions.Configuration.Ini 6.0.21.52210 dotnet
Microsoft.Extensions.Configuration.Json 6.0.21.52210 dotnet
Microsoft.Extensions.Configuration.KeyPerFile 6.0.3224.31405 dotnet
Microsoft.Extensions.Configuration.UserSecrets 6.0.222.6406 dotnet
Microsoft.Extensions.Configuration.Xml 6.0.21.52210 dotnet
Microsoft.Extensions.DependencyInjection 6.0.1022.47605 dotnet
Microsoft.Extensions.DependencyInjection.Abstractions 7.0.22.51805 dotnet
Microsoft.Extensions.Diagnostics.HealthChecks 6.0.3224.31405 dotnet
Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions 6.0.3224.31405 dotnet
Microsoft.Extensions.Features 6.0.3224.31405 dotnet
Microsoft.Extensions.FileProviders.Abstractions 6.0.21.52210 dotnet
Microsoft.Extensions.FileProviders.Composite 6.0.21.52210 dotnet
Microsoft.Extensions.FileProviders.Embedded 6.0.3224.31405 dotnet
Microsoft.Extensions.FileProviders.Physical 6.0.21.52210 dotnet
Microsoft.Extensions.FileSystemGlobbing 6.0.21.52210 dotnet
Microsoft.Extensions.Hosting 6.0.222.6406 dotnet
Microsoft.Extensions.Hosting.Abstractions 6.0.21.52210 dotnet
Microsoft.Extensions.Hosting.WindowsServices 6.0.1823.26907 dotnet
Microsoft.Extensions.Http 6.0.21.52210 dotnet
Microsoft.Extensions.Identity.Core 6.0.3224.31405 dotnet
Microsoft.Extensions.Identity.Stores 6.0.3224.31405 dotnet
Microsoft.Extensions.Localization 6.0.3224.31405 dotnet
Microsoft.Extensions.Localization.Abstractions 6.0.3224.31405 dotnet
Microsoft.Extensions.Logging 6.0.21.52210 dotnet
Microsoft.Extensions.Logging.Abstractions 6.0.1823.26907 dotnet
Microsoft.Extensions.Logging.Configuration 6.0.21.52210 dotnet
Microsoft.Extensions.Logging.Console 6.0.21.52210 dotnet
Microsoft.Extensions.Logging.Debug 6.0.21.52210 dotnet
Microsoft.Extensions.Logging.EventLog 6.0.21.52210 dotnet
Microsoft.Extensions.Logging.EventSource 6.0.21.52210 dotnet
Microsoft.Extensions.Logging.TraceSource 6.0.21.52210 dotnet
Microsoft.Extensions.ObjectPool 6.0.3224.31405 dotnet
Microsoft.Extensions.Options 6.0.21.52210 dotnet
Microsoft.Extensions.Options.ConfigurationExtensions 6.0.21.52210 dotnet
Microsoft.Extensions.Options.DataAnnotations 6.0.21.52210 dotnet
Microsoft.Extensions.Primitives 6.0.21.52210 dotnet
Microsoft.Extensions.WebEncoders 6.0.3224.31405 dotnet
Microsoft.Identity.Client 4.21.1.0 dotnet
Microsoft.IdentityModel.JsonWebTokens 6.8.0.11012235604.824068adaeb7b158df2b36d8787f689646e715e0 dotnet
Microsoft.IdentityModel.Logging 6.8.0.11012235604.824068adaeb7b158df2b36d8787f689646e715e0 dotnet
Microsoft.IdentityModel.Protocols 6.8.0.11012235604.824068adaeb7b158df2b36d8787f689646e715e0 dotnet
Microsoft.IdentityModel.Protocols.OpenIdConnect 6.8.0.11012235604.824068adaeb7b158df2b36d8787f689646e715e0 dotnet
Microsoft.IdentityModel.Tokens 6.8.0.11012235604.824068adaeb7b158df2b36d8787f689646e715e0 dotnet
Microsoft.JSInterop 6.0.3224.31405 dotnet
Microsoft.Net.Http.Headers 6.0.3224.31405 dotnet
Microsoft.OpenApi 1.6.14.0 dotnet
Microsoft.VisualBasic 6.0.3224.31407 dotnet
Microsoft.VisualBasic.Core 11.100.3224.31407 dotnet
Microsoft.Win32.Primitives 6.0.3224.31407 dotnet
Microsoft.Win32.Registry 6.0.3224.31407 dotnet
Microsoft.Win32.SystemEvents 6.0.21.52210 dotnet
MimeKit 3.6.0.0 dotnet
Mono.Nat 3.0.1 dotnet
Mono.Posix.NETStandard 1.0.0.0 dotnet
MonoTorrent 2.0.7 dotnet
NLog v5.3.3 5.3.3.2683 dotnet
NLog.Extensions.Logging v5.3.12 5.3.12.562 dotnet
NLog.Layouts.ClefJsonLayout 1.0.0.0 dotnet
NLog.Targets.Syslog 7.0.0.0 dotnet
NodaTime 3.0.0.0 dotnet
Npgsql 7.0.7.0 dotnet
Polly 8.4.1.3582 dotnet
Polly.Contrib.WaitAndRetry 1.1.1.0+7596d2dacf22d88bbd814bc49c28424fb6e921e9 dotnet
Polly.Core 8.4.1.3582 dotnet
Radarr 5.10.4.9218 dotnet (+7 duplicates)
ReusableTasks 2.0.0 dotnet
Sentry 4.0.2.0 dotnet
SixLabors.ImageSharp 3.1.5.0 dotnet
Swashbuckle.AspNetCore.Annotations 6.6.2.401 dotnet
Swashbuckle.AspNetCore.Swagger 6.6.2.401 dotnet
Swashbuckle.AspNetCore.SwaggerGen 6.6.2.401 dotnet
System 6.0.3224.31407 dotnet
System.AppContext 6.0.3224.31407 dotnet
System.Buffers 6.0.3224.31407 dotnet
System.Collections 6.0.3224.31407 dotnet
System.Collections.Concurrent 6.0.3224.31407 dotnet
System.Collections.Immutable 6.0.3224.31407 dotnet
System.Collections.NonGeneric 6.0.3224.31407 dotnet
System.Collections.Specialized 6.0.3224.31407 dotnet
System.ComponentModel 6.0.3224.31407 dotnet
System.ComponentModel.Annotations 6.0.3224.31407 dotnet
System.ComponentModel.DataAnnotations 6.0.3224.31407 dotnet
System.ComponentModel.EventBasedAsync 6.0.3224.31407 dotnet
System.ComponentModel.Primitives 6.0.3224.31407 dotnet
System.ComponentModel.TypeConverter 6.0.3224.31407 dotnet
System.Configuration 6.0.3224.31407 dotnet
System.Configuration.ConfigurationManager 6.0.922.41905 dotnet
System.Console 6.0.3224.31407 dotnet
System.Core 6.0.3224.31407 dotnet
System.Data 6.0.3224.31407 dotnet
System.Data.Common 6.0.3224.31407 dotnet
System.Data.DataSetExtensions 6.0.3224.31407 dotnet
System.Data.SQLite 1.0.115.5 dotnet
System.Data.SqlServerCe 4.0.8876.1 dotnet
System.Diagnostics.Contracts 6.0.3224.31407 dotnet
System.Diagnostics.Debug 6.0.3224.31407 dotnet
System.Diagnostics.DiagnosticSource 6.0.3224.31407 dotnet
System.Diagnostics.EventLog 6.0.21.52210 dotnet
System.Diagnostics.FileVersionInfo 6.0.3224.31407 dotnet
System.Diagnostics.Process 6.0.3224.31407 dotnet
System.Diagnostics.StackTrace 6.0.3224.31407 dotnet
System.Diagnostics.TextWriterTraceListener 6.0.3224.31407 dotnet
System.Diagnostics.Tools 6.0.3224.31407 dotnet
System.Diagnostics.TraceSource 6.0.3224.31407 dotnet
System.Diagnostics.Tracing 6.0.3224.31407 dotnet
System.Drawing 6.0.3224.31407 dotnet
System.Drawing.Common 6.0.21.52210 dotnet
System.Drawing.Primitives 6.0.3224.31407 dotnet
System.Dynamic.Runtime 6.0.3224.31407 dotnet
System.Formats.Asn1 6.0.3224.31407 dotnet
System.Globalization 6.0.3224.31407 dotnet
System.Globalization.Calendars 6.0.3224.31407 dotnet
System.Globalization.Extensions 6.0.3224.31407 dotnet
System.IO 6.0.3224.31407 dotnet
System.IO.Compression 6.0.3224.31407 dotnet
System.IO.Compression.Brotli 6.0.3224.31407 dotnet
System.IO.Compression.FileSystem 6.0.3224.31407 dotnet
System.IO.Compression.ZipFile 6.0.3224.31407 dotnet
System.IO.FileSystem 6.0.3224.31407 dotnet
System.IO.FileSystem.AccessControl 6.0.3224.31407 dotnet
System.IO.FileSystem.DriveInfo 6.0.3224.31407 dotnet
System.IO.FileSystem.Primitives 6.0.3224.31407 dotnet
System.IO.FileSystem.Watcher 6.0.3224.31407 dotnet
System.IO.IsolatedStorage 6.0.3224.31407 dotnet
System.IO.MemoryMappedFiles 6.0.3224.31407 dotnet
System.IO.Pipelines 6.0.522.21309 dotnet
System.IO.Pipes 6.0.3224.31407 dotnet
System.IO.Pipes.AccessControl 6.0.3224.31407 dotnet
System.IO.UnmanagedMemoryStream 6.0.3224.31407 dotnet
System.IdentityModel.Tokens.Jwt 6.8.0.11012235604.824068adaeb7b158df2b36d8787f689646e715e0 dotnet
System.Linq 6.0.3224.31407 dotnet
System.Linq.Expressions 6.0.3224.31407 dotnet
System.Linq.Parallel 6.0.3224.31407 dotnet
System.Linq.Queryable 6.0.3224.31407 dotnet
System.Memory 6.0.3224.31407 dotnet
System.Net 6.0.3224.31407 dotnet
System.Net.Http 6.0.3224.31407 dotnet
System.Net.Http.Json 6.0.3224.31407 dotnet
System.Net.HttpListener 6.0.3224.31407 dotnet
System.Net.Mail 6.0.3224.31407 dotnet
System.Net.NameResolution 6.0.3224.31407 dotnet
System.Net.NetworkInformation 6.0.3224.31407 dotnet
System.Net.Ping 6.0.3224.31407 dotnet
System.Net.Primitives 6.0.3224.31407 dotnet
System.Net.Quic 6.0.3224.31407 dotnet
System.Net.Requests 6.0.3224.31407 dotnet
System.Net.Security 6.0.3224.31407 dotnet
System.Net.ServicePoint 6.0.3224.31407 dotnet
System.Net.Sockets 6.0.3224.31407 dotnet
System.Net.WebClient 6.0.3224.31407 dotnet
System.Net.WebHeaderCollection 6.0.3224.31407 dotnet
System.Net.WebProxy 6.0.3224.31407 dotnet
System.Net.WebSockets 6.0.3224.31407 dotnet
System.Net.WebSockets.Client 6.0.3224.31407 dotnet
System.Numerics 6.0.3224.31407 dotnet
System.Numerics.Vectors 6.0.3224.31407 dotnet
System.ObjectModel 6.0.3224.31407 dotnet
System.Private.CoreLib 6.0.3224.31407 dotnet
System.Private.DataContractSerialization 6.0.3224.31407 dotnet
System.Private.Uri 6.0.3224.31407 dotnet
System.Private.Xml 6.0.3224.31407 dotnet
System.Private.Xml.Linq 6.0.3224.31407 dotnet
System.Reflection 6.0.3224.31407 dotnet
System.Reflection.DispatchProxy 6.0.3224.31407 dotnet
System.Reflection.Emit 6.0.3224.31407 dotnet
System.Reflection.Emit.ILGeneration 6.0.3224.31407 dotnet
System.Reflection.Emit.Lightweight 6.0.3224.31407 dotnet
System.Reflection.Extensions 6.0.3224.31407 dotnet
System.Reflection.Metadata 6.0.3224.31407 dotnet
System.Reflection.Primitives 6.0.3224.31407 dotnet
System.Reflection.TypeExtensions 6.0.3224.31407 dotnet
System.Resources.Reader 6.0.3224.31407 dotnet
System.Resources.ResourceManager 6.0.3224.31407 dotnet
System.Resources.Writer 6.0.3224.31407 dotnet
System.Runtime 6.0.3224.31407 dotnet
System.Runtime.Caching 4.700.19.56404 dotnet
System.Runtime.CompilerServices.VisualC 6.0.3224.31407 dotnet
System.Runtime.Extensions 6.0.3224.31407 dotnet
System.Runtime.Handles 6.0.3224.31407 dotnet
System.Runtime.InteropServices 6.0.3224.31407 dotnet
System.Runtime.InteropServices.RuntimeInformation 6.0.3224.31407 dotnet
System.Runtime.Intrinsics 6.0.3224.31407 dotnet
System.Runtime.Loader 6.0.3224.31407 dotnet
System.Runtime.Numerics 6.0.3224.31407 dotnet
System.Runtime.Serialization 6.0.3224.31407 dotnet
System.Runtime.Serialization.Formatters 6.0.3224.31407 dotnet
System.Runtime.Serialization.Json 6.0.3224.31407 dotnet
System.Runtime.Serialization.Primitives 6.0.3224.31407 dotnet
System.Runtime.Serialization.Xml 6.0.3224.31407 dotnet
System.Security 6.0.3224.31407 dotnet
System.Security.AccessControl 6.0.3224.31407 dotnet
System.Security.Claims 6.0.3224.31407 dotnet
System.Security.Cryptography.Algorithms 6.0.3224.31407 dotnet
System.Security.Cryptography.Cng 6.0.3224.31407 dotnet
System.Security.Cryptography.Csp 6.0.3224.31407 dotnet
System.Security.Cryptography.Encoding 6.0.3224.31407 dotnet
System.Security.Cryptography.OpenSsl 6.0.3224.31407 dotnet
System.Security.Cryptography.Pkcs 6.0.1823.26907 dotnet
System.Security.Cryptography.Primitives 6.0.3224.31407 dotnet
System.Security.Cryptography.ProtectedData 6.0.21.52210 dotnet
System.Security.Cryptography.X509Certificates 6.0.3224.31407 dotnet
System.Security.Cryptography.Xml 6.0.822.36306 dotnet
System.Security.Permissions 6.0.21.52210 dotnet
System.Security.Principal 6.0.3224.31407 dotnet
System.Security.Principal.Windows 6.0.3224.31407 dotnet
System.Security.SecureString 6.0.3224.31407 dotnet
System.ServiceModel.Web 6.0.3224.31407 dotnet
System.ServiceProcess 6.0.3224.31407 dotnet
System.ServiceProcess.ServiceController 6.0.1823.26907 dotnet
System.Text.Encoding 6.0.3224.31407 dotnet
System.Text.Encoding.CodePages 6.0.3224.31407 dotnet
System.Text.Encoding.Extensions 6.0.3224.31407 dotnet
System.Text.Encodings.Web 6.0.3224.31407 dotnet
System.Text.Json 6.0.3224.31407 dotnet
System.Text.RegularExpressions 6.0.3224.31407 dotnet
System.Threading 6.0.3224.31407 dotnet
System.Threading.Channels 6.0.3224.31407 dotnet
System.Threading.Overlapped 6.0.3224.31407 dotnet
System.Threading.Tasks 6.0.3224.31407 dotnet
System.Threading.Tasks.Dataflow 6.0.3224.31407 dotnet
System.Threading.Tasks.Extensions 6.0.3224.31407 dotnet
System.Threading.Tasks.Parallel 6.0.3224.31407 dotnet
System.Threading.Thread 6.0.3224.31407 dotnet
System.Threading.ThreadPool 6.0.3224.31407 dotnet
System.Threading.Timer 6.0.3224.31407 dotnet
System.Transactions 6.0.3224.31407 dotnet
System.Transactions.Local 6.0.3224.31407 dotnet
System.ValueTuple 6.0.3224.31407 dotnet
System.Web 6.0.3224.31407 dotnet
System.Web.HttpUtility 6.0.3224.31407 dotnet
System.Windows 6.0.3224.31407 dotnet
System.Windows.Extensions 6.0.21.52210 dotnet
System.Xml 6.0.3224.31407 dotnet
System.Xml.Linq 6.0.3224.31407 dotnet
System.Xml.ReaderWriter 6.0.3224.31407 dotnet
System.Xml.Serialization 6.0.3224.31407 dotnet
System.Xml.XDocument 6.0.3224.31407 dotnet
System.Xml.XPath 6.0.3224.31407 dotnet
System.Xml.XPath.XDocument 6.0.3224.31407 dotnet
System.Xml.XmlDocument 6.0.3224.31407 dotnet
System.Xml.XmlSerializer 6.0.3224.31407 dotnet
WindowsBase 6.0.3224.31407 dotnet
alpine-baselayout 3.6.5-r0 apk
alpine-baselayout-data 3.6.5-r0 apk
alpine-keys 2.4-r1 apk
alpine-release 3.20.3-r0 apk
apk-tools 2.14.4-r0 apk
bash 5.2.26-r0 apk
brotli-libs 1.1.0-r2 apk
busybox 1.36.1-r29 apk
busybox-binsh 1.36.1-r29 apk
c-ares 1.28.1-r0 apk
ca-certificates 20240705-r0 apk
ca-certificates-bundle 20240705-r0 apk
catatonit 0.2.0-r0 apk
coreutils 9.5-r1 apk
coreutils-env 9.5-r1 apk
coreutils-fmt 9.5-r1 apk
coreutils-sha512sum 9.5-r1 apk
curl 8.9.1-r2 apk
findutils 4.9.0-r5 apk
icu-data-en 74.2-r0 apk
icu-libs 74.2-r0 apk
jq 1.7.1-r0 apk
libacl 2.3.2-r0 apk
libattr 2.5.2-r0 apk
libbsd 0.12.2-r0 apk
libcrypto3 3.3.2-r0 apk
libcurl 8.9.1-r2 apk
libgcc 13.2.1_git20240309-r0 apk
libgcrypt 1.10.3-r0 apk
libgpg-error 1.49-r0 apk
libidn2 2.3.7-r0 apk
libintl 0.22.5-r0 apk
libmd 1.1.0-r0 apk
libncursesw 6.4_p20240420-r1 apk
libproc2 4.0.4-r0 apk
libpsl 0.21.5-r1 apk
libssl3 3.3.2-r0 apk
libstdc++ 13.2.1_git20240309-r0 apk
libunistring 1.2-r0 apk
libxml2 2.12.7-r0 apk
libxslt 1.1.39-r1 apk
linux-pam 1.6.0-r0 apk
mscorlib 6.0.3224.31407 dotnet
musl 1.2.5-r0 apk
musl-utils 1.2.5-r0 apk
ncurses-terminfo-base 6.4_p20240420-r1 apk
netcat-openbsd 1.226-r0 apk
netstandard 6.0.3224.31407 dotnet
nghttp2-libs 1.62.1-r0 apk
oniguruma 6.9.9-r0 apk
procps-ng 4.0.4-r0 apk
readline 8.2.10-r0 apk
scanelf 1.3.7-r2 apk
shadow 4.15.1-r0 apk
skalibs 2.14.1.1-r0 apk
sqlite-libs 3.45.3-r1 apk
ssl_client 1.36.1-r29 apk
tzdata 2024b-r0 apk
utmps-libs 0.1.2.2-r1 apk
xmlstarlet 1.6.1-r2 apk
xz-libs 5.6.2-r0 apk
zlib 1.3.1-r1 apk
zstd-libs 1.5.6-r0 apk
+11 -12
View File
@@ -24,21 +24,18 @@ development_versions_items:
param_container_name: "{{ project_name }}"
param_usage_include_vols: true
param_volumes:
- { vol_path: "/config", vol_host_path: "/path/to/data", desc: "Database and Radarr configs" }
- { vol_path: "/config", vol_host_path: "/path/to/{{ project_name }}/data", desc: "Database and Radarr configs" }
opt_param_usage_include_vols: true
opt_param_volumes:
- { vol_path: "/movies", vol_host_path: "/path/to/movies", desc: "Location of Movie library on disk (See note in Application setup)" }
- { vol_path: "/downloads", vol_host_path: "/path/to/downloadclient-downloads", desc: "Location of download managers output directory (See note in Application setup)" }
- { vol_path: "/downloads", vol_host_path: "/path/to/download-client-downloads", desc: "Location of download managers output directory (See note in Application setup)" }
param_usage_include_ports: true
param_ports:
- { external_port: "7878", internal_port: "7878", port_desc: "The port for the Radarr webinterface" }
param_usage_include_env: true
param_env_vars:
- { env_var: "TZ", env_value: "Europe/London", desc: "Specify a timezone to use EG Europe/London, this is required for Radarr"}
# optional env variables
opt_param_usage_include_env: false
- { external_port: "7878", internal_port: "7878", port_desc: "The port for the Radarr web UI" }
readonly_supported: true
# application setup block
app_setup_block_enabled: true
@@ -48,13 +45,15 @@ app_setup_block: |
### 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 dont understand, or dont want hardlinks/atomic moves.
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.
# changelog
# changelog
changelogs:
- { date: "25.05.24:", desc: "Rebase to Alpine 3.20." }
- { date: "20.03.24:", desc: "Rebase to Alpine 3.19." }
- { date: "06.06.23:", desc: "Rebase develop to Alpine 3.18." }
- { date: "19.12.22:", desc: "Rebase develop branch to Alpine 3.17, migrate to s6v3." }
- { date: "20.02.22:", desc: "Rebase develop branch to Alpine." }
@@ -1,6 +1,9 @@
#!/usr/bin/with-contenv bash
# shellcheck shell=bash
mkdir -p /run/radarr-temp
# permissions
lsiown -R abc:abc \
/config
/config \
/run/radarr-temp
@@ -1,6 +1,8 @@
#!/bin/bash
PORT=$(xmlstarlet sel -T -t -v /Config/Port /config/config.xml)
if [[ -f /config/config.xml ]]; then
PORT=$(xmlstarlet sel -T -t -v /Config/Port /config/config.xml)
fi
if [[ $(curl -sL "http://localhost:${PORT:-7878}/ping" | jq -r '.status' 2>/dev/null) = "OK" ]]; then
exit 0