Compare commits

...

30 Commits

Author SHA1 Message Date
LinuxServer-CI
15a3e2fef2 Bot Updating Package Versions 2024-05-12 06:55:10 +00:00
LinuxServer-CI
66a4be9087 Bot Updating Templated Files 2024-05-12 06:52:12 +00:00
LinuxServer-CI
5356a1d792 Bot Updating Templated Files 2024-05-05 06:51:08 +00:00
LinuxServer-CI
f8eab4b35a Bot Updating Package Versions 2024-04-28 06:52:10 +00:00
LinuxServer-CI
714680627f Bot Updating Package Versions 2024-04-22 19:48:59 +00:00
LinuxServer-CI
280748c641 Bot Updating Package Versions 2024-04-21 06:51:40 +00:00
LinuxServer-CI
01acd51511 Bot Updating Package Versions 2024-04-14 08:11:05 +00:00
LinuxServer-CI
68036d9a8c Bot Updating Package Versions 2024-04-07 06:52:03 +00:00
LinuxServer-CI
f02cf0e736 Bot Updating Package Versions 2024-03-29 20:07:03 +00:00
LinuxServer-CI
28c0f2e4ed Bot Updating Package Versions 2024-03-27 19:49:25 +00:00
LinuxServer-CI
405d4fb2a0 Bot Updating Package Versions 2024-03-24 06:51:58 +00:00
LinuxServer-CI
fddd1e2fd8 Bot Updating Package Versions 2024-03-17 06:55:28 +00:00
LinuxServer-CI
14a797de92 Bot Updating Templated Files 2024-03-17 06:52:54 +00:00
LinuxServer-CI
37154b9eff Bot Updating Package Versions 2024-03-10 06:52:48 +00:00
LinuxServer-CI
a5aa5d8e57 Bot Updating Package Versions 2024-03-03 06:51:56 +00:00
LinuxServer-CI
2d468b7706 Bot Updating Package Versions 2024-02-25 06:55:43 +00:00
LinuxServer-CI
0de417c6cd Bot Updating Templated Files 2024-02-25 06:53:20 +00:00
LinuxServer-CI
d6c4d57def Bot Updating Templated Files 2024-02-25 06:51:40 +00:00
LinuxServer-CI
5d799ac9b4 Bot Updating Package Versions 2024-02-18 06:52:16 +00:00
aptalca
db45b7a47e Merge pull request #291 from linuxserver/tport
do not override torrenting port unless var is set
2024-02-14 15:25:31 -05:00
aptalca
c9fef1b8fd do not override torrenting port unless var is set 2024-02-14 14:56:49 -05:00
Adam
873a9fab4a Merge pull request #288 from pcdevil/feat/torrenting-port
Add torrenting port configuration support
2024-02-14 10:18:24 +00:00
LinuxServer-CI
ebeab95adb Bot Updating Package Versions 2024-02-11 06:51:56 +00:00
Attila Gonda
e0e573c248 Add torrenting port configuration support 2024-02-10 12:04:01 +00:00
LinuxServer-CI
6d3d9697e1 Bot Updating Package Versions 2024-02-04 06:53:33 +00:00
LinuxServer-CI
31ce96fdb8 Bot Updating Package Versions 2024-02-01 09:20:37 +00:00
LinuxServer-CI
19c202debc Bot Updating Templated Files 2024-02-01 09:16:12 +00:00
Adam
4f6920e7fd Merge pull request #286 from linuxserver/old-packages
Remove obsolete compat packages
2024-02-01 09:12:57 +00:00
TheSpad
98f36cee40 Remove obsolete compat packages 2024-01-31 19:21:26 +00:00
LinuxServer-CI
4fe96ba449 Bot Updating Package Versions 2024-01-28 06:52:03 +00:00
12 changed files with 474 additions and 447 deletions

View File

@@ -67,10 +67,10 @@ body:
- type: textarea - type: textarea
attributes: attributes:
description: | description: |
Provide a full docker log, output of "docker logs linuxserver.io" Provide a full docker log, output of "docker logs qbittorrent"
label: Container logs label: Container logs
placeholder: | placeholder: |
Output of `docker logs linuxserver.io` Output of `docker logs qbittorrent`
render: bash render: bash
validations: validations:
required: true required: true

View File

@@ -7,7 +7,7 @@ jobs:
external-trigger-master: external-trigger-master:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3.1.0 - uses: actions/checkout@v4.1.1
- name: External Trigger - name: External Trigger
if: github.ref == 'refs/heads/master' if: github.ref == 'refs/heads/master'

View File

@@ -9,7 +9,7 @@ jobs:
external-trigger-scheduler: external-trigger-scheduler:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3.1.0 - uses: actions/checkout@v4.1.1
with: with:
fetch-depth: '0' fetch-depth: '0'

View File

@@ -7,7 +7,7 @@ jobs:
package-trigger-master: package-trigger-master:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3.1.0 - uses: actions/checkout@v4.1.1
- name: Package Trigger - name: Package Trigger
if: github.ref == 'refs/heads/master' if: github.ref == 'refs/heads/master'

View File

@@ -9,7 +9,7 @@ jobs:
package-trigger-scheduler: package-trigger-scheduler:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3.1.0 - uses: actions/checkout@v4.1.1
with: with:
fetch-depth: '0' fetch-depth: '0'

View File

@@ -19,15 +19,9 @@ XDG_DATA_HOME="/config"
# install runtime packages and qbitorrent-cli # install runtime packages and qbitorrent-cli
RUN \ RUN \
echo "**** install build packages ****" && \
apk add --no-cache --virtual=build-dependencies \
build-base && \
echo "**** install packages ****" && \ echo "**** install packages ****" && \
apk add --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing \ apk add --no-cache \
icu-libs \ icu-libs \
libstdc++ \
openssl \
openssl1.1-compat \
p7zip \ p7zip \
python3 \ python3 \
qt6-qtbase-sqlite && \ qt6-qtbase-sqlite && \
@@ -50,8 +44,6 @@ RUN \
/tmp/qbt.tar.gz -C \ /tmp/qbt.tar.gz -C \
/qbt && \ /qbt && \
echo "**** cleanup ****" && \ echo "**** cleanup ****" && \
apk del --purge \
build-dependencies && \
rm -rf \ rm -rf \
/root/.cache \ /root/.cache \
/tmp/* /tmp/*

View File

@@ -19,15 +19,9 @@ XDG_DATA_HOME="/config"
# install runtime packages and qbitorrent-cli # install runtime packages and qbitorrent-cli
RUN \ RUN \
echo "**** install build packages ****" && \
apk add --no-cache --virtual=build-dependencies \
build-base && \
echo "**** install packages ****" && \ echo "**** install packages ****" && \
apk add --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing \ apk add --no-cache \
icu-libs \ icu-libs \
libstdc++ \
openssl \
openssl1.1-compat \
p7zip \ p7zip \
python3 \ python3 \
qt6-qtbase-sqlite && \ qt6-qtbase-sqlite && \
@@ -50,8 +44,6 @@ RUN \
/tmp/qbt.tar.gz -C \ /tmp/qbt.tar.gz -C \
/qbt && \ /qbt && \
echo "**** cleanup ****" && \ echo "**** cleanup ****" && \
apk del --purge \
build-dependencies && \
rm -rf \ rm -rf \
/root/.cache \ /root/.cache \
/tmp/* /tmp/*

340
Jenkinsfile vendored
View File

@@ -249,9 +249,11 @@ pipeline {
-v ${WORKSPACE}:/mnt \ -v ${WORKSPACE}:/mnt \
-e AWS_ACCESS_KEY_ID=\"${S3_KEY}\" \ -e AWS_ACCESS_KEY_ID=\"${S3_KEY}\" \
-e AWS_SECRET_ACCESS_KEY=\"${S3_SECRET}\" \ -e AWS_SECRET_ACCESS_KEY=\"${S3_SECRET}\" \
ghcr.io/linuxserver/baseimage-alpine:3.17 s6-envdir -fn -- /var/run/s6/container_environment /bin/bash -c "\ ghcr.io/linuxserver/baseimage-alpine:3.19 s6-envdir -fn -- /var/run/s6/container_environment /bin/bash -c "\
apk add --no-cache py3-pip && \ apk add --no-cache python3 && \
pip install s3cmd && \ python3 -m venv /lsiopy && \
pip install --no-cache-dir -U pip && \
pip install --no-cache-dir s3cmd && \
s3cmd put --no-preserve --acl-public -m text/xml /mnt/shellcheck-result.xml s3://ci-tests.linuxserver.io/${IMAGE}/${META_TAG}/shellcheck-result.xml" || :''' s3cmd put --no-preserve --acl-public -m text/xml /mnt/shellcheck-result.xml s3://ci-tests.linuxserver.io/${IMAGE}/${META_TAG}/shellcheck-result.xml" || :'''
} }
} }
@@ -266,150 +268,178 @@ pipeline {
} }
} }
steps { steps {
withCredentials([ sh '''#! /bin/bash
[ set -e
$class: 'UsernamePasswordMultiBinding', TEMPDIR=$(mktemp -d)
credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207', docker pull ghcr.io/linuxserver/jenkins-builder:latest
usernameVariable: 'DOCKERUSER', # Cloned repo paths for templating:
passwordVariable: 'DOCKERPASS' # ${TEMPDIR}/docker-${CONTAINER_NAME}: Cloned branch master of ${LS_USER}/${LS_REPO} for running the jenkins builder on
] # ${TEMPDIR}/repo/${LS_REPO}: Cloned branch master of ${LS_USER}/${LS_REPO} for commiting various templated file changes and pushing back to Github
]) { # ${TEMPDIR}/docs/docker-documentation: Cloned docs repo for pushing docs updates to Github
sh '''#! /bin/bash # ${TEMPDIR}/unraid/docker-templates: Cloned docker-templates repo to check for logos
set -e # ${TEMPDIR}/unraid/templates: Cloned templates repo for commiting unraid template changes and pushing back to Github
TEMPDIR=$(mktemp -d) git clone --branch master --depth 1 https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/docker-${CONTAINER_NAME}
docker pull ghcr.io/linuxserver/jenkins-builder:latest docker run --rm -v ${TEMPDIR}/docker-${CONTAINER_NAME}:/tmp -e LOCAL=true -e PUID=$(id -u) -e PGID=$(id -g) ghcr.io/linuxserver/jenkins-builder:latest
docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=master -v ${TEMPDIR}:/ansible/jenkins ghcr.io/linuxserver/jenkins-builder:latest echo "Starting Stage 1 - Jenkinsfile update"
# Stage 1 - Jenkinsfile update if [[ "$(md5sum Jenkinsfile | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile | awk '{ print $1 }')" ]]; then
if [[ "$(md5sum Jenkinsfile | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile | awk '{ print $1 }')" ]]; then mkdir -p ${TEMPDIR}/repo
mkdir -p ${TEMPDIR}/repo git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO} cd ${TEMPDIR}/repo/${LS_REPO}
cd ${TEMPDIR}/repo/${LS_REPO} git checkout -f master
git checkout -f master cp ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile ${TEMPDIR}/repo/${LS_REPO}/
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile ${TEMPDIR}/repo/${LS_REPO}/ git add Jenkinsfile
git add Jenkinsfile git commit -m 'Bot Updating Templated Files'
git commit -m 'Bot Updating Templated Files' git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} echo "Updating Jenkinsfile and exiting build, new one will trigger based on commit"
echo "Updating Jenkinsfile" rm -Rf ${TEMPDIR}
rm -Rf ${TEMPDIR} exit 0
exit 0 else
else echo "Jenkinsfile is up to date."
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 Dockerfile.armhf"
for i in ${OLD_TEMPLATES}; do
if [[ -f "${i}" ]]; then
TEMPLATES_TO_DELETE="${i} ${TEMPLATES_TO_DELETE}"
fi fi
# Stage 2 - Delete old templates done
OLD_TEMPLATES=".github/ISSUE_TEMPLATE.md .github/ISSUE_TEMPLATE/issue.bug.md .github/ISSUE_TEMPLATE/issue.feature.md .github/workflows/call_invalid_helper.yml .github/workflows/stale.yml Dockerfile.armhf" if [[ -n "${TEMPLATES_TO_DELETE}" ]]; then
for i in ${OLD_TEMPLATES}; do mkdir -p ${TEMPDIR}/repo
if [[ -f "${i}" ]]; then git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
TEMPLATES_TO_DELETE="${i} ${TEMPLATES_TO_DELETE}" cd ${TEMPDIR}/repo/${LS_REPO}
fi git checkout -f master
for i in ${TEMPLATES_TO_DELETE}; do
git rm "${i}"
done done
if [[ -n "${TEMPLATES_TO_DELETE}" ]]; then git commit -m 'Bot Updating Templated Files'
mkdir -p ${TEMPDIR}/repo git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO} git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master
cd ${TEMPDIR}/repo/${LS_REPO} echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
git checkout -f master echo "Deleting old/deprecated templates and exiting build, new one will trigger based on commit"
for i in ${TEMPLATES_TO_DELETE}; do rm -Rf ${TEMPDIR}
git rm "${i}" exit 0
done else
git commit -m 'Bot Updating Templated Files' echo "No templates to delete"
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master fi
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master echo "Starting Stage 3 - Update templates"
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} CURRENTHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8)
echo "Deleting old and deprecated templates" cd ${TEMPDIR}/docker-${CONTAINER_NAME}
rm -Rf ${TEMPDIR} NEWHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8)
exit 0 if [[ "${CURRENTHASH}" != "${NEWHASH}" ]] || ! grep -q '.jenkins-external' "${WORKSPACE}/.gitignore" 2>/dev/null; then
else mkdir -p ${TEMPDIR}/repo
echo "No templates to delete" git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
fi cd ${TEMPDIR}/repo/${LS_REPO}
# Stage 3 - Update templates git checkout -f master
CURRENTHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8)
cd ${TEMPDIR}/docker-${CONTAINER_NAME} cd ${TEMPDIR}/docker-${CONTAINER_NAME}
NEWHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8) mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/workflows
if [[ "${CURRENTHASH}" != "${NEWHASH}" ]] || ! grep -q '.jenkins-external' "${WORKSPACE}/.gitignore" 2>/dev/null; then mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE
mkdir -p ${TEMPDIR}/repo cp --parents ${TEMPLATED_FILES} ${TEMPDIR}/repo/${LS_REPO}/ || :
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO} cp --parents readme-vars.yml ${TEMPDIR}/repo/${LS_REPO}/ || :
cd ${TEMPDIR}/repo/${LS_REPO} cd ${TEMPDIR}/repo/${LS_REPO}/
git checkout -f master if ! grep -q '.jenkins-external' .gitignore 2>/dev/null; then
cd ${TEMPDIR}/docker-${CONTAINER_NAME} echo ".jenkins-external" >> .gitignore
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/workflows git add .gitignore
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE fi
cp --parents ${TEMPLATED_FILES} ${TEMPDIR}/repo/${LS_REPO}/ || : git add readme-vars.yml ${TEMPLATED_FILES}
cp --parents readme-vars.yml ${TEMPDIR}/repo/${LS_REPO}/ || : git commit -m 'Bot Updating Templated Files'
cd ${TEMPDIR}/repo/${LS_REPO}/ git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master
if ! grep -q '.jenkins-external' .gitignore 2>/dev/null; then git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master
echo ".jenkins-external" >> .gitignore echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
git add .gitignore echo "Updating templates and exiting build, new one will trigger based on commit"
fi rm -Rf ${TEMPDIR}
git add readme-vars.yml ${TEMPLATED_FILES} exit 0
git commit -m 'Bot Updating Templated Files' else
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master echo "false" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master echo "No templates to update"
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} fi
echo "Starting Stage 4 - External repo updates: Docs, Unraid Template and Readme Sync to Docker Hub"
mkdir -p ${TEMPDIR}/docs
git clone https://github.com/linuxserver/docker-documentation.git ${TEMPDIR}/docs/docker-documentation
if [[ "${BRANCH_NAME}" == "${GH_DEFAULT_BRANCH}" ]] && [[ (! -f ${TEMPDIR}/docs/docker-documentation/docs/images/docker-${CONTAINER_NAME}.md) || ("$(md5sum ${TEMPDIR}/docs/docker-documentation/docs/images/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')") ]]; then
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/docker-${CONTAINER_NAME}.md ${TEMPDIR}/docs/docker-documentation/docs/images/
cd ${TEMPDIR}/docs/docker-documentation
GH_DOCS_DEFAULT_BRANCH=$(git remote show origin | grep "HEAD branch:" | sed 's|.*HEAD branch: ||')
git add docs/images/docker-${CONTAINER_NAME}.md
echo "Updating docs repo"
git commit -m 'Bot Updating Documentation'
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH} --rebase
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH} || \
(MAXWAIT="10" && echo "Push to docs failed, trying again in ${MAXWAIT} seconds" && \
sleep $((RANDOM % MAXWAIT)) && \
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH} --rebase && \
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH})
else
echo "Docs update not needed, skipping"
fi
mkdir -p ${TEMPDIR}/unraid
git clone https://github.com/linuxserver/docker-templates.git ${TEMPDIR}/unraid/docker-templates
git clone https://github.com/linuxserver/templates.git ${TEMPDIR}/unraid/templates
if [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-logo.png ]]; then
sed -i "s|master/linuxserver.io/img/linuxserver-ls-logo.png|master/linuxserver.io/img/${CONTAINER_NAME}-logo.png|" ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml
elif [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-icon.png ]]; then
sed -i "s|master/linuxserver.io/img/linuxserver-ls-logo.png|master/linuxserver.io/img/${CONTAINER_NAME}-icon.png|" ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml
fi
if [[ "${BRANCH_NAME}" == "${GH_DEFAULT_BRANCH}" ]] && [[ (! -f ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml) || ("$(md5sum ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml | awk '{ print $1 }')") ]]; then
echo "Updating Unraid template"
cd ${TEMPDIR}/unraid/templates/
GH_TEMPLATES_DEFAULT_BRANCH=$(git remote show origin | grep "HEAD branch:" | sed 's|.*HEAD branch: ||')
if grep -wq "${CONTAINER_NAME}" ${TEMPDIR}/unraid/templates/unraid/ignore.list && [[ -f ${TEMPDIR}/unraid/templates/unraid/deprecated/${CONTAINER_NAME}.xml ]]; then
echo "Image is on the ignore list, and already in the deprecation folder."
elif grep -wq "${CONTAINER_NAME}" ${TEMPDIR}/unraid/templates/unraid/ignore.list; then
echo "Image is on the ignore list, marking Unraid template as deprecated"
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml ${TEMPDIR}/unraid/templates/unraid/
git add -u unraid/${CONTAINER_NAME}.xml
git mv unraid/${CONTAINER_NAME}.xml unraid/deprecated/${CONTAINER_NAME}.xml || :
git commit -m 'Bot Moving Deprecated Unraid Template' || :
else else
echo "false" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml ${TEMPDIR}/unraid/templates/unraid/
git add unraid/${CONTAINER_NAME}.xml
git commit -m 'Bot Updating Unraid Template'
fi fi
mkdir -p ${TEMPDIR}/docs git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git ${GH_TEMPLATES_DEFAULT_BRANCH} --rebase
git clone https://github.com/linuxserver/docker-documentation.git ${TEMPDIR}/docs/docker-documentation git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git ${GH_TEMPLATES_DEFAULT_BRANCH} || \
if [[ "${BRANCH_NAME}" == "${GH_DEFAULT_BRANCH}" ]] && [[ (! -f ${TEMPDIR}/docs/docker-documentation/docs/images/docker-${CONTAINER_NAME}.md) || ("$(md5sum ${TEMPDIR}/docs/docker-documentation/docs/images/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')") ]]; then (MAXWAIT="10" && echo "Push to unraid templates failed, trying again in ${MAXWAIT} seconds" && \
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/docker-${CONTAINER_NAME}.md ${TEMPDIR}/docs/docker-documentation/docs/images/ sleep $((RANDOM % MAXWAIT)) && \
cd ${TEMPDIR}/docs/docker-documentation git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git ${GH_TEMPLATES_DEFAULT_BRANCH} --rebase && \
GH_DOCS_DEFAULT_BRANCH=$(git remote show origin | grep "HEAD branch:" | sed 's|.*HEAD branch: ||') git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git ${GH_TEMPLATES_DEFAULT_BRANCH})
git add docs/images/docker-${CONTAINER_NAME}.md else
git commit -m 'Bot Updating Documentation' echo "No updates to Unraid template needed, skipping"
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH} fi
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH} if [[ "${BRANCH_NAME}" == "${GH_DEFAULT_BRANCH}" ]]; then
if [[ $(cat ${TEMPDIR}/docker-${CONTAINER_NAME}/README.md | wc -m) -gt 25000 ]]; then
echo "Readme is longer than 25,000 characters. Syncing the lite version to Docker Hub"
DH_README_SYNC_PATH="${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/README.lite"
else
echo "Syncing readme to Docker Hub"
DH_README_SYNC_PATH="${TEMPDIR}/docker-${CONTAINER_NAME}/README.md"
fi fi
mkdir -p ${TEMPDIR}/unraid if curl -s https://hub.docker.com/v2/namespaces/${DOCKERHUB_IMAGE%%/*}/repositories/${DOCKERHUB_IMAGE##*/}/tags | jq -r '.message' | grep -q 404; then
git clone https://github.com/linuxserver/docker-templates.git ${TEMPDIR}/unraid/docker-templates echo "Docker Hub endpoint doesn't exist. Creating endpoint first."
git clone https://github.com/linuxserver/templates.git ${TEMPDIR}/unraid/templates DH_TOKEN=$(curl -d '{"username":"linuxserverci", "password":"'${DOCKERHUB_TOKEN}'"}' -H "Content-Type: application/json" -X POST https://hub.docker.com/v2/users/login | jq -r '.token')
if [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-logo.png ]]; then
sed -i "s|master/linuxserver.io/img/linuxserver-ls-logo.png|master/linuxserver.io/img/${CONTAINER_NAME}-logo.png|" ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml
elif [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-icon.png ]]; then
sed -i "s|master/linuxserver.io/img/linuxserver-ls-logo.png|master/linuxserver.io/img/${CONTAINER_NAME}-icon.png|" ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml
fi
if [[ "${BRANCH_NAME}" == "${GH_DEFAULT_BRANCH}" ]] && [[ (! -f ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml) || ("$(md5sum ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml | awk '{ print $1 }')") ]]; then
cd ${TEMPDIR}/unraid/templates/
GH_TEMPLATES_DEFAULT_BRANCH=$(git remote show origin | grep "HEAD branch:" | sed 's|.*HEAD branch: ||')
if grep -wq "${CONTAINER_NAME}" ${TEMPDIR}/unraid/templates/unraid/ignore.list; then
echo "Image is on the ignore list, marking Unraid template as deprecated"
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml ${TEMPDIR}/unraid/templates/unraid/
git add -u unraid/${CONTAINER_NAME}.xml
git mv unraid/${CONTAINER_NAME}.xml unraid/deprecated/${CONTAINER_NAME}.xml || :
git commit -m 'Bot Moving Deprecated Unraid Template' || :
else
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml ${TEMPDIR}/unraid/templates/unraid/
git add unraid/${CONTAINER_NAME}.xml
git commit -m 'Bot Updating Unraid Template'
fi
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git ${GH_TEMPLATES_DEFAULT_BRANCH}
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git ${GH_TEMPLATES_DEFAULT_BRANCH}
fi
# Stage 4 - Sync Readme to Docker Hub
if [[ "${BRANCH_NAME}" == "${GH_DEFAULT_BRANCH}" ]]; then
if [[ $(cat ${TEMPDIR}/docker-${CONTAINER_NAME}/README.md | wc -m) > 25000 ]]; then
echo "Readme is longer than 25,000 characters. Syncing the lite version to Docker Hub"
DH_README_SYNC_PATH="${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/README.lite"
else
echo "Syncing readme to Docker Hub"
DH_README_SYNC_PATH="${TEMPDIR}/docker-${CONTAINER_NAME}/README.md"
fi
DH_TOKEN=$(curl -d '{"username":"'${DOCKERUSER}'", "password":"'${DOCKERHUB_TOKEN}'"}' -H "Content-Type: application/json" -X POST https://hub.docker.com/v2/users/login | jq -r '.token')
curl -s \ curl -s \
-H "Authorization: JWT ${DH_TOKEN}" \ -H "Authorization: JWT ${DH_TOKEN}" \
-H "Content-Type: application/json" \ -H "Content-Type: application/json" \
-X PATCH \ -X POST \
-d "{\\"full_description\\":$(jq -Rsa . ${DH_README_SYNC_PATH})}" \ -d '{"name":"'${DOCKERHUB_IMAGE##*/}'", "namespace":"'${DOCKERHUB_IMAGE%%/*}'"}' \
https://hub.docker.com/v2/repositories/${DOCKERHUB_IMAGE} || : https://hub.docker.com/v2/repositories/ || :
else
echo "Not the default Github branch. Skipping readme sync to Docker Hub."
fi fi
rm -Rf ${TEMPDIR}''' DH_TOKEN=$(curl -d '{"username":"linuxserverci", "password":"'${DOCKERHUB_TOKEN}'"}' -H "Content-Type: application/json" -X POST https://hub.docker.com/v2/users/login | jq -r '.token')
script{ curl -s \
env.FILES_UPDATED = sh( -H "Authorization: JWT ${DH_TOKEN}" \
script: '''cat /tmp/${COMMIT_SHA}-${BUILD_NUMBER}''', -H "Content-Type: application/json" \
returnStdout: true).trim() -X PATCH \
} -d "{\\"full_description\\":$(jq -Rsa . ${DH_README_SYNC_PATH})}" \
https://hub.docker.com/v2/repositories/${DOCKERHUB_IMAGE} || :
else
echo "Not the default Github branch. Skipping readme sync to Docker Hub."
fi
rm -Rf ${TEMPDIR}'''
script{
env.FILES_UPDATED = sh(
script: '''cat /tmp/${COMMIT_SHA}-${BUILD_NUMBER}''',
returnStdout: true).trim()
} }
} }
} }
@@ -459,14 +489,16 @@ pipeline {
} }
steps{ steps{
sh '''curl -H "Content-Type: application/json" -H "Private-Token: ${GITLAB_TOKEN}" -X POST https://gitlab.com/api/v4/projects \ sh '''curl -H "Content-Type: application/json" -H "Private-Token: ${GITLAB_TOKEN}" -X POST https://gitlab.com/api/v4/projects \
-d '{"namespace_id":'${GITLAB_NAMESPACE}',\ -d '{"namespace_id":'${GITLAB_NAMESPACE}',\
"name":"'${LS_REPO}'", "name":"'${LS_REPO}'",
"mirror":true,\ "mirror":true,\
"import_url":"https://github.com/linuxserver/'${LS_REPO}'.git",\ "import_url":"https://github.com/linuxserver/'${LS_REPO}'.git",\
"issues_access_level":"disabled",\ "issues_access_level":"disabled",\
"merge_requests_access_level":"disabled",\ "merge_requests_access_level":"disabled",\
"repository_access_level":"enabled",\ "repository_access_level":"enabled",\
"visibility":"public"}' ''' "visibility":"public"}' '''
sh '''curl -H "Private-Token: ${GITLAB_TOKEN}" -X PUT "https://gitlab.com/api/v4/projects/Linuxserver.io%2F${LS_REPO}" \
-d "mirror=true&import_url=https://github.com/linuxserver/${LS_REPO}.git" '''
} }
} }
/* ############### /* ###############
@@ -582,7 +614,7 @@ pipeline {
sh '''#! /bin/bash sh '''#! /bin/bash
set -e set -e
TEMPDIR=$(mktemp -d) TEMPDIR=$(mktemp -d)
if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" != "true" ]; then
LOCAL_CONTAINER=${IMAGE}:amd64-${META_TAG} LOCAL_CONTAINER=${IMAGE}:amd64-${META_TAG}
else else
LOCAL_CONTAINER=${IMAGE}:${META_TAG} LOCAL_CONTAINER=${IMAGE}:${META_TAG}
@@ -707,12 +739,6 @@ pipeline {
} }
steps { steps {
withCredentials([ withCredentials([
[
$class: 'UsernamePasswordMultiBinding',
credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207',
usernameVariable: 'DOCKERUSER',
passwordVariable: 'DOCKERPASS'
],
[ [
$class: 'UsernamePasswordMultiBinding', $class: 'UsernamePasswordMultiBinding',
credentialsId: 'Quay.io-Robot', credentialsId: 'Quay.io-Robot',
@@ -723,7 +749,7 @@ pipeline {
retry(5) { retry(5) {
sh '''#! /bin/bash sh '''#! /bin/bash
set -e set -e
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin echo $DOCKERHUB_TOKEN | docker login -u linuxserverci --password-stdin
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
@@ -754,12 +780,6 @@ pipeline {
} }
steps { steps {
withCredentials([ withCredentials([
[
$class: 'UsernamePasswordMultiBinding',
credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207',
usernameVariable: 'DOCKERUSER',
passwordVariable: 'DOCKERPASS'
],
[ [
$class: 'UsernamePasswordMultiBinding', $class: 'UsernamePasswordMultiBinding',
credentialsId: 'Quay.io-Robot', credentialsId: 'Quay.io-Robot',
@@ -770,7 +790,7 @@ pipeline {
retry(5) { retry(5) {
sh '''#! /bin/bash sh '''#! /bin/bash
set -e set -e
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin echo $DOCKERHUB_TOKEN | docker login -u linuxserverci --password-stdin
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin

View File

@@ -80,6 +80,12 @@ Due to issues with CSRF and port mapping, should you require to alter the port f
For example, to set the port to 8090 you need to set -p 8090:8090 and -e WEBUI_PORT=8090 For example, to set the port to 8090 you need to set -p 8090:8090 and -e WEBUI_PORT=8090
### TORRENTING_PORT
A bittorrent client can be an active or a passive node. Running your client as an active node has the advantage of being able to connect to both active and passive peers, and can potentially increase the number of incoming connections. This requires an open port on the host machine which might differ from container's internal one.
Similarly to the WEBUI_PORT, to set the port to 6887 you need to pass -p 6887:6887, -p 6887:6887/udp and -e TORRENTING_PORT=6887 arguments to Docker.
## Usage ## Usage
To help you get started creating a container from this image you can either use docker-compose or the docker cli. To help you get started creating a container from this image you can either use docker-compose or the docker cli.
@@ -97,6 +103,7 @@ services:
- PGID=1000 - PGID=1000
- TZ=Etc/UTC - TZ=Etc/UTC
- WEBUI_PORT=8080 - WEBUI_PORT=8080
- TORRENTING_PORT=6881
volumes: volumes:
- /path/to/appdata/config:/config - /path/to/appdata/config:/config
- /path/to/downloads:/downloads - /path/to/downloads:/downloads
@@ -116,6 +123,7 @@ docker run -d \
-e PGID=1000 \ -e PGID=1000 \
-e TZ=Etc/UTC \ -e TZ=Etc/UTC \
-e WEBUI_PORT=8080 \ -e WEBUI_PORT=8080 \
-e TORRENTING_PORT=6881 \
-p 8080:8080 \ -p 8080:8080 \
-p 6881:6881 \ -p 6881:6881 \
-p 6881:6881/udp \ -p 6881:6881/udp \
@@ -138,6 +146,7 @@ Containers are configured using parameters passed at runtime (such as those abov
| `-e PGID=1000` | for GroupID - 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). | | `-e TZ=Etc/UTC` | specify a timezone to use, see this [list](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). |
| `-e WEBUI_PORT=8080` | for changing the port of the web UI, see below for explanation | | `-e WEBUI_PORT=8080` | for changing the port of the web UI, see below for explanation |
| `-e TORRENTING_PORT=6881` | for changing the port of tcp/udp connection, see below for explanation |
| `-v /config` | Contains all relevant configuration files. | | `-v /config` | Contains all relevant configuration files. |
| `-v /downloads` | Location of downloads on disk. | | `-v /downloads` | Location of downloads on disk. |
@@ -302,6 +311,9 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
## Versions ## Versions
* **14.02.24:** - Only set/override torrenting port if the optional env var is set.
* **14.02.24:** - Add torrenting port support.
* **31.01.24:** - Remove obsolete compat packages.
* **25.12.23:** - Only pull stable releases of qbittorrent-cli. * **25.12.23:** - Only pull stable releases of qbittorrent-cli.
* **07.10.23:** - Install unrar from [linuxserver repo](https://github.com/linuxserver/docker-unrar). * **07.10.23:** - Install unrar from [linuxserver repo](https://github.com/linuxserver/docker-unrar).
* **10.08.23:** - Bump unrar to 6.2.10. * **10.08.23:** - Bump unrar to 6.2.10.

View File

@@ -1,262 +1,260 @@
NAME VERSION TYPE NAME VERSION TYPE
7zip 23.01-r0 apk 7zip 23.01-r0 apk
Alba.CsConsoleFormat 1.0.0.89 dotnet Alba.CsConsoleFormat 1.0.0.89 dotnet
BencodeNET 2.3.0.0 dotnet BencodeNET 2.3.0.0 dotnet
Bouncy Castle for .NET (netstandard2.0) 1.8.8.2 dotnet Bouncy Castle for .NET (netstandard2.0) 1.8.8.2 dotnet
CommandLineUtils 2.4.4+3c2a4909757a51602dcca9b961d577511b85fd31.3c2a4909757a51602dcca9b961d577511b85fd31 dotnet CommandLineUtils 2.4.4+3c2a4909757a51602dcca9b961d577511b85fd31.3c2a4909757a51602dcca9b961d577511b85fd31 dotnet
CsvHelper 12.0.0.0 dotnet CsvHelper 12.1.2 dotnet
Json.NET 13.0.3.27908 dotnet Json.NET 13.0.3.27908 dotnet
Microsoft.CSharp 4.700.22.56512 dotnet Microsoft.CSharp 4.700.22.56512 dotnet
Microsoft.VisualBasic 4.700.22.56512 dotnet Microsoft.VisualBasic 4.700.22.56512 dotnet
Microsoft.VisualBasic.Core 4.700.22.56512 dotnet Microsoft.VisualBasic.Core 4.700.22.56512 dotnet
Microsoft.Win32.Primitives 4.700.22.56512 dotnet Microsoft.Win32.Primitives 4.700.22.56512 dotnet
Microsoft.Win32.Registry 4.700.22.56512 dotnet Microsoft.Win32.Registry 4.700.22.56512 dotnet
Mono.Posix.NETStandard 1.0.0.0 dotnet Mono.Posix.NETStandard 1.0.0.0 dotnet
NJsonSchema 9.14.1.0 dotnet NJsonSchema 9.14.1.0 dotnet
Portable.Xaml.dll 0.18.0.0 dotnet Portable.Xaml.dll 0.18.0.0 dotnet
QBittorrent.Client 1.9.23349.1 dotnet QBittorrent.Client 1.9.23349.1 dotnet
System 4.700.22.56512 dotnet System 4.700.22.56512 dotnet
System.AppContext 4.700.22.56512 dotnet System.AppContext 4.700.22.56512 dotnet
System.Buffers 4.700.22.56512 dotnet System.Buffers 4.700.22.56512 dotnet
System.Collections 4.700.22.56512 dotnet System.Collections 4.700.22.56512 dotnet
System.Collections.Concurrent 4.700.22.56512 dotnet System.Collections.Concurrent 4.700.22.56512 dotnet
System.Collections.Immutable 4.700.22.56512 dotnet System.Collections.Immutable 4.700.22.56512 dotnet
System.Collections.NonGeneric 4.700.22.56512 dotnet System.Collections.NonGeneric 4.700.22.56512 dotnet
System.Collections.Specialized 4.700.22.56512 dotnet System.Collections.Specialized 4.700.22.56512 dotnet
System.ComponentModel 4.700.22.56512 dotnet System.ComponentModel 4.700.22.56512 dotnet
System.ComponentModel.Annotations 4.700.22.56512 dotnet System.ComponentModel.Annotations 4.700.22.56512 dotnet
System.ComponentModel.DataAnnotations 4.700.22.56512 dotnet System.ComponentModel.DataAnnotations 4.700.22.56512 dotnet
System.ComponentModel.EventBasedAsync 4.700.22.56512 dotnet System.ComponentModel.EventBasedAsync 4.700.22.56512 dotnet
System.ComponentModel.Primitives 4.700.22.56512 dotnet System.ComponentModel.Primitives 4.700.22.56512 dotnet
System.ComponentModel.TypeConverter 4.700.22.56512 dotnet System.ComponentModel.TypeConverter 4.700.22.56512 dotnet
System.Configuration 4.700.22.56512 dotnet System.Configuration 4.700.22.56512 dotnet
System.Console 4.700.22.56512 dotnet System.Console 4.700.22.56512 dotnet
System.Core 4.700.22.56512 dotnet System.Core 4.700.22.56512 dotnet
System.Data 4.700.22.56512 dotnet System.Data 4.700.22.56512 dotnet
System.Data.Common 4.700.22.56512 dotnet System.Data.Common 4.700.22.56512 dotnet
System.Data.DataSetExtensions 4.700.22.56512 dotnet System.Data.DataSetExtensions 4.700.22.56512 dotnet
System.Diagnostics.Contracts 4.700.22.56512 dotnet System.Diagnostics.Contracts 4.700.22.56512 dotnet
System.Diagnostics.Debug 4.700.22.56512 dotnet System.Diagnostics.Debug 4.700.22.56512 dotnet
System.Diagnostics.DiagnosticSource 4.700.22.56512 dotnet System.Diagnostics.DiagnosticSource 4.700.22.56512 dotnet
System.Diagnostics.FileVersionInfo 4.700.22.56512 dotnet System.Diagnostics.FileVersionInfo 4.700.22.56512 dotnet
System.Diagnostics.Process 4.700.22.56512 dotnet System.Diagnostics.Process 4.700.22.56512 dotnet
System.Diagnostics.StackTrace 4.700.22.56512 dotnet System.Diagnostics.StackTrace 4.700.22.56512 dotnet
System.Diagnostics.TextWriterTraceListener 4.700.22.56512 dotnet System.Diagnostics.TextWriterTraceListener 4.700.22.56512 dotnet
System.Diagnostics.Tools 4.700.22.56512 dotnet System.Diagnostics.Tools 4.700.22.56512 dotnet
System.Diagnostics.TraceSource 4.700.22.56512 dotnet System.Diagnostics.TraceSource 4.700.22.56512 dotnet
System.Diagnostics.Tracing 4.700.22.56512 dotnet System.Diagnostics.Tracing 4.700.22.56512 dotnet
System.Drawing 4.700.22.56512 dotnet System.Drawing 4.700.22.56512 dotnet
System.Drawing.Primitives 4.700.22.56512 dotnet System.Drawing.Primitives 4.700.22.56512 dotnet
System.Dynamic.Runtime 4.700.22.56512 dotnet System.Dynamic.Runtime 4.700.22.56512 dotnet
System.Globalization 4.700.22.56512 dotnet System.Globalization 4.700.22.56512 dotnet
System.Globalization.Calendars 4.700.22.56512 dotnet System.Globalization.Calendars 4.700.22.56512 dotnet
System.Globalization.Extensions 4.700.22.56512 dotnet System.Globalization.Extensions 4.700.22.56512 dotnet
System.IO 4.700.22.56512 dotnet System.IO 4.700.22.56512 dotnet
System.IO.Compression 4.700.22.56512 dotnet System.IO.Compression 4.700.22.56512 dotnet
System.IO.Compression.Brotli 4.700.22.56512 dotnet System.IO.Compression.Brotli 4.700.22.56512 dotnet
System.IO.Compression.FileSystem 4.700.22.56512 dotnet System.IO.Compression.FileSystem 4.700.22.56512 dotnet
System.IO.Compression.ZipFile 4.700.22.56512 dotnet System.IO.Compression.ZipFile 4.700.22.56512 dotnet
System.IO.FileSystem 4.700.22.56512 dotnet System.IO.FileSystem 4.700.22.56512 dotnet
System.IO.FileSystem.AccessControl 4.700.22.56512 dotnet System.IO.FileSystem.AccessControl 4.700.22.56512 dotnet
System.IO.FileSystem.DriveInfo 4.700.22.56512 dotnet System.IO.FileSystem.DriveInfo 4.700.22.56512 dotnet
System.IO.FileSystem.Primitives 4.700.22.56512 dotnet System.IO.FileSystem.Primitives 4.700.22.56512 dotnet
System.IO.FileSystem.Watcher 4.700.22.56512 dotnet System.IO.FileSystem.Watcher 4.700.22.56512 dotnet
System.IO.IsolatedStorage 4.700.22.56512 dotnet System.IO.IsolatedStorage 4.700.22.56512 dotnet
System.IO.MemoryMappedFiles 4.700.22.56512 dotnet System.IO.MemoryMappedFiles 4.700.22.56512 dotnet
System.IO.Pipes 4.700.22.56512 dotnet System.IO.Pipes 4.700.22.56512 dotnet
System.IO.Pipes.AccessControl 4.700.22.56512 dotnet System.IO.Pipes.AccessControl 4.700.22.56512 dotnet
System.IO.UnmanagedMemoryStream 4.700.22.56512 dotnet System.IO.UnmanagedMemoryStream 4.700.22.56512 dotnet
System.Linq 4.700.22.56512 dotnet System.Linq 4.700.22.56512 dotnet
System.Linq.Expressions 4.700.22.56512 dotnet System.Linq.Expressions 4.700.22.56512 dotnet
System.Linq.Parallel 4.700.22.56512 dotnet System.Linq.Parallel 4.700.22.56512 dotnet
System.Linq.Queryable 4.700.22.56512 dotnet System.Linq.Queryable 4.700.22.56512 dotnet
System.Memory 4.700.22.56512 dotnet System.Memory 4.700.22.56512 dotnet
System.Net 4.700.22.56512 dotnet System.Net 4.700.22.56512 dotnet
System.Net.Http 4.700.22.56512 dotnet System.Net.Http 4.700.22.56512 dotnet
System.Net.HttpListener 4.700.22.56512 dotnet System.Net.HttpListener 4.700.22.56512 dotnet
System.Net.IPNetwork 2.5.235 dotnet System.Net.IPNetwork 2.5.235 dotnet
System.Net.Mail 4.700.22.56512 dotnet System.Net.Mail 4.700.22.56512 dotnet
System.Net.NameResolution 4.700.22.56512 dotnet System.Net.NameResolution 4.700.22.56512 dotnet
System.Net.NetworkInformation 4.700.22.56512 dotnet System.Net.NetworkInformation 4.700.22.56512 dotnet
System.Net.Ping 4.700.22.56512 dotnet System.Net.Ping 4.700.22.56512 dotnet
System.Net.Primitives 4.700.22.56512 dotnet System.Net.Primitives 4.700.22.56512 dotnet
System.Net.Requests 4.700.22.56512 dotnet System.Net.Requests 4.700.22.56512 dotnet
System.Net.Security 4.700.22.56512 dotnet System.Net.Security 4.700.22.56512 dotnet
System.Net.ServicePoint 4.700.22.56512 dotnet System.Net.ServicePoint 4.700.22.56512 dotnet
System.Net.Sockets 4.700.22.56512 dotnet System.Net.Sockets 4.700.22.56512 dotnet
System.Net.WebClient 4.700.22.56512 dotnet System.Net.WebClient 4.700.22.56512 dotnet
System.Net.WebHeaderCollection 4.700.22.56512 dotnet System.Net.WebHeaderCollection 4.700.22.56512 dotnet
System.Net.WebProxy 4.700.22.56512 dotnet System.Net.WebProxy 4.700.22.56512 dotnet
System.Net.WebSockets 4.700.22.56512 dotnet System.Net.WebSockets 4.700.22.56512 dotnet
System.Net.WebSockets.Client 4.700.22.56512 dotnet System.Net.WebSockets.Client 4.700.22.56512 dotnet
System.Numerics 4.700.22.56512 dotnet System.Numerics 4.700.22.56512 dotnet
System.Numerics.Vectors 4.700.22.56512 dotnet System.Numerics.Vectors 4.700.22.56512 dotnet
System.ObjectModel 4.700.22.56512 dotnet System.ObjectModel 4.700.22.56512 dotnet
System.Private.CoreLib 3.1.32-servicing.22559.2+c17d273aa03d4b9d14c92248a91f0d0faa881b98 dotnet System.Private.CoreLib 4.700.22.55902 dotnet
System.Private.DataContractSerialization 4.700.22.56512 dotnet System.Private.DataContractSerialization 4.700.22.56512 dotnet
System.Private.Uri 4.700.22.56512 dotnet System.Private.Uri 4.700.22.56512 dotnet
System.Private.Xml 4.700.22.56512 dotnet System.Private.Xml 4.700.22.56512 dotnet
System.Private.Xml.Linq 4.700.22.56512 dotnet System.Private.Xml.Linq 4.700.22.56512 dotnet
System.Reflection 4.700.22.56512 dotnet System.Reflection 4.700.22.56512 dotnet
System.Reflection.DispatchProxy 4.700.22.56512 dotnet System.Reflection.DispatchProxy 4.700.22.56512 dotnet
System.Reflection.Emit 4.700.22.56512 dotnet System.Reflection.Emit 4.700.22.56512 dotnet
System.Reflection.Emit.ILGeneration 4.700.22.56512 dotnet System.Reflection.Emit.ILGeneration 4.700.22.56512 dotnet
System.Reflection.Emit.Lightweight 4.700.22.56512 dotnet System.Reflection.Emit.Lightweight 4.700.22.56512 dotnet
System.Reflection.Extensions 4.700.22.56512 dotnet System.Reflection.Extensions 4.700.22.56512 dotnet
System.Reflection.Metadata 4.700.22.56512 dotnet System.Reflection.Metadata 4.700.22.56512 dotnet
System.Reflection.Primitives 4.700.22.56512 dotnet System.Reflection.Primitives 4.700.22.56512 dotnet
System.Reflection.TypeExtensions 4.700.22.56512 dotnet System.Reflection.TypeExtensions 4.700.22.56512 dotnet
System.Resources.Reader 4.700.22.56512 dotnet System.Resources.Reader 4.700.22.56512 dotnet
System.Resources.ResourceManager 4.700.22.56512 dotnet System.Resources.ResourceManager 4.700.22.56512 dotnet
System.Resources.Writer 4.700.22.56512 dotnet System.Resources.Writer 4.700.22.56512 dotnet
System.Runtime 4.700.22.56512 dotnet System.Runtime 4.700.22.56512 dotnet
System.Runtime.CompilerServices.VisualC 4.700.22.56512 dotnet System.Runtime.CompilerServices.VisualC 4.700.22.56512 dotnet
System.Runtime.Extensions 4.700.22.56512 dotnet System.Runtime.Extensions 4.700.22.56512 dotnet
System.Runtime.Handles 4.700.22.56512 dotnet System.Runtime.Handles 4.700.22.56512 dotnet
System.Runtime.InteropServices 4.700.22.56512 dotnet System.Runtime.InteropServices 4.700.22.56512 dotnet
System.Runtime.InteropServices.RuntimeInformation 4.700.22.56512 dotnet System.Runtime.InteropServices.RuntimeInformation 4.700.22.56512 dotnet
System.Runtime.InteropServices.WindowsRuntime 4.700.22.56512 dotnet System.Runtime.InteropServices.WindowsRuntime 4.700.22.56512 dotnet
System.Runtime.Intrinsics 4.700.22.56512 dotnet System.Runtime.Intrinsics 4.700.22.56512 dotnet
System.Runtime.Loader 4.700.22.56512 dotnet System.Runtime.Loader 4.700.22.56512 dotnet
System.Runtime.Numerics 4.700.22.56512 dotnet System.Runtime.Numerics 4.700.22.56512 dotnet
System.Runtime.Serialization 4.700.22.56512 dotnet System.Runtime.Serialization 4.700.22.56512 dotnet
System.Runtime.Serialization.Formatters 4.700.22.56512 dotnet System.Runtime.Serialization.Formatters 4.700.22.56512 dotnet
System.Runtime.Serialization.Json 4.700.22.56512 dotnet System.Runtime.Serialization.Json 4.700.22.56512 dotnet
System.Runtime.Serialization.Primitives 4.700.22.56512 dotnet System.Runtime.Serialization.Primitives 4.700.22.56512 dotnet
System.Runtime.Serialization.Xml 4.700.22.56512 dotnet System.Runtime.Serialization.Xml 4.700.22.56512 dotnet
System.Runtime.WindowsRuntime 4.700.22.56512 dotnet System.Runtime.WindowsRuntime 4.700.22.56512 dotnet
System.Runtime.WindowsRuntime.UI.Xaml 4.700.22.56512 dotnet System.Runtime.WindowsRuntime.UI.Xaml 4.700.22.56512 dotnet
System.Security 4.700.22.56512 dotnet System.Security 4.700.22.56512 dotnet
System.Security.AccessControl 4.700.22.56512 dotnet System.Security.AccessControl 4.700.22.56512 dotnet
System.Security.Claims 4.700.22.56512 dotnet System.Security.Claims 4.700.22.56512 dotnet
System.Security.Cryptography.Algorithms 4.700.22.56512 dotnet System.Security.Cryptography.Algorithms 4.700.22.56512 dotnet
System.Security.Cryptography.Cng 4.700.22.56512 dotnet System.Security.Cryptography.Cng 4.700.22.56512 dotnet
System.Security.Cryptography.Csp 4.700.22.56512 dotnet System.Security.Cryptography.Csp 4.700.22.56512 dotnet
System.Security.Cryptography.Encoding 4.700.22.56512 dotnet System.Security.Cryptography.Encoding 4.700.22.56512 dotnet
System.Security.Cryptography.OpenSsl 4.700.22.56512 dotnet System.Security.Cryptography.OpenSsl 4.700.22.56512 dotnet
System.Security.Cryptography.Primitives 4.700.22.56512 dotnet System.Security.Cryptography.Primitives 4.700.22.56512 dotnet
System.Security.Cryptography.ProtectedData 5.0.20.51904 dotnet System.Security.Cryptography.ProtectedData 5.0.20.51904 dotnet
System.Security.Cryptography.X509Certificates 4.700.22.56512 dotnet System.Security.Cryptography.X509Certificates 4.700.22.56512 dotnet
System.Security.Principal 4.700.22.56512 dotnet System.Security.Principal 4.700.22.56512 dotnet
System.Security.Principal.Windows 4.700.22.56512 dotnet System.Security.Principal.Windows 4.700.22.56512 dotnet
System.Security.SecureString 4.700.22.56512 dotnet System.Security.SecureString 4.700.22.56512 dotnet
System.ServiceModel.Web 4.700.22.56512 dotnet System.ServiceModel.Web 4.700.22.56512 dotnet
System.ServiceProcess 4.700.22.56512 dotnet System.ServiceProcess 4.700.22.56512 dotnet
System.Text.Encoding 4.700.22.56512 dotnet System.Text.Encoding 4.700.22.56512 dotnet
System.Text.Encoding.CodePages 4.700.22.56512 dotnet System.Text.Encoding.CodePages 4.700.22.56512 dotnet
System.Text.Encoding.Extensions 4.700.22.56512 dotnet System.Text.Encoding.Extensions 4.700.22.56512 dotnet
System.Text.Encodings.Web 4.700.22.56512 dotnet System.Text.Encodings.Web 4.700.22.56512 dotnet
System.Text.Json 4.700.22.56512 dotnet System.Text.Json 4.700.22.56512 dotnet
System.Text.RegularExpressions 4.700.22.56512 dotnet System.Text.RegularExpressions 4.700.22.56512 dotnet
System.Threading 4.700.22.56512 dotnet System.Threading 4.700.22.56512 dotnet
System.Threading.Channels 4.700.22.56512 dotnet System.Threading.Channels 4.700.22.56512 dotnet
System.Threading.Overlapped 4.700.22.56512 dotnet System.Threading.Overlapped 4.700.22.56512 dotnet
System.Threading.Tasks 4.700.22.56512 dotnet System.Threading.Tasks 4.700.22.56512 dotnet
System.Threading.Tasks.Dataflow 4.700.22.56512 dotnet System.Threading.Tasks.Dataflow 4.700.22.56512 dotnet
System.Threading.Tasks.Extensions 4.700.22.56512 dotnet System.Threading.Tasks.Extensions 4.700.22.56512 dotnet
System.Threading.Tasks.Parallel 4.700.22.56512 dotnet System.Threading.Tasks.Parallel 4.700.22.56512 dotnet
System.Threading.Thread 4.700.22.56512 dotnet System.Threading.Thread 4.700.22.56512 dotnet
System.Threading.ThreadPool 4.700.22.56512 dotnet System.Threading.ThreadPool 4.700.22.56512 dotnet
System.Threading.Timer 4.700.22.56512 dotnet System.Threading.Timer 4.700.22.56512 dotnet
System.Transactions 4.700.22.56512 dotnet System.Transactions 4.700.22.56512 dotnet
System.Transactions.Local 4.700.22.56512 dotnet System.Transactions.Local 4.700.22.56512 dotnet
System.ValueTuple 4.700.22.56512 dotnet System.ValueTuple 4.700.22.56512 dotnet
System.Web 4.700.22.56512 dotnet System.Web 4.700.22.56512 dotnet
System.Web.HttpUtility 4.700.22.56512 dotnet System.Web.HttpUtility 4.700.22.56512 dotnet
System.Windows 4.700.22.56512 dotnet System.Windows 4.700.22.56512 dotnet
System.Xml 4.700.22.56512 dotnet System.Xml 4.700.22.56512 dotnet
System.Xml.Linq 4.700.22.56512 dotnet System.Xml.Linq 4.700.22.56512 dotnet
System.Xml.ReaderWriter 4.700.22.56512 dotnet System.Xml.ReaderWriter 4.700.22.56512 dotnet
System.Xml.Serialization 4.700.22.56512 dotnet System.Xml.Serialization 4.700.22.56512 dotnet
System.Xml.XDocument 4.700.22.56512 dotnet System.Xml.XDocument 4.700.22.56512 dotnet
System.Xml.XPath 4.700.22.56512 dotnet System.Xml.XPath 4.700.22.56512 dotnet
System.Xml.XPath.XDocument 4.700.22.56512 dotnet System.Xml.XPath.XDocument 4.700.22.56512 dotnet
System.Xml.XmlDocument 4.700.22.56512 dotnet System.Xml.XmlDocument 4.700.22.56512 dotnet
System.Xml.XmlSerializer 4.700.22.56512 dotnet System.Xml.XmlSerializer 4.700.22.56512 dotnet
WindowsBase 4.700.22.56512 dotnet WindowsBase 4.700.22.56512 dotnet
alpine-baselayout 3.5.3-r1 apk alpine-baselayout 3.6.5-r0 apk
alpine-baselayout-data 3.5.3-r1 apk alpine-baselayout-data 3.6.5-r0 apk
alpine-keys 2.4-r1 apk alpine-keys 2.4-r1 apk
apk-tools 2.14.0-r5 apk apk-tools 2.14.4-r0 apk
bash 5.2.26-r0 apk bash 5.2.26-r0 apk
brotli-libs 1.1.0-r1 apk brotli-libs 1.1.0-r2 apk
busybox 1.36.1-r19 apk busybox 1.36.1-r26 apk
busybox-binsh 1.36.1-r19 apk busybox-binsh 1.36.1-r26 apk
c-ares 1.25.0-r0 apk c-ares 1.28.1-r0 apk
ca-certificates 20230506-r1 apk ca-certificates 20240226-r0 apk
ca-certificates-bundle 20230506-r1 apk ca-certificates-bundle 20240226-r0 apk
coreutils 9.4-r1 apk catatonit 0.2.0-r0 apk
coreutils-env 9.4-r1 apk coreutils 9.5-r1 apk
coreutils-fmt 9.4-r1 apk coreutils-env 9.5-r1 apk
coreutils-sha512sum 9.4-r1 apk coreutils-fmt 9.5-r1 apk
curl 8.5.0-r1 apk coreutils-sha512sum 9.5-r1 apk
dbus-libs 1.14.10-r0 apk curl 8.7.1-r0 apk
double-conversion 3.3.0-r0 apk dbus-libs 1.14.10-r1 apk
duktape 2.7.0-r1 apk double-conversion 3.3.0-r0 apk
gdbm 1.23-r1 apk duktape 2.7.0-r1 apk
glib 2.78.3-r0 apk findutils 4.9.0-r5 apk
icu-data-en 74.2-r0 apk gdbm 1.23-r1 apk
icu-libs 74.2-r0 apk glib 2.80.2-r0 apk
jq 1.7.1-r0 apk icu-data-en 74.2-r0 apk
libacl 2.3.1-r4 apk icu-libs 74.2-r0 apk
libattr 2.5.2-r0 apk jq 1.7.1-r0 apk
libb2 0.98.1-r3 apk libacl 2.3.2-r0 apk
libblkid 2.39.3-r0 apk libattr 2.5.2-r0 apk
libbsd 0.11.8-r0 apk libb2 0.98.1-r3 apk
libbz2 1.0.8-r6 apk libblkid 2.40.1-r0 apk
libc-utils 0.7.2-r5 apk libbsd 0.12.2-r0 apk
libcrypto1.1 1.1.1w-r0 apk libbz2 1.0.8-r6 apk
libcrypto3 3.1.4-r4 apk libcrypto3 3.3.0-r1 apk
libcurl 8.5.0-r1 apk libcurl 8.7.1-r0 apk
libexpat 2.5.0-r2 apk libeconf 0.6.3-r0 apk
libffi 3.4.4-r3 apk libexpat 2.6.2-r0 apk
libgcc 13.2.1_git20231014-r0 apk libffi 3.4.6-r0 apk
libgomp 13.2.1_git20231014-r0 apk libgcc 13.2.1_git20240309-r0 apk
libidn2 2.3.4-r4 apk libgomp 13.2.1_git20240309-r0 apk
libintl 0.22.4-r0 apk libidn2 2.3.7-r0 apk
libmd 1.1.0-r0 apk libintl 0.22.5-r0 apk
libmount 2.39.3-r0 apk libmd 1.1.0-r0 apk
libncursesw 6.4_p20231125-r0 apk libmount 2.40.1-r0 apk
libpanelw 6.4_p20231125-r0 apk libncursesw 6.4_p20240420-r0 apk
libpcre2-16 10.42-r2 apk libpanelw 6.4_p20240420-r0 apk
libproc2 4.0.4-r0 apk libpcre2-16 10.43-r0 apk
libproxy 0.5.3-r0 apk libproc2 4.0.4-r0 apk
libpsl 0.21.5-r0 apk libproxy 0.5.6-r0 apk
libssl1.1 1.1.1w-r0 apk libpsl 0.21.5-r1 apk
libssl3 3.1.4-r4 apk libssl3 3.3.0-r1 apk
libstdc++ 13.2.1_git20231014-r0 apk libstdc++ 13.2.1_git20240309-r0 apk
libtorrent-rasterbar 2.0.9-r2 apk libtorrent-rasterbar 2.0.10-r2 apk
libunistring 1.1-r2 apk libunistring 1.2-r0 apk
linux-pam 1.5.3-r7 apk linux-pam 1.6.0-r0 apk
mpdecimal 4.0.0-r0 apk mpdecimal 4.0.0-r0 apk
mscorlib 4.700.22.56512 dotnet mscorlib 4.700.22.56512 dotnet
musl 1.2.4_git20230717-r5 apk musl 1.2.5-r0 apk
musl-utils 1.2.4_git20230717-r5 apk musl-utils 1.2.5-r0 apk
ncurses-terminfo-base 6.4_p20231125-r0 apk ncurses-terminfo-base 6.4_p20240420-r0 apk
netcat-openbsd 1.226-r0 apk netcat-openbsd 1.226-r0 apk
netstandard 4.700.22.56512 dotnet netstandard 4.700.22.56512 dotnet
nghttp2-libs 1.58.0-r0 apk nghttp2-libs 1.61.0-r0 apk
oniguruma 6.9.9-r0 apk oniguruma 6.9.9-r0 apk
openssl 3.1.4-r4 apk pcre2 10.43-r0 apk
openssl1.1-compat 1.1.1w-r0 apk procps-ng 4.0.4-r0 apk
pcre2 10.42-r2 apk pyc 3.12.3-r1 apk
procps-ng 4.0.4-r0 apk python3 3.12.3-r1 apk
pyc 3.11.6-r2 apk python3-pyc 3.12.3-r1 apk
python3 3.11.6-r2 apk python3-pycache-pyc0 3.12.3-r1 apk
python3-pyc 3.11.6-r2 apk qbittorrent-nox 4.6.4-r1 apk
python3-pycache-pyc0 3.11.6-r2 apk qbt 1.8.24012.1+00a638ba43f1a80a03cc8be139f586ce9886c908 dotnet
qbittorrent-nox 4.6.3-r0 apk qt6-qtbase 6.6.3-r0 apk
qbt 1.8.24012.1+00a638ba43f1a80a03cc8be139f586ce9886c908 dotnet qt6-qtbase-sqlite 6.6.3-r0 apk
qt6-qtbase 6.6.1-r0 apk readline 8.2.10-r0 apk
qt6-qtbase-sqlite 6.6.1-r0 apk scanelf 1.3.7-r2 apk
readline 8.2.10-r0 apk shadow 4.15.1-r0 apk
scanelf 1.3.7-r2 apk skalibs 2.14.1.1-r0 apk
shadow 4.14.3-r0 apk sqlite-libs 3.45.3-r0 apk
skalibs 2.14.1.0-r0 apk ssl_client 1.36.1-r26 apk
sqlite-libs 3.45.0-r0 apk tzdata 2024a-r1 apk
ssl_client 1.36.1-r19 apk utmps-libs 0.1.2.2-r1 apk
tzdata 2023d-r0 apk xz-libs 5.6.1-r3 apk
utmps-libs 0.1.2.2-r0 apk zlib 1.3.1-r1 apk
xz-libs 5.4.5-r0 apk zstd-libs 1.5.6-r0 apk
zlib 1.3-r2 apk
zstd-libs 1.5.5-r8 apk

View File

@@ -33,6 +33,7 @@ param_ports:
param_usage_include_env: true param_usage_include_env: true
param_env_vars: param_env_vars:
- { env_var: "WEBUI_PORT", env_value: "8080", desc: "for changing the port of the web UI, see below for explanation"} - { env_var: "WEBUI_PORT", env_value: "8080", desc: "for changing the port of the web UI, see below for explanation"}
- { env_var: "TORRENTING_PORT", env_value: "6881", desc: "for changing the port of tcp/udp connection, see below for explanation" }
# application setup block # application setup block
app_setup_block_enabled: true app_setup_block_enabled: true
@@ -49,8 +50,17 @@ app_setup_block: |
For example, to set the port to 8090 you need to set -p 8090:8090 and -e WEBUI_PORT=8090 For example, to set the port to 8090 you need to set -p 8090:8090 and -e WEBUI_PORT=8090
### TORRENTING_PORT
A bittorrent client can be an active or a passive node. Running your client as an active node has the advantage of being able to connect to both active and passive peers, and can potentially increase the number of incoming connections. This requires an open port on the host machine which might differ from container's internal one.
Similarly to the WEBUI_PORT, to set the port to 6887 you need to pass -p 6887:6887, -p 6887:6887/udp and -e TORRENTING_PORT=6887 arguments to Docker.
# changelog # changelog
changelogs: changelogs:
- { date: "14.02.24:", desc: "Only set/override torrenting port if the optional env var is set." }
- { date: "14.02.24:", desc: "Add torrenting port support." }
- { date: "31.01.24:", desc: "Remove obsolete compat packages."}
- { date: "25.12.23:", desc: "Only pull stable releases of qbittorrent-cli."} - { date: "25.12.23:", desc: "Only pull stable releases of qbittorrent-cli."}
- { date: "07.10.23:", desc: "Install unrar from [linuxserver repo](https://github.com/linuxserver/docker-unrar)."} - { date: "07.10.23:", desc: "Install unrar from [linuxserver repo](https://github.com/linuxserver/docker-unrar)."}
- { date: "10.08.23:", desc: "Bump unrar to 6.2.10."} - { date: "10.08.23:", desc: "Bump unrar to 6.2.10."}

View File

@@ -2,7 +2,10 @@
# shellcheck shell=bash # shellcheck shell=bash
WEBUI_PORT=${WEBUI_PORT:-8080} WEBUI_PORT=${WEBUI_PORT:-8080}
if [[ -n "${TORRENTING_PORT}" ]]; then
TORRENTING_PORT_ARG="--torrenting-port=${TORRENTING_PORT}"
fi
exec \ exec \
s6-notifyoncheck -d -n 300 -w 1000 -c "nc -z localhost ${WEBUI_PORT}" \ s6-notifyoncheck -d -n 300 -w 1000 -c "nc -z localhost ${WEBUI_PORT}" \
s6-setuidgid abc /usr/bin/qbittorrent-nox --webui-port="${WEBUI_PORT}" s6-setuidgid abc /usr/bin/qbittorrent-nox --webui-port="${WEBUI_PORT}" ${TORRENTING_PORT_ARG}