From 05a940e7324ad135258d36232ad378b128764354 Mon Sep 17 00:00:00 2001 From: Jamie Curnow Date: Wed, 18 Nov 2020 21:42:03 +1000 Subject: [PATCH 001/757] Fix instances where config file exists and env vars don't --- backend/index.js | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/backend/index.js b/backend/index.js index 50a263bac..3118cdc07 100644 --- a/backend/index.js +++ b/backend/index.js @@ -13,7 +13,6 @@ async function appStart () { const internalCertificate = require('./internal/certificate'); const internalIpRanges = require('./internal/ip_ranges'); - return migrate.latest() .then(setup) .then(() => { @@ -43,13 +42,14 @@ async function appStart () { }); } -async function createDbConfigFromEnvironment(){ +async function createDbConfigFromEnvironment() { return new Promise((resolve, reject) => { - const envMysqlHost = process.env.DB_MYSQL_HOST; - const envMysqlPort = process.env.DB_MYSQL_PORT; - const envMysqlUser = process.env.DB_MYSQL_USER; - const envMysqlName = process.env.DB_MYSQL_NAME; - const envSqliteFile = process.env.DB_SQLITE_FILE; + const envMysqlHost = process.env.DB_MYSQL_HOST || null; + const envMysqlPort = process.env.DB_MYSQL_PORT || null; + const envMysqlUser = process.env.DB_MYSQL_USER || null; + const envMysqlName = process.env.DB_MYSQL_NAME || null; + const envSqliteFile = process.env.DB_SQLITE_FILE || null; + if ((envMysqlHost && envMysqlPort && envMysqlUser && envMysqlName) || envSqliteFile) { const fs = require('fs'); const filename = (process.env.NODE_CONFIG_DIR || './config') + '/' + (process.env.NODE_ENV || 'default') + '.json'; @@ -119,7 +119,7 @@ async function createDbConfigFromEnvironment(){ } }); } else { - // resolve(); + resolve(); } }); } @@ -130,3 +130,4 @@ try { logger.error(err.message, err); process.exit(1); } + From 94eec805df2bc2f92f1902f66da513e1740d4670 Mon Sep 17 00:00:00 2001 From: Jamie Curnow Date: Wed, 18 Nov 2020 21:46:21 +1000 Subject: [PATCH 002/757] Version bump --- .version | 2 +- README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.version b/.version index 24ba9a38d..860487ca1 100644 --- a/.version +++ b/.version @@ -1 +1 @@ -2.7.0 +2.7.1 diff --git a/README.md b/README.md index a80d05243..a6e99bc06 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@



- + From 6fed642aba0c81098f0a87b1a7d067472ba70876 Mon Sep 17 00:00:00 2001 From: Jamie Curnow Date: Sun, 22 Nov 2020 16:57:12 +1000 Subject: [PATCH 003/757] Cypress docker build should be faster and added mkcert for later --- docker/Dockerfile | 2 +- docker/docker-compose.ci.yml | 8 ++++---- test/.dockerignore | 1 + test/cypress/Dockerfile | 9 +++++++-- test/package.json | 2 +- 5 files changed, 14 insertions(+), 8 deletions(-) create mode 100644 test/.dockerignore diff --git a/docker/Dockerfile b/docker/Dockerfile index acac5fafb..f243208c4 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -34,7 +34,7 @@ EXPOSE 443 COPY docker/rootfs / ADD backend /app ADD frontend/dist /app/frontend -COPY global /app/global +COPY global /app/global WORKDIR /app RUN yarn install diff --git a/docker/docker-compose.ci.yml b/docker/docker-compose.ci.yml index 89c38572d..771b82990 100644 --- a/docker/docker-compose.ci.yml +++ b/docker/docker-compose.ci.yml @@ -47,8 +47,8 @@ services: cypress-mysql: image: ${IMAGE}-cypress:ci-${BUILD_NUMBER} build: - context: ../ - dockerfile: test/cypress/Dockerfile + context: ../test/ + dockerfile: cypress/Dockerfile environment: CYPRESS_baseUrl: "http://fullstack-mysql:81" volumes: @@ -58,8 +58,8 @@ services: cypress-sqlite: image: ${IMAGE}-cypress:ci-${BUILD_NUMBER} build: - context: ../ - dockerfile: test/cypress/Dockerfile + context: ../test/ + dockerfile: cypress/Dockerfile environment: CYPRESS_baseUrl: "http://fullstack-sqlite:81" volumes: diff --git a/test/.dockerignore b/test/.dockerignore new file mode 100644 index 000000000..b512c09d4 --- /dev/null +++ b/test/.dockerignore @@ -0,0 +1 @@ +node_modules \ No newline at end of file diff --git a/test/cypress/Dockerfile b/test/cypress/Dockerfile index 107fa9651..be04748a2 100644 --- a/test/cypress/Dockerfile +++ b/test/cypress/Dockerfile @@ -1,6 +1,11 @@ -FROM cypress/included:4.12.1 +FROM cypress/included:5.6.0 -COPY --chown=1000 ./test /test +COPY --chown=1000 ./ /test + +# mkcert +ENV MKCERT=1.4.2 +RUN wget -O /usr/bin/mkcert "https://github.com/FiloSottile/mkcert/releases/download/v${MKCERT}/mkcert-v${MKCERT}-linux-amd64" \ + && chmod +x /usr/bin/mkcert WORKDIR /test RUN yarn install diff --git a/test/package.json b/test/package.json index 4dd02249a..781597b33 100644 --- a/test/package.json +++ b/test/package.json @@ -7,7 +7,7 @@ "@jc21/cypress-swagger-validation": "^0.0.9", "@jc21/restler": "^3.4.0", "chalk": "^4.1.0", - "cypress": "^4.12.1", + "cypress": "^5.6.0", "cypress-multi-reporters": "^1.4.0", "cypress-plugin-retries": "^1.5.2", "eslint": "^7.6.0", From 62053d15d48044e02a1b9ad3b3dc726d2a976c5f Mon Sep 17 00:00:00 2001 From: WaterCalm Date: Sun, 22 Nov 2020 16:08:56 +0800 Subject: [PATCH 004/757] add aliyun DNS plugin add aliyun DNS plugin --- global/certbot-dns-plugins.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/global/certbot-dns-plugins.js b/global/certbot-dns-plugins.js index d0afafd45..45f478e3a 100644 --- a/global/certbot-dns-plugins.js +++ b/global/certbot-dns-plugins.js @@ -20,6 +20,16 @@ */ module.exports = { + aliyun: { + display_name: 'Aliyun', + package_name: 'certbot-dns-aliyun', + package_version: '0.38.1', + dependencies: '', + credentials: `certbot_dns_aliyun:dns_aliyun_access_key = 12345678 +certbot_dns_aliyun:dns_aliyun_access_key_secret = 1234567890abcdef1234567890abcdef`, + full_plugin_name: 'certbot-dns-aliyun:dns-aliyun', + }, + //####################################################// cloudflare: { display_name: 'Cloudflare', package_name: 'certbot-dns-cloudflare', @@ -272,4 +282,4 @@ aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY`, credentials: 'certbot_dns_vultr:dns_vultr_key = YOUR_VULTR_API_KEY', full_plugin_name: 'certbot-dns-vultr:dns-vultr', }, -}; \ No newline at end of file +}; From bc1c50ac92396b82169f2551d0df0a963b415b40 Mon Sep 17 00:00:00 2001 From: Jamie Curnow Date: Sun, 22 Nov 2020 21:50:57 +1000 Subject: [PATCH 005/757] Added contributor --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index a6e99bc06..4a0fef72f 100644 --- a/README.md +++ b/README.md @@ -205,6 +205,12 @@ Special thanks to the following contributors:
Philip Mooney + + + +
WaterCalm +
+ From 528e5ef3bcf84fae7afd614493e8a9876940cd79 Mon Sep 17 00:00:00 2001 From: Kyle Harding Date: Tue, 1 Dec 2020 14:22:31 -0500 Subject: [PATCH 006/757] allow custom stream conf Allow a top-level custom `stream` configuration file to be loaded. --- docker/rootfs/etc/nginx/nginx.conf | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docker/rootfs/etc/nginx/nginx.conf b/docker/rootfs/etc/nginx/nginx.conf index ed58a5f24..4524d2d23 100644 --- a/docker/rootfs/etc/nginx/nginx.conf +++ b/docker/rootfs/etc/nginx/nginx.conf @@ -84,6 +84,9 @@ http { stream { # Files generated by NPM include /data/nginx/stream/*.conf; + + # Custom + include /data/nginx/custom/stream[.]conf; } # Custom From 6bd2ac7d6dd354d8415b3d28346c68e962e7f163 Mon Sep 17 00:00:00 2001 From: Kyle Harding Date: Tue, 1 Dec 2020 14:24:14 -0500 Subject: [PATCH 007/757] Update README.md --- docs/advanced-config/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/advanced-config/README.md b/docs/advanced-config/README.md index 30daf2593..7c622d59c 100644 --- a/docs/advanced-config/README.md +++ b/docs/advanced-config/README.md @@ -24,6 +24,7 @@ You can add your custom configuration snippet files at `/data/nginx/custom` as f - `/data/nginx/custom/root.conf`: Included at the very end of nginx.conf - `/data/nginx/custom/http.conf`: Included at the end of the main http block + - `/data/nginx/custom/stream.conf`: Included at the end of the main stream block - `/data/nginx/custom/server_proxy.conf`: Included at the end of every proxy server block - `/data/nginx/custom/server_redirect.conf`: Included at the end of every redirection server block - `/data/nginx/custom/server_stream.conf`: Included at the end of every stream server block From 07b69f41ebf37ef060d329fad23d7362039d5df5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 12 Dec 2020 08:23:45 +0000 Subject: [PATCH 008/757] Bump ini from 1.3.5 to 1.3.8 in /backend Bumps [ini](https://github.com/isaacs/ini) from 1.3.5 to 1.3.8. - [Release notes](https://github.com/isaacs/ini/releases) - [Commits](https://github.com/isaacs/ini/compare/v1.3.5...v1.3.8) Signed-off-by: dependabot[bot] --- backend/yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/backend/yarn.lock b/backend/yarn.lock index 8e3d3dfb4..8152980b0 100644 --- a/backend/yarn.lock +++ b/backend/yarn.lock @@ -1548,9 +1548,9 @@ inherits@2.0.3: integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: - version "1.3.5" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" - integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== inquirer@^7.0.0: version "7.3.3" From 6e97bfa71756f022159b6cf49d123cad2cd86bb6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 12 Dec 2020 08:23:59 +0000 Subject: [PATCH 009/757] Bump ini from 1.3.5 to 1.3.8 in /test Bumps [ini](https://github.com/isaacs/ini) from 1.3.5 to 1.3.8. - [Release notes](https://github.com/isaacs/ini/releases) - [Commits](https://github.com/isaacs/ini/compare/v1.3.5...v1.3.8) Signed-off-by: dependabot[bot] --- test/yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/yarn.lock b/test/yarn.lock index 65dd86257..c1fe005bc 100644 --- a/test/yarn.lock +++ b/test/yarn.lock @@ -1293,9 +1293,9 @@ inherits@2, inherits@^2.0.3, inherits@~2.0.3: integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== ini@^1.3.5: - version "1.3.5" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" - integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== is-arguments@^1.0.4: version "1.0.4" From 9dd0ebd899ffda5170afbd2e94209747c55f49b5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 12 Dec 2020 10:17:11 +0000 Subject: [PATCH 010/757] Bump ini from 1.3.5 to 1.3.8 in /docs Bumps [ini](https://github.com/isaacs/ini) from 1.3.5 to 1.3.8. - [Release notes](https://github.com/isaacs/ini/releases) - [Commits](https://github.com/isaacs/ini/compare/v1.3.5...v1.3.8) Signed-off-by: dependabot[bot] --- docs/yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/yarn.lock b/docs/yarn.lock index f87d49264..0911a239a 100644 --- a/docs/yarn.lock +++ b/docs/yarn.lock @@ -5125,9 +5125,9 @@ inherits@2.0.3: integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= ini@^1.3.5, ini@~1.3.0: - version "1.3.5" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" - integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== internal-ip@^4.3.0: version "4.3.0" From 6af13d4f40f3735a5026269a1809c5b41f9d08e4 Mon Sep 17 00:00:00 2001 From: chaptergy <26956711+chaptergy@users.noreply.github.com> Date: Mon, 14 Dec 2020 12:08:39 +0100 Subject: [PATCH 011/757] Removes explicit privkeytype check and adds passphrase error --- backend/internal/certificate.js | 32 +++++++++++++-------- frontend/js/app/nginx/certificates/form.ejs | 3 ++ frontend/js/i18n/messages.json | 3 +- 3 files changed, 25 insertions(+), 13 deletions(-) diff --git a/backend/internal/certificate.js b/backend/internal/certificate.js index 3725c1c8f..030b344cd 100644 --- a/backend/internal/certificate.js +++ b/backend/internal/certificate.js @@ -615,18 +615,26 @@ const internalCertificate = { checkPrivateKey: (private_key) => { return tempWrite(private_key, '/tmp') .then((filepath) => { - let key_type = private_key.includes('-----BEGIN RSA') ? 'rsa' : 'ec'; - return utils.exec('openssl ' + key_type + ' -in ' + filepath + ' -check -noout 2>&1 ') - .then((result) => { - if (!result.toLowerCase().includes('key ok') && !result.toLowerCase().includes('key valid') ) { - throw new error.ValidationError('Result Validation Error: ' + result); - } - fs.unlinkSync(filepath); - return true; - }).catch((err) => { - fs.unlinkSync(filepath); - throw new error.ValidationError('Certificate Key is not valid (' + err.message + ')', err); - }); + return new Promise((resolve, reject) => { + const failTimeout = setTimeout(() => { + reject(new error.ValidationError('Result Validation Error: Validation timed out. This could be due to the key being passphrase-protected.')); + }, 10000); + utils + .exec('openssl pkey -in ' + filepath + ' -check -noout 2>&1 ') + .then((result) => { + clearTimeout(failTimeout); + if (!result.toLowerCase().includes('key is valid')) { + reject(new error.ValidationError('Result Validation Error: ' + result)); + } + fs.unlinkSync(filepath); + resolve(true); + }) + .catch((err) => { + clearTimeout(failTimeout); + fs.unlinkSync(filepath); + reject(new error.ValidationError('Certificate Key is not valid (' + err.message + ')', err)); + }); + }); }); }, diff --git a/frontend/js/app/nginx/certificates/form.ejs b/frontend/js/app/nginx/certificates/form.ejs index 4e40e0bf6..c8b1369fb 100644 --- a/frontend/js/app/nginx/certificates/form.ejs +++ b/frontend/js/app/nginx/certificates/form.ejs @@ -129,6 +129,9 @@ <% } else if (provider === 'other') { %> +

+
<%= i18n('ssl', 'passphrase-protection-support-info') %>
+
diff --git a/frontend/js/i18n/messages.json b/frontend/js/i18n/messages.json index eb0f2d298..202e94ac7 100644 --- a/frontend/js/i18n/messages.json +++ b/frontend/js/i18n/messages.json @@ -112,7 +112,8 @@ "stored-as-plaintext-info": "This data will be stored as plaintext in the database and in a file!", "propagation-seconds": "Propagation Seconds", "propagation-seconds-info": "Leave empty to use the plugins default value. Number of seconds to wait for DNS propagation.", - "processing-info": "Processing... This might take a few minutes." + "processing-info": "Processing... This might take a few minutes.", + "passphrase-protection-support-info": "Key files protected with a passphrase are not supported." }, "proxy-hosts": { "title": "Proxy Hosts", From bee2ceb667906307571b66b54e576cfc5441d5b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rio=20Franco?= Date: Sat, 2 Jan 2021 04:58:14 +0000 Subject: [PATCH 012/757] Fix dead hosts verification count --- backend/internal/host.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/internal/host.js b/backend/internal/host.js index a8abf3239..58e1d09a4 100644 --- a/backend/internal/host.js +++ b/backend/internal/host.js @@ -106,7 +106,7 @@ const internalHost = { response_object.total_count += response_object.redirection_hosts.length; } - if (promises_results[1]) { + if (promises_results[2]) { // Dead Hosts response_object.dead_hosts = internalHost._getHostsWithDomains(promises_results[2], domain_names); response_object.total_count += response_object.dead_hosts.length; @@ -158,7 +158,7 @@ const internalHost = { } } - if (promises_results[1]) { + if (promises_results[2]) { // Dead Hosts if (internalHost._checkHostnameRecordsTaken(hostname, promises_results[2], ignore_type === 'dead' && ignore_id ? ignore_id : 0)) { is_taken = true; From b62b0a2fb7306fd9a312edc6847a25afc0098f43 Mon Sep 17 00:00:00 2001 From: lebrou34 Date: Tue, 5 Jan 2021 17:36:47 +0100 Subject: [PATCH 013/757] Update certbot-dns-plugins.js --- global/certbot-dns-plugins.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/global/certbot-dns-plugins.js b/global/certbot-dns-plugins.js index d0afafd45..73c466c31 100644 --- a/global/certbot-dns-plugins.js +++ b/global/certbot-dns-plugins.js @@ -110,6 +110,15 @@ certbot_dns_dnspod:dns_dnspod_api_token = "DNSPOD-API-TOKEN"`, full_plugin_name: 'certbot-dns-dnspod:dns-dnspod', }, //####################################################// + gandi: { + display_name: 'Gandi Live DNS', + package_name: 'certbot_plugin_gandi', + package_version: '1.2.5', + dependencies: '', + credentials: 'certbot_plugin_gandi:dns_api_key = APIKEY', + full_plugin_name: 'certbot-plugin-gandi:dns', + }, + //####################################################// google: { display_name: 'Google', package_name: 'certbot-dns-google', @@ -272,4 +281,4 @@ aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY`, credentials: 'certbot_dns_vultr:dns_vultr_key = YOUR_VULTR_API_KEY', full_plugin_name: 'certbot-dns-vultr:dns-vultr', }, -}; \ No newline at end of file +}; From 5cc3b533787e8cb700ee3888f08445274644f3c7 Mon Sep 17 00:00:00 2001 From: lebrou34 Date: Tue, 5 Jan 2021 18:11:10 +0100 Subject: [PATCH 014/757] Update certbot-dns-plugins.js --- global/certbot-dns-plugins.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/global/certbot-dns-plugins.js b/global/certbot-dns-plugins.js index 73c466c31..5e6ed6351 100644 --- a/global/certbot-dns-plugins.js +++ b/global/certbot-dns-plugins.js @@ -110,13 +110,13 @@ certbot_dns_dnspod:dns_dnspod_api_token = "DNSPOD-API-TOKEN"`, full_plugin_name: 'certbot-dns-dnspod:dns-dnspod', }, //####################################################// - gandi: { - display_name: 'Gandi Live DNS', - package_name: 'certbot_plugin_gandi', - package_version: '1.2.5', - dependencies: '', - credentials: 'certbot_plugin_gandi:dns_api_key = APIKEY', - full_plugin_name: 'certbot-plugin-gandi:dns', + gandi: { + display_name: 'Gandi Live DNS', + package_name: 'certbot_plugin_gandi', + package_version: '1.2.5', + dependencies: '', + credentials: 'certbot_plugin_gandi:dns_api_key = APIKEY', + full_plugin_name: 'certbot-plugin-gandi:dns', }, //####################################################// google: { From 9adccfa34156298505d7474623f3d2acc378614a Mon Sep 17 00:00:00 2001 From: lebrou34 Date: Tue, 5 Jan 2021 18:19:27 +0100 Subject: [PATCH 015/757] Update certbot-dns-plugins.js --- global/certbot-dns-plugins.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/global/certbot-dns-plugins.js b/global/certbot-dns-plugins.js index 5e6ed6351..f8a46d50e 100644 --- a/global/certbot-dns-plugins.js +++ b/global/certbot-dns-plugins.js @@ -110,13 +110,13 @@ certbot_dns_dnspod:dns_dnspod_api_token = "DNSPOD-API-TOKEN"`, full_plugin_name: 'certbot-dns-dnspod:dns-dnspod', }, //####################################################// - gandi: { - display_name: 'Gandi Live DNS', - package_name: 'certbot_plugin_gandi', - package_version: '1.2.5', - dependencies: '', - credentials: 'certbot_plugin_gandi:dns_api_key = APIKEY', - full_plugin_name: 'certbot-plugin-gandi:dns', + gandi: { + display_name: 'Gandi Live DNS', + package_name: 'certbot_plugin_gandi', + package_version: '1.2.5', + dependencies: '', + credentials: 'certbot_plugin_gandi:dns_api_key = APIKEY', + full_plugin_name: 'certbot-plugin-gandi:dns', }, //####################################################// google: { From d13596d2f7598f4dbe9753f260e6a5e4127a39e5 Mon Sep 17 00:00:00 2001 From: lebrou34 Date: Tue, 5 Jan 2021 18:35:18 +0100 Subject: [PATCH 016/757] Update certbot-dns-plugins.js --- global/certbot-dns-plugins.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/global/certbot-dns-plugins.js b/global/certbot-dns-plugins.js index f8a46d50e..73c466c31 100644 --- a/global/certbot-dns-plugins.js +++ b/global/certbot-dns-plugins.js @@ -111,11 +111,11 @@ certbot_dns_dnspod:dns_dnspod_api_token = "DNSPOD-API-TOKEN"`, }, //####################################################// gandi: { - display_name: 'Gandi Live DNS', - package_name: 'certbot_plugin_gandi', + display_name: 'Gandi Live DNS', + package_name: 'certbot_plugin_gandi', package_version: '1.2.5', - dependencies: '', - credentials: 'certbot_plugin_gandi:dns_api_key = APIKEY', + dependencies: '', + credentials: 'certbot_plugin_gandi:dns_api_key = APIKEY', full_plugin_name: 'certbot-plugin-gandi:dns', }, //####################################################// From 59e8446d47fec1723e029d4b32224d24c57b1907 Mon Sep 17 00:00:00 2001 From: lebrou34 Date: Tue, 5 Jan 2021 18:41:26 +0100 Subject: [PATCH 017/757] Update certbot-dns-plugins.js --- global/certbot-dns-plugins.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/global/certbot-dns-plugins.js b/global/certbot-dns-plugins.js index 73c466c31..86146c918 100644 --- a/global/certbot-dns-plugins.js +++ b/global/certbot-dns-plugins.js @@ -111,12 +111,12 @@ certbot_dns_dnspod:dns_dnspod_api_token = "DNSPOD-API-TOKEN"`, }, //####################################################// gandi: { - display_name: 'Gandi Live DNS', - package_name: 'certbot_plugin_gandi', - package_version: '1.2.5', - dependencies: '', - credentials: 'certbot_plugin_gandi:dns_api_key = APIKEY', - full_plugin_name: 'certbot-plugin-gandi:dns', + display_name: 'Gandi Live DNS', + package_name: 'certbot_plugin_gandi', + package_version: '1.2.5', + dependencies: '', + credentials: 'certbot_plugin_gandi:dns_api_key = APIKEY', + full_plugin_name: 'certbot-plugin-gandi:dns', }, //####################################################// google: { From 508bc62852bbb6aab58ff1ef083ce5ad9129a3bd Mon Sep 17 00:00:00 2001 From: lebrou34 Date: Tue, 5 Jan 2021 18:47:22 +0100 Subject: [PATCH 018/757] Update certbot-dns-plugins.js --- global/certbot-dns-plugins.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/global/certbot-dns-plugins.js b/global/certbot-dns-plugins.js index 86146c918..12a457a8f 100644 --- a/global/certbot-dns-plugins.js +++ b/global/certbot-dns-plugins.js @@ -111,12 +111,12 @@ certbot_dns_dnspod:dns_dnspod_api_token = "DNSPOD-API-TOKEN"`, }, //####################################################// gandi: { - display_name: 'Gandi Live DNS', - package_name: 'certbot_plugin_gandi', - package_version: '1.2.5', - dependencies: '', - credentials: 'certbot_plugin_gandi:dns_api_key = APIKEY', - full_plugin_name: 'certbot-plugin-gandi:dns', + display_name: 'Gandi Live DNS', + package_name: 'certbot_plugin_gandi', + package_version: '1.2.5', + dependencies: '', + credentials: 'certbot_plugin_gandi:dns_api_key = APIKEY', + full_plugin_name: 'certbot-plugin-gandi:dns', }, //####################################################// google: { From 64cc4f57d698b74dc88dee2ac32fa38c218f955b Mon Sep 17 00:00:00 2001 From: Jamie Curnow Date: Wed, 6 Jan 2021 21:48:10 +1000 Subject: [PATCH 019/757] Version bump and acknowledgements --- .version | 2 +- README.md | 20 +++++++++++++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/.version b/.version index 860487ca1..37c2961c2 100644 --- a/.version +++ b/.version @@ -1 +1 @@ -2.7.1 +2.7.2 diff --git a/README.md b/README.md index 4a0fef72f..8fb3081ca 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@



- + @@ -211,6 +211,24 @@ Special thanks to the following contributors:
WaterCalm + + + +
lebrou34 +
+ + + + +
Mário Franco +
+ + + + +
Kyle Harding +
+ From 23573543a3af594a950c16046fdb9cc2467701f7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 6 Jan 2021 23:36:33 +0000 Subject: [PATCH 020/757] Bump ini from 1.3.5 to 1.3.8 in /frontend Bumps [ini](https://github.com/isaacs/ini) from 1.3.5 to 1.3.8. - [Release notes](https://github.com/isaacs/ini/releases) - [Commits](https://github.com/isaacs/ini/compare/v1.3.5...v1.3.8) Signed-off-by: dependabot[bot] --- frontend/yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/frontend/yarn.lock b/frontend/yarn.lock index d6896cd20..2702ae95e 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -3741,9 +3741,9 @@ inherits@2.0.3: integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: - version "1.3.5" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" - integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== inquirer@^7.0.0: version "7.3.3" From e0748c9bc7aaf40397a770afc31a91dcf15d6db2 Mon Sep 17 00:00:00 2001 From: Jamie Curnow Date: Tue, 12 Jan 2021 09:05:27 +1000 Subject: [PATCH 021/757] Bumped version --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8fb3081ca..3e4e57244 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@



- + From da0d1d4a2f1ce350ec9e529c2b1962641760073a Mon Sep 17 00:00:00 2001 From: Jamie Curnow Date: Mon, 18 Jan 2021 12:14:03 +1000 Subject: [PATCH 022/757] Updated version fixes #823 --- .version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.version b/.version index 37c2961c2..2c9b4ef42 100644 --- a/.version +++ b/.version @@ -1 +1 @@ -2.7.2 +2.7.3 From d1fac583ea0fe2fa5853dcbcf5d0205d3c9f7480 Mon Sep 17 00:00:00 2001 From: Shuro <944030+Shuro@users.noreply.github.com> Date: Mon, 25 Jan 2021 01:28:50 +0100 Subject: [PATCH 023/757] Use configured default page also for IPv6 Just a small check for the ipv6 variable, similar to _listen.conf, so that the configured default page is also delivered on ipv6 requests. --- backend/templates/default.conf | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/backend/templates/default.conf b/backend/templates/default.conf index 7ed1af978..56b67090e 100644 --- a/backend/templates/default.conf +++ b/backend/templates/default.conf @@ -6,6 +6,11 @@ {%- else %} server { listen 80 default; +{% if ipv6 -%} + listen [::]:80; +{% else -%} + #listen [::]:80; +{% endif %} server_name default-host.localhost; access_log /data/logs/default_host.log combined; {% include "_exploits.conf" %} From 4ac52a0e25578fe16605e9bccc780f8ad0f16d4f Mon Sep 17 00:00:00 2001 From: MooBaloo Date: Thu, 28 Jan 2021 05:52:41 -0500 Subject: [PATCH 024/757] Add custom .conf above includes for NPM-generated files. Added a new clause for custom http_top.conf above the include clauses for NPM-generated files. Allows for more flexibility with adding custom nginx .conf files to NPM Use case: adding a configuration change needs to be present before other custom configuration files are called and reference configuration from the custom http_top.conf file. Example: add a new log_format in http_top.conf, then referencing it in a access_log clause in server_proxy.conf. --- docker/rootfs/etc/nginx/nginx.conf | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docker/rootfs/etc/nginx/nginx.conf b/docker/rootfs/etc/nginx/nginx.conf index 4524d2d23..05ea6f408 100644 --- a/docker/rootfs/etc/nginx/nginx.conf +++ b/docker/rootfs/etc/nginx/nginx.conf @@ -69,6 +69,9 @@ http { real_ip_header X-Real-IP; real_ip_recursive on; + # Custom + include /data/nginx/custom/http_top[.]conf; + # Files generated by NPM include /etc/nginx/conf.d/*.conf; include /data/nginx/default_host/*.conf; From d6c344b5ecc23a0ef510dcd6ee18b774b5d1617e Mon Sep 17 00:00:00 2001 From: ahgraber Date: Tue, 2 Feb 2021 08:58:45 -0500 Subject: [PATCH 025/757] add local docker-compose to build --- docker/docker-compose.yaml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 docker/docker-compose.yaml diff --git a/docker/docker-compose.yaml b/docker/docker-compose.yaml new file mode 100644 index 000000000..a7f4c10f6 --- /dev/null +++ b/docker/docker-compose.yaml @@ -0,0 +1,24 @@ +# docker-compose.yml +# RUN: ```docker-compose --env-file``` +version: "3.7" + +services: + npm: + build: + context: ../ + dockerfile: ./docker/Dockerfile + args: + VERSION: 2.7.3 #"${NPM_VERSION}" # if using .env file + image: npm:test # provide a name and tag for the image + # mariadb: + # build: + # context: . + # dockerfile: Dockerfile-mariadb + # args: + # VERSION: 10.4.15 #"${MARIADB_VERSION}" # if using .env file + # image: mariadb:test + + + # volumes: # Optional, same as `docker volume create` + + # networks: # Optional, same as `docker network create` \ No newline at end of file From 64761ee9c64da2529ff02723e1d285ba372337a5 Mon Sep 17 00:00:00 2001 From: Alex Graber Date: Thu, 4 Feb 2021 11:15:31 -0500 Subject: [PATCH 026/757] beta secrets --- docker/dev/Dockerfile | 2 +- docker/dev/docker-compose.yaml | 49 ++++++++++++++++++++++++++++++++++ docker/docker-compose.yaml | 24 ----------------- 3 files changed, 50 insertions(+), 25 deletions(-) create mode 100644 docker/dev/docker-compose.yaml delete mode 100644 docker/docker-compose.yaml diff --git a/docker/dev/Dockerfile b/docker/dev/Dockerfile index 45ee534ca..9ac2911f1 100644 --- a/docker/dev/Dockerfile +++ b/docker/dev/Dockerfile @@ -27,6 +27,6 @@ EXPOSE 80 EXPOSE 81 EXPOSE 443 -CMD [ "/init" ] +ENTRYPOINT [ "/init" ] HEALTHCHECK --interval=5s --timeout=3s CMD /bin/check-health diff --git a/docker/dev/docker-compose.yaml b/docker/dev/docker-compose.yaml new file mode 100644 index 000000000..46322a48d --- /dev/null +++ b/docker/dev/docker-compose.yaml @@ -0,0 +1,49 @@ +# docker-compose.yml +# RUN: ```docker-compose --env-file``` +version: "3.7" + +secrets: + # paths assume the .secrets folder is sibling depth to folder where docker-compose resides + DB_ROOT_PWD: + file: ../../../homelab-setup/docker_secrets/db_root_pwd.txt + MYSQL_PWD: + file: ../../../homelab-setup/docker_secrets/mysql_pwd.txt + +services: + mariadb: + image: mariadb:test + container_name: mariadb + secrets: + - DB_ROOT_PWD + - MYSQL_PWD + environment: + # MYSQL_ROOT_PASSWORD: "npm" + MYSQL_ROOT_PASSWORD__FILE: /run/secrets/DB_ROOT_PWD + MYSQL_DATABASE: "npm" + MYSQL_USER: "npm" + # MYSQL_PASSWORD: "npm" + MYSQL_PASSWORD__FILE: /run/secrets/MYSQL_PWD + volumes: + - ./data/mysql:/var/lib/mysql + + npm: + build: + context: ../../ + dockerfile: ./docker/Dockerfile + image: npm:test # provide a name and tag for the image + container_name: npm + secrets: + - MYSQL_PWD + environment: + DISABLE_IPV6: 'true' + DB_MYSQL_HOST: "mariadb" + DB_MYSQL_PORT: 3306 + MYSQL_DATABASE: "npm" + MYSQL_USER: "npm" + # MYSQL_PASSWORD: "npm" + MYSQL_PASSWORD__FILE: /run/secrets/MYSQL_PWD + volumes: + - ./data/npm:/data + - ./data/letsencrypt:/etc/letsencrypt + depends_on: + - mariadb \ No newline at end of file diff --git a/docker/docker-compose.yaml b/docker/docker-compose.yaml deleted file mode 100644 index a7f4c10f6..000000000 --- a/docker/docker-compose.yaml +++ /dev/null @@ -1,24 +0,0 @@ -# docker-compose.yml -# RUN: ```docker-compose --env-file``` -version: "3.7" - -services: - npm: - build: - context: ../ - dockerfile: ./docker/Dockerfile - args: - VERSION: 2.7.3 #"${NPM_VERSION}" # if using .env file - image: npm:test # provide a name and tag for the image - # mariadb: - # build: - # context: . - # dockerfile: Dockerfile-mariadb - # args: - # VERSION: 10.4.15 #"${MARIADB_VERSION}" # if using .env file - # image: mariadb:test - - - # volumes: # Optional, same as `docker volume create` - - # networks: # Optional, same as `docker network create` \ No newline at end of file From 63a71afbc8aecb00de5f0abd48e15dc7c224dcaa Mon Sep 17 00:00:00 2001 From: Alex Graber Date: Thu, 4 Feb 2021 11:25:26 -0500 Subject: [PATCH 027/757] beta s6 secrets --- docker/rootfs/etc/cont-init.d/.gitignore | 1 + docker/rootfs/etc/cont-init.d/01_envfile.sh | 28 +++++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 docker/rootfs/etc/cont-init.d/01_envfile.sh diff --git a/docker/rootfs/etc/cont-init.d/.gitignore b/docker/rootfs/etc/cont-init.d/.gitignore index d6b7ef32c..06b88e3d5 100644 --- a/docker/rootfs/etc/cont-init.d/.gitignore +++ b/docker/rootfs/etc/cont-init.d/.gitignore @@ -1,2 +1,3 @@ * !.gitignore +!01_envfile.sh diff --git a/docker/rootfs/etc/cont-init.d/01_envfile.sh b/docker/rootfs/etc/cont-init.d/01_envfile.sh new file mode 100644 index 000000000..be87c49a8 --- /dev/null +++ b/docker/rootfs/etc/cont-init.d/01_envfile.sh @@ -0,0 +1,28 @@ +#! /bin/bash +# ref: https://github.com/linuxserver/docker-baseimage-alpine/blob/master/root/etc/cont-init.d/01-envfile + +# in s6, environmental variables are written as text files for s6 to monitor +for FILENAME in $(find /var/run/s6/container_environment/ | grep "^.*__FILE"); do + echo "[secret-init] Evaluating ${FILENAME}" + + # set SECRETFILE to the contents of the variable + SECRETFILE=$(cat ${FILENAME}) + # SECRETFILE=${FILENAME} + echo "[secret-init] Setting SECRETFILE to ${SECRETFILE}..." # DEBUG - rm for prod! + + # if SECRETFILE exists / is not null + if [[ -f ${SECRETFILE} ]]; then + # strip the appended "__FILE" from environmental variable name ... + STRIPFILE=$(echo $FILENAME | sed "s/__FILE//g") + echo "[secret-init] Set STRIPFILE to ${STRIPFILE}" # DEBUG - rm for prod! + + # ... and set value to contents of secretfile + # since s6 uses text files, this is effectively "export ..." + cat ${SECRETFILE} > ${STRIPFILE} + echo "[secret-init] Set ${STRIPFILE} to $(cat ${STRIPFILE})" # DEBUG - rm for prod!" + echo "[secret-init] Success! ${STRIPFILE##*/} set from ${FILENAME##*/}" + + else + echo "[secret-init] cannot find secret in ${FILENAME##*/}" + fi +done From 15c4857a4bb256a238944a3d4ce76671b825ce9a Mon Sep 17 00:00:00 2001 From: ahgraber Date: Thu, 4 Feb 2021 14:03:17 -0500 Subject: [PATCH 028/757] fix /docker/dev/docker-compose.yaml --- docker/dev/docker-compose.yaml | 78 +++++++++++++++++----------------- 1 file changed, 40 insertions(+), 38 deletions(-) diff --git a/docker/dev/docker-compose.yaml b/docker/dev/docker-compose.yaml index 46322a48d..1cc1bfaa8 100644 --- a/docker/dev/docker-compose.yaml +++ b/docker/dev/docker-compose.yaml @@ -2,48 +2,50 @@ # RUN: ```docker-compose --env-file``` version: "3.7" -secrets: - # paths assume the .secrets folder is sibling depth to folder where docker-compose resides - DB_ROOT_PWD: - file: ../../../homelab-setup/docker_secrets/db_root_pwd.txt - MYSQL_PWD: - file: ../../../homelab-setup/docker_secrets/mysql_pwd.txt +# secrets: +# # paths assume the .secrets folder is sibling depth to folder where docker-compose resides +# DB_ROOT_PWD: +# file: ../../../homelab-setup/docker_secrets/db_root_pwd.txt +# MYSQL_PWD: +# file: ../../../homelab-setup/docker_secrets/mysql_pwd.txt services: - mariadb: - image: mariadb:test - container_name: mariadb - secrets: - - DB_ROOT_PWD - - MYSQL_PWD - environment: - # MYSQL_ROOT_PASSWORD: "npm" - MYSQL_ROOT_PASSWORD__FILE: /run/secrets/DB_ROOT_PWD - MYSQL_DATABASE: "npm" - MYSQL_USER: "npm" - # MYSQL_PASSWORD: "npm" - MYSQL_PASSWORD__FILE: /run/secrets/MYSQL_PWD - volumes: - - ./data/mysql:/var/lib/mysql + # mariadb: + # image: mariadb:test + # container_name: mariadb + # secrets: + # - DB_ROOT_PWD + # - MYSQL_PWD + # environment: + # # MYSQL_ROOT_PASSWORD: "npm" + # MYSQL_ROOT_PASSWORD__FILE: /run/secrets/DB_ROOT_PWD + # MYSQL_DATABASE: "npm" + # MYSQL_USER: "npm" + # # MYSQL_PASSWORD: "npm" + # MYSQL_PASSWORD__FILE: /run/secrets/MYSQL_PWD + # volumes: + # - ./data/mysql:/var/lib/mysql npm: build: - context: ../../ - dockerfile: ./docker/Dockerfile + context: ../ + dockerfile: ./dev/Dockerfile + # args: + # TARGETPLATFORM: arm64v8 image: npm:test # provide a name and tag for the image container_name: npm - secrets: - - MYSQL_PWD - environment: - DISABLE_IPV6: 'true' - DB_MYSQL_HOST: "mariadb" - DB_MYSQL_PORT: 3306 - MYSQL_DATABASE: "npm" - MYSQL_USER: "npm" - # MYSQL_PASSWORD: "npm" - MYSQL_PASSWORD__FILE: /run/secrets/MYSQL_PWD - volumes: - - ./data/npm:/data - - ./data/letsencrypt:/etc/letsencrypt - depends_on: - - mariadb \ No newline at end of file + # secrets: + # - MYSQL_PWD + # environment: + # DISABLE_IPV6: 'true' + # DB_MYSQL_HOST: "mariadb" + # DB_MYSQL_PORT: 3306 + # MYSQL_DATABASE: "npm" + # MYSQL_USER: "npm" + # # MYSQL_PASSWORD: "npm" + # MYSQL_PASSWORD__FILE: /run/secrets/MYSQL_PWD + # volumes: + # - ./data/npm:/data + # - ./data/letsencrypt:/etc/letsencrypt + # depends_on: + # - mariadb \ No newline at end of file From ef3a073af5bc6532899de99d3053195f5a1d3409 Mon Sep 17 00:00:00 2001 From: Alex Graber Date: Fri, 5 Feb 2021 16:52:24 -0500 Subject: [PATCH 029/757] local builds & secrets --- Dockerfile | 39 ++++++++++ docker-compose.yaml | 86 +++++++++++++++++++++ docker/Dockerfile | 2 +- docker/dev/Dockerfile | 28 +++---- docker/dev/docker-compose.yaml | 4 +- docker/rootfs/etc/cont-init.d/01_envfile.sh | 17 ++-- 6 files changed, 152 insertions(+), 24 deletions(-) create mode 100644 Dockerfile create mode 100644 docker-compose.yaml diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 000000000..f40029772 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,39 @@ +FROM jc21/alpine-nginx-full:node +LABEL maintainer="Jamie Curnow " + +ENV SUPPRESS_NO_CONFIG_WARNING=1 +ENV S6_FIX_ATTRS_HIDDEN=1 +ENV NODE_ENV=production + +RUN echo "fs.file-max = 65535" > /etc/sysctl.conf \ + && apk update \ + && apk add python3 certbot jq \ + && python3 -m ensurepip \ + && rm -rf /var/cache/apk/* + +# s6 overlay +COPY scripts/install-s6 /tmp/install-s6 +RUN /tmp/install-s6 "${TARGETPLATFORM}" && rm -f /tmp/install-s6 + +EXPOSE 80 +EXPOSE 81 +EXPOSE 443 + +ADD backend /app +ADD frontend/dist /app/frontend +COPY global /app/global + +WORKDIR /app +RUN yarn install + +# add late to limit cache-busting by modifications +COPY docker/rootfs / + +# Remove frontend service not required for prod, dev nginx config as well +RUN rm -rf /etc/services.d/frontend +RUN rm -f /etc/nginx/conf.d/dev.conf + +VOLUME [ "/data", "/etc/letsencrypt" ] +ENTRYPOINT [ "/init" ] + +HEALTHCHECK --interval=5s --timeout=3s CMD /bin/check-health \ No newline at end of file diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 000000000..60de491fc --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,86 @@ +# docker-compose.yml +version: "3.7" + +secrets: + # paths assume the .secrets folder is sibling depth to folder where docker-compose resides + DB_ROOT_PWD: + file: ../.secrets/db_root_pwd.txt + MYSQL_PWD: + file: ../.secrets/mysql_pwd.txt + +# networks: +# npm-bridge: # arbitrary name +# driver: bridge + +services: + mariadb: + image: ahgraber/mariadb-aria:test + container_name: mariadb + secrets: + - DB_ROOT_PWD + - MYSQL_PWD + # networks: + # - npm-bridge + # ports: + # - 3306:3306 + environment: + # MYSQL_ROOT_PASSWORD: "npm" + MYSQL_ROOT_PASSWORD__FILE: /run/secrets/DB_ROOT_PWD + MYSQL_DATABASE: "npm" + MYSQL_USER: "npm" + # MYSQL_PASSWORD: "npm" + MYSQL_PASSWORD__FILE: /run/secrets/MYSQL_PWD + volumes: + - ./data/mysql:/var/lib/mysql + # - npm-mount:/var/lib/mysql + # restart: unless-stopped + + npm: + build: + context: . + dockerfile: ./Dockerfile + # args: + # TARGETPLATFORM: arm64v8 + image: nginx-proxy-manager:test # provide a name and tag for the image + container_name: npm + secrets: + - MYSQL_PWD + # networks: + # - npm-bridge + ports: + - 8080:80 + - 8443:443 + - 8888:81 + environment: + DISABLE_IPV6: 'true' + DB_MYSQL_HOST: "mariadb" + DB_MYSQL_PORT: 3306 + DB_MYSQL_NAME: "npm" + DB_MYSQL_USER: "npm" + # DB_MYSQL_PASSWORD: "npm" + DB_MYSQL_PASSWORD__FILE: /run/secrets/MYSQL_PWD + # DB_MYSQL_PASSWORD: "sqlL3tm3in" + volumes: + - ./data/npm:/data + - ./data/letsencrypt:/etc/letsencrypt + # - npm-mount:/data + # - letsencrypt-mount:/etc/letsencrypt + depends_on: + - mariadb + # restart: unless-stopped + +# ## https://stackoverflow.com/questions/45282608/how-to-directly-mount-nfs-share-volume-in-container-using-docker-compose-v3 +# volumes: +# npm-mount: +# driver: local +# driver_opts: +# type: nfs +# o: nfsvers=4,addr=10.2.1.1,rw,retry=1,soft,nolock +# device: ":/npm" +# letsencrypt-mount: +# driver: local +# driver_opts: +# type: nfs +# o: nfsvers=4,addr=10.2.1.1,rw,retry=1,soft,nolock +# device: ":/letsencrypt" + \ No newline at end of file diff --git a/docker/Dockerfile b/docker/Dockerfile index f243208c4..66bbd92c4 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -43,6 +43,6 @@ RUN yarn install RUN rm -rf /etc/services.d/frontend RUN rm -f /etc/nginx/conf.d/dev.conf VOLUME [ "/data", "/etc/letsencrypt" ] -CMD [ "/init" ] +ENTRYPOINT [ "/init" ] HEALTHCHECK --interval=5s --timeout=3s CMD /bin/check-health diff --git a/docker/dev/Dockerfile b/docker/dev/Dockerfile index 9ac2911f1..cad4bc7b6 100644 --- a/docker/dev/Dockerfile +++ b/docker/dev/Dockerfile @@ -1,9 +1,9 @@ FROM jc21/alpine-nginx-full:node LABEL maintainer="Jamie Curnow " -ENV S6_LOGGING=0 ENV SUPPRESS_NO_CONFIG_WARNING=1 ENV S6_FIX_ATTRS_HIDDEN=1 +ENV NODE_ENV=production RUN echo "fs.file-max = 65535" > /etc/sysctl.conf \ && apk update \ @@ -11,22 +11,24 @@ RUN echo "fs.file-max = 65535" > /etc/sysctl.conf \ && python3 -m ensurepip \ && rm -rf /var/cache/apk/* -# Task -RUN cd /usr \ - && curl -sL https://taskfile.dev/install.sh | sh \ - && cd /root - -COPY rootfs / -RUN rm -f /etc/nginx/conf.d/production.conf - # s6 overlay -RUN curl -L -o /tmp/s6-overlay-amd64.tar.gz "https://github.com/just-containers/s6-overlay/releases/download/v1.22.1.0/s6-overlay-amd64.tar.gz" \ - && tar -xzf /tmp/s6-overlay-amd64.tar.gz -C / +COPY scripts/install-s6 /tmp/install-s6 +RUN /tmp/install-s6 "${TARGETPLATFORM}" && rm -f /tmp/install-s6 EXPOSE 80 EXPOSE 81 EXPOSE 443 -ENTRYPOINT [ "/init" ] +COPY docker/rootfs / +ADD backend /app +ADD frontend/dist /app/frontend +COPY global /app/global + +WORKDIR /app +RUN yarn install + +# Remove frontend service not required for prod, dev nginx config as well +RUN rm -rf /etc/services.d/frontend RUN rm -f /etc/nginx/conf.d/dev.conf -HEALTHCHECK --interval=5s --timeout=3s CMD /bin/check-health +VOLUME [ "/data", "/etc/letsencrypt" ] +ENTRYPOINT [ "/init" ] \ No newline at end of file diff --git a/docker/dev/docker-compose.yaml b/docker/dev/docker-compose.yaml index 1cc1bfaa8..35871966d 100644 --- a/docker/dev/docker-compose.yaml +++ b/docker/dev/docker-compose.yaml @@ -28,8 +28,8 @@ services: npm: build: - context: ../ - dockerfile: ./dev/Dockerfile + context: ../../ + dockerfile: ./docker/dev/Dockerfile # args: # TARGETPLATFORM: arm64v8 image: npm:test # provide a name and tag for the image diff --git a/docker/rootfs/etc/cont-init.d/01_envfile.sh b/docker/rootfs/etc/cont-init.d/01_envfile.sh index be87c49a8..a0bc5ace1 100644 --- a/docker/rootfs/etc/cont-init.d/01_envfile.sh +++ b/docker/rootfs/etc/cont-init.d/01_envfile.sh @@ -2,10 +2,11 @@ # ref: https://github.com/linuxserver/docker-baseimage-alpine/blob/master/root/etc/cont-init.d/01-envfile # in s6, environmental variables are written as text files for s6 to monitor -for FILENAME in $(find /var/run/s6/container_environment/ | grep "^.*__FILE"); do - echo "[secret-init] Evaluating ${FILENAME}" +# seach through full-path filenames for files ending in "__FILE" +for FILENAME in $(find /var/run/s6/container_environment/ | grep "__FILE$"); do + echo "[secret-init] Evaluating ${FILENAME##*/}" - # set SECRETFILE to the contents of the variable + # set SECRETFILE to the contents of the full-path textfile SECRETFILE=$(cat ${FILENAME}) # SECRETFILE=${FILENAME} echo "[secret-init] Setting SECRETFILE to ${SECRETFILE}..." # DEBUG - rm for prod! @@ -13,16 +14,16 @@ for FILENAME in $(find /var/run/s6/container_environment/ | grep "^.*__FILE"); d # if SECRETFILE exists / is not null if [[ -f ${SECRETFILE} ]]; then # strip the appended "__FILE" from environmental variable name ... - STRIPFILE=$(echo $FILENAME | sed "s/__FILE//g") + STRIPFILE=$(echo ${FILENAME} | sed "s/__FILE//g") echo "[secret-init] Set STRIPFILE to ${STRIPFILE}" # DEBUG - rm for prod! - + # ... and set value to contents of secretfile # since s6 uses text files, this is effectively "export ..." - cat ${SECRETFILE} > ${STRIPFILE} + cat $(${SECRETFILE} | xargs) > ${STRIPFILE} echo "[secret-init] Set ${STRIPFILE} to $(cat ${STRIPFILE})" # DEBUG - rm for prod!" - echo "[secret-init] Success! ${STRIPFILE##*/} set from ${FILENAME##*/}" + echo "[secret-init] Success! ${STRIPFILE} set from ${FILENAME}" else - echo "[secret-init] cannot find secret in ${FILENAME##*/}" + echo "[secret-init] cannot find secret in ${FILENAME}" fi done From 9c3a7b02ec644f17f83f3881401c01c39fdef944 Mon Sep 17 00:00:00 2001 From: Loris Bergeron Date: Fri, 5 Feb 2021 23:17:51 +0100 Subject: [PATCH 030/757] Add EuroDNS as a DNS provider --- global/certbot-dns-plugins.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/global/certbot-dns-plugins.js b/global/certbot-dns-plugins.js index 7bea831fa..0be2f7794 100644 --- a/global/certbot-dns-plugins.js +++ b/global/certbot-dns-plugins.js @@ -291,4 +291,14 @@ aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY`, credentials: 'certbot_dns_vultr:dns_vultr_key = YOUR_VULTR_API_KEY', full_plugin_name: 'certbot-dns-vultr:dns-vultr', }, + eurodns: { + display_name: 'EuroDNS', + package_name: 'certbot-dns-eurodns', + package_version: '0.0.4', + dependencies: '', + credentials: `dns_eurodns_applicationId = myuser +dns_eurodns_apiKey = mysecretpassword +dns_eurodns_endpoint = https://rest-api.eurodns.com/user-api-gateway/proxy`, + full_plugin_name: 'certbot-dns-eurodns:dns-eurodns', + }, }; From d29650882b245a62cf2a0e1cd26021c592f1aff5 Mon Sep 17 00:00:00 2001 From: Loris Bergeron Date: Fri, 5 Feb 2021 23:29:01 +0100 Subject: [PATCH 031/757] EuroDNS fix key-spacing error --- global/certbot-dns-plugins.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/global/certbot-dns-plugins.js b/global/certbot-dns-plugins.js index 0be2f7794..8426ef400 100644 --- a/global/certbot-dns-plugins.js +++ b/global/certbot-dns-plugins.js @@ -292,11 +292,11 @@ aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY`, full_plugin_name: 'certbot-dns-vultr:dns-vultr', }, eurodns: { - display_name: 'EuroDNS', - package_name: 'certbot-dns-eurodns', - package_version: '0.0.4', - dependencies: '', - credentials: `dns_eurodns_applicationId = myuser + display_name: 'EuroDNS', + package_name: 'certbot-dns-eurodns', + package_version: '0.0.4', + dependencies: '', + credentials: `dns_eurodns_applicationId = myuser dns_eurodns_apiKey = mysecretpassword dns_eurodns_endpoint = https://rest-api.eurodns.com/user-api-gateway/proxy`, full_plugin_name: 'certbot-dns-eurodns:dns-eurodns', From 0ca5587a6f7fa9f0a4a2cb8d302d0c42225561a6 Mon Sep 17 00:00:00 2001 From: Loris Bergeron Date: Fri, 5 Feb 2021 23:40:31 +0100 Subject: [PATCH 032/757] EuroDNS fix key-spacing error --- global/certbot-dns-plugins.js | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/global/certbot-dns-plugins.js b/global/certbot-dns-plugins.js index 8426ef400..b055f848a 100644 --- a/global/certbot-dns-plugins.js +++ b/global/certbot-dns-plugins.js @@ -291,12 +291,13 @@ aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY`, credentials: 'certbot_dns_vultr:dns_vultr_key = YOUR_VULTR_API_KEY', full_plugin_name: 'certbot-dns-vultr:dns-vultr', }, + //####################################################// eurodns: { - display_name: 'EuroDNS', - package_name: 'certbot-dns-eurodns', - package_version: '0.0.4', - dependencies: '', - credentials: `dns_eurodns_applicationId = myuser + display_name: 'EuroDNS', + package_name: 'certbot-dns-eurodns', + package_version: '0.0.4', + dependencies: '', + credentials: `dns_eurodns_applicationId = myuser dns_eurodns_apiKey = mysecretpassword dns_eurodns_endpoint = https://rest-api.eurodns.com/user-api-gateway/proxy`, full_plugin_name: 'certbot-dns-eurodns:dns-eurodns', From 5abb9458c730784cbfa9c6c58e0600a8f71af4ec Mon Sep 17 00:00:00 2001 From: ahgraber Date: Fri, 5 Feb 2021 23:47:30 -0500 Subject: [PATCH 033/757] fix linebreaks in secrets --- Dockerfile | 2 +- docker/rootfs/etc/cont-init.d/01_envfile.sh | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index f40029772..b49e1fc22 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM jc21/alpine-nginx-full:node +FROM --platform=${TARGETPLATFORM:-linux/amd64} jc21/alpine-nginx-full:node LABEL maintainer="Jamie Curnow " ENV SUPPRESS_NO_CONFIG_WARNING=1 diff --git a/docker/rootfs/etc/cont-init.d/01_envfile.sh b/docker/rootfs/etc/cont-init.d/01_envfile.sh index a0bc5ace1..90dee690a 100644 --- a/docker/rootfs/etc/cont-init.d/01_envfile.sh +++ b/docker/rootfs/etc/cont-init.d/01_envfile.sh @@ -19,7 +19,8 @@ for FILENAME in $(find /var/run/s6/container_environment/ | grep "__FILE$"); do # ... and set value to contents of secretfile # since s6 uses text files, this is effectively "export ..." - cat $(${SECRETFILE} | xargs) > ${STRIPFILE} + # cat ${SECRETFILE} > ${STRIPFILE} + cat $(${SECRETFILE} | sed "s/[^\w.-]+//g") > ${STRIPFILE} echo "[secret-init] Set ${STRIPFILE} to $(cat ${STRIPFILE})" # DEBUG - rm for prod!" echo "[secret-init] Success! ${STRIPFILE} set from ${FILENAME}" From 7fcc4a7ef07fcf8180da906e4c722f9d93a5a754 Mon Sep 17 00:00:00 2001 From: ahgraber Date: Sat, 6 Feb 2021 20:05:40 -0500 Subject: [PATCH 034/757] cleanup --- Dockerfile | 39 --------- docker-compose.yaml | 86 ------------------- docker/Dockerfile | 5 +- docker/rootfs/etc/cont-init.d/.gitignore | 2 +- .../{01_envfile.sh => 01_s6-secret-init.sh} | 15 ++-- 5 files changed, 12 insertions(+), 135 deletions(-) delete mode 100644 Dockerfile delete mode 100644 docker-compose.yaml rename docker/rootfs/etc/cont-init.d/{01_envfile.sh => 01_s6-secret-init.sh} (64%) diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index b49e1fc22..000000000 --- a/Dockerfile +++ /dev/null @@ -1,39 +0,0 @@ -FROM --platform=${TARGETPLATFORM:-linux/amd64} jc21/alpine-nginx-full:node -LABEL maintainer="Jamie Curnow " - -ENV SUPPRESS_NO_CONFIG_WARNING=1 -ENV S6_FIX_ATTRS_HIDDEN=1 -ENV NODE_ENV=production - -RUN echo "fs.file-max = 65535" > /etc/sysctl.conf \ - && apk update \ - && apk add python3 certbot jq \ - && python3 -m ensurepip \ - && rm -rf /var/cache/apk/* - -# s6 overlay -COPY scripts/install-s6 /tmp/install-s6 -RUN /tmp/install-s6 "${TARGETPLATFORM}" && rm -f /tmp/install-s6 - -EXPOSE 80 -EXPOSE 81 -EXPOSE 443 - -ADD backend /app -ADD frontend/dist /app/frontend -COPY global /app/global - -WORKDIR /app -RUN yarn install - -# add late to limit cache-busting by modifications -COPY docker/rootfs / - -# Remove frontend service not required for prod, dev nginx config as well -RUN rm -rf /etc/services.d/frontend -RUN rm -f /etc/nginx/conf.d/dev.conf - -VOLUME [ "/data", "/etc/letsencrypt" ] -ENTRYPOINT [ "/init" ] - -HEALTHCHECK --interval=5s --timeout=3s CMD /bin/check-health \ No newline at end of file diff --git a/docker-compose.yaml b/docker-compose.yaml deleted file mode 100644 index 60de491fc..000000000 --- a/docker-compose.yaml +++ /dev/null @@ -1,86 +0,0 @@ -# docker-compose.yml -version: "3.7" - -secrets: - # paths assume the .secrets folder is sibling depth to folder where docker-compose resides - DB_ROOT_PWD: - file: ../.secrets/db_root_pwd.txt - MYSQL_PWD: - file: ../.secrets/mysql_pwd.txt - -# networks: -# npm-bridge: # arbitrary name -# driver: bridge - -services: - mariadb: - image: ahgraber/mariadb-aria:test - container_name: mariadb - secrets: - - DB_ROOT_PWD - - MYSQL_PWD - # networks: - # - npm-bridge - # ports: - # - 3306:3306 - environment: - # MYSQL_ROOT_PASSWORD: "npm" - MYSQL_ROOT_PASSWORD__FILE: /run/secrets/DB_ROOT_PWD - MYSQL_DATABASE: "npm" - MYSQL_USER: "npm" - # MYSQL_PASSWORD: "npm" - MYSQL_PASSWORD__FILE: /run/secrets/MYSQL_PWD - volumes: - - ./data/mysql:/var/lib/mysql - # - npm-mount:/var/lib/mysql - # restart: unless-stopped - - npm: - build: - context: . - dockerfile: ./Dockerfile - # args: - # TARGETPLATFORM: arm64v8 - image: nginx-proxy-manager:test # provide a name and tag for the image - container_name: npm - secrets: - - MYSQL_PWD - # networks: - # - npm-bridge - ports: - - 8080:80 - - 8443:443 - - 8888:81 - environment: - DISABLE_IPV6: 'true' - DB_MYSQL_HOST: "mariadb" - DB_MYSQL_PORT: 3306 - DB_MYSQL_NAME: "npm" - DB_MYSQL_USER: "npm" - # DB_MYSQL_PASSWORD: "npm" - DB_MYSQL_PASSWORD__FILE: /run/secrets/MYSQL_PWD - # DB_MYSQL_PASSWORD: "sqlL3tm3in" - volumes: - - ./data/npm:/data - - ./data/letsencrypt:/etc/letsencrypt - # - npm-mount:/data - # - letsencrypt-mount:/etc/letsencrypt - depends_on: - - mariadb - # restart: unless-stopped - -# ## https://stackoverflow.com/questions/45282608/how-to-directly-mount-nfs-share-volume-in-container-using-docker-compose-v3 -# volumes: -# npm-mount: -# driver: local -# driver_opts: -# type: nfs -# o: nfsvers=4,addr=10.2.1.1,rw,retry=1,soft,nolock -# device: ":/npm" -# letsencrypt-mount: -# driver: local -# driver_opts: -# type: nfs -# o: nfsvers=4,addr=10.2.1.1,rw,retry=1,soft,nolock -# device: ":/letsencrypt" - \ No newline at end of file diff --git a/docker/Dockerfile b/docker/Dockerfile index 66bbd92c4..34ee5c449 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -13,6 +13,7 @@ ARG BUILD_DATE ENV SUPPRESS_NO_CONFIG_WARNING=1 ENV S6_FIX_ATTRS_HIDDEN=1 +ENV S6_BEHAVIOUR_IF_STAGE2_FAILS=1 ENV NODE_ENV=production RUN echo "fs.file-max = 65535" > /etc/sysctl.conf \ @@ -31,7 +32,6 @@ EXPOSE 80 EXPOSE 81 EXPOSE 443 -COPY docker/rootfs / ADD backend /app ADD frontend/dist /app/frontend COPY global /app/global @@ -39,6 +39,9 @@ COPY global /app/global WORKDIR /app RUN yarn install +# add late to limit cache-busting by modifications +COPY docker/rootfs / + # Remove frontend service not required for prod, dev nginx config as well RUN rm -rf /etc/services.d/frontend RUN rm -f /etc/nginx/conf.d/dev.conf diff --git a/docker/rootfs/etc/cont-init.d/.gitignore b/docker/rootfs/etc/cont-init.d/.gitignore index 06b88e3d5..f04f0f6e0 100644 --- a/docker/rootfs/etc/cont-init.d/.gitignore +++ b/docker/rootfs/etc/cont-init.d/.gitignore @@ -1,3 +1,3 @@ * !.gitignore -!01_envfile.sh +!*.sh diff --git a/docker/rootfs/etc/cont-init.d/01_envfile.sh b/docker/rootfs/etc/cont-init.d/01_s6-secret-init.sh similarity index 64% rename from docker/rootfs/etc/cont-init.d/01_envfile.sh rename to docker/rootfs/etc/cont-init.d/01_s6-secret-init.sh index 90dee690a..f145807ab 100644 --- a/docker/rootfs/etc/cont-init.d/01_envfile.sh +++ b/docker/rootfs/etc/cont-init.d/01_s6-secret-init.sh @@ -1,28 +1,27 @@ -#! /bin/bash +#!/usr/bin/with-contenv bash # ref: https://github.com/linuxserver/docker-baseimage-alpine/blob/master/root/etc/cont-init.d/01-envfile # in s6, environmental variables are written as text files for s6 to monitor # seach through full-path filenames for files ending in "__FILE" for FILENAME in $(find /var/run/s6/container_environment/ | grep "__FILE$"); do - echo "[secret-init] Evaluating ${FILENAME##*/}" + echo "[secret-init] Evaluating ${FILENAME##*/} ..." # set SECRETFILE to the contents of the full-path textfile SECRETFILE=$(cat ${FILENAME}) # SECRETFILE=${FILENAME} - echo "[secret-init] Setting SECRETFILE to ${SECRETFILE}..." # DEBUG - rm for prod! + # echo "[secret-init] Set SECRETFILE to ${SECRETFILE}" # DEBUG - rm for prod! # if SECRETFILE exists / is not null if [[ -f ${SECRETFILE} ]]; then # strip the appended "__FILE" from environmental variable name ... STRIPFILE=$(echo ${FILENAME} | sed "s/__FILE//g") - echo "[secret-init] Set STRIPFILE to ${STRIPFILE}" # DEBUG - rm for prod! + # echo "[secret-init] Set STRIPFILE to ${STRIPFILE}" # DEBUG - rm for prod! # ... and set value to contents of secretfile # since s6 uses text files, this is effectively "export ..." - # cat ${SECRETFILE} > ${STRIPFILE} - cat $(${SECRETFILE} | sed "s/[^\w.-]+//g") > ${STRIPFILE} - echo "[secret-init] Set ${STRIPFILE} to $(cat ${STRIPFILE})" # DEBUG - rm for prod!" - echo "[secret-init] Success! ${STRIPFILE} set from ${FILENAME}" + printf $(cat ${SECRETFILE}) > ${STRIPFILE} + # echo "[secret-init] Set ${STRIPFILE##*/} to $(cat ${STRIPFILE})" # DEBUG - rm for prod!" + echo "[secret-init] Success! ${STRIPFILE##*/} set from ${FILENAME##*/}" else echo "[secret-init] cannot find secret in ${FILENAME}" From 11175aaa5f8122ef8a5bec13bd2f2becfd0d087f Mon Sep 17 00:00:00 2001 From: ahgraber Date: Sun, 7 Feb 2021 09:52:37 -0500 Subject: [PATCH 035/757] revert docker/dev before PR --- docker/dev/Dockerfile | 28 +++++++++---------- docker/dev/docker-compose.yaml | 51 ---------------------------------- 2 files changed, 13 insertions(+), 66 deletions(-) delete mode 100644 docker/dev/docker-compose.yaml diff --git a/docker/dev/Dockerfile b/docker/dev/Dockerfile index cad4bc7b6..1e4bdad85 100644 --- a/docker/dev/Dockerfile +++ b/docker/dev/Dockerfile @@ -1,9 +1,9 @@ FROM jc21/alpine-nginx-full:node LABEL maintainer="Jamie Curnow " +ENV S6_LOGGING=0 ENV SUPPRESS_NO_CONFIG_WARNING=1 ENV S6_FIX_ATTRS_HIDDEN=1 -ENV NODE_ENV=production RUN echo "fs.file-max = 65535" > /etc/sysctl.conf \ && apk update \ @@ -11,24 +11,22 @@ RUN echo "fs.file-max = 65535" > /etc/sysctl.conf \ && python3 -m ensurepip \ && rm -rf /var/cache/apk/* +# Task +RUN cd /usr \ + && curl -sL https://taskfile.dev/install.sh | sh \ + && cd /root + +COPY rootfs / +RUN rm -f /etc/nginx/conf.d/production.conf + # s6 overlay -COPY scripts/install-s6 /tmp/install-s6 -RUN /tmp/install-s6 "${TARGETPLATFORM}" && rm -f /tmp/install-s6 +RUN curl -L -o /tmp/s6-overlay-amd64.tar.gz "https://github.com/just-containers/s6-overlay/releases/download/v1.22.1.0/s6-overlay-amd64.tar.gz" \ + && tar -xzf /tmp/s6-overlay-amd64.tar.gz -C / EXPOSE 80 EXPOSE 81 EXPOSE 443 -COPY docker/rootfs / -ADD backend /app -ADD frontend/dist /app/frontend -COPY global /app/global - -WORKDIR /app -RUN yarn install - -# Remove frontend service not required for prod, dev nginx config as well -RUN rm -rf /etc/services.d/frontend RUN rm -f /etc/nginx/conf.d/dev.conf +ENTRYPOINT [ "/init" ] -VOLUME [ "/data", "/etc/letsencrypt" ] -ENTRYPOINT [ "/init" ] \ No newline at end of file +HEALTHCHECK --interval=5s --timeout=3s CMD /bin/check-health \ No newline at end of file diff --git a/docker/dev/docker-compose.yaml b/docker/dev/docker-compose.yaml deleted file mode 100644 index 35871966d..000000000 --- a/docker/dev/docker-compose.yaml +++ /dev/null @@ -1,51 +0,0 @@ -# docker-compose.yml -# RUN: ```docker-compose --env-file``` -version: "3.7" - -# secrets: -# # paths assume the .secrets folder is sibling depth to folder where docker-compose resides -# DB_ROOT_PWD: -# file: ../../../homelab-setup/docker_secrets/db_root_pwd.txt -# MYSQL_PWD: -# file: ../../../homelab-setup/docker_secrets/mysql_pwd.txt - -services: - # mariadb: - # image: mariadb:test - # container_name: mariadb - # secrets: - # - DB_ROOT_PWD - # - MYSQL_PWD - # environment: - # # MYSQL_ROOT_PASSWORD: "npm" - # MYSQL_ROOT_PASSWORD__FILE: /run/secrets/DB_ROOT_PWD - # MYSQL_DATABASE: "npm" - # MYSQL_USER: "npm" - # # MYSQL_PASSWORD: "npm" - # MYSQL_PASSWORD__FILE: /run/secrets/MYSQL_PWD - # volumes: - # - ./data/mysql:/var/lib/mysql - - npm: - build: - context: ../../ - dockerfile: ./docker/dev/Dockerfile - # args: - # TARGETPLATFORM: arm64v8 - image: npm:test # provide a name and tag for the image - container_name: npm - # secrets: - # - MYSQL_PWD - # environment: - # DISABLE_IPV6: 'true' - # DB_MYSQL_HOST: "mariadb" - # DB_MYSQL_PORT: 3306 - # MYSQL_DATABASE: "npm" - # MYSQL_USER: "npm" - # # MYSQL_PASSWORD: "npm" - # MYSQL_PASSWORD__FILE: /run/secrets/MYSQL_PWD - # volumes: - # - ./data/npm:/data - # - ./data/letsencrypt:/etc/letsencrypt - # depends_on: - # - mariadb \ No newline at end of file From 3964bbf3fe18ebd359bb15025c149d17b8304746 Mon Sep 17 00:00:00 2001 From: ahgraber Date: Sun, 7 Feb 2021 19:12:20 -0500 Subject: [PATCH 036/757] update advanced-config/readme with secrets --- docs/advanced-config/README.md | 61 ++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/docs/advanced-config/README.md b/docs/advanced-config/README.md index 7c622d59c..962c34221 100644 --- a/docs/advanced-config/README.md +++ b/docs/advanced-config/README.md @@ -1,5 +1,66 @@ # Advanced Configuration +## Docker Secrets + +This image supports the use of Docker secrets to import from file and keep sensitive usernames or passwords from being passed or preserved in plaintext. + +You can set any environment variable from a file by appending `__FILE` (double-underscore FILE) to the environmental variable name. + +```yml +version: "3.7" + +secrets: + # Secrets are single-line text files where the sole content is the secret + # Paths in this example assume that secrets are kept in local folder called ".secrets" + DB_ROOT_PWD: + file: .secrets/db_root_pwd.txt + MYSQL_PWD: + file: .secrets/mysql_pwd.txt + +services: + app: + image: 'jc21/nginx-proxy-manager:latest' + restart: always + ports: + # Public HTTP Port: + - '80:80' + # Public HTTPS Port: + - '443:443' + # Admin Web Port: + - '81:81' + environment: + # These are the settings to access your db + DB_MYSQL_HOST: "db" + DB_MYSQL_PORT: 3306 + DB_MYSQL_USER: "npm" + # DB_MYSQL_PASSWORD: "npm" # use secret instead + DB_MYSQL_PASSWORD__FILE: /run/secrets/MYSQL_PWD + DB_MYSQL_NAME: "npm" + # If you would rather use Sqlite uncomment this + # and remove all DB_MYSQL_* lines above + # DB_SQLITE_FILE: "/data/database.sqlite" + # Uncomment this if IPv6 is not enabled on your host + # DISABLE_IPV6: 'true' + volumes: + - ./data:/data + - ./letsencrypt:/etc/letsencrypt + depends_on: + - db + db: + image: jc21/mariadb-aria + restart: always + environment: + # MYSQL_ROOT_PASSWORD: "npm" # use secret instead + MYSQL_ROOT_PASSWORD__FILE: /run/secrets/DB_ROOT_PWD + MYSQL_DATABASE: "npm" + MYSQL_USER: "npm" + # MYSQL_PASSWORD: "npm" # use secret instead + MYSQL_PASSWORD__FILE: /run/secrets/MYSQL_PWD + volumes: + - ./data/mysql:/var/lib/mysql +``` + + ## Disabling IPv6 On some docker hosts IPv6 may not be enabled. In these cases, the following message may be seen in the log: From 272c65284726efbb4e1a93613ac2aad5d2523409 Mon Sep 17 00:00:00 2001 From: Jamie Curnow Date: Mon, 8 Feb 2021 11:56:21 +1000 Subject: [PATCH 037/757] Updated docs to use latest mariadb-aria image --- docs/README.md | 2 +- docs/setup/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/README.md b/docs/README.md index 3f2f62822..11c17e39c 100644 --- a/docs/README.md +++ b/docs/README.md @@ -66,7 +66,7 @@ services: - ./data:/data - ./letsencrypt:/etc/letsencrypt db: - image: 'jc21/mariadb-aria:10.4' + image: 'jc21/mariadb-aria:latest' environment: MYSQL_ROOT_PASSWORD: 'npm' MYSQL_DATABASE: 'npm' diff --git a/docs/setup/README.md b/docs/setup/README.md index 8af7eee23..457674a59 100644 --- a/docs/setup/README.md +++ b/docs/setup/README.md @@ -51,7 +51,7 @@ services: depends_on: - db db: - image: jc21/mariadb-aria:10.4 + image: 'jc21/mariadb-aria:latest' restart: always environment: MYSQL_ROOT_PASSWORD: 'npm' From b243324c6557297602f119d625ccc9bf34139178 Mon Sep 17 00:00:00 2001 From: Jamie Curnow Date: Mon, 8 Feb 2021 12:23:52 +1000 Subject: [PATCH 038/757] Added contributors and bumped version --- .version | 2 +- README.md | 28 +++++++++++++++++++++++++++- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/.version b/.version index 2c9b4ef42..834f26295 100644 --- a/.version +++ b/.version @@ -1 +1 @@ -2.7.3 +2.8.0 diff --git a/README.md b/README.md index 3e4e57244..28d4740c3 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@



- + @@ -229,6 +229,32 @@ Special thanks to the following contributors:
Kyle Harding + + + +
Alex Graber +
+ + + + + + +
MooBaloo +
+ + + + +
Shuro +
+ + + + +
Loris Bergeron +
+ From fe13b12f4387035b952da68bf2115adb096a8531 Mon Sep 17 00:00:00 2001 From: Jocelyn Le Sage Date: Mon, 8 Feb 2021 16:46:35 -0500 Subject: [PATCH 039/757] Removed the need to restart Nginx Proxy Manager after generating JWT key pair. --- backend/models/token.js | 17 ++++++++++++++--- backend/setup.js | 5 ++--- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/backend/models/token.js b/backend/models/token.js index 373f8e5c9..4e1b1826e 100644 --- a/backend/models/token.js +++ b/backend/models/token.js @@ -4,15 +4,23 @@ */ const _ = require('lodash'); -const config = require('config'); const jwt = require('jsonwebtoken'); const crypto = require('crypto'); const error = require('../lib/error'); const ALGO = 'RS256'; +let public_key = null; +let private_key = null; + +function checkJWTKeyPair() { + if (!public_key || !private_key) { + let config = require('config'); + public_key = config.get('jwt.pub'); + private_key = config.get('jwt.key'); + } +} + module.exports = function () { - const public_key = config.get('jwt.pub'); - const private_key = config.get('jwt.key'); let token_data = {}; @@ -32,6 +40,8 @@ module.exports = function () { .toString('base64') .substr(-8); + checkJWTKeyPair(); + return new Promise((resolve, reject) => { jwt.sign(payload, private_key, options, (err, token) => { if (err) { @@ -53,6 +63,7 @@ module.exports = function () { */ load: function (token) { return new Promise((resolve, reject) => { + checkJWTKeyPair(); try { if (!token || token === null || token === 'null') { reject(new error.AuthError('Empty token')); diff --git a/backend/setup.js b/backend/setup.js index d58a16066..9a59f9acd 100644 --- a/backend/setup.js +++ b/backend/setup.js @@ -51,9 +51,8 @@ const setupJwt = () => { reject(err); } else { logger.info('Wrote JWT key pair to config file: ' + filename); - - logger.warn('Restarting interface to apply new configuration'); - process.exit(0); + delete require.cache[require.resolve('config')]; + resolve(); } }); } else { From 6df7b72e08a0443b50e51e47e850724f73edbebf Mon Sep 17 00:00:00 2001 From: baruffaldi Date: Tue, 9 Feb 2021 11:23:15 +0100 Subject: [PATCH 040/757] Forward scheme and http code added for redirection hosts You can now configure the forward_scheme and forward_http_code on user interface (section redirection hosts) --- .version | 2 +- .../schema/endpoints/redirection-hosts.json | 26 +++++++++++++++++++ backend/templates/redirection_host.conf | 4 +-- frontend/js/app/nginx/redirection/form.ejs | 25 +++++++++++++++++- .../js/app/nginx/redirection/list/item.ejs | 6 +++++ frontend/js/models/redirection-host.js | 2 ++ 6 files changed, 61 insertions(+), 4 deletions(-) diff --git a/.version b/.version index 834f26295..dbe590065 100644 --- a/.version +++ b/.version @@ -1 +1 @@ -2.8.0 +2.8.1 diff --git a/backend/schema/endpoints/redirection-hosts.json b/backend/schema/endpoints/redirection-hosts.json index 1295fa4fd..14a469985 100644 --- a/backend/schema/endpoints/redirection-hosts.json +++ b/backend/schema/endpoints/redirection-hosts.json @@ -18,6 +18,12 @@ "domain_names": { "$ref": "../definitions.json#/definitions/domain_names" }, + "forward_http_code": { + "$ref": "../definitions.json#/definitions/http_code" + }, + "forward_scheme": { + "$ref": "../definitions.json#/definitions/scheme" + }, "forward_domain_name": { "$ref": "../definitions.json#/definitions/domain_name" }, @@ -67,6 +73,12 @@ "domain_names": { "$ref": "#/definitions/domain_names" }, + "forward_http_code": { + "$ref": "#/definitions/forward_http_code" + }, + "forward_scheme": { + "$ref": "#/definitions/forward_scheme" + }, "forward_domain_name": { "$ref": "#/definitions/forward_domain_name" }, @@ -134,12 +146,20 @@ "additionalProperties": false, "required": [ "domain_names", + "forward_scheme", + "forward_http_code", "forward_domain_name" ], "properties": { "domain_names": { "$ref": "#/definitions/domain_names" }, + "forward_http_code": { + "$ref": "#/definitions/forward_http_code" + }, + "forward_scheme": { + "$ref": "#/definitions/forward_scheme" + }, "forward_domain_name": { "$ref": "#/definitions/forward_domain_name" }, @@ -195,6 +215,12 @@ "domain_names": { "$ref": "#/definitions/domain_names" }, + "forward_http_code": { + "$ref": "#/definitions/forward_http_code" + }, + "forward_scheme": { + "$ref": "#/definitions/forward_scheme" + }, "forward_domain_name": { "$ref": "#/definitions/forward_domain_name" }, diff --git a/backend/templates/redirection_host.conf b/backend/templates/redirection_host.conf index 463f3a8eb..55e7280f9 100644 --- a/backend/templates/redirection_host.conf +++ b/backend/templates/redirection_host.conf @@ -18,9 +18,9 @@ server { {% include "_hsts.conf" %} {% if preserve_path == 1 or preserve_path == true %} - return 301 $scheme://{{ forward_domain_name }}$request_uri; + return {{ forward_http_code }} {{ forward_scheme }}://{{ forward_domain_name }}$request_uri; {% else %} - return 301 $scheme://{{ forward_domain_name }}; + return {{ forward_http_code }} {{ forward_scheme }}://{{ forward_domain_name }}; {% endif %} } {% endif %} diff --git a/frontend/js/app/nginx/redirection/form.ejs b/frontend/js/app/nginx/redirection/form.ejs index 3247233a1..9e1628a51 100644 --- a/frontend/js/app/nginx/redirection/form.ejs +++ b/frontend/js/app/nginx/redirection/form.ejs @@ -22,12 +22,35 @@

-
+
+
+ + +
+
+
+
+
+ + +
+
+ +
<%- forward_http_code %>
+ + +
<%- forward_scheme %>
+
<%- forward_domain_name %>
diff --git a/frontend/js/models/redirection-host.js b/frontend/js/models/redirection-host.js index a4f11e21e..1d0b0de24 100644 --- a/frontend/js/models/redirection-host.js +++ b/frontend/js/models/redirection-host.js @@ -9,6 +9,8 @@ const model = Backbone.Model.extend({ created_on: null, modified_on: null, domain_names: [], + forward_http_code: 0, + forward_scheme: null, forward_domain_name: '', preserve_path: true, certificate_id: 0, From 8ba6c4f7e7faa9793d50f2534aff15e4efe104a4 Mon Sep 17 00:00:00 2001 From: baruffaldi Date: Wed, 10 Feb 2021 09:55:41 +0100 Subject: [PATCH 041/757] Added http_code definition --- backend/schema/definitions.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/backend/schema/definitions.json b/backend/schema/definitions.json index 2aa538b23..37c71f523 100644 --- a/backend/schema/definitions.json +++ b/backend/schema/definitions.json @@ -179,6 +179,12 @@ "pattern": "^(?:\\*\\.)?(?:[^.*]+\\.?)+[^.]$" } }, + "http_code": { + "description": "HTTP Status Code", + "example": 302, + "type": "integer", + "minimum": 0 + }, "enabled": { "description": "Is Enabled", "example": true, From e35138ebedd28f34ae72a18cbbe255ef57427a1d Mon Sep 17 00:00:00 2001 From: baruffaldi Date: Wed, 10 Feb 2021 10:42:34 +0100 Subject: [PATCH 042/757] Added scheme to definitions --- backend/schema/definitions.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/backend/schema/definitions.json b/backend/schema/definitions.json index 37c71f523..f0acf3104 100644 --- a/backend/schema/definitions.json +++ b/backend/schema/definitions.json @@ -185,6 +185,12 @@ "type": "integer", "minimum": 0 }, + "scheme": { + "description": "RFC Protocol", + "example": "HTTPS or $scheme", + "type": "string", + "minLength": 4 + }, "enabled": { "description": "Is Enabled", "example": true, From ebeda6345ec9c36c148d4b1676dc5b74d70a9352 Mon Sep 17 00:00:00 2001 From: baruffaldi Date: Wed, 10 Feb 2021 14:11:01 +0100 Subject: [PATCH 043/757] Globalization done Ready to merge --- frontend/js/app/nginx/redirection/form.ejs | 4 ++-- frontend/js/i18n/messages.json | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/frontend/js/app/nginx/redirection/form.ejs b/frontend/js/app/nginx/redirection/form.ejs index 9e1628a51..488d27339 100644 --- a/frontend/js/app/nginx/redirection/form.ejs +++ b/frontend/js/app/nginx/redirection/form.ejs @@ -24,7 +24,7 @@
- + diff --git a/frontend/js/i18n/messages.json b/frontend/js/i18n/messages.json index 202e94ac7..3437b1098 100644 --- a/frontend/js/i18n/messages.json +++ b/frontend/js/i18n/messages.json @@ -137,6 +137,8 @@ "empty": "There are no Redirection Hosts", "add": "Add Redirection Host", "form-title": "{id, select, undefined{New} other{Edit}} Redirection Host", + "forward-scheme": "Scheme", + "forward-http-status-code": "HTTP Code", "forward-domain": "Forward Domain", "preserve-path": "Preserve Path", "delete": "Delete Proxy Host", From 77a2ee948aa502069fe37dc623c24e18f8b9c70b Mon Sep 17 00:00:00 2001 From: baruffaldi Date: Wed, 10 Feb 2021 15:25:19 +0100 Subject: [PATCH 044/757] Updated list table Added state code columns Better form columns sizing --- frontend/js/app/nginx/redirection/form.ejs | 4 ++-- frontend/js/app/nginx/redirection/list/main.ejs | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/frontend/js/app/nginx/redirection/form.ejs b/frontend/js/app/nginx/redirection/form.ejs index 488d27339..7e1907193 100644 --- a/frontend/js/app/nginx/redirection/form.ejs +++ b/frontend/js/app/nginx/redirection/form.ejs @@ -22,7 +22,7 @@
-
+
-
+
diff --git a/frontend/js/app/nginx/redirection/list/main.ejs b/frontend/js/app/nginx/redirection/list/main.ejs index 15af827a0..41158a7e8 100644 --- a/frontend/js/app/nginx/redirection/list/main.ejs +++ b/frontend/js/app/nginx/redirection/list/main.ejs @@ -1,6 +1,7 @@   <%- i18n('str', 'source') %> + <%- i18n('redirection-hosts', 'forward-http-status-code') %> <%- i18n('str', 'destination') %> <%- i18n('str', 'ssl') %> <%- i18n('str', 'status') %> From 329d0ecaed9328e96ffdd296f5b57e311764816a Mon Sep 17 00:00:00 2001 From: baruffaldi Date: Wed, 10 Feb 2021 15:27:11 +0100 Subject: [PATCH 045/757] Added forward scheme to table columns --- frontend/js/app/nginx/redirection/list/main.ejs | 1 + 1 file changed, 1 insertion(+) diff --git a/frontend/js/app/nginx/redirection/list/main.ejs b/frontend/js/app/nginx/redirection/list/main.ejs index 41158a7e8..8b6930d60 100644 --- a/frontend/js/app/nginx/redirection/list/main.ejs +++ b/frontend/js/app/nginx/redirection/list/main.ejs @@ -2,6 +2,7 @@   <%- i18n('str', 'source') %> <%- i18n('redirection-hosts', 'forward-http-status-code') %> + <%- i18n('redirection-hosts', 'forward-scheme') %> <%- i18n('str', 'destination') %> <%- i18n('str', 'ssl') %> <%- i18n('str', 'status') %> From 1f122e9145ab24ec15c7da7baf82e9f96b13bc54 Mon Sep 17 00:00:00 2001 From: baruffaldi Date: Wed, 10 Feb 2021 15:57:28 +0100 Subject: [PATCH 046/757] Database migrations created --- .../20210210154702_redirection_scheme.js | 49 +++++++++++++++++++ .../20210210154703_redirection_status_code.js | 49 +++++++++++++++++++ 2 files changed, 98 insertions(+) create mode 100644 backend/migrations/20210210154702_redirection_scheme.js create mode 100644 backend/migrations/20210210154703_redirection_status_code.js diff --git a/backend/migrations/20210210154702_redirection_scheme.js b/backend/migrations/20210210154702_redirection_scheme.js new file mode 100644 index 000000000..a7fcca978 --- /dev/null +++ b/backend/migrations/20210210154702_redirection_scheme.js @@ -0,0 +1,49 @@ +const migrate_name = 'redirection_scheme'; +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('redirection_host', (table) => { + table.string('forward_scheme').notNull().defaultTo("$scheme"); + }) + .then(function () { + logger.info('[' + migrate_name + '] redirection_host Table altered'); + }); + + logger.info('[' + migrate_name + '] Migrating Up Complete'); + + return Promise.resolve(true); +}; + +/** + * Undo Migrate + * + * @param {Object} knex + * @param {Promise} Promise + * @returns {Promise} + */ +exports.down = function (knex, Promise) { + logger.info('[' + migrate_name + '] Migrating Down...'); + + return knex.schema.table('redirection_host', (table) => { + table.dropColumn('forward_scheme'); + }) + .then(function () { + logger.info('[' + migrate_name + '] redirection_host Table altered'); + }); + + logger.info('[' + migrate_name + '] Migrating Down Complete'); + + return Promise.resolve(true); +}; diff --git a/backend/migrations/20210210154703_redirection_status_code.js b/backend/migrations/20210210154703_redirection_status_code.js new file mode 100644 index 000000000..c5888dd57 --- /dev/null +++ b/backend/migrations/20210210154703_redirection_status_code.js @@ -0,0 +1,49 @@ +const migrate_name = 'redirection_status_code'; +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('redirection_host', (table) => { + table.integer('forward_http_code').notNull().unsigned().defaultTo(302); + }) + .then(function () { + logger.info('[' + migrate_name + '] redirection_host Table altered'); + }); + + logger.info('[' + migrate_name + '] Migrating Up Complete'); + + return Promise.resolve(true); +}; + +/** + * Undo Migrate + * + * @param {Object} knex + * @param {Promise} Promise + * @returns {Promise} + */ +exports.down = function (knex, Promise) { + logger.info('[' + migrate_name + '] Migrating Down...'); + + return knex.schema.table('redirection_host', (table) => { + table.dropColumn('forward_http_code'); + }) + .then(function () { + logger.info('[' + migrate_name + '] redirection_host Table altered'); + }); + + logger.info('[' + migrate_name + '] Migrating Down Complete'); + + return Promise.resolve(true); +}; From eb20add0c76f9b6ff6d4f550a58d64ccb708f878 Mon Sep 17 00:00:00 2001 From: baruffaldi Date: Wed, 10 Feb 2021 17:16:33 +0100 Subject: [PATCH 047/757] Migrations hotfix --- .../20210210154702_redirection_scheme.js | 26 +++++++------------ .../20210210154703_redirection_status_code.js | 26 +++++++------------ 2 files changed, 18 insertions(+), 34 deletions(-) diff --git a/backend/migrations/20210210154702_redirection_scheme.js b/backend/migrations/20210210154702_redirection_scheme.js index a7fcca978..886fa05f2 100644 --- a/backend/migrations/20210210154702_redirection_scheme.js +++ b/backend/migrations/20210210154702_redirection_scheme.js @@ -1,5 +1,5 @@ const migrate_name = 'redirection_scheme'; -const logger = require('../logger').migrate; +const logger = require('../logger').migrate; /** * Migrate @@ -15,15 +15,11 @@ exports.up = function (knex, Promise) { logger.info('[' + migrate_name + '] Migrating Up...'); return knex.schema.table('redirection_host', (table) => { - table.string('forward_scheme').notNull().defaultTo("$scheme"); - }) - .then(function () { + table.string('forward_scheme').notNull().defaultTo('$scheme'); + }) + .then(function () { logger.info('[' + migrate_name + '] redirection_host Table altered'); - }); - - logger.info('[' + migrate_name + '] Migrating Up Complete'); - - return Promise.resolve(true); + }); }; /** @@ -37,13 +33,9 @@ exports.down = function (knex, Promise) { logger.info('[' + migrate_name + '] Migrating Down...'); return knex.schema.table('redirection_host', (table) => { - table.dropColumn('forward_scheme'); - }) - .then(function () { + table.dropColumn('forward_scheme'); + }) + .then(function () { logger.info('[' + migrate_name + '] redirection_host Table altered'); - }); - - logger.info('[' + migrate_name + '] Migrating Down Complete'); - - return Promise.resolve(true); + }); }; diff --git a/backend/migrations/20210210154703_redirection_status_code.js b/backend/migrations/20210210154703_redirection_status_code.js index c5888dd57..594892fdb 100644 --- a/backend/migrations/20210210154703_redirection_status_code.js +++ b/backend/migrations/20210210154703_redirection_status_code.js @@ -1,5 +1,5 @@ const migrate_name = 'redirection_status_code'; -const logger = require('../logger').migrate; +const logger = require('../logger').migrate; /** * Migrate @@ -15,15 +15,11 @@ exports.up = function (knex, Promise) { logger.info('[' + migrate_name + '] Migrating Up...'); return knex.schema.table('redirection_host', (table) => { - table.integer('forward_http_code').notNull().unsigned().defaultTo(302); - }) - .then(function () { + table.integer('forward_http_code').notNull().unsigned().defaultTo(302); + }) + .then(function () { logger.info('[' + migrate_name + '] redirection_host Table altered'); - }); - - logger.info('[' + migrate_name + '] Migrating Up Complete'); - - return Promise.resolve(true); + }); }; /** @@ -37,13 +33,9 @@ exports.down = function (knex, Promise) { logger.info('[' + migrate_name + '] Migrating Down...'); return knex.schema.table('redirection_host', (table) => { - table.dropColumn('forward_http_code'); - }) - .then(function () { + table.dropColumn('forward_http_code'); + }) + .then(function () { logger.info('[' + migrate_name + '] redirection_host Table altered'); - }); - - logger.info('[' + migrate_name + '] Migrating Down Complete'); - - return Promise.resolve(true); + }); }; From 9b83d35ef4a36a25372c240ace0e9213c7a7edb3 Mon Sep 17 00:00:00 2001 From: baruffaldi Date: Wed, 10 Feb 2021 18:12:02 +0100 Subject: [PATCH 048/757] Migrations --- .../20210210154702_redirection_scheme.js | 18 +++++++++--------- .../20210210154703_redirection_status_code.js | 4 ++-- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/backend/migrations/20210210154702_redirection_scheme.js b/backend/migrations/20210210154702_redirection_scheme.js index 886fa05f2..c153ba3b0 100644 --- a/backend/migrations/20210210154702_redirection_scheme.js +++ b/backend/migrations/20210210154702_redirection_scheme.js @@ -1,5 +1,5 @@ const migrate_name = 'redirection_scheme'; -const logger = require('../logger').migrate; +const logger = require('../logger').migrate; /** * Migrate @@ -10,16 +10,16 @@ const logger = require('../logger').migrate; * @param {Promise} Promise * @returns {Promise} */ -exports.up = function (knex, Promise) { +exports.up = function (knex/*, Promise*/) { logger.info('[' + migrate_name + '] Migrating Up...'); return knex.schema.table('redirection_host', (table) => { table.string('forward_scheme').notNull().defaultTo('$scheme'); }) - .then(function () { - logger.info('[' + migrate_name + '] redirection_host Table altered'); - }); + .then(function () { + logger.info('[' + migrate_name + '] redirection_host Table altered'); + }); }; /** @@ -29,13 +29,13 @@ exports.up = function (knex, Promise) { * @param {Promise} Promise * @returns {Promise} */ -exports.down = function (knex, Promise) { +exports.down = function (knex/*, Promise*/) { logger.info('[' + migrate_name + '] Migrating Down...'); return knex.schema.table('redirection_host', (table) => { table.dropColumn('forward_scheme'); }) - .then(function () { - logger.info('[' + migrate_name + '] redirection_host Table altered'); - }); + .then(function () { + logger.info('[' + migrate_name + '] redirection_host Table altered'); + }); }; diff --git a/backend/migrations/20210210154703_redirection_status_code.js b/backend/migrations/20210210154703_redirection_status_code.js index 594892fdb..e623733df 100644 --- a/backend/migrations/20210210154703_redirection_status_code.js +++ b/backend/migrations/20210210154703_redirection_status_code.js @@ -10,7 +10,7 @@ const logger = require('../logger').migrate; * @param {Promise} Promise * @returns {Promise} */ -exports.up = function (knex, Promise) { +exports.up = function (knex/*, Promise*/) { logger.info('[' + migrate_name + '] Migrating Up...'); @@ -29,7 +29,7 @@ exports.up = function (knex, Promise) { * @param {Promise} Promise * @returns {Promise} */ -exports.down = function (knex, Promise) { +exports.down = function (knex/*, Promise*/) { logger.info('[' + migrate_name + '] Migrating Down...'); return knex.schema.table('redirection_host', (table) => { From 49b0f11ae7d92e4a25908412459ccf43e5d12fbe Mon Sep 17 00:00:00 2001 From: baruffaldi Date: Wed, 10 Feb 2021 18:13:12 +0100 Subject: [PATCH 049/757] migrations --- .../20210210154702_redirection_scheme.js | 8 ++++---- .../20210210154703_redirection_status_code.js | 20 +++++++++---------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/backend/migrations/20210210154702_redirection_scheme.js b/backend/migrations/20210210154702_redirection_scheme.js index c153ba3b0..a7ec19ab4 100644 --- a/backend/migrations/20210210154702_redirection_scheme.js +++ b/backend/migrations/20210210154702_redirection_scheme.js @@ -6,8 +6,8 @@ const logger = require('../logger').migrate; * * @see http://knexjs.org/#Schema * - * @param {Object} knex - * @param {Promise} Promise + * @param {Object} knex + * @param {Promise} Promise * @returns {Promise} */ exports.up = function (knex/*, Promise*/) { @@ -25,8 +25,8 @@ exports.up = function (knex/*, Promise*/) { /** * Undo Migrate * - * @param {Object} knex - * @param {Promise} Promise + * @param {Object} knex + * @param {Promise} Promise * @returns {Promise} */ exports.down = function (knex/*, Promise*/) { diff --git a/backend/migrations/20210210154703_redirection_status_code.js b/backend/migrations/20210210154703_redirection_status_code.js index e623733df..789d4baa4 100644 --- a/backend/migrations/20210210154703_redirection_status_code.js +++ b/backend/migrations/20210210154703_redirection_status_code.js @@ -6,8 +6,8 @@ const logger = require('../logger').migrate; * * @see http://knexjs.org/#Schema * - * @param {Object} knex - * @param {Promise} Promise + * @param {Object} knex + * @param {Promise} Promise * @returns {Promise} */ exports.up = function (knex/*, Promise*/) { @@ -17,16 +17,16 @@ exports.up = function (knex/*, Promise*/) { return knex.schema.table('redirection_host', (table) => { table.integer('forward_http_code').notNull().unsigned().defaultTo(302); }) - .then(function () { - logger.info('[' + migrate_name + '] redirection_host Table altered'); - }); + .then(function () { + logger.info('[' + migrate_name + '] redirection_host Table altered'); + }); }; /** * Undo Migrate * - * @param {Object} knex - * @param {Promise} Promise + * @param {Object} knex + * @param {Promise} Promise * @returns {Promise} */ exports.down = function (knex/*, Promise*/) { @@ -35,7 +35,7 @@ exports.down = function (knex/*, Promise*/) { return knex.schema.table('redirection_host', (table) => { table.dropColumn('forward_http_code'); }) - .then(function () { - logger.info('[' + migrate_name + '] redirection_host Table altered'); - }); + .then(function () { + logger.info('[' + migrate_name + '] redirection_host Table altered'); + }); }; From 4060718e5c33311e417ead41d561e2731cb3a4fd Mon Sep 17 00:00:00 2001 From: baruffaldi Date: Wed, 10 Feb 2021 18:26:19 +0100 Subject: [PATCH 050/757] Hotfix: This group of assignments is not aligned --- backend/migrations/20210210154702_redirection_scheme.js | 2 +- backend/migrations/20210210154703_redirection_status_code.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/migrations/20210210154702_redirection_scheme.js b/backend/migrations/20210210154702_redirection_scheme.js index a7ec19ab4..0dad48768 100644 --- a/backend/migrations/20210210154702_redirection_scheme.js +++ b/backend/migrations/20210210154702_redirection_scheme.js @@ -1,5 +1,5 @@ const migrate_name = 'redirection_scheme'; -const logger = require('../logger').migrate; +const logger = require('../logger').migrate; /** * Migrate diff --git a/backend/migrations/20210210154703_redirection_status_code.js b/backend/migrations/20210210154703_redirection_status_code.js index 789d4baa4..b9bea0b92 100644 --- a/backend/migrations/20210210154703_redirection_status_code.js +++ b/backend/migrations/20210210154703_redirection_status_code.js @@ -1,5 +1,5 @@ const migrate_name = 'redirection_status_code'; -const logger = require('../logger').migrate; +const logger = require('../logger').migrate; /** * Migrate From 49fbf031d1d2f3bfa6a7d828164feac5955d2b11 Mon Sep 17 00:00:00 2001 From: baruffaldi Date: Wed, 10 Feb 2021 19:43:29 +0100 Subject: [PATCH 051/757] $scheme is displayed as "auto" on hosts listing --- frontend/js/app/nginx/redirection/list/item.ejs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/js/app/nginx/redirection/list/item.ejs b/frontend/js/app/nginx/redirection/list/item.ejs index f6ba688d6..dfff29d75 100644 --- a/frontend/js/app/nginx/redirection/list/item.ejs +++ b/frontend/js/app/nginx/redirection/list/item.ejs @@ -26,7 +26,7 @@
<%- forward_http_code %>
-
<%- forward_scheme %>
+
<%- forward_scheme == '$scheme' ? 'auto' : forward_scheme %>
<%- forward_domain_name %>
From f0eebc43e3d7d22328442f70a75e89d8239c9f61 Mon Sep 17 00:00:00 2001 From: Jamie Curnow Date: Wed, 17 Feb 2021 20:18:12 +1000 Subject: [PATCH 052/757] Update github templates and docs --- .github/ISSUE_TEMPLATE/bug_report.md | 5 +++++ .github/ISSUE_TEMPLATE/feature_request.md | 5 +++++ .github/ISSUE_TEMPLATE/product_support.md | 16 ---------------- docs/faq/README.md | 7 +++++++ docs/third-party/README.md | 4 ++++ 5 files changed, 21 insertions(+), 16 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/product_support.md diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 9860702e0..b6029bd55 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -7,6 +7,11 @@ assignees: '' --- +**Are you in the right place?** +- If you are looking for support on how to get your upstream server forwarding, please consider asking the community on Reddit. +- If you are writing code changes to contribute and need to ask about the internals of the software, Gitter is the best place to ask. +- If you think you found a bug with NPM (not Nginx, or your upstream server or MySql) then you are in the *right place.* + **Checklist** - Have you pulled and found the error with `jc21/nginx-proxy-manager:latest` docker image? - Are you sure you're not using someone else's docker image? diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md index 11fc491ef..12eb7d4c7 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -7,6 +7,11 @@ assignees: '' --- +**Are you in the right place?** +- If you are looking for support on how to get your upstream server forwarding, please consider asking the community on Reddit. +- If you are writing code changes to contribute and need to ask about the internals of the software, Gitter is the best place to ask. +- If you have a feature request for NPM then you are in the *right place.* + **Is your feature request related to a problem? Please describe.** A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] diff --git a/.github/ISSUE_TEMPLATE/product_support.md b/.github/ISSUE_TEMPLATE/product_support.md deleted file mode 100644 index 449d4697b..000000000 --- a/.github/ISSUE_TEMPLATE/product_support.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -name: Product Support -about: Need help configuring the software? -title: '' -labels: product-support -assignees: '' - ---- - -**Checklist** -- Please read the [setup instructions](https://nginxproxymanager.com/setup/) -- Please read the [FAQ](https://nginxproxymanager.com/faq/) - -**What is troubling you?** - -_Clear and concise description of what you're trying to do and what isn't working for you_ diff --git a/docs/faq/README.md b/docs/faq/README.md index 7a2bae16b..1703e7055 100644 --- a/docs/faq/README.md +++ b/docs/faq/README.md @@ -14,3 +14,10 @@ of dependencies. Yes! The docker image is multi-arch and is built for a variety of architectures. If yours is [not listed](https://hub.docker.com/r/jc21/nginx-proxy-manager/tags) please open a [GitHub issue](https://github.com/jc21/nginx-proxy-manager/issues/new?assignees=&labels=enhancement&template=feature_request.md&title=). + +## I can't get my service to proxy properly? + +Your best bet is to ask the [Reddit community for support](https://www.reddit.com/r/nginxproxymanager/). There's safety in numbers. + +Gitter is best left for anyone contributing to the project to ask for help about internals, code reviews etc. + diff --git a/docs/third-party/README.md b/docs/third-party/README.md index 8e7fc33a0..9b533ef12 100644 --- a/docs/third-party/README.md +++ b/docs/third-party/README.md @@ -7,6 +7,10 @@ Known integrations: - [HomeAssistant Hass.io plugin](https://github.com/hassio-addons/addon-nginx-proxy-manager) - [UnRaid / Synology](https://github.com/jlesage/docker-nginx-proxy-manager) +- [Proxmox Scripts](https://github.com/ej52/proxmox-scripts/tree/main/lxc/nginx-proxy-manager) +- [nginxproxymanagerGraf](https://github.com/ma-karai/nginxproxymanagerGraf) + If you would like your integration of NPM listed, please open a [Github issue](https://github.com/jc21/nginx-proxy-manager/issues/new?assignees=&labels=enhancement&template=feature_request.md&title=) + From a21289bf110b30688bd96abb24e55b5cc1a3c225 Mon Sep 17 00:00:00 2001 From: Jamie Curnow Date: Wed, 17 Feb 2021 20:55:12 +1000 Subject: [PATCH 053/757] Docs for a docker network --- docs/advanced-config/README.md | 52 ++++++++++++++++++++++++++++++++-- 1 file changed, 50 insertions(+), 2 deletions(-) diff --git a/docs/advanced-config/README.md b/docs/advanced-config/README.md index 962c34221..ebd9734be 100644 --- a/docs/advanced-config/README.md +++ b/docs/advanced-config/README.md @@ -1,5 +1,53 @@ # Advanced Configuration +## Best Practice: Use a docker network + +For those who have a few of their upstream services running in docker on the same docker +host as NPM, here's a trick to secure things a bit better. By creating a custom docker network, +you don't need to publish ports for your upstream services to all of the docker host's interfaces. + +Create a network, ie "scoobydoo": + +```bash +docker network create scoobydoo +``` + +Then add the following to the `docker-compose.yml` file for both NPM and any other +services running on this docker host: + +```yml +networks: + default: + external: + name: scoobydoo +``` + +Let's look at a Portainer example: + +```yml +version: '3' +services: + + portainer: + image: portainer/portainer + privileged: true + volumes: + - './data:/data' + - '/var/run/docker.sock:/var/run/docker.sock' + restart: always + +networks: + default: + external: + name: scoobydoo +``` + +Now in the NPM UI you can create a proxy host with `portainer` as the hostname, +and port `9000` as the port. Even though this port isn't listed in the docker-compose +file, it's "exposed" by the portainer docker image for you and not available on +the docker host outside of this docker network. The service name is used as the +hostname, so make sure your service names are unique when using the same network. + ## Docker Secrets This image supports the use of Docker secrets to import from file and keep sensitive usernames or passwords from being passed or preserved in plaintext. @@ -34,7 +82,7 @@ services: DB_MYSQL_PORT: 3306 DB_MYSQL_USER: "npm" # DB_MYSQL_PASSWORD: "npm" # use secret instead - DB_MYSQL_PASSWORD__FILE: /run/secrets/MYSQL_PWD + DB_MYSQL_PASSWORD__FILE: /run/secrets/MYSQL_PWD DB_MYSQL_NAME: "npm" # If you would rather use Sqlite uncomment this # and remove all DB_MYSQL_* lines above @@ -55,7 +103,7 @@ services: MYSQL_DATABASE: "npm" MYSQL_USER: "npm" # MYSQL_PASSWORD: "npm" # use secret instead - MYSQL_PASSWORD__FILE: /run/secrets/MYSQL_PWD + MYSQL_PASSWORD__FILE: /run/secrets/MYSQL_PWD volumes: - ./data/mysql:/var/lib/mysql ``` From 7e7032c051d5a6d78c985118899adff28000b2ca Mon Sep 17 00:00:00 2001 From: Orko Garai Date: Thu, 18 Feb 2021 05:40:49 +0000 Subject: [PATCH 054/757] Prevent activating nginx config after editing disabled proxy host --- backend/internal/proxy-host.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/backend/internal/proxy-host.js b/backend/internal/proxy-host.js index b26e05666..09b8bca51 100644 --- a/backend/internal/proxy-host.js +++ b/backend/internal/proxy-host.js @@ -189,6 +189,10 @@ const internalProxyHost = { expand: ['owner', 'certificate', 'access_list.[clients,items]'] }) .then((row) => { + if (!row.enabled) { + // No need to add nginx config if host is disabled + return row; + } // Configure nginx return internalNginx.configure(proxyHostModel, 'proxy_host', row) .then((new_meta) => { From 7f243e6f062e3039c2e06880d23edccb6e0e85ea Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Mar 2021 21:06:50 +0000 Subject: [PATCH 055/757] Bump prismjs from 1.21.0 to 1.23.0 in /docs Bumps [prismjs](https://github.com/PrismJS/prism) from 1.21.0 to 1.23.0. - [Release notes](https://github.com/PrismJS/prism/releases) - [Changelog](https://github.com/PrismJS/prism/blob/master/CHANGELOG.md) - [Commits](https://github.com/PrismJS/prism/compare/v1.21.0...v1.23.0) Signed-off-by: dependabot[bot] --- docs/yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/yarn.lock b/docs/yarn.lock index 0911a239a..1fe132ac4 100644 --- a/docs/yarn.lock +++ b/docs/yarn.lock @@ -7679,9 +7679,9 @@ pretty-time@^1.1.0: integrity sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA== prismjs@^1.13.0, prismjs@^1.20.0: - version "1.21.0" - resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.21.0.tgz#36c086ec36b45319ec4218ee164c110f9fc015a3" - integrity sha512-uGdSIu1nk3kej2iZsLyDoJ7e9bnPzIgY0naW/HdknGj61zScaprVEVGHrPoXqI+M9sP0NDnTK2jpkvmldpuqDw== + version "1.23.0" + resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.23.0.tgz#d3b3967f7d72440690497652a9d40ff046067f33" + integrity sha512-c29LVsqOaLbBHuIbsTxaKENh1N2EQBOHaWv7gkHN4dgRbxSREqDnDbtFJYdpPauS4YCplMSNCABQ6Eeor69bAA== optionalDependencies: clipboard "^2.0.0" From cfcb657cdeeefa8519a3ae7c0a79cbceefb594f0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 10 Mar 2021 08:19:41 +0000 Subject: [PATCH 056/757] Bump elliptic from 6.5.3 to 6.5.4 in /frontend Bumps [elliptic](https://github.com/indutny/elliptic) from 6.5.3 to 6.5.4. - [Release notes](https://github.com/indutny/elliptic/releases) - [Commits](https://github.com/indutny/elliptic/compare/v6.5.3...v6.5.4) Signed-off-by: dependabot[bot] --- frontend/yarn.lock | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/frontend/yarn.lock b/frontend/yarn.lock index d6896cd20..1ce091a9c 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -1551,10 +1551,10 @@ bluebird@^3.5.5: resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.4.0: - version "4.11.9" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" - integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: + version "4.12.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" + integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== bn.js@^5.1.1: version "5.1.2" @@ -1616,7 +1616,7 @@ braces@^3.0.1, braces@~3.0.2: dependencies: fill-range "^7.0.1" -brorand@^1.0.1: +brorand@^1.0.1, brorand@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= @@ -2630,17 +2630,17 @@ electron-to-chromium@^1.3.47: integrity sha512-67V62Z4CFOiAtox+o+tosGfVk0QX4DJgH609tjT8QymbJZVAI/jWnAthnr8c5hnRNziIRwkc9EMQYejiVz3/9Q== elliptic@^6.5.3: - version "6.5.3" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6" - integrity sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw== + version "6.5.4" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" + integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" + bn.js "^4.11.9" + brorand "^1.1.0" hash.js "^1.0.0" - hmac-drbg "^1.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" emoji-regex@^7.0.1: version "7.0.3" @@ -3516,7 +3516,7 @@ he@1.2.x, he@^1.2.0: resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== -hmac-drbg@^1.0.0: +hmac-drbg@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= @@ -4549,7 +4549,7 @@ minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== -minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: +minimalistic-crypto-utils@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= From 1e5d9dfbffccde643a55752db7e398478edd5806 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 10 Mar 2021 10:39:22 +0000 Subject: [PATCH 057/757] Bump elliptic from 6.5.3 to 6.5.4 in /docs Bumps [elliptic](https://github.com/indutny/elliptic) from 6.5.3 to 6.5.4. - [Release notes](https://github.com/indutny/elliptic/releases) - [Commits](https://github.com/indutny/elliptic/compare/v6.5.3...v6.5.4) Signed-off-by: dependabot[bot] --- docs/yarn.lock | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/docs/yarn.lock b/docs/yarn.lock index 0911a239a..91c294e95 100644 --- a/docs/yarn.lock +++ b/docs/yarn.lock @@ -2000,10 +2000,10 @@ bluebird@^3.1.1, bluebird@^3.5.5, bluebird@^3.7.2: resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.4.0: - version "4.11.9" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" - integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: + version "4.12.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" + integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== bn.js@^5.1.1, bn.js@^5.1.2: version "5.1.2" @@ -3675,17 +3675,17 @@ electron-to-chromium@^1.3.488, electron-to-chromium@^1.3.522: integrity sha512-67V62Z4CFOiAtox+o+tosGfVk0QX4DJgH609tjT8QymbJZVAI/jWnAthnr8c5hnRNziIRwkc9EMQYejiVz3/9Q== elliptic@^6.5.3: - version "6.5.3" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6" - integrity sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw== + version "6.5.4" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" + integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" + bn.js "^4.11.9" + brorand "^1.1.0" hash.js "^1.0.0" - hmac-drbg "^1.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" emoji-regex@^7.0.1: version "7.0.3" @@ -4727,7 +4727,7 @@ hex-color-regex@^1.1.0: resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== -hmac-drbg@^1.0.0, hmac-drbg@^1.0.1: +hmac-drbg@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= @@ -6354,7 +6354,7 @@ minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== -minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: +minimalistic-crypto-utils@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= From afbec0aca96fd860bbaaed0bebf9e5294e6ea325 Mon Sep 17 00:00:00 2001 From: Jamie Curnow Date: Thu, 11 Mar 2021 08:41:10 +1000 Subject: [PATCH 058/757] Fix CI, use docker for a yarn command --- Jenkinsfile | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 74dc0a1e0..e92574dd7 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -144,8 +144,12 @@ pipeline { } steps { dir(path: 'docs') { - sh 'yarn install' - sh 'yarn build' + sh '''docker run --rm \\ + -v "$(pwd):/app" \\ + -w /app \\ + node:latest \\ + sh -c "yarn install && yarn build" + ''' } dir(path: 'docs/.vuepress/dist') { From bb5fc58f3af7d82fbca19a513e405fd635dadd07 Mon Sep 17 00:00:00 2001 From: Jamie Curnow Date: Thu, 11 Mar 2021 09:29:08 +1000 Subject: [PATCH 059/757] Revert "Fix CI, use docker for a yarn command" This reverts commit afbec0aca96fd860bbaaed0bebf9e5294e6ea325. --- Jenkinsfile | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index e92574dd7..74dc0a1e0 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -144,12 +144,8 @@ pipeline { } steps { dir(path: 'docs') { - sh '''docker run --rm \\ - -v "$(pwd):/app" \\ - -w /app \\ - node:latest \\ - sh -c "yarn install && yarn build" - ''' + sh 'yarn install' + sh 'yarn build' } dir(path: 'docs/.vuepress/dist') { From 607fb83a1e5485dd1512b18cde33ffdea6103a80 Mon Sep 17 00:00:00 2001 From: Niels Bouma Date: Thu, 11 Mar 2021 13:33:42 +0100 Subject: [PATCH 060/757] Added transIP certbot dns plugin --- global/certbot-dns-plugins.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/global/certbot-dns-plugins.js b/global/certbot-dns-plugins.js index b055f848a..c0330c101 100644 --- a/global/certbot-dns-plugins.js +++ b/global/certbot-dns-plugins.js @@ -302,4 +302,14 @@ dns_eurodns_apiKey = mysecretpassword dns_eurodns_endpoint = https://rest-api.eurodns.com/user-api-gateway/proxy`, full_plugin_name: 'certbot-dns-eurodns:dns-eurodns', }, + //####################################################// + transip: { + display_name: 'TransIP', + package_name: 'certbot-dns-transip', + package_version: '0.3.3', + dependencies: '', + credentials: `dns_transip_username = my_username +dns_transip_key_file = /etc/letsencrypt/transip-rsa.key`, + full_plugin_name: 'certbot-dns-transip:dns-transip', + }, }; From bd0324dba00879f30fe53f3ef3d4b665c6ed93e0 Mon Sep 17 00:00:00 2001 From: Niels Bouma Date: Thu, 11 Mar 2021 15:44:20 +0100 Subject: [PATCH 061/757] credentials property naming for transip credentials property naming for transip --- global/certbot-dns-plugins.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/global/certbot-dns-plugins.js b/global/certbot-dns-plugins.js index c0330c101..f64c66e56 100644 --- a/global/certbot-dns-plugins.js +++ b/global/certbot-dns-plugins.js @@ -308,8 +308,8 @@ dns_eurodns_endpoint = https://rest-api.eurodns.com/user-api-gateway/proxy`, package_name: 'certbot-dns-transip', package_version: '0.3.3', dependencies: '', - credentials: `dns_transip_username = my_username -dns_transip_key_file = /etc/letsencrypt/transip-rsa.key`, + credentials: `certbot_dns_transip:dns_transip_username = my_username +certbot_dns_transip:dns_transip_key_file = /etc/letsencrypt/transip-rsa.key`, full_plugin_name: 'certbot-dns-transip:dns-transip', }, }; From 967e0dd98abca6002d8e08b58737ee7378a0e329 Mon Sep 17 00:00:00 2001 From: David Dosoudil <69464125+phantomski77@users.noreply.github.com> Date: Thu, 11 Mar 2021 21:59:26 +0000 Subject: [PATCH 062/757] Update README.md Secrets need both global and local per-service declaration, otherwise fails as "not found". Local configuration added for both app and db. --- docs/advanced-config/README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/advanced-config/README.md b/docs/advanced-config/README.md index ebd9734be..2c6cb7ce9 100644 --- a/docs/advanced-config/README.md +++ b/docs/advanced-config/README.md @@ -92,6 +92,8 @@ services: volumes: - ./data:/data - ./letsencrypt:/etc/letsencrypt + secrets: + - MYSQL_PWD depends_on: - db db: @@ -106,6 +108,9 @@ services: MYSQL_PASSWORD__FILE: /run/secrets/MYSQL_PWD volumes: - ./data/mysql:/var/lib/mysql + secrets: + - DB_ROOT_PWD + - MYSQL_PWD ``` From ead19915f3dc04c77cb64d44d2ddc0d9b823e1a3 Mon Sep 17 00:00:00 2001 From: ijaron Date: Fri, 12 Mar 2021 14:24:56 -0600 Subject: [PATCH 063/757] Add ACME-DNS certbot plugin uses https://github.com/pan-net-security/certbot-dns-acmedns in to implement ACME-DNS support. Requires file in /data with following layout # cat /data/acme-registration.json { "something.acme.com": { "username": "6e14735c-2c6a-447e-b63d-a23ac4438bd7", "password": "dd6gnYS-IxrQfDLbdPRX3hrFhS_SLrwbS0kSl_i8", "fulldomain": "3b750a0e-c627-423f-9966-4799c6a9533b.auth.example.org", "subdomain": "3b750a0e-c627-423f-9966-4799c6a9533b", "allowfrom": [] } } --- global/certbot-dns-plugins.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/global/certbot-dns-plugins.js b/global/certbot-dns-plugins.js index b055f848a..bd8f778b2 100644 --- a/global/certbot-dns-plugins.js +++ b/global/certbot-dns-plugins.js @@ -302,4 +302,14 @@ dns_eurodns_apiKey = mysecretpassword dns_eurodns_endpoint = https://rest-api.eurodns.com/user-api-gateway/proxy`, full_plugin_name: 'certbot-dns-eurodns:dns-eurodns', }, + //####################################################// + acmedns: { + display_name: 'ACME-DNS', + package_name: 'certbot-dns-acmedns', + package_version: '0.1.0', + dependencies: '', + credentials: `certbot_dns_acmedns:dns_acmedns_api_url = http://acmedns-server/ +certbot_dns_acmedns:dns_acmedns_registration_file = /data/acme-registration.json`, + full_plugin_name: 'certbot-dns-acmedns:dns-acmedns', + }, }; From 1c6425201515851e1bdbdff477a9740da3d89136 Mon Sep 17 00:00:00 2001 From: David Dosoudil <69464125+phantomski77@users.noreply.github.com> Date: Sat, 13 Mar 2021 12:40:47 +0000 Subject: [PATCH 064/757] Update _hsts.conf template I propose the change to max-age value of HSTS from 1 year to 2 years. --- backend/templates/_hsts.conf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/backend/templates/_hsts.conf b/backend/templates/_hsts.conf index cd8ec18ab..11aecf24c 100644 --- a/backend/templates/_hsts.conf +++ b/backend/templates/_hsts.conf @@ -1,8 +1,8 @@ {% if certificate and certificate_id > 0 -%} {% if ssl_forced == 1 or ssl_forced == true %} {% if hsts_enabled == 1 or hsts_enabled == true %} - # HSTS (ngx_http_headers_module is required) (31536000 seconds = 1 year) - add_header Strict-Transport-Security "max-age=31536000;{% if hsts_subdomains == 1 or hsts_subdomains == true -%} includeSubDomains;{% endif %} preload" always; + # HSTS (ngx_http_headers_module is required) (63072000 seconds = 2 years) + add_header Strict-Transport-Security "max-age=63072000;{% if hsts_subdomains == 1 or hsts_subdomains == true -%} includeSubDomains;{% endif %} preload" always; +{% endif %} {% endif %} {% endif %} -{% endif %} \ No newline at end of file From f29ff15167baf04ee0ef449031e73af7da641e5b Mon Sep 17 00:00:00 2001 From: Gurjinder Singh Date: Sun, 14 Mar 2021 05:13:26 -0400 Subject: [PATCH 065/757] Update README.md found it in config file was going to add option # Custom include /data/nginx/custom/http_top[.]conf; https://github.com/jc21/nginx-proxy-manager/blob/b7b808d98d787b25548265055d9f8621d31b580e/docker/rootfs/etc/nginx/nginx.conf#L72 --- docs/advanced-config/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/advanced-config/README.md b/docs/advanced-config/README.md index ebd9734be..49df73e89 100644 --- a/docs/advanced-config/README.md +++ b/docs/advanced-config/README.md @@ -132,6 +132,7 @@ NPM has the ability to include different custom configuration snippets in differ You can add your custom configuration snippet files at `/data/nginx/custom` as follow: - `/data/nginx/custom/root.conf`: Included at the very end of nginx.conf + - `/data/nginx/custom/http_top.conf`: Included at the top of the main http block - `/data/nginx/custom/http.conf`: Included at the end of the main http block - `/data/nginx/custom/stream.conf`: Included at the end of the main stream block - `/data/nginx/custom/server_proxy.conf`: Included at the end of every proxy server block From e2e31094aab872cfcbac977a2f5d8ef4ada7fee3 Mon Sep 17 00:00:00 2001 From: Jamie Curnow Date: Tue, 16 Mar 2021 11:32:38 +1000 Subject: [PATCH 066/757] Fix CI, no var needed for this --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 74dc0a1e0..39606e33b 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -222,7 +222,7 @@ pipeline { always { sh 'docker-compose down --rmi all --remove-orphans --volumes -t 30' sh 'echo Reverting ownership' - sh 'docker run --rm -v $(pwd):/data ${DOCKER_CI_TOOLS} chown -R $(id -u):$(id -g) /data' + sh 'docker run --rm -v $(pwd):/data jc21/ci-tools chown -R $(id -u):$(id -g) /data' } success { juxtapose event: 'success' From 9469b9c78a6102e73be03d75038e0861df2d313a Mon Sep 17 00:00:00 2001 From: Niels Bouma Date: Tue, 16 Mar 2021 12:57:26 +0100 Subject: [PATCH 067/757] fixed closing brace --- global/certbot-dns-plugins.js | 1 + 1 file changed, 1 insertion(+) diff --git a/global/certbot-dns-plugins.js b/global/certbot-dns-plugins.js index b18707187..2297b93f0 100644 --- a/global/certbot-dns-plugins.js +++ b/global/certbot-dns-plugins.js @@ -311,6 +311,7 @@ dns_eurodns_endpoint = https://rest-api.eurodns.com/user-api-gateway/proxy`, credentials: `certbot_dns_transip:dns_transip_username = my_username certbot_dns_transip:dns_transip_key_file = /etc/letsencrypt/transip-rsa.key`, full_plugin_name: 'certbot-dns-transip:dns-transip', + }, //####################################################// acmedns: { display_name: 'ACME-DNS', From d0a0c77556ad96901a22fbf64a6da69cf6cdd7a2 Mon Sep 17 00:00:00 2001 From: Niels Bouma Date: Tue, 16 Mar 2021 13:36:17 +0100 Subject: [PATCH 068/757] acmedns indentation fix --- global/certbot-dns-plugins.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/global/certbot-dns-plugins.js b/global/certbot-dns-plugins.js index 2297b93f0..d71191c1f 100644 --- a/global/certbot-dns-plugins.js +++ b/global/certbot-dns-plugins.js @@ -313,7 +313,7 @@ certbot_dns_transip:dns_transip_key_file = /etc/letsencrypt/transip-rsa.key`, full_plugin_name: 'certbot-dns-transip:dns-transip', }, //####################################################// - acmedns: { + acmedns: { display_name: 'ACME-DNS', package_name: 'certbot-dns-acmedns', package_version: '0.1.0', From b127f024685daaecc6d0f2ffbf1fd5289103c4c2 Mon Sep 17 00:00:00 2001 From: Jamie Curnow Date: Wed, 17 Mar 2021 08:56:57 +1000 Subject: [PATCH 069/757] Added upgrade steps --- docs/.vuepress/config.js | 1 + docs/README.md | 12 ++++++++++++ docs/upgrading/README.md | 11 +++++++++++ 3 files changed, 24 insertions(+) create mode 100644 docs/upgrading/README.md diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index d98ccdbf2..f3b735b8a 100644 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -47,6 +47,7 @@ module.exports = { ["/screenshots/", "Screenshots"], ["/setup/", "Setup Instructions"], ["/advanced-config/", "Advanced Configuration"], + ["/upgrading/", "Upgrading"], ["/faq/", "Frequently Asked Questions"], ["/third-party/", "Third Party"] ] diff --git a/docs/README.md b/docs/README.md index 11c17e39c..d19655c5c 100644 --- a/docs/README.md +++ b/docs/README.md @@ -97,3 +97,15 @@ Password: changeme ``` Immediately after logging in with this default user you will be asked to modify your details and change your password. + +5. Upgrading to new versions + +```bash +docker-compose pull +docker-compose up -d +``` + +This project will automatically update any databases or other requirements so you don't have to follow +any crazy instructions. These steps above will pull the latest updates and recreate the docker +containers. + diff --git a/docs/upgrading/README.md b/docs/upgrading/README.md new file mode 100644 index 000000000..0e78e8594 --- /dev/null +++ b/docs/upgrading/README.md @@ -0,0 +1,11 @@ +# Upgrading + +```bash +docker-compose pull +docker-compose up -d +``` + +This project will automatically update any databases or other requirements so you don't have to follow +any crazy instructions. These steps above will pull the latest updates and recreate the docker +containers. + From 3b104710d57d14a23f1cf7f3a334a9be5a8e2039 Mon Sep 17 00:00:00 2001 From: Jamie Curnow Date: Wed, 17 Mar 2021 14:53:57 +1000 Subject: [PATCH 070/757] Restrict redirect http code --- backend/schema/definitions.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/backend/schema/definitions.json b/backend/schema/definitions.json index f0acf3104..9895b87ee 100644 --- a/backend/schema/definitions.json +++ b/backend/schema/definitions.json @@ -180,10 +180,11 @@ } }, "http_code": { - "description": "HTTP Status Code", + "description": "Redirect HTTP Status Code", "example": 302, "type": "integer", - "minimum": 0 + "minimum": 300, + "maximum": 308 }, "scheme": { "description": "RFC Protocol", From ba5f0c212cba2a8d23f88d9f407f1df1f78b73ec Mon Sep 17 00:00:00 2001 From: Jamie Curnow Date: Wed, 17 Mar 2021 14:56:22 +1000 Subject: [PATCH 071/757] Bumped version --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 28d4740c3..6e7140713 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@



- + From 3c350394459f35c14a2a01a354147f0c8f11d995 Mon Sep 17 00:00:00 2001 From: Italo Borssatto Date: Thu, 18 Mar 2021 01:20:47 -0300 Subject: [PATCH 072/757] docker-compose Instructions for streams support A simple example to make the docker-compose configuration support stream configurations. --- docs/setup/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/setup/README.md b/docs/setup/README.md index 457674a59..1b22fe358 100644 --- a/docs/setup/README.md +++ b/docs/setup/README.md @@ -33,6 +33,8 @@ services: - '443:443' # Admin Web Port: - '81:81' + # Add any other Stream port you want to expose + # - '21:21' # FTP environment: # These are the settings to access your db DB_MYSQL_HOST: "db" From 847d71f72a14de4bab76ee6c7df500e4a64f8762 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 21 Mar 2021 00:12:10 +0000 Subject: [PATCH 073/757] Bump is-svg from 4.2.1 to 4.2.2 in /docs Bumps [is-svg](https://github.com/sindresorhus/is-svg) from 4.2.1 to 4.2.2. - [Release notes](https://github.com/sindresorhus/is-svg/releases) - [Commits](https://github.com/sindresorhus/is-svg/compare/v4.2.1...v4.2.2) Signed-off-by: dependabot[bot] --- docs/yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/yarn.lock b/docs/yarn.lock index 2f36c2173..5dce84563 100644 --- a/docs/yarn.lock +++ b/docs/yarn.lock @@ -5524,9 +5524,9 @@ is-svg@^3.0.0: html-comment-regex "^1.1.0" is-svg@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-4.2.1.tgz#095b496e345fec9211c2a7d5d021003e040d6f81" - integrity sha512-PHx3ANecKsKNl5y5+Jvt53Y4J7MfMpbNZkv384QNiswMKAWIbvcqbPz+sYbFKJI8Xv3be01GSFniPmoaP+Ai5A== + version "4.2.2" + resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-4.2.2.tgz#a4ea0f3f78dada7085db88f1e85b6f845626cfae" + integrity sha512-JlA7Mc7mfWjdxxTkJ094oUK9amGD7gQaj5xA/NCY0vlVvZ1stmj4VX+bRuwOMN93IHRZ2ctpPH/0FO6DqvQ5Rw== dependencies: html-comment-regex "^1.1.2" From c26ce2083f7225af7e660bad09247ae19ec20d2f Mon Sep 17 00:00:00 2001 From: Razvan Stoica Date: Sun, 21 Mar 2021 18:02:53 +0200 Subject: [PATCH 074/757] Add new details about how to run this image on a Raspberry Pi device. --- README.md | 61 ++++++++++++++++++++++++++++++++++++- docs/README.md | 72 -------------------------------------------- docs/setup/README.md | 66 ++++++++++++++++++++++++++++++++++++---- 3 files changed, 120 insertions(+), 79 deletions(-) diff --git a/README.md b/README.md index 6e7140713..2b28752f0 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ This project comes as a pre-built docker image that enables you to easily forward to your websites running at home or otherwise, including free SSL, without having to know too much about Nginx or Letsencrypt. -- [Quick Setup](https://nginxproxymanager.com#quick-setup) +- [Quick Setup](#quick-setup) - [Full Setup](https://nginxproxymanager.com/setup/) - [Screenshots](https://nginxproxymanager.com/screenshots/) @@ -52,6 +52,65 @@ I won't go in to too much detail here but here are the basics for someone new to 3. Configure your domain name details to point to your home, either with a static ip or a service like DuckDNS or [Amazon Route53](https://github.com/jc21/route53-ddns) 4. Use the Nginx Proxy Manager as your gateway to forward to your other web based services +## Quick Setup + +1. Install Docker and Docker-Compose + +- [Docker Install documentation](https://docs.docker.com/install/) +- [Docker-Compose Install documentation](https://docs.docker.com/compose/install/) + +2. Create a docker-compose.yml file similar to this: + +```yml +version: '3' +services: + app: + image: 'jc21/nginx-proxy-manager:latest' + ports: + - '80:80' + - '81:81' + - '443:443' + environment: + DB_MYSQL_HOST: "db" + DB_MYSQL_PORT: 3306 + DB_MYSQL_USER: "npm" + DB_MYSQL_PASSWORD: "npm" + DB_MYSQL_NAME: "npm" + volumes: + - ./data:/data + - ./letsencrypt:/etc/letsencrypt + db: + image: 'jc21/mariadb-aria:latest' + environment: + MYSQL_ROOT_PASSWORD: 'npm' + MYSQL_DATABASE: 'npm' + MYSQL_USER: 'npm' + MYSQL_PASSWORD: 'npm' + volumes: + - ./data/mysql:/var/lib/mysql +``` + +3. Bring up your stack + +```bash +docker-compose up -d +``` + +4. Log in to the Admin UI + +When your docker container is running, connect to it on port `81` for the admin interface. +Sometimes this can take a little bit because of the entropy of keys. + +[http://127.0.0.1:81](http://127.0.0.1:81) + +Default Admin User: +``` +Email: admin@example.com +Password: changeme +``` + +Immediately after logging in with this default user you will be asked to modify your details and change your password. + ## Contributors diff --git a/docs/README.md b/docs/README.md index d19655c5c..082bb05c1 100644 --- a/docs/README.md +++ b/docs/README.md @@ -37,75 +37,3 @@ footer: MIT Licensed | Copyright © 2016-present jc21.com

Configure other users to either view or manage their own hosts. Full access permissions are available.

- -### Quick Setup - -1. Install Docker and Docker-Compose - -- [Docker Install documentation](https://docs.docker.com/install/) -- [Docker-Compose Install documentation](https://docs.docker.com/compose/install/) - -2. Create a docker-compose.yml file similar to this: - -```yml -version: '3' -services: - app: - image: 'jc21/nginx-proxy-manager:latest' - ports: - - '80:80' - - '81:81' - - '443:443' - environment: - DB_MYSQL_HOST: "db" - DB_MYSQL_PORT: 3306 - DB_MYSQL_USER: "npm" - DB_MYSQL_PASSWORD: "npm" - DB_MYSQL_NAME: "npm" - volumes: - - ./data:/data - - ./letsencrypt:/etc/letsencrypt - db: - image: 'jc21/mariadb-aria:latest' - environment: - MYSQL_ROOT_PASSWORD: 'npm' - MYSQL_DATABASE: 'npm' - MYSQL_USER: 'npm' - MYSQL_PASSWORD: 'npm' - volumes: - - ./data/mysql:/var/lib/mysql -``` - -3. Bring up your stack - -```bash -docker-compose up -d -``` - -4. Log in to the Admin UI - -When your docker container is running, connect to it on port `81` for the admin interface. -Sometimes this can take a little bit because of the entropy of keys. - -[http://127.0.0.1:81](http://127.0.0.1:81) - -Default Admin User: - -``` -Email: admin@example.com -Password: changeme -``` - -Immediately after logging in with this default user you will be asked to modify your details and change your password. - -5. Upgrading to new versions - -```bash -docker-compose pull -docker-compose up -d -``` - -This project will automatically update any databases or other requirements so you don't have to follow -any crazy instructions. These steps above will pull the latest updates and recreate the docker -containers. - diff --git a/docs/setup/README.md b/docs/setup/README.md index 457674a59..baed07358 100644 --- a/docs/setup/README.md +++ b/docs/setup/README.md @@ -1,6 +1,6 @@ # Full Setup Instructions -### MySQL Database +## MySQL Database If you opt for the MySQL configuration you will have to provide the database server yourself. You can also use MariaDB. Here are the minimum supported versions: @@ -16,7 +16,7 @@ When using a `mariadb` database, the NPM configuration file should still use the ::: -### Running the App +## Running the App Via `docker-compose`: @@ -70,7 +70,7 @@ Then: docker-compose up -d ``` -### Running on Raspberry PI / ARM devices +## Running on Raspberry PI / ARM devices The docker images support the following architectures: - amd64 @@ -87,8 +87,62 @@ for a list of supported architectures and if you want one that doesn't exist, Also, if you don't know how to already, follow [this guide to install docker and docker-compose](https://manre-universe.net/how-to-run-docker-and-docker-compose-on-raspbian/) on Raspbian. +Via `docker-compose`: + +```yml +version: "3" +services: + app: + image: 'jc21/nginx-proxy-manager:latest' + restart: always + ports: + # Public HTTP Port: + - '8080:80' + # Public HTTPS Port: + - '4443:443' + # Admin Web Port: + - '8181:81' + environment: + # These are the settings to access your db + DB_MYSQL_HOST: "db" + DB_MYSQL_PORT: 3306 + DB_MYSQL_USER: "changeuser" + DB_MYSQL_PASSWORD: "changepass" + DB_MYSQL_NAME: "npm" + # If you would rather use Sqlite uncomment this + # and remove all DB_MYSQL_* lines above + # DB_SQLITE_FILE: "/data/database.sqlite" + # Uncomment this if IPv6 is not enabled on your host + # DISABLE_IPV6: 'true' + volumes: + - ./data/nginx-proxy-manager:/data + - ./letsencrypt:/etc/letsencrypt + depends_on: + - db + db: + image: ghcr.io/linuxserver/mariadb + restart: unless-stopped + environment: + PUID: 1001 + PGID: 1001 + TZ: "Europe/London" + MYSQL_ROOT_PASSWORD: "changeme" + MYSQL_DATABASE: "npm" + MYSQL_USER: "changeuser" + MYSQL_PASSWORD: "changepass" + volumes: + - ./data/mariadb:/config +``` + +_Please note, that `DB_MYSQL_*` environment variables will take precedent over `DB_SQLITE_*` var> + +Then: + +```bash +docker-compose up -d +``` -### Initial Run +## Initial Run After the app is running for the first time, the following will happen: @@ -99,7 +153,7 @@ After the app is running for the first time, the following will happen: This process can take a couple of minutes depending on your machine. -### Default Administrator User +## Default Administrator User ``` Email: admin@example.com @@ -108,7 +162,7 @@ Password: changeme Immediately after logging in with this default user you will be asked to modify your details and change your password. -### Configuration File +## Configuration File ::: warning From 61d99561c16046751fb59be6fbf88684b69b506a Mon Sep 17 00:00:00 2001 From: Razvan Stoica Date: Mon, 22 Mar 2021 09:50:25 +0200 Subject: [PATCH 075/757] Set ports to default value --- docs/setup/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/setup/README.md b/docs/setup/README.md index baed07358..08e9af963 100644 --- a/docs/setup/README.md +++ b/docs/setup/README.md @@ -97,11 +97,11 @@ services: restart: always ports: # Public HTTP Port: - - '8080:80' + - '80:80' # Public HTTPS Port: - - '4443:443' + - '443:443' # Admin Web Port: - - '8181:81' + - '81:81' environment: # These are the settings to access your db DB_MYSQL_HOST: "db" From 5fc704ccad3330090410bf2950604a597876fea5 Mon Sep 17 00:00:00 2001 From: RBXII3 <22587474+psharma04@users.noreply.github.com> Date: Tue, 23 Mar 2021 13:49:14 +1100 Subject: [PATCH 076/757] Add info about SSL --- frontend/js/i18n/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/js/i18n/messages.json b/frontend/js/i18n/messages.json index 3437b1098..64b26cc35 100644 --- a/frontend/js/i18n/messages.json +++ b/frontend/js/i18n/messages.json @@ -183,7 +183,7 @@ "delete": "Delete SSL Certificate", "delete-confirm": "Are you sure you want to delete this SSL Certificate? Any hosts using it will need to be updated later.", "help-title": "SSL Certificates", - "help-content": "TODO", + "help-content": "SSL certificates (correctly known as 'TLS Certificates') are a form of encryption key which allows your site to be encrypted for the end user. \mNPM uses a service called Let's Encrypt to issue SSL certificates for free.\nIf you have any sort of personal information, passwords, or sensitive data behind NPM, it's probably a good idea to use a certificate.\nNPM also supports DNS authentication for if you're not running your site facing the internet, or if you just want a wildcard certificate.", "other-certificate": "Certificate", "other-certificate-key": "Certificate Key", "other-intermediate-certificate": "Intermediate Certificate", From 63d3c2d06f8e958b5840952e196c0ae950ed5b8b Mon Sep 17 00:00:00 2001 From: THEGamingninja Date: Thu, 25 Mar 2021 14:59:07 -0400 Subject: [PATCH 077/757] Add More Access List Entries & Access List Help --- frontend/js/app/nginx/access/form.ejs | 18 +++++++++ frontend/js/app/nginx/access/form.js | 39 ++++++++++++-------- frontend/js/app/nginx/access/form/client.ejs | 2 +- frontend/js/i18n/messages.json | 4 +- frontend/scss/tabler-extra.scss | 5 +++ 5 files changed, 51 insertions(+), 17 deletions(-) diff --git a/frontend/js/app/nginx/access/form.ejs b/frontend/js/app/nginx/access/form.ejs index b22b99a3b..9f6fe800d 100644 --- a/frontend/js/app/nginx/access/form.ejs +++ b/frontend/js/app/nginx/access/form.ejs @@ -46,6 +46,12 @@
+

+ Basic Authorization via + + Nginx HTTP Basic Authentication + +

@@ -60,10 +66,19 @@
+
+ +
+

+ IP Address Whitelist/Blacklist via + + Nginx HTTP Access + +

@@ -78,6 +93,9 @@
Note that the allow and deny directives will be applied in the order they are defined.
+
+ +
diff --git a/frontend/js/app/nginx/access/form.js b/frontend/js/app/nginx/access/form.js index 92581f808..bb0755481 100644 --- a/frontend/js/app/nginx/access/form.js +++ b/frontend/js/app/nginx/access/form.js @@ -25,7 +25,9 @@ module.exports = Mn.View.extend({ form: 'form', buttons: '.modal-footer button', cancel: 'button.cancel', - save: 'button.save' + save: 'button.save', + access_add: 'button.access_add', + auth_add: 'button.auth_add' }, regions: { @@ -105,6 +107,24 @@ module.exports = Mn.View.extend({ alert(err.message); this.ui.buttons.prop('disabled', false).removeClass('btn-disabled'); }); + }, + 'click @ui.access_add': function (e) { + e.preventDefault(); + + let clients = this.model.get('clients'); + clients.push({}); + this.showChildView('clients_region', new ClientsView({ + collection: new Backbone.Collection(clients) + })); + }, + 'click @ui.auth_add': function (e) { + e.preventDefault(); + + let items = this.model.get('items'); + items.push({}); + this.showChildView('items_region', new ItemsView({ + collection: new Backbone.Collection(items) + })); } }, @@ -112,20 +132,9 @@ module.exports = Mn.View.extend({ let items = this.model.get('items'); let clients = this.model.get('clients'); - // Add empty items to the end of the list. This is cheating but hey I don't have the time to do it right - let items_to_add = 5 - items.length; - if (items_to_add) { - for (let i = 0; i < items_to_add; i++) { - items.push({}); - } - } - - let clients_to_add = 4 - clients.length; - if (clients_to_add) { - for (let i = 0; i < clients_to_add; i++) { - clients.push({}); - } - } + // Ensure at least one field is shown initally + if (!items.length) items.push({}); + if (!clients.length) clients.push({}); this.showChildView('items_region', new ItemsView({ collection: new Backbone.Collection(items) diff --git a/frontend/js/app/nginx/access/form/client.ejs b/frontend/js/app/nginx/access/form/client.ejs index 20436e8b0..6b767b83f 100644 --- a/frontend/js/app/nginx/access/form/client.ejs +++ b/frontend/js/app/nginx/access/form/client.ejs @@ -8,6 +8,6 @@
- +
diff --git a/frontend/js/i18n/messages.json b/frontend/js/i18n/messages.json index 3437b1098..d1f79b3cb 100644 --- a/frontend/js/i18n/messages.json +++ b/frontend/js/i18n/messages.json @@ -210,7 +210,9 @@ "access": "Access", "satisfy": "Satisfy", "satisfy-any": "Satisfy Any", - "pass-auth": "Pass Auth to Host" + "pass-auth": "Pass Auth to Host", + "access-add": "Add", + "auth-add": "Add" }, "users": { "title": "Users", diff --git a/frontend/scss/tabler-extra.scss b/frontend/scss/tabler-extra.scss index cb2dcbb6f..3ddd0ed4d 100644 --- a/frontend/scss/tabler-extra.scss +++ b/frontend/scss/tabler-extra.scss @@ -25,6 +25,11 @@ $pink: #f66d9b; padding: 0; } +/* For some reason this class doesn't have 'display: flex' when it should. https://preview.tabler.io/docs/buttons.html#list-of-buttons */ +.btn-list { + display: flex; +} + /* Teal Outline Buttons */ .btn-outline-teal { color: $teal; From 0d25dc1aaa555cca4df3991f768ed007a6d332e1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 31 Mar 2021 14:25:26 +0000 Subject: [PATCH 078/757] Bump y18n from 4.0.0 to 4.0.1 in /backend Bumps [y18n](https://github.com/yargs/y18n) from 4.0.0 to 4.0.1. - [Release notes](https://github.com/yargs/y18n/releases) - [Changelog](https://github.com/yargs/y18n/blob/master/CHANGELOG.md) - [Commits](https://github.com/yargs/y18n/commits) Signed-off-by: dependabot[bot] --- backend/yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/backend/yarn.lock b/backend/yarn.lock index 8152980b0..84d722374 100644 --- a/backend/yarn.lock +++ b/backend/yarn.lock @@ -3717,9 +3717,9 @@ xtend@^4.0.0: integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== y18n@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" - integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== + version "4.0.1" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4" + integrity sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ== yallist@^3.0.0, yallist@^3.0.3: version "3.1.1" From 096b714117f9ec248020bd7e57badca22378e363 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 31 Mar 2021 14:28:11 +0000 Subject: [PATCH 079/757] Bump y18n from 4.0.0 to 4.0.1 in /test Bumps [y18n](https://github.com/yargs/y18n) from 4.0.0 to 4.0.1. - [Release notes](https://github.com/yargs/y18n/releases) - [Changelog](https://github.com/yargs/y18n/blob/master/CHANGELOG.md) - [Commits](https://github.com/yargs/y18n/commits) Signed-off-by: dependabot[bot] --- test/yarn.lock | 294 +++++++++++++++++++++++++++---------------------- 1 file changed, 163 insertions(+), 131 deletions(-) diff --git a/test/yarn.lock b/test/yarn.lock index c1fe005bc..925078304 100644 --- a/test/yarn.lock +++ b/test/yarn.lock @@ -262,6 +262,11 @@ asynckit@^0.4.0: resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= +at-least-node@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + aws-sign2@~0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" @@ -289,6 +294,11 @@ binary-extensions@^2.0.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.1.0.tgz#30fa40c9e7fe07dbc895678cd287024dea241dd9" integrity sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ== +blob-util@2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/blob-util/-/blob-util-2.0.2.tgz#3b4e3c281111bb7f11128518006cdc60b403a1eb" + integrity sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ== + bluebird@^3.7.2: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" @@ -429,13 +439,13 @@ cli-cursor@^2.0.0, cli-cursor@^2.1.0: dependencies: restore-cursor "^2.0.0" -cli-table3@~0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.5.1.tgz#0252372d94dfc40dbd8df06005f48f31f656f202" - integrity sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw== +cli-table3@~0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.0.tgz#b7b1bc65ca8e7b5cef9124e13dc2b21e2ce4faee" + integrity sha512-gnB85c3MGC7Nm9I/FkiasNBOKjOiO1RNuXXarQms37q4QMpWdlbBgD/VnOStA2faG1dpXMv31RFApjX1/QdgWQ== dependencies: object-assign "^4.1.0" - string-width "^2.1.1" + string-width "^4.2.0" optionalDependencies: colors "^1.1.2" @@ -497,10 +507,10 @@ combined-stream@^1.0.6, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" -commander@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" - integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== +commander@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" + integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== common-tags@^1.8.0: version "1.8.0" @@ -527,18 +537,7 @@ core-util-is@1.0.2, core-util-is@~1.0.0: resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= -cross-spawn@^6.0.0: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - -cross-spawn@^7.0.2: +cross-spawn@^7.0.0, cross-spawn@^7.0.2: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -567,10 +566,10 @@ cypress-plugin-retries@^1.5.2: dependencies: chalk "^3.0.0" -cypress@^4.12.1: - version "4.12.1" - resolved "https://registry.yarnpkg.com/cypress/-/cypress-4.12.1.tgz#0ead1b9f4c0917d69d8b57f996b6e01fe693b6ec" - integrity sha512-9SGIPEmqU8vuRA6xst2CMTYd9sCFCxKSzrHt0wr+w2iAQMCIIsXsQ5Gplns1sT6LDbZcmLv6uehabAOl3fhc9Q== +cypress@^5.6.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/cypress/-/cypress-5.6.0.tgz#6781755c3ddfd644ce3179fcd7389176c0c82280" + integrity sha512-cs5vG3E2JLldAc16+5yQxaVRLLqMVya5RlrfPWkC72S5xrlHFdw7ovxPb61s4wYweROKTyH01WQc2PFzwwVvyQ== dependencies: "@cypress/listr-verbose-renderer" "^0.4.1" "@cypress/request" "^2.88.5" @@ -578,34 +577,35 @@ cypress@^4.12.1: "@types/sinonjs__fake-timers" "^6.0.1" "@types/sizzle" "^2.3.2" arch "^2.1.2" + blob-util "2.0.2" bluebird "^3.7.2" cachedir "^2.3.0" - chalk "^2.4.2" + chalk "^4.1.0" check-more-types "^2.24.0" - cli-table3 "~0.5.1" - commander "^4.1.1" + cli-table3 "~0.6.0" + commander "^5.1.0" common-tags "^1.8.0" debug "^4.1.1" eventemitter2 "^6.4.2" - execa "^1.0.0" + execa "^4.0.2" executable "^4.1.1" extract-zip "^1.7.0" - fs-extra "^8.1.0" + fs-extra "^9.0.1" getos "^3.2.1" is-ci "^2.0.0" is-installed-globally "^0.3.2" lazy-ass "^1.6.0" listr "^0.14.3" lodash "^4.17.19" - log-symbols "^3.0.0" + log-symbols "^4.0.0" minimist "^1.2.5" moment "^2.27.0" ospath "^1.2.2" - pretty-bytes "^5.3.0" + pretty-bytes "^5.4.1" ramda "~0.26.1" request-progress "^3.0.0" - supports-color "^7.1.0" - tmp "~0.1.0" + supports-color "^7.2.0" + tmp "~0.2.1" untildify "^4.0.0" url "^0.11.0" yauzl "^2.10.0" @@ -695,6 +695,11 @@ emoji-regex@^7.0.1: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + end-of-stream@^1.1.0: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" @@ -929,18 +934,20 @@ eventemitter2@^6.4.2: resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-6.4.3.tgz#35c563619b13f3681e7eb05cbdaf50f56ba58820" integrity sha512-t0A2msp6BzOf+QAcI6z9XMktLj52OjGQg+8SJH6v5+3uxNpWYRR3wQmfA+6xtMU9kOC59qk9licus5dYcrYkMQ== -execa@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" +execa@^4.0.2: + version "4.1.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" + integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" executable@^4.1.1: version "4.1.1" @@ -1085,14 +1092,15 @@ form-data@~2.3.2: combined-stream "^1.0.6" mime-types "^2.1.12" -fs-extra@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" - integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== +fs-extra@^9.0.1: + version "9.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== dependencies: + at-least-node "^1.0.0" graceful-fs "^4.2.0" - jsonfile "^4.0.0" - universalify "^0.1.0" + jsonfile "^6.0.1" + universalify "^2.0.0" fs.realpath@^1.0.0: version "1.0.0" @@ -1119,10 +1127,10 @@ get-caller-file@^2.0.1: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-stream@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== +get-stream@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== dependencies: pump "^3.0.0" @@ -1251,6 +1259,11 @@ http-signature@~1.2.0: jsprim "^1.2.2" sshpk "^1.7.0" +human-signals@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" + integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== + iconv-lite@0.2.11: version "0.2.11" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.2.11.tgz#1ce60a3a57864a292d1321ff4609ca4bb965adc8" @@ -1358,6 +1371,11 @@ is-fullwidth-code-point@^2.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" @@ -1429,6 +1447,11 @@ is-stream@^1.1.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= +is-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" + integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== + is-string@^1.0.4, is-string@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" @@ -1446,6 +1469,11 @@ is-typedarray@~1.0.0: resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= +is-unicode-supported@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" + integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== + isarray@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" @@ -1529,10 +1557,12 @@ json-stringify-safe@~5.0.1: resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" optionalDependencies: graceful-fs "^4.1.6" @@ -1650,7 +1680,7 @@ lodash@^4.17.19: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b" integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ== -log-symbols@3.0.0, log-symbols@^3.0.0: +log-symbols@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4" integrity sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ== @@ -1664,6 +1694,14 @@ log-symbols@^1.0.2: dependencies: chalk "^1.0.0" +log-symbols@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" + integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== + dependencies: + chalk "^4.1.0" + is-unicode-supported "^0.1.0" + log-update@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/log-update/-/log-update-2.3.0.tgz#88328fd7d1ce7938b29283746f0b1bc126b24708" @@ -1682,6 +1720,11 @@ md5@^2.1.0: crypt "~0.0.1" is-buffer "~1.1.1" +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + mime-db@1.42.0: version "1.42.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.42.0.tgz#3e252907b4c7adb906597b4b65636272cf9e7bac" @@ -1699,6 +1742,11 @@ mimic-fn@^1.0.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + minimatch@3.0.4, minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" @@ -1792,22 +1840,17 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= +npm-run-path@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== dependencies: - path-key "^2.0.0" + path-key "^3.0.0" number-is-nan@^1.0.0: version "1.0.1" @@ -1863,6 +1906,13 @@ onetime@^2.0.0: dependencies: mimic-fn "^1.0.0" +onetime@^5.1.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + optionator@^0.8.1: version "0.8.3" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" @@ -1892,11 +1942,6 @@ ospath@^1.2.2: resolved "https://registry.yarnpkg.com/ospath/-/ospath-1.2.2.tgz#1276639774a3f8ef2572f7fe4280e0ea4550c07b" integrity sha1-EnZjl3Sj+O8lcvf+QoDg6kVQwHs= -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= - p-limit@^2.0.0: version "2.2.2" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.2.tgz#61279b67721f5287aa1c13a9a7fbbc48c9291b1e" @@ -1957,12 +2002,7 @@ path-is-absolute@^1.0.0: resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= -path-key@^2.0.0, path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= - -path-key@^3.1.0: +path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== @@ -1997,10 +2037,10 @@ prelude-ls@~1.1.2: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= -pretty-bytes@^5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.3.0.tgz#f2849e27db79fb4d6cfe24764fc4134f165989f2" - integrity sha512-hjGrh+P926p4R4WbaB6OckyRtO0F0/lQBiT+0gnxjV+5kjPBrfVBFCsCLbMqVQeydvIoouYTCmmEURiH3R1Bdg== +pretty-bytes@^5.4.1: + version "5.6.0" + resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" + integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== process-nextick-args@~2.0.0: version "2.0.1" @@ -2143,10 +2183,10 @@ rimraf@2.6.3: dependencies: glob "^7.1.3" -rimraf@^2.6.3: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== +rimraf@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== dependencies: glob "^7.1.3" @@ -2182,11 +2222,6 @@ sax@0.5.x: resolved "https://registry.yarnpkg.com/sax/-/sax-0.5.8.tgz#d472db228eb331c2506b0e8c15524adb939d12c1" integrity sha1-1HLbIo6zMcJQaw6MFVJK25OdEsE= -semver@^5.5.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - semver@^7.2.1: version "7.3.2" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" @@ -2204,13 +2239,6 @@ set-blocking@^2.0.0: resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= - dependencies: - shebang-regex "^1.0.0" - shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" @@ -2218,17 +2246,12 @@ shebang-command@^2.0.0: dependencies: shebang-regex "^3.0.0" -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= - shebang-regex@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -signal-exit@^3.0.0, signal-exit@^3.0.2: +signal-exit@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= @@ -2305,6 +2328,15 @@ string-width@^3.0.0, string-width@^3.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" +string-width@^4.2.0: + version "4.2.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" + integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" + string.prototype.trimend@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913" @@ -2372,10 +2404,10 @@ strip-ansi@^6.0.0: dependencies: ansi-regex "^5.0.0" -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== strip-json-comments@3.0.1: version "3.0.1" @@ -2406,6 +2438,13 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" +supports-color@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + symbol-observable@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" @@ -2431,12 +2470,12 @@ throttleit@^1.0.0: resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c" integrity sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw= -tmp@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.1.0.tgz#ee434a4e22543082e294ba6201dcc6eafefa2877" - integrity sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw== +tmp@~0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" + integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== dependencies: - rimraf "^2.6.3" + rimraf "^3.0.0" to-regex-range@^5.0.1: version "5.0.1" @@ -2499,10 +2538,10 @@ underscore@1.7.0: resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.7.0.tgz#6bbaf0877500d36be34ecaa584e0db9fef035209" integrity sha1-a7rwh3UA02vjTsqlhODbn+8DUgk= -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== +universalify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== untildify@^4.0.0: version "4.0.0" @@ -2560,13 +2599,6 @@ which@2.0.2, which@^2.0.1: dependencies: isexe "^2.0.0" -which@^1.2.9: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - wide-align@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" @@ -2632,9 +2664,9 @@ xmlbuilder@>=0.4.2: integrity sha512-Eux0i2QdDYKbdbA6AM6xE4m6ZTZr4G4xF9kahI2ukSEMCzwce2eX9WlTI5J3s+NU7hpasFsr8hWIONae7LluAQ== y18n@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" - integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== + version "4.0.1" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4" + integrity sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ== yaml@0.2.3: version "0.2.3" From 48d421ba28d67353c4d8e25655d94263e1b597b8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 31 Mar 2021 17:28:00 +0000 Subject: [PATCH 080/757] Bump y18n from 4.0.0 to 4.0.1 in /docs Bumps [y18n](https://github.com/yargs/y18n) from 4.0.0 to 4.0.1. - [Release notes](https://github.com/yargs/y18n/releases) - [Changelog](https://github.com/yargs/y18n/blob/master/CHANGELOG.md) - [Commits](https://github.com/yargs/y18n/commits) Signed-off-by: dependabot[bot] --- docs/yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/yarn.lock b/docs/yarn.lock index 2f36c2173..66aceb905 100644 --- a/docs/yarn.lock +++ b/docs/yarn.lock @@ -10264,9 +10264,9 @@ xtend@^4.0.0, xtend@^4.0.2, xtend@~4.0.1: integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== y18n@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" - integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== + version "4.0.1" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4" + integrity sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ== yallist@^2.1.2: version "2.1.2" From f056b9dc7f94118b5d6ccb54661f466c2a0e3566 Mon Sep 17 00:00:00 2001 From: Daniel Porter Date: Tue, 13 Apr 2021 19:59:49 +0100 Subject: [PATCH 081/757] Move 'Force SSL' definitions to host root configuration This fixes issues with these settings not applying to custom locations defined under hosts. --- backend/templates/dead_host.conf | 2 +- backend/templates/proxy_host.conf | 2 +- backend/templates/redirection_host.conf | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/backend/templates/dead_host.conf b/backend/templates/dead_host.conf index da282a12b..be53f6dff 100644 --- a/backend/templates/dead_host.conf +++ b/backend/templates/dead_host.conf @@ -5,6 +5,7 @@ server { {% include "_listen.conf" %} {% include "_certificates.conf" %} {% include "_hsts.conf" %} +{% include "_forced_ssl.conf" %} access_log /data/logs/dead_host-{{ id }}.log standard; @@ -12,7 +13,6 @@ server { {% if use_default_location %} location / { -{% include "_forced_ssl.conf" %} {% include "_hsts.conf" %} return 404; } diff --git a/backend/templates/proxy_host.conf b/backend/templates/proxy_host.conf index 17a521078..738cdcb71 100644 --- a/backend/templates/proxy_host.conf +++ b/backend/templates/proxy_host.conf @@ -11,6 +11,7 @@ server { {% include "_assets.conf" %} {% include "_exploits.conf" %} {% include "_hsts.conf" %} +{% include "_forced_ssl.conf" %} access_log /data/logs/proxy_host-{{ id }}.log proxy; @@ -43,7 +44,6 @@ server { {% endif %} -{% include "_forced_ssl.conf" %} {% include "_hsts.conf" %} {% if allow_websocket_upgrade == 1 or allow_websocket_upgrade == true %} diff --git a/backend/templates/redirection_host.conf b/backend/templates/redirection_host.conf index 55e7280f9..f42e146bd 100644 --- a/backend/templates/redirection_host.conf +++ b/backend/templates/redirection_host.conf @@ -7,6 +7,7 @@ server { {% include "_assets.conf" %} {% include "_exploits.conf" %} {% include "_hsts.conf" %} +{% include "_forced_ssl.conf" %} access_log /data/logs/redirection_host-{{ id }}.log standard; @@ -14,7 +15,6 @@ server { {% if use_default_location %} location / { -{% include "_forced_ssl.conf" %} {% include "_hsts.conf" %} {% if preserve_path == 1 or preserve_path == true %} From 421934efedd12ba047f78243fb25388a613e29f8 Mon Sep 17 00:00:00 2001 From: Daniel Porter Date: Tue, 13 Apr 2021 20:04:35 +0100 Subject: [PATCH 082/757] Move 'Allow Websockets' definitions to host root configuration This fixes issues with these settings not applying to custom locations defined under hosts. --- backend/templates/proxy_host.conf | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/backend/templates/proxy_host.conf b/backend/templates/proxy_host.conf index 738cdcb71..e547968f0 100644 --- a/backend/templates/proxy_host.conf +++ b/backend/templates/proxy_host.conf @@ -13,6 +13,13 @@ server { {% include "_hsts.conf" %} {% include "_forced_ssl.conf" %} +{% if allow_websocket_upgrade == 1 or allow_websocket_upgrade == true %} +proxy_set_header Upgrade $http_upgrade; +proxy_set_header Connection $http_connection; +proxy_http_version 1.1; +{% endif %} + + access_log /data/logs/proxy_host-{{ id }}.log proxy; {{ advanced_config }} @@ -46,12 +53,6 @@ server { {% include "_hsts.conf" %} - {% if allow_websocket_upgrade == 1 or allow_websocket_upgrade == true %} - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection $http_connection; - proxy_http_version 1.1; - {% endif %} - # Proxy! include conf.d/include/proxy.conf; } From 691063545cf08bf0090a135e0dbf382d14953c3e Mon Sep 17 00:00:00 2001 From: Bastian Stegmann Date: Thu, 15 Apr 2021 09:48:08 +0200 Subject: [PATCH 083/757] Updated credentials for netcup dns challange The netcup DNS challenge currently fails because the credentials are not found. --- global/certbot-dns-plugins.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/global/certbot-dns-plugins.js b/global/certbot-dns-plugins.js index d71191c1f..38329f051 100644 --- a/global/certbot-dns-plugins.js +++ b/global/certbot-dns-plugins.js @@ -208,9 +208,9 @@ dns_luadns_token = 0123456789abcdef0123456789abcdef`, package_name: 'certbot-dns-netcup', package_version: '1.0.0', dependencies: '', - credentials: `dns_netcup_customer_id = 123456 -dns_netcup_api_key = 0123456789abcdef0123456789abcdef01234567 -dns_netcup_api_password = abcdef0123456789abcdef01234567abcdef0123`, + credentials: `certbot_dns_netcup:dns_netcup_customer_id = 123456 +certbot_dns_netcup:dns_netcup_api_key = 0123456789abcdef0123456789abcdef01234567 +certbot_dns_netcup:dns_netcup_api_password = abcdef0123456789abcdef01234567abcdef0123`, full_plugin_name: 'certbot-dns-netcup:dns-netcup', }, //####################################################// From 30fa63b379450bce2b09f606327603a888040afe Mon Sep 17 00:00:00 2001 From: Jonas Leder Date: Fri, 23 Apr 2021 21:25:57 +0200 Subject: [PATCH 084/757] don't fix the select height, to fix multiline select --- frontend/scss/selectize.scss | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/frontend/scss/selectize.scss b/frontend/scss/selectize.scss index b6b3ac219..e12d5b694 100644 --- a/frontend/scss/selectize.scss +++ b/frontend/scss/selectize.scss @@ -190,3 +190,7 @@ .selectize-dropdown .optgroup:first-child { border-top: 0 none; } + +.custom-select { + height: auto; +} From 389fd158ad2b41375c7187766ed9949c91db2fd7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Heinrichs?= Date: Sat, 24 Apr 2021 01:09:01 +0200 Subject: [PATCH 085/757] allows hostname instead of ip for streams --- .../20210423103500_stream_domain.js | 40 +++++++++++++++++++ backend/schema/endpoints/streams.json | 19 ++++----- backend/templates/stream.conf | 4 +- docker/rootfs/etc/services.d/frontend/run | 1 + docker/rootfs/etc/services.d/manager/run | 1 + frontend/js/app/nginx/stream/form.ejs | 4 +- frontend/js/app/nginx/stream/form.js | 6 +-- frontend/js/app/nginx/stream/list/item.ejs | 2 +- frontend/js/i18n/messages.json | 2 +- frontend/js/models/stream.js | 2 +- 10 files changed, 60 insertions(+), 21 deletions(-) create mode 100644 backend/migrations/20210423103500_stream_domain.js diff --git a/backend/migrations/20210423103500_stream_domain.js b/backend/migrations/20210423103500_stream_domain.js new file mode 100644 index 000000000..8e415e71d --- /dev/null +++ b/backend/migrations/20210423103500_stream_domain.js @@ -0,0 +1,40 @@ +const migrate_name = 'scream-domain'; +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('stream', (table) => { + table.renameColumn('forward_ip', 'forwarding_host'); + }) + .then(function () { + logger.info('[' + migrate_name + '] stream Table altered'); + }); +}; + +/** + * Undo Migrate + * + * @param {Object} knex + * @param {Promise} Promise + * @returns {Promise} + */ +exports.down = function (knex/*, Promise*/) { + logger.info('[' + migrate_name + '] Migrating Down...'); + + return knex.schema.table('stream', (table) => { + table.renameColumn('forwarding_host', 'forward_ip'); + }) + .then(function () { + logger.info('[' + migrate_name + '] stream Table altered'); + }); +}; diff --git a/backend/schema/endpoints/streams.json b/backend/schema/endpoints/streams.json index e93e1ff30..4083faa32 100644 --- a/backend/schema/endpoints/streams.json +++ b/backend/schema/endpoints/streams.json @@ -20,9 +20,10 @@ "minimum": 1, "maximum": 65535 }, - "forward_ip": { + "forwarding_host": { "type": "string", - "format": "ipv4" + "minLength": 1, + "maxLength": 255 }, "forwarding_port": { "type": "integer", @@ -55,8 +56,8 @@ "incoming_port": { "$ref": "#/definitions/incoming_port" }, - "forward_ip": { - "$ref": "#/definitions/forward_ip" + "forwarding_host": { + "$ref": "#/definitions/forwarding_host" }, "forwarding_port": { "$ref": "#/definitions/forwarding_port" @@ -107,15 +108,15 @@ "additionalProperties": false, "required": [ "incoming_port", - "forward_ip", + "forwarding_host", "forwarding_port" ], "properties": { "incoming_port": { "$ref": "#/definitions/incoming_port" }, - "forward_ip": { - "$ref": "#/definitions/forward_ip" + "forwarding_host": { + "$ref": "#/definitions/forwarding_host" }, "forwarding_port": { "$ref": "#/definitions/forwarding_port" @@ -154,8 +155,8 @@ "incoming_port": { "$ref": "#/definitions/incoming_port" }, - "forward_ip": { - "$ref": "#/definitions/forward_ip" + "forwarding_host": { + "$ref": "#/definitions/forwarding_host" }, "forwarding_port": { "$ref": "#/definitions/forwarding_port" diff --git a/backend/templates/stream.conf b/backend/templates/stream.conf index 05f687720..76159a646 100644 --- a/backend/templates/stream.conf +++ b/backend/templates/stream.conf @@ -12,7 +12,7 @@ server { #listen [::]:{{ incoming_port }}; {% endif %} - proxy_pass {{ forward_ip }}:{{ forwarding_port }}; + proxy_pass {{ forwarding_host }}:{{ forwarding_port }}; # Custom include /data/nginx/custom/server_stream[.]conf; @@ -27,7 +27,7 @@ server { {% else -%} #listen [::]:{{ incoming_port }} udp; {% endif %} - proxy_pass {{ forward_ip }}:{{ forwarding_port }}; + proxy_pass {{ forwarding_host }}:{{ forwarding_port }}; # Custom include /data/nginx/custom/server_stream[.]conf; diff --git a/docker/rootfs/etc/services.d/frontend/run b/docker/rootfs/etc/services.d/frontend/run index 32558d98b..a666d53ef 100755 --- a/docker/rootfs/etc/services.d/frontend/run +++ b/docker/rootfs/etc/services.d/frontend/run @@ -4,6 +4,7 @@ if [ "$DEVELOPMENT" == "true" ]; then cd /app/frontend || exit 1 + # If yarn install fails: add --verbose --network-concurrency 1 yarn install yarn watch else diff --git a/docker/rootfs/etc/services.d/manager/run b/docker/rootfs/etc/services.d/manager/run index ba0fb05e5..e365f4fbb 100755 --- a/docker/rootfs/etc/services.d/manager/run +++ b/docker/rootfs/etc/services.d/manager/run @@ -6,6 +6,7 @@ cd /app || echo if [ "$DEVELOPMENT" == "true" ]; then cd /app || exit 1 + # If yarn install fails: add --verbose --network-concurrency 1 yarn install node --max_old_space_size=250 --abort_on_uncaught_exception node_modules/nodemon/bin/nodemon.js else diff --git a/frontend/js/app/nginx/stream/form.ejs b/frontend/js/app/nginx/stream/form.ejs index b0a72e481..a95e61c48 100644 --- a/frontend/js/app/nginx/stream/form.ejs +++ b/frontend/js/app/nginx/stream/form.ejs @@ -14,8 +14,8 @@
- - + +
diff --git a/frontend/js/app/nginx/stream/form.js b/frontend/js/app/nginx/stream/form.js index 2133c3da4..3a4f1ea25 100644 --- a/frontend/js/app/nginx/stream/form.js +++ b/frontend/js/app/nginx/stream/form.js @@ -13,7 +13,7 @@ module.exports = Mn.View.extend({ ui: { form: 'form', - forward_ip: 'input[name="forward_ip"]', + forwarding_host: 'input[name="forwarding_host"]', type_error: '.forward-type-error', buttons: '.modal-footer button', switches: '.custom-switch-input', @@ -77,10 +77,6 @@ module.exports = Mn.View.extend({ }, onRender: function () { - this.ui.forward_ip.mask('099.099.099.099', { - clearIfNotMatch: true, - placeholder: '000.000.000.000' - }); }, initialize: function (options) { diff --git a/frontend/js/app/nginx/stream/list/item.ejs b/frontend/js/app/nginx/stream/list/item.ejs index 2c1e07593..ff51da539 100644 --- a/frontend/js/app/nginx/stream/list/item.ejs +++ b/frontend/js/app/nginx/stream/list/item.ejs @@ -12,7 +12,7 @@
-
<%- forward_ip %>:<%- forwarding_port %>
+
<%- forwarding_host %>:<%- forwarding_port %>
diff --git a/frontend/js/i18n/messages.json b/frontend/js/i18n/messages.json index 3437b1098..02b6e88c8 100644 --- a/frontend/js/i18n/messages.json +++ b/frontend/js/i18n/messages.json @@ -162,7 +162,7 @@ "add": "Add Stream", "form-title": "{id, select, undefined{New} other{Edit}} Stream", "incoming-port": "Incoming Port", - "forward-ip": "Forward IP", + "forwarding-host": "Forward Host", "forwarding-port": "Forward Port", "tcp-forwarding": "TCP Forwarding", "udp-forwarding": "UDP Forwarding", diff --git a/frontend/js/models/stream.js b/frontend/js/models/stream.js index e46935498..ba035429a 100644 --- a/frontend/js/models/stream.js +++ b/frontend/js/models/stream.js @@ -9,7 +9,7 @@ const model = Backbone.Model.extend({ created_on: null, modified_on: null, incoming_port: null, - forward_ip: null, + forwarding_host: null, forwarding_port: null, tcp_forwarding: true, udp_forwarding: false, From d636502eaa8805e74791350d4635f3a026d99bd9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=A9ctor=20Pelayo?= Date: Mon, 26 Apr 2021 20:25:24 +0200 Subject: [PATCH 086/757] Add DuckDNS certbot plugin Uses https://github.com/infinityofspace/certbot_dns_duckdns certbot plugin to implement DuckDNS DNS challenge in order to obtain Wildcard certificates. Requires that the user inserts his duckDNS token in "Credentials File Content" input box. --- backend/internal/certificate.js | 6 +++++- global/certbot-dns-plugins.js | 9 +++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/backend/internal/certificate.js b/backend/internal/certificate.js index 030b344cd..11306fe70 100644 --- a/backend/internal/certificate.js +++ b/backend/internal/certificate.js @@ -808,7 +808,7 @@ const internalCertificate = { const prepare_cmd = 'pip3 install ' + dns_plugin.package_name + '==' + dns_plugin.package_version + ' ' + dns_plugin.dependencies; // Whether the plugin has a ---credentials argument - const has_config_arg = certificate.meta.dns_provider !== 'route53'; + const has_config_arg = certificate.meta.dns_provider !== 'route53' && certificate.meta.dns_provider !== 'duckdns'; let main_cmd = certbot_command + ' certonly --non-interactive ' + @@ -834,6 +834,10 @@ const internalCertificate = { main_cmd = 'AWS_CONFIG_FILE=\'' + credentials_loc + '\' ' + main_cmd; } + if (certificate.meta.dns_provider === 'duckdns') { + main_cmd = main_cmd + ' --' + dns_plugin.full_plugin_name + '-token ' + certificate.meta.dns_provider_credentials; + } + if (debug_mode) { logger.info('Command:', `${credentials_cmd} && ${prepare_cmd} && ${main_cmd}`); } diff --git a/global/certbot-dns-plugins.js b/global/certbot-dns-plugins.js index d71191c1f..a86f80db7 100644 --- a/global/certbot-dns-plugins.js +++ b/global/certbot-dns-plugins.js @@ -322,4 +322,13 @@ certbot_dns_transip:dns_transip_key_file = /etc/letsencrypt/transip-rsa.key`, certbot_dns_acmedns:dns_acmedns_registration_file = /data/acme-registration.json`, full_plugin_name: 'certbot-dns-acmedns:dns-acmedns', }, + //####################################################// + duckdns: { + display_name: 'DuckDNS', + package_name: 'certbot-dns-duckdns', + package_version: '0.5', + dependencies: '', + credentials: ``, + full_plugin_name: 'certbot-dns-duckdns:dns-duckdns', + }, }; From 656a7dceef7a17260b22e31bd6b05a1c72a9e815 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=A9ctor=20Pelayo?= Date: Mon, 26 Apr 2021 22:31:16 +0200 Subject: [PATCH 087/757] Correct spacing --- global/certbot-dns-plugins.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/global/certbot-dns-plugins.js b/global/certbot-dns-plugins.js index a86f80db7..2c37538cf 100644 --- a/global/certbot-dns-plugins.js +++ b/global/certbot-dns-plugins.js @@ -322,13 +322,13 @@ certbot_dns_transip:dns_transip_key_file = /etc/letsencrypt/transip-rsa.key`, certbot_dns_acmedns:dns_acmedns_registration_file = /data/acme-registration.json`, full_plugin_name: 'certbot-dns-acmedns:dns-acmedns', }, - //####################################################// - duckdns: { - display_name: 'DuckDNS', - package_name: 'certbot-dns-duckdns', - package_version: '0.5', - dependencies: '', - credentials: ``, + //####################################################// + duckdns: { + display_name: 'DuckDNS', + package_name: 'certbot-dns-duckdns', + package_version: '0.5', + dependencies: '', + credentials: '', full_plugin_name: 'certbot-dns-duckdns:dns-duckdns', }, }; From 91044e730bd0015ede3bf2e77b434f2ab6fd6ad6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=A9ctor=20Pelayo?= Date: Mon, 26 Apr 2021 22:35:52 +0200 Subject: [PATCH 088/757] Correct indentation --- global/certbot-dns-plugins.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/global/certbot-dns-plugins.js b/global/certbot-dns-plugins.js index 2c37538cf..a503b46c5 100644 --- a/global/certbot-dns-plugins.js +++ b/global/certbot-dns-plugins.js @@ -322,8 +322,8 @@ certbot_dns_transip:dns_transip_key_file = /etc/letsencrypt/transip-rsa.key`, certbot_dns_acmedns:dns_acmedns_registration_file = /data/acme-registration.json`, full_plugin_name: 'certbot-dns-acmedns:dns-acmedns', }, - //####################################################// - duckdns: { + //####################################################// + duckdns: { display_name: 'DuckDNS', package_name: 'certbot-dns-duckdns', package_version: '0.5', From 9872daf29f46b4bf833c7c987a50957734f7c182 Mon Sep 17 00:00:00 2001 From: Jamie Curnow Date: Thu, 29 Apr 2021 08:28:40 +1000 Subject: [PATCH 089/757] Switch to nginx-full base --- docker/Dockerfile | 44 ++++++++++++++++++++++++------------------ docker/dev/Dockerfile | 24 ++++++++++------------- scripts/frontend-build | 2 +- 3 files changed, 36 insertions(+), 34 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 34ee5c449..07e215ded 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -3,7 +3,7 @@ # This file assumes that the frontend has been built using ./scripts/frontend-build -FROM --platform=${TARGETPLATFORM:-linux/amd64} jc21/alpine-nginx-full:node +FROM --platform=${TARGETPLATFORM:-linux/amd64} jc21/nginx-full:node ARG TARGETPLATFORM ARG BUILDPLATFORM @@ -11,41 +11,47 @@ ARG BUILD_VERSION ARG BUILD_COMMIT ARG BUILD_DATE -ENV SUPPRESS_NO_CONFIG_WARNING=1 -ENV S6_FIX_ATTRS_HIDDEN=1 -ENV S6_BEHAVIOUR_IF_STAGE2_FAILS=1 -ENV NODE_ENV=production +ENV SUPPRESS_NO_CONFIG_WARNING=1 \ + S6_FIX_ATTRS_HIDDEN=1 \ + S6_BEHAVIOUR_IF_STAGE2_FAILS=1 \ + NODE_ENV=production \ + NPM_BUILD_VERSION="${BUILD_VERSION}" \ + NPM_BUILD_COMMIT="${BUILD_COMMIT}" \ + NPM_BUILD_DATE="${BUILD_DATE}" RUN echo "fs.file-max = 65535" > /etc/sysctl.conf \ - && apk update \ - && apk add python3 certbot jq \ - && python3 -m ensurepip \ - && rm -rf /var/cache/apk/* - -ENV NPM_BUILD_VERSION="${BUILD_VERSION}" NPM_BUILD_COMMIT="${BUILD_COMMIT}" NPM_BUILD_DATE="${BUILD_DATE}" + && apt-get update \ + && apt-get install -y certbot jq python3-pip \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* # s6 overlay COPY scripts/install-s6 /tmp/install-s6 RUN /tmp/install-s6 "${TARGETPLATFORM}" && rm -f /tmp/install-s6 -EXPOSE 80 -EXPOSE 81 -EXPOSE 443 +EXPOSE 80 81 443 -ADD backend /app -ADD frontend/dist /app/frontend -COPY global /app/global +COPY backend /app +COPY frontend/dist /app/frontend +COPY global /app/global WORKDIR /app RUN yarn install # add late to limit cache-busting by modifications -COPY docker/rootfs / +COPY docker/rootfs / # Remove frontend service not required for prod, dev nginx config as well RUN rm -rf /etc/services.d/frontend RUN rm -f /etc/nginx/conf.d/dev.conf VOLUME [ "/data", "/etc/letsencrypt" ] ENTRYPOINT [ "/init" ] - HEALTHCHECK --interval=5s --timeout=3s CMD /bin/check-health + +LABEL org.label-schema.schema-version="1.0" \ + org.label-schema.license="MIT" \ + org.label-schema.name="nginx-proxy-manager" \ + org.label-schema.description="Docker container for managing Nginx proxy hosts with a simple, powerful interface " \ + org.label-schema.url="https://github.com/jc21/nginx-proxy-manager" \ + org.label-schema.vcs-url="https://github.com/jc21/nginx-proxy-manager.git" \ + org.label-schema.cmd="docker run --rm -ti jc21/nginx-proxy-manager:latest" diff --git a/docker/dev/Dockerfile b/docker/dev/Dockerfile index 1e4bdad85..ae17e8610 100644 --- a/docker/dev/Dockerfile +++ b/docker/dev/Dockerfile @@ -1,15 +1,15 @@ -FROM jc21/alpine-nginx-full:node +FROM jc21/nginx-full:node LABEL maintainer="Jamie Curnow " -ENV S6_LOGGING=0 -ENV SUPPRESS_NO_CONFIG_WARNING=1 -ENV S6_FIX_ATTRS_HIDDEN=1 +ENV S6_LOGGING=0 \ + SUPPRESS_NO_CONFIG_WARNING=1 \ + S6_FIX_ATTRS_HIDDEN=1 RUN echo "fs.file-max = 65535" > /etc/sysctl.conf \ - && apk update \ - && apk add python3 certbot jq \ - && python3 -m ensurepip \ - && rm -rf /var/cache/apk/* + && apt-get update \ + && apt-get install -y certbot jq python3-pip \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* # Task RUN cd /usr \ @@ -23,10 +23,6 @@ RUN rm -f /etc/nginx/conf.d/production.conf RUN curl -L -o /tmp/s6-overlay-amd64.tar.gz "https://github.com/just-containers/s6-overlay/releases/download/v1.22.1.0/s6-overlay-amd64.tar.gz" \ && tar -xzf /tmp/s6-overlay-amd64.tar.gz -C / -EXPOSE 80 -EXPOSE 81 -EXPOSE 443 - +EXPOSE 80 81 443 ENTRYPOINT [ "/init" ] - -HEALTHCHECK --interval=5s --timeout=3s CMD /bin/check-health \ No newline at end of file +HEALTHCHECK --interval=5s --timeout=3s CMD /bin/check-health diff --git a/scripts/frontend-build b/scripts/frontend-build index 45c6d5999..162502ca5 100755 --- a/scripts/frontend-build +++ b/scripts/frontend-build @@ -3,7 +3,7 @@ DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" . "$DIR/.common.sh" -DOCKER_IMAGE=jc21/alpine-nginx-full:node +DOCKER_IMAGE=jc21/nginx-full:node # Ensure docker exists if hash docker 2>/dev/null; then From b55738bd6ec33c88229ee7c3ad6754f13a7a7dd3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 28 Apr 2021 23:39:48 +0000 Subject: [PATCH 090/757] Bump ssri from 6.0.1 to 6.0.2 in /frontend Bumps [ssri](https://github.com/npm/ssri) from 6.0.1 to 6.0.2. - [Release notes](https://github.com/npm/ssri/releases) - [Changelog](https://github.com/npm/ssri/blob/v6.0.2/CHANGELOG.md) - [Commits](https://github.com/npm/ssri/compare/v6.0.1...v6.0.2) Signed-off-by: dependabot[bot] --- frontend/yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/frontend/yarn.lock b/frontend/yarn.lock index d35bb635e..40c3a9156 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -6117,9 +6117,9 @@ sshpk@^1.7.0: tweetnacl "~0.14.0" ssri@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" - integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA== + version "6.0.2" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.2.tgz#157939134f20464e7301ddba3e90ffa8f7728ac5" + integrity sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q== dependencies: figgy-pudding "^3.5.1" From f2f653e3454647d108b2574c6030ca39cea62e0a Mon Sep 17 00:00:00 2001 From: Jamie Curnow Date: Thu, 29 Apr 2021 11:19:59 +1000 Subject: [PATCH 091/757] Remove platform specific determination --- docker/Dockerfile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 07e215ded..a159e18bc 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -3,10 +3,9 @@ # This file assumes that the frontend has been built using ./scripts/frontend-build -FROM --platform=${TARGETPLATFORM:-linux/amd64} jc21/nginx-full:node +FROM jc21/nginx-full:node ARG TARGETPLATFORM -ARG BUILDPLATFORM ARG BUILD_VERSION ARG BUILD_COMMIT ARG BUILD_DATE From 161d3ec81730d8ddfdb819a7a763c1279dae18f1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 29 Apr 2021 11:38:19 +0000 Subject: [PATCH 092/757] Bump ssri from 8.0.0 to 8.0.1 in /docs Bumps [ssri](https://github.com/npm/ssri) from 8.0.0 to 8.0.1. - [Release notes](https://github.com/npm/ssri/releases) - [Changelog](https://github.com/npm/ssri/blob/latest/CHANGELOG.md) - [Commits](https://github.com/npm/ssri/compare/v8.0.0...v8.0.1) Signed-off-by: dependabot[bot] --- docs/yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/yarn.lock b/docs/yarn.lock index 2f36c2173..7e03d0fea 100644 --- a/docs/yarn.lock +++ b/docs/yarn.lock @@ -8828,9 +8828,9 @@ ssri@^6.0.1: figgy-pudding "^3.5.1" ssri@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.0.tgz#79ca74e21f8ceaeddfcb4b90143c458b8d988808" - integrity sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA== + version "8.0.1" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" + integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ== dependencies: minipass "^3.1.1" From 42ab4020e2eebee979fdae0ef6d67a5715a07e08 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 29 Apr 2021 11:44:15 +0000 Subject: [PATCH 093/757] Bump y18n from 4.0.0 to 4.0.3 in /frontend Bumps [y18n](https://github.com/yargs/y18n) from 4.0.0 to 4.0.3. - [Release notes](https://github.com/yargs/y18n/releases) - [Changelog](https://github.com/yargs/y18n/blob/y18n-v4.0.3/CHANGELOG.md) - [Commits](https://github.com/yargs/y18n/compare/v4.0.0...y18n-v4.0.3) Signed-off-by: dependabot[bot] --- frontend/yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 40c3a9156..b14a4929f 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -6962,9 +6962,9 @@ xtend@^4.0.0, xtend@^4.0.2, xtend@~4.0.1: integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== y18n@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" - integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== + version "4.0.3" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" + integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== yallist@^2.1.2: version "2.1.2" From d3337322dd334b892f3301b17ffa233a81086bed Mon Sep 17 00:00:00 2001 From: THEGamingninja Date: Wed, 5 May 2021 21:02:04 -0400 Subject: [PATCH 094/757] Add target _blank to href --- frontend/js/app/nginx/access/form.ejs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/js/app/nginx/access/form.ejs b/frontend/js/app/nginx/access/form.ejs index 9f6fe800d..79220b14b 100644 --- a/frontend/js/app/nginx/access/form.ejs +++ b/frontend/js/app/nginx/access/form.ejs @@ -48,7 +48,7 @@

Basic Authorization via - + Nginx HTTP Basic Authentication

@@ -75,7 +75,7 @@

IP Address Whitelist/Blacklist via - + Nginx HTTP Access

From 655477316b257cd62b563dbe273603324adb0d4f Mon Sep 17 00:00:00 2001 From: Jamie Curnow Date: Thu, 6 May 2021 11:32:54 +1000 Subject: [PATCH 095/757] Version bump, contributors added, apt tweak --- .version | 2 +- Jenkinsfile | 2 +- README.md | 140 +++++++++++++++++++++++++++++++++++----------- docker/Dockerfile | 2 +- 4 files changed, 111 insertions(+), 35 deletions(-) diff --git a/.version b/.version index dbe590065..f3ac133c5 100644 --- a/.version +++ b/.version @@ -1 +1 @@ -2.8.1 +2.9.0 \ No newline at end of file diff --git a/Jenkinsfile b/Jenkinsfile index 39606e33b..3161a254f 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -213,7 +213,7 @@ pipeline { } steps { script { - def comment = pullRequest.comment("Docker Image for build ${BUILD_NUMBER} is available on [DockerHub](https://cloud.docker.com/repository/docker/jc21/${IMAGE}) as `jc21/${IMAGE}:github-${BRANCH_LOWER}`") + def comment = pullRequest.comment("This is an automated message from CI:\n\nDocker Image for build ${BUILD_NUMBER} is available on [DockerHub](https://cloud.docker.com/repository/docker/jc21/${IMAGE}) as `jc21/${IMAGE}:github-${BRANCH_LOWER}`\n\n**Note:** ensure you backup your NPM instance before testing this PR image! Especially if this PR contains database changes.") } } } diff --git a/README.md b/README.md index 6e7140713..392a4f763 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@



- + @@ -63,43 +63,43 @@ Special thanks to the following contributors: - +
Sebastian Valle
- +
Kyle Klaus
- +
ƬHE ЯAW
- +
Spencer
- +
Xantios Krugor
- +
David Panesso
- +
IronTooch
@@ -107,43 +107,43 @@ Special thanks to the following contributors: - +
Damiano
- +
Russ
- +
Marcelo Castagna
- +
Steven Harris
- +
Jocelyn Le Sage
- +
Carl Mercier
- +
Paul Mansfield
@@ -151,43 +151,43 @@ Special thanks to the following contributors: - +
OhHeyAlan
- +
Carl Sutton
- +
Gergő Törcsvári
- +
vrenjith
- +
David Rivera
- +
Jaap-Jan de Wit
- +
James Morgan
@@ -195,43 +195,43 @@ Special thanks to the following contributors: - +
chaptergy
- +
Philip Mooney
- +
WaterCalm
- +
lebrou34
- +
Mário Franco
- +
Kyle Harding
- +
Alex Graber
@@ -239,22 +239,98 @@ Special thanks to the following contributors: - +
MooBaloo
- +
Shuro
- +
Loris Bergeron
+ + + +
hepelayo +
+ + + + +
Jonas Leder +
+ + + + +
Bastian Stegmann +
+ + + + +
Stealthii +
+ + + + + + +
THEGamingninja +
+ + + + +
Italo Borssatto +
+ + + + +
Gurjinder Singh +
+ + + + +
David Dosoudil +
+ + + + +
ijaron +
+ + + + +
Niels Bouma +
+ + + + +
Orko Garai +
+ + + + + + +
Filippo Baruffaldi +
+ diff --git a/docker/Dockerfile b/docker/Dockerfile index a159e18bc..3e92d10c9 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -20,7 +20,7 @@ ENV SUPPRESS_NO_CONFIG_WARNING=1 \ RUN echo "fs.file-max = 65535" > /etc/sysctl.conf \ && apt-get update \ - && apt-get install -y certbot jq python3-pip \ + && apt-get install -y --no-install-recommends certbot jq python3-pip \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* From a02d4ec46fcea5a9e80c0ba64550292a863256d4 Mon Sep 17 00:00:00 2001 From: Jamie Curnow Date: Thu, 6 May 2021 19:10:40 +1000 Subject: [PATCH 096/757] Use certbot from pip instead of apt --- docker/Dockerfile | 8 +++++++- docker/rootfs/root/.bashrc | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 3e92d10c9..b05d4b64c 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -20,10 +20,16 @@ ENV SUPPRESS_NO_CONFIG_WARNING=1 \ RUN echo "fs.file-max = 65535" > /etc/sysctl.conf \ && apt-get update \ - && apt-get install -y --no-install-recommends certbot jq python3-pip \ + && apt-get install -y --no-install-recommends jq python3 python3-pip python3-setuptools libaugeas0 \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* +# Certbot +RUN pip3 install --upgrade pip \ + && pip install certbot \ + && ln -s /usr/local/bin/certbot /usr/bin/certbot \ + && echo "Certbot version: $(certbot --version)" + # s6 overlay COPY scripts/install-s6 /tmp/install-s6 RUN /tmp/install-s6 "${TARGETPLATFORM}" && rm -f /tmp/install-s6 diff --git a/docker/rootfs/root/.bashrc b/docker/rootfs/root/.bashrc index aec8e8f9a..0dd0d2d25 100644 --- a/docker/rootfs/root/.bashrc +++ b/docker/rootfs/root/.bashrc @@ -16,5 +16,5 @@ alias h='cd ~;clear;' echo -e -n '\E[1;34m' figlet -w 120 "NginxProxyManager" -echo -e "\E[1;36mVersion \E[1;32m${NPM_BUILD_VERSION:-2.0.0-dev} (${NPM_BUILD_COMMIT:-dev}) ${NPM_BUILD_DATE:-0000-00-00}\E[1;36m, OpenResty \E[1;32m${OPENRESTY_VERSION:-unknown}\E[1;36m, Alpine \E[1;32m${VERSION_ID:-unknown}\E[1;36m, Kernel \E[1;32m$(uname -r)\E[0m" +echo -e "\E[1;36mVersion \E[1;32m${NPM_BUILD_VERSION:-2.0.0-dev} (${NPM_BUILD_COMMIT:-dev}) ${NPM_BUILD_DATE:-0000-00-00}\E[1;36m, OpenResty \E[1;32m${OPENRESTY_VERSION:-unknown}\E[1;36m, ${ID:-debian} \E[1;32m${VERSION:-unknown}\E[1;36m, Certbot \E[1;32m$(certbot --version)\E[0m" echo From 60347a90e98cce31343fbaae9178b1f8aa5332ef Mon Sep 17 00:00:00 2001 From: vipergts450 <60085845+vipergts450@users.noreply.github.com> Date: Thu, 6 May 2021 11:40:40 -0400 Subject: [PATCH 097/757] Update _location.conf --- backend/templates/_location.conf | 35 +++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/backend/templates/_location.conf b/backend/templates/_location.conf index 0b8894d11..cbdd2d283 100644 --- a/backend/templates/_location.conf +++ b/backend/templates/_location.conf @@ -3,7 +3,40 @@ proxy_set_header X-Forwarded-Scheme $scheme; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-For $remote_addr; + proxy_set_header X-Real-IP $remote_addr; proxy_pass {{ forward_scheme }}://{{ forward_host }}:{{ forward_port }}{{ forward_path }}; + + {% if access_list_id > 0 %} + {% if access_list.items.length > 0 %} + # Authorization + auth_basic "Authorization required"; + auth_basic_user_file /data/access/{{ access_list_id }}; + + {{ access_list.passauth }} + {% endif %} + + # Access Rules + {% for client in access_list.clients %} + {{- client.rule -}}; + {% endfor %}deny all; + + # Access checks must... + {% if access_list.satisfy %} + {{ access_list.satisfy }}; + {% endif %} + + {% endif %} + + + {% include "_forced_ssl.conf" %} + {% include "_hsts.conf" %} + + {% if allow_websocket_upgrade == 1 or allow_websocket_upgrade == true %} + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection $http_connection; + proxy_http_version 1.1; + {% endif %} + + {{ advanced_config }} } - From a3b896fa70b5d2d682421aca9b2e33d08ba952e0 Mon Sep 17 00:00:00 2001 From: vipergts450 <60085845+vipergts450@users.noreply.github.com> Date: Thu, 6 May 2021 14:48:38 -0400 Subject: [PATCH 098/757] Update _location.conf --- backend/templates/_location.conf | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/backend/templates/_location.conf b/backend/templates/_location.conf index cbdd2d283..060dfa899 100644 --- a/backend/templates/_location.conf +++ b/backend/templates/_location.conf @@ -1,3 +1,8 @@ +{% include "_assets.conf" %} +{% include "_exploits.conf" %} +{% include "_hsts.conf" %} + + location {{ path }} { proxy_set_header Host $host; proxy_set_header X-Forwarded-Scheme $scheme; @@ -6,25 +11,26 @@ proxy_set_header X-Real-IP $remote_addr; proxy_pass {{ forward_scheme }}://{{ forward_host }}:{{ forward_port }}{{ forward_path }}; + {% if access_list_id > 0 %} {% if access_list.items.length > 0 %} # Authorization auth_basic "Authorization required"; auth_basic_user_file /data/access/{{ access_list_id }}; - + {{ access_list.passauth }} {% endif %} - + # Access Rules {% for client in access_list.clients %} {{- client.rule -}}; {% endfor %}deny all; - + # Access checks must... {% if access_list.satisfy %} {{ access_list.satisfy }}; {% endif %} - + {% endif %} From e4e94d5be067ebac41f76b2f4156d25c06770bc2 Mon Sep 17 00:00:00 2001 From: vipergts450 <60085845+vipergts450@users.noreply.github.com> Date: Thu, 6 May 2021 14:50:09 -0400 Subject: [PATCH 099/757] Update nginx.js Adds ability for custom location templates to handle includes --- backend/internal/nginx.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/backend/internal/nginx.js b/backend/internal/nginx.js index 9972d417e..336a462c2 100644 --- a/backend/internal/nginx.js +++ b/backend/internal/nginx.js @@ -101,7 +101,7 @@ const internalNginx = { logger.info('Testing Nginx configuration'); } - return utils.exec('/usr/sbin/nginx -t -g "error_log off;"'); + return utils.exec('/usr/sbin/nginx -t '); }, /** @@ -146,7 +146,9 @@ const internalNginx = { return; } - let renderer = new Liquid(); + let renderer = new Liquid({ + root: __dirname + '/../templates/' + }); let renderedLocations = ''; const locationRendering = async () => { From 6a46e88f8f828609c0e2423e77f9c82410145a13 Mon Sep 17 00:00:00 2001 From: vipergts450 <60085845+vipergts450@users.noreply.github.com> Date: Thu, 6 May 2021 22:29:21 -0400 Subject: [PATCH 100/757] Fix renderLocations to accept more parameters from host Amend renderLocations to pass more host parameters into the custom locations to match the requirements set for the default location. This will apply all parameters set in the UI to all custom locations. --- backend/internal/nginx.js | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/backend/internal/nginx.js b/backend/internal/nginx.js index 336a462c2..39753e5de 100644 --- a/backend/internal/nginx.js +++ b/backend/internal/nginx.js @@ -136,6 +136,8 @@ const internalNginx = { * @returns {Promise} */ renderLocations: (host) => { + + // logger.info('host = ' + JSON.stringify(host, null, 2)); return new Promise((resolve, reject) => { let template; @@ -153,8 +155,13 @@ const internalNginx = { const locationRendering = async () => { for (let i = 0; i < host.locations.length; i++) { - let locationCopy = Object.assign({}, host.locations[i]); - + let locationCopy = Object.assign({}, {access_list_id : host.access_list_id}, {certificate_id : host.certificate_id}, + {ssl_forced : host.ssl_forced}, {caching_enabled : host.caching_enabled}, + {block_exploits : host.block_exploits}, {allow_websocket_upgrade : host.allow_websocket_upgrade}, + {http2_support : host.http2_support}, {hsts_enabled : host.hsts_enabled}, + {hsts_subdomains : host.hsts_subdomains}, {access_list : host.access_list}, + {certificate : host.certificate}, host.locations[i]); + if (locationCopy.forward_host.indexOf('/') > -1) { const splitted = locationCopy.forward_host.split('/'); @@ -162,12 +169,16 @@ const internalNginx = { locationCopy.forward_path = `/${splitted.join('/')}`; } + // logger.info('locationCopy = ' + JSON.stringify(locationCopy, null, 2)); + // eslint-disable-next-line renderedLocations += await renderer.parseAndRender(template, locationCopy); } + }; locationRendering().then(() => resolve(renderedLocations)); + }); }, @@ -183,6 +194,8 @@ const internalNginx = { logger.info('Generating ' + host_type + ' Config:', host); } + // logger.info('host = ' + JSON.stringify(host, null, 2)); + let renderEngine = new Liquid({ root: __dirname + '/../templates/' }); @@ -210,6 +223,7 @@ const internalNginx = { } if (host.locations) { + // logger.info ('host.locations = ' + JSON.stringify(host.locations, null, 2)); origLocations = [].concat(host.locations); locationsPromise = internalNginx.renderLocations(host).then((renderedLocations) => { host.locations = renderedLocations; From 4c76803f13176bc6a11f64bec4f90f6089068e51 Mon Sep 17 00:00:00 2001 From: vipergts450 <60085845+vipergts450@users.noreply.github.com> Date: Thu, 6 May 2021 22:30:45 -0400 Subject: [PATCH 101/757] Rearrange _location.conf template Allow more of the main host parameters into the custom location configuration and reorder to make more sense. --- backend/templates/_location.conf | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/backend/templates/_location.conf b/backend/templates/_location.conf index 060dfa899..5a7a6abeb 100644 --- a/backend/templates/_location.conf +++ b/backend/templates/_location.conf @@ -1,8 +1,3 @@ -{% include "_assets.conf" %} -{% include "_exploits.conf" %} -{% include "_hsts.conf" %} - - location {{ path }} { proxy_set_header Host $host; proxy_set_header X-Forwarded-Scheme $scheme; @@ -11,7 +6,6 @@ proxy_set_header X-Real-IP $remote_addr; proxy_pass {{ forward_scheme }}://{{ forward_host }}:{{ forward_port }}{{ forward_path }}; - {% if access_list_id > 0 %} {% if access_list.items.length > 0 %} # Authorization @@ -33,6 +27,8 @@ {% endif %} + {% include "_assets.conf" %} + {% include "_exploits.conf" %} {% include "_forced_ssl.conf" %} {% include "_hsts.conf" %} @@ -46,3 +42,4 @@ {{ advanced_config }} } + From 2373e4a06d7b54c25dc69a9cfb30d9cc1b196392 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 7 May 2021 03:05:13 +0000 Subject: [PATCH 102/757] Bump underscore from 1.10.2 to 1.12.1 in /frontend Bumps [underscore](https://github.com/jashkenas/underscore) from 1.10.2 to 1.12.1. - [Release notes](https://github.com/jashkenas/underscore/releases) - [Commits](https://github.com/jashkenas/underscore/compare/1.10.2...1.12.1) Signed-off-by: dependabot[bot] --- frontend/package.json | 2 +- frontend/yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/frontend/package.json b/frontend/package.json index 2c9ce0786..daa48f3c7 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -34,7 +34,7 @@ "sass-loader": "^8.0.2", "style-loader": "^1.1.3", "tabler-ui": "git+https://github.com/tabler/tabler.git#00f78ad823311bc3ad974ac3e5b0126198f0a813", - "underscore": "^1.10.2", + "underscore": "^1.12.1", "webpack": "^4.42.1", "webpack-cli": "^3.3.11", "webpack-visualizer-plugin": "^0.1.11" diff --git a/frontend/yarn.lock b/frontend/yarn.lock index b14a4929f..b96d7c0b3 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -6594,10 +6594,10 @@ undefsafe@^2.0.2: dependencies: debug "^2.2.0" -underscore@>=1.8.3, underscore@^1.10.2: - version "1.10.2" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.10.2.tgz#73d6aa3668f3188e4adb0f1943bd12cfd7efaaaf" - integrity sha512-N4P+Q/BuyuEKFJ43B9gYuOj4TQUHXX+j2FqguVOpjkssLUUrnJofCcBccJSCoeturDoZU6GorDTHSvUDlSQbTg== +underscore@>=1.8.3, underscore@^1.12.1: + version "1.12.1" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.12.1.tgz#7bb8cc9b3d397e201cf8553336d262544ead829e" + integrity sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw== union-value@^1.0.0: version "1.0.1" From 717105f243655d8b5e85958f16c4cc9f213a21ef Mon Sep 17 00:00:00 2001 From: Jamie Curnow Date: Fri, 7 May 2021 11:34:11 +1000 Subject: [PATCH 103/757] Revert installing certbot. This is handled by base image jc21/nginx-full now Update path of certbot, and use the pip instead --- backend/internal/certificate.js | 4 ++-- backend/setup.js | 2 +- docker/Dockerfile | 10 ++-------- docker/rootfs/root/.bashrc | 4 +++- 4 files changed, 8 insertions(+), 12 deletions(-) diff --git a/backend/internal/certificate.js b/backend/internal/certificate.js index 11306fe70..28a641551 100644 --- a/backend/internal/certificate.js +++ b/backend/internal/certificate.js @@ -11,7 +11,7 @@ const debug_mode = process.env.NODE_ENV !== 'production' || !!process.env. const le_staging = process.env.NODE_ENV !== 'production'; const internalNginx = require('./nginx'); const internalHost = require('./host'); -const certbot_command = '/usr/bin/certbot'; +const certbot_command = '/opt/certbot/bin/certbot'; const le_config = '/etc/letsencrypt.ini'; const dns_plugins = require('../global/certbot-dns-plugins'); @@ -805,7 +805,7 @@ const internalCertificate = { const credentials_loc = '/etc/letsencrypt/credentials/credentials-' + certificate.id; const credentials_cmd = 'mkdir -p /etc/letsencrypt/credentials 2> /dev/null; echo \'' + certificate.meta.dns_provider_credentials.replace('\'', '\\\'') + '\' > \'' + credentials_loc + '\' && chmod 600 \'' + credentials_loc + '\''; - const prepare_cmd = 'pip3 install ' + dns_plugin.package_name + '==' + dns_plugin.package_version + ' ' + dns_plugin.dependencies; + const prepare_cmd = 'pip install ' + dns_plugin.package_name + '==' + dns_plugin.package_version + ' ' + dns_plugin.dependencies; // Whether the plugin has a ---credentials argument const has_config_arg = certificate.meta.dns_provider !== 'route53' && certificate.meta.dns_provider !== 'duckdns'; diff --git a/backend/setup.js b/backend/setup.js index 9a59f9acd..b25ffc005 100644 --- a/backend/setup.js +++ b/backend/setup.js @@ -187,7 +187,7 @@ const setupCertbotPlugins = () => { }); if (plugins.length) { - const install_cmd = 'pip3 install ' + plugins.join(' '); + const install_cmd = 'pip install ' + plugins.join(' '); promises.push(utils.exec(install_cmd)); } diff --git a/docker/Dockerfile b/docker/Dockerfile index b05d4b64c..d85782b64 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -20,16 +20,10 @@ ENV SUPPRESS_NO_CONFIG_WARNING=1 \ RUN echo "fs.file-max = 65535" > /etc/sysctl.conf \ && apt-get update \ - && apt-get install -y --no-install-recommends jq python3 python3-pip python3-setuptools libaugeas0 \ + && apt-get install -y --no-install-recommends jq \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* -# Certbot -RUN pip3 install --upgrade pip \ - && pip install certbot \ - && ln -s /usr/local/bin/certbot /usr/bin/certbot \ - && echo "Certbot version: $(certbot --version)" - # s6 overlay COPY scripts/install-s6 /tmp/install-s6 RUN /tmp/install-s6 "${TARGETPLATFORM}" && rm -f /tmp/install-s6 @@ -47,7 +41,7 @@ RUN yarn install COPY docker/rootfs / # Remove frontend service not required for prod, dev nginx config as well -RUN rm -rf /etc/services.d/frontend RUN rm -f /etc/nginx/conf.d/dev.conf +RUN rm -rf /etc/services.d/frontend /etc/nginx/conf.d/dev.conf VOLUME [ "/data", "/etc/letsencrypt" ] ENTRYPOINT [ "/init" ] diff --git a/docker/rootfs/root/.bashrc b/docker/rootfs/root/.bashrc index 0dd0d2d25..1deb975c0 100644 --- a/docker/rootfs/root/.bashrc +++ b/docker/rootfs/root/.bashrc @@ -17,4 +17,6 @@ alias h='cd ~;clear;' echo -e -n '\E[1;34m' figlet -w 120 "NginxProxyManager" echo -e "\E[1;36mVersion \E[1;32m${NPM_BUILD_VERSION:-2.0.0-dev} (${NPM_BUILD_COMMIT:-dev}) ${NPM_BUILD_DATE:-0000-00-00}\E[1;36m, OpenResty \E[1;32m${OPENRESTY_VERSION:-unknown}\E[1;36m, ${ID:-debian} \E[1;32m${VERSION:-unknown}\E[1;36m, Certbot \E[1;32m$(certbot --version)\E[0m" -echo +echo -e -n '\E[1;34m' +cat /built-for-arch +echo -e '\E[0m' From 3607c30d98bc0853a029c98b4f325ac54f34d270 Mon Sep 17 00:00:00 2001 From: Jamie Curnow Date: Fri, 7 May 2021 13:51:35 +1000 Subject: [PATCH 104/757] Bump version --- .version | 2 +- README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.version b/.version index f3ac133c5..dedcc7d43 100644 --- a/.version +++ b/.version @@ -1 +1 @@ -2.9.0 \ No newline at end of file +2.9.1 diff --git a/README.md b/README.md index 392a4f763..2ec9395f0 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@



- + From c6a90a2fd0702be4ce0289af56aff4d5b0ba85d9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 7 May 2021 03:51:51 +0000 Subject: [PATCH 105/757] Bump lodash from 4.17.19 to 4.17.21 in /docs Bumps [lodash](https://github.com/lodash/lodash) from 4.17.19 to 4.17.21. - [Release notes](https://github.com/lodash/lodash/releases) - [Commits](https://github.com/lodash/lodash/compare/4.17.19...4.17.21) Signed-off-by: dependabot[bot] --- docs/yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/yarn.lock b/docs/yarn.lock index 857e41d92..f2240ac01 100644 --- a/docs/yarn.lock +++ b/docs/yarn.lock @@ -5993,9 +5993,9 @@ lodash.uniq@^4.5.0: integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.3, lodash@^4.17.5: - version "4.17.19" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b" - integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ== + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== loglevel@^1.6.8: version "1.6.8" From f0233b947e0179e224e3ffc4aa265fd472e821bf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 7 May 2021 03:51:51 +0000 Subject: [PATCH 106/757] Bump ua-parser-js from 0.7.21 to 0.7.28 in /frontend Bumps [ua-parser-js](https://github.com/faisalman/ua-parser-js) from 0.7.21 to 0.7.28. - [Release notes](https://github.com/faisalman/ua-parser-js/releases) - [Commits](https://github.com/faisalman/ua-parser-js/compare/0.7.21...0.7.28) Signed-off-by: dependabot[bot] --- frontend/yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/frontend/yarn.lock b/frontend/yarn.lock index b14a4929f..3d6fcad12 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -6560,9 +6560,9 @@ typedarray@^0.0.6: integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= ua-parser-js@^0.7.9: - version "0.7.21" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.21.tgz#853cf9ce93f642f67174273cc34565ae6f308777" - integrity sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ== + version "0.7.28" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.28.tgz#8ba04e653f35ce210239c64661685bf9121dec31" + integrity sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g== uglify-js@3.4.x: version "3.4.10" From 19d3deddd46c15b7b7bbae0934ab55d31c8735c0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 7 May 2021 03:51:57 +0000 Subject: [PATCH 107/757] Bump url-parse from 1.4.7 to 1.5.0 in /docs Bumps [url-parse](https://github.com/unshiftio/url-parse) from 1.4.7 to 1.5.0. - [Release notes](https://github.com/unshiftio/url-parse/releases) - [Commits](https://github.com/unshiftio/url-parse/compare/1.4.7...1.5.0) Signed-off-by: dependabot[bot] --- docs/yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/yarn.lock b/docs/yarn.lock index 857e41d92..fc48eceff 100644 --- a/docs/yarn.lock +++ b/docs/yarn.lock @@ -9632,9 +9632,9 @@ url-parse-lax@^3.0.0: prepend-http "^2.0.0" url-parse@^1.4.3, url-parse@^1.4.7: - version "1.4.7" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" - integrity sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg== + version "1.5.0" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.0.tgz#90aba6c902aeb2d80eac17b91131c27665d5d828" + integrity sha512-9iT6N4s93SMfzunOyDPe4vo4nLcSu1yq0IQK1gURmjm8tQNlM6loiuCRrKG1hHGXfB2EWd6H4cGi7tGdaygMFw== dependencies: querystringify "^2.1.1" requires-port "^1.0.0" From 58c3204187dfb5949071f64f66cb0577fd219705 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 7 May 2021 03:52:24 +0000 Subject: [PATCH 108/757] Bump lodash from 4.17.19 to 4.17.21 in /test Bumps [lodash](https://github.com/lodash/lodash) from 4.17.19 to 4.17.21. - [Release notes](https://github.com/lodash/lodash/releases) - [Commits](https://github.com/lodash/lodash/compare/4.17.19...4.17.21) Signed-off-by: dependabot[bot] --- test/yarn.lock | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/test/yarn.lock b/test/yarn.lock index 925078304..bee66c89a 100644 --- a/test/yarn.lock +++ b/test/yarn.lock @@ -1670,15 +1670,10 @@ lodash.once@^4.1.1: resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= -lodash@^4.17.14, lodash@^4.17.15: - version "4.17.15" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" - integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== - -lodash@^4.17.19: - version "4.17.19" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b" - integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ== +lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== log-symbols@3.0.0: version "3.0.0" From e283865d3dfba4bcc52d376853c37cb89358c32f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 8 May 2021 02:11:13 +0000 Subject: [PATCH 109/757] Bump lodash from 4.17.19 to 4.17.21 in /frontend Bumps [lodash](https://github.com/lodash/lodash) from 4.17.19 to 4.17.21. - [Release notes](https://github.com/lodash/lodash/releases) - [Commits](https://github.com/lodash/lodash/compare/4.17.19...4.17.21) Signed-off-by: dependabot[bot] --- frontend/yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/frontend/yarn.lock b/frontend/yarn.lock index b14a4929f..ab27b0984 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -4278,9 +4278,9 @@ lodash.some@^4.6.0: integrity sha1-G7nzFO9ri63tE7VJFpsqlF62jk0= lodash@^4.0.0, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.4, lodash@~4.17.10: - version "4.17.19" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b" - integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ== + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== longest@^1.0.1: version "1.0.1" From 7deb64a5de59631ea7d1148ee90e358d169c6387 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 8 May 2021 02:11:35 +0000 Subject: [PATCH 110/757] Bump lodash from 4.17.19 to 4.17.21 in /backend Bumps [lodash](https://github.com/lodash/lodash) from 4.17.19 to 4.17.21. - [Release notes](https://github.com/lodash/lodash/releases) - [Commits](https://github.com/lodash/lodash/compare/4.17.19...4.17.21) Signed-off-by: dependabot[bot] --- backend/package.json | 2 +- backend/yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/backend/package.json b/backend/package.json index b4edda63b..2130c7b83 100644 --- a/backend/package.json +++ b/backend/package.json @@ -19,7 +19,7 @@ "jsonwebtoken": "^8.5.1", "knex": "^0.20.13", "liquidjs": "^9.11.10", - "lodash": "^4.17.19", + "lodash": "^4.17.21", "moment": "^2.24.0", "mysql": "^2.18.1", "node-rsa": "^1.0.8", diff --git a/backend/yarn.lock b/backend/yarn.lock index 84d722374..84180c265 100644 --- a/backend/yarn.lock +++ b/backend/yarn.lock @@ -2024,10 +2024,10 @@ lodash.once@^4.0.0: resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= -lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19: - version "4.17.19" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b" - integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ== +lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: version "1.0.1" From bf8ea71c779f5ab7d6f70ab856c420d54a404301 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 8 May 2021 02:12:03 +0000 Subject: [PATCH 111/757] Bump hosted-git-info from 2.8.8 to 2.8.9 in /frontend Bumps [hosted-git-info](https://github.com/npm/hosted-git-info) from 2.8.8 to 2.8.9. - [Release notes](https://github.com/npm/hosted-git-info/releases) - [Changelog](https://github.com/npm/hosted-git-info/blob/v2.8.9/CHANGELOG.md) - [Commits](https://github.com/npm/hosted-git-info/compare/v2.8.8...v2.8.9) Signed-off-by: dependabot[bot] --- frontend/yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/frontend/yarn.lock b/frontend/yarn.lock index b14a4929f..cfb1e857c 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -3541,9 +3541,9 @@ homedir-polyfill@^1.0.1: parse-passwd "^1.0.0" hosted-git-info@^2.1.4: - version "2.8.8" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" - integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== + version "2.8.9" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== html-minifier-terser@^5.0.1: version "5.1.1" From ba457055716431dfae62ae951fa8a6cf7132e419 Mon Sep 17 00:00:00 2001 From: Jamie Curnow Date: Sat, 8 May 2021 12:17:10 +1000 Subject: [PATCH 112/757] Partial revert of 421934e Keeping the server block of websocket definitions but also bringing back the location block after discussions on #1067 --- backend/templates/proxy_host.conf | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/backend/templates/proxy_host.conf b/backend/templates/proxy_host.conf index e547968f0..538b85e51 100644 --- a/backend/templates/proxy_host.conf +++ b/backend/templates/proxy_host.conf @@ -53,6 +53,12 @@ proxy_http_version 1.1; {% include "_hsts.conf" %} + {% if allow_websocket_upgrade == 1 or allow_websocket_upgrade == true %} + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection $http_connection; + proxy_http_version 1.1; + {% endif %} + # Proxy! include conf.d/include/proxy.conf; } From f26df7d9bb9a6fb148f4cb2b2dc29c15de2d76fb Mon Sep 17 00:00:00 2001 From: vipergts450 <60085845+vipergts450@users.noreply.github.com> Date: Fri, 7 May 2021 22:43:22 -0400 Subject: [PATCH 113/757] Update nginx.js --- backend/internal/nginx.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/internal/nginx.js b/backend/internal/nginx.js index 39753e5de..68dc470ea 100644 --- a/backend/internal/nginx.js +++ b/backend/internal/nginx.js @@ -101,7 +101,7 @@ const internalNginx = { logger.info('Testing Nginx configuration'); } - return utils.exec('/usr/sbin/nginx -t '); + return utils.exec('/usr/sbin/nginx -t -g "error_log off;"'); }, /** From ca1ea042b20a7faa81a276dba1599e5696d8158f Mon Sep 17 00:00:00 2001 From: vipergts450 <60085845+vipergts450@users.noreply.github.com> Date: Fri, 7 May 2021 23:31:51 -0400 Subject: [PATCH 114/757] Update nginx.js --- backend/internal/nginx.js | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/backend/internal/nginx.js b/backend/internal/nginx.js index 68dc470ea..72f69d01b 100644 --- a/backend/internal/nginx.js +++ b/backend/internal/nginx.js @@ -137,7 +137,7 @@ const internalNginx = { */ renderLocations: (host) => { - // logger.info('host = ' + JSON.stringify(host, null, 2)); + //logger.info('host = ' + JSON.stringify(host, null, 2)); return new Promise((resolve, reject) => { let template; @@ -149,18 +149,18 @@ const internalNginx = { } let renderer = new Liquid({ - root: __dirname + '/../templates/' - }); + root: __dirname + '/../templates/' + }); let renderedLocations = ''; const locationRendering = async () => { for (let i = 0; i < host.locations.length; i++) { - let locationCopy = Object.assign({}, {access_list_id : host.access_list_id}, {certificate_id : host.certificate_id}, - {ssl_forced : host.ssl_forced}, {caching_enabled : host.caching_enabled}, - {block_exploits : host.block_exploits}, {allow_websocket_upgrade : host.allow_websocket_upgrade}, - {http2_support : host.http2_support}, {hsts_enabled : host.hsts_enabled}, - {hsts_subdomains : host.hsts_subdomains}, {access_list : host.access_list}, - {certificate : host.certificate}, host.locations[i]); + let locationCopy = Object.assign({}, {access_list_id: host.access_list_id}, {certificate_id: host.certificate_id}, + {ssl_forced: host.ssl_forced}, {caching_enabled: host.caching_enabled}, + {block_exploits: host.block_exploits}, {allow_websocket_upgrade: host.allow_websocket_upgrade}, + {http2_support: host.http2_support}, {hsts_enabled: host.hsts_enabled}, + {hsts_subdomains: host.hsts_subdomains}, {access_list: host.access_list}, + {certificate: host.certificate}, host.locations[i]); if (locationCopy.forward_host.indexOf('/') > -1) { const splitted = locationCopy.forward_host.split('/'); @@ -169,7 +169,7 @@ const internalNginx = { locationCopy.forward_path = `/${splitted.join('/')}`; } - // logger.info('locationCopy = ' + JSON.stringify(locationCopy, null, 2)); + //logger.info('locationCopy = ' + JSON.stringify(locationCopy, null, 2)); // eslint-disable-next-line renderedLocations += await renderer.parseAndRender(template, locationCopy); @@ -223,7 +223,7 @@ const internalNginx = { } if (host.locations) { - // logger.info ('host.locations = ' + JSON.stringify(host.locations, null, 2)); + //logger.info ('host.locations = ' + JSON.stringify(host.locations, null, 2)); origLocations = [].concat(host.locations); locationsPromise = internalNginx.renderLocations(host).then((renderedLocations) => { host.locations = renderedLocations; From 69ee6b1699f9674df3c27559b74286da9c0e0fa4 Mon Sep 17 00:00:00 2001 From: vipergts450 <60085845+vipergts450@users.noreply.github.com> Date: Fri, 7 May 2021 23:38:32 -0400 Subject: [PATCH 115/757] Update nginx.js --- backend/internal/nginx.js | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/backend/internal/nginx.js b/backend/internal/nginx.js index 72f69d01b..52bdd66dc 100644 --- a/backend/internal/nginx.js +++ b/backend/internal/nginx.js @@ -156,11 +156,10 @@ const internalNginx = { const locationRendering = async () => { for (let i = 0; i < host.locations.length; i++) { let locationCopy = Object.assign({}, {access_list_id: host.access_list_id}, {certificate_id: host.certificate_id}, - {ssl_forced: host.ssl_forced}, {caching_enabled: host.caching_enabled}, - {block_exploits: host.block_exploits}, {allow_websocket_upgrade: host.allow_websocket_upgrade}, - {http2_support: host.http2_support}, {hsts_enabled: host.hsts_enabled}, - {hsts_subdomains: host.hsts_subdomains}, {access_list: host.access_list}, - {certificate: host.certificate}, host.locations[i]); + {ssl_forced: host.ssl_forced}, {caching_enabled: host.caching_enabled}, {block_exploits: host.block_exploits}, + {allow_websocket_upgrade: host.allow_websocket_upgrade}, {http2_support: host.http2_support}, + {hsts_enabled: host.hsts_enabled}, {hsts_subdomains: host.hsts_subdomains}, {access_list: host.access_list}, + {certificate: host.certificate}, host.locations[i]); if (locationCopy.forward_host.indexOf('/') > -1) { const splitted = locationCopy.forward_host.split('/'); From 3e600552dc4c63274158fda2ab928fcc4ff1f0f0 Mon Sep 17 00:00:00 2001 From: chaptergy <26956711+chaptergy@users.noreply.github.com> Date: Sun, 9 May 2021 19:45:42 +0200 Subject: [PATCH 116/757] Adds regru dns provider Issue #938 --- global/certbot-dns-plugins.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/global/certbot-dns-plugins.js b/global/certbot-dns-plugins.js index 0c4e3b39f..35a8395ab 100644 --- a/global/certbot-dns-plugins.js +++ b/global/certbot-dns-plugins.js @@ -254,6 +254,16 @@ certbot_dns_powerdns:dns_powerdns_api_key = AbCbASsd!@34`, full_plugin_name: 'certbot-dns-powerdns:dns-powerdns', }, //####################################################// + regru: { + display_name: 'reg.ru', + package_name: 'certbot-regru', + package_version: '1.0.2', + dependencies: '', + credentials: `certbot_regru:dns_username=username +certbot_regru:dns_password=password`, + full_plugin_name: 'certbot-regru:dns', + }, + //####################################################// rfc2136: { display_name: 'RFC 2136', package_name: 'certbot-dns-rfc2136', From 7c2540b193a4ef6562ed9d7492d094feaad6b419 Mon Sep 17 00:00:00 2001 From: chaptergy <26956711+chaptergy@users.noreply.github.com> Date: Sun, 9 May 2021 19:46:20 +0200 Subject: [PATCH 117/757] Adds Azure dns provider Issue #864 --- global/certbot-dns-plugins.js | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/global/certbot-dns-plugins.js b/global/certbot-dns-plugins.js index 35a8395ab..b9001ffbe 100644 --- a/global/certbot-dns-plugins.js +++ b/global/certbot-dns-plugins.js @@ -30,6 +30,32 @@ certbot_dns_aliyun:dns_aliyun_access_key_secret = 1234567890abcdef1234567890abcd full_plugin_name: 'certbot-dns-aliyun:dns-aliyun', }, //####################################################// + azure: { + display_name: 'Azure', + package_name: 'certbot-dns-azure', + package_version: '1.1.0', + dependencies: '', + credentials: `# This plugin supported API authentication using either Service Principals or utilizing a Managed Identity assigned to the virtual machine. +# Regardless which authentication method used, the identity will need the “DNS Zone Contributor” role assigned to it. +# As multiple Azure DNS Zones in multiple resource groups can exist, the config file needs a mapping of zone to resource group ID. Multiple zones -> ID mappings can be listed by using the key dns_azure_zoneX where X is a unique number. At least 1 zone mapping is required. + +# Using a service principal (option 1) +dns_azure_sp_client_id = 912ce44a-0156-4669-ae22-c16a17d34ca5 +dns_azure_sp_client_secret = E-xqXU83Y-jzTI6xe9fs2YC~mck3ZzUih9 +dns_azure_tenant_id = ed1090f3-ab18-4b12-816c-599af8a88cf7 + +# Using used assigned MSI (option 2) +# dns_azure_msi_client_id = 912ce44a-0156-4669-ae22-c16a17d34ca5 + +# Using system assigned MSI (option 3) +# dns_azure_msi_system_assigned = true + +# Zones (at least one always required) +dns_azure_zone1 = example.com:/subscriptions/c135abce-d87d-48df-936c-15596c6968a5/resourceGroups/dns1 +dns_azure_zone2 = example.org:/subscriptions/99800903-fb14-4992-9aff-12eaf2744622/resourceGroups/dns2`, + full_plugin_name: 'dns-azure', + }, + //####################################################// cloudflare: { display_name: 'Cloudflare', package_name: 'certbot-dns-cloudflare', From c9daf19940887afba6ffa515016a7de6ee89d4a8 Mon Sep 17 00:00:00 2001 From: chaptergy <26956711+chaptergy@users.noreply.github.com> Date: Sun, 9 May 2021 21:36:52 +0200 Subject: [PATCH 118/757] Reorders some providers alphabetically --- global/certbot-dns-plugins.js | 72 +++++++++++++++++------------------ 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/global/certbot-dns-plugins.js b/global/certbot-dns-plugins.js index b9001ffbe..468287069 100644 --- a/global/certbot-dns-plugins.js +++ b/global/certbot-dns-plugins.js @@ -20,6 +20,16 @@ */ module.exports = { + //####################################################// + acmedns: { + display_name: 'ACME-DNS', + package_name: 'certbot-dns-acmedns', + package_version: '0.1.0', + dependencies: '', + credentials: `certbot_dns_acmedns:dns_acmedns_api_url = http://acmedns-server/ +certbot_dns_acmedns:dns_acmedns_registration_file = /data/acme-registration.json`, + full_plugin_name: 'certbot-dns-acmedns:dns-acmedns', + }, aliyun: { display_name: 'Aliyun', package_name: 'certbot-dns-aliyun', @@ -97,6 +107,15 @@ certbot_dns_cpanel:cpanel_password = hunter2`, full_plugin_name: 'certbot-dns-cpanel:cpanel', }, //####################################################// + duckdns: { + display_name: 'DuckDNS', + package_name: 'certbot-dns-duckdns', + package_version: '0.5', + dependencies: '', + credentials: 'dns_duckdns_token=', + full_plugin_name: 'dns-duckdns', + }, + //####################################################// digitalocean: { display_name: 'DigitalOcean', package_name: 'certbot-dns-digitalocean', @@ -146,6 +165,17 @@ certbot_dns_dnspod:dns_dnspod_api_token = "DNSPOD-API-TOKEN"`, full_plugin_name: 'certbot-dns-dnspod:dns-dnspod', }, //####################################################// + eurodns: { + display_name: 'EuroDNS', + package_name: 'certbot-dns-eurodns', + package_version: '0.0.4', + dependencies: '', + credentials: `dns_eurodns_applicationId = myuser +dns_eurodns_apiKey = mysecretpassword +dns_eurodns_endpoint = https://rest-api.eurodns.com/user-api-gateway/proxy`, + full_plugin_name: 'certbot-dns-eurodns:dns-eurodns', + }, + //####################################################// gandi: { display_name: 'Gandi Live DNS', package_name: 'certbot_plugin_gandi', @@ -319,26 +349,6 @@ aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY`, full_plugin_name: 'dns-route53', }, //####################################################// - vultr: { - display_name: 'Vultr', - package_name: 'certbot-dns-vultr', - package_version: '1.0.3', - dependencies: '', - credentials: 'certbot_dns_vultr:dns_vultr_key = YOUR_VULTR_API_KEY', - full_plugin_name: 'certbot-dns-vultr:dns-vultr', - }, - //####################################################// - eurodns: { - display_name: 'EuroDNS', - package_name: 'certbot-dns-eurodns', - package_version: '0.0.4', - dependencies: '', - credentials: `dns_eurodns_applicationId = myuser -dns_eurodns_apiKey = mysecretpassword -dns_eurodns_endpoint = https://rest-api.eurodns.com/user-api-gateway/proxy`, - full_plugin_name: 'certbot-dns-eurodns:dns-eurodns', - }, - //####################################################// transip: { display_name: 'TransIP', package_name: 'certbot-dns-transip', @@ -349,22 +359,12 @@ certbot_dns_transip:dns_transip_key_file = /etc/letsencrypt/transip-rsa.key`, full_plugin_name: 'certbot-dns-transip:dns-transip', }, //####################################################// - acmedns: { - display_name: 'ACME-DNS', - package_name: 'certbot-dns-acmedns', - package_version: '0.1.0', - dependencies: '', - credentials: `certbot_dns_acmedns:dns_acmedns_api_url = http://acmedns-server/ -certbot_dns_acmedns:dns_acmedns_registration_file = /data/acme-registration.json`, - full_plugin_name: 'certbot-dns-acmedns:dns-acmedns', - }, - //####################################################// - duckdns: { - display_name: 'DuckDNS', - package_name: 'certbot-dns-duckdns', - package_version: '0.5', + vultr: { + display_name: 'Vultr', + package_name: 'certbot-dns-vultr', + package_version: '1.0.3', dependencies: '', - credentials: '', - full_plugin_name: 'certbot-dns-duckdns:dns-duckdns', + credentials: 'certbot_dns_vultr:dns_vultr_key = YOUR_VULTR_API_KEY', + full_plugin_name: 'certbot-dns-vultr:dns-vultr', }, }; From cd4caea2dc59f4d107a1e918a24a306f42dca5dc Mon Sep 17 00:00:00 2001 From: chaptergy <26956711+chaptergy@users.noreply.github.com> Date: Sun, 9 May 2021 21:47:30 +0200 Subject: [PATCH 119/757] Adds coudns dns provider --- global/certbot-dns-plugins.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/global/certbot-dns-plugins.js b/global/certbot-dns-plugins.js index 468287069..85592b3c1 100644 --- a/global/certbot-dns-plugins.js +++ b/global/certbot-dns-plugins.js @@ -76,6 +76,22 @@ dns_cloudflare_api_token = 0123456789abcdef0123456789abcdef01234567`, full_plugin_name: 'dns-cloudflare', }, //####################################################// + cloudns: { + display_name: 'ClouDNS', + package_name: 'certbot-dns-cloudns', + package_version: '0.4.0', + dependencies: '', + credentials: `# Target user ID (see https://www.cloudns.net/api-settings/) + dns_cloudns_auth_id=1234 + # Alternatively, one of the following two options can be set: + # dns_cloudns_sub_auth_id=1234 + # dns_cloudns_sub_auth_user=foobar + + # API password + dns_cloudns_auth_password=password1`, + full_plugin_name: 'dns-cloudns', + }, + //####################################################// cloudxns: { display_name: 'CloudXNS', package_name: 'certbot-dns-cloudxns', From 62a708b416f07b0847bf0715bc9950f3af753fa2 Mon Sep 17 00:00:00 2001 From: Jamie Curnow Date: Mon, 10 May 2021 08:18:19 +1000 Subject: [PATCH 120/757] Version bump --- .version | 2 +- README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.version b/.version index dedcc7d43..5d9ade10c 100644 --- a/.version +++ b/.version @@ -1 +1 @@ -2.9.1 +2.9.2 diff --git a/README.md b/README.md index 2ec9395f0..98419212e 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@



- + From 899b487daa9105592e25fefeafd017edd11abbb7 Mon Sep 17 00:00:00 2001 From: chaptergy <26956711+chaptergy@users.noreply.github.com> Date: Mon, 10 May 2021 19:58:28 +0200 Subject: [PATCH 121/757] Puts backend errors into own error field --- frontend/js/app/user/password.ejs | 3 ++- frontend/js/app/user/password.js | 29 ++++++++++++++++++++--------- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/frontend/js/app/user/password.ejs b/frontend/js/app/user/password.ejs index 7dd497d15..a45cc7ed7 100644 --- a/frontend/js/app/user/password.ejs +++ b/frontend/js/app/user/password.ejs @@ -4,6 +4,7 @@