Compare commits

...

44 Commits

Author SHA1 Message Date
LinuxServer-CI
4632ecb91a Bot Updating Package Versions 2025-02-26 08:57:28 +00:00
Adam
615ccbc589 Merge pull request #548 from linuxserver/invalid-dns-creds 2025-02-26 08:51:57 +00:00
thespad
199d0a6707 Check for broken dns credentials value in cli.ini and remove 2025-02-25 20:24:11 +00:00
LinuxServer-CI
f8171d73ce Bot Updating Package Versions 2025-02-22 03:27:55 +00:00
LinuxServer-CI
503578a870 Bot Updating Package Versions
Some checks failed
Package Trigger Scheduler / package-trigger-scheduler (push) Has been cancelled
2025-02-15 03:25:45 +00:00
LinuxServer-CI
b4978e40c5 Bot Updating Package Versions
Some checks failed
Package Trigger Scheduler / package-trigger-scheduler (push) Has been cancelled
2025-02-11 22:21:06 +00:00
LinuxServer-CI
ed765dbdc1 Bot Updating Templated Files 2025-02-11 22:17:30 +00:00
LinuxServer-CI
6fcd946c0a Bot Updating Package Versions 2025-02-08 03:26:43 +00:00
LinuxServer-CI
c1d1a87a0c Bot Updating Package Versions
Some checks failed
Package Trigger Scheduler / package-trigger-scheduler (push) Has been cancelled
2025-02-01 03:32:56 +00:00
LinuxServer-CI
990c95b7d9 Bot Updating Templated Files 2025-02-01 03:24:53 +00:00
LinuxServer-CI
d83dc89c84 Bot Updating Templated Files 2025-02-01 03:23:39 +00:00
LinuxServer-CI
7046e938e0 Bot Updating Package Versions
Some checks failed
Package Trigger Scheduler / package-trigger-scheduler (push) Has been cancelled
2025-01-25 03:21:11 +00:00
LinuxServer-CI
27e2e83f03 Bot Updating Package Versions
Some checks failed
Package Trigger Scheduler / package-trigger-scheduler (push) Has been cancelled
2025-01-23 07:42:30 +00:00
quietsy
f11dbcea78 Merge pull request #540 from linuxserver/add-project-categories
Add categories to readme-vars.yml
2025-01-23 09:34:40 +02:00
quietsy
07e9ada724 Add categories to readme-vars.yml 2025-01-22 22:44:19 +02:00
Adam
ae72916deb Merge pull request #538 from linuxserver/auto-reload-readme
Update auto reload wording
2025-01-19 19:04:33 +00:00
thespad
06b385d25c Update auto reload wording 2025-01-19 18:30:03 +00:00
thespad
8753119d54 Update wording to fix stupid GH markdown parser 2025-01-19 18:21:28 +00:00
LinuxServer-CI
1f2cc4ade5 Bot Updating Package Versions 2025-01-19 18:13:52 +00:00
LinuxServer-CI
fc0986b0be Bot Updating Templated Files 2025-01-19 18:07:41 +00:00
LinuxServer-CI
564fbd271a Bot Updating Templated Files 2025-01-19 18:05:23 +00:00
Adam
bffc4c9236 Merge pull request #537 from linuxserver/auto-reload 2025-01-19 18:03:54 +00:00
thespad
14cab18c36 Spelling 2025-01-19 17:56:10 +00:00
thespad
c0adf4fd0a Update log message 2025-01-19 17:36:15 +00:00
thespad
2160126f96 Use case-insensitive include just in case (no pun) 2025-01-19 17:34:21 +00:00
thespad
d81e33b63b Anchor to avoid samples 2025-01-19 17:33:22 +00:00
thespad
21b5a79e06 Switch to include, document watchlist functionality 2025-01-19 17:30:11 +00:00
thespad
02ed03a455 Add auto-reload 2025-01-19 17:03:14 +00:00
thespad
515fdf45d8 Skip logrotate.status file in log chmod 2025-01-19 16:52:45 +00:00
LinuxServer-CI
5a5d0ebaec Bot Updating Package Versions 2025-01-18 03:24:35 +00:00
LinuxServer-CI
37deacf13a Bot Updating Package Versions
Some checks failed
Package Trigger Scheduler / package-trigger-scheduler (push) Has been cancelled
2025-01-11 03:29:15 +00:00
LinuxServer-CI
16d5763dcc Bot Updating Package Versions
Some checks failed
Package Trigger Scheduler / package-trigger-scheduler (push) Has been cancelled
2025-01-10 17:43:18 +00:00
LinuxServer-CI
e12d7e642c Bot Updating Templated Files 2025-01-10 17:33:54 +00:00
driz
0cddb6d6b7 Merge pull request #534 from linuxserver/man-fail2ban
Add working link for fail2ban-client manpage
2025-01-10 12:32:14 -05:00
thespad
ff8cf3bfa5 Add working link for fail2ban-client manpage 2025-01-10 17:16:22 +00:00
LinuxServer-CI
db05a6b72b Bot Updating Package Versions 2025-01-08 01:24:02 +00:00
LinuxServer-CI
410fa0515e Bot Updating Package Versions 2025-01-07 10:29:27 +00:00
Adam
e1ece8ac1c Merge pull request #532 from linuxserver/more-3.21-migrations 2025-01-07 10:25:12 +00:00
thespad
d33df2224b Try and warn about confs looking at /etc for certs 2025-01-07 10:15:49 +00:00
thespad
3b98b3ae65 Simplify 2025-01-07 10:15:27 +00:00
LinuxServer-CI
af6a3a2163 Bot Updating Package Versions 2025-01-06 18:11:57 +00:00
Adam
7a8a360746 Merge pull request #530 from linuxserver/3.21-migrations 2025-01-06 18:05:32 +00:00
thespad
f467b9539b Include space in replacement path 2025-01-06 17:51:07 +00:00
thespad
3aae7b50d9 Migrate existing renewal confs with old paths 2025-01-06 16:54:53 +00:00
17 changed files with 246 additions and 142 deletions

View File

@@ -6,7 +6,7 @@
* Read, and fill the Pull Request template * Read, and fill the Pull Request template
* If this is a fix for a typo (in code, documentation, or the README) please file an issue and let us sort it out. We do not need a PR * If this is a fix for a typo (in code, documentation, or the README) please file an issue and let us sort it out. We do not need a PR
* If the PR is addressing an existing issue include, closes #\<issue number>, in the body of the PR commit message * If the PR is addressing an existing issue include, closes #\<issue number>, in the body of the PR commit message
* If you want to discuss changes, you can also bring it up in [#dev-talk](https://discordapp.com/channels/354974912613449730/757585807061155840) in our [Discord server](https://discord.gg/YWrKVTn) * If you want to discuss changes, you can also bring it up in [#dev-talk](https://discordapp.com/channels/354974912613449730/757585807061155840) in our [Discord server](https://linuxserver.io/discord)
## Common files ## Common files

View File

@@ -1,7 +1,7 @@
blank_issues_enabled: false blank_issues_enabled: false
contact_links: contact_links:
- name: Discord chat support - name: Discord chat support
url: https://discord.gg/YWrKVTn url: https://linuxserver.io/discord
about: Realtime support / chat with the community and the team. about: Realtime support / chat with the community and the team.
- name: Discourse discussion forum - name: Discourse discussion forum

View File

@@ -15,7 +15,10 @@ jobs:
SKIP_EXTERNAL_TRIGGER: ${{ vars.SKIP_EXTERNAL_TRIGGER }} SKIP_EXTERNAL_TRIGGER: ${{ vars.SKIP_EXTERNAL_TRIGGER }}
run: | run: |
printf "# External trigger for docker-swag\n\n" >> $GITHUB_STEP_SUMMARY printf "# External trigger for docker-swag\n\n" >> $GITHUB_STEP_SUMMARY
if grep -q "^swag_master" <<< "${SKIP_EXTERNAL_TRIGGER}"; then if grep -q "^swag_master_" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`swag_master_\`; will skip trigger if version matches." >> $GITHUB_STEP_SUMMARY
elif grep -q "^swag_master" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`swag_master\`; skipping trigger." >> $GITHUB_STEP_SUMMARY echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`swag_master\`; skipping trigger." >> $GITHUB_STEP_SUMMARY
exit 0 exit 0
@@ -25,6 +28,11 @@ jobs:
printf "\n## Retrieving external version\n\n" >> $GITHUB_STEP_SUMMARY printf "\n## Retrieving external version\n\n" >> $GITHUB_STEP_SUMMARY
EXT_RELEASE=$(curl -sL "https://pypi.python.org/pypi/certbot/json" |jq -r '. | .info.version') EXT_RELEASE=$(curl -sL "https://pypi.python.org/pypi/certbot/json" |jq -r '. | .info.version')
echo "Type is \`pip_version\`" >> $GITHUB_STEP_SUMMARY echo "Type is \`pip_version\`" >> $GITHUB_STEP_SUMMARY
if grep -q "^swag_master_${EXT_RELEASE}" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` matches current external release; skipping trigger." >> $GITHUB_STEP_SUMMARY
exit 0
fi
if [ -z "${EXT_RELEASE}" ] || [ "${EXT_RELEASE}" == "null" ]; then if [ -z "${EXT_RELEASE}" ] || [ "${EXT_RELEASE}" == "null" ]; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Can't retrieve external version, exiting" >> $GITHUB_STEP_SUMMARY echo "> Can't retrieve external version, exiting" >> $GITHUB_STEP_SUMMARY

View File

@@ -29,6 +29,7 @@ RUN \
apk add --no-cache \ apk add --no-cache \
fail2ban \ fail2ban \
gnupg \ gnupg \
inotify-tools \
iptables-legacy \ iptables-legacy \
memcached \ memcached \
nginx-mod-http-brotli \ nginx-mod-http-brotli \

View File

@@ -29,6 +29,7 @@ RUN \
apk add --no-cache \ apk add --no-cache \
fail2ban \ fail2ban \
gnupg \ gnupg \
inotify-tools \
iptables-legacy \ iptables-legacy \
memcached \ memcached \
nginx-mod-http-brotli \ nginx-mod-http-brotli \

39
Jenkinsfile vendored
View File

@@ -57,11 +57,23 @@ pipeline {
steps{ steps{
echo "Running on node: ${NODE_NAME}" echo "Running on node: ${NODE_NAME}"
sh '''#! /bin/bash sh '''#! /bin/bash
containers=$(docker ps -aq) echo "Pruning builder"
docker builder prune -f --builder container || :
containers=$(docker ps -q)
if [[ -n "${containers}" ]]; then if [[ -n "${containers}" ]]; then
docker stop ${containers} BUILDX_CONTAINER_ID=$(docker ps -qf 'name=buildx_buildkit')
for container in ${containers}; do
if [[ "${container}" == "${BUILDX_CONTAINER_ID}" ]]; then
echo "skipping buildx container in docker stop"
else
echo "Stopping container ${container}"
docker stop ${container}
fi
done
fi fi
docker system prune -af --volumes || : ''' docker system prune -f --volumes || :
docker image prune -af || :
'''
script{ script{
env.EXIT_STATUS = '' env.EXIT_STATUS = ''
env.LS_RELEASE = sh( env.LS_RELEASE = sh(
@@ -741,7 +753,8 @@ pipeline {
if [[ -n "${containers}" ]]; then if [[ -n "${containers}" ]]; then
docker stop ${containers} docker stop ${containers}
fi fi
docker system prune -af --volumes || : docker system prune -f --volumes || :
docker image prune -af || :
''' '''
} }
} }
@@ -1152,12 +1165,22 @@ EOF
} }
cleanup { cleanup {
sh '''#! /bin/bash sh '''#! /bin/bash
echo "Performing docker system prune!!" echo "Pruning builder!!"
containers=$(docker ps -aq) docker builder prune -f --builder container || :
containers=$(docker ps -q)
if [[ -n "${containers}" ]]; then if [[ -n "${containers}" ]]; then
docker stop ${containers} BUILDX_CONTAINER_ID=$(docker ps -qf 'name=buildx_buildkit')
for container in ${containers}; do
if [[ "${container}" == "${BUILDX_CONTAINER_ID}" ]]; then
echo "skipping buildx container in docker stop"
else
echo "Stopping container ${container}"
docker stop ${container}
fi
done
fi fi
docker system prune -af --volumes || : docker system prune -f --volumes || :
docker image prune -af || :
''' '''
cleanWs() cleanWs()
} }

View File

@@ -3,7 +3,7 @@
[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)](https://linuxserver.io) [![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)](https://linuxserver.io)
[![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!") [![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://discord.gg/YWrKVTn "realtime support / chat with the community and the team.") [![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.") [![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.") [![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.") [![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.")
@@ -20,7 +20,7 @@ The [LinuxServer.io](https://linuxserver.io) team brings you another container r
Find us at: 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! * [Blog](https://blog.linuxserver.io) - all the things you can do with our containers including How-To guides, opinions and much more!
* [Discord](https://discord.gg/YWrKVTn) - realtime support / chat with the community and the team. * [Discord](https://linuxserver.io/discord) - realtime support / chat with the community and the team.
* [Discourse](https://discourse.linuxserver.io) - post on our community forum. * [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. * [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. * [GitHub](https://github.com/linuxserver) - view the source for all of our repositories.
@@ -129,7 +129,7 @@ This will *ask* Google et al not to index and list your site. Be careful with th
* You can check which jails are active via `docker exec -it swag fail2ban-client status` * You can check which jails are active via `docker exec -it swag fail2ban-client status`
* You can check the status of a specific jail via `docker exec -it swag fail2ban-client status <jail name>` * You can check the status of a specific jail via `docker exec -it swag fail2ban-client status <jail name>`
* You can unban an IP via `docker exec -it swag fail2ban-client set <jail name> unbanip <IP>` * You can unban an IP via `docker exec -it swag fail2ban-client set <jail name> unbanip <IP>`
* A list of commands can be found here: <https://www.fail2ban.org/wiki/index.php/Commands> * A list of commands for fail2ban-client can be found [here](https://manpages.ubuntu.com/manpages/noble/man1/fail2ban-client.1.html)
### Updating configs ### Updating configs
@@ -190,6 +190,8 @@ services:
- EXTRA_DOMAINS= #optional - EXTRA_DOMAINS= #optional
- STAGING=false #optional - STAGING=false #optional
- DISABLE_F2B= #optional - DISABLE_F2B= #optional
- SWAG_AUTORELOAD= #optional
- SWAG_AUTORELOAD_WATCHLIST= #optional
volumes: volumes:
- /path/to/swag/config:/config - /path/to/swag/config:/config
ports: ports:
@@ -218,6 +220,8 @@ docker run -d \
-e EXTRA_DOMAINS= `#optional` \ -e EXTRA_DOMAINS= `#optional` \
-e STAGING=false `#optional` \ -e STAGING=false `#optional` \
-e DISABLE_F2B= `#optional` \ -e DISABLE_F2B= `#optional` \
-e SWAG_AUTORELOAD= `#optional` \
-e SWAG_AUTORELOAD_WATCHLIST= `#optional` \
-p 443:443 \ -p 443:443 \
-p 80:80 `#optional` \ -p 80:80 `#optional` \
-v /path/to/swag/config:/config \ -v /path/to/swag/config:/config \
@@ -247,6 +251,8 @@ Containers are configured using parameters passed at runtime (such as those abov
| `-e EXTRA_DOMAINS=` | Additional fully qualified domain names (comma separated, no spaces) ie. `example.net,subdomain.example.net,*.example.org` | | `-e EXTRA_DOMAINS=` | Additional fully qualified domain names (comma separated, no spaces) ie. `example.net,subdomain.example.net,*.example.org` |
| `-e STAGING=false` | Set to `true` to retrieve certs in staging mode. Rate limits will be much higher, but the resulting cert will not pass the browser's security test. Only to be used for testing purposes. | | `-e STAGING=false` | Set to `true` to retrieve certs in staging mode. Rate limits will be much higher, but the resulting cert will not pass the browser's security test. Only to be used for testing purposes. |
| `-e DISABLE_F2B=` | Set to `true` to disable the Fail2ban service in the container, if you're already running it elsewhere or using a different IPS. | | `-e DISABLE_F2B=` | Set to `true` to disable the Fail2ban service in the container, if you're already running it elsewhere or using a different IPS. |
| `-e SWAG_AUTORELOAD=` | Set to `true` to enable automatic reloading of confs on change without stopping/restarting nginx. Your filesystem must support inotify. This functionality was previously offered [via mod](https://github.com/linuxserver/docker-mods/tree/swag-auto-reload). |
| `-e SWAG_AUTORELOAD_WATCHLIST=` | A [pipe](https://en.wikipedia.org/wiki/Vertical_bar)-separated list of additional folders for auto reload to watch in addition to `/config/nginx` |
| `-v /config` | Persistent config files | | `-v /config` | Persistent config files |
| `--read-only=true` | Run container with a read-only filesystem. Please [read the docs](https://docs.linuxserver.io/misc/read-only/). | | `--read-only=true` | Run container with a read-only filesystem. Please [read the docs](https://docs.linuxserver.io/misc/read-only/). |
| `--cap-add=NET_ADMIN` | Required for fail2Ban to be able to modify iptables rules. | | `--cap-add=NET_ADMIN` | Required for fail2Ban to be able to modify iptables rules. |
@@ -417,6 +423,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
## Versions ## Versions
* **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. * **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). * **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).
* **30.08.24:** - Fix zerossl cert revocation. * **30.08.24:** - Fix zerossl cert revocation.

View File

@@ -1,51 +1,51 @@
NAME VERSION TYPE NAME VERSION TYPE
Simple Launcher 1.1.0.14 dotnet (+5 duplicates) Simple Launcher 1.1.0.14 dotnet (+5 duplicates)
acl-libs 2.3.2-r1 apk acl-libs 2.3.2-r1 apk
acme 3.0.1 python acme 3.2.0 python
alpine-baselayout 3.6.8-r0 apk alpine-baselayout 3.6.8-r1 apk
alpine-baselayout-data 3.6.8-r0 apk alpine-baselayout-data 3.6.8-r1 apk
alpine-keys 2.5-r0 apk alpine-keys 2.5-r0 apk
alpine-release 3.21.0-r0 apk alpine-release 3.21.3-r0 apk
aom-libs 3.11.0-r0 apk aom-libs 3.11.0-r0 apk
apache2-utils 2.4.62-r0 apk apache2-utils 2.4.62-r0 apk
apk-tools 2.14.6-r2 apk apk-tools 2.14.6-r3 apk
apr 1.7.5-r0 apk apr 1.7.5-r0 apk
apr-util 1.6.3-r1 apk apr-util 1.6.3-r1 apk
argon2-libs 20190702-r5 apk argon2-libs 20190702-r5 apk
attrs 24.3.0 python attrs 25.1.0 python
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.32.0 python azure-core 1.32.0 python
azure-identity 1.19.0 python azure-identity 1.20.0 python
azure-mgmt-core 1.5.0 python azure-mgmt-core 1.5.0 python
azure-mgmt-dns 8.2.0 python azure-mgmt-dns 8.2.0 python
backports-tarfile 1.2.0 python backports-tarfile 1.2.0 python
bash 5.2.37-r0 apk bash 5.2.37-r0 apk
beautifulsoup4 4.12.3 python beautifulsoup4 4.13.3 python
boto3 1.35.92 python boto3 1.37.1 python
botocore 1.35.92 python botocore 1.37.1 python
brotli-libs 1.1.0-r2 apk brotli-libs 1.1.0-r2 apk
bs4 0.0.2 python bs4 0.0.2 python
busybox 1.37.0-r9 apk busybox 1.37.0-r12 apk
busybox-binsh 1.37.0-r9 apk busybox-binsh 1.37.0-r12 apk
c-ares 1.34.3-r0 apk c-ares 1.34.3-r0 apk
c-client 2007f-r15 apk c-client 2007f-r15 apk
ca-certificates 20241010-r0 apk ca-certificates 20241121-r1 apk
ca-certificates-bundle 20241010-r0 apk ca-certificates-bundle 20241121-r1 apk
cachetools 5.5.0 python cachetools 5.5.2 python
catatonit 0.2.0-r0 apk catatonit 0.2.0-r0 apk
certbot 3.0.1 python certbot 3.2.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 2.6.1 python certbot-dns-azure 2.6.1 python
certbot-dns-bunny 3.0.0 python certbot-dns-bunny 3.0.0 python
certbot-dns-cloudflare 3.0.1 python certbot-dns-cloudflare 3.2.0 python
certbot-dns-cpanel 0.4.0 python certbot-dns-cpanel 0.4.0 python
certbot-dns-desec 1.2.1 python certbot-dns-desec 1.2.1 python
certbot-dns-digitalocean 3.0.1 python certbot-dns-digitalocean 3.2.0 python
certbot-dns-directadmin 1.0.13 python certbot-dns-directadmin 1.0.13 python
certbot-dns-dnsimple 3.0.1 python certbot-dns-dnsimple 3.2.0 python
certbot-dns-dnsmadeeasy 3.0.1 python certbot-dns-dnsmadeeasy 3.2.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
@@ -53,44 +53,44 @@ certbot-dns-dreamhost 1.0 python
certbot-dns-duckdns 1.5 python certbot-dns-duckdns 1.5 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 3.0.1 python certbot-dns-gehirn 3.2.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 3.0.1 python certbot-dns-google 3.2.0 python
certbot-dns-he 1.0.0 python certbot-dns-he 1.0.0 python
certbot-dns-hetzner 2.0.1 python certbot-dns-hetzner 2.0.1 python
certbot-dns-infomaniak 0.2.3 python certbot-dns-infomaniak 0.2.3 python
certbot-dns-inwx 3.0.1 python certbot-dns-inwx 3.0.2 python
certbot-dns-ionos 2024.11.9 python certbot-dns-ionos 2024.11.9 python
certbot-dns-linode 3.0.1 python certbot-dns-linode 3.2.0 python
certbot-dns-loopia 1.0.1 python certbot-dns-loopia 1.0.1 python
certbot-dns-luadns 3.0.1 python certbot-dns-luadns 3.2.0 python
certbot-dns-namecheap 1.0.0 python certbot-dns-namecheap 1.0.0 python
certbot-dns-netcup 1.4.4 python certbot-dns-netcup 1.4.4 python
certbot-dns-njalla 2.0.2 python certbot-dns-njalla 2.0.2 python
certbot-dns-nsone 3.0.1 python certbot-dns-nsone 3.2.0 python
certbot-dns-ovh 3.0.1 python certbot-dns-ovh 3.2.0 python
certbot-dns-porkbun 0.9.1 python certbot-dns-porkbun 0.9.1 python
certbot-dns-rfc2136 3.0.1 python certbot-dns-rfc2136 3.2.0 python
certbot-dns-route53 3.0.1 python certbot-dns-route53 3.2.0 python
certbot-dns-sakuracloud 3.0.1 python certbot-dns-sakuracloud 3.2.0 python
certbot-dns-standalone 1.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 2024.12.14 python certifi 2025.1.31 python
cffi 1.17.1 python cffi 1.17.1 python
charset-normalizer 3.4.1 python charset-normalizer 3.4.1 python
cloudflare 2.19.4 python cloudflare 2.19.4 python
composer 2.8.4 binary composer 2.8.5 binary
configargparse 1.7 python configargparse 1.7 python
configobj 5.0.9 python configobj 5.0.9 python
coreutils 9.5-r1 apk coreutils 9.5-r2 apk
coreutils-env 9.5-r1 apk coreutils-env 9.5-r2 apk
coreutils-fmt 9.5-r1 apk coreutils-fmt 9.5-r2 apk
coreutils-sha512sum 9.5-r1 apk coreutils-sha512sum 9.5-r2 apk
cryptography 44.0.0 python cryptography 44.0.1 python
curl 8.11.1-r0 apk curl 8.12.1-r0 apk
distro 1.9.0 python distro 1.9.0 python
dns-lexicon 3.20.1 python dns-lexicon 3.20.1 python
dnslib 0.9.25 python dnslib 0.9.25 python
@@ -99,15 +99,15 @@ domeneshop 0.4.4 python
fail2ban 1.1.0 python fail2ban 1.1.0 python
fail2ban 1.1.0-r2 apk fail2ban 1.1.0-r2 apk
fail2ban-pyc 1.1.0-r2 apk fail2ban-pyc 1.1.0-r2 apk
filelock 3.16.1 python filelock 3.17.0 python
findutils 4.10.0-r0 apk findutils 4.10.0-r0 apk
fontconfig 2.15.0-r1 apk fontconfig 2.15.0-r1 apk
freetype 2.13.3-r0 apk freetype 2.13.3-r0 apk
future 1.0.0 python future 1.0.0 python
gdbm 1.24-r0 apk gdbm 1.24-r0 apk
git 2.47.1-r0 apk git 2.47.2-r0 apk
git-init-template 2.47.1-r0 apk git-init-template 2.47.2-r0 apk
git-perl 2.47.1-r0 apk git-perl 2.47.2-r0 apk
gmp 6.3.0-r2 apk gmp 6.3.0-r2 apk
gnupg 2.4.7-r0 apk gnupg 2.4.7-r0 apk
gnupg-dirmngr 2.4.7-r0 apk gnupg-dirmngr 2.4.7-r0 apk
@@ -116,11 +116,11 @@ gnupg-keyboxd 2.4.7-r0 apk
gnupg-utils 2.4.7-r0 apk gnupg-utils 2.4.7-r0 apk
gnupg-wks-client 2.4.7-r0 apk gnupg-wks-client 2.4.7-r0 apk
gnutls 3.8.8-r0 apk gnutls 3.8.8-r0 apk
google-api-core 2.24.0 python google-api-core 2.24.1 python
google-api-python-client 2.157.0 python google-api-python-client 2.162.0 python
google-auth 2.37.0 python google-auth 2.38.0 python
google-auth-httplib2 0.2.0 python google-auth-httplib2 0.2.0 python
googleapis-common-protos 1.66.0 python googleapis-common-protos 1.68.0 python
gpg 2.4.7-r0 apk gpg 2.4.7-r0 apk
gpg-agent 2.4.7-r0 apk gpg-agent 2.4.7-r0 apk
gpg-wks-server 2.4.7-r0 apk gpg-wks-server 2.4.7-r0 apk
@@ -132,26 +132,28 @@ icu-libs 74.2-r0 apk
idna 3.10 python idna 3.10 python
importlib-metadata 8.0.0 python importlib-metadata 8.0.0 python
inflect 7.3.1 python inflect 7.3.1 python
inotify-tools 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.10-r5 apk iptables 1.8.11-r1 apk
iptables-legacy 1.8.10-r5 apk iptables-legacy 1.8.11-r1 apk
isodate 0.7.2 python isodate 0.7.2 python
jaraco-collections 5.1.0 python jaraco-collections 5.1.0 python
jaraco-context 5.3.0 python jaraco-context 5.3.0 python
jaraco-functools 4.0.1 python jaraco-functools 4.0.1 python
jaraco-text 3.12.1 python jaraco-text 3.12.1 python
jmespath 1.0.1 python jmespath 1.0.1 python
josepy 1.14.0 python josepy 1.15.0 python
jq 1.7.1-r0 apk jq 1.7.1-r0 apk
jsonlines 4.0.0 python jsonlines 4.0.0 python
jsonpickle 4.0.1 python jsonpickle 4.0.2 python
libassuan 2.5.7-r0 apk libassuan 2.5.7-r0 apk
libattr 2.5.2-r2 apk libattr 2.5.2-r2 apk
libavif 1.0.4-r0 apk libavif 1.0.4-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.3.2-r4 apk libcrypto3 3.3.3-r0 apk
libcurl 8.11.1-r0 apk libcurl 8.12.1-r0 apk
libdav1d 1.5.0-r0 apk libdav1d 1.5.0-r0 apk
libedit 20240808.3.1-r0 apk libedit 20240808.3.1-r0 apk
libevent 2.1.12-r7 apk libevent 2.1.12-r7 apk
@@ -164,8 +166,8 @@ libgpg-error 1.51-r0 apk
libice 1.1.1-r6 apk libice 1.1.1-r6 apk
libidn2 2.3.7-r0 apk libidn2 2.3.7-r0 apk
libintl 0.22.5-r0 apk libintl 0.22.5-r0 apk
libip4tc 1.8.10-r5 apk libip4tc 1.8.11-r1 apk
libip6tc 1.8.10-r5 apk libip6tc 1.8.11-r1 apk
libjpeg-turbo 3.0.4-r0 apk libjpeg-turbo 3.0.4-r0 apk
libksba 1.6.7-r0 apk libksba 1.6.7-r0 apk
libldap 2.6.8-r0 apk libldap 2.6.8-r0 apk
@@ -178,7 +180,7 @@ libncursesw 6.5_p20241006-r3 apk
libnftnl 1.2.8-r0 apk libnftnl 1.2.8-r0 apk
libpanelw 6.5_p20241006-r3 apk libpanelw 6.5_p20241006-r3 apk
libpng 1.6.44-r0 apk libpng 1.6.44-r0 apk
libpq 17.2-r0 apk libpq 17.4-r0 apk
libproc2 4.0.4-r2 apk libproc2 4.0.4-r2 apk
libpsl 0.21.5-r3 apk libpsl 0.21.5-r3 apk
libsasl 2.1.28-r8 apk libsasl 2.1.28-r8 apk
@@ -186,11 +188,11 @@ libseccomp 2.5.5-r1 apk
libsharpyuv 1.4.0-r0 apk libsharpyuv 1.4.0-r0 apk
libsm 1.2.4-r4 apk libsm 1.2.4-r4 apk
libsodium 1.0.20-r0 apk libsodium 1.0.20-r0 apk
libssl3 3.3.2-r4 apk libssl3 3.3.3-r0 apk
libstdc++ 14.2.0-r4 apk libstdc++ 14.2.0-r4 apk
libtasn1 4.19.0-r2 apk libtasn1 4.20.0-r0 apk
libunistring 1.2-r0 apk libunistring 1.2-r0 apk
libuuid 2.40.2-r4 apk libuuid 2.40.4-r0 apk
libwebp 1.4.0-r0 apk libwebp 1.4.0-r0 apk
libx11 1.8.10-r0 apk libx11 1.8.10-r0 apk
libxau 1.0.11-r4 apk libxau 1.0.11-r4 apk
@@ -201,12 +203,12 @@ libxml2 2.13.4-r3 apk
libxpm 3.5.17-r0 apk libxpm 3.5.17-r0 apk
libxslt 1.1.42-r1 apk libxslt 1.1.42-r1 apk
libxt 1.3.1-r0 apk libxt 1.3.1-r0 apk
libxtables 1.8.10-r5 apk libxtables 1.8.11-r1 apk
libzip 1.11.2-r0 apk libzip 1.11.2-r0 apk
linux-pam 1.6.1-r1 apk linux-pam 1.6.1-r1 apk
logrotate 3.21.0-r1 apk logrotate 3.21.0-r1 apk
loopialib 0.2.0 python loopialib 0.2.0 python
lxml 5.3.0 python lxml 5.3.1 python
lz4-libs 1.10.0-r0 apk lz4-libs 1.10.0-r0 apk
memcached 1.6.32-r0 apk memcached 1.6.32-r0 apk
mock 5.1.0 python mock 5.1.0 python
@@ -214,8 +216,8 @@ more-itertools 10.3.0 python
mpdecimal 4.0.0-r0 apk mpdecimal 4.0.0-r0 apk
msal 1.31.1 python msal 1.31.1 python
msal-extensions 1.2.0 python msal-extensions 1.2.0 python
musl 1.2.5-r8 apk musl 1.2.5-r9 apk
musl-utils 1.2.5-r8 apk musl-utils 1.2.5-r9 apk
my-test-package 1.0 python my-test-package 1.0 python
nano 8.2-r0 apk nano 8.2-r0 apk
ncurses-terminfo-base 6.5_p20241006-r3 apk ncurses-terminfo-base 6.5_p20241006-r3 apk
@@ -243,112 +245,112 @@ nginx-mod-stream-geoip2 1.26.2-r4 apk
nginx-vim 1.26.2-r4 apk nginx-vim 1.26.2-r4 apk
npth 1.6-r4 apk npth 1.6-r4 apk
oniguruma 6.9.9-r0 apk oniguruma 6.9.9-r0 apk
openssl 3.3.2-r4 apk openssl 3.3.3-r0 apk
p11-kit 0.25.5-r2 apk p11-kit 0.25.5-r2 apk
packaging 24.2 python packaging 24.2 python
parsedatetime 2.6 python parsedatetime 2.6 python
pcre 8.45-r3 apk pcre 8.45-r3 apk
pcre2 10.43-r0 apk pcre2 10.43-r0 apk
perl 5.40.0-r3 apk perl 5.40.1-r0 apk
perl-error 0.17029-r2 apk perl-error 0.17029-r2 apk
perl-git 2.47.1-r0 apk perl-git 2.47.2-r0 apk
php83 8.3.15-r0 apk php83 8.3.17-r0 apk
php83-bcmath 8.3.15-r0 apk php83-bcmath 8.3.17-r0 apk
php83-bz2 8.3.15-r0 apk php83-bz2 8.3.17-r0 apk
php83-common 8.3.15-r0 apk php83-common 8.3.17-r0 apk
php83-ctype 8.3.15-r0 apk php83-ctype 8.3.17-r0 apk
php83-curl 8.3.15-r0 apk php83-curl 8.3.17-r0 apk
php83-dom 8.3.15-r0 apk php83-dom 8.3.17-r0 apk
php83-exif 8.3.15-r0 apk php83-exif 8.3.17-r0 apk
php83-fileinfo 8.3.15-r0 apk php83-fileinfo 8.3.17-r0 apk
php83-fpm 8.3.15-r0 apk php83-fpm 8.3.17-r0 apk
php83-ftp 8.3.15-r0 apk php83-ftp 8.3.17-r0 apk
php83-gd 8.3.15-r0 apk php83-gd 8.3.17-r0 apk
php83-gmp 8.3.15-r0 apk php83-gmp 8.3.17-r0 apk
php83-iconv 8.3.15-r0 apk php83-iconv 8.3.17-r0 apk
php83-imap 8.3.15-r0 apk php83-imap 8.3.17-r0 apk
php83-intl 8.3.15-r0 apk php83-intl 8.3.17-r0 apk
php83-ldap 8.3.15-r0 apk php83-ldap 8.3.17-r0 apk
php83-mbstring 8.3.15-r0 apk php83-mbstring 8.3.17-r0 apk
php83-mysqli 8.3.15-r0 apk php83-mysqli 8.3.17-r0 apk
php83-mysqlnd 8.3.15-r0 apk php83-mysqlnd 8.3.17-r0 apk
php83-opcache 8.3.15-r0 apk php83-opcache 8.3.17-r0 apk
php83-openssl 8.3.15-r0 apk php83-openssl 8.3.17-r0 apk
php83-pdo 8.3.15-r0 apk php83-pdo 8.3.17-r0 apk
php83-pdo_mysql 8.3.15-r0 apk php83-pdo_mysql 8.3.17-r0 apk
php83-pdo_odbc 8.3.15-r0 apk php83-pdo_odbc 8.3.17-r0 apk
php83-pdo_pgsql 8.3.15-r0 apk php83-pdo_pgsql 8.3.17-r0 apk
php83-pdo_sqlite 8.3.15-r0 apk php83-pdo_sqlite 8.3.17-r0 apk
php83-pear 8.3.15-r0 apk php83-pear 8.3.17-r0 apk
php83-pecl-apcu 5.1.24-r0 apk php83-pecl-apcu 5.1.24-r0 apk
php83-pecl-igbinary 3.2.16-r0 apk php83-pecl-igbinary 3.2.16-r0 apk
php83-pecl-mcrypt 1.0.7-r0 apk php83-pecl-mcrypt 1.0.7-r0 apk
php83-pecl-memcached 3.3.0-r0 apk php83-pecl-memcached 3.3.0-r0 apk
php83-pecl-msgpack 3.0.0-r0 apk php83-pecl-msgpack 3.0.0-r0 apk
php83-pecl-redis 6.1.0-r0 apk php83-pecl-redis 6.1.0-r0 apk
php83-pgsql 8.3.15-r0 apk php83-pgsql 8.3.17-r0 apk
php83-phar 8.3.15-r0 apk php83-phar 8.3.17-r0 apk
php83-posix 8.3.15-r0 apk php83-posix 8.3.17-r0 apk
php83-session 8.3.15-r0 apk php83-session 8.3.17-r0 apk
php83-simplexml 8.3.15-r0 apk php83-simplexml 8.3.17-r0 apk
php83-soap 8.3.15-r0 apk php83-soap 8.3.17-r0 apk
php83-sockets 8.3.15-r0 apk php83-sockets 8.3.17-r0 apk
php83-sodium 8.3.15-r0 apk php83-sodium 8.3.17-r0 apk
php83-sqlite3 8.3.15-r0 apk php83-sqlite3 8.3.17-r0 apk
php83-tokenizer 8.3.15-r0 apk php83-tokenizer 8.3.17-r0 apk
php83-xml 8.3.15-r0 apk php83-xml 8.3.17-r0 apk
php83-xmlreader 8.3.15-r0 apk php83-xmlreader 8.3.17-r0 apk
php83-xmlwriter 8.3.15-r0 apk php83-xmlwriter 8.3.17-r0 apk
php83-xsl 8.3.15-r0 apk php83-xsl 8.3.17-r0 apk
php83-zip 8.3.15-r0 apk php83-zip 8.3.17-r0 apk
pinentry 1.3.1-r0 apk pinentry 1.3.1-r0 apk
pip 24.3.1 python pip 25.0.1 python
pkb-client 2.0.0 python pkb-client 2.0.0 python
platformdirs 4.2.2 python platformdirs 4.2.2 python
popt 1.19-r4 apk popt 1.19-r4 apk
portalocker 2.10.1 python portalocker 2.10.1 python
procps-ng 4.0.4-r2 apk procps-ng 4.0.4-r2 apk
proto-plus 1.25.0 python proto-plus 1.26.0 python
protobuf 5.29.2 python protobuf 5.29.3 python
pyacmedns 0.4 python pyacmedns 0.4 python
pyasn1 0.6.1 python pyasn1 0.6.1 python
pyasn1-modules 0.4.1 python pyasn1-modules 0.4.1 python
pyc 3.12.8-r1 apk pyc 3.12.9-r0 apk
pycparser 2.22 python pycparser 2.22 python
pyjwt 2.10.1 python pyjwt 2.10.1 python
pynamecheap 0.0.3 python pynamecheap 0.0.3 python
pyopenssl 24.3.0 python pyopenssl 25.0.0 python
pyotp 2.9.0 python pyotp 2.9.0 python
pyparsing 3.2.1 python pyparsing 3.2.1 python
pyrfc3339 2.0.1 python pyrfc3339 2.0.1 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.12.8-r1 apk python3 3.12.9-r0 apk
python3-pyc 3.12.8-r1 apk python3-pyc 3.12.9-r0 apk
python3-pycache-pyc0 3.12.8-r1 apk python3-pycache-pyc0 3.12.9-r0 apk
pytz 2024.2 python pytz 2025.1 python
pyyaml 6.0.2 python pyyaml 6.0.2 python
readline 8.2.13-r0 apk readline 8.2.13-r0 apk
requests 2.32.3 python requests 2.32.3 python
requests-file 2.1.0 python requests-file 2.1.0 python
requests-mock 1.12.1 python requests-mock 1.12.1 python
rsa 4.9 python rsa 4.9 python
s3transfer 0.10.4 python s3transfer 0.11.2 python
scanelf 1.3.8-r1 apk scanelf 1.3.8-r1 apk
setuptools 75.6.0 python setuptools 75.8.1 python
shadow 4.16.0-r1 apk shadow 4.16.0-r1 apk
six 1.17.0 python six 1.17.0 python
skalibs-libs 2.14.3.0-r0 apk skalibs-libs 2.14.3.0-r0 apk
soupsieve 2.6 python soupsieve 2.6 python
sqlite-libs 3.47.1-r0 apk sqlite-libs 3.48.0-r0 apk
ssl_client 1.37.0-r9 apk ssl_client 1.37.0-r12 apk
tiff 4.7.0-r0 apk tiff 4.7.0-r0 apk
tldextract 5.1.3 python tldextract 5.1.3 python
tomli 2.0.1 python tomli 2.0.1 python
typeguard 4.3.0 python typeguard 4.3.0 python
typing-extensions 4.12.2 python (+1 duplicate) typing-extensions 4.12.2 python (+1 duplicate)
tzdata 2024b-r1 apk tzdata 2025a-r0 apk
unixodbc 2.3.12-r0 apk unixodbc 2.3.12-r0 apk
uritemplate 4.1.1 python uritemplate 4.1.1 python
urllib3 2.3.0 python urllib3 2.3.0 python

View File

@@ -6,6 +6,7 @@ project_url: "https://linuxserver.io"
project_logo: "https://github.com/linuxserver/docker-templates/raw/master/linuxserver.io/img/swag.gif" project_logo: "https://github.com/linuxserver/docker-templates/raw/master/linuxserver.io/img/swag.gif"
project_blurb: "SWAG - Secure Web Application Gateway (formerly known as letsencrypt, no relation to Let's Encrypt™) sets up an Nginx webserver and reverse proxy with php support and a built-in certbot client that automates free SSL server certificate generation and renewal processes (Let's Encrypt and ZeroSSL). It also contains fail2ban for intrusion prevention." project_blurb: "SWAG - Secure Web Application Gateway (formerly known as letsencrypt, no relation to Let's Encrypt™) sets up an Nginx webserver and reverse proxy with php support and a built-in certbot client that automates free SSL server certificate generation and renewal processes (Let's Encrypt and ZeroSSL). It also contains fail2ban for intrusion prevention."
project_lsio_github_repo_url: "https://github.com/linuxserver/docker-{{ project_name }}" project_lsio_github_repo_url: "https://github.com/linuxserver/docker-{{ project_name }}"
project_categories: "Reverse Proxy"
# supported architectures # supported architectures
available_architectures: available_architectures:
- {arch: "{{ arch_x86_64 }}", tag: "amd64-latest"} - {arch: "{{ arch_x86_64 }}", tag: "amd64-latest"}
@@ -38,6 +39,8 @@ opt_param_env_vars:
- {env_var: "EXTRA_DOMAINS", env_value: "", desc: "Additional fully qualified domain names (comma separated, no spaces) ie. `example.net,subdomain.example.net,*.example.org`"} - {env_var: "EXTRA_DOMAINS", env_value: "", desc: "Additional fully qualified domain names (comma separated, no spaces) ie. `example.net,subdomain.example.net,*.example.org`"}
- {env_var: "STAGING", env_value: "false", desc: "Set to `true` to retrieve certs in staging mode. Rate limits will be much higher, but the resulting cert will not pass the browser's security test. Only to be used for testing purposes."} - {env_var: "STAGING", env_value: "false", desc: "Set to `true` to retrieve certs in staging mode. Rate limits will be much higher, but the resulting cert will not pass the browser's security test. Only to be used for testing purposes."}
- {env_var: "DISABLE_F2B", env_value: "", desc: "Set to `true` to disable the Fail2ban service in the container, if you're already running it elsewhere or using a different IPS."} - {env_var: "DISABLE_F2B", env_value: "", desc: "Set to `true` to disable the Fail2ban service in the container, if you're already running it elsewhere or using a different IPS."}
- {env_var: "SWAG_AUTORELOAD", env_value: "", desc: "Set to `true` to enable automatic reloading of confs on change without stopping/restarting nginx. Your filesystem must support inotify. This functionality was previously offered [via mod](https://github.com/linuxserver/docker-mods/tree/swag-auto-reload)."}
- {env_var: "SWAG_AUTORELOAD_WATCHLIST", env_value: "", desc: "A [pipe](https://en.wikipedia.org/wiki/Vertical_bar)-separated list of additional folders for auto reload to watch in addition to `/config/nginx`"}
opt_param_usage_include_ports: true opt_param_usage_include_ports: true
opt_param_ports: opt_param_ports:
- {external_port: "80", internal_port: "80", port_desc: "HTTP port (required for HTTP validation and HTTP -> HTTPS redirect)"} - {external_port: "80", internal_port: "80", port_desc: "HTTP port (required for HTTP validation and HTTP -> HTTPS redirect)"}
@@ -119,7 +122,7 @@ app_setup_block: |
* You can check which jails are active via `docker exec -it swag fail2ban-client status` * You can check which jails are active via `docker exec -it swag fail2ban-client status`
* You can check the status of a specific jail via `docker exec -it swag fail2ban-client status <jail name>` * You can check the status of a specific jail via `docker exec -it swag fail2ban-client status <jail name>`
* You can unban an IP via `docker exec -it swag fail2ban-client set <jail name> unbanip <IP>` * You can unban an IP via `docker exec -it swag fail2ban-client set <jail name> unbanip <IP>`
* A list of commands can be found here: <https://www.fail2ban.org/wiki/index.php/Commands> * A list of commands for fail2ban-client can be found [here](https://manpages.ubuntu.com/manpages/noble/man1/fail2ban-client.1.html)
### Updating configs ### Updating configs
@@ -193,6 +196,8 @@ init_diagram: |
svc-nginx -> legacy-services svc-nginx -> legacy-services
init-services -> svc-php-fpm init-services -> svc-php-fpm
svc-php-fpm -> legacy-services svc-php-fpm -> legacy-services
init-services -> svc-swag-auto-reload
svc-swag-auto-reload -> legacy-services
} }
Base Images: { Base Images: {
"baseimage-alpine-nginx:3.21" <- "baseimage-alpine:3.21" "baseimage-alpine-nginx:3.21" <- "baseimage-alpine:3.21"
@@ -200,6 +205,7 @@ init_diagram: |
"swag:latest" <- Base Images "swag:latest" <- Base Images
# changelog # changelog
changelogs: changelogs:
- {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: "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)."} - {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)."}
- {date: "30.08.24:", desc: "Fix zerossl cert revocation."} - {date: "30.08.24:", desc: "Fix zerossl cert revocation."}

View File

@@ -56,6 +56,9 @@ touch /config/etc/letsencrypt/cli.ini
lsiown abc:abc /config/etc/letsencrypt/cli.ini lsiown abc:abc /config/etc/letsencrypt/cli.ini
grep -qF 'agree-tos' /config/etc/letsencrypt/cli.ini || echo 'agree-tos=true' >>/config/etc/letsencrypt/cli.ini grep -qF 'agree-tos' /config/etc/letsencrypt/cli.ini || echo 'agree-tos=true' >>/config/etc/letsencrypt/cli.ini
# Check for broken dns credentials value in cli.ini and remove
sed -i '/dns--credentials/d' /config/etc/letsencrypt/cli.ini
# copy dns default configs # copy dns default configs
cp -n /defaults/dns-conf/* /config/dns-conf/ 2> >(grep -v 'cp: not replacing') cp -n /defaults/dns-conf/* /config/dns-conf/ 2> >(grep -v 'cp: not replacing')
lsiown -R abc:abc /config/dns-conf lsiown -R abc:abc /config/dns-conf

View File

@@ -11,3 +11,9 @@ if [[ -f /config/nginx/ldap.conf ]]; then
Ensure your configs are updated and remove /config/nginx/ldap.conf Ensure your configs are updated and remove /config/nginx/ldap.conf
If you do not use this config, simply remove it." If you do not use this config, simply remove it."
fi fi
if grep -qrle ' /etc/letsencrypt' /config/nginx; then
echo " The following nginx confs are using certificates from the obsolete location
/etc/letsencrypt and should be updated to point to /config/etc/letsencrypt
"
echo -n " " && grep -rle ' /etc/letsencrypt' /config/nginx
fi

View File

@@ -2,9 +2,7 @@
# shellcheck shell=bash # shellcheck shell=bash
# permissions # permissions
find /config/log ! -path '/config/log/logrotate.status' -exec chmod +r {} \+
lsiown -R abc:abc \ lsiown -R abc:abc \
/config /config
chmod -R +r /config/log
# Workaround for systems with chmod errors
true

View File

@@ -0,0 +1,41 @@
#!/usr/bin/with-contenv bash
# shellcheck shell=bash
if [[ ${SWAG_AUTORELOAD,,} == "true" ]]; then
if [[ -f "/etc/s6-overlay/s6-rc.d/svc-mod-swag-auto-reload/run" ]]; then
echo "ERROR: Legacy SWAG Auto Reload Mod detected, to use the built-in Auto Reload functionality please remove it from your container config."
sleep infinity
else
echo "Auto-reload: Watching the following folders for changes to .conf files:"
echo "/config/nginx"
ACTIVE_WATCH=("/config/nginx")
for i in $(echo "${SWAG_AUTORELOAD_WATCHLIST}" | tr "|" " "); do
if [ -f "${i}" ] || [ -d "${i}" ]; then
echo "${i}"
ACTIVE_WATCH+=("${i}")
fi
done
function wait_for_changes {
inotifywait -rq \
--event modify,move,create,delete \
--includei '\.conf$' \
"${ACTIVE_WATCH[@]}"
}
while wait_for_changes; do
NGINX_CONF=()
if ! grep -q "/config/nginx/nginx.conf" /etc/nginx/nginx.conf; then
NGINX_CONF=("-c" "/config/nginx/nginx.conf")
fi
if /usr/sbin/nginx "${NGINX_CONF[@]}" -t; then
echo "Changes to nginx config detected and the changes are valid, reloading nginx"
/usr/sbin/nginx "${NGINX_CONF[@]}" -s reload
else
echo "Changes to nginx config detected but the changes are not valid, skipping nginx reload. Please fix your config."
fi
done
fi
else
sleep infinity
fi

View File

@@ -0,0 +1 @@
longrun

View File

@@ -0,0 +1,7 @@
#!/usr/bin/with-contenv bash
# shellcheck shell=bash
# Migrate existing renewal confs with old paths from /etc/letsencrypt to /config/etc/letsencrypt
if ls /config/etc/letsencrypt/renewal/*.conf >/dev/null 2>&1; then
sed -i 's| /etc/letsencrypt| /config/etc/letsencrypt|' /config/etc/letsencrypt/renewal/*.conf
fi