Compare commits

..

13 Commits

Author SHA1 Message Date
Roxedus
564ad4615e
Merge pull request #50 from linuxserver/main-deprecate 2025-06-27 15:16:27 +02:00
Roxedus
43063537d0
Deprecate image 2025-06-27 02:16:55 +02:00
Roxedus
1de3347fac
Merge pull request #48 from linuxserver/main-media-blurb 2025-04-16 01:21:03 +02:00
Roxedus
a04c088a98
Use media blurb 2025-03-16 16:10:28 +01:00
Roxedus
2c1e8bce0f
Merge pull request #45 from linuxserver/update-main 2024-12-26 00:52:57 +01:00
thespad
5b01bec324
Restore tag 2024-12-25 23:48:14 +00:00
thespad
a91e4af84c
Update readme, templates, and workflows 2024-12-23 18:03:13 +00:00
Adam
7f7eb64c28
Merge pull request #33 from linuxserver/main-3.19
Rebase to 3.19 (main)
2024-03-21 14:07:29 +00:00
TheSpad
da6367aaeb
Rebase to 3.19 2024-03-20 18:17:38 +00:00
Adam
27feb7d884
Merge pull request #28 from linuxserver/main-3.18 2023-06-14 09:01:49 +01:00
TheSpad
25f77419b6
Update changelog for 3.18 2023-06-06 15:31:18 +01:00
aptalca
d671f53e94
Merge pull request #17 from linuxserver/readme-develop-branch
Add changelog + version tags for develop branch
2022-02-21 09:46:58 -05:00
TheSpad
9059510ffc Add changelog + version tags for develop branch 2022-02-21 14:19:14 +00:00
35 changed files with 62 additions and 2044 deletions

View File

@ -15,6 +15,6 @@ trim_trailing_whitespace = false
indent_style = space
indent_size = 2
[{**.sh,root/etc/s6-overlay/s6-rc.d/**,root/etc/cont-init.d/**,root/etc/services.d/**}]
[{**.sh,root/etc/cont-init.d/**,root/etc/services.d/**}]
indent_style = space
indent_size = 4

View File

@ -6,7 +6,7 @@
* Read, and fill the Pull Request template
* If this is a fix for a typo (in code, documentation, or the README) please file an issue and let us sort it out. We do not need a PR
* If the PR is addressing an existing issue include, closes #\<issue number>, in the body of the PR commit message
* If you want to discuss changes, you can also bring it up in [#dev-talk](https://discordapp.com/channels/354974912613449730/757585807061155840) in our [Discord server](https://discord.gg/YWrKVTn)
* If you want to discuss changes, you can also bring it up in [#dev-talk](https://discordapp.com/channels/354974912613449730/757585807061155840) in our [Discord server](https://linuxserver.io/discord)
## Common files
@ -105,10 +105,10 @@ docker build \
-t linuxserver/readarr:latest .
```
The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static`
The ARM variants can be built on x86_64 hardware and vice versa using `lscr.io/linuxserver/qemu-static`
```bash
docker run --rm --privileged multiarch/qemu-user-static:register --reset
docker run --rm --privileged lscr.io/linuxserver/qemu-static --reset
```
Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64`.

View File

@ -1,7 +1,7 @@
blank_issues_enabled: false
contact_links:
- name: Discord chat support
url: https://discord.gg/YWrKVTn
url: https://linuxserver.io/discord
about: Realtime support / chat with the community and the team.
- name: Discourse discussion forum

74
.github/ISSUE_TEMPLATE/issue.bug.yml vendored Executable file → Normal file
View File

@ -4,73 +4,11 @@ description: Create a report to help us improve
title: "[BUG] <title>"
labels: [Bug]
body:
- type: checkboxes
- type: markdown
attributes:
label: Is there an existing issue for this?
description: Please search to see if an issue already exists for the bug you encountered.
options:
- label: I have searched the existing issues
required: true
- type: textarea
attributes:
label: Current Behavior
description: Tell us what happens instead of the expected behavior.
validations:
required: true
- type: textarea
attributes:
label: Expected Behavior
description: Tell us what should happen.
validations:
required: false
- type: textarea
attributes:
label: Steps To Reproduce
description: Steps to reproduce the behavior.
placeholder: |
1. In this environment...
2. With this config...
3. Run '...'
4. See error...
validations:
required: true
- type: textarea
attributes:
label: Environment
description: |
examples:
- **OS**: Ubuntu 20.04
- **How docker service was installed**: distro's packagemanager
value: |
- OS:
- How docker service was installed:
render: markdown
validations:
required: false
- type: dropdown
attributes:
label: CPU architecture
options:
- x86-64
- arm64
validations:
required: true
- type: textarea
attributes:
label: Docker creation
description: |
Command used to create docker container
Provide your docker create/run command or compose yaml snippet, or a screenshot of settings if using a gui to create the container
render: bash
validations:
required: true
- type: textarea
attributes:
description: |
Provide a full docker log, output of "docker logs readarr"
label: Container logs
placeholder: |
Output of `docker logs readarr`
render: bash
validations:
required: true
# DEPRECATION NOTICE
This image is deprecated. We will not offer support for this image and it will not be updated.
Due to lack of developers, and issues with maintaining status quo, upstream has decided to retire the project.

31
.github/ISSUE_TEMPLATE/issue.feature.yml vendored Executable file → Normal file
View File

@ -4,28 +4,11 @@ description: Suggest an idea for this project
title: "[FEAT] <title>"
labels: [enhancement]
body:
- type: checkboxes
- type: markdown
attributes:
label: Is this a new feature request?
description: Please search to see if a feature request already exists.
options:
- label: I have searched the existing issues
required: true
- type: textarea
attributes:
label: Wanted change
description: Tell us what you want to happen.
validations:
required: true
- type: textarea
attributes:
label: Reason for change
description: Justify your request, why do you want it, what is the benefit.
validations:
required: true
- type: textarea
attributes:
label: Proposed code change
description: Do you have a potential code change in mind?
validations:
required: false
value: |
# DEPRECATION NOTICE
This image is deprecated. We will not offer support for this image and it will not be updated.
Due to lack of developers, and issues with maintaining status quo, upstream has decided to retire the project.

View File

@ -1,3 +1,9 @@
# DEPRECATION NOTICE
This image is deprecated. We will not offer support for this image and it will not be updated.
Due to lack of developers, and issues with maintaining status quo, upstream has decided to retire the project.
<!--- Provide a general summary of your changes in the Title above -->
[linuxserverurl]: https://linuxserver.io

View File

@ -1,16 +0,0 @@
name: Issue & PR Tracker
on:
issues:
types: [opened,reopened,labeled,unlabeled,closed]
pull_request_target:
types: [opened,reopened,review_requested,review_request_removed,labeled,unlabeled,closed]
pull_request_review:
types: [submitted,edited,dismissed]
jobs:
manage-project:
permissions:
issues: write
uses: linuxserver/github-workflows/.github/workflows/issue-pr-tracker.yml@v1
secrets: inherit

View File

@ -1,13 +0,0 @@
name: Mark stale issues and pull requests
on:
schedule:
- cron: '44 1 * * *'
workflow_dispatch:
jobs:
stale:
permissions:
issues: write
pull-requests: write
uses: linuxserver/github-workflows/.github/workflows/issues-cron.yml@v1
secrets: inherit

View File

@ -1,104 +0,0 @@
name: External Trigger Main
on:
workflow_dispatch:
jobs:
external-trigger-develop:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4.1.1
- name: External Trigger
if: github.ref == 'refs/heads/develop'
run: |
if [ -n "${{ secrets.PAUSE_EXTERNAL_TRIGGER_READARR_DEVELOP }}" ]; then
echo "**** Github secret PAUSE_EXTERNAL_TRIGGER_READARR_DEVELOP is set; skipping trigger. ****"
echo "Github secret \`PAUSE_EXTERNAL_TRIGGER_READARR_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_READARR_DEVELOP\". ****"
echo "External trigger running off of develop branch. To disable this trigger, set a Github secret named \`PAUSE_EXTERNAL_TRIGGER_READARR_DEVELOP\`" >> $GITHUB_STEP_SUMMARY
echo "**** Retrieving external version ****"
EXT_RELEASE=$(curl -sL https://readarr.servarr.com/v1/update/develop/changes?runtime=netcore%26os=linuxmusl | jq -r '.[0].version')
if [ -z "${EXT_RELEASE}" ] || [ "${EXT_RELEASE}" == "null" ]; then
echo "**** Can't retrieve external version, exiting ****"
FAILURE_REASON="Can't retrieve external version for readarr branch develop"
GHA_TRIGGER_URL="https://github.com/linuxserver/docker-readarr/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,
"description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n**Trigger URL:** '"${GHA_TRIGGER_URL}"' \n"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
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 ****"
image="linuxserver/readarr"
tag="develop"
token=$(curl -sX GET \
"https://ghcr.io/token?scope=repository%3Alinuxserver%2Freadarr%3Apull" \
| jq -r '.token')
multidigest=$(curl -s \
--header "Accept: application/vnd.docker.distribution.manifest.v2+json" \
--header "Authorization: Bearer ${token}" \
"https://ghcr.io/v2/${image}/manifests/${tag}" \
| jq -r 'first(.manifests[].digest)')
digest=$(curl -s \
--header "Accept: application/vnd.docker.distribution.manifest.v2+json" \
--header "Authorization: Bearer ${token}" \
"https://ghcr.io/v2/${image}/manifests/${multidigest}" \
| jq -r '.config.digest')
image_info=$(curl -sL \
--header "Authorization: Bearer ${token}" \
"https://ghcr.io/v2/${image}/blobs/${digest}")
if [[ $(echo $image_info | jq -r '.container_config') == "null" ]]; then
image_info=$(echo $image_info | jq -r '.config')
else
image_info=$(echo $image_info | jq -r '.container_config')
fi
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 ****"
FAILURE_REASON="Can't retrieve last pushed version for readarr 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
if [ "${EXT_RELEASE}" == "${IMAGE_VERSION}" ]; then
echo "**** Version ${EXT_RELEASE} already pushed, exiting ****"
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-readarr/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
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
response=$(curl -iX POST \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-readarr/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 ****"
sleep 10
buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url')
buildurl="${buildurl%$'\r'}"
echo "**** Jenkins job build url: ${buildurl} ****"
echo "Jenkins job build url: ${buildurl}" >> $GITHUB_STEP_SUMMARY
echo "**** Attempting to change the Jenkins job description ****"
curl -iX POST \
"${buildurl}submitDescription" \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} \
--data-urlencode "description=GHA external trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \
--data-urlencode "Submit=Submit"
echo "**** Notifying Discord ****"
TRIGGER_REASON="A version change was detected for readarr tag develop. Old version:${IMAGE_VERSION} New version:${EXT_RELEASE}"
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903,
"description": "**Build Triggered** \n**Reason:** '"${TRIGGER_REASON}"' \n**Build URL:** '"${buildurl}display/redirect"' \n"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
fi

View File

@ -1,45 +0,0 @@
name: External Trigger Scheduler
on:
schedule:
- cron: '40 * * * *'
workflow_dispatch:
jobs:
external-trigger-scheduler:
runs-on: ubuntu-latest
steps:
- 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)
do
br=$(echo "$br" | sed 's|origin/||g')
echo "**** Evaluating branch ${br} ****"
ls_jenkins_vars=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-readarr/${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. ****"
if curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-readarr/${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
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-readarr/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
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
fi
done

View File

@ -8,6 +8,6 @@ jobs:
steps:
- uses: actions/first-interaction@v1
with:
issue-message: 'Thanks for opening your first issue here! Be sure to follow the relevant issue templates, or risk having this issue marked as invalid.'
pr-message: 'Thanks for opening this pull request! Be sure to follow the [pull request template](https://github.com/linuxserver/docker-readarr/blob/develop/.github/PULL_REQUEST_TEMPLATE.md)!'
issue-message: 'This image is deprecated. We will not offer support for this image and it will not be updated. The [README](https://github.com/linuxserver/docker-readarr/blob/develop/README.md) may have additional information. Thanks for opening your first issue here! Be sure to follow the relevant issue templates, or risk having this issue marked as invalid.'
pr-message: 'This image is deprecated. We will not offer support for this image and it will not be updated. The [README](https://github.com/linuxserver/docker-readarr/blob/develop/README.md) may have additional information. Thanks for opening this pull request! Be sure to follow the [pull request template](https://github.com/linuxserver/docker-readarr/blob/develop/.github/PULL_REQUEST_TEMPLATE.md)!'
repo-token: ${{ secrets.GITHUB_TOKEN }}

View File

@ -1,42 +0,0 @@
name: Package Trigger Main
on:
workflow_dispatch:
jobs:
package-trigger-develop:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4.1.1
- name: Package Trigger
if: github.ref == 'refs/heads/develop'
run: |
if [ -n "${{ secrets.PAUSE_PACKAGE_TRIGGER_READARR_DEVELOP }}" ]; then
echo "**** Github secret PAUSE_PACKAGE_TRIGGER_READARR_DEVELOP is set; skipping trigger. ****"
echo "Github secret \`PAUSE_PACKAGE_TRIGGER_READARR_DEVELOP\` is set; skipping trigger." >> $GITHUB_STEP_SUMMARY
exit 0
fi
if [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-readarr/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
exit 0
fi
echo "**** Package trigger running off of develop branch. To disable, set a Github secret named \"PAUSE_PACKAGE_TRIGGER_READARR_DEVELOP\". ****"
echo "Package trigger running off of develop branch. To disable, set a Github secret named \`PAUSE_PACKAGE_TRIGGER_READARR_DEVELOP\`" >> $GITHUB_STEP_SUMMARY
response=$(curl -iX POST \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-readarr/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 ****"
sleep 10
buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url')
buildurl="${buildurl%$'\r'}"
echo "**** Jenkins job build url: ${buildurl} ****"
echo "Jenkins job build url: ${buildurl}" >> $GITHUB_STEP_SUMMARY
echo "**** Attempting to change the Jenkins job description ****"
curl -iX POST \
"${buildurl}submitDescription" \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} \
--data-urlencode "description=GHA package trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \
--data-urlencode "Submit=Submit"

View File

@ -1,50 +0,0 @@
name: Package Trigger Scheduler
on:
schedule:
- cron: '47 15 * * 6'
workflow_dispatch:
jobs:
package-trigger-scheduler:
runs-on: ubuntu-latest
steps:
- 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)
do
br=$(echo "$br" | sed 's|origin/||g')
echo "**** Evaluating branch ${br} ****"
ls_branch=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-readarr/${br}/jenkins-vars.yml | yq -r '.ls_branch')
if [ "${br}" == "${ls_branch}" ]; then
echo "**** Branch ${br} appears to be live; checking workflow. ****"
if curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-readarr/${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 \
-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-readarr/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
echo "**** Package check build(s) triggered for branch(es): ${triggered_branches} ****"
echo "**** Notifying Discord ****"
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903,
"description": "**Package Check Build(s) Triggered for readarr** \n**Branch(es):** '"${triggered_branches}"' \n**Build URL:** '"https://ci.linuxserver.io/blue/organizations/jenkins/Docker-Pipeline-Builders%2Fdocker-readarr/activity/"' \n"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}

View File

@ -1,10 +0,0 @@
name: Permission check
on:
pull_request_target:
paths:
- '**/run'
- '**/finish'
- '**/check'
jobs:
permission_check:
uses: linuxserver/github-workflows/.github/workflows/init-svc-executable-permissions.yml@v1

1
.gitignore vendored
View File

@ -1 +0,0 @@
.jenkins-external

View File

@ -1,46 +0,0 @@
# syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-alpine:3.19
# set version label
ARG BUILD_DATE
ARG VERSION
ARG READARR_RELEASE
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
LABEL maintainer="Roxedus,thespad"
# environment settings
ARG READARR_BRANCH="develop"
ENV XDG_CONFIG_HOME="/config/xdg"
RUN \
echo "**** install packages ****" && \
apk add -U --upgrade --no-cache \
icu-libs \
sqlite-libs \
xmlstarlet && \
echo "**** install readarr ****" && \
mkdir -p /app/readarr/bin && \
if [ -z ${READARR_RELEASE+x} ]; then \
READARR_RELEASE=$(curl -sL "https://readarr.servarr.com/v1/update/${READARR_BRANCH}/changes?runtime=netcore&os=linuxmusl" \
| jq -r '.[0].version'); \
fi && \
curl -o \
/tmp/readarr.tar.gz -L \
"https://readarr.servarr.com/v1/update/${READARR_BRANCH}/updatefile?version=${READARR_RELEASE}&os=linuxmusl&runtime=netcore&arch=x64" && \
tar xzf \
/tmp/readarr.tar.gz -C \
/app/readarr/bin --strip-components=1 && \
echo -e "UpdateMethod=docker\nBranch=${READARR_BRANCH}\nPackageVersion=${VERSION}\nPackageAuthor=[linuxserver.io](https://www.linuxserver.io/)" > /app/readarr/package_info && \
echo "**** cleanup ****" && \
rm -rf \
/app/readarr/bin/Readarr.Update \
/tmp/*
# copy local files
COPY root/ /
# ports and volumes
EXPOSE 8787
VOLUME /config

View File

@ -1,46 +0,0 @@
# syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.19
# set version label
ARG BUILD_DATE
ARG VERSION
ARG READARR_RELEASE
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
LABEL maintainer="Roxedus,thespad"
# environment settings
ARG READARR_BRANCH="develop"
ENV XDG_CONFIG_HOME="/config/xdg"
RUN \
echo "**** install packages ****" && \
apk add -U --upgrade --no-cache \
icu-libs \
sqlite-libs \
xmlstarlet && \
echo "**** install readarr ****" && \
mkdir -p /app/readarr/bin && \
if [ -z ${READARR_RELEASE+x} ]; then \
READARR_RELEASE=$(curl -sL "https://readarr.servarr.com/v1/update/${READARR_BRANCH}/changes?runtime=netcore&os=linuxmusl" \
| jq -r '.[0].version'); \
fi && \
curl -o \
/tmp/readarr.tar.gz -L \
"https://readarr.servarr.com/v1/update/${READARR_BRANCH}/updatefile?version=${READARR_RELEASE}&os=linuxmusl&runtime=netcore&arch=arm64" && \
tar xzf \
/tmp/readarr.tar.gz -C \
/app/readarr/bin --strip-components=1 && \
echo -e "UpdateMethod=docker\nBranch=${READARR_BRANCH}\nPackageVersion=${VERSION}\nPackageAuthor=[linuxserver.io](https://www.linuxserver.io/)" > /app/readarr/package_info && \
echo "**** cleanup ****" && \
rm -rf \
/app/readarr/bin/Readarr.Update \
/tmp/*
# copy local files
COPY root/ /
# ports and volumes
EXPOSE 8787
VOLUME /config

1029
Jenkinsfile vendored

File diff suppressed because it is too large Load Diff

View File

@ -1,9 +1,9 @@
<!-- DO NOT EDIT THIS FILE MANUALLY -->
<!-- Please read https://github.com/linuxserver/docker-readarr/blob/develop/.github/CONTRIBUTING.md -->
<!-- Please read https://github.com/linuxserver/docker-readarr/blob/main/.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!")
[![Discord](https://img.shields.io/discord/354974912613449730.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Discord&logo=discord)](https://discord.gg/YWrKVTn "realtime support / chat with the community and the team.")
[![Discord](https://img.shields.io/discord/354974912613449730.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Discord&logo=discord)](https://linuxserver.io/discord "realtime support / chat with the community and the team.")
[![Discourse](https://img.shields.io/discourse/https/discourse.linuxserver.io/topics.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=discourse)](https://discourse.linuxserver.io "post on our community forum.")
[![Fleet](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Fleet)](https://fleet.linuxserver.io "an online web interface which displays all of our maintained images.")
[![GitHub](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitHub&logo=github)](https://github.com/linuxserver "view the source for all of our repositories.")
@ -20,15 +20,21 @@ The [LinuxServer.io](https://linuxserver.io) team brings you another container r
Find us at:
* [Blog](https://blog.linuxserver.io) - all the things you can do with our containers including How-To guides, opinions and much more!
* [Discord](https://discord.gg/YWrKVTn) - realtime support / chat with the community and the team.
* [Discord](https://linuxserver.io/discord) - realtime support / chat with the community and the team.
* [Discourse](https://discourse.linuxserver.io) - post on our community forum.
* [Fleet](https://fleet.linuxserver.io) - an online web interface which displays all of our maintained images.
* [GitHub](https://github.com/linuxserver) - view the source for all of our repositories.
* [Open Collective](https://opencollective.com/linuxserver) - please consider helping us by either donating or contributing to our budget
# DEPRECATION NOTICE
This image is deprecated. We will not offer support for this image and it will not be updated.
Due to lack of developers, and issues with maintaining status quo, upstream has decided to retire the project.
# [linuxserver/readarr](https://github.com/linuxserver/docker-readarr)
[![Scarf.io pulls](https://scarf.sh/installs-badge/linuxserver-ci/linuxserver%2Freadarr?color=94398d&label-color=555555&logo-color=ffffff&style=for-the-badge&package-type=docker)](https://scarf.sh/gateway/linuxserver-ci/docker/linuxserver%2Freadarr)
[![Scarf.io pulls](https://scarf.sh/installs-badge/linuxserver-ci/linuxserver%2Freadarr?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-readarr.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-readarr)
[![GitHub Release](https://img.shields.io/github/release/linuxserver/docker-readarr.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github&include_prereleases)](https://github.com/linuxserver/docker-readarr/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-readarr/packages)
@ -37,7 +43,6 @@ Find us at:
[![Docker Pulls](https://img.shields.io/docker/pulls/linuxserver/readarr.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=pulls&logo=docker)](https://hub.docker.com/r/linuxserver/readarr)
[![Docker Stars](https://img.shields.io/docker/stars/linuxserver/readarr.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=stars&logo=docker)](https://hub.docker.com/r/linuxserver/readarr)
[![Jenkins Build](https://img.shields.io/jenkins/build?labelColor=555555&logoColor=ffffff&style=for-the-badge&jobUrl=https%3A%2F%2Fci.linuxserver.io%2Fjob%2FDocker-Pipeline-Builders%2Fjob%2Fdocker-readarr%2Fjob%2Fdevelop%2F&logo=jenkins)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-readarr/job/develop/)
[![LSIO CI](https://img.shields.io/badge/dynamic/yaml?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=CI&query=CI&url=https%3A%2F%2Fci-tests.linuxserver.io%2Flinuxserver%2Freadarr%2Flatest%2Fci-status.yml)](https://ci-tests.linuxserver.io/linuxserver/readarr/latest/index.html)
[Readarr](https://github.com/Readarr/Readarr) - Book Manager and Automation (Sonarr for Ebooks)
@ -73,16 +78,28 @@ Access the webui at `<your-ip>:8787`, for more information check out [Readarr](h
### Media folders
We have set `/books` and `/downloads` as ***optional paths***, this is because it is the easiest way to get started. While easy to use, it has some drawbacks. Mainly losing the ability to hardlink (TL;DR a way for a file to exist in multiple places on the same file system while only consuming one file worth of space), or atomic move (TL;DR instant file moves, rather than copy+delete) files while processing content.
We have set `/books` and `/downloads` as optional paths, this is because it is the easiest way to get started. While easy to use, it has some drawbacks. Mainly losing the ability to hardlink (TL;DR a way for a file to exist in multiple places on the same file system while only consuming one file worth of space), or atomic move (TL;DR instant file moves, rather than copy+delete) files while processing content.
Use the optional paths if you don't understand, or don't want hardlinks/atomic moves.
The folks over at servarr.com wrote a good [write-up](https://wiki.servarr.com/docker-guide#consistent-and-well-planned-paths) on how to get started with this.
>[!TIP]
>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.
## 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/).
## Non-Root Operation
This image can be run with a non-root user. For details please [read the docs](https://docs.linuxserver.io/misc/non-root/).
## Usage
To help you get started creating a container from this image you can either use docker-compose or the docker cli.
>[!NOTE]
>Unless a parameter is flaged as 'optional', it is *mandatory* and a value must be provided.
### docker-compose (recommended, [click here for more info](https://docs.linuxserver.io/general/docker-compose))
```yaml
@ -126,13 +143,15 @@ Containers are configured using parameters passed at runtime (such as those abov
| Parameter | Function |
| :----: | --- |
| `-p 8787` | The port for the Readarr web UI |
| `-p 8787:8787` | The port for the Readarr 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 Readarr configs |
| `-v /books` | Location of Book 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/). |
| `--user=1000:1000` | Run container with a non-root user. Please [read the docs](https://docs.linuxserver.io/misc/non-root/). |
## Environment variables from files (Docker secrets)
@ -198,7 +217,7 @@ We publish various [Docker Mods](https://github.com/linuxserver/docker-mods) to
* Image version number:
```bash
docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/readarr:develop
docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/readarr
```
## Updating Info
@ -246,7 +265,7 @@ Below are the instructions for updating containers:
* Update the image:
```bash
docker pull lscr.io/linuxserver/readarr:develop
docker pull lscr.io/linuxserver/readarr
```
* Stop the running container:
@ -270,7 +289,8 @@ Below are the instructions for updating containers:
### Image Update Notifications - Diun (Docker Image Update Notifier)
**tip**: We recommend [Diun](https://crazymax.dev/diun/) for update notifications. Other tools that automatically update containers unattended are not recommended or supported.
>[!TIP]
>We recommend [Diun](https://crazymax.dev/diun/) for update notifications. Other tools that automatically update containers unattended are not recommended or supported.
## Building locally
@ -285,16 +305,19 @@ docker build \
-t lscr.io/linuxserver/readarr:develop .
```
The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static`
The ARM variants can be built on x86_64 hardware and vice versa using `lscr.io/linuxserver/qemu-static`
```bash
docker run --rm --privileged multiarch/qemu-user-static:register --reset
docker run --rm --privileged lscr.io/linuxserver/qemu-static --reset
```
Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64`.
## Versions
* **27.06.25:** - Deprecate image.
* **20.12.24:** - Rebase to Alpine 3.21.
* **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.

View File

@ -1,29 +0,0 @@
---
# jenkins variables
project_name: docker-readarr
external_type: na
custom_version_command: curl -sL https://readarr.servarr.com/v1/update/develop/changes?runtime=netcore%26os=linuxmusl | jq -r '.[0].version'
release_type: prerelease
release_tag: develop
ls_branch: develop
build_armhf: false
repo_vars:
- BUILD_VERSION_ARG = 'READARR_RELEASE'
- LS_USER = 'linuxserver'
- LS_REPO = 'docker-readarr'
- CONTAINER_NAME = 'readarr'
- DOCKERHUB_IMAGE = 'linuxserver/readarr'
- DEV_DOCKERHUB_IMAGE = 'lsiodev/readarr'
- PR_DOCKERHUB_IMAGE = 'lspipepr/readarr'
- DIST_IMAGE = 'alpine'
- MULTIARCH='true'
- CI='true'
- CI_WEB='true'
- CI_PORT='8787'
- CI_SSL='false'
- CI_DELAY='120'
- CI_DOCKERENV='TZ=US/Pacific'
- CI_AUTH=''
- CI_WEBPATH='/system/status'
sponsor_links:
- { name: "Readarr", url: "https://opencollective.com/readarr" }

View File

@ -1,412 +0,0 @@
NAME VERSION TYPE
Bouncy Castle for .NET (netstandard2.0) 1.9.0.1 dotnet
Dapper 2.0.123.33578 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
FluentMigrator 3.3.2.9 dotnet (+19 duplicates)
FluentValidation 9.5.4.0 dotnet
ICSharpCode.SharpZipLib 1.4.2.13 dotnet
Ical.Net 1.0.0.0 dotnet
ImpromptuInterface 7.0.1.0 dotnet
Json.NET 13.0.3.27908 dotnet
LazyCache 2.4.0.174 dotnet
MailKit 3.6.0.0 dotnet
Microsoft.AspNetCore 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Antiforgery 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Authentication 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Authentication.Abstractions 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Authentication.Cookies 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Authentication.Core 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Authentication.OAuth 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Authorization 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Authorization.Policy 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Components 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Components.Authorization 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Components.Forms 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Components.Server 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Components.Web 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Connections.Abstractions 6.0.2523.52315 dotnet
Microsoft.AspNetCore.CookiePolicy 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Cors 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Cryptography.Internal 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Cryptography.KeyDerivation 6.0.2523.52315 dotnet
Microsoft.AspNetCore.DataProtection 6.0.2523.52315 dotnet
Microsoft.AspNetCore.DataProtection.Abstractions 6.0.2523.52315 dotnet
Microsoft.AspNetCore.DataProtection.Extensions 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Diagnostics 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Diagnostics.Abstractions 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Diagnostics.HealthChecks 6.0.2523.52315 dotnet
Microsoft.AspNetCore.HostFiltering 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Hosting 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Hosting.Abstractions 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Hosting.Server.Abstractions 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Html.Abstractions 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Http 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Http.Abstractions 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Http.Connections 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Http.Connections.Common 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Http.Extensions 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Http.Features 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Http.Results 6.0.2523.52315 dotnet
Microsoft.AspNetCore.HttpLogging 6.0.2523.52315 dotnet
Microsoft.AspNetCore.HttpOverrides 6.0.2523.52315 dotnet
Microsoft.AspNetCore.HttpsPolicy 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Identity 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Localization 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Localization.Routing 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Metadata 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Mvc 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Mvc.Abstractions 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Mvc.ApiExplorer 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Mvc.Core 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Mvc.Cors 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Mvc.DataAnnotations 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Mvc.Formatters.Json 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Mvc.Formatters.Xml 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Mvc.Localization 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Mvc.Razor 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Mvc.RazorPages 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Mvc.TagHelpers 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Mvc.ViewFeatures 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Razor 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Razor.Runtime 6.0.2523.52315 dotnet
Microsoft.AspNetCore.ResponseCaching 6.0.2523.52315 dotnet
Microsoft.AspNetCore.ResponseCaching.Abstractions 6.0.2523.52315 dotnet
Microsoft.AspNetCore.ResponseCompression 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Rewrite 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Routing 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Routing.Abstractions 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Server.HttpSys 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Server.IIS 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Server.IISIntegration 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Server.Kestrel 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Server.Kestrel.Core 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Server.Kestrel.Transport.Quic 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets 6.0.2523.52315 dotnet
Microsoft.AspNetCore.Session 6.0.2523.52315 dotnet
Microsoft.AspNetCore.SignalR 6.0.2523.52315 dotnet
Microsoft.AspNetCore.SignalR.Common 6.0.2523.52315 dotnet
Microsoft.AspNetCore.SignalR.Core 6.0.2523.52315 dotnet
Microsoft.AspNetCore.SignalR.Protocols.Json 6.0.2523.52315 dotnet
Microsoft.AspNetCore.StaticFiles 6.0.2523.52315 dotnet
Microsoft.AspNetCore.WebSockets 6.0.2523.52315 dotnet
Microsoft.AspNetCore.WebUtilities 6.0.2523.52315 dotnet
Microsoft.Bcl.AsyncInterfaces 6.0.21.52210 dotnet
Microsoft.Bcl.TimeProvider 8.0.23.53103 dotnet
Microsoft.CSharp 6.0.2523.51912 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.2523.52315 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.2523.52315 dotnet
Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions 6.0.2523.52315 dotnet
Microsoft.Extensions.Features 6.0.2523.52315 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.2523.52315 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.2523.52315 dotnet
Microsoft.Extensions.Identity.Stores 6.0.2523.52315 dotnet
Microsoft.Extensions.Localization 6.0.2523.52315 dotnet
Microsoft.Extensions.Localization.Abstractions 6.0.2523.52315 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.2523.52315 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.2523.52315 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.2523.52315 dotnet
Microsoft.Net.Http.Headers 6.0.2523.52315 dotnet
Microsoft.OpenApi 1.2.3.0 dotnet
Microsoft.VisualBasic 6.0.2523.51912 dotnet
Microsoft.VisualBasic.Core 11.100.2523.51912 dotnet
Microsoft.Win32.Primitives 6.0.2523.51912 dotnet
Microsoft.Win32.Registry 6.0.2523.51912 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.1.4 5.1.4.1703 dotnet
NLog.Extensions.Logging v5.2.3 5.2.3.325 dotnet
NLog.Targets.Syslog 7.0.0.0 dotnet
NodaTime 3.0.0.0 dotnet
Npgsql 7.0.6.0 dotnet
PdfSharpCore 1.3.32 dotnet (+1 duplicate)
Polly 8.2.0.2702 dotnet
Polly.Contrib.WaitAndRetry 1.1.1.0+7596d2dacf22d88bbd814bc49c28424fb6e921e9 dotnet
Polly.Core 8.2.0.2702 dotnet
Readarr 0.3.20.2452 dotnet (+7 duplicates)
RestSharp 106.15.0+ca15b2599d9e85efd9ac43c7112188b9b0cc67a0 dotnet
ReusableTasks 2.0.0 dotnet
Sentry 3.31.0.0 dotnet
SixLabors.Fonts 1.0.0.0 dotnet
SixLabors.ImageSharp 3.0.2.0 dotnet
Swashbuckle.AspNetCore.Swagger 6.5.0.0 dotnet
Swashbuckle.AspNetCore.SwaggerGen 6.5.0.0 dotnet
System 6.0.2523.51912 dotnet
System.AppContext 6.0.2523.51912 dotnet
System.Buffers 6.0.2523.51912 dotnet
System.Collections 6.0.2523.51912 dotnet
System.Collections.Concurrent 6.0.2523.51912 dotnet
System.Collections.Immutable 6.0.2523.51912 dotnet
System.Collections.NonGeneric 6.0.2523.51912 dotnet
System.Collections.Specialized 6.0.2523.51912 dotnet
System.ComponentModel 6.0.2523.51912 dotnet
System.ComponentModel.Annotations 6.0.2523.51912 dotnet
System.ComponentModel.DataAnnotations 6.0.2523.51912 dotnet
System.ComponentModel.EventBasedAsync 6.0.2523.51912 dotnet
System.ComponentModel.Primitives 6.0.2523.51912 dotnet
System.ComponentModel.TypeConverter 6.0.2523.51912 dotnet
System.Configuration 6.0.2523.51912 dotnet
System.Configuration.ConfigurationManager 6.0.922.41905 dotnet
System.Console 6.0.2523.51912 dotnet
System.Core 6.0.2523.51912 dotnet
System.Data 6.0.2523.51912 dotnet
System.Data.Common 6.0.2523.51912 dotnet
System.Data.DataSetExtensions 6.0.2523.51912 dotnet
System.Data.SQLite 1.0.115.5 dotnet
System.Data.SqlServerCe 4.0.8876.1 dotnet
System.Diagnostics.Contracts 6.0.2523.51912 dotnet
System.Diagnostics.Debug 6.0.2523.51912 dotnet
System.Diagnostics.DiagnosticSource 6.0.2523.51912 dotnet
System.Diagnostics.EventLog 6.0.21.52210 dotnet
System.Diagnostics.FileVersionInfo 6.0.2523.51912 dotnet
System.Diagnostics.Process 6.0.2523.51912 dotnet
System.Diagnostics.StackTrace 6.0.2523.51912 dotnet
System.Diagnostics.TextWriterTraceListener 6.0.2523.51912 dotnet
System.Diagnostics.Tools 6.0.2523.51912 dotnet
System.Diagnostics.TraceSource 6.0.2523.51912 dotnet
System.Diagnostics.Tracing 6.0.2523.51912 dotnet
System.Drawing 6.0.2523.51912 dotnet
System.Drawing.Common 6.0.21.52210 dotnet
System.Drawing.Primitives 6.0.2523.51912 dotnet
System.Dynamic.Runtime 6.0.2523.51912 dotnet
System.Formats.Asn1 6.0.2523.51912 dotnet
System.Globalization 6.0.2523.51912 dotnet
System.Globalization.Calendars 6.0.2523.51912 dotnet
System.Globalization.Extensions 6.0.2523.51912 dotnet
System.IO 6.0.2523.51912 dotnet
System.IO.Abstractions 17.0.24.38649 dotnet
System.IO.Compression 6.0.2523.51912 dotnet
System.IO.Compression.Brotli 6.0.2523.51912 dotnet
System.IO.Compression.FileSystem 6.0.2523.51912 dotnet
System.IO.Compression.ZipFile 6.0.2523.51912 dotnet
System.IO.FileSystem 6.0.2523.51912 dotnet
System.IO.FileSystem.AccessControl 6.0.2523.51912 dotnet
System.IO.FileSystem.DriveInfo 6.0.2523.51912 dotnet
System.IO.FileSystem.Primitives 6.0.2523.51912 dotnet
System.IO.FileSystem.Watcher 6.0.2523.51912 dotnet
System.IO.IsolatedStorage 6.0.2523.51912 dotnet
System.IO.MemoryMappedFiles 6.0.2523.51912 dotnet
System.IO.Pipelines 6.0.522.21309 dotnet
System.IO.Pipes 6.0.2523.51912 dotnet
System.IO.Pipes.AccessControl 6.0.2523.51912 dotnet
System.IO.UnmanagedMemoryStream 6.0.2523.51912 dotnet
System.IdentityModel.Tokens.Jwt 6.8.0.11012235604.824068adaeb7b158df2b36d8787f689646e715e0 dotnet
System.Linq 6.0.2523.51912 dotnet
System.Linq.Expressions 6.0.2523.51912 dotnet
System.Linq.Parallel 6.0.2523.51912 dotnet
System.Linq.Queryable 6.0.2523.51912 dotnet
System.Memory 6.0.2523.51912 dotnet
System.Net 6.0.2523.51912 dotnet
System.Net.Http 6.0.2523.51912 dotnet
System.Net.Http.Json 6.0.2523.51912 dotnet
System.Net.HttpListener 6.0.2523.51912 dotnet
System.Net.Mail 6.0.2523.51912 dotnet
System.Net.NameResolution 6.0.2523.51912 dotnet
System.Net.NetworkInformation 6.0.2523.51912 dotnet
System.Net.Ping 6.0.2523.51912 dotnet
System.Net.Primitives 6.0.2523.51912 dotnet
System.Net.Quic 6.0.2523.51912 dotnet
System.Net.Requests 6.0.2523.51912 dotnet
System.Net.Security 6.0.2523.51912 dotnet
System.Net.ServicePoint 6.0.2523.51912 dotnet
System.Net.Sockets 6.0.2523.51912 dotnet
System.Net.WebClient 6.0.2523.51912 dotnet
System.Net.WebHeaderCollection 6.0.2523.51912 dotnet
System.Net.WebProxy 6.0.2523.51912 dotnet
System.Net.WebSockets 6.0.2523.51912 dotnet
System.Net.WebSockets.Client 6.0.2523.51912 dotnet
System.Numerics 6.0.2523.51912 dotnet
System.Numerics.Vectors 6.0.2523.51912 dotnet
System.ObjectModel 6.0.2523.51912 dotnet
System.Private.CoreLib 6.0.2523.51912 dotnet
System.Private.DataContractSerialization 6.0.2523.51912 dotnet
System.Private.Uri 6.0.2523.51912 dotnet
System.Private.Xml 6.0.2523.51912 dotnet
System.Private.Xml.Linq 6.0.2523.51912 dotnet
System.Reflection 6.0.2523.51912 dotnet
System.Reflection.DispatchProxy 6.0.2523.51912 dotnet
System.Reflection.Emit 6.0.2523.51912 dotnet
System.Reflection.Emit.ILGeneration 6.0.2523.51912 dotnet
System.Reflection.Emit.Lightweight 6.0.2523.51912 dotnet
System.Reflection.Extensions 6.0.2523.51912 dotnet
System.Reflection.Metadata 6.0.2523.51912 dotnet
System.Reflection.Primitives 6.0.2523.51912 dotnet
System.Reflection.TypeExtensions 6.0.2523.51912 dotnet
System.Resources.Reader 6.0.2523.51912 dotnet
System.Resources.ResourceManager 6.0.2523.51912 dotnet
System.Resources.Writer 6.0.2523.51912 dotnet
System.Runtime 6.0.2523.51912 dotnet
System.Runtime.Caching 4.700.19.56404 dotnet
System.Runtime.CompilerServices.VisualC 6.0.2523.51912 dotnet
System.Runtime.Extensions 6.0.2523.51912 dotnet
System.Runtime.Handles 6.0.2523.51912 dotnet
System.Runtime.InteropServices 6.0.2523.51912 dotnet
System.Runtime.InteropServices.RuntimeInformation 6.0.2523.51912 dotnet
System.Runtime.Intrinsics 6.0.2523.51912 dotnet
System.Runtime.Loader 6.0.2523.51912 dotnet
System.Runtime.Numerics 6.0.2523.51912 dotnet
System.Runtime.Serialization 6.0.2523.51912 dotnet
System.Runtime.Serialization.Formatters 6.0.2523.51912 dotnet
System.Runtime.Serialization.Json 6.0.2523.51912 dotnet
System.Runtime.Serialization.Primitives 6.0.2523.51912 dotnet
System.Runtime.Serialization.Xml 6.0.2523.51912 dotnet
System.Security 6.0.2523.51912 dotnet
System.Security.AccessControl 6.0.2523.51912 dotnet
System.Security.Claims 6.0.2523.51912 dotnet
System.Security.Cryptography.Algorithms 6.0.2523.51912 dotnet
System.Security.Cryptography.Cng 6.0.2523.51912 dotnet
System.Security.Cryptography.Csp 6.0.2523.51912 dotnet
System.Security.Cryptography.Encoding 6.0.2523.51912 dotnet
System.Security.Cryptography.OpenSsl 6.0.2523.51912 dotnet
System.Security.Cryptography.Pkcs 6.0.1823.26907 dotnet
System.Security.Cryptography.Primitives 6.0.2523.51912 dotnet
System.Security.Cryptography.ProtectedData 6.0.21.52210 dotnet
System.Security.Cryptography.X509Certificates 6.0.2523.51912 dotnet
System.Security.Cryptography.Xml 6.0.822.36306 dotnet
System.Security.Permissions 6.0.21.52210 dotnet
System.Security.Principal 6.0.2523.51912 dotnet
System.Security.Principal.Windows 6.0.2523.51912 dotnet
System.Security.SecureString 6.0.2523.51912 dotnet
System.ServiceModel.Web 6.0.2523.51912 dotnet
System.ServiceProcess 6.0.2523.51912 dotnet
System.ServiceProcess.ServiceController 6.0.1823.26907 dotnet
System.Text.Encoding 6.0.2523.51912 dotnet
System.Text.Encoding.CodePages 6.0.2523.51912 dotnet
System.Text.Encoding.Extensions 6.0.2523.51912 dotnet
System.Text.Encodings.Web 6.0.2523.51912 dotnet
System.Text.Json 6.0.2523.51912 dotnet
System.Text.RegularExpressions 6.0.2523.51912 dotnet
System.Threading 6.0.2523.51912 dotnet
System.Threading.Channels 6.0.2523.51912 dotnet
System.Threading.Overlapped 6.0.2523.51912 dotnet
System.Threading.Tasks 6.0.2523.51912 dotnet
System.Threading.Tasks.Dataflow 6.0.2523.51912 dotnet
System.Threading.Tasks.Extensions 6.0.2523.51912 dotnet
System.Threading.Tasks.Parallel 6.0.2523.51912 dotnet
System.Threading.Thread 6.0.2523.51912 dotnet
System.Threading.ThreadPool 6.0.2523.51912 dotnet
System.Threading.Timer 6.0.2523.51912 dotnet
System.Transactions 6.0.2523.51912 dotnet
System.Transactions.Local 6.0.2523.51912 dotnet
System.ValueTuple 6.0.2523.51912 dotnet
System.Web 6.0.2523.51912 dotnet
System.Web.HttpUtility 6.0.2523.51912 dotnet
System.Windows 6.0.2523.51912 dotnet
System.Windows.Extensions 6.0.21.52210 dotnet
System.Xml 6.0.2523.51912 dotnet
System.Xml.Linq 6.0.2523.51912 dotnet
System.Xml.ReaderWriter 6.0.2523.51912 dotnet
System.Xml.Serialization 6.0.2523.51912 dotnet
System.Xml.XDocument 6.0.2523.51912 dotnet
System.Xml.XPath 6.0.2523.51912 dotnet
System.Xml.XPath.XDocument 6.0.2523.51912 dotnet
System.Xml.XmlDocument 6.0.2523.51912 dotnet
System.Xml.XmlSerializer 6.0.2523.51912 dotnet
TagLib# 2.2.0.19 dotnet
WindowsBase 6.0.2523.51912 dotnet
alpine-baselayout 3.4.3-r2 apk
alpine-baselayout-data 3.4.3-r2 apk
alpine-keys 2.4-r1 apk
alpine-release 3.19.1-r0 apk
apk-tools 2.14.0-r5 apk
bash 5.2.21-r0 apk
brotli-libs 1.1.0-r1 apk
busybox 1.36.1-r15 apk
busybox-binsh 1.36.1-r15 apk
c-ares 1.24.0-r1 apk
ca-certificates 20230506-r0 apk
ca-certificates-bundle 20230506-r0 apk
coreutils 9.4-r2 apk
coreutils-env 9.4-r2 apk
coreutils-fmt 9.4-r2 apk
coreutils-sha512sum 9.4-r2 apk
curl 8.5.0-r0 apk
icu-data-en 74.1-r0 apk
icu-libs 74.1-r0 apk
jq 1.7.1-r0 apk
libacl 2.3.1-r4 apk
libattr 2.5.1-r5 apk
libbsd 0.11.7-r3 apk
libc-utils 0.7.2-r5 apk
libcrypto3 3.1.4-r5 apk
libcurl 8.5.0-r0 apk
libgcc 13.2.1_git20231014-r0 apk
libgcrypt 1.10.3-r0 apk
libgpg-error 1.47-r2 apk
libidn2 2.3.4-r4 apk
libintl 0.22.3-r0 apk
libmd 1.1.0-r0 apk
libncursesw 6.4_p20231125-r0 apk
libproc2 4.0.4-r0 apk
libssl3 3.1.4-r5 apk
libstdc++ 13.2.1_git20231014-r0 apk
libunistring 1.1-r2 apk
libxml2 2.11.7-r0 apk
libxslt 1.1.39-r0 apk
linux-pam 1.5.3-r7 apk
mscorlib 6.0.2523.51912 dotnet
musl 1.2.4_git20230717-r4 apk
musl-utils 1.2.4_git20230717-r4 apk
ncurses-terminfo-base 6.4_p20231125-r0 apk
netcat-openbsd 1.226-r0 apk
netstandard 6.0.2523.51912 dotnet
nghttp2-libs 1.58.0-r0 apk
oniguruma 6.9.9-r0 apk
procps-ng 4.0.4-r0 apk
readline 8.2.1-r2 apk
scanelf 1.3.7-r2 apk
shadow 4.14.2-r0 apk
skalibs 2.14.0.1-r0 apk
sqlite-libs 3.44.2-r0 apk
ssl_client 1.36.1-r15 apk
tzdata 2024a-r0 apk
utmps-libs 0.1.2.2-r0 apk
xmlstarlet 1.6.1-r2 apk
xz-libs 5.4.5-r0 apk
zlib 1.3.1-r0 apk

View File

@ -1,62 +0,0 @@
---
# project information
project_name: readarr
project_url: "https://github.com/Readarr/Readarr"
project_logo: "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/readarr-logo.png"
project_blurb: |
[{{ project_name|capitalize }}]({{ project_url }}) - Book Manager and Automation (Sonarr for Ebooks)
project_lsio_github_repo_url: "https://github.com/linuxserver/docker-{{ project_name }}"
# supported architectures
available_architectures:
- { arch: "{{ arch_x86_64 }}", tag: "amd64-latest" }
- { arch: "{{ arch_arm64 }}", tag: "arm64v8-latest" }
# development version
development_versions: true
development_versions_items:
- { tag: "develop", desc: "Readarr releases from their develop branch" }
- { tag: "nightly", desc: "Readarr releases from their nightly branch" }
# container parameters
param_container_name: "{{ project_name }}"
param_usage_include_vols: true
param_volumes:
- { vol_path: "/config", vol_host_path: "/path/to/{{ project_name }}/data", desc: "Database and Readarr configs", }
opt_param_usage_include_vols: true
opt_param_volumes:
- { vol_path: "/books", vol_host_path: "/path/to/books", desc: "Location of Book library on disk (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: "8787", internal_port: "8787", port_desc: "The port for the Readarr web UI", }
# optional env variables
opt_param_usage_include_env: false
# application setup block
app_setup_block_enabled: true
app_setup_block: |
Access the webui at `<your-ip>:8787`, for more information check out [Readarr](https://github.com/Readarr/Readarr).
### Media folders
We have set `/books` and `/downloads` as ***optional paths***, this is because it is the easiest way to get started. While easy to use, it has some drawbacks. Mainly losing the ability to hardlink (TL;DR a way for a file to exist in multiple places on the same file system while only consuming one file worth of space), or atomic move (TL;DR instant file moves, rather than copy+delete) files while processing content.
Use the optional paths if you don't understand, or don't want hardlinks/atomic moves.
The folks over at servarr.com wrote a good [write-up](https://wiki.servarr.com/docker-guide#consistent-and-well-planned-paths) on how to get started with this.
# changelog
changelogs:
- { 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: "21.02.22:", desc: "Add develop branch." }
- { date: "04.02.22:", desc: "Rebase nightly branch to Alpine." }
- { date: "21.01.22:", desc: "Remove chromaprint as it's no longer a required dependency." }
- { date: "01.01.22:", desc: "Add chromaprint for audio fingerprinting." }
- { date: "30.12.21:", desc: "Add nightly-alpine branch." }
- { date: "28.07.21:", desc: "Initial Release." }

View File

@ -1 +0,0 @@
Readarr: https://opencollective.com/readarr

View File

@ -1,6 +0,0 @@
#!/usr/bin/with-contenv bash
# shellcheck shell=bash
# permissions
lsiown -R abc:abc \
/config

View File

@ -1 +0,0 @@
oneshot

View File

@ -1 +0,0 @@
/etc/s6-overlay/s6-rc.d/init-readarr-config/run

View File

@ -1,9 +0,0 @@
#!/bin/bash
PORT=$(xmlstarlet sel -T -t -v /Config/Port /config/config.xml)
if [[ $(curl -sL "http://localhost:${PORT:-8787}/ping" | jq -r '.status' 2>/dev/null) = "OK" ]]; then
exit 0
else
exit 1
fi

View File

@ -1,7 +0,0 @@
#!/usr/bin/with-contenv bash
# shellcheck shell=bash
exec \
s6-notifyoncheck -d -n 300 -w 1000 \
cd /app/readarr/bin s6-setuidgid abc /app/readarr/bin/Readarr \
-nobrowser -data=/config

View File

@ -1 +0,0 @@
longrun