mirror of
https://github.com/linuxserver/docker-swag.git
synced 2026-03-12 13:15:15 +09:00
Compare commits
46 Commits
3.0.1-ls34
...
3.2.0-ls36
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2528e2f027 | ||
|
|
4632ecb91a | ||
|
|
615ccbc589 | ||
|
|
199d0a6707 | ||
|
|
f8171d73ce | ||
|
|
503578a870 | ||
|
|
b4978e40c5 | ||
|
|
ed765dbdc1 | ||
|
|
6fcd946c0a | ||
|
|
c1d1a87a0c | ||
|
|
990c95b7d9 | ||
|
|
d83dc89c84 | ||
|
|
7046e938e0 | ||
|
|
27e2e83f03 | ||
|
|
f11dbcea78 | ||
|
|
07e9ada724 | ||
|
|
ae72916deb | ||
|
|
06b385d25c | ||
|
|
8753119d54 | ||
|
|
1f2cc4ade5 | ||
|
|
fc0986b0be | ||
|
|
564fbd271a | ||
|
|
bffc4c9236 | ||
|
|
14cab18c36 | ||
|
|
c0adf4fd0a | ||
|
|
2160126f96 | ||
|
|
d81e33b63b | ||
|
|
21b5a79e06 | ||
|
|
02ed03a455 | ||
|
|
515fdf45d8 | ||
|
|
5a5d0ebaec | ||
|
|
37deacf13a | ||
|
|
16d5763dcc | ||
|
|
e12d7e642c | ||
|
|
0cddb6d6b7 | ||
|
|
ff8cf3bfa5 | ||
|
|
db05a6b72b | ||
|
|
410fa0515e | ||
|
|
e1ece8ac1c | ||
|
|
d33df2224b | ||
|
|
3b98b3ae65 | ||
|
|
af6a3a2163 | ||
|
|
7a8a360746 | ||
|
|
f467b9539b | ||
|
|
3aae7b50d9 | ||
|
|
98e22cb66d |
2
.github/CONTRIBUTING.md
vendored
2
.github/CONTRIBUTING.md
vendored
@@ -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
|
||||||
|
|
||||||
|
|||||||
2
.github/ISSUE_TEMPLATE/config.yml
vendored
2
.github/ISSUE_TEMPLATE/config.yml
vendored
@@ -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
|
||||||
|
|||||||
10
.github/workflows/external_trigger.yml
vendored
10
.github/workflows/external_trigger.yml
vendored
@@ -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
|
||||||
|
|||||||
@@ -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 \
|
||||||
|
|||||||
@@ -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
39
Jenkinsfile
vendored
@@ -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()
|
||||||
}
|
}
|
||||||
|
|||||||
13
README.md
13
README.md
@@ -3,7 +3,7 @@
|
|||||||
[](https://linuxserver.io)
|
[](https://linuxserver.io)
|
||||||
|
|
||||||
[](https://blog.linuxserver.io "all the things you can do with our containers including How-To guides, opinions and much more!")
|
[](https://blog.linuxserver.io "all the things you can do with our containers including How-To guides, opinions and much more!")
|
||||||
[](https://discord.gg/YWrKVTn "realtime support / chat with the community and the team.")
|
[](https://linuxserver.io/discord "realtime support / chat with the community and the team.")
|
||||||
[](https://discourse.linuxserver.io "post on our community forum.")
|
[](https://discourse.linuxserver.io "post on our community forum.")
|
||||||
[](https://fleet.linuxserver.io "an online web interface which displays all of our maintained images.")
|
[](https://fleet.linuxserver.io "an online web interface which displays all of our maintained images.")
|
||||||
[](https://github.com/linuxserver "view the source for all of our repositories.")
|
[](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.
|
||||||
|
|||||||
@@ -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.91 python
|
boto3 1.37.4 python
|
||||||
botocore 1.35.91 python
|
botocore 1.37.4 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.6 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,31 +132,33 @@ 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
|
||||||
libexpat 2.6.4-r0 apk
|
libexpat 2.6.4-r0 apk
|
||||||
libffi 3.4.6-r0 apk
|
libffi 3.4.7-r0 apk
|
||||||
libgcc 14.2.0-r4 apk
|
libgcc 14.2.0-r4 apk
|
||||||
libgcrypt 1.10.3-r1 apk
|
libgcrypt 1.10.3-r1 apk
|
||||||
libgd 2.3.3-r9 apk
|
libgd 2.3.3-r9 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.3 python
|
||||||
scanelf 1.3.8-r1 apk
|
scanelf 1.3.8-r1 apk
|
||||||
setuptools 75.6.0 python
|
setuptools 75.8.2 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
|
||||||
|
|||||||
@@ -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."}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
|
||||||
|
|||||||
41
root/etc/s6-overlay/s6-rc.d/svc-swag-auto-reload/run
Executable file
41
root/etc/s6-overlay/s6-rc.d/svc-swag-auto-reload/run
Executable 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
|
||||||
1
root/etc/s6-overlay/s6-rc.d/svc-swag-auto-reload/type
Normal file
1
root/etc/s6-overlay/s6-rc.d/svc-swag-auto-reload/type
Normal file
@@ -0,0 +1 @@
|
|||||||
|
longrun
|
||||||
7
root/migrations/02-swag-old-certbot-paths
Executable file
7
root/migrations/02-swag-old-certbot-paths
Executable 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
|
||||||
Reference in New Issue
Block a user