diff --git a/readme-vars.yml b/readme-vars.yml
index dd8eac5..2a9e9d6 100644
--- a/readme-vars.yml
+++ b/readme-vars.yml
@@ -6,44 +6,40 @@ project_url: "https://linuxserver.io"
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_lsio_github_repo_url: "https://github.com/linuxserver/docker-{{ project_name }}"
-
# supported architectures
available_architectures:
- - { arch: "{{ arch_x86_64 }}", tag: "amd64-latest"}
- - { arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"}
-
+ - {arch: "{{ arch_x86_64 }}", tag: "amd64-latest"}
+ - {arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"}
# container parameters
common_param_env_vars_enabled: true
param_container_name: "{{ project_name }}"
param_usage_include_env: true
param_env_vars:
- - { env_var: "URL", env_value: "example.com", desc: "Top url you have control over (e.g. `example.com` if you own it, or `customsubdomain.example.com` if dynamic dns)." }
- - { env_var: "VALIDATION", env_value: "http", desc: "Certbot validation method to use, options are `http` or `dns` (`dns` method also requires `DNSPLUGIN` variable set).", env_options: ["http", "dns"] }
+ - {env_var: "URL", env_value: "example.com", desc: "Top url you have control over (e.g. `example.com` if you own it, or `customsubdomain.example.com` if dynamic dns)."}
+ - {env_var: "VALIDATION", env_value: "http", desc: "Certbot validation method to use, options are `http` or `dns` (`dns` method also requires `DNSPLUGIN` variable set).", env_options: ["http", "dns"]}
param_usage_include_vols: true
param_volumes:
- - { vol_path: "/config", vol_host_path: "/path/to/{{ project_name }}/config", desc: "Persistent config files" }
+ - {vol_path: "/config", vol_host_path: "/path/to/{{ project_name }}/config", desc: "Persistent config files"}
param_usage_include_ports: true
param_ports:
- - { external_port: "443", internal_port: "443", port_desc: "HTTPS port" }
+ - {external_port: "443", internal_port: "443", port_desc: "HTTPS port"}
cap_add_param: true
cap_add_param_vars:
- - { cap_add_var: "NET_ADMIN", desc: "Required for fail2Ban to be able to modify iptables rules." }
-
+ - {cap_add_var: "NET_ADMIN", desc: "Required for fail2Ban to be able to modify iptables rules."}
# optional container parameters
opt_param_usage_include_env: true
opt_param_env_vars:
- - { env_var: "SUBDOMAINS", env_value: "www,", desc: "Subdomains you'd like the cert to cover (comma separated, no spaces) ie. `www,ftp,cloud`. For a wildcard cert, set this *exactly* to `wildcard` (wildcard cert is available via `dns` validation only)" }
- - { env_var: "CERTPROVIDER", env_value: "", desc: "Optionally define the cert provider. Set to `zerossl` for ZeroSSL certs (requires existing [ZeroSSL account](https://app.zerossl.com/signup) and the e-mail address entered in `EMAIL` env var). Otherwise defaults to Let's Encrypt." }
- - { env_var: "DNSPLUGIN", env_value: "cloudflare", desc: "Required if `VALIDATION` is set to `dns`. Options are `acmedns`, `aliyun`, `azure`, `bunny`, `cloudflare`, `cpanel`, `desec`, `digitalocean`, `directadmin`, `dnsimple`, `dnsmadeeasy`, `dnspod`, `do`, `domeneshop`, `dreamhost`, `duckdns`, `dynu`, `freedns`, `gandi`, `gehirn`, `glesys`, `godaddy`, `google`, `he`, `hetzner`, `infomaniak`, `inwx`, `ionos`, `linode`, `loopia`, `luadns`, `namecheap`, `netcup`, `njalla`, `nsone`, `ovh`, `porkbun`, `rfc2136`, `route53`, `sakuracloud`, `standalone`, `transip`, and `vultr`. Also need to enter the credentials into the corresponding ini (or json for some plugins) file under `/config/dns-conf`." }
- - { env_var: "PROPAGATION", env_value: "", desc: "Optionally override (in seconds) the default propagation time for the dns plugins." }
- - { env_var: "EMAIL", env_value: "", desc: "Optional e-mail address used for cert expiration notifications (Required for ZeroSSL)." }
- - { env_var: "ONLY_SUBDOMAINS", env_value: "false", desc: "If you wish to get certs only for certain subdomains, but not the main domain (main domain may be hosted on another machine and cannot be validated), set this to `true`" }
- - { 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: "SUBDOMAINS", env_value: "www,", desc: "Subdomains you'd like the cert to cover (comma separated, no spaces) ie. `www,ftp,cloud`. For a wildcard cert, set this *exactly* to `wildcard` (wildcard cert is available via `dns` validation only)"}
+ - {env_var: "CERTPROVIDER", env_value: "", desc: "Optionally define the cert provider. Set to `zerossl` for ZeroSSL certs (requires existing [ZeroSSL account](https://app.zerossl.com/signup) and the e-mail address entered in `EMAIL` env var). Otherwise defaults to Let's Encrypt."}
+ - {env_var: "DNSPLUGIN", env_value: "cloudflare", desc: "Required if `VALIDATION` is set to `dns`. Options are `acmedns`, `aliyun`, `azure`, `bunny`, `cloudflare`, `cpanel`, `desec`, `digitalocean`, `directadmin`, `dnsimple`, `dnsmadeeasy`, `dnspod`, `do`, `domeneshop`, `dreamhost`, `duckdns`, `dynu`, `freedns`, `gandi`, `gehirn`, `glesys`, `godaddy`, `google`, `he`, `hetzner`, `infomaniak`, `inwx`, `ionos`, `linode`, `loopia`, `luadns`, `namecheap`, `netcup`, `njalla`, `nsone`, `ovh`, `porkbun`, `rfc2136`, `route53`, `sakuracloud`, `standalone`, `transip`, and `vultr`. Also need to enter the credentials into the corresponding ini (or json for some plugins) file under `/config/dns-conf`."}
+ - {env_var: "PROPAGATION", env_value: "", desc: "Optionally override (in seconds) the default propagation time for the dns plugins."}
+ - {env_var: "EMAIL", env_value: "", desc: "Optional e-mail address used for cert expiration notifications (Required for ZeroSSL)."}
+ - {env_var: "ONLY_SUBDOMAINS", env_value: "false", desc: "If you wish to get certs only for certain subdomains, but not the main domain (main domain may be hosted on another machine and cannot be validated), set this to `true`"}
+ - {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."}
opt_param_usage_include_ports: true
opt_param_ports:
- - { external_port: "80", internal_port: "80", port_desc: "HTTP port (required for HTTP validation and HTTP -> HTTPS redirect)" }
-
+ - {external_port: "80", internal_port: "80", port_desc: "HTTP port (required for HTTP validation and HTTP -> HTTPS redirect)"}
# application setup block
app_setup_block_enabled: true
app_setup_block: |
@@ -137,94 +133,158 @@ app_setup_block: |
### Migration from the old `linuxserver/letsencrypt` image
Please follow the instructions [on this blog post](https://www.linuxserver.io/blog/2020-08-21-introducing-swag#migrate).
-
+# init diagram
+init_diagram: |
+ "swag:latest": {
+ docker-mods
+ base {
+ fix-attr +\nlegacy cont-init
+ }
+ docker-mods -> base
+ legacy-services
+ custom services
+ init-services -> legacy-services
+ init-services -> custom services
+ custom services -> legacy-services
+ legacy-services -> ci-service-check
+ init-migrations -> init-adduser
+ init-swag-config -> init-certbot-config
+ init-nginx-end -> init-config
+ init-os-end -> init-config
+ init-config -> init-config-end
+ init-outdated-config -> init-config-end
+ init-os-end -> init-crontab-config
+ init-mods-end -> init-custom-files
+ base -> init-envfile
+ init-swag-samples -> init-fail2ban-config
+ init-os-end -> init-folders
+ init-php -> init-keygen
+ base -> init-migrations
+ base -> init-mods
+ init-config-end -> init-mods
+ init-version-checks -> init-mods
+ init-mods -> init-mods-end
+ init-mods-package-install -> init-mods-end
+ init-mods -> init-mods-package-install
+ init-samples -> init-nginx
+ init-permissions -> init-nginx-end
+ base -> init-os-end
+ init-adduser -> init-os-end
+ init-envfile -> init-os-end
+ init-migrations -> init-os-end
+ init-renew -> init-outdated-config
+ init-keygen -> init-permissions
+ init-certbot-config -> init-permissions-config
+ init-nginx -> init-php
+ init-permissions-config -> init-renew
+ init-config -> init-require-url
+ init-folders -> init-samples
+ init-custom-files -> init-services
+ init-mods-end -> init-services
+ init-fail2ban-config -> init-swag-config
+ init-require-url -> init-swag-folders
+ init-swag-folders -> init-swag-samples
+ init-config-end -> init-version-checks
+ init-services -> svc-cron
+ svc-cron -> legacy-services
+ init-services -> svc-fail2ban
+ svc-fail2ban -> legacy-services
+ init-services -> svc-nginx
+ svc-nginx -> legacy-services
+ init-services -> svc-php-fpm
+ svc-php-fpm -> legacy-services
+ }
+ Base Images: {
+ "baseimage-alpine-nginx:3.20" <- "baseimage-alpine:3.20"
+ }
+ "swag:latest" <- Base Images
# changelog
changelogs:
- - { 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: "24.07.14:", desc: "Rebase to Alpine 3.20. Remove deprecated Google Domains certbot plugin. Existing users should update their nginx confs to avoid http2 deprecation warnings."}
- - { date: "01.07.24:", desc: "Fall back to iptables-legacy if iptables doesn't work." }
- - { date: "23.03.24:", desc: "Fix perms on the generated `priv-fullchain-bundle.pem`." }
- - { date: "14.03.24:", desc: "[Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) authelia-location.conf, authelia-server.conf - Update Authelia conf samples with support for 4.38." }
- - { date: "11.03.24:", desc: "Restore support for DynuDNS using `certbot-dns-dynudns`." }
- - { date: "06.03.24:", desc: "[Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) site-confs/default.conf - Cleanup default site conf." }
- - { date: "04.03.24:", desc: "Remove `stream.conf` inside the container to allow users to include their own block in `nginx.conf`." }
- - { date: "23.01.24:", desc: "Rebase to Alpine 3.19 with php 8.3, add root periodic crontabs for logrotate." }
- - { date: "01.01.24:", desc: "Add GleSYS DNS plugin." }
- - { date: "11.12.23:", desc: "Deprecate certbot-dns-dynu to resolve dependency conflicts with other plugins." }
- - { date: "30.11.23:", desc: "[Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) site-confs/default.conf - Fix index.php being downloaded on 404." }
- - { date: "23.11.23:", desc: "Run certbot as root to allow fix http validation." }
- - { date: "01.10.23:", desc: "Fix \"unrecognized arguments\" issue in DirectAdmin DNS plugin." }
- - { date: "28.08.23:", desc: "Add Namecheap DNS plugin." }
- - { date: "12.08.23:", desc: "Add FreeDNS plugin. Detect certbot DNS authenticators using CLI." }
- - { date: "07.08.23:", desc: "Add Bunny DNS Configuration." }
- - { date: "27.07.23:", desc: "Added support for dreamhost validation." }
- - { date: "25.05.23:", desc: "Rebase to Alpine 3.18, deprecate armhf." }
- - { date: "27.04.23:", desc: "[Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) authelia-location.conf, authelia-server.conf, authentik-location.conf, authentik-server.conf - Simplify auth configs and fix Set-Cookie header bug." }
- - { date: "13.04.23:", desc: "[Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) nginx.conf, authelia-location.conf, authentik-location.conf, and site-confs/default.conf - Move ssl.conf include to default.conf. Remove Authorization headers in authelia. Sort proxy_set_header in authelia and authentik." }
- - { date: "25.03.23:", desc: "Fix renewal post hook." }
- - { date: "10.03.23:", desc: "Cleanup unused csr and keys folders. See [certbot 2.3.0 release notes](https://github.com/certbot/certbot/releases/tag/v2.3.0)." }
- - { date: "09.03.23:", desc: "Add Google Domains DNS support, `google-domains`." }
- - { date: "02.03.23:", desc: "Set permissions on crontabs during init." }
- - { date: "09.02.23:", desc: "[Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) proxy.conf, authelia-location.conf and authelia-server.conf - Add Authentik configs, update Authelia configs." }
- - { date: "06.02.23:", desc: "Add porkbun support back in." }
- - { date: "21.01.23:", desc: "Unpin certbot version (allow certbot 2.x). !!BREAKING CHANGE!! We are temporarily removing the certbot porkbun plugin until a new version is released that is compatible with certbot 2.x." }
- - { date: "20.01.23:", desc: "Rebase to alpine 3.17 with php8.1." }
- - { date: "16.01.23:", desc: "Remove nchan module because it keeps causing crashes." }
- - { date: "08.12.22:", desc: "Revamp certbot init."}
- - { date: "03.12.22:", desc: "Remove defunct cloudxns plugin."}
- - { date: "22.11.22:", desc: "Pin acme to the same version as certbot."}
- - { date: "22.11.22:", desc: "Pin certbot to 1.32.0 until plugin compatibility improves."}
- - { date: "05.11.22:", desc: "Update acmedns plugin handling."}
- - { date: "06.10.22:", desc: "Switch to certbot-dns-duckdns. Update cpanel and gandi dns plugin handling. Minor adjustments to init logic." }
- - { date: "05.10.22:", desc: "Use certbot file hooks instead of command line hooks" }
- - { date: "04.10.22:", desc: "Add godaddy and porkbun dns plugins." }
- - { date: "03.10.22:", desc: "Add default_server back to default site conf's https listen." }
- - { date: "22.09.22:", desc: "Added support for DO DNS validation." }
- - { date: "22.09.22:", desc: "Added certbot-dns-acmedns for DNS01 validation." }
- - { date: "20.08.22:", desc: "[Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) nginx.conf - Rebasing to alpine 3.15 with php8. Restructure nginx configs ([see changes announcement](https://info.linuxserver.io/issues/2022-08-20-nginx-base))." }
- - { date: "10.08.22:", desc: "Added support for Dynu DNS validation." }
- - { date: "18.05.22:", desc: "Added support for Azure DNS validation." }
- - { date: "09.04.22:", desc: "Added certbot-dns-loopia for DNS01 validation." }
- - { date: "05.04.22:", desc: "Added support for standalone DNS validation." }
- - { date: "28.03.22:", desc: "created a logfile for fail2ban nginx-unauthorized in /etc/cont-init.d/50-config" }
- - { date: "09.01.22:", desc: "Added a fail2ban jail for nginx unauthorized" }
- - { date: "21.12.21:", desc: "Fixed issue with iptables not working as expected" }
- - { date: "30.11.21:", desc: "Move maxmind to a [new mod](https://github.com/linuxserver/docker-mods/tree/swag-maxmind)" }
- - { date: "22.11.21:", desc: "Added support for Infomaniak DNS for certificate generation." }
- - { date: "20.11.21:", desc: "Added support for dnspod validation." }
- - { date: "15.11.21:", desc: "Added support for deSEC DNS for wildcard certificate generation." }
- - { date: "26.10.21:", desc: "[Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) proxy.conf - Mitigate vulnerabilities. Ref: " }
- - { date: "23.10.21:", desc: "Fix Hurricane Electric (HE) DNS validation." }
- - { date: "12.10.21:", desc: "Fix deprecated LE root cert check to fix failures when using `STAGING=true`, and failures in revoking." }
- - { date: "06.10.21:", desc: "Added support for Hurricane Electric (HE) DNS validation. Added lxml build deps." }
- - { date: "01.10.21:", desc: "Check if the cert uses the old LE root cert, revoke and regenerate if necessary. [Here's more info](https://twitter.com/letsencrypt/status/1443621997288767491) on LE root cert expiration" }
- - { date: "19.09.21:", desc: "Add an optional header to opt out of Google FLoC in `ssl.conf`." }
- - { date: "17.09.21:", desc: "Mark `SUBDOMAINS` var as optional." }
- - { date: "01.08.21:", desc: "Add support for ionos dns validation." }
- - { date: "15.07.21:", desc: "Fix libmaxminddb issue due to upstream change." }
- - { date: "07.07.21:", desc: "Rebase to alpine 3.14." }
- - { date: "24.06.21:", desc: "Update default nginx conf folder." }
- - { date: "28.05.21:", desc: "[Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) authelia-server.conf - Use `resolver.conf` and patch for `CVE-2021-32637`." }
- - { date: "20.05.21:", desc: "Modify resolver.conf generation to detect and ignore ipv6." }
- - { date: "14.05.21:", desc: "[Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) nginx.conf, ssl.conf, proxy.conf, and the default site-conf - Rework nginx.conf to be inline with alpine upstream and relocate lines from other files. Use linuxserver.io wheel index for pip packages. Switch to using [ffdhe4096](https://ssl-config.mozilla.org/ffdhe4096.txt) for `dhparams.pem` per [RFC7919](https://datatracker.ietf.org/doc/html/rfc7919). Added `worker_processes.conf`, which sets the number of nginx workers, and `resolver.conf`, which sets the dns resolver. Both conf files are auto-generated only on first start and can be user modified later." }
- - { date: "21.04.21:", desc: "[Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) authelia-server.conf and authelia-location.conf - Add remote name/email headers and pass http method." }
- - { date: "12.04.21:", desc: "Add php7-gmp and php7-pecl-mailparse." }
- - { date: "12.04.21:", desc: "Add support for vultr dns validation." }
- - { date: "14.03.21:", desc: "Add support for directadmin dns validation." }
- - { date: "12.02.21:", desc: "Clean up rust/cargo cache, which ballooned the image size in the last couple of builds." }
- - { date: "10.02.21:", desc: "Fix aliyun, domeneshop, inwx and transip dns confs for existing users." }
- - { date: "09.02.21:", desc: "Rebasing to alpine 3.13. Add nginx mods brotli and dav-ext. Remove nginx mods lua and lua-upstream (due to regression over the last couple of years)." }
- - { date: "26.01.21:", desc: "Add support for hetzner dns validation." }
- - { date: "20.01.21:", desc: "Add check for ZeroSSL EAB retrieval." }
- - { date: "08.01.21:", desc: "Add support for getting certs from [ZeroSSL](https://zerossl.com/) via optional `CERTPROVIDER` env var. Update aliyun, domeneshop, inwx and transip dns plugins with the new plugin names. Hide `donoteditthisfile.conf` because users were editing it despite its name. Suppress harmless error when no proxy confs are enabled." }
- - { date: "03.01.21:", desc: "[Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) /config/nginx/site-confs/default.conf - Add helper pages to aid troubleshooting" }
- - { date: "10.12.20:", desc: "Add support for njalla dns validation" }
- - { date: "09.12.20:", desc: "Check for template/conf updates and notify in the log. Add support for gehirn and sakuracloud dns validation." }
- - { date: "01.11.20:", desc: "Add support for netcup dns validation" }
- - { date: "29.10.20:", desc: "[Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) ssl.conf - Add frame-ancestors to Content-Security-Policy." }
- - { date: "04.10.20:", desc: "[Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) nginx.conf, proxy.conf, and ssl.conf - Minor cleanups and reordering." }
- - { date: "20.09.20:", desc: "[Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) nginx.conf - Added geoip2 configs. Added MAXMINDDB_LICENSE_KEY variable to readme."}
- - { date: "08.09.20:", desc: "Add php7-xsl." }
- - { date: "01.09.20:", desc: "[Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) nginx.conf, proxy.conf, and various proxy samples - Global websockets across all configs." }
- - { date: "03.08.20:", desc: "Initial release." }
+ - {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: "24.07.14:", desc: "Rebase to Alpine 3.20. Remove deprecated Google Domains certbot plugin. Existing users should update their nginx confs to avoid http2 deprecation warnings."}
+ - {date: "01.07.24:", desc: "Fall back to iptables-legacy if iptables doesn't work."}
+ - {date: "23.03.24:", desc: "Fix perms on the generated `priv-fullchain-bundle.pem`."}
+ - {date: "14.03.24:", desc: "[Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) authelia-location.conf, authelia-server.conf - Update Authelia conf samples with support for 4.38."}
+ - {date: "11.03.24:", desc: "Restore support for DynuDNS using `certbot-dns-dynudns`."}
+ - {date: "06.03.24:", desc: "[Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) site-confs/default.conf - Cleanup default site conf."}
+ - {date: "04.03.24:", desc: "Remove `stream.conf` inside the container to allow users to include their own block in `nginx.conf`."}
+ - {date: "23.01.24:", desc: "Rebase to Alpine 3.19 with php 8.3, add root periodic crontabs for logrotate."}
+ - {date: "01.01.24:", desc: "Add GleSYS DNS plugin."}
+ - {date: "11.12.23:", desc: "Deprecate certbot-dns-dynu to resolve dependency conflicts with other plugins."}
+ - {date: "30.11.23:", desc: "[Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) site-confs/default.conf - Fix index.php being downloaded on 404."}
+ - {date: "23.11.23:", desc: "Run certbot as root to allow fix http validation."}
+ - {date: "01.10.23:", desc: "Fix \"unrecognized arguments\" issue in DirectAdmin DNS plugin."}
+ - {date: "28.08.23:", desc: "Add Namecheap DNS plugin."}
+ - {date: "12.08.23:", desc: "Add FreeDNS plugin. Detect certbot DNS authenticators using CLI."}
+ - {date: "07.08.23:", desc: "Add Bunny DNS Configuration."}
+ - {date: "27.07.23:", desc: "Added support for dreamhost validation."}
+ - {date: "25.05.23:", desc: "Rebase to Alpine 3.18, deprecate armhf."}
+ - {date: "27.04.23:", desc: "[Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) authelia-location.conf, authelia-server.conf, authentik-location.conf, authentik-server.conf - Simplify auth configs and fix Set-Cookie header bug."}
+ - {date: "13.04.23:", desc: "[Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) nginx.conf, authelia-location.conf, authentik-location.conf, and site-confs/default.conf - Move ssl.conf include to default.conf. Remove Authorization headers in authelia. Sort proxy_set_header in authelia and authentik."}
+ - {date: "25.03.23:", desc: "Fix renewal post hook."}
+ - {date: "10.03.23:", desc: "Cleanup unused csr and keys folders. See [certbot 2.3.0 release notes](https://github.com/certbot/certbot/releases/tag/v2.3.0)."}
+ - {date: "09.03.23:", desc: "Add Google Domains DNS support, `google-domains`."}
+ - {date: "02.03.23:", desc: "Set permissions on crontabs during init."}
+ - {date: "09.02.23:", desc: "[Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) proxy.conf, authelia-location.conf and authelia-server.conf - Add Authentik configs, update Authelia configs."}
+ - {date: "06.02.23:", desc: "Add porkbun support back in."}
+ - {date: "21.01.23:", desc: "Unpin certbot version (allow certbot 2.x). !!BREAKING CHANGE!! We are temporarily removing the certbot porkbun plugin until a new version is released that is compatible with certbot 2.x."}
+ - {date: "20.01.23:", desc: "Rebase to alpine 3.17 with php8.1."}
+ - {date: "16.01.23:", desc: "Remove nchan module because it keeps causing crashes."}
+ - {date: "08.12.22:", desc: "Revamp certbot init."}
+ - {date: "03.12.22:", desc: "Remove defunct cloudxns plugin."}
+ - {date: "22.11.22:", desc: "Pin acme to the same version as certbot."}
+ - {date: "22.11.22:", desc: "Pin certbot to 1.32.0 until plugin compatibility improves."}
+ - {date: "05.11.22:", desc: "Update acmedns plugin handling."}
+ - {date: "06.10.22:", desc: "Switch to certbot-dns-duckdns. Update cpanel and gandi dns plugin handling. Minor adjustments to init logic."}
+ - {date: "05.10.22:", desc: "Use certbot file hooks instead of command line hooks"}
+ - {date: "04.10.22:", desc: "Add godaddy and porkbun dns plugins."}
+ - {date: "03.10.22:", desc: "Add default_server back to default site conf's https listen."}
+ - {date: "22.09.22:", desc: "Added support for DO DNS validation."}
+ - {date: "22.09.22:", desc: "Added certbot-dns-acmedns for DNS01 validation."}
+ - {date: "20.08.22:", desc: "[Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) nginx.conf - Rebasing to alpine 3.15 with php8. Restructure nginx configs ([see changes announcement](https://info.linuxserver.io/issues/2022-08-20-nginx-base))."}
+ - {date: "10.08.22:", desc: "Added support for Dynu DNS validation."}
+ - {date: "18.05.22:", desc: "Added support for Azure DNS validation."}
+ - {date: "09.04.22:", desc: "Added certbot-dns-loopia for DNS01 validation."}
+ - {date: "05.04.22:", desc: "Added support for standalone DNS validation."}
+ - {date: "28.03.22:", desc: "created a logfile for fail2ban nginx-unauthorized in /etc/cont-init.d/50-config"}
+ - {date: "09.01.22:", desc: "Added a fail2ban jail for nginx unauthorized"}
+ - {date: "21.12.21:", desc: "Fixed issue with iptables not working as expected"}
+ - {date: "30.11.21:", desc: "Move maxmind to a [new mod](https://github.com/linuxserver/docker-mods/tree/swag-maxmind)"}
+ - {date: "22.11.21:", desc: "Added support for Infomaniak DNS for certificate generation."}
+ - {date: "20.11.21:", desc: "Added support for dnspod validation."}
+ - {date: "15.11.21:", desc: "Added support for deSEC DNS for wildcard certificate generation."}
+ - {date: "26.10.21:", desc: "[Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) proxy.conf - Mitigate vulnerabilities. Ref: "}
+ - {date: "23.10.21:", desc: "Fix Hurricane Electric (HE) DNS validation."}
+ - {date: "12.10.21:", desc: "Fix deprecated LE root cert check to fix failures when using `STAGING=true`, and failures in revoking."}
+ - {date: "06.10.21:", desc: "Added support for Hurricane Electric (HE) DNS validation. Added lxml build deps."}
+ - {date: "01.10.21:", desc: "Check if the cert uses the old LE root cert, revoke and regenerate if necessary. [Here's more info](https://twitter.com/letsencrypt/status/1443621997288767491) on LE root cert expiration"}
+ - {date: "19.09.21:", desc: "Add an optional header to opt out of Google FLoC in `ssl.conf`."}
+ - {date: "17.09.21:", desc: "Mark `SUBDOMAINS` var as optional."}
+ - {date: "01.08.21:", desc: "Add support for ionos dns validation."}
+ - {date: "15.07.21:", desc: "Fix libmaxminddb issue due to upstream change."}
+ - {date: "07.07.21:", desc: "Rebase to alpine 3.14."}
+ - {date: "24.06.21:", desc: "Update default nginx conf folder."}
+ - {date: "28.05.21:", desc: "[Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) authelia-server.conf - Use `resolver.conf` and patch for `CVE-2021-32637`."}
+ - {date: "20.05.21:", desc: "Modify resolver.conf generation to detect and ignore ipv6."}
+ - {date: "14.05.21:", desc: "[Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) nginx.conf, ssl.conf, proxy.conf, and the default site-conf - Rework nginx.conf to be inline with alpine upstream and relocate lines from other files. Use linuxserver.io wheel index for pip packages. Switch to using [ffdhe4096](https://ssl-config.mozilla.org/ffdhe4096.txt) for `dhparams.pem` per [RFC7919](https://datatracker.ietf.org/doc/html/rfc7919). Added `worker_processes.conf`, which sets the number of nginx workers, and `resolver.conf`, which sets the dns resolver. Both conf files are auto-generated only on first start and can be user modified later."}
+ - {date: "21.04.21:", desc: "[Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) authelia-server.conf and authelia-location.conf - Add remote name/email headers and pass http method."}
+ - {date: "12.04.21:", desc: "Add php7-gmp and php7-pecl-mailparse."}
+ - {date: "12.04.21:", desc: "Add support for vultr dns validation."}
+ - {date: "14.03.21:", desc: "Add support for directadmin dns validation."}
+ - {date: "12.02.21:", desc: "Clean up rust/cargo cache, which ballooned the image size in the last couple of builds."}
+ - {date: "10.02.21:", desc: "Fix aliyun, domeneshop, inwx and transip dns confs for existing users."}
+ - {date: "09.02.21:", desc: "Rebasing to alpine 3.13. Add nginx mods brotli and dav-ext. Remove nginx mods lua and lua-upstream (due to regression over the last couple of years)."}
+ - {date: "26.01.21:", desc: "Add support for hetzner dns validation."}
+ - {date: "20.01.21:", desc: "Add check for ZeroSSL EAB retrieval."}
+ - {date: "08.01.21:", desc: "Add support for getting certs from [ZeroSSL](https://zerossl.com/) via optional `CERTPROVIDER` env var. Update aliyun, domeneshop, inwx and transip dns plugins with the new plugin names. Hide `donoteditthisfile.conf` because users were editing it despite its name. Suppress harmless error when no proxy confs are enabled."}
+ - {date: "03.01.21:", desc: "[Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) /config/nginx/site-confs/default.conf - Add helper pages to aid troubleshooting"}
+ - {date: "10.12.20:", desc: "Add support for njalla dns validation"}
+ - {date: "09.12.20:", desc: "Check for template/conf updates and notify in the log. Add support for gehirn and sakuracloud dns validation."}
+ - {date: "01.11.20:", desc: "Add support for netcup dns validation"}
+ - {date: "29.10.20:", desc: "[Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) ssl.conf - Add frame-ancestors to Content-Security-Policy."}
+ - {date: "04.10.20:", desc: "[Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) nginx.conf, proxy.conf, and ssl.conf - Minor cleanups and reordering."}
+ - {date: "20.09.20:", desc: "[Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) nginx.conf - Added geoip2 configs. Added MAXMINDDB_LICENSE_KEY variable to readme."}
+ - {date: "08.09.20:", desc: "Add php7-xsl."}
+ - {date: "01.09.20:", desc: "[Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) nginx.conf, proxy.conf, and various proxy samples - Global websockets across all configs."}
+ - {date: "03.08.20:", desc: "Initial release."}