Skip to content

Restructure Troubleshooting into a hub with per-area pages#814

Merged
SunsetDrifter merged 8 commits into
netbirdio:mainfrom
emrcbrn:docs/troubleshooting-hub
Jun 26, 2026
Merged

Restructure Troubleshooting into a hub with per-area pages#814
SunsetDrifter merged 8 commits into
netbirdio:mainfrom
emrcbrn:docs/troubleshooting-hub

Conversation

@emrcbrn

@emrcbrn emrcbrn commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

Restructures the Troubleshooting docs from a few long pages into a hub with focused, per-area pages.

What changed

  • Troubleshooting hub (/help/troubleshooting): icon/chip cards to find your issue by area, and a "Still stuck?" CTA (Community / NetBird Support).
  • NetBird Client: an overview (a "collect diagnostics first" block, debug bundle, GRPC/ICE, login failures, reaching resources) plus per-OS pages — Linux, Windows, macOS, Android, iOS.
  • Self-hosted: an overview (with its own "collect diagnostics first" block) plus per-area pages — installation, embedded IdP, dashboard, certificates, connectivity, database.
  • Report bugs and issues: split into Community Support and NetBird Support pages, for clearer routing and per-page analytics.
  • New pages: resource-connectivity troubleshooting; a Cloud "pending approval" page; DNS Issue 8 (Windows NRPT rule blocked by a lingering GPO).
  • Cross-links added from the networks, DNS, and reverse-proxy docs; sidebar nav updated (incl. "Cloud & identity" and "Access control" groupings).

Validated with npm run build.

Screenshots

Overall look — Troubleshooting hub

Dark Light

NetBird Client (overview + per-OS)

Overview Windows

Self-hosted (overview + per-area)

Overview Connectivity

Report a bug → Community / NetBird Support

Landing Community NetBird Support

New content

Resource connectivity Cloud: pending approval DNS Issue 8 (lingering GPO)

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features
    • Rebuilt the Troubleshooting experience with a guided “Start here” flow, interactive troubleshooting tiles, and a “Still stuck?” support CTA.
    • Added Community Support, NetBird Support, and a streamlined “Report issues” help entry point.
    • Added new resource/connectivity troubleshooting content and refreshed NetBird client troubleshooting pages (Android, iOS, Linux, macOS, Windows).
    • Added topic-based self-hosted troubleshooting pages (embedded IdP, installation, certificates, connectivity, dashboard, and database) with legacy-friendly routing.
  • Bug Fixes
    • Improved troubleshooting navigation with nested menus and redirected legacy troubleshooting anchors/paths.
    • Refined troubleshooting documentation to better isolate causes and next steps across key scenarios (including relayed connections and Windows NRPT).

- Add a Troubleshooting hub (/help/troubleshooting) with icon/chip cards and a "Still stuck?" CTA
- Split NetBird Client troubleshooting into an overview + per-OS pages (Linux, Windows, macOS, Android, iOS)
- Split Self-hosted troubleshooting into an overview + per-area pages (installation, IdP, dashboard, certificates, connectivity, database)
- Split "Report bugs and issues" into Community Support and NetBird Support pages
- Add Troubleshooting resource connectivity and a NetBird Cloud pending-approval page
- Add DNS troubleshooting Issue 8 (Windows NRPT rule blocked by a lingering GPO)
- Cross-reference the new pages from networks, DNS, and reverse-proxy docs; update nav

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Warning

Review limit reached

@SunsetDrifter, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 13 minutes and 56 seconds. Learn how PR review limits work.

Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file).

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based credits.

🚦 How do rate limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 9f3ff132-035a-477f-869e-f18c7aa8c5ae

📥 Commits

Reviewing files that changed from the base of the PR and between 145d7ca and 3cce021.

📒 Files selected for processing (7)
  • src/pages/help/troubleshooting-client.mdx
  • src/pages/manage/dns/troubleshooting.mdx
  • src/pages/selfhosted/troubleshooting.mdx
  • src/pages/selfhosted/troubleshooting/certificates.mdx
  • src/pages/selfhosted/troubleshooting/connectivity.mdx
  • src/pages/selfhosted/troubleshooting/dashboard.mdx
  • src/pages/selfhosted/troubleshooting/identity-provider.mdx
📝 Walkthrough

Walkthrough

The PR restructures troubleshooting navigation, adds reusable support and troubleshooting components, and introduces new help, client, self-hosted, DNS, connectivity, and relay documentation pages and cross-links.

Changes

Troubleshooting docs overhaul

Layer / File(s) Summary
Navigation updates
src/components/NavigationDocs.jsx
docsNavigation now nests the self-hosted Troubleshooting section and expands GET MORE HELP into grouped troubleshooting categories.
Shared troubleshooting components
src/components/StillStuck.jsx, src/components/SupportBanner.jsx, src/components/TroubleshootingStart.jsx, src/components/TroubleshootingTiles.jsx, src/components/HashRedirect.jsx
Reusable support and troubleshooting components are added for banners, still-stuck actions, start-here steps, tile grids, and legacy fragment routing.
Help support pages
src/pages/help/troubleshooting.mdx, src/pages/help/community-support.mdx, src/pages/help/netbird-support.mdx, src/pages/help/report-bug-issues.mdx, src/pages/help/troubleshooting-account-access.mdx
The troubleshooting landing page and support-routing pages add linked guidance for community support, NetBird Support, bug reporting, and account access.
Client troubleshooting overview
src/pages/help/troubleshooting-client.mdx
The main client troubleshooting page switches to the shared components, updates bundle and logging guidance, and removes the host-firewall section.
Client platform pages
src/pages/help/troubleshooting-client/*.mdx
Android, iOS, Linux, macOS, and Windows client troubleshooting pages add platform-specific logging, foreground-mode, firewall, and DNS guidance.
Self-hosted troubleshooting
src/pages/selfhosted/troubleshooting.mdx, src/pages/selfhosted/troubleshooting/*.mdx, src/pages/selfhosted/external-reverse-proxy.mdx
The self-hosted troubleshooting landing page is rebuilt around the shared components, and installation, certificates, connectivity, dashboard, database, and identity-provider pages are added with updated routing text.
Connectivity and DNS
src/pages/help/troubleshooting-resource-connectivity.mdx, src/pages/manage/networks/*, src/pages/manage/dns/troubleshooting.mdx, src/pages/manage/reverse-proxy/troubleshooting.mdx
The resource-connectivity guide is added, related manage and reverse-proxy pages point to it, and DNS troubleshooting adds a resource-connectivity handoff note plus a Windows NRPT/GPO issue.
Relay guidance
src/pages/help/troubleshooting-relayed-connections.mdx
The relayed-connections guide is reworded and reorganized across its opening explanation, decision flow, walkthrough, rollout checklist, and relay guidance.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related PRs

  • netbirdio/docs#764: Both PRs modify src/components/NavigationDocs.jsx’s exported docsNavigation under the “GET MORE HELP” section by updating the nested submenu/navigation groups.
  • netbirdio/docs#786: Both PRs touch src/components/NavigationDocs.jsx in ways that directly interact: the main PR reshapes docsNavigation to introduce nested links-based troubleshooting groups with explicit isOpen: false, while the retrieved PR changes NavigationDocs rendering/open-state logic to make links groups collapsible and to respect isOpen.
  • netbirdio/docs#791: The main PR restructures the troubleshooting navigation and related cross-links, and the retrieved PR adds the specific /help/troubleshooting-relayed-connections page plus a corresponding troubleshooting entry in NavigationDocs.jsx.

Suggested reviewers

  • SunsetDrifter
  • mlsmaycon

Poem

🐇 I hopped through docs by moonlit glow,
New trails and tiles now help folks know.
From client logs to self-hosted signs,
The right path blooms in tidy lines.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 33.33% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: restructuring troubleshooting docs into a hub with per-area pages.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

- Use "client" instead of "agent" across the client troubleshooting pages (headings, prose, anchors)
- Remove unused source: props from the Troubleshooting hub tiles
- Relabel the "NetBird Cloud" grouping to "Cloud & identity" (SSO/provisioning also apply to self-hosted)
- Add a Tiles title on the report-bug landing; add reverse-proxy -> resource-connectivity cross-link
- Fix comma splices introduced by the em-dash cleanup in relayed-connections

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@src/pages/help/community-support.mdx`:
- Around line 12-15: The GitHub Discussions anchor in the links array is
mismatched with the heading slug, so update the entry in the community support
page’s links list to use the same generated ID as the “GitHub Discussions”
heading. Locate the links configuration in the MDX content and change the href
for the GitHub Discussions item to the slugified anchor expected from the
heading text so the sidebar/link jumps correctly.

In `@src/pages/help/troubleshooting-relayed-connections.mdx`:
- Line 48: The troubleshooting link in the relayed connections doc points to a
likely stale fragment on the general client troubleshooting page. Update the
link in troubleshooting-relayed-connections.mdx near the “Start from the general
client troubleshooting page” reference to use the page root or the current
heading slug verified in the client troubleshooting content, so the target is
reliably reachable.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 152145fc-98c4-471e-91f7-0969b60083aa

📥 Commits

Reviewing files that changed from the base of the PR and between e21d6da and e0b67f5.

📒 Files selected for processing (31)
  • src/components/NavigationDocs.jsx
  • src/components/StillStuck.jsx
  • src/components/SupportBanner.jsx
  • src/components/TroubleshootingStart.jsx
  • src/components/TroubleshootingTiles.jsx
  • src/pages/help/community-support.mdx
  • src/pages/help/netbird-support.mdx
  • src/pages/help/report-bug-issues.mdx
  • src/pages/help/troubleshooting-account-access.mdx
  • src/pages/help/troubleshooting-client.mdx
  • src/pages/help/troubleshooting-client/android.mdx
  • src/pages/help/troubleshooting-client/ios.mdx
  • src/pages/help/troubleshooting-client/linux.mdx
  • src/pages/help/troubleshooting-client/macos.mdx
  • src/pages/help/troubleshooting-client/windows.mdx
  • src/pages/help/troubleshooting-relayed-connections.mdx
  • src/pages/help/troubleshooting-resource-connectivity.mdx
  • src/pages/help/troubleshooting.mdx
  • src/pages/manage/dns/troubleshooting.mdx
  • src/pages/manage/networks/how-routing-peers-work.mdx
  • src/pages/manage/networks/index.mdx
  • src/pages/manage/networks/use-cases/reach-services-on-the-routing-peer.mdx
  • src/pages/manage/reverse-proxy/troubleshooting.mdx
  • src/pages/selfhosted/external-reverse-proxy.mdx
  • src/pages/selfhosted/troubleshooting.mdx
  • src/pages/selfhosted/troubleshooting/certificates.mdx
  • src/pages/selfhosted/troubleshooting/connectivity.mdx
  • src/pages/selfhosted/troubleshooting/dashboard.mdx
  • src/pages/selfhosted/troubleshooting/database.mdx
  • src/pages/selfhosted/troubleshooting/identity-provider.mdx
  • src/pages/selfhosted/troubleshooting/installation.mdx

Comment thread src/pages/help/community-support.mdx
Comment thread src/pages/help/troubleshooting-relayed-connections.mdx
Old deep links like /selfhosted/troubleshooting#debugging-turn-connections now
forward to the per-area page, since next.config redirects can't act on the URL fragment.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@emrcbrn

emrcbrn commented Jun 25, 2026

Copy link
Copy Markdown
Contributor Author

Thanks for the review — addressed:

  • "agent" → "the NetBird client" across the client pages (headings, prose, and dependent anchors).
  • Removed the dead source: props from the hub tiles.
  • Relabeled "NetBird Cloud""Cloud & identity" (SSO / user provisioning also apply to self-hosted).
  • Added the missing reverse-proxy → resource-connectivity cross-link, and a <Tiles> title on the report-bug landing.
  • Fixed the comma splices from the em-dash cleanup.
  • Corrected the description (the "collect diagnostics first" block lives on the client/self-hosted overviews, not the hub).

Two notes where I diverged:

  • Moved-anchor deep links: next.config redirects can't act on the URL fragment (#… never reaches the server), so a small client-side HashRedirect on the self-hosted overview now forwards old links (e.g. #debugging-turn-connections) to the per-area page. Internal links were already repointed.
  • "Still stuck?" both-primary is intentional — the two CTAs are deliberately equal-weight (separated by "or") so neither reads as preferred.

- "open source" (no hyphen), expand NRPT on first use, descriptive alt text + captions on TURN images
- Fix inherited "Netbird" casing in the client glossary
- Reshape the six self-hosted area pages to Symptom -> likely causes (ordered) -> Fix -> Confirm, preserving anchored headings

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

Caution

Failed to replace (edit) comment. This is likely due to insufficient permissions or the comment being deleted.

Error details
{}

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 5

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@src/pages/help/community-support.mdx`:
- Line 11: The user-facing description in the community support page should use
the hyphenated “open-source” form for consistency. Update the copy in the
relevant MDX frontmatter/description text associated with community-support so
it reads “open-source self-hosted deployments,” keeping the rest of the wording
unchanged.

In `@src/pages/help/report-bug-issues.mdx`:
- Line 4: Standardize the wording in the help content to use “open-source”
consistently in both descriptions. Update the string in the bug reporting page
and the matching text near the referenced second occurrence so the same
hyphenated form is used everywhere; focus on the copy in report-bug-issues.mdx
and the related description text it contains.

In `@src/pages/help/troubleshooting-client.mdx`:
- Line 512: The glossary entry contains a typo in the troubleshooting-client
content: the term “nunning” should be corrected to “running”. Update the text in
the `troubleshooting-client.mdx` glossary item for `int-dns2` so the description
reads naturally and matches the intended wording.
- Line 740: Fix the possessive typo in the routing-table sentence by changing
the wording in the troubleshooting content from “it’s custom routes” to “its
custom routes.” Update the sentence in the MDX documentation where the NetBird
client routing table is described so the possessive form is correct and
consistent with the surrounding text.

In `@src/pages/selfhosted/troubleshooting.mdx`:
- Line 88: Update the support-routing sentence in troubleshooting.mdx to use the
consistent “Open-source self-hosted” wording instead of “Open source
self-hosted”; make this text-only doc copy change in the support links section
and keep the rest of the sentence structure unchanged.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: b8212108-a023-4a25-acf0-bbe27ad4a43c

📥 Commits

Reviewing files that changed from the base of the PR and between e0b67f5 and 87fecf2.

📒 Files selected for processing (14)
  • src/components/HashRedirect.jsx
  • src/pages/help/community-support.mdx
  • src/pages/help/netbird-support.mdx
  • src/pages/help/report-bug-issues.mdx
  • src/pages/help/troubleshooting-client.mdx
  • src/pages/help/troubleshooting-client/windows.mdx
  • src/pages/manage/dns/troubleshooting.mdx
  • src/pages/selfhosted/troubleshooting.mdx
  • src/pages/selfhosted/troubleshooting/certificates.mdx
  • src/pages/selfhosted/troubleshooting/connectivity.mdx
  • src/pages/selfhosted/troubleshooting/dashboard.mdx
  • src/pages/selfhosted/troubleshooting/database.mdx
  • src/pages/selfhosted/troubleshooting/identity-provider.mdx
  • src/pages/selfhosted/troubleshooting/installation.mdx
✅ Files skipped from review due to trivial changes (3)
  • src/pages/selfhosted/troubleshooting/certificates.mdx
  • src/pages/selfhosted/troubleshooting/dashboard.mdx
  • src/pages/help/troubleshooting-client/windows.mdx
🚧 Files skipped from review as they are similar to previous changes (5)
  • src/pages/selfhosted/troubleshooting/database.mdx
  • src/pages/manage/dns/troubleshooting.mdx
  • src/pages/selfhosted/troubleshooting/connectivity.mdx
  • src/pages/selfhosted/troubleshooting/identity-provider.mdx
  • src/pages/help/netbird-support.mdx

Comment thread src/pages/help/community-support.mdx
Comment thread src/pages/help/report-bug-issues.mdx
Comment thread src/pages/help/troubleshooting-client.mdx Outdated
Comment thread src/pages/help/troubleshooting-client.mdx Outdated
Comment thread src/pages/selfhosted/troubleshooting.mdx
- "nunning" -> "running" in the glossary
- possessive "it's" -> "its" in the routing-table sentence

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@emrcbrn

emrcbrn commented Jun 25, 2026

Copy link
Copy Markdown
Contributor Author

Thanks @coderabbitai — went through all seven:

Fixed (troubleshooting-client.mdx):

  • "nunning" → "running" in the glossary
  • possessive "it's" → "its" in the routing-table sentence

Not applied, with reasons:

  • #git-hub-discussions and #net-bird-client-status are correct. This repo slugifies headings with @sindresorhus/slugify (decamelize on), so GitHub Discussionsgit-hub-discussions and NetBird client statusnet-bird-client-status. Verified against the rendered HTML — id="git-hub-discussions" and id="net-bird-client-status" exist; #github-discussions does not. The github-slugger assumption doesn't hold here.
  • "open source" (no hyphen) is intentional, per NetBird's docs house style. Keeping it unhyphenated.

@coderabbitai

coderabbitai Bot commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

Tip

For best results, initiate chat on the files or code changes.

@emrcbrn The PR description images show a substantial docs restructure centered on troubleshooting: a new top-level “Troubleshooting” hub in both dark and light themes with issue-area cards for NetBird Client, Self-hosted, Cloud & identity, Connectivity & networking, and Access control, plus a bottom “Still stuck?” panel with equal-weight CTAs for Contact our Community and Contact NetBird Support. They also show the new client overview page with a “Collect diagnostics first” start card and platform guides, a Windows-specific client page covering permanent log level, foreground mode via PSExec, firewall checks, and Windows DNS scenarios, a self-hosted troubleshooting hub with diagnostics-first steps, a self-hosted connectivity page covering TURN and Management reachability, the split reporting/support pages (Report bugs and issues, Community Support, NetBird Support), and a new Troubleshooting resource connectivity guide with the routing-peer/status mental model.

Thanks for the careful pass-through.

  • The two text fixes in troubleshooting-client.mdx sound good.
  • And your clarification on the anchors makes sense — if this repo uses @sindresorhus/slugify with decamelize enabled, then #git-hub-discussions and #net-bird-client-status are the correct IDs here.
  • Same for “open source”: if that’s the NetBird docs house style, keeping it unhyphenated is the right call.

I’m happy to drop those two earlier suggestions.
(•ᴗ•)づ


✏️ Learnings added
Learnt from: emrcbrn
URL: https://github.com/netbirdio/docs/pull/814

Timestamp: 2026-06-25T16:04:44.593Z
Learning: In the NetBird docs repository, MDX heading anchors are generated with `sindresorhus/slugify` with decamelize enabled, not `github-slugger`; for example, `GitHub Discussions` becomes `git-hub-discussions` and `NetBird client status` becomes `net-bird-client-status`.

Learnt from: emrcbrn
URL: https://github.com/netbirdio/docs/pull/814

Timestamp: 2026-06-25T16:04:44.593Z
Learning: NetBird documentation house style intentionally uses `open source` without a hyphen; reviews should not suggest changing it to `open-source` in docs pages.

Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.

- database: point the "upgrade path" link at /selfhosted/maintenance/upgrade;
  selfhosted-quickstart has no #upgrade anchor so the old link landed at page top
- client: add HashRedirect so old #net-bird-agent-status deep links forward to
  the renamed #net-bird-client-status section on the same page
- self-hosted troubleshooting: extend the HashRedirect map with the per-issue
  (###-level) anchors from the old single page, so old deep links land on the
  exact sub-section of the new area page rather than just the page top
- client glossary: lowercase "NetBird client" in the peer-a/peer-b entries
  (house convention) and fix "linux" -> "Linux"
- connectivity: fix bad CSS class imagewrapper-nig -> imagewrapper on the
  TURN-test screenshot (the typo'd class matched no style and broke zoom)
- gloss acronyms on first use: GPO (DNS Issue 8), IdP/SSO (identity-provider),
  ACME (certificates), CORS (dashboard)
@SunsetDrifter SunsetDrifter merged commit 5729ad0 into netbirdio:main Jun 26, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants