diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
index 6ec6a7c9..87faab46 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -16,7 +16,7 @@ Are you in the right place?
-->
**Checklist**
-- Have you pulled and found the error with `jc21/nginx-proxy-manager:latest` docker image?
+- Have you pulled and found the error with `zoeyvid/nginx-proxy-manager:latest` docker image?
- Yes / No
- Are you sure you're not using someone else's docker image?
- Yes / No
diff --git a/README.md b/README.md
index 4304562b..7b160b54 100644
--- a/README.md
+++ b/README.md
@@ -30,7 +30,7 @@ so that the barrier for entry here is low.
## Features
-- Beautiful and Secure Admin Interface based on [Tabler](https://tabler.github.io/)
+- Beautiful and Secure Admin Interface based on [Tabler](https://tabler.github.io)
- Easily create forwarding domains, redirections, streams and 404 hosts without knowing anything about Nginx
- Free trusted TLS certificates using Certbot (Let's Encrypt) or provide your own custom TLS certificates
- Access Lists and basic HTTP Authentication for your hosts
@@ -40,7 +40,7 @@ so that the barrier for entry here is low.
# New Features
-- HTTP/3 (QUIC) Support if you enable HTTP/2 (can not be enabled separate)
+- HTTP/3 (QUIC) Support
- Fix Proxy Hosts, if origin only accepts TLSv1.3
- Only use TLSv1.2 and TLSv1.3
- Uses OCSP Stapling
@@ -50,7 +50,7 @@ so that the barrier for entry here is low.
- Default page runs also with https
- Uses [fancyindex](https://gitHub.com/Naereen/Nginx-Fancyindex-Theme) if you use the npm directly as webserver
- Expose INTERNAL backend api only to localhost
-- Easy security headers, see [here](https://github.com/GetPageSpeed/ngx_security_headers), enabled by default if you enable hsts
+- Easy security headers, see [here](https://github.com/GetPageSpeed/ngx_security_headers)
- Access Log disabled
- Error Log written to console
- PHP included, you can add php extensions, see aviable packages [here](https://pkgs.alpinelinux.org/packages?branch=edge&repo=community&arch=x86_64&name=php8*-*)
@@ -59,7 +59,6 @@ so that the barrier for entry here is low.
## Soon
- more
-- I will try to create a pr to contribute to the original project
# Use as webserver
diff --git a/backend/internal/access-list.js b/backend/internal/access-list.js
index 13fc9e33..9be510e1 100644
--- a/backend/internal/access-list.js
+++ b/backend/internal/access-list.js
@@ -467,7 +467,7 @@ const internalAccessList = {
* @returns {String}
*/
getFilename: (list) => {
- return '/data/nginx/access/' + list.id;
+ return '/data/etc/access/' + list.id;
},
/**
diff --git a/backend/internal/setting.js b/backend/internal/setting.js
index 3e5a6db5..3b89750e 100644
--- a/backend/internal/setting.js
+++ b/backend/internal/setting.js
@@ -36,7 +36,7 @@ const internalSetting = {
if (row.id === 'default-site') {
// write the html if we need to
if (row.value === 'html') {
- fs.writeFileSync('/data/nginx/html/index.html', row.meta.html, {encoding: 'utf8'});
+ fs.writeFileSync('/data/nginx/etc/index.html', row.meta.html, {encoding: 'utf8'});
}
// Configure nginx
diff --git a/backend/package.json b/backend/package.json
index 830c6963..f8de53b1 100644
--- a/backend/package.json
+++ b/backend/package.json
@@ -16,7 +16,7 @@
"express-fileupload": "1.4.0",
"gravatar": "1.8.2",
"jsonwebtoken": "9.0.0",
- "knex": "2.3.0",
+ "knex": "2.4.0",
"liquidjs": "9.43.0",
"lodash": "4.17.21",
"moment": "2.29.4",
diff --git a/backend/templates/_listen.conf b/backend/templates/_listen.conf
index fe358e06..bddd458a 100644
--- a/backend/templates/_listen.conf
+++ b/backend/templates/_listen.conf
@@ -1,10 +1,10 @@
listen 80;
listen [::]:80;
-{% if certificate -%}
+{% if certificate %}
listen 443 ssl{% if http2_support %} http2{% endif %};
listen [::]:443 ssl{% if http2_support %} http2{% endif %};
-{% if http2_support -%}
+{% if hsts_subdomains %}
listen 443 http3;
listen [::]:443 http3;
diff --git a/backend/templates/default.conf b/backend/templates/default.conf
index 86d0dc46..de6bca2d 100644
--- a/backend/templates/default.conf
+++ b/backend/templates/default.conf
@@ -45,7 +45,7 @@ server {
{%- if value == "html" %}
location / {
include conf.d/include/acme-challenge.conf;
- alias /data/nginx/html/;
+ alias /data/etc/html/;
}
{%- endif %}
}
diff --git a/backend/templates/proxy_host.conf b/backend/templates/proxy_host.conf
index ed14841d..3e98ab53 100644
--- a/backend/templates/proxy_host.conf
+++ b/backend/templates/proxy_host.conf
@@ -40,7 +40,7 @@ server {
{% if access_list.items.length > 0 %}
# Authorization
auth_basic "Authorization required";
- auth_basic_user_file /data/nginx/access/{{ access_list_id }};
+ auth_basic_user_file /data/etc/access/{{ access_list_id }};
{{ access_list.passauth }}
{% endif %}
diff --git a/frontend/js/app/nginx/dead/form.ejs b/frontend/js/app/nginx/dead/form.ejs
index 38ed0c29..33f6e8cf 100644
--- a/frontend/js/app/nginx/dead/form.ejs
+++ b/frontend/js/app/nginx/dead/form.ejs
@@ -37,7 +37,7 @@
-
+
-
+
-
+
-
diff --git a/frontend/js/app/nginx/proxy/form.ejs b/frontend/js/app/nginx/proxy/form.ejs
index 12b84e2e..e8569be5 100644
--- a/frontend/js/app/nginx/proxy/form.ejs
+++ b/frontend/js/app/nginx/proxy/form.ejs
@@ -107,7 +107,7 @@
-
+
-
+
-
+
-
diff --git a/frontend/js/app/nginx/redirection/form.ejs b/frontend/js/app/nginx/redirection/form.ejs
index f06b036d..8cae6fd8 100644
--- a/frontend/js/app/nginx/redirection/form.ejs
+++ b/frontend/js/app/nginx/redirection/form.ejs
@@ -86,7 +86,7 @@
-
+
-
+
-
+
-
diff --git a/frontend/js/i18n/messages.json b/frontend/js/i18n/messages.json
index 25e4dfa1..3d855103 100644
--- a/frontend/js/i18n/messages.json
+++ b/frontend/js/i18n/messages.json
@@ -71,7 +71,7 @@
"details": "Details",
"enable-ssl": "Enable HTTPS",
"force-ssl": "Force HTTPS",
- "http2-support": "HTTP/2 - HTTP/3-Quic",
+ "http2-support": "Enable HTTP/2",
"domain-names": "Domain Names",
"cert-provider": "Certificate Provider",
"block-exploits": "Block Common Exploits",
@@ -86,8 +86,8 @@
"advanced-config": "Custom Nginx Configuration",
"advanced-config-var-headline": "These proxy details are available as nginx variables:",
"advanced-config-header-info": "Please note, adding a location '/' will overwrite the proxy configuration",
- "hsts-enabled": "Enable HSTS (including Subdomains and preload)",
- "hsts-subdomains": "HSTS Subdomains",
+ "hsts-enabled": "Enable security headers",
+ "hsts-subdomains": "Enable HTTP/3-Quic",
"locations": "Custom locations"
},
"locations": {
diff --git a/rootfs/bin/start.sh b/rootfs/bin/start.sh
index 53425dcc..0e14604a 100644
--- a/rootfs/bin/start.sh
+++ b/rootfs/bin/start.sh
@@ -31,6 +31,8 @@ fi
mkdir -vp /data/tls/certbot/renewal \
/data/tls/custom \
/data/php \
+ /data/etc/html \
+ /data/etc/access \
/data/nginx/redirection_host \
/data/nginx/proxy_host \
/data/nginx/dead_host \
@@ -56,8 +58,16 @@ if [ -f /data/nginx/dummykey.pem ]; then
mv -vn /data/nginx/dummykey.pem /data/tls/dummykey.pem || sleep inf
fi
+if [ -n "$(ls -A /data/nginx/html 2> /dev/null)" ]; then
+mv -v /data/nginx/html/* /data/etc/html|| sleep inf
+fi
+
if [ -n "$(ls -A /data/access 2> /dev/null)" ]; then
-mv -v /data/access/* /data/nginx/access || sleep inf
+mv -v /data/access/* /data/etc/access || sleep inf
+fi
+
+if [ -n "$(ls -A /data/nginx/access 2> /dev/null)" ]; then
+mv -v /data/nginx/access/* /data/etc/access || sleep inf
fi
if [ -n "$(ls -A /etc/letsencrypt 2> /dev/null)" ]; then
@@ -80,7 +90,9 @@ rm -vrf /data/letsencrypt-acme-challenge \
/data/nginx/default_host \
/data/nginx/default_www \
/data/nginx/streams \
+ /data/nginx/access \
/data/nginx/temp \
+ /data/nginx/html \
/data/index.html \
/data/letsencrypt \
/data/custom_ssl \
@@ -93,15 +105,18 @@ rm -vrf /data/letsencrypt-acme-challenge \
/data/error.log \
/data/nginx/error.log || sleep inf
+find /data/nginx -type f -name '*.conf' -exec sed -i "s|/data/nginx/html/|/data/etc/html/|g" {} \; || sleep inf
+
find /data/nginx -type f -name '*.conf' -exec sed -i "s|/data/access|/data/nginx/access|g" {} \; || sleep inf
+find /data/nginx -type f -name '*.conf' -exec sed -i "s|/data/nginx/access|/data/etc/access|g" {} \; || sleep inf
find /data/nginx -type f -name '*.conf' -exec sed -i "s|/data/custom_ssl|/data/tls/custom|g" {} \; || sleep inf
find /data/nginx -type f -name '*.conf' -exec sed -i "s|/etc/letsencrypt|/data/tls/certbot|g" {} \; || sleep inf
find /data/nginx -type f -name '*.conf' -exec sed -i "s|/data/letsencrypt|/data/tls/certbot|g" {} \; || sleep inf
+find /data/nginx -type f -name '*.conf' -exec sed -i "s|/data/ssl|/data/tls|g" {} \; || sleep inf
find /data/nginx -type f -name '*.conf' -exec sed -i "s|ssl_certificate_key /data/nginx/dummykey.pem;|ssl_certificate_key /data/tls/dummykey.pem;|g" {} \; || sleep inf
find /data/nginx -type f -name '*.conf' -exec sed -i "s|ssl_certificate /data/nginx/dummycert.pem;|ssl_certificate /data/tls/dummycert.pem;|g" {} \; || sleep inf
-find /data/nginx -type f -name '*.conf' -exec sed -i "s|/data/ssl|/data/tls|g" {} \; || sleep inf
find /data/tls/certbot/renewal -type f -name '*.conf' -exec sed -i "s|/data/ssl|/data/tls|g" {} \; || sleep inf
find /data/tls/certbot/renewal -type f -name '*.conf' -exec sed -i "s|/etc/letsencrypt|/data/tls/certbot|g" {} \; || sleep inf
@@ -110,11 +125,11 @@ find /data/tls/certbot/renewal -type f -name '*.conf' -exec sed -i "s|/data/lets
find /data/nginx -type f -name '*.conf' -exec sed -i "s|include conf.d/include/ssl-ciphers.conf;|include conf.d/include/tls-ciphers.conf;|g" {} \; || sleep inf
find /data/nginx -type f -name '*.conf' -exec sed -i "s|include conf.d/include/letsencrypt-acme-challenge.conf;|include conf.d/include/acme-challenge.conf;|g" {} \; || sleep inf
-find /data/nginx -type f -name '*.conf' -exec sed -i "s|include conf.d/include/assets.conf;||g" {} \; || sleep inf
find /data/nginx -type f -name '*.conf' -exec sed -i "s/# Asset Caching//g" {} \; || sleep inf
+find /data/nginx -type f -name '*.conf' -exec sed -i "s|include conf.d/include/assets.conf;||g" {} \; || sleep inf
-find /data/nginx -type f -name '*.conf' -exec sed -i "s/proxy_http_version.*//g" {} \; || sleep inf
find /data/nginx -type f -name '*.conf' -exec sed -i "s/access_log.*//g" {} \; || sleep inf
+find /data/nginx -type f -name '*.conf' -exec sed -i "s/proxy_http_version.*//g" {} \; || sleep inf
if [ ! -f /data/tls/dummycert.pem ] || [ ! -f /data/tls/dummykey.pem ]; then
openssl req -new -newkey rsa:4096 -days 365000 -nodes -x509 -subj '/CN=*' -sha256 -keyout /data/tls/dummykey.pem -out /data/tls/dummycert.pem || sleep inf
@@ -128,8 +143,8 @@ if [ ! -f /data/tls/certbot/config.ini ]; then
mv -vn /etc/tls/certbot.ini /data/tls/certbot/config.ini || sleep inf
fi
-touch /data/nginx/default.conf \
- /data/nginx/html/index.html \
+touch /data/etc/html/index.html \
+ /data/nginx/default.conf \
/data/nginx/custom/root.conf \
/data/nginx/custom/events.conf \
/data/nginx/custom/http.conf \