Skip to content

Added Homebrew for Linux as instructions for atomic, updated DistroBox docs.#756

Open
PizzaLovingNerd wants to merge 1 commit into
netbirdio:mainfrom
PizzaLovingNerd:main
Open

Added Homebrew for Linux as instructions for atomic, updated DistroBox docs.#756
PizzaLovingNerd wants to merge 1 commit into
netbirdio:mainfrom
PizzaLovingNerd:main

Conversation

@PizzaLovingNerd
Copy link
Copy Markdown

@PizzaLovingNerd PizzaLovingNerd commented May 14, 2026

  • Added instructions for Homebrew for atomic distributions like Steam OS.
  • Added a warning to Distrobox that you need to maintain your distrobox container.
  • Updated the Distrobox instructions to use Debian 13 instead of 12.

Summary by CodeRabbit

Release Notes

  • Documentation
    • Enhanced Linux installation guidance for Fedora Silverblue, Universal Blue, SteamOS, and immutable distros.
    • Clarified Homebrew installation method for CLI.
    • Expanded Distrobox workflow instructions.
    • Added SELinux troubleshooting notes for Fedora-based systems.

Review Change Stack

…ue and Universal Blue. Added Homebrew and Distrobox installation methods, including necessary commands and SELinux configuration notes. Updated Distrobox container image version from Debian 12 to 13.
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 14, 2026

📝 Walkthrough

Walkthrough

Updated Linux installation documentation for immutable distributions. The section headers and installation methods for Fedora Silverblue, Universal Blue, and SteamOS are clarified and expanded. Three installation paths are now documented: rpm-ostree native packages, Homebrew CLI (with daemon management), and Distrobox containers (with Debian 13 and binary export).

Changes

Immutable Distros Installation Methods

Layer / File(s) Summary
rpm-ostree native package header
src/pages/get-started/install/linux.mdx
Section header updated from "Universal Blue (Native package)" to "Fedora Silverblue (Atomic) / Universal Blue (rpm-ostree)" to clarify systems and package management approach.
Homebrew CLI installation method
src/pages/get-started/install/linux.mdx
New section documents Homebrew installation for immutable distros, noting CLI-only installation, prior daemon cleanup, Homebrew tap installation, daemon startup from Linuxbrew path, and SELinux remediation steps for Fedora-based systems.
Distrobox container installation method
src/pages/get-started/install/linux.mdx
Updated Distrobox section for immutable distros, includes maintenance warning for contained Debian, uses Debian 13 base (replacing Debian 12), and adds explicit binary export step to host system.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Poem

🐰 A rabbit hops through immutable lands,
Three paths now clear for NetBird's commands—
rpm-ostree, Homebrew, and Distrobox too,
With Debian thirteen, the docs shine brand new!

🚥 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 directly and specifically describes the main changes in the pull request: adding Homebrew instructions for atomic/immutable distributions and updating DistroBox documentation.
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

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

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
src/pages/get-started/install/linux.mdx (1)

1-1: ⚠️ Potential issue | 🔴 Critical | ⚡ Quick win

Missing Warning component import.

The <Warning> component is used on lines 181-183 but is not imported from @/components/mdx. This will cause a build or runtime error.

🔧 Proposed fix
-import {Note} from "@/components/mdx";
+import {Note, Warning} from "@/components/mdx";

As per coding guidelines: "Import custom components from @/components/mdx (Note, Warning, Success), @/components/Tiles, @/components/YouTube, @/components/Button, or @/components/mdx as needed for alerts, layout, media, and UI"

🤖 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/linux.mdx` at line 1, The file imports Note
from "@/components/mdx" but uses the Warning component later; update the
existing import so it also imports Warning (i.e., add Warning to the named
imports from "@/components/mdx") so the <Warning> component is available at
runtime and avoids build errors; ensure the import line includes both Note and
Warning.
🤖 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/get-started/install/linux.mdx`:
- Line 156: Fix the typo "defualt" → "default" and update the Homebrew path
wording to avoid using "~", replacing "the default ~/linuxbrew prefix" with a
clearer phrase such as "the default /home/linuxbrew/.linuxbrew prefix" or "the
standard Homebrew prefix (/home/linuxbrew/.linuxbrew)"; update the sentence in
src/pages/get-started/install/linux.mdx accordingly so it reads with the
corrected spelling and unambiguous path description.
- Around line 151-175: Unify the Homebrew path usage by replacing hardcoded
paths used for service install/start (the lines using
"/home/linuxbrew/.linuxbrew/bin/netbird service install" and "… service start")
and the SELinux fcontext/restorecon paths (the
"/var/home/linuxbrew/.linuxbrew/Cellar/netbird/…" occurrences) with a dynamic
prefix using $(brew --prefix) (e.g. "$(brew --prefix)/bin/netbird" for service
commands) and document that SELinux requires the physical path (advise using
realpath/$(brew --prefix) resolved to the physical path when constructing the
semanage/restorecon targets); also update the explanatory sentence about the
default prefix to mention both /var/home and /home symlink situations so readers
know when to adjust the commands.

---

Outside diff comments:
In `@src/pages/get-started/install/linux.mdx`:
- Line 1: The file imports Note from "@/components/mdx" but uses the Warning
component later; update the existing import so it also imports Warning (i.e.,
add Warning to the named imports from "@/components/mdx") so the <Warning>
component is available at runtime and avoids build errors; ensure the import
line includes both Note and Warning.
🪄 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: 4b06c2a6-52ee-4d12-a5c9-72fc93d53381

📥 Commits

Reviewing files that changed from the base of the PR and between a2cd5f4 and c5501b1.

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

Comment on lines +151 to +175
3. Install and start the client daemon service:
```bash
sudo /home/linuxbrew/.linuxbrew/bin/netbird service install
sudo /home/linuxbrew/.linuxbrew/bin/netbird service start
```
You may need to adjust this command if you are not using the defualt ~/linuxbrew prefix for your Homebrew install.

<Note>
On Fedora-based systems including Universal Blue, SELinux may block NetBird from running due to homebrew installing it in ~/linuxbrew.

You can fix this by running
```bash
sudo semanage fcontext -a -t bin_t \
'/var/home/linuxbrew/\.linuxbrew/Cellar/netbird/[^/]+/bin/netbird'
sudo restorecon -Rv /var/home/linuxbrew/.linuxbrew/Cellar/netbird
sudo systemctl restart netbird
```

If your Homebrew prefix is set to something other than /var/home/linuxbrew/.linuxbrew, you may need to adjust those commands to match.

You can verify that the NetBird service is running properly before and after making these changes by running:
```bash
sudo systemctl status netbird
```
</Note>
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major | ⚖️ Poor tradeoff

Clarify or unify Homebrew path references for immutable Fedora systems.

There's an inconsistency in the Homebrew installation paths:

  • Lines 153-154: Use /home/linuxbrew/.linuxbrew/bin/netbird for service install/start
  • Lines 164-165, 169: Use /var/home/linuxbrew/.linuxbrew/ for SELinux configuration

On Fedora Silverblue and immutable systems, home directories are typically under /var/home, and /home may be a symlink. While SELinux requires the physical path (/var/home), the service commands should likely also use the same physical path for consistency and correctness on these systems.

Consider either:

  1. Using /var/home/linuxbrew/.linuxbrew consistently throughout this section, or
  2. Adding a clear explanation that the service commands use /home (which is typically a symlink) while SELinux requires the physical /var/home path, or
  3. Detecting and documenting the actual Homebrew prefix dynamically (e.g., $(brew --prefix))
🔧 Possible fix for consistency
 3. Install and start the client daemon service:
  ```bash
-  sudo /home/linuxbrew/.linuxbrew/bin/netbird service install
-  sudo /home/linuxbrew/.linuxbrew/bin/netbird service start
+  sudo /var/home/linuxbrew/.linuxbrew/bin/netbird service install
+  sudo /var/home/linuxbrew/.linuxbrew/bin/netbird service start

-You may need to adjust this command if you are not using the defualt ~/linuxbrew prefix for your Homebrew install.
+You may need to adjust this command if you are not using the default /var/home/linuxbrew/.linuxbrew prefix for your Homebrew install (or /home/linuxbrew/.linuxbrew on systems where /home is not a symlink).


</details>

<!-- suggestion_start -->

<details>
<summary>📝 Committable suggestion</summary>

> ‼️ **IMPORTANT**
> Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

```suggestion
3. Install and start the client daemon service:
🤖 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/linux.mdx` around lines 151 - 175, Unify the
Homebrew path usage by replacing hardcoded paths used for service install/start
(the lines using "/home/linuxbrew/.linuxbrew/bin/netbird service install" and "…
service start") and the SELinux fcontext/restorecon paths (the
"/var/home/linuxbrew/.linuxbrew/Cellar/netbird/…" occurrences) with a dynamic
prefix using $(brew --prefix) (e.g. "$(brew --prefix)/bin/netbird" for service
commands) and document that SELinux requires the physical path (advise using
realpath/$(brew --prefix) resolved to the physical path when constructing the
semanage/restorecon targets); also update the explanatory sentence about the
default prefix to mention both /var/home and /home symlink situations so readers
know when to adjust the commands.

sudo /home/linuxbrew/.linuxbrew/bin/netbird service install
sudo /home/linuxbrew/.linuxbrew/bin/netbird service start
```
You may need to adjust this command if you are not using the defualt ~/linuxbrew prefix for your Homebrew install.
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Fix typo and clarify Homebrew path terminology.

  1. Typo: "defualt" should be "default"
  2. The reference to "~/linuxbrew prefix" is misleading. The standard Homebrew path /home/linuxbrew/.linuxbrew is a dedicated system user location, not a user home directory (which ~ represents). Consider rephrasing to "default /home/linuxbrew/.linuxbrew prefix" or "standard Homebrew prefix".
📝 Proposed fix
-You may need to adjust this command if you are not using the defualt ~/linuxbrew prefix for your Homebrew install.
+You may need to adjust this command if you are not using the default `/home/linuxbrew/.linuxbrew` prefix for your Homebrew install.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
You may need to adjust this command if you are not using the defualt ~/linuxbrew prefix for your Homebrew install.
You may need to adjust this command if you are not using the default `/home/linuxbrew/.linuxbrew` prefix for your Homebrew install.
🤖 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/linux.mdx` at line 156, Fix the typo "defualt"
→ "default" and update the Homebrew path wording to avoid using "~", replacing
"the default ~/linuxbrew prefix" with a clearer phrase such as "the default
/home/linuxbrew/.linuxbrew prefix" or "the standard Homebrew prefix
(/home/linuxbrew/.linuxbrew)"; update the sentence in
src/pages/get-started/install/linux.mdx accordingly so it reads with the
corrected spelling and unambiguous path description.

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