Skip to content

Commit b7402d4

Browse files
authored
Merge branch 'NginxProxyManager:develop' into develop
2 parents 21f63e3 + f09876d commit b7402d4

17 files changed

Lines changed: 847 additions & 150 deletions

backend/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,12 @@
1212
"validate-schema": "node validate-schema.js"
1313
},
1414
"dependencies": {
15-
"@apidevtools/json-schema-ref-parser": "^11.7.0",
15+
"@apidevtools/json-schema-ref-parser": "^14.1.1",
1616
"ajv": "^8.17.1",
1717
"archiver": "^7.0.1",
1818
"batchflow": "^0.4.0",
1919
"bcrypt": "^6.0.0",
20-
"body-parser": "^1.20.3",
20+
"body-parser": "^2.2.2",
2121
"compression": "^1.7.4",
2222
"express": "^5.2.1",
2323
"express-fileupload": "^1.5.2",

backend/yarn.lock

Lines changed: 10 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,11 @@
1010
"@types/json-schema" "^7.0.15"
1111
js-yaml "^4.1.0"
1212

13-
"@apidevtools/json-schema-ref-parser@^11.7.0":
14-
version "11.9.3"
15-
resolved "https://registry.yarnpkg.com/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.9.3.tgz#0e0c9061fc41cf03737d499a4e6a8299fdd2bfa7"
16-
integrity sha512-60vepv88RwcJtSHrD6MjIL6Ta3SOYbgfnkHb+ppAVK+o9mXprRtulx7VlRl3lN3bbvysAfCS7WMVfhUYemB0IQ==
13+
"@apidevtools/json-schema-ref-parser@^14.1.1":
14+
version "14.1.1"
15+
resolved "https://registry.yarnpkg.com/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-14.1.1.tgz#0bae59809b7848c7a89dc6bb2f3bb980b7c290b1"
16+
integrity sha512-uGF1YGOzzD50L7HLNWclXmsEhQflw8/zZHIz0/AzkJrKL5r9PceUipZxR/cp/8veTk4TVfdDJLyIwXLjaP5ePg==
1717
dependencies:
18-
"@jsdevtools/ono" "^7.1.3"
1918
"@types/json-schema" "^7.0.15"
2019
js-yaml "^4.1.0"
2120

@@ -112,11 +111,6 @@
112111
wrap-ansi "^8.1.0"
113112
wrap-ansi-cjs "npm:wrap-ansi@^7.0.0"
114113

115-
"@jsdevtools/ono@^7.1.3":
116-
version "7.1.3"
117-
resolved "https://registry.yarnpkg.com/@jsdevtools/ono/-/ono-7.1.3.tgz#9df03bbd7c696a5c58885c34aa06da41c8543796"
118-
integrity sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==
119-
120114
"@npmcli/fs@^1.0.0":
121115
version "1.1.1"
122116
resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-1.1.1.tgz#72f719fe935e687c56a4faecf3c03d06ba593257"
@@ -429,25 +423,7 @@ blueimp-md5@^2.16.0:
429423
resolved "https://registry.yarnpkg.com/blueimp-md5/-/blueimp-md5-2.19.0.tgz#b53feea5498dcb53dc6ec4b823adb84b729c4af0"
430424
integrity sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==
431425

432-
body-parser@^1.20.3:
433-
version "1.20.4"
434-
resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.4.tgz#f8e20f4d06ca8a50a71ed329c15dccad1cdc547f"
435-
integrity sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA==
436-
dependencies:
437-
bytes "~3.1.2"
438-
content-type "~1.0.5"
439-
debug "2.6.9"
440-
depd "2.0.0"
441-
destroy "~1.2.0"
442-
http-errors "~2.0.1"
443-
iconv-lite "~0.4.24"
444-
on-finished "~2.4.1"
445-
qs "~6.14.0"
446-
raw-body "~2.5.3"
447-
type-is "~1.6.18"
448-
unpipe "~1.0.0"
449-
450-
body-parser@^2.2.1:
426+
body-parser@^2.2.1, body-parser@^2.2.2:
451427
version "2.2.2"
452428
resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-2.2.2.tgz#1a32cdb966beaf68de50a9dfbe5b58f83cb8890c"
453429
integrity sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==
@@ -710,7 +686,7 @@ content-disposition@^1.0.0:
710686
resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-1.0.1.tgz#a8b7bbeb2904befdfb6787e5c0c086959f605f9b"
711687
integrity sha512-oIXISMynqSqm241k6kcQ5UwttDILMK4BiurCfGEREw6+X9jkkpEe5T9FZaApyLGGOnFuyMWZpdolTXMtvEJ08Q==
712688

713-
content-type@^1.0.5, content-type@~1.0.5:
689+
content-type@^1.0.5:
714690
version "1.0.5"
715691
resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918"
716692
integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==
@@ -819,16 +795,11 @@ denque@^2.1.0:
819795
resolved "https://registry.yarnpkg.com/denque/-/denque-2.1.0.tgz#e93e1a6569fb5e66f16a3c2a2964617d349d6ab1"
820796
integrity sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==
821797

822-
depd@2.0.0, depd@^2.0.0, depd@~2.0.0:
798+
depd@^2.0.0, depd@~2.0.0:
823799
version "2.0.0"
824800
resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df"
825801
integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==
826802

827-
destroy@~1.2.0:
828-
version "1.2.0"
829-
resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015"
830-
integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==
831-
832803
detect-libc@^2.0.0:
833804
version "2.0.4"
834805
resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.4.tgz#f04715b8ba815e53b4d8109655b6508a6865a7e8"
@@ -1365,13 +1336,6 @@ iconv-lite@^0.7.0, iconv-lite@^0.7.2, iconv-lite@~0.7.0:
13651336
dependencies:
13661337
safer-buffer ">= 2.1.2 < 3.0.0"
13671338

1368-
iconv-lite@~0.4.24:
1369-
version "0.4.24"
1370-
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
1371-
integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
1372-
dependencies:
1373-
safer-buffer ">= 2.1.2 < 3"
1374-
13751339
ieee754@^1.1.13, ieee754@^1.2.1:
13761340
version "1.2.1"
13771341
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
@@ -1725,11 +1689,6 @@ math-intrinsics@^1.1.0:
17251689
resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9"
17261690
integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==
17271691

1728-
media-typer@0.3.0:
1729-
version "0.3.0"
1730-
resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
1731-
integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==
1732-
17331692
media-typer@^1.1.0:
17341693
version "1.1.0"
17351694
resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-1.1.0.tgz#6ab74b8f2d3320f2064b2a87a38e7931ff3a5561"
@@ -1740,11 +1699,6 @@ merge-descriptors@^2.0.0:
17401699
resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-2.0.0.tgz#ea922f660635a2249ee565e0449f951e6b603808"
17411700
integrity sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==
17421701

1743-
mime-db@1.52.0:
1744-
version "1.52.0"
1745-
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
1746-
integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
1747-
17481702
"mime-db@>= 1.43.0 < 2", mime-db@^1.54.0:
17491703
version "1.54.0"
17501704
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.54.0.tgz#cddb3ee4f9c64530dff640236661d42cb6a314f5"
@@ -1757,13 +1711,6 @@ mime-types@^3.0.0, mime-types@^3.0.2:
17571711
dependencies:
17581712
mime-db "^1.54.0"
17591713

1760-
mime-types@~2.1.24:
1761-
version "2.1.35"
1762-
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
1763-
integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
1764-
dependencies:
1765-
mime-db "1.52.0"
1766-
17671714
mimic-response@^3.1.0:
17681715
version "3.1.0"
17691716
resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9"
@@ -2028,7 +1975,7 @@ objection@3.1.5:
20281975
ajv-formats "^2.1.1"
20291976
db-errors "^0.2.3"
20301977

2031-
on-finished@^2.4.1, on-finished@~2.4.1:
1978+
on-finished@^2.4.1:
20321979
version "2.4.1"
20331980
resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f"
20341981
integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==
@@ -2369,7 +2316,7 @@ pump@^3.0.0:
23692316
end-of-stream "^1.1.0"
23702317
once "^1.3.1"
23712318

2372-
qs@^6.14.0, qs@^6.14.1, qs@~6.14.0:
2319+
qs@^6.14.0, qs@^6.14.1:
23732320
version "6.14.1"
23742321
resolved "https://registry.yarnpkg.com/qs/-/qs-6.14.1.tgz#a41d85b9d3902f31d27861790506294881871159"
23752322
integrity sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==
@@ -2396,16 +2343,6 @@ raw-body@^3.0.1:
23962343
iconv-lite "~0.7.0"
23972344
unpipe "~1.0.0"
23982345

2399-
raw-body@~2.5.3:
2400-
version "2.5.3"
2401-
resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.3.tgz#11c6650ee770a7de1b494f197927de0c923822e2"
2402-
integrity sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==
2403-
dependencies:
2404-
bytes "~3.1.2"
2405-
http-errors "~2.0.1"
2406-
iconv-lite "~0.4.24"
2407-
unpipe "~1.0.0"
2408-
24092346
rc@^1.2.7:
24102347
version "1.2.8"
24112348
resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
@@ -2532,7 +2469,7 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1:
25322469
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
25332470
integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
25342471

2535-
"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@~2.1.0:
2472+
"safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@~2.1.0:
25362473
version "2.1.2"
25372474
resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
25382475
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
@@ -2967,14 +2904,6 @@ type-is@^2.0.1:
29672904
media-typer "^1.1.0"
29682905
mime-types "^3.0.0"
29692906

2970-
type-is@~1.6.18:
2971-
version "1.6.18"
2972-
resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
2973-
integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==
2974-
dependencies:
2975-
media-typer "0.3.0"
2976-
mime-types "~2.1.24"
2977-
29782907
undefsafe@^2.0.5:
29792908
version "2.0.5"
29802909
resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.5.tgz#38733b9327bdcd226db889fb723a6efd162e6e2c"

frontend/check-locales.cjs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
const allLocales = [
1010
["en", "en-US"],
1111
["de", "de-DE"],
12+
["pt", "pt-PT"],
1213
["es", "es-ES"],
1314
["fr", "fr-FR"],
1415
["it", "it-IT"],

frontend/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
"react": "^19.2.4",
3333
"react-bootstrap": "^2.10.10",
3434
"react-dom": "^19.2.4",
35-
"react-intl": "^7.1.14",
35+
"react-intl": "^8.1.2",
3636
"react-markdown": "^10.1.0",
3737
"react-router-dom": "^7.13.0",
3838
"react-select": "^5.10.2",

frontend/src/locale/IntlProvider.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { createIntl, createIntlCache } from "react-intl";
22
import langBg from "./lang/bg.json";
33
import langDe from "./lang/de.json";
4+
import langPt from "./lang/pt.json";
45
import langEn from "./lang/en.json";
56
import langEs from "./lang/es.json";
67
import langFr from "./lang/fr.json";
@@ -26,6 +27,7 @@ const localeOptions = [
2627
["en", "en-US", langEn],
2728
["de", "de-DE", langDe],
2829
["es", "es-ES", langEs],
30+
["pt", "pt-PT", langPt],
2931
["fr", "fr-FR", langFr],
3032
["ga", "ga-IE", langGa],
3133
["ja", "ja-JP", langJa],

frontend/src/locale/src/HelpDoc/index.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import * as bg from "./bg/index";
22
import * as de from "./de/index";
3+
import * as pt from "./pt/index";
34
import * as en from "./en/index";
45
import * as es from "./es/index";
56
import * as fr from "./fr/index";
@@ -17,7 +18,8 @@ import * as zh from "./zh/index";
1718
import * as tr from "./tr/index";
1819
import * as hu from "./hu/index";
1920

20-
const items: any = { en, de, es, ja, sk, zh, pl, ru, it, vi, nl, bg, ko, ga, id, fr, tr, hu };
21+
const items: any = { en, de, pt, es, ja, sk, zh, pl, ru, it, vi, nl, bg, ko, ga, id, fr, tr, hu };
22+
2123

2224
const fallbackLang = "en";
2325

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
## O que é uma Access List?
2+
3+
As *Access Lists* fornecem uma lista de permissões (whitelist) ou bloqueios (blacklist)
4+
de endereços IP específicos de clientes, juntamente com autenticação para os *Proxy Hosts*
5+
via Autenticação HTTP Básica (*Basic Auth*).
6+
7+
Podes configurar múltiplas regras de cliente, nomes de utilizador e palavras-passe
8+
para uma única *Access List*, e depois aplicá-la a um ou mais *Proxy Hosts*.
9+
10+
Isto é especialmente útil para serviços web encaminhados que não têm mecanismos
11+
de autenticação integrados ou quando pretendes proteger o acesso contra clientes desconhecidos.
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
## Ajuda de Certificados
2+
3+
### Certificado HTTP
4+
5+
Um certificado validado por HTTP significa que os servidores do Let's Encrypt irão
6+
tentar aceder aos teus domínios via HTTP (não HTTPS!) e, se a ligação for bem-sucedida,
7+
emitirão o certificado.
8+
9+
Para este método, é necessário ter um *Proxy Host* criado para o(s) teu(s) domínio(s),
10+
acessível via HTTP e a apontar para esta instalação do Nginx. Depois de o certificado ser
11+
emitido, podes modificar o *Proxy Host* para também utilizar esse certificado em ligações HTTPS.
12+
No entanto, o *Proxy Host* deve continuar configurado para acesso HTTP para que a renovação
13+
funcione corretamente.
14+
15+
Este processo **não** suporta domínios wildcard.
16+
17+
### Certificado DNS
18+
19+
Um certificado validado por DNS requer que uses um plugin de fornecedor DNS (*DNS Provider*).
20+
Este fornecedor será usado para criar registos temporários no teu domínio, que serão consultados
21+
pelo Let's Encrypt para confirmar que és o proprietário. Se tudo correr bem, o certificado será emitido.
22+
23+
Não é necessário ter um *Proxy Host* criado antes de pedir este tipo de certificado.
24+
Também não é necessário que o *Proxy Host* tenha acesso HTTP configurado.
25+
26+
Este processo **suporta** domínios wildcard.
27+
28+
### Certificado Personalizado
29+
30+
Usa esta opção para carregar o teu próprio Certificado SSL, fornecido pela
31+
tua Autoridade Certificadora.
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
## O que é um 404 Host?
2+
3+
Um *404 Host* é simplesmente um host configurado para apresentar uma página 404.
4+
5+
Isto pode ser útil quando o teu domínio aparece em motores de busca e queres fornecer
6+
uma página de erro mais agradável ou indicar especificamente aos indexadores de pesquisa
7+
que as páginas desse domínio já não existem.
8+
9+
Outra vantagem é permitir consultar os registos de acessos a este host e ver os referenciadores.
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
## O que é um Proxy Host?
2+
3+
Um *Proxy Host* é o ponto de entrada para um serviço web que pretendes encaminhar.
4+
5+
Permite, opcionalmente, fazer terminação SSL para um serviço que possa não ter suporte SSL nativo.
6+
7+
Os *Proxy Hosts* são a utilização mais comum do Nginx Proxy Manager.

0 commit comments

Comments
 (0)