mirror of
https://github.com/NginxProxyManager/nginx-proxy-manager.git
synced 2025-08-04 00:13:33 +00:00
Merge remote-tracking branch 'upstream/develop' into develop
This commit is contained in:
16
README.md
16
README.md
@@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
# NPMplus
|
# NPMplus
|
||||||
|
|
||||||
This project comes as a pre-built docker image that enables you to easily forward to your websites
|
This project comes as a pre-built docker image that enables you to easily forward to your websites
|
||||||
@@ -182,20 +181,25 @@ Password: iArhP1j7p1P6TA92FA2FMbbUGYqwcYzxC4AVEe12Wbi94FY9gNN62aKyF1shrvG4NycjjX
|
|||||||
|
|
||||||
Immediately after logging in with this default user you will be asked to modify your details and change your password.
|
Immediately after logging in with this default user you will be asked to modify your details and change your password.
|
||||||
|
|
||||||
|
## Contributing
|
||||||
|
|
||||||
## Contributors/Sponsor original NPM
|
All are welcome to create pull requests for this project, against the `develop` 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.
|
||||||
|
|
||||||
|
## Contributors/Sponsor upstream NPM
|
||||||
|
|
||||||
Special thanks to [all of our contributors](https://github.com/NginxProxyManager/nginx-proxy-manager/graphs/contributors).
|
Special thanks to [all of our contributors](https://github.com/NginxProxyManager/nginx-proxy-manager/graphs/contributors).
|
||||||
If you want to sponsor them, please see [here](https://github.com/NginxProxyManager/nginx-proxy-manager/blob/master/README.md).
|
If you want to sponsor them, please see [here](https://github.com/NginxProxyManager/nginx-proxy-manager/blob/master/README.md).
|
||||||
|
|
||||||
|
|
||||||
# Please report Bugs first to this fork before reporting them to the original Repository
|
# Please report Bugs first to this fork before reporting them to the upstream Repository
|
||||||
|
|
||||||
## Getting Support
|
## Getting Support
|
||||||
|
|
||||||
1. [Found a bug?](https://github.com/ZoeyVid/NPMplus/issues)
|
1. [Found a bug?](https://github.com/ZoeyVid/NPMplus/issues)
|
||||||
2. [Discussions](https://github.com/ZoeyVid/NPMplus/discussions)
|
2. [Discussions](https://github.com/ZoeyVid/NPMplus/discussions)
|
||||||
<!---
|
<!---
|
||||||
3. [Development Gitter](https://gitter.im/nginx-proxy-manager/community)
|
3. [Reddit](https://reddit.com/r/nginxproxymanager)
|
||||||
4. [Reddit](https://reddit.com/r/nginxproxymanager)
|
--->
|
||||||
--->
|
|
@@ -1131,12 +1131,18 @@ const internalCertificate = {
|
|||||||
res.on('end', function () {
|
res.on('end', function () {
|
||||||
try {
|
try {
|
||||||
const parsedBody = JSON.parse(responseBody + '');
|
const parsedBody = JSON.parse(responseBody + '');
|
||||||
resolve(parsedBody);
|
if (res.statusCode !== 200) {
|
||||||
}
|
logger.warn(`Failed to test HTTP challenge for domain ${domain} because HTTP status code ${res.statusCode} was returned: ${parsedBody.message}`);
|
||||||
catch (error) {
|
resolve(undefined);
|
||||||
logger.warn('Error');
|
} else {
|
||||||
logger.warn(`Status Code: ${res.statusCode}`);
|
resolve(parsedBody);
|
||||||
logger.warn(`Failed to test HTTP challenge for domain ${domain}`, res);
|
}
|
||||||
|
} 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(undefined);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -1152,6 +1158,9 @@ const internalCertificate = {
|
|||||||
if (!result) {
|
if (!result) {
|
||||||
// Some error occurred while trying to get the data
|
// Some error occurred while trying to get the data
|
||||||
return 'failed';
|
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') {
|
} else if (`${result.responsecode}` === '200' && result.htmlresponse === 'Success') {
|
||||||
// Server exists and has responded with the correct data
|
// Server exists and has responded with the correct data
|
||||||
return 'ok';
|
return 'ok';
|
||||||
|
@@ -225,7 +225,7 @@ const internalProxyHost = {
|
|||||||
.query()
|
.query()
|
||||||
.where('is_deleted', 0)
|
.where('is_deleted', 0)
|
||||||
.andWhere('id', data.id)
|
.andWhere('id', data.id)
|
||||||
.allowGraph('[owner,access_list,access_list.[clients,items],certificate]')
|
.allowGraph('[owner,access_list.[clients,items],certificate]')
|
||||||
.first();
|
.first();
|
||||||
|
|
||||||
if (access_data.permission_visibility !== 'all') {
|
if (access_data.permission_visibility !== 'all') {
|
||||||
|
3
backend/templates/_hsts_map.conf
Normal file
3
backend/templates/_hsts_map.conf
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
map $scheme $hsts_header {
|
||||||
|
https "max-age=63072000;{% if hsts_subdomains == 1 or hsts_subdomains == true -%} includeSubDomains;{% endif %} preload";
|
||||||
|
}
|
@@ -1,3 +1,5 @@
|
|||||||
|
{% include "_hsts_map.conf" %}
|
||||||
|
|
||||||
location {{ path }} {
|
location {{ path }} {
|
||||||
set $forward_path "{{ forward_path }}";
|
set $forward_path "{{ forward_path }}";
|
||||||
|
|
||||||
|
@@ -1,6 +1,9 @@
|
|||||||
{% include "_header_comment.conf" %}
|
{% include "_header_comment.conf" %}
|
||||||
|
|
||||||
{% if enabled %}
|
{% if enabled %}
|
||||||
|
|
||||||
|
{% include "_hsts_map.conf" %}
|
||||||
|
|
||||||
server {
|
server {
|
||||||
{% include "_listen.conf" %}
|
{% include "_listen.conf" %}
|
||||||
{% include "_certificates.conf" %}
|
{% include "_certificates.conf" %}
|
||||||
|
@@ -1,6 +1,9 @@
|
|||||||
{% include "_header_comment.conf" %}
|
{% include "_header_comment.conf" %}
|
||||||
|
|
||||||
{% if enabled %}
|
{% if enabled %}
|
||||||
|
|
||||||
|
{% include "_hsts_map.conf" %}
|
||||||
|
|
||||||
server {
|
server {
|
||||||
set $forward_scheme {{ forward_scheme }};
|
set $forward_scheme {{ forward_scheme }};
|
||||||
set $server "{{ forward_host }}";
|
set $server "{{ forward_host }}";
|
||||||
|
@@ -1,6 +1,9 @@
|
|||||||
{% include "_header_comment.conf" %}
|
{% include "_header_comment.conf" %}
|
||||||
|
|
||||||
{% if enabled %}
|
{% if enabled %}
|
||||||
|
|
||||||
|
{% include "_hsts_map.conf" %}
|
||||||
|
|
||||||
server {
|
server {
|
||||||
{% include "_listen.conf" %}
|
{% include "_listen.conf" %}
|
||||||
{% include "_certificates.conf" %}
|
{% include "_certificates.conf" %}
|
||||||
|
258
docs/.vuepress/styles/index.scss
Normal file
258
docs/.vuepress/styles/index.scss
Normal file
@@ -0,0 +1,258 @@
|
|||||||
|
:root {
|
||||||
|
// brand colors
|
||||||
|
--c-brand: #f15833;
|
||||||
|
--c-brand-light: #f15833;
|
||||||
|
|
||||||
|
// background colors
|
||||||
|
--c-bg: #ffffff;
|
||||||
|
--c-bg-light: #f3f4f5;
|
||||||
|
--c-bg-lighter: #eeeeee;
|
||||||
|
--c-bg-dark: #ebebec;
|
||||||
|
--c-bg-darker: #e6e6e6;
|
||||||
|
--c-bg-navbar: var(--c-bg);
|
||||||
|
--c-bg-sidebar: var(--c-bg);
|
||||||
|
--c-bg-arrow: #cccccc;
|
||||||
|
|
||||||
|
// text colors
|
||||||
|
--c-text: #663015;
|
||||||
|
--c-text-accent: var(--c-brand);
|
||||||
|
--c-text-light: #863f1c;
|
||||||
|
--c-text-lighter: #b65626;
|
||||||
|
--c-text-lightest: #f15833;
|
||||||
|
--c-text-quote: #999999;
|
||||||
|
|
||||||
|
// border colors
|
||||||
|
--c-border: #eaecef;
|
||||||
|
--c-border-dark: #dfe2e5;
|
||||||
|
|
||||||
|
// custom container colors
|
||||||
|
--c-tip: #42b983;
|
||||||
|
--c-tip-bg: var(--c-bg-light);
|
||||||
|
--c-tip-title: var(--c-text);
|
||||||
|
--c-tip-text: var(--c-text);
|
||||||
|
--c-tip-text-accent: var(--c-text-accent);
|
||||||
|
--c-warning: #ffc310;
|
||||||
|
--c-warning-bg: #fffae3;
|
||||||
|
--c-warning-bg-light: #fff3ba;
|
||||||
|
--c-warning-bg-lighter: #fff0b0;
|
||||||
|
--c-warning-border-dark: #f7dc91;
|
||||||
|
--c-warning-details-bg: #fff5ca;
|
||||||
|
--c-warning-title: #f1b300;
|
||||||
|
--c-warning-text: #746000;
|
||||||
|
--c-warning-text-accent: #edb100;
|
||||||
|
--c-warning-text-light: #c1971c;
|
||||||
|
--c-warning-text-quote: #ccab49;
|
||||||
|
--c-danger: #f11e37;
|
||||||
|
--c-danger-bg: #ffe0e0;
|
||||||
|
--c-danger-bg-light: #ffcfde;
|
||||||
|
--c-danger-bg-lighter: #ffc9c9;
|
||||||
|
--c-danger-border-dark: #f1abab;
|
||||||
|
--c-danger-details-bg: #ffd4d4;
|
||||||
|
--c-danger-title: #ed1e2c;
|
||||||
|
--c-danger-text: #660000;
|
||||||
|
--c-danger-text-accent: #bd1a1a;
|
||||||
|
--c-danger-text-light: #b5474d;
|
||||||
|
--c-danger-text-quote: #c15b5b;
|
||||||
|
--c-details-bg: #eeeeee;
|
||||||
|
|
||||||
|
// badge component colors
|
||||||
|
--c-badge-tip: var(--c-tip);
|
||||||
|
--c-badge-warning: #ecc808;
|
||||||
|
--c-badge-warning-text: var(--c-bg);
|
||||||
|
--c-badge-danger: #dc2626;
|
||||||
|
--c-badge-danger-text: var(--c-bg);
|
||||||
|
|
||||||
|
// transition vars
|
||||||
|
--t-color: 0.3s ease;
|
||||||
|
--t-transform: 0.3s ease;
|
||||||
|
|
||||||
|
// code blocks vars
|
||||||
|
--code-bg-color: #282c34;
|
||||||
|
--code-hl-bg-color: rgba(0, 0, 0, 0.66);
|
||||||
|
--code-ln-color: #9e9e9e;
|
||||||
|
--code-ln-wrapper-width: 3.5rem;
|
||||||
|
|
||||||
|
// font vars
|
||||||
|
--font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen,
|
||||||
|
Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
|
||||||
|
--font-family-code: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
|
||||||
|
|
||||||
|
// layout vars
|
||||||
|
--navbar-height: 3.6rem;
|
||||||
|
--navbar-padding-v: 0.7rem;
|
||||||
|
--navbar-padding-h: 1.5rem;
|
||||||
|
--sidebar-width: 20rem;
|
||||||
|
--sidebar-width-mobile: calc(var(--sidebar-width) * 0.82);
|
||||||
|
--content-width: 740px;
|
||||||
|
--homepage-width: 960px;
|
||||||
|
}
|
||||||
|
|
||||||
|
html.dark {
|
||||||
|
// brand colors
|
||||||
|
--c-brand: #f15833;
|
||||||
|
--c-brand-light: #f15833;
|
||||||
|
|
||||||
|
// background colors
|
||||||
|
--c-bg: #22272e;
|
||||||
|
--c-bg-light: #2b313a;
|
||||||
|
--c-bg-lighter: #262c34;
|
||||||
|
--c-bg-dark: #343b44;
|
||||||
|
--c-bg-darker: #37404c;
|
||||||
|
|
||||||
|
// text colors
|
||||||
|
--c-text: #adbac7;
|
||||||
|
--c-text-light: #96a7b7;
|
||||||
|
--c-text-lighter: #8b9eb0;
|
||||||
|
--c-text-lightest: #8094a8;
|
||||||
|
|
||||||
|
// border colors
|
||||||
|
--c-border: #3e4c5a;
|
||||||
|
--c-border-dark: #34404c;
|
||||||
|
|
||||||
|
// custom container colors
|
||||||
|
--c-tip: #318a62;
|
||||||
|
--c-warning: #e0ad15;
|
||||||
|
--c-warning-bg: #2d2f2d;
|
||||||
|
--c-warning-bg-light: #423e2a;
|
||||||
|
--c-warning-bg-lighter: #44442f;
|
||||||
|
--c-warning-border-dark: #957c35;
|
||||||
|
--c-warning-details-bg: #39392d;
|
||||||
|
--c-warning-title: #fdca31;
|
||||||
|
--c-warning-text: #d8d96d;
|
||||||
|
--c-warning-text-accent: #ffbf00;
|
||||||
|
--c-warning-text-light: #ddb84b;
|
||||||
|
--c-warning-text-quote: #ccab49;
|
||||||
|
--c-danger: #fc1e38;
|
||||||
|
--c-danger-bg: #39232c;
|
||||||
|
--c-danger-bg-light: #4b2b35;
|
||||||
|
--c-danger-bg-lighter: #553040;
|
||||||
|
--c-danger-border-dark: #a25151;
|
||||||
|
--c-danger-details-bg: #482936;
|
||||||
|
--c-danger-title: #fc2d3b;
|
||||||
|
--c-danger-text: #ea9ca0;
|
||||||
|
--c-danger-text-accent: #fd3636;
|
||||||
|
--c-danger-text-light: #d9777c;
|
||||||
|
--c-danger-text-quote: #d56b6b;
|
||||||
|
--c-details-bg: #323843;
|
||||||
|
|
||||||
|
// badge component colors
|
||||||
|
--c-badge-warning: var(--c-warning);
|
||||||
|
--c-badge-warning-text: #3c2e05;
|
||||||
|
--c-badge-danger: var(--c-danger);
|
||||||
|
--c-badge-danger-text: #401416;
|
||||||
|
|
||||||
|
// code blocks vars
|
||||||
|
--code-hl-bg-color: #363b46;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// plugin-back-to-top
|
||||||
|
.back-to-top {
|
||||||
|
--back-to-top-color: var(--c-brand);
|
||||||
|
--back-to-top-color-hover: var(--c-brand-light);
|
||||||
|
}
|
||||||
|
|
||||||
|
// plugin-docsearch
|
||||||
|
.DocSearch {
|
||||||
|
--docsearch-primary-color: var(--c-brand);
|
||||||
|
--docsearch-text-color: var(--c-text);
|
||||||
|
--docsearch-highlight-color: var(--c-brand);
|
||||||
|
--docsearch-muted-color: var(--c-text-quote);
|
||||||
|
--docsearch-container-background: rgba(9, 10, 17, 0.8);
|
||||||
|
--docsearch-modal-background: var(--c-bg-light);
|
||||||
|
--docsearch-searchbox-background: var(--c-bg-lighter);
|
||||||
|
--docsearch-searchbox-focus-background: var(--c-bg);
|
||||||
|
--docsearch-searchbox-shadow: inset 0 0 0 2px var(--c-brand);
|
||||||
|
--docsearch-hit-color: var(--c-text-light);
|
||||||
|
--docsearch-hit-active-color: var(--c-bg);
|
||||||
|
--docsearch-hit-background: var(--c-bg);
|
||||||
|
--docsearch-hit-shadow: 0 1px 3px 0 var(--c-border-dark);
|
||||||
|
--docsearch-footer-background: var(--c-bg);
|
||||||
|
}
|
||||||
|
|
||||||
|
// dark plugin-docsearch
|
||||||
|
html.dark .DocSearch {
|
||||||
|
--docsearch-logo-color: var(--c-text);
|
||||||
|
--docsearch-modal-shadow: inset 1px 1px 0 0 #2c2e40, 0 3px 8px 0 #000309;
|
||||||
|
--docsearch-key-shadow: inset 0 -2px 0 0 #282d55, inset 0 0 1px 1px #51577d,
|
||||||
|
0 2px 2px 0 rgba(3, 4, 9, 0.3);
|
||||||
|
--docsearch-key-gradient: linear-gradient(-225deg, #444950, #1c1e21);
|
||||||
|
--docsearch-footer-shadow: inset 0 1px 0 0 rgba(73, 76, 106, 0.5),
|
||||||
|
0 -4px 8px 0 rgba(0, 0, 0, 0.2);
|
||||||
|
}
|
||||||
|
|
||||||
|
// plugin-external-link-icon
|
||||||
|
.external-link-icon {
|
||||||
|
--external-link-icon-color: var(--c-text-quote);
|
||||||
|
}
|
||||||
|
|
||||||
|
// plugin-medium-zoom
|
||||||
|
.medium-zoom-overlay {
|
||||||
|
--medium-zoom-bg-color: var(--c-bg);
|
||||||
|
}
|
||||||
|
|
||||||
|
// plugin-nprogress
|
||||||
|
#nprogress {
|
||||||
|
--nprogress-color: var(--c-brand);
|
||||||
|
}
|
||||||
|
|
||||||
|
// plugin-pwa-popup
|
||||||
|
.pwa-popup {
|
||||||
|
--pwa-popup-text-color: var(--c-text);
|
||||||
|
--pwa-popup-bg-color: var(--c-bg);
|
||||||
|
--pwa-popup-border-color: var(--c-brand);
|
||||||
|
--pwa-popup-shadow: 0 4px 16px var(--c-brand);
|
||||||
|
--pwa-popup-btn-text-color: var(--c-bg);
|
||||||
|
--pwa-popup-btn-bg-color: var(--c-brand);
|
||||||
|
--pwa-popup-btn-hover-bg-color: var(--c-brand-light);
|
||||||
|
}
|
||||||
|
|
||||||
|
// plugin-search
|
||||||
|
.search-box {
|
||||||
|
--search-bg-color: var(--c-bg);
|
||||||
|
--search-accent-color: var(--c-brand);
|
||||||
|
--search-text-color: var(--c-text);
|
||||||
|
--search-border-color: var(--c-border);
|
||||||
|
|
||||||
|
--search-item-text-color: var(--c-text-lighter);
|
||||||
|
--search-item-focus-bg-color: var(--c-bg-light);
|
||||||
|
}
|
||||||
|
|
||||||
|
.home .hero img {
|
||||||
|
max-width: 500px !important;
|
||||||
|
height: 100%;
|
||||||
|
width: 100%
|
||||||
|
}
|
||||||
|
|
||||||
|
.center {
|
||||||
|
margin: 0 auto;
|
||||||
|
width: 80%
|
||||||
|
}
|
||||||
|
|
||||||
|
#main-title {
|
||||||
|
display: none
|
||||||
|
}
|
||||||
|
|
||||||
|
.center {
|
||||||
|
margin: 0 auto;
|
||||||
|
width: 80%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#main-title {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hero {
|
||||||
|
margin: 150px 25px 70px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Nerd Font';
|
||||||
|
src: url("/nerd-font.woff2") format("woff2");
|
||||||
|
font-weight: 400;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
code {
|
||||||
|
font-family: 'Nerd Font', source-code-pro, Menlo, Monaco, Consolas, "Courier New", monospace;
|
||||||
|
}
|
893
docs/.yarn/releases/yarn-4.0.2.cjs
vendored
Normal file
893
docs/.yarn/releases/yarn-4.0.2.cjs
vendored
Normal file
File diff suppressed because one or more lines are too long
3
docs/.yarnrc.yml
Normal file
3
docs/.yarnrc.yml
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
nodeLinker: node-modules
|
||||||
|
|
||||||
|
yarnPath: .yarn/releases/yarn-4.0.2.cjs
|
@@ -60,7 +60,7 @@
|
|||||||
},
|
},
|
||||||
"footer": {
|
"footer": {
|
||||||
"fork-me": "Repository on GitHub",
|
"fork-me": "Repository on GitHub",
|
||||||
"copy": "© 2023 <a href=\"{url}\" target=\"_blank\">jc21.com</a> NPM",
|
"copy": "© 2024 <a href=\"{url}\" target=\"_blank\">jc21.com</a> NPM",
|
||||||
"copyzv": "and © 2024 <a href=\"{url}\" target=\"_blank\">ZoeyVid</a> NPMplus - MIT-License - ",
|
"copyzv": "and © 2024 <a href=\"{url}\" target=\"_blank\">ZoeyVid</a> NPMplus - MIT-License - ",
|
||||||
"theme": "Theme by <a href=\"{url}\" target=\"_blank\">Tabler v0.0.31</a>"
|
"theme": "Theme by <a href=\"{url}\" target=\"_blank\">Tabler v0.0.31</a>"
|
||||||
},
|
},
|
||||||
|
@@ -215,11 +215,8 @@ dns_eurodns_endpoint = https://rest-api.eurodns.com/user-api-gateway/proxy`,
|
|||||||
gandi: {
|
gandi: {
|
||||||
display_name: 'Gandi Live DNS',
|
display_name: 'Gandi Live DNS',
|
||||||
package_name: 'certbot_plugin_gandi',
|
package_name: 'certbot_plugin_gandi',
|
||||||
credentials: `# live dns v5 api key
|
credentials: `# Gandi personal access token
|
||||||
dns_gandi_api_key=APIKEY
|
dns_gandi_token=PERSONAL_ACCESS_TOKEN`,
|
||||||
|
|
||||||
# optional organization id, remove it if not used
|
|
||||||
dns_gandi_sharing_id=SHARINGID`,
|
|
||||||
full_plugin_name: 'dns-gandi',
|
full_plugin_name: 'dns-gandi',
|
||||||
},
|
},
|
||||||
//####################################################//
|
//####################################################//
|
||||||
@@ -249,6 +246,16 @@ dns_google_domains_zone = "example.com"`,
|
|||||||
full_plugin_name: 'dns-google-domains',
|
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: {
|
hetzner: {
|
||||||
display_name: 'Hetzner',
|
display_name: 'Hetzner',
|
||||||
package_name: 'certbot-dns-hetzner',
|
package_name: 'certbot-dns-hetzner',
|
||||||
@@ -398,6 +405,17 @@ dns_ovh_consumer_key = MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw`,
|
|||||||
full_plugin_name: 'dns-ovh',
|
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: {
|
porkbun: {
|
||||||
display_name: 'Porkbun',
|
display_name: 'Porkbun',
|
||||||
package_name: 'certbot-dns-porkbun',
|
package_name: 'certbot-dns-porkbun',
|
||||||
|
Reference in New Issue
Block a user