Compare commits

..

159 Commits

Author SHA1 Message Date
LinuxServer-CI
5095789fd2 Bot Updating Package Versions 2023-08-18 19:20:09 +00:00
LinuxServer-CI
64650966f3 Bot Updating Templated Files 2023-08-10 21:06:55 +00:00
Adam
bfc8cc2908
Merge pull request #39 from linuxserver/develop-unrar 2023-08-10 22:04:37 +01:00
TheSpad
7d5cb47fad
Bump unrar to 6.2.10 2023-08-10 17:58:10 +01:00
LinuxServer-CI
c18c96f44a Bot Updating Package Versions 2023-08-08 20:21:10 +00:00
LinuxServer-CI
9b392fe5a9 Bot Updating Package Versions 2023-08-05 18:21:16 +00:00
LinuxServer-CI
546d20039d Bot Updating Package Versions 2023-08-04 19:17:41 +00:00
LinuxServer-CI
eff1f69ba9 Bot Updating Package Versions 2023-08-01 23:19:27 +00:00
LinuxServer-CI
a604bba084 Bot Updating Package Versions 2023-07-29 22:18:27 +00:00
LinuxServer-CI
3d79e61f4f Bot Updating Package Versions 2023-07-28 19:18:00 +00:00
LinuxServer-CI
292d6d4f75 Bot Updating Package Versions 2023-07-25 17:18:29 +00:00
LinuxServer-CI
6f19d8f916 Bot Updating Package Versions 2023-07-23 21:18:11 +00:00
LinuxServer-CI
8f6cfa1834 Bot Updating Package Versions 2023-07-21 19:18:05 +00:00
LinuxServer-CI
c4da6dad7a Bot Updating Package Versions 2023-07-14 19:24:20 +00:00
LinuxServer-CI
47dfc8fd46 Bot Updating Package Versions 2023-07-08 17:19:39 +00:00
LinuxServer-CI
f39447b6ee Bot Updating Package Versions 2023-07-07 19:19:03 +00:00
LinuxServer-CI
64c8cca21d Bot Updating Package Versions 2023-07-01 23:23:31 +00:00
LinuxServer-CI
5207b4f9d0 Bot Updating Templated Files 2023-07-01 23:18:38 +00:00
LinuxServer-CI
bbe558d9d4 Bot Updating Package Versions 2023-06-30 19:20:00 +00:00
LinuxServer-CI
bfacd874b1 Bot Updating Package Versions 2023-06-23 19:20:37 +00:00
LinuxServer-CI
d207695c27 Bot Updating Package Versions 2023-06-20 20:22:28 +00:00
LinuxServer-CI
7ef56f8874 Bot Updating Package Versions 2023-06-17 18:22:45 +00:00
LinuxServer-CI
c37fadb3d0 Bot Updating Package Versions 2023-06-16 19:20:10 +00:00
LinuxServer-CI
cabde22029 Bot Updating Package Versions 2023-06-09 19:18:15 +00:00
LinuxServer-CI
7d614e4322 Bot Updating Package Versions 2023-06-07 12:50:45 +00:00
Adam
752e712781
Merge pull request #36 from linuxserver/develop-port 2023-06-07 13:45:34 +01:00
TheSpad
c386926b2b
Support custom ports in readiness check 2023-06-07 13:22:27 +01:00
LinuxServer-CI
45c8e60670 Bot Updating Package Versions 2023-06-05 16:28:31 +00:00
LinuxServer-CI
41aed8c33b Bot Updating Package Versions 2023-06-03 02:10:35 +00:00
aptalca
d78bf490e5
Merge pull request #33 from linuxserver/develop-unrar
switch to 7zip, add unrar
2023-06-02 22:07:07 -04:00
LinuxServer-CI
50ee8069e7 Bot Updating Package Versions 2023-06-02 19:17:49 +00:00
aptalca
4f94522d09
switch to 7zip, add unrar 2023-06-02 12:57:44 -04:00
LinuxServer-CI
12c5b882c1 Bot Updating Package Versions 2023-05-31 12:22:42 +00:00
Eric Nemchik
05d667d951
Merge pull request #30 from linuxserver/3.18-develop
Rebase to Alpine 3.18, deprecate armhf
2023-05-31 07:18:17 -05:00
Eric Nemchik
79e528a115
Rebase to Alpine 3.18, deprecate armhf
Signed-off-by: Eric Nemchik <eric@nemchik.com>
2023-05-27 19:23:01 -05:00
LinuxServer-CI
da3bfcbba5 Bot Updating Package Versions 2023-05-27 20:20:00 +00:00
LinuxServer-CI
b508c2eaff Bot Updating Package Versions 2023-05-26 18:23:54 +00:00
LinuxServer-CI
9f9744c8c4 Bot Updating Package Versions 2023-05-23 19:19:20 +00:00
LinuxServer-CI
3a0dbfbb08 Bot Updating Templated Files 2023-05-22 20:18:18 +00:00
LinuxServer-CI
722b3d9a0f Bot Updating Package Versions 2023-05-22 18:23:37 +00:00
LinuxServer-CI
ec499e203f Bot Updating Package Versions 2023-05-19 19:20:24 +00:00
LinuxServer-CI
d1e25faac8 Bot Updating Package Versions 2023-05-17 23:20:59 +00:00
LinuxServer-CI
9f5f289da9 Bot Updating Package Versions 2023-05-12 19:17:45 +00:00
LinuxServer-CI
8dbac7b648 Bot Updating Package Versions 2023-05-05 19:19:53 +00:00
LinuxServer-CI
9c5220ce09 Bot Updating Package Versions 2023-04-28 19:18:04 +00:00
LinuxServer-CI
ed0f20525a Bot Updating Package Versions 2023-04-28 11:20:24 +02:00
LinuxServer-CI
05b1c9bf1b Bot Updating Package Versions 2023-04-27 01:29:59 +00:00
LinuxServer-CI
5b05d85cdf Bot Updating Package Versions 2023-04-26 16:00:12 -05:00
LinuxServer-CI
a856733aa0 Bot Updating Package Versions 2023-04-26 09:58:38 +00:00
LinuxServer-CI
8df0253045 Bot Updating Package Versions 2023-04-26 02:02:47 +02:00
LinuxServer-CI
c28eec4066 Bot Updating Templated Files 2023-04-26 01:58:41 +02:00
LinuxServer-CI
360ac1e7c2 Bot Updating Templated Files 2023-04-25 18:57:05 -05:00
LinuxServer-CI
5feb3a5eca Bot Updating Package Versions 2023-04-22 20:58:31 +00:00
LinuxServer-CI
03b70fd5ae Bot Updating Package Versions 2023-04-21 19:16:52 +00:00
LinuxServer-CI
1a2e650498 Bot Updating Package Versions 2023-04-15 14:59:42 -05:00
LinuxServer-CI
af30fd2972 Bot Updating Package Versions 2023-04-14 14:19:24 -05:00
LinuxServer-CI
865b9aabb7 Bot Updating Package Versions 2023-04-07 00:59:39 +02:00
LinuxServer-CI
fabb73eb8a Bot Updating Package Versions 2023-04-04 16:51:34 +02:00
LinuxServer-CI
3c39ba092b Bot Updating Package Versions 2023-04-01 14:04:28 +02:00
LinuxServer-CI
62f193293c Bot Updating Templated Files 2023-04-01 14:00:16 +02:00
LinuxServer-CI
59e5c27aa9 Bot Updating Templated Files 2023-04-01 13:58:39 +02:00
LinuxServer-CI
2e8d67443a Bot Updating Templated Files 2023-04-01 06:56:52 -05:00
LinuxServer-CI
bfced7d98c Bot Updating Package Versions 2023-03-28 09:51:42 -05:00
LinuxServer-CI
4898c968d8 Bot Updating Package Versions 2023-03-27 20:59:14 +00:00
LinuxServer-CI
a0c16fbb3b Bot Updating Package Versions 2023-03-22 23:02:38 +01:00
LinuxServer-CI
c96a00ad8e Bot Updating Package Versions 2023-03-21 09:51:47 -05:00
LinuxServer-CI
5dc7401afb Bot Updating Package Versions 2023-03-20 23:59:06 +01:00
LinuxServer-CI
da21b9f28d Bot Updating Package Versions 2023-03-19 17:02:41 -05:00
LinuxServer-CI
96eb0285fc Bot Updating Package Versions 2023-03-15 22:24:02 +01:00
LinuxServer-CI
d0dd079b63 Bot Updating Package Versions 2023-03-04 22:04:26 +01:00
LinuxServer-CI
de22bfdee5 Bot Updating Templated Files 2023-03-04 21:57:00 +01:00
LinuxServer-CI
cb600f8c8b Bot Updating Package Versions 2023-02-28 01:02:12 +01:00
LinuxServer-CI
1427eec17d Bot Updating Package Versions 2023-02-25 17:59:03 +01:00
LinuxServer-CI
c186897ad2 Bot Updating Package Versions 2023-02-21 08:51:16 -06:00
LinuxServer-CI
37f89838fb Bot Updating Package Versions 2023-02-18 14:59:16 -06:00
LinuxServer-CI
476a8a98f5 Bot Updating Package Versions 2023-02-14 15:51:29 +01:00
LinuxServer-CI
dd0de3f09d Bot Updating Package Versions 2023-02-12 03:18:52 +01:00
LinuxServer-CI
9ab82d98e9 Bot Updating Templated Files 2023-02-12 03:15:21 +01:00
LinuxServer-CI
8501987990 Bot Updating Templated Files 2023-02-12 03:14:03 +01:00
LinuxServer-CI
9f7749809d Bot Updating Package Versions 2023-02-07 22:03:56 +01:00
LinuxServer-CI
6c5b2fdb11 Bot Updating Package Versions 2023-02-06 20:12:29 -06:00
LinuxServer-CI
f26b16bbb3 Bot Updating Package Versions 2023-02-04 17:59:16 -06:00
LinuxServer-CI
b97035dc26 Bot Updating Package Versions 2023-01-28 16:58:55 +01:00
LinuxServer-CI
aefe2425ab Bot Updating Package Versions 2023-01-23 17:02:16 -06:00
LinuxServer-CI
801e85be2f Bot Updating Package Versions 2023-01-21 21:58:51 +01:00
Eric Nemchik
7b0f11d146
Merge pull request #23 from linuxserver/dependency-dev
Remove baseimage packages (dev branch)
2023-01-20 08:18:45 -06:00
Eric Nemchik
8595a7ff99 Remove baseimage packages 2023-01-19 21:02:38 -06:00
LinuxServer-CI
6f12035ae5 Bot Updating Package Versions 2023-01-17 15:51:19 +01:00
LinuxServer-CI
7a919206ed Bot Updating Package Versions 2023-01-10 15:52:50 +01:00
LinuxServer-CI
7ce23b6992 Bot Updating Package Versions 2023-01-04 20:11:03 -06:00
LinuxServer-CI
71d777c171 Bot Updating Package Versions 2023-01-04 21:59:20 +01:00
LinuxServer-CI
5a599c5c1d Bot Updating Package Versions 2023-01-03 23:58:46 +01:00
LinuxServer-CI
59729f5890 Bot Updating Package Versions 2022-12-30 23:34:15 +01:00
LinuxServer-CI
bedbb45375 Bot Updating Templated Files 2022-12-30 23:30:37 +01:00
Eric Nemchik
95a520c79b
Merge pull request #19 from linuxserver/3.17-develop
Rebase develop to alpine 3.17
2022-12-30 16:29:25 -06:00
Eric Nemchik
a15760c23c
Update run 2022-12-28 18:44:48 -06:00
Eric Nemchik
aee499798b Rebase develop to alpine 3.17 2022-12-27 17:05:07 -06:00
LinuxServer-CI
3fa5049563 Bot Updating Package Versions 2022-12-27 15:51:14 +01:00
LinuxServer-CI
9f631a1235 Bot Updating Package Versions 2022-12-20 15:51:25 +01:00
LinuxServer-CI
adaaefcb60 Bot Updating Package Versions 2022-12-11 13:59:04 -06:00
LinuxServer-CI
b6dae6cca0 Bot Updating Templated Files 2022-11-28 15:59:39 -06:00
LinuxServer-CI
db741fe766 Bot Updating Templated Files 2022-11-28 15:58:22 -06:00
LinuxServer-CI
3bd4cd4799 Bot Updating Templated Files 2022-11-28 22:57:01 +01:00
LinuxServer-CI
0cea5bdbbd Bot Updating Package Versions 2022-11-14 03:54:41 +01:00
LinuxServer-CI
de32b2cd89 Bot Updating Templated Files 2022-11-14 03:48:44 +01:00
LinuxServer-CI
f13b23aed4 Bot Updating Package Versions 2022-11-08 08:54:32 -06:00
LinuxServer-CI
d1781f4542 Bot Updating Package Versions 2022-11-06 13:01:18 -06:00
LinuxServer-CI
32ea7f2b70 Bot Updating Package Versions 2022-11-02 21:59:04 +01:00
LinuxServer-CI
94a7327114 Bot Updating Package Versions 2022-11-01 19:00:17 -05:00
LinuxServer-CI
f9348eb6e8 Bot Updating Package Versions 2022-10-30 15:01:33 -05:00
LinuxServer-CI
7673b2de3c Bot Updating Package Versions 2022-10-27 00:01:41 +02:00
LinuxServer-CI
880f051725 Bot Updating Package Versions 2022-10-11 17:01:39 +02:00
LinuxServer-CI
5530284c35 Bot Updating Package Versions 2022-10-08 02:08:14 +02:00
LinuxServer-CI
1277309e6a Bot Updating Package Versions 2022-09-26 11:04:12 -05:00
LinuxServer-CI
5f608766bf Bot Updating Templated Files 2022-09-20 16:57:44 +02:00
LinuxServer-CI
e93ec89a10 Bot Updating Package Versions 2022-09-03 18:59:12 -05:00
LinuxServer-CI
560aa28b60 Bot Updating Package Versions 2022-08-23 14:51:02 +00:00
LinuxServer-CI
3746a0faae Bot Updating Package Versions 2022-08-09 16:51:19 +02:00
LinuxServer-CI
87783064c9 Bot Updating Package Versions 2022-08-02 16:51:07 +02:00
LinuxServer-CI
8d607f1dc5 Bot Updating Package Versions 2022-07-30 16:02:44 +00:00
LinuxServer-CI
e51f1faa96 Bot Updating Package Versions 2022-07-26 16:51:30 +02:00
LinuxServer-CI
84f5a928c8 Bot Updating Package Versions 2022-07-24 23:58:56 +02:00
LinuxServer-CI
6cbc28b088 Bot Updating Package Versions 2022-07-19 17:01:04 +02:00
LinuxServer-CI
aa943418a2 Bot Updating Package Versions 2022-07-12 17:01:15 +02:00
LinuxServer-CI
7fc6527d1d Bot Updating Package Versions 2022-07-05 09:51:08 -05:00
LinuxServer-CI
2aead8e1a3 Bot Updating Package Versions 2022-05-24 09:55:40 -05:00
LinuxServer-CI
363c1cc01e Bot Updating Package Versions 2022-05-21 16:02:49 -05:00
LinuxServer-CI
d11fff1c16 Bot Updating Package Versions 2022-05-21 16:00:07 +00:00
LinuxServer-CI
a88c34c656 Bot Updating Package Versions 2022-05-15 14:59:33 -05:00
LinuxServer-CI
8f9c3b3602 Bot Updating Package Versions 2022-05-06 08:27:00 -05:00
LinuxServer-CI
d999fef2a3 Bot Updating Templated Files 2022-05-02 00:56:29 +02:00
LinuxServer-CI
0f9934c6f4 Bot Updating Package Versions 2022-05-01 21:04:55 +02:00
LinuxServer-CI
a1fa5a844d Bot Updating Templated Files 2022-05-01 20:58:00 +02:00
LinuxServer-CI
e6a54abdc5 Bot Updating Templated Files 2022-05-01 20:56:49 +02:00
LinuxServer-CI
6848804bd8 Bot Updating Package Versions 2022-04-27 16:59:35 -05:00
LinuxServer-CI
fa8aaeda6c Bot Updating Package Versions 2022-04-20 23:59:24 +02:00
LinuxServer-CI
e88d359416 Bot Updating Package Versions 2022-04-12 16:51:35 +02:00
LinuxServer-CI
0388d62f80 Bot Updating Package Versions 2022-04-05 16:51:55 +02:00
LinuxServer-CI
c9b209fe46 Bot Updating Package Versions 2022-03-29 09:51:46 -05:00
LinuxServer-CI
35ea513bc4 Bot Updating Package Versions 2022-03-22 15:51:52 +01:00
LinuxServer-CI
5a6cf191ed Bot Updating Package Versions 2022-03-18 08:59:51 -05:00
aptalca
c010364a8e
Merge pull request #12 from linuxserver/develop-git
update git endpoint
2022-03-15 13:59:23 -04:00
aptalca
f3cae9a9cc update git endpoint 2022-03-15 13:25:27 -04:00
LinuxServer-CI
282046b730 Bot Updating Package Versions 2022-03-06 23:59:07 +01:00
LinuxServer-CI
c3e1334175 Bot Updating Package Versions 2022-02-27 20:01:36 +01:00
LinuxServer-CI
7ddf36add8 Bot Updating Package Versions 2022-02-22 15:51:24 +01:00
LinuxServer-CI
83cb34048a Bot Updating Package Versions 2022-02-16 19:59:39 +01:00
LinuxServer-CI
28b5e46a87 Bot Updating Package Versions 2022-02-08 15:52:23 +01:00
LinuxServer-CI
88261eef17 Bot Updating Package Versions 2022-02-04 15:59:20 +01:00
LinuxServer-CI
99636278e8 Bot Updating Package Versions 2022-02-03 02:22:08 +01:00
aptalca
0719a1d9d1
Merge pull request #8 from linuxserver/develop-ffmpeg
add ffmpeg and click'n'load port
2022-02-02 20:18:33 -05:00
aptalca
e3b3242356 add ffmpeg and click'n'load port 2022-02-02 19:52:31 -05:00
LinuxServer-CI
5b876a5e2d Bot Updating Package Versions 2022-01-25 14:46:03 +01:00
aptalca
2ac5ea2ae3
Merge pull request #4 from linuxserver/develop-p7zip
develop: replace unrar with p7zip
2022-01-25 08:40:27 -05:00
aptalca
a6f5e3493c develop: replace unrar with p7zip 2022-01-24 14:49:30 -05:00
LinuxServer-CI
b1b05f0455 Bot Updating Package Versions 2022-01-24 20:05:28 +01:00
aptalca
cd276ffaae
Merge pull request #2 from linuxserver/develop-initial
develop initial release
2022-01-24 13:54:42 -05:00
aptalca
5597b4c218 fix repo name 2022-01-24 11:45:40 -05:00
aptalca
479dfa16fa develop tag initial release 2022-01-24 11:41:47 -05:00
23 changed files with 801 additions and 1348 deletions

0
.editorconfig Normal file → Executable file
View File

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

@ -6,7 +6,7 @@
* Read, and fill the Pull Request template
* If this is a fix for a typo (in code, documentation, or the README) please file an issue and let us sort it out. We do not need a PR
* If the PR is addressing an existing issue include, closes #\<issue number>, in the body of the PR commit message
* If you want to discuss changes, you can also bring it up in [#dev-talk](https://discordapp.com/channels/354974912613449730/757585807061155840) in our [Discord server](https://linuxserver.io/discord)
* 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)
## Common files
@ -24,7 +24,7 @@
## Readme
If you would like to change our readme, please __**do not**__ directly edit the readme, as it is auto-generated on each commit.
Instead edit the [readme-vars.yml](https://github.com/linuxserver/docker-pyload-ng/edit/main/readme-vars.yml).
Instead edit the [readme-vars.yml](https://github.com/linuxserver/docker-pyload-ng/edit/develop/readme-vars.yml).
These variables are used in a template for our [Jenkins Builder](https://github.com/linuxserver/docker-jenkins-builder) as part of an ansible play.
Most of these variables are also carried over to [docs.linuxserver.io](https://docs.linuxserver.io/images/docker-pyload-ng)
@ -105,17 +105,17 @@ docker build \
-t linuxserver/pyload-ng:latest .
```
The ARM variants can be built on x86_64 hardware and vice versa using `lscr.io/linuxserver/qemu-static`
The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static`
```bash
docker run --rm --privileged lscr.io/linuxserver/qemu-static --reset
docker run --rm --privileged multiarch/qemu-user-static:register --reset
```
Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64`.
## Update the changelog
If you are modifying the Dockerfiles or any of the startup scripts in [root](https://github.com/linuxserver/docker-pyload-ng/tree/main/root), add an entry to the changelog
If you are modifying the Dockerfiles or any of the startup scripts in [root](https://github.com/linuxserver/docker-pyload-ng/tree/develop/root), add an entry to the changelog
```yml
changelogs:

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

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

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

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

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

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

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

@ -21,7 +21,7 @@
------------------------------
- [ ] I have read the [contributing](https://github.com/linuxserver/docker-pyload-ng/blob/main/.github/CONTRIBUTING.md) guideline and understand that I have made the correct modifications
- [ ] I have read the [contributing](https://github.com/linuxserver/docker-pyload-ng/blob/develop/.github/CONTRIBUTING.md) guideline and understand that I have made the correct modifications
------------------------------

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

@ -8,9 +8,6 @@ on:
pull_request_review:
types: [submitted,edited,dismissed]
permissions:
contents: read
jobs:
manage-project:
permissions:

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

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

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

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

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

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

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

@ -2,18 +2,12 @@ name: Greetings
on: [pull_request_target, issues]
permissions:
contents: read
jobs:
greeting:
permissions:
issues: write
pull-requests: write
runs-on: ubuntu-latest
steps:
- uses: actions/first-interaction@v1
with:
issue-message: 'Thanks for opening your first issue here! Be sure to follow the relevant issue templates, or risk having this issue marked as invalid.'
pr-message: 'Thanks for opening this pull request! Be sure to follow the [pull request template](https://github.com/linuxserver/docker-pyload-ng/blob/main/.github/PULL_REQUEST_TEMPLATE.md)!'
pr-message: 'Thanks for opening this pull request! Be sure to follow the [pull request template](https://github.com/linuxserver/docker-pyload-ng/blob/develop/.github/PULL_REQUEST_TEMPLATE.md)!'
repo-token: ${{ secrets.GITHUB_TOKEN }}

42
.github/workflows/package_trigger.yml vendored Executable file
View File

@ -0,0 +1,42 @@
name: Package Trigger Main
on:
workflow_dispatch:
jobs:
package-trigger-develop:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3.1.0
- name: Package Trigger
if: github.ref == 'refs/heads/develop'
run: |
if [ -n "${{ secrets.PAUSE_PACKAGE_TRIGGER_PYLOAD_NG_DEVELOP }}" ]; then
echo "**** Github secret PAUSE_PACKAGE_TRIGGER_PYLOAD_NG_DEVELOP is set; skipping trigger. ****"
echo "Github secret \`PAUSE_PACKAGE_TRIGGER_PYLOAD_NG_DEVELOP\` is set; skipping trigger." >> $GITHUB_STEP_SUMMARY
exit 0
fi
if [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-pyload-ng/job/develop/lastBuild/api/json | jq -r '.building') == "true" ]; then
echo "**** There already seems to be an active build on Jenkins; skipping package trigger ****"
echo "There already seems to be an active build on Jenkins; skipping package trigger" >> $GITHUB_STEP_SUMMARY
exit 0
fi
echo "**** Package trigger running off of develop branch. To disable, set a Github secret named \"PAUSE_PACKAGE_TRIGGER_PYLOAD_NG_DEVELOP\". ****"
echo "Package trigger running off of develop branch. To disable, set a Github secret named \`PAUSE_PACKAGE_TRIGGER_PYLOAD_NG_DEVELOP\`" >> $GITHUB_STEP_SUMMARY
response=$(curl -iX POST \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-pyload-ng/job/develop/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 "Jenkins job build url: ${buildurl}" >> $GITHUB_STEP_SUMMARY
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"

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

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

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

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

View File

@ -1,13 +1,12 @@
# syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/unrar:latest AS unrar
FROM ghcr.io/linuxserver/baseimage-alpine:3.22
FROM ghcr.io/linuxserver/baseimage-alpine:3.18
# set version label
ARG UNRAR_VERSION=6.2.10
ARG BUILD_DATE
ARG VERSION
ARG PYLOAD_VERSION
ARG PYLOAD_COMMIT
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
LABEL maintainer="aptalca"
@ -19,6 +18,7 @@ RUN \
build-base \
cargo \
curl-dev \
git \
libffi-dev \
libjpeg-turbo-dev \
openssl-dev \
@ -27,24 +27,33 @@ RUN \
echo "**** install packages ****" && \
apk add --no-cache \
ffmpeg \
gcompat \
libatomic \
libjpeg-turbo \
7zip \
python3 \
sqlite \
tesseract-ocr && \
echo "**** install unrar from source ****" && \
mkdir /tmp/unrar && \
curl -o \
/tmp/unrar.tar.gz -L \
"https://www.rarlab.com/rar/unrarsrc-${UNRAR_VERSION}.tar.gz" && \
tar xf \
/tmp/unrar.tar.gz -C \
/tmp/unrar --strip-components=1 && \
cd /tmp/unrar && \
make && \
install -v -m755 unrar /usr/local/bin && \
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'); \
if [ -z ${PYLOAD_COMMIT+x} ]; then \
PYLOAD_COMMIT=$(curl -sX GET "https://api.github.com/repos/pyload/pyload/branches/develop" \
| awk '/sha/{print $4;exit}' FS='[""]'); \
fi && \
python3 -m venv /lsiopy && \
pip install -U --no-cache-dir \
pip \
wheel && \
pip install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/alpine-3.22/ \
pyload-ng[all]=="${PYLOAD_VERSION}" && \
printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \
pip install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/alpine-3.18/ \
"git+https://github.com/pyload/pyload.git@${PYLOAD_COMMIT}" && \
echo "**** cleanup ****" && \
apk del --purge \
build-dependencies && \
@ -56,9 +65,6 @@ RUN \
# add local files
COPY root/ /
# add unrar
COPY --from=unrar /usr/bin/unrar-alpine /usr/bin/unrar
# ports and volumes
EXPOSE 8000
VOLUME /config

View File

@ -1,13 +1,12 @@
# syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/unrar:arm64v8-latest AS unrar
FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.22
FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.18
# set version label
ARG UNRAR_VERSION=6.2.10
ARG BUILD_DATE
ARG VERSION
ARG PYLOAD_VERSION
ARG PYLOAD_COMMIT
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
LABEL maintainer="aptalca"
@ -19,6 +18,7 @@ RUN \
build-base \
cargo \
curl-dev \
git \
libffi-dev \
libjpeg-turbo-dev \
openssl-dev \
@ -27,24 +27,33 @@ RUN \
echo "**** install packages ****" && \
apk add --no-cache \
ffmpeg \
gcompat \
libatomic \
libjpeg-turbo \
7zip \
python3 \
sqlite \
tesseract-ocr && \
echo "**** install unrar from source ****" && \
mkdir /tmp/unrar && \
curl -o \
/tmp/unrar.tar.gz -L \
"https://www.rarlab.com/rar/unrarsrc-${UNRAR_VERSION}.tar.gz" && \
tar xf \
/tmp/unrar.tar.gz -C \
/tmp/unrar --strip-components=1 && \
cd /tmp/unrar && \
make && \
install -v -m755 unrar /usr/local/bin && \
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'); \
if [ -z ${PYLOAD_COMMIT+x} ]; then \
PYLOAD_COMMIT=$(curl -sX GET "https://api.github.com/repos/pyload/pyload/branches/develop" \
| awk '/sha/{print $4;exit}' FS='[""]'); \
fi && \
python3 -m venv /lsiopy && \
pip install -U --no-cache-dir \
pip \
wheel && \
pip install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/alpine-3.22/ \
pyload-ng[all]=="${PYLOAD_VERSION}" && \
printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \
pip install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/alpine-3.18/ \
"git+https://github.com/pyload/pyload.git@${PYLOAD_COMMIT}" && \
echo "**** cleanup ****" && \
apk del --purge \
build-dependencies && \
@ -56,9 +65,6 @@ RUN \
# add local files
COPY root/ /
# add unrar
COPY --from=unrar /usr/bin/unrar-alpine /usr/bin/unrar
# ports and volumes
EXPOSE 8000
VOLUME /config

865
Jenkinsfile vendored

File diff suppressed because it is too large Load Diff

188
README.md
View File

@ -1,10 +1,12 @@
<!-- DO NOT EDIT THIS FILE MANUALLY -->
<!-- Please read https://github.com/linuxserver/docker-pyload-ng/blob/main/.github/CONTRIBUTING.md -->
<!-- DO NOT EDIT THIS FILE MANUALLY -->
<!-- Please read the https://github.com/linuxserver/docker-pyload-ng/blob/develop/.github/CONTRIBUTING.md -->
[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)](https://linuxserver.io)
[![Blog](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Blog)](https://blog.linuxserver.io "all the things you can do with our containers including How-To guides, opinions and much more!")
[![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.")
[![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.")
[![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.")
[![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")
@ -19,14 +21,15 @@ The [LinuxServer.io](https://linuxserver.io) team brings you another container r
Find us at:
* [Blog](https://blog.linuxserver.io) - all the things you can do with our containers including How-To guides, opinions and much more!
* [Discord](https://linuxserver.io/discord) - realtime support / chat with the community and the team.
* [Discord](https://discord.gg/YWrKVTn) - realtime support / chat with the community and the team.
* [Discourse](https://discourse.linuxserver.io) - post on our community forum.
* [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.
* [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)
[![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)
[![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)
[![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 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)
@ -34,18 +37,18 @@ Find us at:
[![Quay.io](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Quay.io)](https://quay.io/repository/linuxserver.io/pyload-ng)
[![Docker Pulls](https://img.shields.io/docker/pulls/linuxserver/pyload-ng.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=pulls&logo=docker)](https://hub.docker.com/r/linuxserver/pyload-ng)
[![Docker Stars](https://img.shields.io/docker/stars/linuxserver/pyload-ng.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=stars&logo=docker)](https://hub.docker.com/r/linuxserver/pyload-ng)
[![Jenkins Build](https://img.shields.io/jenkins/build?labelColor=555555&logoColor=ffffff&style=for-the-badge&jobUrl=https%3A%2F%2Fci.linuxserver.io%2Fjob%2FDocker-Pipeline-Builders%2Fjob%2Fdocker-pyload-ng%2Fjob%2Fmain%2F&logo=jenkins)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-pyload-ng/job/main/)
[![Jenkins Build](https://img.shields.io/jenkins/build?labelColor=555555&logoColor=ffffff&style=for-the-badge&jobUrl=https%3A%2F%2Fci.linuxserver.io%2Fjob%2FDocker-Pipeline-Builders%2Fjob%2Fdocker-pyload-ng%2Fjob%2Fdevelop%2F&logo=jenkins)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-pyload-ng/job/develop/)
[![LSIO CI](https://img.shields.io/badge/dynamic/yaml?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=CI&query=CI&url=https%3A%2F%2Fci-tests.linuxserver.io%2Flinuxserver%2Fpyload-ng%2Flatest%2Fci-status.yml)](https://ci-tests.linuxserver.io/linuxserver/pyload-ng/latest/index.html)
[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://github.com/linuxserver/docker-templates/raw/master/linuxserver.io/img/pyload-logo.png)](https://pyload.net/)
[![pyload-ng](https://pyload.net/img/banner.png)](https://pyload.net/)
## Supported Architectures
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/).
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/).
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:develop` should retrieve the correct image for your arch, but you can also pull specific arch images via tags.
The architectures supported by this image are:
@ -53,6 +56,7 @@ The architectures supported by this image are:
| :----: | :----: | ---- |
| x86-64 | ✅ | amd64-\<version tag\> |
| arm64 | ✅ | arm64v8-\<version tag\> |
| armhf | ❌ | |
## Version Tags
@ -62,10 +66,9 @@ This image provides various versions that are available via tags. Please read th
| :----: | :----: |--- |
| latest | ✅ | Stable releases from pyLoad Next |
| develop | ✅ | Releases from pyload Next develop branch |
## 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:
username - **pyload**
password - **pyload**
@ -73,25 +76,23 @@ For general usage please see the pyLoad wiki [here](https://github.com/pyload/py
## Usage
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.
Here are some example snippets to help you get started creating a container.
### docker-compose (recommended, [click here for more info](https://docs.linuxserver.io/general/docker-compose))
```yaml
---
version: "2.1"
services:
pyload-ng:
image: lscr.io/linuxserver/pyload-ng:latest
image: lscr.io/linuxserver/pyload-ng:develop
container_name: pyload-ng
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
volumes:
- /path/to/pyload-ng/config:/config
- /path/to/appdata/config:/config
- /path/to/downloads:/downloads
ports:
- 8000:8000
@ -109,24 +110,25 @@ docker run -d \
-e TZ=Etc/UTC \
-p 8000:8000 \
-p 9666:9666 `#optional` \
-v /path/to/pyload-ng/config:/config \
-v /path/to/appdata/config:/config \
-v /path/to/downloads:/downloads \
--restart unless-stopped \
lscr.io/linuxserver/pyload-ng:latest
lscr.io/linuxserver/pyload-ng:develop
```
## Parameters
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.
Container images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate `<external>:<internal>` respectively. For example, `-p 8080:80` would expose port `80` from inside the container to be accessible from the host's IP on port `8080` outside the container.
| Parameter | Function |
| :----: | --- |
| `-p 8000:8000` | Allows HTTP access to the application |
| `-p 8000` | Allows HTTP access to the application |
| `-p 9666` | Click'n'Load port. |
| `-e PUID=1000` | for UserID - 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). |
| `-v /config` | Persistent config files |
| `-v /config` | pyLoad Configuration and files database |
| `-v /downloads` | Destination of pyLoad downloads |
## Environment variables from files (Docker secrets)
@ -136,10 +138,10 @@ You can set any environment variable from a file by using a special prepend `FIL
As an example:
```bash
-e FILE__MYVAR=/run/secrets/mysecretvariable
-e FILE__PASSWORD=/run/secrets/mysecretpassword
```
Will set the environment variable `MYVAR` based on the contents of the `/run/secrets/mysecretvariable` file.
Will set the environment variable `PASSWORD` based on the contents of the `/run/secrets/mysecretpassword` file.
## Umask for running applications
@ -148,20 +150,15 @@ Keep in mind umask is not chmod it subtracts from permissions based on it's valu
## User / Group Identifiers
When using volumes (`-v` flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user `PUID` and group `PGID`.
When using volumes (`-v` flags) permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user `PUID` and group `PGID`.
Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic.
In this instance `PUID=1000` and `PGID=1000`, to find yours use `id your_user` as below:
In this instance `PUID=1000` and `PGID=1000`, to find yours use `id user` as below:
```bash
id your_user
```
Example output:
```text
uid=1000(your_user) gid=1000(your_user) groups=1000(your_user)
$ id username
uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)
```
## Docker Mods
@ -172,101 +169,53 @@ We publish various [Docker Mods](https://github.com/linuxserver/docker-mods) to
## Support Info
* Shell access whilst the container is running:
```bash
docker exec -it pyload-ng /bin/bash
```
* 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
```
* Shell access whilst the container is running: `docker exec -it pyload-ng /bin/bash`
* To monitor the logs of the container in realtime: `docker logs -f pyload-ng`
* container version number
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' pyload-ng`
* image version number
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/pyload-ng:develop`
## 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 (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.
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.
Below are the instructions for updating containers:
### Via Docker Compose
* Update images:
* All images:
```bash
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
```
* Update all images: `docker-compose pull`
* or update a single image: `docker-compose pull pyload-ng`
* Let compose update all containers as necessary: `docker-compose up -d`
* or update a single container: `docker-compose up -d pyload-ng`
* You can also remove the old dangling images: `docker image prune`
### Via Docker Run
* Update the image:
```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
```
* Update the image: `docker pull lscr.io/linuxserver/pyload-ng:develop`
* Stop the running container: `docker stop pyload-ng`
* Delete the container: `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)
* You can also remove the old dangling images:
* You can also remove the old dangling images: `docker image prune`
```bash
docker image prune
```
### Via Watchtower auto-updater (only use if you don't remember the original parameters)
* Pull the latest image at its tag and replace it with the same env variables in one run:
```bash
docker run --rm \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower \
--run-once 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)
>[!TIP]
>We recommend [Diun](https://crazymax.dev/diun/) for update notifications. Other tools that automatically update containers unattended are not recommended or supported.
* We recommend [Diun](https://crazymax.dev/diun/) for update notifications. Other tools that automatically update containers unattended are not recommended or supported.
## Building locally
@ -278,30 +227,23 @@ cd docker-pyload-ng
docker build \
--no-cache \
--pull \
-t lscr.io/linuxserver/pyload-ng:latest .
-t lscr.io/linuxserver/pyload-ng:develop .
```
The ARM variants can be built on x86_64 hardware and vice versa using `lscr.io/linuxserver/qemu-static`
The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static`
```bash
docker run --rm --privileged lscr.io/linuxserver/qemu-static --reset
docker run --rm --privileged multiarch/qemu-user-static:register --reset
```
Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64`.
## 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 develop to alpine 3.17.
* **02.02.22:** - Add ffmpeg for the Youtube plugin.
* **24.01.22:** - Replace unrar with p7zip.
* **24.01.22:** - Initial release.

View File

@ -2,13 +2,16 @@
# jenkins variables
project_name: docker-pyload-ng
external_type: pip_version
release_type: stable
release_tag: latest
ls_branch: main
external_type: github_commit
release_type: prerelease
release_tag: develop
ls_branch: develop
build_armhf: false
repo_vars:
- EXT_PIP = 'pyload-ng'
- BUILD_VERSION_ARG = 'PYLOAD_VERSION'
- EXT_GIT_BRANCH = 'develop'
- EXT_USER = 'pyload'
- EXT_REPO = 'pyload'
- BUILD_VERSION_ARG = 'PYLOAD_COMMIT'
- LS_USER = 'linuxserver'
- LS_REPO = 'docker-pyload-ng'
- CONTAINER_NAME = 'pyload-ng'
@ -22,8 +25,8 @@ repo_vars:
- CI_PORT='8000'
- CI_SSL='false'
- CI_DELAY='120'
- CI_DOCKERENV=''
- CI_AUTH=''
- CI_DOCKERENV='TZ=US/Pacific'
- CI_AUTH='user:password'
- CI_WEBPATH=''
sponsor_links:
- { name: "pyLoad", url: "https://PayPal.Me/nitzo2001/0usd" }

View File

@ -1,347 +1,197 @@
NAME VERSION TYPE
7zip 24.09-r0 apk
Simple Launcher 1.1.0.14 binary (+5 duplicates)
acl-libs 2.3.2-r1 apk
aia-chaser 3.4.0 python
aiodns 4.0.0 python
alpine-baselayout 3.7.0-r0 apk
alpine-baselayout-data 3.7.0-r0 apk
alpine-keys 2.5-r0 apk
alpine-release 3.22.3-r0 apk
alsa-lib 1.2.14-r0 apk
annotated-types 0.7.0 python
anstream 0.6.8 rust-crate
anstyle 1.0.4 rust-crate
anstyle-parse 0.2.3 rust-crate
anstyle-query 1.0.2 rust-crate
anyhow 1.0.79 rust-crate
anyhow 1.0.98 rust-crate
aom-libs 3.12.1-r0 apk
apk-tools 2.14.9-r3 apk
arg_enum_proc_macro 0.3.4 rust-crate
arrayvec 0.7.4 rust-crate
autocommand 2.2.2 python
av-metrics 0.9.1 rust-crate
av1-grain 0.2.3 rust-crate
babel 2.18.0 python
backports-tarfile 1.2.0 python
backports-zstd 1.3.0 python
bash 5.2.37-r0 apk
beautifulsoup4 4.14.3 python
bitflags 2.4.1 rust-crate
bitmath 1.3.3.1 python
bitstream-io 2.2.0 rust-crate
bitstream-io 2.6.0 rust-crate
bitvec 1.0.1 rust-crate
bitvec_helpers 3.1.6 rust-crate
blinker 1.9.0 python
brotli 1.2.0 python
brotli-libs 1.1.0-r2 apk
busybox 1.37.0-r20 apk
busybox-binsh 1.37.0-r20 apk
c-ares 1.34.6-r0 apk
ca-certificates 20250911-r0 apk
ca-certificates-bundle 20250911-r0 apk
cachelib 0.13.0 python
cairo 1.18.4-r0 apk
catatonit 0.2.1-r0 apk
certifi 2026.2.25 python
cffi 2.0.0 python
cfg-if 1.0.0 rust-crate
cheroot 11.1.2 python
cjson 1.7.19-r0 apk
clap 4.4.14 rust-crate
clap_builder 4.4.14 rust-crate
clap_complete 4.4.6 rust-crate
clap_derive 4.4.7 rust-crate
clap_lex 0.6.0 rust-crate
cli UNKNOWN binary
cli-32 UNKNOWN binary
cli-64 UNKNOWN binary
cli-arm64 UNKNOWN binary
click 8.3.1 python
colorchoice 1.0.0 rust-crate
colorlog 6.10.1 python
console 0.15.8 rust-crate
coreutils 9.7-r1 apk
coreutils-env 9.7-r1 apk
coreutils-fmt 9.7-r1 apk
coreutils-sha512sum 9.7-r1 apk
crc 3.3.0 rust-crate
crc-catalog 2.4.0 rust-crate
crossbeam 0.8.4 rust-crate
crossbeam-channel 0.5.14 rust-crate
crossbeam-deque 0.8.5 rust-crate
crossbeam-epoch 0.9.18 rust-crate
crossbeam-queue 0.3.11 rust-crate
crossbeam-utils 0.8.19 rust-crate
cryptography 46.0.5 python
curl 8.14.1-r2 apk
dbus-libs 1.16.2-r1 apk
defusedxml 0.7.1 python
dolby_vision 3.3.1 rust-crate
either 1.9.0 rust-crate
errno 0.3.8 rust-crate
fern 0.6.2 rust-crate
ffmpeg 6.1.2-r2 apk
ffmpeg-libavcodec 6.1.2-r2 apk
ffmpeg-libavdevice 6.1.2-r2 apk
ffmpeg-libavfilter 6.1.2-r2 apk
ffmpeg-libavformat 6.1.2-r2 apk
ffmpeg-libavutil 6.1.2-r2 apk
ffmpeg-libpostproc 6.1.2-r2 apk
ffmpeg-libswresample 6.1.2-r2 apk
ffmpeg-libswscale 6.1.2-r2 apk
filetype 1.2.0 python
findutils 4.10.0-r0 apk
flask 3.1.3 python
flask-babel 4.0.0 python
flask-caching 1.11.1 python
flask-compress 1.23 python
flask-session 0.8.0 python
flask-themes2 1.0.1 python
flask-wtf 1.2.2 python
fontconfig 2.15.0-r3 apk
freetype 2.13.3-r0 apk
fribidi 1.0.16-r1 apk
funty 2.0.0 rust-crate
gcompat 1.1.0-r4 apk
gdbm 1.24-r0 apk
getrandom 0.2.12 rust-crate
giflib 5.2.2-r1 apk
glib 2.84.4-r0 apk
glslang-libs 1.4.309.0-r0 apk
graphite2 1.3.14-r6 apk
gui UNKNOWN binary
gui-32 UNKNOWN binary
gui-64 UNKNOWN binary
gui-arm64 UNKNOWN binary
harfbuzz 11.2.1-r0 apk
heck 0.4.1 rust-crate
hwdata-pci 0.395-r0 apk
icu-data-en 76.1-r1 apk
icu-libs 76.1-r1 apk
imath 3.1.12-r0 apk
importlib-metadata 8.7.1 python
interpolate_name 0.2.4 rust-crate
itertools 0.10.5 rust-crate
itertools 0.12.0 rust-crate
itsdangerous 2.2.0 python
ivf 0.1.3 rust-crate
jaraco-context 6.1.0 python
jaraco-functools 4.4.0 python (+1 duplicate)
jaraco-text 4.0.0 python
jinja2 3.1.6 python
jq 1.8.1-r0 apk
lab 0.11.0 rust-crate
lame-libs 3.100-r5 apk
lazy_static 1.4.0 rust-crate
lcms2 2.16-r0 apk
leptonica 1.85.0-r0 apk
libSvtAv1Enc 2.3.0-r0 apk
libapk2 2.14.9-r3 apk
libass 0.17.3-r0 apk
libasyncns 0.8-r4 apk
libatomic 14.2.0-r6 apk
libattr 2.5.2-r2 apk
libblkid 2.41-r9 apk
libbluray 1.3.4-r1 apk
libbsd 0.12.2-r0 apk
libbz2 1.0.8-r6 apk
libc 0.2.155 rust-crate
libc 0.2.172 rust-crate
libcrypto3 3.5.5-r0 apk
libcurl 8.14.1-r2 apk
libdav1d 1.5.1-r0 apk
libdeflate 1.23-r0 apk
libdovi 3.3.1-r1 apk
libdrm 2.4.124-r0 apk
libeconf 0.6.3-r0 apk
libexpat 2.7.4-r0 apk
libffi 3.4.8-r0 apk
libflac 1.4.3-r1 apk
libgcc 14.2.0-r6 apk
libgomp 14.2.0-r6 apk
libhwy 1.0.7-r1 apk
libidn2 2.3.7-r0 apk
libintl 0.24.1-r0 apk
libjpeg-turbo 3.1.0-r0 apk
libjxl 0.10.3-r2 apk
libltdl 2.5.4-r1 apk
libmd 1.1.0-r0 apk
libmount 2.41-r9 apk
libncursesw 6.5_p20250503-r0 apk
libogg 1.3.5-r5 apk
libopenmpt 0.7.15-r0 apk
libpanelw 6.5_p20250503-r0 apk
libpciaccess 0.18.1-r0 apk
libplacebo 6.338.2-r3 apk
libpng 1.6.55-r0 apk
libproc2 4.0.4-r3 apk
libpsl 0.21.5-r3 apk
libpulse 17.0-r5 apk
librist 0.2.10-r1 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
NAME VERSION TYPE
7zip 22.01-r5 apk
Babel 2.12.1 python
Brotli 1.0.9 python
Flask 2.3.2 python
Flask-Babel 1.0.0 python
Flask-Caching 1.11.1 python
Flask-Compress 1.13 python
Flask-Themes2 1.0.0 python
Jinja2 3.1.2 python
Js2Py 0.74 python
MarkupSafe 2.1.3 python
Simple Launcher Executable 1.1.0.14 dotnet
Werkzeug 2.3.7 python
alpine-baselayout 3.4.3-r1 apk
alpine-baselayout-data 3.4.3-r1 apk
alpine-keys 2.4-r1 apk
alpine-release 3.18.3-r0 apk
alsa-lib 1.2.9-r1 apk
aom-libs 3.6.1-r0 apk
apk-tools 2.14.0-r2 apk
bash 5.2.15-r5 apk
bitmath 1.3.3.1 python
blinker 1.6.2 python
brotli-libs 1.0.9-r14 apk
busybox 1.36.1-r2 apk
busybox-binsh 1.36.1-r2 apk
ca-certificates 20230506-r0 apk
ca-certificates-bundle 20230506-r0 apk
cachelib 0.9.0 python
cairo 1.17.8-r1 apk
certifi 2023.7.22 python
cffi 1.15.1 python
cheroot 8.6.0 python
cjson 1.7.15-r4 apk
click 8.1.7 python
coreutils 9.3-r1 apk
cryptography 41.0.3 python
curl 8.2.1-r0 apk
dbus-libs 1.14.8-r0 apk
ffmpeg 6.0-r15 apk
ffmpeg-libavcodec 6.0-r15 apk
ffmpeg-libavdevice 6.0-r15 apk
ffmpeg-libavfilter 6.0-r15 apk
ffmpeg-libavformat 6.0-r15 apk
ffmpeg-libavutil 6.0-r15 apk
ffmpeg-libpostproc 6.0-r15 apk
ffmpeg-libswresample 6.0-r15 apk
ffmpeg-libswscale 6.0-r15 apk
filetype 1.2.0 python
flac-libs 1.4.3-r0 apk
flask-session2 1.3.1 python
fontconfig 2.14.2-r3 apk
freetype 2.13.0-r5 apk
fribidi 1.0.13-r0 apk
gdbm 1.23-r1 apk
giflib 5.2.1-r4 apk
glib 2.76.4-r0 apk
glslang-libs 1.3.243.0-r1 apk
gmp 6.2.1-r3 apk
gnutls 3.8.0-r2 apk
graphite2 1.3.14-r5 apk
harfbuzz 7.3.0-r0 apk
hwdata-pci 0.370-r0 apk
icu-data-en 73.2-r2 apk
icu-libs 73.2-r2 apk
itsdangerous 2.1.2 python
jaraco.functools 3.8.1 python
jq 1.6-r3 apk
lame-libs 3.100-r5 apk
lcms2 2.15-r2 apk
leptonica 1.83.1-r0 apk
libacl 2.3.1-r3 apk
libass 0.17.1-r0 apk
libasyncns 0.8-r1 apk
libattr 2.5.1-r4 apk
libblkid 2.38.1-r8 apk
libbluray 1.3.4-r0 apk
libbsd 0.11.7-r1 apk
libbz2 1.0.8-r5 apk
libc-utils 0.7.2-r5 apk
libcrypto3 3.1.2-r0 apk
libcurl 8.2.1-r0 apk
libdav1d 1.2.1-r0 apk
libdrm 2.4.115-r4 apk
libexpat 2.5.0-r1 apk
libffi 3.4.4-r2 apk
libgcc 12.2.1_git20220924-r10 apk
libgomp 12.2.1_git20220924-r10 apk
libhwy 1.0.4-r1 apk
libidn2 2.3.4-r1 apk
libintl 0.21.1-r7 apk
libjpeg-turbo 2.1.5.1-r3 apk
libjxl 0.8.2-r0 apk
libltdl 2.4.7-r2 apk
libmd 1.0.4-r2 apk
libmount 2.38.1-r8 apk
libncursesw 6.4_p20230506-r0 apk
libogg 1.3.5-r4 apk
libopenmpt 0.7.2-r0 apk
libpanelw 6.4_p20230506-r0 apk
libpciaccess 0.17-r2 apk
libplacebo 5.264.1-r1 apk
libpng 1.6.39-r3 apk
libproc2 4.0.3-r1 apk
libpulse 16.1-r10 apk
librist 0.2.7-r0 apk
libsndfile 1.2.0-r2 apk
libsodium 1.0.18-r3 apk
libsrt 1.5.2-r0 apk
libssh 0.10.5-r0 apk
libssl3 3.1.2-r0 apk
libstdc++ 12.2.1_git20220924-r10 apk
libtasn1 4.19.0-r1 apk
libtheora 1.1.1-r17 apk
libunibreak 5.1-r0 apk
libunistring 1.1-r1 apk
libva 2.18.0-r1 apk
libvdpau 1.5-r1 apk
libvorbis 1.3.7-r1 apk
libvpx 1.13.0-r1 apk
libwebp 1.3.1-r0 apk
libx11 1.8.4-r4 apk
libxau 1.0.11-r2 apk
libxcb 1.15-r1 apk
libxdmcp 1.1.4-r2 apk
libxext 1.3.5-r2 apk
libxfixes 6.0.1-r2 apk
libxft 2.3.8-r1 apk
libxml2 2.11.4-r0 apk
libxrender 0.9.11-r3 apk
libzmq 4.3.4-r4 apk
linux-pam 1.5.2-r10 apk
mbedtls 2.28.4-r0 apk
more-itertools 10.1.0 python
mpdecimal 2.5.1-r2 apk
mpg123-libs 1.31.3-r1 apk
musl 1.2.4-r1 apk
musl-utils 1.2.4-r1 apk
ncurses-terminfo-base 6.4_p20230506-r0 apk
netcat-openbsd 1.219-r1 apk
nettle 3.8.1-r2 apk
nghttp2-libs 1.55.1-r0 apk
numactl 2.0.16-r4 apk
onevpl-libs 2023.2.1-r0 apk
oniguruma 6.9.8-r1 apk
opus 1.4-r0 apk
orc 0.4.34-r0 apk
p11-kit 0.24.1-r2 apk
pango 1.50.14-r1 apk
pcre2 10.42-r1 apk
pip 23.2.1 python
pixman 0.42.2-r1 apk
procps-ng 4.0.3-r1 apk
pyc 0.1-r0 apk
pycparser 2.21 python
pycurl 7.45.2 python
pyjsparser 2.7.1 python
pyload-ng 0.5.0b3 python
python3 3.11.4-r0 apk
python3-pyc 3.11.4-r0 apk
python3-pycache-pyc0 3.11.4-r0 apk
pytz 2022.7.1 python
readline 8.2.1-r1 apk
scanelf 1.3.7-r1 apk
sdl2 2.26.5-r0 apk
semver 2.13.0 python
setuptools 65.5.0 python
shaderc 2023.3-r1 apk
shadow 4.13-r4 apk
six 1.16.0 python
skalibs 2.13.1.1-r1 apk
soxr 0.1.3-r5 apk
speexdsp 1.2.1-r1 apk
spirv-tools 1.3.243.0-r1 apk
sqlite 3.41.2-r2 apk
sqlite-libs 3.41.2-r2 apk
ssl_client 1.36.1-r2 apk
svt-av1-libs 1.6.0-r0 apk
tdb-libs 1.4.8-r1 apk
tesseract-ocr 5.3.2-r0 apk
tiff 4.5.1-r0 apk
tzdata 2023c-r1 apk
tzlocal 5.0.1 python
utmps-libs 0.1.2.1-r1 apk
v4l-utils-libs 1.24.1-r0 apk
vidstab 1.1.1-r0 apk
vulkan-loader 1.3.243.0-r1 apk
wayland-libs-client 1.22.0-r2 apk
wheel 0.41.1 python
x264-libs 0.164_git20220602-r1 apk
x265-libs 3.5-r4 apk
xvidcore 1.3.7-r1 apk
xz-libs 5.4.3-r0 apk
zimg 3.0.5-r0 apk
zlib 1.2.13-r1 apk
zstd-libs 1.5.5-r4 apk

View File

@ -3,94 +3,56 @@
# project information
project_name: pyload-ng
project_url: "https://pyload.net/"
project_logo: "https://github.com/linuxserver/docker-templates/raw/master/linuxserver.io/img/pyload-logo.png"
project_logo: "https://pyload.net/img/banner.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_lsio_github_repo_url: "https://github.com/linuxserver/docker-{{ project_name }}"
project_categories: "Downloaders"
# supported architectures
available_architectures:
- {arch: "{{ arch_x86_64 }}", tag: "amd64-latest"}
- {arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"}
- { arch: "{{ arch_x86_64 }}", tag: "amd64-latest"}
- { arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"}
# development version
development_versions: true
development_versions_items:
- {tag: "latest", desc: "Stable releases from pyLoad Next"}
- {tag: "develop", desc: "Releases from pyload Next develop branch"}
- { tag: "latest", desc: "Stable releases from pyLoad Next" }
- { tag: "develop", desc: "Releases from pyload Next develop branch" }
# container parameters
param_container_name: "{{ project_name }}"
param_usage_include_vols: true
param_volumes:
- {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: "/config", vol_host_path: "/path/to/appdata/config", desc: "pyLoad Configuration and files database" }
- { vol_path: "/downloads", vol_host_path: "/path/to/downloads", desc: "Destination of pyLoad downloads" }
param_usage_include_ports: true
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
opt_param_usage_include_ports: true
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
app_setup_block_enabled: true
app_setup_block: |
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:
username - **pyload**
password - **pyload**
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
changelogs:
- {date: "09.01.26:", desc: "Add gcompat for mini-racer."}
- {date: "01.09.25:", desc: "Add new dep, libatomic."}
- {date: "09.06.25:", desc: "Rebase to Alpine 3.22."}
- {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."}
- { 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 develop 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

@ -3,8 +3,6 @@
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 \
s6-notifyoncheck -d -n 300 -w 1000 -c "nc -z localhost ${PORT:-8000}" \
s6-setuidgid abc pyload --userdir /config --storagedir /downloads