# Terminal

{% hint style="success" %} <mark style="background-color:green;">After installation, control the restreamer in any browser using the IP and port of the device with the path /ui.</mark>
{% endhint %}

## Requirements

* A current Linux distribution such as Ubuntu, Debian, Fedora, RedHat, or Suse Linux.

## Preparation

### Step 1: Install Docker

Download, install and run [Docker Desktop](https://www.docker.com/products/docker-desktop/). Follow the installation instructions. If you are already using Docker, skip this step.

## Installation Windows PowerShell

In the PowerShell, a single command is required to download and start the Restreamer.

### Step 2: Start the Restreamer

**Without hardware support**

{% code overflow="wrap" %}

```
docker run --detach --name core --privileged --volume /opt/core/config:/core/config --volume /opt/core/data:/core/data --publish 8080:8080 --publish 8181:8181 --publish 1935:1935 --publish 1936:1936 --publish 6000:6000/udp datarhei/restreamer:latest
```

{% endcode %}

**Start with hardware support for Nvidia CUDA**

{% code overflow="wrap" %}

```
docker run --detach --name core --privileged --volume /opt/core/config:/core/config --volume /opt/core/data:/core/data --publish 8080:8080 --publish 8181:8181 --publish 1935:1935 --publish 1936:1936 --publish 6000:6000/udp datarhei/restreamer:cuda-latest
```

{% endcode %}

**Start with hardware support for Intel VAAPI**

{% code overflow="wrap" %}

```
docker run --detach --name core --privileged --volume /opt/core/config:/core/config --volume /opt/core/data:/core/data --publish 8080:8080 --publish 8181:8181 --publish 1935:1935 --publish 1936:1936 --publish 6000:6000/udp datarhei/restreamer:vaapi-latest
```

{% endcode %}

{% hint style="warning" %}
For security reasons, start the Restreamer only with --privileged if you need hardware support.
{% endhint %}

<figure><img src="/files/I89IXm7IIaEBSZw3OFFm" alt=""><figcaption><p><strong>Fig 1.</strong> Docker command in Windows PowerShell </p></figcaption></figure>

### Step 3: Open the Restreamer

Open a browser and enter the device's IP address with the Restreamer installed. In the example: <http://device-ip:8080/ui>

### Step 4. First login

When you log in for the first time in your Restreamer, you have to enter your credentials.

{% content-ref url="/pages/C5dWWvnQmWCwKjVvLq3L" %}
[Login](/restreamer/knowledge-base/manual/login.md)
{% endcontent-ref %}

## Important: The Environments

Environments are global settings for the Restreamer. We recommend considering some environments at the startup.

#### Description of the most important commands for the use of environments

**-d** Deletes the container. This means that the container is executed in the background. You can run it interactively in the foreground with *-it* instead of -d. To stop the restreamer in detached mode, type *docker stop restreamer*. In interactive mode, simply press Ctrl-C to stop the restreamer.

**--name restreamer** Set the container the name *restreamer*. This name can be used in other Docker commands to control the container. For example, to stop the Restreamer, type *docker stop restreamer*. While the Restreamer is running, you can log into the container with *docker exec -it restreamer /bin/bash*.

**--restart=always** If the Restreamer crashes or the device reboots, Docker restarts the Restreamer automatically.

**--publish 8080:8080** Binds the computer's port *8080* to the Restreamer's port *8080*. It allows you to connect to the Restreamer GUI over HTTP with your browser. If you want to use a different port, change it to *-p 31000:8080*, for example.

**--publish 8081:8181** Binds the computer's port *8181* to the Restreamer's port *8181*. It allows you to connect to the Restreamer GUI over HTTPS with your browser. If you want to use a different port, change it to *-p 31000:8181,* for example.

**--publish 1935:1935** Binds port 1935 of the computer to port 1935 of the Restreamer. It allows you to receive streams from the RTMP server or send streams to the RTMP server. If you want to use a different port, change it to -p 31000:1935, for example.

**--publish 1936:1936** Binds port 1936 of the computer to port 1936 of the Restreamer. It allows you to receive streams from the RTMPS server or send streams to the RTMPS server. If you want to use a different port, change it to -p 31000:1936, for example.

**--publish 6000/udp**  Binds port 6000/udp of the restreamer. It allows you to receive streams from the SRT server or send streams to the SRT server. If you want to use a different port, change it to -p 31000:6000/udp, for example.

**--volume ${HOME}/restreamer/config:/core/config** The Restreamer stores the current state in the */core/config* directory inside the container. This command maps the *${HOME}/restreamer/config* directory of your computer into the container. This can be used to preserve the state if the restreamer needs to be restarted. If you want to store the state in a different directory on your device, change it to, e.g. *-v /tmp/restreamer/config:/core/config*

**--volume ${HOME}/restreamer/data:/core/data** The Restreamer stores the internal file system persistently in this directory.

**datarhei/restreamer:latest** It is the Docker image of the latest datarhei Restreamer on Docker Hub. Docker checks if the image is available locally and downloads it if it is not or if a newer image is available.

### List with all available environment variables

{% embed url="<https://github.com/datarhei/core#environment-variables>" %}
**External URL:** All Environment variables on GitHub.
{% endembed %}

## Learn more

{% content-ref url="/pages/vWbNXWEnebXKtF1B4Mdr" %}
[How do I install Docker?](/restreamer/knowledge-base/user-guides/how-do-i-install-docker.md)
{% endcontent-ref %}

{% content-ref url="/pages/oz4dAl8xOxTJ1DlfeNvj" %}
[How does port forwarding work for the Restreamer?](/restreamer/knowledge-base/user-guides/how-does-port-forwarding-work-for-the-restreamer.md)
{% endcontent-ref %}

{% content-ref url="/pages/VL9KZbvjbi0fDubQOG6B" %}
[How can I use HTTPS with Let's Encrypt?](/restreamer/knowledge-base/user-guides/how-can-i-use-https-with-lets-encrypt.md)
{% endcontent-ref %}

{% content-ref url="/pages/5UuleQZ0OaxSy9HgMewO" %}
[What are environment variables?](/restreamer/knowledge-base/faq/what-are-environment-variables.md)
{% endcontent-ref %}

{% content-ref url="/pages/obgD22CebJtWA4GlfKrJ" %}
[Environment Variables](/restreamer/api/environment-variables.md)
{% endcontent-ref %}

{% content-ref url="/pages/-MXb\_m72sKwXpgM5udfT" %}
[Knowledge Base](/restreamer/knowledge-base/manual.md)
{% endcontent-ref %}

{% content-ref url="/pages/-MXbaD8XJhAgA\_76Yl\_X" %}
[Developer](/restreamer/api/api-and-developer.md)
{% endcontent-ref %}

{% content-ref url="/pages/-MXbavufS1gwSzyDPNok" %}
[Premium Support](/restreamer/premium-support-1/helping-hands.md)
{% endcontent-ref %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.datarhei.com/restreamer/installing/windows/terminal.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
