NginxProxyManager / NginxProxyManager/nginx-proxy-manager
Add start and end ports for streams
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 34.2k
- Forks
- 3.9k
- Avg merge
- 21h 12m
- Merged PRs (30d)
- 20
Description
Is your feature request related to a problem? Please describe.
As of NGINX version 1.15.10, the listen directive accepts port ranges, but NPM only allow adding a stream host listening on a single port.
I wanted to setup a stream for FTP server with passive mode. In order to support passive mode, many ports are needed and it's PITA to add all of them one by one.
Ultimately, I created a custom config under data/nginx/custom/stream.conf to workaround NPM's limitation.
Describe the solution you'd like
Add start and end listening ports when creating stream host
Add start and end forwarding ports
Validate input (same port, same number of ports as forwarding ports)
Describe alternatives you've considered
Currently working using custom config
data/nginx/custom/stream.conf:
`
server {
listen 20-21;
listen [::]:20-21;
listen 32500-32599;
listen [::]:32500-32599;
proxy_pass <INTERNAL_SERVER_IP>:$server_port;
}
`
Additional context
Obviously, I could continue to use custom configs, but this feature will make lives easier. Additionally, servers added through custom configs do not show up in the dashboard.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading data/nginx/custom/stream.conf and tracing how stream hosts are represented and created in the dashboard. The work is done when stream hosts accept start and end listening and forwarding ports, validate matching ranges, generate the NGINX configuration, and appear in the dashboard.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- nginx, typescript
- Domain
- full-stack
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100