142 lines
5.2 KiB
Markdown
142 lines
5.2 KiB
Markdown
# BeszelWin
|
|
|
|
A collection of four scripts to build, install, update or uninstall the [Beszel](https://beszel.dev) agent under Microsoft Windows, inspired by [*Using Beszel to monitor Windows*](https://blog.ktz.me/using-beszel-to-monitor-windows/) by Alex Kretschmar.
|
|
|
|
## (1) Building the executable
|
|
|
|
### Prerequisites
|
|
|
|
- Microsoft Windows 10 or later **Client** OS (64 bit)
|
|
|
|
*Building under Windows Server OS should be working, but you have to install Go and Git manually as Winget is not available for Windows server operating systems.*
|
|
|
|
### Compiling
|
|
|
|
Download and extract [install-beszel-service.zip](https://gitea.elpatron.me/elpatron/Install-Beszel-Agent/releases/latest).
|
|
|
|
Open a `cmd.exe` shell, `cd` into the script directory (where you extracted the archive) and start the build-script:
|
|
|
|
```
|
|
.\build_agent.cmd
|
|
```
|
|
|
|
The script will install *Git* and *Go* (if not yet installed) with *Winget*, clone the *Beszel* repository and build a Windows 64 bit `agent.exe` binary.
|
|
|
|
```
|
|
C:\Users\User\Downloads\install-beszel-service>build_agent.cmd
|
|
This script downloads the Beszel repository and builds the Beszel agent for Windows (64 Bit only).
|
|
If not yet installed, Git and Go will be installed via Winget.
|
|
|
|
Winget executable found
|
|
Installing Go with Winget
|
|
Installing Git with Winget
|
|
Refreshing environment variables from registry for cmd.exe. Please wait...Finished..
|
|
Cloning Beszel repository
|
|
Building agent
|
|
Build successful
|
|
Beszel agent.exe was built and copied, you can proceed with 'install-beszel-service.cmd'.
|
|
```
|
|
|
|
|
|
|
|
## (2) Installing the service
|
|
|
|
### Prerequisites
|
|
|
|
- Microsoft Windows 10 or later - *Server OS should work, too*
|
|
|
|
### Installation
|
|
|
|
Open a `cmd.exe` shell with **administrative rights** and `cd` into the script directory (where you extracted the archive).
|
|
|
|
If you have built the agent by yourself: Copy your `agent.exe` binary to the directory where you extracted the scripts. Overwrite `agent.exe` from the archive.
|
|
|
|
Example:
|
|
|
|
```
|
|
copy /y .\beszel\beszel\cmd\agent\agent.exe .
|
|
```
|
|
|
|
Start the installation script provided with your Beszel Ssh key:
|
|
|
|
````
|
|
.\install-beszel-service.cmd <your Beszel ssh key>
|
|
````
|
|
|
|
The script copies `agent.exe` into the directory `%ProgramFiles%\BeszelAgent` and takes usage of *[NSSM - the Non-Sucking Service Manager](https://nssm.cc/)* to install the service. If *NSSM* is not yet installed on your system, it will be downloaded and installed to the Beszel agent directory.
|
|
|
|
The provided `agent.exe` was compiled on January, 17th 2025 by me and should be exchanged by a self compiled or official executable, see *(1) Building the executable*.
|
|
|
|
For more details, see [*Using Beszel to monitor Windows*](https://blog.ktz.me/using-beszel-to-monitor-windows/) by Alex Kretschmar.
|
|
|
|
```
|
|
C:\Users\User\Downloads\install-beszel-service>install-beszel-service.cmd ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJwRj3l7U9QUJM2K8p2mkH8KDJmhpMwejuPci4LtGxEz
|
|
This script installs the Beszel agent for Windows.
|
|
If not yet installed, NSSM will be installed via Winget.
|
|
|
|
Checking adminstrative rights
|
|
Administrative rights check OK
|
|
Creating directory C:\Program Files\BeszelAgent
|
|
Downloading NSSM
|
|
Extracting ZIP file
|
|
Copying nssm.exe to C:\Program Files\BeszelAgent
|
|
Deleting temporary files and directories
|
|
Copying agent.exe to C:\Program Files\BeszelAgent
|
|
Adding firewall rule
|
|
Installing service BeszelAgent
|
|
Setting environment for BeszelAgent
|
|
Starting BeszelAgent
|
|
BeszelAgent: START: The operation completed successfully.
|
|
Display service status
|
|
NSSM dump:
|
|
^"^\^"C:^\Program Files^\BeszelAgent^\nssm.exe^\^"^" install BeszelAgent "C:\Program Files\BeszelAgent\agent.exe"
|
|
^"^\^"C:^\Program Files^\BeszelAgent^\nssm.exe^\^"^" set BeszelAgent AppDirectory "C:\Program Files\BeszelAgent"
|
|
^"^\^"C:^\Program Files^\BeszelAgent^\nssm.exe^\^"^" set BeszelAgent AppExit Default Restart
|
|
^"^\^"C:^\Program Files^\BeszelAgent^\nssm.exe^\^"^" set BeszelAgent AppEnvironmentExtra ":KEY=ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJwRj3l7U9QUJM2K8p2mkH8KDJmhpMwejuPci4LtGxEz"
|
|
^"^\^"C:^\Program Files^\BeszelAgent^\nssm.exe^\^"^" set BeszelAgent DisplayName BeszelAgent
|
|
^"^\^"C:^\Program Files^\BeszelAgent^\nssm.exe^\^"^" set BeszelAgent ObjectName LocalSystem
|
|
^"^\^"C:^\Program Files^\BeszelAgent^\nssm.exe^\^"^" set BeszelAgent Start SERVICE_AUTO_START
|
|
^"^\^"C:^\Program Files^\BeszelAgent^\nssm.exe^\^"^" set BeszelAgent Type SERVICE_WIN32_OWN_PROCESS
|
|
Wait 5 seconds, check service status
|
|
SERVICE_RUNNING
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## (3) Updating the service
|
|
|
|
### Prerequisites
|
|
|
|
- To update the Beszel agent, it has to be installed using the install script.
|
|
|
|
### Updating
|
|
|
|
Open a `cmd.exe` shell with **administrative rights** and `cd` into the script directory (where you extracted the archive).
|
|
|
|
Start the update by launching
|
|
|
|
```
|
|
.\update_agent.cmd
|
|
```
|
|
|
|
The update will make a fresh clone of the Beszel GitHub repository, build the executable, stop the agent service, copy the new `agent.exe` to `%ProgramFiles%\BeszelAgent` and start the service.
|
|
|
|
## (4) Uninstall the service
|
|
|
|
### Prerequisites
|
|
|
|
- To uninstall the Beszel agent, it has to be installed using the install script.
|
|
|
|
### Uninstalling
|
|
|
|
Open a `cmd.exe` shell with **administrative rights**.
|
|
|
|
Start the update by launching
|
|
|
|
```
|
|
.\uninstall_agent.cmd
|
|
```
|
|
|
|
The script will stop and remove the Beszel service and delete the installation directory `%ProgramFiles%\BeszelAgent`. |