Skip to content

Improved Documentation for Zypper and small fixes. - #793

Open
PizzaLovingNerd wants to merge 4 commits into
netbirdio:mainfrom
PizzaLovingNerd:zypper
Open

Improved Documentation for Zypper and small fixes.#793
PizzaLovingNerd wants to merge 4 commits into
netbirdio:mainfrom
PizzaLovingNerd:zypper

Conversation

@PizzaLovingNerd

@PizzaLovingNerd PizzaLovingNerd commented Jun 13, 2026

Copy link
Copy Markdown
Contributor

I ended up splitting OpenSUSE and OpenSUSE MicroOS, giving instructions to actually add the GPG key and refresh the repo, and a minor fix to add RHEL 8+ for the DNF instructions as RHEL as YUM is just a wrapper around DNF since RHEL 8.

All the OpenSUSE instructions were tested on Leap 16, Tumbleweed and MicroOS.

Summary by CodeRabbit

  • Documentation
    • Refined Linux installation guidance with clearer distro labeling and package-manager sections, including updated RPM/DNF wording and explicit DNF 4 vs DNF 5 instructions.
    • Reorganized openSUSE MicroOS (zypper) documentation for readability, and expanded the flow to include installing NetBird components via transactional update, rebooting, then enabling/starting the service.

@coderabbitai

coderabbitai Bot commented Jun 13, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

This PR updates Linux installation documentation with explicit DNF 4 and DNF 5 guidance and revised RHEL, Fedora, and Amazon Linux labeling. It also reorganizes openSUSE MicroOS instructions to install packages, reboot, and start the NetBird service.

Changes

Linux Installation Documentation Clarity

Layer / File(s) Summary
RPM-based distro labeling and DNF version clarity
src/pages/get-started/install/linux.mdx
DNF coverage is labeled for RHEL 8+, Fedora, and Amazon Linux 2023, with separate instructions for DNF 4 and DNF 5.
openSUSE MicroOS installation flow
src/pages/get-started/install/linux.mdx
Repository and package steps are reorganized, and MicroOS instructions now include installing netbird and netbird-ui, rebooting, and starting the netbird service.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

  • netbirdio/docs#888: Updates the same Linux installation documentation with related distro and MicroOS package guidance.

Suggested reviewers: mlsmaycon

Poem

🐰 I hop through DNF, clear and bright,
RHEL and Fedora now read right.
MicroOS installs with care,
Then NetBird starts after a reboot there.

🚥 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 matches the main change: updated Zypper documentation with a few minor related fixes.
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

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

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/@eslint/eslintrc/lib/shared/config-validator.js:308:45
at Array.map ()
at ConfigValidator.formatErrors (file:///node_modules/@eslint/eslintrc/lib/shared/config-validator.js:299:23)
at ConfigValidator.validateConfigSchema (file:///node_modules/@eslint/eslintrc/lib/shared/config-validator.js:330:84)
at ConfigArrayFactory._normalizeConfigData (file:///node_modules/@eslint/eslintrc/lib/config-array-factory.js:676:19)
at ConfigArrayFactory._loadConfigData (file:///node_modules/@eslint/eslintrc/lib/config-array-factory.js:641:21)
at ConfigArrayFactory._loadExtendedShareableConfig (file:///node_modules/@eslint/eslintrc/lib/config-array-factory.js:946:21)
at ConfigArrayFactory._loadExtends (file:///node_modules/@eslint/eslintrc/lib/config-array-factory.js:814:25)
at ConfigArrayFactory._normalizeObjectConfigDataBody (file:///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.

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

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 at line 182 but not imported. Update the import statement at line 1 to include Warning.

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

Also applies to: 182-182

🤖 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 import at the top
only brings in Note but the page uses the Warning component (referenced as
Warning around line 182); update the import statement that currently imports
Note (import {Note} from "`@/components/mdx`";) to also import Warning so both
components are available (e.g., import {Note, Warning} from
"`@/components/mdx`";).

Source: Coding guidelines

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

Outside diff comments:
In `@src/pages/get-started/install/linux.mdx`:
- Line 1: The import at the top only brings in Note but the page uses the
Warning component (referenced as Warning around line 182); update the import
statement that currently imports Note (import {Note} from "`@/components/mdx`";)
to also import Warning so both components are available (e.g., import {Note,
Warning} from "`@/components/mdx`";).

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: dad94d71-f857-4e99-871c-fa28934bd172

📥 Commits

Reviewing files that changed from the base of the PR and between b344041 and 2bd7f09.

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

@vercel

vercel Bot commented Jul 28, 2026

Copy link
Copy Markdown

@PizzaLovingNerd is attempting to deploy a commit to the NetBird GmbH Team on Vercel.

A member of the Team first needs to authorize it.

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

Caution

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

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

160-166: 🩺 Stability & Availability | 🟠 Major | ⚡ Quick win

Make the rpm-ostree reboot an explicit step before starting NetBird.

rpm-ostree install creates a pending deployment; the layered packages are not active in the currently running system until the host boots the next deployment. Turn the reminder into an executable reboot step and start the NetBird service after reboot.

🤖 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 160 - 166, Update the
Linux installation instructions so the rpm-ostree flow includes an explicit
reboot command after installing the desktop packages, then instructs the user to
run the existing “Start the service” systemctl command only after rebooting.

99-121: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Remove the redundant repository-import step.

Step 1 already creates /etc/yum.repos.d/netbird.repo, which DNF/DNF5 reads automatically; running --add-repo/addrepo --from-repofile on the same file is unnecessary and can fail or report a duplicate repository ID. Remove step 2 and renumber the install steps, or use an import path before /etc/yum.repos.d.

🤖 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 99 - 121, Remove the
repository-import step containing the DNF/DNF5 config-manager commands, since
the repository file created in step 1 is loaded automatically. Renumber the
remaining installation step so the instructions proceed directly from creating
the file to installing netbird.

282-287: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Install both MicroOS packages in one snapshot.

Running two transactional-update commands without --continue creates separate snapshots, so the rebooted snapshot can omit netbird when only netbird-ui is installed in the second transaction. Install both packages in one command or use --continue for the second transaction.

🤖 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 282 - 287, Update the
installation commands in the Linux getting-started instructions to install
netbird and netbird-ui within the same transactional-update snapshot, either by
supplying both packages to one command or by adding --continue to the second
command; preserve the subsequent reboot step.

122-129: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Enable EPEL before installing webkitgtk6.0.

On RHEL, AlmaLinux, and Rocky Linux 10, webkitgtk6.0 comes from EPEL, but the desktop install command runs before epel-release is installed. Put the EPEL setup for those releases above the dnf install netbird-ui ... command.

🤖 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 122 - 129, Move the
`sudo dnf install epel-release -y` setup block above the desktop-app `sudo dnf
install netbird-ui gtk4 webkitgtk6.0 xdg-utils` command, ensuring it applies to
RHEL, AlmaLinux, and Rocky Linux 10 before `webkitgtk6.0` is installed.

131-131: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Correct the Amazon Linux 2023 dependency statement.

AL2023 provides GTK 4 (gtk4), so the combined “does not provide GTK 4 or WebKitGTK 6.0” statement is inaccurate. If the desktop app still requires WebKitGTK 6.0, reword this to say AL2023’s available GTK 4 alone is not enough for the desktop app.

🤖 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 131, Correct the Amazon
Linux 2023 dependency statement in the installation documentation: acknowledge
that AL2023 provides GTK 4 (gtk4), while clarifying that the desktop app remains
unsupported because WebKitGTK 6.0 is unavailable; preserve the instruction to
install the CLI only there.

295-297: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Align the MicroOS note with the packages actually installed.

The preceding commands already install netbird-ui, but this note says they install only the CLI. State that netbird-ui is installed and that GTK/WebKitGTK dependencies still need to be added separately.

-These commands install the CLI. To use the desktop app, install `netbird-ui` together with ...
+These commands install the CLI and `netbird-ui`. The desktop app also requires ...
🤖 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 295 - 297, Update the
Linux installation Note to state that the preceding commands install both the
CLI and netbird-ui, while GTK 4.10+ and WebKitGTK 6.0 dependencies must still be
installed separately; retain the openSUSE package-name guidance using zypper
search webkitgtk.
🧹 Nitpick comments (1)
src/pages/get-started/install/linux.mdx (1)

74-78: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Avoid overlapping RHEL installation sections.

RHEL 9 appears under both YUM and DNF. Narrow the YUM section to Amazon Linux 2, or explicitly state that it is only an alternative, so the new RHEL 8+ DNF flow is unambiguous.

Also applies to: 97-97

🤖 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 74 - 78, Update the
“RHEL 9 / Amazon Linux 2 (YUM)” section heading and accompanying Note so it
applies only to Amazon Linux 2, removing RHEL 9 from the YUM installation path
and leaving RHEL 9 covered exclusively by the DNF flow.
🤖 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.

Outside diff comments:
In `@src/pages/get-started/install/linux.mdx`:
- Around line 160-166: Update the Linux installation instructions so the
rpm-ostree flow includes an explicit reboot command after installing the desktop
packages, then instructs the user to run the existing “Start the service”
systemctl command only after rebooting.
- Around line 99-121: Remove the repository-import step containing the DNF/DNF5
config-manager commands, since the repository file created in step 1 is loaded
automatically. Renumber the remaining installation step so the instructions
proceed directly from creating the file to installing netbird.
- Around line 282-287: Update the installation commands in the Linux
getting-started instructions to install netbird and netbird-ui within the same
transactional-update snapshot, either by supplying both packages to one command
or by adding --continue to the second command; preserve the subsequent reboot
step.
- Around line 122-129: Move the `sudo dnf install epel-release -y` setup block
above the desktop-app `sudo dnf install netbird-ui gtk4 webkitgtk6.0 xdg-utils`
command, ensuring it applies to RHEL, AlmaLinux, and Rocky Linux 10 before
`webkitgtk6.0` is installed.
- Line 131: Correct the Amazon Linux 2023 dependency statement in the
installation documentation: acknowledge that AL2023 provides GTK 4 (gtk4), while
clarifying that the desktop app remains unsupported because WebKitGTK 6.0 is
unavailable; preserve the instruction to install the CLI only there.
- Around line 295-297: Update the Linux installation Note to state that the
preceding commands install both the CLI and netbird-ui, while GTK 4.10+ and
WebKitGTK 6.0 dependencies must still be installed separately; retain the
openSUSE package-name guidance using zypper search webkitgtk.

---

Nitpick comments:
In `@src/pages/get-started/install/linux.mdx`:
- Around line 74-78: Update the “RHEL 9 / Amazon Linux 2 (YUM)” section heading
and accompanying Note so it applies only to Amazon Linux 2, removing RHEL 9 from
the YUM installation path and leaving RHEL 9 covered exclusively by the DNF
flow.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: aead4b71-8425-49c6-b8dd-033eaa37dabf

📥 Commits

Reviewing files that changed from the base of the PR and between 2bd7f09 and 64a2e47.

📒 Files selected for processing (1)
  • src/pages/get-started/install/linux.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