Persist NPM Let's Encrypt certificates

This commit is contained in:
ToledoEM
2026-07-11 12:14:25 +01:00
parent 83b791e6c3
commit 82c784ce6e
3 changed files with 16 additions and 16 deletions

View File

@@ -1,15 +1,13 @@
## 2.14.1 (19-06-2026)
- Minor bugs fixed
# Changelog # Changelog
## 2.14.1 ## 2.14.1-1 (11-07-2026)
- Persist Let's Encrypt certificates across restarts by symlinking /etc/letsencrypt to /data/letsencrypt (#2828) — thanks to @crazyrokr for reporting and suggesting the fix
## 2.14.1 (19-06-2026)
- Fix startup failure on aarch64/HAos: "/usr/bin/env: 'bash': Permission denied" (#2777) - Fix startup failure on aarch64/HAos: "/usr/bin/env: 'bash': Permission denied" (#2777)
- Add s6-overlay/env/with-contenv exec rules to AppArmor profile - Add s6-overlay/env/with-contenv exec rules to AppArmor profile
## 2.14.0 ## 2.14.0 (01-05-2026)
- Minor bugs fixed
## 2.14.0
- Initial release wrapping jc21/nginx-proxy-manager:latest - Initial release wrapping jc21/nginx-proxy-manager:latest
- NPM Admin UI on port 81; HTTP on port 80; HTTPS on port 443 - NPM Admin UI on port 81; HTTP on port 80; HTTPS on port 443
- Configurable static file server via NPM's default_host nginx config - Configurable static file server via NPM's default_host nginx config

View File

@@ -1,14 +1,13 @@
name: "Nginx Proxy Manager + Static Web Server" name: "Nginx Proxy Manager + Static Web Server"
slug: nginx_webserver_proxy slug: nginx_webserver_proxy
description: "Nginx Proxy Manager with a built-in configurable static file server. Manage reverse proxies via NPM UI on port 81 while serving files from HA storage on port 80." description: "Nginx Proxy Manager with a built-in configurable static file server. Manage reverse proxies via NPM UI on port 81 while serving files from HA storage on port 80."
version: "2.14.1" version: "2.14.1-1"
url: "https://github.com/alexbelgium/hassio-addons/tree/master/nginx_webserver_proxy" url: "https://github.com/alexbelgium/hassio-addons/tree/master/nginx_webserver_proxy"
arch: arch:
- amd64 - amd64
- aarch64 - aarch64
startup: services startup: services
init: false init: false
ports: ports:
80/tcp: 80 80/tcp: 80
81/tcp: 81 81/tcp: 81
@@ -17,24 +16,19 @@ ports_description:
80/tcp: "HTTP (static site + NPM proxy hosts)" 80/tcp: "HTTP (static site + NPM proxy hosts)"
81/tcp: "NPM Admin Web UI" 81/tcp: "NPM Admin Web UI"
443/tcp: "HTTPS (NPM proxy hosts)" 443/tcp: "HTTPS (NPM proxy hosts)"
webui: "http://[HOST]:[PORT:81]" webui: "http://[HOST]:[PORT:81]"
map: map:
- addon_config:rw - addon_config:rw
- share:rw - share:rw
- media:rw - media:rw
options: options:
static_site_enabled: true static_site_enabled: true
static_site_root: "/share/www" static_site_root: "/share/www"
static_site_prefix: "/" static_site_prefix: "/"
log_level: "info" log_level: "info"
schema: schema:
static_site_enabled: bool static_site_enabled: bool
static_site_root: str static_site_root: str
static_site_prefix: str static_site_prefix: str
log_level: list(info|debug|warn|error) log_level: list(info|debug|warn|error)
image: "ghcr.io/alexbelgium/nginx_webserver_proxy-{arch}" image: "ghcr.io/alexbelgium/nginx_webserver_proxy-{arch}"

View File

@@ -111,8 +111,16 @@ fi
# --------------------------------------------------------------------------- # ---------------------------------------------------------------------------
log "static_site_root=${STATIC_ROOT} prefix=${STATIC_PREFIX} log_level=${LOG_LEVEL}" log "static_site_root=${STATIC_ROOT} prefix=${STATIC_PREFIX} log_level=${LOG_LEVEL}"
# NPM's prepare service requires /etc/letsencrypt to exist. # NPM's prepare service requires /etc/letsencrypt to exist.
# HA Supervisor maps the ssl volume there automatically; for other environments create it. # Symlink /etc/letsencrypt to /data/letsencrypt for persistence across restarts.
mkdir -p /etc/letsencrypt # Supervisor persists /data as a Docker volume; /etc/letsencrypt would otherwise be ephemeral.
if [ ! -L /etc/letsencrypt ]; then
if [ -d /etc/letsencrypt ] && [ "$(ls -A /etc/letsencrypt 2> /dev/null)" ]; then
cp -a /etc/letsencrypt/. /data/letsencrypt/ 2> /dev/null || true
fi
rm -rf /etc/letsencrypt
ln -sf /data/letsencrypt /etc/letsencrypt
fi
mkdir -p /data/letsencrypt
log "Handing off to NPM: exec /init" log "Handing off to NPM: exec /init"
exec /init exec /init