mirror of
https://github.com/NginxProxyManager/nginx-proxy-manager.git
synced 2026-04-25 01:15:51 +03:00
[PR #5211] feat: Add IP-based access control for Stream Hosts #4091
Labels
No labels
awaiting feedback
bug
cannot reproduce
dns provider request
duplicate
enhancement
enhancement
enhancement
good first issue
help wanted
invalid
need more info
no certbot plugin available
product-support
pull-request
question
stale
troll
upstream issue
v2
v2
v2
v3
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/nginx-proxy-manager-NginxProxyManager#4091
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/NginxProxyManager/nginx-proxy-manager/pull/5211
Author: @Kiryuumaru
Created: 1/23/2026
Status: 🔄 Open
Base:
develop← Head:feature/stream-access-list📝 Commits (2)
933ee2bfeat: Add IP-based access control for Stream Hostsfb19619Retry CI📊 Changes
21 files changed (+168 additions, -25 deletions)
View changed files
📝
backend/internal/access-list.js(+27 -5)📝
backend/internal/stream.js(+6 -6)➕
backend/migrations/20260123000000_stream_access.js(+43 -0)📝
backend/models/access_list.js(+12 -0)📝
backend/models/stream.js(+12 -0)📝
backend/schema/components/stream-object.json(+15 -0)📝
backend/schema/paths/nginx/streams/get.json(+2 -1)📝
backend/schema/paths/nginx/streams/post.json(+6 -1)📝
backend/schema/paths/nginx/streams/streamID/get.json(+2 -1)📝
backend/schema/paths/nginx/streams/streamID/put.json(+5 -1)➕
backend/templates/_access_stream.conf(+10 -0)📝
backend/templates/stream.conf(+4 -0)📝
frontend/src/api/backend/expansions.ts(+1 -0)📝
frontend/src/api/backend/getStream.ts(+2 -2)📝
frontend/src/api/backend/getStreams.ts(+2 -2)📝
frontend/src/api/backend/models.ts(+2 -0)📝
frontend/src/hooks/useStream.ts(+2 -1)📝
frontend/src/hooks/useStreams.ts(+3 -3)📝
frontend/src/modals/StreamModal.tsx(+3 -1)📝
frontend/src/pages/Nginx/Streams/Table.tsx(+8 -0)...and 1 more files
📄 Description
Summary
This PR implements IP-based access control for Stream Hosts, addressing feature request #5125.
Changes
Backend
access_list_idcolumn to thestreamtableaccess_listrelation to Stream model andstreamsrelation to AccessList modelaccess_listexpansionaccess_list_idto stream POST/PUT endpoints_access_stream.conftemplate for IP-based allow/deny rulesstream.confto include the access template for both TCP and UDP blocksFrontend
StreamExpansiontype for API callsaccessListIdandaccessListto Stream interfaceImplementation Notes
satisfydirective, so onlyallow/denyrules from the Access List clients are usedallowdirectives for each client IP/CIDR in the access listdeny all;directiveExample Generated Config
Screenshots:
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.