Compare commits

..

238 Commits

Author SHA1 Message Date
LinuxServer-CI
95f69de4c7
Bot Updating Package Versions 2026-03-06 19:46:44 +00:00
LinuxServer-CI
092f60a2f6
Bot Updating Package Versions 2026-02-27 19:46:28 +00:00
LinuxServer-CI
88bc398d90
Bot Updating Package Versions 2026-02-20 19:46:28 +00:00
LinuxServer-CI
4d3da03084
Bot Updating Package Versions 2026-02-16 23:38:57 +00:00
LinuxServer-CI
335dc7204c
Bot Updating Package Versions 2026-02-13 19:58:02 +00:00
LinuxServer-CI
286c86faac
Bot Updating Templated Files 2026-02-13 19:53:14 +00:00
LinuxServer-CI
a4654f492c
Bot Updating Templated Files 2026-02-13 19:51:06 +00:00
LinuxServer-CI
dba0a658f5
Bot Updating Package Versions 2026-02-06 19:48:33 +00:00
LinuxServer-CI
bc70316e36
Bot Updating Package Versions 2026-01-31 02:32:21 +00:00
LinuxServer-CI
2570db87c6
Bot Updating Package Versions 2026-01-30 19:44:36 +00:00
LinuxServer-CI
482e4d294a
Bot Updating Package Versions 2026-01-23 19:36:09 +00:00
LinuxServer-CI
abfef865c2
Bot Updating Package Versions 2026-01-16 19:30:27 +00:00
LinuxServer-CI
279742c659
Bot Updating Package Versions 2026-01-09 14:46:30 +00:00
aptalca
15cc5b94bc
Merge pull request #78 from linuxserver/gcompat
add gcompat for mini-racer
2026-01-09 09:41:32 -05:00
aptalca
5090abcfc2
add gcompat for mini-racer 2026-01-09 08:09:13 -05:00
LinuxServer-CI
990d25043d
Bot Updating Package Versions 2026-01-02 19:27:58 +00:00
LinuxServer-CI
06003eaf30
Bot Updating Package Versions 2025-12-26 19:28:16 +00:00
LinuxServer-CI
b858e98a35
Bot Updating Package Versions 2025-12-22 13:41:37 +00:00
LinuxServer-CI
4b2e592880
Bot Updating Package Versions 2025-12-19 19:28:50 +00:00
LinuxServer-CI
0338309ad4
Bot Updating Package Versions 2025-12-12 19:29:08 +00:00
LinuxServer-CI
47fe8e0276
Bot Updating Package Versions 2025-12-05 19:28:45 +00:00
LinuxServer-CI
760deb3935
Bot Updating Package Versions 2025-11-28 19:26:55 +00:00
LinuxServer-CI
bfc01ea58e
Bot Updating Package Versions 2025-11-21 19:29:26 +00:00
LinuxServer-CI
38ee050492
Bot Updating Templated Files 2025-11-21 19:25:26 +00:00
LinuxServer-CI
5f7689e9c1
Bot Updating Package Versions 2025-11-14 19:27:21 +00:00
LinuxServer-CI
ecc6bfd7e4
Bot Updating Package Versions 2025-11-07 19:26:59 +00:00
LinuxServer-CI
de0f300cf7
Bot Updating Package Versions 2025-10-31 19:24:46 +00:00
LinuxServer-CI
03cb2710d3
Bot Updating Package Versions 2025-10-24 19:29:33 +00:00
LinuxServer-CI
267a7a9c5d
Bot Updating Templated Files 2025-10-24 19:24:43 +00:00
LinuxServer-CI
52f6b687ca
Bot Updating Package Versions 2025-10-17 19:25:27 +00:00
LinuxServer-CI
abbce2bf8f
Bot Updating Package Versions 2025-10-10 19:25:46 +00:00
LinuxServer-CI
c7da815bc1
Bot Updating Package Versions 2025-10-03 19:25:06 +00:00
LinuxServer-CI
9a51c30e33
Bot Updating Package Versions 2025-09-26 19:24:28 +00:00
LinuxServer-CI
b3a7b99ce1
Bot Updating Package Versions 2025-09-19 19:25:03 +00:00
LinuxServer-CI
eabfc47bc5
Bot Updating Package Versions 2025-09-12 19:24:58 +00:00
LinuxServer-CI
6388d7e4b3
Bot Updating Package Versions 2025-09-05 19:25:50 +00:00
LinuxServer-CI
63d753a73e
Bot Updating Package Versions 2025-09-01 21:18:33 +00:00
aptalca
fd27e80e80
Merge pull request #74 from linuxserver/libatomic
add new dep, libatomic
2025-09-01 17:12:03 -04:00
aptalca
283d768dca
add new dep, libatomic 2025-09-01 17:01:20 -04:00
LinuxServer-CI
fc5924af13
Bot Updating Package Versions 2025-08-29 19:25:29 +00:00
LinuxServer-CI
d3fde41d7f
Bot Updating Package Versions 2025-08-27 15:29:38 +00:00
LinuxServer-CI
14cb4daf6e
Bot Updating Package Versions 2025-08-21 18:37:11 +00:00
LinuxServer-CI
bfa200aedc
Bot Updating Package Versions 2025-08-09 23:28:06 +00:00
LinuxServer-CI
7407a61aff
Bot Updating Package Versions 2025-08-08 19:27:52 +00:00
LinuxServer-CI
97f9f40efa
Bot Updating Package Versions 2025-08-02 22:29:21 +00:00
LinuxServer-CI
828523a98b
Bot Updating Package Versions 2025-08-01 19:30:00 +00:00
LinuxServer-CI
a13ad99c7b
Bot Updating Package Versions 2025-07-25 19:30:23 +00:00
LinuxServer-CI
fa7e5784ec
Bot Updating Package Versions 2025-07-18 19:29:38 +00:00
LinuxServer-CI
f928209d8f
Bot Updating Package Versions 2025-07-11 21:28:05 +00:00
LinuxServer-CI
db9974b7ef
Bot Updating Package Versions 2025-07-11 19:29:25 +00:00
LinuxServer-CI
5ab8117606
Bot Updating Package Versions 2025-07-04 19:33:55 +00:00
LinuxServer-CI
0d1086b673
Bot Updating Templated Files 2025-07-04 19:27:24 +00:00
LinuxServer-CI
4a36179f34
Bot Updating Templated Files 2025-07-04 19:25:17 +00:00
LinuxServer-CI
9644de3625
Bot Updating Package Versions 2025-06-27 19:25:55 +00:00
LinuxServer-CI
a1d260878d
Bot Updating Package Versions 2025-06-20 19:26:50 +00:00
LinuxServer-CI
3ff1965400
Bot Updating Package Versions 2025-06-13 19:29:49 +00:00
LinuxServer-CI
c97131b0b2
Bot Updating Templated Files 2025-06-13 19:25:05 +00:00
LinuxServer-CI
9a81d0641d
Bot Updating Package Versions 2025-06-09 14:50:35 +00:00
LinuxServer-CI
dee4a2292c
Bot Updating Templated Files 2025-06-09 14:45:51 +00:00
aptalca
ee726da009
Merge pull request #67 from linuxserver/3.22
rebase to alpine 3.22
2025-06-09 10:43:33 -04:00
aptalca
00d06e9320
rebase to alpine 3.22 2025-06-09 09:17:04 -04:00
LinuxServer-CI
1514e66bd5
Bot Updating Templated Files 2025-05-16 19:23:41 +00:00
LinuxServer-CI
9c202c8f74
Bot Updating Package Versions 2025-02-21 19:22:19 +00:00
LinuxServer-CI
9387a8789f
Bot Updating Package Versions 2025-02-14 19:26:26 +00:00
LinuxServer-CI
487cac2b60
Bot Updating Templated Files 2025-02-14 19:22:30 +00:00
LinuxServer-CI
71a7f8d76a
Bot Updating Package Versions 2025-02-07 19:23:40 +00:00
LinuxServer-CI
87a7b4b67b
Bot Updating Package Versions 2025-01-31 19:33:28 +00:00
LinuxServer-CI
17abbacf96
Bot Updating Templated Files 2025-01-31 19:21:50 +00:00
LinuxServer-CI
44267d4ab1
Bot Updating Templated Files 2025-01-31 19:20:38 +00:00
quietsy
b1c904127a
Merge pull request #58 from linuxserver/add-project-categories
Add categories to readme-vars.yml
2025-01-22 22:11:10 +02:00
quietsy
3ba2a19704 Add categories to readme-vars.yml 2025-01-22 20:43:22 +02:00
LinuxServer-CI
95008730e4
Bot Updating Package Versions 2025-01-17 19:25:37 +00:00
LinuxServer-CI
e3730c1b46
Bot Updating Package Versions 2025-01-10 19:22:25 +00:00
LinuxServer-CI
cba8dba0e2
Bot Updating Package Versions 2025-01-03 19:22:21 +00:00
LinuxServer-CI
9147cb0738
Bot Updating Package Versions 2024-12-27 19:26:16 +00:00
LinuxServer-CI
89ba78f145
Bot Updating Package Versions 2024-12-20 19:30:31 +00:00
LinuxServer-CI
10b903a2e2
Bot Updating Templated Files 2024-12-20 19:25:34 +00:00
LinuxServer-CI
2a418998ca
Bot Updating Templated Files 2024-12-20 19:22:47 +00:00
LinuxServer-CI
3a8fe923ff
Bot Updating Package Versions 2024-12-13 19:24:29 +00:00
LinuxServer-CI
25efcf0cc5
Bot Updating Package Versions 2024-12-06 19:30:06 +00:00
LinuxServer-CI
fa29193222
Bot Updating Templated Files 2024-12-06 19:26:13 +00:00
LinuxServer-CI
b36bba60be
Bot Updating Templated Files 2024-12-06 19:24:30 +00:00
LinuxServer-CI
b8f410fc8d
Bot Updating Templated Files 2024-12-06 19:22:45 +00:00
LinuxServer-CI
b27af7ffbb
Bot Updating Package Versions 2024-11-29 19:25:58 +00:00
LinuxServer-CI
df17a78ad5
Bot Updating Package Versions 2024-11-15 19:27:50 +00:00
LinuxServer-CI
fe25f6d59e
Bot Updating Templated Files 2024-11-15 19:23:32 +00:00
LinuxServer-CI
1bbdc8b85f
Bot Updating Templated Files 2024-11-15 19:21:54 +00:00
LinuxServer-CI
591b576238
Bot Updating Package Versions 2024-11-08 19:22:51 +00:00
LinuxServer-CI
419c0f7a65
Bot Updating Package Versions 2024-11-01 19:24:47 +00:00
LinuxServer-CI
1b2650a9d6
Bot Updating Package Versions 2024-10-25 22:21:49 +00:00
LinuxServer-CI
1559076810
Bot Updating Package Versions 2024-10-25 19:23:12 +00:00
LinuxServer-CI
79ddd37d01
Bot Updating Package Versions 2024-10-18 19:21:13 +00:00
LinuxServer-CI
308ffa6332
Bot Updating Package Versions 2024-10-11 19:23:17 +00:00
LinuxServer-CI
52360d1b85
Bot Updating Package Versions 2024-10-04 19:26:47 +00:00
LinuxServer-CI
589f63f8ba
Bot Updating Templated Files 2024-10-04 19:23:18 +00:00
LinuxServer-CI
5b372fb35e
Bot Updating Templated Files 2024-09-27 19:25:06 +00:00
LinuxServer-CI
3797bf4291
Bot Updating Templated Files 2024-09-27 19:23:28 +00:00
LinuxServer-CI
79f6c5d648
Bot Updating Templated Files 2024-09-27 19:22:11 +00:00
LinuxServer-CI
b469142299
Bot Updating Package Versions 2024-09-20 19:24:54 +00:00
LinuxServer-CI
bb150e98b2
Bot Updating Package Versions 2024-09-13 19:23:52 +00:00
LinuxServer-CI
e2db8aa0e8
Bot Updating Package Versions 2024-09-06 19:23:18 +00:00
LinuxServer-CI
9273ff5d4a
Bot Updating Package Versions 2024-08-30 19:21:03 +00:00
LinuxServer-CI
7d3430a679
Bot Updating Package Versions 2024-08-23 19:25:43 +00:00
LinuxServer-CI
13d5b5cea1
Bot Updating Templated Files 2024-08-23 19:21:19 +00:00
LinuxServer-CI
b890e155e9 Bot Updating Templated Files 2024-08-23 19:19:56 +00:00
LinuxServer-CI
c9cbfd185e Bot Updating Package Versions 2024-08-16 19:24:18 +00:00
LinuxServer-CI
b550919318 Bot Updating Package Versions 2024-08-09 19:21:50 +00:00
LinuxServer-CI
c73cc56c90 Bot Updating Package Versions 2024-08-02 19:20:56 +00:00
LinuxServer-CI
7f03356f1e Bot Updating Package Versions 2024-07-26 19:22:17 +00:00
LinuxServer-CI
4b6efac4bd Bot Updating Package Versions 2024-07-20 15:00:44 +00:00
LinuxServer-CI
a438a35e31 Bot Updating Templated Files 2024-07-20 14:57:03 +00:00
Roxedus
47d8b35061
Merge pull request #53 from linuxserver/main-3.19-revert
Revert to 3.19 (main)
2024-07-20 16:55:37 +02:00
thespad
3ce515b55b
Revert to 3.19 2024-07-20 13:58:02 +01:00
LinuxServer-CI
ccccdf8f09 Bot Updating Package Versions 2024-07-19 19:23:22 +00:00
LinuxServer-CI
c4bd9257d8 Bot Updating Package Versions 2024-07-12 19:23:51 +00:00
LinuxServer-CI
37fac01b1c Bot Updating Templated Files 2024-07-12 19:20:28 +00:00
LinuxServer-CI
2829fe6dc4 Bot Updating Templated Files 2024-07-12 19:19:06 +00:00
LinuxServer-CI
f98aefdf61 Bot Updating Package Versions 2024-07-05 19:21:53 +00:00
LinuxServer-CI
9e1073e1f4 Bot Updating Package Versions 2024-06-28 09:27:48 +00:00
Roxedus
5ed8ab3c60
Merge pull request #51 from linuxserver/main-3.20 2024-06-28 11:22:27 +02:00
thespad
98008dd636
Rebase to 3.20 2024-06-27 16:13:04 +01:00
LinuxServer-CI
bcba689bbf Bot Updating Package Versions 2024-06-21 19:20:51 +00:00
LinuxServer-CI
ec38bc8a5c Bot Updating Package Versions 2024-06-14 19:22:01 +00:00
LinuxServer-CI
f6ccb8ef19 Bot Updating Package Versions 2024-06-07 19:22:16 +00:00
LinuxServer-CI
09af257152 Bot Updating Package Versions 2024-05-24 19:25:04 +00:00
LinuxServer-CI
4611a434da Bot Updating Templated Files 2024-05-24 19:20:41 +00:00
LinuxServer-CI
bee23a6016 Bot Updating Templated Files 2024-05-24 19:19:16 +00:00
LinuxServer-CI
96b9026541 Bot Updating Package Versions 2024-05-17 19:19:57 +00:00
LinuxServer-CI
a518fd5fb3 Bot Updating Package Versions 2024-05-10 19:25:18 +00:00
LinuxServer-CI
fcf0163413 Bot Updating Templated Files 2024-05-10 19:20:31 +00:00
LinuxServer-CI
42339f0bfa Bot Updating Package Versions 2024-05-03 19:21:57 +00:00
LinuxServer-CI
d5157f1c99 Bot Updating Templated Files 2024-05-03 19:18:11 +00:00
LinuxServer-CI
f971365d73 Bot Updating Package Versions 2024-04-26 22:22:47 +00:00
LinuxServer-CI
dad32e5a8b Bot Updating Package Versions 2024-04-26 19:19:54 +00:00
LinuxServer-CI
656e133eb5 Bot Updating Package Versions 2024-04-21 03:22:10 +00:00
LinuxServer-CI
89f60af311 Bot Updating Package Versions 2024-04-19 19:20:24 +00:00
LinuxServer-CI
b635de0c31 Bot Updating Package Versions 2024-04-12 19:19:47 +00:00
LinuxServer-CI
dbe4fc31de Bot Updating Package Versions 2024-04-05 19:20:17 +00:00
LinuxServer-CI
f827516f45 Bot Updating Package Versions 2024-03-29 19:19:20 +00:00
LinuxServer-CI
49cb1b7363 Bot Updating Package Versions 2024-03-22 19:25:25 +00:00
LinuxServer-CI
5c78b91ead Bot Updating Package Versions 2024-03-15 19:22:45 +00:00
LinuxServer-CI
c7755b565d Bot Updating Templated Files 2024-03-15 19:18:01 +00:00
LinuxServer-CI
14216bd63b Bot Updating Package Versions 2024-03-01 19:19:26 +00:00
LinuxServer-CI
8d574bbaff Bot Updating Package Versions 2024-02-29 01:13:26 +00:00
LinuxServer-CI
a2827085b1 Bot Updating Package Versions 2024-02-23 19:28:25 +00:00
LinuxServer-CI
5a8da70147 Bot Updating Templated Files 2024-02-23 19:23:43 +00:00
LinuxServer-CI
06311a99e0 Bot Updating Templated Files 2024-02-23 19:22:00 +00:00
LinuxServer-CI
cede98832f Bot Updating Package Versions 2024-02-16 19:19:41 +00:00
LinuxServer-CI
9879d35848 Bot Updating Package Versions 2024-02-10 21:17:48 +00:00
LinuxServer-CI
abd068fe06 Bot Updating Package Versions 2024-02-09 19:19:30 +00:00
LinuxServer-CI
7076d26456 Bot Updating Package Versions 2024-02-05 23:20:37 +00:00
LinuxServer-CI
7c073a7d3b Bot Updating Package Versions 2024-02-02 19:21:38 +00:00
LinuxServer-CI
b231ae040c Bot Updating Package Versions 2024-01-26 19:17:43 +00:00
LinuxServer-CI
c748b69402 Bot Updating Package Versions 2024-01-25 02:36:36 +00:00
LinuxServer-CI
e52cf2ecb4 Bot Updating Templated Files 2024-01-25 02:31:18 +00:00
Eric Nemchik
987793fa93
Merge pull request #44 from linuxserver/3.19
Rebase to Alpine 3.19
2024-01-24 20:29:10 -06:00
LinuxServer-CI
16ba362f77 Bot Updating Package Versions 2024-01-19 19:20:04 +00:00
LinuxServer-CI
9e5f372869 Bot Updating Package Versions 2024-01-18 01:19:31 +00:00
LinuxServer-CI
9a3b7ac395 Bot Updating Package Versions 2024-01-12 19:24:09 +00:00
LinuxServer-CI
999f8835f6 Bot Updating Templated Files 2024-01-12 19:20:25 +00:00
LinuxServer-CI
715b00a9c3 Bot Updating Templated Files 2024-01-12 19:18:35 +00:00
LinuxServer-CI
14eec4bffc Bot Updating Package Versions 2024-01-06 01:17:25 +00:00
LinuxServer-CI
d382c22f1c Bot Updating Package Versions 2024-01-05 19:21:10 +00:00
LinuxServer-CI
422f3e8fb1 Bot Updating Package Versions 2023-12-29 23:21:07 +00:00
Eric Nemchik
f1510cffc2
Rebase to Alpine 3.19
Signed-off-by: Eric Nemchik <eric@nemchik.com>
2023-12-23 18:10:55 -06:00
LinuxServer-CI
77513105f3 Bot Updating Package Versions 2023-12-22 19:18:26 +00:00
LinuxServer-CI
af09f70a49 Bot Updating Package Versions 2023-12-15 19:19:22 +00:00
LinuxServer-CI
d50bf12048 Bot Updating Package Versions 2023-12-08 19:20:55 +00:00
LinuxServer-CI
75768b54fb Bot Updating Package Versions 2023-12-01 19:22:35 +00:00
LinuxServer-CI
ab26c3b5f1 Bot Updating Package Versions 2023-11-21 22:19:33 +00:00
LinuxServer-CI
de26856e5e Bot Updating Package Versions 2023-11-17 19:22:21 +00:00
LinuxServer-CI
baea2216a5 Bot Updating Templated Files 2023-11-17 19:18:56 +00:00
LinuxServer-CI
f4628df32d Bot Updating Package Versions 2023-11-10 19:18:43 +00:00
LinuxServer-CI
5a31ee3068 Bot Updating Package Versions 2023-11-03 19:20:11 +00:00
LinuxServer-CI
9dc08f324e Bot Updating Package Versions 2023-10-27 19:16:50 +00:00
LinuxServer-CI
d7b359198b Bot Updating Package Versions 2023-10-17 22:19:44 +00:00
LinuxServer-CI
289dc16750 Bot Updating Package Versions 2023-10-10 03:41:10 +00:00
LinuxServer-CI
5996862554 Bot Updating Templated Files 2023-10-10 03:36:54 +00:00
LinuxServer-CI
1fccac8e8c Bot Updating Templated Files 2023-10-10 03:35:20 +00:00
aptalca
e48c1f29c3
Merge pull request #42 from linuxserver/lsio-unrar
install unrar from lsio repo
2023-10-09 23:33:46 -04:00
aptalca
9b5c69368d
install unrar from lsio repo 2023-10-08 15:57:07 -04:00
LinuxServer-CI
356d5dde8d Bot Updating Package Versions 2023-10-06 19:25:56 +00:00
LinuxServer-CI
b28dc6de57 Bot Updating Templated Files 2023-10-06 19:20:53 +00:00
LinuxServer-CI
266ec782c0 Bot Updating Templated Files 2023-10-06 19:18:19 +00:00
LinuxServer-CI
bf93b92dd0 Bot Updating Package Versions 2023-09-29 19:20:24 +00:00
LinuxServer-CI
a98d39ae4b Bot Updating Package Versions 2023-09-22 19:18:46 +00:00
LinuxServer-CI
734881d38c Bot Updating Package Versions 2023-09-15 19:18:20 +00:00
LinuxServer-CI
cf1e4b792e Bot Updating Package Versions 2023-09-08 19:18:09 +00:00
LinuxServer-CI
291f4ec429 Bot Updating Package Versions 2023-09-01 19:18:40 +00:00
LinuxServer-CI
b4349593e9 Bot Updating Package Versions 2023-08-25 19:18:07 +00:00
LinuxServer-CI
307a174be9 Bot Updating Package Versions 2023-08-19 23:18:57 +00:00
LinuxServer-CI
798119ed2f Bot Updating Package Versions 2023-08-18 19:20:44 +00:00
LinuxServer-CI
a4391d3fad Bot Updating Package Versions 2023-08-10 21:10:51 +00:00
LinuxServer-CI
8787b07d59 Bot Updating Templated Files 2023-08-10 21:06:32 +00:00
Adam
28e6ad531b
Merge pull request #38 from linuxserver/main-unrar 2023-08-10 22:04:19 +01:00
TheSpad
57c1115747
Bump unrar to 6.2.10 2023-08-10 17:53:43 +01:00
LinuxServer-CI
ff93af383a Bot Updating Package Versions 2023-08-04 19:20:38 +00:00
LinuxServer-CI
bcab078b4c Bot Updating Package Versions 2023-07-28 19:20:52 +00:00
LinuxServer-CI
51ec27fbb4 Bot Updating Package Versions 2023-07-21 19:20:24 +00:00
LinuxServer-CI
e9ccc78aa9 Bot Updating Package Versions 2023-07-14 19:22:51 +00:00
LinuxServer-CI
9b382d6654 Bot Updating Package Versions 2023-07-07 19:25:16 +00:00
LinuxServer-CI
ac3796c667 Bot Updating Templated Files 2023-07-07 19:19:11 +00:00
LinuxServer-CI
dc8b7b640e Bot Updating Package Versions 2023-06-30 19:22:42 +00:00
LinuxServer-CI
a3ff29f8ca Bot Updating Package Versions 2023-06-23 19:23:34 +00:00
LinuxServer-CI
4e67fe41a7 Bot Updating Package Versions 2023-06-19 09:23:53 +00:00
LinuxServer-CI
e6d83cbb17 Bot Updating Package Versions 2023-06-16 19:20:41 +00:00
LinuxServer-CI
3edebe1857 Bot Updating Package Versions 2023-06-09 19:18:40 +00:00
LinuxServer-CI
1497b8fbcf Bot Updating Package Versions 2023-06-07 12:48:33 +00:00
Adam
333cdfc0e1
Merge pull request #35 from linuxserver/main-port 2023-06-07 13:45:20 +01:00
TheSpad
dbb5153061
Support custom ports in readiness check 2023-06-07 13:21:41 +01:00
LinuxServer-CI
f21fdc7c5e Bot Updating Package Versions 2023-06-03 02:13:29 +00:00
aptalca
e2fb3160e3
Merge pull request #32 from linuxserver/unrar
switch to 7zip, add unrar
2023-06-02 22:08:21 -04:00
LinuxServer-CI
05e6c41b29 Bot Updating Package Versions 2023-06-02 19:19:38 +00:00
aptalca
c0b1c74a58
switch to 7zip in aarch64 2023-06-02 12:54:22 -04:00
aptalca
b0522d2794
switch to 7zip, add unrar 2023-06-01 15:53:04 -04:00
LinuxServer-CI
188b401f23 Bot Updating Package Versions 2023-05-28 00:23:16 +00:00
Eric Nemchik
834d23b77e
Merge pull request #29 from linuxserver/3.18
Rebase to Alpine 3.18, deprecate armhf
2023-05-27 19:18:10 -05:00
LinuxServer-CI
d5d6a9ecf1 Bot Updating Package Versions 2023-05-26 19:20:20 +00:00
Eric Nemchik
3c64384bc8
Rebase to Alpine 3.18, deprecate armhf 2023-05-26 11:30:27 -05:00
LinuxServer-CI
7440bf6625 Bot Updating Package Versions 2023-05-22 21:21:42 +00:00
LinuxServer-CI
0717bc9334 Bot Updating Templated Files 2023-05-22 21:16:25 +00:00
LinuxServer-CI
64a2e72564 Bot Updating Package Versions 2023-05-19 22:19:52 +00:00
LinuxServer-CI
2a81956404 Bot Updating Package Versions 2023-05-19 19:18:20 +00:00
LinuxServer-CI
97a11a3d0b Bot Updating Package Versions 2023-05-12 19:18:06 +00:00
LinuxServer-CI
c6bfb2be2e Bot Updating Package Versions 2023-05-05 19:18:40 +00:00
LinuxServer-CI
1bc72feeb1 Bot Updating Package Versions 2023-04-30 20:46:18 -05:00
LinuxServer-CI
12ff69a099 Bot Updating Package Versions 2023-04-28 22:18:52 +00:00
LinuxServer-CI
f57a9a0cc6 Bot Updating Package Versions 2023-04-28 19:18:28 +00:00
LinuxServer-CI
da7a58abf2 Bot Updating Package Versions 2023-04-28 17:21:28 +02:00
LinuxServer-CI
1e37eda6e9 Bot Updating Package Versions 2023-04-28 10:28:49 +00:00
LinuxServer-CI
1d4fe720f5 Bot Updating Package Versions 2023-04-28 10:25:12 +00:00
LinuxServer-CI
fc79982de0 Bot Updating Package Versions 2023-04-26 22:00:49 +00:00
LinuxServer-CI
82663542cb Bot Updating Templated Files 2023-04-26 21:57:12 +00:00
LinuxServer-CI
d411630f49 Bot Updating Templated Files 2023-04-26 21:56:11 +00:00
LinuxServer-CI
5e5ea62abc Bot Updating Package Versions 2023-04-24 00:05:05 +00:00
LinuxServer-CI
3b02e1c213 Bot Updating Package Versions 2023-04-21 14:19:47 -05:00
LinuxServer-CI
a8edc031fd Bot Updating Package Versions 2023-04-14 14:19:41 -05:00
LinuxServer-CI
db91d47028 Bot Updating Package Versions 2023-04-07 14:18:55 -05:00
24 changed files with 1402 additions and 820 deletions

0
.editorconfig Executable file → Normal file
View File

6
.github/CONTRIBUTING.md vendored Executable file → Normal file
View File

@ -6,7 +6,7 @@
* Read, and fill the Pull Request template * Read, and fill the Pull Request template
* If this is a fix for a typo (in code, documentation, or the README) please file an issue and let us sort it out. We do not need a PR * If this is a fix for a typo (in code, documentation, or the README) please file an issue and let us sort it out. We do not need a PR
* If the PR is addressing an existing issue include, closes #\<issue number>, in the body of the PR commit message * If the PR is addressing an existing issue include, closes #\<issue number>, in the body of the PR commit message
* If you want to discuss changes, you can also bring it up in [#dev-talk](https://discordapp.com/channels/354974912613449730/757585807061155840) in our [Discord server](https://discord.gg/YWrKVTn) * If you want to discuss changes, you can also bring it up in [#dev-talk](https://discordapp.com/channels/354974912613449730/757585807061155840) in our [Discord server](https://linuxserver.io/discord)
## Common files ## Common files
@ -105,10 +105,10 @@ docker build \
-t linuxserver/pyload-ng:latest . -t linuxserver/pyload-ng: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 ```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`. Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64`.

0
.github/FUNDING.yml vendored Executable file → Normal file
View File

2
.github/ISSUE_TEMPLATE/config.yml vendored Executable file → Normal file
View File

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

5
.github/ISSUE_TEMPLATE/issue.bug.yml vendored Executable file → Normal file
View File

@ -53,7 +53,6 @@ body:
options: options:
- x86-64 - x86-64
- arm64 - arm64
- armhf
validations: validations:
required: true required: true
- type: textarea - type: textarea
@ -68,10 +67,10 @@ body:
- type: textarea - type: textarea
attributes: attributes:
description: | description: |
Provide a full docker log, output of "docker logs linuxserver.io" Provide a full docker log, output of "docker logs pyload-ng"
label: Container logs label: Container logs
placeholder: | placeholder: |
Output of `docker logs linuxserver.io` Output of `docker logs pyload-ng`
render: bash render: bash
validations: validations:
required: true required: true

0
.github/ISSUE_TEMPLATE/issue.feature.yml vendored Executable file → Normal file
View File

0
.github/PULL_REQUEST_TEMPLATE.md vendored Executable file → Normal file
View File

9
.github/workflows/call_issue_pr_tracker.yml vendored Executable file → Normal file
View File

@ -2,9 +2,14 @@ name: Issue & PR Tracker
on: on:
issues: issues:
types: [opened,reopened,labeled,unlabeled] types: [opened,reopened,labeled,unlabeled,closed]
pull_request_target: pull_request_target:
types: [opened,reopened,review_requested,review_request_removed,labeled,unlabeled] types: [opened,reopened,review_requested,review_request_removed,labeled,unlabeled,closed]
pull_request_review:
types: [submitted,edited,dismissed]
permissions:
contents: read
jobs: jobs:
manage-project: manage-project:

3
.github/workflows/call_issues_cron.yml vendored Executable file → Normal file
View File

@ -4,6 +4,9 @@ on:
- cron: '23 14 * * *' - cron: '23 14 * * *'
workflow_dispatch: workflow_dispatch:
permissions:
contents: read
jobs: jobs:
stale: stale:
permissions: permissions:

137
.github/workflows/external_trigger.yml vendored Executable file → Normal file
View File

@ -3,24 +3,42 @@ name: External Trigger Main
on: on:
workflow_dispatch: workflow_dispatch:
permissions:
contents: read
jobs: jobs:
external-trigger-main: external-trigger-main:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3.1.0 - uses: actions/checkout@v4.1.1
- name: External Trigger - name: External Trigger
if: github.ref == 'refs/heads/main' if: github.ref == 'refs/heads/main'
env:
SKIP_EXTERNAL_TRIGGER: ${{ vars.SKIP_EXTERNAL_TRIGGER }}
run: | run: |
if [ -n "${{ secrets.PAUSE_EXTERNAL_TRIGGER_PYLOAD_NG_MAIN }}" ]; then printf "# External trigger for docker-pyload-ng\n\n" >> $GITHUB_STEP_SUMMARY
echo "**** Github secret PAUSE_EXTERNAL_TRIGGER_PYLOAD_NG_MAIN is set; skipping trigger. ****" if grep -q "^pyload-ng_main_" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`pyload-ng_main_\`; will skip trigger if version matches." >> $GITHUB_STEP_SUMMARY
elif grep -q "^pyload-ng_main" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`pyload-ng_main\`; skipping trigger." >> $GITHUB_STEP_SUMMARY
exit 0 exit 0
fi fi
echo "**** External trigger running off of main branch. To disable this trigger, set a Github secret named \"PAUSE_EXTERNAL_TRIGGER_PYLOAD_NG_MAIN\". ****" echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY
echo "**** Retrieving external version ****" echo "> External trigger running off of main branch. To disable this trigger, add \`pyload-ng_main\` 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 "https://pypi.python.org/pypi/pyload-ng/json" |jq -r '. | .info.version') EXT_RELEASE=$(curl -sL "https://pypi.python.org/pypi/pyload-ng/json" |jq -r '. | .info.version')
echo "Type is \`pip_version\`" >> $GITHUB_STEP_SUMMARY
if grep -q "^pyload-ng_main_${EXT_RELEASE}" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` matches current external release; skipping trigger." >> $GITHUB_STEP_SUMMARY
exit 0
fi
if [ -z "${EXT_RELEASE}" ] || [ "${EXT_RELEASE}" == "null" ]; then 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 pyload-ng branch main" FAILURE_REASON="Can't retrieve external version for pyload-ng branch main"
GHA_TRIGGER_URL="https://github.com/linuxserver/docker-pyload-ng/actions/runs/${{ github.run_id }}" GHA_TRIGGER_URL="https://github.com/linuxserver/docker-pyload-ng/actions/runs/${{ github.run_id }}"
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 16711680, curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 16711680,
@ -28,24 +46,43 @@ jobs:
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }} "username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
exit 1 exit 1
fi fi
EXT_RELEASE=$(echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g') EXT_RELEASE_SANITIZED=$(echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g')
echo "**** External version: ${EXT_RELEASE} ****" echo "Sanitized external version: \`${EXT_RELEASE_SANITIZED}\`" >> $GITHUB_STEP_SUMMARY
echo "**** Retrieving last pushed version ****" echo "Retrieving last pushed version" >> $GITHUB_STEP_SUMMARY
image="linuxserver/pyload-ng" image="linuxserver/pyload-ng"
tag="latest" tag="latest"
token=$(curl -sX GET \ token=$(curl -sX GET \
"https://ghcr.io/token?scope=repository%3Alinuxserver%2Fpyload-ng%3Apull" \ "https://ghcr.io/token?scope=repository%3Alinuxserver%2Fpyload-ng%3Apull" \
| jq -r '.token') | 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.docker.distribution.manifest.v2+json" \
--header "Accept: application/vnd.oci.image.manifest.v1+json" \
--header "Authorization: Bearer ${token}" \ --header "Authorization: Bearer ${token}" \
"https://ghcr.io/v2/${image}/manifests/${tag}" \ "https://ghcr.io/v2/${image}/manifests/${multidigest}"); then
| jq -r 'first(.manifests[].digest)') digest=$(jq -r '.config.digest' <<< "${digest}");
digest=$(curl -s \ fi
--header "Accept: application/vnd.docker.distribution.manifest.v2+json" \ fi
--header "Authorization: Bearer ${token}" \
"https://ghcr.io/v2/${image}/manifests/${multidigest}" \
| jq -r '.config.digest')
image_info=$(curl -sL \ image_info=$(curl -sL \
--header "Authorization: Bearer ${token}" \ --header "Authorization: Bearer ${token}" \
"https://ghcr.io/v2/${image}/blobs/${digest}") "https://ghcr.io/v2/${image}/blobs/${digest}")
@ -57,40 +94,54 @@ jobs:
IMAGE_RELEASE=$(echo ${image_info} | jq -r '.Labels.build_version' | awk '{print $3}') IMAGE_RELEASE=$(echo ${image_info} | jq -r '.Labels.build_version' | awk '{print $3}')
IMAGE_VERSION=$(echo ${IMAGE_RELEASE} | awk -F'-ls' '{print $1}') IMAGE_VERSION=$(echo ${IMAGE_RELEASE} | awk -F'-ls' '{print $1}')
if [ -z "${IMAGE_VERSION}" ]; then 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 pyload-ng tag latest" FAILURE_REASON="Can't retrieve last pushed version for pyload-ng tag latest"
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 16711680, curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 16711680,
"description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n"}], "description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }} "username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
exit 1 exit 1
fi fi
echo "**** Last pushed version: ${IMAGE_VERSION} ****" echo "Last pushed version: \`${IMAGE_VERSION}\`" >> $GITHUB_STEP_SUMMARY
if [ "${EXT_RELEASE}" == "${IMAGE_VERSION}" ]; then if [ "${EXT_RELEASE_SANITIZED}" == "${IMAGE_VERSION}" ]; then
echo "**** Version ${EXT_RELEASE} already pushed, exiting ****" echo "Sanitized version \`${EXT_RELEASE_SANITIZED}\` already pushed, exiting" >> $GITHUB_STEP_SUMMARY
exit 0 exit 0
elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-pyload-ng/job/main/lastBuild/api/json | jq -r '.building') == "true" ]; then elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-pyload-ng/job/main/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 exit 0
else else
echo "**** New version ${EXT_RELEASE} found; old version was ${IMAGE_VERSION}. Triggering new build ****" if [[ "${artifacts_found}" == "false" ]]; then
response=$(curl -iX POST \ echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-pyload-ng/job/main/buildWithParameters?PACKAGE_CHECK=false \ echo "> New version detected, but not all artifacts are published yet; skipping trigger" >> $GITHUB_STEP_SUMMARY
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|") FAILURE_REASON="New version ${EXT_RELEASE} for pyload-ng tag latest is detected, however not all artifacts are uploaded to upstream release yet. Will try again later."
echo "**** Jenkins job queue url: ${response%$'\r'} ****" curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903,
echo "**** Sleeping 10 seconds until job starts ****" "description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n"}],
sleep 10 "username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url') else
buildurl="${buildurl%$'\r'}" printf "\n## Trigger new build\n\n" >> $GITHUB_STEP_SUMMARY
echo "**** Jenkins job build url: ${buildurl} ****" echo "New sanitized version \`${EXT_RELEASE_SANITIZED}\` found; old version was \`${IMAGE_VERSION}\`. Triggering new build" >> $GITHUB_STEP_SUMMARY
echo "**** Attempting to change the Jenkins job description ****" if [[ "${artifacts_found}" == "true" ]]; then
curl -iX POST \ echo "All artifacts seem to be uploaded." >> $GITHUB_STEP_SUMMARY
"${buildurl}submitDescription" \ fi
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} \ response=$(curl -iX POST \
--data-urlencode "description=GHA external trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \ https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-pyload-ng/job/main/buildWithParameters?PACKAGE_CHECK=false \
--data-urlencode "Submit=Submit" --user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
echo "**** Notifying Discord ****" echo "Jenkins [job queue url](${response%$'\r'})" >> $GITHUB_STEP_SUMMARY
TRIGGER_REASON="A version change was detected for pyload-ng tag latest. Old version:${IMAGE_VERSION} New version:${EXT_RELEASE}" echo "Sleeping 10 seconds until job starts" >> $GITHUB_STEP_SUMMARY
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903, sleep 10
"description": "**Build Triggered** \n**Reason:** '"${TRIGGER_REASON}"' \n**Build URL:** '"${buildurl}display/redirect"' \n"}], buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url')
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }} 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 pyload-ng tag latest. Old version:${IMAGE_VERSION} New version:${EXT_RELEASE_SANITIZED}"
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 fi

37
.github/workflows/external_trigger_scheduler.yml vendored Executable file → Normal file
View File

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

6
.github/workflows/greetings.yml vendored Executable file → Normal file
View File

@ -2,8 +2,14 @@ name: Greetings
on: [pull_request_target, issues] on: [pull_request_target, issues]
permissions:
contents: read
jobs: jobs:
greeting: greeting:
permissions:
issues: write
pull-requests: write
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/first-interaction@v1 - uses: actions/first-interaction@v1

View File

@ -1,38 +0,0 @@
name: Package Trigger Main
on:
workflow_dispatch:
jobs:
package-trigger-main:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3.1.0
- name: Package Trigger
if: github.ref == 'refs/heads/main'
run: |
if [ -n "${{ secrets.PAUSE_PACKAGE_TRIGGER_PYLOAD_NG_MAIN }}" ]; then
echo "**** Github secret PAUSE_PACKAGE_TRIGGER_PYLOAD_NG_MAIN is set; skipping trigger. ****"
exit 0
fi
if [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-pyload-ng/job/main/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 main branch. To disable, set a Github secret named \"PAUSE_PACKAGE_TRIGGER_PYLOAD_NG_MAIN\". ****"
response=$(curl -iX POST \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-pyload-ng/job/main/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"

109
.github/workflows/package_trigger_scheduler.yml vendored Executable file → Normal file
View File

@ -5,46 +5,99 @@ on:
- cron: '9 19 * * 5' - cron: '9 19 * * 5'
workflow_dispatch: workflow_dispatch:
permissions:
contents: read
jobs: jobs:
package-trigger-scheduler: package-trigger-scheduler:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3.1.0 - uses: actions/checkout@v4.1.1
with: with:
fetch-depth: '0' fetch-depth: '0'
- name: Package Trigger Scheduler - name: Package Trigger Scheduler
env:
SKIP_PACKAGE_TRIGGER: ${{ vars.SKIP_PACKAGE_TRIGGER }}
run: | run: |
echo "**** Branches found: ****" printf "# Package trigger scheduler for docker-pyload-ng\n\n" >> $GITHUB_STEP_SUMMARY
git for-each-ref --format='%(refname:short)' refs/remotes printf "Found the branches:\n\n%s\n" "$(git for-each-ref --format='- %(refname:lstrip=3)' refs/remotes)" >> $GITHUB_STEP_SUMMARY
echo "**** Pulling the yq docker image ****" for br in $(git for-each-ref --format='%(refname:lstrip=3)' refs/remotes)
docker pull ghcr.io/linuxserver/yq
for br in $(git for-each-ref --format='%(refname:short)' refs/remotes)
do do
br=$(echo "$br" | sed 's|origin/||g') if [[ "${br}" == "HEAD" ]]; then
echo "**** Evaluating branch ${br} ****" printf "\nSkipping %s.\n" ${br} >> $GITHUB_STEP_SUMMARY
ls_branch=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-pyload-ng/${br}/jenkins-vars.yml \ continue
| docker run --rm -i --entrypoint yq ghcr.io/linuxserver/yq -r .ls_branch) fi
if [ "${br}" == "${ls_branch}" ]; then printf "\n## Evaluating \`%s\`\n\n" ${br} >> $GITHUB_STEP_SUMMARY
echo "**** Branch ${br} appears to be live; checking workflow. ****" JENKINS_VARS=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-pyload-ng/${br}/jenkins-vars.yml)
if curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-pyload-ng/${br}/.github/workflows/package_trigger.yml > /dev/null 2>&1; then if ! curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-pyload-ng/${br}/Jenkinsfile >/dev/null 2>&1; then
echo "**** Workflow exists. Triggering package trigger workflow for branch ${br}. ****" echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
triggered_branches="${triggered_branches}${br} " echo "> No Jenkinsfile found. Branch is either deprecated or is an early dev branch." >> $GITHUB_STEP_SUMMARY
curl -iX POST \ skipped_branches="${skipped_branches}${br} "
-H "Authorization: token ${{ secrets.CR_PAT }}" \ elif [[ "${br}" == $(yq -r '.ls_branch' <<< "${JENKINS_VARS}") ]]; then
-H "Accept: application/vnd.github.v3+json" \ echo "Branch appears to be live; checking workflow." >> $GITHUB_STEP_SUMMARY
-d "{\"ref\":\"refs/heads/${br}\"}" \ README_VARS=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-pyload-ng/${br}/readme-vars.yml)
https://api.github.com/repos/linuxserver/docker-pyload-ng/actions/workflows/package_trigger.yml/dispatches if [[ $(yq -r '.project_deprecation_status' <<< "${README_VARS}") == "true" ]]; then
sleep 30 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 "^pyload-ng_${br}" <<< "${SKIP_PACKAGE_TRIGGER}"; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_PACKAGE_TRIGGER\` contains \`pyload-ng_${br}\`; skipping trigger." >> $GITHUB_STEP_SUMMARY
skipped_branches="${skipped_branches}${br} "
elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-pyload-ng/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 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 \`pyload-ng_%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-pyload-ng/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 fi
else 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 fi
done done
echo "**** Package check build(s) triggered for branch(es): ${triggered_branches} ****" if [[ -n "${triggered_branches}" ]] || [[ -n "${skipped_branches}" ]]; then
echo "**** Notifying Discord ****" if [[ -n "${triggered_branches}" ]]; then
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903, NOTIFY_BRANCHES="**Triggered:** ${triggered_branches} \n"
"description": "**Package Check Build(s) Triggered for pyload-ng** \n**Branch(es):** '"${triggered_branches}"' \n**Build URL:** '"https://ci.linuxserver.io/blue/organizations/jenkins/Docker-Pipeline-Builders%2Fdocker-pyload-ng/activity/"' \n"}], NOTIFY_BUILD_URL="**Build URL:** https://ci.linuxserver.io/blue/organizations/jenkins/Docker-Pipeline-Builders%2Fdocker-pyload-ng/activity/ \n"
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }} 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 pyload-ng** \n'"${NOTIFY_BRANCHES}"''"${NOTIFY_BUILD_URL}"'"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
fi

2
.github/workflows/permissions.yml vendored Executable file → Normal file
View File

@ -5,6 +5,8 @@ on:
- '**/run' - '**/run'
- '**/finish' - '**/finish'
- '**/check' - '**/check'
- 'root/migrations/*'
jobs: jobs:
permission_check: permission_check:
uses: linuxserver/github-workflows/.github/workflows/init-svc-executable-permissions.yml@v1 uses: linuxserver/github-workflows/.github/workflows/init-svc-executable-permissions.yml@v1

View File

@ -1,6 +1,8 @@
# syntax=docker/dockerfile:1 # syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-alpine:3.17 FROM ghcr.io/linuxserver/unrar:latest AS unrar
FROM ghcr.io/linuxserver/baseimage-alpine:3.22
# set version label # set version label
ARG BUILD_DATE ARG BUILD_DATE
@ -25,8 +27,10 @@ RUN \
echo "**** install packages ****" && \ echo "**** install packages ****" && \
apk add --no-cache \ apk add --no-cache \
ffmpeg \ ffmpeg \
gcompat \
libatomic \
libjpeg-turbo \ libjpeg-turbo \
p7zip \ 7zip \
python3 \ python3 \
sqlite \ sqlite \
tesseract-ocr && \ tesseract-ocr && \
@ -34,12 +38,13 @@ RUN \
if [ -z ${PYLOAD_VERSION+x} ]; then \ if [ -z ${PYLOAD_VERSION+x} ]; then \
PYLOAD_VERSION=$(curl -sL https://pypi.python.org/pypi/pyload-ng/json |jq -r '. | .info.version'); \ PYLOAD_VERSION=$(curl -sL https://pypi.python.org/pypi/pyload-ng/json |jq -r '. | .info.version'); \
fi && \ fi && \
python3 -m ensurepip && \ python3 -m venv /lsiopy && \
pip3 install -U --no-cache-dir \ pip install -U --no-cache-dir \
pip \ pip \
wheel && \ wheel && \
pip3 install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/alpine-3.17/ \ pip install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/alpine-3.22/ \
pyload-ng[all]=="${PYLOAD_VERSION}" && \ pyload-ng[all]=="${PYLOAD_VERSION}" && \
printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \
echo "**** cleanup ****" && \ echo "**** cleanup ****" && \
apk del --purge \ apk del --purge \
build-dependencies && \ build-dependencies && \
@ -51,6 +56,9 @@ RUN \
# add local files # add local files
COPY root/ / COPY root/ /
# add unrar
COPY --from=unrar /usr/bin/unrar-alpine /usr/bin/unrar
# ports and volumes # ports and volumes
EXPOSE 8000 EXPOSE 8000
VOLUME /config VOLUME /config

View File

@ -1,6 +1,8 @@
# syntax=docker/dockerfile:1 # syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.17 FROM ghcr.io/linuxserver/unrar:arm64v8-latest AS unrar
FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.22
# set version label # set version label
ARG BUILD_DATE ARG BUILD_DATE
@ -25,8 +27,10 @@ RUN \
echo "**** install packages ****" && \ echo "**** install packages ****" && \
apk add --no-cache \ apk add --no-cache \
ffmpeg \ ffmpeg \
gcompat \
libatomic \
libjpeg-turbo \ libjpeg-turbo \
p7zip \ 7zip \
python3 \ python3 \
sqlite \ sqlite \
tesseract-ocr && \ tesseract-ocr && \
@ -34,12 +38,13 @@ RUN \
if [ -z ${PYLOAD_VERSION+x} ]; then \ if [ -z ${PYLOAD_VERSION+x} ]; then \
PYLOAD_VERSION=$(curl -sL https://pypi.python.org/pypi/pyload-ng/json |jq -r '. | .info.version'); \ PYLOAD_VERSION=$(curl -sL https://pypi.python.org/pypi/pyload-ng/json |jq -r '. | .info.version'); \
fi && \ fi && \
python3 -m ensurepip && \ python3 -m venv /lsiopy && \
pip3 install -U --no-cache-dir \ pip install -U --no-cache-dir \
pip \ pip \
wheel && \ wheel && \
pip3 install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/alpine-3.17/ \ pip install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/alpine-3.22/ \
pyload-ng[all]=="${PYLOAD_VERSION}" && \ pyload-ng[all]=="${PYLOAD_VERSION}" && \
printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \
echo "**** cleanup ****" && \ echo "**** cleanup ****" && \
apk del --purge \ apk del --purge \
build-dependencies && \ build-dependencies && \
@ -51,6 +56,9 @@ RUN \
# add local files # add local files
COPY root/ / COPY root/ /
# add unrar
COPY --from=unrar /usr/bin/unrar-alpine /usr/bin/unrar
# ports and volumes # ports and volumes
EXPOSE 8000 EXPOSE 8000
VOLUME /config VOLUME /config

View File

@ -1,56 +0,0 @@
# syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-alpine:arm32v7-3.17
# set version label
ARG BUILD_DATE
ARG VERSION
ARG PYLOAD_VERSION
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
LABEL maintainer="aptalca"
ENV HOME="/config"
RUN \
echo "**** install build packages ****" && \
apk add --no-cache --virtual=build-dependencies \
build-base \
cargo \
curl-dev \
libffi-dev \
libjpeg-turbo-dev \
openssl-dev \
python3-dev \
zlib-dev && \
echo "**** install packages ****" && \
apk add --no-cache \
ffmpeg \
libjpeg-turbo \
p7zip \
python3 \
sqlite \
tesseract-ocr && \
echo "**** install pyload ****" && \
if [ -z ${PYLOAD_VERSION+x} ]; then \
PYLOAD_VERSION=$(curl -sL https://pypi.python.org/pypi/pyload-ng/json |jq -r '. | .info.version'); \
fi && \
python3 -m ensurepip && \
pip3 install -U --no-cache-dir \
pip \
wheel && \
pip3 install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/alpine-3.17/ \
pyload-ng[all]=="${PYLOAD_VERSION}" && \
echo "**** cleanup ****" && \
apk del --purge \
build-dependencies && \
rm -rf \
/tmp/* \
${HOME}/.cache \
${HOME}/.cargo
# add local files
COPY root/ /
# ports and volumes
EXPOSE 8000
VOLUME /config

964
Jenkinsfile vendored

File diff suppressed because it is too large Load Diff

177
README.md
View File

@ -1,12 +1,10 @@
<!-- DO NOT EDIT THIS FILE MANUALLY --> <!-- DO NOT EDIT THIS FILE MANUALLY -->
<!-- Please read the https://github.com/linuxserver/docker-pyload-ng/blob/main/.github/CONTRIBUTING.md --> <!-- Please read https://github.com/linuxserver/docker-pyload-ng/blob/main/.github/CONTRIBUTING.md -->
[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)](https://linuxserver.io) [![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)](https://linuxserver.io)
[![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!") [![Blog](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Blog)](https://blog.linuxserver.io "all the things you can do with our containers including How-To guides, opinions and much more!")
[![Discord](https://img.shields.io/discord/354974912613449730.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Discord&logo=discord)](https://discord.gg/YWrKVTn "realtime support / chat with the community and the team.") [![Discord](https://img.shields.io/discord/354974912613449730.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Discord&logo=discord)](https://linuxserver.io/discord "realtime support / chat with the community and the team.")
[![Discourse](https://img.shields.io/discourse/https/discourse.linuxserver.io/topics.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=discourse)](https://discourse.linuxserver.io "post on our community forum.") [![Discourse](https://img.shields.io/discourse/https/discourse.linuxserver.io/topics.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=discourse)](https://discourse.linuxserver.io "post on our community forum.")
[![Fleet](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Fleet)](https://fleet.linuxserver.io "an online web interface which displays all of our maintained images.")
[![GitHub](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitHub&logo=github)](https://github.com/linuxserver "view the source for all of our repositories.") [![GitHub](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitHub&logo=github)](https://github.com/linuxserver "view the source for all of our repositories.")
[![Open Collective](https://img.shields.io/opencollective/all/linuxserver.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Supporters&logo=open%20collective)](https://opencollective.com/linuxserver "please consider helping us by either donating or contributing to our budget") [![Open Collective](https://img.shields.io/opencollective/all/linuxserver.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Supporters&logo=open%20collective)](https://opencollective.com/linuxserver "please consider helping us by either donating or contributing to our budget")
@ -21,15 +19,14 @@ The [LinuxServer.io](https://linuxserver.io) team brings you another container r
Find us at: Find us at:
* [Blog](https://blog.linuxserver.io) - all the things you can do with our containers including How-To guides, opinions and much more! * [Blog](https://blog.linuxserver.io) - all the things you can do with our containers including How-To guides, opinions and much more!
* [Discord](https://discord.gg/YWrKVTn) - realtime support / chat with the community and the team. * [Discord](https://linuxserver.io/discord) - realtime support / chat with the community and the team.
* [Discourse](https://discourse.linuxserver.io) - post on our community forum. * [Discourse](https://discourse.linuxserver.io) - post on our community forum.
* [Fleet](https://fleet.linuxserver.io) - an online web interface which displays all of our maintained images.
* [GitHub](https://github.com/linuxserver) - view the source for all of our repositories. * [GitHub](https://github.com/linuxserver) - view the source for all of our repositories.
* [Open Collective](https://opencollective.com/linuxserver) - please consider helping us by either donating or contributing to our budget * [Open Collective](https://opencollective.com/linuxserver) - please consider helping us by either donating or contributing to our budget
# [linuxserver/pyload-ng](https://github.com/linuxserver/docker-pyload-ng) # [linuxserver/pyload-ng](https://github.com/linuxserver/docker-pyload-ng)
[![Scarf.io pulls](https://scarf.sh/installs-badge/linuxserver-ci/linuxserver%2Fpyload-ng?color=94398d&label-color=555555&logo-color=ffffff&style=for-the-badge&package-type=docker)](https://scarf.sh/gateway/linuxserver-ci/docker/linuxserver%2Fpyload-ng) [![Scarf.io pulls](https://scarf.sh/installs-badge/linuxserver-ci/linuxserver%2Fpyload-ng?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-pyload-ng.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-pyload-ng) [![GitHub Stars](https://img.shields.io/github/stars/linuxserver/docker-pyload-ng.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-pyload-ng)
[![GitHub Release](https://img.shields.io/github/release/linuxserver/docker-pyload-ng.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-pyload-ng/releases) [![GitHub Release](https://img.shields.io/github/release/linuxserver/docker-pyload-ng.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-pyload-ng/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-pyload-ng/packages) [![GitHub Package Repository](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitHub%20Package&logo=github)](https://github.com/linuxserver/docker-pyload-ng/packages)
@ -42,11 +39,11 @@ Find us at:
[pyLoad](https://pyload.net/) is a Free and Open Source download manager written in Python and designed to be extremely lightweight, easily extensible and fully manageable via web. [pyLoad](https://pyload.net/) is a Free and Open Source download manager written in Python and designed to be extremely lightweight, easily extensible and fully manageable via web.
[![pyload-ng](https://pyload.net/img/banner.png)](https://pyload.net/) [![pyload-ng](https://github.com/linuxserver/docker-templates/raw/master/linuxserver.io/img/pyload-logo.png)](https://pyload.net/)
## Supported Architectures ## Supported Architectures
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/pyload-ng:latest` should retrieve the correct image for your arch, but you can also pull specific arch images via tags. Simply pulling `lscr.io/linuxserver/pyload-ng:latest` should retrieve the correct image for your arch, but you can also pull specific arch images via tags.
@ -56,7 +53,6 @@ The architectures supported by this image are:
| :----: | :----: | ---- | | :----: | :----: | ---- |
| x86-64 | ✅ | amd64-\<version tag\> | | x86-64 | ✅ | amd64-\<version tag\> |
| arm64 | ✅ | arm64v8-\<version tag\> | | arm64 | ✅ | arm64v8-\<version tag\> |
| armhf | ✅ | arm32v7-\<version tag\> |
## Version Tags ## Version Tags
@ -66,6 +62,7 @@ This image provides various versions that are available via tags. Please read th
| :----: | :----: |--- | | :----: | :----: |--- |
| latest | ✅ | Stable releases from pyLoad Next | | latest | ✅ | Stable releases from pyLoad Next |
| develop | ✅ | Releases from pyload Next develop branch | | develop | ✅ | Releases from pyload Next develop branch |
## Application Setup ## Application Setup
Access the web interface at `http://your-ip:8000` the default login is: Access the web interface at `http://your-ip:8000` the default login is:
@ -76,13 +73,15 @@ For general usage please see the pyLoad wiki [here](https://github.com/pyload/py
## Usage ## 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 flagged 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)) ### docker-compose (recommended, [click here for more info](https://docs.linuxserver.io/general/docker-compose))
```yaml ```yaml
--- ---
version: "2.1"
services: services:
pyload-ng: pyload-ng:
image: lscr.io/linuxserver/pyload-ng:latest image: lscr.io/linuxserver/pyload-ng:latest
@ -92,7 +91,7 @@ services:
- PGID=1000 - PGID=1000
- TZ=Etc/UTC - TZ=Etc/UTC
volumes: volumes:
- /path/to/appdata/config:/config - /path/to/pyload-ng/config:/config
- /path/to/downloads:/downloads - /path/to/downloads:/downloads
ports: ports:
- 8000:8000 - 8000:8000
@ -110,25 +109,24 @@ docker run -d \
-e TZ=Etc/UTC \ -e TZ=Etc/UTC \
-p 8000:8000 \ -p 8000:8000 \
-p 9666:9666 `#optional` \ -p 9666:9666 `#optional` \
-v /path/to/appdata/config:/config \ -v /path/to/pyload-ng/config:/config \
-v /path/to/downloads:/downloads \ -v /path/to/downloads:/downloads \
--restart unless-stopped \ --restart unless-stopped \
lscr.io/linuxserver/pyload-ng:latest lscr.io/linuxserver/pyload-ng:latest
``` ```
## Parameters ## 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 | | Parameter | Function |
| :----: | --- | | :----: | --- |
| `-p 8000` | Allows HTTP access to the application | | `-p 8000:8000` | Allows HTTP access to the application |
| `-p 9666` | Click'n'Load port. | | `-p 9666` | Click'n'Load port. |
| `-e PUID=1000` | for UserID - see below for explanation | | `-e PUID=1000` | for UserID - see below for explanation |
| `-e PGID=1000` | for GroupID - see below for explanation | | `-e PGID=1000` | for GroupID - see below for explanation |
| `-e TZ=Etc/UTC` | specify a timezone to use, see this [list](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). | | `-e TZ=Etc/UTC` | specify a timezone to use, see this [list](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). |
| `-v /config` | pyLoad Configuration and files database | | `-v /config` | Persistent config files |
| `-v /downloads` | Destination of pyLoad downloads | | `-v /downloads` | Destination of pyLoad downloads |
## Environment variables from files (Docker secrets) ## Environment variables from files (Docker secrets)
@ -138,10 +136,10 @@ You can set any environment variable from a file by using a special prepend `FIL
As an example: As an example:
```bash ```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 ## Umask for running applications
@ -150,15 +148,20 @@ Keep in mind umask is not chmod it subtracts from permissions based on it's valu
## User / Group Identifiers ## 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. 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 ```bash
$ id username id your_user
uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) ```
Example output:
```text
uid=1000(your_user) gid=1000(your_user) groups=1000(your_user)
``` ```
## Docker Mods ## Docker Mods
@ -169,53 +172,101 @@ We publish various [Docker Mods](https://github.com/linuxserver/docker-mods) to
## Support Info ## Support Info
* Shell access whilst the container is running: `docker exec -it pyload-ng /bin/bash` * Shell access whilst the container is running:
* To monitor the logs of the container in realtime: `docker logs -f pyload-ng`
* container version number ```bash
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' pyload-ng` docker exec -it pyload-ng /bin/bash
* image version number ```
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/pyload-ng:latest`
* To monitor the logs of the container in realtime:
```bash
docker logs -f pyload-ng
```
* Container version number:
```bash
docker inspect -f '{{ index .Config.Labels "build_version" }}' pyload-ng
```
* Image version number:
```bash
docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/pyload-ng:latest
```
## Updating Info ## 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: Below are the instructions for updating containers:
### Via Docker Compose ### Via Docker Compose
* Update all images: `docker-compose pull` * Update images:
* or update a single image: `docker-compose pull pyload-ng` * All images:
* Let compose update all containers as necessary: `docker-compose up -d`
* or update a single container: `docker-compose up -d pyload-ng` ```bash
* You can also remove the old dangling images: `docker image prune` docker-compose pull
```
* Single image:
```bash
docker-compose pull pyload-ng
```
* Update containers:
* All containers:
```bash
docker-compose up -d
```
* Single container:
```bash
docker-compose up -d pyload-ng
```
* You can also remove the old dangling images:
```bash
docker image prune
```
### Via Docker Run ### Via Docker Run
* Update the image: `docker pull lscr.io/linuxserver/pyload-ng:latest` * Update the image:
* Stop the running container: `docker stop pyload-ng`
* Delete the container: `docker rm pyload-ng` ```bash
docker pull lscr.io/linuxserver/pyload-ng:latest
```
* Stop the running container:
```bash
docker stop pyload-ng
```
* Delete the container:
```bash
docker rm pyload-ng
```
* 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) * 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) ```bash
docker image prune
* 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 pyload-ng
```
* 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).
### Image Update Notifications - Diun (Docker Image Update Notifier) ### Image Update Notifications - Diun (Docker Image Update Notifier)
* We recommend [Diun](https://crazymax.dev/diun/) for update notifications. Other tools that automatically update containers unattended are not recommended or supported. >[!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 ## Building locally
@ -230,16 +281,26 @@ docker build \
-t lscr.io/linuxserver/pyload-ng:latest . -t lscr.io/linuxserver/pyload-ng: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 ```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`. Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64`.
## Versions ## Versions
* **09.01.26:** - Add gcompat for mini-racer.
* **01.09.25:** - Add new dep, libatomic.
* **09.06.25:** - Rebase to Alpine 3.22.
* **20.07.24:** - Revert to Alpine 3.19 due to inconsistent upstream addon support for Python 3.12.
* **27.06.24:** - Rebase to Alpine 3.20.
* **23.12.23:** - Rebase to Alpine 3.19.
* **08.10.23:** - Install unrar from [linuxserver repo](https://github.com/linuxserver/docker-unrar).
* **10.08.23:** - Bump unrar to 6.2.10.
* **01.06.23:** - Replace p7zip with 7zip, add unrar.
* **25.05.23:** - Rebase to Alpine 3.18, deprecate armhf.
* **02.02.22:** - Rebase master to alpine 3.17. * **02.02.22:** - Rebase master to alpine 3.17.
* **02.02.22:** - Add ffmpeg for the Youtube plugin. * **02.02.22:** - Add ffmpeg for the Youtube plugin.
* **24.01.22:** - Replace unrar with p7zip. * **24.01.22:** - Replace unrar with p7zip.

View File

@ -22,8 +22,8 @@ repo_vars:
- CI_PORT='8000' - CI_PORT='8000'
- CI_SSL='false' - CI_SSL='false'
- CI_DELAY='120' - CI_DELAY='120'
- CI_DOCKERENV='TZ=US/Pacific' - CI_DOCKERENV=''
- CI_AUTH='user:password' - CI_AUTH=''
- CI_WEBPATH='' - CI_WEBPATH=''
sponsor_links: sponsor_links:
- { name: "pyLoad", url: "https://PayPal.Me/nitzo2001/0usd" } - { name: "pyLoad", url: "https://PayPal.Me/nitzo2001/0usd" }

View File

@ -1,184 +1,347 @@
NAME VERSION TYPE NAME VERSION TYPE
Babel 2.12.1 python 7zip 24.09-r0 apk
Brotli 1.0.9 python Simple Launcher 1.1.0.14 binary (+5 duplicates)
Flask 2.2.3 python acl-libs 2.3.2-r1 apk
Flask-Babel 1.0.0 python aia-chaser 3.4.0 python
Flask-Caching 1.11.1 python aiodns 4.0.0 python
Flask-Compress 1.13 python alpine-baselayout 3.7.0-r0 apk
Flask-Session 0.4.0 python alpine-baselayout-data 3.7.0-r0 apk
Flask-Themes2 1.0.0 python alpine-keys 2.5-r0 apk
Jinja2 3.0.3 python alpine-release 3.22.3-r0 apk
Js2Py 0.74 python alsa-lib 1.2.14-r0 apk
MarkupSafe 2.1.2 python annotated-types 0.7.0 python
Pillow 9.5.0 python anstream 0.6.8 rust-crate
Send2Trash 1.8.0 python anstyle 1.0.4 rust-crate
Werkzeug 2.2.3 python anstyle-parse 0.2.3 rust-crate
aiodns 3.0.0 python anstyle-query 1.0.2 rust-crate
alpine-baselayout 3.4.0-r0 apk anyhow 1.0.79 rust-crate
alpine-baselayout-data 3.4.0-r0 apk anyhow 1.0.98 rust-crate
alpine-keys 2.4-r1 apk aom-libs 3.12.1-r0 apk
alpine-release 3.17.3-r0 apk apk-tools 2.14.9-r3 apk
alsa-lib 1.2.8-r0 apk arg_enum_proc_macro 0.3.4 rust-crate
aom-libs 3.5.0-r0 apk arrayvec 0.7.4 rust-crate
apk-tools 2.12.10-r1 apk autocommand 2.2.2 python
bash 5.2.15-r0 apk av-metrics 0.9.1 rust-crate
beautifulsoup4 4.12.0 python av1-grain 0.2.3 rust-crate
bitmath 1.3.3.1 python babel 2.18.0 python
brotli-libs 1.0.9-r9 apk backports-tarfile 1.2.0 python
busybox 1.35.0 binary backports-zstd 1.3.0 python
busybox 1.35.0-r29 apk bash 5.2.37-r0 apk
busybox-binsh 1.35.0-r29 apk beautifulsoup4 4.14.3 python
ca-certificates 20220614-r4 apk bitflags 2.4.1 rust-crate
ca-certificates-bundle 20220614-r4 apk bitmath 1.3.3.1 python
cachelib 0.10.2 python bitstream-io 2.2.0 rust-crate
cairo 1.17.6-r3 apk bitstream-io 2.6.0 rust-crate
certifi 2022.12.7 python bitvec 1.0.1 rust-crate
cffi 1.15.1 python bitvec_helpers 3.1.6 rust-crate
cheroot 8.6.0 python blinker 1.9.0 python
cjson 1.7.15-r3 apk brotli 1.2.0 python
click 8.1.3 python brotli-libs 1.1.0-r2 apk
colorlog 6.7.0 python busybox 1.37.0-r20 apk
coreutils 9.1-r0 apk busybox-binsh 1.37.0-r20 apk
cryptography 40.0.1 python c-ares 1.34.6-r0 apk
curl 7.88.1-r1 apk ca-certificates 20250911-r0 apk
dbus-libs 1.14.4-r0 apk ca-certificates-bundle 20250911-r0 apk
ffmpeg 5.1.3-r0 apk cachelib 0.13.0 python
ffmpeg-libs 5.1.3-r0 apk cairo 1.18.4-r0 apk
filetype 1.2.0 python catatonit 0.2.1-r0 apk
flac-libs 1.4.2-r0 apk certifi 2026.2.25 python
fontconfig 2.14.1-r0 apk cffi 2.0.0 python
freetype 2.12.1-r0 apk cfg-if 1.0.0 rust-crate
fribidi 1.0.12-r0 apk cheroot 11.1.2 python
gdbm 1.23-r0 apk cjson 1.7.19-r0 apk
giflib 5.2.1-r2 apk clap 4.4.14 rust-crate
glib 2.74.6-r0 apk clap_builder 4.4.14 rust-crate
gmp 6.2.1-r2 apk clap_complete 4.4.6 rust-crate
gnutls 3.7.8-r3 apk clap_derive 4.4.7 rust-crate
graphite2 1.3.14-r2 apk clap_lex 0.6.0 rust-crate
harfbuzz 5.3.1-r1 apk cli UNKNOWN binary
hwdata-pci 0.364-r0 apk cli-32 UNKNOWN binary
icu-data-en 72.1-r1 apk cli-64 UNKNOWN binary
icu-libs 72.1-r1 apk cli-arm64 UNKNOWN binary
itsdangerous 2.1.2 python click 8.3.1 python
jaraco.functools 3.6.0 python colorchoice 1.0.0 rust-crate
jq 1.6-r2 apk colorlog 6.10.1 python
lame 3.100-r2 apk console 0.15.8 rust-crate
leptonica 1.82.0-r1 apk coreutils 9.7-r1 apk
libacl 2.3.1-r1 apk coreutils-env 9.7-r1 apk
libass 0.16.0-r1 apk coreutils-fmt 9.7-r1 apk
libasyncns 0.8-r1 apk coreutils-sha512sum 9.7-r1 apk
libattr 2.5.1-r2 apk crc 3.3.0 rust-crate
libblkid 2.38.1-r1 apk crc-catalog 2.4.0 rust-crate
libbsd 0.11.7-r0 apk crossbeam 0.8.4 rust-crate
libbz2 1.0.8-r4 apk crossbeam-channel 0.5.14 rust-crate
libc-utils 0.7.2-r3 apk crossbeam-deque 0.8.5 rust-crate
libcrypto3 3.0.8-r3 apk crossbeam-epoch 0.9.18 rust-crate
libcurl 7.88.1-r1 apk crossbeam-queue 0.3.11 rust-crate
libdav1d 1.0.0-r2 apk crossbeam-utils 0.8.19 rust-crate
libdrm 2.4.114-r0 apk cryptography 46.0.5 python
libexpat 2.5.0-r0 apk curl 8.14.1-r2 apk
libffi 3.4.4-r0 apk dbus-libs 1.16.2-r1 apk
libgcc 12.2.1_git20220924-r4 apk defusedxml 0.7.1 python
libgomp 12.2.1_git20220924-r4 apk dolby_vision 3.3.1 rust-crate
libintl 0.21.1-r1 apk either 1.9.0 rust-crate
libjpeg-turbo 2.1.4-r0 apk errno 0.3.8 rust-crate
libltdl 2.4.7-r1 apk fern 0.6.2 rust-crate
libmd 1.0.4-r0 apk ffmpeg 6.1.2-r2 apk
libmount 2.38.1-r1 apk ffmpeg-libavcodec 6.1.2-r2 apk
libogg 1.3.5-r2 apk ffmpeg-libavdevice 6.1.2-r2 apk
libpciaccess 0.17-r0 apk ffmpeg-libavfilter 6.1.2-r2 apk
libpng 1.6.38-r0 apk ffmpeg-libavformat 6.1.2-r2 apk
libproc 3.3.17-r2 apk ffmpeg-libavutil 6.1.2-r2 apk
libpulse 16.1-r6 apk ffmpeg-libpostproc 6.1.2-r2 apk
librist 0.2.7-r0 apk ffmpeg-libswresample 6.1.2-r2 apk
libsndfile 1.1.0-r2 apk ffmpeg-libswscale 6.1.2-r2 apk
libsodium 1.0.18-r2 apk filetype 1.2.0 python
libsrt 1.5.1-r0 apk findutils 4.10.0-r0 apk
libssh 0.10.4-r0 apk flask 3.1.3 python
libssl3 3.0.8-r3 apk flask-babel 4.0.0 python
libstdc++ 12.2.1_git20220924-r4 apk flask-caching 1.11.1 python
libtasn1 4.19.0-r0 apk flask-compress 1.23 python
libtheora 1.1.1-r16 apk flask-session 0.8.0 python
libunistring 1.1-r0 apk flask-themes2 1.0.1 python
libva 2.16.0-r0 apk flask-wtf 1.2.2 python
libvdpau 1.5-r0 apk fontconfig 2.15.0-r3 apk
libvorbis 1.3.7-r0 apk freetype 2.13.3-r0 apk
libvpx 1.12.0-r1 apk fribidi 1.0.16-r1 apk
libwebp 1.2.4-r1 apk funty 2.0.0 rust-crate
libx11 1.8.4-r0 apk gcompat 1.1.0-r4 apk
libxau 1.0.10-r0 apk gdbm 1.24-r0 apk
libxcb 1.15-r0 apk getrandom 0.2.12 rust-crate
libxdmcp 1.1.4-r0 apk giflib 5.2.2-r1 apk
libxext 1.3.5-r0 apk glib 2.84.4-r0 apk
libxfixes 6.0.0-r0 apk glslang-libs 1.4.309.0-r0 apk
libxft 2.3.7-r0 apk graphite2 1.3.14-r6 apk
libxrender 0.9.11-r0 apk gui UNKNOWN binary
libzmq 4.3.4-r1 apk gui-32 UNKNOWN binary
linux-pam 1.5.2-r1 apk gui-64 UNKNOWN binary
mbedtls 2.28.3-r0 apk gui-arm64 UNKNOWN binary
more-itertools 9.1.0 python harfbuzz 11.2.1-r0 apk
mpdecimal 2.5.1-r1 apk heck 0.4.1 rust-crate
musl 1.2.3-r4 apk hwdata-pci 0.395-r0 apk
musl-utils 1.2.3-r4 apk icu-data-en 76.1-r1 apk
ncurses-libs 6.3_p20221119-r0 apk icu-libs 76.1-r1 apk
ncurses-terminfo-base 6.3_p20221119-r0 apk imath 3.1.12-r0 apk
netcat-openbsd 1.130-r4 apk importlib-metadata 8.7.1 python
nettle 3.8.1-r0 apk interpolate_name 0.2.4 rust-crate
nghttp2-libs 1.51.0-r0 apk itertools 0.10.5 rust-crate
numactl 2.0.16-r1 apk itertools 0.12.0 rust-crate
oniguruma 6.9.8-r0 apk itsdangerous 2.2.0 python
opus 1.3.1-r1 apk ivf 0.1.3 rust-crate
orc 0.4.33-r0 apk jaraco-context 6.1.0 python
p11-kit 0.24.1-r1 apk jaraco-functools 4.4.0 python (+1 duplicate)
p7zip 17.04-r3 apk jaraco-text 4.0.0 python
pango 1.50.13-r0 apk jinja2 3.1.6 python
pcre2 10.42-r0 apk jq 1.8.1-r0 apk
pip 23.0.1 python lab 0.11.0 rust-crate
pixman 0.42.2-r0 apk lame-libs 3.100-r5 apk
procps 3.3.17-r2 apk lazy_static 1.4.0 rust-crate
pyOpenSSL 23.1.1 python lcms2 2.16-r0 apk
pyasn1 0.4.8 python leptonica 1.85.0-r0 apk
pyasn1-modules 0.2.8 python libSvtAv1Enc 2.3.0-r0 apk
pycares 4.3.0 python libapk2 2.14.9-r3 apk
pycparser 2.21 python libass 0.17.3-r0 apk
pycurl 7.45.2 python libasyncns 0.8-r4 apk
pyjsparser 2.7.1 python libatomic 14.2.0-r6 apk
pyload-ng 0.5.0b3.dev54 python libattr 2.5.2-r2 apk
python 3.10.10 binary libblkid 2.41-r9 apk
python3 3.10.10-r0 apk libbluray 1.3.4-r1 apk
pytz 2023.3 python libbsd 0.12.2-r0 apk
pytz-deprecation-shim 0.1.0.post0 python libbz2 1.0.8-r6 apk
readline 8.2.0-r0 apk libc 0.2.155 rust-crate
scanelf 1.3.5-r1 apk libc 0.2.172 rust-crate
sdl2 2.26.3-r0 apk libcrypto3 3.5.5-r0 apk
semver 2.13.0 python libcurl 8.14.1-r2 apk
setuptools 65.5.0 python libdav1d 1.5.1-r0 apk
shadow 4.13-r0 apk libdeflate 1.23-r0 apk
six 1.16.0 python libdovi 3.3.1-r1 apk
skalibs 2.12.0.1-r0 apk libdrm 2.4.124-r0 apk
slixmpp 1.8.3 python libeconf 0.6.3-r0 apk
soupsieve 2.4 python libexpat 2.7.4-r0 apk
soxr 0.1.3-r3 apk libffi 3.4.8-r0 apk
speexdsp 1.2.1-r0 apk libflac 1.4.3-r1 apk
sqlite 3.40.1-r0 apk libgcc 14.2.0-r6 apk
sqlite-libs 3.40.1-r0 apk libgomp 14.2.0-r6 apk
ssl_client 1.35.0-r29 apk libhwy 1.0.7-r1 apk
svt-av1-libs 1.3.0-r0 apk libidn2 2.3.7-r0 apk
tdb-libs 1.4.6-r0 apk libintl 0.24.1-r0 apk
tesseract-ocr 5.2.0-r1 apk libjpeg-turbo 3.1.0-r0 apk
tiff 4.4.0-r3 apk libjxl 0.10.3-r2 apk
tzdata 2023.3 python libltdl 2.5.4-r1 apk
tzdata 2023c-r0 apk libmd 1.1.0-r0 apk
tzlocal 4.3 python libmount 2.41-r9 apk
utmps-libs 0.1.2.0-r1 apk libncursesw 6.5_p20250503-r0 apk
v4l-utils-libs 1.22.1-r2 apk libogg 1.3.5-r5 apk
vidstab 1.1.0-r2 apk libopenmpt 0.7.15-r0 apk
wayland-libs-client 1.21.0-r1 apk libpanelw 6.5_p20250503-r0 apk
wheel 0.40.0 python libpciaccess 0.18.1-r0 apk
x264-libs 0.164_git20220602-r0 apk libplacebo 6.338.2-r3 apk
x265-libs 3.5-r3 apk libpng 1.6.55-r0 apk
xvidcore 1.3.7-r1 apk libproc2 4.0.4-r3 apk
xz 5.2.9-r0 apk libpsl 0.21.5-r3 apk
xz-libs 5.2.9-r0 apk libpulse 17.0-r5 apk
zlib 1.2.13-r0 apk librist 0.2.10-r1 apk
zstd-libs 1.5.2-r9 apk libsharpyuv 1.5.0-r0 apk
libsndfile 1.2.2-r2 apk
libsodium 1.0.20-r1 apk
libsrt 1.5.3-r1 apk
libssh 0.11.2-r0 apk
libssl3 3.5.5-r0 apk
libstdc++ 14.2.0-r6 apk
libtheora 1.1.1-r18 apk
libucontext 1.3.2-r0 apk
libunibreak 6.1-r0 apk
libunistring 1.3-r0 apk
libva 2.22.0-r1 apk
libvdpau 1.5-r4 apk
libvorbis 1.3.7-r2 apk
libvpx 1.15.0-r0 apk
libwebp 1.5.0-r0 apk
libwebpmux 1.5.0-r0 apk
libx11 1.8.11-r0 apk
libxau 1.0.12-r0 apk
libxcb 1.17.0-r0 apk
libxdmcp 1.1.5-r1 apk
libxext 1.3.6-r2 apk
libxfixes 6.0.1-r4 apk
libxft 2.3.8-r3 apk
libxml2 2.13.9-r0 apk
libxrender 0.9.12-r0 apk
libzmq 4.3.5-r2 apk
lilv-libs 0.24.26-r0 apk
linux-pam 1.7.0-r4 apk
linux-raw-sys 0.4.12 rust-crate
log 0.4.20 rust-crate
markupsafe 3.0.3 python
maybe-rayon 0.1.1 rust-crate
mbedtls 3.6.5-r0 apk
memchr 2.7.1 rust-crate
mini-racer 0.14.1 python
minimal-lexical 0.2.1 rust-crate
more-itertools 10.8.0 python (+1 duplicate)
mpdecimal 4.0.1-r0 apk
mpg123-libs 1.32.10-r0 apk
msgspec 0.20.0 python
musl 1.2.5-r10 apk
musl-obstack 1.2.3-r2 apk
musl-utils 1.2.5-r10 apk
ncurses-terminfo-base 6.5_p20250503-r0 apk
netcat-openbsd 1.229.1-r0 apk
new_debug_unreachable 1.0.4 rust-crate
nghttp2-libs 1.65.0-r0 apk
nom 7.1.3 rust-crate
noop_proc_macro 0.3.0 rust-crate
num-bigint 0.4.4 rust-crate
num-derive 0.4.1 rust-crate
num-integer 0.1.45 rust-crate
num-rational 0.4.1 rust-crate
num-traits 0.2.17 rust-crate
numactl 2.0.18-r0 apk
once_cell 1.19.0 rust-crate
onevpl-libs 2023.3.1-r2 apk
oniguruma 6.9.10-r0 apk
openexr-libiex 3.3.2-r0 apk
openexr-libilmthread 3.3.2-r0 apk
openexr-libopenexr 3.3.2-r0 apk
openexr-libopenexrcore 3.3.2-r0 apk
opus 1.5.2-r1 apk
orc 0.4.40-r1 apk
packaging 26.0 python (+1 duplicate)
pango 1.56.3-r0 apk
paste 1.0.14 rust-crate
pcre2 10.46-r0 apk
pillow 12.1.1 python
pip 26.0.1 python
pixman 0.46.4-r0 apk
platformdirs 4.4.0 python
ppv-lite86 0.2.17 rust-crate
proc-macro2 1.0.76 rust-crate
procps-ng 4.0.4-r3 apk
profiling 1.0.13 rust-crate
profiling-procmacros 1.0.13 rust-crate
pyasn1 0.6.2 python
pyasn1-modules 0.4.2 python
pyc 3.12.12-r0 apk
pycares 5.0.1 python
pycparser 3.0 python
pycurl 7.45.7 python
pydantic 2.12.5 python
pydantic-core 2.41.5 python
pyload-ng 0.5.0b3.dev96 python
pyopenssl 25.3.0 python
python3 3.12.12-r0 apk
python3-pyc 3.12.12-r0 apk
python3-pycache-pyc0 3.12.12-r0 apk
pytz 2026.1.post1 python
quote 1.0.35 rust-crate
radium 0.7.0 rust-crate
rand 0.8.5 rust-crate
rand_chacha 0.3.1 rust-crate
rand_core 0.6.4 rust-crate
rav1e 0.7.1 rust-crate
rav1e-libs 0.7.1-r2 apk
rayon 1.8.0 rust-crate
rayon-core 1.12.0 rust-crate
readline 8.2.13-r1 apk
rustix 0.38.28 rust-crate
scan_fmt 0.2.6 rust-crate
scanelf 1.3.8-r1 apk
sdl2-compat 2.32.56-r0 apk
sdl3 3.2.16-r0 apk
semver 2.13.0 python
send2trash 2.1.0 python
serd-libs 0.32.4-r0 apk
setuptools 82.0.0 python
shaderc 2024.4-r0 apk
shadow 4.17.3-r0 apk
signal-hook 0.3.17 rust-crate
signal-hook-registry 1.4.1 rust-crate
simd_helpers 0.1.0 rust-crate
skalibs-libs 2.14.4.0-r0 apk
slixmpp 1.13.2 python
sord-libs 0.16.18-r0 apk
soupsieve 2.8.3 python
soxr 0.1.3-r7 apk
speexdsp 1.2.1-r2 apk
spirv-tools 1.4.313.0-r0 apk
sqlite 3.49.2-r1 apk
sqlite-libs 3.49.2-r1 apk
sratom 0.6.18-r0 apk
ssl_client 1.37.0-r20 apk
syn 2.0.48 rust-crate
tap 1.0.1 rust-crate
tdb-libs 1.4.12-r0 apk
tenacity 9.1.4 python
terminal_size 0.3.0 rust-crate
tesseract-ocr 5.5.0-r2 apk
thiserror 1.0.56 rust-crate
thiserror-impl 1.0.56 rust-crate
tiff 4.7.1-r0 apk
tinyvec 1.9.0 rust-crate
tomli 2.4.0 python
typing-extensions 4.15.0 python
typing-inspection 0.4.2 python
tzdata 2025c-r0 apk
unicode-ident 1.0.12 rust-crate
unicode-width 0.1.11 rust-crate
utf8parse 0.2.1 rust-crate
utmps-libs 0.1.3.1-r0 apk
v4l-utils-libs 1.28.1-r1 apk
v_frame 0.3.7 rust-crate
vidstab 1.1.1-r0 apk
vulkan-loader 1.4.313.0-r0 apk
wayland-libs-client 1.23.1-r3 apk
werkzeug 3.1.6 python
wheel 0.46.3 python (+1 duplicate)
wtforms 3.2.1 python
wyz 0.5.1 rust-crate
x264-libs 0.164.3108-r0 apk
x265-libs 3.6-r0 apk
xvidcore 1.3.7-r2 apk
xz-libs 5.8.1-r0 apk
y4m 0.8.0 rust-crate
zimg 3.0.5-r3 apk
zipp 3.23.0 python
zix-libs 0.6.2-r0 apk
zlib 1.3.1-r2 apk
zstd-libs 1.5.7-r0 apk

View File

@ -3,42 +3,32 @@
# project information # project information
project_name: pyload-ng project_name: pyload-ng
project_url: "https://pyload.net/" project_url: "https://pyload.net/"
project_logo: "https://pyload.net/img/banner.png" project_logo: "https://github.com/linuxserver/docker-templates/raw/master/linuxserver.io/img/pyload-logo.png"
project_blurb: "[pyLoad]({{ project_url }}) is a Free and Open Source download manager written in Python and designed to be extremely lightweight, easily extensible and fully manageable via web." project_blurb: "[pyLoad]({{ project_url }}) is a Free and Open Source download manager written in Python and designed to be extremely lightweight, easily extensible and fully manageable via web."
project_lsio_github_repo_url: "https://github.com/linuxserver/docker-{{ project_name }}" project_lsio_github_repo_url: "https://github.com/linuxserver/docker-{{ project_name }}"
project_categories: "Downloaders"
# supported architectures # supported architectures
available_architectures: available_architectures:
- { arch: "{{ arch_x86_64 }}", tag: "amd64-latest"} - {arch: "{{ arch_x86_64 }}", tag: "amd64-latest"}
- { arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"} - {arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"}
- { arch: "{{ arch_armhf }}", tag: "arm32v7-latest"}
# development version # development version
development_versions: true development_versions: true
development_versions_items: development_versions_items:
- { tag: "latest", desc: "Stable releases from pyLoad Next" } - {tag: "latest", desc: "Stable releases from pyLoad Next"}
- { tag: "develop", desc: "Releases from pyload Next develop branch" } - {tag: "develop", desc: "Releases from pyload Next develop branch"}
# container parameters # container parameters
param_container_name: "{{ project_name }}" param_container_name: "{{ project_name }}"
param_usage_include_vols: true param_usage_include_vols: true
param_volumes: param_volumes:
- { vol_path: "/config", vol_host_path: "/path/to/appdata/config", desc: "pyLoad Configuration and files database" } - {vol_path: "/config", vol_host_path: "/path/to/{{ project_name }}/config", desc: "Persistent config files"}
- { vol_path: "/downloads", vol_host_path: "/path/to/downloads", desc: "Destination of pyLoad downloads" } - {vol_path: "/downloads", vol_host_path: "/path/to/downloads", desc: "Destination of pyLoad downloads"}
param_usage_include_ports: true param_usage_include_ports: true
param_ports: param_ports:
- { external_port: "8000", internal_port: "8000", port_desc: "Allows HTTP access to the application" } - {external_port: "8000", internal_port: "8000", port_desc: "Allows HTTP access to the application"}
param_usage_include_env: true
param_env_vars:
- { env_var: "TZ", env_value: "Europe/London", desc: "Specify a timezone to use EG Europe/London"}
# optional params # optional params
opt_param_usage_include_ports: true opt_param_usage_include_ports: true
opt_param_ports: opt_param_ports:
- { external_port: "9666", internal_port: "9666", port_desc: "Click'n'Load port." } - {external_port: "9666", internal_port: "9666", port_desc: "Click'n'Load port."}
# application setup block # application setup block
app_setup_block_enabled: true app_setup_block_enabled: true
app_setup_block: | app_setup_block: |
@ -47,10 +37,60 @@ app_setup_block: |
password - **pyload** password - **pyload**
For general usage please see the pyLoad wiki [here](https://github.com/pyload/pyload/wiki) . For general usage please see the pyLoad wiki [here](https://github.com/pyload/pyload/wiki) .
# init diagram
init_diagram: |
"pyload-ng: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-pyload-config -> init-config-end
init-config -> init-crontab-config
init-mods-end -> init-custom-files
init-adduser -> init-device-perms
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-device-perms -> init-os-end
init-envfile -> init-os-end
init-config -> init-pyload-config
init-custom-files -> init-services
init-services -> svc-cron
svc-cron -> legacy-services
init-services -> svc-pyload
svc-pyload -> legacy-services
}
Base Images: {
"baseimage-alpine:3.22"
}
"pyload-ng:latest" <- Base Images
# changelog # changelog
changelogs: changelogs:
- { date: "02.02.22:", desc: "Rebase master to alpine 3.17." } - {date: "09.01.26:", desc: "Add gcompat for mini-racer."}
- { date: "02.02.22:", desc: "Add ffmpeg for the Youtube plugin." } - {date: "01.09.25:", desc: "Add new dep, libatomic."}
- { date: "24.01.22:", desc: "Replace unrar with p7zip." } - {date: "09.06.25:", desc: "Rebase to Alpine 3.22."}
- { date: "24.01.22:", desc: "Initial release." } - {date: "20.07.24:", desc: "Revert to Alpine 3.19 due to inconsistent upstream addon support for Python 3.12."}
- {date: "27.06.24:", desc: "Rebase to Alpine 3.20."}
- {date: "23.12.23:", desc: "Rebase to Alpine 3.19."}
- {date: "08.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: "01.06.23:", desc: "Replace p7zip with 7zip, add unrar."}
- {date: "25.05.23:", desc: "Rebase to Alpine 3.18, deprecate armhf."}
- {date: "02.02.22:", desc: "Rebase master to alpine 3.17."}
- {date: "02.02.22:", desc: "Add ffmpeg for the Youtube plugin."}
- {date: "24.01.22:", desc: "Replace unrar with p7zip."}
- {date: "24.01.22:", desc: "Initial release."}

View File

@ -1,6 +1,10 @@
#!/usr/bin/with-contenv bash #!/usr/bin/with-contenv bash
# shellcheck shell=bash # shellcheck shell=bash
PORT=$(sed -n -e '/webui/,/proxy/p' /config/settings/pyload.cfg | grep "Port" | awk -F '=' '{print $2}' | tr -d ' ')
export LD_PRELOAD="/lib/libgcompat.so.0"
exec \ exec \
s6-notifyoncheck -d -n 300 -w 1000 -c "nc -z localhost 8000" \ s6-notifyoncheck -d -n 300 -w 1000 -c "nc -z localhost ${PORT:-8000}" \
s6-setuidgid abc pyload --userdir /config --storagedir /downloads s6-setuidgid abc pyload --userdir /config --storagedir /downloads