Autarch/installer.iss
DigiJ 4a721a73b4 Add system tray, dual-exe build, and installer scripts
- core/tray.py: System tray icon with Start/Stop/Restart/Open Dashboard/Exit
- autarch_web.py: Windowless web launcher entry point (Win32GUI, no console)
- core/paths.py: Frozen build support — dual-directory pattern for PyInstaller
- core/menu.py: Module loading scans both bundled and user module directories
- web/app.py: Template/static paths resolve correctly in frozen builds
- autarch.py: --no-tray flag, tray integration for --web mode
- autarch_public.spec: Dual-exe PyInstaller spec with MERGE/COLLECT
- setup_msi.py: Dual executables, LocalAppData install, model inclusion
- installer.iss: Inno Setup script (model stored uncompressed to avoid OOM)
- installer.nsi: NSIS installer script with MUI2

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 22:02:22 -08:00

86 lines
3.2 KiB
Plaintext

; ============================================================================
; AUTARCH Inno Setup Installer Script
; ============================================================================
;
; Prerequisites:
; 1. Build PyInstaller first: pyinstaller autarch_public.spec
; 2. Install Inno Setup: https://jrsoftware.org/isdl.php
; 3. Compile this script: Open in Inno Setup Compiler -> Build -> Compile
; Or from CLI: iscc installer.iss
;
; Output: Output\AUTARCH_Setup.exe
; ============================================================================
[Setup]
AppName=AUTARCH
AppVersion=1.3
AppVerName=AUTARCH 1.3
AppPublisher=darkHal Security Group
AppPublisherURL=https://github.com/darkhal
AppSupportURL=https://github.com/darkhal
DefaultDirName={localappdata}\AUTARCH
DefaultGroupName=AUTARCH
OutputBaseFilename=AUTARCH_Setup
Compression=lzma2
SolidCompression=no
LZMANumBlockThreads=4
PrivilegesRequired=lowest
ArchitecturesAllowed=x64compatible
ArchitecturesInstallIn64BitMode=x64compatible
UninstallDisplayName=AUTARCH
DisableProgramGroupPage=yes
WizardStyle=modern
SetupLogging=yes
; Uncomment and set path if you have a custom icon:
; SetupIconFile=assets\autarch.ico
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
[Tasks]
Name: "desktopicon"; Description: "Create a Desktop shortcut"; GroupDescription: "Additional shortcuts:"
Name: "startupicon"; Description: "Launch Web Dashboard on Windows startup"; GroupDescription: "Additional shortcuts:"; Flags: unchecked
[Files]
; GGUF model — store uncompressed (3.9GB, barely compressible, avoids OOM)
Source: "dist\autarch\_internal\models\Hal_v2.gguf"; DestDir: "{app}\_internal\models"; Flags: ignoreversion nocompression
; Everything else from PyInstaller output (compressed with lzma2)
Source: "dist\autarch\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Excludes: "_internal\models\Hal_v2.gguf"
[Icons]
; Start Menu
Name: "{group}\AUTARCH Web Dashboard"; Filename: "{app}\autarch_web.exe"; Comment: "Launch AUTARCH Web Dashboard with system tray"
Name: "{group}\AUTARCH CLI"; Filename: "{app}\autarch.exe"; Comment: "AUTARCH command-line interface"
Name: "{group}\Uninstall AUTARCH"; Filename: "{uninstallexe}"
; Desktop (optional)
Name: "{commondesktop}\AUTARCH Web"; Filename: "{app}\autarch_web.exe"; Tasks: desktopicon; Comment: "Launch AUTARCH Web Dashboard"
; Windows Startup (optional)
Name: "{userstartup}\AUTARCH Web"; Filename: "{app}\autarch_web.exe"; Tasks: startupicon
[Run]
; Option to launch after install
Filename: "{app}\autarch_web.exe"; Description: "Launch AUTARCH Web Dashboard"; Flags: nowait postinstall skipifsilent
[UninstallRun]
; Kill running instances before uninstall
Filename: "taskkill"; Parameters: "/F /IM autarch.exe"; Flags: runhidden
Filename: "taskkill"; Parameters: "/F /IM autarch_web.exe"; Flags: runhidden
[UninstallDelete]
; Clean up runtime-generated files
Type: filesandordirs; Name: "{app}\data"
Type: filesandordirs; Name: "{app}\results"
Type: filesandordirs; Name: "{app}\dossiers"
Type: filesandordirs; Name: "{app}\backups"
Type: files; Name: "{app}\autarch_settings.conf"
[Code]
// Show installed size in wizard
function InitializeSetup(): Boolean;
begin
Result := True;
end;