Compare commits

...

16 Commits

Author SHA1 Message Date
Sergey Kolesnik
0a4df97937
Merge 299bc0854c1a71a411eaf93d724bd8186ead50ed into c4df89df1f11ef8cb26ab375d161f6c82e72d401 2025-02-06 11:02:02 +01:00
Jamie Curnow
c4df89df1f
Fix dashboard loading loop and freezing the page 2025-02-06 13:38:47 +10:00
jc21
34c703f8b4
Merge branch 'master' into develop 2025-02-06 08:52:55 +10:00
Jamie Curnow
0a05d8f0ad
Bump version 2025-02-06 08:39:03 +10:00
jc21
0a9141fad5
Merge pull request #4208 from badkeyy/feature/add-zone-edit-certbot-plugin
Add ZoneEdit certbot plugin
2025-02-06 08:33:11 +10:00
jc21
42836774b7
Merge branch 'develop' into feature/add-zone-edit-certbot-plugin 2025-02-06 08:33:01 +10:00
Julian Gassner
c05f9695d0
Merge branch 'develop' into feature/add-zone-edit-certbot-plugin 2025-01-15 15:37:53 +01:00
Julian Gassner
6343b398f0 Add --no-deps 2025-01-15 14:36:38 +00:00
jc21
b4f49969d6
Merge pull request #4261 from NginxProxyManager/develop
v2.12.2
2024-12-29 14:40:05 +10:00
Sergey Kolesnik
299bc0854c
Merge branch 'NginxProxyManager:develop' into develop 2024-12-24 10:34:32 -05:00
Sergey Kolesnik
75dbbebf8d
Merge branch 'NginxProxyManager:develop' into develop 2024-12-23 19:18:09 -05:00
Sergey 'dreik' Kolesnik
f6abe27a8a eslint 2024-12-09 03:49:03 +03:00
Sergey 'dreik' Kolesnik
d8ca38cb26 client_max_body_size setting 2024-12-09 03:17:48 +03:00
Julian Gassner
1e322804ce Add ZoneEdit certbot plugin 2024-12-04 16:47:36 +01:00
jc21
5084cb7296
Merge pull request #4077 from NginxProxyManager/develop
v2.12.1
2024-10-17 09:49:07 +10:00
jc21
e677bfa2e8
Merge pull request #4073 from NginxProxyManager/develop
v2.12.0
2024-10-16 15:41:55 +10:00
17 changed files with 542 additions and 476 deletions

View File

@ -1 +1 @@
2.12.2
2.12.3

View File

@ -1,7 +1,7 @@
<p align="center">
<img src="https://nginxproxymanager.com/github.png">
<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">
<img src="https://img.shields.io/docker/stars/jc21/nginx-proxy-manager.svg?style=for-the-badge">
</a>

View File

@ -0,0 +1,34 @@
const migrate_name = 'client_max_body_size';
const logger = require('../logger').migrate;
/**
* Migrate
*
* @see http://knexjs.org/#Schema
*
* @param {Object} knex
* @param {Promise} Promise
* @returns {Promise}
*/
exports.up = function (knex/*, Promise*/) {
logger.info('[' + migrate_name + '] Migrating Up...');
return knex.schema.table('proxy_host', function (proxy_host) {
proxy_host.integer('client_max_body_size').notNull().unsigned().defaultTo('1');
})
.then(() => {
logger.info('[' + migrate_name + '] proxy_host Table altered');
});
};
/**
* Undo Migrate
*
* @param {Object} knex
* @param {Promise} Promise
* @returns {Promise}
*/
exports.down = function (knex, Promise) {
logger.warn('[' + migrate_name + '] You can\'t migrate down this one.');
return Promise.resolve(true);
};

View File

@ -9,6 +9,7 @@
"domain_names",
"forward_host",
"forward_port",
"client_max_body_size",
"access_list_id",
"certificate_id",
"ssl_forced",
@ -52,6 +53,11 @@
"minimum": 1,
"maximum": 65535
},
"client_max_body_size": {
"type": "integer",
"minimum": 1,
"maximum": 4096
},
"access_list_id": {
"$ref": "../common.json#/properties/access_list_id"
},
@ -112,6 +118,9 @@
"forward_port": {
"$ref": "#/properties/forward_port"
},
"client_max_body_size": {
"$ref": "#/properties/client_max_body_size"
},
"forward_path": {
"type": "string"
},

View File

@ -34,6 +34,7 @@
"domain_names": ["test.example.com"],
"forward_host": "127.0.0.1",
"forward_port": 8989,
"client_max_body_size": 1,
"access_list_id": 0,
"certificate_id": 0,
"ssl_forced": false,

View File

@ -34,6 +34,7 @@
"domain_names": ["test.example.com"],
"forward_host": "192.168.0.10",
"forward_port": 8989,
"client_max_body_size": 1,
"access_list_id": 0,
"certificate_id": 0,
"ssl_forced": false,

View File

@ -41,6 +41,9 @@
"forward_port": {
"$ref": "../../../../components/proxy-host-object.json#/properties/forward_port"
},
"client_max_body_size": {
"$ref": "../../../../components/proxy-host-object.json#/properties/client_max_body_size"
},
"certificate_id": {
"$ref": "../../../../components/proxy-host-object.json#/properties/certificate_id"
},
@ -100,6 +103,7 @@
"domain_names": ["test.example.com"],
"forward_host": "192.168.0.10",
"forward_port": 8989,
"client_max_body_size": 1,
"access_list_id": 0,
"certificate_id": 0,
"ssl_forced": false,

View File

@ -29,6 +29,9 @@
"forward_port": {
"$ref": "../../../components/proxy-host-object.json#/properties/forward_port"
},
"client_max_body_size": {
"$ref": "../../../components/proxy-host-object.json#/properties/client_max_body_size"
},
"certificate_id": {
"$ref": "../../../components/proxy-host-object.json#/properties/certificate_id"
},
@ -88,6 +91,7 @@
"domain_names": ["test.example.com"],
"forward_host": "127.0.0.1",
"forward_port": 8989,
"client_max_body_size": 1,
"access_list_id": 0,
"certificate_id": 0,
"ssl_forced": false,

View File

@ -47,6 +47,8 @@ proxy_http_version 1.1;
}
{% endif %}
client_max_body_size {{ client_max_body_size }}m;
# Custom
include /data/nginx/custom/server_proxy[.]conf;
}

View File

@ -26,7 +26,7 @@ module.exports = {
* Users
*/
showUsers: function () {
let controller = this;
const controller = this;
if (Cache.User.isAdmin()) {
require(['./main', './users/main'], (App, View) => {
controller.navigate('/users');
@ -93,8 +93,7 @@ module.exports = {
* Dashboard
*/
showDashboard: function () {
let controller = this;
const controller = this;
require(['./main', './dashboard/main'], (App, View) => {
controller.navigate('/');
App.UI.showAppContent(new View());
@ -106,7 +105,7 @@ module.exports = {
*/
showNginxProxy: function () {
if (Cache.User.isAdmin() || Cache.User.canView('proxy_hosts')) {
let controller = this;
const controller = this;
require(['./main', './nginx/proxy/main'], (App, View) => {
controller.navigate('/nginx/proxy');
@ -146,8 +145,7 @@ module.exports = {
*/
showNginxRedirection: function () {
if (Cache.User.isAdmin() || Cache.User.canView('redirection_hosts')) {
let controller = this;
const controller = this;
require(['./main', './nginx/redirection/main'], (App, View) => {
controller.navigate('/nginx/redirection');
App.UI.showAppContent(new View());
@ -186,8 +184,7 @@ module.exports = {
*/
showNginxStream: function () {
if (Cache.User.isAdmin() || Cache.User.canView('streams')) {
let controller = this;
const controller = this;
require(['./main', './nginx/stream/main'], (App, View) => {
controller.navigate('/nginx/stream');
App.UI.showAppContent(new View());
@ -226,8 +223,7 @@ module.exports = {
*/
showNginxDead: function () {
if (Cache.User.isAdmin() || Cache.User.canView('dead_hosts')) {
let controller = this;
const controller = this;
require(['./main', './nginx/dead/main'], (App, View) => {
controller.navigate('/nginx/404');
App.UI.showAppContent(new View());
@ -278,8 +274,7 @@ module.exports = {
*/
showNginxAccess: function () {
if (Cache.User.isAdmin() || Cache.User.canView('access_lists')) {
let controller = this;
const controller = this;
require(['./main', './nginx/access/main'], (App, View) => {
controller.navigate('/nginx/access');
App.UI.showAppContent(new View());
@ -318,8 +313,7 @@ module.exports = {
*/
showNginxCertificates: function () {
if (Cache.User.isAdmin() || Cache.User.canView('certificates')) {
let controller = this;
const controller = this;
require(['./main', './nginx/certificates/main'], (App, View) => {
controller.navigate('/nginx/certificates');
App.UI.showAppContent(new View());
@ -383,7 +377,7 @@ module.exports = {
* Audit Log
*/
showAuditLog: function () {
let controller = this;
const controller = this;
if (Cache.User.isAdmin()) {
require(['./main', './audit-log/main'], (App, View) => {
controller.navigate('/audit-log');
@ -411,7 +405,7 @@ module.exports = {
* Settings
*/
showSettings: function () {
let controller = this;
const controller = this;
if (Cache.User.isAdmin()) {
require(['./main', './settings/main'], (App, View) => {
controller.navigate('/settings');

View File

@ -24,7 +24,7 @@ module.exports = Mn.View.extend({
},
templateContext: function () {
let view = this;
const view = this;
return {
getUserName: function () {
@ -48,8 +48,8 @@ module.exports = Mn.View.extend({
},
onRender: function () {
let view = this;
const view = this;
if (typeof view.stats.hosts === 'undefined') {
Api.Reports.getHostStats()
.then(response => {
if (!view.isDestroyed()) {
@ -60,6 +60,7 @@ module.exports = Mn.View.extend({
.catch(err => {
console.log(err);
});
}
},
/**
@ -70,8 +71,7 @@ module.exports = Mn.View.extend({
// calculate the available columns based on permissions for the objects
// and store as a variable
//let view = this;
let perms = ['proxy_hosts', 'redirection_hosts', 'streams', 'dead_hosts'];
const perms = ['proxy_hosts', 'redirection_hosts', 'streams', 'dead_hosts'];
perms.map(perm => {
this.columns += Cache.User.isAdmin() || Cache.User.canView(perm) ? 1 : 0;

View File

@ -81,7 +81,12 @@
</label>
</div>
</div>
<div class="col-sm-12 col-md-12">
<div class="form-group">
<label class="form-label"><%- i18n('proxy-hosts', 'client-max-body-size' ) %></label>
<input name="client_max_body_size" type="number" class="form-control text-monospace" placeholder="1" value="<%- client_max_body_size %>" required>
</div>
</div>
<div class="col-sm-12 col-md-12">
<div class="form-group">
<label class="form-label"><%- i18n('proxy-hosts', 'access-list') %></label>

View File

@ -160,6 +160,7 @@ module.exports = Mn.View.extend({
// Manipulate
data.forward_port = parseInt(data.forward_port, 10);
data.client_max_body_size = parseInt(data.client_max_body_size, 10);
data.block_exploits = !!data.block_exploits;
data.caching_enabled = !!data.caching_enabled;
data.allow_websocket_upgrade = !!data.allow_websocket_upgrade;

View File

@ -125,6 +125,7 @@
"forward-scheme": "Scheme",
"forward-host": "Forward Hostname / IP",
"forward-port": "Forward Port",
"client-max-body-size": "Max proxied upload size (Mb)",
"delete": "Delete Proxy Host",
"delete-confirm": "Are you sure you want to delete the Proxy host for: <strong>{domains}</strong>?",
"help-title": "What is a Proxy Host?",

View File

@ -12,6 +12,7 @@ const model = Backbone.Model.extend({
forward_scheme: 'http',
forward_host: '',
forward_port: null,
client_max_body_size: 1,
access_list_id: 0,
certificate_id: 0,
ssl_forced: false,

View File

@ -534,5 +534,13 @@
"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",
"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"
}
}

View File

@ -18,6 +18,7 @@ describe('Proxy Hosts endpoints', () => {
forward_scheme: 'http',
forward_host: '1.1.1.1',
forward_port: 80,
client_max_body_size: 1,
access_list_id: '0',
certificate_id: 0,
meta: {