Windows Installer — On-Premise / Enterprise
One .exe installs the whole stack on the customer's own Windows Server. Their SQL, their domain, no cloud dependency.
When to use this
The default deployment is SaaS cloud — customers just sign up at solvexaretail.com. But some enterprise customers need on-premise for:
- Data-residency requirements (data must stay on customer premises)
- Existing SQL Server / Windows Server infrastructure they want to reuse
- Air-gapped or offline environments
- Chain of stores where each store runs its own instance and syncs to HO
Prerequisites on the customer machine
- Windows 10 / 11 or Windows Server 2019+
- .NET 10 ASP.NET Core Runtime — download. Pick "ASP.NET Core Runtime 10.x — Windows x64 Installer"
- SQL Server 2019+ or SQL Server Express (any edition, local or reachable on LAN) — download
If either prereq is missing, the installer aborts with a friendly download link. No half-installed state.
Install walkthrough
- Double-click
SolvexaRetailHQ-Setup-<version>.exe(elevated / Run as administrator) - Read + accept the EULA
- Pick install location (default
C:\Program Files\Solvexa\Retail) - Optional: tick "Desktop shortcut"
- Click Install. Files copy (~70 MB).
- Configure.exe launches automatically — see next section
- Finish. Browser opens to
http://localhost:5000
Configure.exe wizard — SQL + service setup
After files land, Solvexa.Configure.exe runs. This is where you point Solvexa at your SQL Server.
- Server\Instance — e.g.
localhost\SQLEXPRESSorSQL01.local,1433 - Database name — default
MyRetailHQ - Authentication — pick Windows (uses your logged-in Windows identity) or SQL user (sa / SolvexaApp / whatever). Both work.
- Click Install — this does 5 things in sequence:
- Tests the SQL connection
- Creates the
MyRetailHQdatabase if missing - Runs every
Database\*.sqlmigration in filename order (idempotent — safe to re-run) - Writes
appsettings.Production.jsonwith the resolved connection string - Registers
SolvexaRetailHQas an auto-start Windows Service, opens firewall port 5000, and starts the service
- Browser auto-opens to
http://localhost:5000. Sign up as first user.
Configure.exe requires administrator privileges (needs to touch Program Files, register a service, and open firewall). It'll UAC-prompt automatically.
Windows Service — SolvexaRetailHQ
The app runs as a background Windows Service so it starts automatically on boot and survives reboots.
- Service name:
SolvexaRetailHQ - Display name: "Solvexa Retail HQ"
- Startup type: Automatic
- Listens on:
http://0.0.0.0:5000(firewall rule "Solvexa Retail HQ" allows inbound TCP 5000)
Manage from Services.msc or from an elevated cmd:
net stop SolvexaRetailHQ
net start SolvexaRetailHQ
sc query SolvexaRetailHQ
Reconfigure SQL later
If SQL moves, credentials rotate, or you want to migrate to a fresh DB, re-run Configure.exe:
- Start Menu "Reconfigure SQL / Migrations" (points at the installed Configure.exe)
- Same wizard as install. Enter new connection details. Migrations re-run (idempotent).
- Service restarts on the new connection.
Uninstall — data-safe
Control Panel Apps Solvexa Retail HQ Uninstall. What happens:
- Service stops + is deleted
- Firewall rule "Solvexa Retail HQ" removed
- App files deleted from
C:\Program Files\Solvexa\Retail - Database is NEVER dropped — customer data is preserved. A reinstall picks up where they left off.
If the customer truly wants to wipe data, they drop the SQL database manually via SSMS or
DROP DATABASE MyRetailHQ.Build the .exe (developer / integrator)
For the team producing the installer to ship to customers:
- Install Inno Setup 6 on the build machine (free, one-time)
cd D:\Projects\MyRetail\MyRetail.HQ\installer.\build.ps1- Output:
installer\out\SolvexaRetailHQ-Setup-1.0.0.exe
The build script:
dotnet publishthe app forwin-x64(framework-dependent — customer has .NET 10 runtime)dotnet publishConfigure.exe- Invokes
ISCC.exeonSolvexaRetail.iss
Ship the resulting single .exe to the customer via any channel (email, USB, download link). Everything they need is baked in.