Skip to content

Add OpenWrt installation guide#777

Open
TechHutTV wants to merge 4 commits into
mainfrom
new/openwrt-install
Open

Add OpenWrt installation guide#777
TechHutTV wants to merge 4 commits into
mainfrom
new/openwrt-install

Conversation

@TechHutTV

@TechHutTV TechHutTV commented Jun 5, 2026

Copy link
Copy Markdown
Collaborator

Adds a new installation guide for running the NetBird client on OpenWrt routers at /get-started/install/openwrt also added to sidebar navigation.

Summary by CodeRabbit

  • Documentation
    • Added new OpenWrt installation documentation for NetBird client
    • OpenWrt router platform now available in installation guides
    • Guide includes package installation, DNS configuration, network routing, and configuration persistence across firmware updates

@coderabbitai

coderabbitai Bot commented Jun 5, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Warning

Review limit reached

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

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

Your organization has run out of usage credits. Purchase more credits in the billing tab to continue.

⌛ 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.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

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: 6eaf43a4-0ec3-4990-9a1a-032ebfd6609d

📥 Commits

Reviewing files that changed from the base of the PR and between 24bfd35 and f210619.

📒 Files selected for processing (1)
  • src/pages/get-started/install/openwrt.mdx
📝 Walkthrough

Walkthrough

This PR adds complete OpenWrt installation documentation for NetBird, including navigation integration, a full installation guide with network configuration steps, and guidance on configuration persistence across firmware upgrades.

Changes

OpenWrt Installation Documentation

Layer / File(s) Summary
Documentation discoverability
src/components/NavigationDocs.jsx, src/pages/get-started/install/index.mdx
Navigation menu and install page updated to include OpenWrt under GET STARTED → Install → Platforms.
Installation guide foundation
src/pages/get-started/install/openwrt.mdx
Page description, OpenWrt compatibility table, prerequisites, release-specific installation steps (opkg vs apk), and connection setup with setup key and WireGuard interface verification.
Network and DNS configuration
src/pages/get-started/install/openwrt.mdx
DNS configuration via custom resolver port and dnsmasq forwarding rules; LAN traffic routing through NetBird network interface and firewall zone definitions.
Persistence and engagement
src/pages/get-started/install/openwrt.mdx
Configuration persistence across sysupgrade with version-dependent storage paths; call-to-action section with pricing and release links.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Suggested reviewers

  • braginini
  • mlsmaycon

Poem

🐰 A router joins the network fold,
With OpenWrt guides, brave and bold,
DNS routed, firewalls set,
NetBird's reach expands—no net regret! 🌐✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Add OpenWrt installation guide' directly and clearly describes the main change: adding a new installation guide for OpenWrt, which is the primary purpose of this PR.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
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.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch new/openwrt-install

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 and usage tips.

@TechHutTV TechHutTV changed the title Add OpenWRT install steps Add OpenWrt installation guide Jun 10, 2026
@TechHutTV TechHutTV marked this pull request as ready for review June 10, 2026 23:24

@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

🧹 Nitpick comments (2)
src/pages/get-started/install/openwrt.mdx (2)

89-97: 💤 Low value

Consider clarifying the DNS resolver configuration flow.

The text states that "NetBird automatically falls back to an alternative port" (line 93), but then shows a manual flag to set it explicitly (line 96). While the explanation "pinning the address keeps the dnsmasq forwarding rule below valid" is accurate, the transition could be clearer for readers.

✍️ Suggested clarification

Consider rephrasing to emphasize the purpose of the manual flag:

-When port 53 is taken, NetBird automatically falls back to an alternative port, but pinning the address keeps the dnsmasq forwarding rule below valid:
+NetBird automatically detects when port 53 is unavailable and uses an alternative port. However, explicitly setting the resolver address ensures the dnsmasq forwarding rule below remains stable across restarts:
🤖 Prompt for 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.

In `@src/pages/get-started/install/openwrt.mdx` around lines 89 - 97, Clarify the
DNS resolver flow by explaining that NetBird will auto-select an unused port if
port 53 is occupied but you can explicitly pin the resolver address using the
netbird up --dns-resolver-address 127.0.0.1:5053 flag so the dnsmasq forwarding
rule remains stable; update the paragraph around the mention of automatic
fallback (NetBird automatically falls back to an alternative port) to state that
the flag is optional but recommended when configuring dnsmasq forwarding to a
fixed address (mention NetBird, dnsmasq, and the netbird up
--dns-resolver-address flag to locate the text).

162-162: ⚡ Quick win

Use href prop instead of onClick for navigation.

The Button component appears to support an href prop (as used in index.mdx line 7), which is more semantic and accessible than using onClick with window.open(). Using href provides better keyboard navigation, screen reader support, and allows users to right-click and open in a new tab.

♿ Proposed fix for better accessibility
-    <Button name="button" className="button-5" onClick={() => window.open("https://netbird.io/pricing")}>Use NetBird</Button>
+    <Button href="https://netbird.io/pricing" className="button-5">Use NetBird</Button>
🤖 Prompt for 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.

In `@src/pages/get-started/install/openwrt.mdx` at line 162, Replace the inline
onClick using window.open with the Button component's href prop to improve
semantics and accessibility: locate the Button element (name="button",
className="button-5") and remove the onClick handler, set
href="https://netbird.io/pricing" and, if the Button supports external links,
add target="_blank" and rel="noopener noreferrer" to preserve the original
behavior of opening a new tab safely.
🤖 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/components/NavigationDocs.jsx`:
- Line 80: NavigationAPI.jsx is missing the new OpenWrt nav entry added in
NavigationDocs.jsx; update the navigation data in
src/components/NavigationAPI.jsx to include the object { title: 'OpenWrt', href:
'/get-started/install/openwrt' } under the same Platforms → GET STARTED →
Install grouping so the API-driven navigation matches NavigationDocs.jsx and the
new page is discoverable. Ensure the new entry uses the exact title and href
strings and is placed alongside the other install entries in the existing
navigation array/object.

In `@src/pages/get-started/install/openwrt.mdx`:
- Line 1: Add the missing import for the Note MDX component: update the MDX file
to import Note from "`@/components/mdx`" (i.e., add an import for the Note
component used in the file) so the <Note> usage on lines ~22-24 resolves; ensure
the import statement follows other MDX imports and uses the exact exported name
"Note".

---

Nitpick comments:
In `@src/pages/get-started/install/openwrt.mdx`:
- Around line 89-97: Clarify the DNS resolver flow by explaining that NetBird
will auto-select an unused port if port 53 is occupied but you can explicitly
pin the resolver address using the netbird up --dns-resolver-address
127.0.0.1:5053 flag so the dnsmasq forwarding rule remains stable; update the
paragraph around the mention of automatic fallback (NetBird automatically falls
back to an alternative port) to state that the flag is optional but recommended
when configuring dnsmasq forwarding to a fixed address (mention NetBird,
dnsmasq, and the netbird up --dns-resolver-address flag to locate the text).
- Line 162: Replace the inline onClick using window.open with the Button
component's href prop to improve semantics and accessibility: locate the Button
element (name="button", className="button-5") and remove the onClick handler,
set href="https://netbird.io/pricing" and, if the Button supports external
links, add target="_blank" and rel="noopener noreferrer" to preserve the
original behavior of opening a new tab safely.
🪄 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: 1c1bf057-576e-42c6-96e3-59d6772cfce6

📥 Commits

Reviewing files that changed from the base of the PR and between c2ccdf4 and 24bfd35.

⛔ Files ignored due to path filters (3)
  • public/docs-static/img/get-started/openwrt/netbird-connected-setup-key.png is excluded by !**/*.png
  • public/docs-static/img/get-started/openwrt/netbird-installed.png is excluded by !**/*.png
  • public/docs-static/img/get-started/openwrt/openwrt-package-update.png is excluded by !**/*.png
📒 Files selected for processing (3)
  • src/components/NavigationDocs.jsx
  • src/pages/get-started/install/index.mdx
  • src/pages/get-started/install/openwrt.mdx

{ title: 'TrueNAS', href: '/get-started/install/truenas' },
{ title: 'pfSense', href: '/get-started/install/pfsense' },
{ title: 'OPNsense', href: '/get-started/install/opnsense' },
{ title: 'OpenWrt', href: '/get-started/install/openwrt' },

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.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Description: Check if NavigationAPI.jsx exists and whether it needs updating for the new OpenWrt page

# Search for NavigationAPI.jsx and check if it contains navigation structure
if fd -t f 'NavigationAPI.jsx' src/components/; then
  echo "=== NavigationAPI.jsx found, checking for install/platform navigation structure ==="
  rg -n -C5 'install.*platform|platform.*install|openwrt|OpenWrt' src/components/NavigationAPI.jsx
else
  echo "NavigationAPI.jsx not found - sync requirement may not apply"
fi

Repository: netbirdio/docs

Length of output: 175


Update NavigationAPI.jsx to include the new OpenWrt navigation entry

  • src/components/NavigationDocs.jsx adds { title: 'OpenWrt', href: '/get-started/install/openwrt' } (Platforms → GET STARTED → Install).
  • A search of src/components/NavigationAPI.jsx for openwrt/OpenWrt and install/platform-related patterns returned no matches, so the NavigationAPI navigation is likely out of sync with NavigationDocs for this new page outside src/pages/ipa/.
🤖 Prompt for 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.

In `@src/components/NavigationDocs.jsx` at line 80, NavigationAPI.jsx is missing
the new OpenWrt nav entry added in NavigationDocs.jsx; update the navigation
data in src/components/NavigationAPI.jsx to include the object { title:
'OpenWrt', href: '/get-started/install/openwrt' } under the same Platforms → GET
STARTED → Install grouping so the API-driven navigation matches
NavigationDocs.jsx and the new page is discoverable. Ensure the new entry uses
the exact title and href strings and is placed alongside the other install
entries in the existing navigation array/object.

Source: Coding guidelines

Comment thread src/pages/get-started/install/openwrt.mdx
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.

1 participant