Dockerfile.win (tobix/pywine): baut die Windows-.exe via Wine+PyInstaller und per NSIS ein setup.exe, das den Agent via nssm als Autostart-Windows-Dienst einrichtet und die .env aus %ProgramData%\ARIA-Host-Agent liest (AppDirectory). build-win.sh als Einstieg; release_agent.sh baut Windows jetzt mit (SKIP_WINDOWS=1 ueberspringt). _load_dotenv haertet: sucht .env auch neben sys.executable (onefile- .exe-Ort), nicht nur __file__/CWD. README: Windows-Build + Dienst + Release. macOS bleibt self-build (nicht aus Docker moeglich). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
84 lines
3.4 KiB
NSIS
84 lines
3.4 KiB
NSIS
; 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
|