Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 9ab5333

Browse files
authoredNov 8, 2021
Merge pull request #1574 from jc21/develop
v2.9.12
2 parents 3b47dec + 3bd97ae commit 9ab5333

File tree

15 files changed

+160
-622
lines changed

15 files changed

+160
-622
lines changed
 

‎.version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.9.11
1+
2.9.12

‎README.md

Lines changed: 2 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<p align="center">
22
<img src="https://nginxproxymanager.com/github.png">
33
<br><br>
4-
<img src="https://img.shields.io/badge/version-2.9.11-green.svg?style=for-the-badge">
4+
<img src="https://img.shields.io/badge/version-2.9.12-green.svg?style=for-the-badge">
55
<a href="https://hub.docker.com/repository/docker/jc21/nginx-proxy-manager">
66
<img src="https://img.shields.io/docker/stars/jc21/nginx-proxy-manager.svg?style=for-the-badge">
77
</a>
@@ -74,28 +74,12 @@ services:
7474
- '80:80'
7575
- '81:81'
7676
- '443:443'
77-
environment:
78-
DB_MYSQL_HOST: "db"
79-
DB_MYSQL_PORT: 3306
80-
DB_MYSQL_USER: "npm"
81-
DB_MYSQL_PASSWORD: "npm"
82-
DB_MYSQL_NAME: "npm"
8377
volumes:
8478
- ./data:/data
8579
- ./letsencrypt:/etc/letsencrypt
86-
db:
87-
image: 'jc21/mariadb-aria:latest'
88-
restart: unless-stopped
89-
environment:
90-
MYSQL_ROOT_PASSWORD: 'npm'
91-
MYSQL_DATABASE: 'npm'
92-
MYSQL_USER: 'npm'
93-
MYSQL_PASSWORD: 'npm'
94-
volumes:
95-
- ./data/mysql:/var/lib/mysql
9680
```
9781
98-
3. Bring up your stack
82+
3. Bring up your stack by running
9983
10084
```bash
10185
docker-compose up -d

‎backend/app.js

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,12 @@ app.use(function (req, res, next) {
4040
}
4141

4242
res.set({
43-
'Strict-Transport-Security': 'includeSubDomains; max-age=631138519; preload',
44-
'X-XSS-Protection': '1; mode=block',
45-
'X-Content-Type-Options': 'nosniff',
46-
'X-Frame-Options': x_frame_options,
47-
'Cache-Control': 'no-cache, no-store, max-age=0, must-revalidate',
48-
Pragma: 'no-cache',
49-
Expires: 0
43+
'X-XSS-Protection': '1; mode=block',
44+
'X-Content-Type-Options': 'nosniff',
45+
'X-Frame-Options': x_frame_options,
46+
'Cache-Control': 'no-cache, no-store, max-age=0, must-revalidate',
47+
Pragma: 'no-cache',
48+
Expires: 0
5049
});
5150
next();
5251
});

‎backend/index.js

Lines changed: 69 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -44,84 +44,85 @@ async function appStart () {
4444

4545
async function createDbConfigFromEnvironment() {
4646
return new Promise((resolve, reject) => {
47-
const envMysqlHost = process.env.DB_MYSQL_HOST || null;
48-
const envMysqlPort = process.env.DB_MYSQL_PORT || null;
49-
const envMysqlUser = process.env.DB_MYSQL_USER || null;
50-
const envMysqlName = process.env.DB_MYSQL_NAME || null;
51-
const envSqliteFile = process.env.DB_SQLITE_FILE || null;
52-
53-
if ((envMysqlHost && envMysqlPort && envMysqlUser && envMysqlName) || envSqliteFile) {
54-
const fs = require('fs');
55-
const filename = (process.env.NODE_CONFIG_DIR || './config') + '/' + (process.env.NODE_ENV || 'default') + '.json';
56-
let configData = {};
57-
58-
try {
59-
configData = require(filename);
60-
} catch (err) {
61-
// do nothing
62-
}
47+
const envMysqlHost = process.env.DB_MYSQL_HOST || null;
48+
const envMysqlPort = process.env.DB_MYSQL_PORT || null;
49+
const envMysqlUser = process.env.DB_MYSQL_USER || null;
50+
const envMysqlName = process.env.DB_MYSQL_NAME || null;
51+
let envSqliteFile = process.env.DB_SQLITE_FILE || null;
52+
53+
const fs = require('fs');
54+
const filename = (process.env.NODE_CONFIG_DIR || './config') + '/' + (process.env.NODE_ENV || 'default') + '.json';
55+
let configData = {};
56+
57+
try {
58+
configData = require(filename);
59+
} catch (err) {
60+
// do nothing
61+
}
62+
63+
if (configData.database && configData.database.engine && !configData.database.fromEnv) {
64+
logger.info('Manual db configuration already exists, skipping config creation from environment variables');
65+
resolve();
66+
return;
67+
}
68+
69+
if ((!envMysqlHost || !envMysqlPort || !envMysqlUser || !envMysqlName) && !envSqliteFile){
70+
envSqliteFile = '/data/database.sqlite';
71+
logger.info(`No valid environment variables for database provided, using default SQLite file '${envSqliteFile}'`);
72+
}
6373

64-
if (configData.database && configData.database.engine && !configData.database.fromEnv) {
65-
logger.info('Manual db configuration already exists, skipping config creation from environment variables');
74+
if (envMysqlHost && envMysqlPort && envMysqlUser && envMysqlName) {
75+
const newConfig = {
76+
fromEnv: true,
77+
engine: 'mysql',
78+
host: envMysqlHost,
79+
port: envMysqlPort,
80+
user: envMysqlUser,
81+
password: process.env.DB_MYSQL_PASSWORD,
82+
name: envMysqlName,
83+
};
84+
85+
if (JSON.stringify(configData.database) === JSON.stringify(newConfig)) {
86+
// Config is unchanged, skip overwrite
6687
resolve();
6788
return;
6889
}
6990

70-
if (envMysqlHost && envMysqlPort && envMysqlUser && envMysqlName) {
71-
const newConfig = {
72-
fromEnv: true,
73-
engine: 'mysql',
74-
host: envMysqlHost,
75-
port: envMysqlPort,
76-
user: envMysqlUser,
77-
password: process.env.DB_MYSQL_PASSWORD,
78-
name: envMysqlName,
79-
};
80-
81-
if (JSON.stringify(configData.database) === JSON.stringify(newConfig)) {
82-
// Config is unchanged, skip overwrite
83-
resolve();
84-
return;
85-
}
86-
87-
logger.info('Generating MySQL db configuration from environment variables');
88-
configData.database = newConfig;
91+
logger.info('Generating MySQL knex configuration from environment variables');
92+
configData.database = newConfig;
8993

90-
} else {
91-
const newConfig = {
92-
fromEnv: true,
93-
engine: 'knex-native',
94-
knex: {
95-
client: 'sqlite3',
96-
connection: {
97-
filename: envSqliteFile
98-
},
99-
useNullAsDefault: true
100-
}
101-
};
102-
if (JSON.stringify(configData.database) === JSON.stringify(newConfig)) {
103-
// Config is unchanged, skip overwrite
104-
resolve();
105-
return;
94+
} else {
95+
const newConfig = {
96+
fromEnv: true,
97+
engine: 'knex-native',
98+
knex: {
99+
client: 'sqlite3',
100+
connection: {
101+
filename: envSqliteFile
102+
},
103+
useNullAsDefault: true
106104
}
107-
108-
logger.info('Generating Sqlite db configuration from environment variables');
109-
configData.database = newConfig;
105+
};
106+
if (JSON.stringify(configData.database) === JSON.stringify(newConfig)) {
107+
// Config is unchanged, skip overwrite
108+
resolve();
109+
return;
110110
}
111111

112-
// Write config
113-
fs.writeFile(filename, JSON.stringify(configData, null, 2), (err) => {
114-
if (err) {
115-
logger.error('Could not write db config to config file: ' + filename);
116-
reject(err);
117-
} else {
118-
logger.info('Wrote db configuration to config file: ' + filename);
119-
resolve();
120-
}
121-
});
122-
} else {
123-
resolve();
112+
logger.info('Generating SQLite knex configuration');
113+
configData.database = newConfig;
124114
}
115+
116+
// Write config
117+
fs.writeFile(filename, JSON.stringify(configData, null, 2), (err) => {
118+
if (err) {
119+
logger.error('Could not write db config to config file: ' + filename);
120+
reject(err);
121+
} else {
122+
logger.debug('Wrote db configuration to config file: ' + filename);
123+
resolve();
124+
}
125+
});
125126
});
126127
}
127128

‎backend/internal/certificate.js

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -832,7 +832,7 @@ const internalCertificate = {
832832
requestLetsEncryptSsl: (certificate) => {
833833
logger.info('Requesting Let\'sEncrypt certificates for Cert #' + certificate.id + ': ' + certificate.domain_names.join(', '));
834834

835-
const cmd = certbotCommand + ' certonly --non-interactive ' +
835+
const cmd = certbotCommand + ' certonly ' +
836836
'--config "' + letsencryptConfig + '" ' +
837837
'--cert-name "npm-' + certificate.id + '" ' +
838838
'--agree-tos ' +
@@ -874,7 +874,8 @@ const internalCertificate = {
874874
// Whether the plugin has a --<name>-credentials argument
875875
const hasConfigArg = certificate.meta.dns_provider !== 'route53';
876876

877-
let mainCmd = certbotCommand + ' certonly --non-interactive ' +
877+
let mainCmd = certbotCommand + ' certonly ' +
878+
'--config "' + letsencryptConfig + '" ' +
878879
'--cert-name "npm-' + certificate.id + '" ' +
879880
'--agree-tos ' +
880881
'--email "' + certificate.meta.letsencrypt_email + '" ' +
@@ -969,10 +970,11 @@ const internalCertificate = {
969970
renewLetsEncryptSsl: (certificate) => {
970971
logger.info('Renewing Let\'sEncrypt certificates for Cert #' + certificate.id + ': ' + certificate.domain_names.join(', '));
971972

972-
const cmd = certbotCommand + ' renew --force-renewal --non-interactive ' +
973+
const cmd = certbotCommand + ' renew --force-renewal ' +
973974
'--config "' + letsencryptConfig + '" ' +
974975
'--cert-name "npm-' + certificate.id + '" ' +
975976
'--preferred-challenges "dns,http" ' +
977+
'--no-random-sleep-on-renew ' +
976978
'--disable-hook-validation ' +
977979
(letsencryptStaging ? '--staging' : '');
978980

@@ -998,9 +1000,11 @@ const internalCertificate = {
9981000

9991001
logger.info(`Renewing Let'sEncrypt certificates via ${dns_plugin.display_name} for Cert #${certificate.id}: ${certificate.domain_names.join(', ')}`);
10001002

1001-
let mainCmd = certbotCommand + ' renew --non-interactive ' +
1003+
let mainCmd = certbotCommand + ' renew ' +
1004+
'--config "' + letsencryptConfig + '" ' +
10021005
'--cert-name "npm-' + certificate.id + '" ' +
1003-
'--disable-hook-validation' +
1006+
'--disable-hook-validation ' +
1007+
'--no-random-sleep-on-renew ' +
10041008
(letsencryptStaging ? ' --staging' : '');
10051009

10061010
// Prepend the path to the credentials file as an environment variable
@@ -1026,7 +1030,8 @@ const internalCertificate = {
10261030
revokeLetsEncryptSsl: (certificate, throw_errors) => {
10271031
logger.info('Revoking Let\'sEncrypt certificates for Cert #' + certificate.id + ': ' + certificate.domain_names.join(', '));
10281032

1029-
const mainCmd = certbotCommand + ' revoke --non-interactive ' +
1033+
const mainCmd = certbotCommand + ' revoke ' +
1034+
'--config "' + letsencryptConfig + '" ' +
10301035
'--cert-path "/etc/letsencrypt/live/npm-' + certificate.id + '/fullchain.pem" ' +
10311036
'--delete-after-revoke ' +
10321037
(letsencryptStaging ? '--staging' : '');

‎backend/package.json

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,9 @@
1111
"body-parser": "^1.19.0",
1212
"compression": "^1.7.4",
1313
"config": "^3.3.1",
14-
"diskdb": "^0.1.17",
1514
"express": "^4.17.1",
1615
"express-fileupload": "^1.1.9",
1716
"gravatar": "^1.8.0",
18-
"html-entities": "^1.2.1",
1917
"json-schema-ref-parser": "^8.0.0",
2018
"jsonwebtoken": "^8.5.1",
2119
"knex": "^0.20.13",
@@ -27,12 +25,9 @@
2725
"nodemon": "^2.0.2",
2826
"objection": "^2.2.16",
2927
"path": "^0.12.7",
30-
"pg": "^7.12.1",
31-
"restler": "^3.4.0",
3228
"signale": "^1.4.0",
3329
"sqlite3": "^4.1.1",
34-
"temp-write": "^4.0.0",
35-
"unix-timestamp": "^0.2.0"
30+
"temp-write": "^4.0.0"
3631
},
3732
"signale": {
3833
"displayDate": true,

‎backend/templates/_location.conf

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
11
location {{ path }} {
2-
set $upstream {{ forward_scheme }}://{{ forward_host }}:{{ forward_port }}{{ forward_path }}$request_uri;
2+
set $targetUri {{ forward_scheme }}://{{ forward_host }}:{{ forward_port }}{{ forward_path }};
3+
{% unless path contains "~" and path contains "(" and path contains ")" %}
4+
if ($request_uri != /){
5+
set $targetUri $targetUri$request_uri;
6+
}
7+
{% endunless %}
38
proxy_set_header Host $host;
49
proxy_set_header X-Forwarded-Scheme $scheme;
510
proxy_set_header X-Forwarded-Proto $scheme;
611
proxy_set_header X-Forwarded-For $remote_addr;
712
proxy_set_header X-Real-IP $remote_addr;
8-
proxy_pass $upstream;
13+
proxy_pass $targetUri;
914

1015
{% if access_list_id > 0 %}
1116
{% if access_list.items.length > 0 %}

‎backend/yarn.lock

Lines changed: 1 addition & 198 deletions
Original file line numberDiff line numberDiff line change
@@ -136,11 +136,6 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0:
136136
"@types/color-name" "^1.1.1"
137137
color-convert "^2.0.1"
138138

139-
ansi-styles@~1.0.0:
140-
version "1.0.0"
141-
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.0.0.tgz#cb102df1c56f5123eab8b67cd7b98027a0279178"
142-
integrity sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg=
143-
144139
anymatch@~3.1.1:
145140
version "3.1.1"
146141
resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142"
@@ -391,11 +386,6 @@ buffer-equal-constant-time@1.0.1:
391386
resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819"
392387
integrity sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=
393388

394-
buffer-writer@2.0.0:
395-
version "2.0.0"
396-
resolved "https://registry.yarnpkg.com/buffer-writer/-/buffer-writer-2.0.0.tgz#ce7eb81a38f7829db09c873f2fbb792c0c98ec04"
397-
integrity sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==
398-
399389
buffer@^5.5.0:
400390
version "5.7.1"
401391
resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0"
@@ -464,15 +454,6 @@ camelcase@^5.0.0, camelcase@^5.3.1:
464454
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
465455
integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
466456

467-
chalk@^0.4.0:
468-
version "0.4.0"
469-
resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.4.0.tgz#5199a3ddcd0c1efe23bc08c1b027b06176e0c64f"
470-
integrity sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=
471-
dependencies:
472-
ansi-styles "~1.0.0"
473-
has-color "~0.1.0"
474-
strip-ansi "~0.1.0"
475-
476457
chalk@^2.0.0, chalk@^2.1.0, chalk@^2.3.2:
477458
version "2.4.2"
478459
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
@@ -858,15 +839,6 @@ dicer@0.3.0:
858839
dependencies:
859840
streamsearch "0.1.2"
860841

861-
diskdb@^0.1.17:
862-
version "0.1.17"
863-
resolved "https://registry.yarnpkg.com/diskdb/-/diskdb-0.1.17.tgz#8abd095196b33b406791f1494b6b13b4422240c4"
864-
integrity sha1-ir0JUZazO0BnkfFJS2sTtEIiQMQ=
865-
dependencies:
866-
chalk "^0.4.0"
867-
merge "^1.1.3"
868-
node-uuid "^1.4.1"
869-
870842
doctrine@^3.0.0:
871843
version "3.0.0"
872844
resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
@@ -1501,11 +1473,6 @@ gravatar@^1.8.0:
15011473
querystring "0.2.0"
15021474
yargs "^15.4.1"
15031475

1504-
has-color@~0.1.0:
1505-
version "0.1.7"
1506-
resolved "https://registry.yarnpkg.com/has-color/-/has-color-0.1.7.tgz#67144a5260c34fc3cca677d041daf52fe7b78b2f"
1507-
integrity sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8=
1508-
15091476
has-flag@^3.0.0:
15101477
version "3.0.0"
15111478
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
@@ -1564,11 +1531,6 @@ homedir-polyfill@^1.0.1:
15641531
dependencies:
15651532
parse-passwd "^1.0.0"
15661533

1567-
html-entities@^1.2.1:
1568-
version "1.3.1"
1569-
resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.3.1.tgz#fb9a1a4b5b14c5daba82d3e34c6ae4fe701a0e44"
1570-
integrity sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA==
1571-
15721534
http-cache-semantics@^4.0.0:
15731535
version "4.1.0"
15741536
resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390"
@@ -1596,11 +1558,6 @@ http-errors@~1.7.2:
15961558
statuses ">= 1.5.0 < 2"
15971559
toidentifier "1.0.0"
15981560

1599-
iconv-lite@0.2.11:
1600-
version "0.2.11"
1601-
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.2.11.tgz#1ce60a3a57864a292d1321ff4609ca4bb965adc8"
1602-
integrity sha1-HOYKOleGSiktEyH/RgnKS7llrcg=
1603-
16041561
iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4:
16051562
version "0.4.24"
16061563
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
@@ -2221,11 +2178,6 @@ merge-descriptors@1.0.1:
22212178
resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
22222179
integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=
22232180

2224-
merge@^1.1.3:
2225-
version "1.2.1"
2226-
resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.1.tgz#38bebf80c3220a8a487b6fcfb3941bb11720c145"
2227-
integrity sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==
2228-
22292181
methods@~1.1.2:
22302182
version "1.1.2"
22312183
resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
@@ -2444,11 +2396,6 @@ node-rsa@^1.0.8:
24442396
dependencies:
24452397
asn1 "^0.2.4"
24462398

2447-
node-uuid@^1.4.1:
2448-
version "1.4.8"
2449-
resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.8.tgz#b040eb0923968afabf8d32fb1f17f1167fdab907"
2450-
integrity sha1-sEDrCSOWivq/jTL7HxfxFn/auQc=
2451-
24522399
nodemon@^2.0.2:
24532400
version "2.0.4"
24542401
resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.4.tgz#55b09319eb488d6394aa9818148c0c2d1c04c416"
@@ -2689,11 +2636,6 @@ package-json@^6.3.0:
26892636
registry-url "^5.0.0"
26902637
semver "^6.2.0"
26912638

2692-
packet-reader@1.0.0:
2693-
version "1.0.0"
2694-
resolved "https://registry.yarnpkg.com/packet-reader/-/packet-reader-1.0.0.tgz#9238e5480dedabacfe1fe3f2771063f164157d74"
2695-
integrity sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==
2696-
26972639
parent-module@^1.0.0:
26982640
version "1.0.1"
26992641
resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
@@ -2783,63 +2725,11 @@ path@^0.12.7:
27832725
process "^0.11.1"
27842726
util "^0.10.3"
27852727

2786-
pg-connection-string@0.1.3:
2787-
version "0.1.3"
2788-
resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-0.1.3.tgz#da1847b20940e42ee1492beaf65d49d91b245df7"
2789-
integrity sha1-2hhHsglA5C7hSSvq9l1J2RskXfc=
2790-
27912728
pg-connection-string@2.1.0:
27922729
version "2.1.0"
27932730
resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.1.0.tgz#e07258f280476540b24818ebb5dca29e101ca502"
27942731
integrity sha512-bhlV7Eq09JrRIvo1eKngpwuqKtJnNhZdpdOlvrPrA4dxqXPjxSrbNrfnIDmTpwMyRszrcV4kU5ZA4mMsQUrjdg==
27952732

2796-
pg-int8@1.0.1:
2797-
version "1.0.1"
2798-
resolved "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c"
2799-
integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==
2800-
2801-
pg-packet-stream@^1.1.0:
2802-
version "1.1.0"
2803-
resolved "https://registry.yarnpkg.com/pg-packet-stream/-/pg-packet-stream-1.1.0.tgz#e45c3ae678b901a2873af1e17b92d787962ef914"
2804-
integrity sha512-kRBH0tDIW/8lfnnOyTwKD23ygJ/kexQVXZs7gEyBljw4FYqimZFxnMMx50ndZ8In77QgfGuItS5LLclC2TtjYg==
2805-
2806-
pg-pool@^2.0.10:
2807-
version "2.0.10"
2808-
resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-2.0.10.tgz#842ee23b04e86824ce9d786430f8365082d81c4a"
2809-
integrity sha512-qdwzY92bHf3nwzIUcj+zJ0Qo5lpG/YxchahxIN8+ZVmXqkahKXsnl2aiJPHLYN9o5mB/leG+Xh6XKxtP7e0sjg==
2810-
2811-
pg-types@^2.1.0:
2812-
version "2.2.0"
2813-
resolved "https://registry.yarnpkg.com/pg-types/-/pg-types-2.2.0.tgz#2d0250d636454f7cfa3b6ae0382fdfa8063254a3"
2814-
integrity sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==
2815-
dependencies:
2816-
pg-int8 "1.0.1"
2817-
postgres-array "~2.0.0"
2818-
postgres-bytea "~1.0.0"
2819-
postgres-date "~1.0.4"
2820-
postgres-interval "^1.1.0"
2821-
2822-
pg@^7.12.1:
2823-
version "7.18.2"
2824-
resolved "https://registry.yarnpkg.com/pg/-/pg-7.18.2.tgz#4e219f05a00aff4db6aab1ba02f28ffa4513b0bb"
2825-
integrity sha512-Mvt0dGYMwvEADNKy5PMQGlzPudKcKKzJds/VbOeZJpb6f/pI3mmoXX0JksPgI3l3JPP/2Apq7F36O63J7mgveA==
2826-
dependencies:
2827-
buffer-writer "2.0.0"
2828-
packet-reader "1.0.0"
2829-
pg-connection-string "0.1.3"
2830-
pg-packet-stream "^1.1.0"
2831-
pg-pool "^2.0.10"
2832-
pg-types "^2.1.0"
2833-
pgpass "1.x"
2834-
semver "4.3.2"
2835-
2836-
pgpass@1.x:
2837-
version "1.0.2"
2838-
resolved "https://registry.yarnpkg.com/pgpass/-/pgpass-1.0.2.tgz#2a7bb41b6065b67907e91da1b07c1847c877b306"
2839-
integrity sha1-Knu0G2BltnkH6R2hsHwYR8h3swY=
2840-
dependencies:
2841-
split "^1.0.0"
2842-
28432733
picomatch@^2.0.4, picomatch@^2.2.1:
28442734
version "2.2.2"
28452735
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad"
@@ -2863,28 +2753,6 @@ posix-character-classes@^0.1.0:
28632753
resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
28642754
integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=
28652755

2866-
postgres-array@~2.0.0:
2867-
version "2.0.0"
2868-
resolved "https://registry.yarnpkg.com/postgres-array/-/postgres-array-2.0.0.tgz#48f8fce054fbc69671999329b8834b772652d82e"
2869-
integrity sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==
2870-
2871-
postgres-bytea@~1.0.0:
2872-
version "1.0.0"
2873-
resolved "https://registry.yarnpkg.com/postgres-bytea/-/postgres-bytea-1.0.0.tgz#027b533c0aa890e26d172d47cf9ccecc521acd35"
2874-
integrity sha1-AntTPAqokOJtFy1Hz5zOzFIazTU=
2875-
2876-
postgres-date@~1.0.4:
2877-
version "1.0.6"
2878-
resolved "https://registry.yarnpkg.com/postgres-date/-/postgres-date-1.0.6.tgz#4925e8085b30c2ba1a06ac91b9a3473954a2ce2d"
2879-
integrity sha512-o2a4gxeFcox+CgB3Ig/kNHBP23PiEXHCXx7pcIIsvzoNz4qv+lKTyiSkjOXIMNUl12MO/mOYl2K6wR9X5K6Plg==
2880-
2881-
postgres-interval@^1.1.0:
2882-
version "1.2.0"
2883-
resolved "https://registry.yarnpkg.com/postgres-interval/-/postgres-interval-1.2.0.tgz#b460c82cb1587507788819a06aa0fffdb3544695"
2884-
integrity sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==
2885-
dependencies:
2886-
xtend "^4.0.0"
2887-
28882756
prelude-ls@~1.1.2:
28892757
version "1.1.2"
28902758
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
@@ -2953,11 +2821,6 @@ pupa@^2.0.1:
29532821
dependencies:
29542822
escape-goat "^2.0.0"
29552823

2956-
qs@1.2.0:
2957-
version "1.2.0"
2958-
resolved "https://registry.yarnpkg.com/qs/-/qs-1.2.0.tgz#ed079be28682147e6fd9a34cc2b0c1e0ec6453ee"
2959-
integrity sha1-7Qeb4oaCFH5v2aNMwrDB4OxkU+4=
2960-
29612824
qs@6.7.0:
29622825
version "6.7.0"
29632826
resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc"
@@ -3115,16 +2978,6 @@ responselike@^1.0.2:
31152978
dependencies:
31162979
lowercase-keys "^1.0.0"
31172980

3118-
restler@^3.4.0:
3119-
version "3.4.0"
3120-
resolved "https://registry.yarnpkg.com/restler/-/restler-3.4.0.tgz#741ec0b3d16b949feea2813d0c3c68529e888d9b"
3121-
integrity sha1-dB7As9FrlJ/uooE9DDxoUp6IjZs=
3122-
dependencies:
3123-
iconv-lite "0.2.11"
3124-
qs "1.2.0"
3125-
xml2js "0.4.0"
3126-
yaml "0.2.3"
3127-
31282981
restore-cursor@^3.1.0:
31292982
version "3.1.0"
31302983
resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e"
@@ -3186,11 +3039,6 @@ safe-regex@^1.1.0:
31863039
resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
31873040
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
31883041

3189-
sax@0.5.x:
3190-
version "0.5.8"
3191-
resolved "https://registry.yarnpkg.com/sax/-/sax-0.5.8.tgz#d472db228eb331c2506b0e8c15524adb939d12c1"
3192-
integrity sha1-1HLbIo6zMcJQaw6MFVJK25OdEsE=
3193-
31943042
sax@^1.2.4:
31953043
version "1.2.4"
31963044
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
@@ -3203,11 +3051,6 @@ semver-diff@^3.1.1:
32033051
dependencies:
32043052
semver "^6.3.0"
32053053

3206-
semver@4.3.2:
3207-
version "4.3.2"
3208-
resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.2.tgz#c7a07158a80bedd052355b770d82d6640f803be7"
3209-
integrity sha1-x6BxWKgL7dBSNVt3DYLWZA+AO+c=
3210-
32113054
semver@^5.3.0, semver@^5.5.0, semver@^5.6.0, semver@^5.7.1:
32123055
version "5.7.1"
32133056
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
@@ -3360,13 +3203,6 @@ split-string@^3.0.1, split-string@^3.0.2:
33603203
dependencies:
33613204
extend-shallow "^3.0.0"
33623205

3363-
split@^1.0.0:
3364-
version "1.0.1"
3365-
resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9"
3366-
integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==
3367-
dependencies:
3368-
through "2"
3369-
33703206
sprintf-js@~1.0.2:
33713207
version "1.0.3"
33723208
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
@@ -3480,11 +3316,6 @@ strip-ansi@^6.0.0:
34803316
dependencies:
34813317
ansi-regex "^5.0.0"
34823318

3483-
strip-ansi@~0.1.0:
3484-
version "0.1.1"
3485-
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.1.1.tgz#39e8a98d044d150660abe4a6808acf70bb7bc991"
3486-
integrity sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE=
3487-
34883319
strip-bom@^3.0.0:
34893320
version "3.0.0"
34903321
resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
@@ -3579,7 +3410,7 @@ text-table@^0.2.0:
35793410
resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
35803411
integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
35813412

3582-
through@2, through@^2.3.6:
3413+
through@^2.3.6:
35833414
version "2.3.8"
35843415
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
35853416
integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
@@ -3711,11 +3542,6 @@ unique-string@^2.0.0:
37113542
dependencies:
37123543
crypto-random-string "^2.0.0"
37133544

3714-
unix-timestamp@^0.2.0:
3715-
version "0.2.0"
3716-
resolved "https://registry.yarnpkg.com/unix-timestamp/-/unix-timestamp-0.2.0.tgz#e1cdc2808df6327d27e635d9351e72815288733e"
3717-
integrity sha1-4c3CgI32Mn0n5jXZNR5ygVKIcz4=
3718-
37193545
unpipe@1.0.0, unpipe@~1.0.0:
37203546
version "1.0.0"
37213547
resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
@@ -3883,24 +3709,6 @@ xdg-basedir@^4.0.0:
38833709
resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13"
38843710
integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==
38853711

3886-
xml2js@0.4.0:
3887-
version "0.4.0"
3888-
resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.0.tgz#124fc4114b4129c810800ecb2ac86cf25462cb9a"
3889-
integrity sha1-Ek/EEUtBKcgQgA7LKshs8lRiy5o=
3890-
dependencies:
3891-
sax "0.5.x"
3892-
xmlbuilder ">=0.4.2"
3893-
3894-
xmlbuilder@>=0.4.2:
3895-
version "15.1.1"
3896-
resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-15.1.1.tgz#9dcdce49eea66d8d10b42cae94a79c3c8d0c2ec5"
3897-
integrity sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==
3898-
3899-
xtend@^4.0.0:
3900-
version "4.0.2"
3901-
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
3902-
integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
3903-
39043712
y18n@^4.0.0:
39053713
version "4.0.1"
39063714
resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4"
@@ -3911,11 +3719,6 @@ yallist@^3.0.0, yallist@^3.1.1:
39113719
resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
39123720
integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
39133721

3914-
yaml@0.2.3:
3915-
version "0.2.3"
3916-
resolved "https://registry.yarnpkg.com/yaml/-/yaml-0.2.3.tgz#b5450e92e76ef36b5dd24e3660091ebaeef3e5c7"
3917-
integrity sha1-tUUOkudu82td0k42YAkeuu7z5cc=
3918-
39193722
yargs-parser@^18.1.2:
39203723
version "18.1.3"
39213724
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0"

‎docker/docker-compose.dev.yml

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ services:
3737
db:
3838
image: jc21/mariadb-aria
3939
container_name: npm_db
40+
ports:
41+
- 33306:3306
4042
networks:
4143
- nginx_proxy_manager
4244
environment:
@@ -47,19 +49,6 @@ services:
4749
volumes:
4850
- db_data:/var/lib/mysql
4951

50-
swagger:
51-
image: "swaggerapi/swagger-ui:latest"
52-
container_name: npm_swagger
53-
ports:
54-
- 3001:80
55-
networks:
56-
- nginx_proxy_manager
57-
environment:
58-
URL: "http://127.0.0.1:3081/api/schema"
59-
PORT: "80"
60-
depends_on:
61-
- npm
62-
6352
volumes:
6453
npm_data:
6554
name: npm_core_data
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
set $upstream $forward_scheme://$server:$port$request_uri;
1+
set $targetUri $forward_scheme://$server:$port$request_uri;
22
add_header X-Served-By $host;
33
proxy_set_header Host $host;
44
proxy_set_header X-Forwarded-Scheme $scheme;
55
proxy_set_header X-Forwarded-Proto $scheme;
66
proxy_set_header X-Forwarded-For $remote_addr;
77
proxy_set_header X-Real-IP $remote_addr;
8-
proxy_pass $upstream;
8+
proxy_pass $targetUri;
99

‎docs/setup/README.md

Lines changed: 49 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,44 @@
11
# Full Setup Instructions
22

3-
## MySQL Database
3+
## Running the App
4+
5+
Create a `docker-compose.yml` file:
6+
7+
```yml
8+
version: "3"
9+
services:
10+
app:
11+
image: 'jc21/nginx-proxy-manager:latest'
12+
restart: unless-stopped
13+
ports:
14+
# These ports are in format <host-port>:<container-port>
15+
- '80:80' # Public HTTP Port
16+
- '443:443' # Public HTTPS Port
17+
- '81:81' # Admin Web Port
18+
# Add any other Stream port you want to expose
19+
# - '21:21' # FTP
20+
21+
# Uncomment the next line if you uncomment anything in the section
22+
# environment:
23+
# Uncomment this if you want to change the location of
24+
# the SQLite DB file within the container
25+
# DB_SQLITE_FILE: "/data/database.sqlite"
26+
27+
# Uncomment this if IPv6 is not enabled on your host
28+
# DISABLE_IPV6: 'true'
29+
30+
volumes:
31+
- ./data:/data
32+
- ./letsencrypt:/etc/letsencrypt
33+
```
34+
35+
Then:
36+
37+
```bash
38+
docker-compose up -d
39+
```
40+
41+
## Using MySQL / MariaDB Database
442

543
If you opt for the MySQL configuration you will have to provide the database server yourself. You can also use MariaDB. Here are the minimum supported versions:
644

@@ -10,15 +48,7 @@ If you opt for the MySQL configuration you will have to provide the database ser
1048
It's easy to use another docker container for your database also and link it as part of the docker stack, so that's what the following examples
1149
are going to use.
1250

13-
::: warning
14-
15-
When using a `mariadb` database, the NPM configuration file should still use the `mysql` engine!
16-
17-
:::
18-
19-
## Running the App
20-
21-
Via `docker-compose`:
51+
Here is an example of what your `docker-compose.yml` will look like when using a MariaDB container:
2252

2353
```yml
2454
version: "3"
@@ -27,31 +57,26 @@ services:
2757
image: 'jc21/nginx-proxy-manager:latest'
2858
restart: unless-stopped
2959
ports:
30-
# Public HTTP Port:
31-
- '80:80'
32-
# Public HTTPS Port:
33-
- '443:443'
34-
# Admin Web Port:
35-
- '81:81'
60+
# These ports are in format <host-port>:<container-port>
61+
- '80:80' # Public HTTP Port
62+
- '443:443' # Public HTTPS Port
63+
- '81:81' # Admin Web Port
3664
# Add any other Stream port you want to expose
3765
# - '21:21' # FTP
3866
environment:
39-
# These are the settings to access your db
4067
DB_MYSQL_HOST: "db"
4168
DB_MYSQL_PORT: 3306
4269
DB_MYSQL_USER: "npm"
4370
DB_MYSQL_PASSWORD: "npm"
4471
DB_MYSQL_NAME: "npm"
45-
# If you would rather use Sqlite uncomment this
46-
# and remove all DB_MYSQL_* lines above
47-
# DB_SQLITE_FILE: "/data/database.sqlite"
4872
# Uncomment this if IPv6 is not enabled on your host
4973
# DISABLE_IPV6: 'true'
5074
volumes:
5175
- ./data:/data
5276
- ./letsencrypt:/etc/letsencrypt
5377
depends_on:
5478
- db
79+
5580
db:
5681
image: 'jc21/mariadb-aria:latest'
5782
restart: unless-stopped
@@ -64,13 +89,11 @@ services:
6489
- ./data/mysql:/var/lib/mysql
6590
```
6691
67-
_Please note, that `DB_MYSQL_*` environment variables will take precedent over `DB_SQLITE_*` variables. So if you keep the MySQL variables, you will not be able to use Sqlite._
92+
::: warning
6893
69-
Then:
94+
Please note, that `DB_MYSQL_*` environment variables will take precedent over `DB_SQLITE_*` variables. So if you keep the MySQL variables, you will not be able to use SQLite.
7095

71-
```bash
72-
docker-compose up -d
73-
```
96+
:::
7497

7598
## Running on Raspberry PI / ARM devices
7699

@@ -89,57 +112,7 @@ for a list of supported architectures and if you want one that doesn't exist,
89112
Also, if you don't know how to already, follow [this guide to install docker and docker-compose](https://manre-universe.net/how-to-run-docker-and-docker-compose-on-raspbian/)
90113
on Raspbian.
91114

92-
Via `docker-compose`:
93-
94-
```yml
95-
version: "3"
96-
services:
97-
app:
98-
image: 'jc21/nginx-proxy-manager:latest'
99-
restart: unless-stopped
100-
ports:
101-
# Public HTTP Port:
102-
- '80:80'
103-
# Public HTTPS Port:
104-
- '443:443'
105-
# Admin Web Port:
106-
- '81:81'
107-
environment:
108-
# These are the settings to access your db
109-
DB_MYSQL_HOST: "db"
110-
DB_MYSQL_PORT: 3306
111-
DB_MYSQL_USER: "changeuser"
112-
DB_MYSQL_PASSWORD: "changepass"
113-
DB_MYSQL_NAME: "npm"
114-
# If you would rather use Sqlite uncomment this
115-
# and remove all DB_MYSQL_* lines above
116-
# DB_SQLITE_FILE: "/data/database.sqlite"
117-
# Uncomment this if IPv6 is not enabled on your host
118-
# DISABLE_IPV6: 'true'
119-
volumes:
120-
- ./data/nginx-proxy-manager:/data
121-
- ./letsencrypt:/etc/letsencrypt
122-
depends_on:
123-
- db
124-
db:
125-
image: yobasystems/alpine-mariadb:latest
126-
restart: unless-stopped
127-
environment:
128-
MYSQL_ROOT_PASSWORD: "changeme"
129-
MYSQL_DATABASE: "npm"
130-
MYSQL_USER: "changeuser"
131-
MYSQL_PASSWORD: "changepass"
132-
volumes:
133-
- ./data/mariadb:/var/lib/mysql
134-
```
135-
136-
_Please note, that `DB_MYSQL_*` environment variables will take precedent over `DB_SQLITE_*` var>
137-
138-
Then:
139-
140-
```bash
141-
docker-compose up -d
142-
```
115+
Please note that the `jc21/mariadb-aria:latest` image might have some problems on some ARM devices, if you want a separate database container, use the `yobasystems/alpine-mariadb:latest` image.
143116

144117
## Initial Run
145118

‎frontend/js/app/nginx/proxy/form.ejs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -257,16 +257,17 @@
257257
<div role="tabpanel" class="tab-pane" id="advanced">
258258
<div class="row">
259259
<div class="col-md-12">
260-
<p>Nginx variables available to you are:</p>
260+
<p><%- i18n('all-hosts', 'advanced-config-var-headline') %></p>
261261
<ul class="text-monospace">
262-
<li>$server # Host/IP</li>
263-
<li>$port # Port Number</li>
264-
<li>$forward_scheme # http or https</li>
262+
<li><code>$server</code> <%- i18n('proxy-hosts', 'forward-host') %></li>
263+
<li><code>$port</code> <%- i18n('proxy-hosts', 'forward-port') %></li>
264+
<li><code>$forward_scheme</code> <%- i18n('proxy-hosts', 'forward-scheme') %></li>
265265
</ul>
266266
<div class="form-group mb-0">
267267
<label class="form-label"><%- i18n('all-hosts', 'advanced-config') %></label>
268268
<textarea name="advanced_config" rows="8" class="form-control text-monospace" placeholder="# <%- i18n('all-hosts', 'advanced-warning') %>"><%- advanced_config %></textarea>
269269
</div>
270+
<p class="small text-gray"><i class="fe fe-alert-triangle"></i> <%- i18n('all-hosts', 'advanced-config-header-info') %></p>
270271
</div>
271272
</div>
272273
</div>

‎frontend/js/i18n/messages.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,8 @@
8484
"advanced": "Advanced",
8585
"advanced-warning": "Enter your custom Nginx configuration here at your own risk!",
8686
"advanced-config": "Custom Nginx Configuration",
87+
"advanced-config-var-headline": "These proxy details are available as nginx variables:",
88+
"advanced-config-header-info": "Please note, that any add_header or set_header directives added here will not be used by nginx. You will have to add a custom location '/' and add the header in the custom config there.",
8789
"hsts-enabled": "HSTS Enabled",
8890
"hsts-subdomains": "HSTS Subdomains",
8991
"locations": "Custom locations"
@@ -141,7 +143,7 @@
141143
"forward-http-status-code": "HTTP Code",
142144
"forward-domain": "Forward Domain",
143145
"preserve-path": "Preserve Path",
144-
"delete": "Delete Proxy Host",
146+
"delete": "Delete Redirection Host",
145147
"delete-confirm": "Are you sure you want to delete the Redirection host for: <strong>{domains}</strong>?",
146148
"help-title": "What is a Redirection Host?",
147149
"help-content": "A Redirection Host will redirect requests from the incoming domain and push the viewer to another domain.\nThe most common reason to use this type of host is when your website changes domains but you still have search engine or referrer links pointing to the old domain."

‎frontend/package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
"@babel/core": "^7.9.0",
88
"babel-core": "^6.26.3",
99
"babel-loader": "^8.1.0",
10-
"babel-minify-webpack-plugin": "^0.3.1",
1110
"babel-preset-env": "^1.7.0",
1211
"backbone": "^1.4.0",
1312
"backbone.marionette": "^4.1.2",

‎frontend/yarn.lock

Lines changed: 1 addition & 219 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)
Please sign in to comment.