; ARIA Host-Agent — Windows-Installer (NSIS, auf Linux mit makensis gebaut). ; ; Installiert die Agent-.exe nach %ProgramFiles%\ARIA Host-Agent, legt eine .env ; in %ProgramData%\ARIA-Host-Agent an (nur falls noch keine da ist — User-Config ; bleibt erhalten) und richtet einen automatisch startenden Windows-Dienst via ; nssm ein. Der Dienst laeuft mit AppDirectory = ProgramData-Ordner, damit der ; Agent die .env von dort (aus dem CWD) liest. !ifndef VERSION !define VERSION "0.0.0" !endif !define SVC "ARIAHostAgent" Name "ARIA Host-Agent ${VERSION}" OutFile "aria-host-agent-setup.exe" InstallDir "$PROGRAMFILES64\ARIA Host-Agent" RequestExecutionLevel admin Unicode true ShowInstDetails show ShowUninstDetails show Var DataDir Page directory Page instfiles UninstPage uninstConfirm UninstPage instfiles Section "Install" SetOutPath "$INSTDIR" File "aria-host-agent.exe" File "nssm.exe" ; ProgramData-Ordner fuer die .env bestimmen ReadEnvStr $0 "ProgramData" StrCmp $0 "" 0 +2 StrCpy $0 "$PROFILE" ; Fallback, falls %ProgramData% fehlt StrCpy $DataDir "$0\ARIA-Host-Agent" CreateDirectory "$DataDir" ; .env nur schreiben, wenn noch keine existiert (User-Config nicht ueberschreiben) IfFileExists "$DataDir\.env" env_done 0 FileOpen $1 "$DataDir\.env" w FileWrite $1 "# ARIA Host-Agent — Konfiguration (dieser Windows-Dienst liest diese Datei).$\r$\n" FileWrite $1 "# Nach dem Aendern den Dienst neu starten: services.msc -> ARIA Host-Agent.$\r$\n" FileWrite $1 "RVS_HOST=rvs.example.de$\r$\n" FileWrite $1 "RVS_PORT=443$\r$\n" FileWrite $1 "RVS_TLS=true$\r$\n" FileWrite $1 "RVS_TLS_FALLBACK=true$\r$\n" FileWrite $1 "RVS_TOKEN=$\r$\n" FileWrite $1 "RVS_SNI=$\r$\n" FileWrite $1 "HOST_NAME=$\r$\n" FileWrite $1 "CONTROL_ENABLED=true$\r$\n" FileClose $1 env_done: ; Dienst (neu) einrichten — evtl. alten sauber entfernen, dann installieren nsExec::ExecToLog '"$INSTDIR\nssm.exe" stop ${SVC}' nsExec::ExecToLog '"$INSTDIR\nssm.exe" remove ${SVC} confirm' nsExec::ExecToLog '"$INSTDIR\nssm.exe" install ${SVC} "$INSTDIR\aria-host-agent.exe"' nsExec::ExecToLog '"$INSTDIR\nssm.exe" set ${SVC} AppDirectory "$DataDir"' nsExec::ExecToLog '"$INSTDIR\nssm.exe" set ${SVC} DisplayName "ARIA Host-Agent"' nsExec::ExecToLog '"$INSTDIR\nssm.exe" set ${SVC} Description "ARIA-Fernsteuerung dieses Rechners (RVS-Agent)."' nsExec::ExecToLog '"$INSTDIR\nssm.exe" set ${SVC} Start SERVICE_AUTO_START' nsExec::ExecToLog '"$INSTDIR\nssm.exe" start ${SVC}' ; Uninstaller + Eintrag unter "Apps & Features" WriteUninstaller "$INSTDIR\uninstall.exe" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\ARIAHostAgent" "DisplayName" "ARIA Host-Agent" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\ARIAHostAgent" "DisplayVersion" "${VERSION}" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\ARIAHostAgent" "UninstallString" '"$INSTDIR\uninstall.exe"' SectionEnd Section "Uninstall" nsExec::ExecToLog '"$INSTDIR\nssm.exe" stop ${SVC}' nsExec::ExecToLog '"$INSTDIR\nssm.exe" remove ${SVC} confirm' Delete "$INSTDIR\aria-host-agent.exe" Delete "$INSTDIR\nssm.exe" Delete "$INSTDIR\uninstall.exe" RMDir "$INSTDIR" DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\ARIAHostAgent" ; Die .env in %ProgramData%\ARIA-Host-Agent bleibt bewusst erhalten (User-Config). SectionEnd