Skip to content

Add standalone Windows installer, uninstaller, and repairer for OVMS#4348

Closed
exzile wants to merge 3 commits into
openvinotoolkit:mainfrom
exzile:feature/windows-installer-manager
Closed

Add standalone Windows installer, uninstaller, and repairer for OVMS#4348
exzile wants to merge 3 commits into
openvinotoolkit:mainfrom
exzile:feature/windows-installer-manager

Conversation

@exzile

@exzile exzile commented Jun 30, 2026

Copy link
Copy Markdown

Addresses #4347

What this adds

A standalone, self-contained Windows installer / uninstaller / repairer for OVMS under packaging/windows/, plus a minimal tray manager. It complements the portable ovms.zip (does not replace it).

Installer (installer/OVMSInstaller.iss, Inno Setup)

  • Per-user, no elevation: installs to %LOCALAPPDATA%\Programs\OVMS, data under %LOCALAPPDATA%\OVMS, HKCU registry.
  • Installs the existing python_on package as one version-matched payload (OVMS + OpenVINO runtime + GenAI + tokenizers + Python) — no install-time downloads.
  • Existing-install detection → wizard page: Repair/upgrade (default) vs Uninstall then exit (clean exit).
  • Caches the pristine payload to %LOCALAPPDATA%\OVMS\packages\source for offline repair.
  • Apps & Features uninstaller; Start Menu shortcuts (Open / Start / Stop / Repair / Uninstall); optional PATH + start-at-login.
  • Modern wizard UI.

Scripts (scripts/, PowerShell)

  • configure-ovms, start-ovms/stop-ovms (process or service), set-path, ovms-env, install-service/uninstall-service, validate-install.
  • repair-package.ps1 — verify required files, restore missing ones from the cached package, re-run ovms.exe --version.
  • uninstall-ovms.ps13-way data choice: preserve all / keep models / remove all.
  • Atomic JSON writes (temp + move, UTF-8 no BOM), runtime ownership via runtime.json, port preflight.

Manager (manager/, .NET WinForms)

  • Tray app: start/stop/status. MVP stub — a fuller GUI would be a follow-up.

Design

  • packaging/windows/OVMS_WINDOWS_INSTALLER_MANAGER_PLAN.md documents the full architecture and phased plan.

Notes / scope

  • Inno Setup is a build-time-only dependency; the produced setup needs no extra runtimes.
  • Build artifacts (bin/, obj/, artifacts/) are git-ignored.
  • Windows Service mode scripts are present but require elevation; not wired into the per-user flow yet.
  • The package is the unit of install — no mixing of arbitrary OpenVINO/GenAI/OVMS DLL versions.

Testing

  • Builds with Inno Setup 6.7.3 via build_installer.ps1 (clean compile).
  • Install / repair / uninstall (incl. the 3-way data prompt) and the existing-install choice page exercised manually on Windows 11.

This is a reference implementation for discussion in #4347; happy to adjust scope based on maintainer direction.

🤖 Generated with Claude Code

exzile and others added 3 commits June 30, 2026 17:00
Introduce packaging/windows: a per-user Inno Setup installer plus
PowerShell control scripts and a tray Manager that make OpenVINO Model
Server installable, repairable, and removable on Windows without admin
rights.

- Installer (OVMSInstaller.iss): per-user install to %LOCALAPPDATA%,
  modern wizard UI with OpenVINO branding, existing-install detection
  with a repair/upgrade-vs-uninstall choice page, and caches the
  pristine package under %LOCALAPPDATA%\OVMS\packages\source for
  offline repair.
- Scripts: configure-ovms, start/stop (process or service), set-path,
  service install/uninstall, validate-install, repair-package (verify +
  restore + ovms --version), and uninstall with a 3-way data choice
  (preserve all / keep models / remove all).
- Manager: WinForms tray app (start/stop/status) as an MVP; full GUI
  to follow.
- Bundles the python_on OVMS package (OpenVINO runtime, GenAI,
  tokenizers, Python) as a single version-matched payload.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@jpongallo1

Copy link
Copy Markdown

Superseded by #4350, which contains the full Windows feature: this installer/uninstaller/repairer plus the tray Manager GUI (Dashboard, Settings, Logs, Advanced, Updates) and the staged package-upgrade workflow. Consolidating into a single PR to avoid overlap. Please review #4350 instead.

1 similar comment
@exzile

exzile commented Jul 1, 2026

Copy link
Copy Markdown
Author

Superseded by #4350, which contains the full Windows feature: this installer/uninstaller/repairer plus the tray Manager GUI (Dashboard, Settings, Logs, Advanced, Updates) and the staged package-upgrade workflow. Consolidating into a single PR to avoid overlap. Please review #4350 instead.

@exzile exzile closed this Jul 1, 2026
@exzile exzile deleted the feature/windows-installer-manager branch July 1, 2026 15:06
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.

2 participants