[GH-ISSUE #5326] Documentation Issue: Missing Traefik Rules for new Reverse Proxy Feature #10346

Closed
opened 2026-08-05 01:25:32 -04:00 by saavagebueno · 5 comments
Owner

Originally created by @Spiritreader on GitHub (Feb 14, 2026).
Original GitHub issue: https://github.com/netbirdio/netbird/issues/5326

Migration Scenario

The migration guide here https://docs.netbird.io/selfhosted/migration/enable-reverse-proxy
points to https://docs.netbird.io/selfhosted/reverse-proxy#traefik

The new netbird-proxy service requires to talk to the management grpc route /management.ProxyService/ which is not routed by default in the existing guides.

This has to be added as traefik label to the netbirdio/management:latest image like so:

 - traefik.http.routers.netbird-mgmt-grpc.rule=Host(`netbird.example.com`) && (PathPrefix(`/management.ManagementService/`) || PathPrefix(`/management.ProxyService/`)) 

Additionally, the guide mentions that the NAT holepunch extra_hosts section needs to be configured by changing the domain, but if the IP of the traefik container is not 172.30.0.10, the override will not work.

I think it would be nice if the docs mentioned that it's recommended to fix the IP of traefik within the network (in my case I set it to 172.31.0.10 as my network is 172.31.0.0/16)


Getting Started Script

Furthermore, the getting_started.sh https://github.com/netbirdio/netbird/blob/main/infrastructure_files/getting-started.sh also does not configure the /management/ProxyService route for the unified container.

This will cause the netbird-proxy service to fail to connect.

The traefik routing rules need to be updated accordingly there.

Originally created by @Spiritreader on GitHub (Feb 14, 2026). Original GitHub issue: https://github.com/netbirdio/netbird/issues/5326 ### Migration Scenario The migration guide here https://docs.netbird.io/selfhosted/migration/enable-reverse-proxy points to https://docs.netbird.io/selfhosted/reverse-proxy#traefik The new netbird-proxy service requires to talk to the management grpc route `/management.ProxyService/` which is not routed by default in the existing guides. This has to be added as traefik label to the `netbirdio/management:latest` image like so: ``` - traefik.http.routers.netbird-mgmt-grpc.rule=Host(`netbird.example.com`) && (PathPrefix(`/management.ManagementService/`) || PathPrefix(`/management.ProxyService/`)) ``` Additionally, the guide mentions that the NAT holepunch `extra_hosts` section needs to be configured by changing the domain, but if the IP of the traefik container is not `172.30.0.10`, the override will not work. I think it would be nice if the docs mentioned that it's recommended to fix the IP of traefik within the network (in my case I set it to `172.31.0.10` as my network is `172.31.0.0/16`) _____ ### Getting Started Script Furthermore, the `getting_started.sh` https://github.com/netbirdio/netbird/blob/main/infrastructure_files/getting-started.sh also does not configure the `/management/ProxyService` route for the unified container. This will cause the `netbird-proxy` service to fail to connect. The traefik routing rules need to be updated accordingly there.
saavagebueno added the triage-needed label 2026-08-05 01:25:32 -04:00
Author
Owner

@ben-ba commented on GitHub (Feb 14, 2026):

for the unified server it's in the script
https://github.com/netbirdio/netbird/blob/v0.65.0/infrastructure_files/getting-started.sh#L676

atm i can successfully expose services without that PathPrefix

the reason, why the traefik config fails is;
first, traefik is defined with the docker network netbird
- "--providers.docker.network=netbird"
https://github.com/netbirdio/netbird/blob/v0.65.0/infrastructure_files/getting-started.sh#L607

but internally, the network in an compose stack gets a prefix e.g. myComposeFolder_netbird
so the services are all in the network myComposeFolder_netbird instead of netbird.

secure way; add the network name explicit
so change this

networks:
netbird:
driver: bridge
ipam:
config:
- subnet: 172.30.0.0/24
gateway: 172.30.0.1

to

networks:
netbird:
name: netbird
driver: bridge
ipam:
config:
- subnet: 172.30.0.0/24
gateway: 172.30.0.1

normally u have to remove the network before u can start the stack, because the ip-addresses overlap

docker network rm myComposeFolder_netbird

<!-- gh-comment-id:3902898695 --> @ben-ba commented on GitHub (Feb 14, 2026): for the unified server it's in the script https://github.com/netbirdio/netbird/blob/v0.65.0/infrastructure_files/getting-started.sh#L676 atm i can successfully expose services without that PathPrefix the reason, why the traefik config fails is; first, traefik is defined with the docker network netbird ` - "--providers.docker.network=netbird"` https://github.com/netbirdio/netbird/blob/v0.65.0/infrastructure_files/getting-started.sh#L607 but internally, the network in an compose stack gets a prefix e.g. myComposeFolder_netbird so the services are all in the network myComposeFolder_netbird instead of netbird. secure way; add the network name explicit so change this > networks: > netbird: > driver: bridge > ipam: > config: > - subnet: 172.30.0.0/24 > gateway: 172.30.0.1 to > networks: > netbird: > name: netbird > driver: bridge > ipam: > config: > - subnet: 172.30.0.0/24 > gateway: 172.30.0.1 normally u have to remove the network before u can start the stack, because the ip-addresses overlap `docker network rm myComposeFolder_netbird `
Author
Owner

@derlaft commented on GitHub (Feb 15, 2026):

I can confirm that this rule was also required in my case. Otherwise, proxy container could not connect to the management container, and I could not create my custom domain.

<!-- gh-comment-id:3904375664 --> @derlaft commented on GitHub (Feb 15, 2026): I can confirm that this rule was also required in my case. Otherwise, proxy container could not connect to the management container, and I could not create my custom domain.
Author
Owner

@da-wilky commented on GitHub (Feb 16, 2026):

I can also confirm I needed to add the path /management.ProxyService/ for it to work.

<!-- gh-comment-id:3907549269 --> @da-wilky commented on GitHub (Feb 16, 2026): I can also confirm I needed to add the path `/management.ProxyService/` for it to work.
Author
Owner

@byCrookie commented on GitHub (Feb 16, 2026):

Me too. Had to add || PathPrefix(/management.ProxyService/))

<!-- gh-comment-id:3910820643 --> @byCrookie commented on GitHub (Feb 16, 2026): Me too. Had to add `|| PathPrefix(`/management.ProxyService/`))`
Author
Owner

@shuuri-labs commented on GitHub (Feb 19, 2026):

Added to the docs in https://github.com/netbirdio/docs/pull/623. Closing this issue

<!-- gh-comment-id:3928482283 --> @shuuri-labs commented on GitHub (Feb 19, 2026): Added to the docs in https://github.com/netbirdio/docs/pull/623. Closing this issue
Sign in to join this conversation.
No Label triage-needed
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: DYNR/netbird#10346