mirror of
https://github.com/linuxserver/docker-webgrabplus.git
synced 2026-04-13 00:04:01 +08:00
Compare commits
111 Commits
5.1.4-ls22
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
995c701b3c | ||
|
|
05aca4830f | ||
|
|
be1ff7e4dd | ||
|
|
4f5f0f9838 | ||
|
|
41522604d3 | ||
|
|
fda953188d | ||
|
|
42173f392b | ||
|
|
4a5575ad52 | ||
|
|
54399d0e47 | ||
|
|
70f740ea07 | ||
|
|
ecf91102b0 | ||
|
|
8c817cef7a | ||
|
|
d6afa85eeb | ||
|
|
39aaffeec9 | ||
|
|
a4044ef246 | ||
|
|
f255b43e02 | ||
|
|
040278e991 | ||
|
|
87c264f77f | ||
|
|
039d97410d | ||
|
|
7168e3db01 | ||
|
|
58ba6644cc | ||
|
|
188a063114 | ||
|
|
b4178ebd4c | ||
|
|
ae1347cb22 | ||
|
|
5fb5bb2030 | ||
|
|
c517dd743f | ||
|
|
8eab444dcc | ||
|
|
e39042f5d7 | ||
|
|
6fe5d35be4 | ||
|
|
9ebc8d095b | ||
|
|
46901a3d83 | ||
|
|
edc1d2cb8c | ||
|
|
06efa2e21d | ||
|
|
a182a9f91d | ||
|
|
bf1aff43e2 | ||
|
|
aae7d8caeb | ||
|
|
1f0af9e9eb | ||
|
|
d7d51fc138 | ||
|
|
cfa9eb6640 | ||
|
|
02ccf5738f | ||
|
|
eb56bf0026 | ||
|
|
62741b8ec4 | ||
|
|
8225724b0b | ||
|
|
83cfbade7a | ||
|
|
ffaa7bea33 | ||
|
|
68e6df4941 | ||
|
|
7dc0ad076f | ||
|
|
b32abd3ac9 | ||
|
|
9b7c04febf | ||
|
|
1822ae3df3 | ||
|
|
ad9539b16a | ||
|
|
a9b14f1812 | ||
|
|
dc97740e85 | ||
|
|
89b99b31c2 | ||
|
|
a49990a798 | ||
|
|
d166dcea59 | ||
|
|
f5482d1799 | ||
|
|
f074167980 | ||
|
|
9c748e11ee | ||
|
|
210bdab345 | ||
|
|
0e282c285e | ||
|
|
4da4be4b07 | ||
|
|
18cc6e3a51 | ||
|
|
a626848038 | ||
|
|
45fa624f29 | ||
|
|
377e8caa40 | ||
|
|
f9ed4010cf | ||
|
|
5578b47b5d | ||
|
|
68f22519a8 | ||
|
|
73619fc557 | ||
|
|
3b48dea822 | ||
|
|
2a3c887512 | ||
|
|
dca2834568 | ||
|
|
dc4b1cdf9a | ||
|
|
8e23f0aa1b | ||
|
|
b416a9e4f6 | ||
|
|
e62f13f879 | ||
|
|
9f9c0bb59d | ||
|
|
8c3f4a53b9 | ||
|
|
bff16ee8b1 | ||
|
|
d116c1d428 | ||
|
|
a9ed5480a8 | ||
|
|
aba780ad9d | ||
|
|
429be0e8e8 | ||
|
|
5251892d7c | ||
|
|
3d197c7d75 | ||
|
|
67f8c7d4e5 | ||
|
|
527505ddc4 | ||
|
|
2ff5344345 | ||
|
|
23ca7aef11 | ||
|
|
3b6570b4bf | ||
|
|
bab63bdeb6 | ||
|
|
4d9796d6d7 | ||
|
|
0c303578fe | ||
|
|
27b322ad39 | ||
|
|
2f1359378d | ||
|
|
bd6679f9f7 | ||
|
|
d0bb94149c | ||
|
|
6bcaf8980a | ||
|
|
2c2823ee5d | ||
|
|
4b8d8092ba | ||
|
|
9c8891ac31 | ||
|
|
d9cc8add0b | ||
|
|
1146a9e755 | ||
|
|
3dd7c77fb9 | ||
|
|
e82b54bfbf | ||
|
|
d666e1e0e1 | ||
|
|
547d8badef | ||
|
|
6f37dbd4e4 | ||
|
|
6a51df5b62 | ||
|
|
53342f7948 |
0
.editorconfig
Executable file → Normal file
0
.editorconfig
Executable file → Normal file
6
.github/CONTRIBUTING.md
vendored
Executable file → Normal file
6
.github/CONTRIBUTING.md
vendored
Executable file → Normal file
@ -6,7 +6,7 @@
|
||||
* Read, and fill the Pull Request template
|
||||
* If this is a fix for a typo (in code, documentation, or the README) please file an issue and let us sort it out. We do not need a PR
|
||||
* If the PR is addressing an existing issue include, closes #\<issue number>, in the body of the PR commit message
|
||||
* If you want to discuss changes, you can also bring it up in [#dev-talk](https://discordapp.com/channels/354974912613449730/757585807061155840) in our [Discord server](https://discord.gg/YWrKVTn)
|
||||
* If you want to discuss changes, you can also bring it up in [#dev-talk](https://discordapp.com/channels/354974912613449730/757585807061155840) in our [Discord server](https://linuxserver.io/discord)
|
||||
|
||||
## Common files
|
||||
|
||||
@ -105,10 +105,10 @@ docker build \
|
||||
-t linuxserver/webgrabplus:latest .
|
||||
```
|
||||
|
||||
The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static`
|
||||
The ARM variants can be built on x86_64 hardware and vice versa using `lscr.io/linuxserver/qemu-static`
|
||||
|
||||
```bash
|
||||
docker run --rm --privileged multiarch/qemu-user-static:register --reset
|
||||
docker run --rm --privileged lscr.io/linuxserver/qemu-static --reset
|
||||
```
|
||||
|
||||
Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64`.
|
||||
|
||||
0
.github/FUNDING.yml
vendored
Executable file → Normal file
0
.github/FUNDING.yml
vendored
Executable file → Normal file
2
.github/ISSUE_TEMPLATE/config.yml
vendored
Executable file → Normal file
2
.github/ISSUE_TEMPLATE/config.yml
vendored
Executable file → Normal file
@ -1,7 +1,7 @@
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: Discord chat support
|
||||
url: https://discord.gg/YWrKVTn
|
||||
url: https://linuxserver.io/discord
|
||||
about: Realtime support / chat with the community and the team.
|
||||
|
||||
- name: Discourse discussion forum
|
||||
|
||||
0
.github/ISSUE_TEMPLATE/issue.bug.yml
vendored
Executable file → Normal file
0
.github/ISSUE_TEMPLATE/issue.bug.yml
vendored
Executable file → Normal file
0
.github/ISSUE_TEMPLATE/issue.feature.yml
vendored
Executable file → Normal file
0
.github/ISSUE_TEMPLATE/issue.feature.yml
vendored
Executable file → Normal file
3
.github/workflows/call_issue_pr_tracker.yml
vendored
Executable file → Normal file
3
.github/workflows/call_issue_pr_tracker.yml
vendored
Executable file → Normal file
@ -8,6 +8,9 @@ on:
|
||||
pull_request_review:
|
||||
types: [submitted,edited,dismissed]
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
manage-project:
|
||||
permissions:
|
||||
|
||||
3
.github/workflows/call_issues_cron.yml
vendored
Executable file → Normal file
3
.github/workflows/call_issues_cron.yml
vendored
Executable file → Normal file
@ -4,6 +4,9 @@ on:
|
||||
- cron: '46 17 * * *'
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
stale:
|
||||
permissions:
|
||||
|
||||
145
.github/workflows/external_trigger.yml
vendored
Executable file → Normal file
145
.github/workflows/external_trigger.yml
vendored
Executable file → Normal file
@ -3,6 +3,9 @@ name: External Trigger Main
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
external-trigger-master:
|
||||
runs-on: ubuntu-latest
|
||||
@ -11,18 +14,31 @@ jobs:
|
||||
|
||||
- name: External Trigger
|
||||
if: github.ref == 'refs/heads/master'
|
||||
env:
|
||||
SKIP_EXTERNAL_TRIGGER: ${{ vars.SKIP_EXTERNAL_TRIGGER }}
|
||||
run: |
|
||||
if [ -n "${{ secrets.PAUSE_EXTERNAL_TRIGGER_WEBGRABPLUS_MASTER }}" ]; then
|
||||
echo "**** Github secret PAUSE_EXTERNAL_TRIGGER_WEBGRABPLUS_MASTER is set; skipping trigger. ****"
|
||||
echo "Github secret \`PAUSE_EXTERNAL_TRIGGER_WEBGRABPLUS_MASTER\` is set; skipping trigger." >> $GITHUB_STEP_SUMMARY
|
||||
printf "# External trigger for docker-webgrabplus\n\n" >> $GITHUB_STEP_SUMMARY
|
||||
if grep -q "^webgrabplus_master_" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
|
||||
echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY
|
||||
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`webgrabplus_master_\`; will skip trigger if version matches." >> $GITHUB_STEP_SUMMARY
|
||||
elif grep -q "^webgrabplus_master" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
|
||||
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
|
||||
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`webgrabplus_master\`; skipping trigger." >> $GITHUB_STEP_SUMMARY
|
||||
exit 0
|
||||
fi
|
||||
echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY
|
||||
echo "> External trigger running off of master branch. To disable this trigger, add \`webgrabplus_master\` into the Github organizational variable \`SKIP_EXTERNAL_TRIGGER\`." >> $GITHUB_STEP_SUMMARY
|
||||
printf "\n## Retrieving external version\n\n" >> $GITHUB_STEP_SUMMARY
|
||||
EXT_RELEASE=$(curl -fsL 'https://webgrabplus.com/download/sw' | grep -m1 '/download/sw/v' | sed -r 's|.*/download/sw/v(.*).>V.*|\1|')
|
||||
echo "Type is \`custom_version_command\`" >> $GITHUB_STEP_SUMMARY
|
||||
if grep -q "^webgrabplus_master_${EXT_RELEASE}" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
|
||||
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
|
||||
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` matches current external release; skipping trigger." >> $GITHUB_STEP_SUMMARY
|
||||
exit 0
|
||||
fi
|
||||
echo "**** External trigger running off of master branch. To disable this trigger, set a Github secret named \"PAUSE_EXTERNAL_TRIGGER_WEBGRABPLUS_MASTER\". ****"
|
||||
echo "External trigger running off of master branch. To disable this trigger, set a Github secret named \`PAUSE_EXTERNAL_TRIGGER_WEBGRABPLUS_MASTER\`" >> $GITHUB_STEP_SUMMARY
|
||||
echo "**** Retrieving external version ****"
|
||||
EXT_RELEASE=$(curl -fsL 'http://webgrabplus.com/download/sw' | grep -m1 '/download/sw/v' | sed -r 's|.*/download/sw/v(.*).>V.*|\1|')
|
||||
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 webgrabplus branch master"
|
||||
GHA_TRIGGER_URL="https://github.com/linuxserver/docker-webgrabplus/actions/runs/${{ github.run_id }}"
|
||||
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 16711680,
|
||||
@ -30,25 +46,43 @@ jobs:
|
||||
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
|
||||
exit 1
|
||||
fi
|
||||
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 ****"
|
||||
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
|
||||
image="linuxserver/webgrabplus"
|
||||
tag="latest"
|
||||
token=$(curl -sX GET \
|
||||
"https://ghcr.io/token?scope=repository%3Alinuxserver%2Fwebgrabplus%3Apull" \
|
||||
| jq -r '.token')
|
||||
multidigest=$(curl -s \
|
||||
multidigest=$(curl -s \
|
||||
--header "Accept: application/vnd.docker.distribution.manifest.v2+json" \
|
||||
--header "Accept: application/vnd.oci.image.index.v1+json" \
|
||||
--header "Authorization: Bearer ${token}" \
|
||||
"https://ghcr.io/v2/${image}/manifests/${tag}")
|
||||
if jq -e '.layers // empty' <<< "${multidigest}" >/dev/null 2>&1; then
|
||||
# If there's a layer element it's a single-arch manifest so just get that digest
|
||||
digest=$(jq -r '.config.digest' <<< "${multidigest}")
|
||||
else
|
||||
# Otherwise it's multi-arch or has manifest annotations
|
||||
if jq -e '.manifests[]?.annotations // empty' <<< "${multidigest}" >/dev/null 2>&1; then
|
||||
# Check for manifest annotations and delete if found
|
||||
multidigest=$(jq 'del(.manifests[] | select(.annotations))' <<< "${multidigest}")
|
||||
fi
|
||||
if [[ $(jq '.manifests | length' <<< "${multidigest}") -gt 1 ]]; then
|
||||
# If there's still more than one digest, it's multi-arch
|
||||
multidigest=$(jq -r ".manifests[] | select(.platform.architecture == \"amd64\").digest?" <<< "${multidigest}")
|
||||
else
|
||||
# Otherwise it's single arch
|
||||
multidigest=$(jq -r ".manifests[].digest?" <<< "${multidigest}")
|
||||
fi
|
||||
if digest=$(curl -s \
|
||||
--header "Accept: application/vnd.docker.distribution.manifest.v2+json" \
|
||||
--header "Accept: application/vnd.oci.image.manifest.v1+json" \
|
||||
--header "Authorization: Bearer ${token}" \
|
||||
"https://ghcr.io/v2/${image}/manifests/${tag}" \
|
||||
| jq -r 'first(.manifests[].digest)')
|
||||
digest=$(curl -s \
|
||||
--header "Accept: application/vnd.docker.distribution.manifest.v2+json" \
|
||||
--header "Authorization: Bearer ${token}" \
|
||||
"https://ghcr.io/v2/${image}/manifests/${multidigest}" \
|
||||
| jq -r '.config.digest')
|
||||
"https://ghcr.io/v2/${image}/manifests/${multidigest}"); then
|
||||
digest=$(jq -r '.config.digest' <<< "${digest}");
|
||||
fi
|
||||
fi
|
||||
image_info=$(curl -sL \
|
||||
--header "Authorization: Bearer ${token}" \
|
||||
"https://ghcr.io/v2/${image}/blobs/${digest}")
|
||||
@ -60,45 +94,54 @@ 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 "**** 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 webgrabplus tag latest"
|
||||
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 16711680,
|
||||
"description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n"}],
|
||||
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
|
||||
exit 1
|
||||
fi
|
||||
echo "**** Last pushed version: ${IMAGE_VERSION} ****"
|
||||
echo "Last pushed version: ${IMAGE_VERSION}" >> $GITHUB_STEP_SUMMARY
|
||||
if [ "${EXT_RELEASE}" == "${IMAGE_VERSION}" ]; then
|
||||
echo "**** Version ${EXT_RELEASE} already pushed, exiting ****"
|
||||
echo "Version ${EXT_RELEASE} already pushed, exiting" >> $GITHUB_STEP_SUMMARY
|
||||
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
|
||||
exit 0
|
||||
elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-webgrabplus/job/master/lastBuild/api/json | jq -r '.building') == "true" ]; then
|
||||
echo "**** New version ${EXT_RELEASE} found; but there already seems to be an active build on Jenkins; exiting ****"
|
||||
echo "New version ${EXT_RELEASE} found; but there already seems to be an active build on Jenkins; exiting" >> $GITHUB_STEP_SUMMARY
|
||||
echo "New version \`${EXT_RELEASE}\` found; but there already seems to be an active build on Jenkins; exiting" >> $GITHUB_STEP_SUMMARY
|
||||
exit 0
|
||||
else
|
||||
echo "**** New version ${EXT_RELEASE} found; old version was ${IMAGE_VERSION}. Triggering new build ****"
|
||||
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-webgrabplus/job/master/buildWithParameters?PACKAGE_CHECK=false \
|
||||
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
|
||||
echo "**** Jenkins job queue url: ${response%$'\r'} ****"
|
||||
echo "**** Sleeping 10 seconds until job starts ****"
|
||||
sleep 10
|
||||
buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url')
|
||||
buildurl="${buildurl%$'\r'}"
|
||||
echo "**** Jenkins job build url: ${buildurl} ****"
|
||||
echo "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 webgrabplus tag latest. Old version:${IMAGE_VERSION} New version:${EXT_RELEASE}"
|
||||
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903,
|
||||
"description": "**Build Triggered** \n**Reason:** '"${TRIGGER_REASON}"' \n**Build URL:** '"${buildurl}display/redirect"' \n"}],
|
||||
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
|
||||
if [[ "${artifacts_found}" == "false" ]]; then
|
||||
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
|
||||
echo "> New version detected, but not all artifacts are published yet; skipping trigger" >> $GITHUB_STEP_SUMMARY
|
||||
FAILURE_REASON="New version ${EXT_RELEASE} for webgrabplus 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-webgrabplus/job/master/buildWithParameters?PACKAGE_CHECK=false \
|
||||
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
|
||||
echo "Jenkins [job queue url](${response%$'\r'})" >> $GITHUB_STEP_SUMMARY
|
||||
echo "Sleeping 10 seconds until job starts" >> $GITHUB_STEP_SUMMARY
|
||||
sleep 10
|
||||
buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url')
|
||||
buildurl="${buildurl%$'\r'}"
|
||||
echo "Jenkins job [build url](${buildurl})" >> $GITHUB_STEP_SUMMARY
|
||||
echo "Attempting to change the Jenkins job description" >> $GITHUB_STEP_SUMMARY
|
||||
curl -iX POST \
|
||||
"${buildurl}submitDescription" \
|
||||
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} \
|
||||
--data-urlencode "description=GHA external trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \
|
||||
--data-urlencode "Submit=Submit"
|
||||
echo "**** Notifying Discord ****"
|
||||
TRIGGER_REASON="A version change was detected for webgrabplus 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
|
||||
|
||||
27
.github/workflows/external_trigger_scheduler.yml
vendored
Executable file → Normal file
27
.github/workflows/external_trigger_scheduler.yml
vendored
Executable file → Normal file
@ -5,6 +5,9 @@ on:
|
||||
- cron: '26 * * * *'
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
external-trigger-scheduler:
|
||||
runs-on: ubuntu-latest
|
||||
@ -15,31 +18,31 @@ jobs:
|
||||
|
||||
- name: External Trigger Scheduler
|
||||
run: |
|
||||
echo "**** Branches found: ****"
|
||||
git for-each-ref --format='%(refname:short)' refs/remotes
|
||||
for br in $(git for-each-ref --format='%(refname:short)' refs/remotes)
|
||||
printf "# External trigger scheduler for docker-webgrabplus\n\n" >> $GITHUB_STEP_SUMMARY
|
||||
printf "Found the branches:\n\n%s\n" "$(git for-each-ref --format='- %(refname:lstrip=3)' refs/remotes)" >> $GITHUB_STEP_SUMMARY
|
||||
for br in $(git for-each-ref --format='%(refname:lstrip=3)' refs/remotes)
|
||||
do
|
||||
br=$(echo "$br" | sed 's|origin/||g')
|
||||
echo "**** Evaluating branch ${br} ****"
|
||||
if [[ "${br}" == "HEAD" ]]; then
|
||||
printf "\nSkipping %s.\n" ${br} >> $GITHUB_STEP_SUMMARY
|
||||
continue
|
||||
fi
|
||||
printf "\n## Evaluating \`%s\`\n\n" ${br} >> $GITHUB_STEP_SUMMARY
|
||||
ls_jenkins_vars=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-webgrabplus/${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 ${br} appears to be live and trigger is not os; checking workflow. ****"
|
||||
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-webgrabplus/${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 ${br}" >> $GITHUB_STEP_SUMMARY
|
||||
echo "Triggering external trigger workflow for branch." >> $GITHUB_STEP_SUMMARY
|
||||
curl -iX POST \
|
||||
-H "Authorization: token ${{ secrets.CR_PAT }}" \
|
||||
-H "Accept: application/vnd.github.v3+json" \
|
||||
-d "{\"ref\":\"refs/heads/${br}\"}" \
|
||||
https://api.github.com/repos/linuxserver/docker-webgrabplus/actions/workflows/external_trigger.yml/dispatches
|
||||
else
|
||||
echo "**** Workflow doesn't exist; skipping trigger. ****"
|
||||
echo "Skipping branch ${br} due to no external trigger workflow present." >> $GITHUB_STEP_SUMMARY
|
||||
echo "Skipping branch due to no external trigger workflow present." >> $GITHUB_STEP_SUMMARY
|
||||
fi
|
||||
else
|
||||
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
|
||||
echo "Skipping branch due to being detected as dev branch or having no external version." >> $GITHUB_STEP_SUMMARY
|
||||
fi
|
||||
done
|
||||
|
||||
6
.github/workflows/greetings.yml
vendored
Executable file → Normal file
6
.github/workflows/greetings.yml
vendored
Executable file → Normal file
@ -2,8 +2,14 @@ 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
|
||||
|
||||
42
.github/workflows/package_trigger.yml
vendored
42
.github/workflows/package_trigger.yml
vendored
@ -1,42 +0,0 @@
|
||||
name: Package Trigger Main
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
package-trigger-master:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4.1.1
|
||||
|
||||
- name: Package Trigger
|
||||
if: github.ref == 'refs/heads/master'
|
||||
run: |
|
||||
if [ -n "${{ secrets.PAUSE_PACKAGE_TRIGGER_WEBGRABPLUS_MASTER }}" ]; then
|
||||
echo "**** Github secret PAUSE_PACKAGE_TRIGGER_WEBGRABPLUS_MASTER is set; skipping trigger. ****"
|
||||
echo "Github secret \`PAUSE_PACKAGE_TRIGGER_WEBGRABPLUS_MASTER\` is set; skipping trigger." >> $GITHUB_STEP_SUMMARY
|
||||
exit 0
|
||||
fi
|
||||
if [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-webgrabplus/job/master/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 master branch. To disable, set a Github secret named \"PAUSE_PACKAGE_TRIGGER_WEBGRABPLUS_MASTER\". ****"
|
||||
echo "Package trigger running off of master branch. To disable, set a Github secret named \`PAUSE_PACKAGE_TRIGGER_WEBGRABPLUS_MASTER\`" >> $GITHUB_STEP_SUMMARY
|
||||
response=$(curl -iX POST \
|
||||
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-webgrabplus/job/master/buildWithParameters?PACKAGE_CHECK=true \
|
||||
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
|
||||
echo "**** Jenkins job queue url: ${response%$'\r'} ****"
|
||||
echo "**** Sleeping 10 seconds until job starts ****"
|
||||
sleep 10
|
||||
buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url')
|
||||
buildurl="${buildurl%$'\r'}"
|
||||
echo "**** Jenkins job build url: ${buildurl} ****"
|
||||
echo "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"
|
||||
105
.github/workflows/package_trigger_scheduler.yml
vendored
Executable file → Normal file
105
.github/workflows/package_trigger_scheduler.yml
vendored
Executable file → Normal file
@ -5,6 +5,9 @@ on:
|
||||
- cron: '14 8 * * 4'
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
package-trigger-scheduler:
|
||||
runs-on: ubuntu-latest
|
||||
@ -14,37 +17,87 @@ jobs:
|
||||
fetch-depth: '0'
|
||||
|
||||
- name: Package Trigger Scheduler
|
||||
env:
|
||||
SKIP_PACKAGE_TRIGGER: ${{ vars.SKIP_PACKAGE_TRIGGER }}
|
||||
run: |
|
||||
echo "**** Branches found: ****"
|
||||
git for-each-ref --format='%(refname:short)' refs/remotes
|
||||
for br in $(git for-each-ref --format='%(refname:short)' refs/remotes)
|
||||
printf "# Package trigger scheduler for docker-webgrabplus\n\n" >> $GITHUB_STEP_SUMMARY
|
||||
printf "Found the branches:\n\n%s\n" "$(git for-each-ref --format='- %(refname:lstrip=3)' refs/remotes)" >> $GITHUB_STEP_SUMMARY
|
||||
for br in $(git for-each-ref --format='%(refname:lstrip=3)' refs/remotes)
|
||||
do
|
||||
br=$(echo "$br" | sed 's|origin/||g')
|
||||
echo "**** Evaluating branch ${br} ****"
|
||||
ls_branch=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-webgrabplus/${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-webgrabplus/${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} "
|
||||
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-webgrabplus/actions/workflows/package_trigger.yml/dispatches
|
||||
sleep 30
|
||||
if [[ "${br}" == "HEAD" ]]; then
|
||||
printf "\nSkipping %s.\n" ${br} >> $GITHUB_STEP_SUMMARY
|
||||
continue
|
||||
fi
|
||||
printf "\n## Evaluating \`%s\`\n\n" ${br} >> $GITHUB_STEP_SUMMARY
|
||||
JENKINS_VARS=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-webgrabplus/${br}/jenkins-vars.yml)
|
||||
if ! curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-webgrabplus/${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-webgrabplus/${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 "^webgrabplus_${br}" <<< "${SKIP_PACKAGE_TRIGGER}"; then
|
||||
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
|
||||
echo "> Github organizational variable \`SKIP_PACKAGE_TRIGGER\` contains \`webgrabplus_${br}\`; skipping trigger." >> $GITHUB_STEP_SUMMARY
|
||||
skipped_branches="${skipped_branches}${br} "
|
||||
elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-webgrabplus/job/${br}/lastBuild/api/json | jq -r '.building' 2>/dev/null) == "true" ]; then
|
||||
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
|
||||
echo "> There already seems to be an active build on Jenkins; skipping package trigger for ${br}" >> $GITHUB_STEP_SUMMARY
|
||||
skipped_branches="${skipped_branches}${br} "
|
||||
else
|
||||
echo "**** Workflow doesn't exist; skipping trigger. ****"
|
||||
echo "Skipping branch ${br} due to no package trigger workflow present." >> $GITHUB_STEP_SUMMARY
|
||||
echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY
|
||||
echo "> Triggering package trigger for branch ${br}" >> $GITHUB_STEP_SUMMARY
|
||||
printf "> To disable, add \`webgrabplus_%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-webgrabplus/job/${br}/buildWithParameters?PACKAGE_CHECK=true \
|
||||
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
|
||||
if [[ -z "${response}" ]]; then
|
||||
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
|
||||
echo "> Jenkins build could not be triggered. Skipping branch."
|
||||
continue
|
||||
fi
|
||||
echo "Jenkins [job queue url](${response%$'\r'})" >> $GITHUB_STEP_SUMMARY
|
||||
echo "Sleeping 10 seconds until job starts" >> $GITHUB_STEP_SUMMARY
|
||||
sleep 10
|
||||
buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url')
|
||||
buildurl="${buildurl%$'\r'}"
|
||||
echo "Jenkins job [build url](${buildurl})" >> $GITHUB_STEP_SUMMARY
|
||||
echo "Attempting to change the Jenkins job description" >> $GITHUB_STEP_SUMMARY
|
||||
if ! curl -ifX POST \
|
||||
"${buildurl}submitDescription" \
|
||||
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} \
|
||||
--data-urlencode "description=GHA package trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \
|
||||
--data-urlencode "Submit=Submit"; then
|
||||
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
|
||||
echo "> Unable to change the Jenkins job description."
|
||||
fi
|
||||
sleep 20
|
||||
fi
|
||||
else
|
||||
echo "**** ${br} appears to be a dev branch; skipping trigger. ****"
|
||||
echo "Skipping branch ${br} due to being detected as dev branch." >> $GITHUB_STEP_SUMMARY
|
||||
fi
|
||||
done
|
||||
echo "**** Package check build(s) triggered for branch(es): ${triggered_branches} ****"
|
||||
echo "**** Notifying Discord ****"
|
||||
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903,
|
||||
"description": "**Package Check Build(s) Triggered for webgrabplus** \n**Branch(es):** '"${triggered_branches}"' \n**Build URL:** '"https://ci.linuxserver.io/blue/organizations/jenkins/Docker-Pipeline-Builders%2Fdocker-webgrabplus/activity/"' \n"}],
|
||||
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
|
||||
if [[ -n "${triggered_branches}" ]] || [[ -n "${skipped_branches}" ]]; then
|
||||
if [[ -n "${triggered_branches}" ]]; then
|
||||
NOTIFY_BRANCHES="**Triggered:** ${triggered_branches} \n"
|
||||
NOTIFY_BUILD_URL="**Build URL:** https://ci.linuxserver.io/blue/organizations/jenkins/Docker-Pipeline-Builders%2Fdocker-webgrabplus/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 webgrabplus** \n'"${NOTIFY_BRANCHES}"''"${NOTIFY_BUILD_URL}"'"}],
|
||||
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
|
||||
fi
|
||||
|
||||
2
.github/workflows/permissions.yml
vendored
Executable file → Normal file
2
.github/workflows/permissions.yml
vendored
Executable file → Normal file
@ -5,6 +5,8 @@ on:
|
||||
- '**/run'
|
||||
- '**/finish'
|
||||
- '**/check'
|
||||
- 'root/migrations/*'
|
||||
|
||||
jobs:
|
||||
permission_check:
|
||||
uses: linuxserver/github-workflows/.github/workflows/init-svc-executable-permissions.yml@v1
|
||||
|
||||
13
Dockerfile
13
Dockerfile
@ -1,6 +1,6 @@
|
||||
# syntax=docker/dockerfile:1
|
||||
|
||||
FROM ghcr.io/linuxserver/baseimage-alpine:3.19
|
||||
FROM ghcr.io/linuxserver/baseimage-alpine:3.22
|
||||
|
||||
# set version label
|
||||
ARG BUILD_DATE
|
||||
@ -12,7 +12,7 @@ LABEL maintainer="saarg"
|
||||
ARG WEBGRAB_VER
|
||||
|
||||
# environment variables.
|
||||
ENV HOME /config
|
||||
ENV HOME=/config
|
||||
|
||||
RUN \
|
||||
echo "**** install packages ****" && \
|
||||
@ -25,13 +25,13 @@ RUN \
|
||||
curl -o /tmp/dotnet-install.sh -L \
|
||||
https://dot.net/v1/dotnet-install.sh && \
|
||||
chmod +x /tmp/dotnet-install.sh && \
|
||||
/tmp/dotnet-install.sh -c 7.0 --install-dir /app/dotnet --runtime dotnet && \
|
||||
/tmp/dotnet-install.sh -c 9.0 --install-dir /app/dotnet --runtime dotnet && \
|
||||
echo "**** install webgrabplus ****" && \
|
||||
if [ -z "$WEBGRAB_VER" ]; then \
|
||||
WEBGRAB_VER=$(curl -fsL http://webgrabplus.com/download/sw | grep -m1 /download/sw/v | sed 's|.*/download/sw/v\(.*\)">V.*|\1|'); \
|
||||
WEBGRAB_VER=$(curl -fsL https://webgrabplus.com/download/sw | grep -m1 /download/sw/v | sed 's|.*/download/sw/v\(.*\)">V.*|\1|'); \
|
||||
fi && \
|
||||
echo "Found Webgrabplus version ${WEBGRAB_VER}" && \
|
||||
WEBGRAB_URL=$(curl -fsL http://webgrabplus.com/download/sw/v${WEBGRAB_VER} | grep '>Linux</a>' | sed 's|.*\(http://webgrab.*.gz\).*|\1|') && \
|
||||
WEBGRAB_URL=$(curl -fsL https://webgrabplus.com/download/sw/v${WEBGRAB_VER} | grep '>Linux</a>' | sed 's|.*\(https://webgrab.*.gz\).*|\1|') && \
|
||||
mkdir -p \
|
||||
/app/wg++ && \
|
||||
curl -o /tmp/wg++.tar.gz -L \
|
||||
@ -42,8 +42,9 @@ RUN \
|
||||
echo "**** download siteini.pack ****" && \
|
||||
curl -o \
|
||||
/tmp/ini.zip -L \
|
||||
http://www.webgrabplus.com/sites/default/files/download/ini/SiteIniPack_current.zip && \
|
||||
https://www.webgrabplus.com/sites/default/files/download/ini/SiteIniPack_current.zip && \
|
||||
unzip -q /tmp/ini.zip -d /defaults/ini/ && \
|
||||
printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \
|
||||
echo "**** cleanup ****" && \
|
||||
rm -rf \
|
||||
/tmp/*
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
# syntax=docker/dockerfile:1
|
||||
|
||||
FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.19
|
||||
FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.22
|
||||
|
||||
# set version label
|
||||
ARG BUILD_DATE
|
||||
@ -12,27 +12,26 @@ LABEL maintainer="saarg"
|
||||
ARG WEBGRAB_VER
|
||||
|
||||
# environment variables.
|
||||
ARG DEBIAN_FRONTEND="noninteractive"
|
||||
ENV HOME /config
|
||||
ENV HOME=/config
|
||||
|
||||
RUN \
|
||||
echo "**** install packages ****" && \
|
||||
apk -U --update --no-cache add \
|
||||
icu-libs \
|
||||
iputils \
|
||||
iputils \
|
||||
unzip && \
|
||||
echo "**** install dotnet sdk ****" && \
|
||||
mkdir -p /app/dotnet && \
|
||||
curl -o /tmp/dotnet-install.sh -L \
|
||||
https://dot.net/v1/dotnet-install.sh && \
|
||||
chmod +x /tmp/dotnet-install.sh && \
|
||||
/tmp/dotnet-install.sh -c 7.0 --install-dir /app/dotnet --runtime dotnet && \
|
||||
/tmp/dotnet-install.sh -c 9.0 --install-dir /app/dotnet --runtime dotnet && \
|
||||
echo "**** install webgrabplus ****" && \
|
||||
if [ -z "$WEBGRAB_VER" ]; then \
|
||||
WEBGRAB_VER=$(curl -fsL http://webgrabplus.com/download/sw | grep -m1 /download/sw/v | sed 's|.*/download/sw/v\(.*\)">V.*|\1|'); \
|
||||
WEBGRAB_VER=$(curl -fsL https://webgrabplus.com/download/sw | grep -m1 /download/sw/v | sed 's|.*/download/sw/v\(.*\)">V.*|\1|'); \
|
||||
fi && \
|
||||
echo "Found Webgrabplus version ${WEBGRAB_VER}" && \
|
||||
WEBGRAB_URL=$(curl -fsL http://webgrabplus.com/download/sw/v${WEBGRAB_VER} | grep '>Linux</a>' | sed 's|.*\(http://webgrab.*\.gz\).*|\1|') && \
|
||||
WEBGRAB_URL=$(curl -fsL https://webgrabplus.com/download/sw/v${WEBGRAB_VER} | grep '>Linux</a>' | sed 's|.*\(https://webgrab.*\.gz\).*|\1|') && \
|
||||
mkdir -p \
|
||||
/app/wg++ && \
|
||||
curl -o /tmp/wg++.tar.gz -L \
|
||||
@ -43,8 +42,9 @@ RUN \
|
||||
echo "**** download siteini.pack ****" && \
|
||||
curl -o \
|
||||
/tmp/ini.zip -L \
|
||||
http://www.webgrabplus.com/sites/default/files/download/ini/SiteIniPack_current.zip && \
|
||||
https://www.webgrabplus.com/sites/default/files/download/ini/SiteIniPack_current.zip && \
|
||||
unzip -q /tmp/ini.zip -d /defaults/ini/ && \
|
||||
printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \
|
||||
echo "**** cleanup ****" && \
|
||||
rm -rf \
|
||||
/tmp/* \
|
||||
|
||||
770
Jenkinsfile
vendored
770
Jenkinsfile
vendored
File diff suppressed because it is too large
Load Diff
29
README.md
29
README.md
@ -3,9 +3,8 @@
|
||||
[](https://linuxserver.io)
|
||||
|
||||
[](https://blog.linuxserver.io "all the things you can do with our containers including How-To guides, opinions and much more!")
|
||||
[](https://discord.gg/YWrKVTn "realtime support / chat with the community and the team.")
|
||||
[](https://linuxserver.io/discord "realtime support / chat with the community and the team.")
|
||||
[](https://discourse.linuxserver.io "post on our community forum.")
|
||||
[](https://fleet.linuxserver.io "an online web interface which displays all of our maintained images.")
|
||||
[](https://github.com/linuxserver "view the source for all of our repositories.")
|
||||
[](https://opencollective.com/linuxserver "please consider helping us by either donating or contributing to our budget")
|
||||
|
||||
@ -20,15 +19,14 @@ The [LinuxServer.io](https://linuxserver.io) team brings you another container r
|
||||
Find us at:
|
||||
|
||||
* [Blog](https://blog.linuxserver.io) - all the things you can do with our containers including How-To guides, opinions and much more!
|
||||
* [Discord](https://discord.gg/YWrKVTn) - realtime support / chat with the community and the team.
|
||||
* [Discord](https://linuxserver.io/discord) - realtime support / chat with the community and the team.
|
||||
* [Discourse](https://discourse.linuxserver.io) - post on our community forum.
|
||||
* [Fleet](https://fleet.linuxserver.io) - an online web interface which displays all of our maintained images.
|
||||
* [GitHub](https://github.com/linuxserver) - view the source for all of our repositories.
|
||||
* [Open Collective](https://opencollective.com/linuxserver) - please consider helping us by either donating or contributing to our budget
|
||||
|
||||
# [linuxserver/webgrabplus](https://github.com/linuxserver/docker-webgrabplus)
|
||||
|
||||
[](https://scarf.sh/gateway/linuxserver-ci/docker/linuxserver%2Fwebgrabplus)
|
||||
[](https://scarf.sh)
|
||||
[](https://github.com/linuxserver/docker-webgrabplus)
|
||||
[](https://github.com/linuxserver/docker-webgrabplus/releases)
|
||||
[](https://github.com/linuxserver/docker-webgrabplus/packages)
|
||||
@ -39,9 +37,9 @@ Find us at:
|
||||
[](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-webgrabplus/job/master/)
|
||||
[](https://ci-tests.linuxserver.io/linuxserver/webgrabplus/latest/index.html)
|
||||
|
||||
[Webgrabplus](http://www.webgrabplus.com) is a multi-site incremental xmltv epg grabber. It collects tv-program guide data from selected tvguide sites for your favourite channels.
|
||||
[Webgrabplus](https://www.webgrabplus.com) is a multi-site incremental xmltv epg grabber. It collects tv-program guide data from selected tvguide sites for your favourite channels.
|
||||
|
||||
[](http://www.webgrabplus.com)
|
||||
[](https://www.webgrabplus.com)
|
||||
|
||||
## Supported Architectures
|
||||
|
||||
@ -55,11 +53,10 @@ The architectures supported by this image are:
|
||||
| :----: | :----: | ---- |
|
||||
| x86-64 | ✅ | amd64-\<version tag\> |
|
||||
| arm64 | ✅ | arm64v8-\<version tag\> |
|
||||
| armhf | ❌ | |
|
||||
|
||||
## Application Setup
|
||||
|
||||
To configure WebGrab+Plus follow the [documentation](http://www.webgrabplus.com/documentation/configuration/)
|
||||
To configure WebGrab+Plus follow the [documentation](https://www.webgrabplus.com/documentation/configuration/)
|
||||
|
||||
**Please note that depending on your host this container may not work with the `no-new-privileges=true` security-opt.**
|
||||
|
||||
@ -76,6 +73,9 @@ To adjust the scheduled cron job, you can apply our [universal cron mod](https:/
|
||||
|
||||
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))
|
||||
|
||||
```yaml
|
||||
@ -262,7 +262,8 @@ Below are the instructions for updating containers:
|
||||
|
||||
### 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.
|
||||
>[!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
|
||||
|
||||
@ -277,16 +278,20 @@ docker build \
|
||||
-t lscr.io/linuxserver/webgrabplus:latest .
|
||||
```
|
||||
|
||||
The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static`
|
||||
The ARM variants can be built on x86_64 hardware and vice versa using `lscr.io/linuxserver/qemu-static`
|
||||
|
||||
```bash
|
||||
docker run --rm --privileged multiarch/qemu-user-static:register --reset
|
||||
docker run --rm --privileged lscr.io/linuxserver/qemu-static --reset
|
||||
```
|
||||
|
||||
Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64`.
|
||||
|
||||
## Versions
|
||||
|
||||
* **14.09.25:** - Rebase to Alpine 3.22, upgrade dotnet to 9.0.
|
||||
* **25.06.24:** - Rebase to Alpine 3.21.
|
||||
* **25.06.24:** - Rebase to Alpine 3.20.
|
||||
* **23.04.24:** - Bump dotnet framework to 8.x.
|
||||
* **23.12.23:** - Rebase to Alpine 3.19.
|
||||
* **18.08.23:** - Rebase to Alpine 3.18.
|
||||
* **16.08.23:** - Update dotnet framework to 7.x.
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
# jenkins variables
|
||||
project_name: docker-webgrabplus
|
||||
external_type: na
|
||||
custom_version_command: "curl -fsL 'http://webgrabplus.com/download/sw' | grep -m1 '/download/sw/v' | sed -r 's|.*/download/sw/v(.*).>V.*|\\\\1|'"
|
||||
custom_version_command: "curl -fsL 'https://webgrabplus.com/download/sw' | grep -m1 '/download/sw/v' | sed -r 's|.*/download/sw/v(.*).>V.*|\\\\1|'"
|
||||
release_type: stable
|
||||
release_tag: latest
|
||||
ls_branch: master
|
||||
@ -21,7 +21,7 @@ repo_vars:
|
||||
- CI_WEB='false'
|
||||
- CI_PORT='80'
|
||||
- CI_SSL='false'
|
||||
- CI_DELAY='30'
|
||||
- CI_DOCKERENV='TZ=US/Pacific'
|
||||
- CI_AUTH='user:password'
|
||||
- CI_DELAY='120'
|
||||
- CI_DOCKERENV=''
|
||||
- CI_AUTH=''
|
||||
- CI_WEBPATH=''
|
||||
|
||||
@ -1,241 +1,80 @@
|
||||
NAME VERSION TYPE
|
||||
Json.NET 10.0.2.20802 dotnet
|
||||
Microsoft Azure Client Pipeline 1.3100.23.21004 dotnet
|
||||
Microsoft Azure.Storage.Common client library 12.1500.23.21104 dotnet
|
||||
Microsoft Azure.Storage.Files.Shares client library 12.1400.23.21104 dotnet
|
||||
Microsoft.Bcl.AsyncInterfaces 4.700.20.21406 dotnet
|
||||
Microsoft.CSharp 7.0.1624.6629 dotnet
|
||||
Microsoft.VisualBasic 7.0.1624.6629 dotnet
|
||||
Microsoft.VisualBasic.Core 12.0.1624.6629 dotnet
|
||||
Microsoft.Win32.Primitives 7.0.1624.6629 dotnet
|
||||
Microsoft.Win32.Registry 7.0.1624.6629 dotnet
|
||||
System 7.0.1624.6629 dotnet
|
||||
System.AppContext 7.0.1624.6629 dotnet
|
||||
System.Buffers 7.0.1624.6629 dotnet
|
||||
System.Collections 7.0.1624.6629 dotnet
|
||||
System.Collections.Concurrent 7.0.1624.6629 dotnet
|
||||
System.Collections.Immutable 7.0.1624.6629 dotnet
|
||||
System.Collections.NonGeneric 7.0.1624.6629 dotnet
|
||||
System.Collections.Specialized 7.0.1624.6629 dotnet
|
||||
System.ComponentModel 7.0.1624.6629 dotnet
|
||||
System.ComponentModel.Annotations 7.0.1624.6629 dotnet
|
||||
System.ComponentModel.DataAnnotations 7.0.1624.6629 dotnet
|
||||
System.ComponentModel.EventBasedAsync 7.0.1624.6629 dotnet
|
||||
System.ComponentModel.Primitives 7.0.1624.6629 dotnet
|
||||
System.ComponentModel.TypeConverter 7.0.1624.6629 dotnet
|
||||
System.Configuration 7.0.1624.6629 dotnet
|
||||
System.Console 7.0.1624.6629 dotnet
|
||||
System.Core 7.0.1624.6629 dotnet
|
||||
System.Data 7.0.1624.6629 dotnet
|
||||
System.Data.Common 7.0.1624.6629 dotnet
|
||||
System.Data.DataSetExtensions 7.0.1624.6629 dotnet
|
||||
System.Diagnostics.Contracts 7.0.1624.6629 dotnet
|
||||
System.Diagnostics.Debug 7.0.1624.6629 dotnet
|
||||
System.Diagnostics.DiagnosticSource 7.0.1624.6629 dotnet
|
||||
System.Diagnostics.FileVersionInfo 7.0.1624.6629 dotnet
|
||||
System.Diagnostics.Process 7.0.1624.6629 dotnet
|
||||
System.Diagnostics.StackTrace 7.0.1624.6629 dotnet
|
||||
System.Diagnostics.TextWriterTraceListener 7.0.1624.6629 dotnet
|
||||
System.Diagnostics.Tools 7.0.1624.6629 dotnet
|
||||
System.Diagnostics.TraceSource 7.0.1624.6629 dotnet
|
||||
System.Diagnostics.Tracing 7.0.1624.6629 dotnet
|
||||
System.Drawing 7.0.1624.6629 dotnet
|
||||
System.Drawing.Primitives 7.0.1624.6629 dotnet
|
||||
System.Dynamic.Runtime 7.0.1624.6629 dotnet
|
||||
System.Formats.Asn1 7.0.1624.6629 dotnet
|
||||
System.Formats.Tar 7.0.1624.6629 dotnet
|
||||
System.Globalization 7.0.1624.6629 dotnet
|
||||
System.Globalization.Calendars 7.0.1624.6629 dotnet
|
||||
System.Globalization.Extensions 7.0.1624.6629 dotnet
|
||||
System.IO 7.0.1624.6629 dotnet
|
||||
System.IO.Compression 7.0.1624.6629 dotnet
|
||||
System.IO.Compression.Brotli 7.0.1624.6629 dotnet
|
||||
System.IO.Compression.FileSystem 7.0.1624.6629 dotnet
|
||||
System.IO.Compression.ZipFile 7.0.1624.6629 dotnet
|
||||
System.IO.FileSystem 7.0.1624.6629 dotnet
|
||||
System.IO.FileSystem.AccessControl 7.0.1624.6629 dotnet
|
||||
System.IO.FileSystem.DriveInfo 7.0.1624.6629 dotnet
|
||||
System.IO.FileSystem.Primitives 7.0.1624.6629 dotnet
|
||||
System.IO.FileSystem.Watcher 7.0.1624.6629 dotnet
|
||||
System.IO.Hashing 6.0.21.52210 dotnet
|
||||
System.IO.IsolatedStorage 7.0.1624.6629 dotnet
|
||||
System.IO.MemoryMappedFiles 7.0.1624.6629 dotnet
|
||||
System.IO.Pipes 7.0.1624.6629 dotnet
|
||||
System.IO.Pipes.AccessControl 7.0.1624.6629 dotnet
|
||||
System.IO.UnmanagedMemoryStream 7.0.1624.6629 dotnet
|
||||
System.Linq 7.0.1624.6629 dotnet
|
||||
System.Linq.Expressions 7.0.1624.6629 dotnet
|
||||
System.Linq.Parallel 7.0.1624.6629 dotnet
|
||||
System.Linq.Queryable 7.0.1624.6629 dotnet
|
||||
System.Memory 7.0.1624.6629 dotnet
|
||||
System.Memory.Data 1.0.221.20802 dotnet
|
||||
System.Net 7.0.1624.6629 dotnet
|
||||
System.Net.Http 7.0.1624.6629 dotnet
|
||||
System.Net.Http.Json 7.0.1624.6629 dotnet
|
||||
System.Net.HttpListener 7.0.1624.6629 dotnet
|
||||
System.Net.Mail 7.0.1624.6629 dotnet
|
||||
System.Net.NameResolution 7.0.1624.6629 dotnet
|
||||
System.Net.NetworkInformation 7.0.1624.6629 dotnet
|
||||
System.Net.Ping 7.0.1624.6629 dotnet
|
||||
System.Net.Primitives 7.0.1624.6629 dotnet
|
||||
System.Net.Quic 7.0.1624.6629 dotnet
|
||||
System.Net.Requests 7.0.1624.6629 dotnet
|
||||
System.Net.Security 7.0.1624.6629 dotnet
|
||||
System.Net.ServicePoint 7.0.1624.6629 dotnet
|
||||
System.Net.Sockets 7.0.1624.6629 dotnet
|
||||
System.Net.WebClient 7.0.1624.6629 dotnet
|
||||
System.Net.WebHeaderCollection 7.0.1624.6629 dotnet
|
||||
System.Net.WebProxy 7.0.1624.6629 dotnet
|
||||
System.Net.WebSockets 7.0.1624.6629 dotnet
|
||||
System.Net.WebSockets.Client 7.0.1624.6629 dotnet
|
||||
System.Numerics 7.0.1624.6629 dotnet
|
||||
System.Numerics.Vectors 7.0.1624.6629 dotnet
|
||||
System.ObjectModel 7.0.1624.6629 dotnet
|
||||
System.Private.CoreLib 7.0.1624.6629 dotnet
|
||||
System.Private.DataContractSerialization 7.0.1624.6629 dotnet
|
||||
System.Private.Uri 7.0.1624.6629 dotnet
|
||||
System.Private.Xml 7.0.1624.6629 dotnet
|
||||
System.Private.Xml.Linq 7.0.1624.6629 dotnet
|
||||
System.Reflection 7.0.1624.6629 dotnet
|
||||
System.Reflection.DispatchProxy 7.0.1624.6629 dotnet
|
||||
System.Reflection.Emit 7.0.1624.6629 dotnet
|
||||
System.Reflection.Emit.ILGeneration 7.0.1624.6629 dotnet
|
||||
System.Reflection.Emit.Lightweight 7.0.1624.6629 dotnet
|
||||
System.Reflection.Extensions 7.0.1624.6629 dotnet
|
||||
System.Reflection.Metadata 7.0.1624.6629 dotnet
|
||||
System.Reflection.Primitives 7.0.1624.6629 dotnet
|
||||
System.Reflection.TypeExtensions 7.0.1624.6629 dotnet
|
||||
System.Resources.Reader 7.0.1624.6629 dotnet
|
||||
System.Resources.ResourceManager 7.0.1624.6629 dotnet
|
||||
System.Resources.Writer 7.0.1624.6629 dotnet
|
||||
System.Runtime 7.0.1624.6629 dotnet
|
||||
System.Runtime.CompilerServices.Unsafe 7.0.1624.6629 dotnet
|
||||
System.Runtime.CompilerServices.VisualC 7.0.1624.6629 dotnet
|
||||
System.Runtime.Extensions 7.0.1624.6629 dotnet
|
||||
System.Runtime.Handles 7.0.1624.6629 dotnet
|
||||
System.Runtime.InteropServices 7.0.1624.6629 dotnet
|
||||
System.Runtime.InteropServices.JavaScript 7.0.1624.6629 dotnet
|
||||
System.Runtime.InteropServices.RuntimeInformation 7.0.1624.6629 dotnet
|
||||
System.Runtime.Intrinsics 7.0.1624.6629 dotnet
|
||||
System.Runtime.Loader 7.0.1624.6629 dotnet
|
||||
System.Runtime.Numerics 7.0.1624.6629 dotnet
|
||||
System.Runtime.Serialization 7.0.1624.6629 dotnet
|
||||
System.Runtime.Serialization.Formatters 7.0.1624.6629 dotnet
|
||||
System.Runtime.Serialization.Json 7.0.1624.6629 dotnet
|
||||
System.Runtime.Serialization.Primitives 7.0.1624.6629 dotnet
|
||||
System.Runtime.Serialization.Xml 7.0.1624.6629 dotnet
|
||||
System.Security 7.0.1624.6629 dotnet
|
||||
System.Security.AccessControl 7.0.1624.6629 dotnet
|
||||
System.Security.Claims 7.0.1624.6629 dotnet
|
||||
System.Security.Cryptography 7.0.1624.6629 dotnet
|
||||
System.Security.Cryptography.Algorithms 7.0.1624.6629 dotnet
|
||||
System.Security.Cryptography.Cng 7.0.1624.6629 dotnet
|
||||
System.Security.Cryptography.Csp 7.0.1624.6629 dotnet
|
||||
System.Security.Cryptography.Encoding 7.0.1624.6629 dotnet
|
||||
System.Security.Cryptography.OpenSsl 7.0.1624.6629 dotnet
|
||||
System.Security.Cryptography.Primitives 7.0.1624.6629 dotnet
|
||||
System.Security.Cryptography.X509Certificates 7.0.1624.6629 dotnet
|
||||
System.Security.Principal 7.0.1624.6629 dotnet
|
||||
System.Security.Principal.Windows 7.0.1624.6629 dotnet
|
||||
System.Security.SecureString 7.0.1624.6629 dotnet
|
||||
System.ServiceModel.Web 7.0.1624.6629 dotnet
|
||||
System.ServiceProcess 7.0.1624.6629 dotnet
|
||||
System.Text.Encoding 7.0.1624.6629 dotnet
|
||||
System.Text.Encoding.CodePages 7.0.1624.6629 dotnet
|
||||
System.Text.Encoding.Extensions 7.0.1624.6629 dotnet
|
||||
System.Text.Encodings.Web 7.0.1624.6629 dotnet
|
||||
System.Text.Json 7.0.1624.6629 dotnet
|
||||
System.Text.RegularExpressions 7.0.1624.6629 dotnet
|
||||
System.Threading 7.0.1624.6629 dotnet
|
||||
System.Threading.Channels 7.0.1624.6629 dotnet
|
||||
System.Threading.Overlapped 7.0.1624.6629 dotnet
|
||||
System.Threading.Tasks 7.0.1624.6629 dotnet
|
||||
System.Threading.Tasks.Dataflow 7.0.1624.6629 dotnet
|
||||
System.Threading.Tasks.Extensions 7.0.1624.6629 dotnet
|
||||
System.Threading.Tasks.Parallel 7.0.1624.6629 dotnet
|
||||
System.Threading.Thread 7.0.1624.6629 dotnet
|
||||
System.Threading.ThreadPool 7.0.1624.6629 dotnet
|
||||
System.Threading.Timer 7.0.1624.6629 dotnet
|
||||
System.Transactions 7.0.1624.6629 dotnet
|
||||
System.Transactions.Local 7.0.1624.6629 dotnet
|
||||
System.ValueTuple 7.0.1624.6629 dotnet
|
||||
System.Web 7.0.1624.6629 dotnet
|
||||
System.Web.HttpUtility 7.0.1624.6629 dotnet
|
||||
System.Windows 7.0.1624.6629 dotnet
|
||||
System.Xml 7.0.1624.6629 dotnet
|
||||
System.Xml.Linq 7.0.1624.6629 dotnet
|
||||
System.Xml.ReaderWriter 7.0.1624.6629 dotnet
|
||||
System.Xml.Serialization 7.0.1624.6629 dotnet
|
||||
System.Xml.XDocument 7.0.1624.6629 dotnet
|
||||
System.Xml.XPath 7.0.1624.6629 dotnet
|
||||
System.Xml.XPath.XDocument 7.0.1624.6629 dotnet
|
||||
System.Xml.XmlDocument 7.0.1624.6629 dotnet
|
||||
System.Xml.XmlSerializer 7.0.1624.6629 dotnet
|
||||
WG.azure 3.0.0.0 dotnet
|
||||
WG.common.logger 1.0.0.0 dotnet
|
||||
WG.common.timezone 1.0.0.0 dotnet
|
||||
WG.donators 1.0.0.0 dotnet
|
||||
WebGrab+Plus 5.1.4.0 dotnet
|
||||
WindowsBase 7.0.1624.6629 dotnet
|
||||
alpine-baselayout 3.4.3-r2 apk
|
||||
alpine-baselayout-data 3.4.3-r2 apk
|
||||
alpine-keys 2.4-r1 apk
|
||||
alpine-release 3.19.1-r0 apk
|
||||
apk-tools 2.14.0-r5 apk
|
||||
bash 5.2.21-r0 apk
|
||||
brotli-libs 1.1.0-r1 apk
|
||||
busybox 1.36.1-r15 apk
|
||||
busybox-binsh 1.36.1-r15 apk
|
||||
c-ares 1.24.0-r1 apk
|
||||
ca-certificates 20230506-r0 apk
|
||||
ca-certificates-bundle 20230506-r0 apk
|
||||
coreutils 9.4-r2 apk
|
||||
coreutils-env 9.4-r2 apk
|
||||
coreutils-fmt 9.4-r2 apk
|
||||
coreutils-sha512sum 9.4-r2 apk
|
||||
curl 8.5.0-r0 apk
|
||||
icu-data-en 74.1-r0 apk
|
||||
icu-libs 74.1-r0 apk
|
||||
iputils 20221126-r2 apk
|
||||
iputils-arping 20221126-r2 apk
|
||||
iputils-clockdiff 20221126-r2 apk
|
||||
iputils-ping 20221126-r2 apk
|
||||
iputils-tracepath 20221126-r2 apk
|
||||
jq 1.7.1-r0 apk
|
||||
libacl 2.3.1-r4 apk
|
||||
libattr 2.5.1-r5 apk
|
||||
libbsd 0.11.7-r3 apk
|
||||
libc-utils 0.7.2-r5 apk
|
||||
libcap2 2.69-r1 apk
|
||||
libcrypto3 3.1.4-r5 apk
|
||||
libcurl 8.5.0-r0 apk
|
||||
libgcc 13.2.1_git20231014-r0 apk
|
||||
libidn2 2.3.4-r4 apk
|
||||
libintl 0.22.3-r0 apk
|
||||
libmd 1.1.0-r0 apk
|
||||
libncursesw 6.4_p20231125-r0 apk
|
||||
libproc2 4.0.4-r0 apk
|
||||
libssl3 3.1.4-r5 apk
|
||||
libstdc++ 13.2.1_git20231014-r0 apk
|
||||
libunistring 1.1-r2 apk
|
||||
linux-pam 1.5.3-r7 apk
|
||||
mscorlib 7.0.1624.6629 dotnet
|
||||
musl 1.2.4_git20230717-r4 apk
|
||||
musl-utils 1.2.4_git20230717-r4 apk
|
||||
ncurses-terminfo-base 6.4_p20231125-r0 apk
|
||||
netcat-openbsd 1.226-r0 apk
|
||||
netstandard 7.0.1624.6629 dotnet
|
||||
nghttp2-libs 1.58.0-r0 apk
|
||||
oniguruma 6.9.9-r0 apk
|
||||
procps-ng 4.0.4-r0 apk
|
||||
readline 8.2.1-r2 apk
|
||||
scanelf 1.3.7-r2 apk
|
||||
shadow 4.14.2-r0 apk
|
||||
skalibs 2.14.0.1-r0 apk
|
||||
ssl_client 1.36.1-r15 apk
|
||||
tzdata 2024a-r0 apk
|
||||
unzip 6.0-r14 apk
|
||||
utmps-libs 0.1.2.2-r0 apk
|
||||
xmltv 1.0.0.0 dotnet
|
||||
xmltv_time_modify 1.0.0.0 dotnet
|
||||
zlib 1.3.1-r0 apk
|
||||
NAME VERSION TYPE
|
||||
Azure.Core 1.31.0 dotnet
|
||||
Azure.Storage.Common 12.15.0 dotnet
|
||||
Azure.Storage.Files.Shares 12.14.0 dotnet
|
||||
FluentFTP 52.1.0 dotnet
|
||||
Microsoft.Bcl.AsyncInterfaces 1.1.1 dotnet
|
||||
Microsoft.NETCore.App.Runtime.linux-musl-x64 9.0.14 dotnet
|
||||
SharpCompress 0.40.0 dotnet
|
||||
System.IO.Hashing 6.0.0 dotnet
|
||||
System.Memory.Data 1.0.2 dotnet
|
||||
WG.azure 3.1.0 dotnet
|
||||
WG.donators 4.2.0 dotnet
|
||||
WG.logger 2.0.0 dotnet
|
||||
WG.timezone 1.0.0 dotnet
|
||||
WG.xmltv 2.0.0 dotnet
|
||||
WebGrab+Plus 1.0.0 dotnet
|
||||
ZstdSharp.Port 0.8.5 dotnet
|
||||
acl-libs 2.3.2-r1 apk
|
||||
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
|
||||
apk-tools 2.14.9-r3 apk
|
||||
bash 5.2.37-r0 apk
|
||||
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
|
||||
catatonit 0.2.1-r0 apk
|
||||
coreutils 9.7-r1 apk
|
||||
coreutils-env 9.7-r1 apk
|
||||
coreutils-fmt 9.7-r1 apk
|
||||
coreutils-sha512sum 9.7-r1 apk
|
||||
curl 8.14.1-r2 apk
|
||||
findutils 4.10.0-r0 apk
|
||||
icu-data-en 76.1-r1 apk
|
||||
icu-libs 76.1-r1 apk
|
||||
iputils 20240905-r0 apk
|
||||
iputils-arping 20240905-r0 apk
|
||||
iputils-clockdiff 20240905-r0 apk
|
||||
iputils-ping 20240905-r0 apk
|
||||
iputils-tracepath 20240905-r0 apk
|
||||
jq 1.8.1-r0 apk
|
||||
libapk2 2.14.9-r3 apk
|
||||
libattr 2.5.2-r2 apk
|
||||
libbsd 0.12.2-r0 apk
|
||||
libcap2 2.76-r0 apk
|
||||
libcrypto3 3.5.5-r0 apk
|
||||
libcurl 8.14.1-r2 apk
|
||||
libgcc 14.2.0-r6 apk
|
||||
libidn2 2.3.7-r0 apk
|
||||
libintl 0.24.1-r0 apk
|
||||
libmd 1.1.0-r0 apk
|
||||
libncursesw 6.5_p20250503-r0 apk
|
||||
libproc2 4.0.4-r3 apk
|
||||
libpsl 0.21.5-r3 apk
|
||||
libssl3 3.5.5-r0 apk
|
||||
libstdc++ 14.2.0-r6 apk
|
||||
libunistring 1.3-r0 apk
|
||||
linux-pam 1.7.0-r4 apk
|
||||
musl 1.2.5-r10 apk
|
||||
musl-utils 1.2.5-r10 apk
|
||||
ncurses-terminfo-base 6.5_p20250503-r0 apk
|
||||
netcat-openbsd 1.229.1-r0 apk
|
||||
nghttp2-libs 1.65.0-r0 apk
|
||||
oniguruma 6.9.10-r0 apk
|
||||
procps-ng 4.0.4-r3 apk
|
||||
readline 8.2.13-r1 apk
|
||||
scanelf 1.3.8-r1 apk
|
||||
shadow 4.17.3-r0 apk
|
||||
skalibs-libs 2.14.4.0-r0 apk
|
||||
ssl_client 1.37.0-r20 apk
|
||||
tzdata 2026a-r0 apk
|
||||
unzip 6.0-r15 apk
|
||||
utmps-libs 0.1.3.1-r0 apk
|
||||
xmltv_time_modify 1.0.0.0 dotnet
|
||||
zlib 1.3.1-r2 apk
|
||||
zstd-libs 1.5.7-r0 apk
|
||||
|
||||
@ -2,10 +2,11 @@
|
||||
|
||||
# project information
|
||||
project_name: webgrabplus
|
||||
project_url: "http://www.webgrabplus.com"
|
||||
project_logo: "http://www.webgrabplus.com/sites/default/themes/WgTheme/images/slideshows/EPG_fading.jpg"
|
||||
project_url: "https://www.webgrabplus.com"
|
||||
project_logo: "https://www.webgrabplus.com/sites/default/themes/WgTheme/images/slideshows/EPG_fading.jpg"
|
||||
project_blurb: "[{{ project_name|capitalize }}]({{ project_url }}) is a multi-site incremental xmltv epg grabber. It collects tv-program guide data from selected tvguide sites for your favourite channels."
|
||||
project_lsio_github_repo_url: "https://github.com/linuxserver/docker-{{ project_name }}"
|
||||
project_categories: "Media Tools"
|
||||
# supported architectures
|
||||
available_architectures:
|
||||
- {arch: "{{ arch_x86_64 }}", tag: "amd64-latest"}
|
||||
@ -21,19 +22,14 @@ param_mac_address: "00:00:00:00:00:00"
|
||||
param_mac_address_desc: "Set the mac_address for the container for the license check."
|
||||
param_usage_include_vols: true
|
||||
param_volumes:
|
||||
- { vol_path: "/config", vol_host_path: "/path/to/{{ project_name }}/config", desc: "Persistent config files" }
|
||||
- {vol_path: "/config", vol_host_path: "/path/to/{{ project_name }}/config", desc: "Persistent config files"}
|
||||
- {vol_path: "/data", vol_host_path: "/path/to/data", desc: "Where webgrabplus should store it's data files."}
|
||||
param_usage_include_ports: false
|
||||
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 parameters
|
||||
optional_block_1: false
|
||||
optional_block_1_items: ""
|
||||
readonly_supported: false
|
||||
nonroot_supported: false
|
||||
# application setup block
|
||||
app_setup_block_enabled: true
|
||||
app_setup_block: |
|
||||
To configure WebGrab+Plus follow the [documentation](http://www.webgrabplus.com/documentation/configuration/)
|
||||
To configure WebGrab+Plus follow the [documentation](https://www.webgrabplus.com/documentation/configuration/)
|
||||
|
||||
**Please note that depending on your host this container may not work with the `no-new-privileges=true` security-opt.**
|
||||
|
||||
@ -45,9 +41,52 @@ app_setup_block: |
|
||||
The /data volume mapping is where WebGrab+Plus outputs the xml file. To use the xml file in another program, you have to point it to the host path you mapped the /data volume to.
|
||||
|
||||
To adjust the scheduled cron job, you can apply our [universal cron mod](https://github.com/linuxserver/docker-mods/tree/universal-cron).
|
||||
# init diagram
|
||||
init_diagram: |
|
||||
"webgrabplus: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-webgrabplus-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-custom-files -> init-services
|
||||
init-config -> init-webgrabplus-config
|
||||
init-services -> svc-cron
|
||||
svc-cron -> legacy-services
|
||||
}
|
||||
Base Images: {
|
||||
"baseimage-alpine:3.22"
|
||||
}
|
||||
"webgrabplus:latest" <- Base Images
|
||||
# changelog
|
||||
changelogs:
|
||||
- { date: "23.12.23:", desc: "Rebase to Alpine 3.19."}
|
||||
- {date: "14.09.25:", desc: "Rebase to Alpine 3.22, upgrade dotnet to 9.0."}
|
||||
- {date: "25.06.24:", desc: "Rebase to Alpine 3.21."}
|
||||
- {date: "25.06.24:", desc: "Rebase to Alpine 3.20."}
|
||||
- {date: "23.04.24:", desc: "Bump dotnet framework to 8.x."}
|
||||
- {date: "23.12.23:", desc: "Rebase to Alpine 3.19."}
|
||||
- {date: "18.08.23:", desc: "Rebase to Alpine 3.18."}
|
||||
- {date: "16.08.23:", desc: "Update dotnet framework to 7.x."}
|
||||
- {date: "06.07.23:", desc: "Deprecate armhf. As announced [here](https://www.linuxserver.io/blog/a-farewell-to-arm-hf)"}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user