Compare commits

..

No commits in common. "master" and "3.3.0-ls371" have entirely different histories.

28 changed files with 489 additions and 566 deletions

0
.editorconfig Normal file → Executable file
View file

0
.github/FUNDING.yml vendored Normal file → Executable file
View file

0
.github/ISSUE_TEMPLATE/config.yml vendored Normal file → Executable file
View file

0
.github/ISSUE_TEMPLATE/issue.bug.yml vendored Normal file → Executable file
View file

0
.github/ISSUE_TEMPLATE/issue.feature.yml vendored Normal file → Executable file
View file

3
.github/workflows/call_issue_pr_tracker.yml vendored Normal file → Executable file
View file

@ -8,9 +8,6 @@ on:
pull_request_review:
types: [submitted,edited,dismissed]
permissions:
contents: read
jobs:
manage-project:
permissions:

3
.github/workflows/call_issues_cron.yml vendored Normal file → Executable file
View file

@ -4,9 +4,6 @@ on:
- cron: '35 15 * * *'
workflow_dispatch:
permissions:
contents: read
jobs:
stale:
permissions:

View file

@ -3,9 +3,6 @@ name: External Trigger Main
on:
workflow_dispatch:
permissions:
contents: read
jobs:
external-trigger-master:
runs-on: ubuntu-latest
@ -46,8 +43,8 @@ jobs:
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
exit 1
fi
EXT_RELEASE_SANITIZED=$(echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g')
echo "Sanitized external version: \`${EXT_RELEASE_SANITIZED}\`" >> $GITHUB_STEP_SUMMARY
EXT_RELEASE=$(echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g')
echo "External version: \`${EXT_RELEASE}\`" >> $GITHUB_STEP_SUMMARY
echo "Retrieving last pushed version" >> $GITHUB_STEP_SUMMARY
image="linuxserver/swag"
tag="latest"
@ -103,8 +100,8 @@ jobs:
exit 1
fi
echo "Last pushed version: \`${IMAGE_VERSION}\`" >> $GITHUB_STEP_SUMMARY
if [ "${EXT_RELEASE_SANITIZED}" == "${IMAGE_VERSION}" ]; then
echo "Sanitized version \`${EXT_RELEASE_SANITIZED}\` already pushed, exiting" >> $GITHUB_STEP_SUMMARY
if [ "${EXT_RELEASE}" == "${IMAGE_VERSION}" ]; then
echo "Version \`${EXT_RELEASE}\` already pushed, exiting" >> $GITHUB_STEP_SUMMARY
exit 0
elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-swag/job/master/lastBuild/api/json | jq -r '.building') == "true" ]; then
echo "New version \`${EXT_RELEASE}\` found; but there already seems to be an active build on Jenkins; exiting" >> $GITHUB_STEP_SUMMARY
@ -119,7 +116,7 @@ jobs:
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
else
printf "\n## Trigger new build\n\n" >> $GITHUB_STEP_SUMMARY
echo "New sanitized version \`${EXT_RELEASE_SANITIZED}\` found; old version was \`${IMAGE_VERSION}\`. Triggering new build" >> $GITHUB_STEP_SUMMARY
echo "New version \`${EXT_RELEASE}\` found; old version was \`${IMAGE_VERSION}\`. Triggering new build" >> $GITHUB_STEP_SUMMARY
if [[ "${artifacts_found}" == "true" ]]; then
echo "All artifacts seem to be uploaded." >> $GITHUB_STEP_SUMMARY
fi
@ -139,7 +136,7 @@ jobs:
--data-urlencode "description=GHA external trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \
--data-urlencode "Submit=Submit"
echo "**** Notifying Discord ****"
TRIGGER_REASON="A version change was detected for swag tag latest. Old version:${IMAGE_VERSION} New version:${EXT_RELEASE_SANITIZED}"
TRIGGER_REASON="A version change was detected for swag tag latest. Old version:${IMAGE_VERSION} New version:${EXT_RELEASE}"
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903,
"description": "**Build Triggered** \n**Reason:** '"${TRIGGER_REASON}"' \n**Build URL:** '"${buildurl}display/redirect"' \n"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}

View file

@ -5,9 +5,6 @@ on:
- cron: '2 * * * *'
workflow_dispatch:
permissions:
contents: read
jobs:
external-trigger-scheduler:
runs-on: ubuntu-latest

View file

@ -2,14 +2,8 @@ name: Greetings
on: [pull_request_target, issues]
permissions:
contents: read
jobs:
greeting:
permissions:
issues: write
pull-requests: write
runs-on: ubuntu-latest
steps:
- uses: actions/first-interaction@v1

View file

@ -5,9 +5,6 @@ on:
- cron: '1 3 * * 6'
workflow_dispatch:
permissions:
contents: read
jobs:
package-trigger-scheduler:
runs-on: ubuntu-latest

0
.github/workflows/permissions.yml vendored Normal file → Executable file
View file

1
.gitignore vendored
View file

@ -1,2 +1 @@
.idea
.jenkins-external

View file

@ -1,6 +1,6 @@
# syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.22
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.21
# set version label
ARG BUILD_DATE
@ -49,36 +49,37 @@ RUN \
nginx-mod-stream \
nginx-mod-stream-geoip2 \
nginx-vim \
php84-bcmath \
php84-bz2 \
php84-dom \
php84-exif \
php84-ftp \
php84-gd \
php84-gmp \
php84-imap \
php84-intl \
php84-ldap \
php84-mysqli \
php84-mysqlnd \
php84-opcache \
php84-pdo_mysql \
php84-pdo_odbc \
php84-pdo_pgsql \
php84-pdo_sqlite \
php84-pear \
php84-pecl-apcu \
php84-pecl-memcached \
php84-pecl-redis \
php84-pgsql \
php84-posix \
php84-soap \
php84-sockets \
php84-sodium \
php84-sqlite3 \
php84-tokenizer \
php84-xmlreader \
php84-xsl \
php83-bcmath \
php83-bz2 \
php83-dom \
php83-exif \
php83-ftp \
php83-gd \
php83-gmp \
php83-imap \
php83-intl \
php83-ldap \
php83-mysqli \
php83-mysqlnd \
php83-opcache \
php83-pdo_mysql \
php83-pdo_odbc \
php83-pdo_pgsql \
php83-pdo_sqlite \
php83-pear \
php83-pecl-apcu \
php83-pecl-mcrypt \
php83-pecl-memcached \
php83-pecl-redis \
php83-pgsql \
php83-posix \
php83-soap \
php83-sockets \
php83-sodium \
php83-sqlite3 \
php83-tokenizer \
php83-xmlreader \
php83-xsl \
whois && \
echo "**** install certbot plugins ****" && \
if [ -z ${CERTBOT_VERSION+x} ]; then \
@ -88,7 +89,7 @@ RUN \
pip install -U --no-cache-dir \
pip \
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.21/ \
certbot==${CERTBOT_VERSION} \
certbot-dns-acmedns \
certbot-dns-aliyun \

View file

@ -1,6 +1,6 @@
# syntax=docker/dockerfile:1
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.22
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.21
# set version label
ARG BUILD_DATE
@ -49,36 +49,37 @@ RUN \
nginx-mod-stream \
nginx-mod-stream-geoip2 \
nginx-vim \
php84-bcmath \
php84-bz2 \
php84-dom \
php84-exif \
php84-ftp \
php84-gd \
php84-gmp \
php84-imap \
php84-intl \
php84-ldap \
php84-mysqli \
php84-mysqlnd \
php84-opcache \
php84-pdo_mysql \
php84-pdo_odbc \
php84-pdo_pgsql \
php84-pdo_sqlite \
php84-pear \
php84-pecl-apcu \
php84-pecl-memcached \
php84-pecl-redis \
php84-pgsql \
php84-posix \
php84-soap \
php84-sockets \
php84-sodium \
php84-sqlite3 \
php84-tokenizer \
php84-xmlreader \
php84-xsl \
php83-bcmath \
php83-bz2 \
php83-dom \
php83-exif \
php83-ftp \
php83-gd \
php83-gmp \
php83-imap \
php83-intl \
php83-ldap \
php83-mysqli \
php83-mysqlnd \
php83-opcache \
php83-pdo_mysql \
php83-pdo_odbc \
php83-pdo_pgsql \
php83-pdo_sqlite \
php83-pear \
php83-pecl-apcu \
php83-pecl-mcrypt \
php83-pecl-memcached \
php83-pecl-redis \
php83-pgsql \
php83-posix \
php83-soap \
php83-sockets \
php83-sodium \
php83-sqlite3 \
php83-tokenizer \
php83-xmlreader \
php83-xsl \
whois && \
echo "**** install certbot plugins ****" && \
if [ -z ${CERTBOT_VERSION+x} ]; then \
@ -88,7 +89,7 @@ RUN \
pip install -U --no-cache-dir \
pip \
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.21/ \
certbot==${CERTBOT_VERSION} \
certbot-dns-acmedns \
certbot-dns-aliyun \

7
Jenkinsfile vendored
View file

@ -95,11 +95,7 @@ pipeline {
env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DOCKERHUB_IMAGE + '/tags/'
env.PULL_REQUEST = env.CHANGE_ID
env.TEMPLATED_FILES = 'Jenkinsfile README.md LICENSE .editorconfig ./.github/CONTRIBUTING.md ./.github/FUNDING.yml ./.github/ISSUE_TEMPLATE/config.yml ./.github/ISSUE_TEMPLATE/issue.bug.yml ./.github/ISSUE_TEMPLATE/issue.feature.yml ./.github/PULL_REQUEST_TEMPLATE.md ./.github/workflows/external_trigger_scheduler.yml ./.github/workflows/greetings.yml ./.github/workflows/package_trigger_scheduler.yml ./.github/workflows/call_issue_pr_tracker.yml ./.github/workflows/call_issues_cron.yml ./.github/workflows/permissions.yml ./.github/workflows/external_trigger.yml ./root/donate.txt'
if ( env.SYFT_IMAGE_TAG == null ) {
env.SYFT_IMAGE_TAG = 'latest'
}
}
echo "Using syft image tag ${SYFT_IMAGE_TAG}"
sh '''#! /bin/bash
echo "The default github branch detected as ${GH_DEFAULT_BRANCH}" '''
script{
@ -784,7 +780,7 @@ pipeline {
docker run --rm \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
-v ${TEMPDIR}:/tmp \
ghcr.io/anchore/syft:${SYFT_IMAGE_TAG} \
ghcr.io/anchore/syft:latest \
${LOCAL_CONTAINER} -o table=/tmp/package_versions.txt
NEW_PACKAGE_TAG=$(md5sum ${TEMPDIR}/package_versions.txt | cut -c1-8 )
echo "Package tag sha from current packages in buit container is ${NEW_PACKAGE_TAG} comparing to old ${PACKAGE_TAG} from github"
@ -894,7 +890,6 @@ pipeline {
-e WEB_AUTH=\"${CI_AUTH}\" \
-e WEB_PATH=\"${CI_WEBPATH}\" \
-e NODE_NAME=\"${NODE_NAME}\" \
-e SYFT_IMAGE_TAG=\"${CI_SYFT_IMAGE_TAG:-${SYFT_IMAGE_TAG}}\" \
-t ghcr.io/linuxserver/ci:latest \
python3 test_build.py'''
}

0
LICENSE Normal file → Executable file
View file

View file

@ -5,6 +5,7 @@
[![Blog](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Blog)](https://blog.linuxserver.io "all the things you can do with our containers including How-To guides, opinions and much more!")
[![Discord](https://img.shields.io/discord/354974912613449730.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Discord&logo=discord)](https://linuxserver.io/discord "realtime support / chat with the community and the team.")
[![Discourse](https://img.shields.io/discourse/https/discourse.linuxserver.io/topics.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=discourse)](https://discourse.linuxserver.io "post on our community forum.")
[![Fleet](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Fleet)](https://fleet.linuxserver.io "an online web interface which displays all of our maintained images.")
[![GitHub](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitHub&logo=github)](https://github.com/linuxserver "view the source for all of our repositories.")
[![Open Collective](https://img.shields.io/opencollective/all/linuxserver.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Supporters&logo=open%20collective)](https://opencollective.com/linuxserver "please consider helping us by either donating or contributing to our budget")
@ -21,6 +22,7 @@ Find us at:
* [Blog](https://blog.linuxserver.io) - all the things you can do with our containers including How-To guides, opinions and much more!
* [Discord](https://linuxserver.io/discord) - realtime support / chat with the community and the team.
* [Discourse](https://discourse.linuxserver.io) - post on our community forum.
* [Fleet](https://fleet.linuxserver.io) - an online web interface which displays all of our maintained images.
* [GitHub](https://github.com/linuxserver) - view the source for all of our repositories.
* [Open Collective](https://opencollective.com/linuxserver) - please consider helping us by either donating or contributing to our budget
@ -52,6 +54,7 @@ The architectures supported by this image are:
| :----: | :----: | ---- |
| x86-64 | ✅ | amd64-\<version tag\> |
| arm64 | ✅ | arm64v8-\<version tag\> |
| armhf | ❌ | |
## Application Setup
@ -142,16 +145,6 @@ This will *ask* Google et al not to index and list your site. Be careful with th
* Proxy sample files WILL be updated, however your renamed (enabled) proxy files will not.
* You can check the new sample and adjust your active config as needed.
### QUIC support
This image supports QUIC (also known as HTTP/3) but it must be explicitly enabled in each proxy conf, and the default conf, because if the listener is enabled and you don't expose 443/UDP, it can break connections with some browsers.
To enable QUIC, expose 443/UDP to your clients, then uncomment both QUIC listeners in all of your active proxy confs, as well as the default conf, and restart the container.
You should also uncomment the `Alt-Svc` header in your `ssl.conf` so that browsers are aware that you offer QUIC connectivity.
It is [recommended](https://quic-go.net/docs/quic/optimizations/#udp-buffer-sizes) to increase the UDP send/recieve buffer **on the host** by setting the `net.core.rmem_max` and `net.core.wmem_max` sysctls. Suggested values are 4-16Mb (4194304-16777216 bytes). For persistence between reboots use `/etc/sysctl.d/`.
### Migration from the old `linuxserver/letsencrypt` image
Please follow the instructions [on this blog post](https://www.linuxserver.io/blog/2020-08-21-introducing-swag#migrate).
@ -204,7 +197,6 @@ services:
ports:
- 443:443
- 80:80 #optional
- 443:443/udp #optional
restart: unless-stopped
```
@ -232,7 +224,6 @@ docker run -d \
-e SWAG_AUTORELOAD_WATCHLIST= `#optional` \
-p 443:443 \
-p 80:80 `#optional` \
-p 443:443/udp `#optional` \
-v /path/to/swag/config:/config \
--restart unless-stopped \
lscr.io/linuxserver/swag:latest
@ -246,7 +237,6 @@ Containers are configured using parameters passed at runtime (such as those abov
| :----: | --- |
| `-p 443:443` | HTTPS port |
| `-p 80` | HTTP port (required for HTTP validation and HTTP -> HTTPS redirect) |
| `-p 443/udp` | QUIC (HTTP/3) port. Must be enabled in the default and proxy confs. |
| `-e PUID=1000` | for UserID - see below for explanation |
| `-e PGID=1000` | for GroupID - see below for explanation |
| `-e TZ=Etc/UTC` | specify a timezone to use, see this [list](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). |
@ -433,8 +423,6 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
## Versions
* **18.07.25:** - Rebase to Alpine 3.22 with PHP 8.4. Add QUIC support. Drop PHP bindings for mcrypt as it is no longer maintained.
* **05.05.25:** - Disable Certbot's built in log rotation.
* **19.01.25:** - Add [Auto Reload](https://github.com/linuxserver/docker-mods/tree/swag-auto-reload) functionality to SWAG.
* **17.12.24:** - Rebase to Alpine 3.21.
* **21.10.24:** - Fix naming issue with Dynu plugin. If you are using Dynu, please make sure your credentials are set in /config/dns-conf/dynu.ini and your DNSPLUGIN variable is set to dynu (not dynudns).

View file

@ -1,118 +1,114 @@
NAME VERSION TYPE
Simple Launcher 1.1.0.14 binary (+5 duplicates)
Simple Launcher 1.1.0.14 dotnet (+5 duplicates)
acl-libs 2.3.2-r1 apk
acme 4.1.1 python
alpine-baselayout 3.7.0-r0 apk
alpine-baselayout-data 3.7.0-r0 apk
acme 3.3.0 python
alpine-baselayout 3.6.8-r1 apk
alpine-baselayout-data 3.6.8-r1 apk
alpine-keys 2.5-r0 apk
alpine-release 3.22.1-r0 apk
aom-libs 3.12.1-r0 apk
apache2-utils 2.4.65-r0 apk
apk-tools 2.14.9-r2 apk
alpine-release 3.21.3-r0 apk
aom-libs 3.11.0-r0 apk
apache2-utils 2.4.62-r0 apk
apk-tools 2.14.6-r3 apk
apr 1.7.5-r0 apk
apr-util 1.6.3-r1 apk
argon2-libs 20190702-r5 apk
attrs 25.3.0 python
autocommand 2.2.2 python
azure-common 1.1.28 python
azure-core 1.35.0 python
azure-identity 1.23.1 python
azure-mgmt-core 1.6.0 python
azure-mgmt-dns 9.0.0 python
azure-core 1.32.0 python
azure-identity 1.21.0 python
azure-mgmt-core 1.5.0 python
azure-mgmt-dns 8.2.0 python
backports-tarfile 1.2.0 python
bash 5.2.37-r0 apk
beautifulsoup4 4.13.4 python
boto3 1.40.1 python
botocore 1.40.1 python
beautifulsoup4 4.13.3 python
boto3 1.37.13 python
botocore 1.37.13 python
brotli-libs 1.1.0-r2 apk
bs4 0.0.2 python
busybox 1.37.0-r18 apk
busybox-binsh 1.37.0-r18 apk
c-ares 1.34.5-r0 apk
busybox 1.37.0-r12 apk
busybox-binsh 1.37.0-r12 apk
c-ares 1.34.3-r0 apk
c-client 2007f-r15 apk
ca-certificates 20250619-r0 apk
ca-certificates-bundle 20250619-r0 apk
ca-certificates 20241121-r1 apk
ca-certificates-bundle 20241121-r1 apk
cachetools 5.5.2 python
catatonit 0.2.1-r0 apk
certbot 4.1.1 python
catatonit 0.2.0-r0 apk
certbot 3.3.0 python
certbot-dns-acmedns 0.1.0 python
certbot-dns-aliyun 2.0.0 python
certbot-dns-azure 1.5.0 python
certbot-dns-azure 2.6.1 python
certbot-dns-bunny 3.0.0 python
certbot-dns-cloudflare 4.1.1 python
certbot-dns-cloudflare 3.3.0 python
certbot-dns-cpanel 0.4.0 python
certbot-dns-desec 1.2.1 python
certbot-dns-digitalocean 4.1.1 python
certbot-dns-directadmin 1.0.15 python
certbot-dns-dnsimple 4.1.1 python
certbot-dns-dnsmadeeasy 4.1.1 python
certbot-dns-digitalocean 3.3.0 python
certbot-dns-directadmin 1.0.14 python
certbot-dns-dnsimple 3.3.0 python
certbot-dns-dnsmadeeasy 3.3.0 python
certbot-dns-dnspod 0.1.0 python
certbot-dns-do 0.31.0 python
certbot-dns-domeneshop 0.2.9 python
certbot-dns-dreamhost 1.0 python
certbot-dns-duckdns 1.6 python
certbot-dns-duckdns 1.5 python
certbot-dns-dynudns 0.0.6 python
certbot-dns-freedns 0.2.0 python
certbot-dns-gehirn 4.1.1 python
certbot-dns-gehirn 3.3.0 python
certbot-dns-glesys 2.1.0 python
certbot-dns-godaddy 2.8.0 python
certbot-dns-google 4.1.1 python
certbot-dns-google 3.3.0 python
certbot-dns-he 1.0.0 python
certbot-dns-hetzner 2.0.1 python
certbot-dns-infomaniak 0.2.3 python
certbot-dns-inwx 3.0.3 python
certbot-dns-inwx 3.0.2 python
certbot-dns-ionos 2024.11.9 python
certbot-dns-linode 4.1.1 python
certbot-dns-linode 3.3.0 python
certbot-dns-loopia 1.0.1 python
certbot-dns-luadns 4.1.1 python
certbot-dns-luadns 3.3.0 python
certbot-dns-namecheap 1.0.0 python
certbot-dns-netcup 1.4.4 python
certbot-dns-njalla 2.0.2 python
certbot-dns-nsone 4.1.1 python
certbot-dns-ovh 4.1.1 python
certbot-dns-porkbun 0.10.1 python
certbot-dns-rfc2136 4.1.1 python
certbot-dns-route53 4.1.1 python
certbot-dns-sakuracloud 4.1.1 python
certbot-dns-nsone 3.3.0 python
certbot-dns-ovh 3.3.0 python
certbot-dns-porkbun 0.9.1 python
certbot-dns-rfc2136 3.3.0 python
certbot-dns-route53 3.3.0 python
certbot-dns-sakuracloud 3.3.0 python
certbot-dns-standalone 1.2.1 python
certbot-dns-transip 0.5.2 python
certbot-dns-vultr 1.1.0 python
certbot-plugin-gandi 1.5.0 python
certifi 2025.7.14 python
certifi 2025.1.31 python
cffi 1.17.1 python
charset-normalizer 3.4.2 python
cli UNKNOWN binary
cli-32 UNKNOWN binary
cli-64 UNKNOWN binary
cli-arm64 UNKNOWN binary
charset-normalizer 3.4.1 python
cloudflare 2.19.4 python
composer 2.8.10 binary
configargparse 1.7.1 python
composer 2.8.6 binary
configargparse 1.7 python
configobj 5.0.9 python
coreutils 9.7-r1 apk
coreutils-env 9.7-r1 apk
coreutils-fmt 9.7-r1 apk
coreutils-sha512sum 9.7-r1 apk
cryptography 45.0.5 python
curl 8.14.1-r1 apk
coreutils 9.5-r2 apk
coreutils-env 9.5-r2 apk
coreutils-fmt 9.5-r2 apk
coreutils-sha512sum 9.5-r2 apk
cryptography 44.0.2 python
curl 8.12.1-r0 apk
distro 1.9.0 python
dns-lexicon 3.21.1 python
dns-lexicon 3.20.1 python
dnslib 0.9.26 python
dnspython 2.7.0 python
domeneshop 0.4.4 python
fail2ban 1.1.0 python
fail2ban 1.1.0-r3 apk
fail2ban-pyc 1.1.0-r3 apk
fail2ban 1.1.0-r2 apk
fail2ban-pyc 1.1.0-r2 apk
filelock 3.18.0 python
findutils 4.10.0-r0 apk
fontconfig 2.15.0-r3 apk
fontconfig 2.15.0-r1 apk
freetype 2.13.3-r0 apk
future 1.0.0 python
gdbm 1.24-r0 apk
git 2.49.1-r0 apk
git-init-template 2.49.1-r0 apk
git-perl 2.49.1-r0 apk
gmp 6.3.0-r3 apk
git 2.47.2-r0 apk
git-init-template 2.47.2-r0 apk
git-perl 2.47.2-r0 apk
gmp 6.3.0-r2 apk
gnupg 2.4.7-r0 apk
gnupg-dirmngr 2.4.7-r0 apk
gnupg-gpgconf 2.4.7-r0 apk
@ -120,23 +116,19 @@ gnupg-keyboxd 2.4.7-r0 apk
gnupg-utils 2.4.7-r0 apk
gnupg-wks-client 2.4.7-r0 apk
gnutls 3.8.8-r0 apk
google-api-core 2.25.1 python
google-api-python-client 2.177.0 python
google-auth 2.40.3 python
google-api-core 2.24.2 python
google-api-python-client 2.164.0 python
google-auth 2.38.0 python
google-auth-httplib2 0.2.0 python
googleapis-common-protos 1.70.0 python
googleapis-common-protos 1.69.2 python
gpg 2.4.7-r0 apk
gpg-agent 2.4.7-r0 apk
gpg-wks-server 2.4.7-r0 apk
gpgsm 2.4.7-r0 apk
gpgv 2.4.7-r0 apk
gui UNKNOWN binary
gui-32 UNKNOWN binary
gui-64 UNKNOWN binary
gui-arm64 UNKNOWN binary
httplib2 0.22.0 python
icu-data-en 76.1-r1 apk
icu-libs 76.1-r1 apk
icu-data-en 74.2-r0 apk
icu-libs 74.2-r0 apk
idna 3.10 python
importlib-metadata 8.0.0 python
inflect 7.3.1 python
@ -152,222 +144,223 @@ jaraco-functools 4.0.1 python
jaraco-text 3.12.1 python
jinja2 3.1.6 python
jmespath 1.0.1 python
josepy 2.1.0 python
jq 1.8.0-r0 apk
josepy 1.15.0 python
jq 1.7.1-r0 apk
jsonlines 4.0.0 python
jsonpickle 4.1.1 python
libapk2 2.14.9-r2 apk
jsonpickle 4.0.2 python
libassuan 2.5.7-r0 apk
libattr 2.5.2-r2 apk
libavif 1.3.0-r0 apk
libavif 1.0.4-r0 apk
libbsd 0.12.2-r0 apk
libbz2 1.0.8-r6 apk
libcrypto3 3.5.1-r0 apk
libcurl 8.14.1-r1 apk
libdav1d 1.5.1-r0 apk
libedit 20250104.3.1-r1 apk
libevent 2.1.12-r8 apk
libexpat 2.7.1-r0 apk
libffi 3.4.8-r0 apk
libgcc 14.2.0-r6 apk
libcrypto3 3.3.3-r0 apk
libcurl 8.12.1-r0 apk
libdav1d 1.5.0-r0 apk
libedit 20240808.3.1-r0 apk
libevent 2.1.12-r7 apk
libexpat 2.7.0-r0 apk
libffi 3.4.7-r0 apk
libgcc 14.2.0-r4 apk
libgcrypt 1.10.3-r1 apk
libgd 2.3.3-r10 apk
libgpg-error 1.55-r0 apk
libice 1.1.2-r0 apk
libgd 2.3.3-r9 apk
libgpg-error 1.51-r0 apk
libice 1.1.1-r6 apk
libidn2 2.3.7-r0 apk
libintl 0.24.1-r0 apk
libintl 0.22.5-r0 apk
libip4tc 1.8.11-r1 apk
libip6tc 1.8.11-r1 apk
libjpeg-turbo 3.1.0-r0 apk
libjpeg-turbo 3.0.4-r0 apk
libksba 1.6.7-r0 apk
libldap 2.6.8-r0 apk
libmaxminddb-libs 1.9.1-r0 apk
libmcrypt 2.5.8-r10 apk
libmd 1.1.0-r0 apk
libmemcached-libs 1.1.4-r1 apk
libmnl 1.0.5-r2 apk
libncursesw 6.5_p20250503-r0 apk
libnftnl 1.2.9-r0 apk
libpanelw 6.5_p20250503-r0 apk
libncursesw 6.5_p20241006-r3 apk
libnftnl 1.2.8-r0 apk
libpanelw 6.5_p20241006-r3 apk
libpng 1.6.47-r0 apk
libpq 17.5-r0 apk
libproc2 4.0.4-r3 apk
libpq 17.4-r0 apk
libproc2 4.0.4-r2 apk
libpsl 0.21.5-r3 apk
libsasl 2.1.28-r8 apk
libseccomp 2.6.0-r0 apk
libsharpyuv 1.5.0-r0 apk
libsm 1.2.5-r0 apk
libseccomp 2.5.5-r1 apk
libsharpyuv 1.4.0-r0 apk
libsm 1.2.4-r4 apk
libsodium 1.0.20-r0 apk
libssl3 3.5.1-r0 apk
libstdc++ 14.2.0-r6 apk
libssl3 3.3.3-r0 apk
libstdc++ 14.2.0-r4 apk
libtasn1 4.20.0-r0 apk
libunistring 1.3-r0 apk
libuuid 2.41-r9 apk
libwebp 1.5.0-r0 apk
libx11 1.8.11-r0 apk
libxau 1.0.12-r0 apk
libxcb 1.17.0-r0 apk
libunistring 1.2-r0 apk
libuuid 2.40.4-r0 apk
libwebp 1.4.0-r0 apk
libx11 1.8.10-r0 apk
libxau 1.0.11-r4 apk
libxcb 1.16.1-r0 apk
libxdmcp 1.1.5-r1 apk
libxext 1.3.6-r2 apk
libxml2 2.13.8-r0 apk
libxml2 2.13.4-r5 apk
libxpm 3.5.17-r0 apk
libxslt 1.1.43-r3 apk
libxslt 1.1.42-r2 apk
libxt 1.3.1-r0 apk
libxtables 1.8.11-r1 apk
libyuv 0.0.1887.20251502-r1 apk
libzip 1.11.4-r0 apk
linux-pam 1.7.0-r4 apk
libzip 1.11.2-r0 apk
linux-pam 1.6.1-r1 apk
logrotate 3.21.0-r1 apk
loopialib 0.2.0 python
lxml 6.0.0 python
lxml 5.3.1 python
lz4-libs 1.10.0-r0 apk
markupsafe 3.0.2 python
memcached 1.6.32-r0 apk
mock 5.2.0 python
more-itertools 10.3.0 python
mpdecimal 4.0.1-r0 apk
msal 1.33.0 python
mpdecimal 4.0.0-r0 apk
msal 1.32.0 python
msal-extensions 1.3.1 python
musl 1.2.5-r10 apk
musl-utils 1.2.5-r10 apk
musl 1.2.5-r9 apk
musl-utils 1.2.5-r9 apk
my-test-package 1.0 python
nano 8.4-r0 apk
ncurses-terminfo-base 6.5_p20250503-r0 apk
netcat-openbsd 1.229.1-r0 apk
nettle 3.10.1-r0 apk
nghttp2-libs 1.65.0-r0 apk
nginx 1.28.0-r3 apk
nginx-mod-devel-kit 1.28.0-r3 apk
nginx-mod-http-brotli 1.28.0-r3 apk
nginx-mod-http-dav-ext 1.28.0-r3 apk
nginx-mod-http-echo 1.28.0-r3 apk
nginx-mod-http-fancyindex 1.28.0-r3 apk
nginx-mod-http-geoip2 1.28.0-r3 apk
nginx-mod-http-headers-more 1.28.0-r3 apk
nginx-mod-http-image-filter 1.28.0-r3 apk
nginx-mod-http-perl 1.28.0-r3 apk
nginx-mod-http-redis2 1.28.0-r3 apk
nginx-mod-http-set-misc 1.28.0-r3 apk
nginx-mod-http-upload-progress 1.28.0-r3 apk
nginx-mod-http-xslt-filter 1.28.0-r3 apk
nginx-mod-mail 1.28.0-r3 apk
nginx-mod-rtmp 1.28.0-r3 apk
nginx-mod-stream 1.28.0-r3 apk
nginx-mod-stream-geoip2 1.28.0-r3 apk
nginx-vim 1.28.0-r3 apk
npth 1.8-r0 apk
oniguruma 6.9.10-r0 apk
openssl 3.5.1-r0 apk
nano 8.2-r0 apk
ncurses-terminfo-base 6.5_p20241006-r3 apk
netcat-openbsd 1.226.1.1-r0 apk
nettle 3.10-r1 apk
nghttp2-libs 1.64.0-r0 apk
nginx 1.26.3-r0 apk
nginx-mod-devel-kit 1.26.3-r0 apk
nginx-mod-http-brotli 1.26.3-r0 apk
nginx-mod-http-dav-ext 1.26.3-r0 apk
nginx-mod-http-echo 1.26.3-r0 apk
nginx-mod-http-fancyindex 1.26.3-r0 apk
nginx-mod-http-geoip2 1.26.3-r0 apk
nginx-mod-http-headers-more 1.26.3-r0 apk
nginx-mod-http-image-filter 1.26.3-r0 apk
nginx-mod-http-perl 1.26.3-r0 apk
nginx-mod-http-redis2 1.26.3-r0 apk
nginx-mod-http-set-misc 1.26.3-r0 apk
nginx-mod-http-upload-progress 1.26.3-r0 apk
nginx-mod-http-xslt-filter 1.26.3-r0 apk
nginx-mod-mail 1.26.3-r0 apk
nginx-mod-rtmp 1.26.3-r0 apk
nginx-mod-stream 1.26.3-r0 apk
nginx-mod-stream-geoip2 1.26.3-r0 apk
nginx-vim 1.26.3-r0 apk
npth 1.6-r4 apk
oniguruma 6.9.9-r0 apk
openssl 3.3.3-r0 apk
p11-kit 0.25.5-r2 apk
packaging 24.2 python
parsedatetime 2.6 python
pcre2 10.43-r1 apk
perl 5.40.2-r0 apk
perl-error 0.17030-r0 apk
perl-git 2.49.1-r0 apk
php84 8.4.10-r0 apk
php84-bcmath 8.4.10-r0 apk
php84-bz2 8.4.10-r0 apk
php84-common 8.4.10-r0 apk
php84-ctype 8.4.10-r0 apk
php84-curl 8.4.10-r0 apk
php84-dom 8.4.10-r0 apk
php84-exif 8.4.10-r0 apk
php84-fileinfo 8.4.10-r0 apk
php84-fpm 8.4.10-r0 apk
php84-ftp 8.4.10-r0 apk
php84-gd 8.4.10-r0 apk
php84-gmp 8.4.10-r0 apk
php84-iconv 8.4.10-r0 apk
php84-intl 8.4.10-r0 apk
php84-ldap 8.4.10-r0 apk
php84-mbstring 8.4.10-r0 apk
php84-mysqli 8.4.10-r0 apk
php84-mysqlnd 8.4.10-r0 apk
php84-opcache 8.4.10-r0 apk
php84-openssl 8.4.10-r0 apk
php84-pdo 8.4.10-r0 apk
php84-pdo_mysql 8.4.10-r0 apk
php84-pdo_odbc 8.4.10-r0 apk
php84-pdo_pgsql 8.4.10-r0 apk
php84-pdo_sqlite 8.4.10-r0 apk
php84-pear 8.4.10-r0 apk
php84-pecl-apcu 5.1.24-r1 apk
php84-pecl-igbinary 3.2.16-r1 apk
php84-pecl-imap 1.0.3-r0 apk
php84-pecl-memcached 3.3.0-r0 apk
php84-pecl-msgpack 3.0.0-r0 apk
php84-pecl-redis 6.2.0-r0 apk
php84-pgsql 8.4.10-r0 apk
php84-phar 8.4.10-r0 apk
php84-posix 8.4.10-r0 apk
php84-session 8.4.10-r0 apk
php84-simplexml 8.4.10-r0 apk
php84-soap 8.4.10-r0 apk
php84-sockets 8.4.10-r0 apk
php84-sodium 8.4.10-r0 apk
php84-sqlite3 8.4.10-r0 apk
php84-tokenizer 8.4.10-r0 apk
php84-xml 8.4.10-r0 apk
php84-xmlreader 8.4.10-r0 apk
php84-xmlwriter 8.4.10-r0 apk
php84-xsl 8.4.10-r0 apk
php84-zip 8.4.10-r0 apk
pcre 8.45-r3 apk
pcre2 10.43-r0 apk
perl 5.40.1-r0 apk
perl-error 0.17029-r2 apk
perl-git 2.47.2-r0 apk
php83 8.3.18-r0 apk
php83-bcmath 8.3.18-r0 apk
php83-bz2 8.3.18-r0 apk
php83-common 8.3.18-r0 apk
php83-ctype 8.3.18-r0 apk
php83-curl 8.3.18-r0 apk
php83-dom 8.3.18-r0 apk
php83-exif 8.3.18-r0 apk
php83-fileinfo 8.3.18-r0 apk
php83-fpm 8.3.18-r0 apk
php83-ftp 8.3.18-r0 apk
php83-gd 8.3.18-r0 apk
php83-gmp 8.3.18-r0 apk
php83-iconv 8.3.18-r0 apk
php83-imap 8.3.18-r0 apk
php83-intl 8.3.18-r0 apk
php83-ldap 8.3.18-r0 apk
php83-mbstring 8.3.18-r0 apk
php83-mysqli 8.3.18-r0 apk
php83-mysqlnd 8.3.18-r0 apk
php83-opcache 8.3.18-r0 apk
php83-openssl 8.3.18-r0 apk
php83-pdo 8.3.18-r0 apk
php83-pdo_mysql 8.3.18-r0 apk
php83-pdo_odbc 8.3.18-r0 apk
php83-pdo_pgsql 8.3.18-r0 apk
php83-pdo_sqlite 8.3.18-r0 apk
php83-pear 8.3.18-r0 apk
php83-pecl-apcu 5.1.24-r0 apk
php83-pecl-igbinary 3.2.16-r0 apk
php83-pecl-mcrypt 1.0.7-r0 apk
php83-pecl-memcached 3.3.0-r0 apk
php83-pecl-msgpack 3.0.0-r0 apk
php83-pecl-redis 6.1.0-r0 apk
php83-pgsql 8.3.18-r0 apk
php83-phar 8.3.18-r0 apk
php83-posix 8.3.18-r0 apk
php83-session 8.3.18-r0 apk
php83-simplexml 8.3.18-r0 apk
php83-soap 8.3.18-r0 apk
php83-sockets 8.3.18-r0 apk
php83-sodium 8.3.18-r0 apk
php83-sqlite3 8.3.18-r0 apk
php83-tokenizer 8.3.18-r0 apk
php83-xml 8.3.18-r0 apk
php83-xmlreader 8.3.18-r0 apk
php83-xmlwriter 8.3.18-r0 apk
php83-xsl 8.3.18-r0 apk
php83-zip 8.3.18-r0 apk
pinentry 1.3.1-r0 apk
pip 25.2 python
pkb-client 2.2.0 python
pip 25.0.1 python
pkb-client 2.0.0 python
platformdirs 4.2.2 python
popt 1.19-r4 apk
procps-ng 4.0.4-r3 apk
procps-ng 4.0.4-r2 apk
proto-plus 1.26.1 python
protobuf 6.31.1 python
protobuf 6.30.1 python
pyacmedns 0.4 python
pyasn1 0.6.1 python
pyasn1-modules 0.4.2 python
pyc 3.12.11-r0 apk
pyasn1-modules 0.4.1 python
pyc 3.12.9-r0 apk
pycparser 2.22 python
pyjwt 2.10.1 python
pynamecheap 0.0.3 python
pyopenssl 25.1.0 python
pyopenssl 25.0.0 python
pyotp 2.9.0 python
pyparsing 3.2.3 python
pyparsing 3.2.1 python
pyrfc3339 2.0.1 python
python-dateutil 2.9.0.post0 python
python-digitalocean 1.17.0 python
python-transip 0.6.0 python
python3 3.12.11-r0 apk
python3-pyc 3.12.11-r0 apk
python3-pycache-pyc0 3.12.11-r0 apk
pytz 2025.2 python
python3 3.12.9-r0 apk
python3-pyc 3.12.9-r0 apk
python3-pycache-pyc0 3.12.9-r0 apk
pytz 2025.1 python
pyyaml 6.0.2 python
readline 8.2.13-r1 apk
requests 2.32.4 python
readline 8.2.13-r0 apk
requests 2.32.3 python
requests-file 2.1.0 python
requests-mock 1.12.1 python
rsa 4.9.1 python
s3transfer 0.13.1 python
rsa 4.9 python
s3transfer 0.11.4 python
scanelf 1.3.8-r1 apk
setuptools 80.9.0 python
shadow 4.17.3-r0 apk
setuptools 76.0.0 python
shadow 4.16.0-r1 apk
six 1.17.0 python
skalibs-libs 2.14.4.0-r0 apk
soupsieve 2.7 python
sqlite-libs 3.49.2-r1 apk
ssl_client 1.37.0-r18 apk
skalibs-libs 2.14.3.0-r0 apk
soupsieve 2.6 python
sqlite-libs 3.48.0-r0 apk
ssl_client 1.37.0-r12 apk
tiff 4.7.0-r0 apk
tldextract 5.3.0 python
tldextract 5.1.3 python
tomli 2.0.1 python
typeguard 4.3.0 python
typing-extensions 4.12.2 python
typing-extensions 4.14.1 python
tzdata 2025b-r0 apk
typing-extensions 4.12.2 python (+1 duplicate)
tzdata 2025a-r0 apk
unixodbc 2.3.12-r0 apk
uritemplate 4.2.0 python
urllib3 2.5.0 python
utmps-libs 0.1.3.1-r0 apk
wheel 0.45.1 python (+1 duplicate)
whois 5.6.3-r0 apk
xz-libs 5.8.1-r0 apk
uritemplate 4.1.1 python
urllib3 2.3.0 python
utmps-libs 0.1.2.3-r2 apk
wheel 0.43.0 python
wheel 0.45.1 python
whois 5.5.23-r0 apk
xz-libs 5.6.3-r0 apk
zipp 3.19.2 python
zlib 1.3.1-r2 apk
zope-interface 7.2 python
zstd-libs 1.5.7-r0 apk
zstd-libs 1.5.6-r2 apk

View file

@ -44,7 +44,6 @@ opt_param_env_vars:
opt_param_usage_include_ports: true
opt_param_ports:
- {external_port: "80", internal_port: "80", port_desc: "HTTP port (required for HTTP validation and HTTP -> HTTPS redirect)"}
- {external_port: "443", internal_port: "443/udp", port_desc: "QUIC (HTTP/3) port. Must be enabled in the default and proxy confs."}
readonly_supported: true
readonly_message: |
* `/tmp` must be mounted to tmpfs
@ -139,16 +138,6 @@ app_setup_block: |
* Proxy sample files WILL be updated, however your renamed (enabled) proxy files will not.
* You can check the new sample and adjust your active config as needed.
### QUIC support
This image supports QUIC (also known as HTTP/3) but it must be explicitly enabled in each proxy conf, and the default conf, because if the listener is enabled and you don't expose 443/UDP, it can break connections with some browsers.
To enable QUIC, expose 443/UDP to your clients, then uncomment both QUIC listeners in all of your active proxy confs, as well as the default conf, and restart the container.
You should also uncomment the `Alt-Svc` header in your `ssl.conf` so that browsers are aware that you offer QUIC connectivity.
It is [recommended](https://quic-go.net/docs/quic/optimizations/#udp-buffer-sizes) to increase the UDP send/recieve buffer **on the host** by setting the `net.core.rmem_max` and `net.core.wmem_max` sysctls. Suggested values are 4-16Mb (4194304-16777216 bytes). For persistence between reboots use `/etc/sysctl.d/`.
### Migration from the old `linuxserver/letsencrypt` image
Please follow the instructions [on this blog post](https://www.linuxserver.io/blog/2020-08-21-introducing-swag#migrate).
@ -175,7 +164,6 @@ init_diagram: |
init-outdated-config -> init-config-end
init-config -> init-crontab-config
init-mods-end -> init-custom-files
init-adduser -> init-device-perms
base -> init-envfile
init-swag-samples -> init-fail2ban-config
init-os-end -> init-folders
@ -187,7 +175,6 @@ init_diagram: |
init-samples -> init-nginx
init-version-checks -> init-nginx-end
init-adduser -> init-os-end
init-device-perms -> init-os-end
init-envfile -> init-os-end
init-renew -> init-outdated-config
init-keygen -> init-permissions
@ -213,13 +200,11 @@ init_diagram: |
svc-swag-auto-reload -> legacy-services
}
Base Images: {
"baseimage-alpine-nginx:3.22" <- "baseimage-alpine:3.22"
"baseimage-alpine-nginx:3.21" <- "baseimage-alpine:3.21"
}
"swag:latest" <- Base Images
# changelog
changelogs:
- {date: "18.07.25:", desc: "Rebase to Alpine 3.22 with PHP 8.4. Add QUIC support. Drop PHP bindings for mcrypt as it is no longer maintained."}
- {date: "05.05.25:", desc: "Disable Certbot's built in log rotation."}
- {date: "19.01.25:", desc: "Add [Auto Reload](https://github.com/linuxserver/docker-mods/tree/swag-auto-reload) functionality to SWAG."}
- {date: "17.12.24:", desc: "Rebase to Alpine 3.21."}
- {date: "21.10.24:", desc: "Fix naming issue with Dynu plugin. If you are using Dynu, please make sure your credentials are set in /config/dns-conf/dynu.ini and your DNSPLUGIN variable is set to dynu (not dynudns)."}

View file

@ -1,8 +1,13 @@
## Version 2025/03/25 - Changelog: https://github.com/linuxserver/docker-swag/commits/master/root/defaults/nginx/authelia-location.conf.sample
## Version 2024/03/14 - Changelog: https://github.com/linuxserver/docker-swag/commits/master/root/defaults/nginx/authelia-location.conf.sample
# Make sure that your authelia container is in the same user defined bridge network and is named authelia
# Rename /config/nginx/proxy-confs/authelia.subdomain.conf.sample to /config/nginx/proxy-confs/authelia.subdomain.conf
# For authelia 4.37 and below, make sure that the authelia configuration.yml has 'path: "authelia"' defined
# For authelia 4.38 and above, make sure that the authelia configuration.yml has 'address: "tcp://:9091/authelia"' defined
## Send a subrequest to Authelia to verify if the user is authenticated and has permission to access the resource
## For authelia 4.37 and below, use the following line
# auth_request /authelia/api/verify;
## For authelia 4.38 and above, use the following line
auth_request /authelia/api/authz/auth-request;
## If the subreqest returns 200 pass to the backend, if the subrequest returns 401 redirect to the portal

View file

@ -1,15 +1,44 @@
## Version 2025/03/25 - Changelog: https://github.com/linuxserver/docker-swag/commits/master/root/defaults/nginx/authelia-server.conf.sample
## Version 2024/03/16 - Changelog: https://github.com/linuxserver/docker-swag/commits/master/root/defaults/nginx/authelia-server.conf.sample
# Make sure that your authelia container is in the same user defined bridge network and is named authelia
# Rename /config/nginx/proxy-confs/authelia.subdomain.conf.sample to /config/nginx/proxy-confs/authelia.subdomain.conf
# For authelia 4.37 and below, make sure that the authelia configuration.yml has 'path: "authelia"' defined
# For authelia 4.38 and above, make sure that the authelia configuration.yml has 'address: "tcp://:9091/authelia"' defined
# location for authelia auth requests
# location for authelia subfolder requests
location ^~ /authelia {
auth_request off; # requests to this subfolder must be accessible without authentication
include /config/nginx/proxy.conf;
include /config/nginx/resolver.conf;
set $upstream_authelia authelia;
proxy_pass http://$upstream_authelia:9091;
}
# location for authelia 4.37 and below auth requests
location = /authelia/api/verify {
internal;
include /config/nginx/proxy.conf;
include /config/nginx/resolver.conf;
set $upstream_authelia authelia;
proxy_pass http://$upstream_authelia:9091;
## Include the Set-Cookie header if present
auth_request_set $set_cookie $upstream_http_set_cookie;
add_header Set-Cookie $set_cookie;
proxy_pass_request_body off;
proxy_set_header Content-Length "";
}
# location for authelia 4.38 and above auth requests
location = /authelia/api/authz/auth-request {
internal;
include /config/nginx/proxy.conf;
include /config/nginx/resolver.conf;
set $upstream_authelia authelia;
proxy_pass http://$upstream_authelia:9091/api/authz/auth-request;
proxy_pass http://$upstream_authelia:9091;
## Include the Set-Cookie header if present
auth_request_set $set_cookie $upstream_http_set_cookie;
@ -33,6 +62,11 @@ location @authelia_proxy_signin {
## Translate the Location response header from the auth subrequest into a variable
auth_request_set $signin_url $upstream_http_location;
if ($signin_url = '') {
## Set the $signin_url variable
set $signin_url https://$http_host/authelia/?rd=$target_url;
}
## Redirect to login
return 302 $signin_url;
}

View file

@ -1,4 +1,4 @@
## Version 2025/03/25 - Changelog: https://github.com/linuxserver/docker-swag/commits/master/root/defaults/nginx/authentik-server.conf.sample
## Version 2023/04/27 - Changelog: https://github.com/linuxserver/docker-swag/commits/master/root/defaults/nginx/authentik-server.conf.sample
# Make sure that your authentik container is in the same user defined bridge network and is named authentik-server
# Rename /config/nginx/proxy-confs/authentik.subdomain.conf.sample to /config/nginx/proxy-confs/authentik.subdomain.conf
@ -19,7 +19,7 @@ location = /outpost.goauthentik.io/auth/nginx {
include /config/nginx/proxy.conf;
include /config/nginx/resolver.conf;
set $upstream_authentik authentik-server;
proxy_pass http://$upstream_authentik:9000/outpost.goauthentik.io/auth/nginx;
proxy_pass http://$upstream_authentik:9000;
## Include the Set-Cookie header if present
auth_request_set $set_cookie $upstream_http_set_cookie;

View file

@ -1,4 +1,4 @@
## Version 2025/07/18 - Changelog: https://github.com/linuxserver/docker-swag/commits/master/root/defaults/nginx/site-confs/default.conf.sample
## Version 2024/12/17 - Changelog: https://github.com/linuxserver/docker-swag/commits/master/root/defaults/nginx/site-confs/default.conf.sample
# redirect all traffic to https
server {
@ -13,9 +13,7 @@ server {
# main server block
server {
listen 443 ssl default_server;
# listen 443 quic reuseport default_server;
listen [::]:443 ssl default_server;
# listen [::]:443 quic reuseport default_server;
server_name _;

View file

@ -1,9 +0,0 @@
## Version 2025/06/08 - 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;

View file

@ -1,35 +0,0 @@
## Version 2025/06/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
# location for tinyauth auth requests
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;
}

View file

@ -59,9 +59,6 @@ grep -qF 'agree-tos' /config/etc/letsencrypt/cli.ini || echo 'agree-tos=true' >>
# Check for broken dns credentials value in cli.ini and remove
sed -i '/dns--credentials/d' /config/etc/letsencrypt/cli.ini
# Disable Certbot's built in log rotation
set_ini_value "max-log-backups" "0" /config/etc/letsencrypt/cli.ini
# copy dns default configs
cp -n /defaults/dns-conf/* /config/dns-conf/ 2> >(grep -v 'cp: not replacing')
lsiown -R abc:abc /config/dns-conf

View file

@ -22,14 +22,6 @@ if [[ ! -f /config/nginx/authentik-server.conf ]]; then
cp /defaults/nginx/authentik-server.conf.sample /config/nginx/authentik-server.conf
fi
# copy tinyauth config files if they don't exist
if [[ ! -f /config/nginx/tinyauth-location.conf ]]; then
cp /defaults/nginx/tinyauth-location.conf.sample /config/nginx/tinyauth-location.conf
fi
if [[ ! -f /config/nginx/tinyauth-server.conf ]]; then
cp /defaults/nginx/tinyauth-server.conf.sample /config/nginx/tinyauth-server.conf
fi
# copy old ldap config file to new location
if [[ -f /config/nginx/ldap.conf ]] && [[ ! -f /config/nginx/ldap-server.conf ]]; then
cp /config/nginx/ldap.conf /config/nginx/ldap-server.conf