Compare commits

...

45 Commits

Author SHA1 Message Date
LinuxServer-CI
7dcce8b346 Bot Updating Package Versions 2024-06-22 03:22:28 +00:00
LinuxServer-CI
03286fc238 Bot Updating Package Versions 2024-06-15 03:20:18 +00:00
LinuxServer-CI
7391dc1bcf Bot Updating Package Versions 2024-06-08 03:20:15 +00:00
LinuxServer-CI
a7ea6a955b Bot Updating Package Versions 2024-06-06 03:23:13 +00:00
LinuxServer-CI
e149638808 Bot Updating Package Versions 2024-06-01 03:22:21 +00:00
LinuxServer-CI
41cb7cb104 Bot Updating Package Versions 2024-05-25 03:27:08 +00:00
LinuxServer-CI
1499cbe7de Bot Updating Templated Files 2024-05-25 03:23:50 +00:00
LinuxServer-CI
5a7d49ec43 Bot Updating Templated Files 2024-05-25 03:21:31 +00:00
LinuxServer-CI
efc2f55f48 Bot Updating Package Versions 2024-05-18 03:20:19 +00:00
LinuxServer-CI
95c13d0082 Bot Updating Package Versions 2024-05-11 03:22:43 +00:00
LinuxServer-CI
e05fc4b1e3 Bot Updating Templated Files 2024-05-11 03:18:51 +00:00
LinuxServer-CI
099e0e75a4 Bot Updating Package Versions 2024-05-04 03:23:10 +00:00
LinuxServer-CI
fc1675f3a1 Bot Updating Templated Files 2024-05-04 03:19:21 +00:00
LinuxServer-CI
dc1bc6d5b3 Bot Updating Package Versions 2024-04-27 03:19:53 +00:00
LinuxServer-CI
db6f61bd27 Bot Updating Package Versions 2024-04-20 03:19:29 +00:00
LinuxServer-CI
67f864c7b9 Bot Updating Package Versions 2024-04-18 22:03:11 +00:00
aptalca
3f885d0415 Merge pull request #472 from linuxserver/find
fix find for gnu
2024-04-18 17:59:23 -04:00
aptalca
280c4bde4b fix find for gnu 2024-04-18 15:53:44 -04:00
LinuxServer-CI
59e7865464 Bot Updating Package Versions 2024-04-13 03:15:36 +00:00
LinuxServer-CI
5c58fa9383 Bot Updating Package Versions 2024-04-06 03:20:55 +00:00
LinuxServer-CI
ae19b93cc7 Bot Updating Package Versions 2024-04-04 01:06:33 +00:00
LinuxServer-CI
5dee340726 Bot Updating Package Versions 2024-03-30 03:21:19 +00:00
aptalca
3109ff8d9c Merge pull request #468 from linuxserver/keyperm
fix perms on generated priv-fullchain-bundle.pem
2024-03-23 11:42:50 -04:00
aptalca
4239dc22d4 fix perms on generated priv-fullchain-bundle.pem 2024-03-23 11:10:04 -04:00
LinuxServer-CI
44c6bd721b Bot Updating Package Versions 2024-03-23 12:36:24 +00:00
LinuxServer-CI
d4a6be8fad Bot Updating Templated Files 2024-03-23 12:32:28 +00:00
Adam
a66b478d1d Merge pull request #463 from linuxserver/restore-dynudns
Restore dynudns plugin
2024-03-23 12:29:52 +00:00
LinuxServer-CI
9efac76e25 Bot Updating Package Versions 2024-03-23 03:19:27 +00:00
TheSpad
23c6384f2c Merge branch 'master' into restore-dynudns 2024-03-19 22:49:45 +00:00
aptalca
13ede8ea87 Merge pull request #467 from linuxserver/authelia-auth-endpoints
another authelia auth endpoint adjustment
2024-03-17 16:24:55 -04:00
Eric Nemchik
a9391d07ee another authelia auth endpoint adjustment
Signed-off-by: Eric Nemchik <eric@nemchik.com>
2024-03-16 12:34:59 -05:00
LinuxServer-CI
a00d272297 Bot Updating Package Versions 2024-03-16 03:18:58 +00:00
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
TheSpad
4b4c103df4 Restore dynudns plugin 2024-03-11 11:12:28 +00: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
14 changed files with 254 additions and 199 deletions

View File

@@ -104,6 +104,7 @@ RUN \
certbot-dns-domeneshop \ certbot-dns-domeneshop \
certbot-dns-dreamhost \ certbot-dns-dreamhost \
certbot-dns-duckdns \ certbot-dns-duckdns \
certbot-dns-dynudns \
certbot-dns-freedns \ certbot-dns-freedns \
certbot-dns-gehirn \ certbot-dns-gehirn \
certbot-dns-glesys \ certbot-dns-glesys \

View File

@@ -104,6 +104,7 @@ RUN \
certbot-dns-domeneshop \ certbot-dns-domeneshop \
certbot-dns-dreamhost \ certbot-dns-dreamhost \
certbot-dns-duckdns \ certbot-dns-duckdns \
certbot-dns-dynudns \
certbot-dns-freedns \ certbot-dns-freedns \
certbot-dns-gehirn \ certbot-dns-gehirn \
certbot-dns-glesys \ certbot-dns-glesys \

108
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 -e PUID=$(id -u) -e PGID=$(id -g) 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,14 +288,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 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"
for i in ${OLD_TEMPLATES}; do for i in ${OLD_TEMPLATES}; do
if [[ -f "${i}" ]]; then if [[ -f "${i}" ]]; then
TEMPLATES_TO_DELETE="${i} ${TEMPLATES_TO_DELETE}" TEMPLATES_TO_DELETE="${i} ${TEMPLATES_TO_DELETE}"
@@ -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,9 +378,12 @@ 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 && [[ -f ${TEMPDIR}/unraid/templates/unraid/deprecated/${CONTAINER_NAME}.xml ]]; then
echo "Image is on the ignore list, and already in the deprecation folder."
elif grep -wq "${CONTAINER_NAME}" ${TEMPDIR}/unraid/templates/unraid/ignore.list; then
echo "Image is on the ignore list, marking Unraid template as deprecated" echo "Image is on the ignore list, marking Unraid template as deprecated"
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml ${TEMPDIR}/unraid/templates/unraid/ cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml ${TEMPDIR}/unraid/templates/unraid/
git add -u unraid/${CONTAINER_NAME}.xml git add -u unraid/${CONTAINER_NAME}.xml
@@ -382,16 +400,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 +485,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" '''
} }
} }
/* ############### /* ###############
@@ -494,6 +525,7 @@ pipeline {
--label \"org.opencontainers.image.title=Swag\" \ --label \"org.opencontainers.image.title=Swag\" \
--label \"org.opencontainers.image.description=SWAG - Secure Web Application Gateway (formerly known as letsencrypt, no relation to Let's Encrypt™) sets up an Nginx webserver and reverse proxy with php support and a built-in certbot client that automates free SSL server certificate generation and renewal processes (Let's Encrypt and ZeroSSL). It also contains fail2ban for intrusion prevention.\" \ --label \"org.opencontainers.image.description=SWAG - Secure Web Application Gateway (formerly known as letsencrypt, no relation to Let's Encrypt™) sets up an Nginx webserver and reverse proxy with php support and a built-in certbot client that automates free SSL server certificate generation and renewal processes (Let's Encrypt and ZeroSSL). It also contains fail2ban for intrusion prevention.\" \
--no-cache --pull -t ${IMAGE}:${META_TAG} --platform=linux/amd64 \ --no-cache --pull -t ${IMAGE}:${META_TAG} --platform=linux/amd64 \
--provenance=false --sbom=false \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." --build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
} }
} }
@@ -525,6 +557,7 @@ pipeline {
--label \"org.opencontainers.image.title=Swag\" \ --label \"org.opencontainers.image.title=Swag\" \
--label \"org.opencontainers.image.description=SWAG - Secure Web Application Gateway (formerly known as letsencrypt, no relation to Let's Encrypt™) sets up an Nginx webserver and reverse proxy with php support and a built-in certbot client that automates free SSL server certificate generation and renewal processes (Let's Encrypt and ZeroSSL). It also contains fail2ban for intrusion prevention.\" \ --label \"org.opencontainers.image.description=SWAG - Secure Web Application Gateway (formerly known as letsencrypt, no relation to Let's Encrypt™) sets up an Nginx webserver and reverse proxy with php support and a built-in certbot client that automates free SSL server certificate generation and renewal processes (Let's Encrypt and ZeroSSL). It also contains fail2ban for intrusion prevention.\" \
--no-cache --pull -t ${IMAGE}:amd64-${META_TAG} --platform=linux/amd64 \ --no-cache --pull -t ${IMAGE}:amd64-${META_TAG} --platform=linux/amd64 \
--provenance=false --sbom=false \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." --build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
} }
} }
@@ -553,6 +586,7 @@ pipeline {
--label \"org.opencontainers.image.title=Swag\" \ --label \"org.opencontainers.image.title=Swag\" \
--label \"org.opencontainers.image.description=SWAG - Secure Web Application Gateway (formerly known as letsencrypt, no relation to Let's Encrypt™) sets up an Nginx webserver and reverse proxy with php support and a built-in certbot client that automates free SSL server certificate generation and renewal processes (Let's Encrypt and ZeroSSL). It also contains fail2ban for intrusion prevention.\" \ --label \"org.opencontainers.image.description=SWAG - Secure Web Application Gateway (formerly known as letsencrypt, no relation to Let's Encrypt™) sets up an Nginx webserver and reverse proxy with php support and a built-in certbot client that automates free SSL server certificate generation and renewal processes (Let's Encrypt and ZeroSSL). It also contains fail2ban for intrusion prevention.\" \
--no-cache --pull -f Dockerfile.aarch64 -t ${IMAGE}:arm64v8-${META_TAG} --platform=linux/arm64 \ --no-cache --pull -f Dockerfile.aarch64 -t ${IMAGE}:arm64v8-${META_TAG} --platform=linux/arm64 \
--provenance=false --sbom=false \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." --build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
sh "docker tag ${IMAGE}:arm64v8-${META_TAG} ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}" sh "docker tag ${IMAGE}:arm64v8-${META_TAG} ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}"
retry(5) { retry(5) {
@@ -579,7 +613,7 @@ pipeline {
sh '''#! /bin/bash sh '''#! /bin/bash
set -e set -e
TEMPDIR=$(mktemp -d) TEMPDIR=$(mktemp -d)
if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" != "true" ]; then
LOCAL_CONTAINER=${IMAGE}:amd64-${META_TAG} LOCAL_CONTAINER=${IMAGE}:amd64-${META_TAG}
else else
LOCAL_CONTAINER=${IMAGE}:${META_TAG} LOCAL_CONTAINER=${IMAGE}:${META_TAG}
@@ -676,7 +710,7 @@ pipeline {
--shm-size=1gb \ --shm-size=1gb \
-v /var/run/docker.sock:/var/run/docker.sock \ -v /var/run/docker.sock:/var/run/docker.sock \
-e IMAGE=\"${IMAGE}\" \ -e IMAGE=\"${IMAGE}\" \
-e DELAY_START=\"${CI_DELAY}\" \ -e DOCKER_LOGS_TIMEOUT=\"${CI_DELAY}\" \
-e TAGS=\"${CI_TAGS}\" \ -e TAGS=\"${CI_TAGS}\" \
-e META_TAG=\"${META_TAG}\" \ -e META_TAG=\"${META_TAG}\" \
-e PORT=\"${CI_PORT}\" \ -e PORT=\"${CI_PORT}\" \
@@ -784,35 +818,13 @@ pipeline {
docker push ${MANIFESTIMAGE}:amd64-${SEMVER} docker push ${MANIFESTIMAGE}:amd64-${SEMVER}
docker push ${MANIFESTIMAGE}:arm64v8-${SEMVER} docker push ${MANIFESTIMAGE}:arm64v8-${SEMVER}
fi fi
docker manifest push --purge ${MANIFESTIMAGE}:latest || : done
docker manifest create ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm64v8-latest for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do
docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm64v8-latest --os linux --arch arm64 --variant v8 docker buildx imagetools create -t ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm64v8-latest
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} || : docker buildx imagetools create -t ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} docker buildx imagetools create -t ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8
docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} || :
docker manifest create ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} --os linux --arch arm64 --variant v8
if [ -n "${SEMVER}" ]; then if [ -n "${SEMVER}" ]; then
docker manifest push --purge ${MANIFESTIMAGE}:${SEMVER} || : docker buildx imagetools create -t ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
docker manifest create ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} --os linux --arch arm64 --variant v8
fi
token=$(curl -sX GET "https://ghcr.io/token?scope=repository%3Alinuxserver%2F${CONTAINER_NAME}%3Apull" | jq -r '.token')
digest=$(curl -s \
--header "Accept: application/vnd.docker.distribution.manifest.v2+json" \
--header "Authorization: Bearer ${token}" \
"https://ghcr.io/v2/linuxserver/${CONTAINER_NAME}/manifests/arm32v7-latest")
if [[ $(echo "$digest" | jq -r '.layers') != "null" ]]; then
docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-latest || :
docker manifest create ${MANIFESTIMAGE}:arm32v7-latest ${MANIFESTIMAGE}:amd64-latest
docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-latest
fi
docker manifest push --purge ${MANIFESTIMAGE}:latest
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG}
docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then
docker manifest push --purge ${MANIFESTIMAGE}:${SEMVER}
fi fi
done done
''' '''

View File

@@ -28,7 +28,7 @@ Find us at:
# [linuxserver/swag](https://github.com/linuxserver/docker-swag) # [linuxserver/swag](https://github.com/linuxserver/docker-swag)
[![Scarf.io pulls](https://scarf.sh/installs-badge/linuxserver-ci/linuxserver%2Fswag?color=94398d&label-color=555555&logo-color=ffffff&style=for-the-badge&package-type=docker)](https://scarf.sh/gateway/linuxserver-ci/docker/linuxserver%2Fswag) [![Scarf.io pulls](https://scarf.sh/installs-badge/linuxserver-ci/linuxserver%2Fswag?color=94398d&label-color=555555&logo-color=ffffff&style=for-the-badge&package-type=docker)](https://scarf.sh)
[![GitHub Stars](https://img.shields.io/github/stars/linuxserver/docker-swag.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-swag) [![GitHub Stars](https://img.shields.io/github/stars/linuxserver/docker-swag.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-swag)
[![GitHub Release](https://img.shields.io/github/release/linuxserver/docker-swag.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-swag/releases) [![GitHub Release](https://img.shields.io/github/release/linuxserver/docker-swag.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-swag/releases)
[![GitHub Package Repository](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitHub%20Package&logo=github)](https://github.com/linuxserver/docker-swag/packages) [![GitHub Package Repository](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitHub%20Package&logo=github)](https://github.com/linuxserver/docker-swag/packages)
@@ -227,7 +227,7 @@ Containers are configured using parameters passed at runtime (such as those abov
| `-e VALIDATION=http` | Certbot validation method to use, options are `http` or `dns` (`dns` method also requires `DNSPLUGIN` variable set). | | `-e VALIDATION=http` | Certbot validation method to use, options are `http` or `dns` (`dns` method also requires `DNSPLUGIN` variable set). |
| `-e SUBDOMAINS=www,` | Subdomains you'd like the cert to cover (comma separated, no spaces) ie. `www,ftp,cloud`. For a wildcard cert, set this *exactly* to `wildcard` (wildcard cert is available via `dns` validation only) | | `-e SUBDOMAINS=www,` | Subdomains you'd like the cert to cover (comma separated, no spaces) ie. `www,ftp,cloud`. For a wildcard cert, set this *exactly* to `wildcard` (wildcard cert is available via `dns` validation only) |
| `-e CERTPROVIDER=` | Optionally define the cert provider. Set to `zerossl` for ZeroSSL certs (requires existing [ZeroSSL account](https://app.zerossl.com/signup) and the e-mail address entered in `EMAIL` env var). Otherwise defaults to Let's Encrypt. | | `-e CERTPROVIDER=` | Optionally define the cert provider. Set to `zerossl` for ZeroSSL certs (requires existing [ZeroSSL account](https://app.zerossl.com/signup) and the e-mail address entered in `EMAIL` env var). Otherwise defaults to Let's Encrypt. |
| `-e DNSPLUGIN=cloudflare` | Required if `VALIDATION` is set to `dns`. Options are `acmedns`, `aliyun`, `azure`, `bunny`, `cloudflare`, `cpanel`, `desec`, `digitalocean`, `directadmin`, `dnsimple`, `dnsmadeeasy`, `dnspod`, `do`, `domeneshop`, `dreamhost`, `duckdns`, `freedns`, `gandi`, `gehirn`, `glesys`, `godaddy`, `google`, `google-domains`, `he`, `hetzner`, `infomaniak`, `inwx`, `ionos`, `linode`, `loopia`, `luadns`, `namecheap`, `netcup`, `njalla`, `nsone`, `ovh`, `porkbun`, `rfc2136`, `route53`, `sakuracloud`, `standalone`, `transip`, and `vultr`. Also need to enter the credentials into the corresponding ini (or json for some plugins) file under `/config/dns-conf`. | | `-e DNSPLUGIN=cloudflare` | Required if `VALIDATION` is set to `dns`. Options are `acmedns`, `aliyun`, `azure`, `bunny`, `cloudflare`, `cpanel`, `desec`, `digitalocean`, `directadmin`, `dnsimple`, `dnsmadeeasy`, `dnspod`, `do`, `domeneshop`, `dreamhost`, `duckdns`, `dynudns`, `freedns`, `gandi`, `gehirn`, `glesys`, `godaddy`, `google`, `google-domains`, `he`, `hetzner`, `infomaniak`, `inwx`, `ionos`, `linode`, `loopia`, `luadns`, `namecheap`, `netcup`, `njalla`, `nsone`, `ovh`, `porkbun`, `rfc2136`, `route53`, `sakuracloud`, `standalone`, `transip`, and `vultr`. Also need to enter the credentials into the corresponding ini (or json for some plugins) file under `/config/dns-conf`. |
| `-e PROPAGATION=` | Optionally override (in seconds) the default propagation time for the dns plugins. | | `-e PROPAGATION=` | Optionally override (in seconds) the default propagation time for the dns plugins. |
| `-e EMAIL=` | Optional e-mail address used for cert expiration notifications (Required for ZeroSSL). | | `-e EMAIL=` | Optional e-mail address used for cert expiration notifications (Required for ZeroSSL). |
| `-e ONLY_SUBDOMAINS=false` | If you wish to get certs only for certain subdomains, but not the main domain (main domain may be hosted on another machine and cannot be validated), set this to `true` | | `-e ONLY_SUBDOMAINS=false` | If you wish to get certs only for certain subdomains, but not the main domain (main domain may be hosted on another machine and cannot be validated), set this to `true` |
@@ -400,6 +400,10 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
## Versions ## Versions
* **23.03.24:** - Fix perms on the generated `priv-fullchain-bundle.pem`.
* **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.
* **11.03.24:** - Restore support for DynuDNS using `certbot-dns-dynudns`.
* **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`. * **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.

View File

@@ -4,108 +4,111 @@ PyJWT 2.8.0 python
PyNamecheap 0.0.3 python PyNamecheap 0.0.3 python
PyYAML 6.0.1 python PyYAML 6.0.1 python
Simple Launcher 1.1.0.14 dotnet (+5 duplicates) Simple Launcher 1.1.0.14 dotnet (+5 duplicates)
acme 2.9.0 python acme 2.11.0 python
alpine-baselayout 3.4.3-r2 apk alpine-baselayout 3.4.3-r2 apk
alpine-baselayout-data 3.4.3-r2 apk alpine-baselayout-data 3.4.3-r2 apk
alpine-keys 2.4-r1 apk alpine-keys 2.4-r1 apk
alpine-release 3.19.1-r0 apk alpine-release 3.19.1-r0 apk
aom-libs 3.7.1-r0 apk aom-libs 3.7.1-r0 apk
apache2-utils 2.4.58-r1 apk apache2-utils 2.4.59-r0 apk
apk-tools 2.14.0-r5 apk apk-tools 2.14.4-r0 apk
apr 1.7.4-r0 apk apr 1.7.4-r0 apk
apr-util 1.6.3-r1 apk apr-util 1.6.3-r1 apk
argon2-libs 20190702-r5 apk argon2-libs 20190702-r5 apk
attrs 23.2.0 python attrs 23.2.0 python
azure-common 1.1.28 python azure-common 1.1.28 python
azure-core 1.30.1 python azure-core 1.30.2 python
azure-identity 1.15.0 python azure-identity 1.17.1 python
azure-mgmt-core 1.4.0 python 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.56 python boto3 1.34.131 python
botocore 1.34.56 python botocore 1.34.131 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-r19 apk
busybox-binsh 1.36.1-r15 apk busybox-binsh 1.36.1-r19 apk
c-ares 1.24.0-r1 apk c-ares 1.27.0-r0 apk
c-client 2007f-r15 apk c-client 2007f-r15 apk
ca-certificates 20230506-r0 apk ca-certificates 20240226-r0 apk
ca-certificates-bundle 20230506-r0 apk ca-certificates-bundle 20240226-r0 apk
cachetools 5.3.3 python cachetools 5.3.3 python
certbot 2.9.0 python catatonit 0.2.0-r0 apk
certbot 2.11.0 python
certbot-dns-acmedns 0.1.0 python certbot-dns-acmedns 0.1.0 python
certbot-dns-aliyun 2.0.0 python certbot-dns-aliyun 2.0.0 python
certbot-dns-azure 2.4.0 python certbot-dns-azure 2.5.0 python
certbot-dns-bunny 0.0.9 python certbot-dns-bunny 0.0.9 python
certbot-dns-cloudflare 2.9.0 python certbot-dns-cloudflare 2.11.0 python
certbot-dns-cpanel 0.4.0 python certbot-dns-cpanel 0.4.0 python
certbot-dns-desec 1.2.1 python certbot-dns-desec 1.2.1 python
certbot-dns-digitalocean 2.9.0 python certbot-dns-digitalocean 2.11.0 python
certbot-dns-directadmin 1.0.4 python certbot-dns-directadmin 1.0.4 python
certbot-dns-dnsimple 2.9.0 python certbot-dns-dnsimple 2.11.0 python
certbot-dns-dnsmadeeasy 2.9.0 python certbot-dns-dnsmadeeasy 2.11.0 python
certbot-dns-dnspod 0.1.0 python certbot-dns-dnspod 0.1.0 python
certbot-dns-do 0.31.0 python certbot-dns-do 0.31.0 python
certbot-dns-domeneshop 0.2.9 python certbot-dns-domeneshop 0.2.9 python
certbot-dns-dreamhost 1.0 python certbot-dns-dreamhost 1.0 python
certbot-dns-duckdns 1.3 python certbot-dns-duckdns 1.3 python
certbot-dns-freedns 0.1.0 python certbot-dns-dynudns 0.0.6 python
certbot-dns-gehirn 2.9.0 python certbot-dns-freedns 0.2.0 python
certbot-dns-gehirn 2.11.0 python
certbot-dns-glesys 2.1.0 python certbot-dns-glesys 2.1.0 python
certbot-dns-godaddy 2.8.0 python certbot-dns-godaddy 2.8.0 python
certbot-dns-google 2.9.0 python certbot-dns-google 2.11.0 python
certbot-dns-google-domains 0.1.11 python certbot-dns-google-domains 0.1.11 python
certbot-dns-he 1.0.0 python certbot-dns-he 1.0.0 python
certbot-dns-hetzner 2.0.0 python certbot-dns-hetzner 2.0.1 python
certbot-dns-infomaniak 0.2.2 python certbot-dns-infomaniak 0.2.2 python
certbot-dns-inwx 2.2.0 python certbot-dns-inwx 2.2.0 python
certbot-dns-ionos 2024.1.8 python certbot-dns-ionos 2024.1.8 python
certbot-dns-linode 2.9.0 python certbot-dns-linode 2.11.0 python
certbot-dns-loopia 1.0.1 python certbot-dns-loopia 1.0.1 python
certbot-dns-luadns 2.9.0 python certbot-dns-luadns 2.11.0 python
certbot-dns-namecheap 1.0.0 python certbot-dns-namecheap 1.0.0 python
certbot-dns-netcup 1.4.3 python certbot-dns-netcup 1.4.3 python
certbot-dns-njalla 1.0.0 python certbot-dns-njalla 1.0.0 python
certbot-dns-nsone 2.9.0 python certbot-dns-nsone 2.11.0 python
certbot-dns-ovh 2.9.0 python certbot-dns-ovh 2.11.0 python
certbot-dns-porkbun 0.8 python certbot-dns-porkbun 0.8 python
certbot-dns-rfc2136 2.9.0 python certbot-dns-rfc2136 2.11.0 python
certbot-dns-route53 2.9.0 python certbot-dns-route53 2.11.0 python
certbot-dns-sakuracloud 2.9.0 python certbot-dns-sakuracloud 2.11.0 python
certbot-dns-standalone 1.1 python certbot-dns-standalone 1.1 python
certbot-dns-transip 0.5.2 python certbot-dns-transip 0.5.2 python
certbot-dns-vultr 1.1.0 python certbot-dns-vultr 1.1.0 python
certbot-plugin-gandi 1.5.0 python certbot-plugin-gandi 1.5.0 python
certifi 2024.2.2 python certifi 2024.6.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.4 python
composer 2.7.1 binary composer 2.7.7 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
coreutils-fmt 9.4-r2 apk coreutils-fmt 9.4-r2 apk
coreutils-sha512sum 9.4-r2 apk coreutils-sha512sum 9.4-r2 apk
cryptography 42.0.5 python cryptography 42.0.8 python
curl 8.5.0-r0 apk curl 8.5.0-r0 apk
dataclasses-json 0.5.14 python dataclasses-json 0.5.14 python
distro 1.9.0 python distro 1.9.0 python
dns-lexicon 3.17.0 python dns-lexicon 3.17.0 python
dnslib 0.9.24 python dnslib 0.9.24 python
dnspython 2.6.1 python dnspython 2.6.1 python
domeneshop 0.4.3 python domeneshop 0.4.4 python
fail2ban 1.0.2 python fail2ban 1.0.2 python
fail2ban 1.0.2-r3 apk fail2ban 1.0.2-r3 apk
fail2ban-pyc 1.0.2-r3 apk fail2ban-pyc 1.0.2-r3 apk
filelock 3.13.1 python filelock 3.15.3 python
findutils 4.9.0-r5 apk
fontconfig 2.14.2-r4 apk fontconfig 2.14.2-r4 apk
freetype 2.13.2-r0 apk freetype 2.13.2-r0 apk
future 1.0.0 python future 1.0.0 python
gdbm 1.23-r1 apk gdbm 1.23-r1 apk
git 2.43.0-r0 apk git 2.43.4-r0 apk
git-perl 2.43.0-r0 apk git-perl 2.43.4-r0 apk
gmp 6.3.0-r0 apk gmp 6.3.0-r0 apk
gnupg 2.4.4-r0 apk gnupg 2.4.4-r0 apk
gnupg-dirmngr 2.4.4-r0 apk gnupg-dirmngr 2.4.4-r0 apk
@@ -113,29 +116,28 @@ gnupg-gpgconf 2.4.4-r0 apk
gnupg-keyboxd 2.4.4-r0 apk gnupg-keyboxd 2.4.4-r0 apk
gnupg-utils 2.4.4-r0 apk 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.4-r0 apk
google-api-core 2.17.1 python google-api-core 2.19.0 python
google-api-python-client 2.121.0 python google-api-python-client 2.134.0 python
google-auth 2.28.1 python google-auth 2.30.0 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.1 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
gpgsm 2.4.4-r0 apk gpgsm 2.4.4-r0 apk
gpgv 2.4.4-r0 apk gpgv 2.4.4-r0 apk
hiredis 1.2.0-r0 apk
httplib2 0.22.0 python httplib2 0.22.0 python
icu-data-en 74.1-r0 apk icu-data-en 74.1-r0 apk
icu-libs 74.1-r0 apk icu-libs 74.1-r0 apk
idna 3.6 python idna 3.7 python
iptables 1.8.10-r3 apk iptables 1.8.10-r3 apk
isodate 0.6.1 python isodate 0.6.1 python
jmespath 1.0.1 python jmespath 1.0.1 python
josepy 1.14.0 python josepy 1.14.0 python
jq 1.7.1-r0 apk jq 1.7.1-r0 apk
jsonlines 4.0.0 python jsonlines 4.0.0 python
jsonpickle 3.0.3 python jsonpickle 3.2.2 python
libacl 2.3.1-r4 apk libacl 2.3.1-r4 apk
libassuan 2.5.6-r1 apk libassuan 2.5.6-r1 apk
libattr 2.5.1-r5 apk libattr 2.5.1-r5 apk
@@ -143,12 +145,12 @@ libavif 1.0.3-r0 apk
libbsd 0.11.7-r3 apk libbsd 0.11.7-r3 apk
libbz2 1.0.8-r6 apk libbz2 1.0.8-r6 apk
libc-utils 0.7.2-r5 apk libc-utils 0.7.2-r5 apk
libcrypto3 3.1.4-r5 apk libcrypto3 3.1.5-r0 apk
libcurl 8.5.0-r0 apk libcurl 8.5.0-r0 apk
libdav1d 1.3.0-r1 apk libdav1d 1.3.0-r1 apk
libedit 20230828.3.1-r3 apk libedit 20230828.3.1-r3 apk
libevent 2.1.12-r7 apk libevent 2.1.12-r7 apk
libexpat 2.6.0-r0 apk libexpat 2.6.2-r0 apk
libffi 3.4.4-r3 apk libffi 3.4.4-r3 apk
libgcc 13.2.1_git20231014-r0 apk libgcc 13.2.1_git20231014-r0 apk
libgcrypt 1.10.3-r0 apk libgcrypt 1.10.3-r0 apk
@@ -169,14 +171,14 @@ libncursesw 6.4_p20231125-r0 apk
libnftnl 1.2.6-r0 apk libnftnl 1.2.6-r0 apk
libpanelw 6.4_p20231125-r0 apk libpanelw 6.4_p20231125-r0 apk
libpng 1.6.40-r0 apk libpng 1.6.40-r0 apk
libpq 16.2-r0 apk libpq 16.3-r0 apk
libproc2 4.0.4-r0 apk libproc2 4.0.4-r0 apk
libsasl 2.1.28-r5 apk libsasl 2.1.28-r5 apk
libseccomp 2.5.5-r0 apk libseccomp 2.5.5-r0 apk
libsharpyuv 1.3.2-r0 apk libsharpyuv 1.3.2-r0 apk
libsm 1.2.4-r3 apk libsm 1.2.4-r3 apk
libsodium 1.0.19-r0 apk libsodium 1.0.19-r0 apk
libssl3 3.1.4-r5 apk libssl3 3.1.5-r0 apk
libstdc++ 13.2.1_git20231014-r0 apk libstdc++ 13.2.1_git20231014-r0 apk
libtasn1 4.19.0-r2 apk libtasn1 4.19.0-r2 apk
libunistring 1.1-r2 apk libunistring 1.1-r2 apk
@@ -187,7 +189,7 @@ libxau 1.0.11-r3 apk
libxcb 1.16-r0 apk libxcb 1.16-r0 apk
libxdmcp 1.1.4-r3 apk libxdmcp 1.1.4-r3 apk
libxext 1.3.5-r3 apk libxext 1.3.5-r3 apk
libxml2 2.11.7-r0 apk libxml2 2.11.8-r0 apk
libxpm 3.5.17-r0 apk libxpm 3.5.17-r0 apk
libxslt 1.1.39-r0 apk libxslt 1.1.39-r0 apk
libxt 1.3.0-r4 apk libxt 1.3.0-r4 apk
@@ -196,13 +198,13 @@ libzip 1.10.1-r0 apk
linux-pam 1.5.3-r7 apk linux-pam 1.5.3-r7 apk
logrotate 3.21.0-r1 apk logrotate 3.21.0-r1 apk
loopialib 0.2.0 python loopialib 0.2.0 python
lxml 5.1.0 python lxml 5.2.2 python
lz4-libs 1.9.4-r5 apk lz4-libs 1.9.4-r5 apk
marshmallow 3.21.1 python marshmallow 3.21.3 python
memcached 1.6.22-r0 apk memcached 1.6.22-r0 apk
mock 5.1.0 python mock 5.1.0 python
mpdecimal 2.5.1-r2 apk mpdecimal 2.5.1-r2 apk
msal 1.27.0 python msal 1.29.0 python
msal-extensions 1.1.0 python msal-extensions 1.1.0 python
musl 1.2.4_git20230717-r4 apk musl 1.2.4_git20230717-r4 apk
musl-utils 1.2.4_git20230717-r4 apk musl-utils 1.2.4_git20230717-r4 apk
@@ -212,115 +214,116 @@ ncurses-terminfo-base 6.4_p20231125-r0 apk
netcat-openbsd 1.226-r0 apk netcat-openbsd 1.226-r0 apk
nettle 3.9.1-r0 apk nettle 3.9.1-r0 apk
nghttp2-libs 1.58.0-r0 apk nghttp2-libs 1.58.0-r0 apk
nginx 1.24.0-r15 apk nginx 1.24.0-r16 apk
nginx-mod-devel-kit 1.24.0-r15 apk nginx-mod-devel-kit 1.24.0-r16 apk
nginx-mod-http-brotli 1.24.0-r15 apk nginx-mod-http-brotli 1.24.0-r16 apk
nginx-mod-http-dav-ext 1.24.0-r15 apk nginx-mod-http-dav-ext 1.24.0-r16 apk
nginx-mod-http-echo 1.24.0-r15 apk nginx-mod-http-echo 1.24.0-r16 apk
nginx-mod-http-fancyindex 1.24.0-r15 apk nginx-mod-http-fancyindex 1.24.0-r16 apk
nginx-mod-http-geoip2 1.24.0-r15 apk nginx-mod-http-geoip2 1.24.0-r16 apk
nginx-mod-http-headers-more 1.24.0-r15 apk nginx-mod-http-headers-more 1.24.0-r16 apk
nginx-mod-http-image-filter 1.24.0-r15 apk nginx-mod-http-image-filter 1.24.0-r16 apk
nginx-mod-http-perl 1.24.0-r15 apk nginx-mod-http-perl 1.24.0-r16 apk
nginx-mod-http-redis2 1.24.0-r15 apk nginx-mod-http-redis2 1.24.0-r16 apk
nginx-mod-http-set-misc 1.24.0-r15 apk nginx-mod-http-set-misc 1.24.0-r16 apk
nginx-mod-http-upload-progress 1.24.0-r15 apk nginx-mod-http-upload-progress 1.24.0-r16 apk
nginx-mod-http-xslt-filter 1.24.0-r15 apk nginx-mod-http-xslt-filter 1.24.0-r16 apk
nginx-mod-mail 1.24.0-r15 apk nginx-mod-mail 1.24.0-r16 apk
nginx-mod-rtmp 1.24.0-r15 apk nginx-mod-rtmp 1.24.0-r16 apk
nginx-mod-stream 1.24.0-r15 apk nginx-mod-stream 1.24.0-r16 apk
nginx-mod-stream-geoip2 1.24.0-r15 apk nginx-mod-stream-geoip2 1.24.0-r16 apk
nginx-vim 1.24.0-r15 apk nginx-vim 1.24.0-r16 apk
npth 1.6-r4 apk 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.5-r0 apk
p11-kit 0.25.3-r0 apk p11-kit 0.25.3-r0 apk
packaging 23.2 python packaging 24.1 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.4-r0 apk
php83 8.3.3-r0 apk php83 8.3.8-r0 apk
php83-bcmath 8.3.3-r0 apk php83-bcmath 8.3.8-r0 apk
php83-bz2 8.3.3-r0 apk php83-bz2 8.3.8-r0 apk
php83-common 8.3.3-r0 apk php83-common 8.3.8-r0 apk
php83-ctype 8.3.3-r0 apk php83-ctype 8.3.8-r0 apk
php83-curl 8.3.3-r0 apk php83-curl 8.3.8-r0 apk
php83-dom 8.3.3-r0 apk php83-dom 8.3.8-r0 apk
php83-exif 8.3.3-r0 apk php83-exif 8.3.8-r0 apk
php83-fileinfo 8.3.3-r0 apk php83-fileinfo 8.3.8-r0 apk
php83-fpm 8.3.3-r0 apk php83-fpm 8.3.8-r0 apk
php83-ftp 8.3.3-r0 apk php83-ftp 8.3.8-r0 apk
php83-gd 8.3.3-r0 apk php83-gd 8.3.8-r0 apk
php83-gmp 8.3.3-r0 apk php83-gmp 8.3.8-r0 apk
php83-iconv 8.3.3-r0 apk php83-iconv 8.3.8-r0 apk
php83-imap 8.3.3-r0 apk php83-imap 8.3.8-r0 apk
php83-intl 8.3.3-r0 apk php83-intl 8.3.8-r0 apk
php83-ldap 8.3.3-r0 apk php83-ldap 8.3.8-r0 apk
php83-mbstring 8.3.3-r0 apk php83-mbstring 8.3.8-r0 apk
php83-mysqli 8.3.3-r0 apk php83-mysqli 8.3.8-r0 apk
php83-mysqlnd 8.3.3-r0 apk php83-mysqlnd 8.3.8-r0 apk
php83-opcache 8.3.3-r0 apk php83-opcache 8.3.8-r0 apk
php83-openssl 8.3.3-r0 apk php83-openssl 8.3.8-r0 apk
php83-pdo 8.3.3-r0 apk php83-pdo 8.3.8-r0 apk
php83-pdo_mysql 8.3.3-r0 apk php83-pdo_mysql 8.3.8-r0 apk
php83-pdo_odbc 8.3.3-r0 apk php83-pdo_odbc 8.3.8-r0 apk
php83-pdo_pgsql 8.3.3-r0 apk php83-pdo_pgsql 8.3.8-r0 apk
php83-pdo_sqlite 8.3.3-r0 apk php83-pdo_sqlite 8.3.8-r0 apk
php83-pear 8.3.3-r0 apk php83-pear 8.3.8-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-r2 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.8-r0 apk
php83-phar 8.3.3-r0 apk php83-phar 8.3.8-r0 apk
php83-posix 8.3.3-r0 apk php83-posix 8.3.8-r0 apk
php83-session 8.3.3-r0 apk php83-session 8.3.8-r0 apk
php83-simplexml 8.3.3-r0 apk php83-simplexml 8.3.8-r0 apk
php83-soap 8.3.3-r0 apk php83-soap 8.3.8-r0 apk
php83-sockets 8.3.3-r0 apk php83-sockets 8.3.8-r0 apk
php83-sodium 8.3.3-r0 apk php83-sodium 8.3.8-r0 apk
php83-sqlite3 8.3.3-r0 apk php83-sqlite3 8.3.8-r0 apk
php83-tokenizer 8.3.3-r0 apk php83-tokenizer 8.3.8-r0 apk
php83-xml 8.3.3-r0 apk php83-xml 8.3.8-r0 apk
php83-xmlreader 8.3.3-r0 apk php83-xmlreader 8.3.8-r0 apk
php83-xmlwriter 8.3.3-r0 apk php83-xmlwriter 8.3.8-r0 apk
php83-xsl 8.3.3-r0 apk php83-xsl 8.3.8-r0 apk
php83-zip 8.3.3-r0 apk php83-zip 8.3.8-r0 apk
pinentry 1.2.1-r1 apk pinentry 1.2.1-r1 apk
pip 24.0 python pip 24.1 python
pkb-client 1.2 python pkb-client 1.2 python
popt 1.19-r3 apk popt 1.19-r3 apk
portalocker 2.8.2 python portalocker 2.8.2 python
procps-ng 4.0.4-r0 apk procps-ng 4.0.4-r0 apk
proto-plus 1.24.0 python
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.6.0 python
pyasn1-modules 0.3.0 python pyasn1_modules 0.4.0 python
pyc 3.11.8-r0 apk pyc 3.11.9-r0 apk
pycparser 2.21 python pycparser 2.22 python
pyotp 2.9.0 python pyotp 2.9.0 python
pyparsing 3.1.2 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
python3 3.11.8-r0 apk python3 3.11.9-r0 apk
python3-pyc 3.11.8-r0 apk python3-pyc 3.11.9-r0 apk
python3-pycache-pyc0 3.11.8-r0 apk python3-pycache-pyc0 3.11.9-r0 apk
pytz 2024.1 python pytz 2024.1 python
readline 8.2.1-r2 apk readline 8.2.1-r2 apk
requests 2.31.0 python requests 2.32.3 python
requests-file 2.0.0 python requests-file 2.1.0 python
requests-mock 1.11.0 python requests-mock 1.12.1 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
@@ -328,19 +331,19 @@ six 1.16.0 python
skalibs 2.14.0.1-r0 apk skalibs 2.14.0.1-r0 apk
soupsieve 2.5 python soupsieve 2.5 python
sqlite-libs 3.44.2-r0 apk sqlite-libs 3.44.2-r0 apk
ssl_client 1.36.1-r15 apk ssl_client 1.36.1-r19 apk
tiff 4.6.0-r0 apk tiff 4.6.0-r0 apk
tldextract 5.1.1 python tldextract 5.1.2 python
typing-inspect 0.9.0 python typing-inspect 0.9.0 python
typing_extensions 4.10.0 python typing_extensions 4.12.2 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.2 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
zope.interface 6.2 python zope.interface 6.4.post2 python
zstd-libs 1.5.5-r8 apk zstd-libs 1.5.5-r8 apk

View File

@@ -50,7 +50,7 @@ opt_param_usage_include_env: true
opt_param_env_vars: opt_param_env_vars:
- { env_var: "SUBDOMAINS", env_value: "www,", desc: "Subdomains you'd like the cert to cover (comma separated, no spaces) ie. `www,ftp,cloud`. For a wildcard cert, set this *exactly* to `wildcard` (wildcard cert is available via `dns` validation only)" } - { env_var: "SUBDOMAINS", env_value: "www,", desc: "Subdomains you'd like the cert to cover (comma separated, no spaces) ie. `www,ftp,cloud`. For a wildcard cert, set this *exactly* to `wildcard` (wildcard cert is available via `dns` validation only)" }
- { env_var: "CERTPROVIDER", env_value: "", desc: "Optionally define the cert provider. Set to `zerossl` for ZeroSSL certs (requires existing [ZeroSSL account](https://app.zerossl.com/signup) and the e-mail address entered in `EMAIL` env var). Otherwise defaults to Let's Encrypt." } - { env_var: "CERTPROVIDER", env_value: "", desc: "Optionally define the cert provider. Set to `zerossl` for ZeroSSL certs (requires existing [ZeroSSL account](https://app.zerossl.com/signup) and the e-mail address entered in `EMAIL` env var). Otherwise defaults to Let's Encrypt." }
- { env_var: "DNSPLUGIN", env_value: "cloudflare", desc: "Required if `VALIDATION` is set to `dns`. Options are `acmedns`, `aliyun`, `azure`, `bunny`, `cloudflare`, `cpanel`, `desec`, `digitalocean`, `directadmin`, `dnsimple`, `dnsmadeeasy`, `dnspod`, `do`, `domeneshop`, `dreamhost`, `duckdns`, `freedns`, `gandi`, `gehirn`, `glesys`, `godaddy`, `google`, `google-domains`, `he`, `hetzner`, `infomaniak`, `inwx`, `ionos`, `linode`, `loopia`, `luadns`, `namecheap`, `netcup`, `njalla`, `nsone`, `ovh`, `porkbun`, `rfc2136`, `route53`, `sakuracloud`, `standalone`, `transip`, and `vultr`. Also need to enter the credentials into the corresponding ini (or json for some plugins) file under `/config/dns-conf`." } - { env_var: "DNSPLUGIN", env_value: "cloudflare", desc: "Required if `VALIDATION` is set to `dns`. Options are `acmedns`, `aliyun`, `azure`, `bunny`, `cloudflare`, `cpanel`, `desec`, `digitalocean`, `directadmin`, `dnsimple`, `dnsmadeeasy`, `dnspod`, `do`, `domeneshop`, `dreamhost`, `duckdns`, `dynudns`, `freedns`, `gandi`, `gehirn`, `glesys`, `godaddy`, `google`, `google-domains`, `he`, `hetzner`, `infomaniak`, `inwx`, `ionos`, `linode`, `loopia`, `luadns`, `namecheap`, `netcup`, `njalla`, `nsone`, `ovh`, `porkbun`, `rfc2136`, `route53`, `sakuracloud`, `standalone`, `transip`, and `vultr`. Also need to enter the credentials into the corresponding ini (or json for some plugins) file under `/config/dns-conf`." }
- { env_var: "PROPAGATION", env_value: "", desc: "Optionally override (in seconds) the default propagation time for the dns plugins." } - { env_var: "PROPAGATION", env_value: "", desc: "Optionally override (in seconds) the default propagation time for the dns plugins." }
- { env_var: "EMAIL", env_value: "", desc: "Optional e-mail address used for cert expiration notifications (Required for ZeroSSL)." } - { env_var: "EMAIL", env_value: "", desc: "Optional e-mail address used for cert expiration notifications (Required for ZeroSSL)." }
- { env_var: "ONLY_SUBDOMAINS", env_value: "false", desc: "If you wish to get certs only for certain subdomains, but not the main domain (main domain may be hosted on another machine and cannot be validated), set this to `true`" } - { env_var: "ONLY_SUBDOMAINS", env_value: "false", desc: "If you wish to get certs only for certain subdomains, but not the main domain (main domain may be hosted on another machine and cannot be validated), set this to `true`" }
@@ -168,6 +168,10 @@ app_setup_block: |
# changelog # changelog
changelogs: changelogs:
- { date: "23.03.24:", desc: "Fix perms on the generated `priv-fullchain-bundle.pem`." }
- { 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: "11.03.24:", desc: "Restore support for DynuDNS using `certbot-dns-dynudns`." }
- { 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: "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." }

View File

@@ -0,0 +1,3 @@
# Instructions: https://github.com/DustyRah/certbot-dns-dynudns
# Replace with your API token from your dynudns account.
dns_dynu_auth_token = AbCbASsd!@34

View File

@@ -5,4 +5,5 @@ cd /config/keys/letsencrypt || exit 1
openssl pkcs12 -export -out privkey.pfx -inkey privkey.pem -in cert.pem -certfile chain.pem -passout pass: openssl pkcs12 -export -out privkey.pfx -inkey privkey.pem -in cert.pem -certfile chain.pem -passout pass:
sleep 1 sleep 1
cat {privkey,fullchain}.pem >priv-fullchain-bundle.pem cat {privkey,fullchain}.pem >priv-fullchain-bundle.pem
chmod 600 priv-fullchain-bundle.pem
chown -R abc:abc /config/etc/letsencrypt chown -R abc:abc /config/etc/letsencrypt

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,18 +1,20 @@
## Version 2023/04/27 - Changelog: https://github.com/linuxserver/docker-swag/commits/master/root/defaults/nginx/authelia-server.conf.sample ## Version 2024/03/16 - 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 {
auth_request off; # requests to this subfolder must be accessible without authentication auth_request off; # requests to this subfolder must be accessible without authentication
include /config/nginx/proxy.conf; include /config/nginx/proxy.conf;
include /config/nginx/resolver.conf; include /config/nginx/resolver.conf;
set $upstream_authelia authelia; set $upstream_authelia authelia;
proxy_pass http://$upstream_authelia:9091; proxy_pass http://$upstream_authelia:9091;
} }
# location for authelia auth requests # location for authelia 4.37 and below auth requests
location = /authelia/api/verify { location = /authelia/api/verify {
internal; internal;
@@ -29,6 +31,23 @@ location = /authelia/api/verify {
proxy_set_header Content-Length ""; proxy_set_header Content-Length "";
} }
# location for authelia 4.38 and above auth requests
location = /authelia/api/authz/auth-request {
internal;
include /config/nginx/proxy.conf;
include /config/nginx/resolver.conf;
set $upstream_authelia authelia;
proxy_pass http://$upstream_authelia:9091;
## Include the Set-Cookie header if present
auth_request_set $set_cookie $upstream_http_set_cookie;
add_header Set-Cookie $set_cookie;
proxy_pass_request_body off;
proxy_set_header Content-Length "";
}
# virtual location for authelia 401 redirects # virtual location for authelia 401 redirects
location @authelia_proxy_signin { location @authelia_proxy_signin {
internal; internal;

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

@@ -5,6 +5,7 @@
# location for authentik subfolder requests # location for authentik subfolder requests
location ^~ /outpost.goauthentik.io { location ^~ /outpost.goauthentik.io {
auth_request off; # requests to this subfolder must be accessible without authentication auth_request off; # requests to this subfolder must be accessible without authentication
include /config/nginx/proxy.conf; include /config/nginx/proxy.conf;
include /config/nginx/resolver.conf; include /config/nginx/resolver.conf;
set $upstream_authentik authentik-server; set $upstream_authentik authentik-server;

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

@@ -9,5 +9,5 @@ if [[ -d /defaults/nginx/proxy-confs/ ]]; then
-maxdepth 1 \ -maxdepth 1 \
-name "*.conf.sample" \ -name "*.conf.sample" \
-type f \ -type f \
-exec cp "{}" /config/nginx/proxy-confs/ + -exec cp "{}" /config/nginx/proxy-confs/ \;
fi fi