mirror of
https://github.com/linuxserver/docker-swag.git
synced 2026-11-06 00:49:24 +09:00
Compare commits
16
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cf3344e0bd | ||
|
|
d00190cefc | ||
|
|
8d1fefb9a4 | ||
|
|
c29a049eea | ||
|
|
d2533208c6 | ||
|
|
6559a9b1b6 | ||
|
|
c367f03cbc | ||
|
|
32f4947db5 | ||
|
|
1898dc3ede | ||
|
|
7820a40f01 | ||
|
|
9e54158d38 | ||
|
|
ad8764c2f8 | ||
|
|
5189cbfb87 | ||
|
|
be4fdf0d4d | ||
|
|
84915dcfcf | ||
|
|
05da050b5f |
No files matched your search
@@ -10,7 +10,7 @@ jobs:
|
||||
external-trigger-master:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4.1.1
|
||||
- uses: linuxserver/github-workflows/.github/actions/checkout@v1
|
||||
|
||||
- name: External Trigger
|
||||
if: github.ref == 'refs/heads/master'
|
||||
|
||||
@@ -12,7 +12,7 @@ jobs:
|
||||
external-trigger-scheduler:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4.1.1
|
||||
- uses: linuxserver/github-workflows/.github/actions/checkout@v1
|
||||
with:
|
||||
fetch-depth: '0'
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ jobs:
|
||||
pull-requests: write
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/first-interaction@v1
|
||||
- uses: linuxserver/github-workflows/.github/actions/first-interaction@v1
|
||||
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.'
|
||||
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:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4.1.1
|
||||
- uses: linuxserver/github-workflows/.github/actions/checkout@v1
|
||||
with:
|
||||
fetch-depth: '0'
|
||||
|
||||
|
||||
Vendored
+13
-13
@@ -629,7 +629,7 @@ pipeline {
|
||||
pids[$!]="$i"
|
||||
done
|
||||
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
|
||||
fi
|
||||
'''
|
||||
@@ -698,7 +698,7 @@ pipeline {
|
||||
pids[$!]="$i"
|
||||
done
|
||||
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
|
||||
fi
|
||||
'''
|
||||
@@ -759,7 +759,7 @@ pipeline {
|
||||
pids[$!]="$i"
|
||||
done
|
||||
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
|
||||
fi
|
||||
'''
|
||||
@@ -941,10 +941,10 @@ pipeline {
|
||||
fi
|
||||
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} || \
|
||||
{ if [[ "${PUSHIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
|
||||
{ if [[ "${PUSHIMAGE}" != "${QUAYIMAGE}" && "${PUSHIMAGE}" != "${GITLABIMAGE}" ]]; then exit 1; fi; }
|
||||
if [ -n "${SEMVER}" ]; then
|
||||
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
|
||||
done
|
||||
'''
|
||||
@@ -977,26 +977,26 @@ pipeline {
|
||||
fi
|
||||
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} || \
|
||||
{ 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} || \
|
||||
{ if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
|
||||
{ if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" && "${MANIFESTIMAGE}" != "${GITLABIMAGE}" ]]; then exit 1; fi; }
|
||||
if [ -n "${SEMVER}" ]; then
|
||||
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} || \
|
||||
{ if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
|
||||
{ if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" && "${MANIFESTIMAGE}" != "${GITLABIMAGE}" ]]; then exit 1; fi; }
|
||||
fi
|
||||
done
|
||||
for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do
|
||||
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} || \
|
||||
{ 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} || \
|
||||
{ if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
|
||||
{ if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" && "${MANIFESTIMAGE}" != "${GITLABIMAGE}" ]]; then exit 1; fi; }
|
||||
if [ -n "${SEMVER}" ]; then
|
||||
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
|
||||
done
|
||||
'''
|
||||
|
||||
@@ -436,6 +436,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
|
||||
|
||||
## 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.
|
||||
|
||||
+20
-20
@@ -7,10 +7,10 @@ alpine-baselayout-data 3.7.2-r1 apk
|
||||
alpine-keys 2.6-r0 apk
|
||||
alpine-release 3.24.1-r0 apk
|
||||
annotated-types 0.8.0 python
|
||||
anyio 4.15.0 python
|
||||
anyio 4.15.1 python
|
||||
aom-libs 3.14.1-r0 apk
|
||||
apache2-utils 2.4.68-r0 apk
|
||||
apk-tools 3.0.7-r0 apk
|
||||
apk-tools 3.0.8-r0 apk
|
||||
apr 1.7.6-r0 apk
|
||||
apr-util 1.6.4-r0 apk
|
||||
argon2-libs 20190702-r5 apk
|
||||
@@ -23,8 +23,8 @@ azure-mgmt-dns 9.0.0 python
|
||||
backports-tarfile 1.2.0 python
|
||||
bash 5.3.9-r1 apk
|
||||
beautifulsoup4 4.15.0 python
|
||||
boto3 1.43.89 python
|
||||
botocore 1.43.89 python
|
||||
boto3 1.43.98 python
|
||||
botocore 1.43.98 python
|
||||
brotli-libs 1.2.0-r1 apk
|
||||
bs4 0.0.2 python
|
||||
busybox 1.37.0-r31 apk
|
||||
@@ -88,14 +88,14 @@ cli-64 UNKNOWN binary
|
||||
cli-arm64 UNKNOWN binary
|
||||
cloudflare 5.7.0 python
|
||||
composer 2.10.3 binary
|
||||
configargparse 1.7.5 python
|
||||
configargparse 1.7.7 python
|
||||
configobj 5.0.9 python
|
||||
coreutils 9.11-r0 apk
|
||||
coreutils-env 9.11-r0 apk
|
||||
coreutils-fmt 9.11-r0 apk
|
||||
coreutils-sha512sum 9.11-r0 apk
|
||||
cryptography 50.0.1 python
|
||||
curl 8.21.0-r0 apk
|
||||
curl 8.22.0-r0 apk
|
||||
distro 1.9.0 python
|
||||
dns-lexicon 3.25.2 python
|
||||
dnslib 0.9.26 python
|
||||
@@ -104,7 +104,7 @@ domeneshop 0.4.4 python
|
||||
fail2ban 1.1.0 python
|
||||
fail2ban 1.1.0-r3 apk
|
||||
fail2ban-pyc 1.1.0-r3 apk
|
||||
filelock 3.32.5 python
|
||||
filelock 4.0.1 python
|
||||
findutils 4.10.0-r1 apk
|
||||
fontconfig 2.17.1-r1 apk
|
||||
freetype 2.14.3-r0 apk
|
||||
@@ -121,9 +121,9 @@ gnupg-keyboxd 2.4.9-r1 apk
|
||||
gnupg-utils 2.4.9-r1 apk
|
||||
gnupg-wks-client 2.4.9-r1 apk
|
||||
gnutls 3.8.13-r0 apk
|
||||
google-api-core 2.36.0 python
|
||||
google-api-core 2.38.0 python
|
||||
google-api-python-client 2.200.0 python
|
||||
google-auth 2.57.1 python
|
||||
google-auth 2.58.0 python
|
||||
google-auth-httplib2 0.4.2 python
|
||||
googleapis-common-protos 1.75.3 python
|
||||
gpg 2.4.9-r1 apk
|
||||
@@ -136,13 +136,13 @@ gui-32 UNKNOWN binary
|
||||
gui-64 UNKNOWN binary
|
||||
gui-arm64 UNKNOWN binary
|
||||
h11 0.16.0 python
|
||||
hcloud 2.23.0 python
|
||||
hcloud 2.25.1 python
|
||||
httpcore 1.0.9 python
|
||||
httplib2 0.32.0 python
|
||||
httpx 0.28.1 python
|
||||
icu-data-en 78.1-r0 apk
|
||||
icu-libs 78.1-r0 apk
|
||||
idna 3.19 python
|
||||
idna 3.20 python
|
||||
importlib-metadata 8.7.1 python
|
||||
inotify-tools 4.23.9.0-r0 apk
|
||||
inotify-tools-libs 4.23.9.0-r0 apk
|
||||
@@ -156,16 +156,16 @@ jaraco-text 4.0.0 python
|
||||
jinja2 3.1.6 python
|
||||
jmespath 1.1.0 python
|
||||
josepy 2.2.0 python
|
||||
jq 1.8.1-r0 apk
|
||||
jq 1.8.2-r0 apk
|
||||
jsonpickle 4.1.2 python
|
||||
libapk 3.0.7-r0 apk
|
||||
libapk 3.0.8-r0 apk
|
||||
libassuan 3.0.2-r0 apk
|
||||
libattr 2.5.2-r2 apk
|
||||
libavif 1.4.1-r0 apk
|
||||
libbsd 0.12.2-r0 apk
|
||||
libbz2 1.0.8-r6 apk
|
||||
libcrypto3 3.5.8-r0 apk
|
||||
libcurl 8.21.0-r0 apk
|
||||
libcurl 8.22.0-r0 apk
|
||||
libdav1d 1.5.3-r0 apk
|
||||
libedit 20260508.3.1-r1 apk
|
||||
libevent 2.1.13-r0 apk
|
||||
@@ -203,7 +203,7 @@ libssl3 3.5.8-r0 apk
|
||||
libstdc++ 15.2.0-r5 apk
|
||||
libtasn1 4.21.0-r0 apk
|
||||
libunistring 1.4.2-r0 apk
|
||||
libuuid 2.42.1-r0 apk
|
||||
libuuid 2.42.3-r1 apk
|
||||
libwebp 1.6.0-r0 apk
|
||||
libx11 1.8.13-r0 apk
|
||||
libxau 1.0.12-r0 apk
|
||||
@@ -227,7 +227,7 @@ memcached 1.6.42-r0 apk
|
||||
mock 5.2.0 python
|
||||
more-itertools 10.8.0 python
|
||||
mpdecimal 4.0.1-r0 apk
|
||||
msal 1.38.0 python
|
||||
msal 1.39.0 python
|
||||
msal-extensions 1.3.1 python
|
||||
musl 1.2.6-r2 apk
|
||||
musl-utils 1.2.6-r2 apk
|
||||
@@ -320,7 +320,7 @@ platformdirs 4.4.0 python
|
||||
popt 1.19-r4 apk
|
||||
procps-ng 4.0.6-r0 apk
|
||||
proto-plus 1.28.4 python
|
||||
protobuf 7.36.1 python
|
||||
protobuf 7.36.2 python
|
||||
pyacmedns 0.4 python
|
||||
pyasn1 0.6.4 python
|
||||
pyasn1-modules 0.4.2 python
|
||||
@@ -328,7 +328,7 @@ pyc 3.14.7-r1 apk
|
||||
pycparser 3.0 python
|
||||
pydantic 2.13.5 python
|
||||
pydantic-core 2.46.5 python
|
||||
pyjwt 2.13.0 python
|
||||
pyjwt 2.14.0 python
|
||||
pynamecheap 0.0.3 python
|
||||
pyopenssl 26.4.0 python
|
||||
pyotp 2.10.0 python
|
||||
@@ -364,12 +364,12 @@ typing-inspection 0.4.4 python
|
||||
tzdata 2026c-r0 apk
|
||||
unixodbc 2.3.14-r1 apk
|
||||
uritemplate 4.2.0 python
|
||||
urllib3 2.7.0 python
|
||||
urllib3 2.8.0 python
|
||||
utmps-libs 0.1.3.3-r0 apk
|
||||
wheel 0.46.3 python
|
||||
wheel 0.48.0 python
|
||||
whois 5.6.6-r0 apk
|
||||
xz-libs 5.8.3-r0 apk
|
||||
xz-libs 5.8.4-r0 apk
|
||||
zipp 3.23.0 python
|
||||
zlib 1.3.2-r0 apk
|
||||
zope-interface 8.6 python
|
||||
|
||||
@@ -220,6 +220,7 @@ init_diagram: |
|
||||
"swag:latest" <- Base Images
|
||||
# changelog
|
||||
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."}
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
## Version 2025/12/17 - 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
|
||||
# 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
|
||||
auth_request /tinyauth;
|
||||
|
||||
## If the subreqest returns 200 pass to the backend, if the subrequest returns 401 redirect to the portal
|
||||
error_page 401 = @tinyauth_login;
|
||||
auth_request_set $redirection_url $upstream_http_x_tinyauth_location;
|
||||
error_page 401 403 =302 $redirection_url;
|
||||
|
||||
## Translate the user information response headers from the auth subrequest into variables
|
||||
auth_request_set $email $upstream_http_remote_email;
|
||||
|
||||
@@ -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
|
||||
# Rename /config/nginx/proxy-confs/tinyauth.subdomain.conf.sample to /config/nginx/proxy-confs/tinyauth.subdomain.conf
|
||||
|
||||
@@ -6,30 +6,17 @@
|
||||
location /tinyauth {
|
||||
internal;
|
||||
|
||||
include /config/nginx/proxy.conf;
|
||||
include /config/nginx/resolver.conf;
|
||||
set $upstream_tinyauth tinyauth;
|
||||
proxy_pass http://$upstream_tinyauth:3000/api/auth/nginx;
|
||||
|
||||
proxy_set_header x-forwarded-proto $scheme;
|
||||
proxy_set_header x-forwarded-host $http_host;
|
||||
proxy_set_header x-forwarded-uri $request_uri;
|
||||
}
|
||||
|
||||
# virtual location for tinyauth 401 redirects
|
||||
location @tinyauth_login {
|
||||
internal;
|
||||
|
||||
## 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;
|
||||
# Don't send the body to the auth server
|
||||
proxy_pass_request_body off;
|
||||
proxy_set_header Content-Length "";
|
||||
|
||||
# Headers needed for authentication
|
||||
proxy_set_header X-Original-URL $scheme://$http_host$request_uri;
|
||||
proxy_set_header X-Original-Method $request_method;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
}
|
||||
Reference in new issue
Block a user