[GH-ISSUE #4786] Feature Request: Official Windows Package Manager (winget) Support #9824

Open
opened 2026-08-05 01:23:36 -04:00 by saavagebueno · 4 comments
Owner

Originally created by @spupuz on GitHub (Nov 14, 2025).
Original GitHub issue: https://github.com/netbirdio/netbird/issues/4786

  1. Goal

The primary goal is to establish and maintain an official, vendor-published presence for the NetBird Windows Client within the Windows Package Manager Community Repository (winget).

This ensures that IT professionals and end-users can install, upgrade, and manage the NetBird client using a single command: winget install NetBird.NetBird.

  1. Benefits

Simplified Deployment (Zero-Touch): Enables silent, machine-wide installation, which is crucial for mass deployment via tools like PowerShell, RMM, or provisioning scripts.

Automated Updates: Users can update the NetBird client alongside all other applications using a single command: winget upgrade --all.

Configuration Management: Allows NetBird to be included in declarative machine setup via WinGet Configuration files.

Security and Trust: Official publication and maintenance ensure package integrity and timely updates, as the manifest points directly to the NetBird-hosted installer.

<html>

. Technical Specification

3.1. Package Details

Field | Value | Notes -- | -- | -- Package Identifier | NetBird.NetBird | Vendor-prefixed and unique identifier. Package Name | NetBird |   Publisher | NetBird GmbH | Official publisher name. License | BSD-3-Clause | Based on NetBird's known license. Minimum OS Version | 10.0.17763.0 (Windows 10, v1809) | Minimum version for winget support.

3.3. Sample Manifest (Example for Version 0.59.12)

This sample YAML file provides the foundation for the package manifest, which would be submitted to the microsoft/winget-pkgs repository. This example targets the x64 architecture using the Inno Setup EXE installer.

# yaml-language-server: $schema=[https://aka.ms/winget-manifest.installer.1.5.0.schema.json](https://aka.ms/winget-manifest.installer.1.5.0.schema.json)
PackageIdentifier: NetBird.NetBird
PackageVersion: 0.59.12
MinimumOSVersion: 10.0.17763.0
InstallerType: inno
Scope: machine
InstallModes:
- silent
- silentWithProgress
InstallerSwitches:
  Silent: /SILENT /NORESTART
  SilentWithProgress: /VERYSILENT /NORESTART
UpgradeBehavior: install
ProductCode: NetBird
Installers:
- Architecture: x64
  InstallerUrl: [https://github.com/netbirdio/netbird/releases/download/v0.59.12/netbird_installer_0.59.12_windows_amd64.exe](https://github.com/netbirdio/netbird/releases/download/v0.59.12/netbird_installer_0.59.12_windows_amd64.exe)
  InstallerSha256: <SHA256_HASH_OF_INSTALLER_GOES_HERE>
  # For MSI, the following would be used instead of the Inno Setup switches:
  # InstallerType: msi
  # InstallerSwitches:
  #   Silent: /qn /norestart
ManifestType: installer
ManifestVersion: 1.5.0

4. Implementation Steps

  1. Tooling Setup: Integrate wingetcreate into the NetBird release pipeline.

  2. Manifest Generation: Automate the creation of the YAML manifest using the release tag (e.g., v0.59.12), the installer URL, and the generated SHA256 hash.

  3. Submission Automation: Configure the CI/CD pipeline (e.g., GitHub Actions) to automatically submit a Pull Request to the microsoft/winget-pkgs repository upon every successful Windows client release. This ensures that the winget package is updated immediately after a new version is published.

  4. Testing: Validate the manifest using winget validate <manifest-file.yaml> and test silent installation using the generated manifest.

</html>
Originally created by @spupuz on GitHub (Nov 14, 2025). Original GitHub issue: https://github.com/netbirdio/netbird/issues/4786 1. Goal The primary goal is to establish and maintain an official, vendor-published presence for the NetBird Windows Client within the Windows Package Manager Community Repository (winget). This ensures that IT professionals and end-users can install, upgrade, and manage the NetBird client using a single command: winget install NetBird.NetBird. 2. Benefits Simplified Deployment (Zero-Touch): Enables silent, machine-wide installation, which is crucial for mass deployment via tools like PowerShell, RMM, or provisioning scripts. Automated Updates: Users can update the NetBird client alongside all other applications using a single command: winget upgrade --all. Configuration Management: Allows NetBird to be included in declarative machine setup via [WinGet Configuration files](https://learn.microsoft.com/en-us/windows/package-manager/configuration/). Security and Trust: Official publication and maintenance ensure package integrity and timely updates, as the manifest points directly to the NetBird-hosted installer. <html><body> <!--StartFragment--><h2 data-pm-slice="1 3 []">. Technical Specification</h2><h3>3.1. Package Details</h3> Field | Value | Notes -- | -- | -- Package Identifier | NetBird.NetBird | Vendor-prefixed and unique identifier. Package Name | NetBird |   Publisher | NetBird GmbH | Official publisher name. License | BSD-3-Clause | Based on NetBird's known license. Minimum OS Version | 10.0.17763.0 (Windows 10, v1809) | Minimum version for winget support. <h3>3.3. Sample Manifest (Example for Version 0.59.12)</h3><p>This sample YAML file provides the foundation for the package manifest, which would be submitted to the <code>microsoft/winget-pkgs</code> repository. This example targets the <code>x64</code> architecture using the Inno Setup EXE installer.</p><pre><code># yaml-language-server: $schema=[https://aka.ms/winget-manifest.installer.1.5.0.schema.json](https://aka.ms/winget-manifest.installer.1.5.0.schema.json) PackageIdentifier: NetBird.NetBird PackageVersion: 0.59.12 MinimumOSVersion: 10.0.17763.0 InstallerType: inno Scope: machine InstallModes: - silent - silentWithProgress InstallerSwitches: Silent: /SILENT /NORESTART SilentWithProgress: /VERYSILENT /NORESTART UpgradeBehavior: install ProductCode: NetBird Installers: - Architecture: x64 InstallerUrl: [https://github.com/netbirdio/netbird/releases/download/v0.59.12/netbird_installer_0.59.12_windows_amd64.exe](https://github.com/netbirdio/netbird/releases/download/v0.59.12/netbird_installer_0.59.12_windows_amd64.exe) InstallerSha256: &lt;SHA256_HASH_OF_INSTALLER_GOES_HERE&gt; # For MSI, the following would be used instead of the Inno Setup switches: # InstallerType: msi # InstallerSwitches: # Silent: /qn /norestart ManifestType: installer ManifestVersion: 1.5.0 </code></pre><h2>4. Implementation Steps</h2><ol><li><p><strong>Tooling Setup:</strong> Integrate <code>wingetcreate</code> into the NetBird release pipeline.</p></li><li><p><strong>Manifest Generation:</strong> Automate the creation of the YAML manifest using the release tag (e.g., <code>v0.59.12</code>), the installer URL, and the generated SHA256 hash.</p></li><li><p><strong>Submission Automation:</strong> Configure the CI/CD pipeline (e.g., GitHub Actions) to automatically submit a Pull Request to the <code>microsoft/winget-pkgs</code> repository upon every successful Windows client release. This ensures that the <code>winget</code> package is updated immediately after a new version is published.</p></li><li><p><strong>Testing:</strong> Validate the manifest using <code>winget validate &lt;manifest-file.yaml&gt;</code> and test silent installation using the generated manifest.</p></li></ol><!--EndFragment--> </body> </html>
saavagebueno added the feature-request label 2026-08-05 01:23:36 -04:00
Author
Owner

@1nerdyguy commented on GitHub (Nov 14, 2025):

I like the idea.

My concern though, with any winget package, is that it appears to be the least used and updated application publication method.

To the point where I can't respectively use it in production because MS apps and 3rd party ones tend to lag behind by VERSIONS, not just a point release.

I wish it was better.

<!-- gh-comment-id:3532991980 --> @1nerdyguy commented on GitHub (Nov 14, 2025): I like the idea. My concern though, with any winget package, is that it appears to be the least used and updated application publication method. To the point where I can't respectively use it in production because MS apps and 3rd party ones tend to lag behind by VERSIONS, not just a point release. I wish it was better.
Author
Owner

@spupuz commented on GitHub (Nov 14, 2025):

i use it for all other appsand it's a good way to have a single point for updating everything.

<!-- gh-comment-id:3533081899 --> @spupuz commented on GitHub (Nov 14, 2025): i use it for all other appsand it's a good way to have a single point for updating everything.
Author
Owner

@Marcus1Pierce commented on GitHub (Nov 25, 2025):

@spupuz Isn’t NetBird already available in the winget package manager? I searched and it shows up here.

Image

And NetBird even shows up in the winget upgrade list.

Image
<!-- gh-comment-id:3574244708 --> @Marcus1Pierce commented on GitHub (Nov 25, 2025): @spupuz Isn’t NetBird already available in the winget package manager? I searched and it shows up here. <img width="739" height="432" alt="Image" src="https://github.com/user-attachments/assets/74e30017-85f1-4c34-bbb2-722f1a8fe140" /> And NetBird even shows up in the winget upgrade list. <img width="739" height="432" alt="Image" src="https://github.com/user-attachments/assets/55aee900-91dc-4dad-a317-1f484b9f6fb8" />
Author
Owner

@BS-Highline commented on GitHub (Jul 24, 2026):

I'd like to support this idea as well.
Telling someone to run winget install Netbird.Netbird (or any other program) is just much clearer and well defined. You know that they'll get exactly the package that you want them to install.
Telling them to "Go to that webpage, look for download and then download the package. Then find the downloaded exe, run it and install that.". Sounds easy, but many people manage to get that wrong. And some will actually not end up on the webpage, but on some other page that seemingly offers the same program, but may or may not bundle it with some malware.
It also makes it much easier to find and updated outdated programs without relying on an integrated look-for-update mechanism.

<!-- gh-comment-id:5068430837 --> @BS-Highline commented on GitHub (Jul 24, 2026): I'd like to support this idea as well. Telling someone to run `winget install Netbird.Netbird` (or any other program) is just much clearer and well defined. You know that they'll get exactly the package that you want them to install. Telling them to "Go to that webpage, look for download and then download the package. Then find the downloaded exe, run it and install that.". Sounds easy, but many people manage to get that wrong. And some will actually not end up on the webpage, but on some other page that seemingly offers the same program, but may or may not bundle it with some malware. It also makes it much easier to find and updated outdated programs without relying on an integrated look-for-update mechanism.
Sign in to join this conversation.
No Label feature-request
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: DYNR/netbird#9824