# Setup Renderserver

## Requirements

**Windows Server/Workstation**

### Hardware Requirements (Per Stream)
- **2 GB VRAM**
- **4 GB RAM**
- **2 CPU cores**
- **GPU Recommendations**:
  - NVIDIA GPUs such as **RTX 5000** or **A4500** are recommended.
  - **AMD GPUs** are supported, but some features (e.g., **load balancing**) may be unavailable.
  - Current GPU drivers installed
- **Render server** must have a **logged-in user session**:
  - The screen can be locked, but a user must remain logged in.

These are recommended requirements.
Depending on the model size, the requirements may be lower or higher.
Please verify this with your own models. We do not recommend going above 40 streams per server.

## Sample Cloud and On-Premises Setups

The following examples show some possible hardware configurations for the render server in cloud and on-premises environments.
Multiple render servers can be used on one Portal for load balancing.

### Oracle

For approximately 8-10 simultaneous streams:

Oracle `VM.GPU3.1` with `16 GB` GPU VRAM, or `2 × VM.GPU2.1 / 2.x`.
For higher stream counts, scaling up to `VM.GPU3.x` is recommended.

### Azure

For approximately 8-10 simultaneous streams:

Minimum: `Standard_NV24s_v3` (`16 GB` VRAM).

Recommended for more streams:

`Standard_NV48s_v3` (`M60`, `32 GB` VRAM) or `Standard_NV36ads_A10_v5` (`24 GB` VRAM).

### AWS

For approximately 8-10 simultaneous streams:

AWS EC2 `G3` with `2` GPUs (`16 GB` VRAM).
For more streams, an AWS EC2 `G5` instance is recommended with multiple GPUs.

### On-Premises

NVIDIA GPU, for example `RTX 5000` or `A4500`, with `2 GB` VRAM and `4 GB` RAM per stream.
Minimum `8` CPU cores. The final setup may vary depending on the use case.

## Setup Renderservice

Click **Next**.

![Setup](media/RenderServerInstallation_01_setup.png)

To continue with the installation, accept the EULA and click **Next**.

![EULA](media/RenderServerInstallation_02_EULA.png)

Enter an installation location or use the default location.

![Location](media/RenderServerInstallation_03_Location.png)

Enter a name for the Watchdog so that it can be identified later.
Then enter the UDiTH Portal URL, `https://<alias/(sub)domain>/Portal`, together with the **Signaling API Credential**. This is the client secret of the `signaling-api` client in Keycloak, which is automatically created during Portal installation. You can find it in the Keycloak admin console under **Clients → signaling-api → Credentials**.
If batch mode is enabled, no UDiTH windows are shown during execution. If **Ignore certificate errors** is enabled, invalid certificates from the Portal are also accepted.

![Setting](media/RenderServerInstallation_04_Setting.png)

Start the installation by clicking **Install**.

![StartInstall](media/RenderServerInstallation_05_StartInstall.png)

Click **Finish** to complete the installation. If the checkbox is selected, the render server starts automatically.

![Finish](media/RenderServerInstallation_06_Finish.png)

## Environment Variables

The render server's behaviour can be adjusted via environment variables.

| Variable | Description |
|----------|-------------|
| `UDITH_APPCONTROL_DISABLEGPU` | Disables GPU (hardware) acceleration for AppControls. GPU acceleration is enabled by default but can cause issues on some render servers. Set the variable to `true` (case-insensitive) to disable it. Note that disabling GPU acceleration breaks WebGL apps and can make very heavy apps slower, although small apps may run faster. |

## Security

The user account used to run Renderserver should be a low-privilege user.
