mirror of
https://github.com/NginxProxyManager/nginx-proxy-manager.git
synced 2025-06-15 00:44:27 +00:00
Compare commits
22 Commits
9d68c6353c
...
4a9b9b1058
Author | SHA1 | Date | |
---|---|---|---|
|
4a9b9b1058 | ||
|
79d28f03d0 | ||
|
c4df89df1f | ||
|
34c703f8b4 | ||
|
0a05d8f0ad | ||
|
0a9141fad5 | ||
|
42836774b7 | ||
|
2a07544f58 | ||
|
dc9d884743 | ||
|
df48b835c4 | ||
|
8a1557154a | ||
|
a6af5ec2c7 | ||
|
14d7c35fd7 | ||
|
cfcf78aaee | ||
|
c05f9695d0 | ||
|
6343b398f0 | ||
|
59362b7477 | ||
|
b4f49969d6 | ||
|
5d087f1256 | ||
|
1e322804ce | ||
|
5084cb7296 | ||
|
e677bfa2e8 |
@ -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.12.2-green.svg?style=for-the-badge">
|
<img src="https://img.shields.io/badge/version-2.12.3-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>
|
||||||
|
@ -508,8 +508,13 @@ const internalAccessList = {
|
|||||||
if (typeof item.password !== 'undefined' && item.password.length) {
|
if (typeof item.password !== 'undefined' && item.password.length) {
|
||||||
logger.info('Adding: ' + item.username);
|
logger.info('Adding: ' + item.username);
|
||||||
|
|
||||||
utils.execFile('/usr/bin/htpasswd', ['-b', htpasswd_file, item.username, item.password])
|
utils.execFile('openssl', ['passwd', '-apr1', item.password])
|
||||||
.then((/*result*/) => {
|
.then((res) => {
|
||||||
|
try {
|
||||||
|
fs.appendFileSync(htpasswd_file, item.username + ':' + res + '\n', {encoding: 'utf8'});
|
||||||
|
} catch (err) {
|
||||||
|
reject(err);
|
||||||
|
}
|
||||||
next();
|
next();
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
|
@ -12,7 +12,11 @@ Model.knex(db);
|
|||||||
|
|
||||||
const boolFields = [
|
const boolFields = [
|
||||||
'is_deleted',
|
'is_deleted',
|
||||||
|
'ssl_forced',
|
||||||
|
'http2_support',
|
||||||
'enabled',
|
'enabled',
|
||||||
|
'hsts_enabled',
|
||||||
|
'hsts_subdomains',
|
||||||
];
|
];
|
||||||
|
|
||||||
class DeadHost extends Model {
|
class DeadHost extends Model {
|
||||||
|
@ -8,8 +8,8 @@ const now = require('./now_helper');
|
|||||||
Model.knex(db);
|
Model.knex(db);
|
||||||
|
|
||||||
const boolFields = [
|
const boolFields = [
|
||||||
'enabled',
|
|
||||||
'is_deleted',
|
'is_deleted',
|
||||||
|
'enabled',
|
||||||
'tcp_forwarding',
|
'tcp_forwarding',
|
||||||
'udp_forwarding',
|
'udp_forwarding',
|
||||||
];
|
];
|
||||||
|
@ -22,8 +22,7 @@
|
|||||||
"enabled",
|
"enabled",
|
||||||
"locations",
|
"locations",
|
||||||
"hsts_enabled",
|
"hsts_enabled",
|
||||||
"hsts_subdomains",
|
"hsts_subdomains"
|
||||||
"certificate"
|
|
||||||
],
|
],
|
||||||
"additionalProperties": false,
|
"additionalProperties": false,
|
||||||
"properties": {
|
"properties": {
|
||||||
|
@ -9,6 +9,15 @@
|
|||||||
"url": "http://127.0.0.1:81/api"
|
"url": "http://127.0.0.1:81/api"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
"components": {
|
||||||
|
"securitySchemes": {
|
||||||
|
"bearerAuth": {
|
||||||
|
"type": "http",
|
||||||
|
"scheme": "bearer",
|
||||||
|
"bearerFormat": "JWT"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"paths": {
|
"paths": {
|
||||||
"/": {
|
"/": {
|
||||||
"get": {
|
"get": {
|
||||||
|
@ -26,7 +26,7 @@ module.exports = {
|
|||||||
* Users
|
* Users
|
||||||
*/
|
*/
|
||||||
showUsers: function () {
|
showUsers: function () {
|
||||||
let controller = this;
|
const controller = this;
|
||||||
if (Cache.User.isAdmin()) {
|
if (Cache.User.isAdmin()) {
|
||||||
require(['./main', './users/main'], (App, View) => {
|
require(['./main', './users/main'], (App, View) => {
|
||||||
controller.navigate('/users');
|
controller.navigate('/users');
|
||||||
@ -93,8 +93,7 @@ module.exports = {
|
|||||||
* Dashboard
|
* Dashboard
|
||||||
*/
|
*/
|
||||||
showDashboard: function () {
|
showDashboard: function () {
|
||||||
let controller = this;
|
const controller = this;
|
||||||
|
|
||||||
require(['./main', './dashboard/main'], (App, View) => {
|
require(['./main', './dashboard/main'], (App, View) => {
|
||||||
controller.navigate('/');
|
controller.navigate('/');
|
||||||
App.UI.showAppContent(new View());
|
App.UI.showAppContent(new View());
|
||||||
@ -106,7 +105,7 @@ module.exports = {
|
|||||||
*/
|
*/
|
||||||
showNginxProxy: function () {
|
showNginxProxy: function () {
|
||||||
if (Cache.User.isAdmin() || Cache.User.canView('proxy_hosts')) {
|
if (Cache.User.isAdmin() || Cache.User.canView('proxy_hosts')) {
|
||||||
let controller = this;
|
const controller = this;
|
||||||
|
|
||||||
require(['./main', './nginx/proxy/main'], (App, View) => {
|
require(['./main', './nginx/proxy/main'], (App, View) => {
|
||||||
controller.navigate('/nginx/proxy');
|
controller.navigate('/nginx/proxy');
|
||||||
@ -146,8 +145,7 @@ module.exports = {
|
|||||||
*/
|
*/
|
||||||
showNginxRedirection: function () {
|
showNginxRedirection: function () {
|
||||||
if (Cache.User.isAdmin() || Cache.User.canView('redirection_hosts')) {
|
if (Cache.User.isAdmin() || Cache.User.canView('redirection_hosts')) {
|
||||||
let controller = this;
|
const controller = this;
|
||||||
|
|
||||||
require(['./main', './nginx/redirection/main'], (App, View) => {
|
require(['./main', './nginx/redirection/main'], (App, View) => {
|
||||||
controller.navigate('/nginx/redirection');
|
controller.navigate('/nginx/redirection');
|
||||||
App.UI.showAppContent(new View());
|
App.UI.showAppContent(new View());
|
||||||
@ -186,8 +184,7 @@ module.exports = {
|
|||||||
*/
|
*/
|
||||||
showNginxStream: function () {
|
showNginxStream: function () {
|
||||||
if (Cache.User.isAdmin() || Cache.User.canView('streams')) {
|
if (Cache.User.isAdmin() || Cache.User.canView('streams')) {
|
||||||
let controller = this;
|
const controller = this;
|
||||||
|
|
||||||
require(['./main', './nginx/stream/main'], (App, View) => {
|
require(['./main', './nginx/stream/main'], (App, View) => {
|
||||||
controller.navigate('/nginx/stream');
|
controller.navigate('/nginx/stream');
|
||||||
App.UI.showAppContent(new View());
|
App.UI.showAppContent(new View());
|
||||||
@ -226,8 +223,7 @@ module.exports = {
|
|||||||
*/
|
*/
|
||||||
showNginxDead: function () {
|
showNginxDead: function () {
|
||||||
if (Cache.User.isAdmin() || Cache.User.canView('dead_hosts')) {
|
if (Cache.User.isAdmin() || Cache.User.canView('dead_hosts')) {
|
||||||
let controller = this;
|
const controller = this;
|
||||||
|
|
||||||
require(['./main', './nginx/dead/main'], (App, View) => {
|
require(['./main', './nginx/dead/main'], (App, View) => {
|
||||||
controller.navigate('/nginx/404');
|
controller.navigate('/nginx/404');
|
||||||
App.UI.showAppContent(new View());
|
App.UI.showAppContent(new View());
|
||||||
@ -278,8 +274,7 @@ module.exports = {
|
|||||||
*/
|
*/
|
||||||
showNginxAccess: function () {
|
showNginxAccess: function () {
|
||||||
if (Cache.User.isAdmin() || Cache.User.canView('access_lists')) {
|
if (Cache.User.isAdmin() || Cache.User.canView('access_lists')) {
|
||||||
let controller = this;
|
const controller = this;
|
||||||
|
|
||||||
require(['./main', './nginx/access/main'], (App, View) => {
|
require(['./main', './nginx/access/main'], (App, View) => {
|
||||||
controller.navigate('/nginx/access');
|
controller.navigate('/nginx/access');
|
||||||
App.UI.showAppContent(new View());
|
App.UI.showAppContent(new View());
|
||||||
@ -318,8 +313,7 @@ module.exports = {
|
|||||||
*/
|
*/
|
||||||
showNginxCertificates: function () {
|
showNginxCertificates: function () {
|
||||||
if (Cache.User.isAdmin() || Cache.User.canView('certificates')) {
|
if (Cache.User.isAdmin() || Cache.User.canView('certificates')) {
|
||||||
let controller = this;
|
const controller = this;
|
||||||
|
|
||||||
require(['./main', './nginx/certificates/main'], (App, View) => {
|
require(['./main', './nginx/certificates/main'], (App, View) => {
|
||||||
controller.navigate('/nginx/certificates');
|
controller.navigate('/nginx/certificates');
|
||||||
App.UI.showAppContent(new View());
|
App.UI.showAppContent(new View());
|
||||||
@ -383,7 +377,7 @@ module.exports = {
|
|||||||
* Audit Log
|
* Audit Log
|
||||||
*/
|
*/
|
||||||
showAuditLog: function () {
|
showAuditLog: function () {
|
||||||
let controller = this;
|
const controller = this;
|
||||||
if (Cache.User.isAdmin()) {
|
if (Cache.User.isAdmin()) {
|
||||||
require(['./main', './audit-log/main'], (App, View) => {
|
require(['./main', './audit-log/main'], (App, View) => {
|
||||||
controller.navigate('/audit-log');
|
controller.navigate('/audit-log');
|
||||||
@ -411,7 +405,7 @@ module.exports = {
|
|||||||
* Settings
|
* Settings
|
||||||
*/
|
*/
|
||||||
showSettings: function () {
|
showSettings: function () {
|
||||||
let controller = this;
|
const controller = this;
|
||||||
if (Cache.User.isAdmin()) {
|
if (Cache.User.isAdmin()) {
|
||||||
require(['./main', './settings/main'], (App, View) => {
|
require(['./main', './settings/main'], (App, View) => {
|
||||||
controller.navigate('/settings');
|
controller.navigate('/settings');
|
||||||
|
@ -24,7 +24,7 @@ module.exports = Mn.View.extend({
|
|||||||
},
|
},
|
||||||
|
|
||||||
templateContext: function () {
|
templateContext: function () {
|
||||||
let view = this;
|
const view = this;
|
||||||
|
|
||||||
return {
|
return {
|
||||||
getUserName: function () {
|
getUserName: function () {
|
||||||
@ -48,8 +48,8 @@ module.exports = Mn.View.extend({
|
|||||||
},
|
},
|
||||||
|
|
||||||
onRender: function () {
|
onRender: function () {
|
||||||
let view = this;
|
const view = this;
|
||||||
|
if (typeof view.stats.hosts === 'undefined') {
|
||||||
Api.Reports.getHostStats()
|
Api.Reports.getHostStats()
|
||||||
.then(response => {
|
.then(response => {
|
||||||
if (!view.isDestroyed()) {
|
if (!view.isDestroyed()) {
|
||||||
@ -60,6 +60,7 @@ module.exports = Mn.View.extend({
|
|||||||
.catch(err => {
|
.catch(err => {
|
||||||
console.log(err);
|
console.log(err);
|
||||||
});
|
});
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -70,8 +71,7 @@ module.exports = Mn.View.extend({
|
|||||||
|
|
||||||
// calculate the available columns based on permissions for the objects
|
// calculate the available columns based on permissions for the objects
|
||||||
// and store as a variable
|
// and store as a variable
|
||||||
//let view = this;
|
const perms = ['proxy_hosts', 'redirection_hosts', 'streams', 'dead_hosts'];
|
||||||
let perms = ['proxy_hosts', 'redirection_hosts', 'streams', 'dead_hosts'];
|
|
||||||
|
|
||||||
perms.map(perm => {
|
perms.map(perm => {
|
||||||
this.columns += Cache.User.isAdmin() || Cache.User.canView(perm) ? 1 : 0;
|
this.columns += Cache.User.isAdmin() || Cache.User.canView(perm) ? 1 : 0;
|
||||||
|
@ -161,11 +161,11 @@
|
|||||||
},
|
},
|
||||||
"domainoffensive": {
|
"domainoffensive": {
|
||||||
"name": "DomainOffensive (do.de)",
|
"name": "DomainOffensive (do.de)",
|
||||||
"package_name": "certbot-dns-do",
|
"package_name": "certbot-dns-domainoffensive",
|
||||||
"version": "~=0.31.0",
|
"version": "~=2.0.0",
|
||||||
"dependencies": "",
|
"dependencies": "",
|
||||||
"credentials": "dns_do_api_token = YOUR_DO_DE_AUTH_TOKEN",
|
"credentials": "dns_do_api_token = YOUR_DO_DE_AUTH_TOKEN",
|
||||||
"full_plugin_name": "dns-do"
|
"full_plugin_name": "dns-domainoffensive"
|
||||||
},
|
},
|
||||||
"domeneshop": {
|
"domeneshop": {
|
||||||
"name": "Domeneshop",
|
"name": "Domeneshop",
|
||||||
@ -534,5 +534,13 @@
|
|||||||
"dependencies": "",
|
"dependencies": "",
|
||||||
"credentials": "edgedns_client_secret = as3d1asd5d1a32sdfsdfs2d1asd5=\nedgedns_host = sdflskjdf-dfsdfsdf-sdfsdfsdf.luna.akamaiapis.net\nedgedns_access_token = kjdsi3-34rfsdfsdf-234234fsdfsdf\nedgedns_client_token = dkfjdf-342fsdfsd-23fsdfsdfsdf",
|
"credentials": "edgedns_client_secret = as3d1asd5d1a32sdfsdfs2d1asd5=\nedgedns_host = sdflskjdf-dfsdfsdf-sdfsdfsdf.luna.akamaiapis.net\nedgedns_access_token = kjdsi3-34rfsdfsdf-234234fsdfsdf\nedgedns_client_token = dkfjdf-342fsdfsd-23fsdfsdfsdf",
|
||||||
"full_plugin_name": "edgedns"
|
"full_plugin_name": "edgedns"
|
||||||
|
},
|
||||||
|
"zoneedit": {
|
||||||
|
"name": "ZoneEdit",
|
||||||
|
"package_name": "certbot-dns-zoneedit",
|
||||||
|
"version": "~=0.3.2",
|
||||||
|
"dependencies": "--no-deps dnspython",
|
||||||
|
"credentials": "dns_zoneedit_user = <login-user-id>\ndns_zoneedit_token = <dyn-authentication-token>",
|
||||||
|
"full_plugin_name": "dns-zoneedit"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user