Compare commits

..

274 Commits

Author SHA1 Message Date
LinuxServer-CI
b6f4c2c2ae Bot Updating Package Versions 2024-12-19 15:03:53 +00:00
LinuxServer-CI
771d61a5d6 Bot Updating Templated Files 2024-12-19 14:56:19 +00:00
LinuxServer-CI
bd4cee6e36 Bot Updating Templated Files 2024-12-19 14:53:23 +00:00
LinuxServer-CI
7c74f95173 Bot Updating Templated Files 2024-12-19 14:49:50 +00:00
LinuxServer-CI
803acb713c Bot Updating Package Versions 2024-12-01 06:54:58 +00:00
LinuxServer-CI
c2134670e6 Bot Updating Package Versions 2024-11-24 06:53:53 +00:00
LinuxServer-CI
4cb4668b2d Bot Updating Package Versions 2024-11-20 20:48:47 +00:00
LinuxServer-CI
84a6c72d65 Bot Updating Package Versions 2024-11-17 06:54:45 +00:00
LinuxServer-CI
56b84f7735 Bot Updating Package Versions 2024-11-10 06:54:38 +00:00
LinuxServer-CI
4535a9f1d8 Bot Updating Templated Files 2024-11-10 06:52:09 +00:00
LinuxServer-CI
e10e37f0a7 Bot Updating Templated Files 2024-11-10 06:50:48 +00:00
LinuxServer-CI
30ccc1c2a0 Bot Updating Package Versions 2024-11-02 05:48:35 +00:00
LinuxServer-CI
938bb587d7 Bot Updating Package Versions 2024-10-27 06:51:49 +00:00
LinuxServer-CI
67e8286cfe Bot Updating Package Versions 2024-10-20 06:51:59 +00:00
LinuxServer-CI
24d1630688 Bot Updating Package Versions 2024-10-13 06:51:45 +00:00
LinuxServer-CI
a13e4722f7 Bot Updating Package Versions 2024-10-10 16:51:54 +00:00
LinuxServer-CI
95f4150538 Bot Updating Package Versions 2024-10-08 10:11:44 +00:00
Adam
efa08e0e83 Merge pull request #333 from linuxserver/master-dynamic-bind-address 2024-10-08 11:09:04 +01:00
thespad
4573a98e14 Read webui bind address from config if present. 2024-10-07 20:16:53 +01:00
LinuxServer-CI
4437b92c16 Bot Updating Package Versions 2024-10-06 06:52:08 +00:00
LinuxServer-CI
d3597ffea1 Bot Updating Package Versions 2024-09-30 17:49:32 +00:00
LinuxServer-CI
2f793f5456 Bot Updating Package Versions 2024-09-30 15:49:14 +00:00
LinuxServer-CI
50cd7a6a07 Bot Updating Package Versions 2024-09-29 06:56:52 +00:00
LinuxServer-CI
a6ba44ffa0 Bot Updating Templated Files 2024-09-29 06:54:04 +00:00
LinuxServer-CI
fa9f5c9cb3 Bot Updating Templated Files 2024-09-29 06:52:47 +00:00
LinuxServer-CI
4dcdd36ff4 Bot Updating Templated Files 2024-09-29 06:51:31 +00:00
LinuxServer-CI
d252212ad4 Bot Updating Package Versions 2024-09-22 06:52:00 +00:00
LinuxServer-CI
9ff3a279b6 Bot Updating Package Versions 2024-09-17 16:52:20 +00:00
LinuxServer-CI
8d61598a62 Bot Updating Package Versions 2024-09-15 06:52:34 +00:00
LinuxServer-CI
29fa20e177 Bot Updating Package Versions 2024-09-08 06:51:44 +00:00
LinuxServer-CI
a28fe290e2 Bot Updating Package Versions 2024-08-25 06:52:34 +00:00
LinuxServer-CI
e8bbab67d9 Bot Updating Package Versions 2024-08-20 13:49:51 +00:00
LinuxServer-CI
71ee7f2648 Bot Updating Package Versions 2024-08-18 06:54:49 +00:00
LinuxServer-CI
9968a694df Bot Updating Templated Files 2024-08-18 06:52:32 +00:00
LinuxServer-CI
b192447473 Bot Updating Templated Files 2024-08-18 06:51:02 +00:00
LinuxServer-CI
7363dd5dda Bot Updating Package Versions 2024-08-11 06:52:03 +00:00
LinuxServer-CI
9cb07c720e Bot Updating Package Versions 2024-08-04 06:51:55 +00:00
LinuxServer-CI
843a85bbfb Bot Updating Package Versions 2024-07-28 06:52:11 +00:00
LinuxServer-CI
6b9f69684e Bot Updating Package Versions 2024-07-17 12:24:04 +00:00
LinuxServer-CI
91490c2651 Bot Updating Templated Files 2024-07-17 12:20:53 +00:00
Adam
0c7cf285b6 Merge pull request #317 from linuxserver/master-cli
Restore qbittorrent-cli (master)
2024-07-17 13:18:35 +01:00
thespad
41cd38a43c Fix static version in url 2024-07-17 11:43:28 +01:00
thespad
5e4d830356 Use netcore 6 version 2024-07-17 11:22:18 +01:00
thespad
7b4c3d8977 Fix arm cli path 2024-07-17 11:18:58 +01:00
thespad
5f06988083 Restore qbittorrent-cli 2024-07-17 11:16:02 +01:00
LinuxServer-CI
fe0e7b895a Bot Updating Package Versions 2024-07-14 06:55:19 +00:00
LinuxServer-CI
95f5fee13f Bot Updating Templated Files 2024-07-14 06:53:26 +00:00
LinuxServer-CI
e1158e49f9 Bot Updating Templated Files 2024-07-14 06:52:10 +00:00
LinuxServer-CI
2f35590762 Bot Updating Package Versions 2024-07-08 15:09:33 +00:00
Roxedus
ac6dc105ed Merge pull request #314 from linuxserver/master-ro-tweaks
Don't chown /downloads unless it's mounted (master)
2024-07-08 17:07:00 +02:00
LinuxServer-CI
4fe6aac159 Bot Updating Package Versions 2024-07-07 06:52:28 +00:00
thespad
005e8e0501 Don't chown /downloads unless it's mounted 2024-07-03 19:17:09 +01:00
LinuxServer-CI
3841f98110 Bot Updating Package Versions 2024-06-30 06:52:39 +00:00
LinuxServer-CI
1018aaa7f3 Bot Updating Package Versions 2024-06-23 06:51:57 +00:00
LinuxServer-CI
e8e44a5cc5 Bot Updating Package Versions 2024-06-12 20:11:59 +00:00
LinuxServer-CI
50903e2435 Bot Updating Package Versions 2024-06-09 06:51:54 +00:00
LinuxServer-CI
5f3183e182 Bot Updating Package Versions 2024-05-30 01:46:00 +00:00
LinuxServer-CI
40bba54f1f Bot Updating Package Versions 2024-05-26 13:46:58 +00:00
LinuxServer-CI
b979ef979b Bot Updating Templated Files 2024-05-26 13:44:16 +00:00
Adam
7a67323642 Merge pull request #310 from linuxserver/drop-cli
Drop qbittorrent-cli
2024-05-26 14:42:58 +01:00
LinuxServer-CI
4d3ed284d6 Bot Updating Package Versions 2024-05-26 06:58:16 +00:00
LinuxServer-CI
b10b6abd97 Bot Updating Templated Files 2024-05-26 06:54:31 +00:00
LinuxServer-CI
6ab6899cd4 Bot Updating Templated Files 2024-05-26 06:52:09 +00:00
thespad
77c3446685 Remove qbt wrapper 2024-05-25 21:25:54 +01:00
thespad
5dabf23090 Drop qbittorrent-cli 2024-05-25 21:20:46 +01:00
LinuxServer-CI
13473fb66d Bot Updating Package Versions 2024-05-19 06:52:07 +00:00
LinuxServer-CI
15a3e2fef2 Bot Updating Package Versions 2024-05-12 06:55:10 +00:00
LinuxServer-CI
66a4be9087 Bot Updating Templated Files 2024-05-12 06:52:12 +00:00
LinuxServer-CI
5356a1d792 Bot Updating Templated Files 2024-05-05 06:51:08 +00:00
LinuxServer-CI
f8eab4b35a Bot Updating Package Versions 2024-04-28 06:52:10 +00:00
LinuxServer-CI
714680627f Bot Updating Package Versions 2024-04-22 19:48:59 +00:00
LinuxServer-CI
280748c641 Bot Updating Package Versions 2024-04-21 06:51:40 +00:00
LinuxServer-CI
01acd51511 Bot Updating Package Versions 2024-04-14 08:11:05 +00:00
LinuxServer-CI
68036d9a8c Bot Updating Package Versions 2024-04-07 06:52:03 +00:00
LinuxServer-CI
f02cf0e736 Bot Updating Package Versions 2024-03-29 20:07:03 +00:00
LinuxServer-CI
28c0f2e4ed Bot Updating Package Versions 2024-03-27 19:49:25 +00:00
LinuxServer-CI
405d4fb2a0 Bot Updating Package Versions 2024-03-24 06:51:58 +00:00
LinuxServer-CI
fddd1e2fd8 Bot Updating Package Versions 2024-03-17 06:55:28 +00:00
LinuxServer-CI
14a797de92 Bot Updating Templated Files 2024-03-17 06:52:54 +00:00
LinuxServer-CI
37154b9eff Bot Updating Package Versions 2024-03-10 06:52:48 +00:00
LinuxServer-CI
a5aa5d8e57 Bot Updating Package Versions 2024-03-03 06:51:56 +00:00
LinuxServer-CI
2d468b7706 Bot Updating Package Versions 2024-02-25 06:55:43 +00:00
LinuxServer-CI
0de417c6cd Bot Updating Templated Files 2024-02-25 06:53:20 +00:00
LinuxServer-CI
d6c4d57def Bot Updating Templated Files 2024-02-25 06:51:40 +00:00
LinuxServer-CI
5d799ac9b4 Bot Updating Package Versions 2024-02-18 06:52:16 +00:00
aptalca
db45b7a47e Merge pull request #291 from linuxserver/tport
do not override torrenting port unless var is set
2024-02-14 15:25:31 -05:00
aptalca
c9fef1b8fd do not override torrenting port unless var is set 2024-02-14 14:56:49 -05:00
Adam
873a9fab4a Merge pull request #288 from pcdevil/feat/torrenting-port
Add torrenting port configuration support
2024-02-14 10:18:24 +00:00
LinuxServer-CI
ebeab95adb Bot Updating Package Versions 2024-02-11 06:51:56 +00:00
Attila Gonda
e0e573c248 Add torrenting port configuration support 2024-02-10 12:04:01 +00:00
LinuxServer-CI
6d3d9697e1 Bot Updating Package Versions 2024-02-04 06:53:33 +00:00
LinuxServer-CI
31ce96fdb8 Bot Updating Package Versions 2024-02-01 09:20:37 +00:00
LinuxServer-CI
19c202debc Bot Updating Templated Files 2024-02-01 09:16:12 +00:00
Adam
4f6920e7fd Merge pull request #286 from linuxserver/old-packages
Remove obsolete compat packages
2024-02-01 09:12:57 +00:00
TheSpad
98f36cee40 Remove obsolete compat packages 2024-01-31 19:21:26 +00:00
LinuxServer-CI
4fe96ba449 Bot Updating Package Versions 2024-01-28 06:52:03 +00:00
LinuxServer-CI
247c0c500d Bot Updating Package Versions 2024-01-21 06:51:52 +00:00
LinuxServer-CI
d502e0f0b7 Bot Updating Package Versions 2024-01-17 14:50:08 +00:00
LinuxServer-CI
f4888f95ff Bot Updating Package Versions 2024-01-14 06:56:34 +00:00
LinuxServer-CI
5f2876d7aa Bot Updating Templated Files 2024-01-14 06:53:03 +00:00
LinuxServer-CI
e7262e48ad Bot Updating Templated Files 2024-01-14 06:51:30 +00:00
LinuxServer-CI
155bfd490e Bot Updating Package Versions 2024-01-07 06:53:29 +00:00
LinuxServer-CI
953db8a8b2 Bot Updating Package Versions 2023-12-31 06:53:12 +00:00
LinuxServer-CI
2bd9a6634b Bot Updating Package Versions 2023-12-25 20:23:54 +00:00
LinuxServer-CI
c2ac676ec1 Bot Updating Templated Files 2023-12-25 20:20:37 +00:00
Eric Nemchik
fbe8864932 Merge pull request #278 from linuxserver/qbt-cli-latest-master
Only pull stable releases of qbittorrent-cli
2023-12-25 14:18:15 -06:00
Eric Nemchik
541a406846 Only pull stable releases of qbittorrent-cli
Signed-off-by: Eric Nemchik <eric@nemchik.com>
2023-12-25 13:51:52 -06:00
LinuxServer-CI
1a588b401f Bot Updating Package Versions 2023-12-10 06:53:08 +00:00
LinuxServer-CI
d22929498f Bot Updating Package Versions 2023-12-03 06:53:03 +00:00
LinuxServer-CI
7c3a63d3d7 Bot Updating Templated Files 2023-11-28 17:17:41 +00:00
Adam
6e66cff947 Merge pull request #269 from linuxserver/readme-pass 2023-11-28 17:15:15 +00:00
LinuxServer-CI
7cb8027134 Bot Updating Package Versions 2023-11-28 15:49:22 +00:00
TheSpad
5f475c0dc6 Tweak wording 2023-11-26 18:24:05 +00:00
TheSpad
2c74cda4fc Add note about password auto-gen 2023-11-26 14:08:15 +00:00
LinuxServer-CI
e45181f2c8 Bot Updating Package Versions 2023-11-26 06:52:02 +00:00
LinuxServer-CI
86a3a6517b Bot Updating Package Versions 2023-11-21 04:49:56 +00:00
LinuxServer-CI
19bdee4315 Bot Updating Package Versions 2023-11-19 06:54:28 +00:00
LinuxServer-CI
b122c61422 Bot Updating Templated Files 2023-11-19 06:51:13 +00:00
LinuxServer-CI
c57eee0ee9 Bot Updating Package Versions 2023-11-12 06:53:37 +00:00
LinuxServer-CI
9998eb7462 Bot Updating Package Versions 2023-11-05 06:52:03 +00:00
LinuxServer-CI
1d02eac543 Bot Updating Package Versions 2023-10-29 06:53:18 +00:00
LinuxServer-CI
be24d21cfe Bot Updating Package Versions 2023-10-23 13:50:02 +00:00
LinuxServer-CI
f14e8da62e Bot Updating Package Versions 2023-10-22 06:51:51 +00:00
LinuxServer-CI
0452157ad5 Bot Updating Package Versions 2023-10-15 06:51:44 +00:00
LinuxServer-CI
d7a11b0208 Bot Updating Package Versions 2023-10-08 02:32:18 +00:00
Roxedus
556ecd7b8f Merge pull request #264 from linuxserver/unrar 2023-10-08 04:29:52 +02:00
aptalca
e3ad78bd8d install unrar from lsio repo 2023-10-07 20:45:20 -04:00
LinuxServer-CI
31b71b35a9 Bot Updating Package Versions 2023-10-01 06:52:02 +00:00
LinuxServer-CI
9d18db774b Bot Updating Package Versions 2023-09-24 06:53:47 +00:00
LinuxServer-CI
0708176c5a Bot Updating Package Versions 2023-09-17 06:52:23 +00:00
LinuxServer-CI
ddabe39b18 Bot Updating Package Versions 2023-09-10 06:53:38 +00:00
LinuxServer-CI
ea1fad9381 Bot Updating Package Versions 2023-09-03 06:51:49 +00:00
LinuxServer-CI
4ae813edeb Bot Updating Package Versions 2023-09-01 18:50:33 +00:00
LinuxServer-CI
b717188814 Bot Updating Package Versions 2023-08-27 06:52:25 +00:00
LinuxServer-CI
cc3322df72 Bot Updating Package Versions 2023-08-20 06:54:41 +00:00
LinuxServer-CI
80297c481b Bot Updating Package Versions 2023-08-13 06:52:09 +00:00
LinuxServer-CI
848d7cfaa8 Bot Updating Templated Files 2023-08-10 17:38:16 +00:00
Adam
794fb7e6c4 Merge pull request #258 from linuxserver/master-unrar 2023-08-10 18:29:51 +01:00
TheSpad
459e5358b8 Bump unrar to 6.2.10 2023-08-10 17:42:23 +01:00
LinuxServer-CI
9375b08ccd Bot Updating Package Versions 2023-08-06 06:52:17 +00:00
LinuxServer-CI
5fa582cc16 Bot Updating Package Versions 2023-08-01 05:49:07 +00:00
LinuxServer-CI
6392acb158 Bot Updating Package Versions 2023-07-30 01:50:26 +00:00
LinuxServer-CI
c234e75e6e Bot Updating Package Versions 2023-07-23 06:51:50 +00:00
LinuxServer-CI
83e5715b29 Bot Updating Package Versions 2023-07-16 06:53:50 +00:00
LinuxServer-CI
bbe3d16565 Bot Updating Package Versions 2023-07-09 06:53:52 +00:00
LinuxServer-CI
e21acb12c6 Bot Updating Package Versions 2023-07-02 06:55:20 +00:00
LinuxServer-CI
0b5b9cd08d Bot Updating Templated Files 2023-07-02 06:51:08 +00:00
LinuxServer-CI
77e443e9f0 Bot Updating Package Versions 2023-06-25 06:54:28 +00:00
LinuxServer-CI
b7e498afea Bot Updating Package Versions 2023-06-18 20:49:19 +00:00
LinuxServer-CI
3f42002b0a Bot Updating Package Versions 2023-06-18 09:42:29 +00:00
Roxedus
e5681f659b Merge pull request #246 from linuxserver/master-armhf 2023-06-18 11:38:16 +02:00
LinuxServer-CI
58ee179f7a Bot Updating Package Versions 2023-06-18 06:53:15 +00:00
TheSpad
20969e294b Deprecate armhf 2023-06-17 14:39:33 +01:00
LinuxServer-CI
13ee42aab5 Bot Updating Package Versions 2023-06-11 06:51:54 +00:00
LinuxServer-CI
b8e6e6f316 Bot Updating Package Versions 2023-06-10 20:54:51 +00:00
LinuxServer-CI
6ab4ba5220 Bot Updating Templated Files 2023-06-10 20:50:58 +00:00
Adam
f95c73f1e6 Merge pull request #244 from linuxserver/master-unrar 2023-06-10 21:48:36 +01:00
TheSpad
0649cdf6a9 Bump unrar to 6.2.8 (master) 2023-06-10 21:30:35 +01:00
LinuxServer-CI
a2bedd3e32 Bot Updating Package Versions 2023-06-04 06:52:05 +00:00
LinuxServer-CI
65c38315eb Bot Updating Package Versions 2023-05-30 11:42:44 +00:00
Roxedus
5d49db1026 Merge pull request #241 from linuxserver/master-compat-testing 2023-05-30 13:38:40 +02:00
TheSpad
c33475d7ec Get openssl1.1-compat from testing repo 2023-05-30 09:03:02 +01:00
LinuxServer-CI
14cea7736c Bot Updating Templated Files 2023-05-28 06:51:58 +00:00
LinuxServer-CI
a60d53892a Bot Updating Package Versions 2023-05-21 06:53:13 +00:00
LinuxServer-CI
e757d93d0f Bot Updating Package Versions 2023-05-14 06:53:18 +00:00
LinuxServer-CI
3cd16b79c0 Bot Updating Package Versions 2023-05-07 06:52:01 +00:00
LinuxServer-CI
b61fe79660 Bot Updating Package Versions 2023-04-30 01:55:57 -05:00
LinuxServer-CI
aed5febcb2 Bot Updating Templated Files 2023-04-30 01:53:04 -05:00
LinuxServer-CI
f77dcfb697 Bot Updating Templated Files 2023-04-30 01:51:28 -05:00
LinuxServer-CI
7646ddb988 Bot Updating Package Versions 2023-04-23 02:03:43 -05:00
LinuxServer-CI
23e9c4ac47 Bot Updating Package Versions 2023-04-16 08:52:27 +02:00
LinuxServer-CI
dfc9bf0e89 Bot Updating Package Versions 2023-04-15 06:49:51 +02:00
LinuxServer-CI
cdebac1631 Bot Updating Package Versions 2023-04-09 08:52:56 +02:00
LinuxServer-CI
48162c0d66 Bot Updating Package Versions 2023-04-05 20:53:21 -05:00
LinuxServer-CI
8024c401be Bot Updating Package Versions 2023-04-03 05:53:26 +02:00
LinuxServer-CI
bed6cd2c3d Bot Updating Templated Files 2023-04-03 05:50:20 +02:00
LinuxServer-CI
ca15678df6 Bot Updating Templated Files 2023-04-03 05:48:47 +02:00
LinuxServer-CI
d52ae12b4c Bot Updating Templated Files 2023-04-03 05:47:13 +02:00
LinuxServer-CI
a60d6b8b4e Bot Updating Package Versions 2023-03-27 05:48:21 +02:00
LinuxServer-CI
3975773f2a Bot Updating Package Versions 2023-03-20 04:48:17 +01:00
LinuxServer-CI
d9ad591345 Bot Updating Package Versions 2023-03-12 22:48:05 -05:00
LinuxServer-CI
81412eb768 Bot Updating Package Versions 2023-03-06 04:48:29 +01:00
LinuxServer-CI
2a755d4db7 Bot Updating Package Versions 2023-03-01 20:47:46 +01:00
LinuxServer-CI
e110423652 Bot Updating Templated Files 2023-03-01 20:44:46 +01:00
LinuxServer-CI
dd75a7b4d8 Bot Updating Package Versions 2023-02-28 16:49:23 +01:00
LinuxServer-CI
1a86e4df8f Bot Updating Package Versions 2023-02-26 13:01:28 +01:00
LinuxServer-CI
d1c2eb9de7 Bot Updating Templated Files 2023-02-26 12:57:32 +01:00
Adam
637d9ebfe5 Merge pull request #230 from SinTan1729/master 2023-02-26 11:56:08 +00:00
SinTan1729
3c99647cc9 Add qt6-qtbase-sqlite to support SQLite database for resume files 2023-02-23 22:16:00 -06:00
LinuxServer-CI
8139611966 Bot Updating Package Versions 2023-02-20 04:48:20 +01:00
LinuxServer-CI
81d2117056 Bot Updating Package Versions 2023-02-13 01:49:40 -06:00
LinuxServer-CI
66c061972d Bot Updating Package Versions 2023-02-12 21:52:31 -06:00
LinuxServer-CI
f11127fc32 Bot Updating Templated Files 2023-02-13 04:48:25 +01:00
LinuxServer-CI
640ae3e999 Bot Updating Templated Files 2023-02-13 04:47:08 +01:00
LinuxServer-CI
aed8420354 Bot Updating Package Versions 2023-02-05 21:47:58 -06:00
LinuxServer-CI
a3a1398b16 Bot Updating Package Versions 2023-01-30 04:48:09 +01:00
LinuxServer-CI
b68208bdbc Bot Updating Package Versions 2023-01-22 21:48:04 -06:00
LinuxServer-CI
538b1ac1a2 Bot Updating Package Versions 2023-01-15 08:58:32 -06:00
Adam
af5ae7b15b Merge pull request #220 from linuxserver/buildbase-master 2023-01-15 14:55:47 +00:00
TheSpad
b3d6e8e631 Use build-base meta package for building unrar 2023-01-15 14:21:18 +00:00
LinuxServer-CI
d5288897f7 Bot Updating Package Versions 2023-01-08 21:48:09 -06:00
LinuxServer-CI
c9be56f0df Bot Updating Package Versions 2023-01-02 04:48:09 +01:00
LinuxServer-CI
7ffac23daa Bot Updating Package Versions 2022-12-25 21:48:15 -06:00
LinuxServer-CI
09d0018747 Bot Updating Package Versions 2022-12-22 03:04:27 +01:00
LinuxServer-CI
49f9389de4 Bot Updating Package Versions 2022-12-19 04:48:14 +01:00
LinuxServer-CI
941102a69f Bot Updating Package Versions 2022-12-12 04:48:15 +01:00
LinuxServer-CI
281e720b3c Bot Updating Package Versions 2022-12-04 21:47:50 -06:00
LinuxServer-CI
a57af7278d Bot Updating Package Versions 2022-11-29 18:44:05 +01:00
LinuxServer-CI
634f4e6c9e Bot Updating Templated Files 2022-11-29 18:41:37 +01:00
Adam
8cf402cc99 Merge pull request #203 from linuxserver/openssl1-master 2022-11-29 17:40:22 +00:00
TheSpad
85eb8bbe30 Add openssl1.1-compat for qbittorrent-cli 2022-11-29 15:56:12 +00:00
LinuxServer-CI
1a5fdb0072 Bot Updating Package Versions 2022-11-27 21:53:39 -06:00
LinuxServer-CI
c3b95fdabf Bot Updating Package Versions 2022-11-21 05:06:39 +01:00
Adam
65621a9ba3 Merge pull request #200 from linuxserver/lsiown-master 2022-11-13 15:34:22 +00:00
TheSpad
5f0e71b743 Use lsiown for init 2022-11-12 14:23:13 +00:00
LinuxServer-CI
121cbb9462 Bot Updating Package Versions 2022-11-12 05:52:56 -06:00
LinuxServer-CI
ca5673a409 Bot Updating Templated Files 2022-11-12 12:48:12 +01:00
LinuxServer-CI
17dabb494e Bot Updating Package Versions 2022-11-06 22:29:08 -06:00
Adam
f196789a76 Merge pull request #198 from linuxserver/readme-v1 2022-10-31 14:12:47 +00:00
TheSpad
16364f2964 Update changelog and tag list 2022-10-31 13:51:29 +00:00
LinuxServer-CI
83b482ab7a Bot Updating Package Versions 2022-10-30 23:37:46 -05:00
LinuxServer-CI
a10c1b8729 Bot Updating Package Versions 2022-10-23 08:30:00 -05:00
LinuxServer-CI
74008d71f2 Bot Updating Package Versions 2022-10-19 15:43:10 +02:00
LinuxServer-CI
f063e52eb9 Bot Updating Package Versions 2022-10-17 00:16:49 -05:00
Adam
134527e4a9 Merge pull request #195 from linuxserver/v3-tidyup 2022-10-10 22:53:18 +01:00
TheSpad
bc0d17401d Remove unnecessary packages 2022-10-10 22:15:05 +01:00
TheSpad
d97b2e7d4a Make init more consistent with s6v3 standard 2022-10-10 22:14:57 +01:00
LinuxServer-CI
60df08ba86 Bot Updating Package Versions 2022-10-10 00:11:55 -05:00
LinuxServer-CI
fe250e22db Bot Updating Package Versions 2022-10-03 06:35:43 +02:00
LinuxServer-CI
3816f56755 Bot Updating Package Versions 2022-09-26 07:18:42 +02:00
LinuxServer-CI
f1eac2644f Bot Updating Package Versions 2022-09-20 11:29:07 -05:00
Adam
384f7ba365 Merge pull request #192 from linuxserver/exec-master 2022-09-20 17:25:59 +01:00
TheSpad
c828bd5ccd Exec notify 2022-09-20 16:42:11 +01:00
LinuxServer-CI
dde6f08046 Bot Updating Package Versions 2022-09-19 00:19:09 -05:00
LinuxServer-CI
56ac0242f7 Bot Updating Templated Files 2022-09-19 07:15:49 +02:00
LinuxServer-CI
18d310d3c0 Bot Updating Package Versions 2022-09-12 07:17:07 +02:00
LinuxServer-CI
b0261130d1 Bot Updating Package Versions 2022-09-05 07:10:23 +02:00
LinuxServer-CI
38ce6e4eaf Bot Updating Package Versions 2022-08-31 15:52:36 -05:00
LinuxServer-CI
6483e582e8 Bot Updating Package Versions 2022-08-31 12:45:00 -05:00
LinuxServer-CI
61d98c0113 Bot Updating Templated Files 2022-08-31 19:42:20 +02:00
Adam
a8abbc12e2 v3ify qbittorrent image (#184) 2022-08-31 18:41:04 +01:00
LinuxServer-CI
97d4b22608 Bot Updating Package Versions 2022-08-29 07:11:28 +02:00
LinuxServer-CI
871008c306 Bot Updating Package Versions 2022-08-12 12:19:44 +02:00
LinuxServer-CI
6b27825bd7 Bot Updating Templated Files 2022-08-12 05:16:39 -05:00
Adam
a3ac4ce7a9 Merge pull request #186 from linuxserver/unrar617-master 2022-08-12 11:15:05 +01:00
TheSpad
beeb9de294 Bump unrar to 6.1.7 2022-08-12 10:35:36 +01:00
LinuxServer-CI
06bec27898 Bot Updating Package Versions 2022-08-07 23:21:33 -05:00
LinuxServer-CI
a081d82d11 Bot Updating Package Versions 2022-08-01 00:02:16 -05:00
LinuxServer-CI
5c73db523b Bot Updating Package Versions 2022-07-25 06:36:28 +02:00
LinuxServer-CI
5318d90428 Bot Updating Package Versions 2022-07-10 23:22:21 -05:00
LinuxServer-CI
d5e03be2cf Bot Updating Package Versions 2022-07-04 06:35:13 +02:00
LinuxServer-CI
ce85d8e0ce Bot Updating Package Versions 2022-06-16 21:03:29 -05:00
thelamer
b0576b6f80 rebase to alpine 3.16 from edge 2022-06-16 22:00:42 -04:00
LinuxServer-CI
bb25c8d32e Bot Updating Package Versions 2022-06-16 12:05:26 -05:00
LinuxServer-CI
4f68b52b04 Bot Updating Package Versions 2022-06-12 23:24:03 -05:00
LinuxServer-CI
72d7f0639c Bot Updating Package Versions 2022-06-05 23:09:21 -05:00
LinuxServer-CI
c0196b94a9 Bot Updating Package Versions 2022-05-31 01:51:26 +02:00
LinuxServer-CI
6c107b1b8e Bot Updating Package Versions 2022-05-26 14:49:48 -05:00
LinuxServer-CI
d688fd93ac Bot Updating Package Versions 2022-05-25 14:46:13 +02:00
Adam
cb886eabea Merge pull request #174 from linuxserver/qbt 2022-05-25 13:43:20 +01:00
TheSpad
10baef17ec Pull qbittorrent-cli from upstream repo 2022-05-25 13:20:51 +01:00
LinuxServer-CI
2196ea8947 Bot Updating Package Versions 2022-05-23 17:51:57 -05:00
LinuxServer-CI
27358397df Bot Updating Package Versions 2022-05-22 23:19:43 -05:00
LinuxServer-CI
7b1fd614bc Bot Updating Package Versions 2022-05-16 06:01:16 +02:00
LinuxServer-CI
151bd9ef20 Bot Updating Package Versions 2022-05-14 07:06:35 +02:00
LinuxServer-CI
1de14c6540 Bot Updating Package Versions 2022-05-08 23:09:54 -05:00
LinuxServer-CI
9e2f4c203c Bot Updating Package Versions 2022-05-02 06:42:55 +02:00
LinuxServer-CI
ff4883d743 Bot Updating Templated Files 2022-05-02 06:38:50 +02:00
LinuxServer-CI
8197ab7ad0 Bot Updating Templated Files 2022-05-02 06:37:41 +02:00
LinuxServer-CI
bf8e5f1962 Bot Updating Package Versions 2022-04-25 06:05:13 +02:00
LinuxServer-CI
987952046f Bot Updating Package Versions 2022-04-17 23:04:32 -05:00
LinuxServer-CI
f0938c4f2b Bot Updating Package Versions 2022-04-15 16:50:35 +02:00
LinuxServer-CI
d17662b2d7 Bot Updating Package Versions 2022-04-10 23:00:34 -05:00
LinuxServer-CI
565e33a035 Bot Updating Package Versions 2022-04-10 06:56:16 +02:00
37 changed files with 1518 additions and 993 deletions

View File

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

View File

@@ -105,10 +105,10 @@ docker build \
-t linuxserver/qbittorrent:latest .
```
The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static`
The ARM variants can be built on x86_64 hardware and vice versa using `lscr.io/linuxserver/qemu-static`
```bash
docker run --rm --privileged multiarch/qemu-user-static:register --reset
docker run --rm --privileged lscr.io/linuxserver/qemu-static --reset
```
Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64`.

View File

@@ -1,40 +0,0 @@
---
name: Bug report
about: Create a report to help us improve
---
[linuxserverurl]: https://linuxserver.io
[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)][linuxserverurl]
<!--- If you are new to Docker or this application our issue tracker is **ONLY** used for reporting bugs or requesting features. Please use [our discord server](https://discord.gg/YWrKVTn) for general support. --->
<!--- Provide a general summary of the bug in the Title above -->
------------------------------
## Expected Behavior
<!--- Tell us what should happen -->
## Current Behavior
<!--- Tell us what happens instead of the expected behavior -->
## Steps to Reproduce
<!--- Provide a link to a live example, or an unambiguous set of steps to -->
<!--- reproduce this bug. Include code to reproduce, if relevant -->
1.
2.
3.
4.
## Environment
**OS:**
**CPU architecture:** x86_64/arm32/arm64
**How docker service was installed:**
<!--- ie. from the official docker repo, from the distro repo, nas OS provided, etc. -->
<!--- Providing context helps us come up with a solution that is most useful in the real world -->
## Command used to create docker container (run/create/compose/screenshot)
<!--- Provide your docker create/run command or compose yaml snippet, or a screenshot of settings if using a gui to create the container -->
## Docker logs
<!--- Provide a full docker log, output of "docker logs qbittorrent" -->

76
.github/ISSUE_TEMPLATE/issue.bug.yml vendored Normal file
View File

@@ -0,0 +1,76 @@
# Based on the issue template
name: Bug report
description: Create a report to help us improve
title: "[BUG] <title>"
labels: [Bug]
body:
- type: checkboxes
attributes:
label: Is there an existing issue for this?
description: Please search to see if an issue already exists for the bug you encountered.
options:
- label: I have searched the existing issues
required: true
- type: textarea
attributes:
label: Current Behavior
description: Tell us what happens instead of the expected behavior.
validations:
required: true
- type: textarea
attributes:
label: Expected Behavior
description: Tell us what should happen.
validations:
required: false
- type: textarea
attributes:
label: Steps To Reproduce
description: Steps to reproduce the behavior.
placeholder: |
1. In this environment...
2. With this config...
3. Run '...'
4. See error...
validations:
required: true
- type: textarea
attributes:
label: Environment
description: |
examples:
- **OS**: Ubuntu 20.04
- **How docker service was installed**: distro's packagemanager
value: |
- OS:
- How docker service was installed:
render: markdown
validations:
required: false
- type: dropdown
attributes:
label: CPU architecture
options:
- x86-64
- arm64
validations:
required: true
- type: textarea
attributes:
label: Docker creation
description: |
Command used to create docker container
Provide your docker create/run command or compose yaml snippet, or a screenshot of settings if using a gui to create the container
render: bash
validations:
required: true
- type: textarea
attributes:
description: |
Provide a full docker log, output of "docker logs qbittorrent"
label: Container logs
placeholder: |
Output of `docker logs qbittorrent`
render: bash
validations:
required: true

View File

@@ -1,25 +0,0 @@
---
name: Feature request
about: Suggest an idea for this project
---
[linuxserverurl]: https://linuxserver.io
[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)][linuxserverurl]
<!--- If you are new to Docker or this application our issue tracker is **ONLY** used for reporting bugs or requesting features. Please use [our discord server](https://discord.gg/YWrKVTn) for general support. --->
<!--- If this acts as a feature request please 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/ -->
<!--- Provide a general summary of the request in the Title above -->
------------------------------
## Desired Behavior
<!--- Tell us what should happen -->
## Current Behavior
<!--- Tell us what happens instead of the expected behavior -->
## Alternatives Considered
<!--- Tell us what other options you have tried or considered -->

View File

@@ -0,0 +1,31 @@
# Based on the issue template
name: Feature request
description: Suggest an idea for this project
title: "[FEAT] <title>"
labels: [enhancement]
body:
- type: checkboxes
attributes:
label: Is this a new feature request?
description: Please search to see if a feature request already exists.
options:
- label: I have searched the existing issues
required: true
- type: textarea
attributes:
label: Wanted change
description: Tell us what you want to happen.
validations:
required: true
- type: textarea
attributes:
label: Reason for change
description: Justify your request, why do you want it, what is the benefit.
validations:
required: true
- type: textarea
attributes:
label: Proposed code change
description: Do you have a potential code change in mind?
validations:
required: false

16
.github/workflows/call_issue_pr_tracker.yml vendored Executable file
View File

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

13
.github/workflows/call_issues_cron.yml vendored Executable file
View File

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

View File

@@ -7,21 +7,28 @@ jobs:
external-trigger-master:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2.3.3
- uses: actions/checkout@v4.1.1
- name: External Trigger
if: github.ref == 'refs/heads/master'
env:
SKIP_EXTERNAL_TRIGGER: ${{ vars.SKIP_EXTERNAL_TRIGGER }}
run: |
if [ -n "${{ secrets.PAUSE_EXTERNAL_TRIGGER_QBITTORRENT_MASTER }}" ]; then
echo "**** Github secret PAUSE_EXTERNAL_TRIGGER_QBITTORRENT_MASTER is set; skipping trigger. ****"
printf "# External trigger for docker-qbittorrent\n\n" >> $GITHUB_STEP_SUMMARY
if 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
fi
echo "**** External trigger running off of master branch. To disable this trigger, set a Github secret named \"PAUSE_EXTERNAL_TRIGGER_QBITTORRENT_MASTER\". ****"
echo "**** Retrieving external version ****"
echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY
echo "> External trigger running off of master branch. To disable this trigger, add \`qbittorrent_master\` into the Github organizational variable \`SKIP_EXTERNAL_TRIGGER\`." >> $GITHUB_STEP_SUMMARY
printf "\n## Retrieving external version\n\n" >> $GITHUB_STEP_SUMMARY
EXT_RELEASE=$(curl -sL "http://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz" | tar -xz -C /tmp \
&& awk '/^P:'"qbittorrent-nox"'$/,/V:/' /tmp/APKINDEX | sed -n 2p | sed 's/^V://')
echo "Type is \`alpine_repo\`" >> $GITHUB_STEP_SUMMARY
if [ -z "${EXT_RELEASE}" ] || [ "${EXT_RELEASE}" == "null" ]; then
echo "**** Can't retrieve external version, exiting ****"
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Can't retrieve external version, exiting" >> $GITHUB_STEP_SUMMARY
FAILURE_REASON="Can't retrieve external version for qbittorrent branch master"
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,
@@ -30,64 +37,108 @@ jobs:
exit 1
fi
EXT_RELEASE=$(echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g')
echo "**** External version: ${EXT_RELEASE} ****"
echo "**** Retrieving last pushed version ****"
echo "External version: \`${EXT_RELEASE}\`" >> $GITHUB_STEP_SUMMARY
echo "Retrieving last pushed version" >> $GITHUB_STEP_SUMMARY
image="linuxserver/qbittorrent"
tag="latest"
token=$(curl -sX GET \
"https://ghcr.io/token?scope=repository%3Alinuxserver%2Fqbittorrent%3Apull" \
| jq -r '.token')
multidigest=$(curl -s \
multidigest=$(curl -s \
--header "Accept: application/vnd.docker.distribution.manifest.v2+json" \
--header "Accept: application/vnd.oci.image.index.v1+json" \
--header "Authorization: Bearer ${token}" \
"https://ghcr.io/v2/${image}/manifests/${tag}")
if jq -e '.layers // empty' <<< "${multidigest}" >/dev/null 2>&1; then
# If there's a layer element it's a single-arch manifest so just get that digest
digest=$(jq -r '.config.digest' <<< "${multidigest}")
else
# Otherwise it's multi-arch or has manifest annotations
if jq -e '.manifests[]?.annotations // empty' <<< "${multidigest}" >/dev/null 2>&1; then
# Check for manifest annotations and delete if found
multidigest=$(jq 'del(.manifests[] | select(.annotations))' <<< "${multidigest}")
fi
if [[ $(jq '.manifests | length' <<< "${multidigest}") -gt 1 ]]; then
# If there's still more than one digest, it's multi-arch
multidigest=$(jq -r ".manifests[] | select(.platform.architecture == \"amd64\").digest?" <<< "${multidigest}")
else
# Otherwise it's single arch
multidigest=$(jq -r ".manifests[].digest?" <<< "${multidigest}")
fi
if digest=$(curl -s \
--header "Accept: application/vnd.docker.distribution.manifest.v2+json" \
--header "Accept: application/vnd.oci.image.manifest.v1+json" \
--header "Authorization: Bearer ${token}" \
"https://ghcr.io/v2/${image}/manifests/${tag}" \
| jq -r 'first(.manifests[].digest)')
digest=$(curl -s \
--header "Accept: application/vnd.docker.distribution.manifest.v2+json" \
--header "Authorization: Bearer ${token}" \
"https://ghcr.io/v2/${image}/manifests/${multidigest}" \
| jq -r '.config.digest')
"https://ghcr.io/v2/${image}/manifests/${multidigest}"); then
digest=$(jq -r '.config.digest' <<< "${digest}");
fi
fi
image_info=$(curl -sL \
--header "Authorization: Bearer ${token}" \
"https://ghcr.io/v2/${image}/blobs/${digest}" \
| jq -r '.container_config')
"https://ghcr.io/v2/${image}/blobs/${digest}")
if [[ $(echo $image_info | jq -r '.container_config') == "null" ]]; then
image_info=$(echo $image_info | jq -r '.config')
else
image_info=$(echo $image_info | jq -r '.container_config')
fi
IMAGE_RELEASE=$(echo ${image_info} | jq -r '.Labels.build_version' | awk '{print $3}')
IMAGE_VERSION=$(echo ${IMAGE_RELEASE} | awk -F'-ls' '{print $1}')
if [ -z "${IMAGE_VERSION}" ]; then
echo "**** Can't retrieve last pushed version, exiting ****"
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "Can't retrieve last pushed version, exiting" >> $GITHUB_STEP_SUMMARY
FAILURE_REASON="Can't retrieve last pushed version for qbittorrent tag latest"
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 16711680,
"description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
exit 1
fi
echo "**** Last pushed version: ${IMAGE_VERSION} ****"
echo "Last pushed version: \`${IMAGE_VERSION}\`" >> $GITHUB_STEP_SUMMARY
if [ "${EXT_RELEASE}" == "${IMAGE_VERSION}" ]; then
echo "**** Version ${EXT_RELEASE} already pushed, exiting ****"
echo "Version \`${EXT_RELEASE}\` already pushed, exiting" >> $GITHUB_STEP_SUMMARY
exit 0
elif [[ $(curl -sL "http://dl-cdn.alpinelinux.org/alpine/edge/community/aarch64/APKINDEX.tar.gz" | tar -xz -C /tmp && awk '/^P:'"qbittorrent-nox"'$/,/V:/' /tmp/APKINDEX | sed -n 2p | sed 's/^V://') != "${EXT_RELEASE}" ]]; then
echo "New version \`${EXT_RELEASE}\` found; but not all arch repos updated yet; exiting" >> $GITHUB_STEP_SUMMARY
FAILURE_REASON="New version ${EXT_RELEASE} for qbittorrent tag latest is detected, however not all arch repos are updated yet. Will try again later."
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903,
"description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
exit 0
elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-qbittorrent/job/master/lastBuild/api/json | jq -r '.building') == "true" ]; then
echo "**** New version ${EXT_RELEASE} found; but there already seems to be an active build on Jenkins; exiting ****"
echo "New version \`${EXT_RELEASE}\` found; but there already seems to be an active build on Jenkins; exiting" >> $GITHUB_STEP_SUMMARY
exit 0
else
echo "**** New version ${EXT_RELEASE} found; old version was ${IMAGE_VERSION}. Triggering new build ****"
response=$(curl -iX POST \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-qbittorrent/job/master/buildWithParameters?PACKAGE_CHECK=false \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
echo "**** Jenkins job queue url: ${response%$'\r'} ****"
echo "**** Sleeping 10 seconds until job starts ****"
sleep 10
buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url')
buildurl="${buildurl%$'\r'}"
echo "**** Jenkins job build url: ${buildurl} ****"
echo "**** Attempting to change the Jenkins job description ****"
curl -iX POST \
"${buildurl}submitDescription" \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} \
--data-urlencode "description=GHA external trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \
--data-urlencode "Submit=Submit"
echo "**** Notifying Discord ****"
TRIGGER_REASON="A version change was detected for qbittorrent tag latest. Old version:${IMAGE_VERSION} New version:${EXT_RELEASE}"
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903,
"description": "**Build Triggered** \n**Reason:** '"${TRIGGER_REASON}"' \n**Build URL:** '"${buildurl}display/redirect"' \n"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
if [[ "${artifacts_found}" == "false" ]]; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> New version detected, but not all artifacts are published yet; skipping trigger" >> $GITHUB_STEP_SUMMARY
FAILURE_REASON="New version ${EXT_RELEASE} for qbittorrent tag latest is detected, however not all artifacts are uploaded to upstream release yet. Will try again later."
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903,
"description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
else
printf "\n## Trigger new build\n\n" >> $GITHUB_STEP_SUMMARY
echo "New version \`${EXT_RELEASE}\` found; old version was \`${IMAGE_VERSION}\`. Triggering new build" >> $GITHUB_STEP_SUMMARY
if [[ "${artifacts_found}" == "true" ]]; then
echo "All artifacts seem to be uploaded." >> $GITHUB_STEP_SUMMARY
fi
response=$(curl -iX POST \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-qbittorrent/job/master/buildWithParameters?PACKAGE_CHECK=false \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
echo "Jenkins [job queue url](${response%$'\r'})" >> $GITHUB_STEP_SUMMARY
echo "Sleeping 10 seconds until job starts" >> $GITHUB_STEP_SUMMARY
sleep 10
buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url')
buildurl="${buildurl%$'\r'}"
echo "Jenkins job [build url](${buildurl})" >> $GITHUB_STEP_SUMMARY
echo "Attempting to change the Jenkins job description" >> $GITHUB_STEP_SUMMARY
curl -iX POST \
"${buildurl}submitDescription" \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} \
--data-urlencode "description=GHA external trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \
--data-urlencode "Submit=Submit"
echo "**** Notifying Discord ****"
TRIGGER_REASON="A version change was detected for qbittorrent tag latest. Old version:${IMAGE_VERSION} New version:${EXT_RELEASE}"
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903,
"description": "**Build Triggered** \n**Reason:** '"${TRIGGER_REASON}"' \n**Build URL:** '"${buildurl}display/redirect"' \n"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
fi
fi

View File

@@ -2,42 +2,44 @@ name: External Trigger Scheduler
on:
schedule:
- cron: '41 * * * *'
- cron: '42 * * * *'
workflow_dispatch:
jobs:
external-trigger-scheduler:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2.3.3
- uses: actions/checkout@v4.1.1
with:
fetch-depth: '0'
- name: External Trigger Scheduler
run: |
echo "**** Branches found: ****"
git for-each-ref --format='%(refname:short)' refs/remotes
echo "**** Pulling the yq docker image ****"
docker pull ghcr.io/linuxserver/yq
for br in $(git for-each-ref --format='%(refname:short)' refs/remotes)
printf "# External trigger scheduler for docker-qbittorrent\n\n" >> $GITHUB_STEP_SUMMARY
printf "Found the branches:\n\n%s\n" "$(git for-each-ref --format='- %(refname:lstrip=3)' refs/remotes)" >> $GITHUB_STEP_SUMMARY
for br in $(git for-each-ref --format='%(refname:lstrip=3)' refs/remotes)
do
br=$(echo "$br" | sed 's|origin/||g')
echo "**** Evaluating branch ${br} ****"
ls_branch=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-qbittorrent/${br}/jenkins-vars.yml \
| docker run --rm -i --entrypoint yq ghcr.io/linuxserver/yq -r .ls_branch)
if [ "$br" == "$ls_branch" ]; then
echo "**** Branch ${br} appears to be live; checking workflow. ****"
if [[ "${br}" == "HEAD" ]]; then
printf "\nSkipping %s.\n" ${br} >> $GITHUB_STEP_SUMMARY
continue
fi
printf "\n## Evaluating \`%s\`\n\n" ${br} >> $GITHUB_STEP_SUMMARY
ls_jenkins_vars=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-qbittorrent/${br}/jenkins-vars.yml)
ls_branch=$(echo "${ls_jenkins_vars}" | yq -r '.ls_branch')
ls_trigger=$(echo "${ls_jenkins_vars}" | yq -r '.external_type')
if [[ "${br}" == "${ls_branch}" ]] && [[ "${ls_trigger}" != "os" ]]; then
echo "Branch appears to be live and trigger is not os; checking workflow." >> $GITHUB_STEP_SUMMARY
if curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-qbittorrent/${br}/.github/workflows/external_trigger.yml > /dev/null 2>&1; then
echo "**** Workflow exists. Triggering external trigger workflow for branch ${br} ****."
echo "Triggering external trigger workflow for branch." >> $GITHUB_STEP_SUMMARY
curl -iX POST \
-H "Authorization: token ${{ secrets.CR_PAT }}" \
-H "Accept: application/vnd.github.v3+json" \
-d "{\"ref\":\"refs/heads/${br}\"}" \
https://api.github.com/repos/linuxserver/docker-qbittorrent/actions/workflows/external_trigger.yml/dispatches
else
echo "**** Workflow doesn't exist; skipping trigger. ****"
echo "Skipping branch due to no external trigger workflow present." >> $GITHUB_STEP_SUMMARY
fi
else
echo "**** ${br} appears to be a dev branch; skipping trigger. ****"
echo "Skipping branch due to being detected as dev branch or having no external version." >> $GITHUB_STEP_SUMMARY
fi
done

View File

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

View File

@@ -1,38 +0,0 @@
name: Package Trigger Main
on:
workflow_dispatch:
jobs:
package-trigger-master:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2.3.3
- name: Package Trigger
if: github.ref == 'refs/heads/master'
run: |
if [ -n "${{ secrets.PAUSE_PACKAGE_TRIGGER_QBITTORRENT_MASTER }}" ]; then
echo "**** Github secret PAUSE_PACKAGE_TRIGGER_QBITTORRENT_MASTER is set; skipping trigger. ****"
exit 0
fi
if [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-qbittorrent/job/master/lastBuild/api/json | jq -r '.building') == "true" ]; then
echo "**** There already seems to be an active build on Jenkins; skipping package trigger ****"
exit 0
fi
echo "**** Package trigger running off of master branch. To disable, set a Github secret named \"PAUSE_PACKAGE_TRIGGER_QBITTORRENT_MASTER\". ****"
response=$(curl -iX POST \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-qbittorrent/job/master/buildWithParameters?PACKAGE_CHECK=true \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
echo "**** Jenkins job queue url: ${response%$'\r'} ****"
echo "**** Sleeping 10 seconds until job starts ****"
sleep 10
buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url')
buildurl="${buildurl%$'\r'}"
echo "**** Jenkins job build url: ${buildurl} ****"
echo "**** Attempting to change the Jenkins job description ****"
curl -iX POST \
"${buildurl}submitDescription" \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} \
--data-urlencode "description=GHA package trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \
--data-urlencode "Submit=Submit"

View File

@@ -2,49 +2,99 @@ name: Package Trigger Scheduler
on:
schedule:
- cron: '43 3 * * 1'
- cron: '48 6 * * 0'
workflow_dispatch:
jobs:
package-trigger-scheduler:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2.3.3
- uses: actions/checkout@v4.1.1
with:
fetch-depth: '0'
- name: Package Trigger Scheduler
env:
SKIP_PACKAGE_TRIGGER: ${{ vars.SKIP_PACKAGE_TRIGGER }}
run: |
echo "**** Branches found: ****"
git for-each-ref --format='%(refname:short)' refs/remotes
echo "**** Pulling the yq docker image ****"
docker pull ghcr.io/linuxserver/yq
for br in $(git for-each-ref --format='%(refname:short)' refs/remotes)
printf "# Package trigger scheduler for docker-qbittorrent\n\n" >> $GITHUB_STEP_SUMMARY
printf "Found the branches:\n\n%s\n" "$(git for-each-ref --format='- %(refname:lstrip=3)' refs/remotes)" >> $GITHUB_STEP_SUMMARY
for br in $(git for-each-ref --format='%(refname:lstrip=3)' refs/remotes)
do
br=$(echo "$br" | sed 's|origin/||g')
echo "**** Evaluating branch ${br} ****"
ls_branch=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-qbittorrent/${br}/jenkins-vars.yml \
| docker run --rm -i --entrypoint yq ghcr.io/linuxserver/yq -r .ls_branch)
if [ "${br}" == "${ls_branch}" ]; then
echo "**** Branch ${br} appears to be live; checking workflow. ****"
if curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-qbittorrent/${br}/.github/workflows/package_trigger.yml > /dev/null 2>&1; then
echo "**** Workflow exists. Triggering package trigger workflow for branch ${br}. ****"
triggered_branches="${triggered_branches}${br} "
curl -iX POST \
-H "Authorization: token ${{ secrets.CR_PAT }}" \
-H "Accept: application/vnd.github.v3+json" \
-d "{\"ref\":\"refs/heads/${br}\"}" \
https://api.github.com/repos/linuxserver/docker-qbittorrent/actions/workflows/package_trigger.yml/dispatches
sleep 30
if [[ "${br}" == "HEAD" ]]; then
printf "\nSkipping %s.\n" ${br} >> $GITHUB_STEP_SUMMARY
continue
fi
printf "\n## Evaluating \`%s\`\n\n" ${br} >> $GITHUB_STEP_SUMMARY
JENKINS_VARS=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-qbittorrent/${br}/jenkins-vars.yml)
if ! curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-qbittorrent/${br}/Jenkinsfile >/dev/null 2>&1; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> No Jenkinsfile found. Branch is either deprecated or is an early dev branch." >> $GITHUB_STEP_SUMMARY
skipped_branches="${skipped_branches}${br} "
elif [[ "${br}" == $(yq -r '.ls_branch' <<< "${JENKINS_VARS}") ]]; then
echo "Branch appears to be live; checking workflow." >> $GITHUB_STEP_SUMMARY
README_VARS=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-qbittorrent/${br}/readme-vars.yml)
if [[ $(yq -r '.project_deprecation_status' <<< "${README_VARS}") == "true" ]]; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Branch appears to be deprecated; skipping trigger." >> $GITHUB_STEP_SUMMARY
skipped_branches="${skipped_branches}${br} "
elif [[ $(yq -r '.skip_package_check' <<< "${JENKINS_VARS}") == "true" ]]; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Skipping branch ${br} due to \`skip_package_check\` being set in \`jenkins-vars.yml\`." >> $GITHUB_STEP_SUMMARY
skipped_branches="${skipped_branches}${br} "
elif grep -q "^qbittorrent_${br}" <<< "${SKIP_PACKAGE_TRIGGER}"; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_PACKAGE_TRIGGER\` contains \`qbittorrent_${br}\`; skipping trigger." >> $GITHUB_STEP_SUMMARY
skipped_branches="${skipped_branches}${br} "
elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-qbittorrent/job/${br}/lastBuild/api/json | jq -r '.building' 2>/dev/null) == "true" ]; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> There already seems to be an active build on Jenkins; skipping package trigger for ${br}" >> $GITHUB_STEP_SUMMARY
skipped_branches="${skipped_branches}${br} "
else
echo "**** Workflow doesn't exist; skipping trigger. ****"
echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY
echo "> Triggering package trigger for branch ${br}" >> $GITHUB_STEP_SUMMARY
printf "> To disable, add \`qbittorrent_%s\` into the Github organizational variable \`SKIP_PACKAGE_TRIGGER\`.\n\n" "${br}" >> $GITHUB_STEP_SUMMARY
triggered_branches="${triggered_branches}${br} "
response=$(curl -iX POST \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-qbittorrent/job/${br}/buildWithParameters?PACKAGE_CHECK=true \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
if [[ -z "${response}" ]]; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Jenkins build could not be triggered. Skipping branch."
continue
fi
echo "Jenkins [job queue url](${response%$'\r'})" >> $GITHUB_STEP_SUMMARY
echo "Sleeping 10 seconds until job starts" >> $GITHUB_STEP_SUMMARY
sleep 10
buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url')
buildurl="${buildurl%$'\r'}"
echo "Jenkins job [build url](${buildurl})" >> $GITHUB_STEP_SUMMARY
echo "Attempting to change the Jenkins job description" >> $GITHUB_STEP_SUMMARY
if ! curl -ifX POST \
"${buildurl}submitDescription" \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} \
--data-urlencode "description=GHA package trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \
--data-urlencode "Submit=Submit"; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Unable to change the Jenkins job description."
fi
sleep 20
fi
else
echo "**** ${br} appears to be a dev branch; skipping trigger. ****"
echo "Skipping branch ${br} due to being detected as dev branch." >> $GITHUB_STEP_SUMMARY
fi
done
echo "**** Package check build(s) triggered for branch(es): ${triggered_branches} ****"
echo "**** Notifying Discord ****"
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903,
"description": "**Package Check Build(s) Triggered for qbittorrent** \n**Branch(es):** '"${triggered_branches}"' \n**Build URL:** '"https://ci.linuxserver.io/blue/organizations/jenkins/Docker-Pipeline-Builders%2Fdocker-qbittorrent/activity/"' \n"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
if [[ -n "${triggered_branches}" ]] || [[ -n "${skipped_branches}" ]]; then
if [[ -n "${triggered_branches}" ]]; then
NOTIFY_BRANCHES="**Triggered:** ${triggered_branches} \n"
NOTIFY_BUILD_URL="**Build URL:** https://ci.linuxserver.io/blue/organizations/jenkins/Docker-Pipeline-Builders%2Fdocker-qbittorrent/activity/ \n"
echo "**** Package check build(s) triggered for branch(es): ${triggered_branches} ****"
fi
if [[ -n "${skipped_branches}" ]]; then
NOTIFY_BRANCHES="${NOTIFY_BRANCHES}**Skipped:** ${skipped_branches} \n"
fi
echo "**** Notifying Discord ****"
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903,
"description": "**Package Check Build(s) for qbittorrent** \n'"${NOTIFY_BRANCHES}"''"${NOTIFY_BUILD_URL}"'"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
fi

12
.github/workflows/permissions.yml vendored Executable file
View File

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

View File

@@ -1,23 +0,0 @@
name: Mark stale issues and pull requests
on:
schedule:
- cron: "30 1 * * *"
jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v3
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-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-issue-label: 'no-issue-activity'
stale-pr-label: 'no-pr-activity'
days-before-stale: 30
days-before-close: 365
exempt-issue-labels: 'awaiting-approval,work-in-progress'
exempt-pr-labels: 'awaiting-approval,work-in-progress'
repo-token: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -1,47 +1,31 @@
# syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/unrar:latest AS unrar
FROM ghcr.io/linuxserver/baseimage-alpine:edge
# set version label
ARG BUILD_DATE
ARG VERSION
ARG QBITTORRENT_VERSION
ARG QBT_VERSION
ARG QBT_CLI_VERSION
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
LABEL maintainer="thespad"
# environment settings
ARG QBT_VERSION=1.7
ARG UNRAR_VERSION=6.1.4
ENV HOME="/config" \
XDG_CONFIG_HOME="/config" \
XDG_DATA_HOME="/config"
# install runtime packages and qbitorrent-cli
RUN \
echo "**** install build packages ****" && \
apk add --no-cache --upgrade --virtual=build-dependencies \
make \
g++ \
gcc && \
echo "**** install packages ****" && \
apk add -U --update --no-cache \
bash \
curl \
apk add --no-cache \
grep \
icu-libs \
libstdc++ \
openssl \
p7zip \
python3 && \
echo "**** install unrar from source ****" && \
mkdir /tmp/unrar && \
curl -o \
/tmp/unrar.tar.gz -L \
"https://www.rarlab.com/rar/unrarsrc-${UNRAR_VERSION}.tar.gz" && \
tar xf \
/tmp/unrar.tar.gz -C \
/tmp/unrar --strip-components=1 && \
cd /tmp/unrar && \
make && \
install -v -m755 unrar /usr/bin && \
python3 \
qt6-qtbase-sqlite && \
if [ -z ${QBITTORRENT_VERSION+x} ]; then \
QBITTORRENT_VERSION=$(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://'); \
@@ -50,15 +34,18 @@ RUN \
qbittorrent-nox==${QBITTORRENT_VERSION} && \
echo "***** install qbitorrent-cli ****" && \
mkdir /qbt && \
curl -L \
-o /tmp/qbt.tar.gz \
"https://github.com/linuxserver/docker-qbittorrent/releases/download/qbt-${QBT_VERSION}/qbt.tar.gz" && \
if [ -z ${QBT_CLI_VERSION+x} ]; then \
QBT_CLI_VERSION=$(curl -sL "https://api.github.com/repos/fedarovich/qbittorrent-cli/releases/latest" \
| jq -r '. | .tag_name'); \
fi && \
curl -o \
/tmp/qbt.tar.gz -L \
"https://github.com/fedarovich/qbittorrent-cli/releases/download/${QBT_CLI_VERSION}/qbt-linux-alpine-x64-net6-${QBT_CLI_VERSION#v}.tar.gz" && \
tar xf \
/tmp/qbt.tar.gz -C \
/qbt && \
printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \
echo "**** cleanup ****" && \
apk del --purge \
build-dependencies && \
rm -rf \
/root/.cache \
/tmp/*
@@ -66,6 +53,9 @@ RUN \
# add local files
COPY root/ /
# add unrar
COPY --from=unrar /usr/bin/unrar-alpine /usr/bin/unrar
# ports and volumes
EXPOSE 8080 6881 6881/udp

View File

@@ -1,47 +1,31 @@
# syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/unrar:arm64v8-latest AS unrar
FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-edge
# set version label
ARG BUILD_DATE
ARG VERSION
ARG QBITTORRENT_VERSION
ARG QBT_VERSION
ARG QBT_CLI_VERSION
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
LABEL maintainer="thespad"
# environment settings
ARG QBT_VERSION=1.7
ARG UNRAR_VERSION=6.1.4
ENV HOME="/config" \
XDG_CONFIG_HOME="/config" \
XDG_DATA_HOME="/config"
# install runtime packages and qbitorrent-cli
RUN \
echo "**** install build packages ****" && \
apk add --no-cache --upgrade --virtual=build-dependencies \
make \
g++ \
gcc && \
echo "**** install packages ****" && \
apk add -U --update --no-cache \
bash \
curl \
apk add --no-cache \
grep \
icu-libs \
libstdc++ \
openssl \
p7zip \
python3 && \
echo "**** install unrar from source ****" && \
mkdir /tmp/unrar && \
curl -o \
/tmp/unrar.tar.gz -L \
"https://www.rarlab.com/rar/unrarsrc-${UNRAR_VERSION}.tar.gz" && \
tar xf \
/tmp/unrar.tar.gz -C \
/tmp/unrar --strip-components=1 && \
cd /tmp/unrar && \
make && \
install -v -m755 unrar /usr/bin && \
python3 \
qt6-qtbase-sqlite && \
if [ -z ${QBITTORRENT_VERSION+x} ]; then \
QBITTORRENT_VERSION=$(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://'); \
@@ -50,15 +34,18 @@ RUN \
qbittorrent-nox==${QBITTORRENT_VERSION} && \
echo "***** install qbitorrent-cli ****" && \
mkdir /qbt && \
curl -L \
-o /tmp/qbt.tar.gz \
"https://github.com/linuxserver/docker-qbittorrent/releases/download/qbt-${QBT_VERSION}/qbt-arm64.tar.gz" && \
if [ -z ${QBT_CLI_VERSION+x} ]; then \
QBT_CLI_VERSION=$(curl -sL "https://api.github.com/repos/fedarovich/qbittorrent-cli/releases/latest" \
| jq -r '. | .tag_name'); \
fi && \
curl -o \
/tmp/qbt.tar.gz -L \
"https://github.com/fedarovich/qbittorrent-cli/releases/download/${QBT_CLI_VERSION}/qbt-linux-alpine-arm64-net6-${QBT_CLI_VERSION#v}.tar.gz" && \
tar xf \
/tmp/qbt.tar.gz -C \
/qbt && \
printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \
echo "**** cleanup ****" && \
apk del --purge \
build-dependencies && \
rm -rf \
/root/.cache \
/tmp/*
@@ -66,6 +53,9 @@ RUN \
# add local files
COPY root/ /
# add unrar
COPY --from=unrar /usr/bin/unrar-alpine /usr/bin/unrar
# ports and volumes
EXPOSE 8080 6881 6881/udp

View File

@@ -1,74 +0,0 @@
FROM ghcr.io/linuxserver/baseimage-alpine:arm32v7-edge
# set version label
ARG BUILD_DATE
ARG VERSION
ARG QBITTORRENT_VERSION
ARG QBT_VERSION
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
LABEL maintainer="thespad"
# environment settings
ARG QBT_VERSION=1.7
ARG UNRAR_VERSION=6.1.4
ENV HOME="/config" \
XDG_CONFIG_HOME="/config" \
XDG_DATA_HOME="/config"
# install runtime packages and qbitorrent-cli
RUN \
echo "**** install build packages ****" && \
apk add --no-cache --upgrade --virtual=build-dependencies \
make \
g++ \
gcc && \
echo "**** install packages ****" && \
apk add -U --update --no-cache \
bash \
curl \
gcompat \
icu-libs \
libc6-compat \
libstdc++ \
openssl \
p7zip \
python3 && \
echo "**** install unrar from source ****" && \
mkdir /tmp/unrar && \
curl -o \
/tmp/unrar.tar.gz -L \
"https://www.rarlab.com/rar/unrarsrc-${UNRAR_VERSION}.tar.gz" && \
tar xf \
/tmp/unrar.tar.gz -C \
/tmp/unrar --strip-components=1 && \
cd /tmp/unrar && \
make && \
install -v -m755 unrar /usr/bin && \
if [ -z ${QBITTORRENT_VERSION+x} ]; then \
QBITTORRENT_VERSION=$(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://'); \
fi && \
apk add -U --upgrade --no-cache \
qbittorrent-nox==${QBITTORRENT_VERSION} && \
echo "***** install qbitorrent-cli ****" && \
mkdir /qbt && \
curl -L \
-o /tmp/qbt.tar.gz \
"https://github.com/linuxserver/docker-qbittorrent/releases/download/qbt-${QBT_VERSION}/qbt-arm.tar.gz" && \
tar xf \
/tmp/qbt.tar.gz -C \
/qbt && \
echo "**** cleanup ****" && \
apk del --purge \
build-dependencies && \
rm -rf \
/root/.cache \
/tmp/*
# add local files
COPY root/ /
# ports and volumes
EXPOSE 8080 6881 6881/udp
VOLUME /config

927
Jenkinsfile vendored

File diff suppressed because it is too large Load Diff

255
README.md
View File

@@ -1,6 +1,5 @@
<!-- DO NOT EDIT THIS FILE MANUALLY -->
<!-- Please read the https://github.com/linuxserver/docker-qbittorrent/blob/master/.github/CONTRIBUTING.md -->
<!-- DO NOT EDIT THIS FILE MANUALLY -->
<!-- Please read https://github.com/linuxserver/docker-qbittorrent/blob/master/.github/CONTRIBUTING.md -->
[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)](https://linuxserver.io)
[![Blog](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Blog)](https://blog.linuxserver.io "all the things you can do with our containers including How-To guides, opinions and much more!")
@@ -29,7 +28,7 @@ Find us at:
# [linuxserver/qbittorrent](https://github.com/linuxserver/docker-qbittorrent)
[![Scarf.io pulls](https://scarf.sh/installs-badge/linuxserver-ci/linuxserver%2Fqbittorrent?color=94398d&label-color=555555&logo-color=ffffff&style=for-the-badge&package-type=docker)](https://scarf.sh/gateway/linuxserver-ci/docker/linuxserver%2Fqbittorrent)
[![Scarf.io pulls](https://scarf.sh/installs-badge/linuxserver-ci/linuxserver%2Fqbittorrent?color=94398d&label-color=555555&logo-color=ffffff&style=for-the-badge&package-type=docker)](https://scarf.sh)
[![GitHub Stars](https://img.shields.io/github/stars/linuxserver/docker-qbittorrent.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-qbittorrent)
[![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)
@@ -46,74 +45,75 @@ The [Qbittorrent](https://www.qbittorrent.org/) project aims to provide an open-
## Supported Architectures
Our images support multiple architectures such as `x86-64`, `arm64` and `armhf`. We utilise the docker manifest for multi-platform awareness. More information is available from docker [here](https://github.com/docker/distribution/blob/master/docs/spec/manifest-v2-2.md#manifest-list) and our announcement [here](https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/).
We utilise the docker manifest for multi-platform awareness. More information is available from docker [here](https://distribution.github.io/distribution/spec/manifest-v2-2/#manifest-list) and our announcement [here](https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/).
Simply pulling `lscr.io/linuxserver/qbittorrent` should retrieve the correct image for your arch, but you can also pull specific arch images via tags.
Simply pulling `lscr.io/linuxserver/qbittorrent:latest` should retrieve the correct image for your arch, but you can also pull specific arch images via tags.
The architectures supported by this image are:
| Architecture | Tag |
| :----: | --- |
| x86-64 | amd64-latest |
| arm64 | arm64v8-latest |
| armhf | arm32v7-latest |
| Architecture | Available | Tag |
| :----: | :----: | ---- |
| x86-64 | ✅ | amd64-\<version tag\> |
| arm64 | ✅ | arm64v8-\<version tag\> |
| armhf | ❌ | |
## Version Tags
This image provides various versions that are available via tags. `latest` tag usually provides the latest stable version. Others are considered under development and caution must be exercised when using them.
This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags.
| Tag | Description |
| :----: | --- |
| latest | Stable qbittorrent releases |
| Tag | Available | Description |
| :----: | :----: |--- |
| latest | ✅ | Stable qbittorrent releases |
| libtorrentv1 | ✅ | Static qbittorrent builds using libtorrent v1 |
## Application Setup
The webui is at `<your-ip>:8080` and the default username/password is `admin/adminadmin`.
The web UI is at `<your-ip>:8080` and a temporary password for the `admin` user will be printed to the container log on startup.
Change username/password via the webui in the webui section of settings.
### WEBUI_PORT variable
Due to issues with CSRF and port mapping, should you require to alter the port for the webui 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
This should alleviate the "white screen" issue.
If you have no webui , check the file /config/qBittorrent/qBittorrent.conf
edit or add the following lines
```
WebUI\Address=*
WebUI\ServerDomains=*
```
You must then change username/password in the web UI section of settings. If you do not change the password a new one will be generated every time the container starts.
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)
### WEBUI_PORT variable
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
### TORRENTING_PORT
A bittorrent client can be an active or a passive node. Running your client as an active node has the advantage of being able to connect to both active and passive peers, and can potentially increase the number of incoming connections. This requires an open port on the host machine which might differ from container's internal one.
Similarly to the WEBUI_PORT, to set the port to 6887 you need to pass -p 6887:6887, -p 6887:6887/udp and -e TORRENTING_PORT=6887 arguments to Docker.
## Read-Only Operation
This image can be run with a read-only container filesystem. For details please [read the docs](https://docs.linuxserver.io/misc/read-only/).
## Usage
Here are some example snippets to help you get started creating a container.
To help you get started creating a container from this image you can either use docker-compose or the docker cli.
>[!NOTE]
>Unless a parameter is flaged as 'optional', it is *mandatory* and a value must be provided.
### docker-compose (recommended, [click here for more info](https://docs.linuxserver.io/general/docker-compose))
```yaml
---
version: "2.1"
services:
qbittorrent:
image: lscr.io/linuxserver/qbittorrent
image: lscr.io/linuxserver/qbittorrent:latest
container_name: qbittorrent
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
- TZ=Etc/UTC
- WEBUI_PORT=8080
- TORRENTING_PORT=6881
volumes:
- /path/to/appdata/config:/config
- /path/to/downloads:/downloads
- /path/to/qbittorrent/appdata:/config
- /path/to/downloads:/downloads #optional
ports:
- 8080:8080
- 6881:6881
@@ -128,32 +128,35 @@ docker run -d \
--name=qbittorrent \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Europe/London \
-e TZ=Etc/UTC \
-e WEBUI_PORT=8080 \
-e TORRENTING_PORT=6881 \
-p 8080:8080 \
-p 6881:6881 \
-p 6881:6881/udp \
-v /path/to/appdata/config:/config \
-v /path/to/downloads:/downloads \
-v /path/to/qbittorrent/appdata:/config \
-v /path/to/downloads:/downloads `#optional` \
--restart unless-stopped \
lscr.io/linuxserver/qbittorrent
lscr.io/linuxserver/qbittorrent:latest
```
## 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.
Containers 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 8080` | WebUI |
| `-p 6881` | tcp connection port |
| `-p 6881/udp` | udp connection port |
| `-p 8080:8080` | WebUI |
| `-p 6881:6881` | tcp connection port |
| `-p 6881:6881/udp` | udp connection port |
| `-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 |
| `-e TZ=Etc/UTC` | specify a timezone to use, see this [list](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). |
| `-e WEBUI_PORT=8080` | for changing the port of the web UI, see below for explanation |
| `-e TORRENTING_PORT=6881` | for changing the port of tcp/udp connection, see below for explanation |
| `-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/). |
## Environment variables from files (Docker secrets)
@@ -162,10 +165,10 @@ You can set any environment variable from a file by using a special prepend `FIL
As an example:
```bash
-e FILE__PASSWORD=/run/secrets/mysecretpassword
-e FILE__MYVAR=/run/secrets/mysecretvariable
```
Will set the environment variable `PASSWORD` based on the contents of the `/run/secrets/mysecretpassword` file.
Will set the environment variable `MYVAR` based on the contents of the `/run/secrets/mysecretvariable` file.
## Umask for running applications
@@ -174,15 +177,20 @@ Keep in mind umask is not chmod it subtracts from permissions based on it's valu
## 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`.
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:
In this instance `PUID=1000` and `PGID=1000`, to find yours use `id your_user` as below:
```bash
$ id username
uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)
id your_user
```
Example output:
```text
uid=1000(your_user) gid=1000(your_user) groups=1000(your_user)
```
## Docker Mods
@@ -193,53 +201,101 @@ We publish various [Docker Mods](https://github.com/linuxserver/docker-mods) to
## Support Info
* Shell access whilst the container is running: `docker exec -it qbittorrent /bin/bash`
* To monitor the logs of the container in realtime: `docker logs -f qbittorrent`
* container version number
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' qbittorrent`
* image version number
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/qbittorrent`
* Shell access whilst the container is running:
```bash
docker exec -it qbittorrent /bin/bash
```
* To monitor the logs of the container in realtime:
```bash
docker logs -f qbittorrent
```
* Container version number:
```bash
docker inspect -f '{{ index .Config.Labels "build_version" }}' qbittorrent
```
* Image version number:
```bash
docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/qbittorrent:latest
```
## Updating Info
Most of our images are static, versioned, and require an image update and container recreation to update the app inside. With some exceptions (ie. nextcloud, plex), we do not recommend or support updating apps inside the container. Please consult the [Application Setup](#application-setup) section above to see if it is recommended for the image.
Most of our images are static, versioned, and require an image update and container recreation to update the app inside. With some exceptions (noted in the relevant readme.md), we do not recommend or support updating apps inside the container. Please consult the [Application Setup](#application-setup) section above to see if it is recommended for the image.
Below are the instructions for updating containers:
### Via Docker Compose
* Update all images: `docker-compose pull`
* or update a single image: `docker-compose pull qbittorrent`
* Let compose update all containers as necessary: `docker-compose up -d`
* or update a single container: `docker-compose up -d qbittorrent`
* You can also remove the old dangling images: `docker image prune`
* Update images:
* All images:
```bash
docker-compose pull
```
* Single image:
```bash
docker-compose pull qbittorrent
```
* Update containers:
* All containers:
```bash
docker-compose up -d
```
* Single container:
```bash
docker-compose up -d qbittorrent
```
* You can also remove the old dangling images:
```bash
docker image prune
```
### Via Docker Run
* Update the image: `docker pull lscr.io/linuxserver/qbittorrent`
* Stop the running container: `docker stop qbittorrent`
* Delete the container: `docker rm qbittorrent`
* Update the image:
```bash
docker pull lscr.io/linuxserver/qbittorrent:latest
```
* Stop the running container:
```bash
docker stop qbittorrent
```
* Delete the container:
```bash
docker rm qbittorrent
```
* Recreate a new container with the same docker run parameters as instructed above (if mapped correctly to a host folder, your `/config` folder and settings will be preserved)
* You can also remove the old dangling images: `docker image prune`
* You can also remove the old dangling images:
### 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:
```bash
docker run --rm \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower \
--run-once qbittorrent
```
* 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).
```bash
docker image prune
```
### 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.
>[!TIP]
>We recommend [Diun](https://crazymax.dev/diun/) for update notifications. Other tools that automatically update containers unattended are not recommended or supported.
## Building locally
@@ -254,16 +310,33 @@ docker build \
-t lscr.io/linuxserver/qbittorrent:latest .
```
The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static`
The ARM variants can be built on x86_64 hardware and vice versa using `lscr.io/linuxserver/qemu-static`
```bash
docker run --rm --privileged multiarch/qemu-user-static:register --reset
docker run --rm --privileged lscr.io/linuxserver/qemu-static --reset
```
Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64`.
## Versions
* **17.07.24:** - Restore qbittorrent-cli as it now supports openssl 3.
* **25.05.24:** - Remove qbittorrent-cli as it still requires openssl 1.1 which is EOL.
* **14.02.24:** - Only set/override torrenting port if the optional env var is set.
* **14.02.24:** - Add torrenting port support.
* **31.01.24:** - Remove obsolete compat packages.
* **25.12.23:** - Only pull stable releases of qbittorrent-cli.
* **07.10.23:** - Install unrar from [linuxserver repo](https://github.com/linuxserver/docker-unrar).
* **10.08.23:** - Bump unrar to 6.2.10.
* **17.06.23:** - Deprecate armhf as per [https://www.linuxserver.io/armhf](https://www.linuxserver.io/armhf).
* **10.06.23:** - Bump unrar to 6.2.8.
* **23.02.23:** - Add qt6-qtbase-sqlite to support SQLite database for resume files.
* **29.11.22:** - Add openssl1.1-compat for qbittorrent-cli.
* **31.10.22:** - Add libtorrentv1 branch.
* **31.08.22:** - Rebase to Alpine Edge again to follow latest releases.
* **12.08.22:** - Bump unrar to 6.1.7.
* **16.06.22:** - Rebase to Alpine 3.16 from edge.
* **25.05.22:** - Fetch qbitorrent-cli from upstream repo.
* **02.03.22:** - Add unrar, 7zip, and qbitorrent-cli.
* **01.03.22:** - Add python for search plugin support.
* **23.02.22:** - Rebase to Alpine Edge, install from Alpine repos.

View File

@@ -23,7 +23,7 @@ repo_vars:
- CI_WEB='true'
- CI_PORT='8080'
- CI_SSL='false'
- CI_DELAY='120'
- CI_DOCKERENV='TZ=US/Pacific'
- CI_AUTH='user:password'
- CI_DELAY='60'
- CI_DOCKERENV=''
- CI_AUTH=''
- CI_WEBPATH=''

View File

@@ -1,80 +1,261 @@
alpine-baselayout-3.2.0-r20
alpine-baselayout-data-3.2.0-r20
alpine-keys-2.4-r1
apk-tools-2.12.9-r1
bash-5.1.16-r0
brotli-libs-1.0.9-r6
busybox-1.35.0-r7
ca-certificates-20211220-r0
ca-certificates-bundle-20211220-r0
coreutils-9.0-r3
curl-7.82.0-r0
dbus-libs-1.12.22-r0
double-conversion-3.1.5-r0
expat-2.4.8-r0
file-5.41-r0
gdbm-1.23-r0
glib-2.70.5-r0
icu-libs-70.1-r0
libacl-2.2.53-r0
libattr-2.5.1-r1
libb2-0.98.1-r2
libblkid-2.38-r0
libbsd-0.11.5-r0
libbz2-1.0.8-r1
libc-utils-0.7.2-r3
libcrypto1.1-1.1.1n-r0
libcurl-7.82.0-r0
libexecinfo-1.1-r1
libffi-3.4.2-r1
libgcc-11.2.1_git20220219-r1
libgomp-11.2.1_git20220219-r1
libice-1.0.10-r0
libintl-0.21-r1
libmagic-5.41-r0
libmd-1.0.3-r0
libmount-2.38-r0
libpcre2-16-10.39-r0
libproc-3.3.17-r1
libretls-3.5.1-r0
libsm-1.2.3-r0
libssl1.1-1.1.1n-r0
libstdc++-11.2.1_git20220219-r1
libtorrent-rasterbar-2.0.5-r2
libuuid-2.38-r0
libx11-1.7.3.1-r0
libxau-1.0.9-r0
libxcb-1.14-r2
libxdmcp-1.1.3-r0
libxext-1.3.4-r0
libxmu-1.1.3-r0
libxt-1.2.1-r0
linux-pam-1.5.2-r0
mpdecimal-2.5.1-r1
musl-1.2.2-r7
musl-utils-1.2.2-r7
ncurses-libs-6.3_p20220319-r0
ncurses-terminfo-base-6.3_p20220319-r0
nghttp2-libs-1.47.0-r0
openssl-1.1.1n-r0
p7zip-17.04-r2
pcre-8.45-r2
procps-3.3.17-r1
python3-3.10.2-r1
qbittorrent-nox-4.4.2-r1
qt6-qtbase-6.2.3-r1
readline-8.1.2-r0
scanelf-1.3.3-r0
shadow-4.10-r3
skalibs-2.11.2.0-r0
sqlite-libs-3.37.2-r0
ssl_client-1.35.0-r7
tzdata-2022a-r0
utmps-libs-0.1.2.0-r0
xdg-utils-1.1.3-r3
xprop-1.2.5-r0
xset-1.2.4-r0
xz-5.2.5-r0
xz-libs-5.2.5-r0
zlib-1.2.12-r0
zstd-libs-1.5.2-r0
NAME VERSION TYPE
7zip 24.08-r0 apk
Alba.CsConsoleFormat 1.0.0.89 dotnet
BencodeNET 2.3.0.0 dotnet
Bouncy Castle for .NET (netstandard2.0) 1.8.8.2 dotnet
CommandLineUtils 2.4.4+3c2a4909757a51602dcca9b961d577511b85fd31.3c2a4909757a51602dcca9b961d577511b85fd31 dotnet
CsvHelper 12.1.2 dotnet
Json.NET 13.0.3.27908 dotnet
Microsoft.CSharp 6.0.3524.45918 dotnet
Microsoft.VisualBasic 6.0.3524.45918 dotnet
Microsoft.VisualBasic.Core 11.100.3524.45918 dotnet
Microsoft.Win32.Primitives 6.0.3524.45918 dotnet
Microsoft.Win32.Registry 6.0.3524.45918 dotnet
Mono.Posix.NETStandard 1.0.0.0 dotnet
NJsonSchema 9.14.1.0 dotnet
Portable.Xaml.dll 0.18.0.0 dotnet
QBittorrent.Client 1.9.24285.1 dotnet
System 6.0.3524.45918 dotnet
System.AppContext 6.0.3524.45918 dotnet
System.Buffers 6.0.3524.45918 dotnet
System.Collections 6.0.3524.45918 dotnet
System.Collections.Concurrent 6.0.3524.45918 dotnet
System.Collections.Immutable 6.0.3524.45918 dotnet
System.Collections.NonGeneric 6.0.3524.45918 dotnet
System.Collections.Specialized 6.0.3524.45918 dotnet
System.ComponentModel 6.0.3524.45918 dotnet
System.ComponentModel.Annotations 6.0.3524.45918 dotnet
System.ComponentModel.DataAnnotations 6.0.3524.45918 dotnet
System.ComponentModel.EventBasedAsync 6.0.3524.45918 dotnet
System.ComponentModel.Primitives 6.0.3524.45918 dotnet
System.ComponentModel.TypeConverter 6.0.3524.45918 dotnet
System.Configuration 6.0.3524.45918 dotnet
System.Console 6.0.3524.45918 dotnet
System.Core 6.0.3524.45918 dotnet
System.Data 6.0.3524.45918 dotnet
System.Data.Common 6.0.3524.45918 dotnet
System.Data.DataSetExtensions 6.0.3524.45918 dotnet
System.Diagnostics.Contracts 6.0.3524.45918 dotnet
System.Diagnostics.Debug 6.0.3524.45918 dotnet
System.Diagnostics.DiagnosticSource 6.0.3524.45918 dotnet
System.Diagnostics.FileVersionInfo 6.0.3524.45918 dotnet
System.Diagnostics.Process 6.0.3524.45918 dotnet
System.Diagnostics.StackTrace 6.0.3524.45918 dotnet
System.Diagnostics.TextWriterTraceListener 6.0.3524.45918 dotnet
System.Diagnostics.Tools 6.0.3524.45918 dotnet
System.Diagnostics.TraceSource 6.0.3524.45918 dotnet
System.Diagnostics.Tracing 6.0.3524.45918 dotnet
System.Drawing 6.0.3524.45918 dotnet
System.Drawing.Primitives 6.0.3524.45918 dotnet
System.Dynamic.Runtime 6.0.3524.45918 dotnet
System.Formats.Asn1 6.0.3524.45918 dotnet
System.Globalization 6.0.3524.45918 dotnet
System.Globalization.Calendars 6.0.3524.45918 dotnet
System.Globalization.Extensions 6.0.3524.45918 dotnet
System.IO 6.0.3524.45918 dotnet
System.IO.Compression 6.0.3524.45918 dotnet
System.IO.Compression.Brotli 6.0.3524.45918 dotnet
System.IO.Compression.FileSystem 6.0.3524.45918 dotnet
System.IO.Compression.ZipFile 6.0.3524.45918 dotnet
System.IO.FileSystem 6.0.3524.45918 dotnet
System.IO.FileSystem.AccessControl 6.0.3524.45918 dotnet
System.IO.FileSystem.DriveInfo 6.0.3524.45918 dotnet
System.IO.FileSystem.Primitives 6.0.3524.45918 dotnet
System.IO.FileSystem.Watcher 6.0.3524.45918 dotnet
System.IO.IsolatedStorage 6.0.3524.45918 dotnet
System.IO.MemoryMappedFiles 6.0.3524.45918 dotnet
System.IO.Pipes 6.0.3524.45918 dotnet
System.IO.Pipes.AccessControl 6.0.3524.45918 dotnet
System.IO.UnmanagedMemoryStream 6.0.3524.45918 dotnet
System.Linq 6.0.3524.45918 dotnet
System.Linq.Expressions 6.0.3524.45918 dotnet
System.Linq.Parallel 6.0.3524.45918 dotnet
System.Linq.Queryable 6.0.3524.45918 dotnet
System.Memory 6.0.3524.45918 dotnet
System.Net 6.0.3524.45918 dotnet
System.Net.Http 6.0.3524.45918 dotnet
System.Net.Http.Json 6.0.3524.45918 dotnet
System.Net.HttpListener 6.0.3524.45918 dotnet
System.Net.IPNetwork 2.5.235 dotnet
System.Net.Mail 6.0.3524.45918 dotnet
System.Net.NameResolution 6.0.3524.45918 dotnet
System.Net.NetworkInformation 6.0.3524.45918 dotnet
System.Net.Ping 6.0.3524.45918 dotnet
System.Net.Primitives 6.0.3524.45918 dotnet
System.Net.Quic 6.0.3524.45918 dotnet
System.Net.Requests 6.0.3524.45918 dotnet
System.Net.Security 6.0.3524.45918 dotnet
System.Net.ServicePoint 6.0.3524.45918 dotnet
System.Net.Sockets 6.0.3524.45918 dotnet
System.Net.WebClient 6.0.3524.45918 dotnet
System.Net.WebHeaderCollection 6.0.3524.45918 dotnet
System.Net.WebProxy 6.0.3524.45918 dotnet
System.Net.WebSockets 6.0.3524.45918 dotnet
System.Net.WebSockets.Client 6.0.3524.45918 dotnet
System.Numerics 6.0.3524.45918 dotnet
System.Numerics.Vectors 6.0.3524.45918 dotnet
System.ObjectModel 6.0.3524.45918 dotnet
System.Private.CoreLib 6.0.3524.45918 dotnet
System.Private.DataContractSerialization 6.0.3524.45918 dotnet
System.Private.Uri 6.0.3524.45918 dotnet
System.Private.Xml 6.0.3524.45918 dotnet
System.Private.Xml.Linq 6.0.3524.45918 dotnet
System.Reflection 6.0.3524.45918 dotnet
System.Reflection.DispatchProxy 6.0.3524.45918 dotnet
System.Reflection.Emit 6.0.3524.45918 dotnet
System.Reflection.Emit.ILGeneration 6.0.3524.45918 dotnet
System.Reflection.Emit.Lightweight 6.0.3524.45918 dotnet
System.Reflection.Extensions 6.0.3524.45918 dotnet
System.Reflection.Metadata 6.0.3524.45918 dotnet
System.Reflection.Primitives 6.0.3524.45918 dotnet
System.Reflection.TypeExtensions 6.0.3524.45918 dotnet
System.Resources.Reader 6.0.3524.45918 dotnet
System.Resources.ResourceManager 6.0.3524.45918 dotnet
System.Resources.Writer 6.0.3524.45918 dotnet
System.Runtime 6.0.3524.45918 dotnet
System.Runtime.CompilerServices.VisualC 6.0.3524.45918 dotnet
System.Runtime.Extensions 6.0.3524.45918 dotnet
System.Runtime.Handles 6.0.3524.45918 dotnet
System.Runtime.InteropServices 6.0.3524.45918 dotnet
System.Runtime.InteropServices.RuntimeInformation 6.0.3524.45918 dotnet
System.Runtime.Intrinsics 6.0.3524.45918 dotnet
System.Runtime.Loader 6.0.3524.45918 dotnet
System.Runtime.Numerics 6.0.3524.45918 dotnet
System.Runtime.Serialization 6.0.3524.45918 dotnet
System.Runtime.Serialization.Formatters 6.0.3524.45918 dotnet
System.Runtime.Serialization.Json 6.0.3524.45918 dotnet
System.Runtime.Serialization.Primitives 6.0.3524.45918 dotnet
System.Runtime.Serialization.Xml 6.0.3524.45918 dotnet
System.Security 6.0.3524.45918 dotnet
System.Security.AccessControl 6.0.3524.45918 dotnet
System.Security.Claims 6.0.3524.45918 dotnet
System.Security.Cryptography.Algorithms 6.0.3524.45918 dotnet
System.Security.Cryptography.Cng 6.0.3524.45918 dotnet
System.Security.Cryptography.Csp 6.0.3524.45918 dotnet
System.Security.Cryptography.Encoding 6.0.3524.45918 dotnet
System.Security.Cryptography.OpenSsl 6.0.3524.45918 dotnet
System.Security.Cryptography.Primitives 6.0.3524.45918 dotnet
System.Security.Cryptography.ProtectedData 5.0.20.51904 dotnet
System.Security.Cryptography.X509Certificates 6.0.3524.45918 dotnet
System.Security.Principal 6.0.3524.45918 dotnet
System.Security.Principal.Windows 6.0.3524.45918 dotnet
System.Security.SecureString 6.0.3524.45918 dotnet
System.ServiceModel.Web 6.0.3524.45918 dotnet
System.ServiceProcess 6.0.3524.45918 dotnet
System.Text.Encoding 6.0.3524.45918 dotnet
System.Text.Encoding.CodePages 6.0.3524.45918 dotnet
System.Text.Encoding.Extensions 6.0.3524.45918 dotnet
System.Text.Encodings.Web 6.0.3524.45918 dotnet
System.Text.Json 6.0.3524.45918 dotnet
System.Text.RegularExpressions 6.0.3524.45918 dotnet
System.Threading 6.0.3524.45918 dotnet
System.Threading.Channels 6.0.3524.45918 dotnet
System.Threading.Overlapped 6.0.3524.45918 dotnet
System.Threading.Tasks 6.0.3524.45918 dotnet
System.Threading.Tasks.Dataflow 6.0.3524.45918 dotnet
System.Threading.Tasks.Extensions 6.0.3524.45918 dotnet
System.Threading.Tasks.Parallel 6.0.3524.45918 dotnet
System.Threading.Thread 6.0.3524.45918 dotnet
System.Threading.ThreadPool 6.0.3524.45918 dotnet
System.Threading.Timer 6.0.3524.45918 dotnet
System.Transactions 6.0.3524.45918 dotnet
System.Transactions.Local 6.0.3524.45918 dotnet
System.ValueTuple 6.0.3524.45918 dotnet
System.Web 6.0.3524.45918 dotnet
System.Web.HttpUtility 6.0.3524.45918 dotnet
System.Windows 6.0.3524.45918 dotnet
System.Xml 6.0.3524.45918 dotnet
System.Xml.Linq 6.0.3524.45918 dotnet
System.Xml.ReaderWriter 6.0.3524.45918 dotnet
System.Xml.Serialization 6.0.3524.45918 dotnet
System.Xml.XDocument 6.0.3524.45918 dotnet
System.Xml.XPath 6.0.3524.45918 dotnet
System.Xml.XPath.XDocument 6.0.3524.45918 dotnet
System.Xml.XmlDocument 6.0.3524.45918 dotnet
System.Xml.XmlSerializer 6.0.3524.45918 dotnet
WindowsBase 6.0.3524.45918 dotnet
acl-libs 2.3.2-r1 apk
alpine-baselayout 3.6.8-r0 apk
alpine-baselayout-data 3.6.8-r0 apk
alpine-keys 2.5-r0 apk
apk-tools 2.14.7-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
c-ares 1.34.3-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
dbus-libs 1.14.10-r4 apk
double-conversion 3.3.0-r0 apk
duktape 2.7.0-r1 apk
findutils 4.10.0-r0 apk
gdbm 1.24-r0 apk
glib 2.82.4-r0 apk
grep 3.11-r0 apk
icu-data-en 74.2-r0 apk
icu-libs 74.2-r0 apk
jq 1.7.1-r0 apk
libattr 2.5.2-r2 apk
libb2 0.98.1-r3 apk
libblkid 2.40.2-r4 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
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
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
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
libtorrent-rasterbar 2.0.10-r3 apk
libunistring 1.2-r0 apk
linux-pam 1.6.1-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
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
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
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
utmps-libs 0.1.2.3-r2 apk
xz-libs 5.6.3-r0 apk
zlib 1.3.1-r2 apk
zstd-libs 1.5.6-r1 apk

View File

@@ -6,92 +6,135 @@ 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 }}"
# supported architectures
available_architectures:
- { arch: "{{ arch_x86_64 }}", tag: "amd64-latest"}
- { arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"}
- { arch: "{{ arch_armhf }}", tag: "arm32v7-latest"}
- {arch: "{{ arch_x86_64 }}", tag: "amd64-latest"}
- {arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"}
# development version
development_versions: true
development_versions_items:
- { tag: "latest", desc: "Stable qbittorrent releases" }
- {tag: "latest", desc: "Stable qbittorrent releases"}
- {tag: "libtorrentv1", desc: "Static qbittorrent builds using libtorrent v1"}
# container parameters
common_param_env_vars_enabled: true
param_container_name: "{{ project_name }}"
param_usage_include_vols: true
param_volumes:
- { vol_path: "/config", vol_host_path: "/path/to/appdata/config", desc: "Contains all relevant configuration files." }
- { vol_path: "/downloads", vol_host_path: "/path/to/downloads", desc: "Location of downloads on disk." }
- {vol_path: "/config", vol_host_path: "/path/to/{{ project_name }}/appdata", desc: "Contains all relevant configuration files."}
param_usage_include_ports: true
param_ports:
- { external_port: "8080", internal_port: "8080", port_desc: "WebUI" }
- { external_port: "6881", internal_port: "6881", port_desc: "tcp connection port" }
- { external_port: "6881", internal_port: "6881/udp", port_desc: "udp connection port" }
- {external_port: "8080", internal_port: "8080", port_desc: "WebUI"}
- {external_port: "6881", internal_port: "6881", port_desc: "tcp connection port"}
- {external_port: "6881", internal_port: "6881/udp", port_desc: "udp connection port"}
param_usage_include_env: true
param_env_vars:
- { env_var: "TZ", env_value: "Europe/London", desc: "Specify a timezone to use EG Europe/London"}
- { env_var: "WEBUI_PORT", env_value: "8080", desc: "for changing the port of the webui, see below for explanation"}
# optional parameters
optional_block_1: false
optional_block_1_items: ""
- {env_var: "WEBUI_PORT", env_value: "8080", desc: "for changing the port of the web UI, see below for explanation"}
- {env_var: "TORRENTING_PORT", env_value: "6881", desc: "for changing the port of tcp/udp connection, see below for explanation"}
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
# application setup block
app_setup_block_enabled: true
app_setup_block: |
The webui is at `<your-ip>:8080` and the default username/password is `admin/adminadmin`.
The web UI is at `<your-ip>:8080` and a temporary password for the `admin` user will be printed to the container log on startup.
Change username/password via the webui in the webui section of settings.
### WEBUI_PORT variable
Due to issues with CSRF and port mapping, should you require to alter the port for the webui 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
This should alleviate the "white screen" issue.
If you have no webui , check the file /config/qBittorrent/qBittorrent.conf
edit or add the following lines
```
WebUI\Address=*
WebUI\ServerDomains=*
```
You must then change username/password in the web UI section of settings. If you do not change the password a new one will be generated every time the container starts.
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)
### WEBUI_PORT variable
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
### TORRENTING_PORT
A bittorrent client can be an active or a passive node. Running your client as an active node has the advantage of being able to connect to both active and passive peers, and can potentially increase the number of incoming connections. This requires an open port on the host machine which might differ from container's internal one.
Similarly to the WEBUI_PORT, to set the port to 6887 you need to pass -p 6887:6887, -p 6887:6887/udp and -e TORRENTING_PORT=6887 arguments to Docker.
# init diagram
init_diagram: |
"qbittorrent:latest": {
docker-mods
base {
fix-attr +\nlegacy cont-init
}
docker-mods -> base
legacy-services
custom services
init-services -> legacy-services
init-services -> custom services
custom services -> legacy-services
legacy-services -> ci-service-check
init-migrations -> init-adduser
init-os-end -> init-config
init-config -> init-config-end
init-crontab-config -> init-config-end
init-qbittorrent-config -> init-config-end
init-config -> init-crontab-config
init-mods-end -> init-custom-files
base -> init-envfile
base -> init-migrations
init-config-end -> init-mods
init-mods-package-install -> init-mods-end
init-mods -> init-mods-package-install
init-adduser -> init-os-end
init-envfile -> init-os-end
init-config -> init-qbittorrent-config
init-custom-files -> init-services
init-services -> svc-cron
svc-cron -> legacy-services
init-services -> svc-qbittorrent
svc-qbittorrent -> legacy-services
}
Base Images: {
"baseimage-alpine:edge"
}
"qbittorrent:latest" <- Base Images
# changelog
changelogs:
- { date: "02.03.22:", desc: "Add unrar, 7zip, and qbitorrent-cli." }
- { date: "01.03.22:", desc: "Add python for search plugin support." }
- { date: "23.02.22:", desc: "Rebase to Alpine Edge, install from Alpine repos." }
- { date: "19.02.22:", desc: "Add jq to build-stage" }
- { date: "07.01.22:", desc: "Rebase to Alpine, build from source." }
- { date: "06.01.22:", desc: "Deprecate unstable branch." }
- { date: "10.02.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: "12.11.20:", desc: "Stop creating /config/data directory on startup" }
- { date: "03.04.20:", desc: "Fix adding search engine plugin" }
- { date: "02.08.19:", desc: "Add qbitorrent-cli for processing scripts." }
- { date: "23.03.19:", desc: "Switching to new Base images, shift to arm32v7 tag." }
- { date: "14.01.19:", desc: "Rebase to Ubuntu, add multi arch and pipeline logic." }
- { date: "25.09.18:", desc: "Use buildstage type build, bump qbitorrent to 4.1.3." }
- { date: "14.08.18:", desc: "Rebase to alpine 3.8, bump libtorrent to 1.1.9 and qbitorrent to 4.1.2." }
- { date: "08.06.18:", desc: "Bump qbitorrent to 4.1.1." }
- { date: "26.04.18:", desc: "Bump libtorrent to 1.1.7." }
- { date: "02.03.18:", desc: "Bump qbitorrent to 4.0.4 and libtorrent to 1.1.6." }
- { date: "02.01.18:", desc: "Deprecate cpu_core routine lack of scaling." }
- { date: "19.12.17:", desc: "Update to v4.0.3." }
- { date: "09.02.17:", desc: "Rebase to alpine 3.7" }
- { date: "01.12.17:", desc: "Update to v4.0.2." }
- { date: "27.11.17:", desc: "Update to v4 and use cpu_core routine to speed up builds." }
- { date: "16.09.17:", desc: "Bump to 3.3.16, Add WEBUI_PORT variable and notes to README to allow changing port of webui." }
- { date: "01.08.17:", desc: "Initial Release." }
- { date: "12.02.18:", desc: "Initial Release." }
- {date: "17.07.24:", desc: "Restore qbittorrent-cli as it now supports openssl 3."}
- {date: "25.05.24:", desc: "Remove qbittorrent-cli as it still requires openssl 1.1 which is EOL."}
- {date: "14.02.24:", desc: "Only set/override torrenting port if the optional env var is set."}
- {date: "14.02.24:", desc: "Add torrenting port support."}
- {date: "31.01.24:", desc: "Remove obsolete compat packages."}
- {date: "25.12.23:", desc: "Only pull stable releases of qbittorrent-cli."}
- {date: "07.10.23:", desc: "Install unrar from [linuxserver repo](https://github.com/linuxserver/docker-unrar)."}
- {date: "10.08.23:", desc: "Bump unrar to 6.2.10."}
- {date: "17.06.23:", desc: "Deprecate armhf as per [https://www.linuxserver.io/armhf](https://www.linuxserver.io/armhf)."}
- {date: "10.06.23:", desc: "Bump unrar to 6.2.8."}
- {date: "23.02.23:", desc: "Add qt6-qtbase-sqlite to support SQLite database for resume files."}
- {date: "29.11.22:", desc: "Add openssl1.1-compat for qbittorrent-cli."}
- {date: "31.10.22:", desc: "Add libtorrentv1 branch."}
- {date: "31.08.22:", desc: "Rebase to Alpine Edge again to follow latest releases."}
- {date: "12.08.22:", desc: "Bump unrar to 6.1.7."}
- {date: "16.06.22:", desc: "Rebase to Alpine 3.16 from edge."}
- {date: "25.05.22:", desc: "Fetch qbitorrent-cli from upstream repo."}
- {date: "02.03.22:", desc: "Add unrar, 7zip, and qbitorrent-cli."}
- {date: "01.03.22:", desc: "Add python for search plugin support."}
- {date: "23.02.22:", desc: "Rebase to Alpine Edge, install from Alpine repos."}
- {date: "19.02.22:", desc: "Add jq to build-stage"}
- {date: "07.01.22:", desc: "Rebase to Alpine, build from source."}
- {date: "06.01.22:", desc: "Deprecate unstable branch."}
- {date: "10.02.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: "12.11.20:", desc: "Stop creating /config/data directory on startup"}
- {date: "03.04.20:", desc: "Fix adding search engine plugin"}
- {date: "02.08.19:", desc: "Add qbitorrent-cli for processing scripts."}
- {date: "23.03.19:", desc: "Switching to new Base images, shift to arm32v7 tag."}
- {date: "14.01.19:", desc: "Rebase to Ubuntu, add multi arch and pipeline logic."}
- {date: "25.09.18:", desc: "Use buildstage type build, bump qbitorrent to 4.1.3."}
- {date: "14.08.18:", desc: "Rebase to alpine 3.8, bump libtorrent to 1.1.9 and qbitorrent to 4.1.2."}
- {date: "08.06.18:", desc: "Bump qbitorrent to 4.1.1."}
- {date: "26.04.18:", desc: "Bump libtorrent to 1.1.7."}
- {date: "02.03.18:", desc: "Bump qbitorrent to 4.0.4 and libtorrent to 1.1.6."}
- {date: "02.01.18:", desc: "Deprecate cpu_core routine lack of scaling."}
- {date: "19.12.17:", desc: "Update to v4.0.3."}
- {date: "09.02.17:", desc: "Rebase to alpine 3.7"}
- {date: "01.12.17:", desc: "Update to v4.0.2."}
- {date: "27.11.17:", desc: "Update to v4 and use cpu_core routine to speed up builds."}
- {date: "16.09.17:", desc: "Bump to 3.3.16, Add WEBUI_PORT variable and notes to README to allow changing port of webui."}
- {date: "01.08.17:", desc: "Initial Release."}
- {date: "12.02.18:", desc: "Initial Release."}

View File

@@ -1,26 +0,0 @@
#!/usr/bin/with-contenv bash
# make our folder
mkdir -p /config/qBittorrent
# copy config
[[ ! -e /config/qBittorrent/qBittorrent.conf ]] && \
cp /defaults/qBittorrent.conf /config/qBittorrent/qBittorrent.conf
# v4.3.3 BT_backup migration
[[ -d /config/data/qBittorrent/BT_backup/ ]] && \
mv /config/qBittorrent/BT_backup/ /config/qBittorrent/BT_backup.bak/ && \
mkdir /config/qBittorrent/BT_backup/ && \
cp -a /config/data/qBittorrent/BT_backup/. /config/qBittorrent/BT_backup/ && \
mv /config/data/qBittorrent/BT_backup/ /config/data/qBittorrent/BT_backup.old/
# chown download directory if currently not set to abc
if [[ -d /downloads ]]; then
if [[ "$(stat -c '%U' /downloads)" != "abc" ]]; then
chown -R abc:abc /downloads
fi
fi
# permissions
chown -R abc:abc \
/config

View File

@@ -0,0 +1,19 @@
#!/usr/bin/with-contenv bash
# shellcheck shell=bash
# make our folder
mkdir -p /config/qBittorrent
# copy default config
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
# permissions
lsiown -R abc:abc \
/config

View File

@@ -0,0 +1 @@
oneshot

View File

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

View File

@@ -0,0 +1 @@
3

View File

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

View File

@@ -0,0 +1 @@
longrun

View File

@@ -1,6 +0,0 @@
#!/usr/bin/with-contenv bash
WEBUI_PORT=${WEBUI_PORT:-8080}
exec \
s6-setuidgid abc /usr/bin/qbittorrent-nox --webui-port="${WEBUI_PORT}"

View File

@@ -1,4 +1,5 @@
#!/usr/bin/with-contenv bash
# shellcheck shell=bash
# qbt bash wrapper to prompt user when trying to save password
if [[ "$@" == "settings set password" ]]; then