mirror of
				https://github.com/linuxserver/docker-swag.git
				synced 2025-10-31 21:17:42 +09:00 
			
		
		
		
	make subdomains optional, minimize migration info
This commit is contained in:
		
							
								
								
									
										21
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								README.md
									
									
									
									
									
								
							| @@ -58,17 +58,6 @@ The architectures supported by this image are: | |||||||
|  |  | ||||||
| ## Application Setup | ## 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 | ### 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.). | * 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. | * 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. | * 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 | ## Usage | ||||||
|  |  | ||||||
| Here are some example snippets to help you get started creating a container. | Here are some example snippets to help you get started creating a container. | ||||||
| @@ -158,8 +150,8 @@ services: | |||||||
|       - PGID=1000 |       - PGID=1000 | ||||||
|       - TZ=Europe/London |       - TZ=Europe/London | ||||||
|       - URL=yourdomain.url |       - URL=yourdomain.url | ||||||
|       - SUBDOMAINS=www, |  | ||||||
|       - VALIDATION=http |       - VALIDATION=http | ||||||
|  |       - SUBDOMAINS=www, #optional | ||||||
|       - CERTPROVIDER= #optional |       - CERTPROVIDER= #optional | ||||||
|       - DNSPLUGIN=cloudflare #optional |       - DNSPLUGIN=cloudflare #optional | ||||||
|       - PROPAGATION= #optional |       - PROPAGATION= #optional | ||||||
| @@ -187,8 +179,8 @@ docker run -d \ | |||||||
|   -e PGID=1000 \ |   -e PGID=1000 \ | ||||||
|   -e TZ=Europe/London \ |   -e TZ=Europe/London \ | ||||||
|   -e URL=yourdomain.url \ |   -e URL=yourdomain.url \ | ||||||
|   -e SUBDOMAINS=www, \ |  | ||||||
|   -e VALIDATION=http \ |   -e VALIDATION=http \ | ||||||
|  |   -e SUBDOMAINS=www, `#optional` \ | ||||||
|   -e CERTPROVIDER= `#optional` \ |   -e CERTPROVIDER= `#optional` \ | ||||||
|   -e DNSPLUGIN=cloudflare `#optional` \ |   -e DNSPLUGIN=cloudflare `#optional` \ | ||||||
|   -e PROPAGATION= `#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 PGID=1000` | for GroupID - see below for explanation | | ||||||
| | `-e TZ=Europe/London` | Specify a timezone to use EG Europe/London. | | | `-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 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 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 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 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. | | | `-e PROPAGATION=` | Optionally override (in seconds) the default propagation time for the dns plugins. | | ||||||
| @@ -339,6 +331,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64 | |||||||
|  |  | ||||||
| ## Versions | ## Versions | ||||||
|  |  | ||||||
|  | * **17.09.21:** - Mark `SUBDOMAINS` var as optional. | ||||||
| * **01.08.21:** - Add support for ionos dns validation. | * **01.08.21:** - Add support for ionos dns validation. | ||||||
| * **15.07.21:** - Fix libmaxminddb issue due to upstream change. | * **15.07.21:** - Fix libmaxminddb issue due to upstream change. | ||||||
| * **07.07.21:** - Rebase to alpine 3.14. | * **07.07.21:** - Rebase to alpine 3.14. | ||||||
|   | |||||||
| @@ -32,7 +32,6 @@ param_usage_include_env: true | |||||||
| param_env_vars: | param_env_vars: | ||||||
|   - { env_var: "TZ", env_value: "Europe/London", desc: "Specify a timezone to use EG Europe/London." } |   - { 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: "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`)." } |   - { 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_usage_include_vols: true | ||||||
| param_volumes: | param_volumes: | ||||||
| @@ -50,6 +49,7 @@ cap_add_param_vars: | |||||||
| # optional container parameters | # optional container parameters | ||||||
| opt_param_usage_include_env: true | opt_param_usage_include_env: true | ||||||
| opt_param_env_vars: | 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: "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: "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." } |   - { 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 | # application setup block | ||||||
| app_setup_block_enabled: true | app_setup_block_enabled: true | ||||||
| app_setup_block: | | 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 |   ### 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.). |   * 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,15 @@ app_setup_block: | | |||||||
|   * Proxy sample files WILL be updated, however your renamed (enabled) proxy files will not. |   * 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. |   * 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_snippet: false | ||||||
| app_setup_nginx_reverse_proxy_block: "" | app_setup_nginx_reverse_proxy_block: "" | ||||||
|  |  | ||||||
| # changelog | # changelog | ||||||
| changelogs: | changelogs: | ||||||
|  |   - { date: "17.09.21:", desc: "Mark `SUBDOMAINS` var as optional." } | ||||||
|   - { date: "01.08.21:", desc: "Add support for ionos dns validation." } |   - { date: "01.08.21:", desc: "Add support for ionos dns validation." } | ||||||
|   - { date: "15.07.21:", desc: "Fix libmaxminddb issue due to upstream change." } |   - { date: "15.07.21:", desc: "Fix libmaxminddb issue due to upstream change." } | ||||||
|   - { date: "07.07.21:", desc: "Rebase to alpine 3.14." } |   - { date: "07.07.21:", desc: "Rebase to alpine 3.14." } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user