From 4c59400731b5bc432649d8a0f7aa2bffec79c634 Mon Sep 17 00:00:00 2001 From: Benjamin Hubert Date: Tue, 16 May 2023 21:46:26 +0200 Subject: [PATCH 01/29] added support for dns.he.net certbot plugin #2153 --- 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 8ac9ea81..042f674c 100644 --- a/global/certbot-dns-plugins.js +++ b/global/certbot-dns-plugins.js @@ -286,6 +286,16 @@ dns_google_domains_zone = "example.com"`, full_plugin_name: 'dns-google-domains', }, //####################################################// + he: { + display_name: 'Hurricane Electric', + package_name: 'certbot-dns-he', + version_requirement: '~=1.0.0', + dependencies: '', + credentials: `dns_he_user = Me +dns_he_pass = my HE password`, + full_plugin_name: 'dns-he', + }, + //####################################################// hetzner: { display_name: 'Hetzner', package_name: 'certbot-dns-hetzner', From 2d9f04edcd0d9b7e52c7808a5a3191fd0a2c1f94 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 17 Oct 2023 03:33:12 +0000 Subject: [PATCH 02/29] Bump @babel/traverse from 7.11.0 to 7.23.2 in /frontend Bumps [@babel/traverse](https://github.com/babel/babel/tree/HEAD/packages/babel-traverse) from 7.11.0 to 7.23.2. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.23.2/packages/babel-traverse) --- updated-dependencies: - dependency-name: "@babel/traverse" dependency-type: indirect ... Signed-off-by: dependabot[bot] --- frontend/yarn.lock | 152 ++++++++++++++++++++++++++++++++++++++------- 1 file changed, 128 insertions(+), 24 deletions(-) diff --git a/frontend/yarn.lock b/frontend/yarn.lock index bcee76c8..d2225532 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -9,6 +9,14 @@ dependencies: "@babel/highlight" "^7.10.4" +"@babel/code-frame@^7.22.13": + version "7.22.13" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e" + integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w== + dependencies: + "@babel/highlight" "^7.22.13" + chalk "^2.4.2" + "@babel/core@^7.9.0": version "7.11.1" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.11.1.tgz#2c55b604e73a40dc21b0e52650b11c65cf276643" @@ -40,21 +48,35 @@ jsesc "^2.5.1" source-map "^0.5.0" -"@babel/helper-function-name@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz#d2d3b20c59ad8c47112fa7d2a94bc09d5ef82f1a" - integrity sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ== +"@babel/generator@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.0.tgz#df5c386e2218be505b34837acbcb874d7a983420" + integrity sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g== dependencies: - "@babel/helper-get-function-arity" "^7.10.4" - "@babel/template" "^7.10.4" - "@babel/types" "^7.10.4" + "@babel/types" "^7.23.0" + "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" + jsesc "^2.5.1" -"@babel/helper-get-function-arity@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz#98c1cbea0e2332f33f9a4661b8ce1505b2c19ba2" - integrity sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A== +"@babel/helper-environment-visitor@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" + integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== + +"@babel/helper-function-name@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" + integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== dependencies: - "@babel/types" "^7.10.4" + "@babel/template" "^7.22.15" + "@babel/types" "^7.23.0" + +"@babel/helper-hoist-variables@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" + integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== + dependencies: + "@babel/types" "^7.22.5" "@babel/helper-member-expression-to-functions@^7.10.4": version "7.11.0" @@ -115,11 +137,28 @@ dependencies: "@babel/types" "^7.11.0" +"@babel/helper-split-export-declaration@^7.22.6": + version "7.22.6" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" + integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-string-parser@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" + integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== + "@babel/helper-validator-identifier@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw== +"@babel/helper-validator-identifier@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" + integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== + "@babel/helpers@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.10.4.tgz#2abeb0d721aff7c0a97376b9e1f6f65d7a475044" @@ -138,11 +177,25 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.10.4", "@babel/parser@^7.11.0", "@babel/parser@^7.11.1": +"@babel/highlight@^7.22.13": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.20.tgz#4ca92b71d80554b01427815e06f2df965b9c1f54" + integrity sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg== + dependencies: + "@babel/helper-validator-identifier" "^7.22.20" + chalk "^2.4.2" + js-tokens "^4.0.0" + +"@babel/parser@^7.10.4", "@babel/parser@^7.11.1": version "7.11.2" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.11.2.tgz#0882ab8a455df3065ea2dcb4c753b2460a24bead" integrity sha512-Vuj/+7vLo6l1Vi7uuO+1ngCDNeVmNbTngcJFKCR/oEtz8tKz0CJxZEGmPt9KcIloZhOZ3Zit6xbpXT2MDlS9Vw== +"@babel/parser@^7.22.15", "@babel/parser@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.0.tgz#da950e622420bf96ca0d0f2909cdddac3acd8719" + integrity sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw== + "@babel/template@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.10.4.tgz#3251996c4200ebc71d1a8fc405fba940f36ba278" @@ -152,20 +205,30 @@ "@babel/parser" "^7.10.4" "@babel/types" "^7.10.4" -"@babel/traverse@^7.10.4", "@babel/traverse@^7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.11.0.tgz#9b996ce1b98f53f7c3e4175115605d56ed07dd24" - integrity sha512-ZB2V+LskoWKNpMq6E5UUCrjtDUh5IOTAyIl0dTjIEoXum/iKWkoIEKIRDnUucO6f+2FzNkE0oD4RLKoPIufDtg== +"@babel/template@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" + integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.11.0" - "@babel/helper-function-name" "^7.10.4" - "@babel/helper-split-export-declaration" "^7.11.0" - "@babel/parser" "^7.11.0" - "@babel/types" "^7.11.0" + "@babel/code-frame" "^7.22.13" + "@babel/parser" "^7.22.15" + "@babel/types" "^7.22.15" + +"@babel/traverse@^7.10.4", "@babel/traverse@^7.11.0": + version "7.23.2" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.2.tgz#329c7a06735e144a506bdb2cad0268b7f46f4ad8" + integrity sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw== + dependencies: + "@babel/code-frame" "^7.22.13" + "@babel/generator" "^7.23.0" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/parser" "^7.23.0" + "@babel/types" "^7.23.0" debug "^4.1.0" globals "^11.1.0" - lodash "^4.17.19" "@babel/types@^7.10.4", "@babel/types@^7.11.0": version "7.11.0" @@ -176,6 +239,47 @@ lodash "^4.17.19" to-fast-properties "^2.0.0" +"@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.0.tgz#8c1f020c9df0e737e4e247c0619f58c68458aaeb" + integrity sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg== + dependencies: + "@babel/helper-string-parser" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.20" + to-fast-properties "^2.0.0" + +"@jridgewell/gen-mapping@^0.3.2": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" + integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== + dependencies: + "@jridgewell/set-array" "^1.0.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" + integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== + +"@jridgewell/set-array@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" + integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== + +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + +"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": + version "0.3.19" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz#f8a3249862f91be48d3127c3cfe992f79b4b8811" + integrity sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + "@nodelib/fs.scandir@2.1.3": version "2.1.3" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b" From f41b1069aef9df2af780b33a4fc85877b4916a60 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 27 Oct 2023 13:36:29 +0000 Subject: [PATCH 03/29] Bump browserify-sign from 4.2.1 to 4.2.2 in /frontend Bumps [browserify-sign](https://github.com/crypto-browserify/browserify-sign) from 4.2.1 to 4.2.2. - [Changelog](https://github.com/browserify/browserify-sign/blob/main/CHANGELOG.md) - [Commits](https://github.com/crypto-browserify/browserify-sign/compare/v4.2.1...v4.2.2) --- updated-dependencies: - dependency-name: browserify-sign dependency-type: indirect ... Signed-off-by: dependabot[bot] --- frontend/yarn.lock | 74 +++++++++++++++++++++++++++++++++++----------- 1 file changed, 56 insertions(+), 18 deletions(-) diff --git a/frontend/yarn.lock b/frontend/yarn.lock index bcee76c8..23864928 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -676,6 +676,16 @@ asn1.js@^4.0.0: inherits "^2.0.1" minimalistic-assert "^1.0.0" +asn1.js@^5.2.0: + version "5.4.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" + integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + safer-buffer "^2.1.0" + asn1@~0.2.3: version "0.2.4" resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" @@ -1366,10 +1376,10 @@ bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: 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" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.2.tgz#c9686902d3c9a27729f43ab10f9d79c2004da7b0" - integrity sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA== +bn.js@^5.0.0, bn.js@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" + integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== boolbase@~1.0.0: version "1.0.0" @@ -1462,7 +1472,7 @@ browserify-des@^1.0.0: inherits "^2.0.1" safe-buffer "^5.1.2" -browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: +browserify-rsa@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= @@ -1470,20 +1480,28 @@ browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: bn.js "^4.1.0" randombytes "^2.0.1" -browserify-sign@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" - integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== +browserify-rsa@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" + integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== dependencies: - bn.js "^5.1.1" - browserify-rsa "^4.0.1" + bn.js "^5.0.0" + randombytes "^2.0.1" + +browserify-sign@^4.0.0: + version "4.2.2" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.2.tgz#e78d4b69816d6e3dd1c747e64e9947f9ad79bc7e" + integrity sha512-1rudGyeYY42Dk6texmv7c4VcQ0EsvVbLwZkA+AQB7SxvXxmcD93jcHie8bzecJ+ChDlmAm2Qyu0+Ccg5uhZXCg== + dependencies: + bn.js "^5.2.1" + browserify-rsa "^4.1.0" create-hash "^1.2.0" create-hmac "^1.1.7" - elliptic "^6.5.3" + elliptic "^6.5.4" inherits "^2.0.4" - parse-asn1 "^5.1.5" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" + parse-asn1 "^5.1.6" + readable-stream "^3.6.2" + safe-buffer "^5.2.1" browserify-zlib@^0.2.0: version "0.2.0" @@ -2433,7 +2451,7 @@ electron-to-chromium@^1.3.47: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.522.tgz#4a6485ad187ffd31913bba0747d0e36405f405d6" integrity sha512-67V62Z4CFOiAtox+o+tosGfVk0QX4DJgH609tjT8QymbJZVAI/jWnAthnr8c5hnRNziIRwkc9EMQYejiVz3/9Q== -elliptic@^6.5.3: +elliptic@^6.5.3, elliptic@^6.5.4: version "6.5.4" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== @@ -4871,7 +4889,7 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" -parse-asn1@^5.0.0, parse-asn1@^5.1.5: +parse-asn1@^5.0.0: version "5.1.5" resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.5.tgz#003271343da58dc94cace494faef3d2147ecea0e" integrity sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ== @@ -4883,6 +4901,17 @@ parse-asn1@^5.0.0, parse-asn1@^5.1.5: pbkdf2 "^3.0.3" safe-buffer "^5.1.1" +parse-asn1@^5.1.6: + version "5.1.6" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" + integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== + dependencies: + asn1.js "^5.2.0" + browserify-aes "^1.0.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + safe-buffer "^5.1.1" + parse-json@^5.0.0: version "5.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" @@ -5308,6 +5337,15 @@ readable-stream@^3.1.1, readable-stream@^3.6.0: string_decoder "^1.1.1" util-deprecate "^1.0.1" +readable-stream@^3.6.2: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + readdirp@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" @@ -5612,7 +5650,7 @@ rxjs@^6.6.0: dependencies: tslib "^1.9.0" -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== From 2df4620d054c436629603eaee1b93ba8bfda7c09 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 27 Oct 2023 13:36:54 +0000 Subject: [PATCH 04/29] Bump browserify-sign from 4.2.1 to 4.2.2 in /docs Bumps [browserify-sign](https://github.com/crypto-browserify/browserify-sign) from 4.2.1 to 4.2.2. - [Changelog](https://github.com/browserify/browserify-sign/blob/main/CHANGELOG.md) - [Commits](https://github.com/crypto-browserify/browserify-sign/compare/v4.2.1...v4.2.2) --- updated-dependencies: - dependency-name: browserify-sign dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- docs/yarn.lock | 68 +++++++++++++++++++++----------------------------- 1 file changed, 29 insertions(+), 39 deletions(-) diff --git a/docs/yarn.lock b/docs/yarn.lock index 85dafbb0..3a38e241 100644 --- a/docs/yarn.lock +++ b/docs/yarn.lock @@ -1808,16 +1808,7 @@ array-unique@^0.3.2: resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= -asn1.js@^4.0.0: - version "4.10.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" - integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -asn1.js@^5.4.1: +asn1.js@^5.2.0, asn1.js@^5.4.1: version "5.4.1" resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== @@ -2065,10 +2056,10 @@ bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: 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" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.2.tgz#c9686902d3c9a27729f43ab10f9d79c2004da7b0" - integrity sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA== +bn.js@^5.0.0, bn.js@^5.1.2, bn.js@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" + integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== body-parser@1.19.2, body-parser@^1.19.0: version "1.19.2" @@ -2184,28 +2175,28 @@ browserify-des@^1.0.0, browserify-des@^1.0.2: inherits "^2.0.1" safe-buffer "^5.1.2" -browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" - integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= +browserify-rsa@^4.0.0, browserify-rsa@^4.0.1, browserify-rsa@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" + integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== dependencies: - bn.js "^4.1.0" + bn.js "^5.0.0" randombytes "^2.0.1" browserify-sign@^4.0.0, browserify-sign@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" - integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== + version "4.2.2" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.2.tgz#e78d4b69816d6e3dd1c747e64e9947f9ad79bc7e" + integrity sha512-1rudGyeYY42Dk6texmv7c4VcQ0EsvVbLwZkA+AQB7SxvXxmcD93jcHie8bzecJ+ChDlmAm2Qyu0+Ccg5uhZXCg== dependencies: - bn.js "^5.1.1" - browserify-rsa "^4.0.1" + bn.js "^5.2.1" + browserify-rsa "^4.1.0" create-hash "^1.2.0" create-hmac "^1.1.7" - elliptic "^6.5.3" + elliptic "^6.5.4" inherits "^2.0.4" - parse-asn1 "^5.1.5" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" + parse-asn1 "^5.1.6" + readable-stream "^3.6.2" + safe-buffer "^5.2.1" browserify-zlib@^0.2.0: version "0.2.0" @@ -3748,7 +3739,7 @@ electron-to-chromium@^1.3.522, electron-to-chromium@^1.3.719: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.739.tgz#f07756aa92cabd5a6eec6f491525a64fe62f98b9" integrity sha512-+LPJVRsN7hGZ9EIUUiWCpO7l4E3qBYHNadazlucBfsXBbccDFNKUBAgzE68FnkWGJPwD/AfKhSzL+G+Iqb8A4A== -elliptic@^6.5.3: +elliptic@^6.5.3, elliptic@^6.5.4: version "6.5.4" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== @@ -7195,14 +7186,13 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" -parse-asn1@^5.0.0, parse-asn1@^5.1.5: - version "5.1.5" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.5.tgz#003271343da58dc94cace494faef3d2147ecea0e" - integrity sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ== +parse-asn1@^5.0.0, parse-asn1@^5.1.5, parse-asn1@^5.1.6: + version "5.1.6" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" + integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== dependencies: - asn1.js "^4.0.0" + asn1.js "^5.2.0" browserify-aes "^1.0.0" - create-hash "^1.1.0" evp_bytestokey "^1.0.0" pbkdf2 "^3.0.3" safe-buffer "^5.1.1" @@ -8066,10 +8056,10 @@ rc@^1.2.8: string_decoder "~1.1.1" util-deprecate "~1.0.1" -"readable-stream@2 || 3", readable-stream@3, readable-stream@^3.0.2, readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.5.0, readable-stream@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== +"readable-stream@2 || 3", readable-stream@3, readable-stream@^3.0.2, readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.5.0, readable-stream@^3.6.0, readable-stream@^3.6.2: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== dependencies: inherits "^2.0.3" string_decoder "^1.1.1" From e08a4d44901081ea0e8b33d0f865d4fc4a0a1806 Mon Sep 17 00:00:00 2001 From: Jamie Curnow Date: Tue, 28 Nov 2023 08:27:11 +1000 Subject: [PATCH 05/29] Update mariadb example to auto upgrade from latest image --- docs/advanced-config/README.md | 1 + docs/setup/README.md | 1 + 2 files changed, 2 insertions(+) diff --git a/docs/advanced-config/README.md b/docs/advanced-config/README.md index 09c5a882..f0cbf99a 100644 --- a/docs/advanced-config/README.md +++ b/docs/advanced-config/README.md @@ -138,6 +138,7 @@ services: MYSQL_USER: "npm" # MYSQL_PASSWORD: "npm" # use secret instead MYSQL_PASSWORD__FILE: /run/secrets/MYSQL_PWD + MARIADB_AUTO_UPGRADE: '1' volumes: - ./mysql:/var/lib/mysql secrets: diff --git a/docs/setup/README.md b/docs/setup/README.md index 032b714c..0e881abf 100644 --- a/docs/setup/README.md +++ b/docs/setup/README.md @@ -86,6 +86,7 @@ services: MYSQL_DATABASE: 'npm' MYSQL_USER: 'npm' MYSQL_PASSWORD: 'npm' + MARIADB_AUTO_UPGRADE: '1' volumes: - ./mysql:/var/lib/mysql ``` From 289e438c59ed707f6335404da2e4b15589583075 Mon Sep 17 00:00:00 2001 From: Dario Viva Date: Sat, 2 Dec 2023 03:26:34 +0100 Subject: [PATCH 06/29] only add hsts header with https. fixes https://github.com/NginxProxyManager/nginx-proxy-manager/issues/1005 for more information look at: https://websistent.com/add-the-hsts-header-only-for-https-requests-nginx/ --- backend/templates/_hsts.conf | 2 +- backend/templates/_hsts_map.conf | 3 +++ backend/templates/_location.conf | 2 ++ backend/templates/dead_host.conf | 3 +++ backend/templates/proxy_host.conf | 3 +++ backend/templates/redirection_host.conf | 3 +++ 6 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 backend/templates/_hsts_map.conf diff --git a/backend/templates/_hsts.conf b/backend/templates/_hsts.conf index 11aecf24..26c83ee8 100644 --- a/backend/templates/_hsts.conf +++ b/backend/templates/_hsts.conf @@ -2,7 +2,7 @@ {% if ssl_forced == 1 or ssl_forced == true %} {% if hsts_enabled == 1 or hsts_enabled == true %} # 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; + add_header Strict-Transport-Security $hsts_header always; {% endif %} {% endif %} {% endif %} diff --git a/backend/templates/_hsts_map.conf b/backend/templates/_hsts_map.conf new file mode 100644 index 00000000..27dd1f8f --- /dev/null +++ b/backend/templates/_hsts_map.conf @@ -0,0 +1,3 @@ +map $scheme $hsts_header { + https "max-age=63072000;{% if hsts_subdomains == 1 or hsts_subdomains == true -%} includeSubDomains;{% endif %} preload"; +} \ No newline at end of file diff --git a/backend/templates/_location.conf b/backend/templates/_location.conf index 2ee0d31b..c561c274 100644 --- a/backend/templates/_location.conf +++ b/backend/templates/_location.conf @@ -1,3 +1,5 @@ + {% include "_hsts_map.conf" %} + location {{ path }} { proxy_set_header Host $host; proxy_set_header X-Forwarded-Scheme $scheme; diff --git a/backend/templates/dead_host.conf b/backend/templates/dead_host.conf index d94dff57..7a06469a 100644 --- a/backend/templates/dead_host.conf +++ b/backend/templates/dead_host.conf @@ -1,6 +1,9 @@ {% include "_header_comment.conf" %} {% if enabled %} + +{% include "_hsts_map.conf" %} + server { {% include "_listen.conf" %} {% include "_certificates.conf" %} diff --git a/backend/templates/proxy_host.conf b/backend/templates/proxy_host.conf index 81a542ea..d23ca46f 100644 --- a/backend/templates/proxy_host.conf +++ b/backend/templates/proxy_host.conf @@ -1,6 +1,9 @@ {% include "_header_comment.conf" %} {% if enabled %} + +{% include "_hsts_map.conf" %} + server { set $forward_scheme {{ forward_scheme }}; set $server "{{ forward_host }}"; diff --git a/backend/templates/redirection_host.conf b/backend/templates/redirection_host.conf index 339fe72e..7dd36079 100644 --- a/backend/templates/redirection_host.conf +++ b/backend/templates/redirection_host.conf @@ -1,6 +1,9 @@ {% include "_header_comment.conf" %} {% if enabled %} + +{% include "_hsts_map.conf" %} + server { {% include "_listen.conf" %} {% include "_certificates.conf" %} From 33dbffb974fd63294ccf02becda387ade9553855 Mon Sep 17 00:00:00 2001 From: Tim O'Brien Date: Sat, 2 Dec 2023 14:49:37 +1100 Subject: [PATCH 07/29] Improve container startup time See https://github.com/NginxProxyManager/nginx-proxy-manager/issues/2991 Removes uneeded file permission changes in rootfs certbot install. Tested installing custom DNS provider plugins for certbot, works correctly. --- docker/rootfs/etc/s6-overlay/s6-rc.d/prepare/30-ownership.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/prepare/30-ownership.sh b/docker/rootfs/etc/s6-overlay/s6-rc.d/prepare/30-ownership.sh index a714298b..f228353e 100755 --- a/docker/rootfs/etc/s6-overlay/s6-rc.d/prepare/30-ownership.sh +++ b/docker/rootfs/etc/s6-overlay/s6-rc.d/prepare/30-ownership.sh @@ -24,4 +24,4 @@ chown -R "$PUID:$PGID" /etc/nginx/nginx.conf chown -R "$PUID:$PGID" /etc/nginx/conf.d # Prevents errors when installing python certbot plugins when non-root -chown -R "$PUID:$PGID" /opt/certbot +chown "$PUID:$PGID" /opt/certbot/lib/python3.7/site-packages/ From 3ad2188f7833e746e870d27b0bbf2b9758da14e1 Mon Sep 17 00:00:00 2001 From: Elton Renda Date: Mon, 4 Dec 2023 10:31:26 +0000 Subject: [PATCH 08/29] chore: upddate Proxmox Scripts link --- docs/third-party/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/third-party/README.md b/docs/third-party/README.md index 2961f34e..2ef9cfd6 100644 --- a/docs/third-party/README.md +++ b/docs/third-party/README.md @@ -7,7 +7,7 @@ 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) +- [Proxmox Scripts](https://github.com/ej52/proxmox-scripts/tree/main/apps/nginx-proxy-manager) - [nginxproxymanagerGraf](https://github.com/ma-karai/nginxproxymanagerGraf) From ccf9cce8251fdbac7e4d7f46befcc0a02d801c53 Mon Sep 17 00:00:00 2001 From: Jocelyn Le Sage Date: Sat, 9 Dec 2023 11:16:37 -0500 Subject: [PATCH 09/29] Fixed issue where the HTTP2 support was always enabled in nginx config, no matter what the user configured. --- backend/templates/_listen.conf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/templates/_listen.conf b/backend/templates/_listen.conf index 730f3a7c..ad1c96ba 100644 --- a/backend/templates/_listen.conf +++ b/backend/templates/_listen.conf @@ -5,9 +5,9 @@ #listen [::]:80; {% endif %} {% if certificate -%} - listen 443 ssl{% if http2_support %} http2{% endif %}; + listen 443 ssl{% if http2_support == 1 or http2_support == true %} http2{% endif %}; {% if ipv6 -%} - listen [::]:443 ssl{% if http2_support %} http2{% endif %}; + listen [::]:443 ssl{% if http2_support == 1 or http2_support == true %} http2{% endif %}; {% else -%} #listen [::]:443; {% endif %} From 1ab3575c68ea9d2175ceb68bff141a13de3bc29c Mon Sep 17 00:00:00 2001 From: Renan Duarte <38355185+r3na@users.noreply.github.com> Date: Tue, 12 Dec 2023 09:39:28 +0100 Subject: [PATCH 10/29] fix: increasing maxOptions (amount of domains) to 30 --- frontend/js/app/nginx/certificates/form.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/js/app/nginx/certificates/form.js b/frontend/js/app/nginx/certificates/form.js index a56c3f8e..905e366d 100644 --- a/frontend/js/app/nginx/certificates/form.js +++ b/frontend/js/app/nginx/certificates/form.js @@ -265,7 +265,7 @@ module.exports = Mn.View.extend({ this.ui.domain_names.selectize({ delimiter: ',', persist: false, - maxOptions: 15, + maxOptions: 30, create: function (input) { return { value: input, From 5165de4a913c888808ca6a6c261e6a2866fe1a15 Mon Sep 17 00:00:00 2001 From: Renan Duarte <38355185+r3na@users.noreply.github.com> Date: Tue, 12 Dec 2023 12:36:05 +0100 Subject: [PATCH 11/29] fix: updating default maxOptions to 30 (proxy) --- frontend/js/app/nginx/proxy/form.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/js/app/nginx/proxy/form.js b/frontend/js/app/nginx/proxy/form.js index 1dfb5c18..98f64566 100644 --- a/frontend/js/app/nginx/proxy/form.js +++ b/frontend/js/app/nginx/proxy/form.js @@ -271,7 +271,7 @@ module.exports = Mn.View.extend({ this.ui.domain_names.selectize({ delimiter: ',', persist: false, - maxOptions: 15, + maxOptions: 30, create: function (input) { return { value: input, From 3b8cb86d72eb4e70a13b39775cc2cee3537e4881 Mon Sep 17 00:00:00 2001 From: Renan Duarte <38355185+r3na@users.noreply.github.com> Date: Tue, 12 Dec 2023 12:36:32 +0100 Subject: [PATCH 12/29] fix: updating default maxOptions to 30 (redirection) --- frontend/js/app/nginx/redirection/form.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/js/app/nginx/redirection/form.js b/frontend/js/app/nginx/redirection/form.js index 1f81feeb..ef48ffd1 100644 --- a/frontend/js/app/nginx/redirection/form.js +++ b/frontend/js/app/nginx/redirection/form.js @@ -235,7 +235,7 @@ module.exports = Mn.View.extend({ this.ui.domain_names.selectize({ delimiter: ',', persist: false, - maxOptions: 15, + maxOptions: 30, create: function (input) { return { value: input, From ca56e0483f0de8473fbd42d8de5301fd6a5e6d38 Mon Sep 17 00:00:00 2001 From: Renan Duarte <38355185+r3na@users.noreply.github.com> Date: Tue, 12 Dec 2023 12:37:06 +0100 Subject: [PATCH 13/29] fix: updating default maxOptions to 30 (dead) --- frontend/js/app/nginx/dead/form.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/js/app/nginx/dead/form.js b/frontend/js/app/nginx/dead/form.js index 8f6774f6..18d11ae0 100644 --- a/frontend/js/app/nginx/dead/form.js +++ b/frontend/js/app/nginx/dead/form.js @@ -233,7 +233,7 @@ module.exports = Mn.View.extend({ this.ui.domain_names.selectize({ delimiter: ',', persist: false, - maxOptions: 15, + maxOptions: 30, create: function (input) { return { value: input, From 1975e4a1516aa6a1d0afe755b6c67fa5dca278c3 Mon Sep 17 00:00:00 2001 From: Renan Duarte <38355185+r3na@users.noreply.github.com> Date: Tue, 12 Dec 2023 12:45:35 +0100 Subject: [PATCH 14/29] fix: updating maxItems (schema/definitions) to 30 --- backend/schema/definitions.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/schema/definitions.json b/backend/schema/definitions.json index 4b4f3405..6e0cf6aa 100644 --- a/backend/schema/definitions.json +++ b/backend/schema/definitions.json @@ -172,7 +172,7 @@ "description": "Domain Names separated by a comma", "example": "*.jc21.com,blog.jc21.com", "type": "array", - "maxItems": 15, + "maxItems": 30, "uniqueItems": true, "items": { "type": "string", From 881a067aff072e48def63a802686121098d73dda Mon Sep 17 00:00:00 2001 From: Christopher Lord Date: Wed, 13 Dec 2023 15:11:49 -0700 Subject: [PATCH 15/29] update to latest vultr certbot plugin closes https://github.com/NginxProxyManager/nginx-proxy-manager/issues/3234 --- global/certbot-dns-plugins.js | 945 +++++++++++++++++----------------- 1 file changed, 479 insertions(+), 466 deletions(-) diff --git a/global/certbot-dns-plugins.js b/global/certbot-dns-plugins.js index 1e14ad65..cbbdecf5 100644 --- a/global/certbot-dns-plugins.js +++ b/global/certbot-dns-plugins.js @@ -20,32 +20,32 @@ */ module.exports = { - //####################################################// - acmedns: { - display_name: 'ACME-DNS', - package_name: 'certbot-dns-acmedns', - version_requirement: '~=0.1.0', - dependencies: '', - credentials: `dns_acmedns_api_url = http://acmedns-server/ + //####################################################// + acmedns: { + display_name: "ACME-DNS", + package_name: "certbot-dns-acmedns", + version_requirement: "~=0.1.0", + dependencies: "", + credentials: `dns_acmedns_api_url = http://acmedns-server/ dns_acmedns_registration_file = /data/acme-registration.json`, - full_plugin_name: 'dns-acmedns', - }, - aliyun: { - display_name: 'Aliyun', - package_name: 'certbot-dns-aliyun', - version_requirement: '~=0.38.1', - dependencies: '', - credentials: `dns_aliyun_access_key = 12345678 + full_plugin_name: "dns-acmedns", + }, + aliyun: { + display_name: "Aliyun", + package_name: "certbot-dns-aliyun", + version_requirement: "~=0.38.1", + dependencies: "", + credentials: `dns_aliyun_access_key = 12345678 dns_aliyun_access_key_secret = 1234567890abcdef1234567890abcdef`, - full_plugin_name: 'dns-aliyun', - }, - //####################################################// - azure: { - display_name: 'Azure', - package_name: 'certbot-dns-azure', - version_requirement: '~=1.2.0', - dependencies: '', - credentials: `# This plugin supported API authentication using either Service Principals or utilizing a Managed Identity assigned to the virtual machine. + full_plugin_name: "dns-aliyun", + }, + //####################################################// + azure: { + display_name: "Azure", + package_name: "certbot-dns-azure", + version_requirement: "~=1.2.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. @@ -63,35 +63,36 @@ dns_azure_tenant_id = ed1090f3-ab18-4b12-816c-599af8a88cf7 # 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', - }, - //####################################################// - bunny: { - display_name: 'bunny.net', - package_name: 'certbot-dns-bunny', - version_requirement: '~=0.0.9', - dependencies: '', - credentials: `# Bunny API token used by Certbot (see https://dash.bunny.net/account/settings) + full_plugin_name: "dns-azure", + }, + //####################################################// + bunny: { + display_name: "bunny.net", + package_name: "certbot-dns-bunny", + version_requirement: "~=0.0.9", + dependencies: "", + credentials: `# Bunny API token used by Certbot (see https://dash.bunny.net/account/settings) dns_bunny_api_key = xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx`, - full_plugin_name: 'dns-bunny', - }, - //####################################################// - cloudflare: { - display_name: 'Cloudflare', - package_name: 'certbot-dns-cloudflare', - version_requirement: '==$(certbot --version | grep -Eo \'[0-9](\\.[0-9]+)+\')', // official plugin, use certbot version - dependencies: 'cloudflare', - credentials: `# Cloudflare API token + full_plugin_name: "dns-bunny", + }, + //####################################################// + cloudflare: { + display_name: "Cloudflare", + package_name: "certbot-dns-cloudflare", + version_requirement: + "==$(certbot --version | grep -Eo '[0-9](\\.[0-9]+)+')", // official plugin, use certbot version + dependencies: "cloudflare", + credentials: `# Cloudflare API token dns_cloudflare_api_token = 0123456789abcdef0123456789abcdef01234567`, - full_plugin_name: 'dns-cloudflare', - }, - //####################################################// - cloudns: { - display_name: 'ClouDNS', - package_name: 'certbot-dns-cloudns', - version_requirement: '~=0.4.0', - dependencies: '', - credentials: `# Target user ID (see https://www.cloudns.net/api-settings/) + full_plugin_name: "dns-cloudflare", + }, + //####################################################// + cloudns: { + display_name: "ClouDNS", + package_name: "certbot-dns-cloudns", + version_requirement: "~=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 @@ -99,415 +100,426 @@ dns_cloudflare_api_token = 0123456789abcdef0123456789abcdef01234567`, # API password dns_cloudns_auth_password=password1`, - full_plugin_name: 'dns-cloudns', - }, - //####################################################// - cloudxns: { - display_name: 'CloudXNS', - package_name: 'certbot-dns-cloudxns', - version_requirement: '==$(certbot --version | grep -Eo \'[0-9](\\.[0-9]+)+\')', // official plugin, use certbot version - dependencies: '', - credentials: `dns_cloudxns_api_key = 1234567890abcdef1234567890abcdef + full_plugin_name: "dns-cloudns", + }, + //####################################################// + cloudxns: { + display_name: "CloudXNS", + package_name: "certbot-dns-cloudxns", + version_requirement: + "==$(certbot --version | grep -Eo '[0-9](\\.[0-9]+)+')", // official plugin, use certbot version + dependencies: "", + credentials: `dns_cloudxns_api_key = 1234567890abcdef1234567890abcdef dns_cloudxns_secret_key = 1122334455667788`, - full_plugin_name: 'dns-cloudxns', - }, - //####################################################// - constellix: { - display_name: 'Constellix', - package_name: 'certbot-dns-constellix', - version_requirement: '~=0.2.1', - dependencies: '', - credentials: `dns_constellix_apikey = 5fb4e76f-ac91-43e5-f982458bc595 + full_plugin_name: "dns-cloudxns", + }, + //####################################################// + constellix: { + display_name: "Constellix", + package_name: "certbot-dns-constellix", + version_requirement: "~=0.2.1", + dependencies: "", + credentials: `dns_constellix_apikey = 5fb4e76f-ac91-43e5-f982458bc595 dns_constellix_secretkey = 47d99fd0-32e7-4e07-85b46d08e70b dns_constellix_endpoint = https://api.dns.constellix.com/v1`, - full_plugin_name: 'dns-constellix', - }, - //####################################################// - corenetworks: { - display_name: 'Core Networks', - package_name: 'certbot-dns-corenetworks', - version_requirement: '~=0.1.4', - dependencies: '', - credentials: `dns_corenetworks_username = asaHB12r + full_plugin_name: "dns-constellix", + }, + //####################################################// + corenetworks: { + display_name: "Core Networks", + package_name: "certbot-dns-corenetworks", + version_requirement: "~=0.1.4", + dependencies: "", + credentials: `dns_corenetworks_username = asaHB12r dns_corenetworks_password = secure_password`, - full_plugin_name: 'dns-corenetworks', - }, - //####################################################// - cpanel: { - display_name: 'cPanel', - package_name: 'certbot-dns-cpanel', - version_requirement: '~=0.2.2', - dependencies: '', - credentials: `cpanel_url = https://cpanel.example.com:2083 + full_plugin_name: "dns-corenetworks", + }, + //####################################################// + cpanel: { + display_name: "cPanel", + package_name: "certbot-dns-cpanel", + version_requirement: "~=0.2.2", + dependencies: "", + credentials: `cpanel_url = https://cpanel.example.com:2083 cpanel_username = user cpanel_password = hunter2`, - full_plugin_name: 'cpanel', - }, - //####################################################// - desec: { - display_name: 'deSEC', - package_name: 'certbot-dns-desec', - version_requirement: '~=1.2.1', - dependencies: '', - credentials: `dns_desec_token = YOUR_DESEC_API_TOKEN + full_plugin_name: "cpanel", + }, + //####################################################// + desec: { + display_name: "deSEC", + package_name: "certbot-dns-desec", + version_requirement: "~=1.2.1", + dependencies: "", + credentials: `dns_desec_token = YOUR_DESEC_API_TOKEN dns_desec_endpoint = https://desec.io/api/v1/`, - full_plugin_name: 'dns-desec', - }, - //####################################################// - duckdns: { - display_name: 'DuckDNS', - package_name: 'certbot-dns-duckdns', - version_requirement: '~=0.9', - dependencies: '', - credentials: 'dns_duckdns_token=your-duckdns-token', - full_plugin_name: 'dns-duckdns', - }, - //####################################################// - digitalocean: { - display_name: 'DigitalOcean', - package_name: 'certbot-dns-digitalocean', - version_requirement: '==$(certbot --version | grep -Eo \'[0-9](\\.[0-9]+)+\')', // official plugin, use certbot version - dependencies: '', - credentials: 'dns_digitalocean_token = 0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff', - full_plugin_name: 'dns-digitalocean', - }, - //####################################################// - directadmin: { - display_name: 'DirectAdmin', - package_name: 'certbot-dns-directadmin', - version_requirement: '~=0.0.23', - dependencies: '', - credentials: `directadmin_url = https://my.directadminserver.com:2222 + full_plugin_name: "dns-desec", + }, + //####################################################// + duckdns: { + display_name: "DuckDNS", + package_name: "certbot-dns-duckdns", + version_requirement: "~=0.9", + dependencies: "", + credentials: "dns_duckdns_token=your-duckdns-token", + full_plugin_name: "dns-duckdns", + }, + //####################################################// + digitalocean: { + display_name: "DigitalOcean", + package_name: "certbot-dns-digitalocean", + version_requirement: + "==$(certbot --version | grep -Eo '[0-9](\\.[0-9]+)+')", // official plugin, use certbot version + dependencies: "", + credentials: + "dns_digitalocean_token = 0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff", + full_plugin_name: "dns-digitalocean", + }, + //####################################################// + directadmin: { + display_name: "DirectAdmin", + package_name: "certbot-dns-directadmin", + version_requirement: "~=0.0.23", + dependencies: "", + credentials: `directadmin_url = https://my.directadminserver.com:2222 directadmin_username = username directadmin_password = aSuperStrongPassword`, - full_plugin_name: 'directadmin', - }, - //####################################################// - dnsimple: { - display_name: 'DNSimple', - package_name: 'certbot-dns-dnsimple', - version_requirement: '==$(certbot --version | grep -Eo \'[0-9](\\.[0-9]+)+\')', // official plugin, use certbot version - dependencies: '', - credentials: 'dns_dnsimple_token = MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw', - full_plugin_name: 'dns-dnsimple', - }, - //####################################################// - dnsmadeeasy: { - display_name: 'DNS Made Easy', - package_name: 'certbot-dns-dnsmadeeasy', - version_requirement: '==$(certbot --version | grep -Eo \'[0-9](\\.[0-9]+)+\')', // official plugin, use certbot version - dependencies: '', - credentials: `dns_dnsmadeeasy_api_key = 1c1a3c91-4770-4ce7-96f4-54c0eb0e457a + full_plugin_name: "directadmin", + }, + //####################################################// + dnsimple: { + display_name: "DNSimple", + package_name: "certbot-dns-dnsimple", + version_requirement: + "==$(certbot --version | grep -Eo '[0-9](\\.[0-9]+)+')", // official plugin, use certbot version + dependencies: "", + credentials: "dns_dnsimple_token = MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw", + full_plugin_name: "dns-dnsimple", + }, + //####################################################// + dnsmadeeasy: { + display_name: "DNS Made Easy", + package_name: "certbot-dns-dnsmadeeasy", + version_requirement: + "==$(certbot --version | grep -Eo '[0-9](\\.[0-9]+)+')", // official plugin, use certbot version + dependencies: "", + credentials: `dns_dnsmadeeasy_api_key = 1c1a3c91-4770-4ce7-96f4-54c0eb0e457a dns_dnsmadeeasy_secret_key = c9b5625f-9834-4ff8-baba-4ed5f32cae55`, - full_plugin_name: 'dns-dnsmadeeasy', - }, - //####################################################// - dnspod: { - display_name: 'DNSPod', - package_name: 'certbot-dns-dnspod', - version_requirement: '~=0.1.0', - dependencies: '', - credentials: `dns_dnspod_email = "email@example.com" + full_plugin_name: "dns-dnsmadeeasy", + }, + //####################################################// + dnspod: { + display_name: "DNSPod", + package_name: "certbot-dns-dnspod", + version_requirement: "~=0.1.0", + dependencies: "", + credentials: `dns_dnspod_email = "email@example.com" dns_dnspod_api_token = "id,key"`, - full_plugin_name: 'dns-dnspod', - }, - //####################################################// - domainoffensive: { - display_name: 'DomainOffensive (do.de)', - package_name: 'certbot-dns-do', - version_requirement: '~=0.31.0', - dependencies: '', - credentials: 'dns_do_api_token = YOUR_DO_DE_AUTH_TOKEN', - full_plugin_name: 'dns-do', - }, - //####################################################// - domeneshop: { - display_name: 'Domeneshop', - package_name: 'certbot-dns-domeneshop', - version_requirement: '~=0.2.8', - dependencies: '', - credentials: `dns_domeneshop_client_token=YOUR_DOMENESHOP_CLIENT_TOKEN + full_plugin_name: "dns-dnspod", + }, + //####################################################// + domainoffensive: { + display_name: "DomainOffensive (do.de)", + package_name: "certbot-dns-do", + version_requirement: "~=0.31.0", + dependencies: "", + credentials: "dns_do_api_token = YOUR_DO_DE_AUTH_TOKEN", + full_plugin_name: "dns-do", + }, + //####################################################// + domeneshop: { + display_name: "Domeneshop", + package_name: "certbot-dns-domeneshop", + version_requirement: "~=0.2.8", + dependencies: "", + credentials: `dns_domeneshop_client_token=YOUR_DOMENESHOP_CLIENT_TOKEN dns_domeneshop_client_secret=YOUR_DOMENESHOP_CLIENT_SECRET`, - full_plugin_name: 'dns-domeneshop', - }, - //####################################################// - dynu: { - display_name: 'Dynu', - package_name: 'certbot-dns-dynu', - version_requirement: '~=0.0.1', - dependencies: '', - credentials: 'dns_dynu_auth_token = YOUR_DYNU_AUTH_TOKEN', - full_plugin_name: 'dns-dynu', - }, - //####################################################// - eurodns: { - display_name: 'EuroDNS', - package_name: 'certbot-dns-eurodns', - version_requirement: '~=0.0.4', - dependencies: '', - credentials: `dns_eurodns_applicationId = myuser + full_plugin_name: "dns-domeneshop", + }, + //####################################################// + dynu: { + display_name: "Dynu", + package_name: "certbot-dns-dynu", + version_requirement: "~=0.0.1", + dependencies: "", + credentials: "dns_dynu_auth_token = YOUR_DYNU_AUTH_TOKEN", + full_plugin_name: "dns-dynu", + }, + //####################################################// + eurodns: { + display_name: "EuroDNS", + package_name: "certbot-dns-eurodns", + version_requirement: "~=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: 'dns-eurodns', - }, - //####################################################// - gandi: { - display_name: 'Gandi Live DNS', - package_name: 'certbot_plugin_gandi', - version_requirement: '~=1.3.2', - dependencies: '', - credentials: `# live dns v5 api key + full_plugin_name: "dns-eurodns", + }, + //####################################################// + gandi: { + display_name: "Gandi Live DNS", + package_name: "certbot_plugin_gandi", + version_requirement: "~=1.3.2", + dependencies: "", + credentials: `# live dns v5 api key dns_gandi_api_key=APIKEY # optional organization id, remove it if not used dns_gandi_sharing_id=SHARINGID`, - full_plugin_name: 'dns-gandi', - }, - //####################################################// - godaddy: { - display_name: 'GoDaddy', - package_name: 'certbot-dns-godaddy', - version_requirement: '~=0.2.0', - dependencies: '', - credentials: `dns_godaddy_secret = 0123456789abcdef0123456789abcdef01234567 + full_plugin_name: "dns-gandi", + }, + //####################################################// + godaddy: { + display_name: "GoDaddy", + package_name: "certbot-dns-godaddy", + version_requirement: "~=0.2.0", + dependencies: "", + credentials: `dns_godaddy_secret = 0123456789abcdef0123456789abcdef01234567 dns_godaddy_key = abcdef0123456789abcdef01234567abcdef0123`, - full_plugin_name: 'dns-godaddy', - }, - //####################################################// - google: { - display_name: 'Google', - package_name: 'certbot-dns-google', - version_requirement: '==$(certbot --version | grep -Eo \'[0-9](\\.[0-9]+)+\')', // official plugin, use certbot version - dependencies: '', - credentials: `{ + full_plugin_name: "dns-godaddy", + }, + //####################################################// + google: { + display_name: "Google", + package_name: "certbot-dns-google", + version_requirement: + "==$(certbot --version | grep -Eo '[0-9](\\.[0-9]+)+')", // official plugin, use certbot version + dependencies: "", + credentials: `{ "type": "service_account", ... }`, - full_plugin_name: 'dns-google', - }, - //####################################################// - googledomains: { - display_name: 'GoogleDomainsDNS', - package_name: 'certbot-dns-google-domains', - version_requirement: '~=0.1.5', - dependencies: '', - credentials: `dns_google_domains_access_token = 0123456789abcdef0123456789abcdef01234567 + full_plugin_name: "dns-google", + }, + //####################################################// + googledomains: { + display_name: "GoogleDomainsDNS", + package_name: "certbot-dns-google-domains", + version_requirement: "~=0.1.5", + dependencies: "", + credentials: `dns_google_domains_access_token = 0123456789abcdef0123456789abcdef01234567 dns_google_domains_zone = "example.com"`, - full_plugin_name: 'dns-google-domains', - }, - //####################################################// - hetzner: { - display_name: 'Hetzner', - package_name: 'certbot-dns-hetzner', - version_requirement: '~=1.0.4', - dependencies: '', - credentials: 'dns_hetzner_api_token = 0123456789abcdef0123456789abcdef', - full_plugin_name: 'dns-hetzner', - }, - //####################################################// - infomaniak: { - display_name: 'Infomaniak', - package_name: 'certbot-dns-infomaniak', - version_requirement: '~=0.1.12', - dependencies: '', - credentials: 'dns_infomaniak_token = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', - full_plugin_name: 'dns-infomaniak', - }, - //####################################################// - inwx: { - display_name: 'INWX', - package_name: 'certbot-dns-inwx', - version_requirement: '~=2.1.2', - dependencies: '', - credentials: `dns_inwx_url = https://api.domrobot.com/xmlrpc/ + full_plugin_name: "dns-google-domains", + }, + //####################################################// + hetzner: { + display_name: "Hetzner", + package_name: "certbot-dns-hetzner", + version_requirement: "~=1.0.4", + dependencies: "", + credentials: "dns_hetzner_api_token = 0123456789abcdef0123456789abcdef", + full_plugin_name: "dns-hetzner", + }, + //####################################################// + infomaniak: { + display_name: "Infomaniak", + package_name: "certbot-dns-infomaniak", + version_requirement: "~=0.1.12", + dependencies: "", + credentials: "dns_infomaniak_token = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", + full_plugin_name: "dns-infomaniak", + }, + //####################################################// + inwx: { + display_name: "INWX", + package_name: "certbot-dns-inwx", + version_requirement: "~=2.1.2", + dependencies: "", + credentials: `dns_inwx_url = https://api.domrobot.com/xmlrpc/ dns_inwx_username = your_username dns_inwx_password = your_password dns_inwx_shared_secret = your_shared_secret optional`, - full_plugin_name: 'dns-inwx', - }, - //####################################################// - ionos: { - display_name: 'IONOS', - package_name: 'certbot-dns-ionos', - version_requirement: '==2022.11.24', - dependencies: '', - credentials: `dns_ionos_prefix = myapikeyprefix + full_plugin_name: "dns-inwx", + }, + //####################################################// + ionos: { + display_name: "IONOS", + package_name: "certbot-dns-ionos", + version_requirement: "==2022.11.24", + dependencies: "", + credentials: `dns_ionos_prefix = myapikeyprefix dns_ionos_secret = verysecureapikeysecret dns_ionos_endpoint = https://api.hosting.ionos.com`, - full_plugin_name: 'dns-ionos', - }, - //####################################################// - ispconfig: { - display_name: 'ISPConfig', - package_name: 'certbot-dns-ispconfig', - version_requirement: '~=0.2.0', - dependencies: '', - credentials: `dns_ispconfig_username = myremoteuser + full_plugin_name: "dns-ionos", + }, + //####################################################// + ispconfig: { + display_name: "ISPConfig", + package_name: "certbot-dns-ispconfig", + version_requirement: "~=0.2.0", + dependencies: "", + credentials: `dns_ispconfig_username = myremoteuser dns_ispconfig_password = verysecureremoteuserpassword dns_ispconfig_endpoint = https://localhost:8080`, - full_plugin_name: 'dns-ispconfig', - }, - //####################################################// - isset: { - display_name: 'Isset', - package_name: 'certbot-dns-isset', - version_requirement: '~=0.0.3', - dependencies: '', - credentials: `dns_isset_endpoint="https://customer.isset.net/api" + full_plugin_name: "dns-ispconfig", + }, + //####################################################// + isset: { + display_name: "Isset", + package_name: "certbot-dns-isset", + version_requirement: "~=0.0.3", + dependencies: "", + credentials: `dns_isset_endpoint="https://customer.isset.net/api" dns_isset_token=""`, - full_plugin_name: 'dns-isset', - }, - joker: { - display_name: 'Joker', - package_name: 'certbot-dns-joker', - version_requirement: '~=1.1.0', - dependencies: '', - credentials: `dns_joker_username = + full_plugin_name: "dns-isset", + }, + joker: { + display_name: "Joker", + package_name: "certbot-dns-joker", + version_requirement: "~=1.1.0", + dependencies: "", + credentials: `dns_joker_username = dns_joker_password = dns_joker_domain = `, - full_plugin_name: 'dns-joker', - }, - //####################################################// - linode: { - display_name: 'Linode', - package_name: 'certbot-dns-linode', - version_requirement: '==$(certbot --version | grep -Eo \'[0-9](\\.[0-9]+)+\')', // official plugin, use certbot version - dependencies: '', - credentials: `dns_linode_key = 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ64 + full_plugin_name: "dns-joker", + }, + //####################################################// + linode: { + display_name: "Linode", + package_name: "certbot-dns-linode", + version_requirement: + "==$(certbot --version | grep -Eo '[0-9](\\.[0-9]+)+')", // official plugin, use certbot version + dependencies: "", + credentials: `dns_linode_key = 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ64 dns_linode_version = [|3|4]`, - full_plugin_name: 'dns-linode', - }, - //####################################################// - loopia: { - display_name: 'Loopia', - package_name: 'certbot-dns-loopia', - version_requirement: '~=1.0.0', - dependencies: '', - credentials: `dns_loopia_user = user@loopiaapi + full_plugin_name: "dns-linode", + }, + //####################################################// + loopia: { + display_name: "Loopia", + package_name: "certbot-dns-loopia", + version_requirement: "~=1.0.0", + dependencies: "", + credentials: `dns_loopia_user = user@loopiaapi dns_loopia_password = abcdef0123456789abcdef01234567abcdef0123`, - full_plugin_name: 'dns-loopia', - }, - //####################################################// - luadns: { - display_name: 'LuaDNS', - package_name: 'certbot-dns-luadns', - version_requirement: '==$(certbot --version | grep -Eo \'[0-9](\\.[0-9]+)+\')', // official plugin, use certbot version - dependencies: '', - credentials: `dns_luadns_email = user@example.com + full_plugin_name: "dns-loopia", + }, + //####################################################// + luadns: { + display_name: "LuaDNS", + package_name: "certbot-dns-luadns", + version_requirement: + "==$(certbot --version | grep -Eo '[0-9](\\.[0-9]+)+')", // official plugin, use certbot version + dependencies: "", + credentials: `dns_luadns_email = user@example.com dns_luadns_token = 0123456789abcdef0123456789abcdef`, - full_plugin_name: 'dns-luadns', - }, - //####################################################// - namecheap: { - display_name: 'Namecheap', - package_name: 'certbot-dns-namecheap', - version_requirement: '~=1.0.0', - dependencies: '', - credentials: `dns_namecheap_username = 123456 + full_plugin_name: "dns-luadns", + }, + //####################################################// + namecheap: { + display_name: "Namecheap", + package_name: "certbot-dns-namecheap", + version_requirement: "~=1.0.0", + dependencies: "", + credentials: `dns_namecheap_username = 123456 dns_namecheap_api_key = 0123456789abcdef0123456789abcdef01234567`, - full_plugin_name: 'dns-namecheap', - }, - //####################################################// - netcup: { - display_name: 'netcup', - package_name: 'certbot-dns-netcup', - version_requirement: '~=1.0.0', - dependencies: '', - credentials: `dns_netcup_customer_id = 123456 + full_plugin_name: "dns-namecheap", + }, + //####################################################// + netcup: { + display_name: "netcup", + package_name: "certbot-dns-netcup", + version_requirement: "~=1.0.0", + dependencies: "", + credentials: `dns_netcup_customer_id = 123456 dns_netcup_api_key = 0123456789abcdef0123456789abcdef01234567 dns_netcup_api_password = abcdef0123456789abcdef01234567abcdef0123`, - full_plugin_name: 'dns-netcup', - }, - //####################################################// - njalla: { - display_name: 'Njalla', - package_name: 'certbot-dns-njalla', - version_requirement: '~=1.0.0', - dependencies: '', - credentials: 'dns_njalla_token = 0123456789abcdef0123456789abcdef01234567', - full_plugin_name: 'dns-njalla', - }, - //####################################################// - nsone: { - display_name: 'NS1', - package_name: 'certbot-dns-nsone', - version_requirement: '==$(certbot --version | grep -Eo \'[0-9](\\.[0-9]+)+\')', // official plugin, use certbot version - dependencies: '', - credentials: 'dns_nsone_api_key = MDAwMDAwMDAwMDAwMDAw', - full_plugin_name: 'dns-nsone', - }, - //####################################################// - oci: { - display_name: 'Oracle Cloud Infrastructure DNS', - package_name: 'certbot-dns-oci', - package_version: '0.3.6', - dependencies: 'oci', - credentials: `[DEFAULT] + full_plugin_name: "dns-netcup", + }, + //####################################################// + njalla: { + display_name: "Njalla", + package_name: "certbot-dns-njalla", + version_requirement: "~=1.0.0", + dependencies: "", + credentials: "dns_njalla_token = 0123456789abcdef0123456789abcdef01234567", + full_plugin_name: "dns-njalla", + }, + //####################################################// + nsone: { + display_name: "NS1", + package_name: "certbot-dns-nsone", + version_requirement: + "==$(certbot --version | grep -Eo '[0-9](\\.[0-9]+)+')", // official plugin, use certbot version + dependencies: "", + credentials: "dns_nsone_api_key = MDAwMDAwMDAwMDAwMDAw", + full_plugin_name: "dns-nsone", + }, + //####################################################// + oci: { + display_name: "Oracle Cloud Infrastructure DNS", + package_name: "certbot-dns-oci", + package_version: "0.3.6", + dependencies: "oci", + credentials: `[DEFAULT] user = ocid1.user.oc1... fingerprint = xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx tenancy = ocid1.tenancy.oc1... region = us-ashburn-1 key_file = ~/.oci/oci_api_key.pem`, - full_plugin_name: 'dns-oci', - }, - //####################################################// - online: { - display_name: 'Online', - package_name: 'certbot-dns-online', - version_requirement: '~=0.0.8', - dependencies: '', - credentials: 'dns_online_token=0123456789abcdef0123456789abcdef01234567', - full_plugin_name: 'dns-online', - }, - //####################################################// - ovh: { - display_name: 'OVH', - package_name: 'certbot-dns-ovh', - version_requirement: '==$(certbot --version | grep -Eo \'[0-9](\\.[0-9]+)+\')', // official plugin, use certbot version - dependencies: '', - credentials: `dns_ovh_endpoint = ovh-eu + full_plugin_name: "dns-oci", + }, + //####################################################// + online: { + display_name: "Online", + package_name: "certbot-dns-online", + version_requirement: "~=0.0.8", + dependencies: "", + credentials: "dns_online_token=0123456789abcdef0123456789abcdef01234567", + full_plugin_name: "dns-online", + }, + //####################################################// + ovh: { + display_name: "OVH", + package_name: "certbot-dns-ovh", + version_requirement: + "==$(certbot --version | grep -Eo '[0-9](\\.[0-9]+)+')", // official plugin, use certbot version + dependencies: "", + credentials: `dns_ovh_endpoint = ovh-eu dns_ovh_application_key = MDAwMDAwMDAwMDAw dns_ovh_application_secret = MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw dns_ovh_consumer_key = MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw`, - full_plugin_name: 'dns-ovh', - }, - //####################################################// - porkbun: { - display_name: 'Porkbun', - package_name: 'certbot-dns-porkbun', - version_requirement: '~=0.2', - dependencies: '', - credentials: `dns_porkbun_key=your-porkbun-api-key + full_plugin_name: "dns-ovh", + }, + //####################################################// + porkbun: { + display_name: "Porkbun", + package_name: "certbot-dns-porkbun", + version_requirement: "~=0.2", + dependencies: "", + credentials: `dns_porkbun_key=your-porkbun-api-key dns_porkbun_secret=your-porkbun-api-secret`, - full_plugin_name: 'dns-porkbun', - }, - //####################################################// - powerdns: { - display_name: 'PowerDNS', - package_name: 'certbot-dns-powerdns', - version_requirement: '~=0.2.0', - dependencies: '', - credentials: `dns_powerdns_api_url = https://api.mypowerdns.example.org + full_plugin_name: "dns-porkbun", + }, + //####################################################// + powerdns: { + display_name: "PowerDNS", + package_name: "certbot-dns-powerdns", + version_requirement: "~=0.2.0", + dependencies: "", + credentials: `dns_powerdns_api_url = https://api.mypowerdns.example.org dns_powerdns_api_key = AbCbASsd!@34`, - full_plugin_name: 'dns-powerdns', - }, - //####################################################// - regru: { - display_name: 'reg.ru', - package_name: 'certbot-regru', - version_requirement: '~=1.0.2', - dependencies: '', - credentials: `dns_username=username + full_plugin_name: "dns-powerdns", + }, + //####################################################// + regru: { + display_name: "reg.ru", + package_name: "certbot-regru", + version_requirement: "~=1.0.2", + dependencies: "", + credentials: `dns_username=username dns_password=password`, - full_plugin_name: 'dns', - }, - //####################################################// - rfc2136: { - display_name: 'RFC 2136', - package_name: 'certbot-dns-rfc2136', - version_requirement: '==$(certbot --version | grep -Eo \'[0-9](\\.[0-9]+)+\')', // official plugin, use certbot version - dependencies: '', - credentials: `# Target DNS server + full_plugin_name: "dns", + }, + //####################################################// + rfc2136: { + display_name: "RFC 2136", + package_name: "certbot-dns-rfc2136", + version_requirement: + "==$(certbot --version | grep -Eo '[0-9](\\.[0-9]+)+')", // official plugin, use certbot version + dependencies: "", + credentials: `# Target DNS server dns_rfc2136_server = 192.0.2.1 # Target DNS port dns_rfc2136_port = 53 @@ -517,26 +529,27 @@ dns_rfc2136_name = keyname. dns_rfc2136_secret = 4q4wM/2I180UXoMyN4INVhJNi8V9BCV+jMw2mXgZw/CSuxUT8C7NKKFs AmKd7ak51vWKgSl12ib86oQRPkpDjg== # TSIG key algorithm dns_rfc2136_algorithm = HMAC-SHA512`, - full_plugin_name: 'dns-rfc2136', - }, - //####################################################// - route53: { - display_name: 'Route 53 (Amazon)', - package_name: 'certbot-dns-route53', - version_requirement: '==$(certbot --version | grep -Eo \'[0-9](\\.[0-9]+)+\')', // official plugin, use certbot version - dependencies: '', - credentials: `[default] + full_plugin_name: "dns-rfc2136", + }, + //####################################################// + route53: { + display_name: "Route 53 (Amazon)", + package_name: "certbot-dns-route53", + version_requirement: + "==$(certbot --version | grep -Eo '[0-9](\\.[0-9]+)+')", // official plugin, use certbot version + dependencies: "", + credentials: `[default] aws_access_key_id=AKIAIOSFODNN7EXAMPLE aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY`, - full_plugin_name: 'dns-route53', - }, - //####################################################// - strato: { - display_name: 'Strato', - package_name: 'certbot-dns-strato', - version_requirement: '~=0.1.1', - dependencies: '', - credentials: `dns_strato_username = user + full_plugin_name: "dns-route53", + }, + //####################################################// + strato: { + display_name: "Strato", + package_name: "certbot-dns-strato", + version_requirement: "~=0.1.1", + dependencies: "", + credentials: `dns_strato_username = user dns_strato_password = pass # uncomment if youre using two factor authentication: # dns_strato_totp_devicename = 2fa_device @@ -552,46 +565,46 @@ dns_strato_password = pass # dns_strato_custom_api_host = www.strato.de # dns_strato_custom_api_port = 443 # dns_strato_custom_api_path = "/apps/CustomerService"`, - full_plugin_name: 'dns-strato', - }, - //####################################################// - transip: { - display_name: 'TransIP', - package_name: 'certbot-dns-transip', - version_requirement: '~=0.4.3', - dependencies: '', - credentials: `dns_transip_username = my_username + full_plugin_name: "dns-strato", + }, + //####################################################// + transip: { + display_name: "TransIP", + package_name: "certbot-dns-transip", + version_requirement: "~=0.4.3", + dependencies: "", + credentials: `dns_transip_username = my_username dns_transip_key_file = /etc/letsencrypt/transip-rsa.key`, - full_plugin_name: 'dns-transip', - }, - //####################################################// - tencentcloud: { - display_name: 'Tencent Cloud', - package_name: 'certbot-dns-tencentcloud', - version_requirement: '~=2.0.2', - dependencies: '', - credentials: `dns_tencentcloud_secret_id = TENCENT_CLOUD_SECRET_ID + full_plugin_name: "dns-transip", + }, + //####################################################// + tencentcloud: { + display_name: "Tencent Cloud", + package_name: "certbot-dns-tencentcloud", + version_requirement: "~=2.0.2", + dependencies: "", + credentials: `dns_tencentcloud_secret_id = TENCENT_CLOUD_SECRET_ID dns_tencentcloud_secret_key = TENCENT_CLOUD_SECRET_KEY`, - full_plugin_name: 'dns-tencentcloud', - }, - //####################################################// - vultr: { - display_name: 'Vultr', - package_name: 'certbot-dns-vultr', - version_requirement: '~=1.0.3', - dependencies: '', - credentials: 'dns_vultr_key = YOUR_VULTR_API_KEY', - full_plugin_name: 'dns-vultr', - }, - //####################################################// - websupportsk: { - display_name: 'Websupport.sk', - package_name: 'certbot-dns-websupportsk', - version_requirement: '~=0.1.6', - dependencies: '', - credentials: `dns_websupportsk_api_key = + full_plugin_name: "dns-tencentcloud", + }, + //####################################################// + vultr: { + display_name: "Vultr", + package_name: "certbot-dns-vultr", + version_requirement: "~=1.1.0", + dependencies: "", + credentials: "dns_vultr_key = YOUR_VULTR_API_KEY", + full_plugin_name: "dns-vultr", + }, + //####################################################// + websupportsk: { + display_name: "Websupport.sk", + package_name: "certbot-dns-websupportsk", + version_requirement: "~=0.1.6", + dependencies: "", + credentials: `dns_websupportsk_api_key = dns_websupportsk_secret = dns_websupportsk_domain = example.com`, - full_plugin_name: 'dns-websupportsk', - }, + full_plugin_name: "dns-websupportsk", + }, }; From 27bc8c4e331a2841971aaaa95808645298ca7b3f Mon Sep 17 00:00:00 2001 From: Christopher Lord Date: Wed, 13 Dec 2023 15:15:02 -0700 Subject: [PATCH 16/29] use same formatting --- global/certbot-dns-plugins.js | 945 +++++++++++++++++----------------- 1 file changed, 466 insertions(+), 479 deletions(-) diff --git a/global/certbot-dns-plugins.js b/global/certbot-dns-plugins.js index cbbdecf5..846ce35c 100644 --- a/global/certbot-dns-plugins.js +++ b/global/certbot-dns-plugins.js @@ -20,32 +20,32 @@ */ module.exports = { - //####################################################// - acmedns: { - display_name: "ACME-DNS", - package_name: "certbot-dns-acmedns", - version_requirement: "~=0.1.0", - dependencies: "", - credentials: `dns_acmedns_api_url = http://acmedns-server/ + //####################################################// + acmedns: { + display_name: 'ACME-DNS', + package_name: 'certbot-dns-acmedns', + version_requirement: '~=0.1.0', + dependencies: '', + credentials: `dns_acmedns_api_url = http://acmedns-server/ dns_acmedns_registration_file = /data/acme-registration.json`, - full_plugin_name: "dns-acmedns", - }, - aliyun: { - display_name: "Aliyun", - package_name: "certbot-dns-aliyun", - version_requirement: "~=0.38.1", - dependencies: "", - credentials: `dns_aliyun_access_key = 12345678 + full_plugin_name: 'dns-acmedns', + }, + aliyun: { + display_name: 'Aliyun', + package_name: 'certbot-dns-aliyun', + version_requirement: '~=0.38.1', + dependencies: '', + credentials: `dns_aliyun_access_key = 12345678 dns_aliyun_access_key_secret = 1234567890abcdef1234567890abcdef`, - full_plugin_name: "dns-aliyun", - }, - //####################################################// - azure: { - display_name: "Azure", - package_name: "certbot-dns-azure", - version_requirement: "~=1.2.0", - dependencies: "", - credentials: `# This plugin supported API authentication using either Service Principals or utilizing a Managed Identity assigned to the virtual machine. + full_plugin_name: 'dns-aliyun', + }, + //####################################################// + azure: { + display_name: 'Azure', + package_name: 'certbot-dns-azure', + version_requirement: '~=1.2.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. @@ -63,36 +63,35 @@ dns_azure_tenant_id = ed1090f3-ab18-4b12-816c-599af8a88cf7 # 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", - }, - //####################################################// - bunny: { - display_name: "bunny.net", - package_name: "certbot-dns-bunny", - version_requirement: "~=0.0.9", - dependencies: "", - credentials: `# Bunny API token used by Certbot (see https://dash.bunny.net/account/settings) + full_plugin_name: 'dns-azure', + }, + //####################################################// + bunny: { + display_name: 'bunny.net', + package_name: 'certbot-dns-bunny', + version_requirement: '~=0.0.9', + dependencies: '', + credentials: `# Bunny API token used by Certbot (see https://dash.bunny.net/account/settings) dns_bunny_api_key = xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx`, - full_plugin_name: "dns-bunny", - }, - //####################################################// - cloudflare: { - display_name: "Cloudflare", - package_name: "certbot-dns-cloudflare", - version_requirement: - "==$(certbot --version | grep -Eo '[0-9](\\.[0-9]+)+')", // official plugin, use certbot version - dependencies: "cloudflare", - credentials: `# Cloudflare API token + full_plugin_name: 'dns-bunny', + }, + //####################################################// + cloudflare: { + display_name: 'Cloudflare', + package_name: 'certbot-dns-cloudflare', + version_requirement: '==$(certbot --version | grep -Eo \'[0-9](\\.[0-9]+)+\')', // official plugin, use certbot version + dependencies: 'cloudflare', + credentials: `# Cloudflare API token dns_cloudflare_api_token = 0123456789abcdef0123456789abcdef01234567`, - full_plugin_name: "dns-cloudflare", - }, - //####################################################// - cloudns: { - display_name: "ClouDNS", - package_name: "certbot-dns-cloudns", - version_requirement: "~=0.4.0", - dependencies: "", - credentials: `# Target user ID (see https://www.cloudns.net/api-settings/) + full_plugin_name: 'dns-cloudflare', + }, + //####################################################// + cloudns: { + display_name: 'ClouDNS', + package_name: 'certbot-dns-cloudns', + version_requirement: '~=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 @@ -100,426 +99,415 @@ dns_cloudflare_api_token = 0123456789abcdef0123456789abcdef01234567`, # API password dns_cloudns_auth_password=password1`, - full_plugin_name: "dns-cloudns", - }, - //####################################################// - cloudxns: { - display_name: "CloudXNS", - package_name: "certbot-dns-cloudxns", - version_requirement: - "==$(certbot --version | grep -Eo '[0-9](\\.[0-9]+)+')", // official plugin, use certbot version - dependencies: "", - credentials: `dns_cloudxns_api_key = 1234567890abcdef1234567890abcdef + full_plugin_name: 'dns-cloudns', + }, + //####################################################// + cloudxns: { + display_name: 'CloudXNS', + package_name: 'certbot-dns-cloudxns', + version_requirement: '==$(certbot --version | grep -Eo \'[0-9](\\.[0-9]+)+\')', // official plugin, use certbot version + dependencies: '', + credentials: `dns_cloudxns_api_key = 1234567890abcdef1234567890abcdef dns_cloudxns_secret_key = 1122334455667788`, - full_plugin_name: "dns-cloudxns", - }, - //####################################################// - constellix: { - display_name: "Constellix", - package_name: "certbot-dns-constellix", - version_requirement: "~=0.2.1", - dependencies: "", - credentials: `dns_constellix_apikey = 5fb4e76f-ac91-43e5-f982458bc595 + full_plugin_name: 'dns-cloudxns', + }, + //####################################################// + constellix: { + display_name: 'Constellix', + package_name: 'certbot-dns-constellix', + version_requirement: '~=0.2.1', + dependencies: '', + credentials: `dns_constellix_apikey = 5fb4e76f-ac91-43e5-f982458bc595 dns_constellix_secretkey = 47d99fd0-32e7-4e07-85b46d08e70b dns_constellix_endpoint = https://api.dns.constellix.com/v1`, - full_plugin_name: "dns-constellix", - }, - //####################################################// - corenetworks: { - display_name: "Core Networks", - package_name: "certbot-dns-corenetworks", - version_requirement: "~=0.1.4", - dependencies: "", - credentials: `dns_corenetworks_username = asaHB12r + full_plugin_name: 'dns-constellix', + }, + //####################################################// + corenetworks: { + display_name: 'Core Networks', + package_name: 'certbot-dns-corenetworks', + version_requirement: '~=0.1.4', + dependencies: '', + credentials: `dns_corenetworks_username = asaHB12r dns_corenetworks_password = secure_password`, - full_plugin_name: "dns-corenetworks", - }, - //####################################################// - cpanel: { - display_name: "cPanel", - package_name: "certbot-dns-cpanel", - version_requirement: "~=0.2.2", - dependencies: "", - credentials: `cpanel_url = https://cpanel.example.com:2083 + full_plugin_name: 'dns-corenetworks', + }, + //####################################################// + cpanel: { + display_name: 'cPanel', + package_name: 'certbot-dns-cpanel', + version_requirement: '~=0.2.2', + dependencies: '', + credentials: `cpanel_url = https://cpanel.example.com:2083 cpanel_username = user cpanel_password = hunter2`, - full_plugin_name: "cpanel", - }, - //####################################################// - desec: { - display_name: "deSEC", - package_name: "certbot-dns-desec", - version_requirement: "~=1.2.1", - dependencies: "", - credentials: `dns_desec_token = YOUR_DESEC_API_TOKEN + full_plugin_name: 'cpanel', + }, + //####################################################// + desec: { + display_name: 'deSEC', + package_name: 'certbot-dns-desec', + version_requirement: '~=1.2.1', + dependencies: '', + credentials: `dns_desec_token = YOUR_DESEC_API_TOKEN dns_desec_endpoint = https://desec.io/api/v1/`, - full_plugin_name: "dns-desec", - }, - //####################################################// - duckdns: { - display_name: "DuckDNS", - package_name: "certbot-dns-duckdns", - version_requirement: "~=0.9", - dependencies: "", - credentials: "dns_duckdns_token=your-duckdns-token", - full_plugin_name: "dns-duckdns", - }, - //####################################################// - digitalocean: { - display_name: "DigitalOcean", - package_name: "certbot-dns-digitalocean", - version_requirement: - "==$(certbot --version | grep -Eo '[0-9](\\.[0-9]+)+')", // official plugin, use certbot version - dependencies: "", - credentials: - "dns_digitalocean_token = 0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff", - full_plugin_name: "dns-digitalocean", - }, - //####################################################// - directadmin: { - display_name: "DirectAdmin", - package_name: "certbot-dns-directadmin", - version_requirement: "~=0.0.23", - dependencies: "", - credentials: `directadmin_url = https://my.directadminserver.com:2222 + full_plugin_name: 'dns-desec', + }, + //####################################################// + duckdns: { + display_name: 'DuckDNS', + package_name: 'certbot-dns-duckdns', + version_requirement: '~=0.9', + dependencies: '', + credentials: 'dns_duckdns_token=your-duckdns-token', + full_plugin_name: 'dns-duckdns', + }, + //####################################################// + digitalocean: { + display_name: 'DigitalOcean', + package_name: 'certbot-dns-digitalocean', + version_requirement: '==$(certbot --version | grep -Eo \'[0-9](\\.[0-9]+)+\')', // official plugin, use certbot version + dependencies: '', + credentials: 'dns_digitalocean_token = 0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff', + full_plugin_name: 'dns-digitalocean', + }, + //####################################################// + directadmin: { + display_name: 'DirectAdmin', + package_name: 'certbot-dns-directadmin', + version_requirement: '~=0.0.23', + dependencies: '', + credentials: `directadmin_url = https://my.directadminserver.com:2222 directadmin_username = username directadmin_password = aSuperStrongPassword`, - full_plugin_name: "directadmin", - }, - //####################################################// - dnsimple: { - display_name: "DNSimple", - package_name: "certbot-dns-dnsimple", - version_requirement: - "==$(certbot --version | grep -Eo '[0-9](\\.[0-9]+)+')", // official plugin, use certbot version - dependencies: "", - credentials: "dns_dnsimple_token = MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw", - full_plugin_name: "dns-dnsimple", - }, - //####################################################// - dnsmadeeasy: { - display_name: "DNS Made Easy", - package_name: "certbot-dns-dnsmadeeasy", - version_requirement: - "==$(certbot --version | grep -Eo '[0-9](\\.[0-9]+)+')", // official plugin, use certbot version - dependencies: "", - credentials: `dns_dnsmadeeasy_api_key = 1c1a3c91-4770-4ce7-96f4-54c0eb0e457a + full_plugin_name: 'directadmin', + }, + //####################################################// + dnsimple: { + display_name: 'DNSimple', + package_name: 'certbot-dns-dnsimple', + version_requirement: '==$(certbot --version | grep -Eo \'[0-9](\\.[0-9]+)+\')', // official plugin, use certbot version + dependencies: '', + credentials: 'dns_dnsimple_token = MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw', + full_plugin_name: 'dns-dnsimple', + }, + //####################################################// + dnsmadeeasy: { + display_name: 'DNS Made Easy', + package_name: 'certbot-dns-dnsmadeeasy', + version_requirement: '==$(certbot --version | grep -Eo \'[0-9](\\.[0-9]+)+\')', // official plugin, use certbot version + dependencies: '', + credentials: `dns_dnsmadeeasy_api_key = 1c1a3c91-4770-4ce7-96f4-54c0eb0e457a dns_dnsmadeeasy_secret_key = c9b5625f-9834-4ff8-baba-4ed5f32cae55`, - full_plugin_name: "dns-dnsmadeeasy", - }, - //####################################################// - dnspod: { - display_name: "DNSPod", - package_name: "certbot-dns-dnspod", - version_requirement: "~=0.1.0", - dependencies: "", - credentials: `dns_dnspod_email = "email@example.com" + full_plugin_name: 'dns-dnsmadeeasy', + }, + //####################################################// + dnspod: { + display_name: 'DNSPod', + package_name: 'certbot-dns-dnspod', + version_requirement: '~=0.1.0', + dependencies: '', + credentials: `dns_dnspod_email = "email@example.com" dns_dnspod_api_token = "id,key"`, - full_plugin_name: "dns-dnspod", - }, - //####################################################// - domainoffensive: { - display_name: "DomainOffensive (do.de)", - package_name: "certbot-dns-do", - version_requirement: "~=0.31.0", - dependencies: "", - credentials: "dns_do_api_token = YOUR_DO_DE_AUTH_TOKEN", - full_plugin_name: "dns-do", - }, - //####################################################// - domeneshop: { - display_name: "Domeneshop", - package_name: "certbot-dns-domeneshop", - version_requirement: "~=0.2.8", - dependencies: "", - credentials: `dns_domeneshop_client_token=YOUR_DOMENESHOP_CLIENT_TOKEN + full_plugin_name: 'dns-dnspod', + }, + //####################################################// + domainoffensive: { + display_name: 'DomainOffensive (do.de)', + package_name: 'certbot-dns-do', + version_requirement: '~=0.31.0', + dependencies: '', + credentials: 'dns_do_api_token = YOUR_DO_DE_AUTH_TOKEN', + full_plugin_name: 'dns-do', + }, + //####################################################// + domeneshop: { + display_name: 'Domeneshop', + package_name: 'certbot-dns-domeneshop', + version_requirement: '~=0.2.8', + dependencies: '', + credentials: `dns_domeneshop_client_token=YOUR_DOMENESHOP_CLIENT_TOKEN dns_domeneshop_client_secret=YOUR_DOMENESHOP_CLIENT_SECRET`, - full_plugin_name: "dns-domeneshop", - }, - //####################################################// - dynu: { - display_name: "Dynu", - package_name: "certbot-dns-dynu", - version_requirement: "~=0.0.1", - dependencies: "", - credentials: "dns_dynu_auth_token = YOUR_DYNU_AUTH_TOKEN", - full_plugin_name: "dns-dynu", - }, - //####################################################// - eurodns: { - display_name: "EuroDNS", - package_name: "certbot-dns-eurodns", - version_requirement: "~=0.0.4", - dependencies: "", - credentials: `dns_eurodns_applicationId = myuser + full_plugin_name: 'dns-domeneshop', + }, + //####################################################// + dynu: { + display_name: 'Dynu', + package_name: 'certbot-dns-dynu', + version_requirement: '~=0.0.1', + dependencies: '', + credentials: 'dns_dynu_auth_token = YOUR_DYNU_AUTH_TOKEN', + full_plugin_name: 'dns-dynu', + }, + //####################################################// + eurodns: { + display_name: 'EuroDNS', + package_name: 'certbot-dns-eurodns', + version_requirement: '~=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: "dns-eurodns", - }, - //####################################################// - gandi: { - display_name: "Gandi Live DNS", - package_name: "certbot_plugin_gandi", - version_requirement: "~=1.3.2", - dependencies: "", - credentials: `# live dns v5 api key + full_plugin_name: 'dns-eurodns', + }, + //####################################################// + gandi: { + display_name: 'Gandi Live DNS', + package_name: 'certbot_plugin_gandi', + version_requirement: '~=1.3.2', + dependencies: '', + credentials: `# live dns v5 api key dns_gandi_api_key=APIKEY # optional organization id, remove it if not used dns_gandi_sharing_id=SHARINGID`, - full_plugin_name: "dns-gandi", - }, - //####################################################// - godaddy: { - display_name: "GoDaddy", - package_name: "certbot-dns-godaddy", - version_requirement: "~=0.2.0", - dependencies: "", - credentials: `dns_godaddy_secret = 0123456789abcdef0123456789abcdef01234567 + full_plugin_name: 'dns-gandi', + }, + //####################################################// + godaddy: { + display_name: 'GoDaddy', + package_name: 'certbot-dns-godaddy', + version_requirement: '~=0.2.0', + dependencies: '', + credentials: `dns_godaddy_secret = 0123456789abcdef0123456789abcdef01234567 dns_godaddy_key = abcdef0123456789abcdef01234567abcdef0123`, - full_plugin_name: "dns-godaddy", - }, - //####################################################// - google: { - display_name: "Google", - package_name: "certbot-dns-google", - version_requirement: - "==$(certbot --version | grep -Eo '[0-9](\\.[0-9]+)+')", // official plugin, use certbot version - dependencies: "", - credentials: `{ + full_plugin_name: 'dns-godaddy', + }, + //####################################################// + google: { + display_name: 'Google', + package_name: 'certbot-dns-google', + version_requirement: '==$(certbot --version | grep -Eo \'[0-9](\\.[0-9]+)+\')', // official plugin, use certbot version + dependencies: '', + credentials: `{ "type": "service_account", ... }`, - full_plugin_name: "dns-google", - }, - //####################################################// - googledomains: { - display_name: "GoogleDomainsDNS", - package_name: "certbot-dns-google-domains", - version_requirement: "~=0.1.5", - dependencies: "", - credentials: `dns_google_domains_access_token = 0123456789abcdef0123456789abcdef01234567 + full_plugin_name: 'dns-google', + }, + //####################################################// + googledomains: { + display_name: 'GoogleDomainsDNS', + package_name: 'certbot-dns-google-domains', + version_requirement: '~=0.1.5', + dependencies: '', + credentials: `dns_google_domains_access_token = 0123456789abcdef0123456789abcdef01234567 dns_google_domains_zone = "example.com"`, - full_plugin_name: "dns-google-domains", - }, - //####################################################// - hetzner: { - display_name: "Hetzner", - package_name: "certbot-dns-hetzner", - version_requirement: "~=1.0.4", - dependencies: "", - credentials: "dns_hetzner_api_token = 0123456789abcdef0123456789abcdef", - full_plugin_name: "dns-hetzner", - }, - //####################################################// - infomaniak: { - display_name: "Infomaniak", - package_name: "certbot-dns-infomaniak", - version_requirement: "~=0.1.12", - dependencies: "", - credentials: "dns_infomaniak_token = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", - full_plugin_name: "dns-infomaniak", - }, - //####################################################// - inwx: { - display_name: "INWX", - package_name: "certbot-dns-inwx", - version_requirement: "~=2.1.2", - dependencies: "", - credentials: `dns_inwx_url = https://api.domrobot.com/xmlrpc/ + full_plugin_name: 'dns-google-domains', + }, + //####################################################// + hetzner: { + display_name: 'Hetzner', + package_name: 'certbot-dns-hetzner', + version_requirement: '~=1.0.4', + dependencies: '', + credentials: 'dns_hetzner_api_token = 0123456789abcdef0123456789abcdef', + full_plugin_name: 'dns-hetzner', + }, + //####################################################// + infomaniak: { + display_name: 'Infomaniak', + package_name: 'certbot-dns-infomaniak', + version_requirement: '~=0.1.12', + dependencies: '', + credentials: 'dns_infomaniak_token = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', + full_plugin_name: 'dns-infomaniak', + }, + //####################################################// + inwx: { + display_name: 'INWX', + package_name: 'certbot-dns-inwx', + version_requirement: '~=2.1.2', + dependencies: '', + credentials: `dns_inwx_url = https://api.domrobot.com/xmlrpc/ dns_inwx_username = your_username dns_inwx_password = your_password dns_inwx_shared_secret = your_shared_secret optional`, - full_plugin_name: "dns-inwx", - }, - //####################################################// - ionos: { - display_name: "IONOS", - package_name: "certbot-dns-ionos", - version_requirement: "==2022.11.24", - dependencies: "", - credentials: `dns_ionos_prefix = myapikeyprefix + full_plugin_name: 'dns-inwx', + }, + //####################################################// + ionos: { + display_name: 'IONOS', + package_name: 'certbot-dns-ionos', + version_requirement: '==2022.11.24', + dependencies: '', + credentials: `dns_ionos_prefix = myapikeyprefix dns_ionos_secret = verysecureapikeysecret dns_ionos_endpoint = https://api.hosting.ionos.com`, - full_plugin_name: "dns-ionos", - }, - //####################################################// - ispconfig: { - display_name: "ISPConfig", - package_name: "certbot-dns-ispconfig", - version_requirement: "~=0.2.0", - dependencies: "", - credentials: `dns_ispconfig_username = myremoteuser + full_plugin_name: 'dns-ionos', + }, + //####################################################// + ispconfig: { + display_name: 'ISPConfig', + package_name: 'certbot-dns-ispconfig', + version_requirement: '~=0.2.0', + dependencies: '', + credentials: `dns_ispconfig_username = myremoteuser dns_ispconfig_password = verysecureremoteuserpassword dns_ispconfig_endpoint = https://localhost:8080`, - full_plugin_name: "dns-ispconfig", - }, - //####################################################// - isset: { - display_name: "Isset", - package_name: "certbot-dns-isset", - version_requirement: "~=0.0.3", - dependencies: "", - credentials: `dns_isset_endpoint="https://customer.isset.net/api" + full_plugin_name: 'dns-ispconfig', + }, + //####################################################// + isset: { + display_name: 'Isset', + package_name: 'certbot-dns-isset', + version_requirement: '~=0.0.3', + dependencies: '', + credentials: `dns_isset_endpoint="https://customer.isset.net/api" dns_isset_token=""`, - full_plugin_name: "dns-isset", - }, - joker: { - display_name: "Joker", - package_name: "certbot-dns-joker", - version_requirement: "~=1.1.0", - dependencies: "", - credentials: `dns_joker_username = + full_plugin_name: 'dns-isset', + }, + joker: { + display_name: 'Joker', + package_name: 'certbot-dns-joker', + version_requirement: '~=1.1.0', + dependencies: '', + credentials: `dns_joker_username = dns_joker_password = dns_joker_domain = `, - full_plugin_name: "dns-joker", - }, - //####################################################// - linode: { - display_name: "Linode", - package_name: "certbot-dns-linode", - version_requirement: - "==$(certbot --version | grep -Eo '[0-9](\\.[0-9]+)+')", // official plugin, use certbot version - dependencies: "", - credentials: `dns_linode_key = 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ64 + full_plugin_name: 'dns-joker', + }, + //####################################################// + linode: { + display_name: 'Linode', + package_name: 'certbot-dns-linode', + version_requirement: '==$(certbot --version | grep -Eo \'[0-9](\\.[0-9]+)+\')', // official plugin, use certbot version + dependencies: '', + credentials: `dns_linode_key = 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ64 dns_linode_version = [|3|4]`, - full_plugin_name: "dns-linode", - }, - //####################################################// - loopia: { - display_name: "Loopia", - package_name: "certbot-dns-loopia", - version_requirement: "~=1.0.0", - dependencies: "", - credentials: `dns_loopia_user = user@loopiaapi + full_plugin_name: 'dns-linode', + }, + //####################################################// + loopia: { + display_name: 'Loopia', + package_name: 'certbot-dns-loopia', + version_requirement: '~=1.0.0', + dependencies: '', + credentials: `dns_loopia_user = user@loopiaapi dns_loopia_password = abcdef0123456789abcdef01234567abcdef0123`, - full_plugin_name: "dns-loopia", - }, - //####################################################// - luadns: { - display_name: "LuaDNS", - package_name: "certbot-dns-luadns", - version_requirement: - "==$(certbot --version | grep -Eo '[0-9](\\.[0-9]+)+')", // official plugin, use certbot version - dependencies: "", - credentials: `dns_luadns_email = user@example.com + full_plugin_name: 'dns-loopia', + }, + //####################################################// + luadns: { + display_name: 'LuaDNS', + package_name: 'certbot-dns-luadns', + version_requirement: '==$(certbot --version | grep -Eo \'[0-9](\\.[0-9]+)+\')', // official plugin, use certbot version + dependencies: '', + credentials: `dns_luadns_email = user@example.com dns_luadns_token = 0123456789abcdef0123456789abcdef`, - full_plugin_name: "dns-luadns", - }, - //####################################################// - namecheap: { - display_name: "Namecheap", - package_name: "certbot-dns-namecheap", - version_requirement: "~=1.0.0", - dependencies: "", - credentials: `dns_namecheap_username = 123456 + full_plugin_name: 'dns-luadns', + }, + //####################################################// + namecheap: { + display_name: 'Namecheap', + package_name: 'certbot-dns-namecheap', + version_requirement: '~=1.0.0', + dependencies: '', + credentials: `dns_namecheap_username = 123456 dns_namecheap_api_key = 0123456789abcdef0123456789abcdef01234567`, - full_plugin_name: "dns-namecheap", - }, - //####################################################// - netcup: { - display_name: "netcup", - package_name: "certbot-dns-netcup", - version_requirement: "~=1.0.0", - dependencies: "", - credentials: `dns_netcup_customer_id = 123456 + full_plugin_name: 'dns-namecheap', + }, + //####################################################// + netcup: { + display_name: 'netcup', + package_name: 'certbot-dns-netcup', + version_requirement: '~=1.0.0', + dependencies: '', + credentials: `dns_netcup_customer_id = 123456 dns_netcup_api_key = 0123456789abcdef0123456789abcdef01234567 dns_netcup_api_password = abcdef0123456789abcdef01234567abcdef0123`, - full_plugin_name: "dns-netcup", - }, - //####################################################// - njalla: { - display_name: "Njalla", - package_name: "certbot-dns-njalla", - version_requirement: "~=1.0.0", - dependencies: "", - credentials: "dns_njalla_token = 0123456789abcdef0123456789abcdef01234567", - full_plugin_name: "dns-njalla", - }, - //####################################################// - nsone: { - display_name: "NS1", - package_name: "certbot-dns-nsone", - version_requirement: - "==$(certbot --version | grep -Eo '[0-9](\\.[0-9]+)+')", // official plugin, use certbot version - dependencies: "", - credentials: "dns_nsone_api_key = MDAwMDAwMDAwMDAwMDAw", - full_plugin_name: "dns-nsone", - }, - //####################################################// - oci: { - display_name: "Oracle Cloud Infrastructure DNS", - package_name: "certbot-dns-oci", - package_version: "0.3.6", - dependencies: "oci", - credentials: `[DEFAULT] + full_plugin_name: 'dns-netcup', + }, + //####################################################// + njalla: { + display_name: 'Njalla', + package_name: 'certbot-dns-njalla', + version_requirement: '~=1.0.0', + dependencies: '', + credentials: 'dns_njalla_token = 0123456789abcdef0123456789abcdef01234567', + full_plugin_name: 'dns-njalla', + }, + //####################################################// + nsone: { + display_name: 'NS1', + package_name: 'certbot-dns-nsone', + version_requirement: '==$(certbot --version | grep -Eo \'[0-9](\\.[0-9]+)+\')', // official plugin, use certbot version + dependencies: '', + credentials: 'dns_nsone_api_key = MDAwMDAwMDAwMDAwMDAw', + full_plugin_name: 'dns-nsone', + }, + //####################################################// + oci: { + display_name: 'Oracle Cloud Infrastructure DNS', + package_name: 'certbot-dns-oci', + package_version: '0.3.6', + dependencies: 'oci', + credentials: `[DEFAULT] user = ocid1.user.oc1... fingerprint = xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx tenancy = ocid1.tenancy.oc1... region = us-ashburn-1 key_file = ~/.oci/oci_api_key.pem`, - full_plugin_name: "dns-oci", - }, - //####################################################// - online: { - display_name: "Online", - package_name: "certbot-dns-online", - version_requirement: "~=0.0.8", - dependencies: "", - credentials: "dns_online_token=0123456789abcdef0123456789abcdef01234567", - full_plugin_name: "dns-online", - }, - //####################################################// - ovh: { - display_name: "OVH", - package_name: "certbot-dns-ovh", - version_requirement: - "==$(certbot --version | grep -Eo '[0-9](\\.[0-9]+)+')", // official plugin, use certbot version - dependencies: "", - credentials: `dns_ovh_endpoint = ovh-eu + full_plugin_name: 'dns-oci', + }, + //####################################################// + online: { + display_name: 'Online', + package_name: 'certbot-dns-online', + version_requirement: '~=0.0.8', + dependencies: '', + credentials: 'dns_online_token=0123456789abcdef0123456789abcdef01234567', + full_plugin_name: 'dns-online', + }, + //####################################################// + ovh: { + display_name: 'OVH', + package_name: 'certbot-dns-ovh', + version_requirement: '==$(certbot --version | grep -Eo \'[0-9](\\.[0-9]+)+\')', // official plugin, use certbot version + dependencies: '', + credentials: `dns_ovh_endpoint = ovh-eu dns_ovh_application_key = MDAwMDAwMDAwMDAw dns_ovh_application_secret = MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw dns_ovh_consumer_key = MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw`, - full_plugin_name: "dns-ovh", - }, - //####################################################// - porkbun: { - display_name: "Porkbun", - package_name: "certbot-dns-porkbun", - version_requirement: "~=0.2", - dependencies: "", - credentials: `dns_porkbun_key=your-porkbun-api-key + full_plugin_name: 'dns-ovh', + }, + //####################################################// + porkbun: { + display_name: 'Porkbun', + package_name: 'certbot-dns-porkbun', + version_requirement: '~=0.2', + dependencies: '', + credentials: `dns_porkbun_key=your-porkbun-api-key dns_porkbun_secret=your-porkbun-api-secret`, - full_plugin_name: "dns-porkbun", - }, - //####################################################// - powerdns: { - display_name: "PowerDNS", - package_name: "certbot-dns-powerdns", - version_requirement: "~=0.2.0", - dependencies: "", - credentials: `dns_powerdns_api_url = https://api.mypowerdns.example.org + full_plugin_name: 'dns-porkbun', + }, + //####################################################// + powerdns: { + display_name: 'PowerDNS', + package_name: 'certbot-dns-powerdns', + version_requirement: '~=0.2.0', + dependencies: '', + credentials: `dns_powerdns_api_url = https://api.mypowerdns.example.org dns_powerdns_api_key = AbCbASsd!@34`, - full_plugin_name: "dns-powerdns", - }, - //####################################################// - regru: { - display_name: "reg.ru", - package_name: "certbot-regru", - version_requirement: "~=1.0.2", - dependencies: "", - credentials: `dns_username=username + full_plugin_name: 'dns-powerdns', + }, + //####################################################// + regru: { + display_name: 'reg.ru', + package_name: 'certbot-regru', + version_requirement: '~=1.0.2', + dependencies: '', + credentials: `dns_username=username dns_password=password`, - full_plugin_name: "dns", - }, - //####################################################// - rfc2136: { - display_name: "RFC 2136", - package_name: "certbot-dns-rfc2136", - version_requirement: - "==$(certbot --version | grep -Eo '[0-9](\\.[0-9]+)+')", // official plugin, use certbot version - dependencies: "", - credentials: `# Target DNS server + full_plugin_name: 'dns', + }, + //####################################################// + rfc2136: { + display_name: 'RFC 2136', + package_name: 'certbot-dns-rfc2136', + version_requirement: '==$(certbot --version | grep -Eo \'[0-9](\\.[0-9]+)+\')', // official plugin, use certbot version + dependencies: '', + credentials: `# Target DNS server dns_rfc2136_server = 192.0.2.1 # Target DNS port dns_rfc2136_port = 53 @@ -529,27 +517,26 @@ dns_rfc2136_name = keyname. dns_rfc2136_secret = 4q4wM/2I180UXoMyN4INVhJNi8V9BCV+jMw2mXgZw/CSuxUT8C7NKKFs AmKd7ak51vWKgSl12ib86oQRPkpDjg== # TSIG key algorithm dns_rfc2136_algorithm = HMAC-SHA512`, - full_plugin_name: "dns-rfc2136", - }, - //####################################################// - route53: { - display_name: "Route 53 (Amazon)", - package_name: "certbot-dns-route53", - version_requirement: - "==$(certbot --version | grep -Eo '[0-9](\\.[0-9]+)+')", // official plugin, use certbot version - dependencies: "", - credentials: `[default] + full_plugin_name: 'dns-rfc2136', + }, + //####################################################// + route53: { + display_name: 'Route 53 (Amazon)', + package_name: 'certbot-dns-route53', + version_requirement: '==$(certbot --version | grep -Eo \'[0-9](\\.[0-9]+)+\')', // official plugin, use certbot version + dependencies: '', + credentials: `[default] aws_access_key_id=AKIAIOSFODNN7EXAMPLE aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY`, - full_plugin_name: "dns-route53", - }, - //####################################################// - strato: { - display_name: "Strato", - package_name: "certbot-dns-strato", - version_requirement: "~=0.1.1", - dependencies: "", - credentials: `dns_strato_username = user + full_plugin_name: 'dns-route53', + }, + //####################################################// + strato: { + display_name: 'Strato', + package_name: 'certbot-dns-strato', + version_requirement: '~=0.1.1', + dependencies: '', + credentials: `dns_strato_username = user dns_strato_password = pass # uncomment if youre using two factor authentication: # dns_strato_totp_devicename = 2fa_device @@ -565,46 +552,46 @@ dns_strato_password = pass # dns_strato_custom_api_host = www.strato.de # dns_strato_custom_api_port = 443 # dns_strato_custom_api_path = "/apps/CustomerService"`, - full_plugin_name: "dns-strato", - }, - //####################################################// - transip: { - display_name: "TransIP", - package_name: "certbot-dns-transip", - version_requirement: "~=0.4.3", - dependencies: "", - credentials: `dns_transip_username = my_username + full_plugin_name: 'dns-strato', + }, + //####################################################// + transip: { + display_name: 'TransIP', + package_name: 'certbot-dns-transip', + version_requirement: '~=0.4.3', + dependencies: '', + credentials: `dns_transip_username = my_username dns_transip_key_file = /etc/letsencrypt/transip-rsa.key`, - full_plugin_name: "dns-transip", - }, - //####################################################// - tencentcloud: { - display_name: "Tencent Cloud", - package_name: "certbot-dns-tencentcloud", - version_requirement: "~=2.0.2", - dependencies: "", - credentials: `dns_tencentcloud_secret_id = TENCENT_CLOUD_SECRET_ID + full_plugin_name: 'dns-transip', + }, + //####################################################// + tencentcloud: { + display_name: 'Tencent Cloud', + package_name: 'certbot-dns-tencentcloud', + version_requirement: '~=2.0.2', + dependencies: '', + credentials: `dns_tencentcloud_secret_id = TENCENT_CLOUD_SECRET_ID dns_tencentcloud_secret_key = TENCENT_CLOUD_SECRET_KEY`, - full_plugin_name: "dns-tencentcloud", - }, - //####################################################// - vultr: { - display_name: "Vultr", - package_name: "certbot-dns-vultr", - version_requirement: "~=1.1.0", - dependencies: "", - credentials: "dns_vultr_key = YOUR_VULTR_API_KEY", - full_plugin_name: "dns-vultr", - }, - //####################################################// - websupportsk: { - display_name: "Websupport.sk", - package_name: "certbot-dns-websupportsk", - version_requirement: "~=0.1.6", - dependencies: "", - credentials: `dns_websupportsk_api_key = + full_plugin_name: 'dns-tencentcloud', + }, + //####################################################// + vultr: { + display_name: 'Vultr', + package_name: 'certbot-dns-vultr', + version_requirement: '~=1.1.0', + dependencies: '', + credentials: 'dns_vultr_key = YOUR_VULTR_API_KEY', + full_plugin_name: 'dns-vultr', + }, + //####################################################// + websupportsk: { + display_name: 'Websupport.sk', + package_name: 'certbot-dns-websupportsk', + version_requirement: '~=0.1.6', + dependencies: '', + credentials: `dns_websupportsk_api_key = dns_websupportsk_secret = dns_websupportsk_domain = example.com`, - full_plugin_name: "dns-websupportsk", - }, + full_plugin_name: 'dns-websupportsk', + }, }; From 388fff84f2b9fb68fb6b2bacf940bbf7faef675d Mon Sep 17 00:00:00 2001 From: Jocelyn Le Sage Date: Wed, 13 Dec 2023 20:32:50 -0500 Subject: [PATCH 17/29] Fixes for the server reachability test. - Do not apply HTTPs redirection for challenge used by the test. - Set the `User-Agent` to avoid 403 answer from site24x7.com. - Handle JSON parsing failure of the received body. - Better handling of different error cases. --- backend/internal/certificate.js | 22 +++++++++++++++---- .../etc/nginx/conf.d/include/force-ssl.conf | 7 ++++++ 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/backend/internal/certificate.js b/backend/internal/certificate.js index f68ef30b..ecbb4bf3 100644 --- a/backend/internal/certificate.js +++ b/backend/internal/certificate.js @@ -1167,6 +1167,7 @@ const internalCertificate = { const options = { method: 'POST', headers: { + 'User-Agent': 'Mozilla/5.0', 'Content-Type': 'application/x-www-form-urlencoded', 'Content-Length': Buffer.byteLength(formBody) } @@ -1179,12 +1180,22 @@ const internalCertificate = { res.on('data', (chunk) => responseBody = responseBody + chunk); res.on('end', function () { - const parsedBody = JSON.parse(responseBody + ''); - if (res.statusCode !== 200) { - logger.warn(`Failed to test HTTP challenge for domain ${domain}`, res); + try { + const parsedBody = JSON.parse(responseBody + ''); + if (res.statusCode !== 200) { + logger.warn(`Failed to test HTTP challenge for domain ${domain} because HTTP status code ${res.statusCode} was returned: ${parsedBody.message}`); + resolve(undefined); + } else { + resolve(parsedBody); + } + } catch (err) { + if (res.statusCode !== 200) { + logger.warn(`Failed to test HTTP challenge for domain ${domain} because HTTP status code ${res.statusCode} was returned`); + } else { + logger.warn(`Failed to test HTTP challenge for domain ${domain} because response failed to be parsed: ${err.message}`); + } resolve(undefined); } - resolve(parsedBody); }); }); @@ -1198,6 +1209,9 @@ const internalCertificate = { if (!result) { // Some error occurred while trying to get the data return 'failed'; + } else if (result.error) { + logger.info(`HTTP challenge test failed for domain ${domain} because error was returned: ${result.error.msg}`); + return `other:${result.error.msg}`; } else if (`${result.responsecode}` === '200' && result.htmlresponse === 'Success') { // Server exists and has responded with the correct data return 'ok'; diff --git a/docker/rootfs/etc/nginx/conf.d/include/force-ssl.conf b/docker/rootfs/etc/nginx/conf.d/include/force-ssl.conf index 15f0d285..aa52f335 100644 --- a/docker/rootfs/etc/nginx/conf.d/include/force-ssl.conf +++ b/docker/rootfs/etc/nginx/conf.d/include/force-ssl.conf @@ -1,3 +1,10 @@ +set $test ""; if ($scheme = "http") { + set $test "H"; +} +if ($request_uri = /.well-known/acme-challenge/test-challenge) { + set $test "${test}T"; +} +if ($test = H) { return 301 https://$host$request_uri; } From 13d4f98fdb6c2e8ec56c3dbeb5a7b17c45c080ce Mon Sep 17 00:00:00 2001 From: Jeremie Allard Date: Wed, 20 Dec 2023 12:19:17 +0100 Subject: [PATCH 18/29] Update certbot-dns-plugins.js for gandi (deprecation of Apikey in favor of personal tokens) --- global/certbot-dns-plugins.js | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/global/certbot-dns-plugins.js b/global/certbot-dns-plugins.js index 1e14ad65..80da21bc 100644 --- a/global/certbot-dns-plugins.js +++ b/global/certbot-dns-plugins.js @@ -254,13 +254,10 @@ dns_eurodns_endpoint = https://rest-api.eurodns.com/user-api-gateway/proxy`, gandi: { display_name: 'Gandi Live DNS', package_name: 'certbot_plugin_gandi', - version_requirement: '~=1.3.2', + version_requirement: '~=1.5.0', dependencies: '', - credentials: `# live dns v5 api key -dns_gandi_api_key=APIKEY - -# optional organization id, remove it if not used -dns_gandi_sharing_id=SHARINGID`, + credentials: `# Gandi personal access token +dns_gandi_token=PERSONAL_ACCESS_TOKEN`, full_plugin_name: 'dns-gandi', }, //####################################################// From 7d85463dae3dea6ebee174d80b7cf6d1137d38cb Mon Sep 17 00:00:00 2001 From: "Aaron B. Russell" Date: Thu, 21 Dec 2023 16:07:34 +0000 Subject: [PATCH 19/29] Add support for certbot-dns-plesk --- global/certbot-dns-plugins.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/global/certbot-dns-plugins.js b/global/certbot-dns-plugins.js index 1e14ad65..20b8259b 100644 --- a/global/certbot-dns-plugins.js +++ b/global/certbot-dns-plugins.js @@ -472,6 +472,17 @@ dns_ovh_consumer_key = MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw`, full_plugin_name: 'dns-ovh', }, //####################################################// + plesk: { + display_name: 'Plesk', + package_name: 'certbot-dns-plesk', + version_requirement: '~=0.3.0', + dependencies: '', + credentials: `dns_plesk_username = your-username +dns_plesk_password = secret +dns_plesk_api_url = https://plesk-api-host:8443`, + full_plugin_name: 'dns-plesk', + }, + //####################################################// porkbun: { display_name: 'Porkbun', package_name: 'certbot-dns-porkbun', From af475ab5d4f7e3e872f5d6d32275063034134c6f Mon Sep 17 00:00:00 2001 From: Encephala Date: Sat, 30 Dec 2023 15:23:17 +0100 Subject: [PATCH 20/29] Add documentation on customising logrotate config --- docs/advanced-config/README.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/docs/advanced-config/README.md b/docs/advanced-config/README.md index f0cbf99a..f04eb8fa 100644 --- a/docs/advanced-config/README.md +++ b/docs/advanced-config/README.md @@ -194,3 +194,17 @@ value by specifying it as a Docker environment variable. The default if not spec X_FRAME_OPTIONS: "sameorigin" ... ``` + +## Customising logrotate settings + +By default, NPM rotates the access- and error logs weekly and keeps 4 and 10 log files respectively. +Depending on the usage, this can lead to large log files, especially access logs. +You can customise the logrotate configuration through a mount (if your custom config is `logrotate.custom`): + +```yml + volumes: + ... + - ./logrotate.custom:/etc/logrotate.d/nginx-proxy/manager +``` + +For reference, the default configuration can be found [here](https://github.com/NginxProxyManager/nginx-proxy-manager/blob/develop/docker/rootfs/etc/logrotate.d/nginx-proxy-manager). From da55e931837d0794e64745b8c708bd01d370271e Mon Sep 17 00:00:00 2001 From: Encephala Date: Wed, 3 Jan 2024 16:48:58 +0100 Subject: [PATCH 21/29] Update year to 2024 in footer --- 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 44b638a3..0bbde454 100644 --- a/frontend/js/i18n/messages.json +++ b/frontend/js/i18n/messages.json @@ -60,7 +60,7 @@ }, "footer": { "fork-me": "Fork me on Github", - "copy": "© 2023 jc21.com.", + "copy": "© 2024 jc21.com.", "theme": "Theme by Tabler" }, "dashboard": { From b3564b6d4bf6ee6632e2e7b991e968b83f88059b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Jan 2024 00:35:43 +0000 Subject: [PATCH 22/29] Bump @babel/traverse from 7.11.0 to 7.23.7 in /docs Bumps [@babel/traverse](https://github.com/babel/babel/tree/HEAD/packages/babel-traverse) from 7.11.0 to 7.23.7. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.23.7/packages/babel-traverse) --- updated-dependencies: - dependency-name: "@babel/traverse" dependency-type: indirect ... Signed-off-by: dependabot[bot] --- docs/yarn.lock | 158 +++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 140 insertions(+), 18 deletions(-) diff --git a/docs/yarn.lock b/docs/yarn.lock index 3a38e241..cca49945 100644 --- a/docs/yarn.lock +++ b/docs/yarn.lock @@ -113,6 +113,14 @@ dependencies: "@babel/highlight" "^7.10.4" +"@babel/code-frame@^7.22.13", "@babel/code-frame@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" + integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== + dependencies: + "@babel/highlight" "^7.23.4" + chalk "^2.4.2" + "@babel/compat-data@^7.10.4", "@babel/compat-data@^7.11.0": version "7.11.0" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.11.0.tgz#e9f73efe09af1355b723a7f39b11bad637d7c99c" @@ -153,6 +161,16 @@ jsesc "^2.5.1" source-map "^0.5.0" +"@babel/generator@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.6.tgz#9e1fca4811c77a10580d17d26b57b036133f3c2e" + integrity sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw== + dependencies: + "@babel/types" "^7.23.6" + "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" + jsesc "^2.5.1" + "@babel/helper-annotate-as-pure@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz#5bf0d495a3f757ac3bda48b5bf3b3ba309c72ba3" @@ -209,6 +227,11 @@ "@babel/types" "^7.10.5" lodash "^4.17.19" +"@babel/helper-environment-visitor@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" + integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== + "@babel/helper-explode-assignable-expression@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.4.tgz#40a1cd917bff1288f699a94a75b37a1a2dbd8c7c" @@ -226,6 +249,14 @@ "@babel/template" "^7.10.4" "@babel/types" "^7.10.4" +"@babel/helper-function-name@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" + integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== + dependencies: + "@babel/template" "^7.22.15" + "@babel/types" "^7.23.0" + "@babel/helper-get-function-arity@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz#98c1cbea0e2332f33f9a4661b8ce1505b2c19ba2" @@ -240,6 +271,13 @@ dependencies: "@babel/types" "^7.10.4" +"@babel/helper-hoist-variables@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" + integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== + dependencies: + "@babel/types" "^7.22.5" + "@babel/helper-member-expression-to-functions@^7.10.4", "@babel/helper-member-expression-to-functions@^7.10.5": version "7.11.0" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz#ae69c83d84ee82f4b42f96e2a09410935a8f26df" @@ -329,11 +367,28 @@ dependencies: "@babel/types" "^7.11.0" +"@babel/helper-split-export-declaration@^7.22.6": + version "7.22.6" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" + integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-string-parser@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz#9478c707febcbbe1ddb38a3d91a2e054ae622d83" + integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ== + "@babel/helper-validator-identifier@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw== +"@babel/helper-validator-identifier@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" + integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== + "@babel/helper-wrap-function@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz#8a6f701eab0ff39f765b5a1cfef409990e624b87" @@ -362,11 +417,25 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.10.4", "@babel/parser@^7.11.0", "@babel/parser@^7.11.1": +"@babel/highlight@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b" + integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A== + dependencies: + "@babel/helper-validator-identifier" "^7.22.20" + chalk "^2.4.2" + js-tokens "^4.0.0" + +"@babel/parser@^7.10.4", "@babel/parser@^7.11.1": version "7.11.2" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.11.2.tgz#0882ab8a455df3065ea2dcb4c753b2460a24bead" integrity sha512-Vuj/+7vLo6l1Vi7uuO+1ngCDNeVmNbTngcJFKCR/oEtz8tKz0CJxZEGmPt9KcIloZhOZ3Zit6xbpXT2MDlS9Vw== +"@babel/parser@^7.22.15", "@babel/parser@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.6.tgz#ba1c9e512bda72a47e285ae42aff9d2a635a9e3b" + integrity sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ== + "@babel/plugin-proposal-async-generator-functions@^7.10.4": version "7.10.5" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.5.tgz#3491cabf2f7c179ab820606cec27fed15e0e8558" @@ -943,20 +1012,30 @@ "@babel/parser" "^7.10.4" "@babel/types" "^7.10.4" -"@babel/traverse@^7.10.4", "@babel/traverse@^7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.11.0.tgz#9b996ce1b98f53f7c3e4175115605d56ed07dd24" - integrity sha512-ZB2V+LskoWKNpMq6E5UUCrjtDUh5IOTAyIl0dTjIEoXum/iKWkoIEKIRDnUucO6f+2FzNkE0oD4RLKoPIufDtg== +"@babel/template@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" + integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.11.0" - "@babel/helper-function-name" "^7.10.4" - "@babel/helper-split-export-declaration" "^7.11.0" - "@babel/parser" "^7.11.0" - "@babel/types" "^7.11.0" - debug "^4.1.0" + "@babel/code-frame" "^7.22.13" + "@babel/parser" "^7.22.15" + "@babel/types" "^7.22.15" + +"@babel/traverse@^7.10.4", "@babel/traverse@^7.11.0": + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.7.tgz#9a7bf285c928cb99b5ead19c3b1ce5b310c9c305" + integrity sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg== + dependencies: + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.6" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/parser" "^7.23.6" + "@babel/types" "^7.23.6" + debug "^4.3.1" globals "^11.1.0" - lodash "^4.17.19" "@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.11.0", "@babel/types@^7.4.4": version "7.11.0" @@ -967,6 +1046,15 @@ lodash "^4.17.19" to-fast-properties "^2.0.0" +"@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.6.tgz#be33fdb151e1f5a56877d704492c240fc71c7ccd" + integrity sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg== + dependencies: + "@babel/helper-string-parser" "^7.23.4" + "@babel/helper-validator-identifier" "^7.22.20" + to-fast-properties "^2.0.0" + "@jridgewell/gen-mapping@^0.3.0": version "0.3.2" resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" @@ -976,11 +1064,25 @@ "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping" "^0.3.9" +"@jridgewell/gen-mapping@^0.3.2": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" + integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== + dependencies: + "@jridgewell/set-array" "^1.0.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" + "@jridgewell/resolve-uri@^3.0.3": version "3.1.0" resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" + integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== + "@jridgewell/set-array@^1.0.1": version "1.1.2" resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" @@ -999,6 +1101,19 @@ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== +"@jridgewell/sourcemap-codec@^1.4.14": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + +"@jridgewell/trace-mapping@^0.3.17": + version "0.3.20" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz#72e45707cf240fa6b081d0366f8265b0cd10197f" + integrity sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + "@jridgewell/trace-mapping@^0.3.9": version "0.3.14" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz#b231a081d8f66796e475ad588a1ef473112701ed" @@ -3320,6 +3435,13 @@ debug@^4.1.0, debug@^4.1.1: dependencies: ms "^2.1.1" +debug@^4.3.1: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + debug@~3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" @@ -6592,16 +6714,16 @@ ms@2.0.0: resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= +ms@2.1.2, ms@^2.0.0, ms@^2.1.1, ms@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + ms@2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -ms@^2.0.0, ms@^2.1.1, ms@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - multicast-dns-service-types@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" From 082c4e10082d38bb4b9a5ad20017057bf2684e14 Mon Sep 17 00:00:00 2001 From: Encephala Date: Mon, 8 Jan 2024 16:14:27 +0100 Subject: [PATCH 23/29] Fix typo in logrotate config path --- docs/advanced-config/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/advanced-config/README.md b/docs/advanced-config/README.md index f04eb8fa..aca339d2 100644 --- a/docs/advanced-config/README.md +++ b/docs/advanced-config/README.md @@ -204,7 +204,7 @@ You can customise the logrotate configuration through a mount (if your custom co ```yml volumes: ... - - ./logrotate.custom:/etc/logrotate.d/nginx-proxy/manager + - ./logrotate.custom:/etc/logrotate.d/nginx-proxy-manager ``` For reference, the default configuration can be found [here](https://github.com/NginxProxyManager/nginx-proxy-manager/blob/develop/docker/rootfs/etc/logrotate.d/nginx-proxy-manager). From e4ef095254b6349f15a9b51e46619d43a2d6dc87 Mon Sep 17 00:00:00 2001 From: Jamie Curnow Date: Tue, 9 Jan 2024 08:36:32 +1000 Subject: [PATCH 24/29] Deploy develop docs in CI, updated readme --- Jenkinsfile | 35 +++++++++++++++++++++++++---------- README.md | 16 +++++++++++++--- 2 files changed, 38 insertions(+), 13 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index ca32bcc5..daaa9f47 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -22,8 +22,6 @@ pipeline { COMPOSE_FILE = 'docker/docker-compose.ci.yml' COMPOSE_INTERACTIVE_NO_CLI = 1 BUILDX_NAME = "${COMPOSE_PROJECT_NAME}" - DOCS_BUCKET = 'jc21-npm-site' - DOCS_CDN = 'EN1G6DEWZUTDT' } stages { stage('Environment') { @@ -175,16 +173,33 @@ pipeline { } } stage('Docs Deploy') { - when { - allOf { - branch 'master' - not { - equals expected: 'UNSTABLE', actual: currentBuild.result + parallel { + stage('Master') { + when { + allOf { + branch 'master' + not { + equals expected: 'UNSTABLE', actual: currentBuild.result + } + } + } + steps { + npmDocsReleaseMaster() + } + } + stage('Develop') { + when { + allOf { + branch 'develop' + not { + equals expected: 'UNSTABLE', actual: currentBuild.result + } + } + } + steps { + npmDocsReleaseDevelop() } } - } - steps { - npmDocsRelease("$DOCS_BUCKET", "$DOCS_CDN") } } stage('PR Comment') { diff --git a/README.md b/README.md index 0bad17f6..c4177394 100644 --- a/README.md +++ b/README.md @@ -98,7 +98,18 @@ Password: changeme Immediately after logging in with this default user you will be asked to modify your details and change your password. -## Contributors +## Contributing + +All are welcome to create pull requests for this project, against the `develop` branch. Official releases are created from the `master` branch. + +CI is used in this project. All PR's must pass before being considered. After passing, +docker builds for PR's are available on dockerhub for manual verifications. + +Documentation within the `develop` branch is available for preview at +[https://develop.nginxproxymanager.com](https://develop.nginxproxymanager.com) + + +### Contributors Special thanks to [all of our contributors](https://github.com/NginxProxyManager/nginx-proxy-manager/graphs/contributors). @@ -107,5 +118,4 @@ Special thanks to [all of our contributors](https://github.com/NginxProxyManager 1. [Found a bug?](https://github.com/NginxProxyManager/nginx-proxy-manager/issues) 2. [Discussions](https://github.com/NginxProxyManager/nginx-proxy-manager/discussions) -3. [Development Gitter](https://gitter.im/nginx-proxy-manager/community) -4. [Reddit](https://reddit.com/r/nginxproxymanager) +3. [Reddit](https://reddit.com/r/nginxproxymanager) From f7c87f63bd4b2ab11a61de9200ca67dee07267f7 Mon Sep 17 00:00:00 2001 From: Jamie Curnow Date: Tue, 9 Jan 2024 10:05:19 +1000 Subject: [PATCH 25/29] Updated CI to run some things in parallel --- Jenkinsfile | 105 +++++++++++++++++++++++++--------------------------- 1 file changed, 51 insertions(+), 54 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index daaa9f47..bdbb3f62 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -60,27 +60,43 @@ pipeline { } } } - stage('Build and Test') { - steps { - script { - // Frontend and Backend - def shStatusCode = sh(label: 'Checking and Building', returnStatus: true, script: ''' - set -e - ./scripts/ci/frontend-build > ${WORKSPACE}/tmp-sh-build 2>&1 - ./scripts/ci/test-and-build > ${WORKSPACE}/tmp-sh-build 2>&1 - ''') - shOutput = readFile "${env.WORKSPACE}/tmp-sh-build" - if (shStatusCode != 0) { - error "${shOutput}" + stage('Builds') { + parallel { + stage('Project') { + steps { + script { + // Frontend and Backend + def shStatusCode = sh(label: 'Checking and Building', returnStatus: true, script: ''' + set -e + ./scripts/ci/frontend-build > ${WORKSPACE}/tmp-sh-build 2>&1 + ./scripts/ci/test-and-build > ${WORKSPACE}/tmp-sh-build 2>&1 + ''') + shOutput = readFile "${env.WORKSPACE}/tmp-sh-build" + if (shStatusCode != 0) { + error "${shOutput}" + } + } + } + post { + always { + sh 'rm -f ${WORKSPACE}/tmp-sh-build' + } + failure { + npmGithubPrComment("CI Error:\n\n```\n${shOutput}\n```", true) + } } } - } - post { - always { - sh 'rm -f ${WORKSPACE}/tmp-sh-build' - } - failure { - npmGithubPrComment("CI Error:\n\n```\n${shOutput}\n```", true) + stage('Docs') { + steps { + dir(path: 'docs') { + sh 'yarn install' + sh 'yarn build' + } + dir(path: 'docs/.vuepress/dist') { + sh 'tar -czf ../../docs.tgz *' + } + archiveArtifacts(artifacts: 'docs/docs.tgz', allowEmptyArchive: false) + } } } } @@ -140,25 +156,6 @@ pipeline { } } } - stage('Docs') { - when { - not { - equals expected: 'UNSTABLE', actual: currentBuild.result - } - } - steps { - dir(path: 'docs') { - sh 'yarn install' - sh 'yarn build' - } - - dir(path: 'docs/.vuepress/dist') { - sh 'tar -czf ../../docs.tgz *' - } - - archiveArtifacts(artifacts: 'docs/docs.tgz', allowEmptyArchive: false) - } - } stage('MultiArch Build') { when { not { @@ -172,9 +169,9 @@ pipeline { } } } - stage('Docs Deploy') { + stage('Docs / Comment') { parallel { - stage('Master') { + stage('Master Docs') { when { allOf { branch 'master' @@ -187,7 +184,7 @@ pipeline { npmDocsReleaseMaster() } } - stage('Develop') { + stage('Develop Docs') { when { allOf { branch 'develop' @@ -200,20 +197,20 @@ pipeline { npmDocsReleaseDevelop() } } - } - } - stage('PR Comment') { - when { - allOf { - changeRequest() - not { - equals expected: 'UNSTABLE', actual: currentBuild.result + stage('PR Comment') { + when { + allOf { + changeRequest() + not { + equals expected: 'UNSTABLE', actual: currentBuild.result + } + } + } + steps { + script { + npmGithubPrComment("Docker 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.", true) + } } - } - } - steps { - script { - npmGithubPrComment("Docker 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.", true) } } } From b699f05f47fa4e7499ad7d067d14ae7d32c6af01 Mon Sep 17 00:00:00 2001 From: Jamie Curnow Date: Tue, 9 Jan 2024 10:25:10 +1000 Subject: [PATCH 26/29] Run integration tests in parallel --- Jenkinsfile | 99 +++++++++++++++++++----------------- docker/docker-compose.ci.yml | 18 ++++--- 2 files changed, 61 insertions(+), 56 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index bdbb3f62..e0475722 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -100,59 +100,62 @@ pipeline { } } } - stage('Integration Tests Sqlite') { - steps { - // Bring up a stack - sh 'docker-compose up -d fullstack-sqlite' - sh './scripts/wait-healthy $(docker-compose ps --all -q fullstack-sqlite) 120' - // Stop and Start it, as this will test it's ability to restart with existing data - sh 'docker-compose stop fullstack-sqlite' - sh 'docker-compose start fullstack-sqlite' - sh './scripts/wait-healthy $(docker-compose ps --all -q fullstack-sqlite) 120' + stage('Integration Tests') { + parallel { + stage('Sqlite') { + steps { + // Bring up a stack + sh 'docker-compose up -d fullstack-sqlite' + sh './scripts/wait-healthy $(docker-compose ps --all -q fullstack-sqlite) 120' + // Stop and Start it, as this will test it's ability to restart with existing data + sh 'docker-compose stop fullstack-sqlite' + sh 'docker-compose start fullstack-sqlite' + sh './scripts/wait-healthy $(docker-compose ps --all -q fullstack-sqlite) 120' - // Run tests - sh 'rm -rf test/results' - sh 'docker-compose up cypress-sqlite' - // Get results - sh 'docker cp -L "$(docker-compose ps --all -q cypress-sqlite):/test/results" test/' - } - post { - always { - // Dumps to analyze later - sh 'mkdir -p debug' - sh 'docker-compose logs fullstack-sqlite > debug/docker_fullstack_sqlite.log' - sh 'docker-compose logs db > debug/docker_db.log' - // Cypress videos and screenshot artifacts - dir(path: 'test/results') { - archiveArtifacts allowEmptyArchive: true, artifacts: '**/*', excludes: '**/*.xml' + // Run tests + sh 'rm -rf test/results-sqlite' + sh 'docker-compose up cypress-sqlite' + // Get results + sh 'docker cp -L "$(docker-compose ps --all -q cypress-sqlite):/test/results" test/results-sqlite' + } + post { + always { + // Dumps to analyze later + sh 'mkdir -p debug/sqlite' + sh 'docker-compose logs fullstack-sqlite > debug/sqlite/docker_fullstack_sqlite.log' + // Cypress videos and screenshot artifacts + dir(path: 'test/results-sqlite') { + archiveArtifacts allowEmptyArchive: true, artifacts: '**/*', excludes: '**/*.xml' + } + junit 'test/results-sqlite/junit/*' + } } - junit 'test/results/junit/*' } - } - } - stage('Integration Tests Mysql') { - steps { - // Bring up a stack - sh 'docker-compose up -d fullstack-mysql' - sh './scripts/wait-healthy $(docker-compose ps --all -q fullstack-mysql) 120' + stage('Mysql') { + steps { + // Bring up a stack + sh 'docker-compose up -d fullstack-mysql' + sh './scripts/wait-healthy $(docker-compose ps --all -q fullstack-mysql) 120' - // Run tests - sh 'rm -rf test/results' - sh 'docker-compose up cypress-mysql' - // Get results - sh 'docker cp -L "$(docker-compose ps --all -q cypress-mysql):/test/results" test/' - } - post { - always { - // Dumps to analyze later - sh 'mkdir -p debug' - sh 'docker-compose logs fullstack-mysql > debug/docker_fullstack_mysql.log' - sh 'docker-compose logs db > debug/docker_db.log' - // Cypress videos and screenshot artifacts - dir(path: 'test/results') { - archiveArtifacts allowEmptyArchive: true, artifacts: '**/*', excludes: '**/*.xml' + // Run tests + sh 'rm -rf test/results-mysql' + sh 'docker-compose up cypress-mysql' + // Get results + sh 'docker cp -L "$(docker-compose ps --all -q cypress-mysql):/test/results" test/results-mysql' + } + post { + always { + // Dumps to analyze later + sh 'mkdir -p debug/mysql' + sh 'docker-compose logs fullstack-mysql > debug/mysql/docker_fullstack_mysql.log' + sh 'docker-compose logs db > debug/mysql/docker_db.log' + // Cypress videos and screenshot artifacts + dir(path: 'test/results-mysql') { + archiveArtifacts allowEmptyArchive: true, artifacts: '**/*', excludes: '**/*.xml' + } + junit 'test/results-mysql/junit/*' + } } - junit 'test/results/junit/*' } } } diff --git a/docker/docker-compose.ci.yml b/docker/docker-compose.ci.yml index 209d2d0e..66e240de 100644 --- a/docker/docker-compose.ci.yml +++ b/docker/docker-compose.ci.yml @@ -14,7 +14,7 @@ services: DB_MYSQL_PASSWORD: 'npm' DB_MYSQL_NAME: 'npm' volumes: - - npm_data:/data + - npm_data_mysql:/data expose: - 81 - 80 @@ -37,7 +37,7 @@ services: PGID: 1000 DISABLE_IPV6: 'true' volumes: - - npm_data:/data + - npm_data_sqlite:/data expose: - 81 - 80 @@ -55,7 +55,7 @@ services: MYSQL_USER: 'npm' MYSQL_PASSWORD: 'npm' volumes: - - db_data:/var/lib/mysql + - mysql_data:/var/lib/mysql cypress-mysql: image: "${IMAGE}-cypress:ci-${BUILD_NUMBER}" @@ -65,7 +65,7 @@ services: environment: CYPRESS_baseUrl: 'http://fullstack-mysql:81' volumes: - - cypress-logs:/results + - cypress_logs_mysql:/results command: cypress run --browser chrome --config-file=${CYPRESS_CONFIG:-cypress/config/ci.json} cypress-sqlite: @@ -76,10 +76,12 @@ services: environment: CYPRESS_baseUrl: "http://fullstack-sqlite:81" volumes: - - cypress-logs:/results + - cypress_logs_sqlite:/results command: cypress run --browser chrome --config-file=${CYPRESS_CONFIG:-cypress/config/ci.json} volumes: - cypress-logs: - npm_data: - db_data: + cypress_logs_mysql: + cypress_logs_sqlite: + npm_data_mysql: + npm_data_sqlite: + mysql_data: From 025fc9776b0a488b666e0a36801f95860e052745 Mon Sep 17 00:00:00 2001 From: Jamie Curnow Date: Tue, 9 Jan 2024 10:32:58 +1000 Subject: [PATCH 27/29] Pre-build cypress images before runnings integration tests --- Jenkinsfile | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index e0475722..3f4ae53a 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -98,6 +98,12 @@ pipeline { archiveArtifacts(artifacts: 'docs/docs.tgz', allowEmptyArchive: false) } } + stage('Cypress') { + steps { + sh 'docker-compose build cypress-sqlite' + sh 'docker-compose build cypress-mysql' + } + } } } stage('Integration Tests') { From 6aee2bbcba665ceef646ec0141bbdbbe1f6975ae Mon Sep 17 00:00:00 2001 From: Jamie Curnow Date: Tue, 9 Jan 2024 10:57:47 +1000 Subject: [PATCH 28/29] Fix race condition with integration network --- Jenkinsfile | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index 3f4ae53a..4fa19654 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -100,8 +100,13 @@ pipeline { } stage('Cypress') { steps { + // Creating will also create the network prior to + // using it in parallel stages below and mitigating + // a race condition. sh 'docker-compose build cypress-sqlite' sh 'docker-compose build cypress-mysql' + sh 'docker-compose create cypress-sqlite' + sh 'docker-compose create cypress-mysql' } } } From 883a272b0ae8048f68d3f3e33267296671798022 Mon Sep 17 00:00:00 2001 From: Jamie Curnow Date: Tue, 9 Jan 2024 11:30:50 +1000 Subject: [PATCH 29/29] Bump version --- .version | 2 +- README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.version b/.version index b52282a1..46b81d81 100644 --- a/.version +++ b/.version @@ -1 +1 @@ -2.10.4 +2.11.0 diff --git a/README.md b/README.md index c4177394..6fd16aed 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@



- +