Compare commits

..

14 Commits

Author SHA1 Message Date
LinuxServer-CI
938bb587d7 Bot Updating Package Versions 2024-10-27 06:51:49 +00:00
LinuxServer-CI
67e8286cfe Bot Updating Package Versions 2024-10-20 06:51:59 +00:00
LinuxServer-CI
24d1630688 Bot Updating Package Versions 2024-10-13 06:51:45 +00:00
LinuxServer-CI
a13e4722f7 Bot Updating Package Versions 2024-10-10 16:51:54 +00:00
LinuxServer-CI
95f4150538 Bot Updating Package Versions 2024-10-08 10:11:44 +00:00
Adam
efa08e0e83 Merge pull request #333 from linuxserver/master-dynamic-bind-address 2024-10-08 11:09:04 +01:00
thespad
4573a98e14 Read webui bind address from config if present. 2024-10-07 20:16:53 +01:00
LinuxServer-CI
4437b92c16 Bot Updating Package Versions 2024-10-06 06:52:08 +00:00
LinuxServer-CI
d3597ffea1 Bot Updating Package Versions 2024-09-30 17:49:32 +00:00
LinuxServer-CI
2f793f5456 Bot Updating Package Versions 2024-09-30 15:49:14 +00:00
LinuxServer-CI
50cd7a6a07 Bot Updating Package Versions 2024-09-29 06:56:52 +00:00
LinuxServer-CI
a6ba44ffa0 Bot Updating Templated Files 2024-09-29 06:54:04 +00:00
LinuxServer-CI
fa9f5c9cb3 Bot Updating Templated Files 2024-09-29 06:52:47 +00:00
LinuxServer-CI
4dcdd36ff4 Bot Updating Templated Files 2024-09-29 06:51:31 +00:00
9 changed files with 344 additions and 294 deletions

View File

@@ -11,15 +11,17 @@ jobs:
- name: External Trigger
if: github.ref == 'refs/heads/master'
env:
SKIP_EXTERNAL_TRIGGER: ${{ vars.SKIP_EXTERNAL_TRIGGER }}
run: |
printf "# External trigger for docker-qbittorrent\n\n" >> $GITHUB_STEP_SUMMARY
if [ -n "${{ secrets.PAUSE_EXTERNAL_TRIGGER_QBITTORRENT_MASTER }}" ]; then
if grep -q "^qbittorrent_master" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Github secret \`PAUSE_EXTERNAL_TRIGGER_QBITTORRENT_MASTER\` is set; skipping trigger." >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`qbittorrent_master\`; skipping trigger." >> $GITHUB_STEP_SUMMARY
exit 0
fi
echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY
echo "> External trigger running off of master branch. To disable this trigger, set a Github secret named \`PAUSE_EXTERNAL_TRIGGER_QBITTORRENT_MASTER\`" >> $GITHUB_STEP_SUMMARY
echo "> External trigger running off of master branch. To disable this trigger, add \`qbittorrent_master\` into the Github organizational variable \`SKIP_EXTERNAL_TRIGGER\`." >> $GITHUB_STEP_SUMMARY
printf "\n## Retrieving external version\n\n" >> $GITHUB_STEP_SUMMARY
EXT_RELEASE=$(curl -sL "http://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz" | tar -xz -C /tmp \
&& awk '/^P:'"qbittorrent-nox"'$/,/V:/' /tmp/APKINDEX | sed -n 2p | sed 's/^V://')
@@ -85,9 +87,20 @@ jobs:
elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-qbittorrent/job/master/lastBuild/api/json | jq -r '.building') == "true" ]; then
echo "New version \`${EXT_RELEASE}\` found; but there already seems to be an active build on Jenkins; exiting" >> $GITHUB_STEP_SUMMARY
exit 0
else
if [[ "${artifacts_found}" == "false" ]]; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> New version detected, but not all artifacts are published yet; skipping trigger" >> $GITHUB_STEP_SUMMARY
FAILURE_REASON="New version ${EXT_RELEASE} for qbittorrent tag latest is detected, however not all artifacts are uploaded to upstream release yet. Will try again later."
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903,
"description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
else
printf "\n## Trigger new build\n\n" >> $GITHUB_STEP_SUMMARY
echo "New version \`${EXT_RELEASE}\` found; old version was \`${IMAGE_VERSION}\`. Triggering new build" >> $GITHUB_STEP_SUMMARY
if "${artifacts_found}" == "true" ]]; then
echo "All artifacts seem to be uploaded." >> $GITHUB_STEP_SUMMARY
fi
response=$(curl -iX POST \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-qbittorrent/job/master/buildWithParameters?PACKAGE_CHECK=false \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
@@ -109,3 +122,4 @@ jobs:
"description": "**Build Triggered** \n**Reason:** '"${TRIGGER_REASON}"' \n**Build URL:** '"${buildurl}display/redirect"' \n"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
fi
fi

View File

@@ -1,42 +0,0 @@
name: Package Trigger Main
on:
workflow_dispatch:
jobs:
package-trigger-master:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4.1.1
- name: Package Trigger
if: github.ref == 'refs/heads/master'
run: |
printf "# Package trigger for docker-qbittorrent\n\n" >> $GITHUB_STEP_SUMMARY
if [ -n "${{ secrets.PAUSE_PACKAGE_TRIGGER_QBITTORRENT_MASTER }}" ]; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Github secret \`PAUSE_PACKAGE_TRIGGER_QBITTORRENT_MASTER\` is set; skipping trigger." >> $GITHUB_STEP_SUMMARY
exit 0
fi
if [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-qbittorrent/job/master/lastBuild/api/json | jq -r '.building') == "true" ]; then
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 "> [!NOTE]" >> $GITHUB_STEP_SUMMARY
echo "> Package trigger running off of master branch. To disable, set a Github secret named \`PAUSE_PACKAGE_TRIGGER_QBITTORRENT_MASTER\`" >> $GITHUB_STEP_SUMMARY
response=$(curl -iX POST \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-qbittorrent/job/master/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'})" >> $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})" >> $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 }} \
--data-urlencode "description=GHA package trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \
--data-urlencode "Submit=Submit"

View File

@@ -14,6 +14,8 @@ jobs:
fetch-depth: '0'
- name: Package Trigger Scheduler
env:
SKIP_PACKAGE_TRIGGER: ${{ vars.SKIP_PACKAGE_TRIGGER }}
run: |
printf "# Package trigger scheduler for docker-qbittorrent\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
@@ -24,27 +26,57 @@ jobs:
continue
fi
printf "\n## Evaluating \`%s\`\n\n" ${br} >> $GITHUB_STEP_SUMMARY
ls_branch=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-qbittorrent/${br}/jenkins-vars.yml | yq -r '.ls_branch')
if [ "${br}" == "${ls_branch}" ]; then
JENKINS_VARS=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-qbittorrent/${br}/jenkins-vars.yml)
if [[ "${br}" == $(yq -r '.ls_branch' <<< "${JENKINS_VARS}") ]]; then
echo "Branch appears to be live; checking workflow." >> $GITHUB_STEP_SUMMARY
if curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-qbittorrent/${br}/.github/workflows/package_trigger.yml > /dev/null 2>&1; then
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-qbittorrent/actions/workflows/package_trigger.yml/dispatches
sleep 30
if [[ $(yq -r '.skip_package_check' <<< "${JENKINS_VARS}") == "true" ]]; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Skipping branch ${br} due to \`skip_package_check\` being set in \`jenkins-vars.yml\`." >> $GITHUB_STEP_SUMMARY
skipped_branches="${skipped_branches}${br} "
elif grep -q "^qbittorrent_${br}" <<< "${SKIP_PACKAGE_TRIGGER}"; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_PACKAGE_TRIGGER\` contains \`qbittorrent_${br}\`; skipping trigger." >> $GITHUB_STEP_SUMMARY
skipped_branches="${skipped_branches}${br} "
elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-qbittorrent/job/${br}/lastBuild/api/json | jq -r '.building') == "true" ]; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> There already seems to be an active build on Jenkins; skipping package trigger for ${br}" >> $GITHUB_STEP_SUMMARY
skipped_branches="${skipped_branches}${br} "
else
echo "Skipping branch ${br} due to no package trigger workflow present." >> $GITHUB_STEP_SUMMARY
echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY
echo "> Triggering package trigger for branch ${br}" >> $GITHUB_STEP_SUMMARY
printf "> To disable, add \`qbittorrent_%s\` into the Github organizational variable \`SKIP_PACKAGE_TRIGGER\`.\n\n" "${br}" >> $GITHUB_STEP_SUMMARY
triggered_branches="${triggered_branches}${br} "
response=$(curl -iX POST \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-qbittorrent/job/${br}/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'})" >> $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})" >> $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 }} \
--data-urlencode "description=GHA package trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \
--data-urlencode "Submit=Submit"
sleep 20
fi
else
echo "Skipping branch ${br} due to being detected as dev branch." >> $GITHUB_STEP_SUMMARY
fi
done
if [[ -n "${triggered_branches}" ]] || [[ -n "${skipped_branches}" ]]; then
if [[ -n "${triggered_branches}" ]]; then
NOTIFY_BRANCHES="**Triggered:** ${triggered_branches} \n"
fi
if [[ -n "${skipped_branches}" ]]; then
NOTIFY_BRANCHES="${NOTIFY_BRANCHES}**Skipped:** ${skipped_branches} \n"
fi
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 qbittorrent** \n**Branch(es):** '"${triggered_branches}"' \n**Build URL:** '"https://ci.linuxserver.io/blue/organizations/jenkins/Docker-Pipeline-Builders%2Fdocker-qbittorrent/activity/"' \n"}],
"description": "**Package Check Build(s) Triggered for qbittorrent** \n'"${NOTIFY_BRANCHES}"'**Build URL:** '"https://ci.linuxserver.io/blue/organizations/jenkins/Docker-Pipeline-Builders%2Fdocker-qbittorrent/activity/"' \n"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
fi

View File

@@ -21,6 +21,7 @@ XDG_DATA_HOME="/config"
RUN \
echo "**** install packages ****" && \
apk add --no-cache \
grep \
icu-libs \
p7zip \
python3 \

View File

@@ -21,6 +21,7 @@ XDG_DATA_HOME="/config"
RUN \
echo "**** install packages ****" && \
apk add --no-cache \
grep \
icu-libs \
p7zip \
python3 \

56
Jenkinsfile vendored
View File

@@ -84,7 +84,7 @@ pipeline {
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'
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'
}
sh '''#! /bin/bash
echo "The default github branch detected as ${GH_DEFAULT_BRANCH}" '''
@@ -315,7 +315,7 @@ pipeline {
echo "Jenkinsfile is up to date."
fi
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"
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 .github/workflows/package_trigger.yml"
for i in ${OLD_TEMPLATES}; do
if [[ -f "${i}" ]]; then
TEMPLATES_TO_DELETE="${i} ${TEMPLATES_TO_DELETE}"
@@ -723,6 +723,14 @@ pipeline {
}
sh '''#! /bin/bash
set -e
if grep -q 'docker-baseimage' <<< "${LS_REPO}"; then
echo "Detected baseimage, setting LSIO_FIRST_PARTY=true"
if [ -n "${CI_DOCKERENV}" ]; then
CI_DOCKERENV="LSIO_FIRST_PARTY=true|${CI_DOCKERENV}"
else
CI_DOCKERENV="LSIO_FIRST_PARTY=true"
fi
fi
docker pull ghcr.io/linuxserver/ci:latest
if [ "${MULTIARCH}" == "true" ]; then
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} --platform=arm64
@@ -735,6 +743,7 @@ pipeline {
-e DOCKER_LOGS_TIMEOUT=\"${CI_DELAY}\" \
-e TAGS=\"${CI_TAGS}\" \
-e META_TAG=\"${META_TAG}\" \
-e RELEASE_TAG=\"latest\" \
-e PORT=\"${CI_PORT}\" \
-e SSL=\"${CI_SSL}\" \
-e BASE=\"${DIST_IMAGE}\" \
@@ -744,6 +753,7 @@ pipeline {
-e WEB_SCREENSHOT=\"${CI_WEB}\" \
-e WEB_AUTH=\"${CI_AUTH}\" \
-e WEB_PATH=\"${CI_WEBPATH}\" \
-e NODE_NAME=\"${NODE_NAME}\" \
-t ghcr.io/linuxserver/ci:latest \
python3 test_build.py'''
}
@@ -1011,17 +1021,45 @@ EOF
git config --global --unset commit.gpgsign
'''
script{
env.JOB_DATE = sh(
script: '''date '+%Y-%m-%dT%H:%M:%S%:z' ''',
returnStdout: true).trim()
if (env.EXIT_STATUS == "ABORTED"){
sh 'echo "build aborted"'
}else{
if (currentBuild.currentResult == "SUCCESS"){
if (env.GITHUBIMAGE =~ /lspipepr/){
env.JOB_WEBHOOK_STATUS='Success'
env.JOB_WEBHOOK_COLOUR=3957028
env.JOB_WEBHOOK_FOOTER='PR Build'
}else if (env.GITHUBIMAGE =~ /lsiodev/){
env.JOB_WEBHOOK_STATUS='Success'
env.JOB_WEBHOOK_COLOUR=3957028
env.JOB_WEBHOOK_FOOTER='Dev Build'
}else{
env.JOB_WEBHOOK_STATUS='Success'
env.JOB_WEBHOOK_COLOUR=1681177
env.JOB_WEBHOOK_FOOTER='Live Build'
}
else if (currentBuild.currentResult == "SUCCESS"){
sh ''' curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/jenkins-avatar.png","embeds": [{"color": 1681177,\
"description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_URL}'\\n**ShellCheck Results:** '${SHELLCHECK_URL}'\\n**Status:** Success\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\
"username": "Jenkins"}' ${BUILDS_DISCORD} '''
}else{
if (env.GITHUBIMAGE =~ /lspipepr/){
env.JOB_WEBHOOK_STATUS='Failure'
env.JOB_WEBHOOK_COLOUR=12669523
env.JOB_WEBHOOK_FOOTER='PR Build'
}else if (env.GITHUBIMAGE =~ /lsiodev/){
env.JOB_WEBHOOK_STATUS='Failure'
env.JOB_WEBHOOK_COLOUR=12669523
env.JOB_WEBHOOK_FOOTER='Dev Build'
}else{
env.JOB_WEBHOOK_STATUS='Failure'
env.JOB_WEBHOOK_COLOUR=16711680
env.JOB_WEBHOOK_FOOTER='Live Build'
}
else {
sh ''' curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/jenkins-avatar.png","embeds": [{"color": 16711680,\
"description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_URL}'\\n**ShellCheck Results:** '${SHELLCHECK_URL}'\\n**Status:** failure\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\
}
sh ''' curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/jenkins-avatar.png","embeds": [{"'color'": '${JOB_WEBHOOK_COLOUR}',\
"footer": {"text" : "'"${JOB_WEBHOOK_FOOTER}"'"},\
"timestamp": "'${JOB_DATE}'",\
"description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_URL}'\\n**ShellCheck Results:** '${SHELLCHECK_URL}'\\n**Status:** '${JOB_WEBHOOK_STATUS}'\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\
"username": "Jenkins"}' ${BUILDS_DISCORD} '''
}
}

View File

@@ -90,7 +90,6 @@ Similarly to the WEBUI_PORT, to set the port to 6887 you need to pass -p 6887:68
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
To help you get started creating a container from this image you can either use docker-compose or the docker cli.
@@ -292,7 +291,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

View File

@@ -6,184 +6,184 @@ Bouncy Castle for .NET (netstandard2.0) 1.8.8.2
CommandLineUtils 2.4.4+3c2a4909757a51602dcca9b961d577511b85fd31.3c2a4909757a51602dcca9b961d577511b85fd31 dotnet
CsvHelper 12.1.2 dotnet
Json.NET 13.0.3.27908 dotnet
Microsoft.CSharp 6.0.3024.21525 dotnet
Microsoft.VisualBasic 6.0.3024.21525 dotnet
Microsoft.VisualBasic.Core 11.100.3024.21525 dotnet
Microsoft.Win32.Primitives 6.0.3024.21525 dotnet
Microsoft.Win32.Registry 6.0.3024.21525 dotnet
Microsoft.CSharp 6.0.3524.45918 dotnet
Microsoft.VisualBasic 6.0.3524.45918 dotnet
Microsoft.VisualBasic.Core 11.100.3524.45918 dotnet
Microsoft.Win32.Primitives 6.0.3524.45918 dotnet
Microsoft.Win32.Registry 6.0.3524.45918 dotnet
Mono.Posix.NETStandard 1.0.0.0 dotnet
NJsonSchema 9.14.1.0 dotnet
Portable.Xaml.dll 0.18.0.0 dotnet
QBittorrent.Client 1.9.23349.1 dotnet
System 6.0.3024.21525 dotnet
System.AppContext 6.0.3024.21525 dotnet
System.Buffers 6.0.3024.21525 dotnet
System.Collections 6.0.3024.21525 dotnet
System.Collections.Concurrent 6.0.3024.21525 dotnet
System.Collections.Immutable 6.0.3024.21525 dotnet
System.Collections.NonGeneric 6.0.3024.21525 dotnet
System.Collections.Specialized 6.0.3024.21525 dotnet
System.ComponentModel 6.0.3024.21525 dotnet
System.ComponentModel.Annotations 6.0.3024.21525 dotnet
System.ComponentModel.DataAnnotations 6.0.3024.21525 dotnet
System.ComponentModel.EventBasedAsync 6.0.3024.21525 dotnet
System.ComponentModel.Primitives 6.0.3024.21525 dotnet
System.ComponentModel.TypeConverter 6.0.3024.21525 dotnet
System.Configuration 6.0.3024.21525 dotnet
System.Console 6.0.3024.21525 dotnet
System.Core 6.0.3024.21525 dotnet
System.Data 6.0.3024.21525 dotnet
System.Data.Common 6.0.3024.21525 dotnet
System.Data.DataSetExtensions 6.0.3024.21525 dotnet
System.Diagnostics.Contracts 6.0.3024.21525 dotnet
System.Diagnostics.Debug 6.0.3024.21525 dotnet
System.Diagnostics.DiagnosticSource 6.0.3024.21525 dotnet
System.Diagnostics.FileVersionInfo 6.0.3024.21525 dotnet
System.Diagnostics.Process 6.0.3024.21525 dotnet
System.Diagnostics.StackTrace 6.0.3024.21525 dotnet
System.Diagnostics.TextWriterTraceListener 6.0.3024.21525 dotnet
System.Diagnostics.Tools 6.0.3024.21525 dotnet
System.Diagnostics.TraceSource 6.0.3024.21525 dotnet
System.Diagnostics.Tracing 6.0.3024.21525 dotnet
System.Drawing 6.0.3024.21525 dotnet
System.Drawing.Primitives 6.0.3024.21525 dotnet
System.Dynamic.Runtime 6.0.3024.21525 dotnet
System.Formats.Asn1 6.0.3024.21525 dotnet
System.Globalization 6.0.3024.21525 dotnet
System.Globalization.Calendars 6.0.3024.21525 dotnet
System.Globalization.Extensions 6.0.3024.21525 dotnet
System.IO 6.0.3024.21525 dotnet
System.IO.Compression 6.0.3024.21525 dotnet
System.IO.Compression.Brotli 6.0.3024.21525 dotnet
System.IO.Compression.FileSystem 6.0.3024.21525 dotnet
System.IO.Compression.ZipFile 6.0.3024.21525 dotnet
System.IO.FileSystem 6.0.3024.21525 dotnet
System.IO.FileSystem.AccessControl 6.0.3024.21525 dotnet
System.IO.FileSystem.DriveInfo 6.0.3024.21525 dotnet
System.IO.FileSystem.Primitives 6.0.3024.21525 dotnet
System.IO.FileSystem.Watcher 6.0.3024.21525 dotnet
System.IO.IsolatedStorage 6.0.3024.21525 dotnet
System.IO.MemoryMappedFiles 6.0.3024.21525 dotnet
System.IO.Pipes 6.0.3024.21525 dotnet
System.IO.Pipes.AccessControl 6.0.3024.21525 dotnet
System.IO.UnmanagedMemoryStream 6.0.3024.21525 dotnet
System.Linq 6.0.3024.21525 dotnet
System.Linq.Expressions 6.0.3024.21525 dotnet
System.Linq.Parallel 6.0.3024.21525 dotnet
System.Linq.Queryable 6.0.3024.21525 dotnet
System.Memory 6.0.3024.21525 dotnet
System.Net 6.0.3024.21525 dotnet
System.Net.Http 6.0.3024.21525 dotnet
System.Net.Http.Json 6.0.3024.21525 dotnet
System.Net.HttpListener 6.0.3024.21525 dotnet
QBittorrent.Client 1.9.24285.1 dotnet
System 6.0.3524.45918 dotnet
System.AppContext 6.0.3524.45918 dotnet
System.Buffers 6.0.3524.45918 dotnet
System.Collections 6.0.3524.45918 dotnet
System.Collections.Concurrent 6.0.3524.45918 dotnet
System.Collections.Immutable 6.0.3524.45918 dotnet
System.Collections.NonGeneric 6.0.3524.45918 dotnet
System.Collections.Specialized 6.0.3524.45918 dotnet
System.ComponentModel 6.0.3524.45918 dotnet
System.ComponentModel.Annotations 6.0.3524.45918 dotnet
System.ComponentModel.DataAnnotations 6.0.3524.45918 dotnet
System.ComponentModel.EventBasedAsync 6.0.3524.45918 dotnet
System.ComponentModel.Primitives 6.0.3524.45918 dotnet
System.ComponentModel.TypeConverter 6.0.3524.45918 dotnet
System.Configuration 6.0.3524.45918 dotnet
System.Console 6.0.3524.45918 dotnet
System.Core 6.0.3524.45918 dotnet
System.Data 6.0.3524.45918 dotnet
System.Data.Common 6.0.3524.45918 dotnet
System.Data.DataSetExtensions 6.0.3524.45918 dotnet
System.Diagnostics.Contracts 6.0.3524.45918 dotnet
System.Diagnostics.Debug 6.0.3524.45918 dotnet
System.Diagnostics.DiagnosticSource 6.0.3524.45918 dotnet
System.Diagnostics.FileVersionInfo 6.0.3524.45918 dotnet
System.Diagnostics.Process 6.0.3524.45918 dotnet
System.Diagnostics.StackTrace 6.0.3524.45918 dotnet
System.Diagnostics.TextWriterTraceListener 6.0.3524.45918 dotnet
System.Diagnostics.Tools 6.0.3524.45918 dotnet
System.Diagnostics.TraceSource 6.0.3524.45918 dotnet
System.Diagnostics.Tracing 6.0.3524.45918 dotnet
System.Drawing 6.0.3524.45918 dotnet
System.Drawing.Primitives 6.0.3524.45918 dotnet
System.Dynamic.Runtime 6.0.3524.45918 dotnet
System.Formats.Asn1 6.0.3524.45918 dotnet
System.Globalization 6.0.3524.45918 dotnet
System.Globalization.Calendars 6.0.3524.45918 dotnet
System.Globalization.Extensions 6.0.3524.45918 dotnet
System.IO 6.0.3524.45918 dotnet
System.IO.Compression 6.0.3524.45918 dotnet
System.IO.Compression.Brotli 6.0.3524.45918 dotnet
System.IO.Compression.FileSystem 6.0.3524.45918 dotnet
System.IO.Compression.ZipFile 6.0.3524.45918 dotnet
System.IO.FileSystem 6.0.3524.45918 dotnet
System.IO.FileSystem.AccessControl 6.0.3524.45918 dotnet
System.IO.FileSystem.DriveInfo 6.0.3524.45918 dotnet
System.IO.FileSystem.Primitives 6.0.3524.45918 dotnet
System.IO.FileSystem.Watcher 6.0.3524.45918 dotnet
System.IO.IsolatedStorage 6.0.3524.45918 dotnet
System.IO.MemoryMappedFiles 6.0.3524.45918 dotnet
System.IO.Pipes 6.0.3524.45918 dotnet
System.IO.Pipes.AccessControl 6.0.3524.45918 dotnet
System.IO.UnmanagedMemoryStream 6.0.3524.45918 dotnet
System.Linq 6.0.3524.45918 dotnet
System.Linq.Expressions 6.0.3524.45918 dotnet
System.Linq.Parallel 6.0.3524.45918 dotnet
System.Linq.Queryable 6.0.3524.45918 dotnet
System.Memory 6.0.3524.45918 dotnet
System.Net 6.0.3524.45918 dotnet
System.Net.Http 6.0.3524.45918 dotnet
System.Net.Http.Json 6.0.3524.45918 dotnet
System.Net.HttpListener 6.0.3524.45918 dotnet
System.Net.IPNetwork 2.5.235 dotnet
System.Net.Mail 6.0.3024.21525 dotnet
System.Net.NameResolution 6.0.3024.21525 dotnet
System.Net.NetworkInformation 6.0.3024.21525 dotnet
System.Net.Ping 6.0.3024.21525 dotnet
System.Net.Primitives 6.0.3024.21525 dotnet
System.Net.Quic 6.0.3024.21525 dotnet
System.Net.Requests 6.0.3024.21525 dotnet
System.Net.Security 6.0.3024.21525 dotnet
System.Net.ServicePoint 6.0.3024.21525 dotnet
System.Net.Sockets 6.0.3024.21525 dotnet
System.Net.WebClient 6.0.3024.21525 dotnet
System.Net.WebHeaderCollection 6.0.3024.21525 dotnet
System.Net.WebProxy 6.0.3024.21525 dotnet
System.Net.WebSockets 6.0.3024.21525 dotnet
System.Net.WebSockets.Client 6.0.3024.21525 dotnet
System.Numerics 6.0.3024.21525 dotnet
System.Numerics.Vectors 6.0.3024.21525 dotnet
System.ObjectModel 6.0.3024.21525 dotnet
System.Private.CoreLib 6.0.3024.21525 dotnet
System.Private.DataContractSerialization 6.0.3024.21525 dotnet
System.Private.Uri 6.0.3024.21525 dotnet
System.Private.Xml 6.0.3024.21525 dotnet
System.Private.Xml.Linq 6.0.3024.21525 dotnet
System.Reflection 6.0.3024.21525 dotnet
System.Reflection.DispatchProxy 6.0.3024.21525 dotnet
System.Reflection.Emit 6.0.3024.21525 dotnet
System.Reflection.Emit.ILGeneration 6.0.3024.21525 dotnet
System.Reflection.Emit.Lightweight 6.0.3024.21525 dotnet
System.Reflection.Extensions 6.0.3024.21525 dotnet
System.Reflection.Metadata 6.0.3024.21525 dotnet
System.Reflection.Primitives 6.0.3024.21525 dotnet
System.Reflection.TypeExtensions 6.0.3024.21525 dotnet
System.Resources.Reader 6.0.3024.21525 dotnet
System.Resources.ResourceManager 6.0.3024.21525 dotnet
System.Resources.Writer 6.0.3024.21525 dotnet
System.Runtime 6.0.3024.21525 dotnet
System.Runtime.CompilerServices.VisualC 6.0.3024.21525 dotnet
System.Runtime.Extensions 6.0.3024.21525 dotnet
System.Runtime.Handles 6.0.3024.21525 dotnet
System.Runtime.InteropServices 6.0.3024.21525 dotnet
System.Runtime.InteropServices.RuntimeInformation 6.0.3024.21525 dotnet
System.Runtime.Intrinsics 6.0.3024.21525 dotnet
System.Runtime.Loader 6.0.3024.21525 dotnet
System.Runtime.Numerics 6.0.3024.21525 dotnet
System.Runtime.Serialization 6.0.3024.21525 dotnet
System.Runtime.Serialization.Formatters 6.0.3024.21525 dotnet
System.Runtime.Serialization.Json 6.0.3024.21525 dotnet
System.Runtime.Serialization.Primitives 6.0.3024.21525 dotnet
System.Runtime.Serialization.Xml 6.0.3024.21525 dotnet
System.Security 6.0.3024.21525 dotnet
System.Security.AccessControl 6.0.3024.21525 dotnet
System.Security.Claims 6.0.3024.21525 dotnet
System.Security.Cryptography.Algorithms 6.0.3024.21525 dotnet
System.Security.Cryptography.Cng 6.0.3024.21525 dotnet
System.Security.Cryptography.Csp 6.0.3024.21525 dotnet
System.Security.Cryptography.Encoding 6.0.3024.21525 dotnet
System.Security.Cryptography.OpenSsl 6.0.3024.21525 dotnet
System.Security.Cryptography.Primitives 6.0.3024.21525 dotnet
System.Net.Mail 6.0.3524.45918 dotnet
System.Net.NameResolution 6.0.3524.45918 dotnet
System.Net.NetworkInformation 6.0.3524.45918 dotnet
System.Net.Ping 6.0.3524.45918 dotnet
System.Net.Primitives 6.0.3524.45918 dotnet
System.Net.Quic 6.0.3524.45918 dotnet
System.Net.Requests 6.0.3524.45918 dotnet
System.Net.Security 6.0.3524.45918 dotnet
System.Net.ServicePoint 6.0.3524.45918 dotnet
System.Net.Sockets 6.0.3524.45918 dotnet
System.Net.WebClient 6.0.3524.45918 dotnet
System.Net.WebHeaderCollection 6.0.3524.45918 dotnet
System.Net.WebProxy 6.0.3524.45918 dotnet
System.Net.WebSockets 6.0.3524.45918 dotnet
System.Net.WebSockets.Client 6.0.3524.45918 dotnet
System.Numerics 6.0.3524.45918 dotnet
System.Numerics.Vectors 6.0.3524.45918 dotnet
System.ObjectModel 6.0.3524.45918 dotnet
System.Private.CoreLib 6.0.3524.45918 dotnet
System.Private.DataContractSerialization 6.0.3524.45918 dotnet
System.Private.Uri 6.0.3524.45918 dotnet
System.Private.Xml 6.0.3524.45918 dotnet
System.Private.Xml.Linq 6.0.3524.45918 dotnet
System.Reflection 6.0.3524.45918 dotnet
System.Reflection.DispatchProxy 6.0.3524.45918 dotnet
System.Reflection.Emit 6.0.3524.45918 dotnet
System.Reflection.Emit.ILGeneration 6.0.3524.45918 dotnet
System.Reflection.Emit.Lightweight 6.0.3524.45918 dotnet
System.Reflection.Extensions 6.0.3524.45918 dotnet
System.Reflection.Metadata 6.0.3524.45918 dotnet
System.Reflection.Primitives 6.0.3524.45918 dotnet
System.Reflection.TypeExtensions 6.0.3524.45918 dotnet
System.Resources.Reader 6.0.3524.45918 dotnet
System.Resources.ResourceManager 6.0.3524.45918 dotnet
System.Resources.Writer 6.0.3524.45918 dotnet
System.Runtime 6.0.3524.45918 dotnet
System.Runtime.CompilerServices.VisualC 6.0.3524.45918 dotnet
System.Runtime.Extensions 6.0.3524.45918 dotnet
System.Runtime.Handles 6.0.3524.45918 dotnet
System.Runtime.InteropServices 6.0.3524.45918 dotnet
System.Runtime.InteropServices.RuntimeInformation 6.0.3524.45918 dotnet
System.Runtime.Intrinsics 6.0.3524.45918 dotnet
System.Runtime.Loader 6.0.3524.45918 dotnet
System.Runtime.Numerics 6.0.3524.45918 dotnet
System.Runtime.Serialization 6.0.3524.45918 dotnet
System.Runtime.Serialization.Formatters 6.0.3524.45918 dotnet
System.Runtime.Serialization.Json 6.0.3524.45918 dotnet
System.Runtime.Serialization.Primitives 6.0.3524.45918 dotnet
System.Runtime.Serialization.Xml 6.0.3524.45918 dotnet
System.Security 6.0.3524.45918 dotnet
System.Security.AccessControl 6.0.3524.45918 dotnet
System.Security.Claims 6.0.3524.45918 dotnet
System.Security.Cryptography.Algorithms 6.0.3524.45918 dotnet
System.Security.Cryptography.Cng 6.0.3524.45918 dotnet
System.Security.Cryptography.Csp 6.0.3524.45918 dotnet
System.Security.Cryptography.Encoding 6.0.3524.45918 dotnet
System.Security.Cryptography.OpenSsl 6.0.3524.45918 dotnet
System.Security.Cryptography.Primitives 6.0.3524.45918 dotnet
System.Security.Cryptography.ProtectedData 5.0.20.51904 dotnet
System.Security.Cryptography.X509Certificates 6.0.3024.21525 dotnet
System.Security.Principal 6.0.3024.21525 dotnet
System.Security.Principal.Windows 6.0.3024.21525 dotnet
System.Security.SecureString 6.0.3024.21525 dotnet
System.ServiceModel.Web 6.0.3024.21525 dotnet
System.ServiceProcess 6.0.3024.21525 dotnet
System.Text.Encoding 6.0.3024.21525 dotnet
System.Text.Encoding.CodePages 6.0.3024.21525 dotnet
System.Text.Encoding.Extensions 6.0.3024.21525 dotnet
System.Text.Encodings.Web 6.0.3024.21525 dotnet
System.Text.Json 6.0.3024.21525 dotnet
System.Text.RegularExpressions 6.0.3024.21525 dotnet
System.Threading 6.0.3024.21525 dotnet
System.Threading.Channels 6.0.3024.21525 dotnet
System.Threading.Overlapped 6.0.3024.21525 dotnet
System.Threading.Tasks 6.0.3024.21525 dotnet
System.Threading.Tasks.Dataflow 6.0.3024.21525 dotnet
System.Threading.Tasks.Extensions 6.0.3024.21525 dotnet
System.Threading.Tasks.Parallel 6.0.3024.21525 dotnet
System.Threading.Thread 6.0.3024.21525 dotnet
System.Threading.ThreadPool 6.0.3024.21525 dotnet
System.Threading.Timer 6.0.3024.21525 dotnet
System.Transactions 6.0.3024.21525 dotnet
System.Transactions.Local 6.0.3024.21525 dotnet
System.ValueTuple 6.0.3024.21525 dotnet
System.Web 6.0.3024.21525 dotnet
System.Web.HttpUtility 6.0.3024.21525 dotnet
System.Windows 6.0.3024.21525 dotnet
System.Xml 6.0.3024.21525 dotnet
System.Xml.Linq 6.0.3024.21525 dotnet
System.Xml.ReaderWriter 6.0.3024.21525 dotnet
System.Xml.Serialization 6.0.3024.21525 dotnet
System.Xml.XDocument 6.0.3024.21525 dotnet
System.Xml.XPath 6.0.3024.21525 dotnet
System.Xml.XPath.XDocument 6.0.3024.21525 dotnet
System.Xml.XmlDocument 6.0.3024.21525 dotnet
System.Xml.XmlSerializer 6.0.3024.21525 dotnet
WindowsBase 6.0.3024.21525 dotnet
System.Security.Cryptography.X509Certificates 6.0.3524.45918 dotnet
System.Security.Principal 6.0.3524.45918 dotnet
System.Security.Principal.Windows 6.0.3524.45918 dotnet
System.Security.SecureString 6.0.3524.45918 dotnet
System.ServiceModel.Web 6.0.3524.45918 dotnet
System.ServiceProcess 6.0.3524.45918 dotnet
System.Text.Encoding 6.0.3524.45918 dotnet
System.Text.Encoding.CodePages 6.0.3524.45918 dotnet
System.Text.Encoding.Extensions 6.0.3524.45918 dotnet
System.Text.Encodings.Web 6.0.3524.45918 dotnet
System.Text.Json 6.0.3524.45918 dotnet
System.Text.RegularExpressions 6.0.3524.45918 dotnet
System.Threading 6.0.3524.45918 dotnet
System.Threading.Channels 6.0.3524.45918 dotnet
System.Threading.Overlapped 6.0.3524.45918 dotnet
System.Threading.Tasks 6.0.3524.45918 dotnet
System.Threading.Tasks.Dataflow 6.0.3524.45918 dotnet
System.Threading.Tasks.Extensions 6.0.3524.45918 dotnet
System.Threading.Tasks.Parallel 6.0.3524.45918 dotnet
System.Threading.Thread 6.0.3524.45918 dotnet
System.Threading.ThreadPool 6.0.3524.45918 dotnet
System.Threading.Timer 6.0.3524.45918 dotnet
System.Transactions 6.0.3524.45918 dotnet
System.Transactions.Local 6.0.3524.45918 dotnet
System.ValueTuple 6.0.3524.45918 dotnet
System.Web 6.0.3524.45918 dotnet
System.Web.HttpUtility 6.0.3524.45918 dotnet
System.Windows 6.0.3524.45918 dotnet
System.Xml 6.0.3524.45918 dotnet
System.Xml.Linq 6.0.3524.45918 dotnet
System.Xml.ReaderWriter 6.0.3524.45918 dotnet
System.Xml.Serialization 6.0.3524.45918 dotnet
System.Xml.XDocument 6.0.3524.45918 dotnet
System.Xml.XPath 6.0.3524.45918 dotnet
System.Xml.XPath.XDocument 6.0.3524.45918 dotnet
System.Xml.XmlDocument 6.0.3524.45918 dotnet
System.Xml.XmlSerializer 6.0.3524.45918 dotnet
WindowsBase 6.0.3524.45918 dotnet
acl-libs 2.3.2-r1 apk
alpine-baselayout 3.6.8-r0 apk
alpine-baselayout-data 3.6.8-r0 apk
alpine-keys 2.5-r0 apk
apk-tools 2.14.4-r3 apk
bash 5.2.32-r0 apk
bash 5.2.37-r0 apk
brotli-libs 1.1.0-r2 apk
busybox 1.36.1-r32 apk
busybox-binsh 1.36.1-r32 apk
c-ares 1.33.1-r0 apk
c-ares 1.34.2-r0 apk
ca-certificates 20240705-r0 apk
ca-certificates-bundle 20240705-r0 apk
catatonit 0.2.0-r0 apk
@@ -192,69 +192,70 @@ coreutils-env 9.5-r1
coreutils-fmt 9.5-r1 apk
coreutils-sha512sum 9.5-r1 apk
curl 8.9.1-r2 apk
dbus-libs 1.14.10-r3 apk
dbus-libs 1.14.10-r4 apk
double-conversion 3.3.0-r0 apk
duktape 2.7.0-r1 apk
findutils 4.10.0-r0 apk
gdbm 1.24-r0 apk
glib 2.82.1-r0 apk
glib 2.82.2-r0 apk
grep 3.11-r0 apk
icu-data-en 74.2-r0 apk
icu-libs 74.2-r0 apk
jq 1.7.1-r0 apk
libattr 2.5.2-r2 apk
libb2 0.98.1-r3 apk
libblkid 2.40.2-r1 apk
libblkid 2.40.2-r3 apk
libbsd 0.12.2-r0 apk
libbz2 1.0.8-r6 apk
libcrypto3 3.3.2-r1 apk
libcrypto3 3.3.2-r3 apk
libcurl 8.9.1-r2 apk
libeconf 0.6.3-r0 apk
libexpat 2.6.3-r0 apk
libffi 3.4.6-r0 apk
libgcc 14.2.0-r2 apk
libgomp 14.2.0-r2 apk
libgcc 14.2.0-r4 apk
libgomp 14.2.0-r4 apk
libidn2 2.3.7-r0 apk
libintl 0.22.5-r0 apk
libmd 1.1.0-r0 apk
libmount 2.40.2-r1 apk
libncursesw 6.5_p20240601-r1 apk
libpanelw 6.5_p20240601-r1 apk
libmount 2.40.2-r3 apk
libncursesw 6.5_p20241006-r0 apk
libpanelw 6.5_p20241006-r0 apk
libpcre2-16 10.43-r0 apk
libproc2 4.0.4-r2 apk
libproxy 0.5.8-r0 apk
libpsl 0.21.5-r2 apk
libssl3 3.3.2-r1 apk
libstdc++ 14.2.0-r2 apk
libproxy 0.5.9-r0 apk
libpsl 0.21.5-r3 apk
libssl3 3.3.2-r3 apk
libstdc++ 14.2.0-r4 apk
libtorrent-rasterbar 2.0.10-r2 apk
libunistring 1.2-r0 apk
linux-pam 1.6.1-r1 apk
mpdecimal 4.0.0-r0 apk
mscorlib 6.0.3024.21525 dotnet
musl 1.2.5-r2 apk
musl-utils 1.2.5-r2 apk
ncurses-terminfo-base 6.5_p20240601-r1 apk
mscorlib 6.0.3524.45918 dotnet
musl 1.2.5-r5 apk
musl-utils 1.2.5-r3 apk
ncurses-terminfo-base 6.5_p20241006-r0 apk
netcat-openbsd 1.226-r0 apk
netstandard 6.0.3024.21525 dotnet
nghttp2-libs 1.62.1-r0 apk
netstandard 6.0.3524.45918 dotnet
nghttp2-libs 1.63.0-r0 apk
oniguruma 6.9.9-r0 apk
pcre2 10.43-r0 apk
procps-ng 4.0.4-r2 apk
pyc 3.12.6-r0 apk
python3 3.12.6-r0 apk
python3-pyc 3.12.6-r0 apk
python3-pycache-pyc0 3.12.6-r0 apk
qbittorrent-nox 4.6.7-r0 apk
qbt 1.8.24199.1+738bca0d7d7585cf40629f13a59b6198eaf6fe64 dotnet
pyc 3.12.7-r1 apk
python3 3.12.7-r1 apk
python3-pyc 3.12.7-r1 apk
python3-pycache-pyc0 3.12.7-r1 apk
qbittorrent-nox 5.0.0-r2 apk
qbt 1.8.24285.1+c5794123bd204e629729e52e7177834c4ba3bfc2 dotnet
qt6-qtbase 6.7.2-r2 apk
qt6-qtbase-sqlite 6.7.2-r2 apk
readline 8.2.13-r0 apk
scanelf 1.3.7-r2 apk
scanelf 1.3.8-r0 apk
shadow 4.16.0-r0 apk
skalibs 2.14.2.0-r1 apk
sqlite-libs 3.46.1-r0 apk
skalibs 2.14.2.0-r2 apk
sqlite-libs 3.47.0-r0 apk
ssl_client 1.36.1-r32 apk
tzdata 2024b-r0 apk
utmps-libs 0.1.2.2-r2 apk
xz-libs 5.6.2-r0 apk
tzdata 2024b-r1 apk
utmps-libs 0.1.2.2-r3 apk
xz-libs 5.6.3-r0 apk
zlib 1.3.1-r2 apk
zstd-libs 1.5.6-r1 apk

View File

@@ -6,6 +6,11 @@ if [[ -n "${TORRENTING_PORT}" ]]; then
TORRENTING_PORT_ARG="--torrenting-port=${TORRENTING_PORT}"
fi
WEBUI_ADDRESS=$(grep -Po "^WebUI\\\Address=\K(.*)" /config/qBittorrent/qBittorrent.conf)
if [[ -z ${WEBUI_ADDRESS} ]] || [[ ${WEBUI_ADDRESS} == "*" ]]; then
WEBUI_ADDRESS="localhost"
fi
exec \
s6-notifyoncheck -d -n 300 -w 1000 -c "nc -z localhost ${WEBUI_PORT}" \
s6-notifyoncheck -d -n 300 -w 1000 -c "nc -z ${WEBUI_ADDRESS} ${WEBUI_PORT}" \
s6-setuidgid abc /usr/bin/qbittorrent-nox --webui-port="${WEBUI_PORT}" ${TORRENTING_PORT_ARG}