Skip to content
Merged

v2.9.8 #1348

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
389fd15
allows hostname instead of ip for streams
BjoernAkAManf Apr 23, 2021
7aa078e
Bump prismjs from 1.23.0 to 1.24.0 in /docs
dependabot[bot] Jun 28, 2021
a5b8087
Bump normalize-url from 4.5.0 to 4.5.1 in /backend
dependabot[bot] Jun 29, 2021
e895baa
Add deSEC DNS provider
FMeinicke Aug 8, 2021
b0dc68d
Merge pull request #1300 from FMeinicke/develop
jc21 Aug 9, 2021
3fc3e43
Bump path-parse from 1.0.6 to 1.0.7 in /frontend
dependabot[bot] Aug 12, 2021
053701a
Bump path-parse from 1.0.6 to 1.0.7 in /backend
dependabot[bot] Aug 12, 2021
14c1251
Bump path-parse from 1.0.6 to 1.0.7 in /docs
dependabot[bot] Aug 12, 2021
ba7bb57
Incorporate feedback
BjoernAkAManf Aug 13, 2021
3e4e10e
Merge pull request #1310 from jc21/dependabot/npm_and_yarn/docs/path-…
jc21 Aug 16, 2021
c94e937
Merge pull request #1308 from jc21/dependabot/npm_and_yarn/frontend/p…
jc21 Aug 16, 2021
5c9acc2
Merge pull request #1309 from jc21/dependabot/npm_and_yarn/backend/pa…
jc21 Aug 16, 2021
fe3675d
Merge pull request #1210 from jc21/dependabot/npm_and_yarn/backend/no…
jc21 Aug 16, 2021
9a89a8a
Merge pull request #1209 from jc21/dependabot/npm_and_yarn/docs/prism…
jc21 Aug 16, 2021
a6e1553
Bump url-parse from 1.5.0 to 1.5.2 in /docs
dependabot[bot] Aug 16, 2021
0bb9450
Merge pull request #1323 from jc21/dependabot/npm_and_yarn/docs/url-p…
jc21 Aug 16, 2021
ab40e4e
Merge pull request #1036 from BjoernAkAManf/master
jc21 Aug 16, 2021
62eb3fc
Updated docker base image location
jc21 Aug 17, 2021
4f10d12
Reload nginx after access list change. Fixes #1328
jc21 Aug 18, 2021
3203159
remove dummy cert references to Nginx Proxy Manager
bmbvenom Aug 22, 2021
6a6c2ef
Remove healthchecks and mention how to optin to them in docs
jc21 Aug 22, 2021
daa7176
Merge pull request #1338 from bmbvenom/patch-1
jc21 Aug 22, 2021
5e9ff4d
Add healthcheck back for ci containers
jc21 Aug 22, 2021
5c67908
Bump version, added contributors
jc21 Aug 23, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.9.7
2.9.8
17 changes: 15 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -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.9.7-green.svg?style=for-the-badge">
<img src="https://img.shields.io/badge/version-2.9.8-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>
Expand All @@ -17,7 +17,6 @@
<a href="https://reddit.com/r/nginxproxymanager">
<img alt="Reddit" src="https://img.shields.io/reddit/subreddit-subscribers/nginxproxymanager?label=Reddit%20Community&style=for-the-badge">
</a>

</p>

This project comes as a pre-built docker image that enables you to easily forward to your websites
Expand Down Expand Up @@ -470,6 +469,20 @@ Special thanks to the following contributors:
<br /><sub><b>gabbe</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/bmbvenom">
<img src="https://avatars.githubusercontent.com/u/20530371?v=4" width="80" alt=""/>
<br /><sub><b>bmbvenom</b></sub>
</a>
</td>
</tr>
<tr>
<td align="center">
<a href="https://github.com/FMeinicke">
<img src="https://avatars.githubusercontent.com/u/42121639?v=4" width="80" alt=""/>
<br /><sub><b>Florian Meinicke</b></sub>
</a>
</td>
</tr>
</table>
<!-- markdownlint-enable -->
Expand Down
2 changes: 1 addition & 1 deletion backend/internal/access-list.js
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,6 @@ const internalAccessList = {
// Sanity check that something crazy hasn't happened
throw new error.InternalValidationError('Access List could not be updated, IDs do not match: ' + row.id + ' !== ' + data.id);
}

})
.then(() => {
// patch name if specified
Expand Down Expand Up @@ -205,6 +204,7 @@ const internalAccessList = {
});
}
})
.then(internalNginx.reload)
.then(() => {
// Add to audit log
return internalAuditLog.add(access, {
Expand Down
40 changes: 40 additions & 0 deletions backend/migrations/20210423103500_stream_domain.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
const migrate_name = 'stream_domain';
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('stream', (table) => {
table.renameColumn('forward_ip', 'forwarding_host');
})
.then(function () {
logger.info('[' + migrate_name + '] stream Table altered');
});
};

/**
* Undo Migrate
*
* @param {Object} knex
* @param {Promise} Promise
* @returns {Promise}
*/
exports.down = function (knex/*, Promise*/) {
logger.info('[' + migrate_name + '] Migrating Down...');

return knex.schema.table('stream', (table) => {
table.renameColumn('forwarding_host', 'forward_ip');
})
.then(function () {
logger.info('[' + migrate_name + '] stream Table altered');
});
};
31 changes: 21 additions & 10 deletions backend/schema/endpoints/streams.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,20 @@
"minimum": 1,
"maximum": 65535
},
"forward_ip": {
"type": "string",
"format": "ipv4"
"forwarding_host": {
"oneOf": [
{
"$ref": "../definitions.json#/definitions/domain_name"
},
{
"type": "string",
"format": "ipv4"
},
{
"type": "string",
"format": "ipv6"
}
]
},
"forwarding_port": {
"type": "integer",
Expand Down Expand Up @@ -55,8 +66,8 @@
"incoming_port": {
"$ref": "#/definitions/incoming_port"
},
"forward_ip": {
"$ref": "#/definitions/forward_ip"
"forwarding_host": {
"$ref": "#/definitions/forwarding_host"
},
"forwarding_port": {
"$ref": "#/definitions/forwarding_port"
Expand Down Expand Up @@ -107,15 +118,15 @@
"additionalProperties": false,
"required": [
"incoming_port",
"forward_ip",
"forwarding_host",
"forwarding_port"
],
"properties": {
"incoming_port": {
"$ref": "#/definitions/incoming_port"
},
"forward_ip": {
"$ref": "#/definitions/forward_ip"
"forwarding_host": {
"$ref": "#/definitions/forwarding_host"
},
"forwarding_port": {
"$ref": "#/definitions/forwarding_port"
Expand Down Expand Up @@ -154,8 +165,8 @@
"incoming_port": {
"$ref": "#/definitions/incoming_port"
},
"forward_ip": {
"$ref": "#/definitions/forward_ip"
"forwarding_host": {
"$ref": "#/definitions/forwarding_host"
},
"forwarding_port": {
"$ref": "#/definitions/forwarding_port"
Expand Down
4 changes: 2 additions & 2 deletions backend/templates/stream.conf
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ server {
#listen [::]:{{ incoming_port }};
{% endif %}

proxy_pass {{ forward_ip }}:{{ forwarding_port }};
proxy_pass {{ forwarding_host }}:{{ forwarding_port }};

# Custom
include /data/nginx/custom/server_stream[.]conf;
Expand All @@ -27,7 +27,7 @@ server {
{% else -%}
#listen [::]:{{ incoming_port }} udp;
{% endif %}
proxy_pass {{ forward_ip }}:{{ forwarding_port }};
proxy_pass {{ forwarding_host }}:{{ forwarding_port }};

# Custom
include /data/nginx/custom/server_stream[.]conf;
Expand Down
12 changes: 6 additions & 6 deletions backend/yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -2340,9 +2340,9 @@ normalize-path@^3.0.0, normalize-path@~3.0.0:
integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==

normalize-url@^4.1.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129"
integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==
version "4.5.1"
resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a"
integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==

npm-bundled@^1.0.1:
version "1.1.1"
Expand Down Expand Up @@ -2608,9 +2608,9 @@ path-key@^2.0.1:
integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=

path-parse@^1.0.6:
version "1.0.6"
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==
version "1.0.7"
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==

path-root-regex@^0.1.0:
version "0.1.2"
Expand Down
14 changes: 14 additions & 0 deletions docker/.dive-ci
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
rules:
# If the efficiency is measured below X%, mark as failed.
# Expressed as a ratio between 0-1.
lowestEfficiency: 0.99

# If the amount of wasted space is at least X or larger than X, mark as failed.
# Expressed in B, KB, MB, and GB.
highestWastedBytes: 15MB

# If the amount of wasted space makes up for X% or more of the image, mark as failed.
# Note: the base image layer is NOT included in the total image size.
# Expressed as a ratio between 0-1; fails if the threshold is met or crossed.
highestUserWastedPercent: 0.02

3 changes: 1 addition & 2 deletions docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

# This file assumes that the frontend has been built using ./scripts/frontend-build

FROM jc21/nginx-full:node
FROM nginxproxymanager/nginx-full:node

ARG TARGETPLATFORM
ARG BUILD_VERSION
Expand Down Expand Up @@ -48,7 +48,6 @@ RUN chmod 644 /etc/logrotate.d/nginx-proxy-manager

VOLUME [ "/data", "/etc/letsencrypt" ]
ENTRYPOINT [ "/init" ]
HEALTHCHECK --interval=5s --timeout=3s CMD /bin/check-health

LABEL org.label-schema.schema-version="1.0" \
org.label-schema.license="MIT" \
Expand Down
4 changes: 2 additions & 2 deletions docker/dev/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM jc21/nginx-full:node
FROM nginxproxymanager/nginx-full:node
LABEL maintainer="Jamie Curnow <jc@jc21.com>"

ENV S6_LOGGING=0 \
Expand Down Expand Up @@ -26,4 +26,4 @@ RUN curl -L -o /tmp/s6-overlay-amd64.tar.gz "https://github.com/just-containers/

EXPOSE 80 81 443
ENTRYPOINT [ "/init" ]
HEALTHCHECK --interval=5s --timeout=3s CMD /bin/check-health

8 changes: 8 additions & 0 deletions docker/docker-compose.ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,10 @@ services:
- 443
depends_on:
- db
healthcheck:
test: ["CMD", "/bin/check-health"]
interval: 10s
timeout: 3s

fullstack-sqlite:
image: ${IMAGE}:ci-${BUILD_NUMBER}
Expand All @@ -33,6 +37,10 @@ services:
- 81
- 80
- 443
healthcheck:
test: ["CMD", "/bin/check-health"]
interval: 10s
timeout: 3s

db:
image: jc21/mariadb-aria
Expand Down
1 change: 1 addition & 0 deletions docker/rootfs/etc/services.d/frontend/run
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

if [ "$DEVELOPMENT" == "true" ]; then
cd /app/frontend || exit 1
# If yarn install fails: add --verbose --network-concurrency 1
yarn install
yarn watch
else
Expand Down
1 change: 1 addition & 0 deletions docker/rootfs/etc/services.d/manager/run
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ cd /app || echo

if [ "$DEVELOPMENT" == "true" ]; then
cd /app || exit 1
# If yarn install fails: add --verbose --network-concurrency 1
yarn install
node --max_old_space_size=250 --abort_on_uncaught_exception node_modules/nodemon/bin/nodemon.js
else
Expand Down
2 changes: 1 addition & 1 deletion docker/rootfs/etc/services.d/nginx/run
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ then
-days 3650 \
-nodes \
-x509 \
-subj '/O=Nginx Proxy Manager/OU=Dummy Certificate/CN=localhost' \
-subj '/O=localhost/OU=localhost/CN=localhost' \
-keyout /data/nginx/dummykey.pem \
-out /data/nginx/dummycert.pem
echo "Complete"
Expand Down
12 changes: 12 additions & 0 deletions docs/advanced-config/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,18 @@ file, it's "exposed" by the portainer docker image for you and not available on
the docker host outside of this docker network. The service name is used as the
hostname, so make sure your service names are unique when using the same network.

## Docker Healthcheck

The `Dockerfile` that builds this project does not include a `HEALTCHECK` but you can opt in to this
feature by adding the following to the service in your `docker-compose.yml` file:

```yml
healthcheck:
test: ["CMD", "/bin/check-health"]
interval: 10s
timeout: 3s
```

## Docker Secrets

This image supports the use of Docker secrets to import from file and keep sensitive usernames or passwords from being passed or preserved in plaintext.
Expand Down
22 changes: 10 additions & 12 deletions docs/yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -2560,7 +2560,7 @@ cli-boxes@^2.2.0:
resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.0.tgz#538ecae8f9c6ca508e3c3c95b453fe93cb4c168d"
integrity sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w==

clipboard@^2.0.0, clipboard@^2.0.6:
clipboard@^2.0.6:
version "2.0.6"
resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.6.tgz#52921296eec0fdf77ead1749421b21c968647376"
integrity sha512-g5zbiixBRk/wyKakSwCKd7vQXDjFnAMGHoEyBogG/bw9kTD9GvdAvaoRR1ALcEzt3pVKxZR0pViekPMIS0QyGg==
Expand Down Expand Up @@ -7173,9 +7173,9 @@ path-key@^3.0.0, path-key@^3.1.0, path-key@^3.1.1:
integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==

path-parse@^1.0.6:
version "1.0.6"
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==
version "1.0.7"
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==

path-to-regexp@0.1.7:
version "0.1.7"
Expand Down Expand Up @@ -7699,11 +7699,9 @@ pretty-time@^1.1.0:
integrity sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==

prismjs@^1.13.0, prismjs@^1.20.0:
version "1.23.0"
resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.23.0.tgz#d3b3967f7d72440690497652a9d40ff046067f33"
integrity sha512-c29LVsqOaLbBHuIbsTxaKENh1N2EQBOHaWv7gkHN4dgRbxSREqDnDbtFJYdpPauS4YCplMSNCABQ6Eeor69bAA==
optionalDependencies:
clipboard "^2.0.0"
version "1.24.0"
resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.24.0.tgz#0409c30068a6c52c89ef7f1089b3ca4de56be2ac"
integrity sha512-SqV5GRsNqnzCL8k5dfAjCNhUrF3pR0A9lTDSCUZeh/LIshheXJEaP0hwLz2t4XHivd2J/v2HR+gRnigzeKe3cQ==

private@^0.1.8:
version "0.1.8"
Expand Down Expand Up @@ -9652,9 +9650,9 @@ url-parse-lax@^3.0.0:
prepend-http "^2.0.0"

url-parse@^1.4.3, url-parse@^1.4.7:
version "1.5.0"
resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.0.tgz#90aba6c902aeb2d80eac17b91131c27665d5d828"
integrity sha512-9iT6N4s93SMfzunOyDPe4vo4nLcSu1yq0IQK1gURmjm8tQNlM6loiuCRrKG1hHGXfB2EWd6H4cGi7tGdaygMFw==
version "1.5.2"
resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.2.tgz#a4eff6fd5ff9fe6ab98ac1f79641819d13247cda"
integrity sha512-6bTUPERy1muxxYClbzoRo5qtQuyoGEbzbQvi0SW4/8U8UyVkAQhWFBlnigqJkRm4su4x1zDQfNbEzWkt+vchcg==
dependencies:
querystringify "^2.1.1"
requires-port "^1.0.0"
Expand Down
4 changes: 2 additions & 2 deletions frontend/js/app/nginx/stream/form.ejs
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@
</div>
<div class="col-sm-8 col-md-8">
<div class="form-group">
<label class="form-label"><%- i18n('streams', 'forward-ip') %><span class="form-required">*</span></label>
<input type="text" name="forward_ip" class="form-control text-monospace" placeholder="000.000.000.000" value="<%- forward_ip %>" autocomplete="off" maxlength="15" required>
<label class="form-label"><%- i18n('streams', 'forwarding-host') %><span class="form-required">*</span></label>
<input type="text" name="forwarding_host" class="form-control text-monospace" placeholder="example.com or 10.0.0.1 or 2001:db8:3333:4444:5555:6666:7777:8888" value="<%- forwarding_host %>" autocomplete="off" maxlength="255" required>
</div>
</div>
<div class="col-sm-4 col-md-4">
Expand Down
Loading