Commit Graph

949 Commits

Author SHA1 Message Date
Jack Carter
9802af7bdc docs: rename DNS wildcard routing to routing peer DNS resolution (#745)
Matches the dashboard rename. The setting moves DNS resolution for
routed domains from the client to the routing peer; wildcard routing
is one consequence rather than the primary purpose, so the canonical
section now leads with that framing.

Heading anchor changes from #enable-dns-wildcard-routing to
#enable-routing-peer-dns-resolution. Keeps an invisible legacy anchor
on both pages so external bookmarks still scroll to the section.
2026-05-13 16:04:24 +02:00
Jack Carter
a5bd6f26dd docs: remove Related section from Site-to-VPN guide (#753) 2026-05-13 14:38:04 +02:00
Jack Carter
ba60a4eef1 docs: tighten Networks vs. Network Routes list (#752) 2026-05-13 14:30:50 +02:00
Jack Carter
442116bb8f docs: prune redundant Networks and Network Routes use cases (#749)
The Networks and Network Routes "By Scenario" / "By Resource Type" /
"By Configuration" subgroups had grown into reskinned walkthroughs of
flows already on the concept pages. Collapse to what's actually
distinct, flatten the survivors up one level, fold unique nuggets
into the concept pages.

Networks:
- Delete the "By Resource Type" trio (Multiple IP Resources, Domain
  Resources, Wildcard Domains) and Remote Worker Access — all rehashes
  of /manage/networks. Fold the wildcard-vs-base-domain gotcha and the
  shared-policy pattern into the concept page.
- Delete the Use Cases overview; fold the VPN-to-Site framing into the
  concept page.
- Flatten access-home-devices and cloud-to-on-premise up out of
  /by-scenario/.

Network Routes:
- Consolidate site-to-site-{home,office,cloud} into one
  /manage/network-routes/use-cases/site-to-site page covering the
  shared walkthrough plus AWS/GCP/Azure routing-peer requirements.
- Move exit-nodes, access-control, overlapping-routes, and
  advanced-configuration up out of /by-{scenario,configuration}/.
- Trim advanced-configuration (301 → 144 lines), dropping masquerade
  basics, ACL setup, site-to-site flow, and HA repetition duplicated
  elsewhere. Keep the masquerade trade-off matrix, Networks-vs-Routes
  comparison, troubleshooting, and debug commands.
- Delete the Use Cases overview.

Permanent redirects added for every removed URL. Inbound references
updated across introduction, ipv6, homelab, cloud, security,
site-to-site overview, android-tv/tvOS install pages, and the concept
pages.
2026-05-13 14:17:43 +02:00
Jack Carter
3459beb3c5 docs: fix Client > Settings nav jumping to Manage > Peers (#750)
The Settings group header auto-navigates to its first child's href on
expand. The first child was "Allow SSH" pointing to /client/allow-ssh,
which redirects to /manage/peers/ssh, pulling the user out of the Client
section. Reorder so real /client/ pages come first; the two redirect
entries (Allow SSH, Enable Lazy Connections) stay discoverable at the
bottom of the group.
2026-05-13 13:26:39 +02:00
Jack Carter
2f46f5e4dc docs: add Site-to-VPN scenario guide (#748)
* docs: add Site-to-VPN scenario guide

New dedicated guide for letting clientless devices on a local network
initiate connections to NetBird peers (the reverse of VPN-to-Site).
Covers static-route and DNAT options, DNS resolution via dnsmasq, and
explains why the target peer always observes the routing peer's NetBird
IP as the source.

- Add src/pages/manage/network-routes/use-cases/by-scenario/site-to-vpn.mdx
- Wire it into NavigationDocs.jsx
- Update the site-to-site overview table row to point at the new page
- Replace the stub Site-to-VPN subsection in site-to-site-office.mdx
  with a pointer to the new guide

* docs(site-to-vpn): correct source-IP section, add firewall and interface notes

- Source IP Behavior: remove the option that suggested emptying the
  destination peer's policies. That doesn't preserve source IP; it just
  tears down the wireguard pairing. Replace with an honest "not possible
  with legacy Network Routes."
- Step 3: call out that hosts with FORWARD-DROP firewalls (UFW, firewalld)
  need an explicit ACCEPT rule between the site interface and wt0.
- Option B: prefix the DNAT step with `ip -br addr` so customers find the
  right site-facing interface instead of assuming eth0.
- Step 1: use "Name" for the setup key field instead of the route-only
  "Network Identifier".

* docs(site-to-vpn): tighten prereqs, firewall step, and source-IP wording

- Drop generic prereqs (account, routing peer hardware, target peer)
- Reduce Step 3 to the host-firewall FORWARD rule
- Label Networks-feature Site-to-VPN as 'not possible' rather than limited
- Rename topology arrow to 'NetBird Overlay'
- Clarify masquerade lives on the routing peer in troubleshooting

* docs(site-to-vpn): switch primary path to Networks; document outbound SNAT requirement

Verified in the lab that Networks supports Site-to-VPN with the same
shape as Network Routes (Resource + Routing Peer + peer-group policy).
The differentiating factor is not the feature but the routing peer
platform: NetBird's masquerade flag does not install a working outbound
SNAT on non-Linux peers or in userspace mode, so the user must configure
it explicitly on the routing peer or upstream firewall.

Doc changes:
- Lead with Networks; Network Routes is now framed as an equivalent
  alternative rather than the only option
- New Step 3 dedicated to the outbound SNAT (Linux iptables, pfSense /
  OPNsense, MikroTik examples)
- New section "Outbound SNAT requirement" explaining why the destination
  peer's access control rejects unrewritten site IPs and where the
  dashboard masquerade flag is and isn't sufficient
- Up-front Warning calls out the platform requirement so customers don't
  silently misconfigure
- Troubleshooting entry updated to point at SNAT counters and tcpdump
- Updated Source IP Behavior section to reflect that the behavior is the
  same on both Networks and Network Routes

Parent page changes:
- /use-cases/site-to-site: Scenario Support table now shows Site-to-VPN
  as Yes on both Networks and Network Routes; "Which Scenario Do I Need"
  row points at both implementations

* docs(site-to-vpn): make static route the only Step 6 path; move DNAT to appendix

The static-route approach is the canonical setup; the per-service DNAT
option is a fallback for sites where routing changes aren't possible.
Treat it that way in the doc to keep the main flow linear.

- Step 6 now describes only the static-route approach (former Option A)
- Add a one-line pointer at the end of Step 6 to the appendix for sites
  where the route can't be set
- Move the DNAT instructions to a new appendix at the bottom of the page
- Simplify Test Connectivity to a single curl
- Trim the Option-A/Option-B framing from the Troubleshooting "Connection
  times out" entry

* docs(site-to-vpn): drop Source IP Behavior section

The "Outbound SNAT requirement" section already covers why the source IP
ends up as the routing peer's NetBird IP; a separate Source IP Behavior
section was repeating the same point and adding a speculative paragraph
about future Networks support. Drop both, plus the up-front Warning that
pointed at the removed section.

* docs(site-to-vpn): drop the Networks-vs-Network-Routes note

The guide is written around Networks; the side-note suggesting Network
Routes as an alternative path adds noise without value. The Step 4 inline
note keeps the Network Routes equivalent for anyone who needs it.

* docs(site-to-vpn): drop the inline Network Routes equivalent note

The guide is Networks-only now. Pointing readers at Network Routes mid-flow
just creates two paths to maintain without serving the reader who's
following the steps in front of them.

* docs(site-to-vpn): move page under Networks → Use Cases

The page describes a Networks-based setup; living under Network Routes
mis-categorised it.

- git mv to /manage/networks/use-cases/site-to-vpn.mdx (as a direct
  child of Use Cases, not under By Scenario)
- Navigation: remove entry from Network Routes → By Scenario, add under
  Networks → Use Cases
- Redirect old URL (/manage/network-routes/use-cases/by-scenario/site-to-vpn)
  to new URL, permanent
- Update in-tree links in use-cases/site-to-site/index.mdx and
  network-routes/use-cases/by-scenario/site-to-site-office.mdx

* docs(site-to-site): drop Network Routes mentions for Site-to-VPN

The Site-to-VPN guide is Networks-only; the overview page shouldn't
still be listing Network Routes alongside it.

* docs(site-to-vpn): trust NetBird's automatic SNAT on Linux kernel mode

On Linux in kernel mode, NetBird installs the SNAT itself when masquerade
is enabled on the routing peer — the user does not need a manual iptables
rule. Reframe Step 3 around this:

- Linux: enable ip_forward only; NetBird does the SNAT
- Non-Linux (pfSense / OPNsense / MikroTik / Windows / macOS / userspace):
  configure manual outbound SNAT on the routing peer or upstream firewall
- Tighten the "Outbound SNAT requirement" appendix accordingly
- Move the explicit Linux iptables MASQUERADE rule into a troubleshooting
  fallback for the case where NetBird's automatic SNAT doesn't fire

* docs(site-to-vpn): drop sysctl ip_forward instruction on Linux

NetBird handles IP forwarding itself on Linux; the manual sysctl was
unnecessary noise. Keep the host-firewall FORWARD-ACCEPT note since
UFW/firewalld setups still need it.

* docs(site-to-vpn): route the account's /16, not the entire /10 CGNAT range

NetBird assigns each account one /16 block out of 100.64.0.0/10 (chosen
randomly, customisable). Routing the whole /10 sends unrelated CGNAT
addresses through the routing peer; the correct target is the account's
own /16.

Step 6 now:
- Explains the /16-per-account model with the 64-block context
- Shows how to read the account's /16 from `netbird status` on any peer
- Switches the Linux / Windows / DHCP-option-121 examples to a concrete
  /16 example (100.121.0.0/16) with a note to substitute your own

* docs(site-to-vpn): clarify when the target peer uses a setup key

Setup keys are for service / appliance peers; user peers (laptops,
workstations) enroll through SSO and inherit groups from existing
assignments. Reword the target-peer instruction to reflect that
distinction.

* docs(site-to-vpn): rename target peer to overlay-peer / overlay-peers

The previous backup-collector / backup-collectors naming carried
scenario-specific framing into the step examples. Use the generic
overlay-peer / overlay-peers throughout to keep the guide universal.

* chore: add trailing commas in Kubernetes nav entries

* Revert "chore: add trailing commas in Kubernetes nav entries"

This reverts commit d11b7eb7d0.
2026-05-13 13:19:15 +02:00
Jack Carter
effe99bb4f docs: note gen:sitemap runs with dev/build in CLAUDE.md (#747) 2026-05-12 16:37:26 +02:00
Jack Carter
02a4eef0a1 docs: remove stale GSoC 2022 ideas page (#746)
Delete /about-netbird/other (Google Summer of Code 2022 project
ideas) and add a 301 redirect to /introduction. The page was
orphaned — not linked from navigation, contained broken internal
links, and had no modern equivalent.
2026-05-12 16:16:24 +02:00
Jack Carter
6d0ad7d60d docs(event-streaming): add Wazuh integration guide (#734)
* docs(event-streaming): add Wazuh integration guide

Documents how to wire NetBird's Generic HTTP event-streaming integration
to a self-hosted Wazuh manager: NetBird-side configuration, KQL queries
for audit and traffic events in the Wazuh dashboard, and a schema
reference for both event shapes via the receiver wrapper.

Adds the page to the Stream Activity Events sidebar and the
event-streaming index.

* docs(event-streaming): replace Wazuh Generic HTTP screenshot
2026-05-12 15:52:25 +02:00
Jack Carter
b968695737 ci: validate PRs with build and MDX heading linter (#743)
* ci: validate PRs with build and MDX heading linter

Adds a pull_request workflow running npm run lint:mdx, npm run build,
and npm run lint so heading-hierarchy bugs and broken builds get caught
before merge rather than after.

The new linter (scripts/lint-mdx-headings.mjs) enforces that the first
heading is h1 and that heading levels never jump by more than one. Also
fixes three existing pages that had no h1 title — two were using a
legacy export const title pattern, one was missing a title entirely.

* ci: use npm install since lockfile is gitignored

package-lock.json is in .gitignore, so npm ci and setup-node's npm
cache both fail on a fresh CI checkout. Match the Dockerfile pattern
(npm install, no cache) instead.

* ci: drop ESLint step; project config is broken

`npm run lint` fails with 'Converting circular structure to JSON'
under ESLint 9.x — the repo has no .eslintrc or eslint.config file,
so the legacy resolver hits the React plugin's circular reference.
This is pre-existing (build_n_push.yml never ran lint, so it stayed
hidden); fixing it needs flat-config migration and is out of scope.
Drop the step until that lands.
2026-05-12 15:18:07 +02:00
Jack Carter
1af8f57301 docs: rewrite traffic events logging Limitations section (#744)
* docs: rewrite traffic events logging Limitations section

The previous matrix mixed several inaccurate claims about feature
availability across WireGuard modes. Replace it with the actual
constraint — policy IDs and blocked events are only reported when
the destination/routing peer is in userspace mode — plus the
command Linux operators use to force userspace mode.

Collapse the two duplicated inline notes in the Correlating events
section into short pointers to Limitations so the constraint and
command live in one canonical place.

* Update src/pages/manage/activity/traffic-events-logging.mdx

Co-authored-by: Viktor Liu <17948409+lixmal@users.noreply.github.com>

---------

Co-authored-by: Viktor Liu <17948409+lixmal@users.noreply.github.com>
2026-05-12 15:17:42 +02:00
Maycon Santos
bc573143ae Add script to generate sitemap.xml and update related configurations (#742)
* Add script to generate sitemap.xml and update related configurations

* chore: add robots.txt referencing sitemap.xml

---------

Co-authored-by: Jack Carter <128555021+SunsetDrifter@users.noreply.github.com>
2026-05-12 10:13:30 +02:00
Jack Carter
ce68c49337 fix: promote routing-peer section headings to h2 (#741)
The page jumped from h1 directly to h3, leaving no h2 heading and
breaking the docs build. Promote both NetworkRouter and NetworkResource
sections to h2 so the hierarchy is contiguous.
2026-05-11 18:34:55 +02:00
Philipp Gillé
6b15feed76 Fix group & policy link in Android install docs (#736) 2026-05-11 18:22:25 +02:00
Viktor Liu
93f1fb265c Add IPv6 overlay addressing documentation (#667) 2026-05-11 17:48:31 +02:00
Philip Laine
612bca087a Update Netbird operator documentation with new resources (#738)
Signed-off-by: Philip Laine <philip.laine@gmail.com>
2026-05-11 17:07:33 +02:00
Vlad
694e009a08 bring your own proxy docs (#733) 2026-05-11 15:14:25 +02:00
Jack Carter
b6bc6579d5 docs: unhyphenate "Zero Trust" across the docs (#740)
House style writes "Zero Trust" / "zero trust" without a hyphen
in prose. Sweep all hyphenated prose occurrences under `src/pages/`
to match.

URL slugs (e.g. `/use-cases/security/implement-zero-trust`) and
external links (CrowdStrike press release / blog URLs that include
`zero-trust` as a path segment) are intentionally preserved.
2026-05-11 12:25:00 +02:00
Jack Carter
4449fb3e38 docs(access-control): correct policy direction claim across docs (#739)
Earlier docs asserted that policies using `ALL`, `ICMP`, or portless
`TCP`/`UDP` must be bidirectional. Data-plane testing on NetBird
0.59.10 shows the engine honors the direction flag for every
protocol — peer-d's iptables only installs the destination-side
`ACCEPT` rule, so reverse-initiated traffic is dropped at the source
even when the policy uses `ALL` or `ICMP`. The greyed-out direction
toggle in the dashboard is a UX guardrail, not an enforcement gap.

- manage-network-access.mdx: rewrite the Policies overview and
  Multiple Mesh Networks paragraphs; drop the outdated `Note`
  callout; trim Creating Policies guidance.
- access-control/index.mdx: rewrite Protocol-Specific Behavior;
  drop the "Always Bidirectional (regardless of UI setting)" list.
- implement-zero-trust.mdx: soften TCP/UDP+ports framing.
- troubleshooting-client.mdx: drop "always true for the protocol
  `ALL`" clause from the bidirectional-rule bullet.

Network-resource (routing peer) policies remain genuinely
unidirectional — that statement preserved.
2026-05-11 12:24:44 +02:00
Brandon Hopkins
e64d8012d7 Document cross-host proxy gRPC routing for multi-proxy deployments (#728)
* Prepare the management server for cross-host proxies

* Add warning and minor mdx fix
2026-05-08 09:59:07 -07:00
Jack Carter
3ff298c641 fix(api-template): repair Go brace and collapse summary whitespace (#735)
* fix(api-template): repair Go brace and collapse summary whitespace

The ApiTemplate accidentally emitted `{` instead of `}` for the closing
brace after the early-return error check in the Go example, leaving every
generated Go snippet syntactically invalid. The summary description was
also rendered raw, so multi-line OpenAPI descriptions broke the MDX
parser when the closing tag landed inside a JSX paragraph.

Fix the template at the source and regenerate the affected resource
pages so the API docs build cleanly again.

* chore: ignore generator tsbuildinfo
2026-05-08 09:32:51 -07:00
Jack Carter
b99bf2838e docs(peers): add bootstrap via config file guide (#731)
New page covering how to pre-populate default.json so NetBird peers
register with the right settings on first start in IaC, Docker, and
Kubernetes deployments. Documents file location across OSes, common
keys (with guidance to leave PrivateKey empty and treat PreSharedKey
as optional), runtime setup-key injection with worked Docker and
Kubernetes ConfigMap + Secret examples, backup hazards around the
embedded WireGuard private key, and how to verify registration via
netbird status --check startup, --json, and GET /api/peers.

Includes a callout that this workflow is for unattended workloads
only -- end-user devices should still enroll via the SSO flow so
Zero Trust can re-verify the user identity.

Linked from Manage NetBird -> Peers, right after Setup Keys.
2026-05-08 13:25:55 +02:00
Bruno Mercier Costa
58f1e94ec4 SSO Screenshot Update (#732)
SSO Screenshot Update
2026-05-07 16:15:23 +02:00
netbirddev
4afbc4442d Update API pages with v0.70.5 2026-05-05 18:39:56 +00:00
Jack Carter
69457628db docs(routing-peers): apply outstanding feedback and expand inbound links (#730)
* docs(routing-peers): apply outstanding review feedback

- Drop the unverified Cloud-specific settings subsection (AWS/GCP/Azure
  bullets) and the related AWS source/destination pitfall bullet
- Spell out "high availability" in the Masquerade note for clarity

* docs(routing-peers): expand inbound cross-links to How Routing Peers Work

Surface the routing peer primer from 11 high-leverage pages so readers
landing in a configuration or scenario guide can find the mental model
without having to backtrack through the sidebar.

- Index pages (manage/networks, manage/network-routes): move the
  cross-link from the page top into the Routing Peer(s) subsection,
  where it sits adjacent to existing routing-peer guidance
- exit-nodes scenario: cross-link inside the Routing Peer subsection,
  anchored at #exit-node-mode
- internal-dns-servers: cross-link under Domain Resources and Routing
  Peer DNS, anchored at #routing-peer-dns-resolution
- Procedural and comparison pages (access-control, by-scenario VPN-to-Site
  guides, site-to-site overview, Kubernetes operator, routing peers in
  Kubernetes): cross-link near the page top with section-specific anchors

* docs(routing-peers): spell out HA across the primer and cross-link notes

- Index-page cross-link notes (manage/networks, manage/network-routes):
  expand "HA" to "high availability" in the bullet list
- Primer page: spell out the three remaining HA references in the High
  availability section and Common pitfalls; use "highly available peers"
  as the adjective form
2026-05-05 14:39:41 +02:00
Jack Carter
47b6aa5164 docs: add How Routing Peers Work concept page (#727)
* docs: add How Routing Peers Work concept page

Add a feature-agnostic primer covering the routing peer mental model:
traffic flow through forward vs input chains, host requirements (IP
forwarding on Linux/Windows, container caps, cloud settings), HA modes
(primary/failover and equal-metric latency switching), masquerade,
access control, DNS routing, exit nodes, and common pitfalls. Surface
it in the sidebar under Networks and cross-link from both the Networks
and Network Routes concept pages.

* docs(routing-peers): apply review feedback

- Clarify mental-model walkthrough describes the Linux kernel-mode path
- Expand OS list to Linux/Windows/macOS/FreeBSD/Android/tvOS/Docker
- Correct container IP-forwarding guidance: set sysctl on the host
- Reframe Windows NB_ENABLE_LOCAL_FORWARDING as opt-in for exposing
  services on the routing peer's local addresses, off by default
- Soften failover wording to avoid implying tunnel rebuild; scope
  reset claim to established TCP connections, drop "typically"
- Add masquerade-off caveats: Linux only, breaks HA
- Drop unfounded ACL-Groups-require-masquerade Warning
- Drop misplaced internal-DNS-resolver link from DNS section intro
- Rename Wildcard domains section to Routing Peer DNS Resolution
- Drop container/host IP-forwarding pitfall (not a real-world failure)
- Rephrase exit-node ICMP pitfall: clients can't connect at all

* docs(routing-peers): add example for forward vs input chain policies

A concrete scenario (office subnet behind the peer + Grafana on
TCP/3000 + SSH on TCP/22) showing the two policies needed: a network
resource policy on the forward chain and a peer-to-peer policy on
the input chain.
2026-05-05 12:55:40 +02:00
Jack Carter
e22a81509e docs: refresh CLAUDE.md for Next 16 toolchain and API sidebar (#725)
* docs: refresh CLAUDE.md for Next.js 16 toolchain and API sidebar

- Note Node.js >=20.9 requirement (Next 16 fails the build below this)
- Update dev/build descriptions to mention gen:edit-routes; add start
  and gen:edit-routes to the common commands list
- Document the second sidebar file (NavigationAPI.jsx) alongside
  NavigationDocs.jsx so the API sidebar is discoverable

* docs: add Security boundaries section to CLAUDE.md

Calls out four posture items relevant to AI-assisted contributions:
the repo is public, .env is committed and must hold placeholders only,
npm run gen pulls upstream main without pinning, and CLAUDE.md itself
is authoritative input to AI sessions and should be reviewed accordingly.

* Documented gen:last-updated and generated src/lib/ files

---------

Co-authored-by: TechHutTV <brandon@techhut.tv>
2026-05-04 10:19:41 -07:00
Jack Carter
2ba7990c9a docs(api): document MSP cross-tenant access via ?account= parameter (#723)
Adds a new API guide covering the cross-tenant `?account=<tenant_id>`
query parameter that scopes calls to a specific tenant under an MSP
account. Includes setup steps for picking a user and generating a PAT,
how to retrieve tenant IDs via the MSP listing endpoint, read/write
examples, and auditing/security guidance.

Cross-references added from the Authentication guide, the MSP Portal
page, and the public-api token-creation page so the new guide is
discoverable from each entry point an MSP user is likely to hit.
2026-05-04 10:11:12 -07:00
Jack Carter
dd8fcab662 docs(self-host): surface embedded IdP sync docs in sidebar (#726)
Add the embedded IdP sync pages (Microsoft Entra ID API/SCIM, Google
Workspace, JumpCloud, Keycloak) under SELF-HOST NETBIRD so users can
discover them from the navigation instead of relying on direct links.

Regroup the Authentication subsection by purpose: Local Users, Identity
Provider Connectors (wraps Self-hosted and Managed IdPs), and Provision
Users & Groups.
2026-05-04 09:38:41 -07:00
Brandon Hopkins
28b7c13bd3 Added auto-generated "Updated..." line under H1 (#719) 2026-05-04 09:37:57 -07:00
Nicolas Frati
6645bc1068 add documentation to use the setup endpoint to create a pat token (#714) 2026-05-04 14:43:47 +02:00
shuuri-labs
a293b8a17b docs(macos): add CLI-only binary install and MDM deployment guide (#713)
* docs(macos): add CLI-only binary install and MDM deployment guide

Document the previously undocumented binary-only install path for macOS
using USE_BIN_INSTALL and SKIP_UI_APP flags. Add a new guide for
building custom CLI-only .pkg packages for MDM fleet deployment,
covering pkgbuild workflow, pre/postinstall scripts, setup key
enrollment, and update strategies.

* docs(macos): add warnings about unsigned binaries in tarballs

The darwin tarballs from GitHub releases contain unsigned binaries —
only the official .pkg goes through the sign pipeline. Add warnings
to both the install page and MDM guide, and document the full signing
workflow: codesign for the binary, pkgbuild --sign for the package,
and optional notarization via notarytool.
2026-05-04 10:07:39 +02:00
Misha Bragin
a4888e5bdd Add public ipv4 and ipv6 posture check (#718)
* Add public ipv4 and ipv6 posture check

* Further clarifications
2026-05-03 13:51:09 +02:00
Maycon Santos
a215b0358a Update slack url (#721) 2026-05-02 19:39:26 +02:00
Bethuel Mmbaga
d36c932b86 Add AWS Cognito SSO (#717) 2026-04-30 11:05:40 +03:00
Jack Carter
73a27883cf docs(adfs): simplify group rule and document filter customization (#716)
Replace the two-stage memberOf+RegExReplace group rule with a single
tokenGroups-based rule, and add a callout in Step 1.6 covering the most
common filter variations (different prefix, suffix, alternation, no
filter). Update troubleshooting refs to the new rule names.
2026-04-29 14:20:57 +02:00
shuuri-labs
10114fc7d7 docs: document Windows installer UI autostart behavior (#715)
Add silent installation section to the Windows install page covering
the AUTOSTART MSI property and the fixed EXE silent install default.
Update Intune and Acronis deployment guides to mention autostart.
2026-04-29 13:14:36 +02:00
netbirddev
fbf6283191 Update API pages with v0.70.1 2026-04-29 06:02:05 +00:00
Brandon Hopkins
9859e7d468 Improve self-hosted Traefik docs and CrowdSec observe-mode notes (#710)
* Crowdsec Updates

* Improve Traefik docs
2026-04-28 20:14:55 -07:00
Jack Carter
3062285c99 docs: add ADFS self-hosted identity provider guide (#705)
* docs: add ADFS with Web Application Proxy self-hosted guide

New guide for integrating on-prem Active Directory with ADFS as an OIDC
identity provider for self-hosted NetBird. Covers ADFS on a dedicated
member server, Web Application Proxy in a DMZ, Duo ADFS MFA Adapter,
claim transform rules, and the required NetBird configuration
(NETBIRD_TOKEN_SOURCE=idToken, NETBIRD_AUTH_USER_ID_CLAIM=upn).

* docs: rewrite ADFS guide for Community Edition Dashboard flow

Switch from standalone/setup.env style to the CE-native Dashboard-based
external IdP flow:

- Use a confidential Server Application (Add-AdfsServerApplication with
  generated client secret) instead of a Native Application with PKCE.
- Redirect URI now comes from NetBird's Settings > Identity Providers
  flow, not hard-coded /peers paths.
- Drop the NETBIRD_TOKEN_SOURCE and NETBIRD_AUTH_USER_ID_CLAIM env vars
  (those are standalone/commercial-license settings).
- Fix the base64 sub claim issue upstream in ADFS via a new claim rule
  (Rule 5) that emits sub from UPN, with a fallback note about
  PairwiseIdentifierEnabled for ADFS builds that need it.
- Update Troubleshooting and Configuration Summary to match.

* docs: expand ADFS Step 1 and Step 5 with deeper setup prose

Pull in the richer explanations from the updated source guide:

- Step 1 gets server-provisioning prerequisites, Get-WindowsFeature
  verification after role install, expanded TLS cert rationale with
  Test-Certificate, a three-option service-account discussion with the
  Get-KdsRootKey check and lab-mode EffectiveTime trick, a full
  troubleshooting block for Install-ADServiceAccount, per-parameter
  explanations for Install-AdfsFarm, and a Start-Service + event-log
  fallback plus detailed OIDC-endpoint troubleshooting in 1.5.
- Step 5 gets a full Provision the WAP Server section covering server
  specs, the domain-join decision (with SCADA framing generalized),
  pre-install firewall rules, hosts-file name resolution with Test-
  NetConnection, and exact Export-PfxCertificate/Import-PfxCertificate
  flow for the WAP cert. Step 5.3 is reframed as Establish the Proxy
  Trust with what-it-does and what-you-need callouts; 5.4 expands
  Get-WebApplicationProxyHealth troubleshooting.

CE-specific rewrites (Server Application flow, Dashboard IdP config,
Rule 5 sub override, Duo-optional framing) are preserved.

* docs: fix ADFS intra-page anchor links

@sindresorhus/slugify (the project's heading slug generator) splits
CamelCase words (NetBird -> net-bird) and inserts hyphens between
period-separated digits (2.3 -> 2-3). Update every in-page anchor to
match the generated slugs so step links resolve correctly.

Also redirect the UPN row in the AD attributes table to Step 3, since
the 'Required NetBird Configuration Settings' subsection it used to
reference was removed in the CE rewrite.

* docs: note that ADFS group-membership claim rules are optional

Rules 3a and 3b in Step 3 produce the 'groups' claim consumed by
JWT Group Sync. Add a Note explaining they can be skipped if group
sync isn't needed, and clarify that 3a and 3b must be kept together
(3a emits into a temp claim, 3b filters and renames it to 'groups').

* docs: expand ADFS Step 3 intro with context and per-rule overview

The prior one-sentence intro ('NetBird requires specific claims in the
OIDC tokens') didn't explain what issuance transform rules are or what
each of the six rules does. Add a paragraph on why ADFS needs them and
a short bullet list describing each rule's purpose and dependencies
(e.g., Rule 5 depends on Rule 4). The optional-rules Note and code
block follow unchanged.

* docs: fix ADFS guide inaccuracies flagged in review

- Replace Get-EventLog with Get-WinEvent in Step 1.5 — Get-EventLog
  only reads classic logs and cannot open 'AD FS/Admin', which lives
  under Applications and Services Logs.
- Remove references to Set-AdfsServerApplication -PairwiseIdentifierEnabled
  $false; that parameter does not exist on the cmdlet. Replace the
  fallback guidance with NETBIRD_AUTH_USER_ID_CLAIM="upn" in setup.env,
  which was the actual POC fix alongside the Rule 5 claim override.
- Restructure the 404 troubleshooting entry as a two-step fix
  (claim rule + NetBird env var) with a decode-token sanity check.
- Drop the 'Domain Users' example from the JWT group sync paragraph
  since Rule 3b's default '^NetBird-' filter would exclude it;
  clarify that visible groups are governed by the filter regex.
- Relabel the LDAP/LDAPS firewall row as 'directory and attribute
  lookups (claim data)' rather than 'authentication'; ADFS
  authenticates users via Kerberos and uses LDAP for attribute lookup.
- Add a clarifying Note to Step 2.5 explaining that the guide reuses
  the client_id as the Web API identifier for simplicity, and larger
  environments may prefer a distinct resource URI.

* docs: rewrite ADFS guide to focus on NetBird-specific configuration

* docs: nest ADFS/DC and WAP/NetBird in topology as separate boxes

* docs: refer to NetBird's Microsoft AD FS connector instead of Generic OIDC

* docs: rework ADFS topology diagram and convert callouts to Note components

* docs: rename Restricted/OT to Restricted Network in ADFS guide

* docs: drop Generic OIDC link from ADFS related resources

* docs: drop single-group limitation from ADFS guide
2026-04-28 15:29:46 +02:00
Maycon Santos
e1b55db10d Add new relay endpoints for streamline-de-fra1 (#712) 2026-04-28 01:31:24 +02:00
shuuri-labs
c0fa9329be docs(pfsense): remove hardcoded version from install instructions (#711)
Replace hardcoded v0.1.2/netbird-0.55.1 URLs with placeholders that
direct users to the latest GitHub release page. Adds architecture
guidance (x86_64 vs aarch64) and a concrete example showing how to
map release page values into the download commands. Also fixes step
numbering and removes version-specific package names from uninstall.
2026-04-27 16:38:51 +02:00
Basel Sayeh
122c58b6e1 Update configuration-files.mdx (#640)
Specify that encryptionKey is a base64 string of a key
2026-04-23 10:03:49 +02:00
Brandon Hopkins
5c13dd3a49 Update Crowdsec doc with context and images (#709) 2026-04-21 09:00:57 -07:00
shuuri-labs
a11e1a76b8 fix(docs): correct code fence language for PowerShell blocks (#708) 2026-04-21 16:40:26 +02:00
Maycon Santos
a02fe74b0d Add bypass docs (#577)
* Add force approval docs

* add force approval

* add filter and batch operation

* Rename force approval docs to bypass compliance

- Rename force-approval.mdx to bypass-compliance.mdx
- Update navigation title from "Force Approval" to "Bypass Compliance"
- Update all internal links to use new path
- Update image paths to /bypass-compliance/
- Update terminology in EDR integration docs

* add images

---------

Co-authored-by: Ashley Mensah <ashleyamo982@gmail.com>
2026-04-21 16:39:33 +02:00
Ucheagwu Onyike
2eb656db6b docs: rename accessTokenAcceptedVersion to requestedAccessTokenVersion (#370)
The Azure AD Graph app manifest format was deprecated in January 2025.
The attribute accessTokenAcceptedVersion has been renamed to
requestedAccessTokenVersion in the Microsoft Graph manifest format.

Co-authored-by: Ashley Mensah <ashleyamo982@gmail.com>
2026-04-21 15:58:16 +02:00
Bruno Mercier Costa
357c431103 Update Reverse Proxy Main (#659)
* Update Reverse Proxy Main

- Adapted Availability to only mention Beta access
- Adapted support of pre-shared keys, and only mention Rosenpass not being supported

* re-add reverse proxy beta note

---------

Co-authored-by: Ashley Mensah <ashleyamo982@gmail.com>
2026-04-21 14:48:45 +02:00
Bethuel Mmbaga
e0076457c8 Add IdP sync docs for embedded IdP (#696)
* Add embedded IdP sync docs

* Link idp sync to embedded idp sync docs

* fix: Add missing Note imports and fix NerBird typo in idp-sync docs

---------

Co-authored-by: Jack Carter <128555021+SunsetDrifter@users.noreply.github.com>
2026-04-21 14:23:55 +02:00
blotus
3d30f33a29 Update healthcheck command from capi to lapi (#707) 2026-04-20 18:47:38 +02:00