You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Propose adding a standalone, self-contained Windows installer / uninstaller / repairer plus a tray-based OVMS Manager GUI, so Windows users can install a working, version-matched OVMS stack; run, monitor, and configure it; repair a broken install; and update it — all without manual unzip/env/config steps. This complements (does not replace) the portable ovms.zip.
Reference implementation: PR #4350. The Updates workflow is detailed in #4351.
Motivation
On Windows, OVMS ships only as a portable archive. There is no guided installer, no Apps & Features uninstaller, no repair path, and no update path. Non-expert users must manually unzip, set environment variables, wire up startup, and hand-edit config to serve a model. Because OVMS is a version-matched stack (ovms.exe + OpenVINO runtime + GenAI + tokenizers + Python), mixing DLLs across releases is a frequent failure. This is a real barrier to local/desktop adoption compared to tools like Ollama.
Architecture
Keep the server headless; add a thin Windows UX layer around it:
OVMS-Setup.exe installs the payload, writes first-run config, registers uninstaller/startup
OVMS.Manager.exe owns the tray icon + GUI; controls start/stop; edits settings; repair/update
ovms.exe unchanged model server process
Program files: %LOCALAPPDATA%\Programs\OVMS
User data: %LOCALAPPDATA%\OVMS (settings.json, models\config.json, logs\, packages\, diagnostics\, runtime.json)
Per-user, no elevation for the default flow (HKCU). Machine-wide/service mode is a follow-up requiring elevation.
Summary
Propose adding a standalone, self-contained Windows installer / uninstaller / repairer plus a tray-based OVMS Manager GUI, so Windows users can install a working, version-matched OVMS stack; run, monitor, and configure it; repair a broken install; and update it — all without manual unzip/env/config steps. This complements (does not replace) the portable
ovms.zip.Reference implementation: PR #4350. The Updates workflow is detailed in #4351.
Motivation
On Windows, OVMS ships only as a portable archive. There is no guided installer, no Apps & Features uninstaller, no repair path, and no update path. Non-expert users must manually unzip, set environment variables, wire up startup, and hand-edit config to serve a model. Because OVMS is a version-matched stack (ovms.exe + OpenVINO runtime + GenAI + tokenizers + Python), mixing DLLs across releases is a frequent failure. This is a real barrier to local/desktop adoption compared to tools like Ollama.
Architecture
Keep the server headless; add a thin Windows UX layer around it:
%LOCALAPPDATA%\Programs\OVMS%LOCALAPPDATA%\OVMS(settings.json,models\config.json,logs\,packages\,diagnostics\,runtime.json)Installer (Inno Setup, build-time-only dependency)
python_onpackage as a single version-matched payload — no downloads at install time.%LOCALAPPDATA%\OVMS\packages\source), re-runovms.exe --version.Manager GUI (.NET WinForms, tray app)
App-shell with a left nav rail and five pages (all responsive; process/HTTP work off the UI thread):
GET /v3/models), package variant, runtime mode; Start / Stop / Restart / Open Logs / Open Model Folder; auto-refresh..bak, restart prompt for command-line-affecting changes, non-local bind warning.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, local-only default bind.Non-goals (initial)
ovms.exeinto a GUI app; not replacingovms.zip.Design doc
Full architecture and phased plan:
packaging/windows/OVMS_WINDOWS_INSTALLER_MANAGER_PLAN.md(in PR #4350).Acceptance criteria
ovms.exe --versionworks afterward.Questions for maintainers
model_server, or preferred as a separate companion project?python_onandpython_offvariants, or one installer that can fetch the other variant?Happy to adjust scope based on direction.