Skip to content

Add OpenWrt installation guide#777

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

Add OpenWrt installation guide#777
TechHutTV wants to merge 5 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 an “OpenWrt” platform entry to the Get Started → Install navigation.
    • Published a new “Install on OpenWrt” guide for setting up the NetBird client on OpenWrt routers.
    • Includes package installation steps, managed DNS configuration, LAN routing/firewall setup, and guidance for keeping configuration persistent across firmware upgrades.

@coderabbitai

coderabbitai Bot commented Jun 5, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 7b5b11d5-668b-4d5d-9c4f-d36d53b14c77

📥 Commits

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

📒 Files selected for processing (1)
  • src/pages/get-started/install/openwrt.mdx
✅ Files skipped from review due to trivial changes (1)
  • src/pages/get-started/install/openwrt.mdx

📝 Walkthrough

Walkthrough

This PR adds OpenWrt installation documentation for NetBird, updates install navigation, and includes guidance for DNS, routing, persistence, and final onboarding links.

Changes

OpenWrt Installation Documentation

Layer / File(s) Summary
Documentation discoverability
src/components/NavigationDocs.jsx, src/pages/get-started/install/index.mdx
Navigation and install index entries expose OpenWrt under GET STARTED → Install.
Installation guide foundation
src/pages/get-started/install/openwrt.mdx
Page description, compatibility and prerequisite content, and release-specific install and service setup steps are added.
Network and DNS configuration
src/pages/get-started/install/openwrt.mdx
DNS forwarding and LAN routing through wt0 are documented with OpenWrt firewall and network settings.
Persistence and engagement
src/pages/get-started/install/openwrt.mdx
Sysupgrade persistence details and the closing get-started section with pricing and release links are added.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • netbirdio/docs#760 — Also updates the shared docsNavigation structure in src/components/NavigationDocs.jsx.
  • netbirdio/docs#786 — Modifies docsNavigation rendering and state in the same navigation component touched here.
  • netbirdio/docs#802 — Adds another navigation link to the same exported docs navigation data.

Suggested reviewers

  • pappz
  • jnfrati

Poem

🐰 I hopped through OpenWrt’s glowing gate,
With DNS and routes all set just right.
A little guide for every hare,
To join NetBird with router flair.

🚥 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 clearly matches the main change: adding a new OpenWrt installation guide.
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.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch new/openwrt-install

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 ESLint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

src/pages/get-started/install/openwrt.mdx

Oops! Something went wrong! :(

ESLint: 9.39.4

TypeError: Converting circular structure to JSON
--> starting at object with constructor 'Object'
| property 'configs' -> object with constructor 'Object'
| property 'flat' -> object with constructor 'Object'
| ...
| property 'plugins' -> object with constructor 'Object'
--- property 'react' closes the circle
Referenced from:
at JSON.stringify ()
at file:///node_modules/.pnpm/@eslint+eslintrc@3.3.5/node_modules/@eslint/eslintrc/lib/shared/config-validator.js:308:45
at Array.map ()
at ConfigValidator.formatErrors (file:///node_modules/.pnpm/@eslint+eslintrc@3.3.5/node_modules/@eslint/eslintrc/lib/shared/config-validator.js:299:23)
at ConfigValidator.validateConfigSchema (file:///node_modules/.pnpm/@eslint+eslintrc@3.3.5/node_modules/@eslint/eslintrc/lib/shared/config-validator.js:330:84)
at ConfigArrayFactory._normalizeConfigData (file:///node_modules/.pnpm/@eslint+eslintrc@3.3.5/node_modules/@eslint/eslintrc/lib/config-array-factory.js:676:19)
at ConfigArrayFactory._loadConfigData (file:///node_modules/.pnpm/@eslint+eslintrc@3.3.5/node_modules/@eslint/eslintrc/lib/config-array-factory.js:641:21)
at ConfigArrayFactory._loadExtendedShareableConfig (file:///node_modules/.pnpm/@eslint+eslintrc@3.3.5/node_modules/@eslint/eslintrc/lib/config-array-factory.js:946:21)
at ConfigArrayFactory._loadExtends (file:///node_modules/.pnpm/@eslint+eslintrc@3.3.5/node_modules/@eslint/eslintrc/lib/config-array-factory.js:814:25)
at ConfigArrayFactory._normalizeObjectConfigDataBody (file:///node_modules/.pnpm/@eslint+eslintrc@3.3.5/node_modules/@eslint/eslintrc/lib/config-array-factory.js:752:25)


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.

@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

Comment thread src/components/NavigationDocs.jsx
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.

2 participants