mirror of
https://github.com/linuxserver/docker-swag.git
synced 2026-10-26 05:26:47 +09:00
Merge branch 'linuxserver:master' into master
This commit is contained in:
17 files changed
+525
-496
No files matched your search
@@ -10,7 +10,7 @@ jobs:
|
|||||||
external-trigger-master:
|
external-trigger-master:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4.1.1
|
- uses: linuxserver/github-workflows/.github/actions/checkout@v1
|
||||||
|
|
||||||
- name: External Trigger
|
- name: External Trigger
|
||||||
if: github.ref == 'refs/heads/master'
|
if: github.ref == 'refs/heads/master'
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ jobs:
|
|||||||
external-trigger-scheduler:
|
external-trigger-scheduler:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4.1.1
|
- uses: linuxserver/github-workflows/.github/actions/checkout@v1
|
||||||
with:
|
with:
|
||||||
fetch-depth: '0'
|
fetch-depth: '0'
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ jobs:
|
|||||||
pull-requests: write
|
pull-requests: write
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/first-interaction@v1
|
- uses: linuxserver/github-workflows/.github/actions/first-interaction@v1
|
||||||
with:
|
with:
|
||||||
issue-message: 'Thanks for opening your first issue here! Be sure to follow the relevant issue templates, or risk having this issue marked as invalid.'
|
issue-message: 'Thanks for opening your first issue here! Be sure to follow the relevant issue templates, or risk having this issue marked as invalid.'
|
||||||
pr-message: 'Thanks for opening this pull request! Be sure to follow the [pull request template](https://github.com/linuxserver/docker-swag/blob/master/.github/PULL_REQUEST_TEMPLATE.md)!'
|
pr-message: 'Thanks for opening this pull request! Be sure to follow the [pull request template](https://github.com/linuxserver/docker-swag/blob/master/.github/PULL_REQUEST_TEMPLATE.md)!'
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ jobs:
|
|||||||
package-trigger-scheduler:
|
package-trigger-scheduler:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4.1.1
|
- uses: linuxserver/github-workflows/.github/actions/checkout@v1
|
||||||
with:
|
with:
|
||||||
fetch-depth: '0'
|
fetch-depth: '0'
|
||||||
|
|
||||||
|
|||||||
+31
-32
@@ -1,6 +1,6 @@
|
|||||||
# syntax=docker/dockerfile:1
|
# syntax=docker/dockerfile:1
|
||||||
|
|
||||||
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.22
|
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.24
|
||||||
|
|
||||||
# set version label
|
# set version label
|
||||||
ARG BUILD_DATE
|
ARG BUILD_DATE
|
||||||
@@ -49,36 +49,34 @@ RUN \
|
|||||||
nginx-mod-stream \
|
nginx-mod-stream \
|
||||||
nginx-mod-stream-geoip2 \
|
nginx-mod-stream-geoip2 \
|
||||||
nginx-vim \
|
nginx-vim \
|
||||||
php84-bcmath \
|
php85-bcmath \
|
||||||
php84-bz2 \
|
php85-bz2 \
|
||||||
php84-dom \
|
php85-dom \
|
||||||
php84-exif \
|
php85-exif \
|
||||||
php84-ftp \
|
php85-ftp \
|
||||||
php84-gd \
|
php85-gd \
|
||||||
php84-gmp \
|
php85-gmp \
|
||||||
php84-imap \
|
php85-intl \
|
||||||
php84-intl \
|
php85-ldap \
|
||||||
php84-ldap \
|
php85-mysqli \
|
||||||
php84-mysqli \
|
php85-mysqlnd \
|
||||||
php84-mysqlnd \
|
php85-pdo_mysql \
|
||||||
php84-opcache \
|
php85-pdo_odbc \
|
||||||
php84-pdo_mysql \
|
php85-pdo_pgsql \
|
||||||
php84-pdo_odbc \
|
php85-pdo_sqlite \
|
||||||
php84-pdo_pgsql \
|
php85-pear \
|
||||||
php84-pdo_sqlite \
|
php85-pecl-apcu \
|
||||||
php84-pear \
|
php85-pecl-memcached \
|
||||||
php84-pecl-apcu \
|
php85-pecl-redis \
|
||||||
php84-pecl-memcached \
|
php85-pgsql \
|
||||||
php84-pecl-redis \
|
php85-posix \
|
||||||
php84-pgsql \
|
php85-soap \
|
||||||
php84-posix \
|
php85-sockets \
|
||||||
php84-soap \
|
php85-sodium \
|
||||||
php84-sockets \
|
php85-sqlite3 \
|
||||||
php84-sodium \
|
php85-tokenizer \
|
||||||
php84-sqlite3 \
|
php85-xmlreader \
|
||||||
php84-tokenizer \
|
php85-xsl \
|
||||||
php84-xmlreader \
|
|
||||||
php84-xsl \
|
|
||||||
whois && \
|
whois && \
|
||||||
echo "**** install certbot plugins ****" && \
|
echo "**** install certbot plugins ****" && \
|
||||||
if [ -z ${CERTBOT_VERSION+x} ]; then \
|
if [ -z ${CERTBOT_VERSION+x} ]; then \
|
||||||
@@ -88,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.22/ \
|
pip install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/alpine-3.24/ \
|
||||||
certbot==${CERTBOT_VERSION} \
|
certbot==${CERTBOT_VERSION} \
|
||||||
certbot-dns-acmedns \
|
certbot-dns-acmedns \
|
||||||
certbot-dns-aliyun \
|
certbot-dns-aliyun \
|
||||||
@@ -121,6 +119,7 @@ RUN \
|
|||||||
certbot-dns-linode \
|
certbot-dns-linode \
|
||||||
certbot-dns-loopia \
|
certbot-dns-loopia \
|
||||||
certbot-dns-luadns \
|
certbot-dns-luadns \
|
||||||
|
certbot-dns-mijn-host \
|
||||||
certbot-dns-namecheap \
|
certbot-dns-namecheap \
|
||||||
certbot-dns-netcup \
|
certbot-dns-netcup \
|
||||||
certbot-dns-njalla \
|
certbot-dns-njalla \
|
||||||
|
|||||||
+31
-32
@@ -1,6 +1,6 @@
|
|||||||
# syntax=docker/dockerfile:1
|
# syntax=docker/dockerfile:1
|
||||||
|
|
||||||
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.22
|
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.24
|
||||||
|
|
||||||
# set version label
|
# set version label
|
||||||
ARG BUILD_DATE
|
ARG BUILD_DATE
|
||||||
@@ -49,36 +49,34 @@ RUN \
|
|||||||
nginx-mod-stream \
|
nginx-mod-stream \
|
||||||
nginx-mod-stream-geoip2 \
|
nginx-mod-stream-geoip2 \
|
||||||
nginx-vim \
|
nginx-vim \
|
||||||
php84-bcmath \
|
php85-bcmath \
|
||||||
php84-bz2 \
|
php85-bz2 \
|
||||||
php84-dom \
|
php85-dom \
|
||||||
php84-exif \
|
php85-exif \
|
||||||
php84-ftp \
|
php85-ftp \
|
||||||
php84-gd \
|
php85-gd \
|
||||||
php84-gmp \
|
php85-gmp \
|
||||||
php84-imap \
|
php85-intl \
|
||||||
php84-intl \
|
php85-ldap \
|
||||||
php84-ldap \
|
php85-mysqli \
|
||||||
php84-mysqli \
|
php85-mysqlnd \
|
||||||
php84-mysqlnd \
|
php85-pdo_mysql \
|
||||||
php84-opcache \
|
php85-pdo_odbc \
|
||||||
php84-pdo_mysql \
|
php85-pdo_pgsql \
|
||||||
php84-pdo_odbc \
|
php85-pdo_sqlite \
|
||||||
php84-pdo_pgsql \
|
php85-pear \
|
||||||
php84-pdo_sqlite \
|
php85-pecl-apcu \
|
||||||
php84-pear \
|
php85-pecl-memcached \
|
||||||
php84-pecl-apcu \
|
php85-pecl-redis \
|
||||||
php84-pecl-memcached \
|
php85-pgsql \
|
||||||
php84-pecl-redis \
|
php85-posix \
|
||||||
php84-pgsql \
|
php85-soap \
|
||||||
php84-posix \
|
php85-sockets \
|
||||||
php84-soap \
|
php85-sodium \
|
||||||
php84-sockets \
|
php85-sqlite3 \
|
||||||
php84-sodium \
|
php85-tokenizer \
|
||||||
php84-sqlite3 \
|
php85-xmlreader \
|
||||||
php84-tokenizer \
|
php85-xsl \
|
||||||
php84-xmlreader \
|
|
||||||
php84-xsl \
|
|
||||||
whois && \
|
whois && \
|
||||||
echo "**** install certbot plugins ****" && \
|
echo "**** install certbot plugins ****" && \
|
||||||
if [ -z ${CERTBOT_VERSION+x} ]; then \
|
if [ -z ${CERTBOT_VERSION+x} ]; then \
|
||||||
@@ -88,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.22/ \
|
pip install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/alpine-3.24/ \
|
||||||
certbot==${CERTBOT_VERSION} \
|
certbot==${CERTBOT_VERSION} \
|
||||||
certbot-dns-acmedns \
|
certbot-dns-acmedns \
|
||||||
certbot-dns-aliyun \
|
certbot-dns-aliyun \
|
||||||
@@ -121,6 +119,7 @@ RUN \
|
|||||||
certbot-dns-linode \
|
certbot-dns-linode \
|
||||||
certbot-dns-loopia \
|
certbot-dns-loopia \
|
||||||
certbot-dns-luadns \
|
certbot-dns-luadns \
|
||||||
|
certbot-dns-mijn-host \
|
||||||
certbot-dns-namecheap \
|
certbot-dns-namecheap \
|
||||||
certbot-dns-netcup \
|
certbot-dns-netcup \
|
||||||
certbot-dns-njalla \
|
certbot-dns-njalla \
|
||||||
|
|||||||
Vendored
+13
-13
@@ -629,7 +629,7 @@ pipeline {
|
|||||||
pids[$!]="$i"
|
pids[$!]="$i"
|
||||||
done
|
done
|
||||||
for p in "${!pids[@]}"; do
|
for p in "${!pids[@]}"; do
|
||||||
wait "$p" || { [[ "${pids[$p]}" != *"quay.io"* ]] && exit 1; }
|
wait "$p" || { [[ "${pids[$p]}" != *"quay.io"* && "${pids[$p]}" != *"registry.gitlab.com"* ]] && exit 1; }
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
'''
|
'''
|
||||||
@@ -698,7 +698,7 @@ pipeline {
|
|||||||
pids[$!]="$i"
|
pids[$!]="$i"
|
||||||
done
|
done
|
||||||
for p in "${!pids[@]}"; do
|
for p in "${!pids[@]}"; do
|
||||||
wait "$p" || { [[ "${pids[$p]}" != *"quay.io"* ]] && exit 1; }
|
wait "$p" || { [[ "${pids[$p]}" != *"quay.io"* && "${pids[$p]}" != *"registry.gitlab.com"* ]] && exit 1; }
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
'''
|
'''
|
||||||
@@ -759,7 +759,7 @@ pipeline {
|
|||||||
pids[$!]="$i"
|
pids[$!]="$i"
|
||||||
done
|
done
|
||||||
for p in "${!pids[@]}"; do
|
for p in "${!pids[@]}"; do
|
||||||
wait "$p" || { [[ "${pids[$p]}" != *"quay.io"* ]] && exit 1; }
|
wait "$p" || { [[ "${pids[$p]}" != *"quay.io"* && "${pids[$p]}" != *"registry.gitlab.com"* ]] && exit 1; }
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
'''
|
'''
|
||||||
@@ -941,10 +941,10 @@ pipeline {
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
docker buildx imagetools create --prefer-index=false -t ${PUSHIMAGE}:${META_TAG} -t ${PUSHIMAGE}:latest -t ${PUSHIMAGE}:${EXT_RELEASE_TAG} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} || \
|
docker buildx imagetools create --prefer-index=false -t ${PUSHIMAGE}:${META_TAG} -t ${PUSHIMAGE}:latest -t ${PUSHIMAGE}:${EXT_RELEASE_TAG} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} || \
|
||||||
{ if [[ "${PUSHIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
|
{ if [[ "${PUSHIMAGE}" != "${QUAYIMAGE}" && "${PUSHIMAGE}" != "${GITLABIMAGE}" ]]; then exit 1; fi; }
|
||||||
if [ -n "${SEMVER}" ]; then
|
if [ -n "${SEMVER}" ]; then
|
||||||
docker buildx imagetools create --prefer-index=false -t ${PUSHIMAGE}:${SEMVER} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} || \
|
docker buildx imagetools create --prefer-index=false -t ${PUSHIMAGE}:${SEMVER} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} || \
|
||||||
{ if [[ "${PUSHIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
|
{ if [[ "${PUSHIMAGE}" != "${QUAYIMAGE}" && "${PUSHIMAGE}" != "${GITLABIMAGE}" ]]; then exit 1; fi; }
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
'''
|
'''
|
||||||
@@ -977,26 +977,26 @@ pipeline {
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:amd64-${META_TAG} -t ${MANIFESTIMAGE}:amd64-latest -t ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} || \
|
docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:amd64-${META_TAG} -t ${MANIFESTIMAGE}:amd64-latest -t ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} || \
|
||||||
{ if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
|
{ if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" && "${MANIFESTIMAGE}" != "${GITLABIMAGE}" ]]; then exit 1; fi; }
|
||||||
docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:arm64v8-${META_TAG} -t ${MANIFESTIMAGE}:arm64v8-latest -t ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} ${CACHEIMAGE}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || \
|
docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:arm64v8-${META_TAG} -t ${MANIFESTIMAGE}:arm64v8-latest -t ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} ${CACHEIMAGE}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || \
|
||||||
{ if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
|
{ if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" && "${MANIFESTIMAGE}" != "${GITLABIMAGE}" ]]; then exit 1; fi; }
|
||||||
if [ -n "${SEMVER}" ]; then
|
if [ -n "${SEMVER}" ]; then
|
||||||
docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:amd64-${SEMVER} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} || \
|
docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:amd64-${SEMVER} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} || \
|
||||||
{ if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
|
{ if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" && "${MANIFESTIMAGE}" != "${GITLABIMAGE}" ]]; then exit 1; fi; }
|
||||||
docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:arm64v8-${SEMVER} ${CACHEIMAGE}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || \
|
docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:arm64v8-${SEMVER} ${CACHEIMAGE}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || \
|
||||||
{ if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
|
{ if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" && "${MANIFESTIMAGE}" != "${GITLABIMAGE}" ]]; then exit 1; fi; }
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do
|
for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do
|
||||||
docker buildx imagetools create -t ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm64v8-latest || \
|
docker buildx imagetools create -t ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm64v8-latest || \
|
||||||
{ if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
|
{ if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" && "${MANIFESTIMAGE}" != "${GITLABIMAGE}" ]]; then exit 1; fi; }
|
||||||
docker buildx imagetools create -t ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} || \
|
docker buildx imagetools create -t ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} || \
|
||||||
{ if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
|
{ if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" && "${MANIFESTIMAGE}" != "${GITLABIMAGE}" ]]; then exit 1; fi; }
|
||||||
docker buildx imagetools create -t ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} || \
|
docker buildx imagetools create -t ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} || \
|
||||||
{ if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
|
{ if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" && "${MANIFESTIMAGE}" != "${GITLABIMAGE}" ]]; then exit 1; fi; }
|
||||||
if [ -n "${SEMVER}" ]; then
|
if [ -n "${SEMVER}" ]; then
|
||||||
docker buildx imagetools create -t ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} || \
|
docker buildx imagetools create -t ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} || \
|
||||||
{ if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
|
{ if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" && "${MANIFESTIMAGE}" != "${GITLABIMAGE}" ]]; then exit 1; fi; }
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
'''
|
'''
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ The architectures supported by this image are:
|
|||||||
2. Certs that cover sub-subdomains of your main subdomain (ie. `*.yoursubdomain.duckdns.org`, set the `SUBDOMAINS` variable to `wildcard`)
|
2. Certs that cover sub-subdomains of your main subdomain (ie. `*.yoursubdomain.duckdns.org`, set the `SUBDOMAINS` variable to `wildcard`)
|
||||||
* `--cap-add=NET_ADMIN` is required for fail2ban to modify iptables
|
* `--cap-add=NET_ADMIN` is required for fail2ban to modify iptables
|
||||||
* After setup, navigate to `https://example.com` to access the default homepage (http access through port 80 is disabled by default, you can enable it by editing the default site config at `/config/nginx/site-confs/default.conf`).
|
* After setup, navigate to `https://example.com` to access the default homepage (http access through port 80 is disabled by default, you can enable it by editing the default site config at `/config/nginx/site-confs/default.conf`).
|
||||||
* Certs are checked nightly and if expiration is within 30 days, renewal is attempted. If your cert is about to expire in less than 30 days, check the logs under `/config/log/letsencrypt` to see why the renewals have been failing. It is recommended to input your e-mail in docker parameters so you receive expiration notices from Let's Encrypt in those circumstances.
|
* Certs are checked twice daily using ACME Renewal Information (ARI) to determine the optimal renewal window. If your cert is about to expire, check the logs under `/config/log/letsencrypt` to see why the renewals have been failing.
|
||||||
|
|
||||||
### Certbot Plugins
|
### Certbot Plugins
|
||||||
|
|
||||||
@@ -190,6 +190,7 @@ services:
|
|||||||
- VALIDATION=http
|
- VALIDATION=http
|
||||||
- SUBDOMAINS=www, #optional
|
- SUBDOMAINS=www, #optional
|
||||||
- CERTPROVIDER= #optional
|
- CERTPROVIDER= #optional
|
||||||
|
- CERT_PROFILE= #optional
|
||||||
- DNSPLUGIN=cloudflare #optional
|
- DNSPLUGIN=cloudflare #optional
|
||||||
- PROPAGATION= #optional
|
- PROPAGATION= #optional
|
||||||
- EMAIL= #optional
|
- EMAIL= #optional
|
||||||
@@ -221,6 +222,7 @@ docker run -d \
|
|||||||
-e VALIDATION=http \
|
-e VALIDATION=http \
|
||||||
-e SUBDOMAINS=www, `#optional` \
|
-e SUBDOMAINS=www, `#optional` \
|
||||||
-e CERTPROVIDER= `#optional` \
|
-e CERTPROVIDER= `#optional` \
|
||||||
|
-e CERT_PROFILE= `#optional` \
|
||||||
-e DNSPLUGIN=cloudflare `#optional` \
|
-e DNSPLUGIN=cloudflare `#optional` \
|
||||||
-e PROPAGATION= `#optional` \
|
-e PROPAGATION= `#optional` \
|
||||||
-e EMAIL= `#optional` \
|
-e EMAIL= `#optional` \
|
||||||
@@ -254,7 +256,8 @@ Containers are configured using parameters passed at runtime (such as those abov
|
|||||||
| `-e VALIDATION=http` | Certbot validation method to use, options are `http` or `dns` (`dns` method also requires `DNSPLUGIN` variable set). |
|
| `-e VALIDATION=http` | Certbot validation method to use, options are `http` or `dns` (`dns` method also requires `DNSPLUGIN` variable set). |
|
||||||
| `-e SUBDOMAINS=www,` | Subdomains you'd like the cert to cover (comma separated, no spaces) ie. `www,ftp,cloud`. For a wildcard cert, set this *exactly* to `wildcard` (wildcard cert is available via `dns` validation only) |
|
| `-e SUBDOMAINS=www,` | Subdomains you'd like the cert to cover (comma separated, no spaces) ie. `www,ftp,cloud`. For a wildcard cert, set this *exactly* to `wildcard` (wildcard cert is available via `dns` validation only) |
|
||||||
| `-e CERTPROVIDER=` | Optionally define the cert provider. Set to `zerossl` for ZeroSSL certs (requires existing [ZeroSSL account](https://app.zerossl.com/signup) and the e-mail address entered in `EMAIL` env var). Otherwise defaults to Let's Encrypt. |
|
| `-e CERTPROVIDER=` | Optionally define the cert provider. Set to `zerossl` for ZeroSSL certs (requires existing [ZeroSSL account](https://app.zerossl.com/signup) and the e-mail address entered in `EMAIL` env var). Otherwise defaults to Let's Encrypt. |
|
||||||
| `-e DNSPLUGIN=cloudflare` | Required if `VALIDATION` is set to `dns`. Options are `acmedns`, `aliyun`, `azure`, `bunny`, `cloudflare`, `cpanel`, `desec`, `digitalocean`, `directadmin`, `dnsimple`, `dnsmadeeasy`, `dnspod`, `do`, `domeneshop`, `dreamhost`, `duckdns`, `dynu`, `freedns`, `gandi`, `gehirn`, `glesys`, `godaddy`, `google`, `he`, `hetzner`, `hetzner-cloud`, `infomaniak`, `inwx`, `ionos`, `linode`, `loopia`, `luadns`, `namecheap`, `netcup`, `njalla`, `nsone`, `ovh`, `porkbun`, `rfc2136`, `route53`, `sakuracloud`, `standalone`, `transip`, and `vultr`. Also need to enter the credentials into the corresponding ini (or json for some plugins) file under `/config/dns-conf`. |
|
| `-e CERT_PROFILE=` | Optionally define a cert profile to use for cert generation. This is useful if you want to use a custom cert profile instead of the default one. Currently only supported for Let's Encrypt. See https://letsencrypt.org/docs/profiles/ |
|
||||||
|
| `-e DNSPLUGIN=cloudflare` | Required if `VALIDATION` is set to `dns`. Options are `acmedns`, `aliyun`, `azure`, `bunny`, `cloudflare`, `cpanel`, `desec`, `digitalocean`, `directadmin`, `dnsimple`, `dnsmadeeasy`, `dnspod`, `do`, `domeneshop`, `dreamhost`, `duckdns`, `dynu`, `freedns`, `gandi`, `gehirn`, `glesys`, `godaddy`, `google`, `he`, `hetzner`, `hetzner-cloud`, `infomaniak`, `inwx`, `ionos`, `linode`, `loopia`, `luadns`, `mijn-host`, `namecheap`, `netcup`, `njalla`, `nsone`, `ovh`, `porkbun`, `rfc2136`, `route53`, `sakuracloud`, `standalone`, `transip`, and `vultr`. Also need to enter the credentials into the corresponding ini (or json for some plugins) file under `/config/dns-conf`. |
|
||||||
| `-e PROPAGATION=` | Optionally override (in seconds) the default propagation time for the dns plugins. |
|
| `-e PROPAGATION=` | Optionally override (in seconds) the default propagation time for the dns plugins. |
|
||||||
| `-e EMAIL=` | Optional e-mail address used for cert expiration notifications (Required for ZeroSSL). |
|
| `-e EMAIL=` | Optional e-mail address used for cert expiration notifications (Required for ZeroSSL). |
|
||||||
| `-e ONLY_SUBDOMAINS=false` | If you wish to get certs only for certain subdomains, but not the main domain (main domain may be hosted on another machine and cannot be validated), set this to `true` |
|
| `-e ONLY_SUBDOMAINS=false` | If you wish to get certs only for certain subdomains, but not the main domain (main domain may be hosted on another machine and cannot be validated), set this to `true` |
|
||||||
@@ -433,6 +436,10 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
|
|||||||
|
|
||||||
## Versions
|
## Versions
|
||||||
|
|
||||||
|
* **09.09.26:** - Use new X-Tinyauth-Location header in Tinyauth locations and remove duplicate auth module headers.
|
||||||
|
* **19.07.26:** - Rebase to Alpine 3.24 with PHP 8.5.
|
||||||
|
* **10.07.26:** - Add support for Let's Encrypt cert profiles. Run certbot twice daily with a random delay.
|
||||||
|
* **19.06.26:** - Add support for mijn.host dns validation.
|
||||||
* **01.06.26:** - Remove obsolete old cert check logic.
|
* **01.06.26:** - Remove obsolete old cert check logic.
|
||||||
* **23.01.26:** - Reorder init to fix proxy conf version checks.
|
* **23.01.26:** - Reorder init to fix proxy conf version checks.
|
||||||
* **21.12.25:** - Add support for hetzner-cloud dns validation.
|
* **21.12.25:** - Add support for hetzner-cloud dns validation.
|
||||||
|
|||||||
+376
-377
@@ -1,377 +1,376 @@
|
|||||||
NAME VERSION TYPE
|
NAME VERSION TYPE
|
||||||
Simple Launcher 1.1.0.14 binary (+5 duplicates)
|
Simple Launcher 1.1.0.14 binary (+5 duplicates)
|
||||||
acl-libs 2.3.2-r1 apk
|
acl-libs 2.3.2-r1 apk
|
||||||
acme 5.6.0 python
|
acme 5.8.0 python
|
||||||
alpine-baselayout 3.7.0-r0 apk
|
alpine-baselayout 3.7.2-r1 apk
|
||||||
alpine-baselayout-data 3.7.0-r0 apk
|
alpine-baselayout-data 3.7.2-r1 apk
|
||||||
alpine-keys 2.5-r0 apk
|
alpine-keys 2.6-r0 apk
|
||||||
alpine-release 3.22.4-r0 apk
|
alpine-release 3.24.2-r0 apk
|
||||||
annotated-types 0.7.0 python
|
annotated-types 0.8.0 python
|
||||||
anyio 4.13.0 python
|
anyio 4.15.1 python
|
||||||
aom-libs 3.12.1-r0 apk
|
aom-libs 3.14.1-r0 apk
|
||||||
apache2-utils 2.4.67-r0 apk
|
apache2-utils 2.4.68-r0 apk
|
||||||
apk-tools 2.14.9-r3 apk
|
apk-tools 3.0.8-r0 apk
|
||||||
apr 1.7.5-r0 apk
|
apr 1.7.6-r0 apk
|
||||||
apr-util 1.6.3-r1 apk
|
apr-util 1.6.4-r0 apk
|
||||||
argon2-libs 20190702-r5 apk
|
argon2-libs 20190702-r5 apk
|
||||||
autocommand 2.2.2 python
|
autocommand 2.2.2 python
|
||||||
azure-common 1.1.28 python
|
azure-common 1.1.28 python
|
||||||
azure-core 1.41.0 python
|
azure-core 1.41.0 python
|
||||||
azure-identity 1.25.3 python
|
azure-identity 1.26.0 python
|
||||||
azure-mgmt-core 1.6.0 python
|
azure-mgmt-core 1.6.0 python
|
||||||
azure-mgmt-dns 9.0.0 python
|
azure-mgmt-dns 9.0.0 python
|
||||||
backports-tarfile 1.2.0 python
|
backports-tarfile 1.2.0 python
|
||||||
bash 5.2.37-r0 apk
|
bash 5.3.9-r1 apk
|
||||||
beautifulsoup4 4.14.3 python
|
beautifulsoup4 4.15.0 python
|
||||||
boto3 1.43.18 python
|
boto3 1.43.108 python
|
||||||
botocore 1.43.18 python
|
botocore 1.43.108 python
|
||||||
brotli-libs 1.1.0-r2 apk
|
brotli-libs 1.2.0-r1 apk
|
||||||
bs4 0.0.2 python
|
bs4 0.0.2 python
|
||||||
busybox 1.37.0-r20 apk
|
busybox 1.37.0-r31 apk
|
||||||
busybox-binsh 1.37.0-r20 apk
|
busybox-binsh 1.37.0-r31 apk
|
||||||
c-ares 1.34.6-r0 apk
|
c-ares 1.34.8-r0 apk
|
||||||
c-client 2007f-r15 apk
|
ca-certificates 20260909-r0 apk
|
||||||
ca-certificates 20260413-r0 apk
|
ca-certificates-bundle 20260909-r0 apk
|
||||||
ca-certificates-bundle 20260413-r0 apk
|
catatonit 0.2.1-r0 apk
|
||||||
catatonit 0.2.1-r0 apk
|
certbot 5.8.0 python
|
||||||
certbot 5.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
|
certbot-dns-azure 1.5.0 python
|
||||||
certbot-dns-azure 1.5.0 python
|
certbot-dns-bunny 3.0.0 python
|
||||||
certbot-dns-bunny 3.0.0 python
|
certbot-dns-cloudflare 5.8.0 python
|
||||||
certbot-dns-cloudflare 5.6.0 python
|
certbot-dns-cpanel 0.4.0 python
|
||||||
certbot-dns-cpanel 0.4.0 python
|
certbot-dns-desec 1.3.2 python
|
||||||
certbot-dns-desec 1.3.2 python
|
certbot-dns-digitalocean 5.8.0 python
|
||||||
certbot-dns-digitalocean 5.6.0 python
|
certbot-dns-directadmin 1.0.15 python
|
||||||
certbot-dns-directadmin 1.0.15 python
|
certbot-dns-dnsimple 5.8.0 python
|
||||||
certbot-dns-dnsimple 5.6.0 python
|
certbot-dns-dnsmadeeasy 5.8.0 python
|
||||||
certbot-dns-dnsmadeeasy 5.6.0 python
|
certbot-dns-dnspod 0.1.0 python
|
||||||
certbot-dns-dnspod 0.1.0 python
|
certbot-dns-do 0.31.0 python
|
||||||
certbot-dns-do 0.31.0 python
|
certbot-dns-domeneshop 0.2.9 python
|
||||||
certbot-dns-domeneshop 0.2.9 python
|
certbot-dns-dreamhost 1.0 python
|
||||||
certbot-dns-dreamhost 1.0 python
|
certbot-dns-duckdns 1.9.0 python
|
||||||
certbot-dns-duckdns 1.8.0 python
|
certbot-dns-dynudns 0.0.6 python
|
||||||
certbot-dns-dynudns 0.0.6 python
|
certbot-dns-freedns 0.2.0 python
|
||||||
certbot-dns-freedns 0.2.0 python
|
certbot-dns-gehirn 5.8.0 python
|
||||||
certbot-dns-gehirn 5.6.0 python
|
certbot-dns-glesys 2.1.0 python
|
||||||
certbot-dns-glesys 2.1.0 python
|
certbot-dns-godaddy 2.8.0 python
|
||||||
certbot-dns-godaddy 2.8.0 python
|
certbot-dns-google 5.8.0 python
|
||||||
certbot-dns-google 5.6.0 python
|
certbot-dns-he 1.0.0 python
|
||||||
certbot-dns-he 1.0.0 python
|
certbot-dns-hetzner 4.0.0 python
|
||||||
certbot-dns-hetzner 4.0.0 python
|
certbot-dns-hetzner-cloud 1.0.5 python
|
||||||
certbot-dns-hetzner-cloud 1.0.5 python
|
certbot-dns-infomaniak 0.3.3 python
|
||||||
certbot-dns-infomaniak 0.2.4 python
|
certbot-dns-inwx 3.0.3 python
|
||||||
certbot-dns-inwx 3.0.3 python
|
certbot-dns-ionos 2024.11.9 python
|
||||||
certbot-dns-ionos 2024.11.9 python
|
certbot-dns-linode 5.8.0 python
|
||||||
certbot-dns-linode 5.6.0 python
|
certbot-dns-loopia 1.0.1 python
|
||||||
certbot-dns-loopia 1.0.1 python
|
certbot-dns-luadns 5.8.0 python
|
||||||
certbot-dns-luadns 5.6.0 python
|
certbot-dns-mijn-host 0.0.10 python
|
||||||
certbot-dns-namecheap 1.0.0 python
|
certbot-dns-namecheap 1.0.0 python
|
||||||
certbot-dns-netcup 2.0.3 python
|
certbot-dns-netcup 2.0.3 python
|
||||||
certbot-dns-njalla 2.0.2 python
|
certbot-dns-njalla 2.0.2 python
|
||||||
certbot-dns-nsone 5.6.0 python
|
certbot-dns-nsone 5.8.0 python
|
||||||
certbot-dns-ovh 5.6.0 python
|
certbot-dns-ovh 5.8.0 python
|
||||||
certbot-dns-porkbun 0.11.0 python
|
certbot-dns-porkbun 0.11.0 python
|
||||||
certbot-dns-rfc2136 5.6.0 python
|
certbot-dns-rfc2136 5.8.0 python
|
||||||
certbot-dns-route53 5.6.0 python
|
certbot-dns-route53 5.8.0 python
|
||||||
certbot-dns-sakuracloud 5.6.0 python
|
certbot-dns-sakuracloud 5.8.0 python
|
||||||
certbot-dns-standalone 1.2.1 python
|
certbot-dns-standalone 1.2.1 python
|
||||||
certbot-dns-transip 0.5.2 python
|
certbot-dns-transip 0.5.2 python
|
||||||
certbot-dns-vultr 1.1.0 python
|
certbot-dns-vultr 1.1.0 python
|
||||||
certbot-plugin-gandi 1.5.0 python
|
certbot-plugin-gandi 1.5.0 python
|
||||||
certifi 2026.5.20 python
|
certifi 2026.7.22 python
|
||||||
cffi 2.0.0 python
|
cffi 2.1.1 python
|
||||||
charset-normalizer 3.4.7 python
|
charset-normalizer 3.5.2 python
|
||||||
cli UNKNOWN binary
|
cli UNKNOWN binary
|
||||||
cli-32 UNKNOWN binary
|
cli-32 UNKNOWN binary
|
||||||
cli-64 UNKNOWN binary
|
cli-64 UNKNOWN binary
|
||||||
cli-arm64 UNKNOWN binary
|
cli-arm64 UNKNOWN binary
|
||||||
cloudflare 5.2.0 python
|
cloudflare 5.9.0 python
|
||||||
composer 2.10.0 binary
|
composer 2.10.3 binary
|
||||||
configargparse 1.7.5 python
|
configargparse 1.8.0 python
|
||||||
configobj 5.0.9 python
|
configobj 5.0.9 python
|
||||||
coreutils 9.7-r1 apk
|
coreutils 9.11-r0 apk
|
||||||
coreutils-env 9.7-r1 apk
|
coreutils-env 9.11-r0 apk
|
||||||
coreutils-fmt 9.7-r1 apk
|
coreutils-fmt 9.11-r0 apk
|
||||||
coreutils-sha512sum 9.7-r1 apk
|
coreutils-sha512sum 9.11-r0 apk
|
||||||
cryptography 48.0.0 python
|
cryptography 50.0.2 python
|
||||||
curl 8.14.1-r2 apk
|
curl 8.22.0-r0 apk
|
||||||
distro 1.9.0 python
|
distro 1.9.0 python
|
||||||
dns-lexicon 3.25.2 python
|
dns-lexicon 3.25.2 python
|
||||||
dnslib 0.9.26 python
|
dnslib 0.9.26 python
|
||||||
dnspython 2.8.0 python
|
dnspython 2.8.0 python
|
||||||
domeneshop 0.4.4 python
|
domeneshop 0.4.4 python
|
||||||
fail2ban 1.1.0 python
|
fail2ban 1.1.0 python
|
||||||
fail2ban 1.1.0-r3 apk
|
fail2ban 1.1.0-r3 apk
|
||||||
fail2ban-pyc 1.1.0-r3 apk
|
fail2ban-pyc 1.1.0-r3 apk
|
||||||
filelock 3.29.0 python
|
filelock 4.0.9 python
|
||||||
findutils 4.10.0-r0 apk
|
findutils 4.10.0-r1 apk
|
||||||
fontconfig 2.15.0-r3 apk
|
fontconfig 2.17.1-r1 apk
|
||||||
freetype 2.13.3-r0 apk
|
freetype 2.14.3-r0 apk
|
||||||
future 1.0.0 python
|
future 1.0.0 python
|
||||||
gdbm 1.24-r0 apk
|
gdbm 1.26-r0 apk
|
||||||
git 2.49.1-r0 apk
|
git 2.54.0-r0 apk
|
||||||
git-init-template 2.49.1-r0 apk
|
git-init-template 2.54.0-r0 apk
|
||||||
git-perl 2.49.1-r0 apk
|
git-perl 2.54.0-r0 apk
|
||||||
gmp 6.3.0-r3 apk
|
gmp 6.3.0-r4 apk
|
||||||
gnupg 2.4.9-r0 apk
|
gnupg 2.4.9-r1 apk
|
||||||
gnupg-dirmngr 2.4.9-r0 apk
|
gnupg-dirmngr 2.4.9-r1 apk
|
||||||
gnupg-gpgconf 2.4.9-r0 apk
|
gnupg-gpgconf 2.4.9-r1 apk
|
||||||
gnupg-keyboxd 2.4.9-r0 apk
|
gnupg-keyboxd 2.4.9-r1 apk
|
||||||
gnupg-utils 2.4.9-r0 apk
|
gnupg-utils 2.4.9-r1 apk
|
||||||
gnupg-wks-client 2.4.9-r0 apk
|
gnupg-wks-client 2.4.9-r1 apk
|
||||||
gnutls 3.8.13-r0 apk
|
gnutls 3.8.13-r0 apk
|
||||||
google-api-core 2.30.3 python
|
google-api-core 2.40.0 python
|
||||||
google-api-python-client 2.197.0 python
|
google-api-python-client 2.201.0 python
|
||||||
google-auth 2.53.0 python
|
google-auth 2.59.1 python
|
||||||
google-auth-httplib2 0.4.0 python
|
google-auth-httplib2 0.4.4 python
|
||||||
googleapis-common-protos 1.75.0 python
|
googleapis-common-protos 1.75.5 python
|
||||||
gpg 2.4.9-r0 apk
|
gpg 2.4.9-r1 apk
|
||||||
gpg-agent 2.4.9-r0 apk
|
gpg-agent 2.4.9-r1 apk
|
||||||
gpg-wks-server 2.4.9-r0 apk
|
gpg-wks-server 2.4.9-r1 apk
|
||||||
gpgsm 2.4.9-r0 apk
|
gpgsm 2.4.9-r1 apk
|
||||||
gpgv 2.4.9-r0 apk
|
gpgv 2.4.9-r1 apk
|
||||||
gui UNKNOWN binary
|
gui UNKNOWN binary
|
||||||
gui-32 UNKNOWN binary
|
gui-32 UNKNOWN binary
|
||||||
gui-64 UNKNOWN binary
|
gui-64 UNKNOWN binary
|
||||||
gui-arm64 UNKNOWN binary
|
gui-arm64 UNKNOWN binary
|
||||||
h11 0.16.0 python
|
h11 0.16.0 python
|
||||||
hcloud 2.20.0 python
|
hcloud 2.26.0 python
|
||||||
httpcore 1.0.9 python
|
httpcore 1.0.9 python
|
||||||
httplib2 0.31.2 python
|
httplib2 0.32.0 python
|
||||||
httpx 0.28.1 python
|
httpx 0.28.1 python
|
||||||
icu-data-en 76.1-r1 apk
|
icu-data-en 78.1-r0 apk
|
||||||
icu-libs 76.1-r1 apk
|
icu-libs 78.1-r0 apk
|
||||||
idna 3.17 python
|
idna 3.20 python
|
||||||
importlib-metadata 8.7.1 python
|
importlib-metadata 8.7.1 python
|
||||||
inotify-tools 4.23.9.0-r0 apk
|
inotify-tools 4.23.9.0-r0 apk
|
||||||
inotify-tools-libs 4.23.9.0-r0 apk
|
inotify-tools-libs 4.23.9.0-r0 apk
|
||||||
inwx-domrobot 3.2.0 python
|
inwx-domrobot 3.2.0 python
|
||||||
iptables 1.8.11-r1 apk
|
iptables 1.8.13-r0 apk
|
||||||
iptables-legacy 1.8.11-r1 apk
|
iptables-legacy 1.8.13-r0 apk
|
||||||
isodate 0.7.2 python
|
isodate 0.7.2 python
|
||||||
jaraco-context 6.1.0 python
|
jaraco-context 6.1.0 python
|
||||||
jaraco-functools 4.4.0 python
|
jaraco-functools 4.4.0 python
|
||||||
jaraco-text 4.0.0 python
|
jaraco-text 4.0.0 python
|
||||||
jinja2 3.1.6 python
|
jinja2 3.1.6 python
|
||||||
jmespath 1.1.0 python
|
jmespath 1.1.0 python
|
||||||
josepy 2.2.0 python
|
josepy 2.2.0 python
|
||||||
jq 1.8.1-r0 apk
|
jq 1.8.2-r0 apk
|
||||||
jsonpickle 4.1.2 python
|
jsonpickle 4.1.3 python
|
||||||
libapk2 2.14.9-r3 apk
|
libapk 3.0.8-r0 apk
|
||||||
libassuan 2.5.7-r0 apk
|
libassuan 3.0.2-r0 apk
|
||||||
libattr 2.5.2-r2 apk
|
libattr 2.5.2-r2 apk
|
||||||
libavif 1.3.0-r0 apk
|
libavif 1.4.1-r0 apk
|
||||||
libbsd 0.12.2-r0 apk
|
libbsd 0.12.2-r0 apk
|
||||||
libbz2 1.0.8-r6 apk
|
libbz2 1.0.8-r6 apk
|
||||||
libcrypto3 3.5.6-r0 apk
|
libcrypto3 3.5.9-r0 apk
|
||||||
libcurl 8.14.1-r2 apk
|
libcurl 8.22.0-r0 apk
|
||||||
libdav1d 1.5.1-r0 apk
|
libdav1d 1.5.3-r0 apk
|
||||||
libedit 20250104.3.1-r1 apk
|
libedit 20260508.3.1-r1 apk
|
||||||
libevent 2.1.12-r8 apk
|
libevent 2.1.13-r0 apk
|
||||||
libexpat 2.7.5-r0 apk
|
libexpat 2.8.5-r0 apk
|
||||||
libffi 3.4.8-r0 apk
|
libffi 3.5.2-r1 apk
|
||||||
libgcc 14.2.0-r6 apk
|
libgcc 15.2.0-r5 apk
|
||||||
libgcrypt 1.10.3-r1 apk
|
libgcrypt 1.12.2-r0 apk
|
||||||
libgd 2.3.3-r10 apk
|
libgd 2.3.3-r10 apk
|
||||||
libgpg-error 1.55-r0 apk
|
libgpg-error 1.61-r0 apk
|
||||||
libice 1.1.2-r0 apk
|
libice 1.1.2-r0 apk
|
||||||
libidn2 2.3.7-r0 apk
|
libidn2 2.3.8-r0 apk
|
||||||
libintl 0.24.1-r0 apk
|
libintl 1.0-r0 apk
|
||||||
libip4tc 1.8.11-r1 apk
|
libip4tc 1.8.13-r0 apk
|
||||||
libip6tc 1.8.11-r1 apk
|
libip6tc 1.8.13-r0 apk
|
||||||
libjpeg-turbo 3.1.0-r0 apk
|
libjpeg-turbo 3.1.3-r0 apk
|
||||||
libksba 1.6.7-r0 apk
|
libksba 1.7.0-r0 apk
|
||||||
libldap 2.6.8-r0 apk
|
libldap 2.6.15-r0 apk
|
||||||
libmaxminddb-libs 1.9.1-r0 apk
|
libmaxminddb-libs 1.13.3-r0 apk
|
||||||
libmd 1.1.0-r0 apk
|
libmd 1.2.0-r0 apk
|
||||||
libmemcached-libs 1.1.4-r1 apk
|
libmemcached-libs 1.1.4-r1 apk
|
||||||
libmnl 1.0.5-r2 apk
|
libmnl 1.0.5-r2 apk
|
||||||
libncursesw 6.5_p20250503-r0 apk
|
libncursesw 6.6_p20260516-r0 apk
|
||||||
libnftnl 1.2.9-r0 apk
|
libnftnl 1.3.1-r0 apk
|
||||||
libpanelw 6.5_p20250503-r0 apk
|
libpanelw 6.6_p20260516-r0 apk
|
||||||
libpng 1.6.57-r0 apk
|
libpng 1.6.59-r0 apk
|
||||||
libpq 17.10-r0 apk
|
libpq 18.6-r0 apk
|
||||||
libproc2 4.0.4-r3 apk
|
libproc2 4.0.6-r0 apk
|
||||||
libpsl 0.21.5-r3 apk
|
libpsl 0.21.5-r3 apk
|
||||||
libsasl 2.1.28-r8 apk
|
libsasl 2.1.28-r9 apk
|
||||||
libseccomp 2.6.0-r0 apk
|
libseccomp 2.6.0-r2 apk
|
||||||
libsharpyuv 1.5.0-r0 apk
|
libsharpyuv 1.6.0-r0 apk
|
||||||
libsm 1.2.5-r0 apk
|
libsm 1.2.6-r0 apk
|
||||||
libsodium 1.0.20-r1 apk
|
libsodium 1.0.22-r0 apk
|
||||||
libssl3 3.5.6-r0 apk
|
libssl3 3.5.9-r0 apk
|
||||||
libstdc++ 14.2.0-r6 apk
|
libstdc++ 15.2.0-r5 apk
|
||||||
libtasn1 4.21.0-r0 apk
|
libtasn1 4.21.0-r0 apk
|
||||||
libunistring 1.3-r0 apk
|
libunistring 1.4.2-r0 apk
|
||||||
libuuid 2.41-r9 apk
|
libuuid 2.42.3-r1 apk
|
||||||
libwebp 1.5.0-r0 apk
|
libwebp 1.6.0-r0 apk
|
||||||
libx11 1.8.11-r0 apk
|
libx11 1.8.13-r0 apk
|
||||||
libxau 1.0.12-r0 apk
|
libxau 1.0.12-r0 apk
|
||||||
libxcb 1.17.0-r0 apk
|
libxcb 1.17.0-r2 apk
|
||||||
libxdmcp 1.1.5-r1 apk
|
libxdmcp 1.1.5-r1 apk
|
||||||
libxext 1.3.6-r2 apk
|
libxext 1.3.7-r0 apk
|
||||||
libxml2 2.13.9-r1 apk
|
libxml2 2.13.9-r2 apk
|
||||||
libxpm 3.5.19-r0 apk
|
libxpm 3.5.19-r0 apk
|
||||||
libxslt 1.1.43-r3 apk
|
libxslt 1.1.43-r3 apk
|
||||||
libxt 1.3.1-r0 apk
|
libxt 1.3.1-r0 apk
|
||||||
libxtables 1.8.11-r1 apk
|
libxtables 1.8.13-r0 apk
|
||||||
libyuv 0.0.1887.20251502-r1 apk
|
libyuv 0.0.1928-r0 apk
|
||||||
libzip 1.11.4-r0 apk
|
libzip 1.11.4-r2 apk
|
||||||
linux-pam 1.7.0-r4 apk
|
linux-pam 1.7.1-r2 apk
|
||||||
logrotate 3.21.0-r1 apk
|
logrotate 3.22.0-r0 apk
|
||||||
loopialib 0.2.0 python
|
loopialib 0.2.0 python
|
||||||
lxml 6.1.1 python
|
lxml 6.1.3 python
|
||||||
lz4-libs 1.10.0-r0 apk
|
lz4-libs 1.10.0-r1 apk
|
||||||
markupsafe 3.0.3 python
|
markupsafe 3.0.4 python
|
||||||
memcached 1.6.32-r0 apk
|
memcached 1.6.42-r0 apk
|
||||||
mock 5.2.0 python
|
mock 5.2.0 python
|
||||||
more-itertools 10.8.0 python
|
more-itertools 10.8.0 python
|
||||||
mpdecimal 4.0.1-r0 apk
|
mpdecimal 4.0.1-r0 apk
|
||||||
msal 1.37.0 python
|
msal 1.39.0 python
|
||||||
msal-extensions 1.3.1 python
|
msal-extensions 1.3.1 python
|
||||||
musl 1.2.5-r12 apk
|
musl 1.2.6-r2 apk
|
||||||
musl-utils 1.2.5-r12 apk
|
musl-utils 1.2.6-r2 apk
|
||||||
nano 8.4-r0 apk
|
nano 9.2-r0 apk
|
||||||
ncurses-terminfo-base 6.5_p20250503-r0 apk
|
ncurses-terminfo-base 6.6_p20260516-r0 apk
|
||||||
netcat-openbsd 1.229.1-r0 apk
|
netcat-openbsd 1.234.1-r0 apk
|
||||||
nettle 3.10.2-r0 apk
|
nettle 3.10.2-r0 apk
|
||||||
nghttp2-libs 1.69.0-r0 apk
|
nghttp2-libs 1.69.0-r0 apk
|
||||||
nginx 1.28.3-r2 apk
|
nginx 1.30.4-r1 apk
|
||||||
nginx-mod-devel-kit 1.28.3-r2 apk
|
nginx-mod-devel-kit 1.30.4-r1 apk
|
||||||
nginx-mod-http-brotli 1.28.3-r2 apk
|
nginx-mod-http-brotli 1.30.4-r1 apk
|
||||||
nginx-mod-http-dav-ext 1.28.3-r2 apk
|
nginx-mod-http-dav-ext 1.30.4-r1 apk
|
||||||
nginx-mod-http-echo 1.28.3-r2 apk
|
nginx-mod-http-echo 1.30.4-r1 apk
|
||||||
nginx-mod-http-fancyindex 1.28.3-r2 apk
|
nginx-mod-http-fancyindex 1.30.4-r1 apk
|
||||||
nginx-mod-http-geoip2 1.28.3-r2 apk
|
nginx-mod-http-geoip2 1.30.4-r1 apk
|
||||||
nginx-mod-http-headers-more 1.28.3-r2 apk
|
nginx-mod-http-headers-more 1.30.4-r1 apk
|
||||||
nginx-mod-http-image-filter 1.28.3-r2 apk
|
nginx-mod-http-image-filter 1.30.4-r1 apk
|
||||||
nginx-mod-http-perl 1.28.3-r2 apk
|
nginx-mod-http-perl 1.30.4-r1 apk
|
||||||
nginx-mod-http-redis2 1.28.3-r2 apk
|
nginx-mod-http-redis2 1.30.4-r1 apk
|
||||||
nginx-mod-http-set-misc 1.28.3-r2 apk
|
nginx-mod-http-set-misc 1.30.4-r1 apk
|
||||||
nginx-mod-http-upload-progress 1.28.3-r2 apk
|
nginx-mod-http-upload-progress 1.30.4-r1 apk
|
||||||
nginx-mod-http-xslt-filter 1.28.3-r2 apk
|
nginx-mod-http-xslt-filter 1.30.4-r1 apk
|
||||||
nginx-mod-mail 1.28.3-r2 apk
|
nginx-mod-mail 1.30.4-r1 apk
|
||||||
nginx-mod-rtmp 1.28.3-r2 apk
|
nginx-mod-rtmp 1.30.4-r1 apk
|
||||||
nginx-mod-stream 1.28.3-r2 apk
|
nginx-mod-stream 1.30.4-r1 apk
|
||||||
nginx-mod-stream-geoip2 1.28.3-r2 apk
|
nginx-mod-stream-geoip2 1.30.4-r1 apk
|
||||||
nginx-vim 1.28.3-r2 apk
|
nginx-vim 1.30.4-r1 apk
|
||||||
npth 1.8-r0 apk
|
npth 1.8-r0 apk
|
||||||
oniguruma 6.9.10-r0 apk
|
oniguruma 6.9.10-r0 apk
|
||||||
openssl 3.5.6-r0 apk
|
openssl 3.5.9-r0 apk
|
||||||
p11-kit 0.25.5-r2 apk
|
opentelemetry-api 1.45.0 python
|
||||||
packaging 26.0 python
|
p11-kit 0.26.2-r0 apk
|
||||||
packaging 26.2 python
|
packaging 26.0 python
|
||||||
parsedatetime 2.6 python
|
packaging 26.3 python
|
||||||
pcre2 10.46-r0 apk
|
parsedatetime 2.6 python
|
||||||
perl 5.40.4-r0 apk
|
pcre2 10.48-r0 apk
|
||||||
perl-error 0.17030-r0 apk
|
perl 5.42.2-r1 apk
|
||||||
perl-git 2.49.1-r0 apk
|
perl-error 0.17030-r0 apk
|
||||||
php84 8.4.16-r0 apk
|
perl-git 2.54.0-r0 apk
|
||||||
php84-bcmath 8.4.16-r0 apk
|
php85 8.5.11-r0 apk
|
||||||
php84-bz2 8.4.16-r0 apk
|
php85-bcmath 8.5.11-r0 apk
|
||||||
php84-common 8.4.16-r0 apk
|
php85-bz2 8.5.11-r0 apk
|
||||||
php84-ctype 8.4.16-r0 apk
|
php85-common 8.5.11-r0 apk
|
||||||
php84-curl 8.4.16-r0 apk
|
php85-ctype 8.5.11-r0 apk
|
||||||
php84-dom 8.4.16-r0 apk
|
php85-curl 8.5.11-r0 apk
|
||||||
php84-exif 8.4.16-r0 apk
|
php85-dom 8.5.11-r0 apk
|
||||||
php84-fileinfo 8.4.16-r0 apk
|
php85-exif 8.5.11-r0 apk
|
||||||
php84-fpm 8.4.16-r0 apk
|
php85-fileinfo 8.5.11-r0 apk
|
||||||
php84-ftp 8.4.16-r0 apk
|
php85-fpm 8.5.11-r0 apk
|
||||||
php84-gd 8.4.16-r0 apk
|
php85-ftp 8.5.11-r0 apk
|
||||||
php84-gmp 8.4.16-r0 apk
|
php85-gd 8.5.11-r0 apk
|
||||||
php84-iconv 8.4.16-r0 apk
|
php85-gmp 8.5.11-r0 apk
|
||||||
php84-intl 8.4.16-r0 apk
|
php85-iconv 8.5.11-r0 apk
|
||||||
php84-ldap 8.4.16-r0 apk
|
php85-intl 8.5.11-r0 apk
|
||||||
php84-mbstring 8.4.16-r0 apk
|
php85-ldap 8.5.11-r0 apk
|
||||||
php84-mysqli 8.4.16-r0 apk
|
php85-mbstring 8.5.11-r0 apk
|
||||||
php84-mysqlnd 8.4.16-r0 apk
|
php85-mysqli 8.5.11-r0 apk
|
||||||
php84-opcache 8.4.16-r0 apk
|
php85-mysqlnd 8.5.11-r0 apk
|
||||||
php84-openssl 8.4.16-r0 apk
|
php85-openssl 8.5.11-r0 apk
|
||||||
php84-pdo 8.4.16-r0 apk
|
php85-pdo 8.5.11-r0 apk
|
||||||
php84-pdo_mysql 8.4.16-r0 apk
|
php85-pdo_mysql 8.5.11-r0 apk
|
||||||
php84-pdo_odbc 8.4.16-r0 apk
|
php85-pdo_odbc 8.5.11-r0 apk
|
||||||
php84-pdo_pgsql 8.4.16-r0 apk
|
php85-pdo_pgsql 8.5.11-r0 apk
|
||||||
php84-pdo_sqlite 8.4.16-r0 apk
|
php85-pdo_sqlite 8.5.11-r0 apk
|
||||||
php84-pear 8.4.16-r0 apk
|
php85-pear 8.5.11-r0 apk
|
||||||
php84-pecl-apcu 5.1.27-r0 apk
|
php85-pecl-apcu 5.1.28-r0 apk
|
||||||
php84-pecl-igbinary 3.2.16-r1 apk
|
php85-pecl-igbinary 3.2.17_rc1-r0 apk
|
||||||
php84-pecl-imap 1.0.3-r0 apk
|
php85-pecl-memcached 3.4.0-r0 apk
|
||||||
php84-pecl-memcached 3.3.0-r0 apk
|
php85-pecl-msgpack 3.0.1-r0 apk
|
||||||
php84-pecl-msgpack 3.0.0-r0 apk
|
php85-pecl-redis 6.3.0-r0 apk
|
||||||
php84-pecl-redis 6.3.0-r0 apk
|
php85-pgsql 8.5.11-r0 apk
|
||||||
php84-pgsql 8.4.16-r0 apk
|
php85-phar 8.5.11-r0 apk
|
||||||
php84-phar 8.4.16-r0 apk
|
php85-posix 8.5.11-r0 apk
|
||||||
php84-posix 8.4.16-r0 apk
|
php85-session 8.5.11-r0 apk
|
||||||
php84-session 8.4.16-r0 apk
|
php85-simplexml 8.5.11-r0 apk
|
||||||
php84-simplexml 8.4.16-r0 apk
|
php85-soap 8.5.11-r0 apk
|
||||||
php84-soap 8.4.16-r0 apk
|
php85-sockets 8.5.11-r0 apk
|
||||||
php84-sockets 8.4.16-r0 apk
|
php85-sodium 8.5.11-r0 apk
|
||||||
php84-sodium 8.4.16-r0 apk
|
php85-sqlite3 8.5.11-r0 apk
|
||||||
php84-sqlite3 8.4.16-r0 apk
|
php85-tokenizer 8.5.11-r0 apk
|
||||||
php84-tokenizer 8.4.16-r0 apk
|
php85-xml 8.5.11-r0 apk
|
||||||
php84-xml 8.4.16-r0 apk
|
php85-xmlreader 8.5.11-r0 apk
|
||||||
php84-xmlreader 8.4.16-r0 apk
|
php85-xmlwriter 8.5.11-r0 apk
|
||||||
php84-xmlwriter 8.4.16-r0 apk
|
php85-xsl 8.5.11-r0 apk
|
||||||
php84-xsl 8.4.16-r0 apk
|
php85-zip 8.5.11-r0 apk
|
||||||
php84-zip 8.4.16-r0 apk
|
pinentry 1.3.2-r0 apk
|
||||||
pinentry 1.3.1-r0 apk
|
pip 26.2.1 python
|
||||||
pip 26.1.2 python
|
pkb-client 2.3.1 python
|
||||||
pkb-client 2.3.1 python
|
platformdirs 4.4.0 python
|
||||||
platformdirs 4.4.0 python
|
popt 1.19-r4 apk
|
||||||
popt 1.19-r4 apk
|
procps-ng 4.0.6-r0 apk
|
||||||
procps-ng 4.0.4-r3 apk
|
proto-plus 1.29.0 python
|
||||||
proto-plus 1.28.0 python
|
protobuf 7.36.2 python
|
||||||
protobuf 7.35.0 python
|
pyacmedns 0.4 python
|
||||||
pyacmedns 0.4 python
|
pyasn1 0.6.4 python
|
||||||
pyasn1 0.6.3 python
|
pyasn1-modules 0.4.2 python
|
||||||
pyasn1-modules 0.4.2 python
|
pyc 3.14.8-r0 apk
|
||||||
pyc 3.12.13-r0 apk
|
pycparser 3.0 python
|
||||||
pycparser 3.0 python
|
pydantic 2.13.5 python
|
||||||
pydantic 2.13.4 python
|
pydantic-core 2.46.5 python
|
||||||
pydantic-core 2.46.4 python
|
pyjwt 2.15.1 python
|
||||||
pyjwt 2.13.0 python
|
pynamecheap 0.0.3 python
|
||||||
pynamecheap 0.0.3 python
|
pyopenssl 26.4.0 python
|
||||||
pyopenssl 26.2.0 python
|
pyotp 2.10.0 python
|
||||||
pyotp 2.9.0 python
|
pyparsing 3.3.3 python
|
||||||
pyparsing 3.3.2 python
|
pyrfc3339 2.1.0 python
|
||||||
pyrfc3339 2.1.0 python
|
python-dateutil 2.9.0.post0 python
|
||||||
python-dateutil 2.9.0.post0 python
|
python-digitalocean 1.17.0 python
|
||||||
python-digitalocean 1.17.0 python
|
python-transip 0.6.0 python
|
||||||
python-transip 0.6.0 python
|
python3 3.14.8-r0 apk
|
||||||
python3 3.12.13-r0 apk
|
python3-pyc 3.14.8-r0 apk
|
||||||
python3-pyc 3.12.13-r0 apk
|
python3-pycache-pyc0 3.14.8-r0 apk
|
||||||
python3-pycache-pyc0 3.12.13-r0 apk
|
pyyaml 6.0.3 python
|
||||||
pyyaml 6.0.3 python
|
readline 8.3.3-r1 apk
|
||||||
readline 8.2.13-r1 apk
|
requests 2.34.2 python
|
||||||
requests 2.34.2 python
|
requests-file 3.0.1 python
|
||||||
requests-file 3.0.1 python
|
requests-mock 1.12.1 python
|
||||||
requests-mock 1.12.1 python
|
requests-unixsocket 0.4.1 python
|
||||||
requests-unixsocket 0.4.1 python
|
s3transfer 0.19.2 python
|
||||||
s3transfer 0.18.0 python
|
scanelf 1.3.9-r1 apk
|
||||||
scanelf 1.3.8-r1 apk
|
setuptools 84.0.0 python
|
||||||
setuptools 82.0.1 python
|
shadow 4.18.0-r1 apk
|
||||||
shadow 4.17.3-r0 apk
|
six 1.17.0 python
|
||||||
six 1.17.0 python
|
skalibs-libs 2.15.0.0-r0 apk
|
||||||
skalibs-libs 2.14.4.0-r0 apk
|
sniffio 1.3.1 python
|
||||||
sniffio 1.3.1 python
|
soupsieve 2.10 python
|
||||||
soupsieve 2.8.4 python
|
sqlite-libs 3.53.4-r0 apk
|
||||||
sqlite-libs 3.49.2-r1 apk
|
ssl_client 1.37.0-r31 apk
|
||||||
ssl_client 1.37.0-r20 apk
|
tiff 4.7.1-r0 apk
|
||||||
tiff 4.7.1-r0 apk
|
tldextract 5.3.2 python
|
||||||
tldextract 5.3.1 python
|
tomli 2.4.0 python
|
||||||
tomli 2.4.0 python
|
typing-extensions 4.16.0 python
|
||||||
typing-extensions 4.15.0 python
|
typing-inspection 0.4.4 python
|
||||||
typing-inspection 0.4.2 python
|
tzdata 2026d-r0 apk
|
||||||
tzdata 2026b-r0 apk
|
unixodbc 2.3.14-r1 apk
|
||||||
unixodbc 2.3.12-r0 apk
|
uritemplate 4.2.0 python
|
||||||
uritemplate 4.2.0 python
|
urllib3 2.8.0 python
|
||||||
urllib3 2.7.0 python
|
utmps-libs 0.1.3.3-r0 apk
|
||||||
utmps-libs 0.1.3.1-r0 apk
|
wheel 0.46.3 python
|
||||||
wheel 0.46.3 python
|
wheel 0.48.0 python
|
||||||
wheel 0.47.0 python
|
whois 5.6.6-r0 apk
|
||||||
whois 5.6.3-r0 apk
|
xz-libs 5.8.4-r0 apk
|
||||||
xz-libs 5.8.3-r0 apk
|
zipp 3.23.0 python
|
||||||
zipp 3.23.0 python
|
zlib 1.3.2-r0 apk
|
||||||
zlib 1.3.2-r0 apk
|
zope-interface 8.6 python
|
||||||
zope-interface 8.5 python
|
zstd-libs 1.5.7-r2 apk
|
||||||
zstd-libs 1.5.7-r0 apk
|
|
||||||
+8
-3
@@ -32,7 +32,8 @@ opt_param_usage_include_env: true
|
|||||||
opt_param_env_vars:
|
opt_param_env_vars:
|
||||||
- {env_var: "SUBDOMAINS", env_value: "www,", desc: "Subdomains you'd like the cert to cover (comma separated, no spaces) ie. `www,ftp,cloud`. For a wildcard cert, set this *exactly* to `wildcard` (wildcard cert is available via `dns` validation only)"}
|
- {env_var: "SUBDOMAINS", env_value: "www,", desc: "Subdomains you'd like the cert to cover (comma separated, no spaces) ie. `www,ftp,cloud`. For a wildcard cert, set this *exactly* to `wildcard` (wildcard cert is available via `dns` validation only)"}
|
||||||
- {env_var: "CERTPROVIDER", env_value: "", desc: "Optionally define the cert provider. Set to `zerossl` for ZeroSSL certs (requires existing [ZeroSSL account](https://app.zerossl.com/signup) and the e-mail address entered in `EMAIL` env var). Otherwise defaults to Let's Encrypt."}
|
- {env_var: "CERTPROVIDER", env_value: "", desc: "Optionally define the cert provider. Set to `zerossl` for ZeroSSL certs (requires existing [ZeroSSL account](https://app.zerossl.com/signup) and the e-mail address entered in `EMAIL` env var). Otherwise defaults to Let's Encrypt."}
|
||||||
- {env_var: "DNSPLUGIN", env_value: "cloudflare", desc: "Required if `VALIDATION` is set to `dns`. Options are `acmedns`, `aliyun`, `azure`, `bunny`, `cloudflare`, `cpanel`, `desec`, `digitalocean`, `directadmin`, `dnsimple`, `dnsmadeeasy`, `dnspod`, `do`, `domeneshop`, `dreamhost`, `duckdns`, `dynu`, `freedns`, `gandi`, `gehirn`, `glesys`, `godaddy`, `google`, `he`, `hetzner`, `hetzner-cloud`, `infomaniak`, `inwx`, `ionos`, `linode`, `loopia`, `luadns`, `namecheap`, `netcup`, `njalla`, `nsone`, `ovh`, `porkbun`, `rfc2136`, `route53`, `sakuracloud`, `standalone`, `transip`, and `vultr`. Also need to enter the credentials into the corresponding ini (or json for some plugins) file under `/config/dns-conf`."}
|
- {env_var: "CERT_PROFILE", env_value: "", desc: "Optionally define a cert profile to use for cert generation. This is useful if you want to use a custom cert profile instead of the default one. Currently only supported for Let's Encrypt. See https://letsencrypt.org/docs/profiles/ "}
|
||||||
|
- {env_var: "DNSPLUGIN", env_value: "cloudflare", desc: "Required if `VALIDATION` is set to `dns`. Options are `acmedns`, `aliyun`, `azure`, `bunny`, `cloudflare`, `cpanel`, `desec`, `digitalocean`, `directadmin`, `dnsimple`, `dnsmadeeasy`, `dnspod`, `do`, `domeneshop`, `dreamhost`, `duckdns`, `dynu`, `freedns`, `gandi`, `gehirn`, `glesys`, `godaddy`, `google`, `he`, `hetzner`, `hetzner-cloud`, `infomaniak`, `inwx`, `ionos`, `linode`, `loopia`, `luadns`, `mijn-host`, `namecheap`, `netcup`, `njalla`, `nsone`, `ovh`, `porkbun`, `rfc2136`, `route53`, `sakuracloud`, `standalone`, `transip`, and `vultr`. Also need to enter the credentials into the corresponding ini (or json for some plugins) file under `/config/dns-conf`."}
|
||||||
- {env_var: "PROPAGATION", env_value: "", desc: "Optionally override (in seconds) the default propagation time for the dns plugins."}
|
- {env_var: "PROPAGATION", env_value: "", desc: "Optionally override (in seconds) the default propagation time for the dns plugins."}
|
||||||
- {env_var: "EMAIL", env_value: "", desc: "Optional e-mail address used for cert expiration notifications (Required for ZeroSSL)."}
|
- {env_var: "EMAIL", env_value: "", desc: "Optional e-mail address used for cert expiration notifications (Required for ZeroSSL)."}
|
||||||
- {env_var: "ONLY_SUBDOMAINS", env_value: "false", desc: "If you wish to get certs only for certain subdomains, but not the main domain (main domain may be hosted on another machine and cannot be validated), set this to `true`"}
|
- {env_var: "ONLY_SUBDOMAINS", env_value: "false", desc: "If you wish to get certs only for certain subdomains, but not the main domain (main domain may be hosted on another machine and cannot be validated), set this to `true`"}
|
||||||
@@ -65,7 +66,7 @@ app_setup_block: |
|
|||||||
2. Certs that cover sub-subdomains of your main subdomain (ie. `*.yoursubdomain.duckdns.org`, set the `SUBDOMAINS` variable to `wildcard`)
|
2. Certs that cover sub-subdomains of your main subdomain (ie. `*.yoursubdomain.duckdns.org`, set the `SUBDOMAINS` variable to `wildcard`)
|
||||||
* `--cap-add=NET_ADMIN` is required for fail2ban to modify iptables
|
* `--cap-add=NET_ADMIN` is required for fail2ban to modify iptables
|
||||||
* After setup, navigate to `https://example.com` to access the default homepage (http access through port 80 is disabled by default, you can enable it by editing the default site config at `/config/nginx/site-confs/default.conf`).
|
* After setup, navigate to `https://example.com` to access the default homepage (http access through port 80 is disabled by default, you can enable it by editing the default site config at `/config/nginx/site-confs/default.conf`).
|
||||||
* Certs are checked nightly and if expiration is within 30 days, renewal is attempted. If your cert is about to expire in less than 30 days, check the logs under `/config/log/letsencrypt` to see why the renewals have been failing. It is recommended to input your e-mail in docker parameters so you receive expiration notices from Let's Encrypt in those circumstances.
|
* Certs are checked twice daily using ACME Renewal Information (ARI) to determine the optimal renewal window. If your cert is about to expire, check the logs under `/config/log/letsencrypt` to see why the renewals have been failing.
|
||||||
|
|
||||||
### Certbot Plugins
|
### Certbot Plugins
|
||||||
|
|
||||||
@@ -214,11 +215,15 @@ init_diagram: |
|
|||||||
svc-swag-auto-reload -> legacy-services
|
svc-swag-auto-reload -> legacy-services
|
||||||
}
|
}
|
||||||
Base Images: {
|
Base Images: {
|
||||||
"baseimage-alpine-nginx:3.22" <- "baseimage-alpine:3.22"
|
"baseimage-alpine-nginx:3.24" <- "baseimage-alpine:3.24"
|
||||||
}
|
}
|
||||||
"swag:latest" <- Base Images
|
"swag:latest" <- Base Images
|
||||||
# changelog
|
# changelog
|
||||||
changelogs:
|
changelogs:
|
||||||
|
- {date: "09.09.26:", desc: "Use new X-Tinyauth-Location header in Tinyauth locations and remove duplicate auth module headers."}
|
||||||
|
- {date: "19.07.26:", desc: "Rebase to Alpine 3.24 with PHP 8.5."}
|
||||||
|
- {date: "10.07.26:", desc: "Add support for Let's Encrypt cert profiles. Run certbot twice daily with a random delay."}
|
||||||
|
- {date: "19.06.26:", desc: "Add support for mijn.host dns validation."}
|
||||||
- {date: "01.06.26:", desc: "Remove obsolete old cert check logic."}
|
- {date: "01.06.26:", desc: "Remove obsolete old cert check logic."}
|
||||||
- {date: "23.01.26:", desc: "Reorder init to fix proxy conf version checks."}
|
- {date: "23.01.26:", desc: "Reorder init to fix proxy conf version checks."}
|
||||||
- {date: "21.12.25:", desc: "Add support for hetzner-cloud dns validation."}
|
- {date: "21.12.25:", desc: "Add support for hetzner-cloud dns validation."}
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
# Instructions: https://github.com/mijnhost/certbot-dns-mijn-host
|
||||||
|
# Replace with your API key from your mijn.host account.
|
||||||
|
dns_mijn_host_api_key = yourapikeygoeshere
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
# Instructions: https://github.com/certbot/certbot/blob/master/certbot-dns-ovh/certbot_dns_ovh/__init__.py#L20
|
# Instructions: https://github.com/certbot/certbot/blob/main/certbot-dns-ovh/src/certbot_dns_ovh/__init__.py#L24
|
||||||
# Replace with your values
|
# Replace with your values
|
||||||
dns_ovh_endpoint = ovh-eu
|
dns_ovh_endpoint = ovh-eu
|
||||||
dns_ovh_application_key = MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
|
dns_ovh_application_key = MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
|
||||||
|
|||||||
@@ -1,9 +1,22 @@
|
|||||||
## Version 2025/06/08 - Changelog: https://github.com/linuxserver/docker-swag/commits/master/root/defaults/nginx/tinyauth-location.conf.sample
|
## Version 2026/07/19 - Changelog: https://github.com/linuxserver/docker-swag/commits/master/root/defaults/nginx/tinyauth-location.conf.sample
|
||||||
# Make sure that your tinyauth container is in the same user defined bridge network and is named tinyauth
|
# Make sure that your tinyauth container is in the same user defined bridge network and is named tinyauth
|
||||||
# Rename /config/nginx/proxy-confs/tinyauth.subdomain.conf.sample to /config/nginx/proxy-confs/tinyauth.subdomain.conf
|
# Rename /config/nginx/proxy-confs/tinyauth.subdomain.conf.sample to /config/nginx/proxy-confs/tinyauth.subdomain.conf
|
||||||
|
|
||||||
## Send a subrequest to tinyauth to verify if the user is authenticated and has permission to access the resource
|
## Send a subrequest to tinyauth to verify if the user is authenticated and has permission to access the resource
|
||||||
auth_request /tinyauth;
|
auth_request /tinyauth;
|
||||||
|
auth_request_set $redirection_url $upstream_http_x_tinyauth_location;
|
||||||
|
error_page 401 403 =302 $redirection_url;
|
||||||
|
|
||||||
## If the subreqest returns 200 pass to the backend, if the subrequest returns 401 redirect to the portal
|
## Translate the user information response headers from the auth subrequest into variables
|
||||||
error_page 401 = @tinyauth_login;
|
auth_request_set $email $upstream_http_remote_email;
|
||||||
|
auth_request_set $groups $upstream_http_remote_groups;
|
||||||
|
auth_request_set $name $upstream_http_remote_name;
|
||||||
|
auth_request_set $user $upstream_http_remote_user;
|
||||||
|
|
||||||
|
## Inject the user information into the request made to the actual upstream
|
||||||
|
proxy_set_header Remote-Email $email;
|
||||||
|
proxy_set_header Remote-Groups $groups;
|
||||||
|
proxy_set_header Remote-Name $name;
|
||||||
|
proxy_set_header Remote-User $user;
|
||||||
|
|
||||||
|
## Can be extended with more custom headers https://tinyauth.app/docs/reference/headers#nginxnginx-proxy-manager
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
## Version 2025/06/08 - Changelog: https://github.com/linuxserver/docker-swag/commits/master/root/defaults/nginx/tinyauth-server.conf.sample
|
## Version 2026/09/08 - Changelog: https://github.com/linuxserver/docker-swag/commits/master/root/defaults/nginx/tinyauth-server.conf.sample
|
||||||
# Make sure that your tinyauth container is in the same user defined bridge network and is named tinyauth
|
# Make sure that your tinyauth container is in the same user defined bridge network and is named tinyauth
|
||||||
# Rename /config/nginx/proxy-confs/tinyauth.subdomain.conf.sample to /config/nginx/proxy-confs/tinyauth.subdomain.conf
|
# Rename /config/nginx/proxy-confs/tinyauth.subdomain.conf.sample to /config/nginx/proxy-confs/tinyauth.subdomain.conf
|
||||||
|
|
||||||
@@ -6,30 +6,17 @@
|
|||||||
location /tinyauth {
|
location /tinyauth {
|
||||||
internal;
|
internal;
|
||||||
|
|
||||||
include /config/nginx/proxy.conf;
|
|
||||||
include /config/nginx/resolver.conf;
|
include /config/nginx/resolver.conf;
|
||||||
set $upstream_tinyauth tinyauth;
|
set $upstream_tinyauth tinyauth;
|
||||||
proxy_pass http://$upstream_tinyauth:3000/api/auth/nginx;
|
proxy_pass http://$upstream_tinyauth:3000/api/auth/nginx;
|
||||||
|
|
||||||
proxy_set_header x-forwarded-proto $scheme;
|
# Don't send the body to the auth server
|
||||||
proxy_set_header x-forwarded-host $http_host;
|
proxy_pass_request_body off;
|
||||||
proxy_set_header x-forwarded-uri $request_uri;
|
proxy_set_header Content-Length "";
|
||||||
}
|
|
||||||
|
# Headers needed for authentication
|
||||||
# virtual location for tinyauth 401 redirects
|
proxy_set_header X-Original-URL $scheme://$http_host$request_uri;
|
||||||
location @tinyauth_login {
|
proxy_set_header X-Original-Method $request_method;
|
||||||
internal;
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
## Set the $target_url variable based on the original request
|
|
||||||
set_escape_uri $target_url $scheme://$http_host$request_uri;
|
|
||||||
|
|
||||||
## Set the $signin_url variable
|
|
||||||
set $domain $host;
|
|
||||||
if ($host ~* "^[^.]+\.([^.]+\..+)$") {
|
|
||||||
set $domain $1;
|
|
||||||
}
|
|
||||||
set $signin_url https://tinyauth.$domain/login?redirect_uri=$target_url;
|
|
||||||
|
|
||||||
## Redirect to login
|
|
||||||
return 302 $signin_url;
|
|
||||||
}
|
}
|
||||||
@@ -5,4 +5,4 @@
|
|||||||
0 3 * * 6 run-parts /etc/periodic/weekly
|
0 3 * * 6 run-parts /etc/periodic/weekly
|
||||||
0 5 1 * * run-parts /etc/periodic/monthly
|
0 5 1 * * run-parts /etc/periodic/monthly
|
||||||
|
|
||||||
8 2 * * * /app/le-renew.sh >> /config/log/letsencrypt/renewal.log 2>&1
|
0 */12 * * * sleep $((60 + $RANDOM % 230)); /app/le-renew.sh >> /config/log/letsencrypt/renewal.log 2>&1
|
||||||
@@ -12,12 +12,13 @@ EXTRA_DOMAINS=${EXTRA_DOMAINS}\\n\
|
|||||||
ONLY_SUBDOMAINS=${ONLY_SUBDOMAINS}\\n\
|
ONLY_SUBDOMAINS=${ONLY_SUBDOMAINS}\\n\
|
||||||
VALIDATION=${VALIDATION}\\n\
|
VALIDATION=${VALIDATION}\\n\
|
||||||
CERTPROVIDER=${CERTPROVIDER}\\n\
|
CERTPROVIDER=${CERTPROVIDER}\\n\
|
||||||
|
CERT_PROFILE=${CERT_PROFILE}\\n\
|
||||||
DNSPLUGIN=${DNSPLUGIN}\\n\
|
DNSPLUGIN=${DNSPLUGIN}\\n\
|
||||||
EMAIL=${EMAIL}\\n\
|
EMAIL=${EMAIL}\\n\
|
||||||
STAGING=${STAGING}\\n"
|
STAGING=${STAGING}\\n"
|
||||||
|
|
||||||
# Sanitize variables
|
# Sanitize variables
|
||||||
SANED_VARS=(DNSPLUGIN EMAIL EXTRA_DOMAINS ONLY_SUBDOMAINS STAGING SUBDOMAINS URL VALIDATION CERTPROVIDER)
|
SANED_VARS=(DNSPLUGIN EMAIL EXTRA_DOMAINS ONLY_SUBDOMAINS STAGING SUBDOMAINS URL VALIDATION CERTPROVIDER CERT_PROFILE)
|
||||||
for i in "${SANED_VARS[@]}"; do
|
for i in "${SANED_VARS[@]}"; do
|
||||||
export echo "${i}"="${!i//\"/}"
|
export echo "${i}"="${!i//\"/}"
|
||||||
export echo "${i}"="$(echo "${!i}" | tr '[:upper:]' '[:lower:]')"
|
export echo "${i}"="$(echo "${!i}" | tr '[:upper:]' '[:lower:]')"
|
||||||
@@ -80,7 +81,7 @@ if [[ -f "/config/donoteditthisfile.conf" ]]; then
|
|||||||
mv /config/donoteditthisfile.conf /config/.donoteditthisfile.conf
|
mv /config/donoteditthisfile.conf /config/.donoteditthisfile.conf
|
||||||
fi
|
fi
|
||||||
if [[ ! -f "/config/.donoteditthisfile.conf" ]]; then
|
if [[ ! -f "/config/.donoteditthisfile.conf" ]]; then
|
||||||
echo -e "ORIGURL=\"${URL}\" ORIGSUBDOMAINS=\"${SUBDOMAINS}\" ORIGONLY_SUBDOMAINS=\"${ONLY_SUBDOMAINS}\" ORIGEXTRA_DOMAINS=\"${EXTRA_DOMAINS}\" ORIGVALIDATION=\"${VALIDATION}\" ORIGDNSPLUGIN=\"${DNSPLUGIN}\" ORIGPROPAGATION=\"${PROPAGATION}\" ORIGSTAGING=\"${STAGING}\" ORIGCERTPROVIDER=\"${CERTPROVIDER}\" ORIGEMAIL=\"${EMAIL}\"" >/config/.donoteditthisfile.conf
|
echo -e "ORIGURL=\"${URL}\" ORIGSUBDOMAINS=\"${SUBDOMAINS}\" ORIGONLY_SUBDOMAINS=\"${ONLY_SUBDOMAINS}\" ORIGEXTRA_DOMAINS=\"${EXTRA_DOMAINS}\" ORIGVALIDATION=\"${VALIDATION}\" ORIGDNSPLUGIN=\"${DNSPLUGIN}\" ORIGPROPAGATION=\"${PROPAGATION}\" ORIGSTAGING=\"${STAGING}\" ORIGCERTPROVIDER=\"${CERTPROVIDER}\" ORIGEMAIL=\"${EMAIL}\" ORIGCERT_PROFILE=\"${CERT_PROFILE}\"" >/config/.donoteditthisfile.conf
|
||||||
echo "Created .donoteditthisfile.conf"
|
echo "Created .donoteditthisfile.conf"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -186,7 +187,8 @@ if [[ ! "${URL}" = "${ORIGURL}" ]] ||
|
|||||||
[[ ! "${DNSPLUGIN}" = "${ORIGDNSPLUGIN}" ]] ||
|
[[ ! "${DNSPLUGIN}" = "${ORIGDNSPLUGIN}" ]] ||
|
||||||
[[ ! "${PROPAGATION}" = "${ORIGPROPAGATION}" ]] ||
|
[[ ! "${PROPAGATION}" = "${ORIGPROPAGATION}" ]] ||
|
||||||
[[ ! "${STAGING}" = "${ORIGSTAGING}" ]] ||
|
[[ ! "${STAGING}" = "${ORIGSTAGING}" ]] ||
|
||||||
[[ ! "${CERTPROVIDER}" = "${ORIGCERTPROVIDER}" ]]; then
|
[[ ! "${CERTPROVIDER}" = "${ORIGCERTPROVIDER}" ]] ||
|
||||||
|
[[ ! "${CERT_PROFILE}" = "${ORIGCERT_PROFILE}" ]]; then
|
||||||
echo "Different validation parameters entered than what was used before. Revoking and deleting existing certificate, and an updated one will be created"
|
echo "Different validation parameters entered than what was used before. Revoking and deleting existing certificate, and an updated one will be created"
|
||||||
if [[ "${ORIGCERTPROVIDER}" = "zerossl" ]]; then
|
if [[ "${ORIGCERTPROVIDER}" = "zerossl" ]]; then
|
||||||
REV_ACMESERVER=("https://acme.zerossl.com/v2/DV90")
|
REV_ACMESERVER=("https://acme.zerossl.com/v2/DV90")
|
||||||
@@ -204,7 +206,7 @@ if [[ ! "${URL}" = "${ORIGURL}" ]] ||
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# saving new variables
|
# saving new variables
|
||||||
echo -e "ORIGURL=\"${URL}\" ORIGSUBDOMAINS=\"${SUBDOMAINS}\" ORIGONLY_SUBDOMAINS=\"${ONLY_SUBDOMAINS}\" ORIGEXTRA_DOMAINS=\"${EXTRA_DOMAINS}\" ORIGVALIDATION=\"${VALIDATION}\" ORIGDNSPLUGIN=\"${DNSPLUGIN}\" ORIGPROPAGATION=\"${PROPAGATION}\" ORIGSTAGING=\"${STAGING}\" ORIGCERTPROVIDER=\"${CERTPROVIDER}\" ORIGEMAIL=\"${EMAIL}\"" >/config/.donoteditthisfile.conf
|
echo -e "ORIGURL=\"${URL}\" ORIGSUBDOMAINS=\"${SUBDOMAINS}\" ORIGONLY_SUBDOMAINS=\"${ONLY_SUBDOMAINS}\" ORIGEXTRA_DOMAINS=\"${EXTRA_DOMAINS}\" ORIGVALIDATION=\"${VALIDATION}\" ORIGDNSPLUGIN=\"${DNSPLUGIN}\" ORIGPROPAGATION=\"${PROPAGATION}\" ORIGSTAGING=\"${STAGING}\" ORIGCERTPROVIDER=\"${CERTPROVIDER}\" ORIGEMAIL=\"${EMAIL}\" ORIGCERT_PROFILE=\"${CERT_PROFILE}\"" >/config/.donoteditthisfile.conf
|
||||||
|
|
||||||
# if zerossl is selected or staging is set to true, use the relevant server
|
# if zerossl is selected or staging is set to true, use the relevant server
|
||||||
if [[ "${CERTPROVIDER}" = "zerossl" ]] && [[ "${STAGING}" = "true" ]]; then
|
if [[ "${CERTPROVIDER}" = "zerossl" ]] && [[ "${STAGING}" = "true" ]]; then
|
||||||
@@ -227,6 +229,21 @@ fi
|
|||||||
|
|
||||||
set_ini_value "server" "${ACMESERVER}" /config/etc/letsencrypt/cli.ini
|
set_ini_value "server" "${ACMESERVER}" /config/etc/letsencrypt/cli.ini
|
||||||
|
|
||||||
|
# set certificate profile (e.g. "shortlived" for 6-day certs, "classic" for 90-day)
|
||||||
|
# Profiles are a Let's Encrypt ACME feature; ZeroSSL ignores it.
|
||||||
|
if [[ -n "${CERT_PROFILE}" ]]; then
|
||||||
|
if [[ "${CERTPROVIDER}" = "zerossl" ]]; then
|
||||||
|
echo "ZeroSSL does not support ACME profiles, ignoring CERT_PROFILE variable"
|
||||||
|
sed -i "/^preferred-profile\b/d" /config/etc/letsencrypt/cli.ini
|
||||||
|
else
|
||||||
|
echo "Requesting certificate with profile: ${CERT_PROFILE}"
|
||||||
|
set_ini_value "preferred-profile" "${CERT_PROFILE}" /config/etc/letsencrypt/cli.ini
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
# remove if previously set so going back to default works
|
||||||
|
sed -i "/^preferred-profile\b/d" /config/etc/letsencrypt/cli.ini
|
||||||
|
fi
|
||||||
|
|
||||||
# figuring out domain only vs domain & subdomains vs subdomains only
|
# figuring out domain only vs domain & subdomains vs subdomains only
|
||||||
DOMAINS_ARRAY=()
|
DOMAINS_ARRAY=()
|
||||||
if [[ -z "${SUBDOMAINS}" ]] || [[ "${ONLY_SUBDOMAINS}" != true ]]; then
|
if [[ -z "${SUBDOMAINS}" ]] || [[ "${ONLY_SUBDOMAINS}" != true ]]; then
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
# Check if the cert is expired or expires within a day, if so, renew
|
# Check if the cert is expired or expires within a day, if so, renew
|
||||||
if openssl x509 -in /config/keys/letsencrypt/fullchain.pem -noout -checkend 86400 >/dev/null; then
|
if openssl x509 -in /config/keys/letsencrypt/fullchain.pem -noout -checkend 86400 >/dev/null; then
|
||||||
echo "The cert does not expire within the next day. Letting the cron script handle the renewal attempts overnight (2:08am)."
|
echo "The cert does not expire within the next day. Letting the cron script handle the renewal attempts."
|
||||||
else
|
else
|
||||||
echo "The cert is either expired or it expires within the next day. Attempting to renew. This could take up to 10 minutes."
|
echo "The cert is either expired or it expires within the next day. Attempting to renew. This could take up to 10 minutes."
|
||||||
/app/le-renew.sh
|
/app/le-renew.sh
|
||||||
|
|||||||
Reference in new issue
Block a user