diff --git a/README.md b/README.md index d42df13..46bb8cd 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ # Nginx Proxy Manager -![Version](https://img.shields.io/badge/version-2.0.5-green.svg?style=for-the-badge) +![Version](https://img.shields.io/badge/version-2.0.6-green.svg?style=for-the-badge) ![Stars](https://img.shields.io/docker/stars/jc21/nginx-proxy-manager.svg?style=for-the-badge) ![Pulls](https://img.shields.io/docker/pulls/jc21/nginx-proxy-manager.svg?style=for-the-badge) diff --git a/TODO.md b/TODO.md deleted file mode 100644 index aa3cc31..0000000 --- a/TODO.md +++ /dev/null @@ -1,17 +0,0 @@ -# TODO - -- Dashboard stats are caching instead of querying - -Next version: - -- UI Log tail -- Enable/Disable a config - -Testing: - -- Access Levels - - Adding a proxy host without access to read certs or access lists -- Visibility -- Forwarding -- Cert renewals -- Custom certs diff --git a/doc/DOCKERHUB.md b/doc/DOCKERHUB.md index ce28df6..a5bd823 100644 --- a/doc/DOCKERHUB.md +++ b/doc/DOCKERHUB.md @@ -2,7 +2,7 @@ # Nginx Proxy Manager -![Version](https://img.shields.io/badge/version-2.0.5-green.svg?style=for-the-badge) +![Version](https://img.shields.io/badge/version-2.0.6-green.svg?style=for-the-badge) ![Stars](https://img.shields.io/docker/stars/jc21/nginx-proxy-manager.svg?style=for-the-badge) ![Pulls](https://img.shields.io/docker/pulls/jc21/nginx-proxy-manager.svg?style=for-the-badge) diff --git a/package.json b/package.json index a0a335f..e2dd3dc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nginx-proxy-manager", - "version": "2.0.5", + "version": "2.0.6", "description": "A beautiful interface for creating Nginx endpoints", "main": "src/backend/index.js", "devDependencies": { diff --git a/src/backend/migrations/20181113041458_http2_support.js b/src/backend/migrations/20181113041458_http2_support.js new file mode 100644 index 0000000..f416e0a --- /dev/null +++ b/src/backend/migrations/20181113041458_http2_support.js @@ -0,0 +1,51 @@ +'use strict'; + +const migrate_name = 'http2_support'; +const logger = require('../logger').migrate; + +/** + * Migrate + * + * @see http://knexjs.org/#Schema + * + * @param {Object} knex + * @param {Promise} Promise + * @returns {Promise} + */ +exports.up = function (knex/*, Promise*/) { + logger.info('[' + migrate_name + '] Migrating Up...'); + + return knex.schema.table('proxy_host', function (proxy_host) { + proxy_host.integer('http2_support').notNull().unsigned().defaultTo(0); + }) + .then(() => { + logger.info('[' + migrate_name + '] proxy_host Table altered'); + + return knex.schema.table('redirection_host', function (redirection_host) { + redirection_host.integer('http2_support').notNull().unsigned().defaultTo(0); + }); + }) + .then(() => { + logger.info('[' + migrate_name + '] redirection_host Table altered'); + + return knex.schema.table('dead_host', function (dead_host) { + dead_host.integer('http2_support').notNull().unsigned().defaultTo(0); + }); + }) + .then(() => { + logger.info('[' + migrate_name + '] dead_host Table altered'); + }); +}; + +/** + * Undo Migrate + * + * @param {Object} knex + * @param {Promise} Promise + * @returns {Promise} + */ +exports.down = function (knex, Promise) { + logger.warn('[' + migrate_name + '] You can\'t migrate down this one.'); + return Promise.resolve(true); +}; + diff --git a/src/backend/schema/definitions.json b/src/backend/schema/definitions.json index 272b4c4..8320b3d 100644 --- a/src/backend/schema/definitions.json +++ b/src/backend/schema/definitions.json @@ -186,6 +186,11 @@ "type": "string", "pattern": "^(letsencrypt|other)$" }, + "http2_support": { + "description": "HTTP2 Protocol Support", + "example": false, + "type": "boolean" + }, "block_exploits": { "description": "Should we block common exploits", "example": true, diff --git a/src/backend/schema/endpoints/dead-hosts.json b/src/backend/schema/endpoints/dead-hosts.json index 34d38e7..641c006 100644 --- a/src/backend/schema/endpoints/dead-hosts.json +++ b/src/backend/schema/endpoints/dead-hosts.json @@ -24,6 +24,9 @@ "ssl_forced": { "$ref": "../definitions.json#/definitions/ssl_forced" }, + "http2_support": { + "$ref": "../definitions.json#/definitions/http2_support" + }, "advanced_config": { "type": "string" }, @@ -50,6 +53,9 @@ "ssl_forced": { "$ref": "#/definitions/ssl_forced" }, + "http2_support": { + "$ref": "#/definitions/http2_support" + }, "advanced_config": { "$ref": "#/definitions/advanced_config" }, @@ -101,6 +107,9 @@ "ssl_forced": { "$ref": "#/definitions/ssl_forced" }, + "http2_support": { + "$ref": "#/definitions/http2_support" + }, "advanced_config": { "$ref": "#/definitions/advanced_config" }, @@ -138,6 +147,9 @@ "ssl_forced": { "$ref": "#/definitions/ssl_forced" }, + "http2_support": { + "$ref": "#/definitions/http2_support" + }, "advanced_config": { "$ref": "#/definitions/advanced_config" }, diff --git a/src/backend/schema/endpoints/proxy-hosts.json b/src/backend/schema/endpoints/proxy-hosts.json index a7e3e30..4cfb596 100644 --- a/src/backend/schema/endpoints/proxy-hosts.json +++ b/src/backend/schema/endpoints/proxy-hosts.json @@ -34,6 +34,9 @@ "ssl_forced": { "$ref": "../definitions.json#/definitions/ssl_forced" }, + "http2_support": { + "$ref": "../definitions.json#/definitions/http2_support" + }, "block_exploits": { "$ref": "../definitions.json#/definitions/block_exploits" }, @@ -80,6 +83,9 @@ "ssl_forced": { "$ref": "#/definitions/ssl_forced" }, + "http2_support": { + "$ref": "#/definitions/http2_support" + }, "block_exploits": { "$ref": "#/definitions/block_exploits" }, @@ -151,6 +157,9 @@ "ssl_forced": { "$ref": "#/definitions/ssl_forced" }, + "http2_support": { + "$ref": "#/definitions/http2_support" + }, "block_exploits": { "$ref": "#/definitions/block_exploits" }, @@ -206,6 +215,9 @@ "ssl_forced": { "$ref": "#/definitions/ssl_forced" }, + "http2_support": { + "$ref": "#/definitions/http2_support" + }, "block_exploits": { "$ref": "#/definitions/block_exploits" }, diff --git a/src/backend/schema/endpoints/redirection-hosts.json b/src/backend/schema/endpoints/redirection-hosts.json index e843e60..54bd377 100644 --- a/src/backend/schema/endpoints/redirection-hosts.json +++ b/src/backend/schema/endpoints/redirection-hosts.json @@ -32,6 +32,9 @@ "ssl_forced": { "$ref": "../definitions.json#/definitions/ssl_forced" }, + "http2_support": { + "$ref": "../definitions.json#/definitions/http2_support" + }, "block_exploits": { "$ref": "../definitions.json#/definitions/block_exploits" }, @@ -67,6 +70,9 @@ "ssl_forced": { "$ref": "#/definitions/ssl_forced" }, + "http2_support": { + "$ref": "#/definitions/http2_spport" + }, "block_exploits": { "$ref": "#/definitions/block_exploits" }, @@ -128,6 +134,9 @@ "ssl_forced": { "$ref": "#/definitions/ssl_forced" }, + "http2_support": { + "$ref": "#/definitions/http2_support" + }, "block_exploits": { "$ref": "#/definitions/block_exploits" }, @@ -174,6 +183,9 @@ "ssl_forced": { "$ref": "#/definitions/ssl_forced" }, + "http2_support": { + "$ref": "#/definitions/http2_support" + }, "block_exploits": { "$ref": "#/definitions/block_exploits" }, diff --git a/src/backend/templates/_listen.conf b/src/backend/templates/_listen.conf index 067b2dd..b3f21cf 100644 --- a/src/backend/templates/_listen.conf +++ b/src/backend/templates/_listen.conf @@ -1,5 +1,5 @@ listen 80; {% if certificate -%} - listen 443 ssl; + listen 443 ssl{% if http2 %} http2{% endif %}; {% endif %} - server_name {{ domain_names | join: " " }}; \ No newline at end of file + server_name {{ domain_names | join: " " }}; diff --git a/src/frontend/js/app/nginx/dead/form.ejs b/src/frontend/js/app/nginx/dead/form.ejs index e014ec9..4d2c4b5 100644 --- a/src/frontend/js/app/nginx/dead/form.ejs +++ b/src/frontend/js/app/nginx/dead/form.ejs @@ -36,7 +36,7 @@ -