Skip to content

Commit ab40e4e

Browse files
authored
Merge pull request NginxProxyManager#1036 from BjoernAkAManf/master
Allows hostname instead of ip for streams
2 parents 0bb9450 + ba7bb57 commit ab40e4e

File tree

10 files changed

+71
-25
lines changed

10 files changed

+71
-25
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
const migrate_name = 'stream_domain';
2+
const logger = require('../logger').migrate;
3+
4+
/**
5+
* Migrate
6+
*
7+
* @see http://knexjs.org/#Schema
8+
*
9+
* @param {Object} knex
10+
* @param {Promise} Promise
11+
* @returns {Promise}
12+
*/
13+
exports.up = function (knex/*, Promise*/) {
14+
logger.info('[' + migrate_name + '] Migrating Up...');
15+
16+
return knex.schema.table('stream', (table) => {
17+
table.renameColumn('forward_ip', 'forwarding_host');
18+
})
19+
.then(function () {
20+
logger.info('[' + migrate_name + '] stream Table altered');
21+
});
22+
};
23+
24+
/**
25+
* Undo Migrate
26+
*
27+
* @param {Object} knex
28+
* @param {Promise} Promise
29+
* @returns {Promise}
30+
*/
31+
exports.down = function (knex/*, Promise*/) {
32+
logger.info('[' + migrate_name + '] Migrating Down...');
33+
34+
return knex.schema.table('stream', (table) => {
35+
table.renameColumn('forwarding_host', 'forward_ip');
36+
})
37+
.then(function () {
38+
logger.info('[' + migrate_name + '] stream Table altered');
39+
});
40+
};

backend/schema/endpoints/streams.json

+21-10
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,20 @@
2020
"minimum": 1,
2121
"maximum": 65535
2222
},
23-
"forward_ip": {
24-
"type": "string",
25-
"format": "ipv4"
23+
"forwarding_host": {
24+
"oneOf": [
25+
{
26+
"$ref": "../definitions.json#/definitions/domain_name"
27+
},
28+
{
29+
"type": "string",
30+
"format": "ipv4"
31+
},
32+
{
33+
"type": "string",
34+
"format": "ipv6"
35+
}
36+
]
2637
},
2738
"forwarding_port": {
2839
"type": "integer",
@@ -55,8 +66,8 @@
5566
"incoming_port": {
5667
"$ref": "#/definitions/incoming_port"
5768
},
58-
"forward_ip": {
59-
"$ref": "#/definitions/forward_ip"
69+
"forwarding_host": {
70+
"$ref": "#/definitions/forwarding_host"
6071
},
6172
"forwarding_port": {
6273
"$ref": "#/definitions/forwarding_port"
@@ -107,15 +118,15 @@
107118
"additionalProperties": false,
108119
"required": [
109120
"incoming_port",
110-
"forward_ip",
121+
"forwarding_host",
111122
"forwarding_port"
112123
],
113124
"properties": {
114125
"incoming_port": {
115126
"$ref": "#/definitions/incoming_port"
116127
},
117-
"forward_ip": {
118-
"$ref": "#/definitions/forward_ip"
128+
"forwarding_host": {
129+
"$ref": "#/definitions/forwarding_host"
119130
},
120131
"forwarding_port": {
121132
"$ref": "#/definitions/forwarding_port"
@@ -154,8 +165,8 @@
154165
"incoming_port": {
155166
"$ref": "#/definitions/incoming_port"
156167
},
157-
"forward_ip": {
158-
"$ref": "#/definitions/forward_ip"
168+
"forwarding_host": {
169+
"$ref": "#/definitions/forwarding_host"
159170
},
160171
"forwarding_port": {
161172
"$ref": "#/definitions/forwarding_port"

backend/templates/stream.conf

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ server {
1212
#listen [::]:{{ incoming_port }};
1313
{% endif %}
1414

15-
proxy_pass {{ forward_ip }}:{{ forwarding_port }};
15+
proxy_pass {{ forwarding_host }}:{{ forwarding_port }};
1616

1717
# Custom
1818
include /data/nginx/custom/server_stream[.]conf;
@@ -27,7 +27,7 @@ server {
2727
{% else -%}
2828
#listen [::]:{{ incoming_port }} udp;
2929
{% endif %}
30-
proxy_pass {{ forward_ip }}:{{ forwarding_port }};
30+
proxy_pass {{ forwarding_host }}:{{ forwarding_port }};
3131

3232
# Custom
3333
include /data/nginx/custom/server_stream[.]conf;

docker/rootfs/etc/services.d/frontend/run

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
if [ "$DEVELOPMENT" == "true" ]; then
66
cd /app/frontend || exit 1
7+
# If yarn install fails: add --verbose --network-concurrency 1
78
yarn install
89
yarn watch
910
else

docker/rootfs/etc/services.d/manager/run

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ cd /app || echo
66

77
if [ "$DEVELOPMENT" == "true" ]; then
88
cd /app || exit 1
9+
# If yarn install fails: add --verbose --network-concurrency 1
910
yarn install
1011
node --max_old_space_size=250 --abort_on_uncaught_exception node_modules/nodemon/bin/nodemon.js
1112
else

frontend/js/app/nginx/stream/form.ejs

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414
</div>
1515
<div class="col-sm-8 col-md-8">
1616
<div class="form-group">
17-
<label class="form-label"><%- i18n('streams', 'forward-ip') %><span class="form-required">*</span></label>
18-
<input type="text" name="forward_ip" class="form-control text-monospace" placeholder="000.000.000.000" value="<%- forward_ip %>" autocomplete="off" maxlength="15" required>
17+
<label class="form-label"><%- i18n('streams', 'forwarding-host') %><span class="form-required">*</span></label>
18+
<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>
1919
</div>
2020
</div>
2121
<div class="col-sm-4 col-md-4">

frontend/js/app/nginx/stream/form.js

+1-8
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ module.exports = Mn.View.extend({
1313

1414
ui: {
1515
form: 'form',
16-
forward_ip: 'input[name="forward_ip"]',
16+
forwarding_host: 'input[name="forwarding_host"]',
1717
type_error: '.forward-type-error',
1818
buttons: '.modal-footer button',
1919
switches: '.custom-switch-input',
@@ -76,13 +76,6 @@ module.exports = Mn.View.extend({
7676
}
7777
},
7878

79-
onRender: function () {
80-
this.ui.forward_ip.mask('099.099.099.099', {
81-
clearIfNotMatch: true,
82-
placeholder: '000.000.000.000'
83-
});
84-
},
85-
8679
initialize: function (options) {
8780
if (typeof options.model === 'undefined' || !options.model) {
8881
this.model = new StreamModel.Model();

frontend/js/app/nginx/stream/list/item.ejs

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
</div>
1313
</td>
1414
<td>
15-
<div class="text-monospace"><%- forward_ip %>:<%- forwarding_port %></div>
15+
<div class="text-monospace"><%- forwarding_host %>:<%- forwarding_port %></div>
1616
</td>
1717
<td>
1818
<div>

frontend/js/i18n/messages.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@
162162
"add": "Add Stream",
163163
"form-title": "{id, select, undefined{New} other{Edit}} Stream",
164164
"incoming-port": "Incoming Port",
165-
"forward-ip": "Forward IP",
165+
"forwarding-host": "Forward Host",
166166
"forwarding-port": "Forward Port",
167167
"tcp-forwarding": "TCP Forwarding",
168168
"udp-forwarding": "UDP Forwarding",

frontend/js/models/stream.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ const model = Backbone.Model.extend({
99
created_on: null,
1010
modified_on: null,
1111
incoming_port: null,
12-
forward_ip: null,
12+
forwarding_host: null,
1313
forwarding_port: null,
1414
tcp_forwarding: true,
1515
udp_forwarding: false,

0 commit comments

Comments
 (0)