AppMint Installer
Offline Windows installer for AppMint
AppMint Installer is the official setup tool for AppMint, sibling of Dex Installer's Inno Setup but dedicated to the Mint suite. Fully offline Windows bundle: ships with Node.js 20 LTS (silent MSI), Python 3.12 (silent EXE, optional for the sidecar), NSSM for Windows service management, and all AppMint `node_modules` pre-installed with `npm install --omit=dev`. The final setup.exe is self-sufficient — installs AppMint even on a freshly formatted server with no internet connection.
The wizard exposes 6 custom pages (in addition to Inno Setup's standard Welcome / License / Ready / Finish):
1. **Prerequisites** — info about target requirements (Windows 10/11 or Server 2019+).
2. **Folders** — `ADMIN_DB_DIR` (admin DB + sessions + .secret-key), `LOGS_ROOT`, `SCRIPTS_ROOT`. Default: under `%PROGRAMDATA%\AppMint`, outside the code folder so re-deploying does not lose data.
3. **Ports** — HTTP port (default 3100) + optional native HTTPS with cert/key path.
4. **Windows service** — NSSM service name, auto-start at boot, choice between `NODE_ENV=development` or `production`.
5. **Features** — Python sidecar toggle (for server-side Form Builder rules), log retention, default language IT/EN, KB embeddings (Ollama / OpenAI / disabled).
6. **Install log** — live real-time output of `npm install`, `npm run init-db`, NSSM registration and service start.
After the wizard, post-install execution does: silent Node MSI install if missing; silent Python EXE install if sidecar enabled and Python absent; `generate-env.ps1` reads the collected config and produces a complete `.env` with random `SESSION_SECRET`; `deploy.ps1` runs `npm install` (idempotent: skipped if `node_modules` are already in staging), then `npm run init-db` (creates admin schema + `admin/admin` user with `must_change_password=1`), then calls `deploy-service.bat` with `/skipenv /skipinstall /skipinitdb /yes` flags to register the Windows service. Starts the service if requested and opens `http://localhost:<port>` in the default browser.
**Uninstall** from Control Panel (or `uninst000.exe`) invokes `undeploy.ps1` which stops and removes the NSSM service via `undeploy-service.bat`, then Inno Setup deletes the `{app}\` folder with the code. **Does NOT touch** `ADMIN_DB_DIR` or `LOGS_ROOT`: data remains for backups or future reinstalls (you can delete them manually if you really want a full reset).
Idempotent: re-running setup.exe over an existing install pre-populates the wizard with choices from the current `.env` and only re-deploys what changed. Building the installer requires Inno Setup 6 + Node 18+ in PATH and runs via `Build-Installer.ps1`, which copies AppMint sources to staging, runs `npm install --omit=dev`, and produces `dist\AppMint-Setup-X.Y.Z.exe` (~150-300 MB).
Features
- 100% offline bundle (Node 20 MSI + Python 3.12 EXE + NSSM + all node_modules embedded)
- 6 custom wizard pages (Prerequisites / Folders / Ports / Service / Features / Log)
- Live output of npm install / init-db / NSSM register directly in the log page
- Automatic .env generation with random SESSION_SECRET + AES-256-GCM key
- Detect and silent install of Node MSI if missing on target
- Detect and silent install of Python EXE if sidecar enabled
- Windows service registered via NSSM with configurable auto-start
- NODE_ENV choice: development (local HTTP) or production (requires HTTPS)
- Optional native HTTPS with cert/key path in .env
- Configurable KB embeddings: Ollama / OpenAI / disabled
- Python sidecar toggle for server-side Form Builder rules
- Data folders separated from code (default %PROGRAMDATA%\AppMint)
- Uninstall preserves ADMIN_DB_DIR and LOGS_ROOT
- Idempotent — re-run updates only what changed
- Build via Build-Installer.ps1 with overrides (-SourcePath, -SkipNpmInstall, -SkipDeps)
- Automatic deps\ verification before build with precise error messages
Configuration
- Folders: ADMIN_DB_DIR / LOGS_ROOT / SCRIPTS_ROOT
- HTTP port (default 3150 — chosen to avoid conflicts with standalone AppMint on 3100)
- Optional HTTPS port + cert/key path
- NSSM Windows service name
- Auto-start at boot (yes/no)
- NODE_ENV: development | production
- Python sidecar on/off
- Log retention (days)
- Default language: IT | EN
- KB embeddings: Ollama (URL+model) | OpenAI (api_key) | disabled
Technical prerequisites
- Windows 10 / 11 x64 or Windows Server 2019+
- Admin privileges (to register the NSSM service and open firewall ports)
- ~500 MB disk space for AppMint + node_modules
- To build the installer: Inno Setup 6 + Node.js 18+ + PowerShell 5.1+
- To build: files in deps\ (nssm.exe + node-v20*.msi + python-3.12*.exe if sidecar)
- Internet NOT required on the target machine