Skip to content

Repository files navigation

LocalDesktopStore hero

Version License Platform .NET

Buy me a coffee on Ko-fi

If this project helps you, a coffee helps me keep working on it.

LocalDesktopStore

Install every Windows app you ship from one private catalog.

LocalDesktopStore turns GitHub Releases into a desktop app catalog for Windows. Point it at your account, review the available installers, then install or update without hunting through release pages.

Download the latest release · See the product · Review the trust model

Why use it

Your releases, one view Discover installable apps from one GitHub user or several trusted owners. Search and topic filters keep larger catalogs manageable.
The right install path Route MSI, MSIX, App Installer, Inno Setup, NSIS, interactive EXE, and portable ZIP releases through the correct Windows flow.
Checks before execution Verify SHA-256 sidecars, require trusted Authenticode signatures for MSI and EXE packages, and pin known publishers across updates.
Local control Keep settings and install history on the machine. Background checks can notify you, but they never install software automatically.

LocalDesktopStore is the desktop companion to LocalChromeStore. It is useful on fresh workstations, test machines, and small Windows fleets where your own GitHub releases are the source of truth.

Product tour

LocalDesktopStore catalog showing sample data

Real application UI with a clearly labeled sample catalog. No mock interface is used.

LocalDesktopStore discovery settings showing sample data

The real discovery settings view, shown with sample configuration data.

Install

Open the latest release and choose the format that fits the machine:

Download Best for
LocalDesktopStore-win-Setup.exe Normal per-user installation with Velopack updates
LocalDesktopStore-win-Portable.zip A portable copy that can run from any writable folder
LocalDesktopStore-vX.Y.Z-per-user-x64.msi Managed per-user deployment
LocalDesktopStore-vX.Y.Z-per-machine-x64.msi Elevated machine-wide deployment through GPO or Intune
LocalDesktopStore-vX.Y.Z-win-x64.zip Plain framework-dependent application files

The app requires the .NET 9 Desktop Runtime for Windows x64.

Current release binaries are not Authenticode-signed because no code-signing certificate is available for this project. Verify each downloaded file against its published SHA-256 sidecar before opening it.

First run

  1. Open Settings.
  2. Enter the GitHub user or organization that owns your releases.
  3. Add a personal access token if you need private repositories or higher API limits.
  4. Keep Verify SHA-256 sidecar enabled, then select Save and refresh.
  5. Review a card and choose Install.

The catalog accepts extra owners, hidden repository rules, and an optional windows-app topic filter. Search discovery is opt-in because results outside your curated owner list need stricter publisher checks.

What it checks

LocalDesktopStore does more than match a filename.

  • MSI and EXE installers must pass Windows WinVerifyTrust before execution. The publisher certificate thumbprint is remembered for that repository, so a signer change is visible and requires approval.
  • MSIX installation stays with the Windows package APIs. Windows validates the package certificate and dependencies.
  • Portable ZIP releases use a published SHA-256 sidecar when one is available. A mismatch stops the install.
  • Search-discovered repositories require an explicit owner/repo=THUMBPRINT publisher pin before an MSI or EXE can run.
  • GitHub tokens stay in local settings. Catalog export does not include them.

Checks fail closed where execution is involved. Advisory lookups through OSV are optional and informational, so a temporary network failure does not hide the rest of the catalog.

Supported release assets

Release asset Handling
.msi Runs through Windows Installer with logged output
.appinstaller Opens Windows App Installer for dependencies and update policy
.msix, .msixbundle Installs for the current user through Add-AppxPackage
Inno Setup .exe Uses Inno's silent install switches
NSIS .exe Uses the NSIS silent install switch
Other setup .exe Opens interactively instead of guessing unsafe switches
Portable .zip Extracts to the local app store and creates a Start Menu shortcut

When a release includes several supported assets, LocalDesktopStore favors the most Windows-native package. MSI wins first, followed by App Installer, MSIX, recognized EXE installers, then portable ZIP.

Updates and daily use

  • Refresh checks release metadata and rebuilds the catalog.
  • Update all processes outdated apps one at a time so failures remain tied to the correct package.
  • Card checkboxes expose bulk install, update, and uninstall actions.
  • Run after install and Pin after install remember per-app preferences.
  • The File menu can export and import catalog settings without changing the destination machine's installed-app record.
  • Optional scheduled checks run as the signed-in user, post a tray notification, and do not install anything.

Verified downloads are cached by repository, release, and SHA-256. A valid cache hit avoids a second download while still checking the stored bytes.

Command line

The same service layer is available without opening the WPF window:

.\LocalDesktopStore.exe --list
.\LocalDesktopStore.exe --install SysAdminDoc/ExampleApp --json
.\LocalDesktopStore.exe --run SysAdminDoc/ExampleApp
.\LocalDesktopStore.exe --uninstall SysAdminDoc/ExampleApp

Exit code 0 means success. Invalid arguments return 2, a missing app returns 3, operation failures return 4, and cancellation returns 5. Publisher changes remain blocked in command-line mode because there is no interactive approval surface.

Local data

Path Contents
%APPDATA%\LocalDesktopStore\settings.json User settings and optional GitHub token
%APPDATA%\LocalDesktopStore\installed.json Installed-app manifest
%ProgramData%\LocalDesktopStore\settings.json Optional machine-level enterprise seed
%LOCALAPPDATA%\LocalDesktopStore\apps\ Extracted portable apps
%LOCALAPPDATA%\LocalDesktopStore\downloads\ Downloads and verified cache entries
%LOCALAPPDATA%\LocalDesktopStore\logs\ Install logs and crash reports

Set LOCALDESKTOPSTORE_DATA_ROOT before launch to redirect all writable app data beneath one isolated root. This is useful for testing, demonstrations, and disposable environments.

Build locally

git clone https://github.com/SysAdminDoc/LocalDesktopStore.git
cd LocalDesktopStore
dotnet restore LocalDesktopStore.sln --locked-mode
dotnet build LocalDesktopStore.sln -c Release --no-restore
dotnet test LocalDesktopStore.sln -c Release --no-build

Build the framework-dependent app and both WiX packages with:

pwsh -NoProfile -File installer\build.ps1

Build the Velopack channel with:

pwsh -NoProfile -File installer\build-velopack.ps1

All builds and release artifacts are produced locally. The repository does not use remote build workflows.

Project notes

  • WPF on .NET 9 with MVVM and no third-party MVVM toolkit
  • Catppuccin Mocha by default, with a Latte light theme and optional Windows accent color
  • English and Spanish UI resources
  • MIT licensed

The actionable roadmap is in ROADMAP.md. Completed work is recorded in CHANGELOG.md.

Contributing

Bug reports and focused pull requests are welcome. Include the Windows version, package type, and the relevant activity or crash log when reporting install behavior.

If LocalDesktopStore saves you time, you can support continued work on Ko-fi.

License

MIT © 2026 SysAdminDoc

About

Turn GitHub Releases into a private Windows app catalog with verified installs, updates, and local control.

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages