Skip to content

Commit daa84f2

Browse files
authored
Merge pull request #492 from linuxserver/3.20
Rebase to 3.20
2 parents 2101347 + cd93107 commit daa84f2

File tree

7 files changed

+17
-50
lines changed

7 files changed

+17
-50
lines changed

Dockerfile

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# syntax=docker/dockerfile:1
22

3-
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.19
3+
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.20
44

55
# set version label
66
ARG BUILD_DATE
@@ -64,6 +64,7 @@ RUN \
6464
php83-pdo_sqlite \
6565
php83-pear \
6666
php83-pecl-apcu \
67+
php83-pecl-mcrypt \
6768
php83-pecl-memcached \
6869
php83-pecl-redis \
6970
php83-pgsql \
@@ -76,8 +77,6 @@ RUN \
7677
php83-xmlreader \
7778
php83-xsl \
7879
whois && \
79-
apk add --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/community \
80-
php83-pecl-mcrypt && \
8180
echo "**** install certbot plugins ****" && \
8281
if [ -z ${CERTBOT_VERSION+x} ]; then \
8382
CERTBOT_VERSION=$(curl -sL https://pypi.python.org/pypi/certbot/json |jq -r '. | .info.version'); \
@@ -86,7 +85,7 @@ RUN \
8685
pip install -U --no-cache-dir \
8786
pip \
8887
wheel && \
89-
pip install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/alpine-3.19/ \
88+
pip install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/alpine-3.20/ \
9089
certbot==${CERTBOT_VERSION} \
9190
certbot-dns-acmedns \
9291
certbot-dns-aliyun \
@@ -110,7 +109,6 @@ RUN \
110109
certbot-dns-glesys \
111110
certbot-dns-godaddy \
112111
certbot-dns-google \
113-
certbot-dns-google-domains \
114112
certbot-dns-he \
115113
certbot-dns-hetzner \
116114
certbot-dns-infomaniak \
@@ -170,6 +168,7 @@ RUN \
170168
tar xf \
171169
/tmp/proxy-confs.tar.gz -C \
172170
/defaults/nginx/proxy-confs --strip-components=1 --exclude=linux*/.editorconfig --exclude=linux*/.gitattributes --exclude=linux*/.github --exclude=linux*/.gitignore --exclude=linux*/LICENSE && \
171+
printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \
173172
echo "**** cleanup ****" && \
174173
apk del --purge \
175174
build-dependencies && \

Dockerfile.aarch64

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# syntax=docker/dockerfile:1
22

3-
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.19
3+
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.20
44

55
# set version label
66
ARG BUILD_DATE
@@ -64,6 +64,7 @@ RUN \
6464
php83-pdo_sqlite \
6565
php83-pear \
6666
php83-pecl-apcu \
67+
php83-pecl-mcrypt \
6768
php83-pecl-memcached \
6869
php83-pecl-redis \
6970
php83-pgsql \
@@ -76,8 +77,6 @@ RUN \
7677
php83-xmlreader \
7778
php83-xsl \
7879
whois && \
79-
apk add --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/community \
80-
php83-pecl-mcrypt && \
8180
echo "**** install certbot plugins ****" && \
8281
if [ -z ${CERTBOT_VERSION+x} ]; then \
8382
CERTBOT_VERSION=$(curl -sL https://pypi.python.org/pypi/certbot/json |jq -r '. | .info.version'); \
@@ -86,7 +85,7 @@ RUN \
8685
pip install -U --no-cache-dir \
8786
pip \
8887
wheel && \
89-
pip install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/alpine-3.19/ \
88+
pip install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/alpine-3.20/ \
9089
certbot==${CERTBOT_VERSION} \
9190
certbot-dns-acmedns \
9291
certbot-dns-aliyun \
@@ -110,7 +109,6 @@ RUN \
110109
certbot-dns-glesys \
111110
certbot-dns-godaddy \
112111
certbot-dns-google \
113-
certbot-dns-google-domains \
114112
certbot-dns-he \
115113
certbot-dns-hetzner \
116114
certbot-dns-infomaniak \
@@ -170,6 +168,7 @@ RUN \
170168
tar xf \
171169
/tmp/proxy-confs.tar.gz -C \
172170
/defaults/nginx/proxy-confs --strip-components=1 --exclude=linux*/.editorconfig --exclude=linux*/.gitattributes --exclude=linux*/.github --exclude=linux*/.gitignore --exclude=linux*/LICENSE && \
171+
printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \
173172
echo "**** cleanup ****" && \
174173
apk del --purge \
175174
build-dependencies && \

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ Containers are configured using parameters passed at runtime (such as those abov
227227
| `-e VALIDATION=http` | Certbot validation method to use, options are `http` or `dns` (`dns` method also requires `DNSPLUGIN` variable set). |
228228
| `-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` validation only) |
229229
| `-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. |
230-
| `-e DNSPLUGIN=cloudflare` | 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`, `dynudns`, `freedns`, `gandi`, `gehirn`, `glesys`, `godaddy`, `google`, `google-domains`, `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`. |
230+
| `-e DNSPLUGIN=cloudflare` | 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`, `dynudns`, `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`. |
231231
| `-e PROPAGATION=` | Optionally override (in seconds) the default propagation time for the dns plugins. |
232232
| `-e EMAIL=` | Optional e-mail address used for cert expiration notifications (Required for ZeroSSL). |
233233
| `-e ONLY_SUBDOMAINS=false` | 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` |
@@ -400,6 +400,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
400400

401401
## Versions
402402

403+
* **24.07.14:** - Rebase to Alpine 3.20. Remove deprecated Google Domains certbot plugin. Existing users should update their nginx confs to avoid http2 deprecation warnings.
403404
* **23.03.24:** - Fix perms on the generated `priv-fullchain-bundle.pem`.
404405
* **14.03.24:** - [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.
405406
* **11.03.24:** - Restore support for DynuDNS using `certbot-dns-dynudns`.

jenkins-vars.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ external_type: pip_version
66
release_type: stable
77
release_tag: latest
88
ls_branch: master
9-
build_armhf: false
109
repo_vars:
1110
- EXT_PIP = 'certbot'
1211
- BUILD_VERSION_ARG = 'CERTBOT_VERSION'

readme-vars.yml

Lines changed: 4 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -7,40 +7,24 @@ project_logo: "https://github.com/linuxserver/docker-templates/raw/master/linuxs
77
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."
88
project_lsio_github_repo_url: "https://github.com/linuxserver/docker-{{ project_name }}"
99

10-
project_blurb_optional_extras_enabled: false
11-
project_blurb_optional_extras: []
12-
1310
# supported architectures
1411
available_architectures:
1512
- { arch: "{{ arch_x86_64 }}", tag: "amd64-latest"}
1613
- { arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"}
1714

18-
# development version
19-
development_versions: false
20-
development_versions_items:
21-
- { tag: "latest", desc: "Stable releases" }
22-
23-
2415
# container parameters
25-
common_param_env_vars_enabled: true #PGID, PUID, etc, you can set it to 'optional'
16+
common_param_env_vars_enabled: true
2617
param_container_name: "{{ project_name }}"
27-
param_usage_include_net: false #you can set it to 'optional'
28-
param_net: "host"
29-
param_net_desc: "Shares host networking with container."
3018
param_usage_include_env: true
3119
param_env_vars:
32-
- { env_var: "TZ", env_value: "Europe/London", desc: "Specify a timezone to use EG Europe/London." }
3320
- { 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)." }
34-
- { env_var: "VALIDATION", env_value: "http", desc: "Certbot validation method to use, options are `http` or `dns` (`dns` method also requires `DNSPLUGIN` variable set)." }
21+
- { 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"] }
3522
param_usage_include_vols: true
3623
param_volumes:
3724
- { vol_path: "/config", vol_host_path: "/path/to/{{ project_name }}/config", desc: "Persistent config files" }
3825
param_usage_include_ports: true
3926
param_ports:
4027
- { external_port: "443", internal_port: "443", port_desc: "Https port" }
41-
param_device_map: false
42-
param_devices:
43-
- { device_path: "/dev/dri", device_host_path: "/dev/dri", desc: "For hardware transcoding" }
4428
cap_add_param: true
4529
cap_add_param_vars:
4630
- { cap_add_var: "NET_ADMIN" }
@@ -50,27 +34,15 @@ opt_param_usage_include_env: true
5034
opt_param_env_vars:
5135
- { 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)" }
5236
- { 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." }
53-
- { 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`, `dynudns`, `freedns`, `gandi`, `gehirn`, `glesys`, `godaddy`, `google`, `google-domains`, `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`." }
37+
- { 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`, `dynudns`, `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`." }
5438
- { env_var: "PROPAGATION", env_value: "", desc: "Optionally override (in seconds) the default propagation time for the dns plugins." }
5539
- { env_var: "EMAIL", env_value: "", desc: "Optional e-mail address used for cert expiration notifications (Required for ZeroSSL)." }
5640
- { 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`" }
5741
- { env_var: "EXTRA_DOMAINS", env_value: "", desc: "Additional fully qualified domain names (comma separated, no spaces) ie. `extradomain.com,subdomain.anotherdomain.org,*.anotherdomain.org`" }
5842
- { 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." }
59-
opt_param_usage_include_vols: false
60-
opt_param_volumes:
61-
- { vol_path: "/config", vol_host_path: "/path/to/{{ project_name }}/config", desc: "Persistent config files" }
6243
opt_param_usage_include_ports: true
6344
opt_param_ports:
6445
- { external_port: "80", internal_port: "80", port_desc: "Http port (required for http validation and http -> https redirect)" }
65-
opt_param_device_map: false
66-
opt_param_devices:
67-
- { device_path: "/dev/dri", device_host_path: "/dev/dri", desc: "For hardware transcoding" }
68-
opt_cap_add_param: false
69-
opt_cap_add_param_vars:
70-
- { cap_add_var: "NET_ADMIN" }
71-
72-
optional_block_1: false
73-
optional_block_1_items: ""
7446

7547
# application setup block
7648
app_setup_block_enabled: true
@@ -168,6 +140,7 @@ app_setup_block: |
168140
169141
# changelog
170142
changelogs:
143+
- { 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."}
171144
- { date: "23.03.24:", desc: "Fix perms on the generated `priv-fullchain-bundle.pem`." }
172145
- { 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." }
173146
- { date: "11.03.24:", desc: "Restore support for DynuDNS using `certbot-dns-dynudns`." }

root/defaults/dns-conf/google-domains.ini

Lines changed: 0 additions & 4 deletions
This file was deleted.

root/defaults/nginx/site-confs/default.conf.sample

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
## Version 2024/03/06 - Changelog: https://github.com/linuxserver/docker-swag/commits/master/root/defaults/nginx/site-confs/default.conf.sample
1+
## Version 2024/07/16 - Changelog: https://github.com/linuxserver/docker-swag/commits/master/root/defaults/nginx/site-confs/default.conf.sample
22

33
# redirect all traffic to https
44
server {
@@ -12,8 +12,8 @@ server {
1212

1313
# main server block
1414
server {
15-
listen 443 ssl http2 default_server;
16-
listen [::]:443 ssl http2 default_server;
15+
listen 443 ssl default_server;
16+
listen [::]:443 ssl default_server;
1717

1818
server_name _;
1919

0 commit comments

Comments
 (0)