Both installers drop users-modify from the program folder (and local-postgres in the single-user installer) and run icacls to remove the Users group's own grants (by SID) from the program folder after copying files, so upgrades over 8.2.4 lose them too. The data folder keeps users-modify and config.json stays readable by local users (the running account is not known at install time); both documented in the single-user and LAN install pages. Changelog updated. F2 fixed (write access), the rest accepted. Deferred: report on a missing record fails with a generic error. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
85 lines
3.9 KiB
Plaintext
85 lines
3.9 KiB
Plaintext
; LAN install for internal network use only
|
|
|
|
#define MyAppName "AyaNova server"
|
|
#define MyAppVersion "8.3.0"
|
|
#define MyAppPublisher "Ground Zero Tech-Works, Inc."
|
|
#define MyAppURL "https://ayanova.com/"
|
|
#define MyAppLauncherExeName "ayanova-launcher.exe"
|
|
|
|
|
|
[Setup]
|
|
; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications.
|
|
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
|
|
AppId={{B2BB79DB-0690-497C-B92B-955F7B468429}
|
|
AppName={#MyAppName}
|
|
AppVersion={#MyAppVersion}
|
|
;AppVerName={#MyAppName} {#MyAppVersion}
|
|
AppPublisher={#MyAppPublisher}
|
|
AppPublisherURL={#MyAppURL}
|
|
AppSupportURL={#MyAppURL}
|
|
AppUpdatesURL={#MyAppURL}
|
|
DefaultDirName={autopf}\ayanova
|
|
DisableProgramGroupPage=yes
|
|
LicenseFile=C:\data\code\raven\dist\assets\license.rtf
|
|
OutputDir=C:\data\code\raven\dist\installers
|
|
OutputBaseFilename=ayanova-windows-x64-lan-setup
|
|
SetupIconFile=C:\data\code\raven\dist\assets\logo.ico
|
|
UninstallDisplayIcon={app}\ayanova-app-logo.ico
|
|
Compression=lzma
|
|
SolidCompression=yes
|
|
WizardStyle=modern
|
|
ArchitecturesInstallIn64BitMode=x64
|
|
ArchitecturesAllowed=x64
|
|
|
|
|
|
[Tasks]
|
|
Name: "StartMenuEntry" ; Description: "Start AyaNova server when Windows starts" ; GroupDescription: "Windows Startup";
|
|
|
|
[Files]
|
|
Source: "C:\data\code\raven\dist\win-x64\ayanova\framework-dependent\*"; DestDir: "{app}";Flags: ignoreversion recursesubdirs createallsubdirs
|
|
Source: "C:\data\code\raven\dist\assets\lan-install-config.json"; DestDir: "{app}";DestName: "config.json"; Flags: ignoreversion confirmoverwrite
|
|
Source: "C:\data\code\raven\dist\assets\logo.ico"; DestDir: "{app}";DestName: "ayanova-app-logo.ico"; Flags: ignoreversion
|
|
Source: "C:\data\code\raven\dist\assets\open-ayanova-app.bat"; DestDir: "{app}";Flags: ignoreversion
|
|
|
|
|
|
[Dirs]
|
|
Name: "{commonappdata}\ayanova";Permissions: users-modify;
|
|
Name: "{commonappdata}\ayanova\logs";Permissions: users-modify;
|
|
|
|
|
|
[UninstallDelete]
|
|
Type: filesandordirs; Name: "{app}\Chrome"
|
|
Type: filesandordirs; Name: "{app}\ChromeHeadlessShell"
|
|
|
|
[Run]
|
|
; case 4579: the program folder is no longer writable by all local users (nothing writes there, data is under
|
|
; {commonappdata}\ayanova). Upgrades over 8.2.4 or older still carry the old grant, so remove the Users group's own
|
|
; rights (by SID, the group name is translated) from the program folder and everything in it; inherited read rights stay
|
|
Filename: "{sys}\icacls.exe"; Parameters: """{app}"" /remove:g *S-1-5-32-545 /T /C /Q"; Flags: runhidden waituntilterminated
|
|
|
|
[Icons]
|
|
Name: "{autoprograms}\AyaNova server\{#MyAppName}"; Filename: "{app}\AyaNova.exe";IconFilename: "{app}\AyaNova.exe";
|
|
Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\AyaNova.exe";IconFilename: "{app}\AyaNova.exe";
|
|
Name: "{commonstartup}\{#MyAppName}"; Filename: "{app}\AyaNova.exe"; Tasks:StartMenuEntry;
|
|
Name: "{autoprograms}\AyaNova server\AyaNova App";Filename: "{app}\open-ayanova-app.bat";IconFilename: "{app}\ayanova-app-logo.ico";
|
|
Name: "{autodesktop}\AyaNova App";Filename: "{app}\open-ayanova-app.bat";IconFilename: "{app}\ayanova-app-logo.ico";
|
|
|
|
|
|
[Code]
|
|
procedure CurStepChanged(CurStep: TSetupStep);
|
|
var
|
|
ErrCode: integer;
|
|
begin
|
|
if (CurStep=ssInstall) then
|
|
begin
|
|
if MsgBox('AyaNova requires the "ASP.NET Core Runtime Hosting bundle" 10.x.' + #13#10 +'Open the download web page now?', mbConfirmation, MB_YESNO or MB_DEFBUTTON2) = IDYES then
|
|
begin
|
|
ShellExec('open', 'https://dotnet.microsoft.com/en-us/download/dotnet/10.0', '', '', SW_SHOW, ewNoWait, ErrCode);
|
|
end;
|
|
if MsgBox('AyaNova requires a PostgreSQL db server.' + #13#10 +'Open the PostgreSQL download page now?', mbConfirmation, MB_YESNO or MB_DEFBUTTON2) = IDYES then
|
|
begin
|
|
ShellExec('open', 'https://www.postgresql.org/download/windows/', '', '', SW_SHOW, ewNoWait, ErrCode);
|
|
end;
|
|
end;
|
|
end;
|