Files
Install-Beszel-Agent/install-beszel-service.cmd
2025-01-19 12:32:59 +01:00

46 lines
1.3 KiB
Batchfile

@echo off
if !%1==! goto help
if !%2==! goto help
set BESZELKEYPREFIX=%1
set BESZELKEY=%2
set SERVICENAME=BeszelAgent
set DESTINATIONDIR=%ProgramFiles%\%SERVICENAME%
set AGENTEXE=%DESTINATIONDIR%\agent.exe
where nssm.exe >nul 2>&1
if %errorlevel%==1 goto install
goto proceed
:install
echo Installing NSSM with winget
winget install nssm
rem Refresh the environment to start nssm from %PATH%
rem Call RefreshEnv.cmd from Chocolatey:
call .\RefreshEnv.cmd
:proceed
echo Creating deirectory %DESTINATIONDIR%
md "%DESTINATIONDIR%" >nul 2>&1
echo Copying agent.exe
copy .\agent.exe "%DESTINATIONDIR%\" >nul 2>&1
echo Adding firewall rule
netsh advfirewall firewall add rule name="%SERVICENAME%" dir=in action=allow program="%AGENTEXE%" enable=yes >nul 2>&1
echo Installing service
nssm install %SERVICENAME% "%AGENTEXE%" >nul 2>&1
nssm set %SERVICENAME% AppEnvironmentExtra "KEY=%BESZELKEYPREFIX% %BESZELKEY%" >nul 2>&1
echo Setting environment für service
nssm start %SERVICENAME% >nul 2>&1
echo Service installed, status:
nssm dump %SERVICENAME%
goto end
:help
echo You have to provide a Beszel ssh key, e.g. 'install-beszel-service.cmd ssh-ed25519 AAAAC3L3lIpn94iu2TIpdmneXsEC1TDvrg4HCNoM1aiC683WMZfGOVoatrJSkysaQB9K
echo The key must not be enclosed in "" or '', just copy and paste it as it is.
:end