Skip to content

Commit fbea8df

Browse files
authored
Merge pull request #4825 from NginxProxyManager/develop
v2.13.0
2 parents 356eaa0 + 8c37348 commit fbea8df

File tree

662 files changed

+25688
-26210
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

662 files changed

+25688
-26210
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
.DS_Store
22
.idea
3+
.qodo
34
._*
45
.vscode
56
certbot-help.txt

.version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.12.6
1+
2.13.0

Jenkinsfile

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -119,13 +119,13 @@ pipeline {
119119
always {
120120
// Dumps to analyze later
121121
sh 'mkdir -p debug/sqlite'
122-
sh 'docker logs $(docker-compose ps --all -q fullstack) > debug/sqlite/docker_fullstack.log 2>&1'
123-
sh 'docker logs $(docker-compose ps --all -q stepca) > debug/sqlite/docker_stepca.log 2>&1'
124-
sh 'docker logs $(docker-compose ps --all -q pdns) > debug/sqlite/docker_pdns.log 2>&1'
125-
sh 'docker logs $(docker-compose ps --all -q pdns-db) > debug/sqlite/docker_pdns-db.log 2>&1'
126-
sh 'docker logs $(docker-compose ps --all -q dnsrouter) > debug/sqlite/docker_dnsrouter.log 2>&1'
122+
sh 'docker logs $(docker compose ps --all -q fullstack) > debug/sqlite/docker_fullstack.log 2>&1'
123+
sh 'docker logs $(docker compose ps --all -q stepca) > debug/sqlite/docker_stepca.log 2>&1'
124+
sh 'docker logs $(docker compose ps --all -q pdns) > debug/sqlite/docker_pdns.log 2>&1'
125+
sh 'docker logs $(docker compose ps --all -q pdns-db) > debug/sqlite/docker_pdns-db.log 2>&1'
126+
sh 'docker logs $(docker compose ps --all -q dnsrouter) > debug/sqlite/docker_dnsrouter.log 2>&1'
127127
junit 'test/results/junit/*'
128-
sh 'docker-compose down --remove-orphans --volumes -t 30 || true'
128+
sh 'docker compose down --remove-orphans --volumes -t 30 || true'
129129
}
130130
unstable {
131131
dir(path: 'test/results') {
@@ -152,13 +152,13 @@ pipeline {
152152
always {
153153
// Dumps to analyze later
154154
sh 'mkdir -p debug/mysql'
155-
sh 'docker logs $(docker-compose ps --all -q fullstack) > debug/mysql/docker_fullstack.log 2>&1'
156-
sh 'docker logs $(docker-compose ps --all -q stepca) > debug/mysql/docker_stepca.log 2>&1'
157-
sh 'docker logs $(docker-compose ps --all -q pdns) > debug/mysql/docker_pdns.log 2>&1'
158-
sh 'docker logs $(docker-compose ps --all -q pdns-db) > debug/mysql/docker_pdns-db.log 2>&1'
159-
sh 'docker logs $(docker-compose ps --all -q dnsrouter) > debug/mysql/docker_dnsrouter.log 2>&1'
155+
sh 'docker logs $(docker compose ps --all -q fullstack) > debug/mysql/docker_fullstack.log 2>&1'
156+
sh 'docker logs $(docker compose ps --all -q stepca) > debug/mysql/docker_stepca.log 2>&1'
157+
sh 'docker logs $(docker compose ps --all -q pdns) > debug/mysql/docker_pdns.log 2>&1'
158+
sh 'docker logs $(docker compose ps --all -q pdns-db) > debug/mysql/docker_pdns-db.log 2>&1'
159+
sh 'docker logs $(docker compose ps --all -q dnsrouter) > debug/mysql/docker_dnsrouter.log 2>&1'
160160
junit 'test/results/junit/*'
161-
sh 'docker-compose down --remove-orphans --volumes -t 30 || true'
161+
sh 'docker compose down --remove-orphans --volumes -t 30 || true'
162162
}
163163
unstable {
164164
dir(path: 'test/results') {
@@ -185,18 +185,18 @@ pipeline {
185185
always {
186186
// Dumps to analyze later
187187
sh 'mkdir -p debug/postgres'
188-
sh 'docker logs $(docker-compose ps --all -q fullstack) > debug/postgres/docker_fullstack.log 2>&1'
189-
sh 'docker logs $(docker-compose ps --all -q stepca) > debug/postgres/docker_stepca.log 2>&1'
190-
sh 'docker logs $(docker-compose ps --all -q pdns) > debug/postgres/docker_pdns.log 2>&1'
191-
sh 'docker logs $(docker-compose ps --all -q pdns-db) > debug/postgres/docker_pdns-db.log 2>&1'
192-
sh 'docker logs $(docker-compose ps --all -q dnsrouter) > debug/postgres/docker_dnsrouter.log 2>&1'
193-
sh 'docker logs $(docker-compose ps --all -q db-postgres) > debug/postgres/docker_db-postgres.log 2>&1'
194-
sh 'docker logs $(docker-compose ps --all -q authentik) > debug/postgres/docker_authentik.log 2>&1'
195-
sh 'docker logs $(docker-compose ps --all -q authentik-redis) > debug/postgres/docker_authentik-redis.log 2>&1'
196-
sh 'docker logs $(docker-compose ps --all -q authentik-ldap) > debug/postgres/docker_authentik-ldap.log 2>&1'
188+
sh 'docker logs $(docker compose ps --all -q fullstack) > debug/postgres/docker_fullstack.log 2>&1'
189+
sh 'docker logs $(docker compose ps --all -q stepca) > debug/postgres/docker_stepca.log 2>&1'
190+
sh 'docker logs $(docker compose ps --all -q pdns) > debug/postgres/docker_pdns.log 2>&1'
191+
sh 'docker logs $(docker compose ps --all -q pdns-db) > debug/postgres/docker_pdns-db.log 2>&1'
192+
sh 'docker logs $(docker compose ps --all -q dnsrouter) > debug/postgres/docker_dnsrouter.log 2>&1'
193+
sh 'docker logs $(docker compose ps --all -q db-postgres) > debug/postgres/docker_db-postgres.log 2>&1'
194+
sh 'docker logs $(docker compose ps --all -q authentik) > debug/postgres/docker_authentik.log 2>&1'
195+
sh 'docker logs $(docker compose ps --all -q authentik-redis) > debug/postgres/docker_authentik-redis.log 2>&1'
196+
sh 'docker logs $(docke rcompose ps --all -q authentik-ldap) > debug/postgres/docker_authentik-ldap.log 2>&1'
197197

198198
junit 'test/results/junit/*'
199-
sh 'docker-compose down --remove-orphans --volumes -t 30 || true'
199+
sh 'docker compose down --remove-orphans --volumes -t 30 || true'
200200
}
201201
unstable {
202202
dir(path: 'test/results') {

README.md

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<p align="center">
22
<img src="https://nginxproxymanager.com/github.png">
33
<br><br>
4-
<img src="https://img.shields.io/badge/version-2.12.6-green.svg?style=for-the-badge">
4+
<img src="https://img.shields.io/badge/version-2.13.0-green.svg?style=for-the-badge">
55
<a href="https://hub.docker.com/repository/docker/jc21/nginx-proxy-manager">
66
<img src="https://img.shields.io/docker/stars/jc21/nginx-proxy-manager.svg?style=for-the-badge">
77
</a>
@@ -74,11 +74,7 @@ This is the bare minimum configuration required. See the [documentation](https:/
7474
3. Bring up your stack by running
7575
7676
```bash
77-
docker-compose up -d
78-
79-
# If using docker-compose-plugin
8077
docker compose up -d
81-
8278
```
8379

8480
4. Log in to the Admin UI
@@ -88,14 +84,6 @@ Sometimes this can take a little bit because of the entropy of keys.
8884

8985
[http://127.0.0.1:81](http://127.0.0.1:81)
9086

91-
Default Admin User:
92-
```
93-
Email: admin@example.com
94-
Password: changeme
95-
```
96-
97-
Immediately after logging in with this default user you will be asked to modify your details and change your password.
98-
9987

10088
## Contributing
10189

backend/.eslintrc.json

Lines changed: 0 additions & 73 deletions
This file was deleted.

backend/.prettierrc

Lines changed: 0 additions & 11 deletions
This file was deleted.

backend/app.js

Lines changed: 45 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,20 @@
1-
const express = require('express');
2-
const bodyParser = require('body-parser');
3-
const fileUpload = require('express-fileupload');
4-
const compression = require('compression');
5-
const config = require('./lib/config');
6-
const log = require('./logger').express;
1+
import bodyParser from "body-parser";
2+
import compression from "compression";
3+
import express from "express";
4+
import fileUpload from "express-fileupload";
5+
import { isDebugMode } from "./lib/config.js";
6+
import cors from "./lib/express/cors.js";
7+
import jwt from "./lib/express/jwt.js";
8+
import { debug, express as logger } from "./logger.js";
9+
import mainRoutes from "./routes/main.js";
710

811
/**
912
* App
1013
*/
1114
const app = express();
1215
app.use(fileUpload());
1316
app.use(bodyParser.json());
14-
app.use(bodyParser.urlencoded({extended: true}));
17+
app.use(bodyParser.urlencoded({ extended: true }));
1518

1619
// Gzip
1720
app.use(compression());
@@ -20,71 +23,70 @@ app.use(compression());
2023
* General Logging, BEFORE routes
2124
*/
2225

23-
app.disable('x-powered-by');
24-
app.enable('trust proxy', ['loopback', 'linklocal', 'uniquelocal']);
25-
app.enable('strict routing');
26+
app.disable("x-powered-by");
27+
app.enable("trust proxy", ["loopback", "linklocal", "uniquelocal"]);
28+
app.enable("strict routing");
2629

2730
// pretty print JSON when not live
28-
if (config.debug()) {
29-
app.set('json spaces', 2);
31+
if (isDebugMode()) {
32+
app.set("json spaces", 2);
3033
}
3134

3235
// CORS for everything
33-
app.use(require('./lib/express/cors'));
36+
app.use(cors);
3437

3538
// General security/cache related headers + server header
36-
app.use(function (req, res, next) {
37-
let x_frame_options = 'DENY';
39+
app.use((_, res, next) => {
40+
let x_frame_options = "DENY";
3841

39-
if (typeof process.env.X_FRAME_OPTIONS !== 'undefined' && process.env.X_FRAME_OPTIONS) {
42+
if (typeof process.env.X_FRAME_OPTIONS !== "undefined" && process.env.X_FRAME_OPTIONS) {
4043
x_frame_options = process.env.X_FRAME_OPTIONS;
4144
}
4245

4346
res.set({
44-
'X-XSS-Protection': '1; mode=block',
45-
'X-Content-Type-Options': 'nosniff',
46-
'X-Frame-Options': x_frame_options,
47-
'Cache-Control': 'no-cache, no-store, max-age=0, must-revalidate',
48-
Pragma: 'no-cache',
49-
Expires: 0
47+
"X-XSS-Protection": "1; mode=block",
48+
"X-Content-Type-Options": "nosniff",
49+
"X-Frame-Options": x_frame_options,
50+
"Cache-Control": "no-cache, no-store, max-age=0, must-revalidate",
51+
Pragma: "no-cache",
52+
Expires: 0,
5053
});
5154
next();
5255
});
5356

54-
app.use(require('./lib/express/jwt')());
55-
app.use('/', require('./routes/main'));
57+
app.use(jwt());
58+
app.use("/", mainRoutes);
5659

5760
// production error handler
5861
// no stacktraces leaked to user
59-
// eslint-disable-next-line
60-
app.use(function (err, req, res, next) {
61-
62-
let payload = {
62+
app.use((err, req, res, _) => {
63+
const payload = {
6364
error: {
64-
code: err.status,
65-
message: err.public ? err.message : 'Internal Error'
66-
}
65+
code: err.status,
66+
message: err.public ? err.message : "Internal Error",
67+
},
6768
};
6869

69-
if (config.debug() || (req.baseUrl + req.path).includes('nginx/certificates')) {
70+
if (typeof err.message_i18n !== "undefined") {
71+
payload.error.message_i18n = err.message_i18n;
72+
}
73+
74+
if (isDebugMode() || (req.baseUrl + req.path).includes("nginx/certificates")) {
7075
payload.debug = {
71-
stack: typeof err.stack !== 'undefined' && err.stack ? err.stack.split('\n') : null,
72-
previous: err.previous
76+
stack: typeof err.stack !== "undefined" && err.stack ? err.stack.split("\n") : null,
77+
previous: err.previous,
7378
};
7479
}
7580

7681
// Not every error is worth logging - but this is good for now until it gets annoying.
77-
if (typeof err.stack !== 'undefined' && err.stack) {
78-
if (config.debug()) {
79-
log.debug(err.stack);
80-
} else if (typeof err.public == 'undefined' || !err.public) {
81-
log.warn(err.message);
82+
if (typeof err.stack !== "undefined" && err.stack) {
83+
debug(logger, err.stack);
84+
if (typeof err.public === "undefined" || !err.public) {
85+
logger.warn(err.message);
8286
}
8387
}
8488

85-
res
86-
.status(err.status || 500)
87-
.send(payload);
89+
res.status(err.status || 500).send(payload);
8890
});
8991

90-
module.exports = app;
92+
export default app;

0 commit comments

Comments
 (0)