# BeszelWin

Build and install the [Beszel](https://beszel.dev) agent under Microsoft Windows.

## (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/download/1.0/install-beszel-service.zip).

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.

## (2) Installing the service

### Prerequisites

- Microsoft Windows 10 or later (32 or 64 bit) - *Server OS should work, too*

### Installation

Download and extract [install-beszel-service.zip](https://gitea.elpatron.me/elpatron/Install-Beszel-Agent/releases/download/1.0/install-beszel-service.zip) if you haven´t done this in before.

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.

## (3) Updating the service

### Prerequisites

- To update the Beszel agent, it has to be installed using the install script.

### Updating

Download and extract [install-beszel-service.zip](https://gitea.elpatron.me/elpatron/Install-Beszel-Agent/releases/download/1.0/install-beszel-service.zip) if you haven´t done this before.

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

Download and extract [install-beszel-service.zip](https://gitea.elpatron.me/elpatron/Install-Beszel-Agent/releases/download/1.0/install-beszel-service.zip) if you haven´t done this before.

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`.