diff --git a/CHANGELOG.md b/CHANGELOG.md index 12623a1..90d86ab 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,8 @@ How a release is cut is in [CONTRIBUTING.md](CONTRIBUTING.md#releasing). - A Chocolatey package, `nelsar-axia`, in `deploy/chocolatey`: it installs the x64 MSI of its version, checked against its SHA-256, with the MSI's properties as package parameters. See [Windows installer → Through Chocolatey](docs/installation-windows.md#through-chocolatey). +- winget manifests for `Nelsar.Axia`, in `deploy/winget`, for x64 and arm64. See + [Windows installer → Through winget](docs/installation-windows.md#through-winget). ## [0.3.0] - 2026-10-23 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 535f266..3d2b074 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -186,3 +186,12 @@ inherits, `frontend/package.json`, and the image tags the quick start runs in `d ``` The community repository holds each version for moderation before it is listed. + +7. In the same pull request, bring the winget manifests in `deploy/winget` to the release: the + `PackageVersion` in all three, and in `Nelsar.Axia.installer.yaml` the release date and, for each + architecture, the URL, the SHA-256 and the `ProductCode`, which changes with every version. + `wingetcreate update Nelsar.Axia --version x.y.z --urls ` fills these in + from the installers once the package is listed; `winget validate --manifest deploy\winget` + checks the result. Then submit them to + [microsoft/winget-pkgs](https://github.com/microsoft/winget-pkgs) under + `manifests/n/Nelsar/Axia/x.y.z/`, or with `wingetcreate submit`. diff --git a/deploy/winget/Nelsar.Axia.installer.yaml b/deploy/winget/Nelsar.Axia.installer.yaml new file mode 100644 index 0000000..cc42aae --- /dev/null +++ b/deploy/winget/Nelsar.Axia.installer.yaml @@ -0,0 +1,21 @@ +# yaml-language-server: $schema=https://aka.ms/winget-manifest.installer.1.12.0.schema.json + +PackageIdentifier: Nelsar.Axia +PackageVersion: 0.3.0 +InstallerType: msi +Scope: machine +UpgradeBehavior: install +ReleaseDate: 2026-10-23 +AppsAndFeaturesEntries: + - UpgradeCode: '{79655DA3-9C1A-4CDE-B8EC-50CA96C5DEF3}' +Installers: + - Architecture: x64 + InstallerUrl: https://github.com/Nelsar/Axia/releases/download/v0.3.0/Nelsar.Axia-0.3.0-x64.msi + InstallerSha256: 76D9730FDC2B7E0154B81DCF56E9168DB4AF1CF1D382B3F11683D9E5BFCD7B36 + ProductCode: '{A13CEA33-920C-4BD6-A916-96D5857075E3}' + - Architecture: arm64 + InstallerUrl: https://github.com/Nelsar/Axia/releases/download/v0.3.0/Nelsar.Axia-0.3.0-arm64.msi + InstallerSha256: CFC05E3A6E96EAC470F10BF8ECD0AA2575AE7828AC6F0F88D5A741DB4430279C + ProductCode: '{3A475450-CEC3-48CF-96DC-6FFB3B4C413D}' +ManifestType: installer +ManifestVersion: 1.12.0 diff --git a/deploy/winget/Nelsar.Axia.locale.en-US.yaml b/deploy/winget/Nelsar.Axia.locale.en-US.yaml new file mode 100644 index 0000000..030f4f3 --- /dev/null +++ b/deploy/winget/Nelsar.Axia.locale.en-US.yaml @@ -0,0 +1,33 @@ +# yaml-language-server: $schema=https://aka.ms/winget-manifest.defaultLocale.1.12.0.schema.json + +PackageIdentifier: Nelsar.Axia +PackageVersion: 0.3.0 +PackageLocale: en-US +Publisher: Nelsar +PublisherUrl: https://github.com/Nelsar +PublisherSupportUrl: https://github.com/Nelsar/Axia/issues +PackageName: Nelsar.Axia +PackageUrl: https://github.com/Nelsar/Axia +License: Apache-2.0 +LicenseUrl: https://github.com/Nelsar/Axia/blob/main/LICENSE +ShortDescription: Self-hosted web interface and REST API for Active Directory and OpenLDAP. +Description: |- + Nelsar.Axia manages Active Directory, Samba AD, OpenLDAP and other LDAP directories from the + browser: users, groups, organizational units and computer accounts, with role-based access + mapped from directory groups, an audit log and bulk provisioning. + This package installs the NelsarAxia Windows service, which serves the API and its console on + port 8080. Finish the configuration in %ProgramData%\Nelsar.Axia\appsettings.json afterwards. +Moniker: axia +Tags: + - active-directory + - ldap + - openldap + - samba + - rest-api + - helpdesk +ReleaseNotesUrl: https://github.com/Nelsar/Axia/releases/tag/v0.3.0 +Documentations: + - DocumentLabel: Windows installer + DocumentUrl: https://nelsar.github.io/Axia/installation-windows/ +ManifestType: defaultLocale +ManifestVersion: 1.12.0 diff --git a/deploy/winget/Nelsar.Axia.yaml b/deploy/winget/Nelsar.Axia.yaml new file mode 100644 index 0000000..72392d4 --- /dev/null +++ b/deploy/winget/Nelsar.Axia.yaml @@ -0,0 +1,7 @@ +# yaml-language-server: $schema=https://aka.ms/winget-manifest.version.1.12.0.schema.json + +PackageIdentifier: Nelsar.Axia +PackageVersion: 0.3.0 +DefaultLocale: en-US +ManifestType: version +ManifestVersion: 1.12.0 diff --git a/docs/installation-windows.md b/docs/installation-windows.md index cc64c55..85b7bf8 100644 --- a/docs/installation-windows.md +++ b/docs/installation-windows.md @@ -56,6 +56,25 @@ As with the MSI, the bind password is not a parameter: [finish the configuration](#finishing-the-configuration) afterwards. `choco upgrade` installs the newer MSI over the older one, and `choco uninstall nelsar-axia` removes it like an [uninstall](#uninstalling) does. +### Through winget + +[`deploy/winget`](https://github.com/Nelsar/Axia/tree/main/deploy/winget) holds the manifests of +the package `Nelsar.Axia` for the Windows Package Manager, for both architectures. Once they are in +the community repository, `winget install Nelsar.Axia` installs the MSI that matches the machine; +the [properties](#unattended) go after `--custom`, which adds them to winget's own silent switches: + +```powershell +winget install Nelsar.Axia --custom "LDAP_SERVER=dc01.corp.example.com START_SERVICE=1" +``` + +Until then, install from a checkout. winget takes a local manifest only once an administrator has +allowed it: + +```powershell +winget settings --enable LocalManifestFiles +winget install --manifest deploy\winget +``` + ## What goes where | Where | What | On upgrade | On uninstall |