mirror of
https://github.com/linuxserver/docker-swag.git
synced 2026-03-03 00:43:34 +09:00
Compare commits
17 Commits
3.1.0-ls35
...
3.1.0-ls35
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1f2cc4ade5 | ||
|
|
fc0986b0be | ||
|
|
564fbd271a | ||
|
|
bffc4c9236 | ||
|
|
14cab18c36 | ||
|
|
c0adf4fd0a | ||
|
|
2160126f96 | ||
|
|
d81e33b63b | ||
|
|
21b5a79e06 | ||
|
|
02ed03a455 | ||
|
|
515fdf45d8 | ||
|
|
5a5d0ebaec | ||
|
|
37deacf13a | ||
|
|
16d5763dcc | ||
|
|
e12d7e642c | ||
|
|
0cddb6d6b7 | ||
|
|
ff8cf3bfa5 |
@@ -29,6 +29,7 @@ RUN \
|
||||
apk add --no-cache \
|
||||
fail2ban \
|
||||
gnupg \
|
||||
inotify-tools \
|
||||
iptables-legacy \
|
||||
memcached \
|
||||
nginx-mod-http-brotli \
|
||||
|
||||
@@ -29,6 +29,7 @@ RUN \
|
||||
apk add --no-cache \
|
||||
fail2ban \
|
||||
gnupg \
|
||||
inotify-tools \
|
||||
iptables-legacy \
|
||||
memcached \
|
||||
nginx-mod-http-brotli \
|
||||
|
||||
@@ -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 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>`
|
||||
* 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
|
||||
|
||||
@@ -190,6 +190,8 @@ services:
|
||||
- EXTRA_DOMAINS= #optional
|
||||
- STAGING=false #optional
|
||||
- DISABLE_F2B= #optional
|
||||
- SWAG_AUTORELOAD= #optional
|
||||
- SWAG_AUTORELOAD_WATCHLIST= #optional
|
||||
volumes:
|
||||
- /path/to/swag/config:/config
|
||||
ports:
|
||||
@@ -218,6 +220,8 @@ docker run -d \
|
||||
-e EXTRA_DOMAINS= `#optional` \
|
||||
-e STAGING=false `#optional` \
|
||||
-e DISABLE_F2B= `#optional` \
|
||||
-e SWAG_AUTORELOAD= `#optional` \
|
||||
-e SWAG_AUTORELOAD_WATCHLIST= `#optional` \
|
||||
-p 443:443 \
|
||||
-p 80:80 `#optional` \
|
||||
-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 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 SWAG_AUTORELOAD=` | Set to `true` to enable automatic reloading of nginx confs on change. 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 `|`-separated list of additional folders for auto reload to watch in addition to `/config/nginx` |
|
||||
| `-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/). |
|
||||
| `--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
|
||||
|
||||
* **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).
|
||||
* **30.08.24:** - Fix zerossl cert revocation.
|
||||
|
||||
@@ -5,7 +5,7 @@ acme 3.1.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.21.0-r0 apk
|
||||
alpine-release 3.21.2-r0 apk
|
||||
aom-libs 3.11.0-r0 apk
|
||||
apache2-utils 2.4.62-r0 apk
|
||||
apk-tools 2.14.6-r2 apk
|
||||
@@ -22,16 +22,16 @@ azure-mgmt-dns 8.2.0 python
|
||||
backports-tarfile 1.2.0 python
|
||||
bash 5.2.37-r0 apk
|
||||
beautifulsoup4 4.12.3 python
|
||||
boto3 1.35.94 python
|
||||
botocore 1.35.94 python
|
||||
boto3 1.36.2 python
|
||||
botocore 1.36.2 python
|
||||
brotli-libs 1.1.0-r2 apk
|
||||
bs4 0.0.2 python
|
||||
busybox 1.37.0-r9 apk
|
||||
busybox-binsh 1.37.0-r9 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 20241121-r0 apk
|
||||
ca-certificates-bundle 20241121-r0 apk
|
||||
ca-certificates 20241121-r1 apk
|
||||
ca-certificates-bundle 20241121-r1 apk
|
||||
cachetools 5.5.0 python
|
||||
catatonit 0.2.0-r0 apk
|
||||
certbot 3.1.0 python
|
||||
@@ -85,10 +85,10 @@ cloudflare 2.19.4 python
|
||||
composer 2.8.4 binary
|
||||
configargparse 1.7 python
|
||||
configobj 5.0.9 python
|
||||
coreutils 9.5-r1 apk
|
||||
coreutils-env 9.5-r1 apk
|
||||
coreutils-fmt 9.5-r1 apk
|
||||
coreutils-sha512sum 9.5-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.0 python
|
||||
curl 8.11.1-r0 apk
|
||||
distro 1.9.0 python
|
||||
@@ -105,9 +105,9 @@ fontconfig 2.15.0-r1 apk
|
||||
freetype 2.13.3-r0 apk
|
||||
future 1.0.0 python
|
||||
gdbm 1.24-r0 apk
|
||||
git 2.47.1-r0 apk
|
||||
git-init-template 2.47.1-r0 apk
|
||||
git-perl 2.47.1-r0 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
|
||||
@@ -117,7 +117,7 @@ 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.24.0 python
|
||||
google-api-python-client 2.157.0 python
|
||||
google-api-python-client 2.159.0 python
|
||||
google-auth 2.37.0 python
|
||||
google-auth-httplib2 0.2.0 python
|
||||
googleapis-common-protos 1.66.0 python
|
||||
@@ -132,6 +132,8 @@ icu-libs 74.2-r0 apk
|
||||
idna 3.10 python
|
||||
importlib-metadata 8.0.0 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
|
||||
iptables 1.8.10-r5 apk
|
||||
iptables-legacy 1.8.10-r5 apk
|
||||
@@ -190,7 +192,7 @@ libssl3 3.3.2-r4 apk
|
||||
libstdc++ 14.2.0-r4 apk
|
||||
libtasn1 4.19.0-r2 apk
|
||||
libunistring 1.2-r0 apk
|
||||
libuuid 2.40.2-r4 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
|
||||
@@ -249,58 +251,58 @@ packaging 24.2 python
|
||||
parsedatetime 2.6 python
|
||||
pcre 8.45-r3 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-git 2.47.1-r0 apk
|
||||
php83 8.3.15-r0 apk
|
||||
php83-bcmath 8.3.15-r0 apk
|
||||
php83-bz2 8.3.15-r0 apk
|
||||
php83-common 8.3.15-r0 apk
|
||||
php83-ctype 8.3.15-r0 apk
|
||||
php83-curl 8.3.15-r0 apk
|
||||
php83-dom 8.3.15-r0 apk
|
||||
php83-exif 8.3.15-r0 apk
|
||||
php83-fileinfo 8.3.15-r0 apk
|
||||
php83-fpm 8.3.15-r0 apk
|
||||
php83-ftp 8.3.15-r0 apk
|
||||
php83-gd 8.3.15-r0 apk
|
||||
php83-gmp 8.3.15-r0 apk
|
||||
php83-iconv 8.3.15-r0 apk
|
||||
php83-imap 8.3.15-r0 apk
|
||||
php83-intl 8.3.15-r0 apk
|
||||
php83-ldap 8.3.15-r0 apk
|
||||
php83-mbstring 8.3.15-r0 apk
|
||||
php83-mysqli 8.3.15-r0 apk
|
||||
php83-mysqlnd 8.3.15-r0 apk
|
||||
php83-opcache 8.3.15-r0 apk
|
||||
php83-openssl 8.3.15-r0 apk
|
||||
php83-pdo 8.3.15-r0 apk
|
||||
php83-pdo_mysql 8.3.15-r0 apk
|
||||
php83-pdo_odbc 8.3.15-r0 apk
|
||||
php83-pdo_pgsql 8.3.15-r0 apk
|
||||
php83-pdo_sqlite 8.3.15-r0 apk
|
||||
php83-pear 8.3.15-r0 apk
|
||||
perl-git 2.47.2-r0 apk
|
||||
php83 8.3.16-r0 apk
|
||||
php83-bcmath 8.3.16-r0 apk
|
||||
php83-bz2 8.3.16-r0 apk
|
||||
php83-common 8.3.16-r0 apk
|
||||
php83-ctype 8.3.16-r0 apk
|
||||
php83-curl 8.3.16-r0 apk
|
||||
php83-dom 8.3.16-r0 apk
|
||||
php83-exif 8.3.16-r0 apk
|
||||
php83-fileinfo 8.3.16-r0 apk
|
||||
php83-fpm 8.3.16-r0 apk
|
||||
php83-ftp 8.3.16-r0 apk
|
||||
php83-gd 8.3.16-r0 apk
|
||||
php83-gmp 8.3.16-r0 apk
|
||||
php83-iconv 8.3.16-r0 apk
|
||||
php83-imap 8.3.16-r0 apk
|
||||
php83-intl 8.3.16-r0 apk
|
||||
php83-ldap 8.3.16-r0 apk
|
||||
php83-mbstring 8.3.16-r0 apk
|
||||
php83-mysqli 8.3.16-r0 apk
|
||||
php83-mysqlnd 8.3.16-r0 apk
|
||||
php83-opcache 8.3.16-r0 apk
|
||||
php83-openssl 8.3.16-r0 apk
|
||||
php83-pdo 8.3.16-r0 apk
|
||||
php83-pdo_mysql 8.3.16-r0 apk
|
||||
php83-pdo_odbc 8.3.16-r0 apk
|
||||
php83-pdo_pgsql 8.3.16-r0 apk
|
||||
php83-pdo_sqlite 8.3.16-r0 apk
|
||||
php83-pear 8.3.16-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.15-r0 apk
|
||||
php83-phar 8.3.15-r0 apk
|
||||
php83-posix 8.3.15-r0 apk
|
||||
php83-session 8.3.15-r0 apk
|
||||
php83-simplexml 8.3.15-r0 apk
|
||||
php83-soap 8.3.15-r0 apk
|
||||
php83-sockets 8.3.15-r0 apk
|
||||
php83-sodium 8.3.15-r0 apk
|
||||
php83-sqlite3 8.3.15-r0 apk
|
||||
php83-tokenizer 8.3.15-r0 apk
|
||||
php83-xml 8.3.15-r0 apk
|
||||
php83-xmlreader 8.3.15-r0 apk
|
||||
php83-xmlwriter 8.3.15-r0 apk
|
||||
php83-xsl 8.3.15-r0 apk
|
||||
php83-zip 8.3.15-r0 apk
|
||||
php83-pgsql 8.3.16-r0 apk
|
||||
php83-phar 8.3.16-r0 apk
|
||||
php83-posix 8.3.16-r0 apk
|
||||
php83-session 8.3.16-r0 apk
|
||||
php83-simplexml 8.3.16-r0 apk
|
||||
php83-soap 8.3.16-r0 apk
|
||||
php83-sockets 8.3.16-r0 apk
|
||||
php83-sodium 8.3.16-r0 apk
|
||||
php83-sqlite3 8.3.16-r0 apk
|
||||
php83-tokenizer 8.3.16-r0 apk
|
||||
php83-xml 8.3.16-r0 apk
|
||||
php83-xmlreader 8.3.16-r0 apk
|
||||
php83-xmlwriter 8.3.16-r0 apk
|
||||
php83-xsl 8.3.16-r0 apk
|
||||
php83-zip 8.3.16-r0 apk
|
||||
pinentry 1.3.1-r0 apk
|
||||
pip 24.3.1 python
|
||||
pkb-client 2.0.0 python
|
||||
@@ -309,7 +311,7 @@ popt 1.19-r4 apk
|
||||
portalocker 2.10.1 python
|
||||
procps-ng 4.0.4-r2 apk
|
||||
proto-plus 1.25.0 python
|
||||
protobuf 5.29.2 python
|
||||
protobuf 5.29.3 python
|
||||
pyacmedns 0.4 python
|
||||
pyasn1 0.6.1 python
|
||||
pyasn1-modules 0.4.1 python
|
||||
@@ -317,7 +319,7 @@ pyc 3.12.8-r1 apk
|
||||
pycparser 2.22 python
|
||||
pyjwt 2.10.1 python
|
||||
pynamecheap 0.0.3 python
|
||||
pyopenssl 24.3.0 python
|
||||
pyopenssl 25.0.0 python
|
||||
pyotp 2.9.0 python
|
||||
pyparsing 3.2.1 python
|
||||
pyrfc3339 2.0.1 python
|
||||
@@ -334,15 +336,15 @@ requests 2.32.3 python
|
||||
requests-file 2.1.0 python
|
||||
requests-mock 1.12.1 python
|
||||
rsa 4.9 python
|
||||
s3transfer 0.10.4 python
|
||||
s3transfer 0.11.1 python
|
||||
scanelf 1.3.8-r1 apk
|
||||
setuptools 75.7.0 python
|
||||
setuptools 75.8.0 python
|
||||
shadow 4.16.0-r1 apk
|
||||
six 1.17.0 python
|
||||
skalibs-libs 2.14.3.0-r0 apk
|
||||
soupsieve 2.6 python
|
||||
sqlite-libs 3.47.1-r0 apk
|
||||
ssl_client 1.37.0-r9 apk
|
||||
ssl_client 1.37.0-r12 apk
|
||||
tiff 4.7.0-r0 apk
|
||||
tldextract 5.1.3 python
|
||||
tomli 2.0.1 python
|
||||
|
||||
@@ -38,6 +38,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: "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: "SWAG_AUTORELOAD", env_value: "", desc: "Set to `true` to enable automatic reloading of nginx confs on change. 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 `|`-separated list of additional folders for auto reload to watch in addition to `/config/nginx`"}
|
||||
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)"}
|
||||
@@ -119,7 +121,7 @@ app_setup_block: |
|
||||
* 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 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
|
||||
|
||||
@@ -193,6 +195,8 @@ init_diagram: |
|
||||
svc-nginx -> legacy-services
|
||||
init-services -> svc-php-fpm
|
||||
svc-php-fpm -> legacy-services
|
||||
init-services -> svc-swag-auto-reload
|
||||
svc-swag-auto-reload -> legacy-services
|
||||
}
|
||||
Base Images: {
|
||||
"baseimage-alpine-nginx:3.21" <- "baseimage-alpine:3.21"
|
||||
@@ -200,6 +204,7 @@ init_diagram: |
|
||||
"swag:latest" <- Base Images
|
||||
# changelog
|
||||
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: "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."}
|
||||
|
||||
@@ -2,9 +2,7 @@
|
||||
# shellcheck shell=bash
|
||||
|
||||
# permissions
|
||||
find /config/log ! -path '/config/log/logrotate.status' -exec chmod +r {} \+
|
||||
|
||||
lsiown -R abc:abc \
|
||||
/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
|
||||
Reference in New Issue
Block a user