mirror of
https://github.com/linuxserver/docker-swag.git
synced 2026-03-07 02:35:16 +09:00
Compare commits
13 Commits
1.19.0-ls8
...
1.19.0-ls8
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ce33eeebe7 | ||
|
|
d027970b50 | ||
|
|
a73daf773a | ||
|
|
3f88a30d5c | ||
|
|
b72b1b25ea | ||
|
|
73c0dc9084 | ||
|
|
da8f646fc8 | ||
|
|
b309e1ce45 | ||
|
|
10b235cc1d | ||
|
|
9f700b50d9 | ||
|
|
e37e972875 | ||
|
|
e2699a7ee8 | ||
|
|
0aa7ffb50d |
23
README.md
23
README.md
@@ -58,17 +58,6 @@ The architectures supported by this image are:
|
||||
|
||||
## Application Setup
|
||||
|
||||
> ### Migrating from the old `linuxserver/letsencrypt` image
|
||||
> * If using docker cli:
|
||||
> * Stop and remove existing container via `docker stop letsencrypt` and `docker rm letsencrypt`
|
||||
> * Create new container using the sample on this page (container name: `swag`, image name: `linuxserver/swag`)
|
||||
> * If using docker compose:
|
||||
> * Edit the compose yaml to change the image to `linuxserver/swag` and change the service and container names to `swag`
|
||||
> * Issue `docker-compose up -d --remove-orphans`
|
||||
> * If you don't want to or can't use the option `--remove-orphans`, then you can first do `docker-compose down`, then edit the compose yaml as above, and then issue `docker-compose up -d`
|
||||
|
||||
> Make sure to also update any references to this container by name. For instance, Nextcloud's `config.php` references this container in its `trusted_proxies` directive, which would have to be updated to `swag`.
|
||||
|
||||
### Validation and initial setup
|
||||
|
||||
* Before running this container, make sure that the url and subdomains are properly forwarded to this container's host, and that port 443 (and/or 80) is not being used by another service on the host (NAS gui, another webserver, etc.).
|
||||
@@ -138,6 +127,9 @@ This will *ask* Google et al not to index and list your site. Be careful with th
|
||||
* Proxy sample files WILL be updated, however your renamed (enabled) proxy files will not.
|
||||
* You can check the new sample and adjust your active config as needed.
|
||||
|
||||
### 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).
|
||||
|
||||
## Usage
|
||||
|
||||
Here are some example snippets to help you get started creating a container.
|
||||
@@ -158,8 +150,8 @@ services:
|
||||
- PGID=1000
|
||||
- TZ=Europe/London
|
||||
- URL=yourdomain.url
|
||||
- SUBDOMAINS=www,
|
||||
- VALIDATION=http
|
||||
- SUBDOMAINS=www, #optional
|
||||
- CERTPROVIDER= #optional
|
||||
- DNSPLUGIN=cloudflare #optional
|
||||
- PROPAGATION= #optional
|
||||
@@ -187,8 +179,8 @@ docker run -d \
|
||||
-e PGID=1000 \
|
||||
-e TZ=Europe/London \
|
||||
-e URL=yourdomain.url \
|
||||
-e SUBDOMAINS=www, \
|
||||
-e VALIDATION=http \
|
||||
-e SUBDOMAINS=www, `#optional` \
|
||||
-e CERTPROVIDER= `#optional` \
|
||||
-e DNSPLUGIN=cloudflare `#optional` \
|
||||
-e PROPAGATION= `#optional` \
|
||||
@@ -217,8 +209,8 @@ Container images are configured using parameters passed at runtime (such as thos
|
||||
| `-e PGID=1000` | for GroupID - see below for explanation |
|
||||
| `-e TZ=Europe/London` | Specify a timezone to use EG Europe/London. |
|
||||
| `-e URL=yourdomain.url` | Top url you have control over (`customdomain.com` if you own it, or `customsubdomain.ddnsprovider.com` if dynamic dns). |
|
||||
| `-e SUBDOMAINS=www,` | 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` and `duckdns` validation only) |
|
||||
| `-e VALIDATION=http` | Certbot validation method to use, options are `http`, `dns` or `duckdns` (`dns` method also requires `DNSPLUGIN` variable set) (`duckdns` method requires `DUCKDNSTOKEN` variable set, and the `SUBDOMAINS` variable must be either empty or set to `wildcard`). |
|
||||
| `-e SUBDOMAINS=www,` | 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` and `duckdns` validation only) |
|
||||
| `-e CERTPROVIDER=` | 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. |
|
||||
| `-e DNSPLUGIN=cloudflare` | Required if `VALIDATION` is set to `dns`. Options are `aliyun`, `cloudflare`, `cloudxns`, `cpanel`, `digitalocean`, `directadmin`, `dnsimple`, `dnsmadeeasy`, `domeneshop`, `gandi`, `gehirn`, `google`, `hetzner`, `inwx`, `ionos`, `linode`, `luadns`, `netcup`, `njalla`, `nsone`, `ovh`, `rfc2136`, `route53`, `sakuracloud`, `transip` and `vultr`. Also need to enter the credentials into the corresponding ini (or json for some plugins) file under `/config/dns-conf`. |
|
||||
| `-e PROPAGATION=` | Optionally override (in seconds) the default propagation time for the dns plugins. |
|
||||
@@ -339,6 +331,9 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
|
||||
|
||||
## Versions
|
||||
|
||||
* **01.10.21:** - 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
|
||||
* **19.09.21:** - Add an optional header to opt out of Google FLoC in `ssl.conf`.
|
||||
* **17.09.21:** - Mark `SUBDOMAINS` var as optional.
|
||||
* **01.08.21:** - Add support for ionos dns validation.
|
||||
* **15.07.21:** - Fix libmaxminddb issue due to upstream change.
|
||||
* **07.07.21:** - Rebase to alpine 3.14.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
alpine-baselayout-3.2.0-r16
|
||||
alpine-keys-2.3-r1
|
||||
apache2-utils-2.4.48-r0
|
||||
apache2-utils-2.4.49-r0
|
||||
apk-tools-2.12.7-r0
|
||||
apr-1.7.0-r0
|
||||
apr-util-1.6.1-r7
|
||||
@@ -12,7 +12,7 @@ c-client-2007f-r11
|
||||
ca-certificates-20191127-r5
|
||||
ca-certificates-bundle-20191127-r5
|
||||
coreutils-8.32-r2
|
||||
curl-7.78.0-r0
|
||||
curl-7.79.1-r0
|
||||
expat-2.4.1-r0
|
||||
fail2ban-0.11.2-r0
|
||||
freetype-2.10.4-r1
|
||||
@@ -21,7 +21,7 @@ git-2.32.0-r0
|
||||
git-perl-2.32.0-r0
|
||||
glib-2.68.3-r0
|
||||
gmp-6.2.1-r0
|
||||
gnupg-2.2.27-r0
|
||||
gnupg-2.2.31-r0
|
||||
gnutls-3.7.1-r0
|
||||
icu-libs-67.1-r2
|
||||
ip6tables-1.8.7-r1
|
||||
@@ -35,13 +35,13 @@ libbz2-1.0.8-r1
|
||||
libc-utils-0.7.2-r3
|
||||
libcap-2.50-r0
|
||||
libcrypto1.1-1.1.1l-r0
|
||||
libcurl-7.78.0-r0
|
||||
libcurl-7.79.1-r0
|
||||
libedit-20210216.3.1-r0
|
||||
libevent-2.1.12-r2
|
||||
libffi-3.3-r2
|
||||
libgcc-10.3.1_git20210424-r2
|
||||
libgcrypt-1.9.4-r0
|
||||
libgd-2.3.2-r0
|
||||
libgd-2.3.2-r1
|
||||
libgpg-error-1.42-r0
|
||||
libice-1.0.10-r0
|
||||
libidn-1.37-r0
|
||||
@@ -94,7 +94,7 @@ musl-utils-1.2.2-r3
|
||||
nano-5.7-r2
|
||||
ncurses-libs-6.2_p20210612-r0
|
||||
ncurses-terminfo-base-6.2_p20210612-r0
|
||||
nettle-3.7.2-r0
|
||||
nettle-3.7.3-r0
|
||||
nghttp2-libs-1.43.0-r0
|
||||
nginx-1.20.1-r3
|
||||
nginx-mod-devel-kit-1.20.1-r3
|
||||
@@ -125,57 +125,57 @@ pcre2-10.36-r0
|
||||
perl-5.32.1-r0
|
||||
perl-error-0.17029-r1
|
||||
perl-git-2.32.0-r0
|
||||
php7-7.4.23-r0
|
||||
php7-bcmath-7.4.23-r0
|
||||
php7-bz2-7.4.23-r0
|
||||
php7-common-7.4.23-r0
|
||||
php7-ctype-7.4.23-r0
|
||||
php7-curl-7.4.23-r0
|
||||
php7-dom-7.4.23-r0
|
||||
php7-exif-7.4.23-r0
|
||||
php7-fileinfo-7.4.23-r0
|
||||
php7-fpm-7.4.23-r0
|
||||
php7-ftp-7.4.23-r0
|
||||
php7-gd-7.4.23-r0
|
||||
php7-gmp-7.4.23-r0
|
||||
php7-iconv-7.4.23-r0
|
||||
php7-imap-7.4.23-r0
|
||||
php7-intl-7.4.23-r0
|
||||
php7-json-7.4.23-r0
|
||||
php7-ldap-7.4.23-r0
|
||||
php7-mbstring-7.4.23-r0
|
||||
php7-mysqli-7.4.23-r0
|
||||
php7-mysqlnd-7.4.23-r0
|
||||
php7-opcache-7.4.23-r0
|
||||
php7-openssl-7.4.23-r0
|
||||
php7-pdo-7.4.23-r0
|
||||
php7-pdo_mysql-7.4.23-r0
|
||||
php7-pdo_odbc-7.4.23-r0
|
||||
php7-pdo_pgsql-7.4.23-r0
|
||||
php7-pdo_sqlite-7.4.23-r0
|
||||
php7-pear-7.4.23-r0
|
||||
php7-7.4.24-r0
|
||||
php7-bcmath-7.4.24-r0
|
||||
php7-bz2-7.4.24-r0
|
||||
php7-common-7.4.24-r0
|
||||
php7-ctype-7.4.24-r0
|
||||
php7-curl-7.4.24-r0
|
||||
php7-dom-7.4.24-r0
|
||||
php7-exif-7.4.24-r0
|
||||
php7-fileinfo-7.4.24-r0
|
||||
php7-fpm-7.4.24-r0
|
||||
php7-ftp-7.4.24-r0
|
||||
php7-gd-7.4.24-r0
|
||||
php7-gmp-7.4.24-r0
|
||||
php7-iconv-7.4.24-r0
|
||||
php7-imap-7.4.24-r0
|
||||
php7-intl-7.4.24-r0
|
||||
php7-json-7.4.24-r0
|
||||
php7-ldap-7.4.24-r0
|
||||
php7-mbstring-7.4.24-r0
|
||||
php7-mysqli-7.4.24-r0
|
||||
php7-mysqlnd-7.4.24-r0
|
||||
php7-opcache-7.4.24-r0
|
||||
php7-openssl-7.4.24-r0
|
||||
php7-pdo-7.4.24-r0
|
||||
php7-pdo_mysql-7.4.24-r0
|
||||
php7-pdo_odbc-7.4.24-r0
|
||||
php7-pdo_pgsql-7.4.24-r0
|
||||
php7-pdo_sqlite-7.4.24-r0
|
||||
php7-pear-7.4.24-r0
|
||||
php7-pecl-apcu-5.1.20-r0
|
||||
php7-pecl-igbinary-3.2.4-r0
|
||||
php7-pecl-mailparse-3.1.1-r1
|
||||
php7-pecl-mcrypt-1.0.4-r0
|
||||
php7-pecl-memcached-3.1.5-r2
|
||||
php7-pecl-redis-5.3.4-r0
|
||||
php7-pgsql-7.4.23-r0
|
||||
php7-phar-7.4.23-r0
|
||||
php7-posix-7.4.23-r0
|
||||
php7-session-7.4.23-r0
|
||||
php7-simplexml-7.4.23-r0
|
||||
php7-soap-7.4.23-r0
|
||||
php7-sockets-7.4.23-r0
|
||||
php7-sodium-7.4.23-r0
|
||||
php7-sqlite3-7.4.23-r0
|
||||
php7-tokenizer-7.4.23-r0
|
||||
php7-xml-7.4.23-r0
|
||||
php7-xmlreader-7.4.23-r0
|
||||
php7-xmlrpc-7.4.23-r0
|
||||
php7-xmlwriter-7.4.23-r0
|
||||
php7-xsl-7.4.23-r0
|
||||
php7-zip-7.4.23-r0
|
||||
php7-pgsql-7.4.24-r0
|
||||
php7-phar-7.4.24-r0
|
||||
php7-posix-7.4.24-r0
|
||||
php7-session-7.4.24-r0
|
||||
php7-simplexml-7.4.24-r0
|
||||
php7-soap-7.4.24-r0
|
||||
php7-sockets-7.4.24-r0
|
||||
php7-sodium-7.4.24-r0
|
||||
php7-sqlite3-7.4.24-r0
|
||||
php7-tokenizer-7.4.24-r0
|
||||
php7-xml-7.4.24-r0
|
||||
php7-xmlreader-7.4.24-r0
|
||||
php7-xmlrpc-7.4.24-r0
|
||||
php7-xmlwriter-7.4.24-r0
|
||||
php7-xsl-7.4.24-r0
|
||||
php7-zip-7.4.24-r0
|
||||
pinentry-1.1.1-r0
|
||||
popt-1.18-r0
|
||||
procps-3.3.17-r0
|
||||
@@ -217,7 +217,7 @@ shadow-4.8.1-r0
|
||||
skalibs-2.10.0.3-r0
|
||||
sqlite-libs-3.35.5-r0
|
||||
ssl_client-1.33.1-r3
|
||||
tzdata-2021a-r0
|
||||
tzdata-2021b-r0
|
||||
unixodbc-2.3.9-r1
|
||||
utmps-0.1.0.2-r0
|
||||
whois-5.5.10-r0
|
||||
|
||||
@@ -32,7 +32,6 @@ param_usage_include_env: true
|
||||
param_env_vars:
|
||||
- { env_var: "TZ", env_value: "Europe/London", desc: "Specify a timezone to use EG Europe/London." }
|
||||
- { env_var: "URL", env_value: "yourdomain.url", desc: "Top url you have control over (`customdomain.com` if you own it, or `customsubdomain.ddnsprovider.com` if dynamic dns)." }
|
||||
- { 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` and `duckdns` validation only)" }
|
||||
- { env_var: "VALIDATION", env_value: "http", desc: "Certbot validation method to use, options are `http`, `dns` or `duckdns` (`dns` method also requires `DNSPLUGIN` variable set) (`duckdns` method requires `DUCKDNSTOKEN` variable set, and the `SUBDOMAINS` variable must be either empty or set to `wildcard`)." }
|
||||
param_usage_include_vols: true
|
||||
param_volumes:
|
||||
@@ -50,6 +49,7 @@ cap_add_param_vars:
|
||||
# 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` and `duckdns` 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 `aliyun`, `cloudflare`, `cloudxns`, `cpanel`, `digitalocean`, `directadmin`, `dnsimple`, `dnsmadeeasy`, `domeneshop`, `gandi`, `gehirn`, `google`, `hetzner`, `inwx`, `ionos`, `linode`, `luadns`, `netcup`, `njalla`, `nsone`, `ovh`, `rfc2136`, `route53`, `sakuracloud`, `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." }
|
||||
@@ -78,17 +78,6 @@ optional_block_1_items: ""
|
||||
# application setup block
|
||||
app_setup_block_enabled: true
|
||||
app_setup_block: |
|
||||
> ### Migrating from the old `linuxserver/letsencrypt` image
|
||||
> * If using docker cli:
|
||||
> * Stop and remove existing container via `docker stop letsencrypt` and `docker rm letsencrypt`
|
||||
> * Create new container using the sample on this page (container name: `swag`, image name: `linuxserver/swag`)
|
||||
> * If using docker compose:
|
||||
> * Edit the compose yaml to change the image to `linuxserver/swag` and change the service and container names to `swag`
|
||||
> * Issue `docker-compose up -d --remove-orphans`
|
||||
> * If you don't want to or can't use the option `--remove-orphans`, then you can first do `docker-compose down`, then edit the compose yaml as above, and then issue `docker-compose up -d`
|
||||
|
||||
> Make sure to also update any references to this container by name. For instance, Nextcloud's `config.php` references this container in its `trusted_proxies` directive, which would have to be updated to `swag`.
|
||||
|
||||
### Validation and initial setup
|
||||
|
||||
* Before running this container, make sure that the url and subdomains are properly forwarded to this container's host, and that port 443 (and/or 80) is not being used by another service on the host (NAS gui, another webserver, etc.).
|
||||
@@ -158,11 +147,17 @@ app_setup_block: |
|
||||
* Proxy sample files WILL be updated, however your renamed (enabled) proxy files will not.
|
||||
* You can check the new sample and adjust your active config as needed.
|
||||
|
||||
### 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).
|
||||
|
||||
app_setup_nginx_reverse_proxy_snippet: false
|
||||
app_setup_nginx_reverse_proxy_block: ""
|
||||
|
||||
# changelog
|
||||
changelogs:
|
||||
- { 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." }
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
## Version 2021/04/27 - Changelog: https://github.com/linuxserver/docker-swag/commits/master/root/defaults/ssl.conf
|
||||
## Version 2021/09/19 - Changelog: https://github.com/linuxserver/docker-swag/commits/master/root/defaults/ssl.conf
|
||||
|
||||
### Mozilla Recommendations
|
||||
# generated 2020-06-17, Mozilla Guideline v5.4, nginx 1.18.0-r0, OpenSSL 1.1.1g-r0, intermediate configuration
|
||||
@@ -38,6 +38,7 @@ ssl_early_data on;
|
||||
# Optional additional headers
|
||||
#add_header Cache-Control "no-transform" always;
|
||||
#add_header Content-Security-Policy "upgrade-insecure-requests; frame-ancestors 'self'";
|
||||
#add_header Permissions-Policy "interest-cohort=()";
|
||||
#add_header Referrer-Policy "same-origin" always;
|
||||
#add_header X-Content-Type-Options "nosniff" always;
|
||||
#add_header X-Frame-Options "SAMEORIGIN" always;
|
||||
|
||||
@@ -312,6 +312,14 @@ else
|
||||
FILENAME="$DNSPLUGIN.ini"
|
||||
fi
|
||||
|
||||
# Check if the cert is using the old LE root cert, revoke and regen if necessary
|
||||
if [ -f "/config/keys/letsencrypt/chain.pem" ] && ([ "${CERTPROVIDER}" == "letsencrypt" ] || [ "${CERTPROVIDER}" == "" ]) && ! openssl x509 -in /config/keys/letsencrypt/chain.pem -noout -issuer | grep -q "ISRG Root X"; then
|
||||
echo "The cert seems to be using the old LE root cert, which is no longer valid. Deleting and revoking."
|
||||
certbot revoke --non-interactive --cert-path /config/etc/letsencrypt/live/"$ORIGDOMAIN"/fullchain.pem --server $REV_ACMESERVER
|
||||
rm -rf /config/etc/letsencrypt
|
||||
mkdir -p /config/etc/letsencrypt
|
||||
fi
|
||||
|
||||
# generating certs if necessary
|
||||
if [ ! -f "/config/keys/letsencrypt/fullchain.pem" ]; then
|
||||
if [ "$CERTPROVIDER" = "zerossl" ] && [ -n "$EMAIL" ]; then
|
||||
|
||||
Reference in New Issue
Block a user