Compare commits

...

17 Commits

Author SHA1 Message Date
LinuxServer-CI
cf06829803 Bot Updating Package Versions 2025-02-09 06:57:36 +00:00
LinuxServer-CI
c978fd753a Bot Updating Templated Files 2025-02-04 18:26:14 +00:00
Adam
c7b0cbc559 Merge pull request #371 from linuxserver/port-fix-master
Fix port in readme (master)
2025-02-04 18:22:55 +00:00
LinuxServer-CI
043d41954c Bot Updating Package Versions 2025-02-02 06:56:50 +00:00
LinuxServer-CI
a9836226ee Bot Updating Templated Files 2025-02-02 06:53:12 +00:00
LinuxServer-CI
69a30d94a3 Bot Updating Templated Files 2025-02-02 06:51:20 +00:00
thespad
128b53f719 Fix port in readme 2025-01-30 11:38:18 +00:00
LinuxServer-CI
616ea2bfe5 Bot Updating Package Versions 2025-01-26 06:52:12 +00:00
quietsy
831d9b8639 Merge pull request #366 from linuxserver/add-project-categories
Add categories to readme-vars.yml
2025-01-22 22:13:54 +02:00
quietsy
2b157467db Add categories to readme-vars.yml 2025-01-22 20:43:35 +02:00
LinuxServer-CI
9c6d8af1e5 Bot Updating Package Versions 2025-01-19 06:52:13 +00:00
LinuxServer-CI
89e76af14b Bot Updating Package Versions 2025-01-12 06:52:29 +00:00
LinuxServer-CI
3979c2c2f0 Bot Updating Package Versions 2025-01-05 06:53:42 +00:00
LinuxServer-CI
307f76772a Bot Updating Package Versions 2025-01-01 22:48:14 +00:00
LinuxServer-CI
67bd8527ae Bot Updating Templated Files 2025-01-01 22:45:15 +00:00
Adam
4178b625a0 Merge pull request #357 from linuxserver/master-nonroot 2025-01-01 22:43:48 +00:00
thespad
016be7b8bd Support nonroot operation 2024-12-20 20:20:49 +00:00
9 changed files with 101 additions and 60 deletions

View File

@@ -6,7 +6,7 @@
* Read, and fill the Pull Request template
* If this is a fix for a typo (in code, documentation, or the README) please file an issue and let us sort it out. We do not need a PR
* If the PR is addressing an existing issue include, closes #\<issue number>, in the body of the PR commit message
* If you want to discuss changes, you can also bring it up in [#dev-talk](https://discordapp.com/channels/354974912613449730/757585807061155840) in our [Discord server](https://discord.gg/YWrKVTn)
* If you want to discuss changes, you can also bring it up in [#dev-talk](https://discordapp.com/channels/354974912613449730/757585807061155840) in our [Discord server](https://linuxserver.io/discord)
## Common files

View File

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

View File

@@ -15,7 +15,10 @@ jobs:
SKIP_EXTERNAL_TRIGGER: ${{ vars.SKIP_EXTERNAL_TRIGGER }}
run: |
printf "# External trigger for docker-qbittorrent\n\n" >> $GITHUB_STEP_SUMMARY
if grep -q "^qbittorrent_master" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
if grep -q "^qbittorrent_master_" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`qbittorrent_master_\`; will skip trigger if version matches." >> $GITHUB_STEP_SUMMARY
elif grep -q "^qbittorrent_master" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`qbittorrent_master\`; skipping trigger." >> $GITHUB_STEP_SUMMARY
exit 0
@@ -26,6 +29,11 @@ jobs:
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://')
echo "Type is \`alpine_repo\`" >> $GITHUB_STEP_SUMMARY
if grep -q "^qbittorrent_master_${EXT_RELEASE}" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` matches current external release; skipping trigger." >> $GITHUB_STEP_SUMMARY
exit 0
fi
if [ -z "${EXT_RELEASE}" ] || [ "${EXT_RELEASE}" == "null" ]; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Can't retrieve external version, exiting" >> $GITHUB_STEP_SUMMARY

33
Jenkinsfile vendored
View File

@@ -59,11 +59,21 @@ pipeline {
steps{
echo "Running on node: ${NODE_NAME}"
sh '''#! /bin/bash
containers=$(docker ps -aq)
echo "Pruning builder"
docker builder prune -f --builder container || :
containers=$(docker ps -q)
if [[ -n "${containers}" ]]; then
docker stop ${containers}
BUILDX_CONTAINER_ID=$(docker ps -qf 'name=buildx_buildkit')
for container in ${containers}; do
if [[ "${container}" == "${BUILDX_CONTAINER_ID}" ]]; then
echo "skipping buildx container in docker stop"
else
echo "Stopping container ${container}"
docker stop ${container}
fi
done
fi
docker system prune -af --volumes || : '''
docker system prune -f --volumes || : '''
script{
env.EXIT_STATUS = ''
env.LS_RELEASE = sh(
@@ -1156,12 +1166,21 @@ EOF
}
cleanup {
sh '''#! /bin/bash
echo "Performing docker system prune!!"
containers=$(docker ps -aq)
echo "Pruning builder!!"
docker builder prune -f --builder container || :
containers=$(docker ps -q)
if [[ -n "${containers}" ]]; then
docker stop ${containers}
BUILDX_CONTAINER_ID=$(docker ps -qf 'name=buildx_buildkit')
for container in ${containers}; do
if [[ "${container}" == "${BUILDX_CONTAINER_ID}" ]]; then
echo "skipping buildx container in docker stop"
else
echo "Stopping container ${container}"
docker stop ${container}
fi
done
fi
docker system prune -af --volumes || :
docker system prune -f --volumes || :
'''
cleanWs()
}

View File

@@ -3,7 +3,7 @@
[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)](https://linuxserver.io)
[![Blog](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Blog)](https://blog.linuxserver.io "all the things you can do with our containers including How-To guides, opinions and much more!")
[![Discord](https://img.shields.io/discord/354974912613449730.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Discord&logo=discord)](https://discord.gg/YWrKVTn "realtime support / chat with the community and the team.")
[![Discord](https://img.shields.io/discord/354974912613449730.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Discord&logo=discord)](https://linuxserver.io/discord "realtime support / chat with the community and the team.")
[![Discourse](https://img.shields.io/discourse/https/discourse.linuxserver.io/topics.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=discourse)](https://discourse.linuxserver.io "post on our community forum.")
[![Fleet](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Fleet)](https://fleet.linuxserver.io "an online web interface which displays all of our maintained images.")
[![GitHub](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitHub&logo=github)](https://github.com/linuxserver "view the source for all of our repositories.")
@@ -20,7 +20,7 @@ The [LinuxServer.io](https://linuxserver.io) team brings you another container r
Find us at:
* [Blog](https://blog.linuxserver.io) - all the things you can do with our containers including How-To guides, opinions and much more!
* [Discord](https://discord.gg/YWrKVTn) - realtime support / chat with the community and the team.
* [Discord](https://linuxserver.io/discord) - realtime support / chat with the community and the team.
* [Discourse](https://discourse.linuxserver.io) - post on our community forum.
* [Fleet](https://fleet.linuxserver.io) - an online web interface which displays all of our maintained images.
* [GitHub](https://github.com/linuxserver) - view the source for all of our repositories.
@@ -78,7 +78,7 @@ If you are running a very old (3.x) kernel you may run into [this issue](https:/
Due to issues with CSRF and port mapping, should you require to alter the port for the web UI you need to change both sides of the -p 8080 switch AND set the WEBUI_PORT variable to the new port.
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 8123 you need to set -p 8123:8123 and -e WEBUI_PORT=8123
### TORRENTING_PORT
@@ -90,6 +90,10 @@ 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/).
## Non-Root Operation
This image can be run with a non-root user. For details please [read the docs](https://docs.linuxserver.io/misc/non-root/).
## Usage
To help you get started creating a container from this image you can either use docker-compose or the docker cli.
@@ -157,6 +161,7 @@ Containers are configured using parameters passed at runtime (such as those abov
| `-v /config` | Contains all relevant configuration files. |
| `-v /downloads` | Location of downloads on disk. |
| `--read-only=true` | Run container with a read-only filesystem. Please [read the docs](https://docs.linuxserver.io/misc/read-only/). |
| `--user=1000:1000` | Run container with a non-root user. Please [read the docs](https://docs.linuxserver.io/misc/non-root/). |
## Environment variables from files (Docker secrets)

View File

@@ -175,23 +175,23 @@ System.Xml.XmlDocument 6.0.3524.45918
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-baselayout 3.6.8-r1 apk
alpine-baselayout-data 3.6.8-r1 apk
alpine-keys 2.5-r0 apk
apk-tools 2.14.7-r0 apk
apk-tools 2.14.9-r0 apk
bash 5.2.37-r0 apk
brotli-libs 1.1.0-r2 apk
busybox 1.37.0-r10 apk
busybox-binsh 1.37.0-r10 apk
busybox 1.37.0-r14 apk
busybox-binsh 1.37.0-r14 apk
c-ares 1.34.4-r0 apk
ca-certificates 20241010-r0 apk
ca-certificates-bundle 20241010-r0 apk
catatonit 0.2.0-r0 apk
coreutils 9.5-r1 apk
coreutils-env 9.5-r1 apk
coreutils-fmt 9.5-r1 apk
coreutils-sha512sum 9.5-r1 apk
curl 8.11.1-r0 apk
ca-certificates 20241121-r1 apk
ca-certificates-bundle 20241121-r1 apk
catatonit 0.2.1-r0 apk
coreutils 9.6-r0 apk
coreutils-env 9.6-r0 apk
coreutils-fmt 9.6-r0 apk
coreutils-sha512sum 9.6-r0 apk
curl 8.12.0-r0 apk
dbus-libs 1.16.0-r0 apk
double-conversion 3.3.0-r0 apk
duktape-libs 2.7.0-r2 apk
@@ -204,58 +204,58 @@ icu-libs 74.2-r0
jq 1.7.1-r0 apk
libattr 2.5.2-r2 apk
libb2 0.98.1-r3 apk
libblkid 2.40.2-r4 apk
libblkid 2.40.4-r0 apk
libbsd 0.12.2-r0 apk
libbz2 1.0.8-r6 apk
libcrypto3 3.3.2-r4 apk
libcurl 8.11.1-r0 apk
libcrypto3 3.3.2-r5 apk
libcurl 8.12.0-r0 apk
libeconf 0.6.3-r0 apk
libexpat 2.6.4-r0 apk
libffi 3.4.6-r0 apk
libgcc 14.2.0-r4 apk
libgomp 14.2.0-r4 apk
libgcc 14.2.0-r5 apk
libgomp 14.2.0-r5 apk
libidn2 2.3.7-r0 apk
libintl 0.22.5-r0 apk
libmd 1.1.0-r0 apk
libmount 2.40.2-r4 apk
libncursesw 6.5_p20241006-r3 apk
libpanelw 6.5_p20241006-r3 apk
libmount 2.40.4-r0 apk
libncursesw 6.5_p20250118-r0 apk
libpanelw 6.5_p20250118-r0 apk
libpcre2-16 10.43-r0 apk
libproc2 4.0.4-r2 apk
libproxy 0.5.9-r0 apk
libpsl 0.21.5-r3 apk
libssl3 3.3.2-r4 apk
libstdc++ 14.2.0-r4 apk
libssl3 3.3.2-r5 apk
libstdc++ 14.2.0-r5 apk
libtorrent-rasterbar 2.0.10-r3 apk
libunistring 1.2-r0 apk
linux-pam 1.6.1-r1 apk
libunistring 1.3-r0 apk
linux-pam 1.7.0-r1 apk
mpdecimal 4.0.0-r0 apk
mscorlib 6.0.3524.45918 dotnet
musl 1.2.5-r8 apk
musl-utils 1.2.5-r8 apk
ncurses-terminfo-base 6.5_p20241006-r3 apk
netcat-openbsd 1.226.1.1-r0 apk
musl 1.2.5-r9 apk
musl-utils 1.2.5-r9 apk
ncurses-terminfo-base 6.5_p20250118-r0 apk
netcat-openbsd 1.228.1-r0 apk
netstandard 6.0.3524.45918 dotnet
nghttp2-libs 1.64.0-r0 apk
oniguruma 6.9.9-r0 apk
pcre2 10.43-r0 apk
procps-ng 4.0.4-r2 apk
pyc 3.12.8-r1 apk
python3 3.12.8-r1 apk
python3-pyc 3.12.8-r1 apk
python3-pycache-pyc0 3.12.8-r1 apk
pyc 3.12.9-r0 apk
python3 3.12.9-r0 apk
python3-pyc 3.12.9-r0 apk
python3-pycache-pyc0 3.12.9-r0 apk
qbittorrent-nox 5.0.3-r0 apk
qbt 1.8.24285.1+c5794123bd204e629729e52e7177834c4ba3bfc2 dotnet
qt6-qtbase 6.8.1-r0 apk
qt6-qtbase-sqlite 6.8.1-r0 apk
qt6-qtbase 6.8.2-r0 apk
qt6-qtbase-sqlite 6.8.2-r0 apk
readline 8.2.13-r0 apk
scanelf 1.3.8-r1 apk
shadow 4.16.0-r1 apk
skalibs-libs 2.14.3.0-r0 apk
sqlite-libs 3.47.2-r0 apk
ssl_client 1.37.0-r10 apk
tzdata 2024b-r1 apk
sqlite-libs 3.49.0-r1 apk
ssl_client 1.37.0-r14 apk
tzdata 2025a-r0 apk
utmps-libs 0.1.2.3-r2 apk
xz-libs 5.6.3-r0 apk
xz-libs 5.6.4-r0 apk
zlib 1.3.1-r2 apk
zstd-libs 1.5.6-r2 apk

View File

@@ -6,6 +6,7 @@ project_url: "https://www.qbittorrent.org/"
project_logo: "https://github.com/linuxserver/docker-templates/raw/master/linuxserver.io/img/qbittorrent-icon.png"
project_blurb: "The [{{ project_name|capitalize }}]({{ project_url }}) project aims to provide an open-source software alternative to µTorrent. qBittorrent is based on the Qt toolkit and libtorrent-rasterbar library."
project_lsio_github_repo_url: "https://github.com/linuxserver/docker-{{ project_name }}"
project_categories: "Downloaders"
# supported architectures
available_architectures:
- {arch: "{{ arch_x86_64 }}", tag: "amd64-latest"}
@@ -34,6 +35,7 @@ opt_param_usage_include_vols: true
opt_param_volumes:
- {vol_path: "/downloads", vol_host_path: "/path/to/downloads", desc: "Location of downloads on disk."}
readonly_supported: true
nonroot_supported: true
# application setup block
app_setup_block_enabled: true
app_setup_block: |
@@ -47,7 +49,7 @@ app_setup_block: |
Due to issues with CSRF and port mapping, should you require to alter the port for the web UI you need to change both sides of the -p 8080 switch AND set the WEBUI_PORT variable to the new port.
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 8123 you need to set -p 8123:8123 and -e WEBUI_PORT=8123
### TORRENTING_PORT

View File

@@ -9,11 +9,13 @@ if [[ ! -f /config/qBittorrent/qBittorrent.conf ]]; then
cp /defaults/qBittorrent.conf /config/qBittorrent/qBittorrent.conf
fi
# chown download directory if currently not set to abc
if grep -qe ' /downloads ' /proc/mounts; then
lsiown abc:abc /downloads
fi
if [[ -z ${LSIO_NON_ROOT_USER} ]]; then
# chown download directory if currently not set to abc
if grep -qe ' /downloads ' /proc/mounts; then
lsiown abc:abc /downloads
fi
# permissions
lsiown -R abc:abc \
/config
# permissions
lsiown -R abc:abc \
/config
fi

View File

@@ -11,6 +11,11 @@ if [[ -z ${WEBUI_ADDRESS} ]] || [[ ${WEBUI_ADDRESS} == "*" ]]; then
WEBUI_ADDRESS="localhost"
fi
if [[ -z ${LSIO_NON_ROOT_USER} ]]; then
exec \
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}
else
s6-notifyoncheck -d -n 300 -w 1000 -c "nc -z ${WEBUI_ADDRESS} ${WEBUI_PORT}" \
/usr/bin/qbittorrent-nox --webui-port="${WEBUI_PORT}" ${TORRENTING_PORT_ARG}
fi