Compare commits
69 Commits
Author | SHA1 | Date | |
---|---|---|---|
9ab5333652 | |||
3bd97ae1b0 | |||
432062e0f4 | |||
0c8bbb4bc2 | |||
48e96c46d5 | |||
25e9acf618 | |||
a517e80236 | |||
3d4d3bc73b | |||
cf4d1f73fa | |||
c203d1a0d8 | |||
5f29f6b039 | |||
f75b5b867b | |||
67463ca136 | |||
8db541f37f | |||
a5229d0e92 | |||
3d80759a21 | |||
d95cd36b3e | |||
4c6b96ad5d | |||
c3bef2867e | |||
efc5bff2e1 | |||
ffe3db8c08 | |||
4ada0feae3 | |||
e17de6058e | |||
3b47decbb0 | |||
d0bfa082e0 | |||
6b7a8b009e | |||
ca59e585d8 | |||
bbde7a108a | |||
87731a8b5c | |||
29d4bd4ccf | |||
925ad90f91 | |||
650ae61c43 | |||
02f3f9704f | |||
da7c3057b4 | |||
040b45cafa | |||
8ece310b9f | |||
96959db3c2 | |||
6360100611 | |||
b833044cea | |||
97909830f5 | |||
8ae2de2f49 | |||
bf7b659e89 | |||
4e3c7749af | |||
f63441921f | |||
725ba83606 | |||
281906c0b5 | |||
8ed121f43d | |||
81a9cab2b3 | |||
8d98a417c5 | |||
6fa81b179b | |||
9e169fbb42 | |||
27f84f880a | |||
0d9c941b4e | |||
8865aa9c8c | |||
6d8c4218f1 | |||
c134a43337 | |||
780759dc27 | |||
85128f08f3 | |||
d2f8c1e5f1 | |||
9c88b9c1e9 | |||
13fd2ce4e2 | |||
9979f516d6 | |||
39a5cd2d6e | |||
784516283f | |||
ce503232c3 | |||
f2edf9130f | |||
413ab50fc4 | |||
c1880bd3ff | |||
0f0a672275 |
26
README.md
26
README.md
@ -1,7 +1,7 @@
|
|||||||
<p align="center">
|
<p align="center">
|
||||||
<img src="https://nginxproxymanager.com/github.png">
|
<img src="https://nginxproxymanager.com/github.png">
|
||||||
<br><br>
|
<br><br>
|
||||||
<img src="https://img.shields.io/badge/version-2.9.9-green.svg?style=for-the-badge">
|
<img src="https://img.shields.io/badge/version-2.9.12-green.svg?style=for-the-badge">
|
||||||
<a href="https://hub.docker.com/repository/docker/jc21/nginx-proxy-manager">
|
<a href="https://hub.docker.com/repository/docker/jc21/nginx-proxy-manager">
|
||||||
<img src="https://img.shields.io/docker/stars/jc21/nginx-proxy-manager.svg?style=for-the-badge">
|
<img src="https://img.shields.io/docker/stars/jc21/nginx-proxy-manager.svg?style=for-the-badge">
|
||||||
</a>
|
</a>
|
||||||
@ -74,28 +74,12 @@ services:
|
|||||||
- '80:80'
|
- '80:80'
|
||||||
- '81:81'
|
- '81:81'
|
||||||
- '443:443'
|
- '443:443'
|
||||||
environment:
|
|
||||||
DB_MYSQL_HOST: "db"
|
|
||||||
DB_MYSQL_PORT: 3306
|
|
||||||
DB_MYSQL_USER: "npm"
|
|
||||||
DB_MYSQL_PASSWORD: "npm"
|
|
||||||
DB_MYSQL_NAME: "npm"
|
|
||||||
volumes:
|
volumes:
|
||||||
- ./data:/data
|
- ./data:/data
|
||||||
- ./letsencrypt:/etc/letsencrypt
|
- ./letsencrypt:/etc/letsencrypt
|
||||||
db:
|
|
||||||
image: 'jc21/mariadb-aria:latest'
|
|
||||||
restart: unless-stopped
|
|
||||||
environment:
|
|
||||||
MYSQL_ROOT_PASSWORD: 'npm'
|
|
||||||
MYSQL_DATABASE: 'npm'
|
|
||||||
MYSQL_USER: 'npm'
|
|
||||||
MYSQL_PASSWORD: 'npm'
|
|
||||||
volumes:
|
|
||||||
- ./data/mysql:/var/lib/mysql
|
|
||||||
```
|
```
|
||||||
|
|
||||||
3. Bring up your stack
|
3. Bring up your stack by running
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker-compose up -d
|
docker-compose up -d
|
||||||
@ -501,6 +485,12 @@ Special thanks to the following contributors:
|
|||||||
<br /><sub><b>Josh Byrnes</b></sub>
|
<br /><sub><b>Josh Byrnes</b></sub>
|
||||||
</a>
|
</a>
|
||||||
</td>
|
</td>
|
||||||
|
<td align="center">
|
||||||
|
<a href="https://github.com/bergi9">
|
||||||
|
<img src="https://avatars.githubusercontent.com/u/5556750?v=4" width="80" alt=""/>
|
||||||
|
<br /><sub><b>bergi9</b></sub>
|
||||||
|
</a>
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<!-- markdownlint-enable -->
|
<!-- markdownlint-enable -->
|
||||||
|
@ -40,13 +40,12 @@ app.use(function (req, res, next) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
res.set({
|
res.set({
|
||||||
'Strict-Transport-Security': 'includeSubDomains; max-age=631138519; preload',
|
'X-XSS-Protection': '1; mode=block',
|
||||||
'X-XSS-Protection': '1; mode=block',
|
'X-Content-Type-Options': 'nosniff',
|
||||||
'X-Content-Type-Options': 'nosniff',
|
'X-Frame-Options': x_frame_options,
|
||||||
'X-Frame-Options': x_frame_options,
|
'Cache-Control': 'no-cache, no-store, max-age=0, must-revalidate',
|
||||||
'Cache-Control': 'no-cache, no-store, max-age=0, must-revalidate',
|
Pragma: 'no-cache',
|
||||||
Pragma: 'no-cache',
|
Expires: 0
|
||||||
Expires: 0
|
|
||||||
});
|
});
|
||||||
next();
|
next();
|
||||||
});
|
});
|
||||||
|
133
backend/index.js
133
backend/index.js
@ -44,84 +44,85 @@ async function appStart () {
|
|||||||
|
|
||||||
async function createDbConfigFromEnvironment() {
|
async function createDbConfigFromEnvironment() {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
const envMysqlHost = process.env.DB_MYSQL_HOST || null;
|
const envMysqlHost = process.env.DB_MYSQL_HOST || null;
|
||||||
const envMysqlPort = process.env.DB_MYSQL_PORT || null;
|
const envMysqlPort = process.env.DB_MYSQL_PORT || null;
|
||||||
const envMysqlUser = process.env.DB_MYSQL_USER || null;
|
const envMysqlUser = process.env.DB_MYSQL_USER || null;
|
||||||
const envMysqlName = process.env.DB_MYSQL_NAME || null;
|
const envMysqlName = process.env.DB_MYSQL_NAME || null;
|
||||||
const envSqliteFile = process.env.DB_SQLITE_FILE || null;
|
let envSqliteFile = process.env.DB_SQLITE_FILE || null;
|
||||||
|
|
||||||
if ((envMysqlHost && envMysqlPort && envMysqlUser && envMysqlName) || envSqliteFile) {
|
const fs = require('fs');
|
||||||
const fs = require('fs');
|
const filename = (process.env.NODE_CONFIG_DIR || './config') + '/' + (process.env.NODE_ENV || 'default') + '.json';
|
||||||
const filename = (process.env.NODE_CONFIG_DIR || './config') + '/' + (process.env.NODE_ENV || 'default') + '.json';
|
let configData = {};
|
||||||
let configData = {};
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
configData = require(filename);
|
configData = require(filename);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
// do nothing
|
// do nothing
|
||||||
}
|
}
|
||||||
|
|
||||||
if (configData.database && configData.database.engine && !configData.database.fromEnv) {
|
if (configData.database && configData.database.engine && !configData.database.fromEnv) {
|
||||||
logger.info('Manual db configuration already exists, skipping config creation from environment variables');
|
logger.info('Manual db configuration already exists, skipping config creation from environment variables');
|
||||||
|
resolve();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((!envMysqlHost || !envMysqlPort || !envMysqlUser || !envMysqlName) && !envSqliteFile){
|
||||||
|
envSqliteFile = '/data/database.sqlite';
|
||||||
|
logger.info(`No valid environment variables for database provided, using default SQLite file '${envSqliteFile}'`);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (envMysqlHost && envMysqlPort && envMysqlUser && envMysqlName) {
|
||||||
|
const newConfig = {
|
||||||
|
fromEnv: true,
|
||||||
|
engine: 'mysql',
|
||||||
|
host: envMysqlHost,
|
||||||
|
port: envMysqlPort,
|
||||||
|
user: envMysqlUser,
|
||||||
|
password: process.env.DB_MYSQL_PASSWORD,
|
||||||
|
name: envMysqlName,
|
||||||
|
};
|
||||||
|
|
||||||
|
if (JSON.stringify(configData.database) === JSON.stringify(newConfig)) {
|
||||||
|
// Config is unchanged, skip overwrite
|
||||||
resolve();
|
resolve();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (envMysqlHost && envMysqlPort && envMysqlUser && envMysqlName) {
|
logger.info('Generating MySQL knex configuration from environment variables');
|
||||||
const newConfig = {
|
configData.database = newConfig;
|
||||||
fromEnv: true,
|
|
||||||
engine: 'mysql',
|
|
||||||
host: envMysqlHost,
|
|
||||||
port: envMysqlPort,
|
|
||||||
user: envMysqlUser,
|
|
||||||
password: process.env.DB_MYSQL_PASSWORD,
|
|
||||||
name: envMysqlName,
|
|
||||||
};
|
|
||||||
|
|
||||||
if (JSON.stringify(configData.database) === JSON.stringify(newConfig)) {
|
} else {
|
||||||
// Config is unchanged, skip overwrite
|
const newConfig = {
|
||||||
resolve();
|
fromEnv: true,
|
||||||
return;
|
engine: 'knex-native',
|
||||||
|
knex: {
|
||||||
|
client: 'sqlite3',
|
||||||
|
connection: {
|
||||||
|
filename: envSqliteFile
|
||||||
|
},
|
||||||
|
useNullAsDefault: true
|
||||||
}
|
}
|
||||||
|
};
|
||||||
logger.info('Generating MySQL db configuration from environment variables');
|
if (JSON.stringify(configData.database) === JSON.stringify(newConfig)) {
|
||||||
configData.database = newConfig;
|
// Config is unchanged, skip overwrite
|
||||||
|
resolve();
|
||||||
} else {
|
return;
|
||||||
const newConfig = {
|
|
||||||
fromEnv: true,
|
|
||||||
engine: 'knex-native',
|
|
||||||
knex: {
|
|
||||||
client: 'sqlite3',
|
|
||||||
connection: {
|
|
||||||
filename: envSqliteFile
|
|
||||||
},
|
|
||||||
useNullAsDefault: true
|
|
||||||
}
|
|
||||||
};
|
|
||||||
if (JSON.stringify(configData.database) === JSON.stringify(newConfig)) {
|
|
||||||
// Config is unchanged, skip overwrite
|
|
||||||
resolve();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
logger.info('Generating Sqlite db configuration from environment variables');
|
|
||||||
configData.database = newConfig;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Write config
|
logger.info('Generating SQLite knex configuration');
|
||||||
fs.writeFile(filename, JSON.stringify(configData, null, 2), (err) => {
|
configData.database = newConfig;
|
||||||
if (err) {
|
|
||||||
logger.error('Could not write db config to config file: ' + filename);
|
|
||||||
reject(err);
|
|
||||||
} else {
|
|
||||||
logger.info('Wrote db configuration to config file: ' + filename);
|
|
||||||
resolve();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
resolve();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Write config
|
||||||
|
fs.writeFile(filename, JSON.stringify(configData, null, 2), (err) => {
|
||||||
|
if (err) {
|
||||||
|
logger.error('Could not write db config to config file: ' + filename);
|
||||||
|
reject(err);
|
||||||
|
} else {
|
||||||
|
logger.debug('Wrote db configuration to config file: ' + filename);
|
||||||
|
resolve();
|
||||||
|
}
|
||||||
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -114,7 +114,7 @@ const internalCertificate = {
|
|||||||
data.owner_user_id = access.token.getUserId(1);
|
data.owner_user_id = access.token.getUserId(1);
|
||||||
|
|
||||||
if (data.provider === 'letsencrypt') {
|
if (data.provider === 'letsencrypt') {
|
||||||
data.nice_name = data.domain_names.sort().join(', ');
|
data.nice_name = data.domain_names.join(', ');
|
||||||
}
|
}
|
||||||
|
|
||||||
return certificateModel
|
return certificateModel
|
||||||
@ -832,7 +832,7 @@ const internalCertificate = {
|
|||||||
requestLetsEncryptSsl: (certificate) => {
|
requestLetsEncryptSsl: (certificate) => {
|
||||||
logger.info('Requesting Let\'sEncrypt certificates for Cert #' + certificate.id + ': ' + certificate.domain_names.join(', '));
|
logger.info('Requesting Let\'sEncrypt certificates for Cert #' + certificate.id + ': ' + certificate.domain_names.join(', '));
|
||||||
|
|
||||||
const cmd = certbotCommand + ' certonly --non-interactive ' +
|
const cmd = certbotCommand + ' certonly ' +
|
||||||
'--config "' + letsencryptConfig + '" ' +
|
'--config "' + letsencryptConfig + '" ' +
|
||||||
'--cert-name "npm-' + certificate.id + '" ' +
|
'--cert-name "npm-' + certificate.id + '" ' +
|
||||||
'--agree-tos ' +
|
'--agree-tos ' +
|
||||||
@ -869,12 +869,13 @@ const internalCertificate = {
|
|||||||
|
|
||||||
const credentialsLocation = '/etc/letsencrypt/credentials/credentials-' + certificate.id;
|
const credentialsLocation = '/etc/letsencrypt/credentials/credentials-' + certificate.id;
|
||||||
const credentialsCmd = 'mkdir -p /etc/letsencrypt/credentials 2> /dev/null; echo \'' + certificate.meta.dns_provider_credentials.replace('\'', '\\\'') + '\' > \'' + credentialsLocation + '\' && chmod 600 \'' + credentialsLocation + '\'';
|
const credentialsCmd = 'mkdir -p /etc/letsencrypt/credentials 2> /dev/null; echo \'' + certificate.meta.dns_provider_credentials.replace('\'', '\\\'') + '\' > \'' + credentialsLocation + '\' && chmod 600 \'' + credentialsLocation + '\'';
|
||||||
const prepareCmd = 'pip install ' + dns_plugin.package_name + '==' + dns_plugin.package_version + ' ' + dns_plugin.dependencies;
|
const prepareCmd = 'pip install ' + dns_plugin.package_name + (dns_plugin.version_requirement || '') + ' ' + dns_plugin.dependencies;
|
||||||
|
|
||||||
// Whether the plugin has a --<name>-credentials argument
|
// Whether the plugin has a --<name>-credentials argument
|
||||||
const hasConfigArg = certificate.meta.dns_provider !== 'route53';
|
const hasConfigArg = certificate.meta.dns_provider !== 'route53';
|
||||||
|
|
||||||
let mainCmd = certbotCommand + ' certonly --non-interactive ' +
|
let mainCmd = certbotCommand + ' certonly ' +
|
||||||
|
'--config "' + letsencryptConfig + '" ' +
|
||||||
'--cert-name "npm-' + certificate.id + '" ' +
|
'--cert-name "npm-' + certificate.id + '" ' +
|
||||||
'--agree-tos ' +
|
'--agree-tos ' +
|
||||||
'--email "' + certificate.meta.letsencrypt_email + '" ' +
|
'--email "' + certificate.meta.letsencrypt_email + '" ' +
|
||||||
@ -969,10 +970,11 @@ const internalCertificate = {
|
|||||||
renewLetsEncryptSsl: (certificate) => {
|
renewLetsEncryptSsl: (certificate) => {
|
||||||
logger.info('Renewing Let\'sEncrypt certificates for Cert #' + certificate.id + ': ' + certificate.domain_names.join(', '));
|
logger.info('Renewing Let\'sEncrypt certificates for Cert #' + certificate.id + ': ' + certificate.domain_names.join(', '));
|
||||||
|
|
||||||
const cmd = certbotCommand + ' renew --force-renewal --non-interactive ' +
|
const cmd = certbotCommand + ' renew --force-renewal ' +
|
||||||
'--config "' + letsencryptConfig + '" ' +
|
'--config "' + letsencryptConfig + '" ' +
|
||||||
'--cert-name "npm-' + certificate.id + '" ' +
|
'--cert-name "npm-' + certificate.id + '" ' +
|
||||||
'--preferred-challenges "dns,http" ' +
|
'--preferred-challenges "dns,http" ' +
|
||||||
|
'--no-random-sleep-on-renew ' +
|
||||||
'--disable-hook-validation ' +
|
'--disable-hook-validation ' +
|
||||||
(letsencryptStaging ? '--staging' : '');
|
(letsencryptStaging ? '--staging' : '');
|
||||||
|
|
||||||
@ -998,9 +1000,11 @@ const internalCertificate = {
|
|||||||
|
|
||||||
logger.info(`Renewing Let'sEncrypt certificates via ${dns_plugin.display_name} for Cert #${certificate.id}: ${certificate.domain_names.join(', ')}`);
|
logger.info(`Renewing Let'sEncrypt certificates via ${dns_plugin.display_name} for Cert #${certificate.id}: ${certificate.domain_names.join(', ')}`);
|
||||||
|
|
||||||
let mainCmd = certbotCommand + ' renew --non-interactive ' +
|
let mainCmd = certbotCommand + ' renew ' +
|
||||||
|
'--config "' + letsencryptConfig + '" ' +
|
||||||
'--cert-name "npm-' + certificate.id + '" ' +
|
'--cert-name "npm-' + certificate.id + '" ' +
|
||||||
'--disable-hook-validation' +
|
'--disable-hook-validation ' +
|
||||||
|
'--no-random-sleep-on-renew ' +
|
||||||
(letsencryptStaging ? ' --staging' : '');
|
(letsencryptStaging ? ' --staging' : '');
|
||||||
|
|
||||||
// Prepend the path to the credentials file as an environment variable
|
// Prepend the path to the credentials file as an environment variable
|
||||||
@ -1026,7 +1030,8 @@ const internalCertificate = {
|
|||||||
revokeLetsEncryptSsl: (certificate, throw_errors) => {
|
revokeLetsEncryptSsl: (certificate, throw_errors) => {
|
||||||
logger.info('Revoking Let\'sEncrypt certificates for Cert #' + certificate.id + ': ' + certificate.domain_names.join(', '));
|
logger.info('Revoking Let\'sEncrypt certificates for Cert #' + certificate.id + ': ' + certificate.domain_names.join(', '));
|
||||||
|
|
||||||
const mainCmd = certbotCommand + ' revoke --non-interactive ' +
|
const mainCmd = certbotCommand + ' revoke ' +
|
||||||
|
'--config "' + letsencryptConfig + '" ' +
|
||||||
'--cert-path "/etc/letsencrypt/live/npm-' + certificate.id + '/fullchain.pem" ' +
|
'--cert-path "/etc/letsencrypt/live/npm-' + certificate.id + '/fullchain.pem" ' +
|
||||||
'--delete-after-revoke ' +
|
'--delete-after-revoke ' +
|
||||||
(letsencryptStaging ? '--staging' : '');
|
(letsencryptStaging ? '--staging' : '');
|
||||||
|
@ -11,11 +11,9 @@
|
|||||||
"body-parser": "^1.19.0",
|
"body-parser": "^1.19.0",
|
||||||
"compression": "^1.7.4",
|
"compression": "^1.7.4",
|
||||||
"config": "^3.3.1",
|
"config": "^3.3.1",
|
||||||
"diskdb": "^0.1.17",
|
|
||||||
"express": "^4.17.1",
|
"express": "^4.17.1",
|
||||||
"express-fileupload": "^1.1.9",
|
"express-fileupload": "^1.1.9",
|
||||||
"gravatar": "^1.8.0",
|
"gravatar": "^1.8.0",
|
||||||
"html-entities": "^1.2.1",
|
|
||||||
"json-schema-ref-parser": "^8.0.0",
|
"json-schema-ref-parser": "^8.0.0",
|
||||||
"jsonwebtoken": "^8.5.1",
|
"jsonwebtoken": "^8.5.1",
|
||||||
"knex": "^0.20.13",
|
"knex": "^0.20.13",
|
||||||
@ -25,14 +23,11 @@
|
|||||||
"mysql": "^2.18.1",
|
"mysql": "^2.18.1",
|
||||||
"node-rsa": "^1.0.8",
|
"node-rsa": "^1.0.8",
|
||||||
"nodemon": "^2.0.2",
|
"nodemon": "^2.0.2",
|
||||||
"objection": "^2.1.3",
|
"objection": "^2.2.16",
|
||||||
"path": "^0.12.7",
|
"path": "^0.12.7",
|
||||||
"pg": "^7.12.1",
|
|
||||||
"restler": "^3.4.0",
|
|
||||||
"signale": "^1.4.0",
|
"signale": "^1.4.0",
|
||||||
"sqlite3": "^4.1.1",
|
"sqlite3": "^4.1.1",
|
||||||
"temp-write": "^4.0.0",
|
"temp-write": "^4.0.0"
|
||||||
"unix-timestamp": "^0.2.0"
|
|
||||||
},
|
},
|
||||||
"signale": {
|
"signale": {
|
||||||
"displayDate": true,
|
"displayDate": true,
|
||||||
|
@ -153,7 +153,7 @@
|
|||||||
"example": "john@example.com",
|
"example": "john@example.com",
|
||||||
"format": "email",
|
"format": "email",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"minLength": 8,
|
"minLength": 6,
|
||||||
"maxLength": 100
|
"maxLength": 100
|
||||||
},
|
},
|
||||||
"password": {
|
"password": {
|
||||||
|
@ -175,7 +175,7 @@ const setupCertbotPlugins = () => {
|
|||||||
certificates.map(function (certificate) {
|
certificates.map(function (certificate) {
|
||||||
if (certificate.meta && certificate.meta.dns_challenge === true) {
|
if (certificate.meta && certificate.meta.dns_challenge === true) {
|
||||||
const dns_plugin = dns_plugins[certificate.meta.dns_provider];
|
const dns_plugin = dns_plugins[certificate.meta.dns_provider];
|
||||||
const packages_to_install = `${dns_plugin.package_name}==${dns_plugin.package_version} ${dns_plugin.dependencies}`;
|
const packages_to_install = `${dns_plugin.package_name}${dns_plugin.version_requirement || ''} ${dns_plugin.dependencies}`;
|
||||||
|
|
||||||
if (plugins.indexOf(packages_to_install) === -1) plugins.push(packages_to_install);
|
if (plugins.indexOf(packages_to_install) === -1) plugins.push(packages_to_install);
|
||||||
|
|
||||||
|
@ -1,11 +1,16 @@
|
|||||||
location {{ path }} {
|
location {{ path }} {
|
||||||
set $upstream {{ forward_scheme }}://{{ forward_host }}:{{ forward_port }}{{ forward_path }};
|
set $targetUri {{ forward_scheme }}://{{ forward_host }}:{{ forward_port }}{{ forward_path }};
|
||||||
|
{% unless path contains "~" and path contains "(" and path contains ")" %}
|
||||||
|
if ($request_uri != /){
|
||||||
|
set $targetUri $targetUri$request_uri;
|
||||||
|
}
|
||||||
|
{% endunless %}
|
||||||
proxy_set_header Host $host;
|
proxy_set_header Host $host;
|
||||||
proxy_set_header X-Forwarded-Scheme $scheme;
|
proxy_set_header X-Forwarded-Scheme $scheme;
|
||||||
proxy_set_header X-Forwarded-Proto $scheme;
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
proxy_set_header X-Forwarded-For $remote_addr;
|
proxy_set_header X-Forwarded-For $remote_addr;
|
||||||
proxy_set_header X-Real-IP $remote_addr;
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
proxy_pass $upstream;
|
proxy_pass $targetUri;
|
||||||
|
|
||||||
{% if access_list_id > 0 %}
|
{% if access_list_id > 0 %}
|
||||||
{% if access_list.items.length > 0 %}
|
{% if access_list.items.length > 0 %}
|
||||||
|
@ -77,10 +77,10 @@ acorn@^7.1.1:
|
|||||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.0.tgz#e1ad486e6c54501634c6c397c5c121daa383607c"
|
resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.0.tgz#e1ad486e6c54501634c6c397c5c121daa383607c"
|
||||||
integrity sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==
|
integrity sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==
|
||||||
|
|
||||||
ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.0:
|
ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.0, ajv@^6.12.6:
|
||||||
version "6.12.3"
|
version "6.12.6"
|
||||||
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.3.tgz#18c5af38a111ddeb4f2697bd78d68abc1cabd706"
|
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
|
||||||
integrity sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==
|
integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
|
||||||
dependencies:
|
dependencies:
|
||||||
fast-deep-equal "^3.1.1"
|
fast-deep-equal "^3.1.1"
|
||||||
fast-json-stable-stringify "^2.0.0"
|
fast-json-stable-stringify "^2.0.0"
|
||||||
@ -136,11 +136,6 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0:
|
|||||||
"@types/color-name" "^1.1.1"
|
"@types/color-name" "^1.1.1"
|
||||||
color-convert "^2.0.1"
|
color-convert "^2.0.1"
|
||||||
|
|
||||||
ansi-styles@~1.0.0:
|
|
||||||
version "1.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.0.0.tgz#cb102df1c56f5123eab8b67cd7b98027a0279178"
|
|
||||||
integrity sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg=
|
|
||||||
|
|
||||||
anymatch@~3.1.1:
|
anymatch@~3.1.1:
|
||||||
version "3.1.1"
|
version "3.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142"
|
resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142"
|
||||||
@ -391,11 +386,6 @@ buffer-equal-constant-time@1.0.1:
|
|||||||
resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819"
|
resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819"
|
||||||
integrity sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=
|
integrity sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=
|
||||||
|
|
||||||
buffer-writer@2.0.0:
|
|
||||||
version "2.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/buffer-writer/-/buffer-writer-2.0.0.tgz#ce7eb81a38f7829db09c873f2fbb792c0c98ec04"
|
|
||||||
integrity sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==
|
|
||||||
|
|
||||||
buffer@^5.5.0:
|
buffer@^5.5.0:
|
||||||
version "5.7.1"
|
version "5.7.1"
|
||||||
resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0"
|
resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0"
|
||||||
@ -464,15 +454,6 @@ camelcase@^5.0.0, camelcase@^5.3.1:
|
|||||||
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
|
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
|
||||||
integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
|
integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
|
||||||
|
|
||||||
chalk@^0.4.0:
|
|
||||||
version "0.4.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.4.0.tgz#5199a3ddcd0c1efe23bc08c1b027b06176e0c64f"
|
|
||||||
integrity sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=
|
|
||||||
dependencies:
|
|
||||||
ansi-styles "~1.0.0"
|
|
||||||
has-color "~0.1.0"
|
|
||||||
strip-ansi "~0.1.0"
|
|
||||||
|
|
||||||
chalk@^2.0.0, chalk@^2.1.0, chalk@^2.3.2:
|
chalk@^2.0.0, chalk@^2.1.0, chalk@^2.3.2:
|
||||||
version "2.4.2"
|
version "2.4.2"
|
||||||
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
|
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
|
||||||
@ -858,15 +839,6 @@ dicer@0.3.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
streamsearch "0.1.2"
|
streamsearch "0.1.2"
|
||||||
|
|
||||||
diskdb@^0.1.17:
|
|
||||||
version "0.1.17"
|
|
||||||
resolved "https://registry.yarnpkg.com/diskdb/-/diskdb-0.1.17.tgz#8abd095196b33b406791f1494b6b13b4422240c4"
|
|
||||||
integrity sha1-ir0JUZazO0BnkfFJS2sTtEIiQMQ=
|
|
||||||
dependencies:
|
|
||||||
chalk "^0.4.0"
|
|
||||||
merge "^1.1.3"
|
|
||||||
node-uuid "^1.4.1"
|
|
||||||
|
|
||||||
doctrine@^3.0.0:
|
doctrine@^3.0.0:
|
||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
|
resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
|
||||||
@ -1501,11 +1473,6 @@ gravatar@^1.8.0:
|
|||||||
querystring "0.2.0"
|
querystring "0.2.0"
|
||||||
yargs "^15.4.1"
|
yargs "^15.4.1"
|
||||||
|
|
||||||
has-color@~0.1.0:
|
|
||||||
version "0.1.7"
|
|
||||||
resolved "https://registry.yarnpkg.com/has-color/-/has-color-0.1.7.tgz#67144a5260c34fc3cca677d041daf52fe7b78b2f"
|
|
||||||
integrity sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8=
|
|
||||||
|
|
||||||
has-flag@^3.0.0:
|
has-flag@^3.0.0:
|
||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
|
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
|
||||||
@ -1564,11 +1531,6 @@ homedir-polyfill@^1.0.1:
|
|||||||
dependencies:
|
dependencies:
|
||||||
parse-passwd "^1.0.0"
|
parse-passwd "^1.0.0"
|
||||||
|
|
||||||
html-entities@^1.2.1:
|
|
||||||
version "1.3.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.3.1.tgz#fb9a1a4b5b14c5daba82d3e34c6ae4fe701a0e44"
|
|
||||||
integrity sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA==
|
|
||||||
|
|
||||||
http-cache-semantics@^4.0.0:
|
http-cache-semantics@^4.0.0:
|
||||||
version "4.1.0"
|
version "4.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390"
|
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:
|
|||||||
statuses ">= 1.5.0 < 2"
|
statuses ">= 1.5.0 < 2"
|
||||||
toidentifier "1.0.0"
|
toidentifier "1.0.0"
|
||||||
|
|
||||||
iconv-lite@0.2.11:
|
|
||||||
version "0.2.11"
|
|
||||||
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.2.11.tgz#1ce60a3a57864a292d1321ff4609ca4bb965adc8"
|
|
||||||
integrity sha1-HOYKOleGSiktEyH/RgnKS7llrcg=
|
|
||||||
|
|
||||||
iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4:
|
iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4:
|
||||||
version "0.4.24"
|
version "0.4.24"
|
||||||
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
|
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
|
||||||
@ -2221,11 +2178,6 @@ merge-descriptors@1.0.1:
|
|||||||
resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
|
resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
|
||||||
integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=
|
integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=
|
||||||
|
|
||||||
merge@^1.1.3:
|
|
||||||
version "1.2.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.1.tgz#38bebf80c3220a8a487b6fcfb3941bb11720c145"
|
|
||||||
integrity sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==
|
|
||||||
|
|
||||||
methods@~1.1.2:
|
methods@~1.1.2:
|
||||||
version "1.1.2"
|
version "1.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
|
resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
|
||||||
@ -2444,11 +2396,6 @@ node-rsa@^1.0.8:
|
|||||||
dependencies:
|
dependencies:
|
||||||
asn1 "^0.2.4"
|
asn1 "^0.2.4"
|
||||||
|
|
||||||
node-uuid@^1.4.1:
|
|
||||||
version "1.4.8"
|
|
||||||
resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.8.tgz#b040eb0923968afabf8d32fb1f17f1167fdab907"
|
|
||||||
integrity sha1-sEDrCSOWivq/jTL7HxfxFn/auQc=
|
|
||||||
|
|
||||||
nodemon@^2.0.2:
|
nodemon@^2.0.2:
|
||||||
version "2.0.4"
|
version "2.0.4"
|
||||||
resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.4.tgz#55b09319eb488d6394aa9818148c0c2d1c04c416"
|
resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.4.tgz#55b09319eb488d6394aa9818148c0c2d1c04c416"
|
||||||
@ -2572,12 +2519,12 @@ object.pick@^1.2.0, object.pick@^1.3.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
isobject "^3.0.1"
|
isobject "^3.0.1"
|
||||||
|
|
||||||
objection@^2.1.3:
|
objection@^2.2.16:
|
||||||
version "2.2.2"
|
version "2.2.16"
|
||||||
resolved "https://registry.yarnpkg.com/objection/-/objection-2.2.2.tgz#1a3c9010270e3677940d2bc91aeaeb3c0f103800"
|
resolved "https://registry.yarnpkg.com/objection/-/objection-2.2.16.tgz#552ec6d625a7f80d6e204fc63732cbd3fc56f31c"
|
||||||
integrity sha512-+1Ap7u9NQRochzDW5/BggUlKi94JfZGTJwQJuNXo8DwmAb8czEirvxcWBcX91/MmQq0BQUJjM4RPSiZhnkkWQw==
|
integrity sha512-sq8erZdxW5ruPUK6tVvwDxyO16U49XAn/BmOm2zaNhNA2phOPCe2/7+R70nDEF1SFrgJOrwDu/PtoxybuJxnjQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
ajv "^6.12.0"
|
ajv "^6.12.6"
|
||||||
db-errors "^0.2.3"
|
db-errors "^0.2.3"
|
||||||
|
|
||||||
on-finished@~2.3.0:
|
on-finished@~2.3.0:
|
||||||
@ -2689,11 +2636,6 @@ package-json@^6.3.0:
|
|||||||
registry-url "^5.0.0"
|
registry-url "^5.0.0"
|
||||||
semver "^6.2.0"
|
semver "^6.2.0"
|
||||||
|
|
||||||
packet-reader@1.0.0:
|
|
||||||
version "1.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/packet-reader/-/packet-reader-1.0.0.tgz#9238e5480dedabacfe1fe3f2771063f164157d74"
|
|
||||||
integrity sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==
|
|
||||||
|
|
||||||
parent-module@^1.0.0:
|
parent-module@^1.0.0:
|
||||||
version "1.0.1"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
|
resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
|
||||||
@ -2783,63 +2725,11 @@ path@^0.12.7:
|
|||||||
process "^0.11.1"
|
process "^0.11.1"
|
||||||
util "^0.10.3"
|
util "^0.10.3"
|
||||||
|
|
||||||
pg-connection-string@0.1.3:
|
|
||||||
version "0.1.3"
|
|
||||||
resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-0.1.3.tgz#da1847b20940e42ee1492beaf65d49d91b245df7"
|
|
||||||
integrity sha1-2hhHsglA5C7hSSvq9l1J2RskXfc=
|
|
||||||
|
|
||||||
pg-connection-string@2.1.0:
|
pg-connection-string@2.1.0:
|
||||||
version "2.1.0"
|
version "2.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.1.0.tgz#e07258f280476540b24818ebb5dca29e101ca502"
|
resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.1.0.tgz#e07258f280476540b24818ebb5dca29e101ca502"
|
||||||
integrity sha512-bhlV7Eq09JrRIvo1eKngpwuqKtJnNhZdpdOlvrPrA4dxqXPjxSrbNrfnIDmTpwMyRszrcV4kU5ZA4mMsQUrjdg==
|
integrity sha512-bhlV7Eq09JrRIvo1eKngpwuqKtJnNhZdpdOlvrPrA4dxqXPjxSrbNrfnIDmTpwMyRszrcV4kU5ZA4mMsQUrjdg==
|
||||||
|
|
||||||
pg-int8@1.0.1:
|
|
||||||
version "1.0.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c"
|
|
||||||
integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==
|
|
||||||
|
|
||||||
pg-packet-stream@^1.1.0:
|
|
||||||
version "1.1.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/pg-packet-stream/-/pg-packet-stream-1.1.0.tgz#e45c3ae678b901a2873af1e17b92d787962ef914"
|
|
||||||
integrity sha512-kRBH0tDIW/8lfnnOyTwKD23ygJ/kexQVXZs7gEyBljw4FYqimZFxnMMx50ndZ8In77QgfGuItS5LLclC2TtjYg==
|
|
||||||
|
|
||||||
pg-pool@^2.0.10:
|
|
||||||
version "2.0.10"
|
|
||||||
resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-2.0.10.tgz#842ee23b04e86824ce9d786430f8365082d81c4a"
|
|
||||||
integrity sha512-qdwzY92bHf3nwzIUcj+zJ0Qo5lpG/YxchahxIN8+ZVmXqkahKXsnl2aiJPHLYN9o5mB/leG+Xh6XKxtP7e0sjg==
|
|
||||||
|
|
||||||
pg-types@^2.1.0:
|
|
||||||
version "2.2.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/pg-types/-/pg-types-2.2.0.tgz#2d0250d636454f7cfa3b6ae0382fdfa8063254a3"
|
|
||||||
integrity sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==
|
|
||||||
dependencies:
|
|
||||||
pg-int8 "1.0.1"
|
|
||||||
postgres-array "~2.0.0"
|
|
||||||
postgres-bytea "~1.0.0"
|
|
||||||
postgres-date "~1.0.4"
|
|
||||||
postgres-interval "^1.1.0"
|
|
||||||
|
|
||||||
pg@^7.12.1:
|
|
||||||
version "7.18.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/pg/-/pg-7.18.2.tgz#4e219f05a00aff4db6aab1ba02f28ffa4513b0bb"
|
|
||||||
integrity sha512-Mvt0dGYMwvEADNKy5PMQGlzPudKcKKzJds/VbOeZJpb6f/pI3mmoXX0JksPgI3l3JPP/2Apq7F36O63J7mgveA==
|
|
||||||
dependencies:
|
|
||||||
buffer-writer "2.0.0"
|
|
||||||
packet-reader "1.0.0"
|
|
||||||
pg-connection-string "0.1.3"
|
|
||||||
pg-packet-stream "^1.1.0"
|
|
||||||
pg-pool "^2.0.10"
|
|
||||||
pg-types "^2.1.0"
|
|
||||||
pgpass "1.x"
|
|
||||||
semver "4.3.2"
|
|
||||||
|
|
||||||
pgpass@1.x:
|
|
||||||
version "1.0.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/pgpass/-/pgpass-1.0.2.tgz#2a7bb41b6065b67907e91da1b07c1847c877b306"
|
|
||||||
integrity sha1-Knu0G2BltnkH6R2hsHwYR8h3swY=
|
|
||||||
dependencies:
|
|
||||||
split "^1.0.0"
|
|
||||||
|
|
||||||
picomatch@^2.0.4, picomatch@^2.2.1:
|
picomatch@^2.0.4, picomatch@^2.2.1:
|
||||||
version "2.2.2"
|
version "2.2.2"
|
||||||
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad"
|
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad"
|
||||||
@ -2863,28 +2753,6 @@ posix-character-classes@^0.1.0:
|
|||||||
resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
|
resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
|
||||||
integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=
|
integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=
|
||||||
|
|
||||||
postgres-array@~2.0.0:
|
|
||||||
version "2.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/postgres-array/-/postgres-array-2.0.0.tgz#48f8fce054fbc69671999329b8834b772652d82e"
|
|
||||||
integrity sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==
|
|
||||||
|
|
||||||
postgres-bytea@~1.0.0:
|
|
||||||
version "1.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/postgres-bytea/-/postgres-bytea-1.0.0.tgz#027b533c0aa890e26d172d47cf9ccecc521acd35"
|
|
||||||
integrity sha1-AntTPAqokOJtFy1Hz5zOzFIazTU=
|
|
||||||
|
|
||||||
postgres-date@~1.0.4:
|
|
||||||
version "1.0.6"
|
|
||||||
resolved "https://registry.yarnpkg.com/postgres-date/-/postgres-date-1.0.6.tgz#4925e8085b30c2ba1a06ac91b9a3473954a2ce2d"
|
|
||||||
integrity sha512-o2a4gxeFcox+CgB3Ig/kNHBP23PiEXHCXx7pcIIsvzoNz4qv+lKTyiSkjOXIMNUl12MO/mOYl2K6wR9X5K6Plg==
|
|
||||||
|
|
||||||
postgres-interval@^1.1.0:
|
|
||||||
version "1.2.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/postgres-interval/-/postgres-interval-1.2.0.tgz#b460c82cb1587507788819a06aa0fffdb3544695"
|
|
||||||
integrity sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==
|
|
||||||
dependencies:
|
|
||||||
xtend "^4.0.0"
|
|
||||||
|
|
||||||
prelude-ls@~1.1.2:
|
prelude-ls@~1.1.2:
|
||||||
version "1.1.2"
|
version "1.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
|
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
|
||||||
@ -2953,11 +2821,6 @@ pupa@^2.0.1:
|
|||||||
dependencies:
|
dependencies:
|
||||||
escape-goat "^2.0.0"
|
escape-goat "^2.0.0"
|
||||||
|
|
||||||
qs@1.2.0:
|
|
||||||
version "1.2.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/qs/-/qs-1.2.0.tgz#ed079be28682147e6fd9a34cc2b0c1e0ec6453ee"
|
|
||||||
integrity sha1-7Qeb4oaCFH5v2aNMwrDB4OxkU+4=
|
|
||||||
|
|
||||||
qs@6.7.0:
|
qs@6.7.0:
|
||||||
version "6.7.0"
|
version "6.7.0"
|
||||||
resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc"
|
resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc"
|
||||||
@ -3115,16 +2978,6 @@ responselike@^1.0.2:
|
|||||||
dependencies:
|
dependencies:
|
||||||
lowercase-keys "^1.0.0"
|
lowercase-keys "^1.0.0"
|
||||||
|
|
||||||
restler@^3.4.0:
|
|
||||||
version "3.4.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/restler/-/restler-3.4.0.tgz#741ec0b3d16b949feea2813d0c3c68529e888d9b"
|
|
||||||
integrity sha1-dB7As9FrlJ/uooE9DDxoUp6IjZs=
|
|
||||||
dependencies:
|
|
||||||
iconv-lite "0.2.11"
|
|
||||||
qs "1.2.0"
|
|
||||||
xml2js "0.4.0"
|
|
||||||
yaml "0.2.3"
|
|
||||||
|
|
||||||
restore-cursor@^3.1.0:
|
restore-cursor@^3.1.0:
|
||||||
version "3.1.0"
|
version "3.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e"
|
resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e"
|
||||||
@ -3186,11 +3039,6 @@ safe-regex@^1.1.0:
|
|||||||
resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
|
resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
|
||||||
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
|
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
|
||||||
|
|
||||||
sax@0.5.x:
|
|
||||||
version "0.5.8"
|
|
||||||
resolved "https://registry.yarnpkg.com/sax/-/sax-0.5.8.tgz#d472db228eb331c2506b0e8c15524adb939d12c1"
|
|
||||||
integrity sha1-1HLbIo6zMcJQaw6MFVJK25OdEsE=
|
|
||||||
|
|
||||||
sax@^1.2.4:
|
sax@^1.2.4:
|
||||||
version "1.2.4"
|
version "1.2.4"
|
||||||
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
|
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
|
||||||
@ -3203,11 +3051,6 @@ semver-diff@^3.1.1:
|
|||||||
dependencies:
|
dependencies:
|
||||||
semver "^6.3.0"
|
semver "^6.3.0"
|
||||||
|
|
||||||
semver@4.3.2:
|
|
||||||
version "4.3.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.2.tgz#c7a07158a80bedd052355b770d82d6640f803be7"
|
|
||||||
integrity sha1-x6BxWKgL7dBSNVt3DYLWZA+AO+c=
|
|
||||||
|
|
||||||
semver@^5.3.0, semver@^5.5.0, semver@^5.6.0, semver@^5.7.1:
|
semver@^5.3.0, semver@^5.5.0, semver@^5.6.0, semver@^5.7.1:
|
||||||
version "5.7.1"
|
version "5.7.1"
|
||||||
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
|
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:
|
|||||||
dependencies:
|
dependencies:
|
||||||
extend-shallow "^3.0.0"
|
extend-shallow "^3.0.0"
|
||||||
|
|
||||||
split@^1.0.0:
|
|
||||||
version "1.0.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9"
|
|
||||||
integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==
|
|
||||||
dependencies:
|
|
||||||
through "2"
|
|
||||||
|
|
||||||
sprintf-js@~1.0.2:
|
sprintf-js@~1.0.2:
|
||||||
version "1.0.3"
|
version "1.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
|
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
|
||||||
@ -3480,11 +3316,6 @@ strip-ansi@^6.0.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
ansi-regex "^5.0.0"
|
ansi-regex "^5.0.0"
|
||||||
|
|
||||||
strip-ansi@~0.1.0:
|
|
||||||
version "0.1.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.1.1.tgz#39e8a98d044d150660abe4a6808acf70bb7bc991"
|
|
||||||
integrity sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE=
|
|
||||||
|
|
||||||
strip-bom@^3.0.0:
|
strip-bom@^3.0.0:
|
||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
|
resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
|
||||||
@ -3579,7 +3410,7 @@ text-table@^0.2.0:
|
|||||||
resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
|
resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
|
||||||
integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
|
integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
|
||||||
|
|
||||||
through@2, through@^2.3.6:
|
through@^2.3.6:
|
||||||
version "2.3.8"
|
version "2.3.8"
|
||||||
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
|
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
|
||||||
integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
|
integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
|
||||||
@ -3711,11 +3542,6 @@ unique-string@^2.0.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
crypto-random-string "^2.0.0"
|
crypto-random-string "^2.0.0"
|
||||||
|
|
||||||
unix-timestamp@^0.2.0:
|
|
||||||
version "0.2.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/unix-timestamp/-/unix-timestamp-0.2.0.tgz#e1cdc2808df6327d27e635d9351e72815288733e"
|
|
||||||
integrity sha1-4c3CgI32Mn0n5jXZNR5ygVKIcz4=
|
|
||||||
|
|
||||||
unpipe@1.0.0, unpipe@~1.0.0:
|
unpipe@1.0.0, unpipe@~1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
|
resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
|
||||||
@ -3883,24 +3709,6 @@ xdg-basedir@^4.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13"
|
resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13"
|
||||||
integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==
|
integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==
|
||||||
|
|
||||||
xml2js@0.4.0:
|
|
||||||
version "0.4.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.0.tgz#124fc4114b4129c810800ecb2ac86cf25462cb9a"
|
|
||||||
integrity sha1-Ek/EEUtBKcgQgA7LKshs8lRiy5o=
|
|
||||||
dependencies:
|
|
||||||
sax "0.5.x"
|
|
||||||
xmlbuilder ">=0.4.2"
|
|
||||||
|
|
||||||
xmlbuilder@>=0.4.2:
|
|
||||||
version "15.1.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-15.1.1.tgz#9dcdce49eea66d8d10b42cae94a79c3c8d0c2ec5"
|
|
||||||
integrity sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==
|
|
||||||
|
|
||||||
xtend@^4.0.0:
|
|
||||||
version "4.0.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
|
|
||||||
integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
|
|
||||||
|
|
||||||
y18n@^4.0.0:
|
y18n@^4.0.0:
|
||||||
version "4.0.1"
|
version "4.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4"
|
resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4"
|
||||||
@ -3911,11 +3719,6 @@ yallist@^3.0.0, yallist@^3.1.1:
|
|||||||
resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
|
resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
|
||||||
integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
|
integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
|
||||||
|
|
||||||
yaml@0.2.3:
|
|
||||||
version "0.2.3"
|
|
||||||
resolved "https://registry.yarnpkg.com/yaml/-/yaml-0.2.3.tgz#b5450e92e76ef36b5dd24e3660091ebaeef3e5c7"
|
|
||||||
integrity sha1-tUUOkudu82td0k42YAkeuu7z5cc=
|
|
||||||
|
|
||||||
yargs-parser@^18.1.2:
|
yargs-parser@^18.1.2:
|
||||||
version "18.1.3"
|
version "18.1.3"
|
||||||
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0"
|
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0"
|
||||||
|
@ -37,6 +37,8 @@ services:
|
|||||||
db:
|
db:
|
||||||
image: jc21/mariadb-aria
|
image: jc21/mariadb-aria
|
||||||
container_name: npm_db
|
container_name: npm_db
|
||||||
|
ports:
|
||||||
|
- 33306:3306
|
||||||
networks:
|
networks:
|
||||||
- nginx_proxy_manager
|
- nginx_proxy_manager
|
||||||
environment:
|
environment:
|
||||||
@ -47,19 +49,6 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
- db_data:/var/lib/mysql
|
- db_data:/var/lib/mysql
|
||||||
|
|
||||||
swagger:
|
|
||||||
image: "swaggerapi/swagger-ui:latest"
|
|
||||||
container_name: npm_swagger
|
|
||||||
ports:
|
|
||||||
- 3001:80
|
|
||||||
networks:
|
|
||||||
- nginx_proxy_manager
|
|
||||||
environment:
|
|
||||||
URL: "http://127.0.0.1:3081/api/schema"
|
|
||||||
PORT: "80"
|
|
||||||
depends_on:
|
|
||||||
- npm
|
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
npm_data:
|
npm_data:
|
||||||
name: npm_core_data
|
name: npm_core_data
|
||||||
|
@ -3,3 +3,4 @@ non-interactive = True
|
|||||||
webroot-path = /data/letsencrypt-acme-challenge
|
webroot-path = /data/letsencrypt-acme-challenge
|
||||||
key-type = ecdsa
|
key-type = ecdsa
|
||||||
elliptic-curve = secp384r1
|
elliptic-curve = secp384r1
|
||||||
|
preferred-chain = ISRG Root X1
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
|
set $targetUri $forward_scheme://$server:$port$request_uri;
|
||||||
add_header X-Served-By $host;
|
add_header X-Served-By $host;
|
||||||
proxy_set_header Host $host;
|
proxy_set_header Host $host;
|
||||||
proxy_set_header X-Forwarded-Scheme $scheme;
|
proxy_set_header X-Forwarded-Scheme $scheme;
|
||||||
proxy_set_header X-Forwarded-Proto $scheme;
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
proxy_set_header X-Forwarded-For $remote_addr;
|
proxy_set_header X-Forwarded-For $remote_addr;
|
||||||
proxy_set_header X-Real-IP $remote_addr;
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
proxy_pass $forward_scheme://$server:$port;
|
proxy_pass $targetUri;
|
||||||
|
|
||||||
|
@ -443,7 +443,7 @@
|
|||||||
"normalize-url": "^5.1.0",
|
"normalize-url": "^5.1.0",
|
||||||
"npm-run-path": "^4.0.1",
|
"npm-run-path": "^4.0.1",
|
||||||
"nprogress": "^0.2.0",
|
"nprogress": "^0.2.0",
|
||||||
"nth-check": "^1.0.2",
|
"nth-check": "^2.0.1",
|
||||||
"num2fraction": "^1.2.2",
|
"num2fraction": "^1.2.2",
|
||||||
"number-is-nan": "^2.0.0",
|
"number-is-nan": "^2.0.0",
|
||||||
"oauth-sign": "^0.9.0",
|
"oauth-sign": "^0.9.0",
|
||||||
@ -612,7 +612,7 @@
|
|||||||
"serve-index": "^1.9.1",
|
"serve-index": "^1.9.1",
|
||||||
"serve-static": "^1.14.1",
|
"serve-static": "^1.14.1",
|
||||||
"set-blocking": "^2.0.0",
|
"set-blocking": "^2.0.0",
|
||||||
"set-value": "^3.0.2",
|
"set-value": "^4.0.1",
|
||||||
"setimmediate": "^1.0.5",
|
"setimmediate": "^1.0.5",
|
||||||
"setprototypeof": "^1.2.0",
|
"setprototypeof": "^1.2.0",
|
||||||
"sha.js": "^2.4.11",
|
"sha.js": "^2.4.11",
|
||||||
|
@ -1,6 +1,44 @@
|
|||||||
# Full Setup Instructions
|
# Full Setup Instructions
|
||||||
|
|
||||||
## MySQL Database
|
## Running the App
|
||||||
|
|
||||||
|
Create a `docker-compose.yml` file:
|
||||||
|
|
||||||
|
```yml
|
||||||
|
version: "3"
|
||||||
|
services:
|
||||||
|
app:
|
||||||
|
image: 'jc21/nginx-proxy-manager:latest'
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
# These ports are in format <host-port>:<container-port>
|
||||||
|
- '80:80' # Public HTTP Port
|
||||||
|
- '443:443' # Public HTTPS Port
|
||||||
|
- '81:81' # Admin Web Port
|
||||||
|
# Add any other Stream port you want to expose
|
||||||
|
# - '21:21' # FTP
|
||||||
|
|
||||||
|
# Uncomment the next line if you uncomment anything in the section
|
||||||
|
# environment:
|
||||||
|
# Uncomment this if you want to change the location of
|
||||||
|
# the SQLite DB file within the container
|
||||||
|
# DB_SQLITE_FILE: "/data/database.sqlite"
|
||||||
|
|
||||||
|
# Uncomment this if IPv6 is not enabled on your host
|
||||||
|
# DISABLE_IPV6: 'true'
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
- ./data:/data
|
||||||
|
- ./letsencrypt:/etc/letsencrypt
|
||||||
|
```
|
||||||
|
|
||||||
|
Then:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
## Using MySQL / MariaDB Database
|
||||||
|
|
||||||
If you opt for the MySQL configuration you will have to provide the database server yourself. You can also use MariaDB. Here are the minimum supported versions:
|
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:
|
||||||
|
|
||||||
@ -10,15 +48,7 @@ If you opt for the MySQL configuration you will have to provide the database ser
|
|||||||
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
|
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
|
||||||
are going to use.
|
are going to use.
|
||||||
|
|
||||||
::: warning
|
Here is an example of what your `docker-compose.yml` will look like when using a MariaDB container:
|
||||||
|
|
||||||
When using a `mariadb` database, the NPM configuration file should still use the `mysql` engine!
|
|
||||||
|
|
||||||
:::
|
|
||||||
|
|
||||||
## Running the App
|
|
||||||
|
|
||||||
Via `docker-compose`:
|
|
||||||
|
|
||||||
```yml
|
```yml
|
||||||
version: "3"
|
version: "3"
|
||||||
@ -27,24 +57,18 @@ services:
|
|||||||
image: 'jc21/nginx-proxy-manager:latest'
|
image: 'jc21/nginx-proxy-manager:latest'
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
ports:
|
ports:
|
||||||
# Public HTTP Port:
|
# These ports are in format <host-port>:<container-port>
|
||||||
- '80:80'
|
- '80:80' # Public HTTP Port
|
||||||
# Public HTTPS Port:
|
- '443:443' # Public HTTPS Port
|
||||||
- '443:443'
|
- '81:81' # Admin Web Port
|
||||||
# Admin Web Port:
|
|
||||||
- '81:81'
|
|
||||||
# Add any other Stream port you want to expose
|
# Add any other Stream port you want to expose
|
||||||
# - '21:21' # FTP
|
# - '21:21' # FTP
|
||||||
environment:
|
environment:
|
||||||
# These are the settings to access your db
|
|
||||||
DB_MYSQL_HOST: "db"
|
DB_MYSQL_HOST: "db"
|
||||||
DB_MYSQL_PORT: 3306
|
DB_MYSQL_PORT: 3306
|
||||||
DB_MYSQL_USER: "npm"
|
DB_MYSQL_USER: "npm"
|
||||||
DB_MYSQL_PASSWORD: "npm"
|
DB_MYSQL_PASSWORD: "npm"
|
||||||
DB_MYSQL_NAME: "npm"
|
DB_MYSQL_NAME: "npm"
|
||||||
# If you would rather use Sqlite uncomment this
|
|
||||||
# and remove all DB_MYSQL_* lines above
|
|
||||||
# DB_SQLITE_FILE: "/data/database.sqlite"
|
|
||||||
# Uncomment this if IPv6 is not enabled on your host
|
# Uncomment this if IPv6 is not enabled on your host
|
||||||
# DISABLE_IPV6: 'true'
|
# DISABLE_IPV6: 'true'
|
||||||
volumes:
|
volumes:
|
||||||
@ -52,6 +76,7 @@ services:
|
|||||||
- ./letsencrypt:/etc/letsencrypt
|
- ./letsencrypt:/etc/letsencrypt
|
||||||
depends_on:
|
depends_on:
|
||||||
- db
|
- db
|
||||||
|
|
||||||
db:
|
db:
|
||||||
image: 'jc21/mariadb-aria:latest'
|
image: 'jc21/mariadb-aria:latest'
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
@ -64,13 +89,11 @@ services:
|
|||||||
- ./data/mysql:/var/lib/mysql
|
- ./data/mysql:/var/lib/mysql
|
||||||
```
|
```
|
||||||
|
|
||||||
_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._
|
::: warning
|
||||||
|
|
||||||
Then:
|
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.
|
||||||
|
|
||||||
```bash
|
:::
|
||||||
docker-compose up -d
|
|
||||||
```
|
|
||||||
|
|
||||||
## Running on Raspberry PI / ARM devices
|
## Running on Raspberry PI / ARM devices
|
||||||
|
|
||||||
@ -89,57 +112,7 @@ for a list of supported architectures and if you want one that doesn't exist,
|
|||||||
Also, if you don't know how to already, follow [this guide to install docker and docker-compose](https://manre-universe.net/how-to-run-docker-and-docker-compose-on-raspbian/)
|
Also, if you don't know how to already, follow [this guide to install docker and docker-compose](https://manre-universe.net/how-to-run-docker-and-docker-compose-on-raspbian/)
|
||||||
on Raspbian.
|
on Raspbian.
|
||||||
|
|
||||||
Via `docker-compose`:
|
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.
|
||||||
|
|
||||||
```yml
|
|
||||||
version: "3"
|
|
||||||
services:
|
|
||||||
app:
|
|
||||||
image: 'jc21/nginx-proxy-manager:latest'
|
|
||||||
restart: unless-stopped
|
|
||||||
ports:
|
|
||||||
# Public HTTP Port:
|
|
||||||
- '80:80'
|
|
||||||
# Public HTTPS Port:
|
|
||||||
- '443:443'
|
|
||||||
# Admin Web Port:
|
|
||||||
- '81:81'
|
|
||||||
environment:
|
|
||||||
# These are the settings to access your db
|
|
||||||
DB_MYSQL_HOST: "db"
|
|
||||||
DB_MYSQL_PORT: 3306
|
|
||||||
DB_MYSQL_USER: "changeuser"
|
|
||||||
DB_MYSQL_PASSWORD: "changepass"
|
|
||||||
DB_MYSQL_NAME: "npm"
|
|
||||||
# If you would rather use Sqlite uncomment this
|
|
||||||
# and remove all DB_MYSQL_* lines above
|
|
||||||
# DB_SQLITE_FILE: "/data/database.sqlite"
|
|
||||||
# Uncomment this if IPv6 is not enabled on your host
|
|
||||||
# DISABLE_IPV6: 'true'
|
|
||||||
volumes:
|
|
||||||
- ./data/nginx-proxy-manager:/data
|
|
||||||
- ./letsencrypt:/etc/letsencrypt
|
|
||||||
depends_on:
|
|
||||||
- db
|
|
||||||
db:
|
|
||||||
image: yobasystems/alpine-mariadb:latest
|
|
||||||
restart: unless-stopped
|
|
||||||
environment:
|
|
||||||
MYSQL_ROOT_PASSWORD: "changeme"
|
|
||||||
MYSQL_DATABASE: "npm"
|
|
||||||
MYSQL_USER: "changeuser"
|
|
||||||
MYSQL_PASSWORD: "changepass"
|
|
||||||
volumes:
|
|
||||||
- ./data/mariadb:/var/lib/mysql
|
|
||||||
```
|
|
||||||
|
|
||||||
_Please note, that `DB_MYSQL_*` environment variables will take precedent over `DB_SQLITE_*` var>
|
|
||||||
|
|
||||||
Then:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
docker-compose up -d
|
|
||||||
```
|
|
||||||
|
|
||||||
## Initial Run
|
## Initial Run
|
||||||
|
|
||||||
|
@ -1624,9 +1624,9 @@ ansi-regex@^4.1.0:
|
|||||||
integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==
|
integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==
|
||||||
|
|
||||||
ansi-regex@^5.0.0:
|
ansi-regex@^5.0.0:
|
||||||
version "5.0.0"
|
version "5.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75"
|
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
|
||||||
integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==
|
integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
|
||||||
|
|
||||||
ansi-styles@^2.2.1:
|
ansi-styles@^2.2.1:
|
||||||
version "2.2.1"
|
version "2.2.1"
|
||||||
@ -6726,6 +6726,13 @@ nth-check@^1.0.2, nth-check@~1.0.1:
|
|||||||
dependencies:
|
dependencies:
|
||||||
boolbase "~1.0.0"
|
boolbase "~1.0.0"
|
||||||
|
|
||||||
|
nth-check@^2.0.1:
|
||||||
|
version "2.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.1.tgz#2efe162f5c3da06a28959fbd3db75dbeea9f0fc2"
|
||||||
|
integrity sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==
|
||||||
|
dependencies:
|
||||||
|
boolbase "^1.0.0"
|
||||||
|
|
||||||
num2fraction@^1.2.2:
|
num2fraction@^1.2.2:
|
||||||
version "1.2.2"
|
version "1.2.2"
|
||||||
resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede"
|
resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede"
|
||||||
@ -7699,9 +7706,9 @@ pretty-time@^1.1.0:
|
|||||||
integrity sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==
|
integrity sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==
|
||||||
|
|
||||||
prismjs@^1.13.0, prismjs@^1.20.0:
|
prismjs@^1.13.0, prismjs@^1.20.0:
|
||||||
version "1.24.0"
|
version "1.25.0"
|
||||||
resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.24.0.tgz#0409c30068a6c52c89ef7f1089b3ca4de56be2ac"
|
resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.25.0.tgz#6f822df1bdad965734b310b315a23315cf999756"
|
||||||
integrity sha512-SqV5GRsNqnzCL8k5dfAjCNhUrF3pR0A9lTDSCUZeh/LIshheXJEaP0hwLz2t4XHivd2J/v2HR+gRnigzeKe3cQ==
|
integrity sha512-WCjJHl1KEWbnkQom1+SzftbtXMKQoezOCYs5rECqMN+jP+apI7ftoflyqigqzopSO3hMhTEb0mFClA8lkolgEg==
|
||||||
|
|
||||||
private@^0.1.8:
|
private@^0.1.8:
|
||||||
version "0.1.8"
|
version "0.1.8"
|
||||||
@ -8436,13 +8443,20 @@ set-value@^2.0.0, set-value@^2.0.1:
|
|||||||
is-plain-object "^2.0.3"
|
is-plain-object "^2.0.3"
|
||||||
split-string "^3.0.1"
|
split-string "^3.0.1"
|
||||||
|
|
||||||
set-value@^3.0.0, set-value@^3.0.2:
|
set-value@^3.0.0:
|
||||||
version "3.0.2"
|
version "3.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/set-value/-/set-value-3.0.2.tgz#74e8ecd023c33d0f77199d415409a40f21e61b90"
|
resolved "https://registry.yarnpkg.com/set-value/-/set-value-3.0.2.tgz#74e8ecd023c33d0f77199d415409a40f21e61b90"
|
||||||
integrity sha512-npjkVoz+ank0zjlV9F47Fdbjfj/PfXyVhZvGALWsyIYU/qrMzpi6avjKW3/7KeSU2Df3I46BrN1xOI1+6vW0hA==
|
integrity sha512-npjkVoz+ank0zjlV9F47Fdbjfj/PfXyVhZvGALWsyIYU/qrMzpi6avjKW3/7KeSU2Df3I46BrN1xOI1+6vW0hA==
|
||||||
dependencies:
|
dependencies:
|
||||||
is-plain-object "^2.0.4"
|
is-plain-object "^2.0.4"
|
||||||
|
|
||||||
|
set-value@^4.0.1:
|
||||||
|
version "4.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/set-value/-/set-value-4.0.1.tgz#bc23522ade2d52314ec3b5d6fb140f5cd3a88acf"
|
||||||
|
integrity sha512-ayATicCYPVnlNpFmjq2/VmVwhoCQA9+13j8qWp044fmFE3IFphosPtRM+0CJ5xoIx5Uy52fCcwg3XeH2pHbbPQ==
|
||||||
|
dependencies:
|
||||||
|
is-plain-object "^2.0.4"
|
||||||
|
|
||||||
setimmediate@^1.0.4, setimmediate@^1.0.5:
|
setimmediate@^1.0.4, setimmediate@^1.0.5:
|
||||||
version "1.0.5"
|
version "1.0.5"
|
||||||
resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
|
resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
|
||||||
|
@ -257,16 +257,17 @@
|
|||||||
<div role="tabpanel" class="tab-pane" id="advanced">
|
<div role="tabpanel" class="tab-pane" id="advanced">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
<p>Nginx variables available to you are:</p>
|
<p><%- i18n('all-hosts', 'advanced-config-var-headline') %></p>
|
||||||
<ul class="text-monospace">
|
<ul class="text-monospace">
|
||||||
<li>$server # Host/IP</li>
|
<li><code>$server</code> <%- i18n('proxy-hosts', 'forward-host') %></li>
|
||||||
<li>$port # Port Number</li>
|
<li><code>$port</code> <%- i18n('proxy-hosts', 'forward-port') %></li>
|
||||||
<li>$forward_scheme # http or https</li>
|
<li><code>$forward_scheme</code> <%- i18n('proxy-hosts', 'forward-scheme') %></li>
|
||||||
</ul>
|
</ul>
|
||||||
<div class="form-group mb-0">
|
<div class="form-group mb-0">
|
||||||
<label class="form-label"><%- i18n('all-hosts', 'advanced-config') %></label>
|
<label class="form-label"><%- i18n('all-hosts', 'advanced-config') %></label>
|
||||||
<textarea name="advanced_config" rows="8" class="form-control text-monospace" placeholder="# <%- i18n('all-hosts', 'advanced-warning') %>"><%- advanced_config %></textarea>
|
<textarea name="advanced_config" rows="8" class="form-control text-monospace" placeholder="# <%- i18n('all-hosts', 'advanced-warning') %>"><%- advanced_config %></textarea>
|
||||||
</div>
|
</div>
|
||||||
|
<p class="small text-gray"><i class="fe fe-alert-triangle"></i> <%- i18n('all-hosts', 'advanced-config-header-info') %></p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="d-flex">
|
<div class="d-flex">
|
||||||
|
<button class="navbar-toggler d-lg-none mr-2" type="button" data-toggle="collapse" data-target="#menu">
|
||||||
|
<span class="navbar-toggler-icon"></span>
|
||||||
|
</button>
|
||||||
<a class="navbar-brand" href="/">
|
<a class="navbar-brand" href="/">
|
||||||
<img src="/images/favicons/favicon-32x32.png" border="0"> <%- i18n('main', 'app') %>
|
<img src="/images/favicons/favicon-32x32.png" border="0"> <%- i18n('main', 'app') %>
|
||||||
</a>
|
</a>
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
<div class="page-main">
|
<div class="page-main">
|
||||||
<div class="header" id="header">
|
<div class="navbar-light">
|
||||||
<!-- Header View -->
|
<div class="header" id="header">
|
||||||
</div>
|
<!-- Header View -->
|
||||||
<div id="menu">
|
</div>
|
||||||
<!-- Menu View -->
|
<div id="menu">
|
||||||
|
<!-- Menu View -->
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="my-3 my-md-5">
|
<div class="my-3 my-md-5">
|
||||||
<div id="app-content" class="container">
|
<div id="app-content" class="container">
|
||||||
|
@ -84,6 +84,8 @@
|
|||||||
"advanced": "Advanced",
|
"advanced": "Advanced",
|
||||||
"advanced-warning": "Enter your custom Nginx configuration here at your own risk!",
|
"advanced-warning": "Enter your custom Nginx configuration here at your own risk!",
|
||||||
"advanced-config": "Custom Nginx Configuration",
|
"advanced-config": "Custom Nginx Configuration",
|
||||||
|
"advanced-config-var-headline": "These proxy details are available as nginx variables:",
|
||||||
|
"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.",
|
||||||
"hsts-enabled": "HSTS Enabled",
|
"hsts-enabled": "HSTS Enabled",
|
||||||
"hsts-subdomains": "HSTS Subdomains",
|
"hsts-subdomains": "HSTS Subdomains",
|
||||||
"locations": "Custom locations"
|
"locations": "Custom locations"
|
||||||
@ -130,7 +132,7 @@
|
|||||||
"access-list": "Access List",
|
"access-list": "Access List",
|
||||||
"allow-websocket-upgrade": "Websockets Support",
|
"allow-websocket-upgrade": "Websockets Support",
|
||||||
"ignore-invalid-upstream-ssl": "Ignore Invalid SSL",
|
"ignore-invalid-upstream-ssl": "Ignore Invalid SSL",
|
||||||
"custom-forward-host-help": "Use 1.1.1.1/path for sub-folder forwarding"
|
"custom-forward-host-help": "Add a path for sub-folder forwarding.\nExample: 203.0.113.25/path"
|
||||||
},
|
},
|
||||||
"redirection-hosts": {
|
"redirection-hosts": {
|
||||||
"title": "Redirection Hosts",
|
"title": "Redirection Hosts",
|
||||||
@ -141,7 +143,7 @@
|
|||||||
"forward-http-status-code": "HTTP Code",
|
"forward-http-status-code": "HTTP Code",
|
||||||
"forward-domain": "Forward Domain",
|
"forward-domain": "Forward Domain",
|
||||||
"preserve-path": "Preserve Path",
|
"preserve-path": "Preserve Path",
|
||||||
"delete": "Delete Proxy Host",
|
"delete": "Delete Redirection Host",
|
||||||
"delete-confirm": "Are you sure you want to delete the Redirection host for: <strong>{domains}</strong>?",
|
"delete-confirm": "Are you sure you want to delete the Redirection host for: <strong>{domains}</strong>?",
|
||||||
"help-title": "What is a Redirection Host?",
|
"help-title": "What is a Redirection Host?",
|
||||||
"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."
|
"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."
|
||||||
|
@ -7,7 +7,6 @@
|
|||||||
"@babel/core": "^7.9.0",
|
"@babel/core": "^7.9.0",
|
||||||
"babel-core": "^6.26.3",
|
"babel-core": "^6.26.3",
|
||||||
"babel-loader": "^8.1.0",
|
"babel-loader": "^8.1.0",
|
||||||
"babel-minify-webpack-plugin": "^0.3.1",
|
|
||||||
"babel-preset-env": "^1.7.0",
|
"babel-preset-env": "^1.7.0",
|
||||||
"backbone": "^1.4.0",
|
"backbone": "^1.4.0",
|
||||||
"backbone.marionette": "^4.1.2",
|
"backbone.marionette": "^4.1.2",
|
||||||
@ -28,10 +27,10 @@
|
|||||||
"messageformat-loader": "^0.8.1",
|
"messageformat-loader": "^0.8.1",
|
||||||
"mini-css-extract-plugin": "^0.9.0",
|
"mini-css-extract-plugin": "^0.9.0",
|
||||||
"moment": "^2.24.0",
|
"moment": "^2.24.0",
|
||||||
"node-sass": "^4.13.1",
|
"node-sass": "^6.0.1",
|
||||||
"nodemon": "^2.0.2",
|
"nodemon": "^2.0.2",
|
||||||
"numeral": "^2.0.6",
|
"numeral": "^2.0.6",
|
||||||
"sass-loader": "^8.0.2",
|
"sass-loader": "10.2.0",
|
||||||
"style-loader": "^1.1.3",
|
"style-loader": "^1.1.3",
|
||||||
"tabler-ui": "git+https://github.com/tabler/tabler.git#00f78ad823311bc3ad974ac3e5b0126198f0a813",
|
"tabler-ui": "git+https://github.com/tabler/tabler.git#00f78ad823311bc3ad974ac3e5b0126198f0a813",
|
||||||
"underscore": "^1.12.1",
|
"underscore": "^1.12.1",
|
||||||
|
@ -13,8 +13,8 @@ module.exports = {
|
|||||||
},
|
},
|
||||||
output: {
|
output: {
|
||||||
path: path.resolve(__dirname, 'dist'),
|
path: path.resolve(__dirname, 'dist'),
|
||||||
filename: 'js/[name].bundle.js',
|
filename: `js/[name].bundle.js?v=${PACKAGE.version}`,
|
||||||
chunkFilename: 'js/[name].bundle.[id].js',
|
chunkFilename: `js/[name].bundle.[id].js?v=${PACKAGE.version}`,
|
||||||
publicPath: '/'
|
publicPath: '/'
|
||||||
},
|
},
|
||||||
resolve: {
|
resolve: {
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -9,10 +9,10 @@
|
|||||||
* cloudflare: {
|
* cloudflare: {
|
||||||
* display_name: "Name displayed to the user",
|
* display_name: "Name displayed to the user",
|
||||||
* package_name: "Package name in PyPi repo",
|
* package_name: "Package name in PyPi repo",
|
||||||
* package_version: "Package version in PyPi repo",
|
* version_requirement: "Optional package version requirements (e.g. ==1.3 or >=1.2,<2.0, see https://www.python.org/dev/peps/pep-0440/#version-specifiers)",
|
||||||
* dependencies: "Additional dependencies, space separated (as you would pass it to pip install)",
|
* dependencies: "Additional dependencies, space separated (as you would pass it to pip install)",
|
||||||
* credentials: `Template of the credentials file`,
|
* credentials: `Template of the credentials file`,
|
||||||
* full_plugin_name: "The full plugin name as used in the commandline with certbot, including prefixes, e.g. 'certbot-dns-njalla:dns-njalla'",
|
* full_plugin_name: "The full plugin name as used in the commandline with certbot, e.g. 'dns-njalla'",
|
||||||
* },
|
* },
|
||||||
* ...
|
* ...
|
||||||
* }
|
* }
|
||||||
@ -22,30 +22,30 @@
|
|||||||
module.exports = {
|
module.exports = {
|
||||||
//####################################################//
|
//####################################################//
|
||||||
acmedns: {
|
acmedns: {
|
||||||
display_name: 'ACME-DNS',
|
display_name: 'ACME-DNS',
|
||||||
package_name: 'certbot-dns-acmedns',
|
package_name: 'certbot-dns-acmedns',
|
||||||
package_version: '0.1.0',
|
version_requirement: '~=0.1.0',
|
||||||
dependencies: '',
|
dependencies: '',
|
||||||
credentials: `certbot_dns_acmedns:dns_acmedns_api_url = http://acmedns-server/
|
credentials: `dns_acmedns_api_url = http://acmedns-server/
|
||||||
certbot_dns_acmedns:dns_acmedns_registration_file = /data/acme-registration.json`,
|
dns_acmedns_registration_file = /data/acme-registration.json`,
|
||||||
full_plugin_name: 'certbot-dns-acmedns:dns-acmedns',
|
full_plugin_name: 'dns-acmedns',
|
||||||
},
|
},
|
||||||
aliyun: {
|
aliyun: {
|
||||||
display_name: 'Aliyun',
|
display_name: 'Aliyun',
|
||||||
package_name: 'certbot-dns-aliyun',
|
package_name: 'certbot-dns-aliyun',
|
||||||
package_version: '0.38.1',
|
version_requirement: '~=0.38.1',
|
||||||
dependencies: '',
|
dependencies: '',
|
||||||
credentials: `certbot_dns_aliyun:dns_aliyun_access_key = 12345678
|
credentials: `dns_aliyun_access_key = 12345678
|
||||||
certbot_dns_aliyun:dns_aliyun_access_key_secret = 1234567890abcdef1234567890abcdef`,
|
dns_aliyun_access_key_secret = 1234567890abcdef1234567890abcdef`,
|
||||||
full_plugin_name: 'certbot-dns-aliyun:dns-aliyun',
|
full_plugin_name: 'dns-aliyun',
|
||||||
},
|
},
|
||||||
//####################################################//
|
//####################################################//
|
||||||
azure: {
|
azure: {
|
||||||
display_name: 'Azure',
|
display_name: 'Azure',
|
||||||
package_name: 'certbot-dns-azure',
|
package_name: 'certbot-dns-azure',
|
||||||
package_version: '1.2.0',
|
version_requirement: '~=1.2.0',
|
||||||
dependencies: '',
|
dependencies: '',
|
||||||
credentials: `# This plugin supported API authentication using either Service Principals or utilizing a Managed Identity assigned to the virtual machine.
|
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.
|
# 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.
|
# 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.
|
||||||
|
|
||||||
@ -67,21 +67,21 @@ dns_azure_zone2 = example.org:/subscriptions/99800903-fb14-4992-9aff-12eaf274462
|
|||||||
},
|
},
|
||||||
//####################################################//
|
//####################################################//
|
||||||
cloudflare: {
|
cloudflare: {
|
||||||
display_name: 'Cloudflare',
|
display_name: 'Cloudflare',
|
||||||
package_name: 'certbot-dns-cloudflare',
|
package_name: 'certbot-dns-cloudflare',
|
||||||
package_version: '1.8.0',
|
// version_requirement: '', // Official plugin, no version requirement
|
||||||
dependencies: 'cloudflare',
|
dependencies: 'cloudflare',
|
||||||
credentials: `# Cloudflare API token
|
credentials: `# Cloudflare API token
|
||||||
dns_cloudflare_api_token = 0123456789abcdef0123456789abcdef01234567`,
|
dns_cloudflare_api_token = 0123456789abcdef0123456789abcdef01234567`,
|
||||||
full_plugin_name: 'dns-cloudflare',
|
full_plugin_name: 'dns-cloudflare',
|
||||||
},
|
},
|
||||||
//####################################################//
|
//####################################################//
|
||||||
cloudns: {
|
cloudns: {
|
||||||
display_name: 'ClouDNS',
|
display_name: 'ClouDNS',
|
||||||
package_name: 'certbot-dns-cloudns',
|
package_name: 'certbot-dns-cloudns',
|
||||||
package_version: '0.4.0',
|
version_requirement: '~=0.4.0',
|
||||||
dependencies: '',
|
dependencies: '',
|
||||||
credentials: `# Target user ID (see https://www.cloudns.net/api-settings/)
|
credentials: `# Target user ID (see https://www.cloudns.net/api-settings/)
|
||||||
dns_cloudns_auth_id=1234
|
dns_cloudns_auth_id=1234
|
||||||
# Alternatively, one of the following two options can be set:
|
# Alternatively, one of the following two options can be set:
|
||||||
# dns_cloudns_sub_auth_id=1234
|
# dns_cloudns_sub_auth_id=1234
|
||||||
@ -93,139 +93,153 @@ dns_cloudflare_api_token = 0123456789abcdef0123456789abcdef01234567`,
|
|||||||
},
|
},
|
||||||
//####################################################//
|
//####################################################//
|
||||||
cloudxns: {
|
cloudxns: {
|
||||||
display_name: 'CloudXNS',
|
display_name: 'CloudXNS',
|
||||||
package_name: 'certbot-dns-cloudxns',
|
package_name: 'certbot-dns-cloudxns',
|
||||||
package_version: '1.8.0',
|
// version_requirement: '', // Official plugin, no version requirement
|
||||||
dependencies: '',
|
dependencies: '',
|
||||||
credentials: `dns_cloudxns_api_key = 1234567890abcdef1234567890abcdef
|
credentials: `dns_cloudxns_api_key = 1234567890abcdef1234567890abcdef
|
||||||
dns_cloudxns_secret_key = 1122334455667788`,
|
dns_cloudxns_secret_key = 1122334455667788`,
|
||||||
full_plugin_name: 'dns-cloudxns',
|
full_plugin_name: 'dns-cloudxns',
|
||||||
},
|
},
|
||||||
//####################################################//
|
//####################################################//
|
||||||
corenetworks: {
|
corenetworks: {
|
||||||
display_name: 'Core Networks',
|
display_name: 'Core Networks',
|
||||||
package_name: 'certbot-dns-corenetworks',
|
package_name: 'certbot-dns-corenetworks',
|
||||||
package_version: '0.1.4',
|
version_requirement: '~=0.1.4',
|
||||||
dependencies: '',
|
dependencies: '',
|
||||||
credentials: `certbot_dns_corenetworks:dns_corenetworks_username = asaHB12r
|
credentials: `dns_corenetworks_username = asaHB12r
|
||||||
certbot_dns_corenetworks:dns_corenetworks_password = secure_password`,
|
dns_corenetworks_password = secure_password`,
|
||||||
full_plugin_name: 'certbot-dns-corenetworks:dns-corenetworks',
|
full_plugin_name: 'dns-corenetworks',
|
||||||
},
|
},
|
||||||
//####################################################//
|
//####################################################//
|
||||||
cpanel: {
|
cpanel: {
|
||||||
display_name: 'cPanel',
|
display_name: 'cPanel',
|
||||||
package_name: 'certbot-dns-cpanel',
|
package_name: 'certbot-dns-cpanel',
|
||||||
package_version: '0.2.2',
|
version_requirement: '~=0.2.2',
|
||||||
dependencies: '',
|
dependencies: '',
|
||||||
credentials: `certbot_dns_cpanel:cpanel_url = https://cpanel.example.com:2083
|
credentials: `cpanel_url = https://cpanel.example.com:2083
|
||||||
certbot_dns_cpanel:cpanel_username = user
|
cpanel_username = user
|
||||||
certbot_dns_cpanel:cpanel_password = hunter2`,
|
cpanel_password = hunter2`,
|
||||||
full_plugin_name: 'certbot-dns-cpanel:cpanel',
|
full_plugin_name: 'cpanel',
|
||||||
|
},
|
||||||
|
//####################################################//
|
||||||
|
desec: {
|
||||||
|
display_name: 'deSEC',
|
||||||
|
package_name: 'certbot-dns-desec',
|
||||||
|
version_requirement: '~=0.3.0',
|
||||||
|
dependencies: '',
|
||||||
|
credentials: `dns_desec_token = YOUR_DESEC_API_TOKEN
|
||||||
|
dns_desec_endpoint = https://desec.io/api/v1/`,
|
||||||
|
full_plugin_name: 'dns-desec',
|
||||||
},
|
},
|
||||||
//####################################################//
|
//####################################################//
|
||||||
duckdns: {
|
duckdns: {
|
||||||
display_name: 'DuckDNS',
|
display_name: 'DuckDNS',
|
||||||
package_name: 'certbot-dns-duckdns',
|
package_name: 'certbot-dns-duckdns',
|
||||||
package_version: '0.6',
|
version_requirement: '~=0.6',
|
||||||
dependencies: '',
|
dependencies: '',
|
||||||
credentials: 'dns_duckdns_token=your-duckdns-token',
|
credentials: 'dns_duckdns_token=your-duckdns-token',
|
||||||
full_plugin_name: 'dns-duckdns',
|
full_plugin_name: 'dns-duckdns',
|
||||||
},
|
},
|
||||||
//####################################################//
|
//####################################################//
|
||||||
digitalocean: {
|
digitalocean: {
|
||||||
display_name: 'DigitalOcean',
|
display_name: 'DigitalOcean',
|
||||||
package_name: 'certbot-dns-digitalocean',
|
package_name: 'certbot-dns-digitalocean',
|
||||||
package_version: '1.8.0',
|
// version_requirement: '', // Official plugin, no version requirement
|
||||||
dependencies: '',
|
dependencies: '',
|
||||||
credentials: 'dns_digitalocean_token = 0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff',
|
credentials: 'dns_digitalocean_token = 0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff',
|
||||||
full_plugin_name: 'dns-digitalocean',
|
full_plugin_name: 'dns-digitalocean',
|
||||||
},
|
},
|
||||||
//####################################################//
|
//####################################################//
|
||||||
directadmin: {
|
directadmin: {
|
||||||
display_name: 'DirectAdmin',
|
display_name: 'DirectAdmin',
|
||||||
package_name: 'certbot-dns-directadmin',
|
package_name: 'certbot-dns-directadmin',
|
||||||
package_version: '0.0.20',
|
version_requirement: '~=0.0.23',
|
||||||
dependencies: '',
|
dependencies: '',
|
||||||
credentials: `directadmin_url = https://my.directadminserver.com:2222
|
credentials: `directadmin_url = https://my.directadminserver.com:2222
|
||||||
directadmin_username = username
|
directadmin_username = username
|
||||||
directadmin_password = aSuperStrongPassword`,
|
directadmin_password = aSuperStrongPassword`,
|
||||||
full_plugin_name: 'certbot-dns-directadmin:directadmin',
|
full_plugin_name: 'directadmin',
|
||||||
},
|
},
|
||||||
//####################################################//
|
//####################################################//
|
||||||
dnsimple: {
|
dnsimple: {
|
||||||
display_name: 'DNSimple',
|
display_name: 'DNSimple',
|
||||||
package_name: 'certbot-dns-dnsimple',
|
package_name: 'certbot-dns-dnsimple',
|
||||||
package_version: '1.8.0',
|
// version_requirement: '', // Official plugin, no version requirement
|
||||||
dependencies: '',
|
dependencies: '',
|
||||||
credentials: 'dns_dnsimple_token = MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw',
|
credentials: 'dns_dnsimple_token = MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw',
|
||||||
full_plugin_name: 'dns-dnsimple',
|
full_plugin_name: 'dns-dnsimple',
|
||||||
},
|
},
|
||||||
//####################################################//
|
//####################################################//
|
||||||
dnsmadeeasy: {
|
dnsmadeeasy: {
|
||||||
display_name: 'DNS Made Easy',
|
display_name: 'DNS Made Easy',
|
||||||
package_name: 'certbot-dns-dnsmadeeasy',
|
package_name: 'certbot-dns-dnsmadeeasy',
|
||||||
package_version: '1.8.0',
|
// version_requirement: '', // Official plugin, no version requirement
|
||||||
dependencies: '',
|
dependencies: '',
|
||||||
credentials: `dns_dnsmadeeasy_api_key = 1c1a3c91-4770-4ce7-96f4-54c0eb0e457a
|
credentials: `dns_dnsmadeeasy_api_key = 1c1a3c91-4770-4ce7-96f4-54c0eb0e457a
|
||||||
dns_dnsmadeeasy_secret_key = c9b5625f-9834-4ff8-baba-4ed5f32cae55`,
|
dns_dnsmadeeasy_secret_key = c9b5625f-9834-4ff8-baba-4ed5f32cae55`,
|
||||||
full_plugin_name: 'dns-dnsmadeeasy',
|
full_plugin_name: 'dns-dnsmadeeasy',
|
||||||
},
|
},
|
||||||
//####################################################//
|
//####################################################//
|
||||||
dnspod: {
|
dnspod: {
|
||||||
display_name: 'DNSPod',
|
display_name: 'DNSPod',
|
||||||
package_name: 'certbot-dns-dnspod',
|
package_name: 'certbot-dns-dnspod',
|
||||||
package_version: '0.1.0',
|
version_requirement: '~=0.1.0',
|
||||||
dependencies: '',
|
dependencies: '',
|
||||||
credentials: `certbot_dns_dnspod:dns_dnspod_email = "DNSPOD-API-REQUIRES-A-VALID-EMAIL"
|
credentials: `dns_dnspod_email = "DNSPOD-API-REQUIRES-A-VALID-EMAIL"
|
||||||
certbot_dns_dnspod:dns_dnspod_api_token = "DNSPOD-API-TOKEN"`,
|
dns_dnspod_api_token = "DNSPOD-API-TOKEN"`,
|
||||||
full_plugin_name: 'certbot-dns-dnspod:dns-dnspod',
|
full_plugin_name: 'dns-dnspod',
|
||||||
},
|
},
|
||||||
//####################################################//
|
//####################################################//
|
||||||
dynu: {
|
dynu: {
|
||||||
display_name: 'Dynu',
|
display_name: 'Dynu',
|
||||||
package_name: 'certbot-dns-dynu',
|
package_name: 'certbot-dns-dynu',
|
||||||
package_version: '0.0.1',
|
version_requirement: '~=0.0.1',
|
||||||
dependencies: '',
|
dependencies: '',
|
||||||
credentials: 'certbot_dns_dynu:dns_dynu_auth_token = YOUR_DYNU_AUTH_TOKEN',
|
credentials: 'dns_dynu_auth_token = YOUR_DYNU_AUTH_TOKEN',
|
||||||
full_plugin_name: 'certbot-dns-dynu:dns-dynu',
|
full_plugin_name: 'dns-dynu',
|
||||||
},
|
},
|
||||||
//####################################################//
|
//####################################################//
|
||||||
eurodns: {
|
eurodns: {
|
||||||
display_name: 'EuroDNS',
|
display_name: 'EuroDNS',
|
||||||
package_name: 'certbot-dns-eurodns',
|
package_name: 'certbot-dns-eurodns',
|
||||||
package_version: '0.0.4',
|
version_requirement: '~=0.0.4',
|
||||||
dependencies: '',
|
dependencies: '',
|
||||||
credentials: `dns_eurodns_applicationId = myuser
|
credentials: `dns_eurodns_applicationId = myuser
|
||||||
dns_eurodns_apiKey = mysecretpassword
|
dns_eurodns_apiKey = mysecretpassword
|
||||||
dns_eurodns_endpoint = https://rest-api.eurodns.com/user-api-gateway/proxy`,
|
dns_eurodns_endpoint = https://rest-api.eurodns.com/user-api-gateway/proxy`,
|
||||||
full_plugin_name: 'certbot-dns-eurodns:dns-eurodns',
|
full_plugin_name: 'dns-eurodns',
|
||||||
},
|
},
|
||||||
//####################################################//
|
//####################################################//
|
||||||
gandi: {
|
gandi: {
|
||||||
display_name: 'Gandi Live DNS',
|
display_name: 'Gandi Live DNS',
|
||||||
package_name: 'certbot_plugin_gandi',
|
package_name: 'certbot_plugin_gandi',
|
||||||
package_version: '1.2.5',
|
version_requirement: '~=1.3.2',
|
||||||
dependencies: '',
|
dependencies: '',
|
||||||
credentials: 'certbot_plugin_gandi:dns_api_key = APIKEY',
|
credentials: `# live dns v5 api key
|
||||||
full_plugin_name: 'certbot-plugin-gandi:dns',
|
dns_gandi_api_key=APIKEY
|
||||||
|
|
||||||
|
# optional organization id, remove it if not used
|
||||||
|
dns_gandi_sharing_id=SHARINGID`,
|
||||||
|
full_plugin_name: 'dns-gandi',
|
||||||
},
|
},
|
||||||
//####################################################//
|
//####################################################//
|
||||||
godaddy: {
|
godaddy: {
|
||||||
display_name: 'GoDaddy',
|
display_name: 'GoDaddy',
|
||||||
package_name: 'certbot-dns-godaddy',
|
package_name: 'certbot-dns-godaddy',
|
||||||
package_version: '0.2.0',
|
version_requirement: '~=0.2.0',
|
||||||
dependencies: '',
|
dependencies: '',
|
||||||
credentials: `dns_godaddy_secret = 0123456789abcdef0123456789abcdef01234567
|
credentials: `dns_godaddy_secret = 0123456789abcdef0123456789abcdef01234567
|
||||||
dns_godaddy_key = abcdef0123456789abcdef01234567abcdef0123`,
|
dns_godaddy_key = abcdef0123456789abcdef01234567abcdef0123`,
|
||||||
full_plugin_name: 'dns-godaddy',
|
full_plugin_name: 'dns-godaddy',
|
||||||
},
|
},
|
||||||
//####################################################//
|
//####################################################//
|
||||||
google: {
|
google: {
|
||||||
display_name: 'Google',
|
display_name: 'Google',
|
||||||
package_name: 'certbot-dns-google',
|
package_name: 'certbot-dns-google',
|
||||||
package_version: '1.8.0',
|
// version_requirement: '', // Official plugin, no version requirement
|
||||||
dependencies: '',
|
dependencies: '',
|
||||||
credentials: `{
|
credentials: `{
|
||||||
"type": "service_account",
|
"type": "service_account",
|
||||||
...
|
...
|
||||||
}`,
|
}`,
|
||||||
@ -233,142 +247,156 @@ dns_godaddy_key = abcdef0123456789abcdef01234567abcdef0123`,
|
|||||||
},
|
},
|
||||||
//####################################################//
|
//####################################################//
|
||||||
hetzner: {
|
hetzner: {
|
||||||
display_name: 'Hetzner',
|
display_name: 'Hetzner',
|
||||||
package_name: 'certbot-dns-hetzner',
|
package_name: 'certbot-dns-hetzner',
|
||||||
package_version: '1.0.4',
|
version_requirement: '~=1.0.4',
|
||||||
dependencies: '',
|
dependencies: '',
|
||||||
credentials: 'certbot_dns_hetzner:dns_hetzner_api_token = 0123456789abcdef0123456789abcdef',
|
credentials: 'dns_hetzner_api_token = 0123456789abcdef0123456789abcdef',
|
||||||
full_plugin_name: 'certbot-dns-hetzner:dns-hetzner',
|
full_plugin_name: 'dns-hetzner',
|
||||||
},
|
},
|
||||||
//####################################################//
|
//####################################################//
|
||||||
infomaniak: {
|
infomaniak: {
|
||||||
display_name: 'Infomaniak',
|
display_name: 'Infomaniak',
|
||||||
package_name: 'certbot-dns-infomaniak',
|
package_name: 'certbot-dns-infomaniak',
|
||||||
package_version: '0.1.12',
|
version_requirement: '~=0.1.12',
|
||||||
dependencies: '',
|
dependencies: '',
|
||||||
credentials: 'certbot_dns_infomaniak:dns_infomaniak_token = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
|
credentials: 'dns_infomaniak_token = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
|
||||||
full_plugin_name: 'certbot-dns-infomaniak:dns-infomaniak',
|
full_plugin_name: 'dns-infomaniak',
|
||||||
},
|
},
|
||||||
//####################################################//
|
//####################################################//
|
||||||
inwx: {
|
inwx: {
|
||||||
display_name: 'INWX',
|
display_name: 'INWX',
|
||||||
package_name: 'certbot-dns-inwx',
|
package_name: 'certbot-dns-inwx',
|
||||||
package_version: '2.1.2',
|
version_requirement: '~=2.1.2',
|
||||||
dependencies: '',
|
dependencies: '',
|
||||||
credentials: `certbot_dns_inwx:dns_inwx_url = https://api.domrobot.com/xmlrpc/
|
credentials: `dns_inwx_url = https://api.domrobot.com/xmlrpc/
|
||||||
certbot_dns_inwx:dns_inwx_username = your_username
|
dns_inwx_username = your_username
|
||||||
certbot_dns_inwx:dns_inwx_password = your_password
|
dns_inwx_password = your_password
|
||||||
certbot_dns_inwx:dns_inwx_shared_secret = your_shared_secret optional`,
|
dns_inwx_shared_secret = your_shared_secret optional`,
|
||||||
full_plugin_name: 'certbot-dns-inwx:dns-inwx',
|
full_plugin_name: 'dns-inwx',
|
||||||
},
|
},
|
||||||
//####################################################//
|
//####################################################//
|
||||||
ionos: {
|
ionos: {
|
||||||
display_name: 'IONOS',
|
display_name: 'IONOS',
|
||||||
package_name: 'certbot-dns-ionos',
|
package_name: 'certbot-dns-ionos',
|
||||||
package_version: '0.0.7',
|
version_requirement: '==2021.9.20.post1',
|
||||||
dependencies: '',
|
dependencies: '',
|
||||||
credentials: `certbot_dns_ionos:dns_ionos_prefix = myapikeyprefix
|
credentials: `dns_ionos_prefix = myapikeyprefix
|
||||||
certbot_dns_ionos:dns_ionos_secret = verysecureapikeysecret
|
dns_ionos_secret = verysecureapikeysecret
|
||||||
certbot_dns_ionos:dns_ionos_endpoint = https://api.hosting.ionos.com`,
|
dns_ionos_endpoint = https://api.hosting.ionos.com`,
|
||||||
full_plugin_name: 'certbot-dns-ionos:dns-ionos',
|
full_plugin_name: 'dns-ionos',
|
||||||
},
|
},
|
||||||
//####################################################//
|
//####################################################//
|
||||||
ispconfig: {
|
ispconfig: {
|
||||||
display_name: 'ISPConfig',
|
display_name: 'ISPConfig',
|
||||||
package_name: 'certbot-dns-ispconfig',
|
package_name: 'certbot-dns-ispconfig',
|
||||||
package_version: '0.2.0',
|
version_requirement: '~=0.2.0',
|
||||||
dependencies: '',
|
dependencies: '',
|
||||||
credentials: `certbot_dns_ispconfig:dns_ispconfig_username = myremoteuser
|
credentials: `dns_ispconfig_username = myremoteuser
|
||||||
certbot_dns_ispconfig:dns_ispconfig_password = verysecureremoteuserpassword
|
dns_ispconfig_password = verysecureremoteuserpassword
|
||||||
certbot_dns_ispconfig:dns_ispconfig_endpoint = https://localhost:8080`,
|
dns_ispconfig_endpoint = https://localhost:8080`,
|
||||||
full_plugin_name: 'certbot-dns-ispconfig:dns-ispconfig',
|
full_plugin_name: 'dns-ispconfig',
|
||||||
},
|
},
|
||||||
//####################################################//
|
//####################################################//
|
||||||
isset: {
|
isset: {
|
||||||
display_name: 'Isset',
|
display_name: 'Isset',
|
||||||
package_name: 'certbot-dns-isset',
|
package_name: 'certbot-dns-isset',
|
||||||
package_version: '0.0.3',
|
version_requirement: '~=0.0.3',
|
||||||
dependencies: '',
|
dependencies: '',
|
||||||
credentials: `certbot_dns_isset:dns_isset_endpoint="https://customer.isset.net/api"
|
credentials: `dns_isset_endpoint="https://customer.isset.net/api"
|
||||||
certbot_dns_isset:dns_isset_token="<token>"`,
|
dns_isset_token="<token>"`,
|
||||||
full_plugin_name: 'certbot-dns-isset:dns-isset',
|
full_plugin_name: 'dns-isset',
|
||||||
},
|
},
|
||||||
joker: {
|
joker: {
|
||||||
display_name: 'Joker',
|
display_name: 'Joker',
|
||||||
package_name: 'certbot-dns-joker',
|
package_name: 'certbot-dns-joker',
|
||||||
package_version: '1.1.0',
|
version_requirement: '~=1.1.0',
|
||||||
dependencies: '',
|
dependencies: '',
|
||||||
credentials: `certbot_dns_joker:dns_joker_username = <Dynamic DNS Authentication Username>
|
credentials: `dns_joker_username = <Dynamic DNS Authentication Username>
|
||||||
certbot_dns_joker:dns_joker_password = <Dynamic DNS Authentication Password>
|
dns_joker_password = <Dynamic DNS Authentication Password>
|
||||||
certbot_dns_joker:dns_joker_domain = <Dynamic DNS Domain>`,
|
dns_joker_domain = <Dynamic DNS Domain>`,
|
||||||
full_plugin_name: 'certbot-dns-joker:dns-joker',
|
full_plugin_name: 'dns-joker',
|
||||||
},
|
},
|
||||||
//####################################################//
|
//####################################################//
|
||||||
linode: {
|
linode: {
|
||||||
display_name: 'Linode',
|
display_name: 'Linode',
|
||||||
package_name: 'certbot-dns-linode',
|
package_name: 'certbot-dns-linode',
|
||||||
package_version: '1.8.0',
|
// version_requirement: '', // Official plugin, no version requirement
|
||||||
dependencies: '',
|
dependencies: '',
|
||||||
credentials: `dns_linode_key = 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ64
|
credentials: `dns_linode_key = 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ64
|
||||||
dns_linode_version = [<blank>|3|4]`,
|
dns_linode_version = [<blank>|3|4]`,
|
||||||
full_plugin_name: 'dns-linode',
|
full_plugin_name: 'dns-linode',
|
||||||
},
|
},
|
||||||
//####################################################//
|
//####################################################//
|
||||||
loopia: {
|
loopia: {
|
||||||
display_name: 'Loopia',
|
display_name: 'Loopia',
|
||||||
package_name: 'certbot-dns-loopia',
|
package_name: 'certbot-dns-loopia',
|
||||||
package_version: '1.0.0',
|
version_requirement: '~=1.0.0',
|
||||||
dependencies: '',
|
dependencies: '',
|
||||||
credentials: `dns_loopia_user = user@loopiaapi
|
credentials: `dns_loopia_user = user@loopiaapi
|
||||||
dns_loopia_password = abcdef0123456789abcdef01234567abcdef0123`,
|
dns_loopia_password = abcdef0123456789abcdef01234567abcdef0123`,
|
||||||
full_plugin_name: 'dns-loopia',
|
full_plugin_name: 'dns-loopia',
|
||||||
},
|
},
|
||||||
//####################################################//
|
//####################################################//
|
||||||
luadns: {
|
luadns: {
|
||||||
display_name: 'LuaDNS',
|
display_name: 'LuaDNS',
|
||||||
package_name: 'certbot-dns-luadns',
|
package_name: 'certbot-dns-luadns',
|
||||||
package_version: '1.8.0',
|
// version_requirement: '', // Official plugin, no version requirement
|
||||||
dependencies: '',
|
dependencies: '',
|
||||||
credentials: `dns_luadns_email = user@example.com
|
credentials: `dns_luadns_email = user@example.com
|
||||||
dns_luadns_token = 0123456789abcdef0123456789abcdef`,
|
dns_luadns_token = 0123456789abcdef0123456789abcdef`,
|
||||||
full_plugin_name: 'dns-luadns',
|
full_plugin_name: 'dns-luadns',
|
||||||
},
|
},
|
||||||
//####################################################//
|
//####################################################//
|
||||||
netcup: {
|
netcup: {
|
||||||
display_name: 'netcup',
|
display_name: 'netcup',
|
||||||
package_name: 'certbot-dns-netcup',
|
package_name: 'certbot-dns-netcup',
|
||||||
package_version: '1.0.0',
|
version_requirement: '~=1.0.0',
|
||||||
dependencies: '',
|
dependencies: '',
|
||||||
credentials: `certbot_dns_netcup:dns_netcup_customer_id = 123456
|
credentials: `dns_netcup_customer_id = 123456
|
||||||
certbot_dns_netcup:dns_netcup_api_key = 0123456789abcdef0123456789abcdef01234567
|
dns_netcup_api_key = 0123456789abcdef0123456789abcdef01234567
|
||||||
certbot_dns_netcup:dns_netcup_api_password = abcdef0123456789abcdef01234567abcdef0123`,
|
dns_netcup_api_password = abcdef0123456789abcdef01234567abcdef0123`,
|
||||||
full_plugin_name: 'certbot-dns-netcup:dns-netcup',
|
full_plugin_name: 'dns-netcup',
|
||||||
},
|
},
|
||||||
//####################################################//
|
//####################################################//
|
||||||
njalla: {
|
njalla: {
|
||||||
display_name: 'Njalla',
|
display_name: 'Njalla',
|
||||||
package_name: 'certbot-dns-njalla',
|
package_name: 'certbot-dns-njalla',
|
||||||
package_version: '1.0.0',
|
version_requirement: '~=1.0.0',
|
||||||
dependencies: '',
|
dependencies: '',
|
||||||
credentials: 'certbot_dns_njalla:dns_njalla_token = 0123456789abcdef0123456789abcdef01234567',
|
credentials: 'dns_njalla_token = 0123456789abcdef0123456789abcdef01234567',
|
||||||
full_plugin_name: 'certbot-dns-njalla:dns-njalla',
|
full_plugin_name: 'dns-njalla',
|
||||||
},
|
},
|
||||||
//####################################################//
|
//####################################################//
|
||||||
nsone: {
|
nsone: {
|
||||||
display_name: 'NS1',
|
display_name: 'NS1',
|
||||||
package_name: 'certbot-dns-nsone',
|
package_name: 'certbot-dns-nsone',
|
||||||
package_version: '1.8.0',
|
// version_requirement: '', // Official plugin, no version requirement
|
||||||
dependencies: '',
|
dependencies: '',
|
||||||
credentials: 'dns_nsone_api_key = MDAwMDAwMDAwMDAwMDAw',
|
credentials: 'dns_nsone_api_key = MDAwMDAwMDAwMDAwMDAw',
|
||||||
full_plugin_name: 'dns-nsone',
|
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',
|
||||||
|
},
|
||||||
|
//####################################################//
|
||||||
ovh: {
|
ovh: {
|
||||||
display_name: 'OVH',
|
display_name: 'OVH',
|
||||||
package_name: 'certbot-dns-ovh',
|
package_name: 'certbot-dns-ovh',
|
||||||
package_version: '1.8.0',
|
// version_requirement: '', // Official plugin, no version requirement
|
||||||
dependencies: '',
|
dependencies: '',
|
||||||
credentials: `dns_ovh_endpoint = ovh-eu
|
credentials: `dns_ovh_endpoint = ovh-eu
|
||||||
dns_ovh_application_key = MDAwMDAwMDAwMDAw
|
dns_ovh_application_key = MDAwMDAwMDAwMDAw
|
||||||
dns_ovh_application_secret = MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
|
dns_ovh_application_secret = MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
|
||||||
dns_ovh_consumer_key = MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw`,
|
dns_ovh_consumer_key = MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw`,
|
||||||
@ -376,41 +404,41 @@ dns_ovh_consumer_key = MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw`,
|
|||||||
},
|
},
|
||||||
//####################################################//
|
//####################################################//
|
||||||
porkbun: {
|
porkbun: {
|
||||||
display_name: 'Porkbun',
|
display_name: 'Porkbun',
|
||||||
package_name: 'certbot-dns-porkbun',
|
package_name: 'certbot-dns-porkbun',
|
||||||
package_version: '0.2',
|
version_requirement: '~=0.2',
|
||||||
dependencies: '',
|
dependencies: '',
|
||||||
credentials: `dns_porkbun_key=your-porkbun-api-key
|
credentials: `dns_porkbun_key=your-porkbun-api-key
|
||||||
dns_porkbun_secret=your-porkbun-api-secret`,
|
dns_porkbun_secret=your-porkbun-api-secret`,
|
||||||
full_plugin_name: 'dns-porkbun',
|
full_plugin_name: 'dns-porkbun',
|
||||||
},
|
},
|
||||||
//####################################################//
|
//####################################################//
|
||||||
powerdns: {
|
powerdns: {
|
||||||
display_name: 'PowerDNS',
|
display_name: 'PowerDNS',
|
||||||
package_name: 'certbot-dns-powerdns',
|
package_name: 'certbot-dns-powerdns',
|
||||||
package_version: '0.2.0',
|
version_requirement: '~=0.2.0',
|
||||||
dependencies: '',
|
dependencies: '',
|
||||||
credentials: `certbot_dns_powerdns:dns_powerdns_api_url = https://api.mypowerdns.example.org
|
credentials: `dns_powerdns_api_url = https://api.mypowerdns.example.org
|
||||||
certbot_dns_powerdns:dns_powerdns_api_key = AbCbASsd!@34`,
|
dns_powerdns_api_key = AbCbASsd!@34`,
|
||||||
full_plugin_name: 'certbot-dns-powerdns:dns-powerdns',
|
full_plugin_name: 'dns-powerdns',
|
||||||
},
|
},
|
||||||
//####################################################//
|
//####################################################//
|
||||||
regru: {
|
regru: {
|
||||||
display_name: 'reg.ru',
|
display_name: 'reg.ru',
|
||||||
package_name: 'certbot-regru',
|
package_name: 'certbot-regru',
|
||||||
package_version: '1.0.2',
|
version_requirement: '~=1.0.2',
|
||||||
dependencies: '',
|
dependencies: '',
|
||||||
credentials: `certbot_regru:dns_username=username
|
credentials: `certbot_regru:dns_username=username
|
||||||
certbot_regru:dns_password=password`,
|
certbot_regru:dns_password=password`,
|
||||||
full_plugin_name: 'certbot-regru:dns',
|
full_plugin_name: 'certbot-regru:dns',
|
||||||
},
|
},
|
||||||
//####################################################//
|
//####################################################//
|
||||||
rfc2136: {
|
rfc2136: {
|
||||||
display_name: 'RFC 2136',
|
display_name: 'RFC 2136',
|
||||||
package_name: 'certbot-dns-rfc2136',
|
package_name: 'certbot-dns-rfc2136',
|
||||||
package_version: '1.8.0',
|
// version_requirement: '', // Official plugin, no version requirement
|
||||||
dependencies: '',
|
dependencies: '',
|
||||||
credentials: `# Target DNS server
|
credentials: `# Target DNS server
|
||||||
dns_rfc2136_server = 192.0.2.1
|
dns_rfc2136_server = 192.0.2.1
|
||||||
# Target DNS port
|
# Target DNS port
|
||||||
dns_rfc2136_port = 53
|
dns_rfc2136_port = 53
|
||||||
@ -424,42 +452,43 @@ dns_rfc2136_algorithm = HMAC-SHA512`,
|
|||||||
},
|
},
|
||||||
//####################################################//
|
//####################################################//
|
||||||
route53: {
|
route53: {
|
||||||
display_name: 'Route 53 (Amazon)',
|
display_name: 'Route 53 (Amazon)',
|
||||||
package_name: 'certbot-dns-route53',
|
package_name: 'certbot-dns-route53',
|
||||||
package_version: '1.8.0',
|
// version_requirement: '', // Official plugin, no version requirement
|
||||||
dependencies: '',
|
dependencies: '',
|
||||||
credentials: `[default]
|
credentials: `[default]
|
||||||
aws_access_key_id=AKIAIOSFODNN7EXAMPLE
|
aws_access_key_id=AKIAIOSFODNN7EXAMPLE
|
||||||
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY`,
|
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY`,
|
||||||
full_plugin_name: 'dns-route53',
|
full_plugin_name: 'dns-route53',
|
||||||
},
|
},
|
||||||
//####################################################//
|
//####################################################//
|
||||||
transip: {
|
transip: {
|
||||||
display_name: 'TransIP',
|
display_name: 'TransIP',
|
||||||
package_name: 'certbot-dns-transip',
|
package_name: 'certbot-dns-transip',
|
||||||
package_version: '0.3.3',
|
version_requirement: '~=0.3.3',
|
||||||
dependencies: '',
|
dependencies: '',
|
||||||
credentials: `certbot_dns_transip:dns_transip_username = my_username
|
credentials: `dns_transip_username = my_username
|
||||||
certbot_dns_transip:dns_transip_key_file = /etc/letsencrypt/transip-rsa.key`,
|
dns_transip_key_file = /etc/letsencrypt/transip-rsa.key`,
|
||||||
full_plugin_name: 'certbot-dns-transip:dns-transip',
|
full_plugin_name: 'dns-transip',
|
||||||
},
|
},
|
||||||
//####################################################//
|
//####################################################//
|
||||||
vultr: {
|
vultr: {
|
||||||
display_name: 'Vultr',
|
display_name: 'Vultr',
|
||||||
package_name: 'certbot-dns-vultr',
|
package_name: 'certbot-dns-vultr',
|
||||||
package_version: '1.0.3',
|
version_requirement: '~=1.0.3',
|
||||||
dependencies: '',
|
dependencies: '',
|
||||||
credentials: 'certbot_dns_vultr:dns_vultr_key = YOUR_VULTR_API_KEY',
|
credentials: 'dns_vultr_key = YOUR_VULTR_API_KEY',
|
||||||
full_plugin_name: 'certbot-dns-vultr:dns-vultr',
|
full_plugin_name: 'dns-vultr',
|
||||||
},
|
},
|
||||||
//####################################################//
|
//####################################################//
|
||||||
desec: {
|
websupportsk: {
|
||||||
display_name: 'deSEC',
|
display_name: 'Websupport.sk',
|
||||||
package_name: 'certbot-dns-desec',
|
package_name: 'certbot-dns-websupportsk',
|
||||||
package_version: '0.3.0',
|
version_requirement: '~=0.1.6',
|
||||||
dependencies: '',
|
dependencies: '',
|
||||||
credentials: `certbot_dns_desec:dns_desec_token = YOUR_DESEC_API_TOKEN
|
credentials: `dns_websupportsk_api_key = <api_key>
|
||||||
certbot_dns_desec:dns_desec_endpoint = https://desec.io/api/v1/`,
|
dns_websupportsk_secret = <secret>
|
||||||
full_plugin_name: 'certbot-dns-desec:dns-desec',
|
dns_websupportsk_domain = example.com`,
|
||||||
|
full_plugin_name: 'dns-websupportsk',
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user