Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 49 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,8 +63,19 @@ The application can be accessed at:
>[!NOTE]
>This image is for a web accessible version of Steam to be played through a web browser it is in development and has oddities, if you want a fully flushed out Moonlight couch solution please consider [Wolf](https://games-on-whales.github.io/wolf/stable/user/quickstart.html) or another non Docker solution. Moonlight clients have major advantages over using a web browser.

>[!NOTE]
>NVIDIA is not working yet, for now this image is only for Intel/AMD graphics cards.
## GPU Support

Using an Intel/AMD GPU is usually as easy as just passing `--device /dev/dri:/dev/dri`.
If you have multiple GPUs you need to pass both the setting for the render node and the encoder IE for the second GPU:

```
-e DRINODE=/dev/dri/renderD129 \
-e DRI_NODE=/dev/dri/renderD129
```

Nvidia support only works on 580 and up full proprietary drivers (no MIT/GPL) with `nvidia-drm.modeset=1` kernel parameter set. You must ensure the card is initialized before running a container so on headless systems run `nvidia-modprobe --modeset` from the host even with this kernel parameter set, this only needs to be run once per boot.

These modifications for NVIDIA are for Wayland to function properly and have nothing to do with the Docker runtime. If you are using compose it is important to run `sudo nvidia-ctk runtime configure --runtime=docker` this is a persistent setting and only needs to run once.

## Gamepad support

Expand Down Expand Up @@ -199,6 +210,41 @@ The `DRINODE` environment variable can be used to point to a specific GPU.

DRI3 will work on aarch64 given the correct drivers are installed inside the container for your chipset.

### Nvidia GPU Support

**Note: Nvidia support is not available for Alpine-based images.**

Nvidia GPU support is available by leveraging Zink for OpenGL. When a compatible Nvidia GPU is passed through, it will also be **automatically utilized for hardware-accelerated video stream encoding** (using the `x264enc` full-frame profile), significantly reducing CPU load.

Enable Nvidia support with the following runtime flags:

| Flag | Description |
| :----: | --- |
| `--gpus all` | Passes all available host GPUs to the container. This can be filtered to specific GPUs. |
| `--runtime nvidia` | Specifies the Nvidia runtime, which provides the necessary drivers and tools from the host. |

For Docker Compose, you must first configure the Nvidia runtime as the default on the host:

```
sudo nvidia-ctk runtime configure --runtime=docker --set-as-default
sudo systemctl restart docker
```

Then, assign the GPU to the service in your `compose.yaml`:

```
services:
steam:
image: lscr.io/linuxserver/steam:latest
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [compute,video,graphics,utility]
```

### Application Management

There are two methods for installing applications inside the container: PRoot Apps (recommended for persistence) and Native Apps.
Expand Down Expand Up @@ -577,4 +623,5 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64

## Versions

* **17.01.26:** - Document Nvidia support.
* **09.01.26:** - Initial Version.
17 changes: 15 additions & 2 deletions readme-vars.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ custom_params:
- {name: "shm-size", name_compose: "shm_size", value: "1gb", desc: "Recommended for all desktop images."}
# Selkies blurb settings
selkies_blurb: true
show_nvidia: true
# application setup block
app_setup_block_enabled: true
app_setup_block: |
Expand All @@ -43,8 +44,19 @@ app_setup_block: |
>[!NOTE]
>This image is for a web accessible version of Steam to be played through a web browser it is in development and has oddities, if you want a fully flushed out Moonlight couch solution please consider [Wolf](https://games-on-whales.github.io/wolf/stable/user/quickstart.html) or another non Docker solution. Moonlight clients have major advantages over using a web browser.

>[!NOTE]
>NVIDIA is not working yet, for now this image is only for Intel/AMD graphics cards.
## GPU Support

Using an Intel/AMD GPU is usually as easy as just passing `--device /dev/dri:/dev/dri`.
If you have multiple GPUs you need to pass both the setting for the render node and the encoder IE for the second GPU:

```
-e DRINODE=/dev/dri/renderD129 \
-e DRI_NODE=/dev/dri/renderD129
```

Nvidia support only works on 580 and up full proprietary drivers (no MIT/GPL) with `nvidia-drm.modeset=1` kernel parameter set. You must ensure the card is initialized before running a container so on headless systems run `nvidia-modprobe --modeset` from the host even with this kernel parameter set, this only needs to be run once per boot.

These modifications for NVIDIA are for Wayland to function properly and have nothing to do with the Docker runtime. If you are using compose it is important to run `sudo nvidia-ctk runtime configure --runtime=docker` this is a persistent setting and only needs to run once.

## Gamepad support

Expand Down Expand Up @@ -125,4 +137,5 @@ init_diagram: |
"steam:latest" <- Base Images
# changelog
changelogs:
- {date: "17.01.26:", desc: "Document Nvidia support."}
- {date: "09.01.26:", desc: "Initial Version."}