Compare commits

...

22 Commits

Author SHA1 Message Date
LinuxServer-CI
0207bd8f30 Bot Updating Templated Files 2024-03-15 18:26:27 +00:00
Eric Nemchik
3fd209d686 Merge pull request #466 from linuxserver/nemchik-patch-1
Update readme-vars.yml
2024-03-15 13:23:06 -05:00
Eric Nemchik
87ced3fd3e Update readme-vars.yml 2024-03-15 13:08:37 -05:00
Eric Nemchik
3e342b0529 Update readme-vars.yml 2024-03-15 13:07:59 -05:00
LinuxServer-CI
c9504bb55f Bot Updating Package Versions 2024-03-15 15:55:24 +00:00
LinuxServer-CI
2573149089 Bot Updating Templated Files 2024-03-15 15:50:23 +00:00
Eric Nemchik
9b3f418afd Merge pull request #465 from linuxserver/authelia-4.38-alt
support for authelia 4.38+
2024-03-15 10:48:40 -05:00
Eric Nemchik
c63b437e1f Update comments
Signed-off-by: GitHub <noreply@github.com>
2024-03-15 14:41:19 +00:00
Eric Nemchik
f14c6a7a3a support for authelia 4.38+
Signed-off-by: Eric Nemchik <eric@nemchik.com>
2024-03-14 21:57:51 -05:00
LinuxServer-CI
26203c8c40 Bot Updating Package Versions 2024-03-09 03:21:46 +00:00
LinuxServer-CI
259850fcc5 Bot Updating Templated Files 2024-03-06 17:43:29 +00:00
Eric Nemchik
c6474f07ea Cleanup default site conf (#442)
* Cleanup default site conf

Signed-off-by: Eric Nemchik <eric@nemchik.com>

* update date

---------

Signed-off-by: Eric Nemchik <eric@nemchik.com>
Co-authored-by: aptalca <541623+aptalca@users.noreply.github.com>
2024-03-06 12:41:52 -05:00
LinuxServer-CI
b6a196b93a Bot Updating Package Versions 2024-03-06 16:22:38 +00:00
aptalca
3967276f06 Merge pull request #459 from linuxserver/stream
remove stream.conf
2024-03-06 11:18:47 -05:00
aptalca
4853736c4e add comment 2024-03-06 09:44:39 -05:00
aptalca
a8d03c5280 Merge pull request #460 from linuxserver/package-install
Run package installer as part of SWAG init to prevent init fail due to missing dns plugin
2024-03-05 08:31:23 -05:00
aptalca
907dfc8c03 Revert "Update root/etc/s6-overlay/s6-rc.d/init-certbot-config/run"
This reverts commit bf21a51e10.
2024-03-04 20:19:53 -05:00
aptalca
bf21a51e10 Update root/etc/s6-overlay/s6-rc.d/init-certbot-config/run
Co-authored-by: Eric Nemchik <eric@nemchik.com>
2024-03-04 19:33:01 -05:00
aptalca
32f72ac0b4 make it pretty, grep certbot-dns 2024-03-04 18:33:13 -05:00
aptalca
970fa75e87 run scripts direct 2024-03-04 18:23:04 -05:00
aptalca
137ad9f52e Run package installer as part of SWAG init to prevent init fail due to missing dns plugin 2024-03-04 18:10:49 -05:00
aptalca
5d0ec79ac5 remove stream.conf 2024-03-04 17:56:25 -05:00
11 changed files with 133 additions and 80 deletions

View File

@@ -144,6 +144,8 @@ RUN \
sed -i \ sed -i \
's|#ssl_trusted_certificate /config/keys/cert.crt;|ssl_trusted_certificate /config/keys/cert.crt;|' \ 's|#ssl_trusted_certificate /config/keys/cert.crt;|ssl_trusted_certificate /config/keys/cert.crt;|' \
/defaults/nginx/ssl.conf.sample && \ /defaults/nginx/ssl.conf.sample && \
echo "**** remove stream.conf ****" && \
rm -f /etc/nginx/conf.d/stream.conf && \
echo "**** correct ip6tables legacy issue ****" && \ echo "**** correct ip6tables legacy issue ****" && \
rm \ rm \
/sbin/ip6tables && \ /sbin/ip6tables && \

View File

@@ -144,6 +144,8 @@ RUN \
sed -i \ sed -i \
's|#ssl_trusted_certificate /config/keys/cert.crt;|ssl_trusted_certificate /config/keys/cert.crt;|' \ 's|#ssl_trusted_certificate /config/keys/cert.crt;|ssl_trusted_certificate /config/keys/cert.crt;|' \
/defaults/nginx/ssl.conf.sample && \ /defaults/nginx/ssl.conf.sample && \
echo "**** remove stream.conf ****" && \
rm -f /etc/nginx/conf.d/stream.conf && \
echo "**** correct ip6tables legacy issue ****" && \ echo "**** correct ip6tables legacy issue ****" && \
rm \ rm \
/sbin/ip6tables && \ /sbin/ip6tables && \

61
Jenkinsfile vendored
View File

@@ -268,8 +268,15 @@ pipeline {
set -e set -e
TEMPDIR=$(mktemp -d) TEMPDIR=$(mktemp -d)
docker pull ghcr.io/linuxserver/jenkins-builder:latest docker pull ghcr.io/linuxserver/jenkins-builder:latest
docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=master -v ${TEMPDIR}:/ansible/jenkins ghcr.io/linuxserver/jenkins-builder:latest # Cloned repo paths for templating:
# Stage 1 - Jenkinsfile update # ${TEMPDIR}/docker-${CONTAINER_NAME}: Cloned branch master of ${LS_USER}/${LS_REPO} for running the jenkins builder on
# ${TEMPDIR}/repo/${LS_REPO}: Cloned branch master of ${LS_USER}/${LS_REPO} for commiting various templated file changes and pushing back to Github
# ${TEMPDIR}/docs/docker-documentation: Cloned docs repo for pushing docs updates to Github
# ${TEMPDIR}/unraid/docker-templates: Cloned docker-templates repo to check for logos
# ${TEMPDIR}/unraid/templates: Cloned templates repo for commiting unraid template changes and pushing back to Github
git clone --branch master --depth 1 https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/docker-${CONTAINER_NAME}
docker run --rm -v ${TEMPDIR}/docker-${CONTAINER_NAME}:/tmp -e LOCAL=true ghcr.io/linuxserver/jenkins-builder:latest
echo "Starting Stage 1 - Jenkinsfile update"
if [[ "$(md5sum Jenkinsfile | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile | awk '{ print $1 }')" ]]; then if [[ "$(md5sum Jenkinsfile | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile | awk '{ print $1 }')" ]]; then
mkdir -p ${TEMPDIR}/repo mkdir -p ${TEMPDIR}/repo
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO} git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
@@ -281,13 +288,13 @@ pipeline {
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
echo "Updating Jenkinsfile" echo "Updating Jenkinsfile and exiting build, new one will trigger based on commit"
rm -Rf ${TEMPDIR} rm -Rf ${TEMPDIR}
exit 0 exit 0
else else
echo "Jenkinsfile is up to date." echo "Jenkinsfile is up to date."
fi fi
# Stage 2 - Delete old templates echo "Starting Stage 2 - Delete old templates"
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 Dockerfile.armhf" 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 Dockerfile.armhf"
for i in ${OLD_TEMPLATES}; do for i in ${OLD_TEMPLATES}; do
if [[ -f "${i}" ]]; then if [[ -f "${i}" ]]; then
@@ -306,13 +313,13 @@ pipeline {
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
echo "Deleting old and deprecated templates" echo "Deleting old/deprecated templates and exiting build, new one will trigger based on commit"
rm -Rf ${TEMPDIR} rm -Rf ${TEMPDIR}
exit 0 exit 0
else else
echo "No templates to delete" echo "No templates to delete"
fi fi
# Stage 3 - Update templates echo "Starting Stage 3 - Update templates"
CURRENTHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8) CURRENTHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8)
cd ${TEMPDIR}/docker-${CONTAINER_NAME} cd ${TEMPDIR}/docker-${CONTAINER_NAME}
NEWHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8) NEWHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8)
@@ -336,9 +343,14 @@ pipeline {
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
echo "Updating templates and exiting build, new one will trigger based on commit"
rm -Rf ${TEMPDIR}
exit 0
else else
echo "false" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} echo "false" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
echo "No templates to update"
fi fi
echo "Starting Stage 4 - External repo updates: Docs, Unraid Template and Readme Sync to Docker Hub"
mkdir -p ${TEMPDIR}/docs mkdir -p ${TEMPDIR}/docs
git clone https://github.com/linuxserver/docker-documentation.git ${TEMPDIR}/docs/docker-documentation git clone https://github.com/linuxserver/docker-documentation.git ${TEMPDIR}/docs/docker-documentation
if [[ "${BRANCH_NAME}" == "${GH_DEFAULT_BRANCH}" ]] && [[ (! -f ${TEMPDIR}/docs/docker-documentation/docs/images/docker-${CONTAINER_NAME}.md) || ("$(md5sum ${TEMPDIR}/docs/docker-documentation/docs/images/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')") ]]; then if [[ "${BRANCH_NAME}" == "${GH_DEFAULT_BRANCH}" ]] && [[ (! -f ${TEMPDIR}/docs/docker-documentation/docs/images/docker-${CONTAINER_NAME}.md) || ("$(md5sum ${TEMPDIR}/docs/docker-documentation/docs/images/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')") ]]; then
@@ -346,6 +358,7 @@ pipeline {
cd ${TEMPDIR}/docs/docker-documentation cd ${TEMPDIR}/docs/docker-documentation
GH_DOCS_DEFAULT_BRANCH=$(git remote show origin | grep "HEAD branch:" | sed 's|.*HEAD branch: ||') GH_DOCS_DEFAULT_BRANCH=$(git remote show origin | grep "HEAD branch:" | sed 's|.*HEAD branch: ||')
git add docs/images/docker-${CONTAINER_NAME}.md git add docs/images/docker-${CONTAINER_NAME}.md
echo "Updating docs repo"
git commit -m 'Bot Updating Documentation' git commit -m 'Bot Updating Documentation'
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH} --rebase git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH} --rebase
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH} || \ git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH} || \
@@ -353,6 +366,8 @@ pipeline {
sleep $((RANDOM % MAXWAIT)) && \ sleep $((RANDOM % MAXWAIT)) && \
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH} --rebase && \ git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH} --rebase && \
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH}) git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH})
else
echo "Docs update not needed, skipping"
fi fi
mkdir -p ${TEMPDIR}/unraid mkdir -p ${TEMPDIR}/unraid
git clone https://github.com/linuxserver/docker-templates.git ${TEMPDIR}/unraid/docker-templates git clone https://github.com/linuxserver/docker-templates.git ${TEMPDIR}/unraid/docker-templates
@@ -363,6 +378,7 @@ pipeline {
sed -i "s|master/linuxserver.io/img/linuxserver-ls-logo.png|master/linuxserver.io/img/${CONTAINER_NAME}-icon.png|" ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml sed -i "s|master/linuxserver.io/img/linuxserver-ls-logo.png|master/linuxserver.io/img/${CONTAINER_NAME}-icon.png|" ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml
fi fi
if [[ "${BRANCH_NAME}" == "${GH_DEFAULT_BRANCH}" ]] && [[ (! -f ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml) || ("$(md5sum ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml | awk '{ print $1 }')") ]]; then if [[ "${BRANCH_NAME}" == "${GH_DEFAULT_BRANCH}" ]] && [[ (! -f ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml) || ("$(md5sum ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml | awk '{ print $1 }')") ]]; then
echo "Updating Unraid template"
cd ${TEMPDIR}/unraid/templates/ cd ${TEMPDIR}/unraid/templates/
GH_TEMPLATES_DEFAULT_BRANCH=$(git remote show origin | grep "HEAD branch:" | sed 's|.*HEAD branch: ||') GH_TEMPLATES_DEFAULT_BRANCH=$(git remote show origin | grep "HEAD branch:" | sed 's|.*HEAD branch: ||')
if grep -wq "${CONTAINER_NAME}" ${TEMPDIR}/unraid/templates/unraid/ignore.list; then if grep -wq "${CONTAINER_NAME}" ${TEMPDIR}/unraid/templates/unraid/ignore.list; then
@@ -382,16 +398,27 @@ pipeline {
sleep $((RANDOM % MAXWAIT)) && \ sleep $((RANDOM % MAXWAIT)) && \
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git ${GH_TEMPLATES_DEFAULT_BRANCH} --rebase && \ git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git ${GH_TEMPLATES_DEFAULT_BRANCH} --rebase && \
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git ${GH_TEMPLATES_DEFAULT_BRANCH}) git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git ${GH_TEMPLATES_DEFAULT_BRANCH})
else
echo "No updates to Unraid template needed, skipping"
fi fi
# Stage 4 - Sync Readme to Docker Hub
if [[ "${BRANCH_NAME}" == "${GH_DEFAULT_BRANCH}" ]]; then if [[ "${BRANCH_NAME}" == "${GH_DEFAULT_BRANCH}" ]]; then
if [[ $(cat ${TEMPDIR}/docker-${CONTAINER_NAME}/README.md | wc -m) > 25000 ]]; then if [[ $(cat ${TEMPDIR}/docker-${CONTAINER_NAME}/README.md | wc -m) -gt 25000 ]]; then
echo "Readme is longer than 25,000 characters. Syncing the lite version to Docker Hub" echo "Readme is longer than 25,000 characters. Syncing the lite version to Docker Hub"
DH_README_SYNC_PATH="${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/README.lite" DH_README_SYNC_PATH="${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/README.lite"
else else
echo "Syncing readme to Docker Hub" echo "Syncing readme to Docker Hub"
DH_README_SYNC_PATH="${TEMPDIR}/docker-${CONTAINER_NAME}/README.md" DH_README_SYNC_PATH="${TEMPDIR}/docker-${CONTAINER_NAME}/README.md"
fi fi
if curl -s https://hub.docker.com/v2/namespaces/${DOCKERHUB_IMAGE%%/*}/repositories/${DOCKERHUB_IMAGE##*/}/tags | jq -r '.message' | grep -q 404; then
echo "Docker Hub endpoint doesn't exist. Creating endpoint first."
DH_TOKEN=$(curl -d '{"username":"linuxserverci", "password":"'${DOCKERHUB_TOKEN}'"}' -H "Content-Type: application/json" -X POST https://hub.docker.com/v2/users/login | jq -r '.token')
curl -s \
-H "Authorization: JWT ${DH_TOKEN}" \
-H "Content-Type: application/json" \
-X POST \
-d '{"name":"'${DOCKERHUB_IMAGE##*/}'", "namespace":"'${DOCKERHUB_IMAGE%%/*}'"}' \
https://hub.docker.com/v2/repositories/ || :
fi
DH_TOKEN=$(curl -d '{"username":"linuxserverci", "password":"'${DOCKERHUB_TOKEN}'"}' -H "Content-Type: application/json" -X POST https://hub.docker.com/v2/users/login | jq -r '.token') DH_TOKEN=$(curl -d '{"username":"linuxserverci", "password":"'${DOCKERHUB_TOKEN}'"}' -H "Content-Type: application/json" -X POST https://hub.docker.com/v2/users/login | jq -r '.token')
curl -s \ curl -s \
-H "Authorization: JWT ${DH_TOKEN}" \ -H "Authorization: JWT ${DH_TOKEN}" \
@@ -456,14 +483,16 @@ pipeline {
} }
steps{ steps{
sh '''curl -H "Content-Type: application/json" -H "Private-Token: ${GITLAB_TOKEN}" -X POST https://gitlab.com/api/v4/projects \ sh '''curl -H "Content-Type: application/json" -H "Private-Token: ${GITLAB_TOKEN}" -X POST https://gitlab.com/api/v4/projects \
-d '{"namespace_id":'${GITLAB_NAMESPACE}',\ -d '{"namespace_id":'${GITLAB_NAMESPACE}',\
"name":"'${LS_REPO}'", "name":"'${LS_REPO}'",
"mirror":true,\ "mirror":true,\
"import_url":"https://github.com/linuxserver/'${LS_REPO}'.git",\ "import_url":"https://github.com/linuxserver/'${LS_REPO}'.git",\
"issues_access_level":"disabled",\ "issues_access_level":"disabled",\
"merge_requests_access_level":"disabled",\ "merge_requests_access_level":"disabled",\
"repository_access_level":"enabled",\ "repository_access_level":"enabled",\
"visibility":"public"}' ''' "visibility":"public"}' '''
sh '''curl -H "Private-Token: ${GITLAB_TOKEN}" -X PUT "https://gitlab.com/api/v4/projects/Linuxserver.io%2F${LS_REPO}" \
-d "mirror=true&import_url=https://github.com/linuxserver/${LS_REPO}.git" '''
} }
} }
/* ############### /* ###############

View File

@@ -400,6 +400,9 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
## Versions ## Versions
* **14.03.24:** - [Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) authelia-location.conf, authelia-server.conf - Update Authelia conf samples with support for 4.38.
* **06.03.24:** - [Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) site-confs/default.conf - Cleanup default site conf.
* **04.03.24:** - Remove `stream.conf` inside the container to allow users to include their own block in `nginx.conf`.
* **23.01.24:** - Rebase to Alpine 3.19 with php 8.3, add root periodic crontabs for logrotate. * **23.01.24:** - Rebase to Alpine 3.19 with php 8.3, add root periodic crontabs for logrotate.
* **01.01.24:** - Add GleSYS DNS plugin. * **01.01.24:** - Add GleSYS DNS plugin.
* **11.12.23:** - Deprecate certbot-dns-dynu to resolve dependency conflicts with other plugins. * **11.12.23:** - Deprecate certbot-dns-dynu to resolve dependency conflicts with other plugins.

View File

@@ -23,8 +23,8 @@ azure-mgmt-core 1.4.0 python
azure-mgmt-dns 8.1.0 python azure-mgmt-dns 8.1.0 python
bash 5.2.21-r0 apk bash 5.2.21-r0 apk
beautifulsoup4 4.12.3 python beautifulsoup4 4.12.3 python
boto3 1.34.55 python boto3 1.34.63 python
botocore 1.34.55 python botocore 1.34.63 python
brotli-libs 1.1.0-r1 apk brotli-libs 1.1.0-r1 apk
bs4 0.0.2 python bs4 0.0.2 python
busybox 1.36.1-r15 apk busybox 1.36.1-r15 apk
@@ -82,7 +82,7 @@ certifi 2024.2.2 python
cffi 1.16.0 python cffi 1.16.0 python
charset-normalizer 3.3.2 python charset-normalizer 3.3.2 python
cloudflare 2.19.2 python cloudflare 2.19.2 python
composer 2.7.1 binary composer 2.7.2 binary
configobj 5.0.8 python configobj 5.0.8 python
coreutils 9.4-r2 apk coreutils 9.4-r2 apk
coreutils-env 9.4-r2 apk coreutils-env 9.4-r2 apk
@@ -115,10 +115,10 @@ gnupg-utils 2.4.4-r0 apk
gnupg-wks-client 2.4.4-r0 apk gnupg-wks-client 2.4.4-r0 apk
gnutls 3.8.3-r0 apk gnutls 3.8.3-r0 apk
google-api-core 2.17.1 python google-api-core 2.17.1 python
google-api-python-client 2.120.0 python google-api-python-client 2.122.0 python
google-auth 2.28.1 python google-auth 2.28.2 python
google-auth-httplib2 0.2.0 python google-auth-httplib2 0.2.0 python
googleapis-common-protos 1.62.0 python googleapis-common-protos 1.63.0 python
gpg 2.4.4-r0 apk gpg 2.4.4-r0 apk
gpg-agent 2.4.4-r0 apk gpg-agent 2.4.4-r0 apk
gpg-wks-server 2.4.4-r0 apk gpg-wks-server 2.4.4-r0 apk
@@ -235,62 +235,62 @@ npth 1.6-r4 apk
oniguruma 6.9.9-r0 apk oniguruma 6.9.9-r0 apk
openssl 3.1.4-r5 apk openssl 3.1.4-r5 apk
p11-kit 0.25.3-r0 apk p11-kit 0.25.3-r0 apk
packaging 23.2 python packaging 24.0 python
parsedatetime 2.6 python parsedatetime 2.6 python
pcre 8.45-r3 apk pcre 8.45-r3 apk
pcre2 10.42-r2 apk pcre2 10.42-r2 apk
perl 5.38.2-r0 apk perl 5.38.2-r0 apk
perl-error 0.17029-r2 apk perl-error 0.17029-r2 apk
perl-git 2.43.0-r0 apk perl-git 2.43.0-r0 apk
php83 8.3.3-r0 apk php83 8.3.4-r0 apk
php83-bcmath 8.3.3-r0 apk php83-bcmath 8.3.4-r0 apk
php83-bz2 8.3.3-r0 apk php83-bz2 8.3.4-r0 apk
php83-common 8.3.3-r0 apk php83-common 8.3.4-r0 apk
php83-ctype 8.3.3-r0 apk php83-ctype 8.3.4-r0 apk
php83-curl 8.3.3-r0 apk php83-curl 8.3.4-r0 apk
php83-dom 8.3.3-r0 apk php83-dom 8.3.4-r0 apk
php83-exif 8.3.3-r0 apk php83-exif 8.3.4-r0 apk
php83-fileinfo 8.3.3-r0 apk php83-fileinfo 8.3.4-r0 apk
php83-fpm 8.3.3-r0 apk php83-fpm 8.3.4-r0 apk
php83-ftp 8.3.3-r0 apk php83-ftp 8.3.4-r0 apk
php83-gd 8.3.3-r0 apk php83-gd 8.3.4-r0 apk
php83-gmp 8.3.3-r0 apk php83-gmp 8.3.4-r0 apk
php83-iconv 8.3.3-r0 apk php83-iconv 8.3.4-r0 apk
php83-imap 8.3.3-r0 apk php83-imap 8.3.4-r0 apk
php83-intl 8.3.3-r0 apk php83-intl 8.3.4-r0 apk
php83-ldap 8.3.3-r0 apk php83-ldap 8.3.4-r0 apk
php83-mbstring 8.3.3-r0 apk php83-mbstring 8.3.4-r0 apk
php83-mysqli 8.3.3-r0 apk php83-mysqli 8.3.4-r0 apk
php83-mysqlnd 8.3.3-r0 apk php83-mysqlnd 8.3.4-r0 apk
php83-opcache 8.3.3-r0 apk php83-opcache 8.3.4-r0 apk
php83-openssl 8.3.3-r0 apk php83-openssl 8.3.4-r0 apk
php83-pdo 8.3.3-r0 apk php83-pdo 8.3.4-r0 apk
php83-pdo_mysql 8.3.3-r0 apk php83-pdo_mysql 8.3.4-r0 apk
php83-pdo_odbc 8.3.3-r0 apk php83-pdo_odbc 8.3.4-r0 apk
php83-pdo_pgsql 8.3.3-r0 apk php83-pdo_pgsql 8.3.4-r0 apk
php83-pdo_sqlite 8.3.3-r0 apk php83-pdo_sqlite 8.3.4-r0 apk
php83-pear 8.3.3-r0 apk php83-pear 8.3.4-r0 apk
php83-pecl-apcu 5.1.23-r0 apk php83-pecl-apcu 5.1.23-r0 apk
php83-pecl-igbinary 3.2.15-r0 apk php83-pecl-igbinary 3.2.15-r0 apk
php83-pecl-mcrypt 1.0.7-r0 apk php83-pecl-mcrypt 1.0.7-r0 apk
php83-pecl-memcached 3.2.0-r0 apk php83-pecl-memcached 3.2.0-r0 apk
php83-pecl-msgpack 2.2.0-r1 apk php83-pecl-msgpack 2.2.0-r1 apk
php83-pecl-redis 6.0.2-r0 apk php83-pecl-redis 6.0.2-r0 apk
php83-pgsql 8.3.3-r0 apk php83-pgsql 8.3.4-r0 apk
php83-phar 8.3.3-r0 apk php83-phar 8.3.4-r0 apk
php83-posix 8.3.3-r0 apk php83-posix 8.3.4-r0 apk
php83-session 8.3.3-r0 apk php83-session 8.3.4-r0 apk
php83-simplexml 8.3.3-r0 apk php83-simplexml 8.3.4-r0 apk
php83-soap 8.3.3-r0 apk php83-soap 8.3.4-r0 apk
php83-sockets 8.3.3-r0 apk php83-sockets 8.3.4-r0 apk
php83-sodium 8.3.3-r0 apk php83-sodium 8.3.4-r0 apk
php83-sqlite3 8.3.3-r0 apk php83-sqlite3 8.3.4-r0 apk
php83-tokenizer 8.3.3-r0 apk php83-tokenizer 8.3.4-r0 apk
php83-xml 8.3.3-r0 apk php83-xml 8.3.4-r0 apk
php83-xmlreader 8.3.3-r0 apk php83-xmlreader 8.3.4-r0 apk
php83-xmlwriter 8.3.3-r0 apk php83-xmlwriter 8.3.4-r0 apk
php83-xsl 8.3.3-r0 apk php83-xsl 8.3.4-r0 apk
php83-zip 8.3.3-r0 apk php83-zip 8.3.4-r0 apk
pinentry 1.2.1-r1 apk pinentry 1.2.1-r1 apk
pip 24.0 python pip 24.0 python
pkb-client 1.2 python pkb-client 1.2 python
@@ -299,7 +299,7 @@ portalocker 2.8.2 python
procps-ng 4.0.4-r0 apk procps-ng 4.0.4-r0 apk
protobuf 4.25.3 python protobuf 4.25.3 python
publicsuffixlist 0.9.4 python publicsuffixlist 0.9.4 python
pyOpenSSL 24.0.0 python pyOpenSSL 24.1.0 python
pyRFC3339 1.1 python pyRFC3339 1.1 python
pyacmedns 0.4 python pyacmedns 0.4 python
pyasn1 0.5.1 python pyasn1 0.5.1 python
@@ -307,7 +307,7 @@ pyasn1-modules 0.3.0 python
pyc 3.11.8-r0 apk pyc 3.11.8-r0 apk
pycparser 2.21 python pycparser 2.21 python
pyotp 2.9.0 python pyotp 2.9.0 python
pyparsing 3.1.1 python pyparsing 3.1.2 python
python-dateutil 2.9.0.post0 python python-dateutil 2.9.0.post0 python
python-digitalocean 1.17.0 python python-digitalocean 1.17.0 python
python-transip 0.6.0 python python-transip 0.6.0 python
@@ -320,7 +320,7 @@ requests 2.31.0 python
requests-file 2.0.0 python requests-file 2.0.0 python
requests-mock 1.11.0 python requests-mock 1.11.0 python
rsa 4.9 python rsa 4.9 python
s3transfer 0.10.0 python s3transfer 0.10.1 python
scanelf 1.3.7-r2 apk scanelf 1.3.7-r2 apk
setuptools 65.5.0 python setuptools 65.5.0 python
shadow 4.14.2-r0 apk shadow 4.14.2-r0 apk
@@ -336,9 +336,9 @@ typing_extensions 4.10.0 python
tzdata 2024a-r0 apk tzdata 2024a-r0 apk
unixodbc 2.3.12-r0 apk unixodbc 2.3.12-r0 apk
uritemplate 4.1.1 python uritemplate 4.1.1 python
urllib3 2.0.7 python urllib3 2.2.1 python
utmps-libs 0.1.2.2-r0 apk utmps-libs 0.1.2.2-r0 apk
wheel 0.42.0 python wheel 0.43.0 python
whois 5.5.20-r0 apk whois 5.5.20-r0 apk
xz-libs 5.4.5-r0 apk xz-libs 5.4.5-r0 apk
zlib 1.3.1-r0 apk zlib 1.3.1-r0 apk

View File

@@ -168,6 +168,9 @@ app_setup_block: |
# changelog # changelog
changelogs: changelogs:
- { date: "14.03.24:", desc: "[Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) authelia-location.conf, authelia-server.conf - Update Authelia conf samples with support for 4.38." }
- { date: "06.03.24:", desc: "[Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) site-confs/default.conf - Cleanup default site conf." }
- { date: "04.03.24:", desc: "Remove `stream.conf` inside the container to allow users to include their own block in `nginx.conf`." }
- { date: "23.01.24:", desc: "Rebase to Alpine 3.19 with php 8.3, add root periodic crontabs for logrotate." } - { date: "23.01.24:", desc: "Rebase to Alpine 3.19 with php 8.3, add root periodic crontabs for logrotate." }
- { date: "01.01.24:", desc: "Add GleSYS DNS plugin." } - { date: "01.01.24:", desc: "Add GleSYS DNS plugin." }
- { date: "11.12.23:", desc: "Deprecate certbot-dns-dynu to resolve dependency conflicts with other plugins." } - { date: "11.12.23:", desc: "Deprecate certbot-dns-dynu to resolve dependency conflicts with other plugins." }

View File

@@ -1,10 +1,15 @@
## Version 2023/04/27 - Changelog: https://github.com/linuxserver/docker-swag/commits/master/root/defaults/nginx/authelia-location.conf.sample ## Version 2024/03/14 - 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 # Make sure that your authelia container is in the same user defined bridge network and is named authelia
# Rename /config/nginx/proxy-confs/authelia.subdomain.conf.sample to /config/nginx/proxy-confs/authelia.subdomain.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 # For authelia 4.37 and below, make sure that the authelia configuration.yml has 'path: "authelia"' defined
# For authelia 4.38 and above, make sure that the authelia configuration.yml has 'address: "tcp://:9091/authelia"' defined
## Send a subrequest to Authelia to verify if the user is authenticated and has permission to access the resource ## Send a subrequest to Authelia to verify if the user is authenticated and has permission to access the resource
auth_request /authelia/api/verify; ## For authelia 4.37 and below, use the following line
# auth_request /authelia/api/verify;
## For authelia 4.38 and above, use the following line
auth_request /authelia/api/authz/auth-request;
## If the subreqest returns 200 pass to the backend, if the subrequest returns 401 redirect to the portal ## If the subreqest returns 200 pass to the backend, if the subrequest returns 401 redirect to the portal
error_page 401 = @authelia_proxy_signin; error_page 401 = @authelia_proxy_signin;

View File

@@ -1,7 +1,8 @@
## Version 2023/04/27 - Changelog: https://github.com/linuxserver/docker-swag/commits/master/root/defaults/nginx/authelia-server.conf.sample ## Version 2024/03/14 - 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 # Make sure that your authelia container is in the same user defined bridge network and is named authelia
# Rename /config/nginx/proxy-confs/authelia.subdomain.conf.sample to /config/nginx/proxy-confs/authelia.subdomain.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 # For authelia 4.37 and below, make sure that the authelia configuration.yml has 'path: "authelia"' defined
# For authelia 4.38 and above, make sure that the authelia configuration.yml has 'address: "tcp://:9091/authelia"' defined
# location for authelia subfolder requests # location for authelia subfolder requests
location ^~ /authelia { location ^~ /authelia {
@@ -13,7 +14,7 @@ location ^~ /authelia {
} }
# location for authelia auth requests # location for authelia auth requests
location = /authelia/api/verify { location ~ /authelia/api/(authz/auth-request|verify) {
internal; internal;
include /config/nginx/proxy.conf; include /config/nginx/proxy.conf;

View File

@@ -4,6 +4,7 @@
## Send a subrequest to Authentik to verify if the user is authenticated and has permission to access the resource ## 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; auth_request /outpost.goauthentik.io/auth/nginx;
## If the subreqest returns 200 pass to the backend, if the subrequest returns 401 redirect to the portal ## If the subreqest returns 200 pass to the backend, if the subrequest returns 401 redirect to the portal
error_page 401 = @goauthentik_proxy_signin; error_page 401 = @goauthentik_proxy_signin;

View File

@@ -1,4 +1,4 @@
## Version 2023/11/27 - Changelog: https://github.com/linuxserver/docker-swag/commits/master/root/defaults/nginx/site-confs/default.conf.sample ## Version 2024/03/06 - Changelog: https://github.com/linuxserver/docker-swag/commits/master/root/defaults/nginx/site-confs/default.conf.sample
# redirect all traffic to https # redirect all traffic to https
server { server {
@@ -48,7 +48,7 @@ server {
# enable for Authentik (requires authentik-server.conf in the server block) # enable for Authentik (requires authentik-server.conf in the server block)
#include /config/nginx/authentik-location.conf; #include /config/nginx/authentik-location.conf;
try_files $uri $uri/ /index.html /index.php$is_args$args; try_files $uri $uri/ /index.html /index.htm /index.php$is_args$args;
} }
location ~ ^(.+\.php)(.*)$ { location ~ ^(.+\.php)(.*)$ {
@@ -65,8 +65,8 @@ server {
# enable for Authentik (requires authentik-server.conf in the server block) # enable for Authentik (requires authentik-server.conf in the server block)
#include /config/nginx/authentik-location.conf; #include /config/nginx/authentik-location.conf;
try_files $fastcgi_script_name =404;
fastcgi_split_path_info ^(.+\.php)(.*)$; fastcgi_split_path_info ^(.+\.php)(.*)$;
if (!-f $document_root$fastcgi_script_name) { return 404; }
fastcgi_pass 127.0.0.1:9000; fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php; fastcgi_index index.php;
include /etc/nginx/fastcgi_params; include /etc/nginx/fastcgi_params;

View File

@@ -23,6 +23,13 @@ for i in "${SANED_VARS[@]}"; do
export echo "${i}"="$(echo "${!i}" | tr '[:upper:]' '[:lower:]')" export echo "${i}"="$(echo "${!i}" | tr '[:upper:]' '[:lower:]')"
done done
# Check for and install requested DNS plugins
if grep -q "universal-package-install" <<< "${DOCKER_MODS}" && grep -q "certbot-dns" <<< "${INSTALL_PIP_PACKAGES}"; then
echo "**** Installing requested dns plugins ****"
/etc/s6-overlay/s6-rc.d/init-mod-universal-package-install-add-package/run
/etc/s6-overlay/s6-rc.d/init-mods-package-install/run
fi
# check to make sure DNSPLUGIN is selected if dns validation is used # check to make sure DNSPLUGIN is selected if dns validation is used
CERTBOT_DNS_AUTHENTICATORS=$(certbot plugins --authenticators 2>/dev/null | sed -e 's/^Entry point: EntryPoint(name='\''cpanel'\''/Entry point: EntryPoint(name='\''dns-cpanel'\''/' -e '/EntryPoint(name='\''dns-/!d' -e 's/^Entry point: EntryPoint(name='\''dns-\([^ ]*\)'\'',/\1/' | sort) CERTBOT_DNS_AUTHENTICATORS=$(certbot plugins --authenticators 2>/dev/null | sed -e 's/^Entry point: EntryPoint(name='\''cpanel'\''/Entry point: EntryPoint(name='\''dns-cpanel'\''/' -e '/EntryPoint(name='\''dns-/!d' -e 's/^Entry point: EntryPoint(name='\''dns-\([^ ]*\)'\'',/\1/' | sort)
if [[ "${VALIDATION}" = "dns" ]] && ! echo "${CERTBOT_DNS_AUTHENTICATORS}" | grep -q "${DNSPLUGIN}"; then if [[ "${VALIDATION}" = "dns" ]] && ! echo "${CERTBOT_DNS_AUTHENTICATORS}" | grep -q "${DNSPLUGIN}"; then