Commit Graph
196 Commits
Author SHA1 Message Date
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 CarterandViktor Liu 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
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
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
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
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 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
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
Bethuel Mmbaga d36c932b86 Add AWS Cognito SSO (#717) 2026-04-30 11:05:40 +03: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
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
Maycon SantosandAshley Mensah 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
Bruno Mercier CostaandAshley Mensah 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 MmbagaandJack Carter 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
Pascal Fischer fc88effba3 add proxy access log retention section (#693) 2026-04-20 18:45:02 +02:00
shuuri-labs 79c99b23ab Added mention of peer disconnection notification feature to networks docs (#706) 2026-04-20 17:13:43 +02:00
Viktor Liu b2602add87 Add CrowdSec IP reputation documentation (#698) 2026-04-16 18:06:43 +02:00
Bruno Mercier Costa 6f88f3fea8 Update index.mdx (#703)
Remove isolated comma `,`
2026-04-16 10:22:27 +02:00
Jack Carter 17e4f340e3 docs: add minimum access policy note for exit nodes (#702) 2026-04-15 13:55:36 +02:00
Eduard Gert a4db2c6100 Add slack notifications docs (#697) 2026-04-14 14:21:30 +02:00
Bethuel Mmbaga 9b4c75421d Mark Step 1 Optional in Zitadel SSO Doc (#692) 2026-04-09 17:58:59 +03:00
Bethuel Mmbaga a95036e9ee Add Zitadel SSO docs (#691) 2026-04-09 17:19:26 +03:00
Eduard Gert 918b8579c2 Add notification docs and fix search autofocus (#647) 2026-04-09 13:15:45 +03:00
Maycon Santos a8b7150ec4 Document managing access to routing peer in networks guide (#689) 2026-04-08 16:20:45 +02:00
Viktor Liu 1d942ae531 Add extra DNS labels documentation page (#661) 2026-04-08 14:54:52 +02:00
Brandon Hopkins 5835e7a0c7 Geo-restrictions block internal traffic from the management server (#682) 2026-04-07 11:52:55 +02:00
Jack Carter 679ad7b3ad docs: add Entra ID enterprise application enablement guide (#677)
Add documentation for enabling the NetBird enterprise application in
Microsoft Entra ID, including finding the app by Application ID and
granting admin consent for the directory.
2026-04-01 16:37:56 +02:00
Misha Bragin e17482abaa Improve screenshot quality and add access restrictions screenshot (#675) 2026-04-01 12:25:57 +02:00
f169522dde Document L4 service modes, header authentication, and access restrictions (#666)
---------

Co-authored-by: Brandon Hopkins <brandon@techhut.tv>
Co-authored-by: Ashley Mensah <ashleyamo982@gmail.com>
2026-04-01 11:22:04 +02:00
Maycon SantosandJack Carter 303307d791 Add FleetDM integration to EDR documentation (#673)
* Add FleetDM integration to EDR documentation

* docs: Improve FleetDM API token note wording

---------

Co-authored-by: Jack Carter <128555021+SunsetDrifter@users.noreply.github.com>
2026-03-31 19:08:02 +02:00
Brandon Hopkins 85e12be9ff Add Reverse Proxy Troubleshooting Page & Clean Up Availability Notes (#672)
* Add troubleshoot page and remove availability notes

* Added Debugging with the Proxy Debug Endpoint

* localhost is unreachable and packet capture
2026-03-30 09:50:01 -07:00
Thomas Bray dd72c79999 Fix formatting in public API documentation (#671) 2026-03-28 10:30:44 -07:00
Abdul Latif 6db1481f1b Add section to disable Netbird SSH server (#670)
Added instructions to disable the Netbird SSH server.
2026-03-28 10:29:05 -07:00
Nicolas Frati dda8cd1b45 add documentation for k8s operator gateway api beta (#668) 2026-03-24 09:09:23 +01:00
Brandon Hopkins 515c809bbf Edit Availability Note (#662) 2026-03-19 14:25:15 +01:00
Jack Carter ab4dea94db docs: Add WireGuard port conflict troubleshooting for Domain Controllers (#660)
Document the issue where Windows DNS Server claims UDP port 51820,
preventing WireGuard from starting on Domain Controllers. Covers
symptoms, diagnosis steps, and the dnscmd fix.
2026-03-18 10:23:45 +01:00
Bruno Mercier Costa 875d7bc497 Update connecting-from-the-office.mdx (#657)
fixing a typo from "agaom" to "again"
2026-03-17 13:25:28 +01:00
shuuri-labs 8680e5e822 Document TLS-ALPN-01 challenge requirements for reverse proxy (#656) 2026-03-16 15:26:52 +01:00
Bethuel Mmbaga 31a1eb5642 Update keycloak initial sync steps (#654) 2026-03-16 14:28:45 +03:00
Zoltan Papp e0f5fbf445 Extend the auto update feature with force flag (#653) 2026-03-13 21:40:32 +01:00
shuuri-labs 4b5fa2b2f4 Update networks docs to reflect new state of 'add resource' modal (#651) 2026-03-13 15:17:30 +01:00
Brandon Hopkins b2cab09cdc Add Remote Jobs Page (#644) 2026-03-04 13:57:20 +01:00
Bethuel Mmbaga cb44c913b7 Update Microsoft Entra SCIM docs (#642) 2026-03-03 20:44:41 +03:00
shuuri-labsandBrandon Hopkins b35d3ce6c8 Add backend service configuration guide trusted proxies and fix images (#639)
* Add backend service configuration guide for reverse proxy trusted proxies

Many self-hosted services (Jellyfin, Home Assistant, Nextcloud, Plex)
require a "trusted proxies" or "known hosts" setting when behind a
reverse proxy. With NetBird, the proxy's IP is a dynamic NetBird IP
from 100.64.0.0/10 that can change on restart, so hardcoding it breaks.

This adds a new doc page with the recommended solution (trust the full
CGNAT range), per-service config examples, Docker bridge network
guidance, and a warning on the reverse proxy overview page.

* Update service-configuration.mdx and move/add images

* Fixing typos

---------

Co-authored-by: Brandon Hopkins <brandon@techhut.tv>
2026-02-27 20:27:30 +01:00