Skip to content
← Indietro

AppMint Installer

Installer Windows offline per AppMint

In test
Inno Setup Windows Offline NSSM Embedded Runtimes
AppMint Installer

AppMint Installer è il tool di setup ufficiale per AppMint, fratello dell'Inno Setup di Dex Installer ma dedicato alla suite Mint. Bundle Windows completamente offline: porta con sé Node.js 20 LTS (MSI silent), Python 3.12 (EXE silent, opzionale per il sidecar), NSSM per la gestione del servizio Windows, e tutti i `node_modules` di AppMint pre-installati con `npm install --omit=dev`. Il setup.exe finale è autosufficiente — installa AppMint anche su un server appena formattato senza connessione internet.

Il wizard espone 6 pagine personalizzate (oltre alle classiche Welcome / License / Ready / Finish di Inno Setup):

1. **Prerequisiti** — informativa sui requisiti del target (Windows 10/11 o Server 2019+).

2. **Cartelle** — `ADMIN_DB_DIR` (DB admin + sessions + .secret-key), `LOGS_ROOT`, `SCRIPTS_ROOT`. Default: sotto `%PROGRAMDATA%\AppMint`, fuori dalla cartella codice cosi` un re-deploy non perde i dati.

3. **Porte** — porta HTTP (default 3100) + opzionale HTTPS nativo con cert/key path.

4. **Servizio Windows** — nome servizio NSSM, autostart al boot, scelta `NODE_ENV=development` o `production`.

5. **Funzionalità** — toggle Python sidecar (per regole Form Builder server-side), retention dei log, lingua di default IT/EN, embeddings KB (Ollama / OpenAI / disabilitati).

6. **Log installazione** — output live in tempo reale di `npm install`, `npm run init-db`, registrazione NSSM e avvio servizio.

Dopo il wizard l'esecuzione post-install fa: install di Node MSI silent se mancante; install di Python EXE silent se sidecar abilitato e Python non presente; `generate-env.ps1` legge la config raccolta e produce un `.env` completo con `SESSION_SECRET` random; `deploy.ps1` esegue `npm install` (idempotente: salta se i `node_modules` sono già nello staging), poi `npm run init-db` (crea schema admin + utente `admin/admin` con `must_change_password=1`), poi chiama `deploy-service.bat` con i flag `/skipenv /skipinstall /skipinitdb /yes` per registrare il servizio Windows. Avvia il servizio se richiesto e apre `http://localhost:<port>` nel browser di default.

La **disinstallazione** dal Pannello di Controllo (o `uninst000.exe`) invoca `undeploy.ps1` che ferma e rimuove il servizio NSSM via `undeploy-service.bat`, poi Inno Setup cancella la cartella `{app}\` con il codice. **NON tocca** `ADMIN_DB_DIR` né `LOGS_ROOT`: i dati restano per backup o reinstallazioni successive (puoi cancellarli a mano se proprio vuoi un reset completo).

Idempotente: rilanciando il setup.exe sopra un'installazione esistente, il wizard pre-popola le scelte dal `.env` corrente e re-deploya solo le parti che cambiano. Il build dell'installer richiede Inno Setup 6 + Node 18+ in PATH e si lancia con `Build-Installer.ps1`, che copia i sorgenti AppMint in staging, esegue `npm install --omit=dev`, e produce `dist\AppMint-Setup-X.Y.Z.exe` (~150-300 MB).

Funzionalità

  • Bundle 100% offline (Node 20 MSI + Python 3.12 EXE + NSSM + tutte le node_modules embedded)
  • Wizard a 6 pagine custom (Prerequisiti / Cartelle / Porte / Servizio / Funzionalità / Log)
  • Output live di npm install / init-db / NSSM register direttamente nella pagina log
  • Generazione automatica .env con SESSION_SECRET random + chiave AES-256-GCM
  • Detect e install silent di Node MSI se mancante sul target
  • Detect e install silent di Python EXE se sidecar abilitato
  • Servizio Windows registrato via NSSM con autostart configurabile
  • Scelta NODE_ENV: development (HTTP locale) o production (richiede HTTPS)
  • HTTPS nativo opzionale con cert/key path da .env
  • Embeddings KB configurabili: Ollama / OpenAI / disabilitati
  • Sidecar Python toggle per regole Form Builder server-side
  • Cartelle dati separate dal codice (default %PROGRAMDATA%\AppMint)
  • Disinstallazione che preserva ADMIN_DB_DIR e LOGS_ROOT
  • Idempotente — re-run aggiorna solo cio` che cambia
  • Build via Build-Installer.ps1 con override (-SourcePath, -SkipNpmInstall, -SkipDeps)
  • Verifica automatica deps\ prima del build con messaggi d'errore puntuali

Parametrizzazioni

  • Cartelle: ADMIN_DB_DIR / LOGS_ROOT / SCRIPTS_ROOT
  • Porta HTTP (default 3150 — scelto per evitare conflitti con AppMint standalone su 3100)
  • Porta HTTPS opzionale + path cert/key
  • Nome servizio Windows NSSM
  • Autostart al boot (sì/no)
  • NODE_ENV: development | production
  • Sidecar Python on/off
  • Retention log (giorni)
  • Lingua di default: IT | EN
  • Embeddings KB: Ollama (URL+model) | OpenAI (api_key) | disabilitati

Pre-requisiti tecnici

  • Windows 10 / 11 x64 oppure Windows Server 2019+
  • Privilegi amministratore (per registrare il servizio NSSM e aprire le porte firewall)
  • ~500 MB di spazio disco per AppMint + node_modules
  • Per il build dell'installer: Inno Setup 6 + Node.js 18+ + PowerShell 5.1+
  • Per il build: file in deps\ (nssm.exe + node-v20*.msi + python-3.12*.exe se sidecar)
  • Internet NON richiesto sul target di destinazione