Compare commits

...

15 Commits

Author SHA1 Message Date
LinuxServer-CI
3145477f72 Bot Updating Package Versions 2024-03-04 22:52:37 +00:00
aptalca
58b9470c52 Merge pull request #458 from linuxserver/edgerepo
package moved to community repo
2024-03-04 17:47:44 -05:00
aptalca
68f5cf8d9e package moved to community repo 2024-03-04 17:11:41 -05:00
LinuxServer-CI
e8d452f4ce Bot Updating Package Versions 2024-02-24 03:25:25 +00:00
LinuxServer-CI
4abd6c9890 Bot Updating Templated Files 2024-02-24 03:21:49 +00:00
LinuxServer-CI
c335faabdc Bot Updating Templated Files 2024-02-24 03:18:57 +00:00
LinuxServer-CI
204dd90f9d Bot Updating Package Versions 2024-02-17 03:20:23 +00:00
LinuxServer-CI
92bfbc19cd Bot Updating Package Versions 2024-02-10 03:18:04 +00:00
LinuxServer-CI
cb3c74a6ee Bot Updating Package Versions 2024-02-08 21:18:13 +00:00
LinuxServer-CI
b7f40863fe Bot Updating Package Versions 2024-02-03 03:21:47 +00:00
LinuxServer-CI
ec6fca9418 Bot Updating Package Versions 2024-01-27 18:57:53 +00:00
Eric Nemchik
25a2832056 Merge pull request #441 from linuxserver/3.19
Rebase to Alpine 3.19 with php 8.3, add root periodic crontabs for logrotate
2024-01-27 12:52:12 -06:00
Eric Nemchik
6ed17c1d52 Merge branch 'master' into 3.19 2024-01-23 20:27:06 -06:00
Eric Nemchik
24b3540da5 Fix php83-pecl-mcrypt
Signed-off-by: Eric Nemchik <eric@nemchik.com>
2023-12-23 16:18:56 -06:00
Eric Nemchik
bc31b51afb Rebase to Alpine 3.19 with php 8.3, add root periodic crontabs for logrotate
Signed-off-by: Eric Nemchik <eric@nemchik.com>
2023-12-23 16:12:03 -06:00
12 changed files with 574 additions and 571 deletions

View File

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

View File

@@ -7,7 +7,7 @@ jobs:
external-trigger-master: external-trigger-master:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3.1.0 - uses: actions/checkout@v4.1.1
- name: External Trigger - name: External Trigger
if: github.ref == 'refs/heads/master' if: github.ref == 'refs/heads/master'

View File

@@ -9,7 +9,7 @@ jobs:
external-trigger-scheduler: external-trigger-scheduler:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3.1.0 - uses: actions/checkout@v4.1.1
with: with:
fetch-depth: '0' fetch-depth: '0'

View File

@@ -7,7 +7,7 @@ jobs:
package-trigger-master: package-trigger-master:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3.1.0 - uses: actions/checkout@v4.1.1
- name: Package Trigger - name: Package Trigger
if: github.ref == 'refs/heads/master' if: github.ref == 'refs/heads/master'

View File

@@ -9,7 +9,7 @@ jobs:
package-trigger-scheduler: package-trigger-scheduler:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3.1.0 - uses: actions/checkout@v4.1.1
with: with:
fetch-depth: '0' fetch-depth: '0'

View File

@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:1 # syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.18 FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.19
# set version label # set version label
ARG BUILD_DATE ARG BUILD_DATE
@@ -45,39 +45,39 @@ RUN \
nginx-mod-stream \ nginx-mod-stream \
nginx-mod-stream-geoip2 \ nginx-mod-stream-geoip2 \
nginx-vim \ nginx-vim \
php82-bcmath \ php83-bcmath \
php82-bz2 \ php83-bz2 \
php82-dom \ php83-dom \
php82-exif \ php83-exif \
php82-ftp \ php83-ftp \
php82-gd \ php83-gd \
php82-gmp \ php83-gmp \
php82-imap \ php83-imap \
php82-intl \ php83-intl \
php82-ldap \ php83-ldap \
php82-mysqli \ php83-mysqli \
php82-mysqlnd \ php83-mysqlnd \
php82-opcache \ php83-opcache \
php82-pdo_mysql \ php83-pdo_mysql \
php82-pdo_odbc \ php83-pdo_odbc \
php82-pdo_pgsql \ php83-pdo_pgsql \
php82-pdo_sqlite \ php83-pdo_sqlite \
php82-pear \ php83-pear \
php82-pecl-apcu \ php83-pecl-apcu \
php82-pecl-memcached \ php83-pecl-memcached \
php82-pecl-redis \ php83-pecl-redis \
php82-pgsql \ php83-pgsql \
php82-posix \ php83-posix \
php82-soap \ php83-soap \
php82-sockets \ php83-sockets \
php82-sodium \ php83-sodium \
php82-sqlite3 \ php83-sqlite3 \
php82-tokenizer \ php83-tokenizer \
php82-xmlreader \ php83-xmlreader \
php82-xsl \ php83-xsl \
whois && \ whois && \
apk add --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/community \ apk add --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/community \
php82-pecl-mcrypt && \ php83-pecl-mcrypt && \
echo "**** install certbot plugins ****" && \ echo "**** install certbot plugins ****" && \
if [ -z ${CERTBOT_VERSION+x} ]; then \ if [ -z ${CERTBOT_VERSION+x} ]; then \
CERTBOT_VERSION=$(curl -sL https://pypi.python.org/pypi/certbot/json |jq -r '. | .info.version'); \ CERTBOT_VERSION=$(curl -sL https://pypi.python.org/pypi/certbot/json |jq -r '. | .info.version'); \
@@ -86,7 +86,7 @@ RUN \
pip install -U --no-cache-dir \ pip install -U --no-cache-dir \
pip \ pip \
wheel && \ wheel && \
pip install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/alpine-3.18/ \ pip install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/alpine-3.19/ \
certbot==${CERTBOT_VERSION} \ certbot==${CERTBOT_VERSION} \
certbot-dns-acmedns \ certbot-dns-acmedns \
certbot-dns-aliyun \ certbot-dns-aliyun \

View File

@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:1 # syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.18 FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.19
# set version label # set version label
ARG BUILD_DATE ARG BUILD_DATE
@@ -45,39 +45,39 @@ RUN \
nginx-mod-stream \ nginx-mod-stream \
nginx-mod-stream-geoip2 \ nginx-mod-stream-geoip2 \
nginx-vim \ nginx-vim \
php82-bcmath \ php83-bcmath \
php82-bz2 \ php83-bz2 \
php82-dom \ php83-dom \
php82-exif \ php83-exif \
php82-ftp \ php83-ftp \
php82-gd \ php83-gd \
php82-gmp \ php83-gmp \
php82-imap \ php83-imap \
php82-intl \ php83-intl \
php82-ldap \ php83-ldap \
php82-mysqli \ php83-mysqli \
php82-mysqlnd \ php83-mysqlnd \
php82-opcache \ php83-opcache \
php82-pdo_mysql \ php83-pdo_mysql \
php82-pdo_odbc \ php83-pdo_odbc \
php82-pdo_pgsql \ php83-pdo_pgsql \
php82-pdo_sqlite \ php83-pdo_sqlite \
php82-pear \ php83-pear \
php82-pecl-apcu \ php83-pecl-apcu \
php82-pecl-memcached \ php83-pecl-memcached \
php82-pecl-redis \ php83-pecl-redis \
php82-pgsql \ php83-pgsql \
php82-posix \ php83-posix \
php82-soap \ php83-soap \
php82-sockets \ php83-sockets \
php82-sodium \ php83-sodium \
php82-sqlite3 \ php83-sqlite3 \
php82-tokenizer \ php83-tokenizer \
php82-xmlreader \ php83-xmlreader \
php82-xsl \ php83-xsl \
whois && \ whois && \
apk add --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/community \ apk add --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/community \
php82-pecl-mcrypt && \ php83-pecl-mcrypt && \
echo "**** install certbot plugins ****" && \ echo "**** install certbot plugins ****" && \
if [ -z ${CERTBOT_VERSION+x} ]; then \ if [ -z ${CERTBOT_VERSION+x} ]; then \
CERTBOT_VERSION=$(curl -sL https://pypi.python.org/pypi/certbot/json |jq -r '. | .info.version'); \ CERTBOT_VERSION=$(curl -sL https://pypi.python.org/pypi/certbot/json |jq -r '. | .info.version'); \
@@ -86,7 +86,7 @@ RUN \
pip install -U --no-cache-dir \ pip install -U --no-cache-dir \
pip \ pip \
wheel && \ wheel && \
pip install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/alpine-3.18/ \ pip install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/alpine-3.19/ \
certbot==${CERTBOT_VERSION} \ certbot==${CERTBOT_VERSION} \
certbot-dns-acmedns \ certbot-dns-acmedns \
certbot-dns-aliyun \ certbot-dns-aliyun \

297
Jenkinsfile vendored
View File

@@ -245,9 +245,11 @@ pipeline {
-v ${WORKSPACE}:/mnt \ -v ${WORKSPACE}:/mnt \
-e AWS_ACCESS_KEY_ID=\"${S3_KEY}\" \ -e AWS_ACCESS_KEY_ID=\"${S3_KEY}\" \
-e AWS_SECRET_ACCESS_KEY=\"${S3_SECRET}\" \ -e AWS_SECRET_ACCESS_KEY=\"${S3_SECRET}\" \
ghcr.io/linuxserver/baseimage-alpine:3.17 s6-envdir -fn -- /var/run/s6/container_environment /bin/bash -c "\ ghcr.io/linuxserver/baseimage-alpine:3.19 s6-envdir -fn -- /var/run/s6/container_environment /bin/bash -c "\
apk add --no-cache py3-pip && \ apk add --no-cache python3 && \
pip install s3cmd && \ python3 -m venv /lsiopy && \
pip install --no-cache-dir -U pip && \
pip install --no-cache-dir s3cmd && \
s3cmd put --no-preserve --acl-public -m text/xml /mnt/shellcheck-result.xml s3://ci-tests.linuxserver.io/${IMAGE}/${META_TAG}/shellcheck-result.xml" || :''' s3cmd put --no-preserve --acl-public -m text/xml /mnt/shellcheck-result.xml s3://ci-tests.linuxserver.io/${IMAGE}/${META_TAG}/shellcheck-result.xml" || :'''
} }
} }
@@ -262,150 +264,149 @@ pipeline {
} }
} }
steps { steps {
withCredentials([ sh '''#! /bin/bash
[ set -e
$class: 'UsernamePasswordMultiBinding', TEMPDIR=$(mktemp -d)
credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207', docker pull ghcr.io/linuxserver/jenkins-builder:latest
usernameVariable: 'DOCKERUSER', docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=master -v ${TEMPDIR}:/ansible/jenkins ghcr.io/linuxserver/jenkins-builder:latest
passwordVariable: 'DOCKERPASS' # Stage 1 - Jenkinsfile update
] if [[ "$(md5sum Jenkinsfile | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile | awk '{ print $1 }')" ]]; then
]) { mkdir -p ${TEMPDIR}/repo
sh '''#! /bin/bash git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
set -e cd ${TEMPDIR}/repo/${LS_REPO}
TEMPDIR=$(mktemp -d) git checkout -f master
docker pull ghcr.io/linuxserver/jenkins-builder:latest cp ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile ${TEMPDIR}/repo/${LS_REPO}/
docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=master -v ${TEMPDIR}:/ansible/jenkins ghcr.io/linuxserver/jenkins-builder:latest git add Jenkinsfile
# Stage 1 - Jenkinsfile update git commit -m 'Bot Updating Templated Files'
if [[ "$(md5sum Jenkinsfile | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile | awk '{ print $1 }')" ]]; then git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master
mkdir -p ${TEMPDIR}/repo git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO} echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
cd ${TEMPDIR}/repo/${LS_REPO} echo "Updating Jenkinsfile"
git checkout -f master rm -Rf ${TEMPDIR}
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile ${TEMPDIR}/repo/${LS_REPO}/ exit 0
git add Jenkinsfile else
git commit -m 'Bot Updating Templated Files' echo "Jenkinsfile is up to date."
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master fi
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master # Stage 2 - Delete old templates
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} 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"
echo "Updating Jenkinsfile" for i in ${OLD_TEMPLATES}; do
rm -Rf ${TEMPDIR} if [[ -f "${i}" ]]; then
exit 0 TEMPLATES_TO_DELETE="${i} ${TEMPLATES_TO_DELETE}"
else
echo "Jenkinsfile is up to date."
fi fi
# Stage 2 - Delete old templates done
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" if [[ -n "${TEMPLATES_TO_DELETE}" ]]; then
for i in ${OLD_TEMPLATES}; do mkdir -p ${TEMPDIR}/repo
if [[ -f "${i}" ]]; then git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
TEMPLATES_TO_DELETE="${i} ${TEMPLATES_TO_DELETE}" cd ${TEMPDIR}/repo/${LS_REPO}
fi git checkout -f master
for i in ${TEMPLATES_TO_DELETE}; do
git rm "${i}"
done done
if [[ -n "${TEMPLATES_TO_DELETE}" ]]; then git commit -m 'Bot Updating Templated Files'
mkdir -p ${TEMPDIR}/repo git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO} git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master
cd ${TEMPDIR}/repo/${LS_REPO} echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
git checkout -f master echo "Deleting old and deprecated templates"
for i in ${TEMPLATES_TO_DELETE}; do rm -Rf ${TEMPDIR}
git rm "${i}" exit 0
done else
git commit -m 'Bot Updating Templated Files' echo "No templates to delete"
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master fi
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master # Stage 3 - Update templates
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} CURRENTHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8)
echo "Deleting old and deprecated templates" cd ${TEMPDIR}/docker-${CONTAINER_NAME}
rm -Rf ${TEMPDIR} NEWHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8)
exit 0 if [[ "${CURRENTHASH}" != "${NEWHASH}" ]] || ! grep -q '.jenkins-external' "${WORKSPACE}/.gitignore" 2>/dev/null; then
else mkdir -p ${TEMPDIR}/repo
echo "No templates to delete" git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
fi cd ${TEMPDIR}/repo/${LS_REPO}
# Stage 3 - Update templates git checkout -f master
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) mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/workflows
if [[ "${CURRENTHASH}" != "${NEWHASH}" ]] || ! grep -q '.jenkins-external' "${WORKSPACE}/.gitignore" 2>/dev/null; then mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE
mkdir -p ${TEMPDIR}/repo cp --parents ${TEMPLATED_FILES} ${TEMPDIR}/repo/${LS_REPO}/ || :
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO} cp --parents readme-vars.yml ${TEMPDIR}/repo/${LS_REPO}/ || :
cd ${TEMPDIR}/repo/${LS_REPO} cd ${TEMPDIR}/repo/${LS_REPO}/
git checkout -f master if ! grep -q '.jenkins-external' .gitignore 2>/dev/null; then
cd ${TEMPDIR}/docker-${CONTAINER_NAME} echo ".jenkins-external" >> .gitignore
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/workflows git add .gitignore
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE fi
cp --parents ${TEMPLATED_FILES} ${TEMPDIR}/repo/${LS_REPO}/ || : git add readme-vars.yml ${TEMPLATED_FILES}
cp --parents readme-vars.yml ${TEMPDIR}/repo/${LS_REPO}/ || : git commit -m 'Bot Updating Templated Files'
cd ${TEMPDIR}/repo/${LS_REPO}/ git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master
if ! grep -q '.jenkins-external' .gitignore 2>/dev/null; then git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master
echo ".jenkins-external" >> .gitignore echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
git add .gitignore else
fi echo "false" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
git add readme-vars.yml ${TEMPLATED_FILES} fi
git commit -m 'Bot Updating Templated Files' mkdir -p ${TEMPDIR}/docs
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master git clone https://github.com/linuxserver/docker-documentation.git ${TEMPDIR}/docs/docker-documentation
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master 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
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/docker-${CONTAINER_NAME}.md ${TEMPDIR}/docs/docker-documentation/docs/images/
cd ${TEMPDIR}/docs/docker-documentation
GH_DOCS_DEFAULT_BRANCH=$(git remote show origin | grep "HEAD branch:" | sed 's|.*HEAD branch: ||')
git add docs/images/docker-${CONTAINER_NAME}.md
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 push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH} || \
(MAXWAIT="10" && echo "Push to docs failed, trying again in ${MAXWAIT} seconds" && \
sleep $((RANDOM % MAXWAIT)) && \
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})
fi
mkdir -p ${TEMPDIR}/unraid
git clone https://github.com/linuxserver/docker-templates.git ${TEMPDIR}/unraid/docker-templates
git clone https://github.com/linuxserver/templates.git ${TEMPDIR}/unraid/templates
if [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-logo.png ]]; then
sed -i "s|master/linuxserver.io/img/linuxserver-ls-logo.png|master/linuxserver.io/img/${CONTAINER_NAME}-logo.png|" ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml
elif [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-icon.png ]]; then
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
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
cd ${TEMPDIR}/unraid/templates/
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
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/
git add -u unraid/${CONTAINER_NAME}.xml
git mv unraid/${CONTAINER_NAME}.xml unraid/deprecated/${CONTAINER_NAME}.xml || :
git commit -m 'Bot Moving Deprecated Unraid Template' || :
else else
echo "false" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml ${TEMPDIR}/unraid/templates/unraid/
git add unraid/${CONTAINER_NAME}.xml
git commit -m 'Bot Updating Unraid Template'
fi fi
mkdir -p ${TEMPDIR}/docs git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git ${GH_TEMPLATES_DEFAULT_BRANCH} --rebase
git clone https://github.com/linuxserver/docker-documentation.git ${TEMPDIR}/docs/docker-documentation git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git ${GH_TEMPLATES_DEFAULT_BRANCH} || \
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 (MAXWAIT="10" && echo "Push to unraid templates failed, trying again in ${MAXWAIT} seconds" && \
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/docker-${CONTAINER_NAME}.md ${TEMPDIR}/docs/docker-documentation/docs/images/ sleep $((RANDOM % MAXWAIT)) && \
cd ${TEMPDIR}/docs/docker-documentation git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git ${GH_TEMPLATES_DEFAULT_BRANCH} --rebase && \
GH_DOCS_DEFAULT_BRANCH=$(git remote show origin | grep "HEAD branch:" | sed 's|.*HEAD branch: ||') git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git ${GH_TEMPLATES_DEFAULT_BRANCH})
git add docs/images/docker-${CONTAINER_NAME}.md fi
git commit -m 'Bot Updating Documentation' # Stage 4 - Sync Readme to Docker Hub
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH} if [[ "${BRANCH_NAME}" == "${GH_DEFAULT_BRANCH}" ]]; then
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH} if [[ $(cat ${TEMPDIR}/docker-${CONTAINER_NAME}/README.md | wc -m) > 25000 ]]; then
fi echo "Readme is longer than 25,000 characters. Syncing the lite version to Docker Hub"
mkdir -p ${TEMPDIR}/unraid DH_README_SYNC_PATH="${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/README.lite"
git clone https://github.com/linuxserver/docker-templates.git ${TEMPDIR}/unraid/docker-templates
git clone https://github.com/linuxserver/templates.git ${TEMPDIR}/unraid/templates
if [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-logo.png ]]; then
sed -i "s|master/linuxserver.io/img/linuxserver-ls-logo.png|master/linuxserver.io/img/${CONTAINER_NAME}-logo.png|" ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml
elif [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-icon.png ]]; then
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
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
cd ${TEMPDIR}/unraid/templates/
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
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/
git add -u unraid/${CONTAINER_NAME}.xml
git mv unraid/${CONTAINER_NAME}.xml unraid/deprecated/${CONTAINER_NAME}.xml || :
git commit -m 'Bot Moving Deprecated Unraid Template' || :
else
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml ${TEMPDIR}/unraid/templates/unraid/
git add unraid/${CONTAINER_NAME}.xml
git commit -m 'Bot Updating Unraid Template'
fi
git pull 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}
fi
# Stage 4 - Sync Readme to Docker Hub
if [[ "${BRANCH_NAME}" == "${GH_DEFAULT_BRANCH}" ]]; then
if [[ $(cat ${TEMPDIR}/docker-${CONTAINER_NAME}/README.md | wc -m) > 25000 ]]; then
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"
else
echo "Syncing readme to Docker Hub"
DH_README_SYNC_PATH="${TEMPDIR}/docker-${CONTAINER_NAME}/README.md"
fi
DH_TOKEN=$(curl -d '{"username":"'${DOCKERUSER}'", "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 PATCH \
-d "{\\"full_description\\":$(jq -Rsa . ${DH_README_SYNC_PATH})}" \
https://hub.docker.com/v2/repositories/${DOCKERHUB_IMAGE} || :
else else
echo "Not the default Github branch. Skipping readme sync to Docker Hub." echo "Syncing readme to Docker Hub"
DH_README_SYNC_PATH="${TEMPDIR}/docker-${CONTAINER_NAME}/README.md"
fi fi
rm -Rf ${TEMPDIR}''' 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')
script{ curl -s \
env.FILES_UPDATED = sh( -H "Authorization: JWT ${DH_TOKEN}" \
script: '''cat /tmp/${COMMIT_SHA}-${BUILD_NUMBER}''', -H "Content-Type: application/json" \
returnStdout: true).trim() -X PATCH \
} -d "{\\"full_description\\":$(jq -Rsa . ${DH_README_SYNC_PATH})}" \
https://hub.docker.com/v2/repositories/${DOCKERHUB_IMAGE} || :
else
echo "Not the default Github branch. Skipping readme sync to Docker Hub."
fi
rm -Rf ${TEMPDIR}'''
script{
env.FILES_UPDATED = sh(
script: '''cat /tmp/${COMMIT_SHA}-${BUILD_NUMBER}''',
returnStdout: true).trim()
} }
} }
} }
@@ -703,12 +704,6 @@ pipeline {
} }
steps { steps {
withCredentials([ withCredentials([
[
$class: 'UsernamePasswordMultiBinding',
credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207',
usernameVariable: 'DOCKERUSER',
passwordVariable: 'DOCKERPASS'
],
[ [
$class: 'UsernamePasswordMultiBinding', $class: 'UsernamePasswordMultiBinding',
credentialsId: 'Quay.io-Robot', credentialsId: 'Quay.io-Robot',
@@ -719,7 +714,7 @@ pipeline {
retry(5) { retry(5) {
sh '''#! /bin/bash sh '''#! /bin/bash
set -e set -e
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin echo $DOCKERHUB_TOKEN | docker login -u linuxserverci --password-stdin
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
@@ -750,12 +745,6 @@ pipeline {
} }
steps { steps {
withCredentials([ withCredentials([
[
$class: 'UsernamePasswordMultiBinding',
credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207',
usernameVariable: 'DOCKERUSER',
passwordVariable: 'DOCKERPASS'
],
[ [
$class: 'UsernamePasswordMultiBinding', $class: 'UsernamePasswordMultiBinding',
credentialsId: 'Quay.io-Robot', credentialsId: 'Quay.io-Robot',
@@ -766,7 +755,7 @@ pipeline {
retry(5) { retry(5) {
sh '''#! /bin/bash sh '''#! /bin/bash
set -e set -e
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin echo $DOCKERHUB_TOKEN | docker login -u linuxserverci --password-stdin
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin

View File

@@ -179,7 +179,7 @@ services:
- EXTRA_DOMAINS= #optional - EXTRA_DOMAINS= #optional
- STAGING=false #optional - STAGING=false #optional
volumes: volumes:
- /path/to/appdata/config:/config - /path/to/swag/config:/config
ports: ports:
- 443:443 - 443:443
- 80:80 #optional - 80:80 #optional
@@ -207,7 +207,7 @@ docker run -d \
-e STAGING=false `#optional` \ -e STAGING=false `#optional` \
-p 443:443 \ -p 443:443 \
-p 80:80 `#optional` \ -p 80:80 `#optional` \
-v /path/to/appdata/config:/config \ -v /path/to/swag/config:/config \
--restart unless-stopped \ --restart unless-stopped \
lscr.io/linuxserver/swag:latest lscr.io/linuxserver/swag:latest
``` ```
@@ -233,7 +233,7 @@ Containers are configured using parameters passed at runtime (such as those abov
| `-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` |
| `-e EXTRA_DOMAINS=` | Additional fully qualified domain names (comma separated, no spaces) ie. `extradomain.com,subdomain.anotherdomain.org,*.anotherdomain.org` | | `-e EXTRA_DOMAINS=` | Additional fully qualified domain names (comma separated, no spaces) ie. `extradomain.com,subdomain.anotherdomain.org,*.anotherdomain.org` |
| `-e STAGING=false` | Set to `true` to retrieve certs in staging mode. Rate limits will be much higher, but the resulting cert will not pass the browser's security test. Only to be used for testing purposes. | | `-e STAGING=false` | Set to `true` to retrieve certs in staging mode. Rate limits will be much higher, but the resulting cert will not pass the browser's security test. Only to be used for testing purposes. |
| `-v /config` | All the config files including the webroot reside here. | | `-v /config` | Persistent config files |
### Portainer notice ### Portainer notice
@@ -400,6 +400,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
## Versions ## Versions
* **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.
* **30.11.23:** - [Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) site-confs/default.conf - Fix index.php being downloaded on 404. * **30.11.23:** - [Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) site-confs/default.conf - Fix index.php being downloaded on 404.

View File

@@ -1,340 +1,346 @@
NAME VERSION TYPE NAME VERSION TYPE
ConfigArgParse 1.7 python ConfigArgParse 1.7 python
PyJWT 2.8.0 python 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 Simple Launcher 1.1.0.14 dotnet (+5 duplicates)
acme 2.8.0 python acme 2.9.0 python
alpine-baselayout 3.4.3-r1 apk alpine-baselayout 3.4.3-r2 apk
alpine-baselayout-data 3.4.3-r1 apk alpine-baselayout-data 3.4.3-r2 apk
alpine-keys 2.4-r1 apk alpine-keys 2.4-r1 apk
alpine-release 3.18.5-r0 apk alpine-release 3.19.1-r0 apk
aom-libs 3.6.1-r0 apk aom-libs 3.7.1-r0 apk
apache2-utils 2.4.58-r0 apk apache2-utils 2.4.58-r1 apk
apk-tools 2.14.0-r2 apk apk-tools 2.14.0-r5 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-r4 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.29.7 python azure-core 1.30.1 python
azure-identity 1.15.0 python azure-identity 1.15.0 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.15-r5 apk bash 5.2.21-r0 apk
beautifulsoup4 4.12.3 python beautifulsoup4 4.12.3 python
boto3 1.34.29 python boto3 1.34.55 python
botocore 1.34.29 python botocore 1.34.55 python
brotli-libs 1.0.9-r14 apk brotli-libs 1.1.0-r1 apk
bs4 0.0.2 python bs4 0.0.2 python
busybox 1.36.1-r5 apk busybox 1.36.1-r15 apk
busybox-binsh 1.36.1-r5 apk busybox-binsh 1.36.1-r15 apk
c-client 2007f-r15 apk c-ares 1.24.0-r1 apk
ca-certificates 20230506-r0 apk c-client 2007f-r15 apk
ca-certificates-bundle 20230506-r0 apk ca-certificates 20230506-r0 apk
cachetools 5.3.2 python ca-certificates-bundle 20230506-r0 apk
certbot 2.8.0 python cachetools 5.3.3 python
certbot-dns-acmedns 0.1.0 python certbot 2.9.0 python
certbot-dns-aliyun 2.0.0 python certbot-dns-acmedns 0.1.0 python
certbot-dns-azure 2.4.0 python certbot-dns-aliyun 2.0.0 python
certbot-dns-bunny 0.0.9 python certbot-dns-azure 2.4.0 python
certbot-dns-cloudflare 2.8.0 python certbot-dns-bunny 0.0.9 python
certbot-dns-cpanel 0.4.0 python certbot-dns-cloudflare 2.9.0 python
certbot-dns-desec 1.2.1 python certbot-dns-cpanel 0.4.0 python
certbot-dns-digitalocean 2.8.0 python certbot-dns-desec 1.2.1 python
certbot-dns-directadmin 1.0.3 python certbot-dns-digitalocean 2.9.0 python
certbot-dns-dnsimple 2.8.0 python certbot-dns-directadmin 1.0.4 python
certbot-dns-dnsmadeeasy 2.8.0 python certbot-dns-dnsimple 2.9.0 python
certbot-dns-dnspod 0.1.0 python certbot-dns-dnsmadeeasy 2.9.0 python
certbot-dns-do 0.31.0 python certbot-dns-dnspod 0.1.0 python
certbot-dns-domeneshop 0.2.9 python certbot-dns-do 0.31.0 python
certbot-dns-dreamhost 1.0 python certbot-dns-domeneshop 0.2.9 python
certbot-dns-duckdns 1.3 python certbot-dns-dreamhost 1.0 python
certbot-dns-freedns 0.1.0 python certbot-dns-duckdns 1.3 python
certbot-dns-gehirn 2.8.0 python certbot-dns-freedns 0.1.0 python
certbot-dns-glesys 2.1.0 python certbot-dns-gehirn 2.9.0 python
certbot-dns-godaddy 2.8.0 python certbot-dns-glesys 2.1.0 python
certbot-dns-google 2.8.0 python certbot-dns-godaddy 2.8.0 python
certbot-dns-google-domains 0.1.11 python certbot-dns-google 2.9.0 python
certbot-dns-he 1.0.0 python certbot-dns-google-domains 0.1.11 python
certbot-dns-hetzner 2.0.0 python certbot-dns-he 1.0.0 python
certbot-dns-infomaniak 0.2.2 python certbot-dns-hetzner 2.0.0 python
certbot-dns-inwx 2.2.0 python certbot-dns-infomaniak 0.2.2 python
certbot-dns-ionos 2024.1.8 python certbot-dns-inwx 2.2.0 python
certbot-dns-linode 2.8.0 python certbot-dns-ionos 2024.1.8 python
certbot-dns-loopia 1.0.1 python certbot-dns-linode 2.9.0 python
certbot-dns-luadns 2.8.0 python certbot-dns-loopia 1.0.1 python
certbot-dns-namecheap 1.0.0 python certbot-dns-luadns 2.9.0 python
certbot-dns-netcup 1.4.3 python certbot-dns-namecheap 1.0.0 python
certbot-dns-njalla 1.0.0 python certbot-dns-netcup 1.4.3 python
certbot-dns-nsone 2.8.0 python certbot-dns-njalla 1.0.0 python
certbot-dns-ovh 2.8.0 python certbot-dns-nsone 2.9.0 python
certbot-dns-porkbun 0.8 python certbot-dns-ovh 2.9.0 python
certbot-dns-rfc2136 2.8.0 python certbot-dns-porkbun 0.8 python
certbot-dns-route53 2.8.0 python certbot-dns-rfc2136 2.9.0 python
certbot-dns-sakuracloud 2.8.0 python certbot-dns-route53 2.9.0 python
certbot-dns-standalone 1.1 python certbot-dns-sakuracloud 2.9.0 python
certbot-dns-transip 0.5.2 python certbot-dns-standalone 1.1 python
certbot-dns-vultr 1.1.0 python certbot-dns-transip 0.5.2 python
certbot-plugin-gandi 1.5.0 python certbot-dns-vultr 1.1.0 python
certifi 2023.11.17 python certbot-plugin-gandi 1.5.0 python
cffi 1.16.0 python certifi 2024.2.2 python
charset-normalizer 3.3.2 python cffi 1.16.0 python
cloudflare 2.17.0 python charset-normalizer 3.3.2 python
composer 2.6.6 binary cloudflare 2.19.2 python
configobj 5.0.8 python composer 2.7.1 binary
coreutils 9.3-r1 apk configobj 5.0.8 python
cryptography 42.0.1 python coreutils 9.4-r2 apk
curl 8.5.0-r0 apk coreutils-env 9.4-r2 apk
dataclasses-json 0.5.14 python coreutils-fmt 9.4-r2 apk
distro 1.9.0 python coreutils-sha512sum 9.4-r2 apk
dns-lexicon 3.17.0 python cryptography 42.0.5 python
dnslib 0.9.24 python curl 8.5.0-r0 apk
dnspython 2.5.0 python dataclasses-json 0.5.14 python
domeneshop 0.4.3 python distro 1.9.0 python
fail2ban 1.0.2 python dns-lexicon 3.17.0 python
fail2ban 1.0.2-r2 apk dnslib 0.9.24 python
fail2ban-pyc 1.0.2-r2 apk dnspython 2.6.1 python
filelock 3.13.1 python domeneshop 0.4.3 python
fontconfig 2.14.2-r3 apk fail2ban 1.0.2 python
freetype 2.13.0-r5 apk fail2ban 1.0.2-r3 apk
future 0.18.3 python fail2ban-pyc 1.0.2-r3 apk
gdbm 1.23-r1 apk filelock 3.13.1 python
git 2.40.1-r0 apk fontconfig 2.14.2-r4 apk
git-perl 2.40.1-r0 apk freetype 2.13.2-r0 apk
gmp 6.2.1-r3 apk future 1.0.0 python
gnupg 2.4.4-r0 apk gdbm 1.23-r1 apk
gnupg-dirmngr 2.4.4-r0 apk git 2.43.0-r0 apk
gnupg-gpgconf 2.4.4-r0 apk git-perl 2.43.0-r0 apk
gnupg-keyboxd 2.4.4-r0 apk gmp 6.3.0-r0 apk
gnupg-utils 2.4.4-r0 apk gnupg 2.4.4-r0 apk
gnupg-wks-client 2.4.4-r0 apk gnupg-dirmngr 2.4.4-r0 apk
gnutls 3.8.3-r0 apk gnupg-gpgconf 2.4.4-r0 apk
google-api-core 2.15.0 python gnupg-keyboxd 2.4.4-r0 apk
google-api-python-client 2.115.0 python gnupg-utils 2.4.4-r0 apk
google-auth 2.27.0 python gnupg-wks-client 2.4.4-r0 apk
google-auth-httplib2 0.2.0 python gnutls 3.8.3-r0 apk
googleapis-common-protos 1.62.0 python google-api-core 2.17.1 python
gpg 2.4.4-r0 apk google-api-python-client 2.120.0 python
gpg-agent 2.4.4-r0 apk google-auth 2.28.1 python
gpg-wks-server 2.4.4-r0 apk google-auth-httplib2 0.2.0 python
gpgsm 2.4.4-r0 apk googleapis-common-protos 1.62.0 python
gpgv 2.4.4-r0 apk gpg 2.4.4-r0 apk
httplib2 0.22.0 python gpg-agent 2.4.4-r0 apk
icu-data-en 73.2-r2 apk gpg-wks-server 2.4.4-r0 apk
icu-libs 73.2-r2 apk gpgsm 2.4.4-r0 apk
idna 3.6 python gpgv 2.4.4-r0 apk
ip6tables 1.8.9-r2 apk hiredis 1.2.0-r0 apk
iptables 1.8.9-r2 apk httplib2 0.22.0 python
isodate 0.6.1 python icu-data-en 74.1-r0 apk
jmespath 1.0.1 python icu-libs 74.1-r0 apk
josepy 1.14.0 python idna 3.6 python
jq 1.6-r4 apk iptables 1.8.10-r3 apk
jsonlines 4.0.0 python isodate 0.6.1 python
jsonpickle 3.0.2 python jmespath 1.0.1 python
libacl 2.3.1-r3 apk josepy 1.14.0 python
libassuan 2.5.6-r0 apk jq 1.7.1-r0 apk
libattr 2.5.1-r4 apk jsonlines 4.0.0 python
libavif 0.11.1-r2 apk jsonpickle 3.0.3 python
libbsd 0.11.7-r1 apk libacl 2.3.1-r4 apk
libbz2 1.0.8-r5 apk libassuan 2.5.6-r1 apk
libc-utils 0.7.2-r5 apk libattr 2.5.1-r5 apk
libcrypto3 3.1.4-r5 apk libavif 1.0.3-r0 apk
libcurl 8.5.0-r0 apk libbsd 0.11.7-r3 apk
libdav1d 1.2.1-r0 apk libbz2 1.0.8-r6 apk
libedit 20221030.3.1-r1 apk libc-utils 0.7.2-r5 apk
libevent 2.1.12-r6 apk libcrypto3 3.1.4-r5 apk
libexpat 2.5.0-r1 apk libcurl 8.5.0-r0 apk
libffi 3.4.4-r2 apk libdav1d 1.3.0-r1 apk
libgcc 12.2.1_git20220924-r10 apk libedit 20230828.3.1-r3 apk
libgcrypt 1.10.2-r1 apk libevent 2.1.12-r7 apk
libgd 2.3.3-r7 apk libexpat 2.6.0-r0 apk
libgpg-error 1.47-r1 apk libffi 3.4.4-r3 apk
libice 1.1.1-r2 apk libgcc 13.2.1_git20231014-r0 apk
libidn2 2.3.4-r1 apk libgcrypt 1.10.3-r0 apk
libintl 0.21.1-r7 apk libgd 2.3.3-r8 apk
libjpeg-turbo 2.1.5.1-r3 apk libgpg-error 1.47-r2 apk
libksba 1.6.4-r0 apk libice 1.1.1-r5 apk
libldap 2.6.5-r0 apk libidn2 2.3.4-r4 apk
libmaxminddb-libs 1.7.1-r1 apk libintl 0.22.3-r0 apk
libmcrypt 2.5.8-r10 apk libjpeg-turbo 3.0.1-r0 apk
libmd 1.0.4-r2 apk libksba 1.6.5-r0 apk
libmemcached-libs 1.1.4-r1 apk libldap 2.6.6-r1 apk
libmnl 1.0.5-r1 apk libmaxminddb-libs 1.7.1-r2 apk
libncursesw 6.4_p20230506-r0 apk libmcrypt 2.5.8-r10 apk
libnftnl 1.2.5-r1 apk libmd 1.1.0-r0 apk
libpanelw 6.4_p20230506-r0 apk libmemcached-libs 1.1.4-r1 apk
libpng 1.6.39-r3 apk libmnl 1.0.5-r2 apk
libpq 15.5-r0 apk libncursesw 6.4_p20231125-r0 apk
libproc2 4.0.4-r0 apk libnftnl 1.2.6-r0 apk
libsasl 2.1.28-r4 apk libpanelw 6.4_p20231125-r0 apk
libseccomp 2.5.4-r2 apk libpng 1.6.40-r0 apk
libsm 1.2.4-r1 apk libpq 16.2-r0 apk
libsodium 1.0.18-r3 apk libproc2 4.0.4-r0 apk
libssl3 3.1.4-r5 apk libsasl 2.1.28-r5 apk
libstdc++ 12.2.1_git20220924-r10 apk libseccomp 2.5.5-r0 apk
libtasn1 4.19.0-r1 apk libsharpyuv 1.3.2-r0 apk
libunistring 1.1-r1 apk libsm 1.2.4-r3 apk
libuuid 2.38.1-r8 apk libsodium 1.0.19-r0 apk
libwebp 1.3.2-r0 apk libssl3 3.1.4-r5 apk
libx11 1.8.7-r0 apk libstdc++ 13.2.1_git20231014-r0 apk
libxau 1.0.11-r2 apk libtasn1 4.19.0-r2 apk
libxcb 1.15-r1 apk libunistring 1.1-r2 apk
libxdmcp 1.1.4-r2 apk libuuid 2.39.3-r0 apk
libxext 1.3.5-r2 apk libwebp 1.3.2-r0 apk
libxml2 2.11.6-r0 apk libx11 1.8.7-r0 apk
libxpm 3.5.16-r1 apk libxau 1.0.11-r3 apk
libxslt 1.1.38-r0 apk libxcb 1.16-r0 apk
libxt 1.3.0-r2 apk libxdmcp 1.1.4-r3 apk
libzip 1.9.2-r2 apk libxext 1.3.5-r3 apk
linux-pam 1.5.2-r10 apk libxml2 2.11.7-r0 apk
logrotate 3.21.0-r1 apk libxpm 3.5.17-r0 apk
loopialib 0.2.0 python libxslt 1.1.39-r0 apk
lxml 5.1.0 python libxt 1.3.0-r4 apk
lz4-libs 1.9.4-r4 apk libxtables 1.8.10-r3 apk
marshmallow 3.20.2 python libzip 1.10.1-r0 apk
memcached 1.6.21-r0 apk linux-pam 1.5.3-r7 apk
mock 5.1.0 python logrotate 3.21.0-r1 apk
mpdecimal 2.5.1-r2 apk loopialib 0.2.0 python
msal 1.26.0 python lxml 5.1.0 python
msal-extensions 1.1.0 python lz4-libs 1.9.4-r5 apk
musl 1.2.4-r2 apk marshmallow 3.21.1 python
musl-utils 1.2.4-r2 apk memcached 1.6.22-r0 apk
mypy-extensions 1.0.0 python mock 5.1.0 python
nano 7.2-r1 apk mpdecimal 2.5.1-r2 apk
ncurses-terminfo-base 6.4_p20230506-r0 apk msal 1.27.0 python
netcat-openbsd 1.219-r1 apk msal-extensions 1.1.0 python
nettle 3.8.1-r2 apk musl 1.2.4_git20230717-r4 apk
nghttp2-libs 1.57.0-r0 apk musl-utils 1.2.4_git20230717-r4 apk
nginx 1.24.0-r7 apk mypy-extensions 1.0.0 python
nginx-mod-devel-kit 1.24.0-r7 apk nano 7.2-r1 apk
nginx-mod-http-brotli 1.24.0-r7 apk ncurses-terminfo-base 6.4_p20231125-r0 apk
nginx-mod-http-dav-ext 1.24.0-r7 apk netcat-openbsd 1.226-r0 apk
nginx-mod-http-echo 1.24.0-r7 apk nettle 3.9.1-r0 apk
nginx-mod-http-fancyindex 1.24.0-r7 apk nghttp2-libs 1.58.0-r0 apk
nginx-mod-http-geoip2 1.24.0-r7 apk nginx 1.24.0-r15 apk
nginx-mod-http-headers-more 1.24.0-r7 apk nginx-mod-devel-kit 1.24.0-r15 apk
nginx-mod-http-image-filter 1.24.0-r7 apk nginx-mod-http-brotli 1.24.0-r15 apk
nginx-mod-http-perl 1.24.0-r7 apk nginx-mod-http-dav-ext 1.24.0-r15 apk
nginx-mod-http-redis2 1.24.0-r7 apk nginx-mod-http-echo 1.24.0-r15 apk
nginx-mod-http-set-misc 1.24.0-r7 apk nginx-mod-http-fancyindex 1.24.0-r15 apk
nginx-mod-http-upload-progress 1.24.0-r7 apk nginx-mod-http-geoip2 1.24.0-r15 apk
nginx-mod-http-xslt-filter 1.24.0-r7 apk nginx-mod-http-headers-more 1.24.0-r15 apk
nginx-mod-mail 1.24.0-r7 apk nginx-mod-http-image-filter 1.24.0-r15 apk
nginx-mod-rtmp 1.24.0-r7 apk nginx-mod-http-perl 1.24.0-r15 apk
nginx-mod-stream 1.24.0-r7 apk nginx-mod-http-redis2 1.24.0-r15 apk
nginx-mod-stream-geoip2 1.24.0-r7 apk nginx-mod-http-set-misc 1.24.0-r15 apk
nginx-vim 1.24.0-r7 apk nginx-mod-http-upload-progress 1.24.0-r15 apk
npth 1.6-r4 apk nginx-mod-http-xslt-filter 1.24.0-r15 apk
oniguruma 6.9.8-r1 apk nginx-mod-mail 1.24.0-r15 apk
openssl 3.1.4-r5 apk nginx-mod-rtmp 1.24.0-r15 apk
p11-kit 0.24.1-r2 apk nginx-mod-stream 1.24.0-r15 apk
packaging 23.2 python nginx-mod-stream-geoip2 1.24.0-r15 apk
parsedatetime 2.6 python nginx-vim 1.24.0-r15 apk
pcre 8.45-r3 apk npth 1.6-r4 apk
pcre2 10.42-r1 apk oniguruma 6.9.9-r0 apk
perl 5.36.2-r0 apk openssl 3.1.4-r5 apk
perl-error 0.17029-r1 apk p11-kit 0.25.3-r0 apk
perl-git 2.40.1-r0 apk packaging 23.2 python
php82 8.2.13-r0 apk parsedatetime 2.6 python
php82-bcmath 8.2.13-r0 apk pcre 8.45-r3 apk
php82-bz2 8.2.13-r0 apk pcre2 10.42-r2 apk
php82-common 8.2.13-r0 apk perl 5.38.2-r0 apk
php82-ctype 8.2.13-r0 apk perl-error 0.17029-r2 apk
php82-curl 8.2.13-r0 apk perl-git 2.43.0-r0 apk
php82-dom 8.2.13-r0 apk php83 8.3.3-r0 apk
php82-exif 8.2.13-r0 apk php83-bcmath 8.3.3-r0 apk
php82-fileinfo 8.2.13-r0 apk php83-bz2 8.3.3-r0 apk
php82-fpm 8.2.13-r0 apk php83-common 8.3.3-r0 apk
php82-ftp 8.2.13-r0 apk php83-ctype 8.3.3-r0 apk
php82-gd 8.2.13-r0 apk php83-curl 8.3.3-r0 apk
php82-gmp 8.2.13-r0 apk php83-dom 8.3.3-r0 apk
php82-iconv 8.2.13-r0 apk php83-exif 8.3.3-r0 apk
php82-imap 8.2.13-r0 apk php83-fileinfo 8.3.3-r0 apk
php82-intl 8.2.13-r0 apk php83-fpm 8.3.3-r0 apk
php82-ldap 8.2.13-r0 apk php83-ftp 8.3.3-r0 apk
php82-mbstring 8.2.13-r0 apk php83-gd 8.3.3-r0 apk
php82-mysqli 8.2.13-r0 apk php83-gmp 8.3.3-r0 apk
php82-mysqlnd 8.2.13-r0 apk php83-iconv 8.3.3-r0 apk
php82-opcache 8.2.13-r0 apk php83-imap 8.3.3-r0 apk
php82-openssl 8.2.13-r0 apk php83-intl 8.3.3-r0 apk
php82-pdo 8.2.13-r0 apk php83-ldap 8.3.3-r0 apk
php82-pdo_mysql 8.2.13-r0 apk php83-mbstring 8.3.3-r0 apk
php82-pdo_odbc 8.2.13-r0 apk php83-mysqli 8.3.3-r0 apk
php82-pdo_pgsql 8.2.13-r0 apk php83-mysqlnd 8.3.3-r0 apk
php82-pdo_sqlite 8.2.13-r0 apk php83-opcache 8.3.3-r0 apk
php82-pear 8.2.13-r0 apk php83-openssl 8.3.3-r0 apk
php82-pecl-apcu 5.1.22-r0 apk php83-pdo 8.3.3-r0 apk
php82-pecl-igbinary 3.2.14-r0 apk php83-pdo_mysql 8.3.3-r0 apk
php82-pecl-mcrypt 1.0.7-r0 apk php83-pdo_odbc 8.3.3-r0 apk
php82-pecl-memcached 3.2.0-r1 apk php83-pdo_pgsql 8.3.3-r0 apk
php82-pecl-msgpack 2.2.0-r0 apk php83-pdo_sqlite 8.3.3-r0 apk
php82-pecl-redis 6.0.2-r0 apk php83-pear 8.3.3-r0 apk
php82-pgsql 8.2.13-r0 apk php83-pecl-apcu 5.1.23-r0 apk
php82-phar 8.2.13-r0 apk php83-pecl-igbinary 3.2.15-r0 apk
php82-posix 8.2.13-r0 apk php83-pecl-mcrypt 1.0.7-r0 apk
php82-session 8.2.13-r0 apk php83-pecl-memcached 3.2.0-r0 apk
php82-simplexml 8.2.13-r0 apk php83-pecl-msgpack 2.2.0-r1 apk
php82-soap 8.2.13-r0 apk php83-pecl-redis 6.0.2-r0 apk
php82-sockets 8.2.13-r0 apk php83-pgsql 8.3.3-r0 apk
php82-sodium 8.2.13-r0 apk php83-phar 8.3.3-r0 apk
php82-sqlite3 8.2.13-r0 apk php83-posix 8.3.3-r0 apk
php82-tokenizer 8.2.13-r0 apk php83-session 8.3.3-r0 apk
php82-xml 8.2.13-r0 apk php83-simplexml 8.3.3-r0 apk
php82-xmlreader 8.2.13-r0 apk php83-soap 8.3.3-r0 apk
php82-xmlwriter 8.2.13-r0 apk php83-sockets 8.3.3-r0 apk
php82-xsl 8.2.13-r0 apk php83-sodium 8.3.3-r0 apk
php82-zip 8.2.13-r0 apk php83-sqlite3 8.3.3-r0 apk
pinentry 1.2.1-r1 apk php83-tokenizer 8.3.3-r0 apk
pip 23.3.2 python php83-xml 8.3.3-r0 apk
pkb-client 1.2 python php83-xmlreader 8.3.3-r0 apk
popt 1.19-r2 apk php83-xmlwriter 8.3.3-r0 apk
portalocker 2.8.2 python php83-xsl 8.3.3-r0 apk
procps-ng 4.0.4-r0 apk php83-zip 8.3.3-r0 apk
protobuf 4.25.2 python pinentry 1.2.1-r1 apk
publicsuffixlist 0.9.4 python pip 24.0 python
pyOpenSSL 24.0.0 python pkb-client 1.2 python
pyRFC3339 1.1 python popt 1.19-r3 apk
pyacmedns 0.4 python portalocker 2.8.2 python
pyasn1 0.5.1 python procps-ng 4.0.4-r0 apk
pyasn1-modules 0.3.0 python protobuf 4.25.3 python
pyc 0.1-r0 apk publicsuffixlist 0.9.4 python
pycparser 2.21 python pyOpenSSL 24.0.0 python
pyotp 2.9.0 python pyRFC3339 1.1 python
pyparsing 3.1.1 python pyacmedns 0.4 python
python-dateutil 2.8.2 python pyasn1 0.5.1 python
python-digitalocean 1.17.0 python pyasn1-modules 0.3.0 python
python-transip 0.6.0 python pyc 3.11.8-r0 apk
python3 3.11.6-r0 apk pycparser 2.21 python
python3-pyc 3.11.6-r0 apk pyotp 2.9.0 python
python3-pycache-pyc0 3.11.6-r0 apk pyparsing 3.1.1 python
pytz 2023.3.post1 python python-dateutil 2.9.0.post0 python
readline 8.2.1-r1 apk python-digitalocean 1.17.0 python
requests 2.31.0 python python-transip 0.6.0 python
requests-file 1.5.1 python python3 3.11.8-r0 apk
requests-mock 1.11.0 python python3-pyc 3.11.8-r0 apk
rsa 4.9 python python3-pycache-pyc0 3.11.8-r0 apk
s3transfer 0.10.0 python pytz 2024.1 python
scanelf 1.3.7-r1 apk readline 8.2.1-r2 apk
setuptools 65.5.0 python requests 2.31.0 python
shadow 4.13-r4 apk requests-file 2.0.0 python
six 1.16.0 python requests-mock 1.11.0 python
skalibs 2.13.1.1-r1 apk rsa 4.9 python
soupsieve 2.5 python s3transfer 0.10.0 python
sqlite-libs 3.41.2-r3 apk scanelf 1.3.7-r2 apk
ssl_client 1.36.1-r5 apk setuptools 65.5.0 python
tiff 4.5.1-r0 apk shadow 4.14.2-r0 apk
tldextract 5.1.1 python six 1.16.0 python
typing-inspect 0.9.0 python skalibs 2.14.0.1-r0 apk
typing_extensions 4.9.0 python soupsieve 2.5 python
tzdata 2023d-r0 apk sqlite-libs 3.44.2-r0 apk
unixodbc 2.3.11-r2 apk ssl_client 1.36.1-r15 apk
uritemplate 4.1.1 python tiff 4.6.0-r0 apk
urllib3 2.0.7 python tldextract 5.1.1 python
utmps-libs 0.1.2.1-r1 apk typing-inspect 0.9.0 python
wheel 0.42.0 python typing_extensions 4.10.0 python
whois 5.5.17-r0 apk tzdata 2024a-r0 apk
xz-libs 5.4.3-r0 apk unixodbc 2.3.12-r0 apk
zlib 1.2.13-r1 apk uritemplate 4.1.1 python
zope.interface 6.1 python urllib3 2.0.7 python
zstd-libs 1.5.5-r4 apk utmps-libs 0.1.2.2-r0 apk
wheel 0.42.0 python
whois 5.5.20-r0 apk
xz-libs 5.4.5-r0 apk
zlib 1.3.1-r0 apk
zope.interface 6.2 python
zstd-libs 1.5.5-r8 apk

View File

@@ -34,7 +34,7 @@ param_env_vars:
- { env_var: "VALIDATION", env_value: "http", desc: "Certbot validation method to use, options are `http` or `dns` (`dns` method also requires `DNSPLUGIN` variable set)." } - { env_var: "VALIDATION", env_value: "http", desc: "Certbot validation method to use, options are `http` or `dns` (`dns` method also requires `DNSPLUGIN` variable set)." }
param_usage_include_vols: true param_usage_include_vols: true
param_volumes: param_volumes:
- { vol_path: "/config", vol_host_path: "/path/to/appdata/config", desc: "All the config files including the webroot reside here." } - { vol_path: "/config", vol_host_path: "/path/to/{{ project_name }}/config", desc: "Persistent config files" }
param_usage_include_ports: true param_usage_include_ports: true
param_ports: param_ports:
- { external_port: "443", internal_port: "443", port_desc: "Https port" } - { external_port: "443", internal_port: "443", port_desc: "Https port" }
@@ -58,7 +58,7 @@ opt_param_env_vars:
- { env_var: "STAGING", env_value: "false", desc: "Set to `true` to retrieve certs in staging mode. Rate limits will be much higher, but the resulting cert will not pass the browser's security test. Only to be used for testing purposes." } - { env_var: "STAGING", env_value: "false", desc: "Set to `true` to retrieve certs in staging mode. Rate limits will be much higher, but the resulting cert will not pass the browser's security test. Only to be used for testing purposes." }
opt_param_usage_include_vols: false opt_param_usage_include_vols: false
opt_param_volumes: opt_param_volumes:
- { vol_path: "/config", vol_host_path: "/path/to/appdata/config", desc: "Configuration files." } - { vol_path: "/config", vol_host_path: "/path/to/{{ project_name }}/config", desc: "Persistent config files" }
opt_param_usage_include_ports: true opt_param_usage_include_ports: true
opt_param_ports: opt_param_ports:
- { external_port: "80", internal_port: "80", port_desc: "Http port (required for http validation and http -> https redirect)" } - { external_port: "80", internal_port: "80", port_desc: "Http port (required for http validation and http -> https redirect)" }
@@ -168,6 +168,7 @@ app_setup_block: |
# changelog # changelog
changelogs: changelogs:
- { 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." }
- { date: "30.11.23:", desc: "[Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) site-confs/default.conf - Fix index.php being downloaded on 404." } - { date: "30.11.23:", desc: "[Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) site-confs/default.conf - Fix index.php being downloaded on 404." }

View File

@@ -1,2 +1,8 @@
# min hour day month weekday command # min hour day month weekday command
*/15 * * * * run-parts /etc/periodic/15min
0 * * * * run-parts /etc/periodic/hourly
0 2 * * * run-parts /etc/periodic/daily
0 3 * * 6 run-parts /etc/periodic/weekly
0 5 1 * * run-parts /etc/periodic/monthly
8 2 * * * /app/le-renew.sh >> /config/log/letsencrypt/letsencrypt.log 2>&1 8 2 * * * /app/le-renew.sh >> /config/log/letsencrypt/letsencrypt.log 2>&1