You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Reverse Proxy Doc Amendments
- update custom domains page to more closely reflect wording in the UI, added screenshots
- add warning to index page that reverse proxy feature does not currently work with pre-shared keys/rosenpass
* Update navigation order (move reverse proxy below network routes)
* update migration guide to mention the need for TWO cname records (proxy and proxy wildcard)
Copy file name to clipboardExpand all lines: src/pages/manage/reverse-proxy/custom-domains.mdx
+28-22Lines changed: 28 additions & 22 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,11 +1,11 @@
1
1
import {Note} from"@/components/mdx"
2
2
3
3
exportconst description =
4
-
'Configure free and custom domains for NetBird Reverse Proxy services, including CNAME validation and DNS setup.'
4
+
'Configure free and custom domains for NetBird Reverse Proxy services, including CNAME verification and DNS setup.'
5
5
6
6
# Custom Domains
7
7
8
-
When you create a reverse proxy service, you need to assign it a domain. NetBird provides built-in domains that are automatically available for every account, and also supports custom domains where you bring your own domain name. This page explains how both types work and walks you through adding and validating a custom domain.
8
+
When you create a reverse proxy service, you need to assign it a domain. NetBird provides built-in domains that are automatically available for every account, and also supports custom domains where you bring your own domain name. This page explains how both types work and walks you through adding and verifying a custom domain.
9
9
10
10
## Built-in domains
11
11
@@ -43,7 +43,7 @@ Built-in domains are a quick way to get started. They receive automatic TLS cert
43
43
44
44
## Custom domains
45
45
46
-
Custom domains let you use your own domain name (e.g., `app.example.com`) for reverse proxy services. Custom domains work identically in both cloud and self-hosted deployments. Before a custom domain can be used, you must validate ownership by creating a CNAME record in your DNS provider.
46
+
Custom domains let you use your own domain name (e.g., `app.example.com`) for reverse proxy services. Custom domains work identically in both cloud and self-hosted deployments. Before a custom domain can be used, you must verify ownership by creating a CNAME record in your DNS provider.
47
47
48
48
To manage custom domains, navigate to **Reverse Proxy** > **Custom Domains** in the NetBird dashboard.
49
49
@@ -61,15 +61,15 @@ Follow these steps to add a custom domain to your account:
61
61
<imgsrc="/docs-static/img/manage/reverse-proxy/custom-domains-add.png"alt="Add Domain modal showing domain name and proxy cluster fields"className="imagewrapper"/>
62
62
</p>
63
63
64
-
After saving, the domain appears in your list with an**unvalidated** status. You must complete CNAME validation before you can use the domain with a service.
64
+
After saving, the domain appears in your list with a**Pending Verification** status. You must complete CNAME verification before you can use the domain with a service.
65
65
66
-
## Validating a custom domain
66
+
## Verifying a custom domain
67
67
68
68
To prove that you own the domain, NetBird requires you to create a specific CNAME record in your DNS provider.
69
69
70
70
### Step 1: Create the CNAME record
71
71
72
-
In your DNS provider, create a CNAME record for the `validation` subdomain of your custom domain, pointing to the proxy cluster address. The CNAME target depends on your deployment type:
72
+
In your DNS provider, create a wildcard CNAME record for your custom domain, pointing to the proxy cluster address. The CNAME target depends on your deployment type:
73
73
74
74
-**Cloud deployments** - point to a NetBird-hosted cluster address (e.g., `eu.proxy.netbird.io`)
75
75
-**Self-hosted deployments** - point to your own proxy URL (e.g., `proxy.mycompany.com`)
@@ -78,28 +78,34 @@ For example, on a cloud deployment:
The exact target value depends on the proxy cluster you selected when adding the domain. The NetBird dashboard displays the required CNAME target after you save the domain.
89
+
The exact target value depends on the proxy cluster you selected when adding the domain. The NetBird dashboard displays the required CNAME record and target after you save the domain.
90
90
91
-
### Step 2: Validate in the dashboard
91
+
### Step 2: Verify in the dashboard
92
92
93
-
After creating the DNS record, return to the **Reverse Proxy** > **Custom Domains** page and click **Validate** next to the domain.
93
+
After creating the DNS record, return to the **Reverse Proxy** > **Custom Domains** page and click **Verify Domain** next to the domain.
94
94
95
95
<p>
96
-
<imgsrc="/docs-static/img/manage/reverse-proxy/custom-domains-validation.png"alt="Domain validation status showing CNAME record details"className="imagewrapper"/>
96
+
<imgsrc="/docs-static/img/manage/reverse-proxy/custom-domains-verification.png"alt="Domain verification modal showing CNAME record details"className="imagewrapper-big"/>
97
97
</p>
98
98
99
-
NetBird performs a CNAME lookup on `validation.<your-domain>` and verifies that it resolves to a known proxy cluster. Once validation succeeds, the domain status changes to **validated** and it becomes available in the domain selector when creating or editing services.
99
+
Confirm that the dialog reflects CNAME record you added to your domain provider and click **Start Verification**.
NetBird performs a CNAME lookup on `*.<your-domain>` and verifies that it resolves to a known proxy cluster. Once verification succeeds, the domain status changes to **Active** and it becomes available in the domain selector when creating or editing services.
100
106
101
107
<Note>
102
-
DNS changes can take time to propagate. If validation fails immediately after creating the CNAME record, wait a few minutes and try again. In some cases, DNS propagation can take up to 48 hours depending on your provider and TTL settings.
108
+
DNS changes can take time to propagate. If NetBird does not find the record immediately, please wait up to 24 hours and try again.
103
109
</Note>
104
110
105
111
## Managing custom domains
@@ -108,11 +114,11 @@ The **Custom Domains** page lists all domains associated with your account, incl
108
114
109
115
### Viewing domains
110
116
111
-
The domain list shows each domain along with its type (Free, Cluster, or Custom), the associated proxy cluster, and the current validation status.
117
+
The domain list shows each domain along with its type (Free, Cluster, or Custom), the associated proxy cluster, and the current verification status.
112
118
113
-
### Re-validating a domain
119
+
### Re-verifying a domain
114
120
115
-
If a custom domain becomes unvalidated - for example, after a DNS configuration change - you can click **Validate** to trigger a new CNAME lookup.
121
+
If a custom domain returns to **Pending Verification** status - for example, after a DNS configuration change - you can click **Verify Domain** to trigger a new CNAME lookup.
116
122
117
123
### Deleting a custom domain
118
124
@@ -126,7 +132,7 @@ To remove a custom domain, click the delete action next to the domain in the lis
126
132
127
133
When you create or edit a reverse proxy service, the domain selector presents all available domains:
128
134
129
-
- All **validated** custom domains
135
+
- All **Active** custom domains
130
136
- All built-in domains - **Free** domains (cloud) or **Cluster** domains (self-hosted)
131
137
132
138
To assign a domain to a service, enter a **subdomain** on the left side of the selector and choose a **base domain** on the right side. The full public URL for your service is the combination of both:
@@ -141,19 +147,19 @@ All domain types receive automatic TLS certificates managed by the proxy.
141
147
142
148
## Troubleshooting
143
149
144
-
### Domain shows as unvalidated
150
+
### Domain shows as Pending Verification
145
151
146
-
Verify that the CNAME record for `validation.<your-domain>` is correctly configured and points to the right proxy cluster address. For cloud deployments, this is a NetBird-hosted address (e.g., `eu.proxy.netbird.io`). For self-hosted deployments, this is your own proxy URL (e.g., `proxy.mycompany.com`). Use a DNS lookup tool to confirm the record has propagated:
152
+
Verify that the wildcard CNAME record for `*.<your-domain>` is correctly configured and points to the right proxy cluster address. For cloud deployments, this is a NetBird-hosted address (e.g., `eu.proxy.netbird.io`). For self-hosted deployments, this is your own proxy URL (e.g., `proxy.mycompany.com`). Use a DNS lookup tool to confirm the record has propagated:
147
153
148
154
```bash
149
-
dig CNAME validation.proxy.example.com
155
+
dig CNAME *.proxy.example.com
150
156
```
151
157
152
158
If the record does not appear, check your DNS provider for typos or wait for propagation to complete.
153
159
154
160
### CNAME pointing to the wrong cluster
155
161
156
-
The CNAME record must resolve to one of your available proxy clusters. If you selected a different cluster when adding the domain, the validation lookup will fail. Verify the expected target value on the Custom Domains page in the dashboard and update your DNS record accordingly.
162
+
The CNAME record must resolve to one of your available proxy clusters. If you selected a different cluster when adding the domain, the verification lookup will fail. Verify the expected target value on the Custom Domains page in the dashboard and update your DNS record accordingly.
Copy file name to clipboardExpand all lines: src/pages/manage/reverse-proxy/index.mdx
+4-1Lines changed: 4 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,4 @@
1
-
import {Note} from"@/components/mdx"
1
+
import {Note, Warning} from"@/components/mdx"
2
2
3
3
exportconst description =
4
4
'Expose internal services to the public internet with automatic TLS, authentication, and traffic routing through the NetBird mesh network.'
@@ -13,6 +13,9 @@ NetBird Reverse Proxy lets you expose internal services running on peers or behi
13
13
<Note>
14
14
**Self-hosted requirement:** Self-hosted deployments **must** use [Traefik](/selfhosted/reverse-proxy) as their reverse proxy. Traefik is the only supported reverse proxy that provides TLS passthrough, which is required for the Reverse Proxy feature to function correctly.
15
15
</Note>
16
+
<Warning>
17
+
The Reverse Proxy feature does not currently support pre-shared keys or Rosenpass. If your network relies on either of these features, reverse proxy services will not function as expected.
Copy file name to clipboardExpand all lines: src/pages/selfhosted/migration/enable-reverse-proxy.mdx
+7-6Lines changed: 7 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -150,15 +150,16 @@ The Traefik labels configure a **TCP router** that:
150
150
The `HostSNI(*)` rule acts as a catch-all for any domain not matched by the existing NetBird HTTP routers. The `priority=1` ensures this TCP router only handles traffic that no other router claims. Any domain pointing to your server that isn't `netbird.example.com` will be forwarded to the proxy.
151
151
</Note>
152
152
153
-
### Step 4: Set up wildcard DNS
153
+
### Step 4: Set up DNS records
154
154
155
-
Create a wildcard DNS record pointing to the server running your NetBird stack:
155
+
Create two DNS records pointing to the server running your NetBird stack — one for the base proxy domain and one wildcard for service subdomains:
This ensures that all service subdomains (e.g., `myapp.proxy.example.com`, `dashboard.proxy.example.com`) resolve to your server where Traefik forwards them to the proxy container.
162
+
The base domain record is required because a wildcard DNS record does not cover the bare domain itself. The wildcard record ensures that all service subdomains (e.g., `myapp.proxy.example.com`, `dashboard.proxy.example.com`) resolve to your server where Traefik forwards them to the proxy container.
0 commit comments