remove domain_names.sort() and trailing spaces

This commit is contained in:
Zoey
2024-01-01 23:56:28 +01:00
parent 9baaef45dd
commit 58d28b9867
27 changed files with 56 additions and 82 deletions

View File

@@ -1,4 +1,4 @@
exclude: exclude:
- main - main
- stable - stable
- develop - develop

View File

@@ -27,7 +27,7 @@ jobs:
run: | run: |
docker buildx imagetools create --tag ${{ steps.un.outputs.un }}/nginx-proxy-manager:caddy ${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:caddy-${{ github.ref_name }} docker buildx imagetools create --tag ${{ steps.un.outputs.un }}/nginx-proxy-manager:caddy ${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:caddy-${{ github.ref_name }}
docker buildx imagetools create --tag ghcr.io/${{ steps.un.outputs.un }}/nginx-proxy-manager:caddy ghcr.io/${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:caddy-${{ github.ref_name }} docker buildx imagetools create --tag ghcr.io/${{ steps.un.outputs.un }}/nginx-proxy-manager:caddy ghcr.io/${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:caddy-${{ github.ref_name }}
docker buildx imagetools create --tag ${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:caddy ${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:caddy-${{ github.ref_name }} docker buildx imagetools create --tag ${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:caddy ${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:caddy-${{ github.ref_name }}
docker buildx imagetools create --tag ${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:caddy-${{ github.run_number }} ${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:caddy-${{ github.ref_name }} docker buildx imagetools create --tag ${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:caddy-${{ github.run_number }} ${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:caddy-${{ github.ref_name }}
docker buildx imagetools create --tag ghcr.io/${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:caddy ghcr.io/${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:caddy-${{ github.ref_name }} docker buildx imagetools create --tag ghcr.io/${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:caddy ghcr.io/${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:caddy-${{ github.ref_name }}

View File

@@ -27,7 +27,7 @@ jobs:
run: | run: |
docker buildx imagetools create --tag ${{ steps.un.outputs.un }}/nginx-proxy-manager:latest ${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:${{ github.ref_name }} docker buildx imagetools create --tag ${{ steps.un.outputs.un }}/nginx-proxy-manager:latest ${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:${{ github.ref_name }}
docker buildx imagetools create --tag ghcr.io/${{ steps.un.outputs.un }}/nginx-proxy-manager:latest ghcr.io/${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:${{ github.ref_name }} docker buildx imagetools create --tag ghcr.io/${{ steps.un.outputs.un }}/nginx-proxy-manager:latest ghcr.io/${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:${{ github.ref_name }}
docker buildx imagetools create --tag ${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:latest ${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:${{ github.ref_name }} docker buildx imagetools create --tag ${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:latest ${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:${{ github.ref_name }}
docker buildx imagetools create --tag ${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:${{ github.run_number }} ${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:${{ github.ref_name }} docker buildx imagetools create --tag ${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:${{ github.run_number }} ${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:${{ github.ref_name }}
docker buildx imagetools create --tag ghcr.io/${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:latest ghcr.io/${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:${{ github.ref_name }} docker buildx imagetools create --tag ghcr.io/${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:latest ghcr.io/${{ steps.un.outputs.un }}/${{ steps.rn.outputs.rn }}:${{ github.ref_name }}

2
.gitignore vendored
View File

@@ -5,7 +5,7 @@ frontend/certbot-dns-plugins.js
.idea .idea
desktop.files.json desktop.files.json
package-lock.json package-lock.json
yarn.lock yarn.lock
desktop.ini desktop.ini
### macOS ### ### macOS ###

View File

@@ -1,6 +1,6 @@
MIT License MIT License
Copyright (c) 2017 Copyright (c) 2017
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal

View File

@@ -63,7 +63,7 @@ so that the barrier for entry here is low.
- Faster creation of TLS certificates can be achieved by eliminating unnecessary Nginx reloads and configuration creations. - Faster creation of TLS certificates can be achieved by eliminating unnecessary Nginx reloads and configuration creations.
- Uses OCSP Stapling for enhanced security - Uses OCSP Stapling for enhanced security
- If using custom certificates, upload the CA/Intermediate Certificate (file name: `chain.pem`) in the `/opt/npm/tls/custom/npm-[certificate-id]` folder (manual migration may be needed) - If using custom certificates, upload the CA/Intermediate Certificate (file name: `chain.pem`) in the `/opt/npm/tls/custom/npm-[certificate-id]` folder (manual migration may be needed)
- Resolved dnspod plugin issue - Resolved dnspod plugin issue
- To migrate manually, delete all dnspod certs and recreate them OR change the credentials file as per the template given [here](https://github.com/ZoeyVid/NPMplus/blob/develop/global/certbot-dns-plugins.js) - To migrate manually, delete all dnspod certs and recreate them OR change the credentials file as per the template given [here](https://github.com/ZoeyVid/NPMplus/blob/develop/global/certbot-dns-plugins.js)
- Smaller docker image with alpine-based distribution - Smaller docker image with alpine-based distribution
- Admin backend interface runs with https - Admin backend interface runs with https
@@ -76,9 +76,9 @@ so that the barrier for entry here is low.
- `Server` response header hidden - `Server` response header hidden
- PHP optional, with option to add extensions; available packages can be found [here](https://pkgs.alpinelinux.org/packages?branch=v3.18&repo=community&arch=x86_64&name=php81-*) and [here](https://pkgs.alpinelinux.org/packages?branch=v3.18&repo=community&arch=x86_64&name=php82-*) - PHP optional, with option to add extensions; available packages can be found [here](https://pkgs.alpinelinux.org/packages?branch=v3.18&repo=community&arch=x86_64&name=php81-*) and [here](https://pkgs.alpinelinux.org/packages?branch=v3.18&repo=community&arch=x86_64&name=php82-*)
- Allows different acme servers/certbot config file (/opt/npm/tls/certbot/config.ini) - Allows different acme servers/certbot config file (/opt/npm/tls/certbot/config.ini)
- Supports up to 99 domains per cert - Supports up to 99 domains per cert
- Brotli compression can be enabled - Brotli compression can be enabled
- HTTP/2 always enabled with fixed upload - HTTP/2 always enabled with fixed upload
- Allows infinite upload size - Allows infinite upload size
- Automatic database vacuum (only sqlite) - Automatic database vacuum (only sqlite)
- Automatic cleaning of old certbot certs (set FULLCLEAN to true) - Automatic cleaning of old certbot certs (set FULLCLEAN to true)
@@ -118,7 +118,7 @@ so that the barrier for entry here is low.
2. Set `Scheme` to `https`, `Forward Hostname / IP` to `0.0.0.0`, `Forward Port` to `1` and enable `Websockets Support` (you can also use other values, since these get fully ignored) 2. Set `Scheme` to `https`, `Forward Hostname / IP` to `0.0.0.0`, `Forward Port` to `1` and enable `Websockets Support` (you can also use other values, since these get fully ignored)
3. Maybe set an Access List 3. Maybe set an Access List
4. Make your TLS Settings 4. Make your TLS Settings
5. 5.
a) Custom Nginx Configuration (advanced tab), which looks the following for file server: a) Custom Nginx Configuration (advanced tab), which looks the following for file server:
- Note: the slash at the end of the file path is important - Note: the slash at the end of the file path is important
``` ```

View File

@@ -800,7 +800,7 @@ const internalCertificate = {
} else { } else {
cmd = cmd + ' --email "' + certificate.meta.letsencrypt_email + '" '; cmd = cmd + ' --email "' + certificate.meta.letsencrypt_email + '" ';
} }
logger.info('Command:', cmd); logger.info('Command:', cmd);
return utils.exec(cmd) return utils.exec(cmd)

View File

@@ -27,17 +27,10 @@ class Certificate extends Model {
if (typeof this.meta === 'undefined') { if (typeof this.meta === 'undefined') {
this.meta = {}; this.meta = {};
} }
this.domain_names.sort();
} }
$beforeUpdate () { $beforeUpdate () {
this.modified_on = now(); this.modified_on = now();
// Sort domain_names
if (typeof this.domain_names !== 'undefined') {
this.domain_names.sort();
}
} }
static get name () { static get name () {

View File

@@ -23,17 +23,10 @@ class DeadHost extends Model {
if (typeof this.meta === 'undefined') { if (typeof this.meta === 'undefined') {
this.meta = {}; this.meta = {};
} }
this.domain_names.sort();
} }
$beforeUpdate () { $beforeUpdate () {
this.modified_on = now(); this.modified_on = now();
// Sort domain_names
if (typeof this.domain_names !== 'undefined') {
this.domain_names.sort();
}
} }
static get name () { static get name () {

View File

@@ -24,17 +24,10 @@ class ProxyHost extends Model {
if (typeof this.meta === 'undefined') { if (typeof this.meta === 'undefined') {
this.meta = {}; this.meta = {};
} }
this.domain_names.sort();
} }
$beforeUpdate () { $beforeUpdate () {
this.modified_on = now(); this.modified_on = now();
// Sort domain_names
if (typeof this.domain_names !== 'undefined') {
this.domain_names.sort();
}
} }
static get name () { static get name () {

View File

@@ -30,11 +30,6 @@ class RedirectionHost extends Model {
$beforeUpdate () { $beforeUpdate () {
this.modified_on = now(); this.modified_on = now();
// Sort domain_names
if (typeof this.domain_names !== 'undefined') {
this.domain_names.sort();
}
} }
static get name () { static get name () {

View File

@@ -53,12 +53,12 @@
}, },
"propagation_seconds": { "propagation_seconds": {
"anyOf": [ "anyOf": [
{ {
"type": "integer", "type": "integer",
"minimum": 0 "minimum": 0
} }
] ]
} }
} }
} }

View File

@@ -4,22 +4,22 @@
server { server {
listen 80 default_server; listen 80 default_server;
listen [::]:80 default_server; listen [::]:80 default_server;
listen 443 ssl default_server; listen 443 ssl default_server;
listen [::]:443 ssl default_server; listen [::]:443 ssl default_server;
listen 443 quic reuseport default_server; listen 443 quic reuseport default_server;
listen [::]:443 quic reuseport default_server; listen [::]:443 quic reuseport default_server;
more_set_headers 'Alt-Svc: h3=":443"; ma=86400'; more_set_headers 'Alt-Svc: h3=":443"; ma=86400';
server_name _; server_name _;
include conf.d/include/brotli.conf; include conf.d/include/brotli.conf;
include conf.d/include/force-tls.conf; include conf.d/include/force-tls.conf;
include conf.d/include/tls-ciphers.conf; include conf.d/include/tls-ciphers.conf;
include conf.d/include/acme-challenge.conf; include conf.d/include/acme-challenge.conf;
include conf.d/include/block-exploits.conf; include conf.d/include/block-exploits.conf;
#ssl_certificate ; #ssl_certificate ;
#ssl_certificate_key ; #ssl_certificate_key ;
#ssl_trusted_certificate ; #ssl_trusted_certificate ;

View File

@@ -26,7 +26,7 @@ server {
include conf.d/include/block-exploits.conf; include conf.d/include/block-exploits.conf;
{{ advanced_config }} {{ advanced_config }}
{% if use_default_location %} {% if use_default_location %}
location / { location / {
include conf.d/include/acme-challenge.conf; include conf.d/include/acme-challenge.conf;

View File

@@ -143,7 +143,7 @@ function FileUpload(path, fd) {
reject(new Error('Upload failed: ' + JSON.parse(xhr.responseText).error.message)); reject(new Error('Upload failed: ' + JSON.parse(xhr.responseText).error.message));
} catch (err) { } catch (err) {
reject(new Error('Upload failed: ' + xhr.status)); reject(new Error('Upload failed: ' + xhr.status));
} }
} else { } else {
resolve(xhr.responseText); resolve(xhr.responseText);
} }

View File

@@ -108,7 +108,7 @@ module.exports = Mn.View.extend({
this.ui.buttons.prop('disabled', false).removeClass('btn-disabled'); this.ui.buttons.prop('disabled', false).removeClass('btn-disabled');
}); });
}, },
'click @ui.access_add': function (e) { 'click @ui.access_add': function (e) {
e.preventDefault(); e.preventDefault();
let clients = this.model.get('clients'); let clients = this.model.get('clients');
@@ -117,7 +117,7 @@ module.exports = Mn.View.extend({
collection: new Backbone.Collection(clients) collection: new Backbone.Collection(clients)
})); }));
}, },
'click @ui.auth_add': function (e) { 'click @ui.auth_add': function (e) {
e.preventDefault(); e.preventDefault();
let items = this.model.get('items'); let items = this.model.get('items');

View File

@@ -47,7 +47,7 @@ module.exports = Mn.View.extend({
other_intermediate_certificate: '#other_intermediate_certificate', other_intermediate_certificate: '#other_intermediate_certificate',
other_intermediate_certificate_label: '#other_intermediate_certificate_label' other_intermediate_certificate_label: '#other_intermediate_certificate_label'
}, },
events: { events: {
'change @ui.dns_challenge_switch': function () { 'change @ui.dns_challenge_switch': function () {
const checked = this.ui.dns_challenge_switch.prop('checked'); const checked = this.ui.dns_challenge_switch.prop('checked');
@@ -63,7 +63,7 @@ module.exports = Mn.View.extend({
this.ui.dns_provider.prop('required', false); this.ui.dns_provider.prop('required', false);
this.ui.dns_provider_credentials.prop('required', false); this.ui.dns_provider_credentials.prop('required', false);
this.ui.dns_challenge_content.hide(); this.ui.dns_challenge_content.hide();
this.ui.test_domains_container.show(); this.ui.test_domains_container.show();
} }
}, },
@@ -75,10 +75,10 @@ module.exports = Mn.View.extend({
this.ui.credentials_file_content.show(); this.ui.credentials_file_content.show();
} else { } else {
this.ui.dns_provider_credentials.prop('required', false); this.ui.dns_provider_credentials.prop('required', false);
this.ui.credentials_file_content.hide(); this.ui.credentials_file_content.hide();
} }
}, },
'click @ui.save': function (e) { 'click @ui.save': function (e) {
e.preventDefault(); e.preventDefault();
this.ui.le_error_info.hide(); this.ui.le_error_info.hide();
@@ -97,7 +97,7 @@ module.exports = Mn.View.extend({
if (typeof data.meta === 'undefined') data.meta = {}; if (typeof data.meta === 'undefined') data.meta = {};
let domain_err = false; let domain_err = false;
if (!data.meta.dns_challenge) { if (!data.meta.dns_challenge) {
data.domain_names.split(',').map(function (name) { data.domain_names.split(',').map(function (name) {
if (name.match(/\*/im)) { if (name.match(/\*/im)) {
domain_err = true; domain_err = true;
@@ -119,7 +119,7 @@ module.exports = Mn.View.extend({
data.meta.dns_provider_credentials = undefined; data.meta.dns_provider_credentials = undefined;
data.meta.propagation_seconds = undefined; data.meta.propagation_seconds = undefined;
} else { } else {
if(data.meta.propagation_seconds === '') data.meta.propagation_seconds = undefined; if(data.meta.propagation_seconds === '') data.meta.propagation_seconds = undefined;
} }
if (typeof data.domain_names === 'string' && data.domain_names) { if (typeof data.domain_names === 'string' && data.domain_names) {
@@ -278,7 +278,7 @@ module.exports = Mn.View.extend({
createFilter: /^(?:\*\.)?(?:[^.*]+\.?)+[^.]$/ createFilter: /^(?:\*\.)?(?:[^.*]+\.?)+[^.]$/
}); });
this.ui.dns_challenge_content.hide(); this.ui.dns_challenge_content.hide();
this.ui.credentials_file_content.hide(); this.ui.credentials_file_content.hide();
this.ui.loader_content.hide(); this.ui.loader_content.hide();
this.ui.le_error_info.hide(); this.ui.le_error_info.hide();
if (this.ui.domain_names[0]) { if (this.ui.domain_names[0]) {

View File

@@ -32,7 +32,7 @@ module.exports = Mn.View.extend({
let win = window.open($(e.currentTarget).attr('rel'), '_blank'); let win = window.open($(e.currentTarget).attr('rel'), '_blank');
win.focus(); win.focus();
}, },
'click @ui.download': function (e) { 'click @ui.download': function (e) {
e.preventDefault(); e.preventDefault();
App.Api.Nginx.Certificates.download(this.model.get('id')); App.Api.Nginx.Certificates.download(this.model.get('id'));

View File

@@ -87,7 +87,7 @@ module.exports = Mn.View.extend({
} else { } else {
this.ui.dns_provider.prop('required', false); this.ui.dns_provider.prop('required', false);
this.ui.dns_provider_credentials.prop('required', false); this.ui.dns_provider_credentials.prop('required', false);
this.ui.dns_challenge_content.hide(); this.ui.dns_challenge_content.hide();
} }
}, },
@@ -99,7 +99,7 @@ module.exports = Mn.View.extend({
this.ui.credentials_file_content.show(); this.ui.credentials_file_content.show();
} else { } else {
this.ui.dns_provider_credentials.prop('required', false); this.ui.dns_provider_credentials.prop('required', false);
this.ui.credentials_file_content.hide(); this.ui.credentials_file_content.hide();
} }
}, },
@@ -124,13 +124,13 @@ module.exports = Mn.View.extend({
if (typeof data.meta === 'undefined') data.meta = {}; if (typeof data.meta === 'undefined') data.meta = {};
data.meta.letsencrypt_agree = data.meta.letsencrypt_agree == 1; data.meta.letsencrypt_agree = data.meta.letsencrypt_agree == 1;
data.meta.dns_challenge = data.meta.dns_challenge == 1; data.meta.dns_challenge = data.meta.dns_challenge == 1;
if(!data.meta.dns_challenge){ if(!data.meta.dns_challenge){
data.meta.dns_provider = undefined; data.meta.dns_provider = undefined;
data.meta.dns_provider_credentials = undefined; data.meta.dns_provider_credentials = undefined;
data.meta.propagation_seconds = undefined; data.meta.propagation_seconds = undefined;
} else { } else {
if(data.meta.propagation_seconds === '') data.meta.propagation_seconds = undefined; if(data.meta.propagation_seconds === '') data.meta.propagation_seconds = undefined;
} }
if (typeof data.domain_names === 'string' && data.domain_names) { if (typeof data.domain_names === 'string' && data.domain_names) {
@@ -138,7 +138,7 @@ module.exports = Mn.View.extend({
} }
// Check for any domain names containing wildcards, which are not allowed with letsencrypt // Check for any domain names containing wildcards, which are not allowed with letsencrypt
if (data.certificate_id === 'new') { if (data.certificate_id === 'new') {
let domain_err = false; let domain_err = false;
if (!data.meta.dns_challenge) { if (!data.meta.dns_challenge) {
data.domain_names.map(function (name) { data.domain_names.map(function (name) {

View File

@@ -101,7 +101,7 @@ module.exports = Mn.View.extend({
} else { } else {
this.ui.dns_provider.prop('required', false); this.ui.dns_provider.prop('required', false);
this.ui.dns_provider_credentials.prop('required', false); this.ui.dns_provider_credentials.prop('required', false);
this.ui.dns_challenge_content.hide(); this.ui.dns_challenge_content.hide();
} }
}, },
@@ -113,13 +113,13 @@ module.exports = Mn.View.extend({
this.ui.credentials_file_content.show(); this.ui.credentials_file_content.show();
} else { } else {
this.ui.dns_provider_credentials.prop('required', false); this.ui.dns_provider_credentials.prop('required', false);
this.ui.credentials_file_content.hide(); this.ui.credentials_file_content.hide();
} }
}, },
'click @ui.add_location_btn': function (e) { 'click @ui.add_location_btn': function (e) {
e.preventDefault(); e.preventDefault();
const model = new ProxyLocationModel.Model(); const model = new ProxyLocationModel.Model();
this.locationsCollection.add(model); this.locationsCollection.add(model);
}, },
@@ -155,17 +155,17 @@ module.exports = Mn.View.extend({
data.hsts_enabled = !!data.hsts_enabled; data.hsts_enabled = !!data.hsts_enabled;
data.hsts_subdomains = !!data.hsts_subdomains; data.hsts_subdomains = !!data.hsts_subdomains;
data.ssl_forced = !!data.ssl_forced; data.ssl_forced = !!data.ssl_forced;
if (typeof data.meta === 'undefined') data.meta = {}; if (typeof data.meta === 'undefined') data.meta = {};
data.meta.letsencrypt_agree = data.meta.letsencrypt_agree == 1; data.meta.letsencrypt_agree = data.meta.letsencrypt_agree == 1;
data.meta.dns_challenge = data.meta.dns_challenge == 1; data.meta.dns_challenge = data.meta.dns_challenge == 1;
if(!data.meta.dns_challenge){ if(!data.meta.dns_challenge){
data.meta.dns_provider = undefined; data.meta.dns_provider = undefined;
data.meta.dns_provider_credentials = undefined; data.meta.dns_provider_credentials = undefined;
data.meta.propagation_seconds = undefined; data.meta.propagation_seconds = undefined;
} else { } else {
if(data.meta.propagation_seconds === '') data.meta.propagation_seconds = undefined; if(data.meta.propagation_seconds === '') data.meta.propagation_seconds = undefined;
} }
if (typeof data.domain_names === 'string' && data.domain_names) { if (typeof data.domain_names === 'string' && data.domain_names) {
@@ -173,7 +173,7 @@ module.exports = Mn.View.extend({
} }
// Check for any domain names containing wildcards, which are not allowed with letsencrypt // Check for any domain names containing wildcards, which are not allowed with letsencrypt
if (data.certificate_id === 'new') { if (data.certificate_id === 'new') {
let domain_err = false; let domain_err = false;
if (!data.meta.dns_challenge) { if (!data.meta.dns_challenge) {
data.domain_names.map(function (name) { data.domain_names.map(function (name) {

View File

@@ -61,4 +61,4 @@
<i class="fa fa-trash"></i> <%- i18n('locations', 'delete') %> <i class="fa fa-trash"></i> <%- i18n('locations', 'delete') %>
</a> </a>
</div> </div>
</div> </div>

View File

@@ -87,7 +87,7 @@ module.exports = Mn.View.extend({
} else { } else {
this.ui.dns_provider.prop('required', false); this.ui.dns_provider.prop('required', false);
this.ui.dns_provider_credentials.prop('required', false); this.ui.dns_provider_credentials.prop('required', false);
this.ui.dns_challenge_content.hide(); this.ui.dns_challenge_content.hide();
} }
}, },
@@ -99,7 +99,7 @@ module.exports = Mn.View.extend({
this.ui.credentials_file_content.show(); this.ui.credentials_file_content.show();
} else { } else {
this.ui.dns_provider_credentials.prop('required', false); this.ui.dns_provider_credentials.prop('required', false);
this.ui.credentials_file_content.hide(); this.ui.credentials_file_content.hide();
} }
}, },
@@ -122,17 +122,17 @@ module.exports = Mn.View.extend({
data.hsts_enabled = !!data.hsts_enabled; data.hsts_enabled = !!data.hsts_enabled;
data.hsts_subdomains = !!data.hsts_subdomains; data.hsts_subdomains = !!data.hsts_subdomains;
data.ssl_forced = !!data.ssl_forced; data.ssl_forced = !!data.ssl_forced;
if (typeof data.meta === 'undefined') data.meta = {}; if (typeof data.meta === 'undefined') data.meta = {};
data.meta.letsencrypt_agree = data.meta.letsencrypt_agree == 1; data.meta.letsencrypt_agree = data.meta.letsencrypt_agree == 1;
data.meta.dns_challenge = data.meta.dns_challenge == 1; data.meta.dns_challenge = data.meta.dns_challenge == 1;
if(!data.meta.dns_challenge){ if(!data.meta.dns_challenge){
data.meta.dns_provider = undefined; data.meta.dns_provider = undefined;
data.meta.dns_provider_credentials = undefined; data.meta.dns_provider_credentials = undefined;
data.meta.propagation_seconds = undefined; data.meta.propagation_seconds = undefined;
} else { } else {
if(data.meta.propagation_seconds === '') data.meta.propagation_seconds = undefined; if(data.meta.propagation_seconds === '') data.meta.propagation_seconds = undefined;
} }
if (typeof data.domain_names === 'string' && data.domain_names) { if (typeof data.domain_names === 'string' && data.domain_names) {
@@ -140,7 +140,7 @@ module.exports = Mn.View.extend({
} }
// Check for any domain names containing wildcards, which are not allowed with letsencrypt // Check for any domain names containing wildcards, which are not allowed with letsencrypt
if (data.certificate_id === 'new') { if (data.certificate_id === 'new') {
let domain_err = false; let domain_err = false;
if (!data.meta.dns_challenge) { if (!data.meta.dns_challenge) {
data.domain_names.map(function (name) { data.domain_names.map(function (name) {
@@ -153,7 +153,7 @@ module.exports = Mn.View.extend({
if (domain_err) { if (domain_err) {
alert(i18n('ssl', 'no-wildcard-without-dns')); alert(i18n('ssl', 'no-wildcard-without-dns'));
return; return;
} }
} else { } else {
data.certificate_id = parseInt(data.certificate_id, 10); data.certificate_id = parseInt(data.certificate_id, 10);
} }

View File

@@ -3,7 +3,7 @@ $yellow: #f1c40f;
$blue: #467fcf; $blue: #467fcf;
$pink: #f66d9b; $pink: #f66d9b;
.tag { .tag {
margin-bottom: .5em; margin-bottom: .5em;
margin-right: .5em; margin-right: .5em;
} }

View File

@@ -240,7 +240,7 @@ dns_godaddy_key = abcdef0123456789abcdef01234567abcdef0123`,
}`, }`,
full_plugin_name: 'dns-google', full_plugin_name: 'dns-google',
}, },
//####################################################// //####################################################//
googledomains: { googledomains: {
display_name: 'GoogleDomainsDNS', display_name: 'GoogleDomainsDNS',
package_name: 'certbot-dns-google-domains', package_name: 'certbot-dns-google-domains',

View File

@@ -1,6 +1,6 @@
#!/bin/sh #!/bin/sh
if [ "$NC_AIO" = "true" ] && [ ! -f /data/etc/aio.lock ]; then if [ "$NC_AIO" = "true" ] && [ ! -f /data/etc/aio.lock ]; then
while [ "$(healthcheck.sh)" != "OK" ]; do sleep 10s; done while [ "$(healthcheck.sh)" != "OK" ]; do sleep 10s; done
curl -POST http://127.0.0.1:48693/nginx/proxy-hosts -sH 'Content-Type: application/json' -d '{"domain_names":["'"$NC_DOMAIN"'"],"forward_scheme":"http","forward_host":"127.0.0.1","forward_port":11000,"allow_websocket_upgrade":true,"access_list_id":"0","certificate_id":"new","ssl_forced":true,"http2_support":true,"hsts_enabled":true,"hsts_subdomains":true,"meta":{"letsencrypt_email":"","letsencrypt_agree":true,"dns_challenge":false},"advanced_config":"","locations":[],"block_exploits":false,"caching_enabled":false}' -H "Authorization: Bearer $(curl -POST http://127.0.0.1:48693/tokens -sH 'Content-Type: application/json' -d '{"identity":"admin@example.com","secret":"iArhP1j7p1P6TA92FA2FMbbUGYqwcYzxC4AVEe12Wbi94FY9gNN62aKyF1shrvG4NycjjX9KfmDQiwkLZH1ZDR9xMjiG2QmoHXi"}' | jq -r .token)" curl -POST http://127.0.0.1:48693/nginx/proxy-hosts -sH 'Content-Type: application/json' -d '{"domain_names":["'"$NC_DOMAIN"'"],"forward_scheme":"http","forward_host":"127.0.0.1","forward_port":11000,"allow_websocket_upgrade":true,"access_list_id":"0","certificate_id":"new","ssl_forced":true,"http2_support":true,"hsts_enabled":true,"hsts_subdomains":true,"meta":{"letsencrypt_email":"","letsencrypt_agree":true,"dns_challenge":false},"advanced_config":"","locations":[],"block_exploits":false,"caching_enabled":false}' -H "Authorization: Bearer $(curl -POST http://127.0.0.1:48693/tokens -sH 'Content-Type: application/json' -d '{"identity":"admin@example.com","secret":"iArhP1j7p1P6TA92FA2FMbbUGYqwcYzxC4AVEe12Wbi94FY9gNN62aKyF1shrvG4NycjjX9KfmDQiwkLZH1ZDR9xMjiG2QmoHXi"}' | jq -r .token)"
touch /data/etc/aio.lock touch /data/etc/aio.lock

View File

@@ -2,11 +2,11 @@
echo " echo "
------------------------------------- -------------------------------------
_ _ ___ __ __ _ _ _ ___ __ __ _
| \ || . \| \ \ ___ | | _ _ ___ | \ || . \| \ \ ___ | | _ _ ___
| || _/| || . \| || | |[_-[ | || _/| || . \| || | |[_-[
|_\_||_| |_|_|_|| _/|_| \__|/__/ |_\_||_| |_|_|_|| _/|_| \__|/__/
|_| |_|
------------------------------------- -------------------------------------
Version: $(jq -r .version /app/package.json) Version: $(jq -r .version /app/package.json)
Date: $(date) Date: $(date)

View File

@@ -140,7 +140,7 @@ tr {
border: 0; border: 0;
} }
tr:hover td { tr:hover td {
color: #FFFFFF; color: #FFFFFF;
background: #3D4351; background: #3D4351;
} }
tr td:first-of-type { tr td:first-of-type {