mirror of
https://github.com/linuxserver/docker-swag.git
synced 2026-03-03 00:43:34 +09:00
Compare commits
40 Commits
2.4.0-ls19
...
2.5.0-ls20
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
10d1bf7b96 | ||
|
|
24f3353692 | ||
|
|
dee14d718b | ||
|
|
5438dbf13c | ||
|
|
2f740e60a8 | ||
|
|
cfb3fae7cf | ||
|
|
9357986f27 | ||
|
|
eb0bcf14dd | ||
|
|
97e2720b9c | ||
|
|
7550f946ff | ||
|
|
80705ccf19 | ||
|
|
7a831681c5 | ||
|
|
43a7239fbf | ||
|
|
73938cb4a1 | ||
|
|
1d6a30144b | ||
|
|
2e59ae36c1 | ||
|
|
e72e9f6ed0 | ||
|
|
91d449259f | ||
|
|
dd17b24158 | ||
|
|
17f70e4a31 | ||
|
|
6619c4e0cd | ||
|
|
a06bea000c | ||
|
|
62401a38e7 | ||
|
|
acef819cc1 | ||
|
|
74828b1e8d | ||
|
|
7e1758fde0 | ||
|
|
e2731a1227 | ||
|
|
0a919148ff | ||
|
|
6fcd80b175 | ||
|
|
c9359819b6 | ||
|
|
ce32306873 | ||
|
|
9ce4ec598d | ||
|
|
9488a4fa1d | ||
|
|
3105c07c72 | ||
|
|
286e74c027 | ||
|
|
b909214614 | ||
|
|
70c66c5495 | ||
|
|
430308342f | ||
|
|
97222fbb25 | ||
|
|
b00bf6caf2 |
12
.github/workflows/call_invalid_helper.yml
vendored
12
.github/workflows/call_invalid_helper.yml
vendored
@@ -1,12 +0,0 @@
|
||||
name: Comment on invalid interaction
|
||||
on:
|
||||
issues:
|
||||
types:
|
||||
- labeled
|
||||
jobs:
|
||||
add-comment-on-invalid:
|
||||
if: github.event.label.name == 'invalid'
|
||||
permissions:
|
||||
issues: write
|
||||
uses: linuxserver/github-workflows/.github/workflows/invalid-interaction-helper.yml@v1
|
||||
secrets: inherit
|
||||
16
.github/workflows/call_issue_pr_tracker.yml
vendored
Executable file
16
.github/workflows/call_issue_pr_tracker.yml
vendored
Executable file
@@ -0,0 +1,16 @@
|
||||
name: Issue & PR Tracker
|
||||
|
||||
on:
|
||||
issues:
|
||||
types: [opened,reopened,labeled,unlabeled,closed]
|
||||
pull_request_target:
|
||||
types: [opened,reopened,review_requested,review_request_removed,labeled,unlabeled,closed]
|
||||
pull_request_review:
|
||||
types: [submitted,edited,dismissed]
|
||||
|
||||
jobs:
|
||||
manage-project:
|
||||
permissions:
|
||||
issues: write
|
||||
uses: linuxserver/github-workflows/.github/workflows/issue-pr-tracker.yml@v1
|
||||
secrets: inherit
|
||||
13
.github/workflows/call_issues_cron.yml
vendored
Executable file
13
.github/workflows/call_issues_cron.yml
vendored
Executable file
@@ -0,0 +1,13 @@
|
||||
name: Mark stale issues and pull requests
|
||||
on:
|
||||
schedule:
|
||||
- cron: '35 15 * * *'
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
stale:
|
||||
permissions:
|
||||
issues: write
|
||||
pull-requests: write
|
||||
uses: linuxserver/github-workflows/.github/workflows/issues-cron.yml@v1
|
||||
secrets: inherit
|
||||
8
.github/workflows/external_trigger.yml
vendored
8
.github/workflows/external_trigger.yml
vendored
@@ -14,9 +14,11 @@ jobs:
|
||||
run: |
|
||||
if [ -n "${{ secrets.PAUSE_EXTERNAL_TRIGGER_SWAG_MASTER }}" ]; then
|
||||
echo "**** Github secret PAUSE_EXTERNAL_TRIGGER_SWAG_MASTER is set; skipping trigger. ****"
|
||||
echo "Github secret \`PAUSE_EXTERNAL_TRIGGER_SWAG_MASTER\` is set; 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_SWAG_MASTER\". ****"
|
||||
echo "External trigger running off of master branch. To disable this trigger, set a Github secret named \`PAUSE_EXTERNAL_TRIGGER_SWAG_MASTER\`" >> $GITHUB_STEP_SUMMARY
|
||||
echo "**** Retrieving external version ****"
|
||||
EXT_RELEASE=$(curl -sL "https://pypi.python.org/pypi/certbot/json" |jq -r '. | .info.version')
|
||||
if [ -z "${EXT_RELEASE}" ] || [ "${EXT_RELEASE}" == "null" ]; then
|
||||
@@ -30,6 +32,7 @@ jobs:
|
||||
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 ****"
|
||||
image="linuxserver/swag"
|
||||
tag="latest"
|
||||
@@ -65,14 +68,18 @@ jobs:
|
||||
exit 1
|
||||
fi
|
||||
echo "**** Last pushed version: ${IMAGE_VERSION} ****"
|
||||
echo "Last pushed version: ${IMAGE_VERSION}" >> $GITHUB_STEP_SUMMARY
|
||||
if [ "${EXT_RELEASE}" == "${IMAGE_VERSION}" ]; then
|
||||
echo "**** Version ${EXT_RELEASE} already pushed, exiting ****"
|
||||
echo "Version ${EXT_RELEASE} already pushed, exiting" >> $GITHUB_STEP_SUMMARY
|
||||
exit 0
|
||||
elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-swag/job/master/lastBuild/api/json | jq -r '.building') == "true" ]; then
|
||||
echo "**** New version ${EXT_RELEASE} found; but there already seems to be an active build on Jenkins; exiting ****"
|
||||
echo "New version ${EXT_RELEASE} found; but there already seems to be an active build on Jenkins; exiting" >> $GITHUB_STEP_SUMMARY
|
||||
exit 0
|
||||
else
|
||||
echo "**** New version ${EXT_RELEASE} found; old version was ${IMAGE_VERSION}. Triggering new build ****"
|
||||
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-swag/job/master/buildWithParameters?PACKAGE_CHECK=false \
|
||||
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
|
||||
@@ -82,6 +89,7 @@ jobs:
|
||||
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" \
|
||||
|
||||
18
.github/workflows/external_trigger_scheduler.yml
vendored
18
.github/workflows/external_trigger_scheduler.yml
vendored
@@ -2,7 +2,7 @@ name: External Trigger Scheduler
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '50 * * * *'
|
||||
- cron: '2 * * * *'
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
@@ -17,18 +17,18 @@ jobs:
|
||||
run: |
|
||||
echo "**** Branches found: ****"
|
||||
git for-each-ref --format='%(refname:short)' refs/remotes
|
||||
echo "**** Pulling the yq docker image ****"
|
||||
docker pull ghcr.io/linuxserver/yq
|
||||
for br in $(git for-each-ref --format='%(refname:short)' refs/remotes)
|
||||
do
|
||||
br=$(echo "$br" | sed 's|origin/||g')
|
||||
echo "**** Evaluating branch ${br} ****"
|
||||
ls_branch=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-swag/${br}/jenkins-vars.yml \
|
||||
| docker run --rm -i --entrypoint yq ghcr.io/linuxserver/yq -r .ls_branch)
|
||||
if [ "$br" == "$ls_branch" ]; then
|
||||
echo "**** Branch ${br} appears to be live; checking workflow. ****"
|
||||
ls_jenkins_vars=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-swag/${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. ****"
|
||||
if curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-swag/${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
|
||||
curl -iX POST \
|
||||
-H "Authorization: token ${{ secrets.CR_PAT }}" \
|
||||
-H "Accept: application/vnd.github.v3+json" \
|
||||
@@ -36,8 +36,10 @@ jobs:
|
||||
https://api.github.com/repos/linuxserver/docker-swag/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
|
||||
fi
|
||||
else
|
||||
echo "**** ${br} appears to be a dev branch; skipping trigger. ****"
|
||||
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
|
||||
|
||||
4
.github/workflows/package_trigger.yml
vendored
4
.github/workflows/package_trigger.yml
vendored
@@ -14,13 +14,16 @@ jobs:
|
||||
run: |
|
||||
if [ -n "${{ secrets.PAUSE_PACKAGE_TRIGGER_SWAG_MASTER }}" ]; then
|
||||
echo "**** Github secret PAUSE_PACKAGE_TRIGGER_SWAG_MASTER is set; skipping trigger. ****"
|
||||
echo "Github secret \`PAUSE_PACKAGE_TRIGGER_SWAG_MASTER\` is set; skipping trigger." >> $GITHUB_STEP_SUMMARY
|
||||
exit 0
|
||||
fi
|
||||
if [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-swag/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_SWAG_MASTER\". ****"
|
||||
echo "Package trigger running off of master branch. To disable, set a Github secret named \`PAUSE_PACKAGE_TRIGGER_SWAG_MASTER\`" >> $GITHUB_STEP_SUMMARY
|
||||
response=$(curl -iX POST \
|
||||
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-swag/job/master/buildWithParameters?PACKAGE_CHECK=true \
|
||||
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
|
||||
@@ -30,6 +33,7 @@ jobs:
|
||||
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" \
|
||||
|
||||
10
.github/workflows/package_trigger_scheduler.yml
vendored
10
.github/workflows/package_trigger_scheduler.yml
vendored
@@ -2,7 +2,7 @@ name: Package Trigger Scheduler
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '03 5 * * 4'
|
||||
- cron: '1 3 * * 6'
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
@@ -17,18 +17,16 @@ jobs:
|
||||
run: |
|
||||
echo "**** Branches found: ****"
|
||||
git for-each-ref --format='%(refname:short)' refs/remotes
|
||||
echo "**** Pulling the yq docker image ****"
|
||||
docker pull ghcr.io/linuxserver/yq
|
||||
for br in $(git for-each-ref --format='%(refname:short)' refs/remotes)
|
||||
do
|
||||
br=$(echo "$br" | sed 's|origin/||g')
|
||||
echo "**** Evaluating branch ${br} ****"
|
||||
ls_branch=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-swag/${br}/jenkins-vars.yml \
|
||||
| docker run --rm -i --entrypoint yq ghcr.io/linuxserver/yq -r .ls_branch)
|
||||
ls_branch=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-swag/${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-swag/${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 }}" \
|
||||
@@ -38,9 +36,11 @@ jobs:
|
||||
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
|
||||
echo "**** Package check build(s) triggered for branch(es): ${triggered_branches} ****"
|
||||
|
||||
3
.github/workflows/permissions.yml
vendored
3
.github/workflows/permissions.yml
vendored
@@ -1,9 +1,10 @@
|
||||
name: Permission check
|
||||
on:
|
||||
pull_request:
|
||||
pull_request_target:
|
||||
paths:
|
||||
- '**/run'
|
||||
- '**/finish'
|
||||
- '**/check'
|
||||
jobs:
|
||||
permission_check:
|
||||
uses: linuxserver/github-workflows/.github/workflows/init-svc-executable-permissions.yml@v1
|
||||
|
||||
23
.github/workflows/stale.yml
vendored
23
.github/workflows/stale.yml
vendored
@@ -1,23 +0,0 @@
|
||||
name: Mark stale issues and pull requests
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: "30 1 * * *"
|
||||
|
||||
jobs:
|
||||
stale:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/stale@v6.0.1
|
||||
with:
|
||||
stale-issue-message: "This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions."
|
||||
stale-pr-message: "This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions."
|
||||
stale-issue-label: 'no-issue-activity'
|
||||
stale-pr-label: 'no-pr-activity'
|
||||
days-before-stale: 30
|
||||
days-before-close: 365
|
||||
exempt-issue-labels: 'awaiting-approval,work-in-progress'
|
||||
exempt-pr-labels: 'awaiting-approval,work-in-progress'
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -159,6 +159,8 @@ RUN \
|
||||
mkdir -p /defaults/fail2ban && \
|
||||
mv /etc/fail2ban/action.d /defaults/fail2ban/ && \
|
||||
mv /etc/fail2ban/filter.d /defaults/fail2ban/ && \
|
||||
echo "**** define allowipv6 to silence warning ****" && \
|
||||
sed -i 's/#allowipv6 = auto/allowipv6 = auto/g' /etc/fail2ban/fail2ban.conf && \
|
||||
echo "**** copy proxy confs to /defaults ****" && \
|
||||
mkdir -p \
|
||||
/defaults/nginx/proxy-confs && \
|
||||
|
||||
@@ -159,6 +159,8 @@ RUN \
|
||||
mkdir -p /defaults/fail2ban && \
|
||||
mv /etc/fail2ban/action.d /defaults/fail2ban/ && \
|
||||
mv /etc/fail2ban/filter.d /defaults/fail2ban/ && \
|
||||
echo "**** define allowipv6 to silence warning ****" && \
|
||||
sed -i 's/#allowipv6 = auto/allowipv6 = auto/g' /etc/fail2ban/fail2ban.conf && \
|
||||
echo "**** copy proxy confs to /defaults ****" && \
|
||||
mkdir -p \
|
||||
/defaults/nginx/proxy-confs && \
|
||||
|
||||
@@ -159,6 +159,8 @@ RUN \
|
||||
mkdir -p /defaults/fail2ban && \
|
||||
mv /etc/fail2ban/action.d /defaults/fail2ban/ && \
|
||||
mv /etc/fail2ban/filter.d /defaults/fail2ban/ && \
|
||||
echo "**** define allowipv6 to silence warning ****" && \
|
||||
sed -i 's/#allowipv6 = auto/allowipv6 = auto/g' /etc/fail2ban/fail2ban.conf && \
|
||||
echo "**** copy proxy confs to /defaults ****" && \
|
||||
mkdir -p \
|
||||
/defaults/nginx/proxy-confs && \
|
||||
|
||||
114
Jenkinsfile
vendored
114
Jenkinsfile
vendored
@@ -40,10 +40,11 @@ pipeline {
|
||||
// Setup all the basic environment variables needed for the build
|
||||
stage("Set ENV Variables base"){
|
||||
steps{
|
||||
sh '''docker pull quay.io/skopeo/stable:v1 || : '''
|
||||
script{
|
||||
env.EXIT_STATUS = ''
|
||||
env.LS_RELEASE = sh(
|
||||
script: '''docker run --rm ghcr.io/linuxserver/alexeiled-skopeo sh -c 'skopeo inspect docker://docker.io/'${DOCKERHUB_IMAGE}':latest 2>/dev/null' | jq -r '.Labels.build_version' | awk '{print $3}' | grep '\\-ls' || : ''',
|
||||
script: '''docker run --rm quay.io/skopeo/stable:v1 inspect docker://ghcr.io/${LS_USER}/${CONTAINER_NAME}:latest 2>/dev/null | jq -r '.Labels.build_version' | awk '{print $3}' | grep '\\-ls' || : ''',
|
||||
returnStdout: true).trim()
|
||||
env.LS_RELEASE_NOTES = sh(
|
||||
script: '''cat readme-vars.yml | awk -F \\" '/date: "[0-9][0-9].[0-9][0-9].[0-9][0-9]:/ {print $4;exit;}' | sed -E ':a;N;$!ba;s/\\r{0,1}\\n/\\\\n/g' ''',
|
||||
@@ -57,7 +58,7 @@ pipeline {
|
||||
env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/commit/' + env.GIT_COMMIT
|
||||
env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DOCKERHUB_IMAGE + '/tags/'
|
||||
env.PULL_REQUEST = env.CHANGE_ID
|
||||
env.TEMPLATED_FILES = 'Jenkinsfile README.md LICENSE .editorconfig ./.github/CONTRIBUTING.md ./.github/FUNDING.yml ./.github/ISSUE_TEMPLATE/config.yml ./.github/ISSUE_TEMPLATE/issue.bug.yml ./.github/ISSUE_TEMPLATE/issue.feature.yml ./.github/PULL_REQUEST_TEMPLATE.md ./.github/workflows/external_trigger_scheduler.yml ./.github/workflows/greetings.yml ./.github/workflows/package_trigger_scheduler.yml ./.github/workflows/stale.yml ./.github/workflows/call_invalid_helper.yml ./.github/workflows/permissions.yml ./.github/workflows/external_trigger.yml ./.github/workflows/package_trigger.yml ./root/donate.txt'
|
||||
env.TEMPLATED_FILES = 'Jenkinsfile README.md LICENSE .editorconfig ./.github/CONTRIBUTING.md ./.github/FUNDING.yml ./.github/ISSUE_TEMPLATE/config.yml ./.github/ISSUE_TEMPLATE/issue.bug.yml ./.github/ISSUE_TEMPLATE/issue.feature.yml ./.github/PULL_REQUEST_TEMPLATE.md ./.github/workflows/external_trigger_scheduler.yml ./.github/workflows/greetings.yml ./.github/workflows/package_trigger_scheduler.yml ./.github/workflows/call_issue_pr_tracker.yml ./.github/workflows/call_issues_cron.yml ./.github/workflows/permissions.yml ./.github/workflows/external_trigger.yml ./.github/workflows/package_trigger.yml ./root/donate.txt'
|
||||
}
|
||||
script{
|
||||
env.LS_RELEASE_NUMBER = sh(
|
||||
@@ -228,19 +229,16 @@ pipeline {
|
||||
script{
|
||||
env.SHELLCHECK_URL = 'https://ci-tests.linuxserver.io/' + env.IMAGE + '/' + env.META_TAG + '/shellcheck-result.xml'
|
||||
}
|
||||
sh '''curl -sL https://raw.githubusercontent.com/linuxserver/docker-shellcheck/master/checkrun.sh | /bin/bash'''
|
||||
sh '''curl -sL https://raw.githubusercontent.com/linuxserver/docker-jenkins-builder/master/checkrun.sh | /bin/bash'''
|
||||
sh '''#! /bin/bash
|
||||
set -e
|
||||
docker pull ghcr.io/linuxserver/lsiodev-spaces-file-upload:latest
|
||||
docker run --rm \
|
||||
-e DESTINATION=\"${IMAGE}/${META_TAG}/shellcheck-result.xml\" \
|
||||
-e FILE_NAME="shellcheck-result.xml" \
|
||||
-e MIMETYPE="text/xml" \
|
||||
-v ${WORKSPACE}:/mnt \
|
||||
-e SECRET_KEY=\"${S3_SECRET}\" \
|
||||
-e ACCESS_KEY=\"${S3_KEY}\" \
|
||||
-t ghcr.io/linuxserver/lsiodev-spaces-file-upload:latest \
|
||||
python /upload.py'''
|
||||
-v ${WORKSPACE}:/mnt \
|
||||
-e AWS_ACCESS_KEY_ID=\"${S3_KEY}\" \
|
||||
-e AWS_SECRET_ACCESS_KEY=\"${S3_SECRET}\" \
|
||||
ghcr.io/linuxserver/baseimage-alpine:3.17 s6-envdir -fn -- /var/run/s6/container_environment /bin/bash -c "\
|
||||
apk add --no-cache py3-pip && \
|
||||
pip install s3cmd && \
|
||||
s3cmd put --no-preserve --acl-public -m text/xml /mnt/shellcheck-result.xml s3://ci-tests.linuxserver.io/${IMAGE}/${META_TAG}/shellcheck-result.xml" || :'''
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -277,7 +275,7 @@ pipeline {
|
||||
echo "Jenkinsfile is up to date."
|
||||
fi
|
||||
# Stage 2 - Delete old templates
|
||||
OLD_TEMPLATES=".github/ISSUE_TEMPLATE.md\n.github/ISSUE_TEMPLATE/issue.bug.md\n.github/ISSUE_TEMPLATE/issue.feature.md"
|
||||
OLD_TEMPLATES=".github/ISSUE_TEMPLATE.md .github/ISSUE_TEMPLATE/issue.bug.md .github/ISSUE_TEMPLATE/issue.feature.md .github/workflows/call_invalid_helper.yml .github/workflows/stale.yml"
|
||||
for i in ${OLD_TEMPLATES}; do
|
||||
if [[ -f "${i}" ]]; then
|
||||
TEMPLATES_TO_DELETE="${i} ${TEMPLATES_TO_DELETE}"
|
||||
@@ -294,7 +292,7 @@ pipeline {
|
||||
git commit -m 'Bot Updating Templated Files'
|
||||
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all
|
||||
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
|
||||
echo "Deleting old templates"
|
||||
echo "Deleting old and deprecated templates"
|
||||
rm -Rf ${TEMPDIR}
|
||||
exit 0
|
||||
else
|
||||
@@ -379,6 +377,26 @@ pipeline {
|
||||
}
|
||||
}
|
||||
}
|
||||
// If this is a master build check the S6 service file perms
|
||||
stage("Check S6 Service file Permissions"){
|
||||
when {
|
||||
branch "master"
|
||||
environment name: 'CHANGE_ID', value: ''
|
||||
environment name: 'EXIT_STATUS', value: ''
|
||||
}
|
||||
steps {
|
||||
script{
|
||||
sh '''#! /bin/bash
|
||||
WRONG_PERM=$(find ./ -path "./.git" -prune -o \\( -name "run" -o -name "finish" -o -name "check" \\) -not -perm -u=x,g=x,o=x -print)
|
||||
if [[ -n "${WRONG_PERM}" ]]; then
|
||||
echo "The following S6 service files are missing the executable bit; canceling the faulty build: ${WRONG_PERM}"
|
||||
exit 1
|
||||
else
|
||||
echo "S6 service file perms look good."
|
||||
fi '''
|
||||
}
|
||||
}
|
||||
}
|
||||
/* #######################
|
||||
GitLab Mirroring
|
||||
####################### */
|
||||
@@ -671,6 +689,7 @@ pipeline {
|
||||
]) {
|
||||
script{
|
||||
env.CI_URL = 'https://ci-tests.linuxserver.io/' + env.IMAGE + '/' + env.META_TAG + '/index.html'
|
||||
env.CI_JSON_URL = 'https://ci-tests.linuxserver.io/' + env.IMAGE + '/' + env.META_TAG + '/report.json'
|
||||
}
|
||||
sh '''#! /bin/bash
|
||||
set -e
|
||||
@@ -697,8 +716,6 @@ pipeline {
|
||||
-e WEB_SCREENSHOT=\"${CI_WEB}\" \
|
||||
-e WEB_AUTH=\"${CI_AUTH}\" \
|
||||
-e WEB_PATH=\"${CI_WEBPATH}\" \
|
||||
-e DO_REGION="ams3" \
|
||||
-e DO_BUCKET="lsio-ci" \
|
||||
-t ghcr.io/linuxserver/ci:latest \
|
||||
python3 test_build.py'''
|
||||
}
|
||||
@@ -952,8 +969,67 @@ pipeline {
|
||||
environment name: 'EXIT_STATUS', value: ''
|
||||
}
|
||||
steps {
|
||||
sh '''curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/issues/${PULL_REQUEST}/comments \
|
||||
-d '{"body": "I am a bot, here are the test results for this PR: \\n'${CI_URL}' \\n'${SHELLCHECK_URL}'"}' '''
|
||||
sh '''#! /bin/bash
|
||||
# Function to retrieve JSON data from URL
|
||||
get_json() {
|
||||
local url="$1"
|
||||
local response=$(curl -s "$url")
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Failed to retrieve JSON data from $url"
|
||||
return 1
|
||||
fi
|
||||
local json=$(echo "$response" | jq .)
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Failed to parse JSON data from $url"
|
||||
return 1
|
||||
fi
|
||||
echo "$json"
|
||||
}
|
||||
|
||||
build_table() {
|
||||
local data="$1"
|
||||
|
||||
# Get the keys in the JSON data
|
||||
local keys=$(echo "$data" | jq -r 'to_entries | map(.key) | .[]')
|
||||
|
||||
# Check if keys are empty
|
||||
if [ -z "$keys" ]; then
|
||||
echo "JSON report data does not contain any keys or the report does not exist."
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Build table header
|
||||
local header="| Tag | Passed |\\n| --- | --- |\\n"
|
||||
|
||||
# Loop through the JSON data to build the table rows
|
||||
local rows=""
|
||||
for build in $keys; do
|
||||
local status=$(echo "$data" | jq -r ".[\\"$build\\"].test_success")
|
||||
if [ "$status" = "true" ]; then
|
||||
status="✅"
|
||||
else
|
||||
status="❌"
|
||||
fi
|
||||
local row="| "$build" | "$status" |\\n"
|
||||
rows="${rows}${row}"
|
||||
done
|
||||
|
||||
local table="${header}${rows}"
|
||||
local escaped_table=$(echo "$table" | sed 's/\"/\\\\"/g')
|
||||
echo "$escaped_table"
|
||||
}
|
||||
|
||||
# Retrieve JSON data from URL
|
||||
data=$(get_json "$CI_JSON_URL")
|
||||
# Create table from JSON data
|
||||
table=$(build_table "$data")
|
||||
echo -e "$table"
|
||||
|
||||
curl -X POST -H "Authorization: token $GITHUB_TOKEN" \
|
||||
-H "Accept: application/vnd.github.v3+json" \
|
||||
"https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \
|
||||
-d "{\\"body\\": \\"I am a bot, here are the test results for this PR: \\n${CI_URL}\\n${SHELLCHECK_URL}\\n${table}\\"}"'''
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -336,6 +336,8 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
|
||||
|
||||
## Versions
|
||||
|
||||
* **13.04.23:** - [Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) nginx.conf, authelia-location.conf, authentik-location.conf, and site-confs/default.conf - Move ssl.conf include to default.conf. Remove Authorization headers in authelia. Sort proxy_set_header in authelia and authentik.
|
||||
* **25.03.23:** - Fix renewal post hook.
|
||||
* **10.03.23:** - Cleanup unused csr and keys folders. See [certbot 2.3.0 release notes](https://github.com/certbot/certbot/releases/tag/v2.3.0).
|
||||
* **09.03.23:** - Add Google Domains DNS support, `google-domains`.
|
||||
* **02.03.23:** - Set permissions on crontabs during init.
|
||||
|
||||
@@ -2,27 +2,27 @@ NAME VERSION TYPE
|
||||
ConfigArgParse 1.5.3 python
|
||||
PyJWT 2.6.0 python
|
||||
PyYAML 6.0 python
|
||||
acme 2.4.0 python
|
||||
acme 2.5.0 python
|
||||
alpine-baselayout 3.4.0-r0 apk
|
||||
alpine-baselayout-data 3.4.0-r0 apk
|
||||
alpine-keys 2.4-r1 apk
|
||||
alpine-release 3.17.2-r0 apk
|
||||
alpine-release 3.17.3-r0 apk
|
||||
aom-libs 3.5.0-r0 apk
|
||||
apache2-utils 2.4.56-r0 apk
|
||||
apache2-utils 2.4.57-r0 apk
|
||||
apk-tools 2.12.10-r1 apk
|
||||
apr 1.7.2-r0 apk
|
||||
apr-util 1.6.3-r0 apk
|
||||
argon2-libs 20190702-r2 apk
|
||||
attrs 22.2.0 python
|
||||
attrs 23.1.0 python
|
||||
azure-common 1.1.28 python
|
||||
azure-core 1.26.3 python
|
||||
azure-core 1.26.4 python
|
||||
azure-identity 1.12.0 python
|
||||
azure-mgmt-core 1.3.2 python
|
||||
azure-mgmt-core 1.4.0 python
|
||||
azure-mgmt-dns 8.0.0 python
|
||||
bash 5.2.15-r0 apk
|
||||
beautifulsoup4 4.11.2 python
|
||||
boto3 1.26.92 python
|
||||
botocore 1.29.92 python
|
||||
beautifulsoup4 4.12.2 python
|
||||
boto3 1.26.129 python
|
||||
botocore 1.29.129 python
|
||||
brotli-libs 1.0.9-r9 apk
|
||||
bs4 0.0.1 python
|
||||
busybox 1.35.0 binary
|
||||
@@ -32,42 +32,42 @@ c-client 2007f-r14 apk
|
||||
ca-certificates 20220614-r4 apk
|
||||
ca-certificates-bundle 20220614-r4 apk
|
||||
cachetools 5.3.0 python
|
||||
certbot 2.4.0 python
|
||||
certbot 2.5.0 python
|
||||
certbot-dns-acmedns 0.1.0 python
|
||||
certbot-dns-aliyun 2.0.0 python
|
||||
certbot-dns-azure 2.1.0 python
|
||||
certbot-dns-cloudflare 2.4.0 python
|
||||
certbot-dns-cloudflare 2.5.0 python
|
||||
certbot-dns-cpanel 0.4.0 python
|
||||
certbot-dns-desec 1.2.1 python
|
||||
certbot-dns-digitalocean 2.4.0 python
|
||||
certbot-dns-digitalocean 2.5.0 python
|
||||
certbot-dns-directadmin 1.0.3 python
|
||||
certbot-dns-dnsimple 2.4.0 python
|
||||
certbot-dns-dnsmadeeasy 2.4.0 python
|
||||
certbot-dns-dnsimple 2.5.0 python
|
||||
certbot-dns-dnsmadeeasy 2.5.0 python
|
||||
certbot-dns-dnspod 0.1.0 python
|
||||
certbot-dns-do 0.31.0 python
|
||||
certbot-dns-domeneshop 0.2.9 python
|
||||
certbot-dns-duckdns 1.3 python
|
||||
certbot-dns-dynu 0.0.4 python
|
||||
certbot-dns-gehirn 2.4.0 python
|
||||
certbot-dns-gehirn 2.5.0 python
|
||||
certbot-dns-godaddy 0.2.2 python
|
||||
certbot-dns-google 2.4.0 python
|
||||
certbot-dns-google-domains 0.1.6 python
|
||||
certbot-dns-google 2.5.0 python
|
||||
certbot-dns-google-domains 0.1.11 python
|
||||
certbot-dns-he 1.0.0 python
|
||||
certbot-dns-hetzner 2.0.0 python
|
||||
certbot-dns-infomaniak 0.2.1 python
|
||||
certbot-dns-inwx 2.2.0 python
|
||||
certbot-dns-ionos 2022.11.24 python
|
||||
certbot-dns-linode 2.4.0 python
|
||||
certbot-dns-linode 2.5.0 python
|
||||
certbot-dns-loopia 1.0.1 python
|
||||
certbot-dns-luadns 2.4.0 python
|
||||
certbot-dns-luadns 2.5.0 python
|
||||
certbot-dns-netcup 1.2.0 python
|
||||
certbot-dns-njalla 1.0.0 python
|
||||
certbot-dns-nsone 2.4.0 python
|
||||
certbot-dns-ovh 2.4.0 python
|
||||
certbot-dns-nsone 2.5.0 python
|
||||
certbot-dns-ovh 2.5.0 python
|
||||
certbot-dns-porkbun 0.8 python
|
||||
certbot-dns-rfc2136 2.4.0 python
|
||||
certbot-dns-route53 2.4.0 python
|
||||
certbot-dns-sakuracloud 2.4.0 python
|
||||
certbot-dns-rfc2136 2.5.0 python
|
||||
certbot-dns-route53 2.5.0 python
|
||||
certbot-dns-sakuracloud 2.5.0 python
|
||||
certbot-dns-standalone 1.1 python
|
||||
certbot-dns-transip 0.5.2 python
|
||||
certbot-dns-vultr 1.0.3 python
|
||||
@@ -78,8 +78,8 @@ charset-normalizer 3.1.0 python
|
||||
cloudflare 2.11.1 python
|
||||
configobj 5.0.8 python
|
||||
coreutils 9.1-r0 apk
|
||||
cryptography 39.0.2 python
|
||||
curl 7.88.1-r0 apk
|
||||
cryptography 40.0.2 python
|
||||
curl 8.0.1-r0 apk
|
||||
dataclasses-json 0.5.7 python
|
||||
distro 1.8.0 python
|
||||
dns-lexicon 3.11.7 python
|
||||
@@ -88,13 +88,13 @@ dnspython 2.3.0 python
|
||||
domeneshop 0.4.3 python
|
||||
fail2ban 1.0.2 python
|
||||
fail2ban 1.0.2-r0 apk
|
||||
filelock 3.10.0 python
|
||||
filelock 3.12.0 python
|
||||
fontconfig 2.14.1-r0 apk
|
||||
freetype 2.12.1-r0 apk
|
||||
future 0.18.3 python
|
||||
gdbm 1.23-r0 apk
|
||||
git 2.38.4-r1 apk
|
||||
git-perl 2.38.4-r1 apk
|
||||
git 2.38.5-r0 apk
|
||||
git-perl 2.38.5-r0 apk
|
||||
gmp 6.2.1-r2 apk
|
||||
gnupg 2.2.40-r0 apk
|
||||
gnupg-dirmngr 2.2.40-r0 apk
|
||||
@@ -103,20 +103,20 @@ gnupg-utils 2.2.40-r0 apk
|
||||
gnupg-wks-client 2.2.40-r0 apk
|
||||
gnutls 3.7.8-r3 apk
|
||||
google-api-core 2.11.0 python
|
||||
google-api-python-client 2.81.0 python
|
||||
google-auth 2.16.2 python
|
||||
google-api-python-client 2.86.0 python
|
||||
google-auth 2.17.3 python
|
||||
google-auth-httplib2 0.1.0 python
|
||||
googleapis-common-protos 1.58.0 python
|
||||
googleapis-common-protos 1.59.0 python
|
||||
gpg 2.2.40-r0 apk
|
||||
gpg-agent 2.2.40-r0 apk
|
||||
gpg-wks-server 2.2.40-r0 apk
|
||||
gpgsm 2.2.40-r0 apk
|
||||
gpgv 2.2.40-r0 apk
|
||||
httplib2 0.21.0 python
|
||||
httplib2 0.22.0 python
|
||||
icu-data-en 72.1-r1 apk
|
||||
icu-libs 72.1-r1 apk
|
||||
idna 3.4 python
|
||||
importlib-metadata 6.0.0 python
|
||||
importlib-metadata 6.6.0 python
|
||||
ip6tables 1.8.8-r2 apk
|
||||
iptables 1.8.8-r2 apk
|
||||
isodate 0.6.1 python
|
||||
@@ -132,8 +132,8 @@ libavif 0.11.1-r0 apk
|
||||
libbsd 0.11.7-r0 apk
|
||||
libbz2 1.0.8-r4 apk
|
||||
libc-utils 0.7.2-r3 apk
|
||||
libcrypto3 3.0.8-r0 apk
|
||||
libcurl 7.88.1-r0 apk
|
||||
libcrypto3 3.0.8-r4 apk
|
||||
libcurl 8.0.1-r0 apk
|
||||
libdav1d 1.0.0-r2 apk
|
||||
libedit 20221030.3.1-r0 apk
|
||||
libevent 2.1.12-r5 apk
|
||||
@@ -162,7 +162,7 @@ libsasl 2.1.28-r3 apk
|
||||
libseccomp 2.5.4-r0 apk
|
||||
libsm 1.2.3-r1 apk
|
||||
libsodium 1.0.18-r2 apk
|
||||
libssl3 3.0.8-r0 apk
|
||||
libssl3 3.0.8-r4 apk
|
||||
libstdc++ 12.2.1_git20220924-r4 apk
|
||||
libtasn1 4.19.0-r0 apk
|
||||
libunistring 1.1-r0 apk
|
||||
@@ -173,7 +173,7 @@ libxau 1.0.10-r0 apk
|
||||
libxcb 1.15-r0 apk
|
||||
libxdmcp 1.1.4-r0 apk
|
||||
libxext 1.3.5-r0 apk
|
||||
libxml2 2.10.3-r1 apk
|
||||
libxml2 2.10.4-r0 apk
|
||||
libxpm 3.5.15-r0 apk
|
||||
libxslt 1.1.37-r1 apk
|
||||
libxt 1.2.1-r0 apk
|
||||
@@ -187,9 +187,9 @@ marshmallow 3.19.0 python
|
||||
marshmallow-enum 1.5.1 python
|
||||
memcached 1.6.17 binary
|
||||
memcached 1.6.17-r0 apk
|
||||
mock 5.0.1 python
|
||||
mock 5.0.2 python
|
||||
mpdecimal 2.5.1-r1 apk
|
||||
msal 1.21.0 python
|
||||
msal 1.22.0 python
|
||||
msal-extensions 1.0.0 python
|
||||
msrest 0.7.1 python
|
||||
musl 1.2.3-r4 apk
|
||||
@@ -224,108 +224,108 @@ npth 1.6-r2 apk
|
||||
oauth2client 4.1.3 python
|
||||
oauthlib 3.2.2 python
|
||||
oniguruma 6.9.8-r0 apk
|
||||
openssl 3.0.8-r0 apk
|
||||
openssl 3.0.8-r4 apk
|
||||
p11-kit 0.24.1-r1 apk
|
||||
packaging 23.0 python
|
||||
packaging 23.1 python
|
||||
parsedatetime 2.6 python
|
||||
pcre 8.45-r2 apk
|
||||
pcre2 10.42-r0 apk
|
||||
perl 5.36.0-r0 apk
|
||||
perl 5.36.0-r1 apk
|
||||
perl-error 0.17029-r1 apk
|
||||
perl-git 2.38.4-r1 apk
|
||||
php-cli 8.1.16 binary
|
||||
php-fpm 8.1.16 binary
|
||||
php81 8.1.16-r0 apk
|
||||
php81-bcmath 8.1.16-r0 apk
|
||||
php81-bz2 8.1.16-r0 apk
|
||||
php81-common 8.1.16-r0 apk
|
||||
php81-ctype 8.1.16-r0 apk
|
||||
php81-curl 8.1.16-r0 apk
|
||||
php81-dom 8.1.16-r0 apk
|
||||
php81-exif 8.1.16-r0 apk
|
||||
php81-fileinfo 8.1.16-r0 apk
|
||||
php81-fpm 8.1.16-r0 apk
|
||||
php81-ftp 8.1.16-r0 apk
|
||||
php81-gd 8.1.16-r0 apk
|
||||
php81-gmp 8.1.16-r0 apk
|
||||
php81-iconv 8.1.16-r0 apk
|
||||
php81-imap 8.1.16-r0 apk
|
||||
php81-intl 8.1.16-r0 apk
|
||||
php81-ldap 8.1.16-r0 apk
|
||||
php81-mbstring 8.1.16-r0 apk
|
||||
php81-mysqli 8.1.16-r0 apk
|
||||
php81-mysqlnd 8.1.16-r0 apk
|
||||
php81-opcache 8.1.16-r0 apk
|
||||
php81-openssl 8.1.16-r0 apk
|
||||
php81-pdo 8.1.16-r0 apk
|
||||
php81-pdo_mysql 8.1.16-r0 apk
|
||||
php81-pdo_odbc 8.1.16-r0 apk
|
||||
php81-pdo_pgsql 8.1.16-r0 apk
|
||||
php81-pdo_sqlite 8.1.16-r0 apk
|
||||
php81-pear 8.1.16-r0 apk
|
||||
perl-git 2.38.5-r0 apk
|
||||
php-cli 8.1.18 binary
|
||||
php-fpm 8.1.18 binary
|
||||
php81 8.1.18-r0 apk
|
||||
php81-bcmath 8.1.18-r0 apk
|
||||
php81-bz2 8.1.18-r0 apk
|
||||
php81-common 8.1.18-r0 apk
|
||||
php81-ctype 8.1.18-r0 apk
|
||||
php81-curl 8.1.18-r0 apk
|
||||
php81-dom 8.1.18-r0 apk
|
||||
php81-exif 8.1.18-r0 apk
|
||||
php81-fileinfo 8.1.18-r0 apk
|
||||
php81-fpm 8.1.18-r0 apk
|
||||
php81-ftp 8.1.18-r0 apk
|
||||
php81-gd 8.1.18-r0 apk
|
||||
php81-gmp 8.1.18-r0 apk
|
||||
php81-iconv 8.1.18-r0 apk
|
||||
php81-imap 8.1.18-r0 apk
|
||||
php81-intl 8.1.18-r0 apk
|
||||
php81-ldap 8.1.18-r0 apk
|
||||
php81-mbstring 8.1.18-r0 apk
|
||||
php81-mysqli 8.1.18-r0 apk
|
||||
php81-mysqlnd 8.1.18-r0 apk
|
||||
php81-opcache 8.1.18-r0 apk
|
||||
php81-openssl 8.1.18-r0 apk
|
||||
php81-pdo 8.1.18-r0 apk
|
||||
php81-pdo_mysql 8.1.18-r0 apk
|
||||
php81-pdo_odbc 8.1.18-r0 apk
|
||||
php81-pdo_pgsql 8.1.18-r0 apk
|
||||
php81-pdo_sqlite 8.1.18-r0 apk
|
||||
php81-pear 8.1.18-r0 apk
|
||||
php81-pecl-apcu 5.1.22-r0 apk
|
||||
php81-pecl-igbinary 3.2.12-r0 apk
|
||||
php81-pecl-mailparse 3.1.4-r0 apk
|
||||
php81-pecl-mcrypt 1.0.6-r0 apk
|
||||
php81-pecl-memcached 3.2.0-r0 apk
|
||||
php81-pecl-redis 5.3.7-r0 apk
|
||||
php81-pecl-xmlrpc 1.0.0_rc3-r0 apk
|
||||
php81-pgsql 8.1.16-r0 apk
|
||||
php81-phar 8.1.16-r0 apk
|
||||
php81-posix 8.1.16-r0 apk
|
||||
php81-session 8.1.16-r0 apk
|
||||
php81-simplexml 8.1.16-r0 apk
|
||||
php81-soap 8.1.16-r0 apk
|
||||
php81-sockets 8.1.16-r0 apk
|
||||
php81-sodium 8.1.16-r0 apk
|
||||
php81-sqlite3 8.1.16-r0 apk
|
||||
php81-tokenizer 8.1.16-r0 apk
|
||||
php81-xml 8.1.16-r0 apk
|
||||
php81-xmlreader 8.1.16-r0 apk
|
||||
php81-xmlwriter 8.1.16-r0 apk
|
||||
php81-xsl 8.1.16-r0 apk
|
||||
php81-zip 8.1.16-r0 apk
|
||||
php81-pecl-xmlrpc 1.0.0_rc3-r1 apk
|
||||
php81-pgsql 8.1.18-r0 apk
|
||||
php81-phar 8.1.18-r0 apk
|
||||
php81-posix 8.1.18-r0 apk
|
||||
php81-session 8.1.18-r0 apk
|
||||
php81-simplexml 8.1.18-r0 apk
|
||||
php81-soap 8.1.18-r0 apk
|
||||
php81-sockets 8.1.18-r0 apk
|
||||
php81-sodium 8.1.18-r0 apk
|
||||
php81-sqlite3 8.1.18-r0 apk
|
||||
php81-tokenizer 8.1.18-r0 apk
|
||||
php81-xml 8.1.18-r0 apk
|
||||
php81-xmlreader 8.1.18-r0 apk
|
||||
php81-xmlwriter 8.1.18-r0 apk
|
||||
php81-xsl 8.1.18-r0 apk
|
||||
php81-zip 8.1.18-r0 apk
|
||||
pinentry 1.2.1-r0 apk
|
||||
pip 23.0.1 python
|
||||
pip 23.1.2 python
|
||||
pkb-client 1.2 python
|
||||
popt 1.19-r0 apk
|
||||
portalocker 2.7.0 python
|
||||
procps 3.3.17-r2 apk
|
||||
protobuf 4.22.1 python
|
||||
publicsuffixlist 0.9.3 python
|
||||
pyOpenSSL 23.0.0 python
|
||||
protobuf 4.22.4 python
|
||||
publicsuffixlist 0.9.4 python
|
||||
pyOpenSSL 23.1.1 python
|
||||
pyRFC3339 1.1 python
|
||||
pyacmedns 0.4 python
|
||||
pyasn1 0.4.8 python
|
||||
pyasn1-modules 0.2.8 python
|
||||
pyasn1 0.5.0 python
|
||||
pyasn1-modules 0.3.0 python
|
||||
pycparser 2.21 python
|
||||
pyparsing 3.0.9 python
|
||||
python 3.10.10 binary
|
||||
python 3.10.11 binary
|
||||
python-dateutil 2.8.2 python
|
||||
python-digitalocean 1.17.0 python
|
||||
python-transip 0.6.0 python
|
||||
python3 3.10.10-r0 apk
|
||||
pytz 2022.7.1 python
|
||||
python3 3.10.11-r0 apk
|
||||
pytz 2023.3 python
|
||||
readline 8.2.0-r0 apk
|
||||
requests 2.28.2 python
|
||||
requests 2.30.0 python
|
||||
requests-file 1.5.1 python
|
||||
requests-mock 1.10.0 python
|
||||
requests-oauthlib 1.3.1 python
|
||||
rsa 4.9 python
|
||||
s3transfer 0.6.0 python
|
||||
s3transfer 0.6.1 python
|
||||
scanelf 1.3.5-r1 apk
|
||||
setuptools 65.5.0 python
|
||||
shadow 4.13-r0 apk
|
||||
six 1.16.0 python
|
||||
skalibs 2.12.0.1-r0 apk
|
||||
soupsieve 2.4 python
|
||||
soupsieve 2.4.1 python
|
||||
sqlite-libs 3.40.1-r0 apk
|
||||
ssl_client 1.35.0-r29 apk
|
||||
tiff 4.4.0-r1 apk
|
||||
tldextract 3.4.0 python
|
||||
tiff 4.4.0-r3 apk
|
||||
tldextract 3.4.1 python
|
||||
typing-inspect 0.8.0 python
|
||||
typing_extensions 4.5.0 python
|
||||
tzdata 2022f-r1 apk
|
||||
tzdata 2023c-r0 apk
|
||||
unixodbc 2.3.11-r0 apk
|
||||
uritemplate 4.1.1 python
|
||||
urllib3 1.26.15 python
|
||||
@@ -336,5 +336,5 @@ xz 5.2.9-r0 apk
|
||||
xz-libs 5.2.9-r0 apk
|
||||
zipp 3.15.0 python
|
||||
zlib 1.2.13-r0 apk
|
||||
zope.interface 5.5.2 python
|
||||
zstd-libs 1.5.2-r9 apk
|
||||
zope.interface 6.0 python
|
||||
zstd-libs 1.5.5-r0 apk
|
||||
|
||||
@@ -154,6 +154,8 @@ app_setup_block: |
|
||||
|
||||
# changelog
|
||||
changelogs:
|
||||
- { date: "13.04.23:", desc: "[Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) nginx.conf, authelia-location.conf, authentik-location.conf, and site-confs/default.conf - Move ssl.conf include to default.conf. Remove Authorization headers in authelia. Sort proxy_set_header in authelia and authentik." }
|
||||
- { date: "25.03.23:", desc: "Fix renewal post hook." }
|
||||
- { date: "10.03.23:", desc: "Cleanup unused csr and keys folders. See [certbot 2.3.0 release notes](https://github.com/certbot/certbot/releases/tag/v2.3.0)." }
|
||||
- { date: "09.03.23:", desc: "Add Google Domains DNS support, `google-domains`." }
|
||||
- { date: "02.03.23:", desc: "Set permissions on crontabs during init." }
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
. /config/.donoteditthisfile.conf
|
||||
|
||||
if [[ ! "${ORIGVALIDATION}" = "dns" ]] && [[ ! "${ORIGVALIDATION}" = "duckdns" ]]; then
|
||||
if pgrep -f "s6-supervise nginx" >/dev/null; then
|
||||
if pgrep -f "s6-supervise svc-nginx" >/dev/null; then
|
||||
s6-svc -u /run/service/svc-nginx
|
||||
fi
|
||||
else
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
## Version 2023/02/09 - Changelog: https://github.com/linuxserver/docker-swag/commits/master/root/defaults/nginx/authelia-location.conf.sample
|
||||
## Version 2023/04/13 - Changelog: https://github.com/linuxserver/docker-swag/commits/master/root/defaults/nginx/authelia-location.conf.sample
|
||||
# Make sure that your authelia container is in the same user defined bridge network and is named authelia
|
||||
# Rename /config/nginx/proxy-confs/authelia.conf.sample to /config/nginx/proxy-confs/authelia.conf
|
||||
# Rename /config/nginx/proxy-confs/authelia.subdomain.conf.sample to /config/nginx/proxy-confs/authelia.subdomain.conf
|
||||
# Make sure that the authelia configuration.yml has 'path: "authelia"' defined
|
||||
|
||||
## Send a subrequest to Authelia to verify if the user is authenticated and has permission to access the resource.
|
||||
@@ -9,20 +9,16 @@ auth_request /authelia/api/verify;
|
||||
error_page 401 = @authelia_proxy_signin;
|
||||
|
||||
## Translate response headers from Authelia into variables
|
||||
auth_request_set $user $upstream_http_remote_user;
|
||||
auth_request_set $email $upstream_http_remote_email;
|
||||
auth_request_set $groups $upstream_http_remote_groups;
|
||||
auth_request_set $name $upstream_http_remote_name;
|
||||
auth_request_set $email $upstream_http_remote_email;
|
||||
auth_request_set $authorization $upstream_http_authorization;
|
||||
auth_request_set $proxy_authorization $upstream_http_proxy_authorization;
|
||||
auth_request_set $user $upstream_http_remote_user;
|
||||
|
||||
## Inject the response header variables into the request made to the actual upstream
|
||||
proxy_set_header Remote-User $user;
|
||||
proxy_set_header Remote-Email $email;
|
||||
proxy_set_header Remote-Groups $groups;
|
||||
proxy_set_header Remote-Name $name;
|
||||
proxy_set_header Remote-Email $email;
|
||||
proxy_set_header Authorization $authorization;
|
||||
proxy_set_header Proxy-Authorization $proxy_authorization;
|
||||
proxy_set_header Remote-User $user;
|
||||
|
||||
## Include the Set-Cookie header if present.
|
||||
auth_request_set $set_cookie $upstream_http_set_cookie;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
## Version 2023/02/09 - Changelog: https://github.com/linuxserver/docker-swag/commits/master/root/defaults/nginx/authelia-server.conf.sample
|
||||
# Make sure that your authelia container is in the same user defined bridge network and is named authelia
|
||||
# Rename /config/nginx/proxy-confs/authelia.conf.sample to /config/nginx/proxy-confs/authelia.conf
|
||||
# Rename /config/nginx/proxy-confs/authelia.subdomain.conf.sample to /config/nginx/proxy-confs/authelia.subdomain.conf
|
||||
# Make sure that the authelia configuration.yml has 'path: "authelia"' defined
|
||||
|
||||
# location for authelia subfolder requests
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
## Version 2023/02/09 - Changelog: https://github.com/linuxserver/docker-swag/commits/master/root/defaults/nginx/authentik-location.conf.sample
|
||||
## Version 2023/04/13 - Changelog: https://github.com/linuxserver/docker-swag/commits/master/root/defaults/nginx/authentik-location.conf.sample
|
||||
# Make sure that your authentik container is in the same user defined bridge network and is named authentik-server
|
||||
# Rename /config/nginx/proxy-confs/authentik.conf.sample to /config/nginx/proxy-confs/authentik.conf
|
||||
# Rename /config/nginx/proxy-confs/authentik.subdomain.conf.sample to /config/nginx/proxy-confs/authentik.subdomain.conf
|
||||
|
||||
## Send a subrequest to Authentik to verify if the user is authenticated and has permission to access the resource.
|
||||
auth_request /outpost.goauthentik.io/auth/nginx;
|
||||
@@ -8,18 +8,18 @@ auth_request /outpost.goauthentik.io/auth/nginx;
|
||||
error_page 401 = @goauthentik_proxy_signin;
|
||||
|
||||
## Translate response headers from Authentik into variables
|
||||
auth_request_set $authentik_username $upstream_http_x_authentik_username;
|
||||
auth_request_set $authentik_groups $upstream_http_x_authentik_groups;
|
||||
auth_request_set $authentik_email $upstream_http_x_authentik_email;
|
||||
auth_request_set $authentik_groups $upstream_http_x_authentik_groups;
|
||||
auth_request_set $authentik_name $upstream_http_x_authentik_name;
|
||||
auth_request_set $authentik_uid $upstream_http_x_authentik_uid;
|
||||
auth_request_set $authentik_username $upstream_http_x_authentik_username;
|
||||
|
||||
## Inject the response header variables into the request made to the actual upstream
|
||||
proxy_set_header X-authentik-username $authentik_username;
|
||||
proxy_set_header X-authentik-groups $authentik_groups;
|
||||
proxy_set_header X-authentik-email $authentik_email;
|
||||
proxy_set_header X-authentik-groups $authentik_groups;
|
||||
proxy_set_header X-authentik-name $authentik_name;
|
||||
proxy_set_header X-authentik-uid $authentik_uid;
|
||||
proxy_set_header X-authentik-username $authentik_username;
|
||||
|
||||
## Include the Set-Cookie header if present.
|
||||
auth_request_set $set_cookie $upstream_http_set_cookie;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
## Version 2023/02/09 - Changelog: https://github.com/linuxserver/docker-swag/commits/master/root/defaults/nginx/authentik-server.conf.sample
|
||||
# Make sure that your authentik container is in the same user defined bridge network and is named authentik-server
|
||||
# Rename /config/nginx/proxy-confs/authentik.conf.sample to /config/nginx/proxy-confs/authentik.conf
|
||||
# Rename /config/nginx/proxy-confs/authentik.subdomain.conf.sample to /config/nginx/proxy-confs/authentik.subdomain.conf
|
||||
|
||||
# location for authentik subfolder requests
|
||||
location ^~ /outpost.goauthentik.io {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
## Version 2023/02/09 - Changelog: https://github.com/linuxserver/docker-swag/commits/master/root/defaults/nginx/site-confs/default.conf.sample
|
||||
## Version 2023/04/13 - Changelog: https://github.com/linuxserver/docker-swag/commits/master/root/defaults/nginx/site-confs/default.conf.sample
|
||||
|
||||
# redirect all traffic to https
|
||||
server {
|
||||
@@ -17,6 +17,8 @@ server {
|
||||
|
||||
server_name _;
|
||||
|
||||
include /config/nginx/ssl.conf;
|
||||
|
||||
root /config/www;
|
||||
index index.html index.htm index.php;
|
||||
|
||||
|
||||
@@ -41,6 +41,7 @@ lsiown -R abc:abc /config/etc/letsencrypt/renewal-hooks
|
||||
# replace nginx service location in renewal hooks
|
||||
find /config/etc/letsencrypt/renewal-hooks/ -type f -exec sed -i 's|/run/service/nginx|/run/service/svc-nginx|g' {} \;
|
||||
find /config/etc/letsencrypt/renewal-hooks/ -type f -exec sed -i 's|/var/run/s6/services/nginx|/run/service/svc-nginx|g' {} \;
|
||||
find /config/etc/letsencrypt/renewal-hooks/ -type f -exec sed -i 's|s6-supervise nginx|s6-supervise svc-nginx|g' {} \;
|
||||
|
||||
# create original config file if it doesn't exist, move non-hidden legacy file to hidden
|
||||
if [[ -f "/config/donoteditthisfile.conf" ]]; then
|
||||
@@ -273,7 +274,7 @@ if [[ "${VALIDATION}" = "dns" ]]; then
|
||||
DNSCREDENTIALSPARAM=""
|
||||
fi
|
||||
# plugins that don't support setting propagation
|
||||
if [[ "${DNSPLUGIN}" =~ ^(azure|gandi|standalone)$ ]]; then
|
||||
if [[ "${DNSPLUGIN}" =~ ^(azure|gandi|route53|standalone)$ ]]; then
|
||||
if [[ -n "${PROPAGATION}" ]]; then echo "${DNSPLUGIN} dns plugin does not support setting propagation time"; fi
|
||||
PROPAGATIONPARAM=""
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user