Merge branch 'master' into certbot-revamp-config-file

This commit is contained in:
Eric Nemchik 2023-05-31 11:33:45 -05:00 committed by GitHub
commit d7a8d6cc6a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 479 additions and 741 deletions

View File

@ -53,7 +53,6 @@ body:
options: options:
- x86-64 - x86-64
- arm64 - arm64
- armhf
validations: validations:
required: true required: true
- type: textarea - type: textarea

View File

@ -1,6 +1,6 @@
# syntax=docker/dockerfile:1 # syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.17 FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.18
# set version label # set version label
ARG BUILD_DATE ARG BUILD_DATE
@ -24,7 +24,7 @@ RUN \
openssl-dev \ openssl-dev \
python3-dev && \ python3-dev && \
echo "**** install runtime packages ****" && \ echo "**** install runtime packages ****" && \
apk add --no-cache --upgrade \ apk add --no-cache \
fail2ban \ fail2ban \
gnupg \ gnupg \
memcached \ memcached \
@ -45,55 +45,48 @@ RUN \
nginx-mod-stream \ nginx-mod-stream \
nginx-mod-stream-geoip2 \ nginx-mod-stream-geoip2 \
nginx-vim \ nginx-vim \
php81-bcmath \ php82-bcmath \
php81-bz2 \ php82-bz2 \
php81-ctype \ php82-dom \
php81-curl \ php82-exif \
php81-dom \ php82-ftp \
php81-exif \ php82-gd \
php81-ftp \ php82-gmp \
php81-gd \ php82-imap \
php81-gmp \ php82-intl \
php81-iconv \ php82-ldap \
php81-imap \ php82-mysqli \
php81-intl \ php82-mysqlnd \
php81-ldap \ php82-opcache \
php81-mysqli \ php82-pdo_mysql \
php81-mysqlnd \ php82-pdo_odbc \
php81-opcache \ php82-pdo_pgsql \
php81-pdo_mysql \ php82-pdo_sqlite \
php81-pdo_odbc \ php82-pear \
php81-pdo_pgsql \ php82-pecl-apcu \
php81-pdo_sqlite \ php82-pecl-memcached \
php81-pear \ php82-pecl-redis \
php81-pecl-apcu \ php82-pgsql \
php81-pecl-mailparse \ php82-posix \
php81-pecl-memcached \ php82-soap \
php81-pecl-redis \ php82-sockets \
php81-pgsql \ php82-sodium \
php81-phar \ php82-sqlite3 \
php81-posix \ php82-tokenizer \
php81-soap \ php82-xmlreader \
php81-sockets \ php82-xsl \
php81-sodium \
php81-sqlite3 \
php81-tokenizer \
php81-xmlreader \
php81-xsl \
php81-zip \
whois && \ whois && \
apk add --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing \ apk add --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing \
php81-pecl-mcrypt \ php82-pecl-mcrypt && \
php81-pecl-xmlrpc && \
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'); \
fi && \ fi && \
python3 -m ensurepip && \ python3 -m venv /lsiopy && \
pip3 install -U --no-cache-dir \ pip install -U --no-cache-dir \
pip \ pip \
wheel && \ wheel && \
pip3 install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/alpine-3.17/ \ pip install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/alpine-3.18/ \
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.17 FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.18
# set version label # set version label
ARG BUILD_DATE ARG BUILD_DATE
@ -24,7 +24,7 @@ RUN \
openssl-dev \ openssl-dev \
python3-dev && \ python3-dev && \
echo "**** install runtime packages ****" && \ echo "**** install runtime packages ****" && \
apk add --no-cache --upgrade \ apk add --no-cache \
fail2ban \ fail2ban \
gnupg \ gnupg \
memcached \ memcached \
@ -45,55 +45,48 @@ RUN \
nginx-mod-stream \ nginx-mod-stream \
nginx-mod-stream-geoip2 \ nginx-mod-stream-geoip2 \
nginx-vim \ nginx-vim \
php81-bcmath \ php82-bcmath \
php81-bz2 \ php82-bz2 \
php81-ctype \ php82-dom \
php81-curl \ php82-exif \
php81-dom \ php82-ftp \
php81-exif \ php82-gd \
php81-ftp \ php82-gmp \
php81-gd \ php82-imap \
php81-gmp \ php82-intl \
php81-iconv \ php82-ldap \
php81-imap \ php82-mysqli \
php81-intl \ php82-mysqlnd \
php81-ldap \ php82-opcache \
php81-mysqli \ php82-pdo_mysql \
php81-mysqlnd \ php82-pdo_odbc \
php81-opcache \ php82-pdo_pgsql \
php81-pdo_mysql \ php82-pdo_sqlite \
php81-pdo_odbc \ php82-pear \
php81-pdo_pgsql \ php82-pecl-apcu \
php81-pdo_sqlite \ php82-pecl-memcached \
php81-pear \ php82-pecl-redis \
php81-pecl-apcu \ php82-pgsql \
php81-pecl-mailparse \ php82-posix \
php81-pecl-memcached \ php82-soap \
php81-pecl-redis \ php82-sockets \
php81-pgsql \ php82-sodium \
php81-phar \ php82-sqlite3 \
php81-posix \ php82-tokenizer \
php81-soap \ php82-xmlreader \
php81-sockets \ php82-xsl \
php81-sodium \
php81-sqlite3 \
php81-tokenizer \
php81-xmlreader \
php81-xsl \
php81-zip \
whois && \ whois && \
apk add --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing \ apk add --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing \
php81-pecl-mcrypt \ php82-pecl-mcrypt && \
php81-pecl-xmlrpc && \
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'); \
fi && \ fi && \
python3 -m ensurepip && \ python3 -m venv /lsiopy && \
pip3 install -U --no-cache-dir \ pip install -U --no-cache-dir \
pip \ pip \
wheel && \ wheel && \
pip3 install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/alpine-3.17/ \ pip install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/alpine-3.18/ \
certbot==${CERTBOT_VERSION} \ certbot==${CERTBOT_VERSION} \
certbot-dns-acmedns \ certbot-dns-acmedns \
certbot-dns-aliyun \ certbot-dns-aliyun \

View File

@ -1,186 +0,0 @@
# syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm32v7-3.17
# set version label
ARG BUILD_DATE
ARG VERSION
ARG CERTBOT_VERSION
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
LABEL maintainer="nemchik"
# environment settings
ENV DHLEVEL=2048 ONLY_SUBDOMAINS=false AWS_CONFIG_FILE=/config/dns-conf/route53.ini
ENV S6_BEHAVIOUR_IF_STAGE2_FAILS=2
RUN \
echo "**** install build packages ****" && \
apk add --no-cache --virtual=build-dependencies \
build-base \
cargo \
libffi-dev \
libxml2-dev \
libxslt-dev \
openssl-dev \
python3-dev && \
echo "**** install runtime packages ****" && \
apk add --no-cache --upgrade \
fail2ban \
gnupg \
memcached \
nginx-mod-http-brotli \
nginx-mod-http-dav-ext \
nginx-mod-http-echo \
nginx-mod-http-fancyindex \
nginx-mod-http-geoip2 \
nginx-mod-http-headers-more \
nginx-mod-http-image-filter \
nginx-mod-http-perl \
nginx-mod-http-redis2 \
nginx-mod-http-set-misc \
nginx-mod-http-upload-progress \
nginx-mod-http-xslt-filter \
nginx-mod-mail \
nginx-mod-rtmp \
nginx-mod-stream \
nginx-mod-stream-geoip2 \
nginx-vim \
php81-bcmath \
php81-bz2 \
php81-ctype \
php81-curl \
php81-dom \
php81-exif \
php81-ftp \
php81-gd \
php81-gmp \
php81-iconv \
php81-imap \
php81-intl \
php81-ldap \
php81-mysqli \
php81-mysqlnd \
php81-opcache \
php81-pdo_mysql \
php81-pdo_odbc \
php81-pdo_pgsql \
php81-pdo_sqlite \
php81-pear \
php81-pecl-apcu \
php81-pecl-mailparse \
php81-pecl-memcached \
php81-pecl-redis \
php81-pgsql \
php81-phar \
php81-posix \
php81-soap \
php81-sockets \
php81-sodium \
php81-sqlite3 \
php81-tokenizer \
php81-xmlreader \
php81-xsl \
php81-zip \
whois && \
apk add --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing \
php81-pecl-mcrypt \
php81-pecl-xmlrpc && \
echo "**** install certbot plugins ****" && \
if [ -z ${CERTBOT_VERSION+x} ]; then \
CERTBOT_VERSION=$(curl -sL https://pypi.python.org/pypi/certbot/json |jq -r '. | .info.version'); \
fi && \
python3 -m ensurepip && \
pip3 install -U --no-cache-dir \
pip \
wheel && \
pip3 install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/alpine-3.17/ \
certbot==${CERTBOT_VERSION} \
certbot-dns-acmedns \
certbot-dns-aliyun \
certbot-dns-azure \
certbot-dns-cloudflare \
certbot-dns-cpanel \
certbot-dns-desec \
certbot-dns-digitalocean \
certbot-dns-directadmin \
certbot-dns-dnsimple \
certbot-dns-dnsmadeeasy \
certbot-dns-dnspod \
certbot-dns-do \
certbot-dns-domeneshop \
certbot-dns-duckdns \
certbot-dns-dynu \
certbot-dns-gehirn \
certbot-dns-godaddy \
certbot-dns-google \
certbot-dns-google-domains \
certbot-dns-he \
certbot-dns-hetzner \
certbot-dns-infomaniak \
certbot-dns-inwx \
certbot-dns-ionos \
certbot-dns-linode \
certbot-dns-loopia \
certbot-dns-luadns \
certbot-dns-netcup \
certbot-dns-njalla \
certbot-dns-nsone \
certbot-dns-ovh \
certbot-dns-porkbun \
certbot-dns-rfc2136 \
certbot-dns-route53 \
certbot-dns-sakuracloud \
certbot-dns-standalone \
certbot-dns-transip \
certbot-dns-vultr \
certbot-plugin-gandi \
cryptography \
future \
requests && \
echo "**** enable OCSP stapling from base ****" && \
sed -i \
's|#ssl_stapling on;|ssl_stapling on;|' \
/defaults/nginx/ssl.conf.sample && \
sed -i \
's|#ssl_stapling_verify on;|ssl_stapling_verify on;|' \
/defaults/nginx/ssl.conf.sample && \
sed -i \
's|#ssl_trusted_certificate /config/keys/cert.crt;|ssl_trusted_certificate /config/keys/cert.crt;|' \
/defaults/nginx/ssl.conf.sample && \
echo "**** correct ip6tables legacy issue ****" && \
rm \
/sbin/ip6tables && \
ln -s \
/sbin/ip6tables-nft /sbin/ip6tables && \
echo "**** remove unnecessary fail2ban filters ****" && \
rm \
/etc/fail2ban/jail.d/alpine-ssh.conf && \
echo "**** copy fail2ban default action and filter to /defaults ****" && \
mkdir -p /defaults/fail2ban && \
mv /etc/fail2ban/action.d /defaults/fail2ban/ && \
mv /etc/fail2ban/filter.d /defaults/fail2ban/ && \
echo "**** define allowipv6 to silence warning ****" && \
sed -i 's/#allowipv6 = auto/allowipv6 = auto/g' /etc/fail2ban/fail2ban.conf && \
echo "**** copy proxy confs to /defaults ****" && \
mkdir -p \
/defaults/nginx/proxy-confs && \
curl -o \
/tmp/proxy-confs.tar.gz -L \
"https://github.com/linuxserver/reverse-proxy-confs/tarball/master" && \
tar xf \
/tmp/proxy-confs.tar.gz -C \
/defaults/nginx/proxy-confs --strip-components=1 --exclude=linux*/.editorconfig --exclude=linux*/.gitattributes --exclude=linux*/.github --exclude=linux*/.gitignore --exclude=linux*/LICENSE && \
echo "**** cleanup ****" && \
apk del --purge \
build-dependencies && \
rm -rf \
/tmp/* \
$HOME/.cache \
$HOME/.cargo
# copy local files
COPY root/ /
# ports and volumes
EXPOSE 80 443
VOLUME /config

169
Jenkinsfile vendored
View File

@ -40,7 +40,12 @@ pipeline {
// Setup all the basic environment variables needed for the build // Setup all the basic environment variables needed for the build
stage("Set ENV Variables base"){ stage("Set ENV Variables base"){
steps{ steps{
sh '''docker pull quay.io/skopeo/stable:v1 || : ''' sh '''#! /bin/bash
containers=$(docker ps -aq)
if [[ -n "${containers}" ]]; then
docker stop ${containers}
fi
docker system prune -af --volumes || : '''
script{ script{
env.EXIT_STATUS = '' env.EXIT_STATUS = ''
env.LS_RELEASE = sh( env.LS_RELEASE = sh(
@ -158,7 +163,7 @@ pipeline {
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/' + env.CONTAINER_NAME env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/' + env.CONTAINER_NAME
env.QUAYIMAGE = 'quay.io/linuxserver.io/' + env.CONTAINER_NAME env.QUAYIMAGE = 'quay.io/linuxserver.io/' + env.CONTAINER_NAME
if (env.MULTIARCH == 'true') { if (env.MULTIARCH == 'true') {
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
} else { } else {
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
} }
@ -181,7 +186,7 @@ pipeline {
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lsiodev-' + env.CONTAINER_NAME env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lsiodev-' + env.CONTAINER_NAME
env.QUAYIMAGE = 'quay.io/linuxserver.io/lsiodev-' + env.CONTAINER_NAME env.QUAYIMAGE = 'quay.io/linuxserver.io/lsiodev-' + env.CONTAINER_NAME
if (env.MULTIARCH == 'true') { if (env.MULTIARCH == 'true') {
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
} else { } else {
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
} }
@ -204,12 +209,12 @@ pipeline {
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME
env.QUAYIMAGE = 'quay.io/linuxserver.io/lspipepr-' + env.CONTAINER_NAME env.QUAYIMAGE = 'quay.io/linuxserver.io/lspipepr-' + env.CONTAINER_NAME
if (env.MULTIARCH == 'true') { if (env.MULTIARCH == 'true') {
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
} else { } else {
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
} }
env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
env.META_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST env.META_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN
env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/pull/' + env.PULL_REQUEST env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/pull/' + env.PULL_REQUEST
env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.PR_DOCKERHUB_IMAGE + '/tags/' env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.PR_DOCKERHUB_IMAGE + '/tags/'
@ -337,6 +342,8 @@ pipeline {
git clone https://github.com/linuxserver/templates.git ${TEMPDIR}/unraid/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 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 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 fi
if [[ ("${BRANCH_NAME}" == "master") || ("${BRANCH_NAME}" == "main") ]] && [[ (! -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}" == "master") || ("${BRANCH_NAME}" == "main") ]] && [[ (! -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/ cd ${TEMPDIR}/unraid/templates/
@ -428,8 +435,7 @@ pipeline {
} }
steps{ steps{
sh '''#! /bin/bash sh '''#! /bin/bash
set -e PACKAGE_UUID=$(curl -X GET -H "Authorization: Bearer ${SCARF_TOKEN}" https://scarf.sh/api/v1/organizations/linuxserver-ci/packages | jq -r '.[] | select(.name=="linuxserver/swag") | .uuid' || :)
PACKAGE_UUID=$(curl -X GET -H "Authorization: Bearer ${SCARF_TOKEN}" https://scarf.sh/api/v1/organizations/linuxserver-ci/packages | jq -r '.[] | select(.name=="linuxserver/swag") | .uuid')
if [ -z "${PACKAGE_UUID}" ]; then if [ -z "${PACKAGE_UUID}" ]; then
echo "Adding package to Scarf.sh" echo "Adding package to Scarf.sh"
curl -sX POST https://scarf.sh/api/v1/organizations/linuxserver-ci/packages \ curl -sX POST https://scarf.sh/api/v1/organizations/linuxserver-ci/packages \
@ -509,41 +515,6 @@ pipeline {
--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} ."
} }
} }
stage('Build ARMHF') {
agent {
label 'ARMHF'
}
steps {
echo "Running on node: ${NODE_NAME}"
echo 'Logging into Github'
sh '''#! /bin/bash
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
'''
sh "sed -r -i 's|(^FROM .*)|\\1\\n\\nENV LSIO_FIRST_PARTY=true|g' Dockerfile.armhf"
sh "docker buildx build \
--label \"org.opencontainers.image.created=${GITHUB_DATE}\" \
--label \"org.opencontainers.image.authors=linuxserver.io\" \
--label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-swag/packages\" \
--label \"org.opencontainers.image.documentation=https://docs.linuxserver.io/images/docker-swag\" \
--label \"org.opencontainers.image.source=https://github.com/linuxserver/docker-swag\" \
--label \"org.opencontainers.image.version=${EXT_RELEASE_CLEAN}-ls${LS_TAG_NUMBER}\" \
--label \"org.opencontainers.image.revision=${COMMIT_SHA}\" \
--label \"org.opencontainers.image.vendor=linuxserver.io\" \
--label \"org.opencontainers.image.licenses=GPL-3.0-only\" \
--label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \
--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.\" \
--no-cache --pull -f Dockerfile.armhf -t ${IMAGE}:arm32v7-${META_TAG} --platform=linux/arm/v7 \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
sh "docker tag ${IMAGE}:arm32v7-${META_TAG} ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}"
retry(5) {
sh "docker push ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}"
}
sh '''docker rmi \
${IMAGE}:arm32v7-${META_TAG} \
ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} || :'''
}
}
stage('Build ARM64') { stage('Build ARM64') {
agent { agent {
label 'ARM64' label 'ARM64'
@ -574,9 +545,12 @@ pipeline {
retry(5) { retry(5) {
sh "docker push ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}" sh "docker push ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}"
} }
sh '''docker rmi \ sh '''#! /bin/bash
${IMAGE}:arm64v8-${META_TAG} \ containers=$(docker ps -aq)
ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || :''' if [[ -n "${containers}" ]]; then
docker stop ${containers}
fi
docker system prune -af --volumes || : '''
} }
} }
} }
@ -637,13 +611,6 @@ pipeline {
environment name: 'EXIT_STATUS', value: '' environment name: 'EXIT_STATUS', value: ''
} }
steps { steps {
sh '''#! /bin/bash
echo "Packages were updated. Cleaning up the image and exiting."
if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then
docker rmi ${IMAGE}:amd64-${META_TAG}
else
docker rmi ${IMAGE}:${META_TAG}
fi'''
script{ script{
env.EXIT_STATUS = 'ABORTED' env.EXIT_STATUS = 'ABORTED'
} }
@ -661,13 +628,6 @@ pipeline {
} }
} }
steps { steps {
sh '''#! /bin/bash
echo "There are no package updates. Cleaning up the image and exiting."
if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then
docker rmi ${IMAGE}:amd64-${META_TAG}
else
docker rmi ${IMAGE}:${META_TAG}
fi'''
script{ script{
env.EXIT_STATUS = 'ABORTED' env.EXIT_STATUS = 'ABORTED'
} }
@ -695,9 +655,7 @@ pipeline {
set -e set -e
docker pull ghcr.io/linuxserver/ci:latest docker pull ghcr.io/linuxserver/ci:latest
if [ "${MULTIARCH}" == "true" ]; then if [ "${MULTIARCH}" == "true" ]; then
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG} docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
fi fi
docker run --rm \ docker run --rm \
@ -768,17 +726,6 @@ pipeline {
done done
''' '''
} }
sh '''#! /bin/bash
for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
docker rmi \
${DELETEIMAGE}:${META_TAG} \
${DELETEIMAGE}:${EXT_RELEASE_TAG} \
${DELETEIMAGE}:latest || :
if [ -n "${SEMVER}" ]; then
docker rmi ${DELETEIMAGE}:${SEMVER} || :
fi
done
'''
} }
} }
} }
@ -811,8 +758,6 @@ pipeline {
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
if [ "${CI}" == "false" ]; then if [ "${CI}" == "false" ]; then
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG} docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
fi fi
@ -820,49 +765,47 @@ pipeline {
docker tag ${IMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} docker tag ${IMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG}
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-latest docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-latest
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
docker tag ${IMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG}
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-latest
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-latest docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-latest
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then if [ -n "${SEMVER}" ]; then
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${SEMVER} docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${SEMVER}
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${SEMVER}
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${SEMVER} docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
fi fi
docker push ${MANIFESTIMAGE}:amd64-${META_TAG} docker push ${MANIFESTIMAGE}:amd64-${META_TAG}
docker push ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} docker push ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
docker push ${MANIFESTIMAGE}:amd64-latest docker push ${MANIFESTIMAGE}:amd64-latest
docker push ${MANIFESTIMAGE}:arm32v7-${META_TAG}
docker push ${MANIFESTIMAGE}:arm32v7-latest
docker push ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG} docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker push ${MANIFESTIMAGE}:arm64v8-latest docker push ${MANIFESTIMAGE}:arm64v8-latest
docker push ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} docker push ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then if [ -n "${SEMVER}" ]; then
docker push ${MANIFESTIMAGE}:amd64-${SEMVER} docker push ${MANIFESTIMAGE}:amd64-${SEMVER}
docker push ${MANIFESTIMAGE}:arm32v7-${SEMVER}
docker push ${MANIFESTIMAGE}:arm64v8-${SEMVER} docker push ${MANIFESTIMAGE}:arm64v8-${SEMVER}
fi fi
docker manifest push --purge ${MANIFESTIMAGE}:latest || : docker manifest push --purge ${MANIFESTIMAGE}:latest || :
docker manifest create ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm32v7-latest ${MANIFESTIMAGE}:arm64v8-latest docker manifest create ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm64v8-latest
docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm32v7-latest --os linux --arch arm
docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm64v8-latest --os linux --arch arm64 --variant v8 docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm64v8-latest --os linux --arch arm64 --variant v8
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} || : docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} || :
docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} --os linux --arch arm
docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8 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 push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} || :
docker manifest create ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${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}:arm32v7-${EXT_RELEASE_TAG} --os linux --arch arm
docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} --os linux --arch arm64 --variant v8 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 manifest push --purge ${MANIFESTIMAGE}:${SEMVER} || :
docker manifest create ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm32v7-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} docker manifest create ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm32v7-${SEMVER} --os linux --arch arm
docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} --os linux --arch arm64 --variant v8 docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} --os linux --arch arm64 --variant v8
fi 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}:latest
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG}
docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG}
@ -872,29 +815,6 @@ pipeline {
done done
''' '''
} }
sh '''#! /bin/bash
for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
docker rmi \
${DELETEIMAGE}:amd64-${META_TAG} \
${DELETEIMAGE}:amd64-latest \
${DELETEIMAGE}:amd64-${EXT_RELEASE_TAG} \
${DELETEIMAGE}:arm32v7-${META_TAG} \
${DELETEIMAGE}:arm32v7-latest \
${DELETEIMAGE}:arm32v7-${EXT_RELEASE_TAG} \
${DELETEIMAGE}:arm64v8-${META_TAG} \
${DELETEIMAGE}:arm64v8-latest \
${DELETEIMAGE}:arm64v8-${EXT_RELEASE_TAG} || :
if [ -n "${SEMVER}" ]; then
docker rmi \
${DELETEIMAGE}:amd64-${SEMVER} \
${DELETEIMAGE}:arm32v7-${SEMVER} \
${DELETEIMAGE}:arm64v8-${SEMVER} || :
fi
done
docker rmi \
ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} \
ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || :
'''
} }
} }
} }
@ -965,7 +885,6 @@ pipeline {
stage('Pull Request Comment') { stage('Pull Request Comment') {
when { when {
not {environment name: 'CHANGE_ID', value: ''} not {environment name: 'CHANGE_ID', value: ''}
environment name: 'CI', value: 'true'
environment name: 'EXIT_STATUS', value: '' environment name: 'EXIT_STATUS', value: ''
} }
steps { steps {
@ -1019,6 +938,7 @@ pipeline {
echo "$escaped_table" echo "$escaped_table"
} }
if [[ "${CI}" = "true" ]]; then
# Retrieve JSON data from URL # Retrieve JSON data from URL
data=$(get_json "$CI_JSON_URL") data=$(get_json "$CI_JSON_URL")
# Create table from JSON data # Create table from JSON data
@ -1028,7 +948,14 @@ pipeline {
curl -X POST -H "Authorization: token $GITHUB_TOKEN" \ curl -X POST -H "Authorization: token $GITHUB_TOKEN" \
-H "Accept: application/vnd.github.v3+json" \ -H "Accept: application/vnd.github.v3+json" \
"https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \ "https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \
-d "{\\"body\\": \\"I am a bot, here are the test results for this PR: \\n${CI_URL}\\n${SHELLCHECK_URL}\\n${table}\\"}"''' -d "{\\"body\\": \\"I am a bot, here are the test results for this PR: \\n${CI_URL}\\n${SHELLCHECK_URL}\\n${table}\\"}"
else
curl -X POST -H "Authorization: token $GITHUB_TOKEN" \
-H "Accept: application/vnd.github.v3+json" \
"https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \
-d "{\\"body\\": \\"I am a bot, here is the pushed image/manifest for this PR: \\n\\n\\`${GITHUBIMAGE}:${META_TAG}\\`\\"}"
fi
'''
} }
} }
@ -1055,6 +982,14 @@ pipeline {
} }
} }
cleanup { cleanup {
sh '''#! /bin/bash
echo "Performing docker system prune!!"
containers=$(docker ps -aq)
if [[ -n "${containers}" ]]; then
docker stop ${containers}
fi
docker system prune -af --volumes || :
'''
cleanWs() cleanWs()
} }
} }

View File

@ -56,7 +56,7 @@ The architectures supported by this image are:
| :----: | :----: | ---- | | :----: | :----: | ---- |
| x86-64 | ✅ | amd64-\<version tag\> | | x86-64 | ✅ | amd64-\<version tag\> |
| arm64 | ✅ | arm64v8-\<version tag\> | | arm64 | ✅ | arm64v8-\<version tag\> |
| armhf | ✅ | arm32v7-\<version tag\> | | armhf | ❌ | |
## Application Setup ## Application Setup
@ -336,6 +336,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
## Versions ## Versions
* **25.05.23:** - Rebase to Alpine 3.18, deprecate armhf.
* **27.04.23:** - [Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) authelia-location.conf, authelia-server.conf, authentik-location.conf, authentik-server.conf - Simplify auth configs and fix Set-Cookie header bug. * **27.04.23:** - [Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) authelia-location.conf, authelia-server.conf, authentik-location.conf, authentik-server.conf - Simplify auth configs and fix Set-Cookie header bug.
* **13.04.23:** - [Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) nginx.conf, authelia-location.conf, authentik-location.conf, and site-confs/default.conf - Move ssl.conf include to default.conf. Remove Authorization headers in authelia. Sort proxy_set_header in authelia and authentik. * **13.04.23:** - [Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) nginx.conf, authelia-location.conf, authentik-location.conf, and site-confs/default.conf - Move ssl.conf include to default.conf. Remove Authorization headers in authelia. Sort proxy_set_header in authelia and authentik.
* **25.03.23:** - Fix renewal post hook. * **25.03.23:** - Fix renewal post hook.

View File

@ -6,6 +6,7 @@ external_type: pip_version
release_type: stable release_type: stable
release_tag: latest release_tag: latest
ls_branch: master ls_branch: master
build_armhf: false
repo_vars: repo_vars:
- EXT_PIP = 'certbot' - EXT_PIP = 'certbot'
- BUILD_VERSION_ARG = 'CERTBOT_VERSION' - BUILD_VERSION_ARG = 'CERTBOT_VERSION'

View File

@ -3,35 +3,35 @@ ConfigArgParse 1.5.3 python
PyJWT 2.7.0 python PyJWT 2.7.0 python
PyYAML 6.0 python PyYAML 6.0 python
acme 2.6.0 python acme 2.6.0 python
alpine-baselayout 3.4.0-r0 apk alpine-baselayout 3.4.3-r1 apk
alpine-baselayout-data 3.4.0-r0 apk alpine-baselayout-data 3.4.3-r1 apk
alpine-keys 2.4-r1 apk alpine-keys 2.4-r1 apk
alpine-release 3.17.3-r0 apk alpine-release 3.18.0-r0 apk
aom-libs 3.5.0-r0 apk aom-libs 3.6.1-r0 apk
apache2-utils 2.4.57-r0 apk apache2-utils 2.4.57-r2 apk
apk-tools 2.12.10-r1 apk apk-tools 2.14.0-r2 apk
apr 1.7.2-r0 apk apr 1.7.4-r0 apk
apr-util 1.6.3-r0 apk apr-util 1.6.3-r1 apk
argon2-libs 20190702-r2 apk argon2-libs 20190702-r4 apk
attrs 23.1.0 python attrs 23.1.0 python
azure-common 1.1.28 python azure-common 1.1.28 python
azure-core 1.26.4 python azure-core 1.26.4 python
azure-identity 1.12.0 python azure-identity 1.13.0 python
azure-mgmt-core 1.4.0 python azure-mgmt-core 1.4.0 python
azure-mgmt-dns 8.0.0 python azure-mgmt-dns 8.0.0 python
bash 5.2.15-r0 apk bash 5.2.15-r5 apk
beautifulsoup4 4.12.2 python beautifulsoup4 4.12.2 python
boto3 1.26.131 python boto3 1.26.143 python
botocore 1.29.131 python botocore 1.29.143 python
brotli-libs 1.0.9-r9 apk brotli-libs 1.0.9-r14 apk
bs4 0.0.1 python bs4 0.0.1 python
busybox 1.35.0 binary busybox 1.36.0 binary
busybox 1.35.0-r29 apk busybox 1.36.0-r9 apk
busybox-binsh 1.35.0-r29 apk busybox-binsh 1.36.0-r9 apk
c-client 2007f-r14 apk c-client 2007f-r15 apk
ca-certificates 20230506-r0 apk ca-certificates 20230506-r0 apk
ca-certificates-bundle 20220614-r4 apk ca-certificates-bundle 20230506-r0 apk
cachetools 5.3.0 python cachetools 5.3.1 python
certbot 2.6.0 python certbot 2.6.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
@ -60,7 +60,7 @@ certbot-dns-ionos 2022.11.24 python
certbot-dns-linode 2.6.0 python certbot-dns-linode 2.6.0 python
certbot-dns-loopia 1.0.1 python certbot-dns-loopia 1.0.1 python
certbot-dns-luadns 2.6.0 python certbot-dns-luadns 2.6.0 python
certbot-dns-netcup 1.2.0 python certbot-dns-netcup 1.3.0 python
certbot-dns-njalla 1.0.0 python certbot-dns-njalla 1.0.0 python
certbot-dns-nsone 2.6.0 python certbot-dns-nsone 2.6.0 python
certbot-dns-ovh 2.6.0 python certbot-dns-ovh 2.6.0 python
@ -70,16 +70,16 @@ certbot-dns-route53 2.6.0 python
certbot-dns-sakuracloud 2.6.0 python certbot-dns-sakuracloud 2.6.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.0.3 python certbot-dns-vultr 1.1.0 python
certbot-plugin-gandi 1.4.3 python certbot-plugin-gandi 1.4.3 python
certifi 2023.5.7 python certifi 2023.5.7 python
cffi 1.15.1 python cffi 1.15.1 python
charset-normalizer 3.1.0 python charset-normalizer 3.1.0 python
cloudflare 2.11.1 python cloudflare 2.11.6 python
configobj 5.0.8 python configobj 5.0.8 python
coreutils 9.1-r0 apk coreutils 9.3-r1 apk
cryptography 40.0.2 python cryptography 41.0.0 python
curl 8.0.1-r0 apk curl 8.1.1-r1 apk
dataclasses-json 0.5.7 python dataclasses-json 0.5.7 python
distro 1.8.0 python distro 1.8.0 python
dns-lexicon 3.11.7 python dns-lexicon 3.11.7 python
@ -87,253 +87,257 @@ dnslib 0.9.23 python
dnspython 2.3.0 python dnspython 2.3.0 python
domeneshop 0.4.3 python domeneshop 0.4.3 python
fail2ban 1.0.2 python fail2ban 1.0.2 python
fail2ban 1.0.2-r0 apk fail2ban 1.0.2-r2 apk
fail2ban-pyc 1.0.2-r2 apk
filelock 3.12.0 python filelock 3.12.0 python
fontconfig 2.14.1-r0 apk fontconfig 2.14.2-r3 apk
freetype 2.12.1-r0 apk freetype 2.13.0-r5 apk
future 0.18.3 python future 0.18.3 python
gdbm 1.23-r0 apk gdbm 1.23-r1 apk
git 2.38.5-r0 apk git 2.40.1-r0 apk
git-perl 2.38.5-r0 apk git-perl 2.40.1-r0 apk
gmp 6.2.1-r2 apk gmp 6.2.1-r3 apk
gnupg 2.2.40-r0 apk gnupg 2.4.1-r1 apk
gnupg-dirmngr 2.2.40-r0 apk gnupg-dirmngr 2.4.1-r1 apk
gnupg-gpgconf 2.2.40-r0 apk gnupg-gpgconf 2.4.1-r1 apk
gnupg-utils 2.2.40-r0 apk gnupg-keyboxd 2.4.1-r1 apk
gnupg-wks-client 2.2.40-r0 apk gnupg-utils 2.4.1-r1 apk
gnutls 3.7.8-r3 apk gnupg-wks-client 2.4.1-r1 apk
gnutls 3.8.0-r2 apk
google-api-core 2.11.0 python google-api-core 2.11.0 python
google-api-python-client 2.86.0 python google-api-python-client 2.88.0 python
google-auth 2.17.3 python google-auth 2.19.0 python
google-auth-httplib2 0.1.0 python google-auth-httplib2 0.1.0 python
googleapis-common-protos 1.59.0 python googleapis-common-protos 1.59.0 python
gpg 2.2.40-r0 apk gpg 2.4.1-r1 apk
gpg-agent 2.2.40-r0 apk gpg-agent 2.4.1-r1 apk
gpg-wks-server 2.2.40-r0 apk gpg-wks-server 2.4.1-r1 apk
gpgsm 2.2.40-r0 apk gpgsm 2.4.1-r1 apk
gpgv 2.2.40-r0 apk gpgv 2.4.1-r1 apk
httplib2 0.22.0 python httplib2 0.22.0 python
icu-data-en 72.1-r1 apk icu-data-en 73.1-r1 apk
icu-libs 72.1-r1 apk icu-libs 73.1-r1 apk
idna 3.4 python idna 3.4 python
importlib-metadata 6.6.0 python importlib-metadata 6.6.0 python
ip6tables 1.8.8-r2 apk ip6tables 1.8.9-r2 apk
iptables 1.8.8-r2 apk iptables 1.8.9-r2 apk
isodate 0.6.1 python isodate 0.6.1 python
jmespath 1.0.1 python jmespath 1.0.1 python
josepy 1.13.0 python josepy 1.13.0 python
jq 1.6-r2 apk jq 1.6-r3 apk
jsonlines 3.1.0 python jsonlines 3.1.0 python
jsonpickle 3.0.1 python jsonpickle 3.0.1 python
libacl 2.3.1-r1 apk libacl 2.3.1-r3 apk
libassuan 2.5.5-r1 apk libassuan 2.5.5-r2 apk
libattr 2.5.1-r2 apk libattr 2.5.1-r4 apk
libavif 0.11.1-r0 apk libavif 0.11.1-r2 apk
libbsd 0.11.7-r0 apk libbsd 0.11.7-r1 apk
libbz2 1.0.8-r4 apk libbz2 1.0.8-r5 apk
libc-utils 0.7.2-r3 apk libc-utils 0.7.2-r5 apk
libcrypto3 3.0.8-r4 apk libcrypto3 3.1.1-r1 apk
libcurl 8.0.1-r0 apk libcurl 8.1.1-r1 apk
libdav1d 1.0.0-r2 apk libdav1d 1.2.0-r0 apk
libedit 20221030.3.1-r0 apk libedit 20221030.3.1-r1 apk
libevent 2.1.12-r5 apk libevent 2.1.12-r6 apk
libexpat 2.5.0-r0 apk libexpat 2.5.0-r1 apk
libffi 3.4.4-r0 apk libffi 3.4.4-r2 apk
libgcc 12.2.1_git20220924-r4 apk libgcc 12.2.1_git20220924-r10 apk
libgcrypt 1.10.1-r0 apk libgcrypt 1.10.2-r1 apk
libgd 2.3.3-r3 apk libgd 2.3.3-r7 apk
libgpg-error 1.46-r1 apk libgpg-error 1.47-r1 apk
libice 1.0.10-r1 apk libice 1.1.1-r2 apk
libidn 1.41-r0 apk libidn2 2.3.4-r1 apk
libintl 0.21.1-r1 apk libintl 0.21.1-r7 apk
libjpeg-turbo 2.1.4-r0 apk libjpeg-turbo 2.1.5.1-r2 apk
libksba 1.6.3-r0 apk libksba 1.6.3-r2 apk
libldap 2.6.3-r6 apk libldap 2.6.4-r3 apk
libmaxminddb-libs 1.7.1-r0 apk libmaxminddb-libs 1.7.1-r1 apk
libmcrypt 2.5.8-r10 apk libmcrypt 2.5.8-r10 apk
libmd 1.0.4-r0 apk libmd 1.0.4-r2 apk
libmemcached-libs 1.0.18-r5 apk libmemcached-libs 1.1.4-r1 apk
libmnl 1.0.5-r0 apk libmnl 1.0.5-r1 apk
libnftnl 1.2.4-r0 apk libncursesw 6.4_p20230506-r0 apk
libpng 1.6.38-r0 apk libnftnl 1.2.5-r1 apk
libpq 15.2-r0 apk libpanelw 6.4_p20230506-r0 apk
libproc 3.3.17-r2 apk libpng 1.6.39-r3 apk
libsasl 2.1.28-r3 apk libpq 15.3-r0 apk
libseccomp 2.5.4-r0 apk libproc2 4.0.3-r1 apk
libsm 1.2.3-r1 apk libsasl 2.1.28-r4 apk
libsodium 1.0.18-r2 apk libseccomp 2.5.4-r2 apk
libssl3 3.0.8-r4 apk libsm 1.2.4-r1 apk
libstdc++ 12.2.1_git20220924-r4 apk libsodium 1.0.18-r3 apk
libtasn1 4.19.0-r0 apk libssl3 3.1.1-r1 apk
libunistring 1.1-r0 apk libstdc++ 12.2.1_git20220924-r10 apk
libuuid 2.38.1-r1 apk libtasn1 4.19.0-r1 apk
libwebp 1.2.4-r1 apk libunistring 1.1-r1 apk
libx11 1.8.4-r0 apk libuuid 2.38.1-r7 apk
libxau 1.0.10-r0 apk libwebp 1.3.0-r2 apk
libxcb 1.15-r0 apk libx11 1.8.4-r3 apk
libxdmcp 1.1.4-r0 apk libxau 1.0.11-r2 apk
libxext 1.3.5-r0 apk libxcb 1.15-r1 apk
libxml2 2.10.4-r0 apk libxdmcp 1.1.4-r2 apk
libxpm 3.5.15-r0 apk libxext 1.3.5-r2 apk
libxslt 1.1.37-r1 apk libxml2 2.11.4-r0 apk
libxt 1.2.1-r0 apk libxpm 3.5.16-r1 apk
libxslt 1.1.38-r0 apk
libxt 1.3.0-r2 apk
libzip 1.9.2-r2 apk libzip 1.9.2-r2 apk
linux-pam 1.5.2-r1 apk linux-pam 1.5.2-r10 apk
logrotate 3.20.1-r3 apk logrotate 3.21.0-r1 apk
loopialib 0.2.0 python loopialib 0.2.0 python
lxml 4.9.2 python lxml 4.9.2 python
lz4-libs 1.9.4-r1 apk lz4-libs 1.9.4-r4 apk
marshmallow 3.19.0 python marshmallow 3.19.0 python
marshmallow-enum 1.5.1 python marshmallow-enum 1.5.1 python
memcached 1.6.17 binary memcached 1.6.20 binary
memcached 1.6.17-r0 apk memcached 1.6.20-r0 apk
mock 5.0.2 python mock 5.0.2 python
mpdecimal 2.5.1-r1 apk mpdecimal 2.5.1-r2 apk
msal 1.22.0 python msal 1.22.0 python
msal-extensions 1.0.0 python msal-extensions 1.0.0 python
msrest 0.7.1 python msrest 0.7.1 python
musl 1.2.3-r4 apk musl 1.2.4-r0 apk
musl-utils 1.2.3-r4 apk musl-utils 1.2.4-r0 apk
mypy-extensions 1.0.0 python mypy-extensions 1.0.0 python
nano 7.0-r0 apk nano 7.2-r1 apk
ncurses-libs 6.3_p20221119-r0 apk ncurses-terminfo-base 6.4_p20230506-r0 apk
ncurses-terminfo-base 6.3_p20221119-r0 apk netcat-openbsd 1.219-r1 apk
netcat-openbsd 1.130-r4 apk nettle 3.8.1-r2 apk
nettle 3.8.1-r0 apk nghttp2-libs 1.53.0-r0 apk
nghttp2-libs 1.51.0-r0 apk nginx 1.24.0-r6 apk
nginx 1.22.1-r0 apk nginx-mod-devel-kit 1.24.0-r6 apk
nginx-mod-devel-kit 1.22.1-r0 apk nginx-mod-http-brotli 1.24.0-r6 apk
nginx-mod-http-brotli 1.22.1-r0 apk nginx-mod-http-dav-ext 1.24.0-r6 apk
nginx-mod-http-dav-ext 1.22.1-r0 apk nginx-mod-http-echo 1.24.0-r6 apk
nginx-mod-http-echo 1.22.1-r0 apk nginx-mod-http-fancyindex 1.24.0-r6 apk
nginx-mod-http-fancyindex 1.22.1-r0 apk nginx-mod-http-geoip2 1.24.0-r6 apk
nginx-mod-http-geoip2 1.22.1-r0 apk nginx-mod-http-headers-more 1.24.0-r6 apk
nginx-mod-http-headers-more 1.22.1-r0 apk nginx-mod-http-image-filter 1.24.0-r6 apk
nginx-mod-http-image-filter 1.22.1-r0 apk nginx-mod-http-perl 1.24.0-r6 apk
nginx-mod-http-perl 1.22.1-r0 apk nginx-mod-http-redis2 1.24.0-r6 apk
nginx-mod-http-redis2 1.22.1-r0 apk nginx-mod-http-set-misc 1.24.0-r6 apk
nginx-mod-http-set-misc 1.22.1-r0 apk nginx-mod-http-upload-progress 1.24.0-r6 apk
nginx-mod-http-upload-progress 1.22.1-r0 apk nginx-mod-http-xslt-filter 1.24.0-r6 apk
nginx-mod-http-xslt-filter 1.22.1-r0 apk nginx-mod-mail 1.24.0-r6 apk
nginx-mod-mail 1.22.1-r0 apk nginx-mod-rtmp 1.24.0-r6 apk
nginx-mod-rtmp 1.22.1-r0 apk nginx-mod-stream 1.24.0-r6 apk
nginx-mod-stream 1.22.1-r0 apk nginx-mod-stream-geoip2 1.24.0-r6 apk
nginx-mod-stream-geoip2 1.22.1-r0 apk nginx-vim 1.24.0-r6 apk
nginx-vim 1.22.1-r0 apk npth 1.6-r4 apk
npth 1.6-r2 apk
oauthlib 3.2.2 python oauthlib 3.2.2 python
oniguruma 6.9.8-r0 apk oniguruma 6.9.8-r1 apk
openssl 3.0.8-r4 apk openssl 3.1.0-r4 apk
p11-kit 0.24.1-r1 apk p11-kit 0.24.1-r2 apk
packaging 23.1 python packaging 23.1 python
parsedatetime 2.6 python parsedatetime 2.6 python
pcre 8.45-r2 apk pcre 8.45-r3 apk
pcre2 10.42-r0 apk pcre2 10.42-r1 apk
perl 5.36.0-r1 apk perl 5.36.1-r2 apk
perl-error 0.17029-r1 apk perl-error 0.17029-r1 apk
perl-git 2.38.5-r0 apk perl-git 2.40.1-r0 apk
php-cli 8.1.18 binary php-cli 8.2.6 binary
php-fpm 8.1.18 binary php-fpm 8.2.6 binary
php81 8.1.18-r0 apk php82 8.2.6-r1 apk
php81-bcmath 8.1.18-r0 apk php82-bcmath 8.2.6-r1 apk
php81-bz2 8.1.18-r0 apk php82-bz2 8.2.6-r1 apk
php81-common 8.1.18-r0 apk php82-common 8.2.6-r1 apk
php81-ctype 8.1.18-r0 apk php82-ctype 8.2.6-r1 apk
php81-curl 8.1.18-r0 apk php82-curl 8.2.6-r1 apk
php81-dom 8.1.18-r0 apk php82-dom 8.2.6-r1 apk
php81-exif 8.1.18-r0 apk php82-exif 8.2.6-r1 apk
php81-fileinfo 8.1.18-r0 apk php82-fileinfo 8.2.6-r1 apk
php81-fpm 8.1.18-r0 apk php82-fpm 8.2.6-r1 apk
php81-ftp 8.1.18-r0 apk php82-ftp 8.2.6-r1 apk
php81-gd 8.1.18-r0 apk php82-gd 8.2.6-r1 apk
php81-gmp 8.1.18-r0 apk php82-gmp 8.2.6-r1 apk
php81-iconv 8.1.18-r0 apk php82-iconv 8.2.6-r1 apk
php81-imap 8.1.18-r0 apk php82-imap 8.2.6-r1 apk
php81-intl 8.1.18-r0 apk php82-intl 8.2.6-r1 apk
php81-ldap 8.1.18-r0 apk php82-ldap 8.2.6-r1 apk
php81-mbstring 8.1.18-r0 apk php82-mbstring 8.2.6-r1 apk
php81-mysqli 8.1.18-r0 apk php82-mysqli 8.2.6-r1 apk
php81-mysqlnd 8.1.18-r0 apk php82-mysqlnd 8.2.6-r1 apk
php81-opcache 8.1.18-r0 apk php82-opcache 8.2.6-r1 apk
php81-openssl 8.1.18-r0 apk php82-openssl 8.2.6-r1 apk
php81-pdo 8.1.18-r0 apk php82-pdo 8.2.6-r1 apk
php81-pdo_mysql 8.1.18-r0 apk php82-pdo_mysql 8.2.6-r1 apk
php81-pdo_odbc 8.1.18-r0 apk php82-pdo_odbc 8.2.6-r1 apk
php81-pdo_pgsql 8.1.18-r0 apk php82-pdo_pgsql 8.2.6-r1 apk
php81-pdo_sqlite 8.1.18-r0 apk php82-pdo_sqlite 8.2.6-r1 apk
php81-pear 8.1.18-r0 apk php82-pear 8.2.6-r1 apk
php81-pecl-apcu 5.1.22-r0 apk php82-pecl-apcu 5.1.22-r0 apk
php81-pecl-igbinary 3.2.12-r0 apk php82-pecl-igbinary 3.2.14-r0 apk
php81-pecl-mailparse 3.1.4-r0 apk php82-pecl-mcrypt 1.0.6-r0 apk
php81-pecl-mcrypt 1.0.6-r0 apk php82-pecl-memcached 3.2.0-r1 apk
php81-pecl-memcached 3.2.0-r0 apk php82-pecl-msgpack 2.2.0_rc2-r1 apk
php81-pecl-redis 5.3.7-r0 apk php82-pecl-redis 5.3.7-r2 apk
php81-pecl-xmlrpc 1.0.0_rc3-r1 apk php82-pgsql 8.2.6-r1 apk
php81-pgsql 8.1.18-r0 apk php82-phar 8.2.6-r1 apk
php81-phar 8.1.18-r0 apk php82-posix 8.2.6-r1 apk
php81-posix 8.1.18-r0 apk php82-session 8.2.6-r1 apk
php81-session 8.1.18-r0 apk php82-simplexml 8.2.6-r1 apk
php81-simplexml 8.1.18-r0 apk php82-soap 8.2.6-r1 apk
php81-soap 8.1.18-r0 apk php82-sockets 8.2.6-r1 apk
php81-sockets 8.1.18-r0 apk php82-sodium 8.2.6-r1 apk
php81-sodium 8.1.18-r0 apk php82-sqlite3 8.2.6-r1 apk
php81-sqlite3 8.1.18-r0 apk php82-tokenizer 8.2.6-r1 apk
php81-tokenizer 8.1.18-r0 apk php82-xml 8.2.6-r1 apk
php81-xml 8.1.18-r0 apk php82-xmlreader 8.2.6-r1 apk
php81-xmlreader 8.1.18-r0 apk php82-xmlwriter 8.2.6-r1 apk
php81-xmlwriter 8.1.18-r0 apk php82-xsl 8.2.6-r1 apk
php81-xsl 8.1.18-r0 apk php82-zip 8.2.6-r1 apk
php81-zip 8.1.18-r0 apk pinentry 1.2.1-r1 apk
pinentry 1.2.1-r0 apk
pip 23.1.2 python pip 23.1.2 python
pkb-client 1.2 python pkb-client 1.2 python
popt 1.19-r0 apk popt 1.19-r2 apk
portalocker 2.7.0 python portalocker 2.7.0 python
procps 3.3.17-r2 apk procps-ng 4.0.3-r1 apk
protobuf 4.23.0 python protobuf 4.23.2 python
publicsuffixlist 0.9.4 python publicsuffixlist 0.9.4 python
pyOpenSSL 23.1.1 python pyOpenSSL 23.2.0 python
pyRFC3339 1.1 python pyRFC3339 1.1 python
pyacmedns 0.4 python pyacmedns 0.4 python
pyasn1 0.5.0 python pyasn1 0.5.0 python
pyasn1-modules 0.3.0 python pyasn1-modules 0.3.0 python
pyc 0.1-r0 apk
pycparser 2.21 python pycparser 2.21 python
pyparsing 3.0.9 python pyparsing 3.0.9 python
python 3.10.11 binary python 3.11.3 binary
python-dateutil 2.8.2 python python-dateutil 2.8.2 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.10.11-r0 apk python3 3.11.3-r11 apk
python3-pyc 3.11.3-r11 apk
python3-pycache-pyc0 3.11.3-r11 apk
pytz 2023.3 python pytz 2023.3 python
readline 8.2.0-r0 apk readline 8.2.1-r1 apk
requests 2.30.0 python requests 2.31.0 python
requests-file 1.5.1 python requests-file 1.5.1 python
requests-mock 1.10.0 python requests-mock 1.10.0 python
requests-oauthlib 1.3.1 python requests-oauthlib 1.3.1 python
rsa 4.9 python rsa 4.9 python
s3transfer 0.6.1 python s3transfer 0.6.1 python
scanelf 1.3.5-r1 apk scanelf 1.3.7-r1 apk
setuptools 65.5.0 python setuptools 65.5.0 python
shadow 4.13-r0 apk shadow 4.13-r2 apk
six 1.16.0 python six 1.16.0 python
skalibs 2.12.0.1-r0 apk skalibs 2.13.1.1-r1 apk
soupsieve 2.4.1 python soupsieve 2.4.1 python
sqlite-libs 3.40.1-r0 apk sqlite-libs 3.41.2-r2 apk
ssl_client 1.35.0-r29 apk ssl_client 1.36.0-r9 apk
tiff 4.4.0-r3 apk tiff 4.5.0-r6 apk
tldextract 3.4.1 python tldextract 3.4.4 python
typing-inspect 0.8.0 python typing-inspect 0.9.0 python
typing_extensions 4.5.0 python typing_extensions 4.6.2 python
tzdata 2023c-r0 apk tzdata 2023c-r1 apk
unixodbc 2.3.11-r0 apk unixodbc 2.3.11-r2 apk
uritemplate 4.1.1 python uritemplate 4.1.1 python
urllib3 1.26.15 python urllib3 1.26.16 python
utmps-libs 0.1.2.0-r1 apk utmps-libs 0.1.2.1-r1 apk
wheel 0.40.0 python wheel 0.40.0 python
whois 5.5.14-r0 apk whois 5.5.17-r0 apk
xz 5.2.9-r0 apk xz-libs 5.4.3-r0 apk
xz-libs 5.2.9-r0 apk
zipp 3.15.0 python zipp 3.15.0 python
zlib 1.2.13-r0 apk zlib 1.2.13-r1 apk
zope.interface 6.0 python zope.interface 6.0 python
zstd-libs 1.5.5-r0 apk zstd-libs 1.5.5-r4 apk

View File

@ -14,7 +14,6 @@ project_blurb_optional_extras: []
available_architectures: available_architectures:
- { arch: "{{ arch_x86_64 }}", tag: "amd64-latest"} - { arch: "{{ arch_x86_64 }}", tag: "amd64-latest"}
- { arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"} - { arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"}
- { arch: "{{ arch_armhf }}", tag: "arm32v7-latest"}
# development version # development version
development_versions: false development_versions: false
@ -154,6 +153,7 @@ app_setup_block: |
# changelog # changelog
changelogs: changelogs:
- { date: "25.05.23:", desc: "Rebase to Alpine 3.18, deprecate armhf." }
- { date: "27.04.23:", desc: "[Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) authelia-location.conf, authelia-server.conf, authentik-location.conf, authentik-server.conf - Simplify auth configs and fix Set-Cookie header bug." } - { date: "27.04.23:", desc: "[Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) authelia-location.conf, authelia-server.conf, authentik-location.conf, authentik-server.conf - Simplify auth configs and fix Set-Cookie header bug." }
- { date: "13.04.23:", desc: "[Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) nginx.conf, authelia-location.conf, authentik-location.conf, and site-confs/default.conf - Move ssl.conf include to default.conf. Remove Authorization headers in authelia. Sort proxy_set_header in authelia and authentik." } - { date: "13.04.23:", desc: "[Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) nginx.conf, authelia-location.conf, authentik-location.conf, and site-confs/default.conf - Move ssl.conf include to default.conf. Remove Authorization headers in authelia. Sort proxy_set_header in authelia and authentik." }
- { date: "25.03.23:", desc: "Fix renewal post hook." } - { date: "25.03.23:", desc: "Fix renewal post hook." }

View File

@ -3,5 +3,3 @@
[Definition] [Definition]
failregex = ^<HOST>.*"(GET|POST|HEAD).*" (401) .*$ failregex = ^<HOST>.*"(GET|POST|HEAD).*" (401) .*$
ignoreregex = .*(?i)plex.*