Compare commits

...

111 Commits

Author SHA1 Message Date
LinuxServer-CI
069f2e478f Bot Updating Package Versions 2021-08-30 05:50:23 +02:00
LinuxServer-CI
26845a6212 Bot Updating Templated Files 2021-08-30 05:47:28 +02:00
LinuxServer-CI
2b49c7771d Bot Updating Package Versions 2021-08-23 05:49:35 +02:00
LinuxServer-CI
96c2fd9679 Bot Updating Package Versions 2021-08-09 05:51:58 +02:00
LinuxServer-CI
2d67ce6bef Bot Updating Package Versions 2021-08-02 05:53:15 +02:00
LinuxServer-CI
2562055f34 Bot Updating Package Versions 2021-07-26 05:51:50 +02:00
LinuxServer-CI
707c99cae2 Bot Updating Templated Files 2021-07-19 17:36:32 +02:00
j0nnymoe
11762d97ef Merge pull request #131 from linuxserver/old-kernels-unstable
Add issue note for old kernels
2021-07-19 16:35:20 +01:00
Adam
510a03bffb Add issue note for old kernels 2021-07-19 15:43:37 +01:00
LinuxServer-CI
3235a56a7f Bot Updating Package Versions 2021-07-12 03:52:46 +00:00
LinuxServer-CI
fce48244de Bot Updating Package Versions 2021-07-05 03:55:22 +00:00
LinuxServer-CI
d169139acc Bot Updating Templated Files 2021-07-05 03:52:02 +00:00
LinuxServer-CI
ce55eb7678 Bot Updating Templated Files 2021-07-05 03:50:32 +00:00
LinuxServer-CI
6af0518f7c Bot Updating Package Versions 2021-06-28 04:01:48 +00:00
LinuxServer-CI
48973d7aa4 Bot Updating Package Versions 2021-06-21 00:06:27 -04:00
LinuxServer-CI
babdcc82d0 Bot Updating Package Versions 2021-06-14 10:59:56 +01:00
LinuxServer-CI
34004896f5 Bot Updating Package Versions 2021-06-11 10:59:50 +00:00
LinuxServer-CI
ebf5f0b42d Bot Updating Package Versions 2021-06-10 11:03:27 +00:00
LinuxServer-CI
ba0a3860ff Bot Updating Package Versions 2021-06-08 19:02:55 -04:00
LinuxServer-CI
85a41777c7 Bot Updating Package Versions 2021-06-07 01:16:05 -04:00
LinuxServer-CI
83f792a5c6 Bot Updating Package Versions 2021-05-31 05:44:08 -04:00
LinuxServer-CI
0b816db909 Bot Updating Package Versions 2021-05-30 09:04:56 +01:00
LinuxServer-CI
5d9b360986 Bot Updating Package Versions 2021-05-29 09:19:37 +01:00
LinuxServer-CI
b72cd90227 Bot Updating Package Versions 2021-05-28 09:35:43 +01:00
LinuxServer-CI
47f9b1a9a2 Bot Updating Package Versions 2021-05-27 11:53:31 +00:00
LinuxServer-CI
7db91039a8 Bot Updating Package Versions 2021-05-26 19:43:27 +00:00
LinuxServer-CI
0071db8201 Bot Updating Package Versions 2021-05-24 18:29:45 +00:00
LinuxServer-CI
74278dfca6 Bot Updating Package Versions 2021-05-23 18:26:23 +00:00
LinuxServer-CI
6c9e6617a5 Bot Updating Package Versions 2021-05-22 19:25:12 +01:00
LinuxServer-CI
0664cb2fbf Bot Updating Package Versions 2021-05-19 13:21:33 +00:00
LinuxServer-CI
dc3fbe4bd4 Bot Updating Package Versions 2021-05-17 07:11:26 +00:00
LinuxServer-CI
cf815c30c0 Bot Updating Package Versions 2021-05-14 07:14:13 +00:00
LinuxServer-CI
ceac260908 Bot Updating Package Versions 2021-05-12 10:08:13 +00:00
LinuxServer-CI
8628f22bd0 Bot Updating Package Versions 2021-05-11 06:05:48 -04:00
LinuxServer-CI
df343cb451 Bot Updating Package Versions 2021-05-10 07:08:11 +00:00
LinuxServer-CI
d0ac91804a Bot Updating Package Versions 2021-05-09 06:07:15 +01:00
LinuxServer-CI
463a2ce2aa Bot Updating Package Versions 2021-05-08 01:05:20 -04:00
LinuxServer-CI
a42aa10d77 Bot Updating Package Versions 2021-05-07 01:08:10 -04:00
LinuxServer-CI
e96479f302 Bot Updating Package Versions 2021-05-06 05:08:07 +00:00
LinuxServer-CI
60dae1c258 Bot Updating Package Versions 2021-05-04 20:05:08 -04:00
LinuxServer-CI
de3d031cc0 Bot Updating Package Versions 2021-05-03 20:56:04 +00:00
LinuxServer-CI
c6367a0f92 Bot Updating Package Versions 2021-05-02 20:54:44 +00:00
LinuxServer-CI
5946838097 Bot Updating Package Versions 2021-05-01 21:54:09 +01:00
LinuxServer-CI
3968819935 Bot Updating Package Versions 2021-04-28 10:05:01 +00:00
LinuxServer-CI
f621acf436 Bot Updating Package Versions 2021-04-26 19:49:35 +00:00
aptalca
1acc264578 Merge pull request #123 from linuxserver/qbittorrent-cli-patch-unstable
Update repos for qbittorrent-cli
2021-04-26 15:37:50 -04:00
TheSpad
384d611e66 Fix indentation 2021-04-26 19:57:17 +01:00
TheSpad
931d8dd0c2 Update repos for qbittorrent-cli 2021-04-26 19:41:14 +01:00
Adam
a4a5dd92b0 Merge pull request #121 from TheSpad/unstable 2021-04-26 17:49:58 +01:00
TheSpad
3120dca15e Don't try and chown non-existent directory 2021-04-26 13:29:20 +01:00
Adam
d885e13383 Remove /downloads VOLUME declaration 2021-04-26 12:59:06 +01:00
Adam
8d1a0f0a3a Remove /downloads VOLUME declaration 2021-04-26 12:58:54 +01:00
Adam
38c24747c4 Remove /downloads VOLUME declaration 2021-04-26 12:58:39 +01:00
LinuxServer-CI
0330ebcfae Bot Updating Package Versions 2021-04-26 10:07:46 +01:00
LinuxServer-CI
40f3ee4dc5 Bot Updating Package Versions 2021-04-22 17:42:21 +00:00
LinuxServer-CI
1139d54df5 Bot Updating Package Versions 2021-04-21 13:01:06 +01:00
LinuxServer-CI
2cc991bb65 Bot Updating Package Versions 2021-04-20 09:03:33 +00:00
LinuxServer-CI
798885d97f Bot Updating Package Versions 2021-04-19 07:57:56 +00:00
LinuxServer-CI
b5c873b4d5 Bot Updating Package Versions 2021-04-18 08:59:15 +01:00
LinuxServer-CI
7bf48a1076 Bot Updating Templated Files 2021-04-18 07:51:57 +00:00
LinuxServer-CI
89286646ac Bot Updating Package Versions 2021-04-17 10:02:13 +00:00
LinuxServer-CI
635480ff08 Bot Updating Package Versions 2021-04-16 15:58:22 -04:00
LinuxServer-CI
fe5562dc29 Bot Updating Templated Files 2021-04-16 20:50:05 +01:00
LinuxServer-CI
57b2eed84d Bot Updating Templated Files 2021-04-16 19:48:40 +00:00
LinuxServer-CI
6461cd68d5 Bot Updating Package Versions 2021-04-15 05:06:39 -04:00
LinuxServer-CI
e81178409d Bot Updating Package Versions 2021-04-14 08:00:43 +00:00
LinuxServer-CI
f5c368b841 Bot Updating Package Versions 2021-04-13 03:59:29 -04:00
LinuxServer-CI
75a89b8819 Bot Updating Package Versions 2021-04-10 13:38:16 -04:00
LinuxServer-CI
828a0feb6f Bot Updating Package Versions 2021-04-09 17:23:29 +00:00
LinuxServer-CI
58c45bb711 Bot Updating Package Versions 2021-04-08 19:12:44 +00:00
LinuxServer-CI
4c416920f0 Bot Updating Package Versions 2021-04-07 19:15:19 +00:00
LinuxServer-CI
6fbb1074a0 Bot Updating Package Versions 2021-04-06 06:05:27 +00:00
LinuxServer-CI
f708e64978 Bot Updating Package Versions 2021-04-03 12:57:41 +01:00
LinuxServer-CI
be174487eb Bot Updating Package Versions 2021-04-02 07:03:11 -04:00
LinuxServer-CI
f6ea55c7df Bot Updating Package Versions 2021-04-01 12:54:16 +01:00
LinuxServer-CI
4520a328e6 Bot Updating Package Versions 2021-03-31 09:16:50 -04:00
LinuxServer-CI
2cf536b325 Bot Updating Package Versions 2021-03-30 12:56:04 +01:00
LinuxServer-CI
f360c91c5d Bot Updating Package Versions 2021-03-29 12:54:48 +01:00
LinuxServer-CI
de1d81173c Bot Updating Package Versions 2021-03-27 17:38:12 +00:00
LinuxServer-CI
2a0ad610b5 Bot Updating Package Versions 2021-03-26 17:39:06 +00:00
LinuxServer-CI
6a711856dd Bot Updating Package Versions 2021-03-25 13:11:11 -04:00
LinuxServer-CI
9adbd5b7a6 Bot Updating Package Versions 2021-03-24 20:50:25 +00:00
Roxedus
64dddefaa4 Merge pull request #116 from linuxserver/unstable-focal 2021-03-24 21:46:18 +01:00
aptalca
2715c57de0 fix typo 2021-03-24 16:14:58 -04:00
aptalca
1e4fb78c7f fix branch/tag 2021-03-24 16:13:42 -04:00
aptalca
ae0cd8e956 rebase to focal, custom external trigger 2021-03-24 16:06:59 -04:00
LinuxServer-CI
80d63bc664 Bot Updating Package Versions 2021-03-22 04:41:25 +00:00
LinuxServer-CI
2358dfa548 Bot Updating Package Versions 2021-03-15 04:04:54 +00:00
LinuxServer-CI
8936b76871 Bot Updating Package Versions 2021-03-01 03:59:06 +00:00
LinuxServer-CI
8f1c67d305 Bot Updating Package Versions 2021-02-22 04:00:51 +00:00
LinuxServer-CI
43dad217e2 Bot Updating Package Versions 2021-02-15 04:02:00 +00:00
LinuxServer-CI
9bddaa682c Bot Updating Templated Files 2021-02-14 22:54:31 -05:00
LinuxServer-CI
7be7da77fd Bot Updating Templated Files 2021-02-15 03:53:04 +00:00
LinuxServer-CI
d2018f8bdd Bot Updating Package Versions 2021-02-08 03:58:59 +00:00
LinuxServer-CI
276a9f40de Bot Updating Package Versions 2021-02-01 04:07:56 +00:00
LinuxServer-CI
99a467941c Bot Updating Package Versions 2021-01-20 17:25:55 +00:00
aptalca
5d92065c83 Merge pull request #96 from linuxserver/unstable-deprecate-umask_set
Deprecate UMASK_SET in favor of UMASK in baseimage
2021-01-20 12:19:07 -05:00
Roxedus
6f588431b6 Remove sneaky readme variable 2021-01-20 17:54:56 +01:00
Roxedus
dfb1560271 Deprecate UMASK_SET in favor of UMASK in baseimage 2021-01-20 13:21:57 +01:00
LinuxServer-CI
ac9a374cb6 Bot Updating Package Versions 2021-01-18 07:09:26 -05:00
LinuxServer-CI
9f9f40706b Bot Updating Templated Files 2021-01-18 07:01:17 -05:00
LinuxServer-CI
b073ad0a5b Bot Updating Package Versions 2021-01-11 06:54:29 -05:00
LinuxServer-CI
6ea1e7b5c7 Bot Updating Package Versions 2021-01-04 06:45:58 -05:00
LinuxServer-CI
1a5a8e1c78 Bot Updating Package Versions 2020-12-31 16:10:54 +00:00
LinuxServer-CI
178f8a894d Bot Updating Package Versions 2020-12-30 16:11:21 +00:00
LinuxServer-CI
9489ffc30d Bot Updating Package Versions 2020-12-29 22:04:53 +00:00
LinuxServer-CI
9ccb2c1521 Bot Updating Package Versions 2020-12-28 15:00:06 +00:00
LinuxServer-CI
d0d9063104 Bot Updating Package Versions 2020-12-27 14:57:57 +00:00
LinuxServer-CI
97e593ca44 Bot Updating Package Versions 2020-12-26 16:05:22 +00:00
LinuxServer-CI
3240f8ebea Bot Updating Package Versions 2020-12-25 15:00:21 +00:00
LinuxServer-CI
af798daf7d Bot Updating Package Versions 2020-12-24 08:03:19 +00:00
18 changed files with 645 additions and 456 deletions

20
.editorconfig Executable file
View File

@@ -0,0 +1,20 @@
# This file is globally distributed to all container image projects from
# https://github.com/linuxserver/docker-jenkins-builder/blob/master/.editorconfig
# top-most EditorConfig file
root = true
# Unix-style newlines with a newline ending every file
[*]
end_of_line = lf
insert_final_newline = true
# trim_trailing_whitespace may cause unintended issues and should not be globally set true
trim_trailing_whitespace = false
[{Dockerfile*,**.yml}]
indent_style = space
indent_size = 2
[{**.sh,root/etc/cont-init.d/**,root/etc/services.d/**}]
indent_style = space
indent_size = 4

View File

@@ -4,7 +4,7 @@
* While contributing make sure to make all your changes before creating a Pull Request, as our pipeline builds each commit after the PR is open. * While contributing make sure to make all your changes before creating a Pull Request, as our pipeline builds each commit after the PR is open.
* Read, and fill the Pull Request template * Read, and fill the Pull Request template
* If this is a fix for a typo in code or documentation in the README please file an issue * 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 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://discord.gg/YWrKVTn)
@@ -24,7 +24,7 @@
## Readme ## Readme
If you would like to change our readme, please __**do not**__ directly edit the readme, as it is auto-generated on each commit. If you would like to change our readme, please __**do not**__ directly edit the readme, as it is auto-generated on each commit.
Instead edit the [readme-vars.yml](https://github.com/linuxserver/docker-qbittorrent/edit/master/readme-vars.yml). Instead edit the [readme-vars.yml](https://github.com/linuxserver/docker-qbittorrent/edit/unstable/readme-vars.yml).
These variables are used in a template for our [Jenkins Builder](https://github.com/linuxserver/docker-jenkins-builder) as part of an ansible play. These variables are used in a template for our [Jenkins Builder](https://github.com/linuxserver/docker-jenkins-builder) as part of an ansible play.
Most of these variables are also carried over to [docs.linuxserver.io](https://docs.linuxserver.io/images/docker-qbittorrent) Most of these variables are also carried over to [docs.linuxserver.io](https://docs.linuxserver.io/images/docker-qbittorrent)
@@ -96,7 +96,7 @@ If you are proposing additional packages to be added, ensure that you added the
### Testing your changes ### Testing your changes
``` ```bash
git clone https://github.com/linuxserver/docker-qbittorrent.git git clone https://github.com/linuxserver/docker-qbittorrent.git
cd docker-qbittorrent cd docker-qbittorrent
docker build \ docker build \
@@ -106,15 +106,16 @@ docker build \
``` ```
The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static` The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static`
```
```bash
docker run --rm --privileged multiarch/qemu-user-static:register --reset docker run --rm --privileged multiarch/qemu-user-static:register --reset
``` ```
Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64`. Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64`.
## Update the chagelog ## Update the changelog
If you are modifying the Dockerfiles or any of the startup scripts in [root](https://github.com/linuxserver/docker-qbittorrent/tree/master/root), add an entry to the changelog If you are modifying the Dockerfiles or any of the startup scripts in [root](https://github.com/linuxserver/docker-qbittorrent/tree/unstable/root), add an entry to the changelog
```yml ```yml
changelogs: changelogs:

View File

@@ -6,7 +6,7 @@
<!--- Before submitting a pull request please check the following --> <!--- Before submitting a pull request please check the following -->
<!--- If this is a fix for a typo in code or documentation in the README please file an issue and let us sort it out we do not need a PR --> <!--- 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 -->
<!--- Ask yourself if this modification is something the whole userbase will benefit from, if this is a specific change for corner case functionality or plugins please look at making a Docker Mod or local script https://blog.linuxserver.io/2019/09/14/customizing-our-containers/ --> <!--- Ask yourself if this modification is something the whole userbase will benefit from, if this is a specific change for corner case functionality or plugins please look at making a Docker Mod or local script https://blog.linuxserver.io/2019/09/14/customizing-our-containers/ -->
<!--- That if the PR is addressing an existing issue include, closes #<issue number> , in the body of the PR commit message --> <!--- That if the PR is addressing an existing issue include, closes #<issue number> , in the body of the PR commit message -->
<!--- You have included links to any files / patches etc your PR may be using in the body of the PR commit message --> <!--- You have included links to any files / patches etc your PR may be using in the body of the PR commit message -->
@@ -21,7 +21,7 @@
------------------------------ ------------------------------
- [ ] I have read the [contributing](https://github.com/linuxserver/docker-qbittorrent/blob/master/.github/CONTRIBUTING.md) guideline and understand that I have made the correct modifications - [ ] I have read the [contributing](https://github.com/linuxserver/docker-qbittorrent/blob/unstable/.github/CONTRIBUTING.md) guideline and understand that I have made the correct modifications
------------------------------ ------------------------------

View File

@@ -18,16 +18,17 @@ jobs:
fi fi
echo "**** External trigger running off of unstable branch. To disable this trigger, set a Github secret named \"PAUSE_EXTERNAL_TRIGGER_QBITTORRENT_UNSTABLE\". ****" echo "**** External trigger running off of unstable branch. To disable this trigger, set a Github secret named \"PAUSE_EXTERNAL_TRIGGER_QBITTORRENT_UNSTABLE\". ****"
echo "**** Retrieving external version ****" echo "**** Retrieving external version ****"
EXT_RELEASE=$(curl -sX GET http://ppa.launchpad.net/qbittorrent-team/qbittorrent-unstable/ubuntu/dists/bionic/main/binary-amd64/Packages.gz | gunzip -c |grep -A 7 -m 1 'Package: qbittorrent-nox' | awk -F ': ' '/Version/{print $2;exit}') EXT_RELEASE=$(curl -sX GET http://ppa.launchpad.net/qbittorrent-team/qbittorrent-unstable/ubuntu/dists/focal/main/binary-amd64/Packages.gz | gunzip -c |grep -A 7 -m 1 'Package: qbittorrent-nox' | awk -F ': ' '/Version/{print $2;exit}')
if [ -z "${EXT_RELEASE}" ] || [ "${EXT_RELEASE}" == "null" ]; then if [ -z "${EXT_RELEASE}" ] || [ "${EXT_RELEASE}" == "null" ]; then
echo "**** Can't retrieve external version, exiting ****" echo "**** Can't retrieve external version, exiting ****"
FAILURE_REASON="Can't retrieve external version for qbittorrent branch unstable" FAILURE_REASON="Can't retrieve external version for qbittorrent branch unstable"
GHA_TRIGGER_URL="https://github.com/linuxserver/docker-qbittorrent/actions/runs/${{ github.run_id }}"
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 16711680, curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 16711680,
"description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n"}], "description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n**Trigger URL:** '"${GHA_TRIGGER_URL}"' \n"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }} "username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
exit 1 exit 1
fi fi
EXT_RELEASE=$(echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g') EXT_RELEASE_CLEAN=$(echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g')
echo "**** External version: ${EXT_RELEASE} ****" echo "**** External version: ${EXT_RELEASE} ****"
echo "**** Retrieving last pushed version ****" echo "**** Retrieving last pushed version ****"
image="linuxserver/qbittorrent" image="linuxserver/qbittorrent"
@@ -60,14 +61,20 @@ jobs:
exit 1 exit 1
fi fi
echo "**** Last pushed version: ${IMAGE_VERSION} ****" echo "**** Last pushed version: ${IMAGE_VERSION} ****"
if [ "${EXT_RELEASE}" == "${IMAGE_VERSION}" ]; then if [ "${EXT_RELEASE_CLEAN}" == "${IMAGE_VERSION}" ]; then
echo "**** Version ${EXT_RELEASE} already pushed, exiting ****" echo "**** Version ${EXT_RELEASE} already pushed, exiting ****"
exit 0 exit 0
elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-qbittorrent/job/unstable/lastBuild/api/json | jq -r '.building') == "true" ]; then elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-qbittorrent/job/unstable/lastBuild/api/json | jq -r '.building') == "true" ]; then
echo "**** New version ${EXT_RELEASE} found; but there already seems to be an active build on Jenkins; exiting ****" echo "**** New version ${EXT_RELEASE} found; but there already seems to be an active build on Jenkins; exiting ****"
exit 0 exit 0
else else
echo "**** New version ${EXT_RELEASE} found; old version was ${IMAGE_VERSION}. Triggering new build ****" echo "**** New version ${EXT_RELEASE_CLEAN} found; old version was ${IMAGE_VERSION}. Checking artifacts. . . ****"
EXT_RELEASE_STRIPPED=$(echo ${EXT_RELEASE} | sed 's|^1:||')
URL_AMD64="https://launchpad.net/~qbittorrent-team/+archive/ubuntu/qbittorrent-unstable/+files/qbittorrent-nox_${EXT_RELEASE_STRIPPED}_amd64.deb"
URL_ARMHF="https://launchpad.net/~qbittorrent-team/+archive/ubuntu/qbittorrent-unstable/+files/qbittorrent-nox_${EXT_RELEASE_STRIPPED}_armhf.deb"
URL_ARM64="https://launchpad.net/~qbittorrent-team/+archive/ubuntu/qbittorrent-unstable/+files/qbittorrent-nox_${EXT_RELEASE_STRIPPED}_arm64.deb"
if curl -fL "${URL_AMD64}" >/dev/null && curl -fL "${URL_ARMHF}" >/dev/null && curl -fL "${URL_ARM64}" >/dev/null; then
echo "**** All artifacts seem to be published, triggering build ****"
response=$(curl -iX POST \ response=$(curl -iX POST \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-qbittorrent/job/unstable/buildWithParameters?PACKAGE_CHECK=false \ https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-qbittorrent/job/unstable/buildWithParameters?PACKAGE_CHECK=false \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|") --user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
@@ -88,4 +95,11 @@ jobs:
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903, curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903,
"description": "**Build Triggered** \n**Reason:** '"${TRIGGER_REASON}"' \n**Build URL:** '"${buildurl}display/redirect"' \n"}], "description": "**Build Triggered** \n**Reason:** '"${TRIGGER_REASON}"' \n**Build URL:** '"${buildurl}display/redirect"' \n"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }} "username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
else
echo "**** Not all artifacts are published yet, skipping trigger ****"
FAILURE_REASON="New version ${EXT_RELEASE} for qbittorrent tag unstable is detected, however not all artifacts are uploaded to launchpad yet. Will try again in 1 hr."
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 }}
fi
fi fi

View File

@@ -8,6 +8,6 @@ jobs:
steps: steps:
- uses: actions/first-interaction@v1 - uses: actions/first-interaction@v1
with: with:
issue-message: 'Thanks for opening your first issue here! Be sure to follow the [issue template](https://github.com/linuxserver/docker-qbittorrent/blob/master/.github/ISSUE_TEMPLATE.md)!' issue-message: 'Thanks for opening your first issue here! Be sure to follow the [bug](https://github.com/linuxserver/docker-qbittorrent/blob/unstable/.github/ISSUE_TEMPLATE/issue.bug.md) or [feature](https://github.com/linuxserver/docker-qbittorrent/blob/unstable/.github/ISSUE_TEMPLATE/issue.feature.md) issue templates!'
pr-message: 'Thanks for opening this pull request! Be sure to follow the [pull request template](https://github.com/linuxserver/docker-qbittorrent/blob/master/.github/PULL_REQUEST_TEMPLATE.md)!' pr-message: 'Thanks for opening this pull request! Be sure to follow the [pull request template](https://github.com/linuxserver/docker-qbittorrent/blob/unstable/.github/PULL_REQUEST_TEMPLATE.md)!'
repo-token: ${{ secrets.GITHUB_TOKEN }} repo-token: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -2,7 +2,7 @@ name: Package Trigger Scheduler
on: on:
schedule: schedule:
- cron: '12 11 * * 1' - cron: '43 3 * * 1'
workflow_dispatch: workflow_dispatch:
jobs: jobs:

View File

@@ -10,7 +10,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/stale@v1 - uses: actions/stale@v3
with: with:
stale-issue-message: "This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions." stale-issue-message: "This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions."
stale-pr-message: "This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions." stale-pr-message: "This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions."

1
.gitignore vendored
View File

@@ -41,3 +41,4 @@ $RECYCLE.BIN/
Network Trash Folder Network Trash Folder
Temporary Items Temporary Items
.apdisk .apdisk
.jenkins-external

View File

@@ -1,4 +1,4 @@
FROM ghcr.io/linuxserver/baseimage-ubuntu:bionic FROM ghcr.io/linuxserver/baseimage-ubuntu:focal
# set version label # set version label
ARG BUILD_DATE ARG BUILD_DATE
@@ -20,14 +20,14 @@ RUN \
apt-get install -y \ apt-get install -y \
gnupg \ gnupg \
python3 && \ python3 && \
curl -s https://bintray.com/user/downloadSubjectPublicKey?username=fedarovich | apt-key add - && \ curl -s https://dl.cloudsmith.io/public/qbittorrent-cli/qbittorrent-cli/gpg.F8756541ADDA2B7D.key | apt-key add - && \
apt-key adv --keyserver hkp://keyserver.ubuntu.com:11371 --recv-keys 7CA69FC4 && \ apt-key adv --keyserver hkp://keyserver.ubuntu.com:11371 --recv-keys 7CA69FC4 && \
echo "deb http://ppa.launchpad.net/qbittorrent-team/qbittorrent-unstable/ubuntu bionic main" >> /etc/apt/sources.list.d/qbitorrent.list && \ echo "deb http://ppa.launchpad.net/qbittorrent-team/qbittorrent-unstable/ubuntu focal main" >> /etc/apt/sources.list.d/qbitorrent.list && \
echo "deb-src http://ppa.launchpad.net/qbittorrent-team/qbittorrent-unstable/ubuntu bionic main" >> /etc/apt/sources.list.d/qbitorrent.list && \ echo "deb-src http://ppa.launchpad.net/qbittorrent-team/qbittorrent-unstable/ubuntu focal main" >> /etc/apt/sources.list.d/qbitorrent.list && \
echo "deb https://dl.bintray.com/fedarovich/qbittorrent-cli-debian bionic main" >> /etc/apt/sources.list.d/qbitorrent.list && \ echo "deb https://dl.cloudsmith.io/public/qbittorrent-cli/qbittorrent-cli/deb/ubuntu focal main" >> /etc/apt/sources.list.d/qbitorrent.list && \
echo "**** install packages ****" && \ echo "**** install packages ****" && \
if [ -z ${QBITTORRENT_VERSION+x} ]; then \ if [ -z ${QBITTORRENT_VERSION+x} ]; then \
QBITTORRENT_VERSION=$(curl -sX GET http://ppa.launchpad.net/qbittorrent-team/qbittorrent-unstable/ubuntu/dists/bionic/main/binary-amd64/Packages.gz | gunzip -c \ QBITTORRENT_VERSION=$(curl -sX GET http://ppa.launchpad.net/qbittorrent-team/qbittorrent-unstable/ubuntu/dists/focal/main/binary-amd64/Packages.gz | gunzip -c \
|grep -A 7 -m 1 "Package: qbittorrent-nox" | awk -F ": " '/Version/{print $2;exit}');\ |grep -A 7 -m 1 "Package: qbittorrent-nox" | awk -F ": " '/Version/{print $2;exit}');\
fi && \ fi && \
apt-get update && \ apt-get update && \
@@ -50,4 +50,4 @@ COPY root/ /
# ports and volumes # ports and volumes
EXPOSE 6881 6881/udp 8080 EXPOSE 6881 6881/udp 8080
VOLUME /config /downloads VOLUME /config

View File

@@ -1,4 +1,4 @@
FROM ghcr.io/linuxserver/baseimage-ubuntu:arm64v8-bionic FROM ghcr.io/linuxserver/baseimage-ubuntu:arm64v8-focal
# set version label # set version label
ARG BUILD_DATE ARG BUILD_DATE
@@ -20,14 +20,14 @@ RUN \
apt-get install -y \ apt-get install -y \
gnupg \ gnupg \
python3 && \ python3 && \
curl -s https://bintray.com/user/downloadSubjectPublicKey?username=fedarovich | apt-key add - && \ curl -s https://dl.cloudsmith.io/public/qbittorrent-cli/qbittorrent-cli/gpg.F8756541ADDA2B7D.key | apt-key add - && \
apt-key adv --keyserver hkp://keyserver.ubuntu.com:11371 --recv-keys 7CA69FC4 && \ apt-key adv --keyserver hkp://keyserver.ubuntu.com:11371 --recv-keys 7CA69FC4 && \
echo "deb http://ppa.launchpad.net/qbittorrent-team/qbittorrent-unstable/ubuntu bionic main" >> /etc/apt/sources.list.d/qbitorrent.list && \ echo "deb http://ppa.launchpad.net/qbittorrent-team/qbittorrent-unstable/ubuntu focal main" >> /etc/apt/sources.list.d/qbitorrent.list && \
echo "deb-src http://ppa.launchpad.net/qbittorrent-team/qbittorrent-unstable/ubuntu bionic main" >> /etc/apt/sources.list.d/qbitorrent.list && \ echo "deb-src http://ppa.launchpad.net/qbittorrent-team/qbittorrent-unstable/ubuntu focal main" >> /etc/apt/sources.list.d/qbitorrent.list && \
echo "deb https://dl.bintray.com/fedarovich/qbittorrent-cli-debian bionic main" >> /etc/apt/sources.list.d/qbitorrent.list && \ echo "deb https://dl.cloudsmith.io/public/qbittorrent-cli/qbittorrent-cli/deb/ubuntu focal main" >> /etc/apt/sources.list.d/qbitorrent.list && \
echo "**** install packages ****" && \ echo "**** install packages ****" && \
if [ -z ${QBITTORRENT_VERSION+x} ]; then \ if [ -z ${QBITTORRENT_VERSION+x} ]; then \
QBITTORRENT_VERSION=$(curl -sX GET http://ppa.launchpad.net/qbittorrent-team/qbittorrent-unstable/ubuntu/dists/bionic/main/binary-amd64/Packages.gz | gunzip -c \ QBITTORRENT_VERSION=$(curl -sX GET http://ppa.launchpad.net/qbittorrent-team/qbittorrent-unstable/ubuntu/dists/focal/main/binary-amd64/Packages.gz | gunzip -c \
|grep -A 7 -m 1 "Package: qbittorrent-nox" | awk -F ": " '/Version/{print $2;exit}');\ |grep -A 7 -m 1 "Package: qbittorrent-nox" | awk -F ": " '/Version/{print $2;exit}');\
fi && \ fi && \
apt-get update && \ apt-get update && \
@@ -50,4 +50,4 @@ COPY root/ /
# ports and volumes # ports and volumes
EXPOSE 6881 6881/udp 8080 EXPOSE 6881 6881/udp 8080
VOLUME /config /downloads VOLUME /config

View File

@@ -1,4 +1,4 @@
FROM ghcr.io/linuxserver/baseimage-ubuntu:arm32v7-bionic FROM ghcr.io/linuxserver/baseimage-ubuntu:arm32v7-focal
# set version label # set version label
ARG BUILD_DATE ARG BUILD_DATE
@@ -20,14 +20,14 @@ RUN \
apt-get install -y \ apt-get install -y \
gnupg \ gnupg \
python3 && \ python3 && \
curl -s https://bintray.com/user/downloadSubjectPublicKey?username=fedarovich | apt-key add - && \ curl -s https://dl.cloudsmith.io/public/qbittorrent-cli/qbittorrent-cli/gpg.F8756541ADDA2B7D.key | apt-key add - && \
apt-key adv --keyserver hkp://keyserver.ubuntu.com:11371 --recv-keys 7CA69FC4 && \ apt-key adv --keyserver hkp://keyserver.ubuntu.com:11371 --recv-keys 7CA69FC4 && \
echo "deb http://ppa.launchpad.net/qbittorrent-team/qbittorrent-unstable/ubuntu bionic main" >> /etc/apt/sources.list.d/qbitorrent.list && \ echo "deb http://ppa.launchpad.net/qbittorrent-team/qbittorrent-unstable/ubuntu focal main" >> /etc/apt/sources.list.d/qbitorrent.list && \
echo "deb-src http://ppa.launchpad.net/qbittorrent-team/qbittorrent-unstable/ubuntu bionic main" >> /etc/apt/sources.list.d/qbitorrent.list && \ echo "deb-src http://ppa.launchpad.net/qbittorrent-team/qbittorrent-unstable/ubuntu focal main" >> /etc/apt/sources.list.d/qbitorrent.list && \
echo "deb https://dl.bintray.com/fedarovich/qbittorrent-cli-debian bionic main" >> /etc/apt/sources.list.d/qbitorrent.list && \ echo "deb https://dl.cloudsmith.io/public/qbittorrent-cli/qbittorrent-cli/deb/ubuntu focal main" >> /etc/apt/sources.list.d/qbitorrent.list && \
echo "**** install packages ****" && \ echo "**** install packages ****" && \
if [ -z ${QBITTORRENT_VERSION+x} ]; then \ if [ -z ${QBITTORRENT_VERSION+x} ]; then \
QBITTORRENT_VERSION=$(curl -sX GET http://ppa.launchpad.net/qbittorrent-team/qbittorrent-unstable/ubuntu/dists/bionic/main/binary-amd64/Packages.gz | gunzip -c \ QBITTORRENT_VERSION=$(curl -sX GET http://ppa.launchpad.net/qbittorrent-team/qbittorrent-unstable/ubuntu/dists/focal/main/binary-amd64/Packages.gz | gunzip -c \
|grep -A 7 -m 1 "Package: qbittorrent-nox" | awk -F ": " '/Version/{print $2;exit}');\ |grep -A 7 -m 1 "Package: qbittorrent-nox" | awk -F ": " '/Version/{print $2;exit}');\
fi && \ fi && \
apt-get update && \ apt-get update && \
@@ -50,4 +50,4 @@ COPY root/ /
# ports and volumes # ports and volumes
EXPOSE 6881 6881/udp 8080 EXPOSE 6881 6881/udp 8080
VOLUME /config /downloads VOLUME /config

177
Jenkinsfile vendored
View File

@@ -55,7 +55,7 @@ pipeline {
env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/commit/' + env.GIT_COMMIT 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.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DOCKERHUB_IMAGE + '/tags/'
env.PULL_REQUEST = env.CHANGE_ID env.PULL_REQUEST = env.CHANGE_ID
env.TEMPLATED_FILES = 'Jenkinsfile README.md LICENSE ./.github/CONTRIBUTING.md ./.github/FUNDING.yml ./.github/ISSUE_TEMPLATE/config.yml ./.github/ISSUE_TEMPLATE/issue.bug.md ./.github/ISSUE_TEMPLATE/issue.feature.md ./.github/PULL_REQUEST_TEMPLATE.md ./.github/workflows/greetings.yml ./.github/workflows/stale.yml ./.github/workflows/package_trigger.yml ./.github/workflows/package_trigger_scheduler.yml ./.github/workflows/external_trigger.yml ./.github/workflows/external_trigger_scheduler.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.md ./.github/ISSUE_TEMPLATE/issue.feature.md ./.github/PULL_REQUEST_TEMPLATE.md ./.github/workflows/external_trigger_scheduler.yml ./.github/workflows/greetings.yml ./.github/workflows/package_trigger_scheduler.yml ./.github/workflows/stale.yml ./.github/workflows/package_trigger.yml'
} }
script{ script{
env.LS_RELEASE_NUMBER = sh( env.LS_RELEASE_NUMBER = sh(
@@ -103,7 +103,7 @@ pipeline {
steps{ steps{
script{ script{
env.EXT_RELEASE = sh( env.EXT_RELEASE = sh(
script: ''' curl -sX GET http://ppa.launchpad.net/qbittorrent-team/qbittorrent-unstable/ubuntu/dists/bionic/main/binary-amd64/Packages.gz | gunzip -c |grep -A 7 -m 1 'Package: qbittorrent-nox' | awk -F ': ' '/Version/{print $2;exit}' ''', script: ''' curl -sX GET http://ppa.launchpad.net/qbittorrent-team/qbittorrent-unstable/ubuntu/dists/focal/main/binary-amd64/Packages.gz | gunzip -c |grep -A 7 -m 1 'Package: qbittorrent-nox' | awk -F ': ' '/Version/{print $2;exit}' ''',
returnStdout: true).trim() returnStdout: true).trim()
env.RELEASE_LINK = 'custom_command' env.RELEASE_LINK = 'custom_command'
} }
@@ -231,10 +231,52 @@ pipeline {
TEMPDIR=$(mktemp -d) TEMPDIR=$(mktemp -d)
docker pull ghcr.io/linuxserver/jenkins-builder:latest docker pull ghcr.io/linuxserver/jenkins-builder:latest
docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=unstable -v ${TEMPDIR}:/ansible/jenkins ghcr.io/linuxserver/jenkins-builder:latest docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=unstable -v ${TEMPDIR}:/ansible/jenkins ghcr.io/linuxserver/jenkins-builder:latest
# Stage 1 - Jenkinsfile update
if [[ "$(md5sum Jenkinsfile | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile | awk '{ print $1 }')" ]]; then
mkdir -p ${TEMPDIR}/repo
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
cd ${TEMPDIR}/repo/${LS_REPO}
git checkout -f unstable
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile ${TEMPDIR}/repo/${LS_REPO}/
git add Jenkinsfile
git commit -m 'Bot Updating Templated Files'
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
echo "Updating Jenkinsfile"
rm -Rf ${TEMPDIR}
exit 0
else
echo "Jenkinsfile is up to date."
fi
# Stage 2 - Delete old templates
OLD_TEMPLATES=".github/ISSUE_TEMPLATE.md"
for i in ${OLD_TEMPLATES}; do
if [[ -f "${i}" ]]; then
TEMPLATES_TO_DELETE="${i} ${TEMPLATES_TO_DELETE}"
fi
done
if [[ -n "${TEMPLATES_TO_DELETE}" ]]; then
mkdir -p ${TEMPDIR}/repo
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
cd ${TEMPDIR}/repo/${LS_REPO}
git checkout -f unstable
for i in ${TEMPLATES_TO_DELETE}; do
git rm "${i}"
done
git commit -m 'Bot Updating Templated Files'
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
echo "Deleting old templates"
rm -Rf ${TEMPDIR}
exit 0
else
echo "No templates to delete"
fi
# Stage 3 - Update templates
CURRENTHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8) 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) NEWHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8)
if [[ "${CURRENTHASH}" != "${NEWHASH}" ]]; then if [[ "${CURRENTHASH}" != "${NEWHASH}" ]] || ! grep -q '.jenkins-external' "${WORKSPACE}/.gitignore" 2>/dev/null; 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}
@@ -242,11 +284,13 @@ pipeline {
cd ${TEMPDIR}/docker-${CONTAINER_NAME} cd ${TEMPDIR}/docker-${CONTAINER_NAME}
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/workflows mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/workflows
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE
rm -f ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE.md
cp --parents ${TEMPLATED_FILES} ${TEMPDIR}/repo/${LS_REPO}/ || : cp --parents ${TEMPLATED_FILES} ${TEMPDIR}/repo/${LS_REPO}/ || :
cd ${TEMPDIR}/repo/${LS_REPO}/ cd ${TEMPDIR}/repo/${LS_REPO}/
if ! grep -q '.jenkins-external' .gitignore 2>/dev/null; then
echo ".jenkins-external" >> .gitignore
git add .gitignore
fi
git add ${TEMPLATED_FILES} git add ${TEMPLATED_FILES}
git rm .github/ISSUE_TEMPLATE.md || :
git commit -m 'Bot Updating Templated Files' git commit -m 'Bot Updating Templated Files'
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
@@ -255,13 +299,32 @@ pipeline {
fi fi
mkdir -p ${TEMPDIR}/gitbook mkdir -p ${TEMPDIR}/gitbook
git clone https://github.com/linuxserver/docker-documentation.git ${TEMPDIR}/gitbook/docker-documentation git clone https://github.com/linuxserver/docker-documentation.git ${TEMPDIR}/gitbook/docker-documentation
if [[ "${BRANCH_NAME}" == "master" ]] && [[ (! -f ${TEMPDIR}/gitbook/docker-documentation/images/docker-${CONTAINER_NAME}.md) || ("$(md5sum ${TEMPDIR}/gitbook/docker-documentation/images/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')") ]]; then if [[ ("${BRANCH_NAME}" == "master") || ("${BRANCH_NAME}" == "main") ]] && [[ (! -f ${TEMPDIR}/gitbook/docker-documentation/images/docker-${CONTAINER_NAME}.md) || ("$(md5sum ${TEMPDIR}/gitbook/docker-documentation/images/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')") ]]; then
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/docker-${CONTAINER_NAME}.md ${TEMPDIR}/gitbook/docker-documentation/images/ cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/docker-${CONTAINER_NAME}.md ${TEMPDIR}/gitbook/docker-documentation/images/
cd ${TEMPDIR}/gitbook/docker-documentation/ cd ${TEMPDIR}/gitbook/docker-documentation/
git add images/docker-${CONTAINER_NAME}.md git add images/docker-${CONTAINER_NAME}.md
git commit -m 'Bot Updating Documentation' git commit -m 'Bot Updating Documentation'
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git --all git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git --all
fi 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
fi
if [[ ("${BRANCH_NAME}" == "master") || ("${BRANCH_NAME}" == "main") ]] && [[ (! -f ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml) || ("$(md5sum ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml | awk '{ print $1 }')") ]]; then
cd ${TEMPDIR}/unraid/templates/
if grep -wq "${CONTAINER_NAME}" ${TEMPDIR}/unraid/templates/unraid/ignore.list; then
echo "Image is on the ignore list, removing Unraid template"
git rm unraid/${CONTAINER_NAME}.xml || :
git commit -m 'Bot Removing 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 push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git --all
fi
rm -Rf ${TEMPDIR}''' rm -Rf ${TEMPDIR}'''
script{ script{
env.FILES_UPDATED = sh( env.FILES_UPDATED = sh(
@@ -312,26 +375,57 @@ pipeline {
// Build Docker container for push to LS Repo // Build Docker container for push to LS Repo
stage('Build-Single') { stage('Build-Single') {
when { when {
environment name: 'MULTIARCH', value: 'false' expression {
env.MULTIARCH == 'false' || params.PACKAGE_CHECK == 'true'
}
environment name: 'EXIT_STATUS', value: '' environment name: 'EXIT_STATUS', value: ''
} }
steps { steps {
echo "Running on node: ${NODE_NAME}" echo "Running on node: ${NODE_NAME}"
sh "docker build --no-cache --pull -t ${IMAGE}:${META_TAG} \ sh "docker build \
--label \"org.opencontainers.image.created=${GITHUB_DATE}\" \
--label \"org.opencontainers.image.authors=linuxserver.io\" \
--label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-qbittorrent/packages\" \
--label \"org.opencontainers.image.documentation=https://docs.linuxserver.io/images/docker-qbittorrent\" \
--label \"org.opencontainers.image.source=https://github.com/linuxserver/docker-qbittorrent\" \
--label \"org.opencontainers.image.version=${EXT_RELEASE_CLEAN}-ls${LS_TAG_NUMBER}\" \
--label \"org.opencontainers.image.revision=${COMMIT_SHA}\" \
--label \"org.opencontainers.image.vendor=linuxserver.io\" \
--label \"org.opencontainers.image.licenses=GPL-3.0-only\" \
--label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \
--label \"org.opencontainers.image.title=Qbittorrent\" \
--label \"org.opencontainers.image.description=The [Qbittorrent](https://www.qbittorrent.org/) project aims to provide an open-source software alternative to µTorrent. qBittorrent is based on the Qt toolkit and libtorrent-rasterbar library.\" \
--no-cache --pull -t ${IMAGE}:${META_TAG} \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." --build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
} }
} }
// Build MultiArch Docker containers for push to LS Repo // Build MultiArch Docker containers for push to LS Repo
stage('Build-Multi') { stage('Build-Multi') {
when { when {
allOf {
environment name: 'MULTIARCH', value: 'true' environment name: 'MULTIARCH', value: 'true'
expression { params.PACKAGE_CHECK == 'false' }
}
environment name: 'EXIT_STATUS', value: '' environment name: 'EXIT_STATUS', value: ''
} }
parallel { parallel {
stage('Build X86') { stage('Build X86') {
steps { steps {
echo "Running on node: ${NODE_NAME}" echo "Running on node: ${NODE_NAME}"
sh "docker build --no-cache --pull -t ${IMAGE}:amd64-${META_TAG} \ sh "docker build \
--label \"org.opencontainers.image.created=${GITHUB_DATE}\" \
--label \"org.opencontainers.image.authors=linuxserver.io\" \
--label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-qbittorrent/packages\" \
--label \"org.opencontainers.image.documentation=https://docs.linuxserver.io/images/docker-qbittorrent\" \
--label \"org.opencontainers.image.source=https://github.com/linuxserver/docker-qbittorrent\" \
--label \"org.opencontainers.image.version=${EXT_RELEASE_CLEAN}-ls${LS_TAG_NUMBER}\" \
--label \"org.opencontainers.image.revision=${COMMIT_SHA}\" \
--label \"org.opencontainers.image.vendor=linuxserver.io\" \
--label \"org.opencontainers.image.licenses=GPL-3.0-only\" \
--label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \
--label \"org.opencontainers.image.title=Qbittorrent\" \
--label \"org.opencontainers.image.description=The [Qbittorrent](https://www.qbittorrent.org/) project aims to provide an open-source software alternative to µTorrent. qBittorrent is based on the Qt toolkit and libtorrent-rasterbar library.\" \
--no-cache --pull -t ${IMAGE}:amd64-${META_TAG} \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." --build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
} }
} }
@@ -345,7 +439,20 @@ pipeline {
sh '''#! /bin/bash sh '''#! /bin/bash
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
''' '''
sh "docker build --no-cache --pull -f Dockerfile.armhf -t ${IMAGE}:arm32v7-${META_TAG} \ sh "docker build \
--label \"org.opencontainers.image.created=${GITHUB_DATE}\" \
--label \"org.opencontainers.image.authors=linuxserver.io\" \
--label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-qbittorrent/packages\" \
--label \"org.opencontainers.image.documentation=https://docs.linuxserver.io/images/docker-qbittorrent\" \
--label \"org.opencontainers.image.source=https://github.com/linuxserver/docker-qbittorrent\" \
--label \"org.opencontainers.image.version=${EXT_RELEASE_CLEAN}-ls${LS_TAG_NUMBER}\" \
--label \"org.opencontainers.image.revision=${COMMIT_SHA}\" \
--label \"org.opencontainers.image.vendor=linuxserver.io\" \
--label \"org.opencontainers.image.licenses=GPL-3.0-only\" \
--label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \
--label \"org.opencontainers.image.title=Qbittorrent\" \
--label \"org.opencontainers.image.description=The [Qbittorrent](https://www.qbittorrent.org/) project aims to provide an open-source software alternative to µTorrent. qBittorrent is based on the Qt toolkit and libtorrent-rasterbar library.\" \
--no-cache --pull -f Dockerfile.armhf -t ${IMAGE}:arm32v7-${META_TAG} \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." --build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
sh "docker tag ${IMAGE}:arm32v7-${META_TAG} ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}" sh "docker tag ${IMAGE}:arm32v7-${META_TAG} ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}"
retry(5) { retry(5) {
@@ -366,7 +473,20 @@ pipeline {
sh '''#! /bin/bash sh '''#! /bin/bash
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
''' '''
sh "docker build --no-cache --pull -f Dockerfile.aarch64 -t ${IMAGE}:arm64v8-${META_TAG} \ sh "docker build \
--label \"org.opencontainers.image.created=${GITHUB_DATE}\" \
--label \"org.opencontainers.image.authors=linuxserver.io\" \
--label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-qbittorrent/packages\" \
--label \"org.opencontainers.image.documentation=https://docs.linuxserver.io/images/docker-qbittorrent\" \
--label \"org.opencontainers.image.source=https://github.com/linuxserver/docker-qbittorrent\" \
--label \"org.opencontainers.image.version=${EXT_RELEASE_CLEAN}-ls${LS_TAG_NUMBER}\" \
--label \"org.opencontainers.image.revision=${COMMIT_SHA}\" \
--label \"org.opencontainers.image.vendor=linuxserver.io\" \
--label \"org.opencontainers.image.licenses=GPL-3.0-only\" \
--label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \
--label \"org.opencontainers.image.title=Qbittorrent\" \
--label \"org.opencontainers.image.description=The [Qbittorrent](https://www.qbittorrent.org/) project aims to provide an open-source software alternative to µTorrent. qBittorrent is based on the Qt toolkit and libtorrent-rasterbar library.\" \
--no-cache --pull -f Dockerfile.aarch64 -t ${IMAGE}:arm64v8-${META_TAG} \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." --build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
sh "docker tag ${IMAGE}:arm64v8-${META_TAG} ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}" sh "docker tag ${IMAGE}:arm64v8-${META_TAG} ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}"
retry(5) { retry(5) {
@@ -390,7 +510,7 @@ pipeline {
sh '''#! /bin/bash sh '''#! /bin/bash
set -e set -e
TEMPDIR=$(mktemp -d) TEMPDIR=$(mktemp -d)
if [ "${MULTIARCH}" == "true" ]; then if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; 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}
@@ -405,6 +525,15 @@ pipeline {
apt list -qq --installed | sed "s#/.*now ##g" | cut -d" " -f1 > /tmp/package_versions.txt && \ apt list -qq --installed | sed "s#/.*now ##g" | cut -d" " -f1 > /tmp/package_versions.txt && \
sort -o /tmp/package_versions.txt /tmp/package_versions.txt && \ sort -o /tmp/package_versions.txt /tmp/package_versions.txt && \
chmod 777 /tmp/package_versions.txt' chmod 777 /tmp/package_versions.txt'
elif [ "${DIST_IMAGE}" == "fedora" ]; then
docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\
rpm -qa > /tmp/package_versions.txt && \
sort -o /tmp/package_versions.txt /tmp/package_versions.txt && \
chmod 777 /tmp/package_versions.txt'
elif [ "${DIST_IMAGE}" == "arch" ]; then
docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\
pacman -Q > /tmp/package_versions.txt && \
chmod 777 /tmp/package_versions.txt'
fi fi
NEW_PACKAGE_TAG=$(md5sum ${TEMPDIR}/package_versions.txt | cut -c1-8 ) NEW_PACKAGE_TAG=$(md5sum ${TEMPDIR}/package_versions.txt | cut -c1-8 )
echo "Package tag sha from current packages in buit container is ${NEW_PACKAGE_TAG} comparing to old ${PACKAGE_TAG} from github" echo "Package tag sha from current packages in buit container is ${NEW_PACKAGE_TAG} comparing to old ${PACKAGE_TAG} from github"
@@ -442,7 +571,7 @@ pipeline {
steps { steps {
sh '''#! /bin/bash sh '''#! /bin/bash
echo "Packages were updated. Cleaning up the image and exiting." echo "Packages were updated. Cleaning up the image and exiting."
if [ "${MULTIARCH}" == "true" ]; then if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then
docker rmi ${IMAGE}:amd64-${META_TAG} docker rmi ${IMAGE}:amd64-${META_TAG}
else else
docker rmi ${IMAGE}:${META_TAG} docker rmi ${IMAGE}:${META_TAG}
@@ -466,7 +595,7 @@ pipeline {
steps { steps {
sh '''#! /bin/bash sh '''#! /bin/bash
echo "There are no package updates. Cleaning up the image and exiting." echo "There are no package updates. Cleaning up the image and exiting."
if [ "${MULTIARCH}" == "true" ]; then if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then
docker rmi ${IMAGE}:amd64-${META_TAG} docker rmi ${IMAGE}:amd64-${META_TAG}
else else
docker rmi ${IMAGE}:${META_TAG} docker rmi ${IMAGE}:${META_TAG}
@@ -495,7 +624,7 @@ pipeline {
} }
sh '''#! /bin/bash sh '''#! /bin/bash
set -e set -e
docker pull ghcr.io/linuxserver/lsiodev-ci:latest docker pull ghcr.io/linuxserver/ci:latest
if [ "${MULTIARCH}" == "true" ]; then if [ "${MULTIARCH}" == "true" ]; then
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
@@ -520,7 +649,7 @@ pipeline {
-e WEB_PATH=\"${CI_WEBPATH}\" \ -e WEB_PATH=\"${CI_WEBPATH}\" \
-e DO_REGION="ams3" \ -e DO_REGION="ams3" \
-e DO_BUCKET="lsio-ci" \ -e DO_BUCKET="lsio-ci" \
-t ghcr.io/linuxserver/lsiodev-ci:latest \ -t ghcr.io/linuxserver/ci:latest \
python /ci/ci.py''' python /ci/ci.py'''
} }
} }
@@ -665,9 +794,9 @@ pipeline {
environment name: 'EXIT_STATUS', value: '' environment name: 'EXIT_STATUS', value: ''
} }
steps { steps {
echo "Pushing New tag for current commit ${EXT_RELEASE_CLEAN}-ls${LS_TAG_NUMBER}" echo "Pushing New tag for current commit ${META_TAG}"
sh '''curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/git/tags \ sh '''curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/git/tags \
-d '{"tag":"'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}'",\ -d '{"tag":"'${META_TAG}'",\
"object": "'${COMMIT_SHA}'",\ "object": "'${COMMIT_SHA}'",\
"message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to unstable",\ "message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to unstable",\
"type": "commit",\ "type": "commit",\
@@ -675,10 +804,10 @@ pipeline {
echo "Pushing New release for Tag" echo "Pushing New release for Tag"
sh '''#! /bin/bash sh '''#! /bin/bash
echo "Updating to ${EXT_RELEASE_CLEAN}" > releasebody.json echo "Updating to ${EXT_RELEASE_CLEAN}" > releasebody.json
echo '{"tag_name":"'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}'",\ echo '{"tag_name":"'${META_TAG}'",\
"target_commitish": "unstable",\ "target_commitish": "unstable",\
"name": "'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}'",\ "name": "'${META_TAG}'",\
"body": "**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n**Remote Changes:**\\n\\n' > start "body": "**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n\\n**Remote Changes:**\\n\\n' > start
printf '","draft": false,"prerelease": true}' >> releasebody.json printf '","draft": false,"prerelease": true}' >> releasebody.json
paste -d'\\0' start releasebody.json > releasebody.json.done paste -d'\\0' start releasebody.json > releasebody.json.done
curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases -d @releasebody.json.done''' curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases -d @releasebody.json.done'''
@@ -704,7 +833,7 @@ pipeline {
TEMPDIR=$(mktemp -d) TEMPDIR=$(mktemp -d)
docker pull ghcr.io/linuxserver/jenkins-builder:latest docker pull ghcr.io/linuxserver/jenkins-builder:latest
docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH="${BRANCH_NAME}" -v ${TEMPDIR}:/ansible/jenkins ghcr.io/linuxserver/jenkins-builder:latest docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH="${BRANCH_NAME}" -v ${TEMPDIR}:/ansible/jenkins ghcr.io/linuxserver/jenkins-builder:latest
docker pull ghcr.io/linuxserver/lsiodev-readme-sync docker pull ghcr.io/linuxserver/readme-sync
docker run --rm=true \ docker run --rm=true \
-e DOCKERHUB_USERNAME=$DOCKERUSER \ -e DOCKERHUB_USERNAME=$DOCKERUSER \
-e DOCKERHUB_PASSWORD=$DOCKERPASS \ -e DOCKERHUB_PASSWORD=$DOCKERPASS \
@@ -712,7 +841,7 @@ pipeline {
-e DOCKER_REPOSITORY=${IMAGE} \ -e DOCKER_REPOSITORY=${IMAGE} \
-e GIT_BRANCH=master \ -e GIT_BRANCH=master \
-v ${TEMPDIR}/docker-${CONTAINER_NAME}:/mnt \ -v ${TEMPDIR}/docker-${CONTAINER_NAME}:/mnt \
ghcr.io/linuxserver/lsiodev-readme-sync bash -c 'node sync' ghcr.io/linuxserver/readme-sync bash -c 'node sync'
rm -Rf ${TEMPDIR} ''' rm -Rf ${TEMPDIR} '''
} }
} }

215
README.md
View File

@@ -1,5 +1,5 @@
<!-- DO NOT EDIT THIS FILE MANUALLY --> <!-- DO NOT EDIT THIS FILE MANUALLY -->
<!-- Please read the CONTRIBUTING.md --> <!-- Please read the https://github.com/linuxserver/docker-qbittorrent/blob/unstable/.github/CONTRIBUTING.md -->
[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)](https://linuxserver.io) [![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)](https://linuxserver.io)
@@ -19,6 +19,7 @@ The [LinuxServer.io](https://linuxserver.io) team brings you another container r
* regular security updates * regular security updates
Find us at: 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! * [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://discord.gg/YWrKVTn) - realtime support / chat with the community and the team.
* [Discourse](https://discourse.linuxserver.io) - post on our community forum. * [Discourse](https://discourse.linuxserver.io) - post on our community forum.
@@ -32,7 +33,6 @@ Find us at:
[![GitHub Release](https://img.shields.io/github/release/linuxserver/docker-qbittorrent.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-qbittorrent/releases) [![GitHub Release](https://img.shields.io/github/release/linuxserver/docker-qbittorrent.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-qbittorrent/releases)
[![GitHub Package Repository](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitHub%20Package&logo=github)](https://github.com/linuxserver/docker-qbittorrent/packages) [![GitHub Package Repository](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitHub%20Package&logo=github)](https://github.com/linuxserver/docker-qbittorrent/packages)
[![GitLab Container Registry](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitLab%20Registry&logo=gitlab)](https://gitlab.com/linuxserver.io/docker-qbittorrent/container_registry) [![GitLab Container Registry](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitLab%20Registry&logo=gitlab)](https://gitlab.com/linuxserver.io/docker-qbittorrent/container_registry)
[![MicroBadger Layers](https://img.shields.io/microbadger/layers/linuxserver/qbittorrent.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge)](https://microbadger.com/images/linuxserver/qbittorrent "Get your own version badge on microbadger.com")
[![Docker Pulls](https://img.shields.io/docker/pulls/linuxserver/qbittorrent.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=pulls&logo=docker)](https://hub.docker.com/r/linuxserver/qbittorrent) [![Docker Pulls](https://img.shields.io/docker/pulls/linuxserver/qbittorrent.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=pulls&logo=docker)](https://hub.docker.com/r/linuxserver/qbittorrent)
[![Docker Stars](https://img.shields.io/docker/stars/linuxserver/qbittorrent.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=stars&logo=docker)](https://hub.docker.com/r/linuxserver/qbittorrent) [![Docker Stars](https://img.shields.io/docker/stars/linuxserver/qbittorrent.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=stars&logo=docker)](https://hub.docker.com/r/linuxserver/qbittorrent)
[![Jenkins Build](https://img.shields.io/jenkins/build?labelColor=555555&logoColor=ffffff&style=for-the-badge&jobUrl=https%3A%2F%2Fci.linuxserver.io%2Fjob%2FDocker-Pipeline-Builders%2Fjob%2Fdocker-qbittorrent%2Fjob%2Funstable%2F&logo=jenkins)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-qbittorrent/job/unstable/) [![Jenkins Build](https://img.shields.io/jenkins/build?labelColor=555555&logoColor=ffffff&style=for-the-badge&jobUrl=https%3A%2F%2Fci.linuxserver.io%2Fjob%2FDocker-Pipeline-Builders%2Fjob%2Fdocker-qbittorrent%2Fjob%2Funstable%2F&logo=jenkins)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-qbittorrent/job/unstable/)
@@ -65,106 +65,6 @@ This image provides various versions that are available via tags. `latest` tag u
| latest | Stable qbittorrent releases | | latest | Stable qbittorrent releases |
| unstable | Unstable qbittorrent releases | | unstable | Unstable qbittorrent releases |
## Usage
Here are some example snippets to help you get started creating a container.
### docker-compose ([recommended](https://docs.linuxserver.io/general/docker-compose))
Compatible with docker-compose v2 schemas.
```yaml
---
version: "2.1"
services:
qbittorrent:
image: ghcr.io/linuxserver/qbittorrent
container_name: qbittorrent
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
- UMASK_SET=022
- WEBUI_PORT=8080
volumes:
- </path/to/appdata/config>:/config
- </path/to/downloads>:/downloads
ports:
- 6881:6881
- 6881:6881/udp
- 8080:8080
restart: unless-stopped
```
### docker cli
```
docker run -d \
--name=qbittorrent \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Europe/London \
-e UMASK_SET=022 \
-e WEBUI_PORT=8080 \
-p 6881:6881 \
-p 6881:6881/udp \
-p 8080:8080 \
-v </path/to/appdata/config>:/config \
-v </path/to/downloads>:/downloads \
--restart unless-stopped \
ghcr.io/linuxserver/qbittorrent
```
## Parameters
Container images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate `<external>:<internal>` respectively. For example, `-p 8080:80` would expose port `80` from inside the container to be accessible from the host's IP on port `8080` outside the container.
| Parameter | Function |
| :----: | --- |
| `-p 6881` | tcp connection port |
| `-p 6881/udp` | udp connection port |
| `-p 8080` | http gui |
| `-e PUID=1000` | for UserID - see below for explanation |
| `-e PGID=1000` | for GroupID - see below for explanation |
| `-e TZ=Europe/London` | Specify a timezone to use EG Europe/London |
| `-e UMASK_SET=022` | for umask setting of qbittorrent, optional , default if left unset is 022 |
| `-e WEBUI_PORT=8080` | for changing the port of the webui, see below for explanation |
| `-v /config` | Contains all relevant configuration files. |
| `-v /downloads` | Location of downloads on disk. |
## Environment variables from files (Docker secrets)
You can set any environment variable from a file by using a special prepend `FILE__`.
As an example:
```
-e FILE__PASSWORD=/run/secrets/mysecretpassword
```
Will set the environment variable `PASSWORD` based on the contents of the `/run/secrets/mysecretpassword` file.
## Umask for running applications
For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional `-e UMASK=022` setting.
Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up [here](https://en.wikipedia.org/wiki/Umask) before asking for support.
## User / Group Identifiers
When using volumes (`-v` flags) permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user `PUID` and group `PGID`.
Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic.
In this instance `PUID=1000` and `PGID=1000`, to find yours use `id user` as below:
```
$ id username
uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)
```
&nbsp;
## Application Setup ## Application Setup
The webui is at `<your-ip>:8080` and the default username/password is `admin/adminadmin`. The webui is at `<your-ip>:8080` and the default username/password is `admin/adminadmin`.
@@ -190,13 +90,106 @@ WebUI\Address=*
WebUI\ServerDomains=* WebUI\ServerDomains=*
``` ```
If you are running a very old (3.x) kernel you may run into [this issue](https://github.com/linuxserver/docker-qbittorrent/issues/103) which can be worked around using [this method](https://github.com/linuxserver/docker-qbittorrent/issues/103#issuecomment-831238484)
## Usage
Here are some example snippets to help you get started creating a container.
### docker-compose (recommended, [click here for more info](https://docs.linuxserver.io/general/docker-compose))
```yaml
---
version: "2.1"
services:
qbittorrent:
image: ghcr.io/linuxserver/qbittorrent
container_name: qbittorrent
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
- WEBUI_PORT=8080
volumes:
- </path/to/appdata/config>:/config
- </path/to/downloads>:/downloads
ports:
- 6881:6881
- 6881:6881/udp
- 8080:8080
restart: unless-stopped
```
### docker cli ([click here for more info](https://docs.docker.com/engine/reference/commandline/cli/))
```bash
docker run -d \
--name=qbittorrent \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Europe/London \
-e WEBUI_PORT=8080 \
-p 6881:6881 \
-p 6881:6881/udp \
-p 8080:8080 \
-v </path/to/appdata/config>:/config \
-v </path/to/downloads>:/downloads \
--restart unless-stopped \
ghcr.io/linuxserver/qbittorrent
```
## Parameters
Container images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate `<external>:<internal>` respectively. For example, `-p 8080:80` would expose port `80` from inside the container to be accessible from the host's IP on port `8080` outside the container.
| Parameter | Function |
| :----: | --- |
| `-p 6881` | tcp connection port |
| `-p 6881/udp` | udp connection port |
| `-p 8080` | http gui |
| `-e PUID=1000` | for UserID - see below for explanation |
| `-e PGID=1000` | for GroupID - see below for explanation |
| `-e TZ=Europe/London` | Specify a timezone to use EG Europe/London |
| `-e WEBUI_PORT=8080` | for changing the port of the webui, see below for explanation |
| `-v /config` | Contains all relevant configuration files. |
| `-v /downloads` | Location of downloads on disk. |
## Environment variables from files (Docker secrets)
You can set any environment variable from a file by using a special prepend `FILE__`.
As an example:
```bash
-e FILE__PASSWORD=/run/secrets/mysecretpassword
```
Will set the environment variable `PASSWORD` based on the contents of the `/run/secrets/mysecretpassword` file.
## Umask for running applications
For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional `-e UMASK=022` setting.
Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up [here](https://en.wikipedia.org/wiki/Umask) before asking for support.
## User / Group Identifiers
When using volumes (`-v` flags) permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user `PUID` and group `PGID`.
Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic.
In this instance `PUID=1000` and `PGID=1000`, to find yours use `id user` as below:
```bash
$ id username
uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)
```
## Docker Mods ## Docker Mods
[![Docker Mods](https://img.shields.io/badge/dynamic/yaml?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=qbittorrent&query=%24.mods%5B%27qbittorrent%27%5D.mod_count&url=https%3A%2F%2Fraw.githubusercontent.com%2Flinuxserver%2Fdocker-mods%2Fmaster%2Fmod-list.yml)](https://mods.linuxserver.io/?mod=qbittorrent "view available mods for this container.") [![Docker Universal Mods](https://img.shields.io/badge/dynamic/yaml?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=universal&query=%24.mods%5B%27universal%27%5D.mod_count&url=https%3A%2F%2Fraw.githubusercontent.com%2Flinuxserver%2Fdocker-mods%2Fmaster%2Fmod-list.yml)](https://mods.linuxserver.io/?mod=universal "view available universal mods.") [![Docker Mods](https://img.shields.io/badge/dynamic/yaml?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=qbittorrent&query=%24.mods%5B%27qbittorrent%27%5D.mod_count&url=https%3A%2F%2Fraw.githubusercontent.com%2Flinuxserver%2Fdocker-mods%2Fmaster%2Fmod-list.yml)](https://mods.linuxserver.io/?mod=qbittorrent "view available mods for this container.") [![Docker Universal Mods](https://img.shields.io/badge/dynamic/yaml?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=universal&query=%24.mods%5B%27universal%27%5D.mod_count&url=https%3A%2F%2Fraw.githubusercontent.com%2Flinuxserver%2Fdocker-mods%2Fmaster%2Fmod-list.yml)](https://mods.linuxserver.io/?mod=universal "view available universal mods.")
We publish various [Docker Mods](https://github.com/linuxserver/docker-mods) to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. We publish various [Docker Mods](https://github.com/linuxserver/docker-mods) to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.
## Support Info ## Support Info
* Shell access whilst the container is running: `docker exec -it qbittorrent /bin/bash` * Shell access whilst the container is running: `docker exec -it qbittorrent /bin/bash`
@@ -213,6 +206,7 @@ Most of our images are static, versioned, and require an image update and contai
Below are the instructions for updating containers: Below are the instructions for updating containers:
### Via Docker Compose ### Via Docker Compose
* Update all images: `docker-compose pull` * Update all images: `docker-compose pull`
* or update a single image: `docker-compose pull qbittorrent` * or update a single image: `docker-compose pull qbittorrent`
* Let compose update all containers as necessary: `docker-compose up -d` * Let compose update all containers as necessary: `docker-compose up -d`
@@ -220,6 +214,7 @@ Below are the instructions for updating containers:
* You can also remove the old dangling images: `docker image prune` * You can also remove the old dangling images: `docker image prune`
### Via Docker Run ### Via Docker Run
* Update the image: `docker pull ghcr.io/linuxserver/qbittorrent` * Update the image: `docker pull ghcr.io/linuxserver/qbittorrent`
* Stop the running container: `docker stop qbittorrent` * Stop the running container: `docker stop qbittorrent`
* Delete the container: `docker rm qbittorrent` * Delete the container: `docker rm qbittorrent`
@@ -227,24 +222,29 @@ Below are the instructions for updating containers:
* You can also remove the old dangling images: `docker image prune` * You can also remove the old dangling images: `docker image prune`
### Via Watchtower auto-updater (only use if you don't remember the original parameters) ### Via Watchtower auto-updater (only use if you don't remember the original parameters)
* Pull the latest image at its tag and replace it with the same env variables in one run: * Pull the latest image at its tag and replace it with the same env variables in one run:
```
```bash
docker run --rm \ docker run --rm \
-v /var/run/docker.sock:/var/run/docker.sock \ -v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower \ containrrr/watchtower \
--run-once qbittorrent --run-once qbittorrent
``` ```
* You can also remove the old dangling images: `docker image prune` * You can also remove the old dangling images: `docker image prune`
**Note:** We do not endorse the use of Watchtower as a solution to automated updates of existing Docker containers. In fact we generally discourage automated updates. However, this is a useful tool for one-time manual updates of containers where you have forgotten the original parameters. In the long term, we highly recommend using [Docker Compose](https://docs.linuxserver.io/general/docker-compose). **Note:** We do not endorse the use of Watchtower as a solution to automated updates of existing Docker containers. In fact we generally discourage automated updates. However, this is a useful tool for one-time manual updates of containers where you have forgotten the original parameters. In the long term, we highly recommend using [Docker Compose](https://docs.linuxserver.io/general/docker-compose).
### Image Update Notifications - Diun (Docker Image Update Notifier) ### Image Update Notifications - Diun (Docker Image Update Notifier)
* We recommend [Diun](https://crazymax.dev/diun/) for update notifications. Other tools that automatically update containers unattended are not recommended or supported. * We recommend [Diun](https://crazymax.dev/diun/) for update notifications. Other tools that automatically update containers unattended are not recommended or supported.
## Building locally ## Building locally
If you want to make local modifications to these images for development purposes or just to customize the logic: If you want to make local modifications to these images for development purposes or just to customize the logic:
```
```bash
git clone https://github.com/linuxserver/docker-qbittorrent.git git clone https://github.com/linuxserver/docker-qbittorrent.git
cd docker-qbittorrent cd docker-qbittorrent
docker build \ docker build \
@@ -254,7 +254,8 @@ docker build \
``` ```
The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static` The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static`
```
```bash
docker run --rm --privileged multiarch/qemu-user-static:register --reset docker run --rm --privileged multiarch/qemu-user-static:register --reset
``` ```
@@ -262,6 +263,8 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
## Versions ## Versions
* **24.03.21:** - Rebase to focal.
* **20.01.21:** - Deprecate `UMASK_SET` in favor of UMASK in baseimage, see above for more information.
* **05.07.20:** - Shift to Python3 * **05.07.20:** - Shift to Python3
* **31.10.19:** - Adding unstable tag. * **31.10.19:** - Adding unstable tag.
* **02.08.19:** - Add qbitorrent-cli for processing scripts. * **02.08.19:** - Add qbitorrent-cli for processing scripts.

View File

@@ -3,10 +3,11 @@
# jenkins variables # jenkins variables
project_name: docker-qbittorrent project_name: docker-qbittorrent
external_type: na external_type: na
custom_version_command: "curl -sX GET http://ppa.launchpad.net/qbittorrent-team/qbittorrent-unstable/ubuntu/dists/bionic/main/binary-amd64/Packages.gz | gunzip -c |grep -A 7 -m 1 'Package: qbittorrent-nox' | awk -F ': ' '/Version/{print $2;exit}'" custom_version_command: "curl -sX GET http://ppa.launchpad.net/qbittorrent-team/qbittorrent-unstable/ubuntu/dists/focal/main/binary-amd64/Packages.gz | gunzip -c |grep -A 7 -m 1 'Package: qbittorrent-nox' | awk -F ': ' '/Version/{print $2;exit}'"
release_type: prerelease release_type: prerelease
release_tag: unstable release_tag: unstable
ls_branch: unstable ls_branch: unstable
custom_external_trigger: true
repo_vars: repo_vars:
- CONTAINER_NAME = 'qbittorrent' - CONTAINER_NAME = 'qbittorrent'
- BUILD_VERSION_ARG = 'QBITTORRENT_VERSION' - BUILD_VERSION_ARG = 'QBITTORRENT_VERSION'

View File

@@ -1,180 +1,193 @@
adduser3.116ubuntu1 adduser3.118ubuntu2
apt1.6.12ubuntu0.2 apt2.0.6
apt-utils1.6.12ubuntu0.2 apt-utils2.0.6
base-files10.1ubuntu2.10 base-files11ubuntu5.4
base-passwd3.5.44 base-passwd3.5.47
bash4.4.18-2ubuntu1.2 bash5.0-6ubuntu1.1
bsdutils1:2.31.1-0.4ubuntu3.7 bsdutils1:2.34-0.1ubuntu9.1
bzip21.0.6-8.1ubuntu0.2 bzip21.0.8-2
ca-certificates20201027ubuntu0.18.04.1 ca-certificates20210119~20.04.1
coreutils8.28-1ubuntu1 coreutils8.30-3ubuntu2
curl7.58.0-2ubuntu3.12 curl7.68.0-1ubuntu2.6
dash0.5.8-2.10 dash0.5.10.2-6
dbus1.12.2-1ubuntu1.2 dbus1.12.16-2ubuntu2.1
debconf1.5.66ubuntu1 debconf1.5.73
debianutils4.8.4 debianutils4.9.1
diffutils1:3.6-1 diffutils1:3.7-3
dirmngr2.2.4-1ubuntu1.3 dirmngr2.2.19-3ubuntu2.1
dpkg1.19.0.5ubuntu2.3 dpkg1.19.7ubuntu3
e2fsprogs1.44.1-1ubuntu1.3 e2fsprogs1.45.5-2ubuntu1
fdisk2.31.1-0.4ubuntu3.7 fdisk2.34-0.1ubuntu9.1
file1:5.32-2ubuntu0.4 file1:5.38-4
findutils4.6.0+git+20170828-2 findutils4.7.0-1ubuntu1
gcc-8-base8.4.0-1ubuntu1~18.04 gcc-10-base10.3.0-1ubuntu1~20.04
geoip-bin1.6.12-1 geoip-bin1.6.12-6build1
geoip-database20180315-1 geoip-database20191224-2
gnupg2.2.4-1ubuntu1.3 gnupg2.2.19-3ubuntu2.1
gnupg-l10n2.2.4-1ubuntu1.3 gnupg-l10n2.2.19-3ubuntu2.1
gnupg-utils2.2.4-1ubuntu1.3 gnupg-utils2.2.19-3ubuntu2.1
gpg2.2.4-1ubuntu1.3 gpg2.2.19-3ubuntu2.1
gpg-agent2.2.4-1ubuntu1.3 gpg-agent2.2.19-3ubuntu2.1
gpgconf2.2.4-1ubuntu1.3 gpgconf2.2.19-3ubuntu2.1
gpgsm2.2.4-1ubuntu1.3 gpgsm2.2.19-3ubuntu2.1
gpgv2.2.4-1ubuntu1.3 gpgv2.2.19-3ubuntu2.1
gpg-wks-client2.2.4-1ubuntu1.3 gpg-wks-client2.2.19-3ubuntu2.1
gpg-wks-server2.2.4-1ubuntu1.3 gpg-wks-server2.2.19-3ubuntu2.1
grep3.1-2build1 grep3.4-1
gzip1.6-5ubuntu1 gzip1.10-0ubuntu4
hostname3.20 hostname3.23
init-system-helpers1.51 init-system-helpers1.57
krb5-locales1.16-2ubuntu0.2 krb5-locales1.17-6ubuntu4.1
libacl12.2.52-3build1 libacl12.2.53-6
libapparmor12.12-4ubuntu5.1 libapparmor12.13.3-7ubuntu5.1
libapt-inst2.01.6.12ubuntu0.2 libapt-pkg6.02.0.6
libapt-pkg5.01.6.12ubuntu0.2 libasn1-8-heimdal7.7.0+dfsg-1ubuntu1
libasn1-8-heimdal7.5.0+dfsg-1 libassuan02.5.3-7ubuntu2
libassuan02.5.1-2 libattr11:2.4.48-5
libattr11:2.4.47-2build1 libaudit11:2.8.5-2ubuntu6
libaudit11:2.8.2-1ubuntu1 libaudit-common1:2.8.5-2ubuntu6
libaudit-common1:2.8.2-1ubuntu1 libblkid12.34-0.1ubuntu9.1
libblkid12.31.1-0.4ubuntu3.7 libbrotli11.0.7-6ubuntu0.1
libboost-system1.65.11.65.1+dfsg-0ubuntu5 libbz2-1.01.0.8-2
libbz2-1.01.0.6-8.1ubuntu0.2 libc62.31-0ubuntu9.2
libc62.27-3ubuntu1.2 libcap-ng00.7.9-2.1build1
libcap-ng00.7.7-3.1 libc-bin2.31-0ubuntu9.2
libc-bin2.27-3ubuntu1.2 libcom-err21.45.5-2ubuntu1
libcom-err21.44.1-1ubuntu1.3 libcrypt11:4.4.10-10ubuntu4
libcurl47.58.0-2ubuntu3.12 libcurl47.68.0-1ubuntu2.6
libdb5.35.3.28-13.1ubuntu1.1 libdb5.35.3.28+dfsg1-0.6ubuntu2
libdbus-1-31.12.2-1ubuntu1.2 libdbus-1-31.12.16-2ubuntu2.1
libdebconfclient00.213ubuntu1 libdebconfclient00.251ubuntu1
libdouble-conversion12.0.1-4ubuntu1 libdouble-conversion33.1.5-4ubuntu1
libexpat12.2.5-3ubuntu0.2 libexpat12.2.9-1build1
libext2fs21.44.1-1ubuntu1.3 libext2fs21.45.5-2ubuntu1
libfdisk12.31.1-0.4ubuntu3.7 libfdisk12.34-0.1ubuntu9.1
libffi63.2.1-8 libffi73.3-4
libgcc11:8.4.0-1ubuntu1~18.04 libgcc-s110.3.0-1ubuntu1~20.04
libgcrypt201.8.1-4ubuntu1.2 libgcrypt201.8.5-5ubuntu1
libgeoip11.6.12-1 libgdbm61.18.1-5
libglib2.0-02.56.4-0ubuntu0.18.04.6 libgdbm-compat41.18.1-5
libglib2.0-data2.56.4-0ubuntu0.18.04.6 libgeoip11.6.12-6build1
libgmp102:6.1.2+dfsg-2 libglib2.0-02.64.6-1~ubuntu20.04.4
libgnutls303.5.18-1ubuntu1.4 libglib2.0-data2.64.6-1~ubuntu20.04.4
libgpg-error01.27-6 libgmp102:6.2.0+dfsg-4
libgssapi3-heimdal7.5.0+dfsg-1 libgnutls303.6.13-2ubuntu1.6
libgssapi-krb5-21.16-2ubuntu0.2 libgpg-error01.37-1
libhcrypto4-heimdal7.5.0+dfsg-1 libgssapi3-heimdal7.7.0+dfsg-1ubuntu1
libheimbase1-heimdal7.5.0+dfsg-1 libgssapi-krb5-21.17-6ubuntu4.1
libheimntlm0-heimdal7.5.0+dfsg-1 libhcrypto4-heimdal7.7.0+dfsg-1ubuntu1
libhogweed43.4-1 libheimbase1-heimdal7.7.0+dfsg-1ubuntu1
libhx509-5-heimdal7.5.0+dfsg-1 libheimntlm0-heimdal7.7.0+dfsg-1ubuntu1
libicu6060.2-3ubuntu3.1 libhogweed53.5.1+really3.5.1-2ubuntu0.2
libidn2-02.0.4-1.1ubuntu0.2 libhx509-5-heimdal7.7.0+dfsg-1ubuntu1
libk5crypto31.16-2ubuntu0.2 libicu6666.1-2ubuntu2
libkeyutils11.5.9-9.2ubuntu2 libidn2-02.2.0-2
libkrb5-26-heimdal7.5.0+dfsg-1 libk5crypto31.17-6ubuntu4.1
libkrb5-31.16-2ubuntu0.2 libkeyutils11.6-6ubuntu1
libkrb5support01.16-2ubuntu0.2 libkrb5-26-heimdal7.7.0+dfsg-1ubuntu1
libkrb5-31.17-6ubuntu4.1
libkrb5support01.17-6ubuntu4.1
libksba81.3.5-2 libksba81.3.5-2
libldap-2.4-22.4.45+dfsg-1ubuntu1.8 libldap-2.4-22.4.49+dfsg-2ubuntu1.8
libldap-common2.4.45+dfsg-1ubuntu1.8 libldap-common2.4.49+dfsg-2ubuntu1.8
liblz4-10.0~r131-2ubuntu3 liblz4-11.9.2-2ubuntu0.20.04.1
liblzma55.2.2-1.3 liblzma55.2.4-1ubuntu1
libmagic11:5.32-2ubuntu0.4 libmagic11:5.38-4
libmagic-mgc1:5.32-2ubuntu0.4 libmagic-mgc1:5.38-4
libmount12.31.1-0.4ubuntu3.7 libmount12.34-0.1ubuntu9.1
libmpdec22.4.2-1ubuntu1 libmpdec22.4.2-3
libncurses56.1-1ubuntu1.18.04 libncurses66.2-0ubuntu2
libncursesw56.1-1ubuntu1.18.04 libncursesw66.2-0ubuntu2
libnettle63.4-1 libnetaddr-ip-perl4.079+dfsg-1build4
libnghttp2-141.30.0-1ubuntu1 libnettle73.5.1+really3.5.1-2ubuntu0.2
libnpth01.5-3 libnghttp2-141.40.0-1build1
libp11-kit00.23.9-2 libnpth01.6-1
libpam0g1.1.8-3.6ubuntu2.18.04.2 libp11-kit00.23.20-1ubuntu0.1
libpam-modules1.1.8-3.6ubuntu2.18.04.2 libpam0g1.3.1-5ubuntu4.2
libpam-modules-bin1.1.8-3.6ubuntu2.18.04.2 libpam-modules1.3.1-5ubuntu4.2
libpam-runtime1.1.8-3.6ubuntu2.18.04.2 libpam-modules-bin1.3.1-5ubuntu4.2
libpcre32:8.39-9 libpam-runtime1.3.1-5ubuntu4.2
libprocps62:3.3.12-3ubuntu1.2 libpcre2-16-010.34-7
libpsl50.19.1-5build1 libpcre2-8-010.34-7
libpython3.6-minimal3.6.9-1~18.04ubuntu1.3 libpcre32:8.39-12build1
libpython3.6-stdlib3.6.9-1~18.04ubuntu1.3 libperl5.305.30.0-9ubuntu0.2
libpython3-stdlib3.6.7-1~18.04 libprocps82:3.3.16-1ubuntu2.2
libqt5core5a5.9.5+dfsg-0ubuntu2.5 libpsl50.21.0-1ubuntu1
libqt5dbus55.9.5+dfsg-0ubuntu2.5 libpython3.8-minimal3.8.10-0ubuntu1~20.04
libqt5network55.9.5+dfsg-0ubuntu2.5 libpython3.8-stdlib3.8.10-0ubuntu1~20.04
libqt5xml55.9.5+dfsg-0ubuntu2.5 libpython3-stdlib3.8.2-0ubuntu2
libreadline77.0-3 libqt5core5a5.12.8+dfsg-0ubuntu1
libroken18-heimdal7.5.0+dfsg-1 libqt5dbus55.12.8+dfsg-0ubuntu1
librtmp12.4+20151223.gitfa8646d.1-1 libqt5network55.12.8+dfsg-0ubuntu1
libsasl2-22.1.27~101-g0780600+dfsg-3ubuntu2.1 libqt5sql55.12.8+dfsg-0ubuntu1
libsasl2-modules2.1.27~101-g0780600+dfsg-3ubuntu2.1 libqt5sql5-sqlite5.12.8+dfsg-0ubuntu1
libsasl2-modules-db2.1.27~101-g0780600+dfsg-3ubuntu2.1 libqt5xml55.12.8+dfsg-0ubuntu1
libseccomp22.4.3-1ubuntu3.18.04.3 libreadline88.0-4
libselinux12.7-2build2 libroken18-heimdal7.7.0+dfsg-1ubuntu1
libsemanage12.7-2build2 librtmp12.4+20151223.gitfa8646d.1-2build1
libsemanage-common2.7-2build2 libsasl2-22.1.27+dfsg-2
libsepol12.7-1 libsasl2-modules2.1.27+dfsg-2
libsmartcols12.31.1-0.4ubuntu3.7 libsasl2-modules-db2.1.27+dfsg-2
libsqlite3-03.22.0-1ubuntu0.4 libseccomp22.5.1-1ubuntu1~20.04.1
libss21.44.1-1ubuntu1.3 libselinux13.0-1build2
libssl1.0.01.0.2n-1ubuntu5.5 libsemanage13.0-1build2
libssl1.11.1.1-1ubuntu2.1~18.04.7 libsemanage-common3.0-1build2
libstdc++68.4.0-1ubuntu1~18.04 libsepol13.0-1
libsystemd0237-3ubuntu10.42 libsmartcols12.34-0.1ubuntu9.1
libtasn1-64.13-2 libsocket6-perl0.29-1build1
libtinfo56.1-1ubuntu1.18.04 libsqlite3-03.31.1-4ubuntu0.2
libtorrent-rasterbar101.2.11+git20201124.afa406f890-1ppa1~18.04 libss21.45.5-2ubuntu1
libudev1237-3ubuntu10.42 libssh-40.9.3-2ubuntu2.1
libunistring20.9.9-0ubuntu2 libssl1.11.1.1f-1ubuntu2.5
libuuid12.31.1-0.4ubuntu3.7 libstdc++610.3.0-1ubuntu1~20.04
libwind0-heimdal7.5.0+dfsg-1 libsystemd0245.4-4ubuntu3.11
libxml22.9.4+dfsg1-6.1ubuntu1.3 libtasn1-64.16.0-2
libzstd11.3.3+dfsg-2ubuntu1.1 libtinfo66.2-0ubuntu2
locales2.27-3ubuntu1.4 libtorrent-rasterbar101.2.14+git20210623.c996ed7ef7-1ppa1~20.04
login1:4.5-1ubuntu2 libudev1245.4-4ubuntu3.11
lsb-base9.20170808ubuntu1 libunistring20.9.10-2
mawk1.3.3-17ubuntu3 libuuid12.34-0.1ubuntu9.1
mime-support3.60ubuntu1 libwind0-heimdal7.7.0+dfsg-1ubuntu1
mount2.31.1-0.4ubuntu3.7 libxml22.9.10+dfsg-5ubuntu0.20.04.1
ncurses-base6.1-1ubuntu1.18.04 libzstd11.4.4+dfsg-3ubuntu0.1
ncurses-bin6.1-1ubuntu1.18.04 locales2.31-0ubuntu9.2
openssl1.1.1-1ubuntu2.1~18.04.7 login1:4.8.1-1ubuntu5.20.04.1
p7zip16.02+dfsg-6 logsave1.45.5-2ubuntu1
p7zip-full16.02+dfsg-6 lsb-base11.1.0ubuntu2
passwd1:4.5-1ubuntu2 mawk1.3.4.20200120-2
perl-base5.26.1-6ubuntu0.5 mime-support3.64ubuntu1
pinentry-curses1.1.0-1 mount2.34-0.1ubuntu9.1
procps2:3.3.12-3ubuntu1.2 ncurses-base6.2-0ubuntu2
publicsuffix20180223.1310-1 ncurses-bin6.2-0ubuntu2
python33.6.7-1~18.04 netbase6.1
python3.63.6.9-1~18.04ubuntu1.3 openssl1.1.1f-1ubuntu2.5
python3.6-minimal3.6.9-1~18.04ubuntu1.3 p7zip16.02+dfsg-7build1
python3-minimal3.6.7-1~18.04 p7zip-full16.02+dfsg-7build1
qbittorrent-cli1.6.20334-1 passwd1:4.8.1-1ubuntu5.20.04.1
qbittorrent-nox4.4.0~202012221718-7149-4029f86c6~ubuntu18.04.1 perl5.30.0-9ubuntu0.2
qttranslations5-l10n5.9.5-0ubuntu1 perl-base5.30.0-9ubuntu0.2
readline-common7.0-3 perl-modules-5.305.30.0-9ubuntu0.2
sed4.4-2 pinentry-curses1.1.0-3build1
sensible-utils0.0.12 procps2:3.3.16-1ubuntu2.2
shared-mime-info1.9-2 publicsuffix20200303.0012-1
sysvinit-utils2.88dsf-59.10ubuntu1 python33.8.2-0ubuntu2
tar1.29b-2ubuntu0.1 python3.83.8.10-0ubuntu1~20.04
tzdata2020d-0ubuntu0.18.04 python3.8-minimal3.8.10-0ubuntu1~20.04
ubuntu-keyring2018.09.18.1~18.04.0 python3-minimal3.8.2-0ubuntu2
unrar1:5.5.8-1 qbittorrent-cli1.7.21116-1
unzip6.0-21ubuntu1.1 qbittorrent-nox4.4.0~202106140855-7320-2bd5aca3a~ubuntu20.04.1
util-linux2.31.1-0.4ubuntu3.7 qttranslations5-l10n5.12.8-0ubuntu1
xdg-user-dirs0.17-1ubuntu1 readline-common8.0-4
xz-utils5.2.2-1.3 sed4.7-1
zlib1g1:1.2.11.dfsg-0ubuntu2 sensible-utils0.0.12+nmu1
shared-mime-info1.15-1
sysvinit-utils2.96-2.1ubuntu1
tar1.30+dfsg-7ubuntu0.20.04.1
tzdata2021a-0ubuntu0.20.04
ubuntu-keyring2020.02.11.4
unrar1:5.6.6-2build1
unzip6.0-25ubuntu1
util-linux2.34-0.1ubuntu9.1
xdg-user-dirs0.17-2ubuntu1
xz-utils5.2.4-1ubuntu1
zlib1g1:1.2.11.dfsg-2ubuntu1.2

View File

@@ -34,7 +34,6 @@ param_ports:
param_usage_include_env: true param_usage_include_env: true
param_env_vars: param_env_vars:
- { env_var: "TZ", env_value: "Europe/London", desc: "Specify a timezone to use EG Europe/London"} - { env_var: "TZ", env_value: "Europe/London", desc: "Specify a timezone to use EG Europe/London"}
- { env_var: "UMASK_SET", env_value: "022", desc: "for umask setting of qbittorrent, optional , default if left unset is 022"}
- { env_var: "WEBUI_PORT", env_value: "8080", desc: "for changing the port of the webui, see below for explanation"} - { env_var: "WEBUI_PORT", env_value: "8080", desc: "for changing the port of the webui, see below for explanation"}
# optional parameters # optional parameters
@@ -67,8 +66,12 @@ app_setup_block: |
WebUI\ServerDomains=* WebUI\ServerDomains=*
``` ```
If you are running a very old (3.x) kernel you may run into [this issue](https://github.com/linuxserver/docker-qbittorrent/issues/103) which can be worked around using [this method](https://github.com/linuxserver/docker-qbittorrent/issues/103#issuecomment-831238484)
# changelog # changelog
changelogs: changelogs:
- { date: "24.03.21:", desc: "Rebase to focal." }
- { date: "20.01.21:", desc: "Deprecate `UMASK_SET` in favor of UMASK in baseimage, see above for more information." }
- { date: "05.07.20:", desc: "Shift to Python3" } - { date: "05.07.20:", desc: "Shift to Python3" }
- { date: "31.10.19:", desc: "Adding unstable tag." } - { date: "31.10.19:", desc: "Adding unstable tag." }
- { date: "02.08.19:", desc: "Add qbitorrent-cli for processing scripts." } - { date: "02.08.19:", desc: "Add qbitorrent-cli for processing scripts." }

View File

@@ -10,9 +10,11 @@ mkdir -p \
cp /defaults/qBittorrent.conf /config/qBittorrent/qBittorrent.conf cp /defaults/qBittorrent.conf /config/qBittorrent/qBittorrent.conf
# chown download directory if currently set to root # chown download directory if currently set to root
if [[ -d /downloads ]]; then
if [[ "$(stat -c '%U' /downloads)" != "abc" ]]; then if [[ "$(stat -c '%U' /downloads)" != "abc" ]]; then
chown -R abc:abc /downloads chown -R abc:abc /downloads
fi fi
fi
# permissions # permissions
chown -R abc:abc \ chown -R abc:abc \

View File

@@ -1,9 +1,11 @@
#!/usr/bin/with-contenv bash #!/usr/bin/with-contenv bash
UMASK_SET=${UMASK_SET:-022}
WEBUI_PORT=${WEBUI_PORT:-8080} WEBUI_PORT=${WEBUI_PORT:-8080}
umask "$UMASK_SET" if [ -n "${UMASK_SET}" ] && [ -z "${UMASK}" ]; then
echo -e "You are using a legacy method of defining umask\nplease update your environment variable from UMASK_SET to UMASK\nto keep the functionality after July 2021"
umask ${UMASK_SET}
fi
exec \ exec \
s6-setuidgid abc /usr/bin/qbittorrent-nox --webui-port="${WEBUI_PORT}" s6-setuidgid abc /usr/bin/qbittorrent-nox --webui-port="${WEBUI_PORT}"