Add Windows installer and Manager GUI (dashboard, settings, logs, advanced, updates)#4350
Open
exzile wants to merge 9 commits into
Open
Add Windows installer and Manager GUI (dashboard, settings, logs, advanced, updates)#4350exzile wants to merge 9 commits into
exzile wants to merge 9 commits into
Conversation
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> Signed-off-by: exzile <joeypongallo@gmail.com>
Replace the tray-only stub with a real WinForms Manager window while keeping the tray. Split into Program / TrayApplicationContext / MainForm / OvmsController / OvmsSettings. - Dashboard: live status (pid), runtime mode, REST/gRPC, bind, variant, health check (GET /v3/models) and served-model count; Start/Stop/ Restart/Refresh/Open-logs/Open-models. - Settings: edit ports, bind, log level/path, model repo, startup mode, show-tray, start-at-login (HKCU Run with --tray); atomic save with .bak and restart prompt for command-line-affecting changes. - Logs: tail last 500 lines of the server log. - Advanced: effective command line, repair package, validate env, export diagnostics bundle (zip). - All process/HTTP work runs off the UI thread; single-instance mutex; close-to-tray; GrpcPort default fixed to 0 to match the template. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Signed-off-by: exzile <joeypongallo@gmail.com>
Replace the TabControl layout with an app-shell: a left nav rail (Dashboard/Settings/Logs/Advanced) with Fluent icons, selected accent bar, and a Running/Stopped status pill, plus a content header with a refresh icon-button. - Theme.cs: color/font tokens + Fluent-icon glyph constants (Segoe Fluent Icons, falling back to Segoe MDL2 Assets). - CardPanel.cs: anti-aliased rounded-rectangle panel. - Dashboard: status cards (status/REST/gRPC/models/health/variant/mode) with colored dots and a 5s auto-refresh timer. - Logs: dark console (Consolas). Settings: aligned TableLayoutPanel. Advanced: command line + Repair/Validate/Export with inline status. - Logic layer (OvmsController/Program/Tray/Settings) unchanged; tray Open continues to open this window. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Signed-off-by: exzile <joeypongallo@gmail.com>
Layout fixes: - Nav rail buttons now render (NavButton no longer docks inside the FlowLayoutPanel; rail uses a Fill nav list between header and pill). - Action buttons show glyphs (Start/Stop/Restart) and no longer clip. - Wider status cards so values aren't truncated; larger default window. Page build-out: - Settings: Server + Startup/tray cards, Browse buttons for paths, Save/Reset with inline status and a non-local bind-address warning. - Logs: toolbar (refresh/open/clear), log path, auto-scroll toggle, line count + last-refreshed, "(log file not found)" handling. - Advanced: Environment card (dirs, version, command line + Copy) and Maintenance card (Repair / Validate / Export Diagnostics). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Signed-off-by: exzile <joeypongallo@gmail.com>
NavButton subscribed its own Click event to a handler that called OnClick(), which re-raises Click, recursing until the stack overflowed (0xc00000fd) on the first nav click. Only forward the child labels' clicks to OnClick now; the panel's own Click is raised by the framework. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Signed-off-by: exzile <joeypongallo@gmail.com>
Fields now stretch with the window (180px label column + percent-width field column; text inputs anchored, path textboxes fill with Browse pinned right). Added card subtitles, consistent row rhythm, muted helper text for bind address and gRPC port, and a footer divider. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Signed-off-by: exzile <joeypongallo@gmail.com>
Environment card now uses aligned label/value rows (install dir, data dir, version, config path) that stretch and ellipsize, plus a dedicated monospace command-line box with Copy. Maintenance card presents Repair / Validate / Export Diagnostics as titled+described action rows with right-aligned buttons. Responsive layout matching the Settings page. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Signed-off-by: exzile <joeypongallo@gmail.com>
Signed-off-by: exzile <joeypongallo@gmail.com>
…ed, updates) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Signed-off-by: exzile <joeypongallo@gmail.com>
504abdb to
23752ee
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #4351 · relates to #4347
Summary
Adds a standalone Windows installer/uninstaller/repairer and a tray-based OVMS Manager GUI under
packaging/windows/, giving Windows users a guided way to install, run, monitor, configure, repair, and update OpenVINO Model Server without manual steps. It complements the portableovms.zip(does not replace it).Installer (
packaging/windows/installer, Inno Setup)%LOCALAPPDATA%\Programs\OVMS, data under%LOCALAPPDATA%\OVMS, HKCU.python_onpackage as one version-matched payload (OVMS + OpenVINO runtime + GenAI + tokenizers + Python) — no install-time downloads.%LOCALAPPDATA%\OVMS\packages\sourcefor offline repair (repair-package.ps1: verify → restore missing files →ovms.exe --version).Manager GUI (
packaging/windows/manager, .NET WinForms, tray app)An app-shell with a left nav rail (Fluent icons, accent selection, Running/Stopped status pill) and five pages, all responsive and off-UI-thread for process/HTTP work:
GET /v3/models, package variant, runtime mode); Start / Stop / Restart / Open Logs / Open Model Folder; 5s auto-refresh..bak, restart prompt for command-line-affecting changes, and a non-local bind-address warning.upgrade-package.ps1: download → verify → back up → replace → validate → reconfigure).Supporting scripts (
packaging/windows/scripts)configure-ovms,start-ovms/stop-ovms(process or service),set-path,ovms-env,install-service/uninstall-service,validate-install,repair-package,upgrade-package,uninstall-ovms. Atomic JSON writes, runtime ownership viaruntime.json, port preflight.Design
packaging/windows/OVMS_WINDOWS_INSTALLER_MANAGER_PLAN.mddocuments the architecture and phased plan.Validation
dotnet build packaging/windows/manager/src/OVMS.Manager/OVMS.Manager.csproj -c Release— clean (0 warnings).build_installer.ps1.Notes
bin/,obj/,artifacts/) are git-ignored.🤖 Generated with Claude Code
How to build
How to test
OVMS-Setup.exe(per-user, no admin). Confirm Start Menu shortcuts (Open / Start / Stop / Repair / Uninstall) and thatovms.exe --versionworks.Screenshots
Dashboard � live status, health, and server controls

Settings � responsive server & startup configuration

Logs � live server log tail

Advanced � environment info and maintenance actions

Updates � installed vs. latest with staged upgrade (#4351)

Related