diff --git a/Dockerfile b/Dockerfile index f7619805..b8207453 100644 --- a/Dockerfile +++ b/Dockerfile @@ -30,7 +30,7 @@ RUN apk add --no-cache ca-certificates nodejs-current yarn && \ yarn cache clean --all -FROM zoeyvid/nginx-quic:106 +FROM zoeyvid/nginx-quic:110 RUN apk add --no-cache ca-certificates tzdata \ nodejs-current \ openssl apache2-utils \ diff --git a/README.md b/README.md index 13cf8f8d..db9797cd 100644 --- a/README.md +++ b/README.md @@ -70,6 +70,7 @@ so that the barrier for entry here is low. ## Soon - disabling IPv4/IPv6 ([1](https://github.com/NginxProxyManager/nginx-proxy-manager/blob/develop/docker/rootfs/etc/s6-overlay/s6-rc.d/prepare/40-dynamic.sh) / [2](https://github.com/NginxProxyManager/nginx-proxy-manager/blob/develop/docker/rootfs/etc/s6-overlay/s6-rc.d/prepare/50-ipv6.sh) / nginx templates (nginx.js lines 200-300)) +- custom IP-Bindings in nginx/backend to allow multiple instances in host network mode - support changing the PUID/PGID (maybe) - more diff --git a/backend/config/.gitkeep b/backend/config/.gitkeep deleted file mode 100644 index 8b137891..00000000 --- a/backend/config/.gitkeep +++ /dev/null @@ -1 +0,0 @@ - diff --git a/backend/internal/certificate.js b/backend/internal/certificate.js index c13c9aa7..a3e93500 100644 --- a/backend/internal/certificate.js +++ b/backend/internal/certificate.js @@ -1152,7 +1152,10 @@ const internalCertificate = { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded', - 'Content-Length': Buffer.byteLength(formBody) + 'Content-Length': Buffer.byteLength(formBody), + 'Connection': 'keep-alive', + 'User-Agent': 'Nginx Proxy Manager', + 'Accept': '*/*' } }; @@ -1163,12 +1166,16 @@ const internalCertificate = { res.on('data', (chunk) => responseBody = responseBody + chunk); res.on('end', function () { - const parsedBody = JSON.parse(responseBody + ''); - if (res.statusCode !== 200) { + try { + const parsedBody = JSON.parse(responseBody + ''); + resolve(parsedBody); + } + catch (error) { + logger.warn('Error'); + logger.warn(`Status Code: ${res.statusCode}`); logger.warn(`Failed to test HTTP challenge for domain ${domain}`, res); resolve(undefined); } - resolve(parsedBody); }); }); diff --git a/backend/package.json b/backend/package.json index abde33e7..407a6a1a 100644 --- a/backend/package.json +++ b/backend/package.json @@ -16,7 +16,7 @@ "gravatar": "1.8.2", "jsonwebtoken": "9.0.0", "knex": "2.4.2", - "liquidjs": "10.7.0", + "liquidjs": "10.7.1", "lodash": "4.17.21", "moment": "2.29.4", "mysql": "2.18.1", @@ -30,7 +30,7 @@ "author": "Jamie Curnow ", "license": "MIT", "devDependencies": { - "eslint": "8.37.0", + "eslint": "8.38.0", "eslint-plugin-align-assignments": "1.1.2" } } diff --git a/frontend/js/app/nginx/certificates/form.ejs b/frontend/js/app/nginx/certificates/form.ejs index fe4e3ba9..dc943025 100644 --- a/frontend/js/app/nginx/certificates/form.ejs +++ b/frontend/js/app/nginx/certificates/form.ejs @@ -18,7 +18,6 @@
<%- i18n('ssl', 'hosts-warning') %>
-
diff --git a/frontend/js/app/nginx/certificates/list/item.ejs b/frontend/js/app/nginx/certificates/list/item.ejs index d8cf48e4..398d27de 100644 --- a/frontend/js/app/nginx/certificates/list/item.ejs +++ b/frontend/js/app/nginx/certificates/list/item.ejs @@ -42,15 +42,13 @@ <% if (provider === 'letsencrypt') { %> <%- i18n('certificates', 'force-renew') %> <%- i18n('certificates', 'download') %> - <% } %> <%- i18n('str', 'delete') %>
-<% } %> \ No newline at end of file +<% } %> diff --git a/test/cypress/integration/api/Hosts.spec.js b/test/cypress/integration/api/Hosts.spec.js deleted file mode 100644 index 4652c8e0..00000000 --- a/test/cypress/integration/api/Hosts.spec.js +++ /dev/null @@ -1,48 +0,0 @@ -/// - -describe('Hosts endpoints', () => { - let token; - - before(() => { - cy.getToken().then((tok) => { - token = tok; - }); - }); - - it('Should be able to create a http host', function() { - cy.task('backendApiPost', { - token: token, - path: '/api/nginx/proxy-hosts', - data: { - domain_names: ['test.example.com'], - forward_scheme: 'http', - forward_host: '1.1.1.1', - forward_port: 80, - access_list_id: '0', - certificate_id: 0, - meta: { - letsencrypt_agree: false, - dns_challenge: false - }, - advanced_config: '', - locations: [], - block_exploits: false, - caching_enabled: false, - allow_websocket_upgrade: false, - http2_support: false, - hsts_enabled: false, - hsts_subdomains: false, - ssl_forced: false - } - }).then((data) => { - cy.validateSwaggerSchema('post', 201, '/nginx/proxy-hosts', data); - expect(data).to.have.property('id'); - expect(data.id).to.be.greaterThan(0); - expect(data).to.have.property('enabled'); - expect(data.enabled).to.be.greaterThan(0); - expect(data).to.have.property('meta'); - expect(typeof data.meta.nginx_online).to.be.equal('undefined'); - }); - }); - -});